agent-nuvira 2.7.2 → 3.0.0
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/agents/agents/writer-tool-calling.d.ts +14 -0
- package/dist/agents/agents/writer-tool-calling.d.ts.map +1 -1
- package/dist/agents/agents/writer-tool-calling.js +20 -0
- package/dist/agents/agents/writer-tool-calling.js.map +1 -1
- package/dist/agents/agents/writer.d.ts.map +1 -1
- package/dist/agents/agents/writer.js +15 -4
- package/dist/agents/agents/writer.js.map +1 -1
- package/dist/agents/edit-module.d.ts +7 -0
- package/dist/agents/edit-module.d.ts.map +1 -1
- package/dist/agents/edit-module.js +21 -6
- package/dist/agents/edit-module.js.map +1 -1
- package/dist/agents/orchestrator.d.ts +40 -0
- package/dist/agents/orchestrator.d.ts.map +1 -1
- package/dist/agents/orchestrator.js +116 -27
- package/dist/agents/orchestrator.js.map +1 -1
- package/dist/agents/tool-calling-agent.d.ts +19 -0
- package/dist/agents/tool-calling-agent.d.ts.map +1 -1
- package/dist/agents/tool-calling-agent.js +42 -2
- package/dist/agents/tool-calling-agent.js.map +1 -1
- package/dist/auth-api.d.ts +2 -0
- package/dist/auth-api.d.ts.map +1 -0
- package/dist/auth-api.js +61 -0
- package/dist/auth-api.js.map +1 -0
- package/dist/auth.test.d.ts +1 -0
- package/dist/auth.test.d.ts.map +1 -0
- package/dist/auth.test.js +3 -0
- package/dist/auth.test.js.map +1 -0
- package/dist/cli/chat.d.ts +66 -1
- package/dist/cli/chat.d.ts.map +1 -1
- package/dist/cli/chat.js +323 -77
- package/dist/cli/chat.js.map +1 -1
- package/dist/cli/cli-program.d.ts +6 -0
- package/dist/cli/cli-program.d.ts.map +1 -0
- package/dist/cli/cli-program.js +222 -0
- package/dist/cli/cli-program.js.map +1 -0
- package/dist/cli/edit.d.ts.map +1 -1
- package/dist/cli/edit.js +18 -3
- package/dist/cli/edit.js.map +1 -1
- package/dist/cli/execute.d.ts.map +1 -1
- package/dist/cli/execute.js +29 -5
- package/dist/cli/execute.js.map +1 -1
- package/dist/cli/failover-runner.d.ts +13 -0
- package/dist/cli/failover-runner.d.ts.map +1 -1
- package/dist/cli/failover-runner.js +11 -0
- package/dist/cli/failover-runner.js.map +1 -1
- package/dist/cli/gateway.d.ts +16 -0
- package/dist/cli/gateway.d.ts.map +1 -1
- package/dist/cli/gateway.js +108 -2
- package/dist/cli/gateway.js.map +1 -1
- package/dist/cli/loop-executor.d.ts.map +1 -1
- package/dist/cli/loop-executor.js +296 -20
- package/dist/cli/loop-executor.js.map +1 -1
- package/dist/cli/plan.d.ts.map +1 -1
- package/dist/cli/plan.js +20 -6
- package/dist/cli/plan.js.map +1 -1
- package/dist/cli/process-control.d.ts +10 -0
- package/dist/cli/process-control.d.ts.map +1 -1
- package/dist/cli/process-control.js +73 -7
- package/dist/cli/process-control.js.map +1 -1
- package/dist/cli/router.d.ts +16 -5
- package/dist/cli/router.d.ts.map +1 -1
- package/dist/cli/router.js +31 -206
- package/dist/cli/router.js.map +1 -1
- package/dist/config/paths.d.ts +23 -0
- package/dist/config/paths.d.ts.map +1 -1
- package/dist/config/paths.js +30 -0
- package/dist/config/paths.js.map +1 -1
- package/dist/config/provider-env.d.ts +37 -0
- package/dist/config/provider-env.d.ts.map +1 -0
- package/dist/config/provider-env.js +86 -0
- package/dist/config/provider-env.js.map +1 -0
- package/dist/context/history.d.ts.map +1 -1
- package/dist/context/history.js +24 -8
- package/dist/context/history.js.map +1 -1
- package/dist/context/session-recall.d.ts +30 -0
- package/dist/context/session-recall.d.ts.map +1 -1
- package/dist/context/session-recall.js +61 -0
- package/dist/context/session-recall.js.map +1 -1
- package/dist/file.js +0 -1
- package/dist/file.js.map +1 -1
- package/dist/gateway/adapters.d.ts +10 -0
- package/dist/gateway/adapters.d.ts.map +1 -1
- package/dist/gateway/adapters.js +4 -1
- package/dist/gateway/adapters.js.map +1 -1
- package/dist/gateway/dedup.d.ts +105 -0
- package/dist/gateway/dedup.d.ts.map +1 -0
- package/dist/gateway/dedup.js +160 -0
- package/dist/gateway/dedup.js.map +1 -0
- package/dist/gateway/heartbeat.d.ts +99 -0
- package/dist/gateway/heartbeat.d.ts.map +1 -0
- package/dist/gateway/heartbeat.js +122 -0
- package/dist/gateway/heartbeat.js.map +1 -0
- package/dist/gateway/inbox.d.ts +14 -1
- package/dist/gateway/inbox.d.ts.map +1 -1
- package/dist/gateway/inbox.js.map +1 -1
- package/dist/gateway/platform-config.d.ts +5 -0
- package/dist/gateway/platform-config.d.ts.map +1 -1
- package/dist/gateway/platform-config.js +8 -13
- package/dist/gateway/platform-config.js.map +1 -1
- package/dist/gateway/registry.d.ts +65 -0
- package/dist/gateway/registry.d.ts.map +1 -1
- package/dist/gateway/registry.js +307 -32
- package/dist/gateway/registry.js.map +1 -1
- package/dist/gateway/whatsapp/baileys-bridge.d.ts +11 -1
- package/dist/gateway/whatsapp/baileys-bridge.d.ts.map +1 -1
- package/dist/gateway/whatsapp/baileys-bridge.js +64 -1
- package/dist/gateway/whatsapp/baileys-bridge.js.map +1 -1
- package/dist/gateway/whatsapp/bridge.d.ts +4 -2
- package/dist/gateway/whatsapp/bridge.d.ts.map +1 -1
- package/dist/gateway/whatsapp/bridge.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/inference/factory.d.ts +16 -0
- package/dist/inference/factory.d.ts.map +1 -1
- package/dist/inference/factory.js +42 -0
- package/dist/inference/factory.js.map +1 -1
- package/dist/inference/gemini-adapter.d.ts.map +1 -1
- package/dist/inference/gemini-adapter.js +3 -0
- package/dist/inference/gemini-adapter.js.map +1 -1
- package/dist/inference/interface.d.ts +12 -0
- package/dist/inference/interface.d.ts.map +1 -1
- package/dist/inference/local-adapter.d.ts +2 -0
- package/dist/inference/local-adapter.d.ts.map +1 -1
- package/dist/inference/local-adapter.js +36 -5
- package/dist/inference/local-adapter.js.map +1 -1
- package/dist/inference/model-catalog.d.ts +8 -0
- package/dist/inference/model-catalog.d.ts.map +1 -1
- package/dist/inference/model-catalog.js +40 -0
- package/dist/inference/model-catalog.js.map +1 -1
- package/dist/inference/model-probe.d.ts +7 -0
- package/dist/inference/model-probe.d.ts.map +1 -1
- package/dist/inference/model-probe.js +25 -7
- package/dist/inference/model-probe.js.map +1 -1
- package/dist/inference/native-tools.d.ts +8 -0
- package/dist/inference/native-tools.d.ts.map +1 -1
- package/dist/inference/native-tools.js +14 -3
- package/dist/inference/native-tools.js.map +1 -1
- package/dist/inference/tool-call-utils.d.ts +66 -7
- package/dist/inference/tool-call-utils.d.ts.map +1 -1
- package/dist/inference/tool-call-utils.js +134 -13
- package/dist/inference/tool-call-utils.js.map +1 -1
- package/dist/learning/auto-router.d.ts +21 -0
- package/dist/learning/auto-router.d.ts.map +1 -1
- package/dist/learning/auto-router.js +282 -21
- package/dist/learning/auto-router.js.map +1 -1
- package/dist/learning/context-budget.d.ts +133 -0
- package/dist/learning/context-budget.d.ts.map +1 -0
- package/dist/learning/context-budget.js +196 -0
- package/dist/learning/context-budget.js.map +1 -0
- package/dist/learning/cost-tracker.d.ts.map +1 -1
- package/dist/learning/cost-tracker.js +20 -8
- package/dist/learning/cost-tracker.js.map +1 -1
- package/dist/learning/eval-framework.d.ts.map +1 -1
- package/dist/learning/eval-framework.js +6 -2
- package/dist/learning/eval-framework.js.map +1 -1
- package/dist/learning/failure-bookkeeping.d.ts +41 -0
- package/dist/learning/failure-bookkeeping.d.ts.map +1 -1
- package/dist/learning/failure-bookkeeping.js +122 -4
- package/dist/learning/failure-bookkeeping.js.map +1 -1
- package/dist/learning/feedback.d.ts.map +1 -1
- package/dist/learning/feedback.js +19 -8
- package/dist/learning/feedback.js.map +1 -1
- package/dist/learning/model-first-router.d.ts.map +1 -1
- package/dist/learning/model-first-router.js +5 -11
- package/dist/learning/model-first-router.js.map +1 -1
- package/dist/learning/model-harness.d.ts +76 -0
- package/dist/learning/model-harness.d.ts.map +1 -0
- package/dist/learning/model-harness.js +119 -0
- package/dist/learning/model-harness.js.map +1 -0
- package/dist/learning/model-registry.d.ts +29 -0
- package/dist/learning/model-registry.d.ts.map +1 -1
- package/dist/learning/model-registry.js +129 -3
- package/dist/learning/model-registry.js.map +1 -1
- package/dist/learning/model-scoring.d.ts.map +1 -1
- package/dist/learning/model-scoring.js +6 -1
- package/dist/learning/model-scoring.js.map +1 -1
- package/dist/learning/model-selection.d.ts +15 -0
- package/dist/learning/model-selection.d.ts.map +1 -1
- package/dist/learning/model-selection.js +40 -1
- package/dist/learning/model-selection.js.map +1 -1
- package/dist/learning/provider-fallback.d.ts +12 -0
- package/dist/learning/provider-fallback.d.ts.map +1 -1
- package/dist/learning/provider-fallback.js +84 -0
- package/dist/learning/provider-fallback.js.map +1 -1
- package/dist/learning/provider-revival.d.ts +106 -0
- package/dist/learning/provider-revival.d.ts.map +1 -0
- package/dist/learning/provider-revival.js +154 -0
- package/dist/learning/provider-revival.js.map +1 -0
- package/dist/learning/quota-ledger.d.ts +64 -3
- package/dist/learning/quota-ledger.d.ts.map +1 -1
- package/dist/learning/quota-ledger.js +122 -9
- package/dist/learning/quota-ledger.js.map +1 -1
- package/dist/learning/resilient-call.d.ts +98 -0
- package/dist/learning/resilient-call.d.ts.map +1 -1
- package/dist/learning/resilient-call.js +252 -46
- package/dist/learning/resilient-call.js.map +1 -1
- package/dist/nlu/conversation-gate.d.ts +37 -0
- package/dist/nlu/conversation-gate.d.ts.map +1 -1
- package/dist/nlu/conversation-gate.js +49 -0
- package/dist/nlu/conversation-gate.js.map +1 -1
- package/dist/nlu/schema.d.ts +4 -4
- package/dist/observability/dag-bridge.d.ts +69 -0
- package/dist/observability/dag-bridge.d.ts.map +1 -0
- package/dist/observability/dag-bridge.js +56 -0
- package/dist/observability/dag-bridge.js.map +1 -0
- package/dist/observability/event-bus.d.ts +5 -10
- package/dist/observability/event-bus.d.ts.map +1 -1
- package/dist/observability/event-bus.js +10 -42
- package/dist/observability/event-bus.js.map +1 -1
- package/dist/routes/auth.d.ts +3 -0
- package/dist/routes/auth.d.ts.map +1 -0
- package/dist/routes/auth.js +41 -36
- package/dist/routes/auth.js.map +1 -0
- package/dist/skills/execution-audit.d.ts.map +1 -1
- package/dist/skills/execution-audit.js +17 -5
- package/dist/skills/execution-audit.js.map +1 -1
- package/dist/skills/sandbox-executor.d.ts +12 -1
- package/dist/skills/sandbox-executor.d.ts.map +1 -1
- package/dist/skills/sandbox-executor.js +28 -6
- package/dist/skills/sandbox-executor.js.map +1 -1
- package/dist/skills/secret-capture.d.ts +45 -1
- package/dist/skills/secret-capture.d.ts.map +1 -1
- package/dist/skills/secret-capture.js +82 -19
- package/dist/skills/secret-capture.js.map +1 -1
- package/dist/skills/skill-env-inventory.d.ts +79 -0
- package/dist/skills/skill-env-inventory.d.ts.map +1 -0
- package/dist/skills/skill-env-inventory.js +167 -0
- package/dist/skills/skill-env-inventory.js.map +1 -0
- package/dist/skills/skill-executor.d.ts +2 -0
- package/dist/skills/skill-executor.d.ts.map +1 -1
- package/dist/skills/skill-executor.js +19 -24
- package/dist/skills/skill-executor.js.map +1 -1
- package/dist/tools/ask-user.d.ts +14 -1
- package/dist/tools/ask-user.d.ts.map +1 -1
- package/dist/tools/ask-user.js +25 -1
- package/dist/tools/ask-user.js.map +1 -1
- package/dist/tools/followup-utils.d.ts +64 -0
- package/dist/tools/followup-utils.d.ts.map +1 -0
- package/dist/tools/followup-utils.js +158 -0
- package/dist/tools/followup-utils.js.map +1 -0
- package/dist/tools/memory-tools.d.ts +35 -0
- package/dist/tools/memory-tools.d.ts.map +1 -1
- package/dist/tools/memory-tools.js +76 -0
- package/dist/tools/memory-tools.js.map +1 -1
- package/dist/tools/pipeline-tool.d.ts.map +1 -1
- package/dist/tools/pipeline-tool.js +8 -3
- package/dist/tools/pipeline-tool.js.map +1 -1
- package/dist/tools/registry.d.ts +25 -12
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +31 -6
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/skill-tool.d.ts.map +1 -1
- package/dist/tools/skill-tool.js +52 -5
- package/dist/tools/skill-tool.js.map +1 -1
- package/dist/tools/tool-loop.d.ts +63 -1
- package/dist/tools/tool-loop.d.ts.map +1 -1
- package/dist/tools/tool-loop.js +305 -66
- package/dist/tools/tool-loop.js.map +1 -1
- package/dist/tools/toolsets.d.ts +19 -3
- package/dist/tools/toolsets.d.ts.map +1 -1
- package/dist/tools/toolsets.js +21 -5
- package/dist/tools/toolsets.js.map +1 -1
- package/dist/utils/env.d.ts.map +1 -1
- package/dist/utils/env.js +9 -13
- package/dist/utils/env.js.map +1 -1
- package/dist/web-dashboard/chat-console.d.ts +13 -1
- package/dist/web-dashboard/chat-console.d.ts.map +1 -1
- package/dist/web-dashboard/chat-console.js +16 -2
- package/dist/web-dashboard/chat-console.js.map +1 -1
- package/dist/web-dashboard/hub-data.d.ts +2 -0
- package/dist/web-dashboard/hub-data.d.ts.map +1 -1
- package/dist/web-dashboard/hub-data.js +4 -0
- package/dist/web-dashboard/hub-data.js.map +1 -1
- package/dist/web-dashboard/server.d.ts +6 -0
- package/dist/web-dashboard/server.d.ts.map +1 -1
- package/dist/web-dashboard/server.js +196 -3
- package/dist/web-dashboard/server.js.map +1 -1
- package/dist/web-dashboard/src/types.d.ts +31 -1
- package/dist/web-dashboard/src/types.d.ts.map +1 -1
- package/package.json +11 -1
- package/src/web-dashboard/public/assets/index-56yPnN_m.js +207 -0
- package/src/web-dashboard/public/assets/index-56yPnN_m.js.map +1 -0
- package/src/web-dashboard/public/assets/{index-C507EUWf.css → index-Cyd6tIew.css} +1 -1
- package/src/web-dashboard/public/index.html +2 -2
- package/dist/example.d.ts +0 -1
- package/dist/example.d.ts.map +0 -1
- package/dist/example.js +0 -3
- package/dist/example.js.map +0 -1
- package/dist/fresh.d.ts +0 -2
- package/dist/fresh.d.ts.map +0 -1
- package/dist/fresh.js +0 -2
- package/dist/fresh.js.map +0 -1
- package/dist/mcp/mcp-dashboard-oauth.d.ts +0 -94
- package/dist/mcp/mcp-dashboard-oauth.d.ts.map +0 -1
- package/dist/mcp/mcp-dashboard-oauth.js +0 -140
- package/dist/mcp/mcp-dashboard-oauth.js.map +0 -1
- package/dist/memory/background-sync.d.ts +0 -107
- package/dist/memory/background-sync.d.ts.map +0 -1
- package/dist/memory/background-sync.js +0 -242
- package/dist/memory/background-sync.js.map +0 -1
- package/dist/memory/cross-session.d.ts +0 -68
- package/dist/memory/cross-session.d.ts.map +0 -1
- package/dist/memory/cross-session.js +0 -153
- package/dist/memory/cross-session.js.map +0 -1
- package/dist/memory/drift-detector.d.ts +0 -76
- package/dist/memory/drift-detector.d.ts.map +0 -1
- package/dist/memory/drift-detector.js +0 -216
- package/dist/memory/drift-detector.js.map +0 -1
- package/dist/memory/enhanced-manager.d.ts +0 -105
- package/dist/memory/enhanced-manager.d.ts.map +0 -1
- package/dist/memory/enhanced-manager.js +0 -280
- package/dist/memory/enhanced-manager.js.map +0 -1
- package/dist/memory/session-extraction.d.ts +0 -93
- package/dist/memory/session-extraction.d.ts.map +0 -1
- package/dist/memory/session-extraction.js +0 -290
- package/dist/memory/session-extraction.js.map +0 -1
- package/dist/memory/sqlite-store.d.ts +0 -208
- package/dist/memory/sqlite-store.d.ts.map +0 -1
- package/dist/memory/sqlite-store.js +0 -556
- package/dist/memory/sqlite-store.js.map +0 -1
- package/dist/skills/daytona-executor.d.ts +0 -78
- package/dist/skills/daytona-executor.d.ts.map +0 -1
- package/dist/skills/daytona-executor.js +0 -256
- package/dist/skills/daytona-executor.js.map +0 -1
- package/dist/skills/modal-executor.d.ts +0 -81
- package/dist/skills/modal-executor.d.ts.map +0 -1
- package/dist/skills/modal-executor.js +0 -285
- package/dist/skills/modal-executor.js.map +0 -1
- package/dist/sync/inventory.d.ts +0 -1
- package/dist/sync/inventory.d.ts.map +0 -1
- package/dist/sync/inventory.js +0 -3
- package/dist/sync/inventory.js.map +0 -1
- package/dist/sync/validate.d.ts +0 -1
- package/dist/sync/validate.d.ts.map +0 -1
- package/dist/sync/validate.js +0 -3
- package/dist/sync/validate.js.map +0 -1
- package/dist/test.d.ts +0 -2
- package/dist/test.d.ts.map +0 -1
- package/dist/test.js +0 -3
- package/dist/test.js.map +0 -1
- package/dist/tools/browser-tool.d.ts +0 -206
- package/dist/tools/browser-tool.d.ts.map +0 -1
- package/dist/tools/browser-tool.js +0 -726
- package/dist/tools/browser-tool.js.map +0 -1
- package/dist/tools/delegate-tool.d.ts +0 -109
- package/dist/tools/delegate-tool.d.ts.map +0 -1
- package/dist/tools/delegate-tool.js +0 -185
- package/dist/tools/delegate-tool.js.map +0 -1
- package/dist/tools/delegation-state.d.ts +0 -87
- package/dist/tools/delegation-state.d.ts.map +0 -1
- package/dist/tools/delegation-state.js +0 -278
- package/dist/tools/delegation-state.js.map +0 -1
- package/dist/tools/desktop-ui.d.ts +0 -148
- package/dist/tools/desktop-ui.d.ts.map +0 -1
- package/dist/tools/desktop-ui.js +0 -486
- package/dist/tools/desktop-ui.js.map +0 -1
- package/dist/tools/image-video-tool.d.ts +0 -88
- package/dist/tools/image-video-tool.d.ts.map +0 -1
- package/dist/tools/image-video-tool.js +0 -276
- package/dist/tools/image-video-tool.js.map +0 -1
- package/dist/tools/kanban-cron-tools.d.ts +0 -92
- package/dist/tools/kanban-cron-tools.d.ts.map +0 -1
- package/dist/tools/kanban-cron-tools.js +0 -197
- package/dist/tools/kanban-cron-tools.js.map +0 -1
- package/dist/tools/messaging-tool.d.ts +0 -127
- package/dist/tools/messaging-tool.d.ts.map +0 -1
- package/dist/tools/messaging-tool.js +0 -314
- package/dist/tools/messaging-tool.js.map +0 -1
- package/dist/tools/modality/generic-caller.d.ts +0 -43
- package/dist/tools/modality/generic-caller.d.ts.map +0 -1
- package/dist/tools/modality/generic-caller.js +0 -254
- package/dist/tools/modality/generic-caller.js.map +0 -1
- package/dist/tools/modality/modality-catalog.d.ts +0 -134
- package/dist/tools/modality/modality-catalog.d.ts.map +0 -1
- package/dist/tools/modality/modality-catalog.js +0 -445
- package/dist/tools/modality/modality-catalog.js.map +0 -1
- package/dist/tools/modality/tool-router.d.ts +0 -81
- package/dist/tools/modality/tool-router.d.ts.map +0 -1
- package/dist/tools/modality/tool-router.js +0 -84
- package/dist/tools/modality/tool-router.js.map +0 -1
- package/dist/tools/security-tools.d.ts +0 -107
- package/dist/tools/security-tools.d.ts.map +0 -1
- package/dist/tools/security-tools.js +0 -264
- package/dist/tools/security-tools.js.map +0 -1
- package/dist/tools/ssh-tool.d.ts +0 -130
- package/dist/tools/ssh-tool.d.ts.map +0 -1
- package/dist/tools/ssh-tool.js +0 -328
- package/dist/tools/ssh-tool.js.map +0 -1
- package/dist/tools/tts-tool.d.ts +0 -91
- package/dist/tools/tts-tool.d.ts.map +0 -1
- package/dist/tools/tts-tool.js +0 -406
- package/dist/tools/tts-tool.js.map +0 -1
- package/dist/utils/shell-detection.d.ts +0 -124
- package/dist/utils/shell-detection.d.ts.map +0 -1
- package/dist/utils/shell-detection.js +0 -305
- package/dist/utils/shell-detection.js.map +0 -1
- package/dist/utils/windows-paths.d.ts +0 -185
- package/dist/utils/windows-paths.d.ts.map +0 -1
- package/dist/utils/windows-paths.js +0 -472
- package/dist/utils/windows-paths.js.map +0 -1
- package/src/web-dashboard/public/assets/index-C4frng1Q.js +0 -207
- package/src/web-dashboard/public/assets/index-C4frng1Q.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-env-inventory.js","sourceRoot":"","sources":["../../src/skills/skill-env-inventory.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,8 @@
|
|
|
11
11
|
* 3. Spawns a sandboxed process with API keys injected
|
|
12
12
|
* 4. Captures output and returns it to the agent
|
|
13
13
|
*/
|
|
14
|
+
import { PROVIDER_ENV_BLOCKLIST } from '../config/provider-env.js';
|
|
15
|
+
export { PROVIDER_ENV_BLOCKLIST };
|
|
14
16
|
export type SkillRuntime = 'python' | 'node' | 'shell' | 'ruby' | 'go' | 'rust' | 'auto';
|
|
15
17
|
export interface SkillExecutionResult {
|
|
16
18
|
success: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-executor.d.ts","sourceRoot":"","sources":["../../src/skills/skill-executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"skill-executor.d.ts","sourceRoot":"","sources":["../../src/skills/skill-executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAaH,OAAO,EAAE,sBAAsB,EAAqB,MAAM,2BAA2B,CAAC;AAEtF,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAIlC,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzF,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,YAAY,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,0CAA0C;IAC1C,GAAG,EAAE,MAAM,CAAC;IACZ,uDAAuD;IACvD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wDAAwD;IACxD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAID;;GAEG;AACH,wBAAgB,aAAa,CAC3B,YAAY,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,MAAM,GAChB,YAAY,CA2Dd;AAID;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,qBAAqB,EAC9B,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,oBAAoB,CAAC,CAkH/B;AAgJD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAM/D;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,MAAM,EAAE,GACrB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAkBxB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE7D;AAID;;;;;;;;;;GAUG;AACH,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,oBAAoB,CAAC,CAoB/B"}
|
|
@@ -17,6 +17,12 @@ import { existsSync } from 'node:fs';
|
|
|
17
17
|
import { join, extname } from 'node:path';
|
|
18
18
|
import { tmpdir } from 'node:os';
|
|
19
19
|
import { randomBytes } from 'node:crypto';
|
|
20
|
+
// The provider-credential blocklist lives in a shared leaf module so the SAME
|
|
21
|
+
// set also guards the skill-secret write path and the dashboard's env-var
|
|
22
|
+
// editor. Two copies meant the editor could mark a key "blocked" while the
|
|
23
|
+
// writer stored it anyway — a cosmetic invariant with no enforcement.
|
|
24
|
+
import { PROVIDER_ENV_BLOCKLIST, isSensitiveEnvVar } from '../config/provider-env.js';
|
|
25
|
+
export { PROVIDER_ENV_BLOCKLIST };
|
|
20
26
|
// ─── Runtime Detection ───────────────────────────────────────────────────
|
|
21
27
|
/**
|
|
22
28
|
* Detect the runtime for a skill based on its content or file extension.
|
|
@@ -98,12 +104,21 @@ export async function executeSkill(scriptContent, context, filePath) {
|
|
|
98
104
|
const runtime = detectRuntime(scriptContent, filePath);
|
|
99
105
|
const timeoutMs = context.timeoutMs ?? 30_000;
|
|
100
106
|
const maxOutputBytes = context.maxOutputBytes ?? 1_024 * 1024;
|
|
101
|
-
// Filter env vars: blocklist prevents automatic passthrough from
|
|
102
|
-
// but explicit caller-provided env vars are always allowed
|
|
107
|
+
// Filter env vars: the blocklist prevents automatic passthrough from
|
|
108
|
+
// process.env, but explicit caller-provided env vars are always allowed
|
|
109
|
+
// (caller knows what they're doing).
|
|
110
|
+
//
|
|
111
|
+
// The automatic passthrough uses `isSensitiveEnvVar`, not just the provider
|
|
112
|
+
// list, because the provider list only knows OUR providers: a platform
|
|
113
|
+
// password (BUFF_SMTP_PASSWORD) or a user's own cloud credential in this
|
|
114
|
+
// process's environment was previously handed to every skill with a shell.
|
|
115
|
+
// Benign vars (PATH, HOME, LANG, …) still flow — see the shape-rule rationale
|
|
116
|
+
// in config/provider-env.ts.
|
|
103
117
|
const filteredEnv = {};
|
|
104
|
-
// First, add process.env vars that are
|
|
118
|
+
// First, add process.env vars that are neither provider credentials nor
|
|
119
|
+
// credential-shaped.
|
|
105
120
|
for (const [key, value] of Object.entries(process.env)) {
|
|
106
|
-
if (value !== undefined && !
|
|
121
|
+
if (value !== undefined && !isSensitiveEnvVar(key)) {
|
|
107
122
|
filteredEnv[key] = value;
|
|
108
123
|
}
|
|
109
124
|
}
|
|
@@ -303,26 +318,6 @@ async function spawnProcess(command, args, options) {
|
|
|
303
318
|
* allowed to pass through to the sandbox, while provider credentials
|
|
304
319
|
* (ANTHROPIC_API_KEY, OPENAI_API_KEY, etc.) are blocked for security.
|
|
305
320
|
*/
|
|
306
|
-
/** Provider env vars that should NEVER be passed to skills */
|
|
307
|
-
const PROVIDER_ENV_BLOCKLIST = new Set([
|
|
308
|
-
'ANTHROPIC_API_KEY',
|
|
309
|
-
'ANTHROPIC_TOKEN',
|
|
310
|
-
'OPENAI_API_KEY',
|
|
311
|
-
'OPENAI_TOKEN',
|
|
312
|
-
'GROQ_API_KEY',
|
|
313
|
-
'GEMINI_API_KEY',
|
|
314
|
-
'GOOGLE_API_KEY',
|
|
315
|
-
'MISTRAL_API_KEY',
|
|
316
|
-
'COHERE_API_KEY',
|
|
317
|
-
'TOGETHER_API_KEY',
|
|
318
|
-
'DEEPINFRA_API_KEY',
|
|
319
|
-
'FIREWORKS_API_KEY',
|
|
320
|
-
'OPENROUTER_API_KEY',
|
|
321
|
-
'AZURE_OPENAI_API_KEY',
|
|
322
|
-
'BEDROCK_ACCESS_KEY',
|
|
323
|
-
'BEDROCK_SECRET_KEY',
|
|
324
|
-
'NUVIRA_API_KEY', // Don't pass the agent's own key
|
|
325
|
-
]);
|
|
326
321
|
/** Session-scoped allowlist of env vars that can pass through */
|
|
327
322
|
let sessionAllowlist = new Set();
|
|
328
323
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-executor.js","sourceRoot":"","sources":["../../src/skills/skill-executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,KAAK,EAAgB,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAW,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AA8B1C,4EAA4E;AAE5E;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,YAAoB,EACpB,QAAiB;IAEjB,wDAAwD;IACxD,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,CACrC,uCAAuC,CACxC,CAAC;IACF,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAiB,CAAC;QACjD,IAAI,QAAQ,KAAK,MAAM;YAAE,OAAO,QAAQ,CAAC;IAC3C,CAAC;IAED,0BAA0B;IAC1B,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5C,IAAI,GAAG,KAAK,KAAK;YAAE,OAAO,QAAQ,CAAC;QACnC,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM;YAAE,OAAO,MAAM,CAAC;QACrE,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM;YAAE,OAAO,MAAM,CAAC;QACrE,IAAI,GAAG,KAAK,KAAK;YAAE,OAAO,MAAM,CAAC;QACjC,IAAI,GAAG,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC;QAC/B,IAAI,GAAG,KAAK,KAAK;YAAE,OAAO,MAAM,CAAC;QACjC,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,OAAO;YAAE,OAAO,OAAO,CAAC;IACvD,CAAC;IAED,sDAAsD;IACtD,IAAI,YAAY,CAAC,QAAQ,CAAC,uBAAuB,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACjG,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,YAAY,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC;QACnJ,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,YAAY,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC7F,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QACxF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7E,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACzF,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACpG,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QAC1J,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACnE,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAClE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,sCAAsC;IACtC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,4EAA4E;AAE5E;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,aAAqB,EACrB,OAA8B,EAC9B,QAAiB;IAEjB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,aAAa,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC;IAC9C,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,KAAK,GAAG,IAAI,CAAC;IAE9D,8EAA8E;IAC9E,8FAA8F;IAC9F,MAAM,WAAW,GAA2B,EAAE,CAAC;IAE/C,4DAA4D;IAC5D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvD,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5D,WAAW,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,gFAAgF;IAChF,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACvD,WAAW,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,4CAA4C;IAC5C,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,0CAA0C;QAC1C,MAAM,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAEzF,MAAM,YAAY,GAAG,MAAM,oBAAoB,EAAE,CAAC;QAClD,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;YAC5B,0DAA0D;YAC1D,OAAO,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACN,4BAA4B;YAC5B,MAAM,MAAM,GAAG,MAAM,gBAAgB,CACnC,aAAa,EACb,QAAQ,IAAI,UAAU,EACtB,WAAW,EACX,OAAO,CAAC,IAAI,EACZ;gBACE,SAAS;gBACT,WAAW,EAAE,MAAM;aACpB,CACF,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,OAAO;gBACP,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B,CAAC;QACJ,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,yCAAyC;IACzC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5E,MAAM,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEzC,MAAM,MAAM,GAA2B;QACrC,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,KAAK;QACX,EAAE,EAAE,KAAK;QACT,IAAI,EAAE,KAAK;KACZ,CAAC;IACF,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC;IACrC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,EAAE,CAAC,CAAC;IAC/C,MAAM,SAAS,CAAC,UAAU,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;IAEpD,IAAI,CAAC;QACH,qCAAqC;QACrC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAE9E,iCAAiC;QACjC,MAAM,OAAO,GAAG,CAAC,GAAG,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;QAE1D,oBAAoB;QACpB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE;YAClD,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,GAAG,EAAE,WAAW;YAChB,SAAS;YACT,cAAc;SACf,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,QAAQ,KAAK,CAAC;YAC9B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO;YACP,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SACnC,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,oBAAoB;QACpB,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,wBAAwB;QAC1B,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CACxB,OAAqB,EACrB,UAAkB;IAElB,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;IAC3C,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,QAAQ;YACX,kCAAkC;YAClC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;QACvE,KAAK,MAAM;YACT,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;QACjD,KAAK,OAAO;YACV,4EAA4E;YAC5E,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,OAAO,GAAG,uCAAuC,CAAC;gBACxD,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBACxB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;gBAClD,CAAC;gBACD,iDAAiD;gBACjD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;YACjD,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;QACjD,KAAK,MAAM;YACT,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;QACjD,KAAK,IAAI;YACP,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC;QACtD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,IAAI,KAAK,EAAE,CAAC;gBACV,4CAA4C;gBAC5C,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBACvD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,UAAU,UAAU,SAAS,UAAU,SAAS,UAAU,GAAG,CAAC,EAAE,CAAC;YAC7G,CAAC;YACD,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACnD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,SAAS,UAAU,OAAO,UAAU,OAAO,UAAU,EAAE,CAAC,EAAE,CAAC;QACpG,CAAC;QACD;YACE,OAAO,KAAK;gBACV,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE;gBAClD,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;IAChD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,YAAY,CACzB,OAAe,EACf,IAAc,EACd,OAKC;IAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;YACjC,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC;QAEH,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,KAAK,CAAC;QAEnB,iBAAiB;QACjB,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YACxC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,IAAI,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;gBAC1D,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;gBACjE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC;YAClB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,iBAAiB;QACjB,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YACxC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,IAAI,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;gBAC1D,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YACnE,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC;YAClB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,cAAc;QACd,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,MAAM,GAAG,IAAI,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtB,6BAA6B;YAC7B,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;oBAClB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACxB,CAAC;YACH,CAAC,EAAE,IAAI,CAAC,CAAC;QACX,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAEtB,oBAAoB;QACpB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC;oBACN,MAAM;oBACN,MAAM,EAAE,MAAM,GAAG,yBAAyB;oBAC1C,QAAQ,EAAE,IAAI,IAAI,GAAG;iBACtB,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC;oBACN,MAAM;oBACN,MAAM;oBACN,QAAQ,EAAE,IAAI,IAAI,CAAC;iBACpB,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,gBAAgB;QAChB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACxB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,4EAA4E;AAE5E;;;;;;GAMG;AAEH,8DAA8D;AAC9D,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;IACrC,mBAAmB;IACnB,iBAAiB;IACjB,gBAAgB;IAChB,cAAc;IACd,cAAc;IACd,gBAAgB;IAChB,gBAAgB;IAChB,iBAAiB;IACjB,gBAAgB;IAChB,kBAAkB;IAClB,mBAAmB;IACnB,mBAAmB;IACnB,oBAAoB;IACpB,sBAAsB;IACtB,oBAAoB;IACpB,oBAAoB;IACpB,gBAAgB,EAAE,iCAAiC;CACpD,CAAC,CAAC;AAEH,iEAAiE;AACjE,IAAI,gBAAgB,GAAgB,IAAI,GAAG,EAAE,CAAC;AAE9C;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAkB;IACvD,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,YAAsB;IAEtB,MAAM,MAAM,GAA2B,EAAE,CAAC;IAE1C,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,6BAA6B;QAC7B,IAAI,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAS;QAE/C,qDAAqD;QACrD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAS;QAE1C,6BAA6B;QAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,gBAAgB,CAAC,KAAK,EAAE,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAY;IAClD,OAAO,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACzE,CAAC;AAED,4EAA4E;AAE5E;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,SAAiB,EACjB,OAA8B;IAE9B,sBAAsB;IACtB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAEnD,wDAAwD;IACxD,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAC/B,kDAAkD,CACnD,CAAC;IACF,MAAM,eAAe,GAAG,WAAW;QACjC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACrE,CAAC,CAAC,EAAE,CAAC;IAEP,sCAAsC;IACtC,MAAM,GAAG,GAAG;QACV,GAAG,OAAO,CAAC,GAAG;QACd,GAAG,yBAAyB,CAAC,eAAe,CAAC;KAC9C,CAAC;IAEF,oBAAoB;IACpB,OAAO,YAAY,CAAC,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC;AAC/D,CAAC"}
|
|
1
|
+
{"version":3,"file":"skill-executor.js","sourceRoot":"","sources":["../../src/skills/skill-executor.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/ask-user.d.ts
CHANGED
|
@@ -7,6 +7,19 @@
|
|
|
7
7
|
* Injectable via ToolContext.askUser so tests never touch a real TTY.
|
|
8
8
|
*/
|
|
9
9
|
import type { AskUserAnswer, AskUserChoice } from './registry.js';
|
|
10
|
-
/**
|
|
10
|
+
/**
|
|
11
|
+
* Render an in-loop clarification.
|
|
12
|
+
*
|
|
13
|
+
* NON-INTERACTIVE SAFETY: with no TTY there is nobody to press a key, and
|
|
14
|
+
* inquirer renders its arrow-key list and then blocks on stdin forever. Verified
|
|
15
|
+
* live — a scripted run reached this tool on step 4 and hung until it was killed,
|
|
16
|
+
* which is indistinguishable from "the agent is stuck". Any piped/CI/headless
|
|
17
|
+
* run (and the dashboard, which injects its own renderer for the same reason)
|
|
18
|
+
* must resolve instead of block, so the model can act on an answer.
|
|
19
|
+
*
|
|
20
|
+
* Mirrors the gateway's rule in `GatewayRegistry.handleInbound`: pick the first
|
|
21
|
+
* choice as a best-effort default, and say plainly that no human was reached so
|
|
22
|
+
* the model proceeds rather than asking the same thing again.
|
|
23
|
+
*/
|
|
11
24
|
export declare function renderAskUser(question: string, choices: AskUserChoice[], multiSelect: boolean): Promise<AskUserAnswer>;
|
|
12
25
|
//# sourceMappingURL=ask-user.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ask-user.d.ts","sourceRoot":"","sources":["../../src/tools/ask-user.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAElE
|
|
1
|
+
{"version":3,"file":"ask-user.d.ts","sourceRoot":"","sources":["../../src/tools/ask-user.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAElE;;;;;;;;;;;;;GAaG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,aAAa,EAAE,EACxB,WAAW,EAAE,OAAO,GACnB,OAAO,CAAC,aAAa,CAAC,CA+CxB"}
|
package/dist/tools/ask-user.js
CHANGED
|
@@ -8,10 +8,34 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import inquirer from 'inquirer';
|
|
10
10
|
import { logger } from '../utils/logger.js';
|
|
11
|
-
/**
|
|
11
|
+
/**
|
|
12
|
+
* Render an in-loop clarification.
|
|
13
|
+
*
|
|
14
|
+
* NON-INTERACTIVE SAFETY: with no TTY there is nobody to press a key, and
|
|
15
|
+
* inquirer renders its arrow-key list and then blocks on stdin forever. Verified
|
|
16
|
+
* live — a scripted run reached this tool on step 4 and hung until it was killed,
|
|
17
|
+
* which is indistinguishable from "the agent is stuck". Any piped/CI/headless
|
|
18
|
+
* run (and the dashboard, which injects its own renderer for the same reason)
|
|
19
|
+
* must resolve instead of block, so the model can act on an answer.
|
|
20
|
+
*
|
|
21
|
+
* Mirrors the gateway's rule in `GatewayRegistry.handleInbound`: pick the first
|
|
22
|
+
* choice as a best-effort default, and say plainly that no human was reached so
|
|
23
|
+
* the model proceeds rather than asking the same thing again.
|
|
24
|
+
*/
|
|
12
25
|
export async function renderAskUser(question, choices, multiSelect) {
|
|
13
26
|
console.log('');
|
|
14
27
|
logger.highlight(`💬 ${question}`);
|
|
28
|
+
if (!process.stdin.isTTY) {
|
|
29
|
+
const fallback = choices[0]?.label ?? 'skip';
|
|
30
|
+
logger.info(`↩ no interactive user attached — defaulting to "${fallback}" and continuing`);
|
|
31
|
+
console.log('');
|
|
32
|
+
return {
|
|
33
|
+
answer: multiSelect ? [fallback] : fallback,
|
|
34
|
+
index: multiSelect ? [0] : 0,
|
|
35
|
+
custom: 'no interactive user is attached to this session (piped or headless run) — ' +
|
|
36
|
+
'do not ask again; proceed with your best judgement and state the assumption you made',
|
|
37
|
+
};
|
|
38
|
+
}
|
|
15
39
|
const prompt = multiSelect
|
|
16
40
|
? {
|
|
17
41
|
type: 'checkbox',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ask-user.js","sourceRoot":"","sources":["../../src/tools/ask-user.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG5C
|
|
1
|
+
{"version":3,"file":"ask-user.js","sourceRoot":"","sources":["../../src/tools/ask-user.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG5C;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,QAAgB,EAChB,OAAwB,EACxB,WAAoB;IAEpB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,MAAM,CAAC,SAAS,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAC;IAEnC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,MAAM,CAAC;QAC7C,MAAM,CAAC,IAAI,CAAC,mDAAmD,QAAQ,kBAAkB,CAAC,CAAC;QAC3F,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO;YACL,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ;YAC3C,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,EACJ,4EAA4E;gBAC5E,sFAAsF;SACzF,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,WAAW;QACxB,CAAC,CAAC;YACE,IAAI,EAAE,UAAmB;YACzB,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,4DAA4D;YACrE,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YAChE,QAAQ,EAAE,CAAC;SACZ;QACH,CAAC,CAAC;YACE,IAAI,EAAE,MAAe;YACrB,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,aAAa;YACtB,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC3B,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;gBAC/D,KAAK,EAAE,CAAC,CAAC,KAAK;aACf,CAAC,CAAC;YACH,QAAQ,EAAE,CAAC;SACZ,CAAC;IAEN,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAgC,MAAM,CAAC,CAAC;IAEhF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC;IACnF,OAAO;QACL,MAAM;QACN,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;KAChD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Followup hygiene + continuation helpers — a LEAF module on purpose.
|
|
3
|
+
*
|
|
4
|
+
* These helpers are needed by the LOW-LATENCY surfaces (gateway registry,
|
|
5
|
+
* dashboard chat console, CLI chat) as well as the tool registry. Putting them
|
|
6
|
+
* in `tools/registry.ts` dragged the entire 110-tool registry — and every
|
|
7
|
+
* module it registers — into the gateway/dashboard import graph, which measurably
|
|
8
|
+
* slowed those paths (the gateway e2e suite went from seconds to ~100s). This
|
|
9
|
+
* module imports NOTHING, so any surface can use it for free.
|
|
10
|
+
*
|
|
11
|
+
* `tools/registry.ts` re-exports everything here, so existing importers keep
|
|
12
|
+
* working unchanged.
|
|
13
|
+
*/
|
|
14
|
+
/** A follow-up recommendation. */
|
|
15
|
+
export interface FollowupSuggestion {
|
|
16
|
+
/** The full prompt sent as the next user message when clicked. */
|
|
17
|
+
prompt: string;
|
|
18
|
+
/** Optional short display label (defaults to the prompt). */
|
|
19
|
+
label?: string;
|
|
20
|
+
}
|
|
21
|
+
/** How many followups any surface renders (the contract aims for 3). */
|
|
22
|
+
export declare const MAX_FOLLOWUPS = 3;
|
|
23
|
+
/** Cap on a followup prompt length (chars) — keeps chips / WhatsApp lines readable. */
|
|
24
|
+
export declare const MAX_FOLLOWUP_PROMPT_CHARS = 300;
|
|
25
|
+
/** Cap on a followup label length (chars). */
|
|
26
|
+
export declare const MAX_FOLLOWUP_LABEL_CHARS = 60;
|
|
27
|
+
/**
|
|
28
|
+
* Clean + structure followups before ANY surface renders them. Deterministic
|
|
29
|
+
* (no LLM): the model's raw suggestions are trimmed, decoration stripped,
|
|
30
|
+
* leaked tool JSON dropped, the previous question excluded, duplicates
|
|
31
|
+
* removed, and prompt/label lengths capped — so every surface (CLI menu,
|
|
32
|
+
* dashboard chips, gateway "Try next" list) shows the same clean 1–3 items.
|
|
33
|
+
*
|
|
34
|
+
* Returns [] when nothing survives (callers fall back to their own defaults).
|
|
35
|
+
*/
|
|
36
|
+
export declare function normalizeFollowups(raw: readonly FollowupSuggestion[] | undefined | null, opts?: {
|
|
37
|
+
question?: string;
|
|
38
|
+
limit?: number;
|
|
39
|
+
}): FollowupSuggestion[];
|
|
40
|
+
/**
|
|
41
|
+
* The machine-readable continuation marker prepended to a message the user
|
|
42
|
+
* produced by CLICKING a previously suggested followup. Without it a clicked
|
|
43
|
+
* followup arrives as an unrelated one-liner ("add a day in Hanoi") and the
|
|
44
|
+
* model can treat it as a brand-new request; with it the previous turn's
|
|
45
|
+
* context, decisions and results are explicitly in scope.
|
|
46
|
+
*/
|
|
47
|
+
export declare const FOLLOWUP_CONTINUATION_MARKER: string;
|
|
48
|
+
/**
|
|
49
|
+
* Build the message actually sent when a suggested followup is chosen: the
|
|
50
|
+
* continuation marker + the followup prompt. Idempotent — a message that
|
|
51
|
+
* already carries the marker is returned unchanged.
|
|
52
|
+
*/
|
|
53
|
+
export declare function buildFollowupContinuationPrompt(prompt: string): string;
|
|
54
|
+
/** Whether a message is (or already carries) a marked continuation. */
|
|
55
|
+
export declare function isFollowupContinuation(prompt: string): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Whether an incoming user message is one of the followups the agent just
|
|
58
|
+
* suggested (optionally from a caller-held list, e.g. a dashboard session or a
|
|
59
|
+
* gateway contact). Used by the surfaces that cannot annotate at click time
|
|
60
|
+
* (dashboard chips, WhatsApp replies) to recognise a followup and wrap it with
|
|
61
|
+
* the continuation marker.
|
|
62
|
+
*/
|
|
63
|
+
export declare function isSuggestedFollowup(prompt: string, suggestions?: readonly FollowupSuggestion[] | undefined | null): boolean;
|
|
64
|
+
//# sourceMappingURL=followup-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"followup-utils.d.ts","sourceRoot":"","sources":["../../src/tools/followup-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,kCAAkC;AAClC,MAAM,WAAW,kBAAkB;IACjC,kEAAkE;IAClE,MAAM,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wEAAwE;AACxE,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,uFAAuF;AACvF,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAC7C,8CAA8C;AAC9C,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAwC3C;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,SAAS,kBAAkB,EAAE,GAAG,SAAS,GAAG,IAAI,EACrD,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3C,kBAAkB,EAAE,CA6BtB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,4BAA4B,QAIW,CAAC;AAErD;;;;GAIG;AACH,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKtE;AAED,uEAAuE;AACvE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE9D;AAOD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,SAAS,kBAAkB,EAAE,GAAG,SAAS,GAAG,IAAI,GAC7D,OAAO,CAaT"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Followup hygiene + continuation helpers — a LEAF module on purpose.
|
|
3
|
+
*
|
|
4
|
+
* These helpers are needed by the LOW-LATENCY surfaces (gateway registry,
|
|
5
|
+
* dashboard chat console, CLI chat) as well as the tool registry. Putting them
|
|
6
|
+
* in `tools/registry.ts` dragged the entire 110-tool registry — and every
|
|
7
|
+
* module it registers — into the gateway/dashboard import graph, which measurably
|
|
8
|
+
* slowed those paths (the gateway e2e suite went from seconds to ~100s). This
|
|
9
|
+
* module imports NOTHING, so any surface can use it for free.
|
|
10
|
+
*
|
|
11
|
+
* `tools/registry.ts` re-exports everything here, so existing importers keep
|
|
12
|
+
* working unchanged.
|
|
13
|
+
*/
|
|
14
|
+
/** How many followups any surface renders (the contract aims for 3). */
|
|
15
|
+
export const MAX_FOLLOWUPS = 3;
|
|
16
|
+
/** Cap on a followup prompt length (chars) — keeps chips / WhatsApp lines readable. */
|
|
17
|
+
export const MAX_FOLLOWUP_PROMPT_CHARS = 300;
|
|
18
|
+
/** Cap on a followup label length (chars). */
|
|
19
|
+
export const MAX_FOLLOWUP_LABEL_CHARS = 60;
|
|
20
|
+
/** Collapse whitespace/newlines and trim — followups render on one line. */
|
|
21
|
+
function tidyFollowupText(text) {
|
|
22
|
+
return text.replace(/\s+/g, ' ').trim();
|
|
23
|
+
}
|
|
24
|
+
/** Strip one layer of wrapping quotes/backticks and a leading bullet/number. */
|
|
25
|
+
function stripFollowupDecoration(text) {
|
|
26
|
+
let out = text.trim();
|
|
27
|
+
out = out.replace(/^(?:[-*•]|\d+[.)])\s+/, ''); // "- ", "1. ", "1) "
|
|
28
|
+
out = out.replace(/^[`"'“”]+/, '').replace(/[`"'“”]+$/, '');
|
|
29
|
+
return out.trim();
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Whether a followup string is leaked tool-call scaffolding rather than a real
|
|
33
|
+
* suggestion (a raw `{"tool":"suggest_followups",...}` block, or a stray
|
|
34
|
+
* `<function=…>` tag). Such entries were the cause of raw JSON chips/lines, so
|
|
35
|
+
* they are dropped instead of rendered.
|
|
36
|
+
*/
|
|
37
|
+
function looksLikeToolScaffolding(text) {
|
|
38
|
+
const t = text.trim();
|
|
39
|
+
if (!t)
|
|
40
|
+
return true;
|
|
41
|
+
if (t.startsWith('{') || t.startsWith('['))
|
|
42
|
+
return true;
|
|
43
|
+
if (/"tool"\s*:/.test(t))
|
|
44
|
+
return true;
|
|
45
|
+
if (/<function\s*=/.test(t))
|
|
46
|
+
return true;
|
|
47
|
+
if (/<\/?think>/.test(t))
|
|
48
|
+
return true;
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
/** Truncate at a word boundary (never mid-word when avoidable). */
|
|
52
|
+
function truncateAtWord(text, max) {
|
|
53
|
+
if (text.length <= max)
|
|
54
|
+
return text;
|
|
55
|
+
const cut = text.slice(0, max);
|
|
56
|
+
const lastSpace = cut.lastIndexOf(' ');
|
|
57
|
+
const base = lastSpace > max * 0.6 ? cut.slice(0, lastSpace) : cut;
|
|
58
|
+
return `${base.trimEnd()}…`;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Clean + structure followups before ANY surface renders them. Deterministic
|
|
62
|
+
* (no LLM): the model's raw suggestions are trimmed, decoration stripped,
|
|
63
|
+
* leaked tool JSON dropped, the previous question excluded, duplicates
|
|
64
|
+
* removed, and prompt/label lengths capped — so every surface (CLI menu,
|
|
65
|
+
* dashboard chips, gateway "Try next" list) shows the same clean 1–3 items.
|
|
66
|
+
*
|
|
67
|
+
* Returns [] when nothing survives (callers fall back to their own defaults).
|
|
68
|
+
*/
|
|
69
|
+
export function normalizeFollowups(raw, opts) {
|
|
70
|
+
if (!raw || raw.length === 0)
|
|
71
|
+
return [];
|
|
72
|
+
const limit = Math.max(1, opts?.limit ?? MAX_FOLLOWUPS);
|
|
73
|
+
const asked = opts?.question ? tidyFollowupText(opts.question).toLowerCase() : '';
|
|
74
|
+
const seen = new Set();
|
|
75
|
+
const out = [];
|
|
76
|
+
for (const item of raw) {
|
|
77
|
+
if (!item || typeof item.prompt !== 'string')
|
|
78
|
+
continue;
|
|
79
|
+
let prompt = tidyFollowupText(stripFollowupDecoration(item.prompt));
|
|
80
|
+
if (!prompt || looksLikeToolScaffolding(prompt))
|
|
81
|
+
continue;
|
|
82
|
+
const key = prompt.toLowerCase();
|
|
83
|
+
if (asked && key === asked)
|
|
84
|
+
continue;
|
|
85
|
+
if (seen.has(key))
|
|
86
|
+
continue;
|
|
87
|
+
seen.add(key);
|
|
88
|
+
prompt = truncateAtWord(prompt, MAX_FOLLOWUP_PROMPT_CHARS);
|
|
89
|
+
// Only keep a DISTINCT label — a label equal to the prompt is noise (every
|
|
90
|
+
// surface already falls back to the prompt), and inventing one would
|
|
91
|
+
// change the shape callers/tests rely on.
|
|
92
|
+
const rawLabel = typeof item.label === 'string' ? tidyFollowupText(stripFollowupDecoration(item.label)) : '';
|
|
93
|
+
const label = rawLabel && !looksLikeToolScaffolding(rawLabel) && rawLabel.toLowerCase() !== key
|
|
94
|
+
? truncateAtWord(rawLabel, MAX_FOLLOWUP_LABEL_CHARS)
|
|
95
|
+
: undefined;
|
|
96
|
+
out.push(label ? { prompt, label } : { prompt });
|
|
97
|
+
if (out.length >= limit)
|
|
98
|
+
break;
|
|
99
|
+
}
|
|
100
|
+
return out;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* The machine-readable continuation marker prepended to a message the user
|
|
104
|
+
* produced by CLICKING a previously suggested followup. Without it a clicked
|
|
105
|
+
* followup arrives as an unrelated one-liner ("add a day in Hanoi") and the
|
|
106
|
+
* model can treat it as a brand-new request; with it the previous turn's
|
|
107
|
+
* context, decisions and results are explicitly in scope.
|
|
108
|
+
*/
|
|
109
|
+
export const FOLLOWUP_CONTINUATION_MARKER = '[CONTINUATION — this message is a follow-up to your IMMEDIATELY PRECEDING answer in this same conversation. ' +
|
|
110
|
+
'Reuse the context, decisions, and results from that turn (and any earlier turns). ' +
|
|
111
|
+
'Resolve pronouns like "it", "that", "the plan", or "the same" against that prior answer. ' +
|
|
112
|
+
'Do NOT treat this as a new, standalone request.]';
|
|
113
|
+
/**
|
|
114
|
+
* Build the message actually sent when a suggested followup is chosen: the
|
|
115
|
+
* continuation marker + the followup prompt. Idempotent — a message that
|
|
116
|
+
* already carries the marker is returned unchanged.
|
|
117
|
+
*/
|
|
118
|
+
export function buildFollowupContinuationPrompt(prompt) {
|
|
119
|
+
const body = (prompt ?? '').toString().trim();
|
|
120
|
+
if (!body)
|
|
121
|
+
return body;
|
|
122
|
+
if (body.startsWith(FOLLOWUP_CONTINUATION_MARKER))
|
|
123
|
+
return body;
|
|
124
|
+
return `${FOLLOWUP_CONTINUATION_MARKER}\n\n${body}`;
|
|
125
|
+
}
|
|
126
|
+
/** Whether a message is (or already carries) a marked continuation. */
|
|
127
|
+
export function isFollowupContinuation(prompt) {
|
|
128
|
+
return (prompt ?? '').includes(FOLLOWUP_CONTINUATION_MARKER);
|
|
129
|
+
}
|
|
130
|
+
/** Normalized comparison key for a followup prompt. */
|
|
131
|
+
function followupKey(text) {
|
|
132
|
+
return tidyFollowupText(text).toLowerCase().replace(/[.!?…]+$/, '');
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Whether an incoming user message is one of the followups the agent just
|
|
136
|
+
* suggested (optionally from a caller-held list, e.g. a dashboard session or a
|
|
137
|
+
* gateway contact). Used by the surfaces that cannot annotate at click time
|
|
138
|
+
* (dashboard chips, WhatsApp replies) to recognise a followup and wrap it with
|
|
139
|
+
* the continuation marker.
|
|
140
|
+
*/
|
|
141
|
+
export function isSuggestedFollowup(prompt, suggestions) {
|
|
142
|
+
const body = prompt ?? '';
|
|
143
|
+
if (!body.trim() || isFollowupContinuation(body))
|
|
144
|
+
return false;
|
|
145
|
+
const key = followupKey(body);
|
|
146
|
+
if (!key)
|
|
147
|
+
return false;
|
|
148
|
+
for (const s of suggestions ?? []) {
|
|
149
|
+
if (!s || typeof s.prompt !== 'string')
|
|
150
|
+
continue;
|
|
151
|
+
const candidate = followupKey(s.prompt);
|
|
152
|
+
if (candidate && (candidate === key || key.startsWith(candidate) || candidate.startsWith(key))) {
|
|
153
|
+
return true;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
return false;
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=followup-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"followup-utils.js","sourceRoot":"","sources":["../../src/tools/followup-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -90,6 +90,41 @@ declare class MemoryStore {
|
|
|
90
90
|
averageAccessCount: number;
|
|
91
91
|
};
|
|
92
92
|
}
|
|
93
|
+
/** One merged hit, tagged with the store it came from. */
|
|
94
|
+
export interface UnifiedMemoryHit {
|
|
95
|
+
id: string;
|
|
96
|
+
content: string;
|
|
97
|
+
type: MemoryType;
|
|
98
|
+
tags: string[];
|
|
99
|
+
score: number;
|
|
100
|
+
/** 'memory' = the agent's own store (this file) · 'facts' = the fact store. */
|
|
101
|
+
source: 'memory' | 'facts';
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Search BOTH memory stores and merge the results.
|
|
105
|
+
*
|
|
106
|
+
* Why: this file and `memory/fact-store.ts` were separate silos — the model's
|
|
107
|
+
* `add_memory`/`search_memory` tools wrote/read only this JSON store, while the
|
|
108
|
+
* narrative memory provider and session recall read only the FACT store. So a
|
|
109
|
+
* memory the model recorded was invisible to recall, and a fact the extractor
|
|
110
|
+
* learned was invisible to `search_memory` — the same feature, two disjoint
|
|
111
|
+
* halves.
|
|
112
|
+
*
|
|
113
|
+
* The memory store is keyword/tag matched (always available, no embeddings);
|
|
114
|
+
* the fact store is semantic and needs an embedding tier, so it is queried
|
|
115
|
+
* best-effort — a failure degrades to memory-store results instead of an empty
|
|
116
|
+
* answer.
|
|
117
|
+
*/
|
|
118
|
+
export declare function searchMemories(params: {
|
|
119
|
+
query?: string;
|
|
120
|
+
type?: MemoryType;
|
|
121
|
+
tags?: string[];
|
|
122
|
+
limit?: number;
|
|
123
|
+
/** Fact-store scope (deriveProjectId). Absent = skip the semantic half. */
|
|
124
|
+
projectId?: string;
|
|
125
|
+
}): Promise<UnifiedMemoryHit[]>;
|
|
93
126
|
export declare function getMemoryStore(): MemoryStore;
|
|
127
|
+
/** Test-only: drop the cached instance so a new memory dir takes effect. */
|
|
128
|
+
export declare function resetMemoryStore(): void;
|
|
94
129
|
export { MemoryStore };
|
|
95
130
|
//# sourceMappingURL=memory-tools.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-tools.d.ts","sourceRoot":"","sources":["../../src/tools/memory-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAUH,KAAK,UAAU,GAAG,MAAM,GAAG,YAAY,GAAG,QAAQ,GAAG,aAAa,GAAG,SAAS,CAAC;AAE/E,UAAU,WAAW;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,UAAU,YAAY;IACpB,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,GAAG,SAAS,GAAG,KAAK,CAAC;CACxC;AAID,cAAM,WAAW;IACf,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAS;gBAEd,SAAS,CAAC,EAAE,MAAM;IAM9B;;OAEG;IACH,OAAO,CAAC,SAAS;IAajB;;OAEG;IACH,OAAO,CAAC,SAAS;IAejB;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE;QACV,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,UAAU,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,WAAW;IAqBf;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IASnC;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,UAAU,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,YAAY,EAAE;IAmElB;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;QACzB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,UAAU,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;KACjB,GAAG,WAAW,GAAG,IAAI;IAetB;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAQ3B;;OAEG;IACH,IAAI,CAAC,MAAM,CAAC,EAAE;QACZ,IAAI,CAAC,EAAE,UAAU,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,WAAW,EAAE;IAiBjB;;OAEG;IACH,QAAQ,IAAI;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACnC,gBAAgB,EAAE,MAAM,CAAC;QACzB,kBAAkB,EAAE,MAAM,CAAC;KAC5B;CA4BF;AAMD,wBAAgB,cAAc,IAAI,WAAW,CAG5C;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"memory-tools.d.ts","sourceRoot":"","sources":["../../src/tools/memory-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -225,6 +225,78 @@ class MemoryStore {
|
|
|
225
225
|
};
|
|
226
226
|
}
|
|
227
227
|
}
|
|
228
|
+
/**
|
|
229
|
+
* Search BOTH memory stores and merge the results.
|
|
230
|
+
*
|
|
231
|
+
* Why: this file and `memory/fact-store.ts` were separate silos — the model's
|
|
232
|
+
* `add_memory`/`search_memory` tools wrote/read only this JSON store, while the
|
|
233
|
+
* narrative memory provider and session recall read only the FACT store. So a
|
|
234
|
+
* memory the model recorded was invisible to recall, and a fact the extractor
|
|
235
|
+
* learned was invisible to `search_memory` — the same feature, two disjoint
|
|
236
|
+
* halves.
|
|
237
|
+
*
|
|
238
|
+
* The memory store is keyword/tag matched (always available, no embeddings);
|
|
239
|
+
* the fact store is semantic and needs an embedding tier, so it is queried
|
|
240
|
+
* best-effort — a failure degrades to memory-store results instead of an empty
|
|
241
|
+
* answer.
|
|
242
|
+
*/
|
|
243
|
+
export async function searchMemories(params) {
|
|
244
|
+
const limit = params.limit || 10;
|
|
245
|
+
const hits = [];
|
|
246
|
+
const seen = new Set();
|
|
247
|
+
const push = (hit) => {
|
|
248
|
+
const key = hit.content.trim().toLowerCase();
|
|
249
|
+
if (!key || seen.has(key))
|
|
250
|
+
return; // dedupe across stores by text
|
|
251
|
+
seen.add(key);
|
|
252
|
+
hits.push(hit);
|
|
253
|
+
};
|
|
254
|
+
// 1) This store — keyword/tag match, no embeddings required.
|
|
255
|
+
for (const r of getMemoryStore().search({
|
|
256
|
+
query: params.query,
|
|
257
|
+
type: params.type,
|
|
258
|
+
tags: params.tags,
|
|
259
|
+
limit,
|
|
260
|
+
})) {
|
|
261
|
+
push({
|
|
262
|
+
id: r.entry.id,
|
|
263
|
+
content: r.entry.content,
|
|
264
|
+
type: r.entry.type,
|
|
265
|
+
tags: r.entry.tags,
|
|
266
|
+
score: r.score,
|
|
267
|
+
source: 'memory',
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
// 2) The fact store — semantic. Facts carry no memory `type`, so a `type`
|
|
271
|
+
// filter other than 'fact' excludes them; tag filters must overlap.
|
|
272
|
+
if (params.projectId && (!params.type || params.type === 'fact')) {
|
|
273
|
+
try {
|
|
274
|
+
const { getFactStore } = await import('../memory/fact-store.js');
|
|
275
|
+
const store = getFactStore();
|
|
276
|
+
const facts = params.query
|
|
277
|
+
? await store.retrieveFacts(params.projectId, params.query, undefined, { k: limit })
|
|
278
|
+
: await store.listFacts(params.projectId);
|
|
279
|
+
for (const fact of facts) {
|
|
280
|
+
if (params.tags && params.tags.length > 0 && !params.tags.some((t) => fact.tags.includes(t)))
|
|
281
|
+
continue;
|
|
282
|
+
push({
|
|
283
|
+
id: fact.id,
|
|
284
|
+
content: fact.text,
|
|
285
|
+
type: 'fact',
|
|
286
|
+
tags: fact.tags,
|
|
287
|
+
// Semantic hits rank below exact/partial keyword matches but above
|
|
288
|
+
// the no-query floor (0.5) so both halves interleave predictably.
|
|
289
|
+
score: params.query ? 0.6 : 0.5,
|
|
290
|
+
source: 'facts',
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
catch {
|
|
295
|
+
// Best-effort — the memory store's half is still returned.
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
return hits.sort((a, b) => b.score - a.score).slice(0, limit);
|
|
299
|
+
}
|
|
228
300
|
// ─── Singleton ──────────────────────────────────────────────────────────────
|
|
229
301
|
let _instance = null;
|
|
230
302
|
export function getMemoryStore() {
|
|
@@ -232,5 +304,9 @@ export function getMemoryStore() {
|
|
|
232
304
|
_instance = new MemoryStore();
|
|
233
305
|
return _instance;
|
|
234
306
|
}
|
|
307
|
+
/** Test-only: drop the cached instance so a new memory dir takes effect. */
|
|
308
|
+
export function resetMemoryStore() {
|
|
309
|
+
_instance = null;
|
|
310
|
+
}
|
|
235
311
|
export { MemoryStore };
|
|
236
312
|
//# sourceMappingURL=memory-tools.js.map
|