@geminilight/mindos 1.1.26 → 1.1.30
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/dist/agent/bridges/index.d.ts +3 -0
- package/dist/agent/bridges/index.d.ts.map +1 -0
- package/dist/agent/bridges/index.js +3 -0
- package/dist/agent/bridges/index.js.map +1 -0
- package/dist/agent/bridges/runtime-permission-bridge.d.ts +34 -0
- package/dist/agent/bridges/runtime-permission-bridge.d.ts.map +1 -0
- package/dist/agent/bridges/runtime-permission-bridge.js +284 -0
- package/dist/agent/bridges/runtime-permission-bridge.js.map +1 -0
- package/dist/agent/bridges/user-question-bridge.d.ts +90 -0
- package/dist/agent/bridges/user-question-bridge.d.ts.map +1 -0
- package/dist/agent/bridges/user-question-bridge.js +260 -0
- package/dist/agent/bridges/user-question-bridge.js.map +1 -0
- package/dist/agent/index.d.ts +6 -7
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +6 -7
- package/dist/agent/index.js.map +1 -1
- package/dist/agent/ledger/index.d.ts +5 -0
- package/dist/agent/ledger/index.d.ts.map +1 -0
- package/dist/agent/ledger/index.js +5 -0
- package/dist/agent/ledger/index.js.map +1 -0
- package/dist/agent/ledger/run-cancellation.d.ts +13 -0
- package/dist/agent/ledger/run-cancellation.d.ts.map +1 -0
- package/dist/agent/ledger/run-cancellation.js +97 -0
- package/dist/agent/ledger/run-cancellation.js.map +1 -0
- package/dist/agent/ledger/run-ledger-types.d.ts +197 -0
- package/dist/agent/ledger/run-ledger-types.d.ts.map +1 -0
- package/dist/agent/ledger/run-ledger-types.js +9 -0
- package/dist/agent/ledger/run-ledger-types.js.map +1 -0
- package/dist/agent/ledger/run-ledger.d.ts +44 -0
- package/dist/agent/ledger/run-ledger.d.ts.map +1 -0
- package/dist/agent/ledger/run-ledger.js +814 -0
- package/dist/agent/ledger/run-ledger.js.map +1 -0
- package/dist/agent/ledger/run-timeline-events.d.ts +3 -0
- package/dist/agent/ledger/run-timeline-events.d.ts.map +1 -0
- package/dist/agent/ledger/run-timeline-events.js +239 -0
- package/dist/agent/ledger/run-timeline-events.js.map +1 -0
- package/dist/agent/mindos-pi/extension/extension-tools.d.ts +16 -0
- package/dist/agent/mindos-pi/extension/extension-tools.d.ts.map +1 -0
- package/dist/agent/mindos-pi/extension/extension-tools.js +115 -0
- package/dist/agent/mindos-pi/extension/extension-tools.js.map +1 -0
- package/dist/agent/mindos-pi/extension/index.d.ts +3 -0
- package/dist/agent/mindos-pi/extension/index.d.ts.map +1 -0
- package/dist/agent/mindos-pi/extension/index.js +3 -0
- package/dist/agent/mindos-pi/extension/index.js.map +1 -0
- package/dist/agent/mindos-pi/extension/kb-extension.d.ts +38 -0
- package/dist/agent/mindos-pi/extension/kb-extension.d.ts.map +1 -0
- package/dist/agent/mindos-pi/extension/kb-extension.js +140 -0
- package/dist/agent/mindos-pi/extension/kb-extension.js.map +1 -0
- package/dist/agent/mindos-pi/index.d.ts +5 -0
- package/dist/agent/mindos-pi/index.d.ts.map +1 -0
- package/dist/agent/mindos-pi/index.js +5 -0
- package/dist/agent/mindos-pi/index.js.map +1 -0
- package/dist/agent/mindos-pi/prompt.d.ts +3 -0
- package/dist/agent/mindos-pi/prompt.d.ts.map +1 -0
- package/dist/agent/mindos-pi/prompt.js +22 -0
- package/dist/agent/mindos-pi/prompt.js.map +1 -0
- package/dist/agent/mindos-pi/resource-types.d.ts +27 -0
- package/dist/agent/mindos-pi/resource-types.d.ts.map +1 -0
- package/dist/agent/mindos-pi/resource-types.js +2 -0
- package/dist/agent/mindos-pi/resource-types.js.map +1 -0
- package/dist/agent/mindos-pi/runtime.d.ts +10 -0
- package/dist/agent/mindos-pi/runtime.d.ts.map +1 -0
- package/dist/agent/mindos-pi/runtime.js +31 -0
- package/dist/agent/mindos-pi/runtime.js.map +1 -0
- package/dist/agent/pi/extension-tools.d.ts +2 -0
- package/dist/agent/pi/extension-tools.d.ts.map +1 -0
- package/dist/agent/pi/extension-tools.js +2 -0
- package/dist/agent/pi/extension-tools.js.map +1 -0
- package/dist/agent/pi/index.d.ts +2 -0
- package/dist/agent/pi/index.d.ts.map +1 -0
- package/dist/agent/pi/index.js +2 -0
- package/dist/agent/pi/index.js.map +1 -0
- package/dist/agent/pi/resource-types.d.ts +2 -0
- package/dist/agent/pi/resource-types.d.ts.map +1 -0
- package/dist/agent/pi/resource-types.js +2 -0
- package/dist/agent/pi/resource-types.js.map +1 -0
- package/dist/agent/pi/runtime.d.ts +2 -0
- package/dist/agent/pi/runtime.d.ts.map +1 -0
- package/dist/agent/pi/runtime.js +2 -0
- package/dist/agent/pi/runtime.js.map +1 -0
- package/dist/agent/prompt/context-prompt.d.ts +50 -0
- package/dist/agent/prompt/context-prompt.d.ts.map +1 -1
- package/dist/agent/prompt/context-prompt.js +71 -38
- package/dist/agent/prompt/context-prompt.js.map +1 -1
- package/dist/agent/prompt/index.d.ts +1 -1
- package/dist/agent/prompt/index.d.ts.map +1 -1
- package/dist/agent/prompt/index.js +1 -1
- package/dist/agent/prompt/index.js.map +1 -1
- package/dist/agent/result-reducer.d.ts +1 -1
- package/dist/agent/result-reducer.d.ts.map +1 -1
- package/dist/agent/run-cancellation.d.ts +1 -12
- package/dist/agent/run-cancellation.d.ts.map +1 -1
- package/dist/agent/run-cancellation.js +1 -96
- package/dist/agent/run-cancellation.js.map +1 -1
- package/dist/agent/run-ledger-types.d.ts +1 -196
- package/dist/agent/run-ledger-types.d.ts.map +1 -1
- package/dist/agent/run-ledger-types.js +1 -8
- package/dist/agent/run-ledger-types.js.map +1 -1
- package/dist/agent/run-ledger.d.ts +1 -43
- package/dist/agent/run-ledger.d.ts.map +1 -1
- package/dist/agent/run-ledger.js +1 -813
- package/dist/agent/run-ledger.js.map +1 -1
- package/dist/agent/run-timeline-events.d.ts +1 -2
- package/dist/agent/run-timeline-events.d.ts.map +1 -1
- package/dist/agent/run-timeline-events.js +1 -238
- package/dist/agent/run-timeline-events.js.map +1 -1
- package/dist/agent/runtime/adapters/index.d.ts +2 -0
- package/dist/agent/runtime/adapters/index.d.ts.map +1 -0
- package/dist/agent/runtime/adapters/index.js +2 -0
- package/dist/agent/runtime/adapters/index.js.map +1 -0
- package/dist/agent/runtime/adapters/mindos.d.ts +21 -0
- package/dist/agent/runtime/adapters/mindos.d.ts.map +1 -0
- package/dist/agent/runtime/adapters/mindos.js +14 -0
- package/dist/agent/runtime/adapters/mindos.js.map +1 -0
- package/dist/agent/runtime/attachments.d.ts +37 -0
- package/dist/agent/runtime/attachments.d.ts.map +1 -0
- package/dist/agent/runtime/attachments.js +187 -0
- package/dist/agent/runtime/attachments.js.map +1 -0
- package/dist/agent/runtime/capabilities.d.ts +10 -0
- package/dist/agent/runtime/capabilities.d.ts.map +1 -0
- package/dist/agent/runtime/capabilities.js +100 -0
- package/dist/agent/runtime/capabilities.js.map +1 -0
- package/dist/agent/runtime/child-process.d.ts +21 -0
- package/dist/agent/runtime/child-process.d.ts.map +1 -0
- package/dist/agent/runtime/child-process.js +29 -0
- package/dist/agent/runtime/child-process.js.map +1 -0
- package/dist/agent/runtime/claude-code-cli.d.ts +40 -0
- package/dist/agent/runtime/claude-code-cli.d.ts.map +1 -0
- package/dist/agent/runtime/claude-code-cli.js +288 -0
- package/dist/agent/runtime/claude-code-cli.js.map +1 -0
- package/dist/agent/runtime/claude-code-sdk.d.ts +62 -0
- package/dist/agent/runtime/claude-code-sdk.d.ts.map +1 -0
- package/dist/agent/runtime/claude-code-sdk.js +613 -0
- package/dist/agent/runtime/claude-code-sdk.js.map +1 -0
- package/dist/agent/runtime/codex-app-server.d.ts +172 -0
- package/dist/agent/runtime/codex-app-server.d.ts.map +1 -0
- package/dist/agent/runtime/codex-app-server.js +700 -0
- package/dist/agent/runtime/codex-app-server.js.map +1 -0
- package/dist/agent/runtime/codex-env.d.ts +42 -0
- package/dist/agent/runtime/codex-env.d.ts.map +1 -0
- package/dist/agent/runtime/codex-env.js +290 -0
- package/dist/agent/runtime/codex-env.js.map +1 -0
- package/dist/agent/runtime/descriptors.d.ts +19 -0
- package/dist/agent/runtime/descriptors.d.ts.map +1 -0
- package/dist/agent/runtime/descriptors.js +143 -0
- package/dist/agent/runtime/descriptors.js.map +1 -0
- package/dist/agent/runtime/detection.d.ts +15 -0
- package/dist/agent/runtime/detection.d.ts.map +1 -0
- package/dist/agent/runtime/detection.js +124 -0
- package/dist/agent/runtime/detection.js.map +1 -0
- package/dist/agent/runtime/index.d.ts +15 -0
- package/dist/agent/runtime/index.d.ts.map +1 -0
- package/dist/agent/runtime/index.js +15 -0
- package/dist/agent/runtime/index.js.map +1 -0
- package/dist/agent/runtime/registry.d.ts +152 -0
- package/dist/agent/runtime/registry.d.ts.map +1 -0
- package/dist/agent/runtime/registry.js +84 -0
- package/dist/agent/runtime/registry.js.map +1 -0
- package/dist/agent/runtime/run.d.ts +129 -0
- package/dist/agent/runtime/run.d.ts.map +1 -0
- package/dist/agent/runtime/run.js +739 -0
- package/dist/agent/runtime/run.js.map +1 -0
- package/dist/agent/runtime/runtime-env.d.ts +28 -0
- package/dist/agent/runtime/runtime-env.d.ts.map +1 -0
- package/dist/agent/runtime/runtime-env.js +66 -0
- package/dist/agent/runtime/runtime-env.js.map +1 -0
- package/dist/agent/runtime/runtime-errors.d.ts +20 -0
- package/dist/agent/runtime/runtime-errors.d.ts.map +1 -0
- package/dist/agent/runtime/runtime-errors.js +95 -0
- package/dist/agent/runtime/runtime-errors.js.map +1 -0
- package/dist/agent/runtime-permission-bridge.d.ts +1 -33
- package/dist/agent/runtime-permission-bridge.d.ts.map +1 -1
- package/dist/agent/runtime-permission-bridge.js +1 -283
- package/dist/agent/runtime-permission-bridge.js.map +1 -1
- package/dist/agent/selected-skills.d.ts +8 -0
- package/dist/agent/selected-skills.d.ts.map +1 -0
- package/dist/agent/selected-skills.js +27 -0
- package/dist/agent/selected-skills.js.map +1 -0
- package/dist/agent/session/index.d.ts +619 -0
- package/dist/agent/session/index.d.ts.map +1 -0
- package/dist/agent/session/index.js +1331 -0
- package/dist/agent/session/index.js.map +1 -0
- package/dist/agent/session/redaction.d.ts +3 -0
- package/dist/agent/session/redaction.d.ts.map +1 -0
- package/dist/agent/session/redaction.js +47 -0
- package/dist/agent/session/redaction.js.map +1 -0
- package/dist/agent/stream/index.d.ts +3 -0
- package/dist/agent/stream/index.d.ts.map +1 -0
- package/dist/agent/stream/index.js +3 -0
- package/dist/agent/stream/index.js.map +1 -0
- package/dist/agent/stream/stream-consumer.d.ts +65 -0
- package/dist/agent/stream/stream-consumer.d.ts.map +1 -0
- package/dist/agent/stream/stream-consumer.js +664 -0
- package/dist/agent/stream/stream-consumer.js.map +1 -0
- package/dist/agent/stream/stream-message-types.d.ts +128 -0
- package/dist/agent/stream/stream-message-types.d.ts.map +1 -0
- package/dist/agent/stream/stream-message-types.js +14 -0
- package/dist/agent/stream/stream-message-types.js.map +1 -0
- package/dist/agent/stream-consumer.d.ts +1 -64
- package/dist/agent/stream-consumer.d.ts.map +1 -1
- package/dist/agent/stream-consumer.js +1 -663
- package/dist/agent/stream-consumer.js.map +1 -1
- package/dist/agent/stream-message-types.d.ts +1 -137
- package/dist/agent/stream-message-types.d.ts.map +1 -1
- package/dist/agent/stream-message-types.js +1 -13
- package/dist/agent/stream-message-types.js.map +1 -1
- package/dist/agent/subagent/index.d.ts +3 -0
- package/dist/agent/subagent/index.d.ts.map +1 -0
- package/dist/agent/subagent/index.js +3 -0
- package/dist/agent/subagent/index.js.map +1 -0
- package/dist/agent/subagent/subagent-ledger-extension.d.ts +36 -0
- package/dist/agent/subagent/subagent-ledger-extension.d.ts.map +1 -0
- package/dist/agent/subagent/subagent-ledger-extension.js +572 -0
- package/dist/agent/subagent/subagent-ledger-extension.js.map +1 -0
- package/dist/agent/subagent/subagent-orchestrator.d.ts +62 -0
- package/dist/agent/subagent/subagent-orchestrator.d.ts.map +1 -0
- package/dist/agent/subagent/subagent-orchestrator.js +350 -0
- package/dist/agent/subagent/subagent-orchestrator.js.map +1 -0
- package/dist/agent/subagent-ledger-extension.d.ts +1 -35
- package/dist/agent/subagent-ledger-extension.d.ts.map +1 -1
- package/dist/agent/subagent-ledger-extension.js +1 -571
- package/dist/agent/subagent-ledger-extension.js.map +1 -1
- package/dist/agent/subagent-orchestrator.d.ts +1 -61
- package/dist/agent/subagent-orchestrator.d.ts.map +1 -1
- package/dist/agent/subagent-orchestrator.js +1 -349
- package/dist/agent/subagent-orchestrator.js.map +1 -1
- package/dist/agent/tool/executable-tool.d.ts +12 -0
- package/dist/agent/tool/executable-tool.d.ts.map +1 -0
- package/dist/agent/tool/executable-tool.js +2 -0
- package/dist/agent/tool/executable-tool.js.map +1 -0
- package/dist/agent/tool/index.d.ts +1 -1
- package/dist/agent/tool/index.d.ts.map +1 -1
- package/dist/agent/tool/index.js +1 -1
- package/dist/agent/tool/index.js.map +1 -1
- package/dist/agent/tool/kb-extension.d.ts +1 -37
- package/dist/agent/tool/kb-extension.d.ts.map +1 -1
- package/dist/agent/tool/kb-extension.js +1 -139
- package/dist/agent/tool/kb-extension.js.map +1 -1
- package/dist/agent/user-question-bridge.d.ts +1 -89
- package/dist/agent/user-question-bridge.d.ts.map +1 -1
- package/dist/agent/user-question-bridge.js +1 -259
- package/dist/agent/user-question-bridge.js.map +1 -1
- package/dist/agent-runtime/adapters/index.d.ts +2 -0
- package/dist/agent-runtime/adapters/index.d.ts.map +1 -0
- package/dist/agent-runtime/adapters/index.js +2 -0
- package/dist/agent-runtime/adapters/index.js.map +1 -0
- package/dist/agent-runtime/adapters/mindos.d.ts +2 -0
- package/dist/agent-runtime/adapters/mindos.d.ts.map +1 -0
- package/dist/agent-runtime/adapters/mindos.js +2 -0
- package/dist/agent-runtime/adapters/mindos.js.map +1 -0
- package/dist/agent-runtime/capabilities.d.ts +1 -9
- package/dist/agent-runtime/capabilities.d.ts.map +1 -1
- package/dist/agent-runtime/capabilities.js +1 -99
- package/dist/agent-runtime/capabilities.js.map +1 -1
- package/dist/agent-runtime/child-process.d.ts +1 -20
- package/dist/agent-runtime/child-process.d.ts.map +1 -1
- package/dist/agent-runtime/child-process.js +1 -28
- package/dist/agent-runtime/child-process.js.map +1 -1
- package/dist/agent-runtime/claude-code-cli.d.ts +1 -35
- package/dist/agent-runtime/claude-code-cli.d.ts.map +1 -1
- package/dist/agent-runtime/claude-code-cli.js +1 -287
- package/dist/agent-runtime/claude-code-cli.js.map +1 -1
- package/dist/agent-runtime/claude-code-sdk.d.ts +1 -40
- package/dist/agent-runtime/claude-code-sdk.d.ts.map +1 -1
- package/dist/agent-runtime/claude-code-sdk.js +1 -571
- package/dist/agent-runtime/claude-code-sdk.js.map +1 -1
- package/dist/agent-runtime/codex-app-server.d.ts +1 -157
- package/dist/agent-runtime/codex-app-server.d.ts.map +1 -1
- package/dist/agent-runtime/codex-app-server.js +1 -665
- package/dist/agent-runtime/codex-app-server.js.map +1 -1
- package/dist/agent-runtime/codex-env.d.ts +1 -41
- package/dist/agent-runtime/codex-env.d.ts.map +1 -1
- package/dist/agent-runtime/codex-env.js +1 -289
- package/dist/agent-runtime/codex-env.js.map +1 -1
- package/dist/agent-runtime/descriptors.d.ts +1 -18
- package/dist/agent-runtime/descriptors.d.ts.map +1 -1
- package/dist/agent-runtime/descriptors.js +1 -142
- package/dist/agent-runtime/descriptors.js.map +1 -1
- package/dist/agent-runtime/detection.d.ts +1 -14
- package/dist/agent-runtime/detection.d.ts.map +1 -1
- package/dist/agent-runtime/detection.js +1 -123
- package/dist/agent-runtime/detection.js.map +1 -1
- package/dist/agent-runtime/index.d.ts +1 -8
- package/dist/agent-runtime/index.d.ts.map +1 -1
- package/dist/agent-runtime/index.js +1 -8
- package/dist/agent-runtime/index.js.map +1 -1
- package/dist/agent-runtime/registry.d.ts +1 -151
- package/dist/agent-runtime/registry.d.ts.map +1 -1
- package/dist/agent-runtime/registry.js +1 -83
- package/dist/agent-runtime/registry.js.map +1 -1
- package/dist/agent-runtime/run.d.ts +1 -124
- package/dist/agent-runtime/run.d.ts.map +1 -1
- package/dist/agent-runtime/run.js +1 -720
- package/dist/agent-runtime/run.js.map +1 -1
- package/dist/agent-runtime/runtime-env.d.ts +1 -27
- package/dist/agent-runtime/runtime-env.d.ts.map +1 -1
- package/dist/agent-runtime/runtime-env.js +1 -65
- package/dist/agent-runtime/runtime-env.js.map +1 -1
- package/dist/agent-runtime/runtime-errors.d.ts +1 -19
- package/dist/agent-runtime/runtime-errors.d.ts.map +1 -1
- package/dist/agent-runtime/runtime-errors.js +1 -94
- package/dist/agent-runtime/runtime-errors.js.map +1 -1
- package/dist/agent-runtime.d.ts +1 -1
- package/dist/agent-runtime.js +1 -1
- package/dist/client.d.ts +8 -4
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js.map +1 -1
- package/dist/foundation/config/schema.d.ts +1 -1
- package/dist/server/contract.d.ts.map +1 -1
- package/dist/server/contract.js +1 -0
- package/dist/server/contract.js.map +1 -1
- package/dist/server/handlers/agent-runtime-codex.d.ts +1 -1
- package/dist/server/handlers/agent-runtime-codex.js +2 -2
- package/dist/server/handlers/agent-runtimes.d.ts +3 -3
- package/dist/server/handlers/agent-runtimes.js +5 -5
- package/dist/server/handlers/ask.d.ts +42 -4
- package/dist/server/handlers/ask.d.ts.map +1 -1
- package/dist/server/handlers/ask.js +124 -1
- package/dist/server/handlers/ask.js.map +1 -1
- package/dist/server/handlers/inbox-source.d.ts +1 -1
- package/dist/server/handlers/inbox-source.d.ts.map +1 -1
- package/dist/server/handlers/inbox-source.js +22 -0
- package/dist/server/handlers/inbox-source.js.map +1 -1
- package/dist/server/handlers/mcp-install.d.ts +18 -0
- package/dist/server/handlers/mcp-install.d.ts.map +1 -1
- package/dist/server/handlers/mcp-install.js +423 -3
- package/dist/server/handlers/mcp-install.js.map +1 -1
- package/dist/server/handlers/settings.d.ts +1 -1
- package/dist/server/handlers/settings.js +1 -1
- package/dist/server/handlers/setup.d.ts +2 -1
- package/dist/server/handlers/setup.d.ts.map +1 -1
- package/dist/server/handlers/setup.js +1 -0
- package/dist/server/handlers/setup.js.map +1 -1
- package/dist/server/http.d.ts.map +1 -1
- package/dist/server/http.js +9 -1
- package/dist/server/http.js.map +1 -1
- package/dist/server/index.d.ts +2 -2
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +2 -2
- package/dist/server/index.js.map +1 -1
- package/dist/server/route-ownership.d.ts.map +1 -1
- package/dist/server/route-ownership.js +1 -0
- package/dist/server/route-ownership.js.map +1 -1
- package/dist/server/runtime.d.ts +1 -1
- package/dist/session/index.d.ts +1 -650
- package/dist/session/index.d.ts.map +1 -1
- package/dist/session/index.js +1 -1455
- package/dist/session/index.js.map +1 -1
- package/dist/session/pi-coding-agent-runtime.d.ts +1 -9
- package/dist/session/pi-coding-agent-runtime.d.ts.map +1 -1
- package/dist/session/pi-coding-agent-runtime.js +1 -30
- package/dist/session/pi-coding-agent-runtime.js.map +1 -1
- package/dist/session/redaction.d.ts +1 -2
- package/dist/session/redaction.d.ts.map +1 -1
- package/dist/session/redaction.js +1 -46
- package/dist/session/redaction.js.map +1 -1
- package/dist/session.d.ts +1 -1
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +1 -1
- package/dist/session.js.map +1 -1
- package/dist/setup/index.d.ts +24 -3
- package/dist/setup/index.d.ts.map +1 -1
- package/dist/setup/index.js +102 -2
- package/dist/setup/index.js.map +1 -1
- package/package.json +97 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subagent-orchestrator.d.ts","sourceRoot":"","sources":["../../src/agent/subagent-orchestrator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"subagent-orchestrator.d.ts","sourceRoot":"","sources":["../../src/agent/subagent-orchestrator.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC"}
|
|
@@ -1,350 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
// spec-agent-core-consolidation).
|
|
3
|
-
//
|
|
4
|
-
// Dependency-aware subagent fan-out: validates a task plan (unique ids,
|
|
5
|
-
// known dependencies, no cycles), runs independent tasks concurrently,
|
|
6
|
-
// cancels dependents whose dependencies did not complete, and records every
|
|
7
|
-
// child plus the parent orchestration run in the agent run ledger. The
|
|
8
|
-
// executor that actually runs one task stays caller-provided — the
|
|
9
|
-
// orchestrator owns scheduling, timeouts, cancellation, and ledger state.
|
|
10
|
-
import { completeAgentRun, failAgentRun, startAgentRun, } from './run-ledger.js';
|
|
11
|
-
import { formatAgentResultReduction, reduceAgentRunResults, } from './result-reducer.js';
|
|
12
|
-
import { runWithAgentRunContext } from './agent-run-context.js';
|
|
13
|
-
const DEFAULT_SUBAGENT_TIMEOUT_MS = 120_000;
|
|
14
|
-
const DEFAULT_CONTEXT_BUDGET = 12_000;
|
|
15
|
-
class SubagentPlanValidationError extends Error {
|
|
16
|
-
constructor(message) {
|
|
17
|
-
super(message);
|
|
18
|
-
this.name = 'SubagentPlanValidationError';
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
function normalizeDependencies(task) {
|
|
22
|
-
const values = [
|
|
23
|
-
...(Array.isArray(task.dependencies) ? task.dependencies : []),
|
|
24
|
-
...(Array.isArray(task.dependsOn) ? task.dependsOn : []),
|
|
25
|
-
];
|
|
26
|
-
return Array.from(new Set(values.filter((value) => typeof value === 'string' && value.trim().length > 0)));
|
|
27
|
-
}
|
|
28
|
-
function positiveInt(value, fallback) {
|
|
29
|
-
if (typeof value !== 'number' || !Number.isFinite(value) || value <= 0)
|
|
30
|
-
return fallback;
|
|
31
|
-
return Math.floor(value);
|
|
32
|
-
}
|
|
33
|
-
function validateSubagentPlan(plan) {
|
|
34
|
-
if (!Array.isArray(plan.tasks) || plan.tasks.length === 0) {
|
|
35
|
-
throw new SubagentPlanValidationError('Subagent orchestration plan must include at least one task.');
|
|
36
|
-
}
|
|
37
|
-
const ids = new Set();
|
|
38
|
-
for (const task of plan.tasks) {
|
|
39
|
-
if (!task || typeof task.id !== 'string' || !task.id.trim()) {
|
|
40
|
-
throw new SubagentPlanValidationError('Each subagent task must have a stable id.');
|
|
41
|
-
}
|
|
42
|
-
if (ids.has(task.id)) {
|
|
43
|
-
throw new SubagentPlanValidationError(`Duplicate subagent task id: ${task.id}`);
|
|
44
|
-
}
|
|
45
|
-
ids.add(task.id);
|
|
46
|
-
if (typeof task.agent !== 'string' || !task.agent.trim()) {
|
|
47
|
-
throw new SubagentPlanValidationError(`Subagent task ${task.id} must specify an agent.`);
|
|
48
|
-
}
|
|
49
|
-
if (typeof task.task !== 'string' || !task.task.trim()) {
|
|
50
|
-
throw new SubagentPlanValidationError(`Subagent task ${task.id} must include a task prompt.`);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
for (const task of plan.tasks) {
|
|
54
|
-
for (const dependency of normalizeDependencies(task)) {
|
|
55
|
-
if (!ids.has(dependency)) {
|
|
56
|
-
throw new SubagentPlanValidationError(`Subagent task ${task.id} depends on unknown task ${dependency}.`);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
const visiting = new Set();
|
|
61
|
-
const visited = new Set();
|
|
62
|
-
const byId = new Map(plan.tasks.map((task) => [task.id, task]));
|
|
63
|
-
const visit = (id) => {
|
|
64
|
-
if (visited.has(id))
|
|
65
|
-
return;
|
|
66
|
-
if (visiting.has(id)) {
|
|
67
|
-
throw new SubagentPlanValidationError(`Subagent task dependency cycle includes ${id}.`);
|
|
68
|
-
}
|
|
69
|
-
visiting.add(id);
|
|
70
|
-
for (const dependency of normalizeDependencies(byId.get(id))) {
|
|
71
|
-
visit(dependency);
|
|
72
|
-
}
|
|
73
|
-
visiting.delete(id);
|
|
74
|
-
visited.add(id);
|
|
75
|
-
};
|
|
76
|
-
for (const task of plan.tasks) {
|
|
77
|
-
visit(task.id);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
function inputSummaryForTask(task) {
|
|
81
|
-
return JSON.stringify({
|
|
82
|
-
taskId: task.id,
|
|
83
|
-
agent: task.agent,
|
|
84
|
-
task: task.task,
|
|
85
|
-
dependencies: normalizeDependencies(task),
|
|
86
|
-
...(task.contextBudget ? { contextBudget: task.contextBudget } : {}),
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
function normalizeExecutorResult(result) {
|
|
90
|
-
if (typeof result === 'string')
|
|
91
|
-
return { outputSummary: result };
|
|
92
|
-
if (!result)
|
|
93
|
-
return {};
|
|
94
|
-
return result;
|
|
95
|
-
}
|
|
96
|
-
function errorMessage(error) {
|
|
97
|
-
if (error instanceof Error)
|
|
98
|
-
return error.message;
|
|
99
|
-
if (typeof error === 'string')
|
|
100
|
-
return error;
|
|
101
|
-
try {
|
|
102
|
-
return JSON.stringify(error);
|
|
103
|
-
}
|
|
104
|
-
catch {
|
|
105
|
-
return String(error);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
function isTerminalStatus(status) {
|
|
109
|
-
return status === 'completed' || status === 'failed' || status === 'canceled' || status === 'timed_out';
|
|
110
|
-
}
|
|
111
|
-
async function runWithTimeout(task, executor, dependencyResults, timeoutMs, outerSignal, run) {
|
|
112
|
-
if (outerSignal?.aborted)
|
|
113
|
-
return { type: 'canceled' };
|
|
114
|
-
const controller = new AbortController();
|
|
115
|
-
const abortFromOuter = () => controller.abort();
|
|
116
|
-
outerSignal?.addEventListener('abort', abortFromOuter, { once: true });
|
|
117
|
-
let timeoutHandle;
|
|
118
|
-
let cancelFromOuter;
|
|
119
|
-
try {
|
|
120
|
-
const execution = Promise.resolve()
|
|
121
|
-
.then(() => executor(task, { signal: controller.signal, dependencyResults, run }))
|
|
122
|
-
.then((value) => ({ type: 'completed', value }), (error) => ({ type: 'failed', error }));
|
|
123
|
-
const timeout = new Promise((resolve) => {
|
|
124
|
-
timeoutHandle = setTimeout(() => {
|
|
125
|
-
controller.abort();
|
|
126
|
-
resolve({ type: 'timed_out' });
|
|
127
|
-
}, timeoutMs);
|
|
128
|
-
});
|
|
129
|
-
const canceled = outerSignal
|
|
130
|
-
? new Promise((resolve) => {
|
|
131
|
-
cancelFromOuter = () => {
|
|
132
|
-
controller.abort();
|
|
133
|
-
resolve({ type: 'canceled' });
|
|
134
|
-
};
|
|
135
|
-
outerSignal.addEventListener('abort', cancelFromOuter, { once: true });
|
|
136
|
-
})
|
|
137
|
-
: undefined;
|
|
138
|
-
return await Promise.race(canceled ? [execution, timeout, canceled] : [execution, timeout]);
|
|
139
|
-
}
|
|
140
|
-
finally {
|
|
141
|
-
if (timeoutHandle)
|
|
142
|
-
clearTimeout(timeoutHandle);
|
|
143
|
-
outerSignal?.removeEventListener('abort', abortFromOuter);
|
|
144
|
-
if (cancelFromOuter)
|
|
145
|
-
outerSignal?.removeEventListener('abort', cancelFromOuter);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
function buildTaskRunInput(task, plan, parentRun) {
|
|
149
|
-
const dependencies = normalizeDependencies(task);
|
|
150
|
-
return {
|
|
151
|
-
agentKind: 'pi-subagent',
|
|
152
|
-
runtimeId: task.agent,
|
|
153
|
-
displayName: task.agent,
|
|
154
|
-
rootRunId: parentRun.rootRunId ?? parentRun.id,
|
|
155
|
-
parentRunId: parentRun.id,
|
|
156
|
-
...(plan.chatSessionId ? { chatSessionId: plan.chatSessionId } : {}),
|
|
157
|
-
...(task.cwd || plan.cwd ? { cwd: task.cwd ?? plan.cwd } : {}),
|
|
158
|
-
permissionMode: task.permissionMode ?? plan.permissionMode ?? 'agent',
|
|
159
|
-
inputSummary: inputSummaryForTask(task),
|
|
160
|
-
metadata: {
|
|
161
|
-
source: 'mindos-subagent-orchestrator',
|
|
162
|
-
orchestrationId: plan.id ?? parentRun.id,
|
|
163
|
-
taskId: task.id,
|
|
164
|
-
dependencies,
|
|
165
|
-
contextBudget: positiveInt(task.contextBudget, positiveInt(plan.contextBudget, DEFAULT_CONTEXT_BUDGET)),
|
|
166
|
-
timeoutMs: positiveInt(task.timeoutMs, positiveInt(plan.timeoutMs, DEFAULT_SUBAGENT_TIMEOUT_MS)),
|
|
167
|
-
...(task.metadata ?? {}),
|
|
168
|
-
},
|
|
169
|
-
};
|
|
170
|
-
}
|
|
171
|
-
async function executeOneTask(task, plan, parentRun, executor, dependencyResults, outerSignal) {
|
|
172
|
-
const run = startAgentRun(buildTaskRunInput(task, plan, parentRun));
|
|
173
|
-
const timeoutMs = positiveInt(task.timeoutMs, positiveInt(plan.timeoutMs, DEFAULT_SUBAGENT_TIMEOUT_MS));
|
|
174
|
-
// From here on the child run exists in the ledger — any throw below must
|
|
175
|
-
// still land it (and ultimately the parent) in a terminal state.
|
|
176
|
-
try {
|
|
177
|
-
const outcome = await runWithAgentRunContext({
|
|
178
|
-
...(run.chatSessionId ? { chatSessionId: run.chatSessionId } : {}),
|
|
179
|
-
rootRunId: run.rootRunId ?? run.id,
|
|
180
|
-
parentRunId: run.id,
|
|
181
|
-
}, () => runWithTimeout(task, executor, dependencyResults, timeoutMs, outerSignal, run));
|
|
182
|
-
if (outcome.type === 'timed_out') {
|
|
183
|
-
const error = `Subagent task ${task.id} timed out after ${timeoutMs}ms.`;
|
|
184
|
-
const failed = failAgentRun(run.id, { status: 'timed_out', error, metadata: { timeoutMs } }) ?? run;
|
|
185
|
-
return { taskId: task.id, agent: task.agent, run: failed, status: 'timed_out', error };
|
|
186
|
-
}
|
|
187
|
-
if (outcome.type === 'canceled') {
|
|
188
|
-
const error = `Subagent task ${task.id} was canceled.`;
|
|
189
|
-
const canceled = failAgentRun(run.id, { status: 'canceled', error, metadata: { canceled: true } }) ?? run;
|
|
190
|
-
return { taskId: task.id, agent: task.agent, run: canceled, status: 'canceled', error };
|
|
191
|
-
}
|
|
192
|
-
if (outcome.type === 'failed') {
|
|
193
|
-
const error = errorMessage(outcome.error);
|
|
194
|
-
const failed = failAgentRun(run.id, { error }) ?? run;
|
|
195
|
-
return { taskId: task.id, agent: task.agent, run: failed, status: 'failed', error };
|
|
196
|
-
}
|
|
197
|
-
const normalized = normalizeExecutorResult(outcome.value);
|
|
198
|
-
const status = normalized.status ?? 'completed';
|
|
199
|
-
if (status !== 'completed') {
|
|
200
|
-
const error = errorMessage(normalized.error ?? normalized.outputSummary ?? `Subagent task ${task.id} ended with ${status}.`);
|
|
201
|
-
const failed = failAgentRun(run.id, {
|
|
202
|
-
status,
|
|
203
|
-
error,
|
|
204
|
-
outputSummary: normalized.outputSummary,
|
|
205
|
-
metadata: normalized.metadata,
|
|
206
|
-
}) ?? run;
|
|
207
|
-
return { taskId: task.id, agent: task.agent, run: failed, status, outputSummary: normalized.outputSummary, error };
|
|
208
|
-
}
|
|
209
|
-
const completed = completeAgentRun(run.id, {
|
|
210
|
-
outputSummary: normalized.outputSummary,
|
|
211
|
-
metadata: normalized.metadata,
|
|
212
|
-
}) ?? run;
|
|
213
|
-
return { taskId: task.id, agent: task.agent, run: completed, status: 'completed', outputSummary: completed.outputSummary };
|
|
214
|
-
}
|
|
215
|
-
catch (error) {
|
|
216
|
-
const message = errorMessage(error);
|
|
217
|
-
const failed = failAgentRun(run.id, { error: message }) ?? run;
|
|
218
|
-
return { taskId: task.id, agent: task.agent, run: failed, status: 'failed', error: message };
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
function markTaskCanceled(task, plan, parentRun, dependencyResults) {
|
|
222
|
-
const failedDependencies = normalizeDependencies(task)
|
|
223
|
-
.map((dependencyId) => dependencyResults.get(dependencyId))
|
|
224
|
-
.filter((result) => result !== undefined && result.status !== 'completed')
|
|
225
|
-
.map((result) => `${result.taskId}:${result.status}`);
|
|
226
|
-
const error = `Subagent task ${task.id} was canceled because dependencies did not complete: ${failedDependencies.join(', ')}.`;
|
|
227
|
-
const run = startAgentRun({
|
|
228
|
-
...buildTaskRunInput(task, plan, parentRun),
|
|
229
|
-
status: 'queued',
|
|
230
|
-
});
|
|
231
|
-
const canceled = failAgentRun(run.id, {
|
|
232
|
-
status: 'canceled',
|
|
233
|
-
error,
|
|
234
|
-
metadata: {
|
|
235
|
-
canceledByDependency: true,
|
|
236
|
-
failedDependencies,
|
|
237
|
-
},
|
|
238
|
-
}) ?? run;
|
|
239
|
-
return { taskId: task.id, agent: task.agent, run: canceled, status: 'canceled', error };
|
|
240
|
-
}
|
|
241
|
-
export async function executeSubagentOrchestrationPlan(plan, executor, options = {}) {
|
|
242
|
-
validateSubagentPlan(plan);
|
|
243
|
-
const parentRun = startAgentRun({
|
|
244
|
-
id: plan.id,
|
|
245
|
-
agentKind: 'pi-subagent',
|
|
246
|
-
runtimeId: 'subagent:orchestration',
|
|
247
|
-
displayName: plan.displayName ?? `Subagent orchestration (${plan.tasks.length})`,
|
|
248
|
-
rootRunId: plan.rootRunId,
|
|
249
|
-
parentRunId: plan.parentRunId,
|
|
250
|
-
chatSessionId: plan.chatSessionId,
|
|
251
|
-
cwd: plan.cwd,
|
|
252
|
-
permissionMode: plan.permissionMode ?? 'agent',
|
|
253
|
-
inputSummary: JSON.stringify({
|
|
254
|
-
tasks: plan.tasks.map((task) => ({
|
|
255
|
-
id: task.id,
|
|
256
|
-
agent: task.agent,
|
|
257
|
-
dependencies: normalizeDependencies(task),
|
|
258
|
-
})),
|
|
259
|
-
}),
|
|
260
|
-
metadata: {
|
|
261
|
-
source: 'mindos-subagent-orchestrator',
|
|
262
|
-
taskCount: plan.tasks.length,
|
|
263
|
-
contextBudget: positiveInt(plan.contextBudget, DEFAULT_CONTEXT_BUDGET),
|
|
264
|
-
timeoutMs: positiveInt(plan.timeoutMs, DEFAULT_SUBAGENT_TIMEOUT_MS),
|
|
265
|
-
},
|
|
266
|
-
});
|
|
267
|
-
const pending = new Set(plan.tasks.map((task) => task.id));
|
|
268
|
-
const byId = new Map(plan.tasks.map((task) => [task.id, task]));
|
|
269
|
-
const results = new Map();
|
|
270
|
-
const running = new Map();
|
|
271
|
-
const launch = (task) => {
|
|
272
|
-
pending.delete(task.id);
|
|
273
|
-
const promise = executeOneTask(task, plan, parentRun, executor, results, options.signal)
|
|
274
|
-
.then((result) => {
|
|
275
|
-
results.set(task.id, result);
|
|
276
|
-
});
|
|
277
|
-
running.set(task.id, promise.finally(() => {
|
|
278
|
-
running.delete(task.id);
|
|
279
|
-
}));
|
|
280
|
-
};
|
|
281
|
-
try {
|
|
282
|
-
while (pending.size > 0 || running.size > 0) {
|
|
283
|
-
let launched = false;
|
|
284
|
-
for (const taskId of Array.from(pending)) {
|
|
285
|
-
const task = byId.get(taskId);
|
|
286
|
-
const dependencies = normalizeDependencies(task);
|
|
287
|
-
const dependencyResults = dependencies.map((dependencyId) => results.get(dependencyId));
|
|
288
|
-
if (dependencyResults.some((result) => result && result.status !== 'completed')) {
|
|
289
|
-
pending.delete(taskId);
|
|
290
|
-
results.set(taskId, markTaskCanceled(task, plan, parentRun, results));
|
|
291
|
-
continue;
|
|
292
|
-
}
|
|
293
|
-
if (dependencyResults.every(Boolean)) {
|
|
294
|
-
launch(task);
|
|
295
|
-
launched = true;
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
if (running.size === 0) {
|
|
299
|
-
if (pending.size === 0)
|
|
300
|
-
break;
|
|
301
|
-
if (!launched) {
|
|
302
|
-
throw new SubagentPlanValidationError('Subagent orchestration made no progress; check task dependencies.');
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
if (running.size > 0) {
|
|
306
|
-
await Promise.race(Array.from(running.values()));
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
catch (error) {
|
|
311
|
-
// Backstop: a scheduler failure must never leave the parent run stuck
|
|
312
|
-
// in 'running' — finalize it before surfacing the error.
|
|
313
|
-
failAgentRun(parentRun.id, { error: errorMessage(error) });
|
|
314
|
-
throw error;
|
|
315
|
-
}
|
|
316
|
-
const orderedResults = plan.tasks.map((task) => results.get(task.id)).filter(Boolean);
|
|
317
|
-
const reduction = reduceAgentRunResults(orderedResults.map((result) => result.run));
|
|
318
|
-
const summary = formatAgentResultReduction(reduction);
|
|
319
|
-
const finalParent = reduction.finalStatus === 'completed'
|
|
320
|
-
? completeAgentRun(parentRun.id, {
|
|
321
|
-
outputSummary: summary,
|
|
322
|
-
metadata: {
|
|
323
|
-
completed: reduction.completed,
|
|
324
|
-
failed: reduction.failed,
|
|
325
|
-
canceled: reduction.canceled,
|
|
326
|
-
timedOut: reduction.timedOut,
|
|
327
|
-
},
|
|
328
|
-
})
|
|
329
|
-
: failAgentRun(parentRun.id, {
|
|
330
|
-
status: reduction.finalStatus,
|
|
331
|
-
error: summary,
|
|
332
|
-
metadata: {
|
|
333
|
-
completed: reduction.completed,
|
|
334
|
-
failed: reduction.failed,
|
|
335
|
-
canceled: reduction.canceled,
|
|
336
|
-
timedOut: reduction.timedOut,
|
|
337
|
-
},
|
|
338
|
-
});
|
|
339
|
-
return {
|
|
340
|
-
parentRun: finalParent ?? parentRun,
|
|
341
|
-
status: reduction.finalStatus,
|
|
342
|
-
tasks: orderedResults,
|
|
343
|
-
reduction,
|
|
344
|
-
summary,
|
|
345
|
-
};
|
|
346
|
-
}
|
|
347
|
-
export function isSubagentPlanValidationError(error) {
|
|
348
|
-
return error instanceof SubagentPlanValidationError;
|
|
349
|
-
}
|
|
1
|
+
export * from './subagent/subagent-orchestrator.js';
|
|
350
2
|
//# sourceMappingURL=subagent-orchestrator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subagent-orchestrator.js","sourceRoot":"","sources":["../../src/agent/subagent-orchestrator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"subagent-orchestrator.js","sourceRoot":"","sources":["../../src/agent/subagent-orchestrator.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type MindosExecutableTool = {
|
|
2
|
+
name: string;
|
|
3
|
+
description?: string;
|
|
4
|
+
parameters?: unknown;
|
|
5
|
+
execute(toolCallId: string, args: Record<string, unknown>, signal: AbortSignal, onUpdate?: (update: unknown) => void): Promise<{
|
|
6
|
+
content: Array<{
|
|
7
|
+
type: string;
|
|
8
|
+
text?: string;
|
|
9
|
+
}>;
|
|
10
|
+
}>;
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=executable-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executable-tool.d.ts","sourceRoot":"","sources":["../../../src/agent/tool/executable-tool.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CACL,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,WAAW,EACnB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,GACnC,OAAO,CAAC;QACT,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACjD,CAAC,CAAC;CACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executable-tool.js","sourceRoot":"","sources":["../../../src/agent/tool/executable-tool.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agent/tool/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agent/tool/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC"}
|
package/dist/agent/tool/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agent/tool/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agent/tool/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC"}
|
|
@@ -1,38 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import { type MindosAgentPermissionPolicyMode, type MindosAgentPermissionPolicy } from './permission-policy.js';
|
|
3
|
-
import { type MindosAgentTool } from './kb-tools.js';
|
|
4
|
-
export type KbMode = MindosAgentPermissionPolicyMode;
|
|
5
|
-
/** Run fn with a request-scoped policy; the kb extension reads it during reload(). */
|
|
6
|
-
export declare function runWithKbPermissionPolicy<T>(policy: MindosAgentPermissionPolicy, fn: () => T): T;
|
|
7
|
-
/** Set the mode before resourceLoader.reload(). Determines which tools get registered. */
|
|
8
|
-
export declare function setKbMode(mode: KbMode): void;
|
|
9
|
-
export declare function setKbPermissionPolicy(policy: MindosAgentPermissionPolicy): void;
|
|
10
|
-
/** The policy the extension will register tools for: request-scoped, else fallback. */
|
|
11
|
-
export declare function getEffectiveKbPermissionPolicy(): MindosAgentPermissionPolicy;
|
|
12
|
-
export interface MindosKbAuditEntry {
|
|
13
|
-
ts: string;
|
|
14
|
-
tool: string;
|
|
15
|
-
params: Record<string, unknown>;
|
|
16
|
-
result: 'ok' | 'error';
|
|
17
|
-
message?: string;
|
|
18
|
-
durationMs?: number;
|
|
19
|
-
agentName?: string;
|
|
20
|
-
}
|
|
21
|
-
export interface MindosKbExtensionHost {
|
|
22
|
-
/** Toolkit lookup for the effective policy — typically MindosKbToolkit.getToolsForPolicy. */
|
|
23
|
-
getToolsForPolicy(policy: MindosAgentPermissionPolicy): MindosAgentTool[];
|
|
24
|
-
/** Audit sink for executed tool calls. Write path is a host concern; must never throw. */
|
|
25
|
-
logAgentOp?(entry: MindosKbAuditEntry): void;
|
|
26
|
-
}
|
|
27
|
-
export declare function createMindosKbExtension(host: MindosKbExtensionHost): (pi: ExtensionAPI) => void;
|
|
28
|
-
/** Register the host toolkit. Must run before resourceLoader.reload(). Idempotent. */
|
|
29
|
-
export declare function registerMindosKbExtensionHost(host: MindosKbExtensionHost): void;
|
|
30
|
-
/** The toolkit registered by the host runtime, if any. */
|
|
31
|
-
export declare function getMindosKbExtensionHost(): MindosKbExtensionHost | undefined;
|
|
32
|
-
/**
|
|
33
|
-
* Extension factory for host entry files: resolves the host toolkit from the
|
|
34
|
-
* registered slot at execution time, so the entry file's own import graph
|
|
35
|
-
* stays free of host modules (jiti-loadable).
|
|
36
|
-
*/
|
|
37
|
-
export declare function createMindosKbExtensionFromRegisteredHost(): (pi: ExtensionAPI) => void;
|
|
1
|
+
export * from '../mindos-pi/extension/kb-extension.js';
|
|
38
2
|
//# sourceMappingURL=kb-extension.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kb-extension.d.ts","sourceRoot":"","sources":["../../../src/agent/tool/kb-extension.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"kb-extension.d.ts","sourceRoot":"","sources":["../../../src/agent/tool/kb-extension.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAC"}
|
|
@@ -1,140 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
//
|
|
3
|
-
// Knowledge Base Extension — registers the MindOS KB tools via the Pi
|
|
4
|
-
// Extension API, wrapping them with write-protection and audit logging.
|
|
5
|
-
// Hosts keep a real extension entry file (the pi DefaultResourceLoader loads
|
|
6
|
-
// it by file path) that wires their toolkit into createMindosKbExtension().
|
|
7
|
-
//
|
|
8
|
-
// Permission-based filtering (readonly/organize/agent) is controlled by
|
|
9
|
-
// runWithKbPermissionPolicy() (request-scoped) or setKbMode()/
|
|
10
|
-
// setKbPermissionPolicy() (process fallback), evaluated at reload() time.
|
|
11
|
-
//
|
|
12
|
-
// All policy state lives behind Symbol.for keys (global-state.ts): the pi
|
|
13
|
-
// loader imports the host's extension entry in its own module graph, so
|
|
14
|
-
// module-level state here would fork between the route's copy and the
|
|
15
|
-
// loader's copy.
|
|
16
|
-
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
17
|
-
import { assertNotProtected } from '../../foundation/security/index.js';
|
|
18
|
-
import { createMindosAgentPermissionPolicy, } from './permission-policy.js';
|
|
19
|
-
import { getProcessGlobal, KB_EXTENSION_HOST_KEY, KB_PERMISSION_POLICY_FALLBACK_KEY, KB_PERMISSION_POLICY_STORAGE_KEY, } from '../global-state.js';
|
|
20
|
-
import { WRITE_TOOLS } from './kb-tools.js';
|
|
21
|
-
function getPolicyStorage() {
|
|
22
|
-
return getProcessGlobal(KB_PERMISSION_POLICY_STORAGE_KEY, () => new AsyncLocalStorage());
|
|
23
|
-
}
|
|
24
|
-
function getPolicyFallback() {
|
|
25
|
-
return getProcessGlobal(KB_PERMISSION_POLICY_FALLBACK_KEY, () => ({ policy: createMindosAgentPermissionPolicy('agent') }));
|
|
26
|
-
}
|
|
27
|
-
/** Run fn with a request-scoped policy; the kb extension reads it during reload(). */
|
|
28
|
-
export function runWithKbPermissionPolicy(policy, fn) {
|
|
29
|
-
return getPolicyStorage().run(policy, fn);
|
|
30
|
-
}
|
|
31
|
-
/** Set the mode before resourceLoader.reload(). Determines which tools get registered. */
|
|
32
|
-
export function setKbMode(mode) {
|
|
33
|
-
getPolicyFallback().policy = createMindosAgentPermissionPolicy(mode);
|
|
34
|
-
}
|
|
35
|
-
export function setKbPermissionPolicy(policy) {
|
|
36
|
-
getPolicyFallback().policy = policy;
|
|
37
|
-
}
|
|
38
|
-
/** The policy the extension will register tools for: request-scoped, else fallback. */
|
|
39
|
-
export function getEffectiveKbPermissionPolicy() {
|
|
40
|
-
return getPolicyStorage().getStore() ?? getPolicyFallback().policy;
|
|
41
|
-
}
|
|
42
|
-
// ─── Helpers ──────────────────────────────────────────────────────────────────
|
|
43
|
-
function textResult(text) {
|
|
44
|
-
return { content: [{ type: 'text', text }], details: undefined };
|
|
45
|
-
}
|
|
46
|
-
function getProtectedPaths(toolName, args) {
|
|
47
|
-
const paths = [];
|
|
48
|
-
if (toolName === 'batch_create_files' && Array.isArray(args.files)) {
|
|
49
|
-
args.files.forEach((f) => { if (f.path)
|
|
50
|
-
paths.push(f.path); });
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
const p = (args.path ?? args.from_path);
|
|
54
|
-
if (typeof p === 'string')
|
|
55
|
-
paths.push(p);
|
|
56
|
-
}
|
|
57
|
-
return paths;
|
|
58
|
-
}
|
|
59
|
-
export function createMindosKbExtension(host) {
|
|
60
|
-
return function kbExtension(pi) {
|
|
61
|
-
const policy = getEffectiveKbPermissionPolicy();
|
|
62
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
63
|
-
const tools = host.getToolsForPolicy(policy);
|
|
64
|
-
for (const tool of tools) {
|
|
65
|
-
pi.registerTool({
|
|
66
|
-
name: tool.name,
|
|
67
|
-
label: tool.label,
|
|
68
|
-
description: tool.description,
|
|
69
|
-
parameters: tool.parameters,
|
|
70
|
-
execute: async (toolCallId, params, signal, onUpdate) => {
|
|
71
|
-
const args = (params ?? {});
|
|
72
|
-
// Write-protection guard
|
|
73
|
-
if (WRITE_TOOLS.has(tool.name)) {
|
|
74
|
-
for (const filePath of getProtectedPaths(tool.name, args)) {
|
|
75
|
-
try {
|
|
76
|
-
assertNotProtected(filePath, 'modified by AI agent');
|
|
77
|
-
}
|
|
78
|
-
catch (error) {
|
|
79
|
-
const msg = error instanceof Error ? error.message : String(error);
|
|
80
|
-
return textResult(`Write-protection error: ${msg}. You CANNOT modify ${filePath} because it is system-protected. Please tell the user you don't have permission to do this.`);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
// Execute the actual tool
|
|
85
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
86
|
-
const result = await tool.execute(toolCallId, params, signal, onUpdate);
|
|
87
|
-
// Log the operation
|
|
88
|
-
try {
|
|
89
|
-
const outputText = result?.content
|
|
90
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
91
|
-
?.filter((p) => p.type === 'text')
|
|
92
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
93
|
-
.map((p) => p.text)
|
|
94
|
-
.join('') ?? '';
|
|
95
|
-
host.logAgentOp?.({
|
|
96
|
-
ts: new Date().toISOString(),
|
|
97
|
-
tool: tool.name,
|
|
98
|
-
params: args,
|
|
99
|
-
result: outputText.startsWith('Error:') ? 'error' : 'ok',
|
|
100
|
-
message: outputText.slice(0, 200),
|
|
101
|
-
agentName: 'MindOS',
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
catch {
|
|
105
|
-
// logging must never kill the stream
|
|
106
|
-
}
|
|
107
|
-
return result;
|
|
108
|
-
},
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
};
|
|
112
|
-
}
|
|
113
|
-
function getHostSlot() {
|
|
114
|
-
return getProcessGlobal(KB_EXTENSION_HOST_KEY, () => ({ host: undefined }));
|
|
115
|
-
}
|
|
116
|
-
/** Register the host toolkit. Must run before resourceLoader.reload(). Idempotent. */
|
|
117
|
-
export function registerMindosKbExtensionHost(host) {
|
|
118
|
-
getHostSlot().host = host;
|
|
119
|
-
}
|
|
120
|
-
/** The toolkit registered by the host runtime, if any. */
|
|
121
|
-
export function getMindosKbExtensionHost() {
|
|
122
|
-
return getHostSlot().host;
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Extension factory for host entry files: resolves the host toolkit from the
|
|
126
|
-
* registered slot at execution time, so the entry file's own import graph
|
|
127
|
-
* stays free of host modules (jiti-loadable).
|
|
128
|
-
*/
|
|
129
|
-
export function createMindosKbExtensionFromRegisteredHost() {
|
|
130
|
-
return function kbExtensionFromRegisteredHost(pi) {
|
|
131
|
-
const host = getMindosKbExtensionHost();
|
|
132
|
-
if (!host) {
|
|
133
|
-
throw new Error('MindOS KB extension host not registered. Call registerMindosKbExtensionHost() '
|
|
134
|
-
+ 'from the host runtime before resourceLoader.reload() — the kb-extension entry '
|
|
135
|
-
+ 'is loaded in the pi loader module graph and cannot import host modules.');
|
|
136
|
-
}
|
|
137
|
-
return createMindosKbExtension(host)(pi);
|
|
138
|
-
};
|
|
139
|
-
}
|
|
1
|
+
export * from '../mindos-pi/extension/kb-extension.js';
|
|
140
2
|
//# sourceMappingURL=kb-extension.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kb-extension.js","sourceRoot":"","sources":["../../../src/agent/tool/kb-extension.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"kb-extension.js","sourceRoot":"","sources":["../../../src/agent/tool/kb-extension.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAC"}
|