hyacinth-ai 0.9.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +205 -0
- package/commands.json +25 -0
- package/dist/agents/builtins.d.ts +8 -0
- package/dist/agents/builtins.js +50 -0
- package/dist/agents/config-loader.d.ts +15 -0
- package/dist/agents/config-loader.js +75 -0
- package/dist/agents/delegate-tool.d.ts +109 -0
- package/dist/agents/delegate-tool.js +407 -0
- package/dist/agents/index.d.ts +5 -0
- package/dist/agents/index.js +5 -0
- package/dist/agents/registry.d.ts +2 -0
- package/dist/agents/registry.js +2 -0
- package/dist/bypass/agents/companion/index.d.ts +57 -0
- package/dist/bypass/agents/companion/index.js +487 -0
- package/dist/bypass/agents/orchestrator/index.d.ts +17 -0
- package/dist/bypass/agents/orchestrator/index.js +414 -0
- package/dist/bypass/agents/orchestrator.d.ts +16 -0
- package/dist/bypass/agents/orchestrator.js +377 -0
- package/dist/bypass/agents/world-engine/agent.d.ts +41 -0
- package/dist/bypass/agents/world-engine/agent.js +385 -0
- package/dist/bypass/agents/world-engine/index.d.ts +52 -0
- package/dist/bypass/agents/world-engine/index.js +198 -0
- package/dist/bypass/agents/world-engine/sim.d.ts +14 -0
- package/dist/bypass/agents/world-engine/sim.js +120 -0
- package/dist/bypass/agents/world-engine/store.d.ts +110 -0
- package/dist/bypass/agents/world-engine/store.js +519 -0
- package/dist/bypass/agents/world-engine/ticker.d.ts +37 -0
- package/dist/bypass/agents/world-engine/ticker.js +214 -0
- package/dist/bypass/agents/world-engine/tools.d.ts +6 -0
- package/dist/bypass/agents/world-engine/tools.js +380 -0
- package/dist/bypass/agents/world-engine/types.d.ts +202 -0
- package/dist/bypass/agents/world-engine/types.js +56 -0
- package/dist/bypass/agents/world-engine.d.ts +20 -0
- package/dist/bypass/agents/world-engine.js +63 -0
- package/dist/bypass/base.d.ts +48 -0
- package/dist/bypass/base.js +126 -0
- package/dist/bypass/index.d.ts +5 -0
- package/dist/bypass/index.js +6 -0
- package/dist/bypass/manager.d.ts +41 -0
- package/dist/bypass/manager.js +179 -0
- package/dist/bypass/types.d.ts +63 -0
- package/dist/bypass/types.js +14 -0
- package/dist/channels/auto-detect.d.ts +25 -0
- package/dist/channels/auto-detect.js +77 -0
- package/dist/channels/builtin/http-webhook.d.ts +25 -0
- package/dist/channels/builtin/http-webhook.js +287 -0
- package/dist/channels/builtin/tui-channel.d.ts +33 -0
- package/dist/channels/builtin/tui-channel.js +61 -0
- package/dist/channels/builtin/tui-ws-session.d.ts +16 -0
- package/dist/channels/builtin/tui-ws-session.js +90 -0
- package/dist/channels/builtin/webui-output-handler.d.ts +30 -0
- package/dist/channels/builtin/webui-output-handler.js +93 -0
- package/dist/channels/index.d.ts +5 -0
- package/dist/channels/index.js +3 -0
- package/dist/channels/interface.d.ts +148 -0
- package/dist/channels/interface.js +15 -0
- package/dist/channels/manager.d.ts +43 -0
- package/dist/channels/manager.js +156 -0
- package/dist/channels/message-queue.d.ts +36 -0
- package/dist/channels/message-queue.js +91 -0
- package/dist/channels/plugins/clawbot/clawbot-auth.d.ts +50 -0
- package/dist/channels/plugins/clawbot/clawbot-auth.js +235 -0
- package/dist/channels/plugins/clawbot/clawbot-channel.d.ts +76 -0
- package/dist/channels/plugins/clawbot/clawbot-channel.js +566 -0
- package/dist/channels/plugins/clawbot/clawbot-client.d.ts +180 -0
- package/dist/channels/plugins/clawbot/clawbot-client.js +312 -0
- package/dist/channels/plugins/clawbot/clawbot-config.d.ts +30 -0
- package/dist/channels/plugins/clawbot/clawbot-config.js +28 -0
- package/dist/channels/plugins/clawbot/clawbot-message-queue.d.ts +27 -0
- package/dist/channels/plugins/clawbot/clawbot-message-queue.js +114 -0
- package/dist/channels/plugins/clawbot/clawbot-session.d.ts +10 -0
- package/dist/channels/plugins/clawbot/clawbot-session.js +26 -0
- package/dist/channels/plugins/clawbot/index.d.ts +17 -0
- package/dist/channels/plugins/clawbot/index.js +58 -0
- package/dist/channels/plugins/feishu/feishu-channel.d.ts +57 -0
- package/dist/channels/plugins/feishu/feishu-channel.js +602 -0
- package/dist/channels/plugins/feishu/feishu-client.d.ts +23 -0
- package/dist/channels/plugins/feishu/feishu-client.js +86 -0
- package/dist/channels/plugins/feishu/feishu-config.d.ts +53 -0
- package/dist/channels/plugins/feishu/feishu-config.js +35 -0
- package/dist/channels/plugins/feishu/feishu-event.d.ts +102 -0
- package/dist/channels/plugins/feishu/feishu-event.js +257 -0
- package/dist/channels/plugins/feishu/feishu-log-suppressor.d.ts +7 -0
- package/dist/channels/plugins/feishu/feishu-log-suppressor.js +34 -0
- package/dist/channels/plugins/feishu/feishu-message-queue.d.ts +27 -0
- package/dist/channels/plugins/feishu/feishu-message-queue.js +112 -0
- package/dist/channels/plugins/feishu/feishu-send.d.ts +44 -0
- package/dist/channels/plugins/feishu/feishu-send.js +232 -0
- package/dist/channels/plugins/feishu/feishu-session.d.ts +44 -0
- package/dist/channels/plugins/feishu/feishu-session.js +84 -0
- package/dist/channels/plugins/feishu/feishu-streaming.d.ts +49 -0
- package/dist/channels/plugins/feishu/feishu-streaming.js +185 -0
- package/dist/channels/plugins/feishu/feishu-transport.d.ts +29 -0
- package/dist/channels/plugins/feishu/feishu-transport.js +99 -0
- package/dist/channels/plugins/feishu/index.d.ts +22 -0
- package/dist/channels/plugins/feishu/index.js +68 -0
- package/dist/cli/doctor.d.ts +20 -0
- package/dist/cli/doctor.js +317 -0
- package/dist/context/cache-strategy.d.ts +76 -0
- package/dist/context/cache-strategy.js +123 -0
- package/dist/context/composer.d.ts +77 -0
- package/dist/context/composer.js +318 -0
- package/dist/context/compressor.d.ts +218 -0
- package/dist/context/compressor.js +909 -0
- package/dist/context/index.d.ts +14 -0
- package/dist/context/index.js +8 -0
- package/dist/context/interface.d.ts +33 -0
- package/dist/context/interface.js +2 -0
- package/dist/context/manifest-defaults.d.ts +51 -0
- package/dist/context/manifest-defaults.js +133 -0
- package/dist/context/manifest-loader.d.ts +16 -0
- package/dist/context/manifest-loader.js +103 -0
- package/dist/context/manifest-types.d.ts +26 -0
- package/dist/context/manifest-types.js +2 -0
- package/dist/context/precision/analyzer.d.ts +31 -0
- package/dist/context/precision/analyzer.js +131 -0
- package/dist/context/precision/companion.d.ts +27 -0
- package/dist/context/precision/companion.js +144 -0
- package/dist/context/precision/default.d.ts +14 -0
- package/dist/context/precision/default.js +17 -0
- package/dist/context/precision/index.d.ts +9 -0
- package/dist/context/precision/index.js +7 -0
- package/dist/context/precision/keyword-pool.d.ts +27 -0
- package/dist/context/precision/keyword-pool.js +66 -0
- package/dist/context/precision/strategy.d.ts +18 -0
- package/dist/context/precision/strategy.js +51 -0
- package/dist/context/precision/summary-store.d.ts +18 -0
- package/dist/context/precision/summary-store.js +67 -0
- package/dist/context/precision/types.d.ts +23 -0
- package/dist/context/precision/types.js +2 -0
- package/dist/context/profiles.d.ts +45 -0
- package/dist/context/profiles.js +92 -0
- package/dist/context/prompt-builder.d.ts +76 -0
- package/dist/context/prompt-builder.js +133 -0
- package/dist/context/retriever.d.ts +44 -0
- package/dist/context/retriever.js +203 -0
- package/dist/context/router.d.ts +122 -0
- package/dist/context/router.js +291 -0
- package/dist/context/section-resolver.d.ts +38 -0
- package/dist/context/section-resolver.js +398 -0
- package/dist/context/tokenizer.d.ts +23 -0
- package/dist/context/tokenizer.js +78 -0
- package/dist/dependency/analyzer.d.ts +33 -0
- package/dist/dependency/analyzer.js +242 -0
- package/dist/dependency/data-flow-tracker.d.ts +12 -0
- package/dist/dependency/data-flow-tracker.js +97 -0
- package/dist/dependency/function-parser.d.ts +34 -0
- package/dist/dependency/function-parser.js +295 -0
- package/dist/dependency/index.d.ts +14 -0
- package/dist/dependency/index.js +20 -0
- package/dist/dependency/parser.d.ts +10 -0
- package/dist/dependency/parser.js +93 -0
- package/dist/dependency/types.d.ts +57 -0
- package/dist/dependency/types.js +2 -0
- package/dist/env/env-collector.d.ts +45 -0
- package/dist/env/env-collector.js +221 -0
- package/dist/env/index.d.ts +3 -0
- package/dist/env/index.js +2 -0
- package/dist/event-store.d.ts +27 -0
- package/dist/event-store.js +71 -0
- package/dist/evolution/git-manager.d.ts +46 -0
- package/dist/evolution/git-manager.js +276 -0
- package/dist/evolution/index.d.ts +3 -0
- package/dist/evolution/index.js +2 -0
- package/dist/flow/bootstrap-flow.d.ts +19 -0
- package/dist/flow/bootstrap-flow.js +72 -0
- package/dist/flow/flow-registry.d.ts +12 -0
- package/dist/flow/flow-registry.js +74 -0
- package/dist/flow/flow-tools.d.ts +8 -0
- package/dist/flow/flow-tools.js +106 -0
- package/dist/flow/index.d.ts +6 -0
- package/dist/flow/index.js +8 -0
- package/dist/flow/todo-flow.d.ts +25 -0
- package/dist/flow/todo-flow.js +107 -0
- package/dist/flow/types.d.ts +78 -0
- package/dist/flow/types.js +12 -0
- package/dist/flows/bootstrap.d.ts +18 -0
- package/dist/flows/bootstrap.js +119 -0
- package/dist/flows/index.d.ts +6 -0
- package/dist/flows/index.js +11 -0
- package/dist/flows/todo.d.ts +26 -0
- package/dist/flows/todo.js +174 -0
- package/dist/flows/tools.d.ts +8 -0
- package/dist/flows/tools.js +119 -0
- package/dist/flows/types.d.ts +27 -0
- package/dist/flows/types.js +10 -0
- package/dist/gateway/cli.d.ts +5 -0
- package/dist/gateway/cli.js +1027 -0
- package/dist/gateway/factory.d.ts +80 -0
- package/dist/gateway/factory.js +832 -0
- package/dist/gateway/guardian.d.ts +8 -0
- package/dist/gateway/guardian.js +30 -0
- package/dist/gateway/index.d.ts +3 -0
- package/dist/gateway/index.js +3 -0
- package/dist/gateway/server.d.ts +17 -0
- package/dist/gateway/server.js +96 -0
- package/dist/gateway/tui.d.ts +16 -0
- package/dist/gateway/tui.js +3273 -0
- package/dist/hot-reload/agent-watcher.d.ts +24 -0
- package/dist/hot-reload/agent-watcher.js +175 -0
- package/dist/hot-reload/bundle-watcher.d.ts +12 -0
- package/dist/hot-reload/bundle-watcher.js +35 -0
- package/dist/hot-reload/channel-watcher.d.ts +19 -0
- package/dist/hot-reload/channel-watcher.js +54 -0
- package/dist/hot-reload/command-watcher.d.ts +14 -0
- package/dist/hot-reload/command-watcher.js +54 -0
- package/dist/hot-reload/config-watcher.d.ts +20 -0
- package/dist/hot-reload/config-watcher.js +58 -0
- package/dist/hot-reload/index.d.ts +12 -0
- package/dist/hot-reload/index.js +12 -0
- package/dist/hot-reload/manager.d.ts +58 -0
- package/dist/hot-reload/manager.js +243 -0
- package/dist/hot-reload/manifest-watcher.d.ts +9 -0
- package/dist/hot-reload/manifest-watcher.js +42 -0
- package/dist/hot-reload/mcp-watcher.d.ts +18 -0
- package/dist/hot-reload/mcp-watcher.js +64 -0
- package/dist/hot-reload/model-catalog-watcher.d.ts +18 -0
- package/dist/hot-reload/model-catalog-watcher.js +62 -0
- package/dist/hot-reload/plugin-watcher.d.ts +20 -0
- package/dist/hot-reload/plugin-watcher.js +56 -0
- package/dist/hot-reload/prompt-watcher.d.ts +6 -0
- package/dist/hot-reload/prompt-watcher.js +38 -0
- package/dist/hot-reload/provider-watcher.d.ts +16 -0
- package/dist/hot-reload/provider-watcher.js +45 -0
- package/dist/hot-reload/skill-watcher.d.ts +19 -0
- package/dist/hot-reload/skill-watcher.js +82 -0
- package/dist/hot-reload/tool-watcher.d.ts +16 -0
- package/dist/hot-reload/tool-watcher.js +168 -0
- package/dist/hot-reload/workflow-watcher.d.ts +19 -0
- package/dist/hot-reload/workflow-watcher.js +84 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +6 -0
- package/dist/knowledge/fts5-retriever.d.ts +30 -0
- package/dist/knowledge/fts5-retriever.js +223 -0
- package/dist/knowledge/index.d.ts +11 -0
- package/dist/knowledge/index.js +14 -0
- package/dist/knowledge/indexer.d.ts +41 -0
- package/dist/knowledge/indexer.js +186 -0
- package/dist/knowledge/query-preprocessor.d.ts +13 -0
- package/dist/knowledge/query-preprocessor.js +63 -0
- package/dist/knowledge/retriever.d.ts +45 -0
- package/dist/knowledge/retriever.js +9 -0
- package/dist/knowledge/store.d.ts +27 -0
- package/dist/knowledge/store.js +61 -0
- package/dist/knowledge/structured-store.d.ts +78 -0
- package/dist/knowledge/structured-store.js +280 -0
- package/dist/knowledge/structured-tools.d.ts +12 -0
- package/dist/knowledge/structured-tools.js +151 -0
- package/dist/knowledge/tools.d.ts +20 -0
- package/dist/knowledge/tools.js +238 -0
- package/dist/knowledge/watcher.d.ts +28 -0
- package/dist/knowledge/watcher.js +113 -0
- package/dist/lifecycle/index.d.ts +12 -0
- package/dist/lifecycle/index.js +14 -0
- package/dist/lifecycle/interface.d.ts +94 -0
- package/dist/lifecycle/interface.js +2 -0
- package/dist/lifecycle/local-model.d.ts +62 -0
- package/dist/lifecycle/local-model.js +331 -0
- package/dist/lifecycle/manager.d.ts +70 -0
- package/dist/lifecycle/manager.js +374 -0
- package/dist/lifecycle/supervisor.d.ts +89 -0
- package/dist/lifecycle/supervisor.js +277 -0
- package/dist/lifecycle-integration-test.d.ts +2 -0
- package/dist/lifecycle-integration-test.js +72 -0
- package/dist/local-model/download-manager.d.ts +59 -0
- package/dist/local-model/download-manager.js +517 -0
- package/dist/local-model/index.d.ts +109 -0
- package/dist/local-model/index.js +233 -0
- package/dist/local-model/llamacpp-provider.d.ts +95 -0
- package/dist/local-model/llamacpp-provider.js +379 -0
- package/dist/local-model/model-bridge.d.ts +48 -0
- package/dist/local-model/model-bridge.js +256 -0
- package/dist/local-model/model-registry.d.ts +47 -0
- package/dist/local-model/model-registry.js +188 -0
- package/dist/local-model/types.d.ts +49 -0
- package/dist/local-model/types.js +2 -0
- package/dist/logging/index.d.ts +3 -0
- package/dist/logging/index.js +3 -0
- package/dist/logging/logger.d.ts +56 -0
- package/dist/logging/logger.js +94 -0
- package/dist/machine/flows/bootstrap.d.ts +18 -0
- package/dist/machine/flows/bootstrap.js +119 -0
- package/dist/machine/flows/index.d.ts +6 -0
- package/dist/machine/flows/index.js +11 -0
- package/dist/machine/flows/spec.d.ts +17 -0
- package/dist/machine/flows/spec.js +176 -0
- package/dist/machine/flows/todo.d.ts +26 -0
- package/dist/machine/flows/todo.js +175 -0
- package/dist/machine/flows/tools.d.ts +8 -0
- package/dist/machine/flows/tools.js +119 -0
- package/dist/machine/flows/types.d.ts +33 -0
- package/dist/machine/flows/types.js +10 -0
- package/dist/machine/index.d.ts +8 -0
- package/dist/machine/index.js +9 -0
- package/dist/machine/registry.d.ts +34 -0
- package/dist/machine/registry.js +98 -0
- package/dist/machine/runner.d.ts +41 -0
- package/dist/machine/runner.js +177 -0
- package/dist/machine/types.d.ts +121 -0
- package/dist/machine/types.js +9 -0
- package/dist/mcp/bridge.d.ts +33 -0
- package/dist/mcp/bridge.js +99 -0
- package/dist/mcp/client.d.ts +37 -0
- package/dist/mcp/client.js +161 -0
- package/dist/mcp/config.d.ts +15 -0
- package/dist/mcp/config.js +85 -0
- package/dist/mcp/index.d.ts +7 -0
- package/dist/mcp/index.js +7 -0
- package/dist/mcp/install-manager.d.ts +31 -0
- package/dist/mcp/install-manager.js +158 -0
- package/dist/mcp/lifecycle.d.ts +41 -0
- package/dist/mcp/lifecycle.js +175 -0
- package/dist/mcp/process-transport.d.ts +21 -0
- package/dist/mcp/process-transport.js +59 -0
- package/dist/mcp/side-effect.d.ts +5 -0
- package/dist/mcp/side-effect.js +21 -0
- package/dist/mcp/system.d.ts +95 -0
- package/dist/mcp/system.js +279 -0
- package/dist/memory/companion-session.d.ts +22 -0
- package/dist/memory/companion-session.js +77 -0
- package/dist/memory/compression-boundary.d.ts +20 -0
- package/dist/memory/compression-boundary.js +40 -0
- package/dist/memory/conversation.d.ts +34 -0
- package/dist/memory/conversation.js +107 -0
- package/dist/memory/events.d.ts +42 -0
- package/dist/memory/events.js +56 -0
- package/dist/memory/index.d.ts +7 -0
- package/dist/memory/index.js +6 -0
- package/dist/memory/memory-store.d.ts +11 -0
- package/dist/memory/memory-store.js +51 -0
- package/dist/memory/session-allowlist.d.ts +11 -0
- package/dist/memory/session-allowlist.js +50 -0
- package/dist/memory/session.d.ts +48 -0
- package/dist/memory/session.js +275 -0
- package/dist/memory/stats.d.ts +23 -0
- package/dist/memory/stats.js +59 -0
- package/dist/memory/summary.d.ts +7 -0
- package/dist/memory/summary.js +23 -0
- package/dist/multimodal/index.d.ts +66 -0
- package/dist/multimodal/index.js +210 -0
- package/dist/orchestrator/index.d.ts +5 -0
- package/dist/orchestrator/index.js +4 -0
- package/dist/orchestrator/loop.d.ts +331 -0
- package/dist/orchestrator/loop.js +2443 -0
- package/dist/orchestrator/plan-store.d.ts +81 -0
- package/dist/orchestrator/plan-store.js +167 -0
- package/dist/orchestrator/planner.d.ts +20 -0
- package/dist/orchestrator/planner.js +34 -0
- package/dist/parser/index.d.ts +2 -0
- package/dist/parser/index.js +2 -0
- package/dist/parser/router.d.ts +30 -0
- package/dist/parser/router.js +61 -0
- package/dist/plugins/api.d.ts +39 -0
- package/dist/plugins/api.js +85 -0
- package/dist/plugins/define.d.ts +27 -0
- package/dist/plugins/define.js +32 -0
- package/dist/plugins/index.d.ts +9 -0
- package/dist/plugins/index.js +5 -0
- package/dist/plugins/loader.d.ts +39 -0
- package/dist/plugins/loader.js +128 -0
- package/dist/plugins/manager.d.ts +61 -0
- package/dist/plugins/manager.js +257 -0
- package/dist/plugins/types.d.ts +82 -0
- package/dist/plugins/types.js +2 -0
- package/dist/prompts/agents/code-reviewer.md +16 -0
- package/dist/prompts/agents/security-auditor.md +17 -0
- package/dist/prompts/agents/test-writer.md +15 -0
- package/dist/prompts/attention/attention.md +12 -0
- package/dist/prompts/environment/environment.md +18 -0
- package/dist/prompts/environment/feishu.md +107 -0
- package/dist/prompts/flows/bootstrap-confirm.md +14 -0
- package/dist/prompts/flows/bootstrap-identity.md +11 -0
- package/dist/prompts/flows/bootstrap-soul.md +19 -0
- package/dist/prompts/flows/bootstrap-user.md +11 -0
- package/dist/prompts/flows/spec-checklist.md +27 -0
- package/dist/prompts/flows/spec-define.md +64 -0
- package/dist/prompts/flows/spec-executing-checklist.md +15 -0
- package/dist/prompts/flows/spec-executing-tasks.md +15 -0
- package/dist/prompts/flows/spec-spec.md +51 -0
- package/dist/prompts/flows/spec-tasks.md +32 -0
- package/dist/prompts/flows/todo-execution.md +7 -0
- package/dist/prompts/flows/todo-planning.md +18 -0
- package/dist/prompts/framework/architecture.md +131 -0
- package/dist/prompts/identity/identity.md +2 -0
- package/dist/prompts/loader.d.ts +24 -0
- package/dist/prompts/loader.js +102 -0
- package/dist/prompts/loader.ts +119 -0
- package/dist/prompts/orchestration/summary.md +14 -0
- package/dist/prompts/persona/BOOTSTRAP.md +5 -0
- package/dist/prompts/persona/IDENTITY.md +16 -0
- package/dist/prompts/persona/PartnerMemory.md +5 -0
- package/dist/prompts/persona/PartnerSoul.md +7 -0
- package/dist/prompts/persona/SOUL.md +30 -0
- package/dist/prompts/persona/USER.md +16 -0
- package/dist/prompts/precise/analyze.md +23 -0
- package/dist/prompts/precise/persona.md +18 -0
- package/dist/prompts/safety/coding-standards.md +5 -0
- package/dist/prompts/safety/safety.md +4 -0
- package/dist/prompts/skills/code-review.md +4 -0
- package/dist/prompts/skills/debug.md +7 -0
- package/dist/prompts/skills/framework-reference.md +131 -0
- package/dist/prompts/skills/refactor.md +6 -0
- package/dist/prompts/summary.md +22 -0
- package/dist/prompts/tools/framework-capabilities.md +241 -0
- package/dist/prompts/tools/tool-rules.md +15 -0
- package/dist/provider/anthropic.d.ts +62 -0
- package/dist/provider/anthropic.js +361 -0
- package/dist/provider/catalog.d.ts +58 -0
- package/dist/provider/catalog.js +97 -0
- package/dist/provider/compatible.d.ts +89 -0
- package/dist/provider/compatible.js +328 -0
- package/dist/provider/config.d.ts +23 -0
- package/dist/provider/config.js +158 -0
- package/dist/provider/deepseek.d.ts +25 -0
- package/dist/provider/deepseek.js +37 -0
- package/dist/provider/fallback.d.ts +51 -0
- package/dist/provider/fallback.js +113 -0
- package/dist/provider/gemini.d.ts +27 -0
- package/dist/provider/gemini.js +170 -0
- package/dist/provider/index.d.ts +36 -0
- package/dist/provider/index.js +42 -0
- package/dist/provider/interface.d.ts +62 -0
- package/dist/provider/interface.js +2 -0
- package/dist/provider/local-config.d.ts +37 -0
- package/dist/provider/local-config.js +146 -0
- package/dist/provider/local.d.ts +45 -0
- package/dist/provider/local.js +248 -0
- package/dist/provider/manager.d.ts +67 -0
- package/dist/provider/manager.js +355 -0
- package/dist/provider/mimo.d.ts +19 -0
- package/dist/provider/mimo.js +30 -0
- package/dist/provider/minimax.d.ts +22 -0
- package/dist/provider/minimax.js +33 -0
- package/dist/provider/model-catalog-loader.d.ts +42 -0
- package/dist/provider/model-catalog-loader.js +89 -0
- package/dist/provider/model-channel-registry.d.ts +130 -0
- package/dist/provider/model-channel-registry.js +488 -0
- package/dist/provider/model-router.d.ts +60 -0
- package/dist/provider/model-router.js +87 -0
- package/dist/provider/openai.d.ts +54 -0
- package/dist/provider/openai.js +274 -0
- package/dist/provider/qwen.d.ts +19 -0
- package/dist/provider/qwen.js +30 -0
- package/dist/provider/resilient.d.ts +46 -0
- package/dist/provider/resilient.js +181 -0
- package/dist/provider/retry.d.ts +16 -0
- package/dist/provider/retry.js +78 -0
- package/dist/provider/router.d.ts +68 -0
- package/dist/provider/router.js +145 -0
- package/dist/provider/tool-args-recovery.d.ts +36 -0
- package/dist/provider/tool-args-recovery.js +91 -0
- package/dist/provider/user-id.d.ts +13 -0
- package/dist/provider/user-id.js +53 -0
- package/dist/provider/zhipu.d.ts +19 -0
- package/dist/provider/zhipu.js +32 -0
- package/dist/registry/agent.registry.d.ts +57 -0
- package/dist/registry/agent.registry.js +224 -0
- package/dist/registry/base.d.ts +54 -0
- package/dist/registry/base.js +99 -0
- package/dist/registry/channel.registry.d.ts +53 -0
- package/dist/registry/channel.registry.js +87 -0
- package/dist/registry/index.d.ts +9 -0
- package/dist/registry/index.js +10 -0
- package/dist/registry/mcp.registry.d.ts +2 -0
- package/dist/registry/mcp.registry.js +2 -0
- package/dist/registry/plugin.registry.d.ts +33 -0
- package/dist/registry/plugin.registry.js +66 -0
- package/dist/registry/provider.registry.d.ts +51 -0
- package/dist/registry/provider.registry.js +104 -0
- package/dist/registry/skill.registry.d.ts +33 -0
- package/dist/registry/skill.registry.js +95 -0
- package/dist/registry/tool.registry.d.ts +68 -0
- package/dist/registry/tool.registry.js +185 -0
- package/dist/repair/loop-guard.d.ts +98 -0
- package/dist/repair/loop-guard.js +217 -0
- package/dist/repair/scavenge.d.ts +19 -0
- package/dist/repair/scavenge.js +81 -0
- package/dist/repair/storm.d.ts +7 -0
- package/dist/repair/storm.js +7 -0
- package/dist/rollback/index.d.ts +5 -0
- package/dist/rollback/index.js +4 -0
- package/dist/rollback/rollback-tool.d.ts +13 -0
- package/dist/rollback/rollback-tool.js +167 -0
- package/dist/rollback/turn-recorder.d.ts +37 -0
- package/dist/rollback/turn-recorder.js +183 -0
- package/dist/rollback/turn-store.d.ts +29 -0
- package/dist/rollback/turn-store.js +114 -0
- package/dist/rollback/types.d.ts +51 -0
- package/dist/rollback/types.js +9 -0
- package/dist/runtime/config-center.d.ts +92 -0
- package/dist/runtime/config-center.js +467 -0
- package/dist/runtime/config-schema.d.ts +201 -0
- package/dist/runtime/config-schema.js +2 -0
- package/dist/runtime/defaults.d.ts +3 -0
- package/dist/runtime/defaults.js +146 -0
- package/dist/schedule/cron.d.ts +24 -0
- package/dist/schedule/cron.js +145 -0
- package/dist/schedule/index.d.ts +6 -0
- package/dist/schedule/index.js +4 -0
- package/dist/schedule/persistence.d.ts +33 -0
- package/dist/schedule/persistence.js +106 -0
- package/dist/schedule/scheduler.d.ts +85 -0
- package/dist/schedule/scheduler.js +630 -0
- package/dist/schedule/types.d.ts +185 -0
- package/dist/schedule/types.js +2 -0
- package/dist/setup/config.d.ts +189 -0
- package/dist/setup/config.js +253 -0
- package/dist/setup/index.d.ts +3 -0
- package/dist/setup/index.js +3 -0
- package/dist/setup/model-defaults.d.ts +13 -0
- package/dist/setup/model-defaults.js +87 -0
- package/dist/setup/persona-bootstrap.d.ts +42 -0
- package/dist/setup/persona-bootstrap.js +379 -0
- package/dist/setup/wizard.d.ts +32 -0
- package/dist/setup/wizard.js +384 -0
- package/dist/skills/index.d.ts +4 -0
- package/dist/skills/index.js +4 -0
- package/dist/skills/loader.d.ts +12 -0
- package/dist/skills/loader.js +83 -0
- package/dist/skills/registry.d.ts +2 -0
- package/dist/skills/registry.js +2 -0
- package/dist/skills/skill-tool.d.ts +20 -0
- package/dist/skills/skill-tool.js +49 -0
- package/dist/tools/archive.d.ts +17 -0
- package/dist/tools/archive.js +131 -0
- package/dist/tools/ask-user.d.ts +9 -0
- package/dist/tools/ask-user.js +62 -0
- package/dist/tools/background-registry.d.ts +45 -0
- package/dist/tools/background-registry.js +164 -0
- package/dist/tools/bash.d.ts +56 -0
- package/dist/tools/bash.js +391 -0
- package/dist/tools/bundle-registry.d.ts +42 -0
- package/dist/tools/bundle-registry.js +239 -0
- package/dist/tools/bundle-tools.d.ts +11 -0
- package/dist/tools/bundle-tools.js +168 -0
- package/dist/tools/channel-info.d.ts +5 -0
- package/dist/tools/channel-info.js +38 -0
- package/dist/tools/compression.d.ts +7 -0
- package/dist/tools/compression.js +21 -0
- package/dist/tools/config.d.ts +23 -0
- package/dist/tools/config.js +255 -0
- package/dist/tools/db-query.d.ts +12 -0
- package/dist/tools/db-query.js +107 -0
- package/dist/tools/diagnostics.d.ts +30 -0
- package/dist/tools/diagnostics.js +111 -0
- package/dist/tools/diff-channel.d.ts +9 -0
- package/dist/tools/diff-channel.js +17 -0
- package/dist/tools/diff-files.d.ts +17 -0
- package/dist/tools/diff-files.js +88 -0
- package/dist/tools/disk-usage.d.ts +34 -0
- package/dist/tools/disk-usage.js +258 -0
- package/dist/tools/edit.d.ts +30 -0
- package/dist/tools/edit.js +235 -0
- package/dist/tools/executor.d.ts +32 -0
- package/dist/tools/executor.js +66 -0
- package/dist/tools/file-tracker.d.ts +20 -0
- package/dist/tools/file-tracker.js +44 -0
- package/dist/tools/filtered-registry.d.ts +29 -0
- package/dist/tools/filtered-registry.js +50 -0
- package/dist/tools/flow.d.ts +10 -0
- package/dist/tools/flow.js +180 -0
- package/dist/tools/git-tool.d.ts +24 -0
- package/dist/tools/git-tool.js +113 -0
- package/dist/tools/glob.d.ts +29 -0
- package/dist/tools/glob.js +152 -0
- package/dist/tools/grep.d.ts +14 -0
- package/dist/tools/grep.js +325 -0
- package/dist/tools/http-request.d.ts +14 -0
- package/dist/tools/http-request.js +126 -0
- package/dist/tools/index.d.ts +43 -0
- package/dist/tools/index.js +76 -0
- package/dist/tools/injection-filter.d.ts +6 -0
- package/dist/tools/injection-filter.js +71 -0
- package/dist/tools/insert.d.ts +13 -0
- package/dist/tools/insert.js +61 -0
- package/dist/tools/interface.d.ts +30 -0
- package/dist/tools/interface.js +2 -0
- package/dist/tools/json-edit.d.ts +15 -0
- package/dist/tools/json-edit.js +122 -0
- package/dist/tools/multi-edit.d.ts +9 -0
- package/dist/tools/multi-edit.js +146 -0
- package/dist/tools/path-sandbox.d.ts +14 -0
- package/dist/tools/path-sandbox.js +60 -0
- package/dist/tools/process-tools.d.ts +15 -0
- package/dist/tools/process-tools.js +95 -0
- package/dist/tools/python-bridge/bridge.d.ts +24 -0
- package/dist/tools/python-bridge/bridge.js +39 -0
- package/dist/tools/python-bridge/executor.d.ts +6 -0
- package/dist/tools/python-bridge/executor.js +69 -0
- package/dist/tools/python-bridge/index.d.ts +5 -0
- package/dist/tools/python-bridge/index.js +4 -0
- package/dist/tools/python-bridge/parser.d.ts +21 -0
- package/dist/tools/python-bridge/parser.js +258 -0
- package/dist/tools/read.d.ts +16 -0
- package/dist/tools/read.js +276 -0
- package/dist/tools/registry.d.ts +2 -0
- package/dist/tools/registry.js +2 -0
- package/dist/tools/restart.d.ts +10 -0
- package/dist/tools/restart.js +46 -0
- package/dist/tools/result-buffer.d.ts +66 -0
- package/dist/tools/result-buffer.js +146 -0
- package/dist/tools/runtime-control.d.ts +163 -0
- package/dist/tools/runtime-control.js +1780 -0
- package/dist/tools/symbol-references.d.ts +5 -0
- package/dist/tools/symbol-references.js +331 -0
- package/dist/tools/system-info.d.ts +3 -0
- package/dist/tools/system-info.js +55 -0
- package/dist/tools/write.d.ts +18 -0
- package/dist/tools/write.js +118 -0
- package/dist/tools/xref/index.d.ts +25 -0
- package/dist/tools/xref/index.js +25 -0
- package/dist/tools/xref/manager.d.ts +85 -0
- package/dist/tools/xref/manager.js +948 -0
- package/dist/tools/xref/parser.d.ts +34 -0
- package/dist/tools/xref/parser.js +64 -0
- package/dist/tools/xref/regex-parser.d.ts +26 -0
- package/dist/tools/xref/regex-parser.js +446 -0
- package/dist/tools/xref/schema.d.ts +104 -0
- package/dist/tools/xref/schema.js +68 -0
- package/dist/tools/xref/ts-parser.d.ts +20 -0
- package/dist/tools/xref/ts-parser.js +403 -0
- package/dist/tools/xref/xref-build.d.ts +20 -0
- package/dist/tools/xref/xref-build.js +128 -0
- package/dist/tools/xref/xref-graph.d.ts +24 -0
- package/dist/tools/xref/xref-graph.js +88 -0
- package/dist/tools/xref/xref-query.d.ts +30 -0
- package/dist/tools/xref/xref-query.js +123 -0
- package/dist/types.d.ts +217 -0
- package/dist/types.js +2 -0
- package/dist/ui/assistant-message.d.ts +7 -0
- package/dist/ui/assistant-message.js +18 -0
- package/dist/ui/chat-log.d.ts +52 -0
- package/dist/ui/chat-log.js +246 -0
- package/dist/ui/command-registry.d.ts +73 -0
- package/dist/ui/command-registry.js +838 -0
- package/dist/ui/diff-component.d.ts +14 -0
- package/dist/ui/diff-component.js +42 -0
- package/dist/ui/hyperlink-markdown.d.ts +10 -0
- package/dist/ui/hyperlink-markdown.js +21 -0
- package/dist/ui/markdown-message.d.ts +10 -0
- package/dist/ui/markdown-message.js +16 -0
- package/dist/ui/osc8-hyperlinks.d.ts +4 -0
- package/dist/ui/osc8-hyperlinks.js +142 -0
- package/dist/ui/pi-tui-editor.d.ts +35 -0
- package/dist/ui/pi-tui-editor.js +79 -0
- package/dist/ui/slash-commands.d.ts +16 -0
- package/dist/ui/slash-commands.js +29 -0
- package/dist/ui/slash-panel.d.ts +54 -0
- package/dist/ui/slash-panel.js +199 -0
- package/dist/ui/theme.d.ts +120 -0
- package/dist/ui/theme.js +154 -0
- package/dist/ui/tool-display.d.ts +13 -0
- package/dist/ui/tool-display.js +85 -0
- package/dist/ui/tool-execution.d.ts +22 -0
- package/dist/ui/tool-execution.js +87 -0
- package/dist/ui/tui-formatters.d.ts +2 -0
- package/dist/ui/tui-formatters.js +145 -0
- package/dist/ui/user-message.d.ts +5 -0
- package/dist/ui/user-message.js +11 -0
- package/dist/update/check.d.ts +8 -0
- package/dist/update/check.js +28 -0
- package/dist/update/config.d.ts +6 -0
- package/dist/update/config.js +18 -0
- package/dist/update/download.d.ts +3 -0
- package/dist/update/download.js +27 -0
- package/dist/update/index.d.ts +6 -0
- package/dist/update/index.js +5 -0
- package/dist/update/install.d.ts +3 -0
- package/dist/update/install.js +33 -0
- package/dist/update/types.d.ts +16 -0
- package/dist/update/types.js +2 -0
- package/dist/utils/diff.d.ts +9 -0
- package/dist/utils/diff.js +45 -0
- package/dist/utils/misc.d.ts +12 -0
- package/dist/utils/misc.js +34 -0
- package/dist/world-engine/agent.d.ts +41 -0
- package/dist/world-engine/agent.js +385 -0
- package/dist/world-engine/index.d.ts +45 -0
- package/dist/world-engine/index.js +160 -0
- package/dist/world-engine/sim.d.ts +14 -0
- package/dist/world-engine/sim.js +120 -0
- package/dist/world-engine/store.d.ts +110 -0
- package/dist/world-engine/store.js +519 -0
- package/dist/world-engine/ticker.d.ts +37 -0
- package/dist/world-engine/ticker.js +214 -0
- package/dist/world-engine/tools.d.ts +6 -0
- package/dist/world-engine/tools.js +380 -0
- package/dist/world-engine/types.d.ts +202 -0
- package/dist/world-engine/types.js +56 -0
- package/docs/api.md +180 -0
- package/docs/architecture.md +206 -0
- package/docs/diagnostics/2026-06-08-config-prompt-guidance.md +67 -0
- package/docs/superpowers/plans/2026-06-08-global-bootstrap-mode.md +89 -0
- package/docs/superpowers/specs/2026-06-08-global-bootstrap-mode-design.md +174 -0
- package/docs/user-guide.md +226 -0
- package/package.json +63 -0
- package/plugins/example-greeter/index.js +55 -0
- package/plugins/example-greeter/plugin.json +8 -0
- package/pnpm-workspace.yaml +5 -0
- package/provider_arch.md +179 -0
- package/start-webui.sh +27 -0
- package/tsconfig.tsbuildinfo +1 -0
- package/webui-channel-design.md +789 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# é
įŊŽæį¤ēč¯åĸåŧē莰åŊ
|
|
2
|
+
|
|
3
|
+
æĨæ: 2026-06-08
|
|
4
|
+
|
|
5
|
+
## 违
|
|
6
|
+
|
|
7
|
+
äšåå¨ release į¯åĸä¸å°č¯čŽŠ Agent é
įŊŽéŖäšĻæ¸ éæļīŧæ¨Ąåæ˛ĄææįĄŽįĨéåēč¯ĨäŋŽæšåĒä¸Ēé
įŊŽæäģļīŧäšåŽšæææ¸ éé
įŊŽåŊææŽéčŋčĄæļé
įŊŽå¤įã
|
|
8
|
+
|
|
9
|
+
ææĨåįĄŽčŽ¤īŧ
|
|
10
|
+
|
|
11
|
+
- `src/prompts/environment/feishu.md` 厞įģå
åĢéŖäšĻé
įŊŽįģčīŧäŊåŽä¸æ¯éģčŽ¤æŗ¨å
Ĩä¸ä¸æã
|
|
12
|
+
- `src/prompts/tools/framework-capabilities.md` æ¯éģčŽ¤æŗ¨å
ĨįæĄæļčŊåæį¤ēč¯īŧéåæžéį¨é
įŊŽæå¯ŧã
|
|
13
|
+
- `src/prompts/environment/environment.md` æ¯éģ莤į¯åĸæŽĩīŧéåæžé
įŊŽæäģļ莝åžį´ĸåŧã
|
|
14
|
+
|
|
15
|
+
## äŋŽæšå
厚
|
|
16
|
+
|
|
17
|
+
### framework-capabilities.md
|
|
18
|
+
|
|
19
|
+
æäģļ: `src/prompts/tools/framework-capabilities.md`
|
|
20
|
+
|
|
21
|
+
æ°åĸäē两įąģé
įŊŽæå¯ŧīŧ
|
|
22
|
+
|
|
23
|
+
1. čŋčĄæļé
įŊŽ
|
|
24
|
+
- æįĄŽ `get_config` / `update_config` / `reset_config` / `config_schema` éåäŋŽæš RuntimeConfigCenter åˇ˛æ¯æį莝åžã
|
|
25
|
+
- čĄĨå
常č§čˇ¯åžīŧäžåĻ `provider.active`ã`provider.<provider>.model`ã`session.maxTurns`ã`session.maxContext`ã`safety.requireConfirmation`ã`tools.disabled`ã`skills.disabled`ã`models.assessment`ã`logging.level`ã`hotReload.*` įã
|
|
26
|
+
|
|
27
|
+
2. éĄšįŽæäģļé
įŊŽ
|
|
28
|
+
- æįĄŽé¨åé
įŊŽä¸åēäŧå
äŊŋ፠`update_config`īŧčåēč¯ģååšļååéĄšįŽ `.agent/` ä¸į JSON æäģļã
|
|
29
|
+
- čĻ῏ éãMCPãåˇĨå
ˇå
ãProvider å
æ°æŽãæŦå°æ¨ĄåãæŦå° Providerãå AgentãčēĢäģŊæį¤ēč¯įé
įŊŽå
ĨåŖã
|
|
30
|
+
- ä¸ēæ¸ éé
įŊŽåĸå ä¸é¨č¯´æīŧæįĄŽéŖäšĻ/Lark ῏ éåå
Ĩ饚įŽįē§ `.agent/config.json` į `channels` åæŽĩã
|
|
31
|
+
- åŧēč°äŋŽæš JSON æļåŋ
éĄģäŋį厞æåæŽĩīŧåĒååšļ፿ˇčĻæąįé¨åã
|
|
32
|
+
|
|
33
|
+
### environment.md
|
|
34
|
+
|
|
35
|
+
æäģļ: `src/prompts/environment/environment.md`
|
|
36
|
+
|
|
37
|
+
æ°åĸéģ莤į¯åĸ莝åžį´ĸåŧīŧ
|
|
38
|
+
|
|
39
|
+
- å
¨åąčēĢäģŊæį¤ēč¯: `~/.agent/prompts/persona/*.md`
|
|
40
|
+
- æ¸ éé
įŊŽ: 饚įŽįē§ `{{cwd}}/.agent/config.json` į `channels` åæŽĩ
|
|
41
|
+
- MCP é
įŊŽ: `{{cwd}}/.agent/mcp.json`
|
|
42
|
+
- åˇĨå
ˇå
é
įŊŽ: `{{cwd}}/.agent/tool-bundles.json`
|
|
43
|
+
- Provider å
æ°æŽ: `{{cwd}}/.agent/providers.json`
|
|
44
|
+
- æŦå°æ¨Ąåé
įŊŽ: `{{cwd}}/.agent/models.json` æ `{{cwd}}/.agent/local-models.json`
|
|
45
|
+
|
|
46
|
+
## éĸæææ
|
|
47
|
+
|
|
48
|
+
æ¨Ąåå¨į¨æˇčĻæąäŋŽæšæĄæļ莞įŊŽæļīŧåēå
å¤æįŽæ åąäēåĒįąģé
įŊŽīŧ
|
|
49
|
+
|
|
50
|
+
- åϿ莝åžåå¨äē `config_schema`īŧäŧå
äŊŋ፠`update_config`ã
|
|
51
|
+
- åĻææ¯æ¸ éãMCPãåˇĨå
ˇå
ãProvider å
æ°æŽãæŦå°æ¨ĄåįéĄšįŽæäģļé
įŊŽīŧåäŊŋ፠`read` + `write` äŋŽæšå¯šåē JSONã
|
|
52
|
+
- é
įŊŽéŖäšĻ/Lark æ¸ éæļīŧäŧå
äŋŽæšåŊååˇĨäŊåē `.agent/config.json` į `channels.feishu`īŧä¸čĻ蝝፠`update_config`ã
|
|
53
|
+
- äŋŽæšååēåįĨ፿ˇåŊååŧåčŽĄåæšæįåŧīŧä¸ä¸åēæ API Key åå
Ĩä¸åéįäŊįŊŽã
|
|
54
|
+
|
|
55
|
+
## éĒč¯
|
|
56
|
+
|
|
57
|
+
厞æ§čĄīŧ
|
|
58
|
+
|
|
59
|
+
```powershell
|
|
60
|
+
corepack pnpm run build
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
įģæīŧ
|
|
64
|
+
|
|
65
|
+
- TypeScript įŧč¯éčŋã
|
|
66
|
+
- `src/prompts` 厞åæĨå¤åļå° `dist/prompts`ã
|
|
67
|
+
- åˇ˛įĄŽčŽ¤ `dist/prompts/tools/framework-capabilities.md` ä¸å
åĢæ°åĸįčŋčĄæļé
įŊŽãéĄšįŽæäģļé
įŊŽåæ¸ éé
įŊŽč¯´æã
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# Global Bootstrap Mode Implementation Plan
|
|
2
|
+
|
|
3
|
+
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
|
|
4
|
+
|
|
5
|
+
**Goal:** Replace session/file-deletion bootstrap with a global first-run `bootstrap` mode that writes persona files once and then stops injecting.
|
|
6
|
+
|
|
7
|
+
**Architecture:** Reuse the existing `ModeManager` lifecycle and Zone 5 `mode-injection` path. Add a global persona bootstrap store, a `bootstrap` mode, and a dedicated `bootstrap_mark` tool; startup code activates the mode only when global persona state is incomplete.
|
|
8
|
+
|
|
9
|
+
**Tech Stack:** TypeScript, Node.js ESM, Vitest, existing `ModeDefinition`, `ConfigManager`, and prompt loader patterns.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
### Task 1: Global Persona Store
|
|
14
|
+
|
|
15
|
+
**Files:**
|
|
16
|
+
- Modify: `src/setup/persona-bootstrap.ts`
|
|
17
|
+
- Test: `src/setup/persona-bootstrap.test.ts`
|
|
18
|
+
|
|
19
|
+
- [ ] Add tests for global directory resolution, template creation, validation, and completion state.
|
|
20
|
+
- [ ] Refactor `DEFAULT_PERSONA_DIR` to resolve under `~/.agent/prompts/persona` by default.
|
|
21
|
+
- [ ] Add `ensureGlobalPersonaFiles()`, `validatePersonaFiles()`, `isBootstrapComplete()`, and `markBootstrapComplete()`.
|
|
22
|
+
- [ ] Keep compatibility wrappers for existing callers where practical.
|
|
23
|
+
- [ ] Run `pnpm test src/setup/persona-bootstrap.test.ts`.
|
|
24
|
+
|
|
25
|
+
### Task 2: Bootstrap Mode
|
|
26
|
+
|
|
27
|
+
**Files:**
|
|
28
|
+
- Create: `src/modes/bootstrap.mode.ts`
|
|
29
|
+
- Modify: `src/modes/index.ts`
|
|
30
|
+
- Create: `src/prompts/modes/bootstrap.md`
|
|
31
|
+
- Test: `src/modes/bootstrap.mode.test.ts`
|
|
32
|
+
|
|
33
|
+
- [ ] Add a failing test that `bootstrap` renders mode guidance and stays active before completion.
|
|
34
|
+
- [ ] Add a failing test that `bootstrap_mark({ action: "complete" })` only completes after validation passes.
|
|
35
|
+
- [ ] Implement `createBootstrapMode(personaDir)` using the existing `ModeDefinition` interface.
|
|
36
|
+
- [ ] Add prompt instructions for natural first-run identity collection and persona file writing.
|
|
37
|
+
- [ ] Export the mode from `src/modes/index.ts`.
|
|
38
|
+
- [ ] Run `pnpm test src/modes/bootstrap.mode.test.ts`.
|
|
39
|
+
|
|
40
|
+
### Task 3: Bootstrap Mark Tool
|
|
41
|
+
|
|
42
|
+
**Files:**
|
|
43
|
+
- Create: `src/tools/bootstrap.ts`
|
|
44
|
+
- Modify: `src/gateway/factory.ts`
|
|
45
|
+
- Test: `src/tools/bootstrap.test.ts`
|
|
46
|
+
|
|
47
|
+
- [ ] Add a failing test for `bootstrap_mark` returning progress and completion errors.
|
|
48
|
+
- [ ] Implement a small tool that delegates `progress` and `complete` actions to `ModeManager.dispatchToolCall()`.
|
|
49
|
+
- [ ] Register `bootstrap_mark` in `createAgent()` after `ModeManager` exists.
|
|
50
|
+
- [ ] Ensure `bootstrap_mark` is available during bootstrap even when tool bundles are active.
|
|
51
|
+
- [ ] Run `pnpm test src/tools/bootstrap.test.ts`.
|
|
52
|
+
|
|
53
|
+
### Task 4: Startup Integration
|
|
54
|
+
|
|
55
|
+
**Files:**
|
|
56
|
+
- Modify: `src/gateway/cli.ts`
|
|
57
|
+
- Modify: `src/gateway/tui.ts`
|
|
58
|
+
- Modify: `src/gateway/factory.ts`
|
|
59
|
+
- Modify: `src/orchestrator/loop.ts`
|
|
60
|
+
- Test: focused integration/unit tests if existing gateway tests permit
|
|
61
|
+
|
|
62
|
+
- [ ] Ensure both TUI and non-TUI paths call the same global persona status helpers.
|
|
63
|
+
- [ ] Register `bootstrap` mode in `createAgent()` and auto-activate it when global state is incomplete.
|
|
64
|
+
- [ ] Trigger an automatic first model turn when bootstrap is active.
|
|
65
|
+
- [ ] Remove reliance on deleting `BOOTSTRAP.md` as the completion signal.
|
|
66
|
+
- [ ] Keep `startBootstrap()` as a compatibility wrapper around the new active mode if needed.
|
|
67
|
+
- [ ] Run `pnpm test` or the narrowest available test set.
|
|
68
|
+
|
|
69
|
+
### Task 5: Prompt Loading and Backward Compatibility
|
|
70
|
+
|
|
71
|
+
**Files:**
|
|
72
|
+
- Modify: `src/context/section-resolver.ts`
|
|
73
|
+
- Modify: `src/prompts/persona/BOOTSTRAP.md`
|
|
74
|
+
- Test: covered by previous tests or add resolver test if available
|
|
75
|
+
|
|
76
|
+
- [ ] Prefer project persona override, then global persona files, then built-in templates for `SOUL/IDENTITY/USER`.
|
|
77
|
+
- [ ] Stop using `persona/BOOTSTRAP.md` as a stateful bootstrap prompt.
|
|
78
|
+
- [ ] Turn `BOOTSTRAP.md` into a legacy note or leave it unused for compatibility.
|
|
79
|
+
- [ ] Verify compose output includes bootstrap only through `mode-injection`.
|
|
80
|
+
|
|
81
|
+
### Task 6: Final Verification
|
|
82
|
+
|
|
83
|
+
**Files:**
|
|
84
|
+
- All changed files
|
|
85
|
+
|
|
86
|
+
- [ ] Run `pnpm test`.
|
|
87
|
+
- [ ] Run `pnpm build`.
|
|
88
|
+
- [ ] Inspect changed files for accidental secrets or home-directory writes beyond intended global persona defaults.
|
|
89
|
+
- [ ] Summarize final behavior and any test gaps.
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
# Global Bootstrap Mode Design
|
|
2
|
+
|
|
3
|
+
## Why
|
|
4
|
+
|
|
5
|
+
The first-run identity bootstrap is a staged task, but the current implementation treats it like a conditional prompt plus a file-deletion signal. This makes it easy to retrigger per session, skip in some startup paths, or complete without verifying that persona files were actually written.
|
|
6
|
+
|
|
7
|
+
## What Changes
|
|
8
|
+
|
|
9
|
+
- Add a dedicated `bootstrap` mode alongside `plan`, `spec`, and `todo`.
|
|
10
|
+
- Store bootstrap state globally, not in a session directory.
|
|
11
|
+
- Move bootstrap instructions from `persona/BOOTSTRAP.md` semantics into a mode prompt such as `prompts/modes/bootstrap.md`.
|
|
12
|
+
- Trigger bootstrap automatically only when the global persona state is incomplete.
|
|
13
|
+
- Complete bootstrap only after required global persona files are written and validated.
|
|
14
|
+
- Stop injecting bootstrap guidance immediately after completion.
|
|
15
|
+
|
|
16
|
+
## Scope
|
|
17
|
+
|
|
18
|
+
In scope:
|
|
19
|
+
|
|
20
|
+
- Global persona bootstrap lifecycle.
|
|
21
|
+
- Startup detection and automatic activation.
|
|
22
|
+
- Mode prompt injection through the existing `mode-injection` Zone 5 path.
|
|
23
|
+
- Completion state persisted in global persona state.
|
|
24
|
+
- TUI and non-TUI startup consistency.
|
|
25
|
+
|
|
26
|
+
Out of scope:
|
|
27
|
+
|
|
28
|
+
- Provider installation and API key setup.
|
|
29
|
+
- Changing normal `plan`, `spec`, or `todo` behavior.
|
|
30
|
+
- Project-specific persona profiles beyond optional future override support.
|
|
31
|
+
|
|
32
|
+
## Storage
|
|
33
|
+
|
|
34
|
+
Use a global persona directory as the default identity source:
|
|
35
|
+
|
|
36
|
+
```text
|
|
37
|
+
~/.agent/
|
|
38
|
+
prompts/
|
|
39
|
+
persona/
|
|
40
|
+
SOUL.md
|
|
41
|
+
IDENTITY.md
|
|
42
|
+
USER.md
|
|
43
|
+
.state/
|
|
44
|
+
persona-state.json
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
The project-level `.agent/prompts/persona` directory may remain as an override mechanism, but first-run identity bootstrap writes to the global persona directory.
|
|
48
|
+
|
|
49
|
+
The state file records at least:
|
|
50
|
+
|
|
51
|
+
```json
|
|
52
|
+
{
|
|
53
|
+
"version": 1,
|
|
54
|
+
"bootstrapSeededAt": "ISO timestamp",
|
|
55
|
+
"setupCompletedAt": "ISO timestamp"
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
`setupCompletedAt` is the source of truth for completion. Deleting a prompt file is not a completion signal.
|
|
60
|
+
|
|
61
|
+
## Startup Flow
|
|
62
|
+
|
|
63
|
+
1. Load normal install/config state.
|
|
64
|
+
2. Resolve the global persona directory.
|
|
65
|
+
3. Ensure global `SOUL.md`, `IDENTITY.md`, and `USER.md` exist.
|
|
66
|
+
4. Read global persona state.
|
|
67
|
+
5. If `setupCompletedAt` exists, start normally.
|
|
68
|
+
6. If `setupCompletedAt` is missing, activate `bootstrap` mode before the first model turn.
|
|
69
|
+
7. The first model turn is initiated automatically so the Agent greets the user and starts collecting identity preferences.
|
|
70
|
+
8. Bootstrap mode remains active across turns until completion.
|
|
71
|
+
9. On completion, write state, deactivate the mode, and continue normal conversation without bootstrap injection.
|
|
72
|
+
|
|
73
|
+
## Bootstrap Mode Behavior
|
|
74
|
+
|
|
75
|
+
`bootstrap` is a framework mode, not a normal task mode users are expected to activate for daily work.
|
|
76
|
+
|
|
77
|
+
It should:
|
|
78
|
+
|
|
79
|
+
- Prompt the Agent to greet the user naturally.
|
|
80
|
+
- Collect Agent identity fields: name, role, style, boundaries, optional symbol.
|
|
81
|
+
- Collect user fields: name, preferred address, timezone, background, preferences.
|
|
82
|
+
- Collect collaboration preferences: initiative level, confirmation boundaries, coding style.
|
|
83
|
+
- Ask follow-up questions only when required information is missing.
|
|
84
|
+
- Write persona files with existing tools or a dedicated persona write helper.
|
|
85
|
+
- Mark completion only after validation passes.
|
|
86
|
+
|
|
87
|
+
## Completion Contract
|
|
88
|
+
|
|
89
|
+
Bootstrap can complete when all of the following are true:
|
|
90
|
+
|
|
91
|
+
- `IDENTITY.md` no longer contains the untouched template placeholders.
|
|
92
|
+
- `USER.md` no longer contains the untouched template placeholders.
|
|
93
|
+
- `SOUL.md` exists and remains usable as the long-term style/behavior guide.
|
|
94
|
+
- The user has either explicitly confirmed the captured identity information or the Agent has summarized it and received no correction in the final bootstrap turn.
|
|
95
|
+
|
|
96
|
+
After completion:
|
|
97
|
+
|
|
98
|
+
- Write `setupCompletedAt`.
|
|
99
|
+
- Deactivate `bootstrap` mode.
|
|
100
|
+
- Do not inject `bootstrap` prompt again in new sessions.
|
|
101
|
+
|
|
102
|
+
## Components
|
|
103
|
+
|
|
104
|
+
### `BootstrapMode`
|
|
105
|
+
|
|
106
|
+
New mode definition implementing the existing `ModeDefinition` interface:
|
|
107
|
+
|
|
108
|
+
- `createState()` initializes global persona paths and required fields.
|
|
109
|
+
- `renderForInjection()` renders `prompts/modes/bootstrap.md`.
|
|
110
|
+
- `handleToolCall()` accepts progress markers or a completion marker.
|
|
111
|
+
- `isComplete()` returns true only after validation.
|
|
112
|
+
|
|
113
|
+
### `PersonaBootstrapStore`
|
|
114
|
+
|
|
115
|
+
Small global store for:
|
|
116
|
+
|
|
117
|
+
- Resolving the global persona directory.
|
|
118
|
+
- Ensuring template files exist.
|
|
119
|
+
- Reading and writing persona state.
|
|
120
|
+
- Validating whether persona files are still templates.
|
|
121
|
+
- Marking bootstrap complete.
|
|
122
|
+
|
|
123
|
+
Existing `persona-bootstrap.ts` can be refactored into this role.
|
|
124
|
+
|
|
125
|
+
### Startup Integration
|
|
126
|
+
|
|
127
|
+
Both TUI and non-TUI creation paths should pass the same global persona state into `createAgent`.
|
|
128
|
+
|
|
129
|
+
If bootstrap is incomplete, `createAgent` or the gateway activates `bootstrap` mode before the first turn. The activation should not depend on a session-specific file.
|
|
130
|
+
|
|
131
|
+
### Prompt Loading
|
|
132
|
+
|
|
133
|
+
Long-term persona loading should prefer:
|
|
134
|
+
|
|
135
|
+
1. Project override, if explicitly present and intended.
|
|
136
|
+
2. Global persona files.
|
|
137
|
+
3. Built-in templates as fallback.
|
|
138
|
+
|
|
139
|
+
Bootstrap mode prompt should be loaded from `prompts/modes/bootstrap.md`, not from `persona/BOOTSTRAP.md`.
|
|
140
|
+
|
|
141
|
+
## Error Handling
|
|
142
|
+
|
|
143
|
+
- If persona files cannot be written, keep bootstrap active and report the write failure.
|
|
144
|
+
- If validation fails, keep bootstrap active and inject the missing fields in the next turn.
|
|
145
|
+
- If the user exits mid-bootstrap, keep state incomplete so the next session resumes bootstrap.
|
|
146
|
+
- If global state says complete but persona files are missing, recreate missing files and mark bootstrap incomplete.
|
|
147
|
+
|
|
148
|
+
## Testing
|
|
149
|
+
|
|
150
|
+
Unit tests:
|
|
151
|
+
|
|
152
|
+
- Global store creates missing persona files.
|
|
153
|
+
- Incomplete state activates bootstrap.
|
|
154
|
+
- Complete state does not activate bootstrap.
|
|
155
|
+
- Template files fail validation.
|
|
156
|
+
- Filled files pass validation.
|
|
157
|
+
|
|
158
|
+
Integration tests:
|
|
159
|
+
|
|
160
|
+
- First TUI startup activates bootstrap once.
|
|
161
|
+
- First non-TUI startup follows the same activation rule.
|
|
162
|
+
- Completing bootstrap writes global state and stops injection.
|
|
163
|
+
- New session after completion does not reinject bootstrap.
|
|
164
|
+
|
|
165
|
+
## Completion Tool
|
|
166
|
+
|
|
167
|
+
Use a dedicated `bootstrap_mark` tool instead of reusing `task_mark`.
|
|
168
|
+
|
|
169
|
+
The tool should support at least:
|
|
170
|
+
|
|
171
|
+
- `bootstrap_mark({ action: "progress", message })` for recording what has been collected.
|
|
172
|
+
- `bootstrap_mark({ action: "complete" })` for requesting completion after files have been written.
|
|
173
|
+
|
|
174
|
+
The mode still performs validation before accepting completion. If validation fails, the tool result explains what is missing and bootstrap mode remains active.
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
# User Guide
|
|
2
|
+
|
|
3
|
+
## Installation
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
# Install dependencies
|
|
7
|
+
pnpm install
|
|
8
|
+
|
|
9
|
+
# Build
|
|
10
|
+
pnpm build
|
|
11
|
+
|
|
12
|
+
# Link CLI globally
|
|
13
|
+
npm link # or: node dist/index.js
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Quick Start
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
# Set up API key
|
|
20
|
+
export ANTHROPIC_API_KEY=sk-ant-...
|
|
21
|
+
|
|
22
|
+
# Run in interactive mode
|
|
23
|
+
agent
|
|
24
|
+
|
|
25
|
+
# Run a one-shot prompt
|
|
26
|
+
agent "Explain the architecture of this project"
|
|
27
|
+
|
|
28
|
+
# Run with explicit provider and model
|
|
29
|
+
agent -p openai -m gpt-4o "Review this code"
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## CLI Commands
|
|
33
|
+
|
|
34
|
+
### Basic Usage
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
agent [options] [prompt]
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
| Option | Short | Description |
|
|
41
|
+
|--------|-------|-------------|
|
|
42
|
+
| `--provider <type>` | `-p` | Provider: anthropic, openai, deepseek, local, groq, xai, mistral, openrouter, gemini, moonshot |
|
|
43
|
+
| `--model <name>` | `-m` | Model name (defaults per provider) |
|
|
44
|
+
| `--interactive` | `-i` | Force interactive mode |
|
|
45
|
+
| `--tui` | | Full-screen terminal UI |
|
|
46
|
+
| `--max-turns <n>` | | Max turns (default: 40) |
|
|
47
|
+
| `--max-context <n>` | | Max context tokens (default: 200000) |
|
|
48
|
+
| `--continue` | | Resume most recent session |
|
|
49
|
+
| `--session <id>` | | Resume specific session |
|
|
50
|
+
| `--start-model` | | Start local model server |
|
|
51
|
+
| `--skip-setup` | | Skip first-run setup wizard |
|
|
52
|
+
|
|
53
|
+
### Subcommands
|
|
54
|
+
|
|
55
|
+
#### Setup Wizard
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
agent setup
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Interactive first-run configuration: API keys, default provider, model preferences.
|
|
62
|
+
|
|
63
|
+
#### HTTP Server
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
agent serve --port 3000 --provider anthropic
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Start the REST API server. See [API Reference](api.md) for endpoint details.
|
|
70
|
+
|
|
71
|
+
#### Session Management
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
# List sessions for current project
|
|
75
|
+
agent session list
|
|
76
|
+
|
|
77
|
+
# List sessions for a specific project
|
|
78
|
+
agent session list --project /path/to/project
|
|
79
|
+
|
|
80
|
+
# Delete a session
|
|
81
|
+
agent session delete 20260524-182358-c11f
|
|
82
|
+
|
|
83
|
+
# Export session as JSON
|
|
84
|
+
agent session export 20260524-182358-c11f -o ./session-backup.json
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Configuration
|
|
88
|
+
|
|
89
|
+
### Environment Variables
|
|
90
|
+
|
|
91
|
+
| Variable | Required For |
|
|
92
|
+
|----------|--------------|
|
|
93
|
+
| `ANTHROPIC_API_KEY` | Anthropic provider |
|
|
94
|
+
| `OPENAI_API_KEY` | OpenAI provider |
|
|
95
|
+
| `DEEPSEEK_API_KEY` | DeepSeek provider |
|
|
96
|
+
| `GROQ_API_KEY` | Groq provider |
|
|
97
|
+
| `XAI_API_KEY` | xAI provider |
|
|
98
|
+
| `MISTRAL_API_KEY` | Mistral provider |
|
|
99
|
+
| `OPENROUTER_API_KEY` | OpenRouter provider |
|
|
100
|
+
| `GEMINI_API_KEY` / `GOOGLE_API_KEY` | Gemini provider |
|
|
101
|
+
| `MOONSHOT_API_KEY` | Moonshot provider |
|
|
102
|
+
| `LOG_LEVEL` | Log level: debug, info, warn, error, off (default: info) |
|
|
103
|
+
|
|
104
|
+
### Config File
|
|
105
|
+
|
|
106
|
+
Place `.agent/config.json` in your project directory:
|
|
107
|
+
|
|
108
|
+
```json
|
|
109
|
+
{
|
|
110
|
+
"provider": {
|
|
111
|
+
"type": "anthropic",
|
|
112
|
+
"model": "claude-sonnet-4-20250514"
|
|
113
|
+
},
|
|
114
|
+
"maxTurns": 40,
|
|
115
|
+
"maxContext": 200000
|
|
116
|
+
}
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### MCP Servers
|
|
120
|
+
|
|
121
|
+
Configure MCP tools in `.agent/mcp.json` or `.mcp.json`:
|
|
122
|
+
|
|
123
|
+
```json
|
|
124
|
+
{
|
|
125
|
+
"mcpServers": {
|
|
126
|
+
"my-server": {
|
|
127
|
+
"command": "node",
|
|
128
|
+
"args": ["server.js"],
|
|
129
|
+
"env": { "KEY": "value" }
|
|
130
|
+
},
|
|
131
|
+
"remote-server": {
|
|
132
|
+
"url": "https://example.com/sse",
|
|
133
|
+
"headers": { "Authorization": "Bearer token" }
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## Custom Skills
|
|
140
|
+
|
|
141
|
+
Create `.md` files with YAML frontmatter in `~/.agent/skills/` (user-level) or `.agent/skills/` (project-level). Project skills override user skills with the same name.
|
|
142
|
+
|
|
143
|
+
```markdown
|
|
144
|
+
---
|
|
145
|
+
name: my-skill
|
|
146
|
+
description: A custom skill for my workflow
|
|
147
|
+
tools: read, bash, glob
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
Perform the following task based on the user's request:
|
|
151
|
+
|
|
152
|
+
{{task}}
|
|
153
|
+
|
|
154
|
+
Focus on accuracy and completeness.
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
Skills are hot-reloaded automatically â just save the file.
|
|
158
|
+
|
|
159
|
+
## Provider Fallback
|
|
160
|
+
|
|
161
|
+
Configure provider fallback chain in `.agent/config.json`:
|
|
162
|
+
|
|
163
|
+
```json
|
|
164
|
+
{
|
|
165
|
+
"provider": {
|
|
166
|
+
"type": "anthropic",
|
|
167
|
+
"model": "claude-sonnet-4-20250514",
|
|
168
|
+
"fallbacks": [
|
|
169
|
+
{ "type": "openai", "model": "gpt-4o" },
|
|
170
|
+
{ "type": "deepseek", "model": "deepseek-chat" }
|
|
171
|
+
]
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
When the primary provider fails (after retry + circuit breaker), the system automatically tries fallbacks in order.
|
|
177
|
+
|
|
178
|
+
## Sub-Agent Delegation
|
|
179
|
+
|
|
180
|
+
The built-in sub-agents are available as tools:
|
|
181
|
+
|
|
182
|
+
| Agent | Role |
|
|
183
|
+
|-------|------|
|
|
184
|
+
| `code-reviewer` | Review code for bugs and style issues |
|
|
185
|
+
| `security-auditor` | Audit code for security vulnerabilities |
|
|
186
|
+
| `test-writer` | Write and improve tests |
|
|
187
|
+
|
|
188
|
+
Invoke them by asking the agent: "Have code-reviewer review this file" or "Ask test-writer to write tests for this module."
|
|
189
|
+
|
|
190
|
+
Three collaboration modes:
|
|
191
|
+
- **Delegate**: Single agent handles the task
|
|
192
|
+
- **Adversarial**: Two agents independently review, results are merged
|
|
193
|
+
- **Parallel**: Multiple agents work simultaneously
|
|
194
|
+
|
|
195
|
+
## Local Models
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
# Start a local model and use it
|
|
199
|
+
agent --provider local --start-model --model "qwen2.5-coder:7b"
|
|
200
|
+
|
|
201
|
+
# Or start local model server first, then connect
|
|
202
|
+
agent --provider local
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
Supports llama.cpp, ollama, text-generation-webui, and vllm backends.
|
|
206
|
+
|
|
207
|
+
## Plugins
|
|
208
|
+
|
|
209
|
+
Place plugin directories in `.agent/plugins/`. Each plugin requires:
|
|
210
|
+
- `manifest.json` (metadata)
|
|
211
|
+
- Entry module (default: `index.ts`)
|
|
212
|
+
|
|
213
|
+
Example plugin structure:
|
|
214
|
+
|
|
215
|
+
```
|
|
216
|
+
.agent/plugins/my-plugin/
|
|
217
|
+
âââ manifest.json
|
|
218
|
+
âââ index.ts
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
## Troubleshooting
|
|
222
|
+
|
|
223
|
+
- **"No sessions found"**: Run at least one interaction first, or create a session explicitly.
|
|
224
|
+
- **Provider errors**: Check `LOG_LEVEL=debug` for detailed logs. Verify API keys in environment.
|
|
225
|
+
- **MCP connection failures**: Confirm the server command/URL is correct and the server is running.
|
|
226
|
+
- **Tests**: Run `pnpm test` to verify system health (138+ tests).
|
package/package.json
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "hyacinth-ai",
|
|
3
|
+
"version": "0.9.6",
|
|
4
|
+
"description": "Hyacinth đĒģ â multi-provider AI agent with tool system and context management",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"bin": {
|
|
8
|
+
"hyacinth": "dist/index.js"
|
|
9
|
+
},
|
|
10
|
+
"keywords": [
|
|
11
|
+
"ai",
|
|
12
|
+
"agent",
|
|
13
|
+
"cli",
|
|
14
|
+
"llm",
|
|
15
|
+
"mcp",
|
|
16
|
+
"anthropic",
|
|
17
|
+
"openai",
|
|
18
|
+
"deepseek"
|
|
19
|
+
],
|
|
20
|
+
"author": "åé",
|
|
21
|
+
"license": "MIT",
|
|
22
|
+
"dependencies": {
|
|
23
|
+
"@anthropic-ai/sdk": "^0.98.0",
|
|
24
|
+
"@clack/prompts": "^1.4.0",
|
|
25
|
+
"@earendil-works/pi-tui": "^0.75.4",
|
|
26
|
+
"@fastify/static": "^9.1.3",
|
|
27
|
+
"@google/genai": "^2.6.0",
|
|
28
|
+
"@larksuiteoapi/node-sdk": "^1.66.1",
|
|
29
|
+
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
30
|
+
"better-sqlite3": "^12.10.0",
|
|
31
|
+
"chalk": "^5.6.2",
|
|
32
|
+
"chokidar": "^5.0.0",
|
|
33
|
+
"chrome-devtools-mcp": "^1.2.0",
|
|
34
|
+
"commander": "^14.0.3",
|
|
35
|
+
"diff": "^9.0.0",
|
|
36
|
+
"fastify": "^5.8.5",
|
|
37
|
+
"js-tiktoken": "^1.0.21",
|
|
38
|
+
"mammoth": "^1.12.0",
|
|
39
|
+
"mcp-chrome-bridge": "^1.0.31",
|
|
40
|
+
"openai": "^6.39.0",
|
|
41
|
+
"picocolors": "^1.1.1",
|
|
42
|
+
"sharp": "^0.35.0",
|
|
43
|
+
"ws": "^8.21.0",
|
|
44
|
+
"xlsx": "^0.18.5"
|
|
45
|
+
},
|
|
46
|
+
"devDependencies": {
|
|
47
|
+
"@types/better-sqlite3": "^7.6.13",
|
|
48
|
+
"@types/node": "^25.9.1",
|
|
49
|
+
"@types/ws": "^8.18.1",
|
|
50
|
+
"typescript": "^6.0.3",
|
|
51
|
+
"undici-types": "^7.24.6",
|
|
52
|
+
"vitest": "^4.1.7"
|
|
53
|
+
},
|
|
54
|
+
"scripts": {
|
|
55
|
+
"build": "tsc && node scripts/copy-prompts.cjs && node scripts/clean-tests.cjs && node scripts/clean-maps.cjs",
|
|
56
|
+
"dev": "tsc --watch",
|
|
57
|
+
"start": "node dist/index.js",
|
|
58
|
+
"start:win": "chcp 65001 > nul && node dist/index.js",
|
|
59
|
+
"test": "vitest run",
|
|
60
|
+
"test:watch": "vitest",
|
|
61
|
+
"setup:llamacpp": "powershell -ExecutionPolicy Bypass -File scripts/setup-llamacpp.ps1"
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Example Greeter Plugin
|
|
3
|
+
*
|
|
4
|
+
* A minimal example plugin that registers a "hello" tool.
|
|
5
|
+
* This demonstrates the plugin system end-to-end.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/** @type {import('../../src/plugins/types.js').PluginDefinition} */
|
|
9
|
+
export default {
|
|
10
|
+
id: 'example-greeter',
|
|
11
|
+
name: 'Example Greeter',
|
|
12
|
+
description: 'Registers a hello tool and a greeting skill',
|
|
13
|
+
|
|
14
|
+
register: (api) => {
|
|
15
|
+
// ââ Register a tool âââââââââââââââââââââââââââââââââââââââ
|
|
16
|
+
api.registerTool({
|
|
17
|
+
name: 'hello',
|
|
18
|
+
description: 'Greet the user with a friendly message',
|
|
19
|
+
inputSchema: {
|
|
20
|
+
type: 'object',
|
|
21
|
+
properties: {
|
|
22
|
+
name: {
|
|
23
|
+
type: 'string',
|
|
24
|
+
description: 'Name to greet',
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
required: [],
|
|
28
|
+
},
|
|
29
|
+
execute: async (args) => {
|
|
30
|
+
const name = args.name || 'world';
|
|
31
|
+
return `Hello, ${name}! Greetings from the example-greeter plugin.`;
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
api.logger.info('hello tool registered');
|
|
36
|
+
|
|
37
|
+
// ââ Register a skill ââââââââââââââââââââââââââââââââââââââ
|
|
38
|
+
api.registerSkill({
|
|
39
|
+
name: 'example-greeter-friendly',
|
|
40
|
+
description: 'Greet the user warmly and ask about their day',
|
|
41
|
+
promptTemplate: `You are a friendly assistant. Greet {{name}} warmly and ask about their day.`,
|
|
42
|
+
relatedTools: ['hello'],
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
api.logger.info('example-greeter-friendly skill registered');
|
|
46
|
+
},
|
|
47
|
+
|
|
48
|
+
onActivate: async (api) => {
|
|
49
|
+
api.logger.info('Plugin activated! Config:', api.getConfig());
|
|
50
|
+
},
|
|
51
|
+
|
|
52
|
+
onDeactivate: async (api) => {
|
|
53
|
+
api.logger.info('Plugin deactivated. Goodbye!');
|
|
54
|
+
},
|
|
55
|
+
};
|