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,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* System Prompt 区段定义
|
|
3
|
+
*/
|
|
4
|
+
export interface SystemPromptSection {
|
|
5
|
+
name: string;
|
|
6
|
+
priority: number;
|
|
7
|
+
content: string | (() => string) | (() => Promise<string>);
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* System Prompt 构建器 - 基于注册的区段组合生成完整的系统提示词
|
|
11
|
+
*/
|
|
12
|
+
export declare class SystemPromptBuilder {
|
|
13
|
+
private sections;
|
|
14
|
+
/**
|
|
15
|
+
* 注册一个区段,若名称重复则抛出错误
|
|
16
|
+
*/
|
|
17
|
+
registerSection(section: SystemPromptSection): void;
|
|
18
|
+
/**
|
|
19
|
+
* 移除指定名称的区段
|
|
20
|
+
*/
|
|
21
|
+
unregisterSection(name: string): void;
|
|
22
|
+
/**
|
|
23
|
+
* 构建完整的系统提示词:按 priority 升序排列区段,用 "\n\n" 连接
|
|
24
|
+
*/
|
|
25
|
+
build(): Promise<string>;
|
|
26
|
+
/**
|
|
27
|
+
* 按名称获取区段
|
|
28
|
+
*/
|
|
29
|
+
getSection(name: string): SystemPromptSection | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* 获取所有区段,按 priority 升序排列
|
|
32
|
+
*/
|
|
33
|
+
getAllSections(): SystemPromptSection[];
|
|
34
|
+
private getSortedSections;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* 创建静态区段(整个会话不变,适合缓存)
|
|
38
|
+
*
|
|
39
|
+
* 顺序:identity → framework_capabilities → coding_standards → safety
|
|
40
|
+
* frame_capabilities 放在 environment(10) 之后、tool_rules(20) 之前,
|
|
41
|
+
* 让 AI 先知道"我在哪",再知道"我有什么能力",最后知道"工具用法"。
|
|
42
|
+
* safety 放最后,在 LLM 注意力机制下权重最高,不容易被后续内容覆盖。
|
|
43
|
+
*
|
|
44
|
+
* @deprecated 上下文注册表已接管 section 定义,参见 manifest-defaults.ts
|
|
45
|
+
*/
|
|
46
|
+
/**
|
|
47
|
+
* @deprecated 上下文注册表已接管 section 定义
|
|
48
|
+
*/
|
|
49
|
+
export declare function createStaticSections(_options: {
|
|
50
|
+
cwd: string;
|
|
51
|
+
}): SystemPromptSection[];
|
|
52
|
+
/**
|
|
53
|
+
* @deprecated 上下文注册表已接管 section 定义
|
|
54
|
+
*/
|
|
55
|
+
export declare function createDynamicSections(_options: {
|
|
56
|
+
cwd: string;
|
|
57
|
+
toolNames?: string[];
|
|
58
|
+
}): SystemPromptSection[];
|
|
59
|
+
/**
|
|
60
|
+
* @deprecated 上下文注册表已接管 section 定义
|
|
61
|
+
*/
|
|
62
|
+
export declare function createDefaultSections(options: {
|
|
63
|
+
cwd: string;
|
|
64
|
+
toolNames?: string[];
|
|
65
|
+
}): SystemPromptSection[];
|
|
66
|
+
/**
|
|
67
|
+
* 加载项目上下文文件
|
|
68
|
+
*
|
|
69
|
+
* 按优先级查找项目目录中的上下文文件,返回首个找到的文件内容。
|
|
70
|
+
* 若检测到提示注入模式,则阻止加载并返回 null。
|
|
71
|
+
*/
|
|
72
|
+
export declare function loadProjectContext(projectDir: string): Promise<{
|
|
73
|
+
content: string;
|
|
74
|
+
source: string;
|
|
75
|
+
} | null>;
|
|
76
|
+
//# sourceMappingURL=prompt-builder.d.ts.map
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { readFile, access } from 'node:fs/promises';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { createLogger } from '../logging/logger.js';
|
|
4
|
+
const logger = createLogger('prompt-builder');
|
|
5
|
+
/**
|
|
6
|
+
* System Prompt 构建器 - 基于注册的区段组合生成完整的系统提示词
|
|
7
|
+
*/
|
|
8
|
+
export class SystemPromptBuilder {
|
|
9
|
+
sections = new Map();
|
|
10
|
+
/**
|
|
11
|
+
* 注册一个区段,若名称重复则抛出错误
|
|
12
|
+
*/
|
|
13
|
+
registerSection(section) {
|
|
14
|
+
if (this.sections.has(section.name)) {
|
|
15
|
+
throw new Error(`Section "${section.name}" is already registered`);
|
|
16
|
+
}
|
|
17
|
+
this.sections.set(section.name, section);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* 移除指定名称的区段
|
|
21
|
+
*/
|
|
22
|
+
unregisterSection(name) {
|
|
23
|
+
this.sections.delete(name);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* 构建完整的系统提示词:按 priority 升序排列区段,用 "\n\n" 连接
|
|
27
|
+
*/
|
|
28
|
+
async build() {
|
|
29
|
+
const sorted = this.getSortedSections();
|
|
30
|
+
const contents = [];
|
|
31
|
+
for (const section of sorted) {
|
|
32
|
+
if (typeof section.content === 'function') {
|
|
33
|
+
const result = section.content();
|
|
34
|
+
contents.push(result instanceof Promise ? await result : result);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
contents.push(section.content);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return contents.join('\n\n');
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* 按名称获取区段
|
|
44
|
+
*/
|
|
45
|
+
getSection(name) {
|
|
46
|
+
return this.sections.get(name);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* 获取所有区段,按 priority 升序排列
|
|
50
|
+
*/
|
|
51
|
+
getAllSections() {
|
|
52
|
+
return this.getSortedSections();
|
|
53
|
+
}
|
|
54
|
+
getSortedSections() {
|
|
55
|
+
return [...this.sections.values()].sort((a, b) => a.priority - b.priority);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* 创建静态区段(整个会话不变,适合缓存)
|
|
60
|
+
*
|
|
61
|
+
* 顺序:identity → framework_capabilities → coding_standards → safety
|
|
62
|
+
* frame_capabilities 放在 environment(10) 之后、tool_rules(20) 之前,
|
|
63
|
+
* 让 AI 先知道"我在哪",再知道"我有什么能力",最后知道"工具用法"。
|
|
64
|
+
* safety 放最后,在 LLM 注意力机制下权重最高,不容易被后续内容覆盖。
|
|
65
|
+
*
|
|
66
|
+
* @deprecated 上下文注册表已接管 section 定义,参见 manifest-defaults.ts
|
|
67
|
+
*/
|
|
68
|
+
/**
|
|
69
|
+
* @deprecated 上下文注册表已接管 section 定义
|
|
70
|
+
*/
|
|
71
|
+
export function createStaticSections(_options) {
|
|
72
|
+
return [];
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* @deprecated 上下文注册表已接管 section 定义
|
|
76
|
+
*/
|
|
77
|
+
export function createDynamicSections(_options) {
|
|
78
|
+
return [];
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* @deprecated 上下文注册表已接管 section 定义
|
|
82
|
+
*/
|
|
83
|
+
export function createDefaultSections(options) {
|
|
84
|
+
return [];
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* 需要检测的提示注入模式(不区分大小写)
|
|
88
|
+
*/
|
|
89
|
+
const INJECTION_PATTERNS = [
|
|
90
|
+
'ignore previous instructions',
|
|
91
|
+
'ignore all previous',
|
|
92
|
+
'disregard all',
|
|
93
|
+
'forget your instructions',
|
|
94
|
+
'you are now',
|
|
95
|
+
'new instructions:',
|
|
96
|
+
];
|
|
97
|
+
/**
|
|
98
|
+
* 项目上下文文件加载优先级
|
|
99
|
+
*/
|
|
100
|
+
const CONTEXT_FILE_PRIORITY = [
|
|
101
|
+
'.agent.md',
|
|
102
|
+
'AGENTS.md',
|
|
103
|
+
'CLAUDE.md',
|
|
104
|
+
'.cursorrules',
|
|
105
|
+
];
|
|
106
|
+
/**
|
|
107
|
+
* 加载项目上下文文件
|
|
108
|
+
*
|
|
109
|
+
* 按优先级查找项目目录中的上下文文件,返回首个找到的文件内容。
|
|
110
|
+
* 若检测到提示注入模式,则阻止加载并返回 null。
|
|
111
|
+
*/
|
|
112
|
+
export async function loadProjectContext(projectDir) {
|
|
113
|
+
for (const filename of CONTEXT_FILE_PRIORITY) {
|
|
114
|
+
const filePath = join(projectDir, filename);
|
|
115
|
+
try {
|
|
116
|
+
await access(filePath);
|
|
117
|
+
}
|
|
118
|
+
catch {
|
|
119
|
+
continue;
|
|
120
|
+
}
|
|
121
|
+
const content = await readFile(filePath, 'utf-8');
|
|
122
|
+
const lowerContent = content.toLowerCase();
|
|
123
|
+
for (const pattern of INJECTION_PATTERNS) {
|
|
124
|
+
if (lowerContent.includes(pattern.toLowerCase())) {
|
|
125
|
+
logger.warn('[Security] Blocked loading file: potential prompt injection detected', { filename });
|
|
126
|
+
return null;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return { content, source: filename };
|
|
130
|
+
}
|
|
131
|
+
return null;
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=prompt-builder.js.map
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 池检索模块 — 从全量对话历史中按关键词相关性检索补充上下文。
|
|
3
|
+
*
|
|
4
|
+
* 算法:关键词交集得分 + 文件路径加分 + 位置衰减。
|
|
5
|
+
* 不需要向量/embedding,纯规则驱动。
|
|
6
|
+
*/
|
|
7
|
+
import type { Message } from '../types.js';
|
|
8
|
+
import type { TokenCounter } from './tokenizer.js';
|
|
9
|
+
import type { GitManager, GitContextEntry } from '../evolution/git-manager.js';
|
|
10
|
+
export interface RetrieveOptions {
|
|
11
|
+
/** conversation.jsonl 全量消息池 */
|
|
12
|
+
pool: Message[];
|
|
13
|
+
/** 排除最近 N 条(Zone 5 已覆盖) */
|
|
14
|
+
excludeLast: number;
|
|
15
|
+
/** 当前用户输入 */
|
|
16
|
+
userInput: string;
|
|
17
|
+
/** Zone 4 token 预算上限 */
|
|
18
|
+
maxTokens: number;
|
|
19
|
+
/** Token 计数器 */
|
|
20
|
+
tokenCounter: TokenCounter;
|
|
21
|
+
/** 近期涉及的文件路径(用于加分) */
|
|
22
|
+
recentFilePaths?: string[];
|
|
23
|
+
/** Zone 3 已有消息的 MD5 hash 集合(用于去重) */
|
|
24
|
+
excludeHashes?: Set<string>;
|
|
25
|
+
/** 当前工作目录 */
|
|
26
|
+
cwd?: string;
|
|
27
|
+
/** Git 管理器实例 */
|
|
28
|
+
gitManager?: GitManager;
|
|
29
|
+
}
|
|
30
|
+
export interface RetrieveResult {
|
|
31
|
+
/** 得分 top-N 消息,按原始顺序排列 */
|
|
32
|
+
messages: Message[];
|
|
33
|
+
/** 总 token 数 */
|
|
34
|
+
totalTokens: number;
|
|
35
|
+
/** git 检索结果 */
|
|
36
|
+
gitContext?: GitContextEntry[];
|
|
37
|
+
}
|
|
38
|
+
export declare class Retriever {
|
|
39
|
+
/**
|
|
40
|
+
* 从全量消息池中检索与用户输入相关的历史消息。
|
|
41
|
+
*/
|
|
42
|
+
retrieve(options: RetrieveOptions): Promise<RetrieveResult>;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=retriever.d.ts.map
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 池检索模块 — 从全量对话历史中按关键词相关性检索补充上下文。
|
|
3
|
+
*
|
|
4
|
+
* 算法:关键词交集得分 + 文件路径加分 + 位置衰减。
|
|
5
|
+
* 不需要向量/embedding,纯规则驱动。
|
|
6
|
+
*/
|
|
7
|
+
import { createHash } from 'node:crypto';
|
|
8
|
+
// ─── 停用词列表 ────────────────────────────────────────────────────────
|
|
9
|
+
const STOP_WORDS = new Set([
|
|
10
|
+
'the', 'a', 'an', 'is', 'are', 'was', 'were', 'been', 'be',
|
|
11
|
+
'have', 'has', 'had', 'do', 'does', 'did', 'will', 'would',
|
|
12
|
+
'could', 'should', 'may', 'might', 'can', 'shall', 'to', 'of',
|
|
13
|
+
'in', 'for', 'on', 'with', 'at', 'by', 'from', 'as', 'into',
|
|
14
|
+
'through', 'during', 'before', 'after', 'above', 'below',
|
|
15
|
+
'between', 'under', 'again', 'further', 'then', 'once', 'here',
|
|
16
|
+
'there', 'when', 'where', 'why', 'how', 'all', 'both', 'each',
|
|
17
|
+
'few', 'more', 'most', 'other', 'some', 'such', 'no', 'nor',
|
|
18
|
+
'not', 'only', 'own', 'same', 'so', 'than', 'too', 'very',
|
|
19
|
+
'just', 'now', 'it', 'its', 'and', 'but', 'or', 'if', 'this',
|
|
20
|
+
'that', 'these', 'those', 'which', 'who', 'whom', 'what',
|
|
21
|
+
'嗯', '的', '了', '是', '在', '我', '有', '和', '就', '不',
|
|
22
|
+
'人', '都', '一', '一个', '上', '也', '很', '到', '说', '要',
|
|
23
|
+
'去', '你', '会', '着', '没有', '看', '好', '自己', '这',
|
|
24
|
+
'他', '她', '它', '们', '那', '什么', '怎么', '哪', '吗',
|
|
25
|
+
'吧', '呢', '啊', '哦', '哈',
|
|
26
|
+
]);
|
|
27
|
+
// ─── Retriever ──────────────────────────────────────────────────────────
|
|
28
|
+
export class Retriever {
|
|
29
|
+
/**
|
|
30
|
+
* 从全量消息池中检索与用户输入相关的历史消息。
|
|
31
|
+
*/
|
|
32
|
+
async retrieve(options) {
|
|
33
|
+
const { pool, excludeLast, userInput, maxTokens, tokenCounter, recentFilePaths } = options;
|
|
34
|
+
// ── git 检索通道 ──────────────────────────────────────────────
|
|
35
|
+
let gitContext;
|
|
36
|
+
if (options.gitManager) {
|
|
37
|
+
try {
|
|
38
|
+
const repoOk = await options.gitManager.isRepo();
|
|
39
|
+
if (repoOk) {
|
|
40
|
+
const chineseKw = extractChineseKeywords(userInput);
|
|
41
|
+
if (chineseKw.length > 0) {
|
|
42
|
+
const currentBranch = await options.gitManager.getCurrentBranch();
|
|
43
|
+
gitContext = await options.gitManager.searchContext(chineseKw, currentBranch);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
// git 检索失败时静默降级
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
// 空池或全被排除 → 返回空
|
|
52
|
+
const searchPool = pool.slice(0, Math.max(0, pool.length - excludeLast));
|
|
53
|
+
if (searchPool.length === 0) {
|
|
54
|
+
return { messages: [], totalTokens: 0, gitContext };
|
|
55
|
+
}
|
|
56
|
+
// 提取用户输入关键词
|
|
57
|
+
const userKeywords = extractKeywords(userInput);
|
|
58
|
+
if (userKeywords.length === 0) {
|
|
59
|
+
return { messages: [], totalTokens: 0, gitContext };
|
|
60
|
+
}
|
|
61
|
+
// 提取文件路径集合(用于加分)
|
|
62
|
+
const filePathSet = new Set(recentFilePaths ?? []);
|
|
63
|
+
const scored = [];
|
|
64
|
+
for (let i = 0; i < searchPool.length; i++) {
|
|
65
|
+
const msg = searchPool[i];
|
|
66
|
+
// 去重:排除 Zone 3 已有消息
|
|
67
|
+
if (options.excludeHashes && options.excludeHashes.size > 0) {
|
|
68
|
+
const contentStr = JSON.stringify(msg.content);
|
|
69
|
+
const msgHash = createHash('md5').update(contentStr).digest('hex');
|
|
70
|
+
if (options.excludeHashes.has(msgHash)) {
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
const text = extractMessageText(msg);
|
|
75
|
+
if (!text)
|
|
76
|
+
continue;
|
|
77
|
+
const msgKeywords = extractKeywords(text);
|
|
78
|
+
if (msgKeywords.length === 0)
|
|
79
|
+
continue;
|
|
80
|
+
// 核心得分:交集比例
|
|
81
|
+
const intersection = msgKeywords.filter((k) => userKeywords.includes(k)).length;
|
|
82
|
+
let score = intersection / userKeywords.length;
|
|
83
|
+
// 文件路径加分:消息中涉及近期文件路径 → ×1.5
|
|
84
|
+
if (filePathSet.size > 0) {
|
|
85
|
+
for (const fp of filePathSet) {
|
|
86
|
+
if (text.includes(fp)) {
|
|
87
|
+
score *= 1.5;
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
// 时间权重:最旧=×0.3,最新=×1.0
|
|
93
|
+
score *= (0.3 + 0.7 * (i / pool.length));
|
|
94
|
+
if (score > 0) {
|
|
95
|
+
const tokens = tokenCounter.countMessageTokens(msg);
|
|
96
|
+
scored.push({ message: msg, score, tokens });
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
// 按得分降序
|
|
100
|
+
scored.sort((a, b) => b.score - a.score);
|
|
101
|
+
// 取 top-N,总 token 不超过预算
|
|
102
|
+
const selected = [];
|
|
103
|
+
let totalTokens = 0;
|
|
104
|
+
for (const item of scored) {
|
|
105
|
+
if (totalTokens + item.tokens > maxTokens) {
|
|
106
|
+
const remaining = maxTokens - totalTokens;
|
|
107
|
+
if (remaining > 200) {
|
|
108
|
+
// 截断消息内容以适配剩余预算
|
|
109
|
+
const truncated = truncateMessageContent(item.message, remaining);
|
|
110
|
+
selected.push(truncated);
|
|
111
|
+
totalTokens = maxTokens;
|
|
112
|
+
}
|
|
113
|
+
// remaining ≤ 200 → 跳过(内容太短无意义)
|
|
114
|
+
break; // 预算耗尽
|
|
115
|
+
}
|
|
116
|
+
selected.push(item.message);
|
|
117
|
+
totalTokens += item.tokens;
|
|
118
|
+
}
|
|
119
|
+
// 按原始顺序排列(保持时间顺序)
|
|
120
|
+
const selectedSet = new Set(selected);
|
|
121
|
+
const ordered = searchPool.filter((m) => selectedSet.has(m));
|
|
122
|
+
return { messages: ordered, totalTokens, gitContext };
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
// ─── 关键词提取 ────────────────────────────────────────────────────────
|
|
126
|
+
/**
|
|
127
|
+
* 提取中文多字词(2字及以上连续中文字符),用于 git grep。
|
|
128
|
+
*/
|
|
129
|
+
function extractChineseKeywords(text) {
|
|
130
|
+
const chineseRuns = text.match(/[\u4e00-\u9fff]{2,}/g);
|
|
131
|
+
if (!chineseRuns)
|
|
132
|
+
return [];
|
|
133
|
+
const result = [];
|
|
134
|
+
for (const run of chineseRuns) {
|
|
135
|
+
if (!STOP_WORDS.has(run)) {
|
|
136
|
+
result.push(run);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return [...new Set(result)];
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* 从文本中提取关键词。
|
|
143
|
+
* - 英文:按空格/标点分词,去停用词,保留 ≥ 3 字符的词
|
|
144
|
+
* - 中文:按字符级 2-gram 提取,去停用词
|
|
145
|
+
*/
|
|
146
|
+
function extractKeywords(text) {
|
|
147
|
+
const keywords = [];
|
|
148
|
+
// 英文关键词:匹配 ≥ 3 字符的单词
|
|
149
|
+
const wordRegex = /[a-zA-Z]{3,}/g;
|
|
150
|
+
let match;
|
|
151
|
+
while ((match = wordRegex.exec(text)) !== null) {
|
|
152
|
+
const word = match[0].toLowerCase();
|
|
153
|
+
if (!STOP_WORDS.has(word)) {
|
|
154
|
+
keywords.push(word);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
// 中文字符 2-gram
|
|
158
|
+
const chineseChars = (text.match(/[\u4e00-\u9fff]/g) || []).join('');
|
|
159
|
+
for (let i = 0; i < chineseChars.length - 1; i++) {
|
|
160
|
+
const bigram = chineseChars.slice(i, i + 2);
|
|
161
|
+
if (!STOP_WORDS.has(bigram)) {
|
|
162
|
+
keywords.push(bigram);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
// 去重
|
|
166
|
+
return [...new Set(keywords)];
|
|
167
|
+
}
|
|
168
|
+
// ─── 辅助 ──────────────────────────────────────────────────────────────
|
|
169
|
+
/**
|
|
170
|
+
* 提取消息中的纯文本内容。
|
|
171
|
+
*/
|
|
172
|
+
function extractMessageText(message) {
|
|
173
|
+
const contents = Array.isArray(message.content)
|
|
174
|
+
? message.content
|
|
175
|
+
: [message.content];
|
|
176
|
+
const parts = [];
|
|
177
|
+
for (const c of contents) {
|
|
178
|
+
if (c.type === 'text')
|
|
179
|
+
parts.push(c.text);
|
|
180
|
+
else if (c.type === 'image') {
|
|
181
|
+
const img = c;
|
|
182
|
+
parts.push(`[Image: ${img.source.type === 'base64' ? img.source.media_type : 'url'}]`);
|
|
183
|
+
}
|
|
184
|
+
else if (c.type === 'tool_use')
|
|
185
|
+
parts.push(`[ToolUse: ${c.name}]`);
|
|
186
|
+
}
|
|
187
|
+
return parts.join(' ');
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* 截断消息内容以适配剩余 token 预算(约 1 token ≈ 3 字符估算)。
|
|
191
|
+
*/
|
|
192
|
+
function truncateMessageContent(msg, maxTokens) {
|
|
193
|
+
const text = typeof msg.content === 'string' ? msg.content : msg.content?.text ?? '';
|
|
194
|
+
if (typeof text !== 'string' || text.length <= maxTokens * 3) {
|
|
195
|
+
return msg; // 短消息不截断
|
|
196
|
+
}
|
|
197
|
+
const truncated = text.substring(0, maxTokens * 3) + '...';
|
|
198
|
+
return {
|
|
199
|
+
...msg,
|
|
200
|
+
content: typeof msg.content === 'string' ? truncated : { ...msg.content, text: truncated },
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
//# sourceMappingURL=retriever.js.map
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import type { Message } from '../types.js';
|
|
2
|
+
import type { SectionEntry } from './manifest-types.js';
|
|
3
|
+
import type { ResolverContext } from './section-resolver.js';
|
|
4
|
+
export interface SourceOverride {
|
|
5
|
+
/**
|
|
6
|
+
* 替换 source 路径。
|
|
7
|
+
* 对 static section → prompt 文件路径(如 'prompts/persona/PartnerSoul')
|
|
8
|
+
* 对 runtime section → ContextSource 名称(如 'companion_memory')
|
|
9
|
+
*/
|
|
10
|
+
source?: string;
|
|
11
|
+
/** 在解析后的内容末尾追加 */
|
|
12
|
+
append?: string;
|
|
13
|
+
/**
|
|
14
|
+
* 完全接管 section 内容生成(优先级最高)。
|
|
15
|
+
* 返回 string → 使用此内容作为 section 结果。
|
|
16
|
+
* 返回 undefined → 跳过此 section(不注入任何内容)。
|
|
17
|
+
*/
|
|
18
|
+
resolve?: (ctx: ResolverContext) => Promise<string | undefined>;
|
|
19
|
+
}
|
|
20
|
+
export interface IContextRouter {
|
|
21
|
+
/** 路由器名称(唯一标识) */
|
|
22
|
+
readonly name: string;
|
|
23
|
+
/** 工具白名单。空数组 = 全部工具可用 */
|
|
24
|
+
readonly toolAllowlist: readonly string[];
|
|
25
|
+
/** 工具黑名单。始终从最终结果中排除,优先级高于白名单 */
|
|
26
|
+
readonly toolBlacklist: readonly string[];
|
|
27
|
+
/** 跳过的 section 名称(如 'persona_soul', 'framework_capabilities' 等) */
|
|
28
|
+
readonly skipSections: readonly string[];
|
|
29
|
+
/** 跳过的 runtime source key(如 'skills', 'agents', 'mcp' 等) */
|
|
30
|
+
readonly skipRuntimeSources: readonly string[];
|
|
31
|
+
/**
|
|
32
|
+
* key = section name(如 'persona_soul', 'memory', 'world_context')。
|
|
33
|
+
* 支持三个维度的覆写:
|
|
34
|
+
* source — 替换源路径/ContextSource
|
|
35
|
+
* append — 内容后追加
|
|
36
|
+
* resolve — 完全接管
|
|
37
|
+
*/
|
|
38
|
+
readonly sourceOverrides: Readonly<Record<string, SourceOverride>>;
|
|
39
|
+
/**
|
|
40
|
+
* 在用户输入进入消息流转(写入对话、被主 LLM 看到)之前变换它。
|
|
41
|
+
* 返回替换后的对话文本。用于陪伴模式剥离 [[旁白]] 并交给旁路。
|
|
42
|
+
* 未实现 = 原样返回(正常模式不处理)。
|
|
43
|
+
*/
|
|
44
|
+
transformUserInput?(userInput: string, loop: any): Promise<string>;
|
|
45
|
+
/**
|
|
46
|
+
* 陪伴模式:本轮瞬态输入文本(纯环境轮由旁路 LLM 产出)。
|
|
47
|
+
* 不为空时,loop 不将其落盘到 conversation store,而是由 runTurn
|
|
48
|
+
* 直接注入 compose 的 userInput。本轮结束后置空。
|
|
49
|
+
*/
|
|
50
|
+
ephemeralInput?: string | null;
|
|
51
|
+
/** 在组装 Zone 3 之前过滤/变换历史消息 */
|
|
52
|
+
filterHistory(history: Message[]): Message[];
|
|
53
|
+
/**
|
|
54
|
+
* 每个 section 正常解析之前调用。
|
|
55
|
+
* - 返回 string → 使用此内容作为 section 结果
|
|
56
|
+
* - 返回 null → 跳过此 section(不注入)
|
|
57
|
+
* - 返回 undefined → 继续正常解析流程
|
|
58
|
+
*/
|
|
59
|
+
beforeSection?(sec: SectionEntry, ctx: ResolverContext): Promise<string | null | undefined>;
|
|
60
|
+
/**
|
|
61
|
+
* 覆写某个 section 注入时的消息 role(默认由 manifest 的 sec.role ?? zoneRole 决定)。
|
|
62
|
+
* 返回 undefined = 不覆写,用默认。
|
|
63
|
+
* 用途:陪伴模式下世界旁白顶替 timestamp 槽位时,改以 assistant(内心独白)注入。
|
|
64
|
+
* 注意:依赖 beforeSection 先行执行(同一 section 先解析内容、再取 role),故只反映"本轮该 section 的实际来源"。
|
|
65
|
+
*/
|
|
66
|
+
roleForSection?(name: string): 'user' | 'assistant' | 'system' | undefined;
|
|
67
|
+
/** 切换到本 Router 时调用(由 loop.syncRouter 触发) */
|
|
68
|
+
onActivate?(loop: any): Promise<void>;
|
|
69
|
+
/** 从本 Router 切出时调用 */
|
|
70
|
+
onDeactivate?(loop: any): Promise<void>;
|
|
71
|
+
/** 生成定时任务触发时的用户提示词 */
|
|
72
|
+
getTaskPrompt(taskName: string): string;
|
|
73
|
+
/** 每轮 LLM 回复后的清理行为(如 JSONL 清理) */
|
|
74
|
+
onPostTurn?(loop: any, taskName: string | null, toolWasCalled: boolean): Promise<void>;
|
|
75
|
+
}
|
|
76
|
+
export declare class NormalRouter implements IContextRouter {
|
|
77
|
+
readonly name = "normal";
|
|
78
|
+
readonly toolAllowlist: readonly string[];
|
|
79
|
+
readonly toolBlacklist: readonly ["reset_companion_session"];
|
|
80
|
+
readonly skipSections: readonly string[];
|
|
81
|
+
readonly skipRuntimeSources: readonly string[];
|
|
82
|
+
readonly sourceOverrides: Readonly<Record<string, SourceOverride>>;
|
|
83
|
+
filterHistory(history: Message[]): Message[];
|
|
84
|
+
getTaskPrompt(taskName: string): string;
|
|
85
|
+
}
|
|
86
|
+
export declare class CompanionRouter implements IContextRouter {
|
|
87
|
+
readonly name = "companion";
|
|
88
|
+
readonly toolAllowlist: readonly ["companion_mode", "reset_companion_session", "add_task", "list_tasks", "remove_task", "toggle_task", "read", "write", "edit"];
|
|
89
|
+
readonly toolBlacklist: readonly string[];
|
|
90
|
+
readonly skipSections: readonly ["persona_soul", "framework_capabilities", "tool_rules", "attention", "project_context"];
|
|
91
|
+
readonly skipRuntimeSources: readonly ["skills", "agents", "mcp", "tool_bundles", "tool_bundle_expand", "mcp_live", "tools_live", "flow", "channel_context"];
|
|
92
|
+
readonly sourceOverrides: Readonly<Record<string, SourceOverride>>;
|
|
93
|
+
/** 世界引擎旁路Agent 引用(通过 BypassManager 获取) */
|
|
94
|
+
private worldEngineAgent;
|
|
95
|
+
private get worldEngineEnabled();
|
|
96
|
+
/** 当前活跃的陪伴角色名(如"柔柔"),决定世界数据与对话的存储路径 */
|
|
97
|
+
activeCompanionName: string;
|
|
98
|
+
/** 本轮 timestamp 槽位是否被世界旁白顶替——决定它以 assistant(内心独白)还是 user 注入 */
|
|
99
|
+
private _timestampIsNarration;
|
|
100
|
+
/**
|
|
101
|
+
* 本轮是否为「纯旁白轮」(用户只发 [[环境]]、无对话)。
|
|
102
|
+
* 纯旁白轮里,环境信息已由 transformUserInput 作为本轮 user 输入注入,
|
|
103
|
+
* 故 beforeSection 不再在 timestamp 槽重复注入旁白(也避免二次调用旁路 LLM)。
|
|
104
|
+
*/
|
|
105
|
+
private _pureNarrationTurn;
|
|
106
|
+
ephemeralInput: string | null;
|
|
107
|
+
filterHistory(history: Message[]): Message[];
|
|
108
|
+
/**
|
|
109
|
+
* 陪伴模式旁白路由:解析 [[...]] 旁白 → 交给旁路落实进世界 → 返回剥离后的对话。
|
|
110
|
+
* 纯旁白(无对话)时返回一个轻量触发,让陪伴角色对更新后的场景做出反应。
|
|
111
|
+
* 世界引擎未开启则原样返回(等价无操作)。
|
|
112
|
+
*/
|
|
113
|
+
transformUserInput(userInput: string): Promise<string>;
|
|
114
|
+
beforeSection(sec: SectionEntry, ctx: ResolverContext): Promise<string | null | undefined>;
|
|
115
|
+
/** 世界旁白顶替 timestamp 槽位时,以 assistant 身份注入,读起来像陪伴者的内心独白 */
|
|
116
|
+
roleForSection(name: string): 'user' | 'assistant' | 'system' | undefined;
|
|
117
|
+
onActivate(loop: any): Promise<void>;
|
|
118
|
+
onDeactivate(loop: any): Promise<void>;
|
|
119
|
+
getTaskPrompt(_taskName: string): string;
|
|
120
|
+
onPostTurn(loop: any, taskName: string | null, toolWasCalled: boolean): Promise<void>;
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=router.d.ts.map
|