Extensions: skills, plugins, MCP, sub-agents; configurable keys
- Skills (SKILL.md discovery, skill tool, /skills /skill) - plugin.json exec tools with permission prompts, timeouts and workspace trust (/plugins) - MCP stdio client: JSON-RPC initialize/tools/list/tools/call, mcp__server__tool, /mcp and sidebar status - task tool with general/explore/plan and .agent/agents/*.md roles, parallel read-only runs, cancel propagation, /agents - Keymap with Ctrl+X leader, keybinds.json overrides and /keys panel - Collapsed thinking, throttled streaming Markdown, leaner tool output, parallel read-only tools - Spawn: close-on-exec pipes and a process-wide fork lock - Tests for keymap, skills, plugins, MCP, sub-agents, shell compaction; docs/plugins.md
This commit is contained in:
+10
@@ -1,4 +1,5 @@
|
||||
#include "cst_agent.h"
|
||||
#include "cst_ext.h"
|
||||
#include "cst_tools.h"
|
||||
#include "cst_version.h"
|
||||
#include "os_compat.h"
|
||||
@@ -540,6 +541,14 @@ int main(int argc, char **argv) {
|
||||
cfg.api_base, cfg.model, cfg.effort, cst_protocol_name(cfg.protocol),
|
||||
cst_tool_profile_name(cfg.tool_profile), cfg.max_steps);
|
||||
|
||||
{
|
||||
char ext[256];
|
||||
cst_extensions_load(&cfg, ext, sizeof(ext));
|
||||
if (ext[0] && cfg.headless)
|
||||
fprintf(stderr, "extensions: %s\n", ext);
|
||||
if (cfg.headless)
|
||||
cst_extensions_wait(stderr);
|
||||
}
|
||||
cst_agent_t *agent = cst_agent_create(&cfg);
|
||||
if (!agent) {
|
||||
fprintf(stderr, "failed to create agent (session path?)\n");
|
||||
@@ -571,6 +580,7 @@ int main(int argc, char **argv) {
|
||||
}
|
||||
|
||||
cst_agent_destroy(agent);
|
||||
cst_extensions_unload();
|
||||
curl_global_cleanup();
|
||||
return rc;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user