agent-nuvira 3.3.1 → 3.3.4
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/README.md +18 -13
- package/dist/agent-sdk/src/agent.d.ts +2 -0
- package/dist/agent-sdk/src/agent.d.ts.map +1 -1
- package/dist/agent-sdk/src/define.d.ts +64 -0
- package/dist/agent-sdk/src/define.d.ts.map +1 -0
- package/dist/agent-sdk/src/define.js +76 -0
- package/dist/agent-sdk/src/define.js.map +1 -0
- package/dist/agent-sdk/src/index.d.ts +9 -0
- package/dist/agent-sdk/src/index.d.ts.map +1 -1
- package/dist/agent-sdk/src/index.js +9 -0
- package/dist/agent-sdk/src/index.js.map +1 -1
- package/dist/agent-sdk/src/scaffold.d.ts +11 -0
- package/dist/agent-sdk/src/scaffold.d.ts.map +1 -1
- package/dist/agent-sdk/src/scaffold.js +16 -6
- package/dist/agent-sdk/src/scaffold.js.map +1 -1
- package/dist/agents/agents/runner.d.ts +9 -0
- package/dist/agents/agents/runner.d.ts.map +1 -1
- package/dist/agents/agents/runner.js +34 -12
- package/dist/agents/agents/runner.js.map +1 -1
- package/dist/agents/agents/writer-tool-calling.d.ts.map +1 -1
- package/dist/agents/agents/writer-tool-calling.js +7 -2
- 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 +7 -1
- package/dist/agents/agents/writer.js.map +1 -1
- package/dist/agents/artifact-verification.d.ts +102 -0
- package/dist/agents/artifact-verification.d.ts.map +1 -0
- package/dist/agents/artifact-verification.js +216 -0
- package/dist/agents/artifact-verification.js.map +1 -0
- package/dist/agents/checkpoint-store.d.ts +73 -0
- package/dist/agents/checkpoint-store.d.ts.map +1 -1
- package/dist/agents/checkpoint-store.js +161 -0
- package/dist/agents/checkpoint-store.js.map +1 -1
- package/dist/agents/credential-store.d.ts +120 -0
- package/dist/agents/credential-store.d.ts.map +1 -1
- package/dist/agents/credential-store.js +358 -19
- package/dist/agents/credential-store.js.map +1 -1
- package/dist/agents/long-form-plan.d.ts.map +1 -1
- package/dist/agents/long-form-plan.js +2 -1
- package/dist/agents/long-form-plan.js.map +1 -1
- package/dist/agents/orchestrator.d.ts +10 -1
- package/dist/agents/orchestrator.d.ts.map +1 -1
- package/dist/agents/orchestrator.js +239 -79
- package/dist/agents/orchestrator.js.map +1 -1
- package/dist/agents/phase-engine.d.ts +61 -0
- package/dist/agents/phase-engine.d.ts.map +1 -1
- package/dist/agents/phase-engine.js +68 -2
- package/dist/agents/phase-engine.js.map +1 -1
- package/dist/agents/prompt-assembly.d.ts +11 -0
- package/dist/agents/prompt-assembly.d.ts.map +1 -1
- package/dist/agents/prompt-assembly.js +17 -0
- package/dist/agents/prompt-assembly.js.map +1 -1
- package/dist/agents/release-preflight.d.ts +121 -0
- package/dist/agents/release-preflight.d.ts.map +1 -0
- package/dist/agents/release-preflight.js +259 -0
- package/dist/agents/release-preflight.js.map +1 -0
- package/dist/agents/release-runner.d.ts +157 -0
- package/dist/agents/release-runner.d.ts.map +1 -0
- package/dist/agents/release-runner.js +719 -0
- package/dist/agents/release-runner.js.map +1 -0
- package/dist/agents/step-handoff.d.ts +190 -0
- package/dist/agents/step-handoff.d.ts.map +1 -0
- package/dist/agents/step-handoff.js +443 -0
- package/dist/agents/step-handoff.js.map +1 -0
- package/dist/cli/agent.d.ts +2 -2
- package/dist/cli/agent.js +10 -10
- package/dist/cli/benchmark.d.ts.map +1 -1
- package/dist/cli/benchmark.js +11 -4
- package/dist/cli/benchmark.js.map +1 -1
- package/dist/cli/chat.d.ts +94 -0
- package/dist/cli/chat.d.ts.map +1 -1
- package/dist/cli/chat.js +379 -24
- package/dist/cli/chat.js.map +1 -1
- package/dist/cli/cli-program.d.ts.map +1 -1
- package/dist/cli/cli-program.js +8 -0
- package/dist/cli/cli-program.js.map +1 -1
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +9 -1
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/credentials.d.ts +28 -0
- package/dist/cli/credentials.d.ts.map +1 -0
- package/dist/cli/credentials.js +213 -0
- package/dist/cli/credentials.js.map +1 -0
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +3 -2
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/edit.js +2 -2
- package/dist/cli/eval.d.ts +17 -0
- package/dist/cli/eval.d.ts.map +1 -1
- package/dist/cli/eval.js +105 -2
- package/dist/cli/eval.js.map +1 -1
- package/dist/cli/execute.d.ts +16 -1
- package/dist/cli/execute.d.ts.map +1 -1
- package/dist/cli/execute.js +192 -22
- package/dist/cli/execute.js.map +1 -1
- package/dist/cli/failover-runner.d.ts.map +1 -1
- package/dist/cli/failover-runner.js +9 -3
- package/dist/cli/failover-runner.js.map +1 -1
- package/dist/cli/loop-executor.d.ts +55 -0
- package/dist/cli/loop-executor.d.ts.map +1 -1
- package/dist/cli/loop-executor.js +285 -19
- package/dist/cli/loop-executor.js.map +1 -1
- package/dist/cli/model.d.ts.map +1 -1
- package/dist/cli/model.js +9 -8
- package/dist/cli/model.js.map +1 -1
- package/dist/cli/models.d.ts +1 -1
- package/dist/cli/models.js +4 -4
- package/dist/cli/nlu.d.ts.map +1 -1
- package/dist/cli/nlu.js +8 -2
- package/dist/cli/nlu.js.map +1 -1
- package/dist/cli/parity.d.ts +85 -0
- package/dist/cli/parity.d.ts.map +1 -0
- package/dist/cli/parity.js +506 -0
- package/dist/cli/parity.js.map +1 -0
- package/dist/cli/plan.d.ts.map +1 -1
- package/dist/cli/plan.js +2 -1
- package/dist/cli/plan.js.map +1 -1
- package/dist/cli/publish.d.ts +22 -0
- package/dist/cli/publish.d.ts.map +1 -1
- package/dist/cli/publish.js +109 -13
- package/dist/cli/publish.js.map +1 -1
- package/dist/cli/retrieval.d.ts.map +1 -1
- package/dist/cli/retrieval.js +5 -4
- package/dist/cli/retrieval.js.map +1 -1
- package/dist/cli/sdk.js +4 -4
- package/dist/cli/sdk.js.map +1 -1
- package/dist/cli/trace.d.ts.map +1 -1
- package/dist/cli/trace.js +2 -1
- package/dist/cli/trace.js.map +1 -1
- package/dist/cli/workflow.js +2 -2
- package/dist/cli/workflow.js.map +1 -1
- package/dist/config/live-credentials.d.ts +57 -0
- package/dist/config/live-credentials.d.ts.map +1 -0
- package/dist/config/live-credentials.js +126 -0
- package/dist/config/live-credentials.js.map +1 -0
- package/dist/config/paths.d.ts +18 -0
- package/dist/config/paths.d.ts.map +1 -1
- package/dist/config/paths.js +25 -0
- package/dist/config/paths.js.map +1 -1
- package/dist/config/types.d.ts +44 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/federation/a2a-types.js +1 -1
- package/dist/federation/a2a-types.js.map +1 -1
- package/dist/findings/verdicts.d.ts +241 -0
- package/dist/findings/verdicts.d.ts.map +1 -0
- package/dist/findings/verdicts.js +284 -0
- package/dist/findings/verdicts.js.map +1 -0
- package/dist/gateway/adapters.d.ts +65 -0
- package/dist/gateway/adapters.d.ts.map +1 -1
- package/dist/gateway/adapters.js +216 -10
- package/dist/gateway/adapters.js.map +1 -1
- package/dist/gateway/channel-directory.d.ts +31 -0
- package/dist/gateway/channel-directory.d.ts.map +1 -1
- package/dist/gateway/channel-directory.js +40 -0
- package/dist/gateway/channel-directory.js.map +1 -1
- package/dist/gateway/gateway-log.d.ts +1 -1
- package/dist/gateway/gateway-log.d.ts.map +1 -1
- package/dist/gateway/gateway-log.js.map +1 -1
- package/dist/gateway/hooks.d.ts +87 -19
- package/dist/gateway/hooks.d.ts.map +1 -1
- package/dist/gateway/hooks.js +62 -23
- package/dist/gateway/hooks.js.map +1 -1
- package/dist/gateway/inbound-media.d.ts +147 -0
- package/dist/gateway/inbound-media.d.ts.map +1 -0
- package/dist/gateway/inbound-media.js +317 -0
- package/dist/gateway/inbound-media.js.map +1 -0
- package/dist/gateway/inbox.d.ts +8 -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 +14 -0
- package/dist/gateway/platform-config.d.ts.map +1 -1
- package/dist/gateway/platform-config.js +26 -8
- package/dist/gateway/platform-config.js.map +1 -1
- package/dist/gateway/realtime.d.ts +114 -0
- package/dist/gateway/realtime.d.ts.map +1 -0
- package/dist/gateway/realtime.js +402 -0
- package/dist/gateway/realtime.js.map +1 -0
- package/dist/gateway/registry.d.ts +31 -0
- package/dist/gateway/registry.d.ts.map +1 -1
- package/dist/gateway/registry.js +224 -4
- 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 +123 -4
- package/dist/gateway/whatsapp/baileys-bridge.js.map +1 -1
- package/dist/gateway/whatsapp/bridge.d.ts +6 -2
- package/dist/gateway/whatsapp/bridge.d.ts.map +1 -1
- package/dist/gateway/whatsapp/bridge.js.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/inference/factory.d.ts +14 -0
- package/dist/inference/factory.d.ts.map +1 -1
- package/dist/inference/factory.js +17 -0
- package/dist/inference/factory.js.map +1 -1
- package/dist/inference/groq-adapter.d.ts +2 -0
- package/dist/inference/groq-adapter.d.ts.map +1 -1
- package/dist/inference/groq-adapter.js +16 -6
- package/dist/inference/groq-adapter.js.map +1 -1
- package/dist/inference/model-validator.d.ts +6 -1
- package/dist/inference/model-validator.d.ts.map +1 -1
- package/dist/inference/model-validator.js +7 -2
- package/dist/inference/model-validator.js.map +1 -1
- package/dist/inference/route-resolver.d.ts +116 -0
- package/dist/inference/route-resolver.d.ts.map +1 -0
- package/dist/inference/route-resolver.js +159 -0
- package/dist/inference/route-resolver.js.map +1 -0
- package/dist/inference/tools.d.ts.map +1 -1
- package/dist/inference/tools.js +29 -0
- package/dist/inference/tools.js.map +1 -1
- package/dist/learning/autonomy-policy.d.ts +18 -0
- package/dist/learning/autonomy-policy.d.ts.map +1 -1
- package/dist/learning/autonomy-policy.js +35 -0
- package/dist/learning/autonomy-policy.js.map +1 -1
- package/dist/learning/benchmark.d.ts.map +1 -1
- package/dist/learning/benchmark.js +3 -2
- package/dist/learning/benchmark.js.map +1 -1
- package/dist/learning/continuation.d.ts.map +1 -1
- package/dist/learning/continuation.js +2 -1
- package/dist/learning/continuation.js.map +1 -1
- package/dist/learning/cost-tracker.d.ts.map +1 -1
- package/dist/learning/cost-tracker.js +2 -1
- package/dist/learning/cost-tracker.js.map +1 -1
- package/dist/learning/deferred-task.d.ts.map +1 -1
- package/dist/learning/deferred-task.js +13 -4
- package/dist/learning/deferred-task.js.map +1 -1
- package/dist/learning/eval-framework.d.ts.map +1 -1
- package/dist/learning/eval-framework.js +2 -1
- package/dist/learning/eval-framework.js.map +1 -1
- package/dist/learning/long-form.d.ts.map +1 -1
- package/dist/learning/long-form.js +2 -1
- package/dist/learning/long-form.js.map +1 -1
- package/dist/learning/model-registry.d.ts.map +1 -1
- package/dist/learning/model-registry.js +2 -1
- package/dist/learning/model-registry.js.map +1 -1
- package/dist/learning/reasoning-cache.d.ts.map +1 -1
- package/dist/learning/reasoning-cache.js +2 -1
- package/dist/learning/reasoning-cache.js.map +1 -1
- package/dist/learning/reasoning-trace.d.ts +38 -2
- package/dist/learning/reasoning-trace.d.ts.map +1 -1
- package/dist/learning/reasoning-trace.js +91 -1
- package/dist/learning/reasoning-trace.js.map +1 -1
- package/dist/learning/resilient-call.d.ts.map +1 -1
- package/dist/learning/resilient-call.js +31 -18
- package/dist/learning/resilient-call.js.map +1 -1
- package/dist/learning/retrieval.d.ts.map +1 -1
- package/dist/learning/retrieval.js +2 -1
- package/dist/learning/retrieval.js.map +1 -1
- package/dist/learning/seeded-benchmark.d.ts +160 -0
- package/dist/learning/seeded-benchmark.d.ts.map +1 -0
- package/dist/learning/seeded-benchmark.js +321 -0
- package/dist/learning/seeded-benchmark.js.map +1 -0
- package/dist/learning/seeded-bugs.d.ts +142 -0
- package/dist/learning/seeded-bugs.d.ts.map +1 -0
- package/dist/learning/seeded-bugs.js +535 -0
- package/dist/learning/seeded-bugs.js.map +1 -0
- package/dist/learning/skill-store.d.ts.map +1 -1
- package/dist/learning/skill-store.js +30 -9
- package/dist/learning/skill-store.js.map +1 -1
- package/dist/learning/step-checkpoint.d.ts +127 -0
- package/dist/learning/step-checkpoint.d.ts.map +1 -0
- package/dist/learning/step-checkpoint.js +244 -0
- package/dist/learning/step-checkpoint.js.map +1 -0
- package/dist/mcp/catalog.js +2 -3
- package/dist/mcp/catalog.js.map +1 -1
- package/dist/mcp/manager.d.ts.map +1 -1
- package/dist/mcp/manager.js +5 -3
- package/dist/mcp/manager.js.map +1 -1
- package/dist/nlu/intent-confirm.d.ts +23 -1
- package/dist/nlu/intent-confirm.d.ts.map +1 -1
- package/dist/nlu/intent-confirm.js +85 -2
- package/dist/nlu/intent-confirm.js.map +1 -1
- package/dist/nlu/learnings.d.ts +7 -0
- package/dist/nlu/learnings.d.ts.map +1 -1
- package/dist/nlu/learnings.js +7 -0
- package/dist/nlu/learnings.js.map +1 -1
- package/dist/observability/debug-log.d.ts +250 -0
- package/dist/observability/debug-log.d.ts.map +1 -0
- package/dist/observability/debug-log.js +500 -0
- package/dist/observability/debug-log.js.map +1 -0
- package/dist/observability/event-bus.d.ts.map +1 -1
- package/dist/observability/event-bus.js +4 -1
- package/dist/observability/event-bus.js.map +1 -1
- package/dist/observability/otel.d.ts +278 -0
- package/dist/observability/otel.d.ts.map +1 -0
- package/dist/observability/otel.js +590 -0
- package/dist/observability/otel.js.map +1 -0
- package/dist/parity/drivers.d.ts +99 -0
- package/dist/parity/drivers.d.ts.map +1 -0
- package/dist/parity/drivers.js +1362 -0
- package/dist/parity/drivers.js.map +1 -0
- package/dist/parity/graph.d.ts +73 -0
- package/dist/parity/graph.d.ts.map +1 -0
- package/dist/parity/graph.js +162 -0
- package/dist/parity/graph.js.map +1 -0
- package/dist/parity/matrix.d.ts +105 -0
- package/dist/parity/matrix.d.ts.map +1 -0
- package/dist/parity/matrix.js +352 -0
- package/dist/parity/matrix.js.map +1 -0
- package/dist/parity/observation.d.ts +444 -0
- package/dist/parity/observation.d.ts.map +1 -0
- package/dist/parity/observation.js +333 -0
- package/dist/parity/observation.js.map +1 -0
- package/dist/parity/scenarios.d.ts +229 -0
- package/dist/parity/scenarios.d.ts.map +1 -0
- package/dist/parity/scenarios.js +175 -0
- package/dist/parity/scenarios.js.map +1 -0
- package/dist/parity/surfaces.d.ts +122 -0
- package/dist/parity/surfaces.d.ts.map +1 -0
- package/dist/parity/surfaces.js +190 -0
- package/dist/parity/surfaces.js.map +1 -0
- package/dist/runtime/fault-injection.d.ts +173 -0
- package/dist/runtime/fault-injection.d.ts.map +1 -0
- package/dist/runtime/fault-injection.js +281 -0
- package/dist/runtime/fault-injection.js.map +1 -0
- package/dist/skills/secret-capture.d.ts.map +1 -1
- package/dist/skills/secret-capture.js +9 -4
- package/dist/skills/secret-capture.js.map +1 -1
- package/dist/tools/child-agent-entry.d.ts +23 -0
- package/dist/tools/child-agent-entry.d.ts.map +1 -0
- package/dist/tools/child-agent-entry.js +129 -0
- package/dist/tools/child-agent-entry.js.map +1 -0
- package/dist/tools/child-agent-runtime.d.ts +124 -0
- package/dist/tools/child-agent-runtime.d.ts.map +1 -0
- package/dist/tools/child-agent-runtime.js +704 -0
- package/dist/tools/child-agent-runtime.js.map +1 -0
- package/dist/tools/coding-tools.d.ts.map +1 -1
- package/dist/tools/coding-tools.js +82 -10
- package/dist/tools/coding-tools.js.map +1 -1
- package/dist/tools/credentials-tool.d.ts +24 -0
- package/dist/tools/credentials-tool.d.ts.map +1 -0
- package/dist/tools/credentials-tool.js +125 -0
- package/dist/tools/credentials-tool.js.map +1 -0
- package/dist/tools/delegation-system.d.ts +31 -0
- package/dist/tools/delegation-system.d.ts.map +1 -1
- package/dist/tools/delegation-system.js +70 -9
- package/dist/tools/delegation-system.js.map +1 -1
- package/dist/tools/extract/docx.d.ts +27 -0
- package/dist/tools/extract/docx.d.ts.map +1 -0
- package/dist/tools/extract/docx.js +48 -0
- package/dist/tools/extract/docx.js.map +1 -0
- package/dist/tools/extract/html-text.d.ts +27 -0
- package/dist/tools/extract/html-text.d.ts.map +1 -0
- package/dist/tools/extract/html-text.js +86 -0
- package/dist/tools/extract/html-text.js.map +1 -0
- package/dist/tools/extract/pdf-ocr.d.ts +58 -0
- package/dist/tools/extract/pdf-ocr.d.ts.map +1 -0
- package/dist/tools/extract/pdf-ocr.js +116 -0
- package/dist/tools/extract/pdf-ocr.js.map +1 -0
- package/dist/tools/extract/pdf.d.ts +65 -0
- package/dist/tools/extract/pdf.d.ts.map +1 -0
- package/dist/tools/extract/pdf.js +197 -0
- package/dist/tools/extract/pdf.js.map +1 -0
- package/dist/tools/extract/pptx.d.ts +32 -0
- package/dist/tools/extract/pptx.d.ts.map +1 -0
- package/dist/tools/extract/pptx.js +77 -0
- package/dist/tools/extract/pptx.js.map +1 -0
- package/dist/tools/extract/xlsx.d.ts +47 -0
- package/dist/tools/extract/xlsx.d.ts.map +1 -0
- package/dist/tools/extract/xlsx.js +111 -0
- package/dist/tools/extract/xlsx.js.map +1 -0
- package/dist/tools/finding-tool.d.ts +76 -0
- package/dist/tools/finding-tool.d.ts.map +1 -0
- package/dist/tools/finding-tool.js +125 -0
- package/dist/tools/finding-tool.js.map +1 -0
- package/dist/tools/git-tool.d.ts +25 -7
- package/dist/tools/git-tool.d.ts.map +1 -1
- package/dist/tools/git-tool.js +155 -15
- package/dist/tools/git-tool.js.map +1 -1
- package/dist/tools/loop-project-context.d.ts.map +1 -1
- package/dist/tools/loop-project-context.js +16 -0
- package/dist/tools/loop-project-context.js.map +1 -1
- package/dist/tools/loop-route-feed.d.ts +57 -0
- package/dist/tools/loop-route-feed.d.ts.map +1 -0
- package/dist/tools/loop-route-feed.js +101 -0
- package/dist/tools/loop-route-feed.js.map +1 -0
- package/dist/tools/messaging-tools.d.ts +41 -11
- package/dist/tools/messaging-tools.d.ts.map +1 -1
- package/dist/tools/messaging-tools.js +104 -55
- package/dist/tools/messaging-tools.js.map +1 -1
- package/dist/tools/neutts-synth.d.ts +27 -3
- package/dist/tools/neutts-synth.d.ts.map +1 -1
- package/dist/tools/neutts-synth.js +57 -13
- package/dist/tools/neutts-synth.js.map +1 -1
- package/dist/tools/pipeline-tool.d.ts +43 -1
- package/dist/tools/pipeline-tool.d.ts.map +1 -1
- package/dist/tools/pipeline-tool.js +21 -4
- package/dist/tools/pipeline-tool.js.map +1 -1
- package/dist/tools/publish-tool.d.ts.map +1 -1
- package/dist/tools/publish-tool.js +76 -10
- package/dist/tools/publish-tool.js.map +1 -1
- package/dist/tools/read-extract.d.ts +116 -45
- package/dist/tools/read-extract.d.ts.map +1 -1
- package/dist/tools/read-extract.js +494 -158
- package/dist/tools/read-extract.js.map +1 -1
- package/dist/tools/registry.d.ts +23 -3
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +196 -29
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/run-terminal.d.ts +9 -0
- package/dist/tools/run-terminal.d.ts.map +1 -1
- package/dist/tools/run-terminal.js +80 -2
- package/dist/tools/run-terminal.js.map +1 -1
- package/dist/tools/subagent-refusal.d.ts +15 -0
- package/dist/tools/subagent-refusal.d.ts.map +1 -0
- package/dist/tools/subagent-refusal.js +18 -0
- package/dist/tools/subagent-refusal.js.map +1 -0
- package/dist/tools/subagent-spawner.d.ts +122 -0
- package/dist/tools/subagent-spawner.d.ts.map +1 -1
- package/dist/tools/subagent-spawner.js +249 -28
- package/dist/tools/subagent-spawner.js.map +1 -1
- package/dist/tools/tool-hooks.d.ts +177 -0
- package/dist/tools/tool-hooks.d.ts.map +1 -0
- package/dist/tools/tool-hooks.js +427 -0
- package/dist/tools/tool-hooks.js.map +1 -0
- package/dist/tools/tool-loop.d.ts +94 -5
- package/dist/tools/tool-loop.d.ts.map +1 -1
- package/dist/tools/tool-loop.js +315 -9
- package/dist/tools/tool-loop.js.map +1 -1
- package/dist/tools/tool-refusal.d.ts +68 -0
- package/dist/tools/tool-refusal.d.ts.map +1 -0
- package/dist/tools/tool-refusal.js +78 -0
- package/dist/tools/tool-refusal.js.map +1 -0
- package/dist/tools/toolsets.d.ts +8 -0
- package/dist/tools/toolsets.d.ts.map +1 -1
- package/dist/tools/toolsets.js +14 -4
- package/dist/tools/toolsets.js.map +1 -1
- package/dist/tools/vision-tools.d.ts +88 -83
- package/dist/tools/vision-tools.d.ts.map +1 -1
- package/dist/tools/vision-tools.js +134 -103
- package/dist/tools/vision-tools.js.map +1 -1
- package/dist/tools/worktree.d.ts +210 -0
- package/dist/tools/worktree.d.ts.map +1 -0
- package/dist/tools/worktree.js +374 -0
- package/dist/tools/worktree.js.map +1 -0
- package/dist/utils/format.d.ts +3 -0
- package/dist/utils/format.d.ts.map +1 -0
- package/dist/utils/format.js +32 -0
- package/dist/utils/format.js.map +1 -0
- package/dist/web-dashboard/attachment-extract.d.ts +64 -0
- package/dist/web-dashboard/attachment-extract.d.ts.map +1 -0
- package/dist/web-dashboard/attachment-extract.js +154 -0
- package/dist/web-dashboard/attachment-extract.js.map +1 -0
- package/dist/web-dashboard/chat-console.d.ts +108 -1
- package/dist/web-dashboard/chat-console.d.ts.map +1 -1
- package/dist/web-dashboard/chat-console.js +36 -0
- package/dist/web-dashboard/chat-console.js.map +1 -1
- package/dist/web-dashboard/hub-data.d.ts +37 -0
- package/dist/web-dashboard/hub-data.d.ts.map +1 -1
- package/dist/web-dashboard/hub-data.js +61 -1
- package/dist/web-dashboard/hub-data.js.map +1 -1
- package/dist/web-dashboard/server.d.ts +14 -0
- package/dist/web-dashboard/server.d.ts.map +1 -1
- package/dist/web-dashboard/server.js +247 -13
- package/dist/web-dashboard/server.js.map +1 -1
- package/dist/web-dashboard/src/types.d.ts +196 -48
- package/dist/web-dashboard/src/types.d.ts.map +1 -1
- package/dist/workflow/registry.js +1 -1
- package/dist/workflow/registry.js.map +1 -1
- package/package.json +22 -6
- package/src/web-dashboard/public/assets/{index-Cyd6tIew.css → index-XJjj2cBX.css} +1 -1
- package/src/web-dashboard/public/assets/index-YWF9FpwQ.js +207 -0
- package/src/web-dashboard/public/assets/index-YWF9FpwQ.js.map +1 -0
- package/src/web-dashboard/public/index.html +2 -2
- package/dist/tools/child-agent-worker.js +0 -212
- package/src/web-dashboard/public/assets/index-CjvoBhlz.js +0 -207
- package/src/web-dashboard/public/assets/index-CjvoBhlz.js.map +0 -1
|
@@ -14,19 +14,89 @@
|
|
|
14
14
|
* Hermes equivalent: delegate_tool.py (3931 lines) — actual agent spawning
|
|
15
15
|
*/
|
|
16
16
|
import { fork } from 'node:child_process';
|
|
17
|
-
import {
|
|
17
|
+
import { resolveNuviraDataPath } from '../config/paths.js';
|
|
18
18
|
import { randomUUID } from 'node:crypto';
|
|
19
|
-
import { existsSync, readFileSync, writeFileSync, mkdirSync, readdirSync } from 'node:fs';
|
|
19
|
+
import { createWriteStream, existsSync, readFileSync, writeFileSync, mkdirSync, readdirSync } from 'node:fs';
|
|
20
20
|
import { join } from 'node:path';
|
|
21
21
|
import { EventEmitter } from 'node:events';
|
|
22
22
|
import { logger } from '../utils/logger.js';
|
|
23
|
+
// WS3 (#25) — the W3C parent this child should continue, read from the ACTIVE
|
|
24
|
+
// span (the tool call that spawned it), plus the env key it travels in.
|
|
25
|
+
import { childTraceEnv, TRACEPARENT_ENV } from '../observability/otel.js';
|
|
26
|
+
// WS5 (#27) — the env key the child resolves its resume request from.
|
|
27
|
+
import { RESUME_ENABLE_ENV } from '../learning/step-checkpoint.js';
|
|
28
|
+
// WS5 (#27) — delegation-level isolation: the parent makes the worktree, forks
|
|
29
|
+
// INTO it, and measures the diff itself (see SubagentConfig.worktree).
|
|
30
|
+
import { createIsolatedWorktree, discardWorktree, worktreeDiff, worktreeEnv, worktreeRefusal, } from './worktree.js';
|
|
31
|
+
/**
|
|
32
|
+
* How long the exit path may spend on git.
|
|
33
|
+
*
|
|
34
|
+
* Deliberately far below the creation budget: this runs inside the child's exit
|
|
35
|
+
* handler, so every millisecond here is a millisecond the manager's own event
|
|
36
|
+
* loop is blocked. A diff that cannot be produced in five seconds is reported as
|
|
37
|
+
* "no changes could be measured", which is honest, rather than stalling a
|
|
38
|
+
* server that may be answering other sessions.
|
|
39
|
+
*/
|
|
40
|
+
const WORKTREE_EXIT_TIMEOUT_MS = 5_000;
|
|
41
|
+
/**
|
|
42
|
+
* WS5 (#27) — how the resume request reaches the child: the inherited
|
|
43
|
+
* `NUVIRA_RESUME` (see `SubagentRuntimeConfig.resume`). The child resolves it from
|
|
44
|
+
* its own environment, exactly as an in-process surface does, so one request
|
|
45
|
+
* means the same thing on both sides of the fork.
|
|
46
|
+
*/
|
|
47
|
+
export const SUBAGENT_RESUME_ENV = RESUME_ENABLE_ENV;
|
|
48
|
+
/**
|
|
49
|
+
* Decide a child's terminal state from what it actually reported.
|
|
50
|
+
*
|
|
51
|
+
* `handleExit` used to synthesise a success here — a child that exited 0 having
|
|
52
|
+
* sent no `result` message was marked `completed` with
|
|
53
|
+
* `result: 'Task completed successfully'`, so `subagent wait` returned success
|
|
54
|
+
* for a run whose output never existed. That is the fabricated-success defect of
|
|
55
|
+
* TOOL_TRUTHFULNESS_TRACKER finding #4, and it is the reason this decision is a
|
|
56
|
+
* separate, exported, tested function rather than three inline branches: no
|
|
57
|
+
* result means the child reported nothing, which is a failure, never a success.
|
|
58
|
+
*/
|
|
59
|
+
export function classifyChildExit(result, code, signal) {
|
|
60
|
+
if (result)
|
|
61
|
+
return { status: 'completed' };
|
|
62
|
+
if (code === 0)
|
|
63
|
+
return { status: 'failed', error: 'Subagent exited without reporting a result' };
|
|
64
|
+
return { status: 'failed', error: signal ? `Killed by ${signal}` : `Exit code ${code}` };
|
|
65
|
+
}
|
|
23
66
|
// ─── Subagent Manager ─────────────────────────────────────────────────────
|
|
24
|
-
|
|
67
|
+
// `resolveNuviraDataPath` (not `resolveNuviraHome`) so a process pointed at an
|
|
68
|
+
// isolated config dir writes its subagent state there too — every other state file
|
|
69
|
+
// the agent persists resolves through it, and a test can then inspect a run without
|
|
70
|
+
// touching the developer's real ~/.nuvira.
|
|
71
|
+
const SUBAGENT_DIR = resolveNuviraDataPath('cache', 'subagents');
|
|
25
72
|
const STATE_DIR = join(SUBAGENT_DIR, 'state');
|
|
26
73
|
const LOG_DIR = join(SUBAGENT_DIR, 'logs');
|
|
27
74
|
const RESULT_DIR = join(SUBAGENT_DIR, 'results');
|
|
75
|
+
/**
|
|
76
|
+
* The file to fork.
|
|
77
|
+
*
|
|
78
|
+
* A compiled build has `dist/tools/child-agent-entry.js` beside this module and
|
|
79
|
+
* plain `node` runs it. A source run (tsx/vitest) has the TypeScript original
|
|
80
|
+
* instead, which node cannot parse — it is forked through the tsx loader. The two
|
|
81
|
+
* layouts used to be handled by one hardcoded `.js` path, which failed BOTH ways:
|
|
82
|
+
* compiled, the build never emitted that file (allowJs is false, so `fork()` threw
|
|
83
|
+
* ENOENT); from source, it was a CommonJS file inside a `"type": "module"`
|
|
84
|
+
* package and died on `require is not defined`. That is why no subagent ever ran.
|
|
85
|
+
*/
|
|
86
|
+
function resolveChildEntry() {
|
|
87
|
+
const dir = import.meta.dirname;
|
|
88
|
+
const compiled = join(dir, 'child-agent-entry.js');
|
|
89
|
+
if (existsSync(compiled))
|
|
90
|
+
return { entry: compiled };
|
|
91
|
+
const source = join(dir, 'child-agent-entry.ts');
|
|
92
|
+
if (existsSync(source))
|
|
93
|
+
return { entry: source, execArgv: ['--import', 'tsx'] };
|
|
94
|
+
throw new Error(`subagent entry not found beside ${dir} (expected child-agent-entry.js or .ts) — the build is incomplete`);
|
|
95
|
+
}
|
|
28
96
|
export class SubagentManager extends EventEmitter {
|
|
29
97
|
subagents = new Map();
|
|
98
|
+
/** WS5 (#27) — the live worktree of each isolated run, keyed by subagent id. */
|
|
99
|
+
worktrees = new Map();
|
|
30
100
|
processes = new Map();
|
|
31
101
|
maxConcurrent = 3;
|
|
32
102
|
maxDepth = 1;
|
|
@@ -62,6 +132,8 @@ export class SubagentManager extends EventEmitter {
|
|
|
62
132
|
const check = this.canSpawn();
|
|
63
133
|
if (!check.allowed)
|
|
64
134
|
throw new Error(check.reason);
|
|
135
|
+
/** WS5 — the worktree this run is isolated in, when one was asked for. */
|
|
136
|
+
let worktree = null;
|
|
65
137
|
const id = randomUUID();
|
|
66
138
|
const state = {
|
|
67
139
|
id,
|
|
@@ -75,29 +147,80 @@ export class SubagentManager extends EventEmitter {
|
|
|
75
147
|
this.subagents.set(id, state);
|
|
76
148
|
this.saveState(state);
|
|
77
149
|
try {
|
|
150
|
+
// WS5 (#27) — isolation, made by the parent BEFORE the fork. A refusal is a
|
|
151
|
+
// FAILED spawn rather than an unisolated run: the caller asked for isolation
|
|
152
|
+
// on purpose, and a run that silently happened in the real tree is the exact
|
|
153
|
+
// outcome this capability exists to prevent.
|
|
154
|
+
if (config.worktree) {
|
|
155
|
+
const repoCwd = config.cwd || process.cwd();
|
|
156
|
+
worktree = createIsolatedWorktree({ repoCwd, label: config.goal });
|
|
157
|
+
if (!worktree) {
|
|
158
|
+
const why = worktreeRefusal(repoCwd) ?? 'the worktree could not be created';
|
|
159
|
+
throw new Error(`Cannot isolate this subagent: ${why}`);
|
|
160
|
+
}
|
|
161
|
+
state.worktree = worktree.dir;
|
|
162
|
+
state.worktreeBase = worktree.base;
|
|
163
|
+
this.worktrees.set(id, { handle: worktree, keep: config.keepWorktree === true });
|
|
164
|
+
this.emit('progress', id, {
|
|
165
|
+
phase: 'worktree',
|
|
166
|
+
dir: worktree.dir,
|
|
167
|
+
base: worktree.base,
|
|
168
|
+
sourceDirty: worktree.sourceDirty,
|
|
169
|
+
});
|
|
170
|
+
}
|
|
78
171
|
// Spawn child process
|
|
79
|
-
const
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
172
|
+
const { entry, execArgv } = resolveChildEntry();
|
|
173
|
+
// WS3 (#25) — hand the child the trace it belongs to. The loop makes the
|
|
174
|
+
// tool span ACTIVE around this call, so `childTraceEnv()` reads the real
|
|
175
|
+
// parent out of the active context (never out of module state, which two
|
|
176
|
+
// interleaved turns in one server would share). It is set or DELETED
|
|
177
|
+
// explicitly rather than merged: a `TRACEPARENT` inherited from this
|
|
178
|
+
// process's own environment is not the child's parent, and a stale one
|
|
179
|
+
// would graft the child onto a trace nobody is running.
|
|
180
|
+
const traceEnv = childTraceEnv();
|
|
181
|
+
const childEnv = {
|
|
182
|
+
...process.env,
|
|
183
|
+
...config.env,
|
|
184
|
+
SUBAGENT_ID: id,
|
|
185
|
+
SUBAGENT_GOAL: config.goal,
|
|
186
|
+
SUBAGENT_PROVIDER: config.provider || 'auto',
|
|
187
|
+
SUBAGENT_MODEL: config.model || 'auto',
|
|
188
|
+
SUBAGENT_MAX_LLM_CALLS: String(config.maxLlmCalls || 50),
|
|
189
|
+
SUBAGENT_MAX_TOKENS: String(config.maxTokens || 100_000),
|
|
190
|
+
SUBAGENT_TOOLS: JSON.stringify(config.tools || []),
|
|
191
|
+
SUBAGENT_BLOCKED_TOOLS: JSON.stringify(config.blockedTools || []),
|
|
192
|
+
};
|
|
193
|
+
const traceparent = traceEnv[TRACEPARENT_ENV];
|
|
194
|
+
if (traceparent)
|
|
195
|
+
childEnv[TRACEPARENT_ENV] = traceparent;
|
|
196
|
+
else
|
|
197
|
+
delete childEnv[TRACEPARENT_ENV];
|
|
198
|
+
// WS5 — the resume request travels as the environment the child resolves it
|
|
199
|
+
// from. INHERITED when the caller does not name one (unlike the traceparent
|
|
200
|
+
// above, which is explicitly cleared): a parent run that was asked to resume
|
|
201
|
+
// is asking for its children's model calls to be replayed too, and a child
|
|
202
|
+
// with no record of its own simply records a fresh one. An explicit
|
|
203
|
+
// `false` is how a caller opts a child out of that.
|
|
204
|
+
// WS5 — the child's cwd IS the isolation, and it is told so in its
|
|
205
|
+
// environment: a tool inside the run can then report which worktree it is
|
|
206
|
+
// working in instead of guessing, and a nested spawn can isolate from it.
|
|
207
|
+
if (worktree)
|
|
208
|
+
Object.assign(childEnv, worktreeEnv(worktree));
|
|
209
|
+
const child = fork(entry, [], {
|
|
210
|
+
cwd: worktree?.dir ?? config.cwd ?? process.cwd(),
|
|
211
|
+
...(execArgv ? { execArgv } : {}),
|
|
212
|
+
env: childEnv,
|
|
93
213
|
stdio: ['ignore', 'pipe', 'pipe', 'ipc'],
|
|
94
214
|
});
|
|
215
|
+
logger.info(`Subagent: forked ${entry}${execArgv ? ` (via ${execArgv.join(' ')})` : ''}`);
|
|
95
216
|
state.pid = child.pid;
|
|
96
217
|
state.status = 'running';
|
|
97
218
|
this.processes.set(id, child);
|
|
98
|
-
// Set up log file
|
|
219
|
+
// Set up log file. This used to be `require('node:fs')` INSIDE an ESM
|
|
220
|
+
// module, so it threw `require is not defined` immediately after the fork
|
|
221
|
+
// and `spawn()` rejected before the child was ever tracked.
|
|
99
222
|
const logFile = join(LOG_DIR, `${id}.log`);
|
|
100
|
-
const logStream =
|
|
223
|
+
const logStream = createWriteStream(logFile, { flags: 'a' });
|
|
101
224
|
// Pipe stdout/stderr to log file
|
|
102
225
|
child.stdout?.pipe(logStream);
|
|
103
226
|
child.stderr?.pipe(logStream);
|
|
@@ -131,6 +254,15 @@ export class SubagentManager extends EventEmitter {
|
|
|
131
254
|
return state;
|
|
132
255
|
}
|
|
133
256
|
catch (err) {
|
|
257
|
+
// A spawn that failed AFTER the worktree was made leaves nothing behind:
|
|
258
|
+
// the run never happened, so neither should its directory.
|
|
259
|
+
if (worktree) {
|
|
260
|
+
const kept = this.worktrees.get(id)?.keep === true;
|
|
261
|
+
if (!kept)
|
|
262
|
+
discardWorktree(worktree, { timeoutMs: WORKTREE_EXIT_TIMEOUT_MS });
|
|
263
|
+
if (!kept)
|
|
264
|
+
this.worktrees.delete(id);
|
|
265
|
+
}
|
|
134
266
|
state.status = 'failed';
|
|
135
267
|
state.error = String(err);
|
|
136
268
|
state.endedAt = Date.now();
|
|
@@ -232,6 +364,17 @@ export class SubagentManager extends EventEmitter {
|
|
|
232
364
|
state.llmCalls = msg.llmCalls || state.llmCalls;
|
|
233
365
|
state.tokensUsed = msg.tokensUsed || state.tokensUsed;
|
|
234
366
|
state.toolCalls = msg.toolCalls || state.toolCalls;
|
|
367
|
+
// WS1 — a finding the child recorded. Appended, never replaced: a run
|
|
368
|
+
// can record several, and the order is part of what it did.
|
|
369
|
+
if (msg.finding && typeof msg.finding === 'object') {
|
|
370
|
+
state.findings = [...(state.findings ?? []), msg.finding];
|
|
371
|
+
}
|
|
372
|
+
// WS5 (#27) — the child's own resume report. A frame, not a return value:
|
|
373
|
+
// the child is a separate process, and this is its only channel back.
|
|
374
|
+
if (msg.resume && typeof msg.resume === 'object') {
|
|
375
|
+
state.resume = msg.resume;
|
|
376
|
+
}
|
|
377
|
+
this.recordIdentity(state, msg);
|
|
235
378
|
this.saveState(state);
|
|
236
379
|
this.emit('progress', id, msg);
|
|
237
380
|
break;
|
|
@@ -240,25 +383,80 @@ export class SubagentManager extends EventEmitter {
|
|
|
240
383
|
state.llmCalls = msg.llmCalls || state.llmCalls;
|
|
241
384
|
state.tokensUsed = msg.tokensUsed || state.tokensUsed;
|
|
242
385
|
state.toolCalls = msg.toolCalls || state.toolCalls;
|
|
386
|
+
// G1 — the child's verification verdict, read off its result frame. Only
|
|
387
|
+
// a truthy flag is recorded: the child omits it when the edit WAS verified,
|
|
388
|
+
// so `undefined` here means "not claimed", and never `false`.
|
|
389
|
+
if (msg.unverifiedEdit === true)
|
|
390
|
+
state.unverifiedEdit = true;
|
|
391
|
+
if (msg.unverifiedEditClaim === true)
|
|
392
|
+
state.unverifiedEditClaim = true;
|
|
393
|
+
this.recordIdentity(state, msg);
|
|
394
|
+
this.saveState(state);
|
|
395
|
+
break;
|
|
396
|
+
case 'error':
|
|
397
|
+
// The child's OWN reason. Without this the message was dropped and the
|
|
398
|
+
// parent could only report "Exit code 1".
|
|
399
|
+
state.error = msg.error || 'Subagent reported an error';
|
|
400
|
+
if (msg.code)
|
|
401
|
+
state.refusalCode = msg.code;
|
|
402
|
+
this.recordIdentity(state, msg);
|
|
403
|
+
this.saveState(state);
|
|
243
404
|
break;
|
|
244
405
|
}
|
|
245
406
|
}
|
|
407
|
+
/**
|
|
408
|
+
* Record which provider/model/transport the child is serving this run with.
|
|
409
|
+
*
|
|
410
|
+
* The child announces them on its FIRST frame — before it can fail — and repeats
|
|
411
|
+
* them on the result and error frames. Recording from every frame (not just the
|
|
412
|
+
* result) is what makes a FAILED run attributable: a subagent that its provider
|
|
413
|
+
* rejected used to land as a bare error with no provider, model or transport, so
|
|
414
|
+
* the dashboard showed a failure with nothing to debug it by — exactly backwards,
|
|
415
|
+
* since a run that produced no output is the one that needs the attribution.
|
|
416
|
+
*/
|
|
417
|
+
recordIdentity(state, msg) {
|
|
418
|
+
if (msg.provider)
|
|
419
|
+
state.provider = String(msg.provider);
|
|
420
|
+
if (msg.model)
|
|
421
|
+
state.model = String(msg.model);
|
|
422
|
+
if (msg.transport)
|
|
423
|
+
state.transport = String(msg.transport);
|
|
424
|
+
}
|
|
246
425
|
handleExit(id, code, signal) {
|
|
247
426
|
const state = this.subagents.get(id);
|
|
248
427
|
if (!state)
|
|
249
428
|
return;
|
|
250
429
|
state.endedAt = Date.now();
|
|
251
430
|
state.durationMs = state.endedAt - state.startedAt;
|
|
252
|
-
if (state.
|
|
253
|
-
|
|
431
|
+
if (state.status === 'killed' || state.status === 'timeout') {
|
|
432
|
+
// The killer already recorded why; do not overwrite it with an exit code.
|
|
254
433
|
}
|
|
255
|
-
else if (
|
|
256
|
-
|
|
257
|
-
state.
|
|
434
|
+
else if (state.error) {
|
|
435
|
+
// The child said why it failed — that reason outranks its exit code.
|
|
436
|
+
state.status = 'failed';
|
|
258
437
|
}
|
|
259
438
|
else {
|
|
260
|
-
state.
|
|
261
|
-
state.
|
|
439
|
+
const outcome = classifyChildExit(state.result, code, signal);
|
|
440
|
+
state.status = outcome.status;
|
|
441
|
+
if (outcome.error)
|
|
442
|
+
state.error = outcome.error;
|
|
443
|
+
}
|
|
444
|
+
// WS5 (#27) — what an isolated run changed, measured from the parent, and the
|
|
445
|
+
// teardown. Both happen BEFORE the result is built and emitted, so the diff
|
|
446
|
+
// rides on the result its caller is waiting for: a diff reported later (or by
|
|
447
|
+
// a separate command) is a diff most callers never see. A KILLED run is
|
|
448
|
+
// measured too — "what had it changed when you stopped it" is exactly the
|
|
449
|
+
// question a teardown needs answered.
|
|
450
|
+
const isolated = this.worktrees.get(id);
|
|
451
|
+
if (isolated) {
|
|
452
|
+
state.worktreeDiff = worktreeDiff(isolated.handle, { timeoutMs: WORKTREE_EXIT_TIMEOUT_MS });
|
|
453
|
+
if (isolated.keep) {
|
|
454
|
+
state.worktreeRemoved = false;
|
|
455
|
+
}
|
|
456
|
+
else {
|
|
457
|
+
state.worktreeRemoved = discardWorktree(isolated.handle, { timeoutMs: WORKTREE_EXIT_TIMEOUT_MS });
|
|
458
|
+
}
|
|
459
|
+
this.worktrees.delete(id);
|
|
262
460
|
}
|
|
263
461
|
this.saveState(state);
|
|
264
462
|
this.processes.delete(id);
|
|
@@ -269,8 +467,13 @@ export class SubagentManager extends EventEmitter {
|
|
|
269
467
|
this.emit(`completed:${id}`, result);
|
|
270
468
|
}
|
|
271
469
|
else {
|
|
272
|
-
|
|
273
|
-
|
|
470
|
+
// The child's typed refusal (when it reported one) rides on the error, so
|
|
471
|
+
// `waitForCompletion`'s rejection is actionable instead of a bare message.
|
|
472
|
+
const failure = new Error(state.error);
|
|
473
|
+
if (state.refusalCode)
|
|
474
|
+
failure.code = state.refusalCode;
|
|
475
|
+
this.emit('failed', id, failure);
|
|
476
|
+
this.emit(`failed:${id}`, failure);
|
|
274
477
|
}
|
|
275
478
|
}
|
|
276
479
|
buildResult(state) {
|
|
@@ -279,6 +482,24 @@ export class SubagentManager extends EventEmitter {
|
|
|
279
482
|
success: state.status === 'completed',
|
|
280
483
|
result: state.result || '',
|
|
281
484
|
error: state.error,
|
|
485
|
+
...(state.refusalCode ? { refusalCode: state.refusalCode } : {}),
|
|
486
|
+
...(state.provider ? { provider: state.provider } : {}),
|
|
487
|
+
...(state.model ? { model: state.model } : {}),
|
|
488
|
+
...(state.transport ? { transport: state.transport } : {}),
|
|
489
|
+
...(state.findings && state.findings.length > 0 ? { findings: state.findings } : {}),
|
|
490
|
+
...(state.resume ? { resume: state.resume } : {}),
|
|
491
|
+
...(state.unverifiedEdit ? { unverifiedEdit: true } : {}),
|
|
492
|
+
...(state.unverifiedEditClaim ? { unverifiedEditClaim: true } : {}),
|
|
493
|
+
...(state.worktree && state.worktreeBase && state.worktreeDiff
|
|
494
|
+
? {
|
|
495
|
+
worktree: {
|
|
496
|
+
dir: state.worktree,
|
|
497
|
+
base: state.worktreeBase,
|
|
498
|
+
diff: state.worktreeDiff,
|
|
499
|
+
removed: state.worktreeRemoved === true,
|
|
500
|
+
},
|
|
501
|
+
}
|
|
502
|
+
: {}),
|
|
282
503
|
llmCalls: state.llmCalls,
|
|
283
504
|
tokensUsed: state.tokensUsed,
|
|
284
505
|
toolCalls: state.toolCalls,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subagent-spawner.js","sourceRoot":"","sources":["../../src/tools/subagent-spawner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"subagent-spawner.js","sourceRoot":"","sources":["../../src/tools/subagent-spawner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WS4 (#26) — tool lifecycle hooks an operator can subscribe to.
|
|
3
|
+
*
|
|
4
|
+
* WHY AN OPERATOR-FACING HOOK, AND WHY IT REUSES THE REGISTRY. The registry
|
|
5
|
+
* (`src/gateway/hooks.ts`) already existed and already had a `post_tool_call`
|
|
6
|
+
* event — wired to the event bus and installed by NOTHING in production, so it
|
|
7
|
+
* reached the gateway and nowhere else, and could not stop a call even where it
|
|
8
|
+
* did fire. This module is the missing half: it lets an operator DECLARE hooks in
|
|
9
|
+
* config or in the environment, and binds them into that same registry, so the
|
|
10
|
+
* seam has one subscription model instead of a second, parallel system.
|
|
11
|
+
*
|
|
12
|
+
* DECLARED, NOT PROGRAMMED. A hook is a COMMAND with three phases to choose from
|
|
13
|
+
* (`before` / `after` / `failed`), because the operator of a CLI is a person with
|
|
14
|
+
* a shell — not someone who edits this repository to install a callback. The call
|
|
15
|
+
* is written to the command's STDIN as JSON and its decision is read from STDOUT
|
|
16
|
+
* as JSON, so a tool argument can never change which program runs: nothing is
|
|
17
|
+
* interpolated into a command line, only passed as data.
|
|
18
|
+
*
|
|
19
|
+
* CONFIG, WITH THE ENVIRONMENT WINNING. `tools.hooks` in `buffconfig.json` is the
|
|
20
|
+
* durable, reviewable declaration; `NUVIRA_TOOL_HOOK_BEFORE` / `_AFTER` /
|
|
21
|
+
* `_FAILED` declare one hook for a single run. For a given phase the environment
|
|
22
|
+
* REPLACES the configured hooks — "the environment wins" has to mean one list per
|
|
23
|
+
* phase, or the effective hooks are not knowable from reading either source. That
|
|
24
|
+
* also makes the variables the way a forked subagent is covered with no extra
|
|
25
|
+
* plumbing: it inherits its parent's environment, and reads its own config.
|
|
26
|
+
*
|
|
27
|
+
* A BROKEN HOOK DOES NOT VETO. This is the rule the rest of this codebase already
|
|
28
|
+
* follows for its own instruments (the debug log, the OTLP tracer): a hook that
|
|
29
|
+
* crashes, times out, or prints something unparseable is REPORTED and the call
|
|
30
|
+
* proceeds. The alternative is worse than it looks — one bad hook would stop
|
|
31
|
+
* every tool call in the process, and it would do so silently, because the hook
|
|
32
|
+
* that was supposed to report problems is the one that is broken. A veto must be
|
|
33
|
+
* explicit and well-formed (`{"decision":"deny","reason":"…"}`), so a hook can
|
|
34
|
+
* only stop work by saying so.
|
|
35
|
+
*
|
|
36
|
+
* Hooks see LOCAL data and it is NOT redacted, unlike the debug log and the trace:
|
|
37
|
+
* those leave the machine, this is the operator's own command on their own
|
|
38
|
+
* machine. The result preview is bounded so a huge tool result cannot be handed
|
|
39
|
+
* over in full on every call.
|
|
40
|
+
*/
|
|
41
|
+
import type { ToolHookConfig } from '../config/types.js';
|
|
42
|
+
import { type HookDecision } from '../gateway/hooks.js';
|
|
43
|
+
/** The phase a hook is declared for, in the order a call goes through them. */
|
|
44
|
+
export declare const TOOL_HOOK_PHASES: readonly ["before", "after", "failed"];
|
|
45
|
+
export type ToolHookPhase = (typeof TOOL_HOOK_PHASES)[number];
|
|
46
|
+
/** The environment variable that declares one hook for a single phase. */
|
|
47
|
+
export declare const TOOL_HOOK_ENV: Record<ToolHookPhase, string>;
|
|
48
|
+
/** How long a hook may take before it is killed and reported. */
|
|
49
|
+
export declare const TOOL_HOOK_TIMEOUT_MS = 5000;
|
|
50
|
+
/** Cap on what we read back from a hook, so a runaway command cannot fill memory. */
|
|
51
|
+
export declare const TOOL_HOOK_OUTPUT_LIMIT_CHARS = 8000;
|
|
52
|
+
/** Cap on the tool result a hook receives — a preview, not the payload. */
|
|
53
|
+
export declare const TOOL_HOOK_RESULT_PREVIEW_CHARS = 4000;
|
|
54
|
+
/** The minimum of a config manager this module needs (`tools.hooks`). */
|
|
55
|
+
export interface ToolHooksConfigManager {
|
|
56
|
+
getAll?(): {
|
|
57
|
+
tools?: {
|
|
58
|
+
hooks?: ToolHookConfig[];
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/** One resolved declaration: with its phase and command guaranteed present. */
|
|
63
|
+
export interface ToolHookDeclaration extends ToolHookConfig {
|
|
64
|
+
phase: ToolHookPhase;
|
|
65
|
+
command: string;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* The JSON document a hook command receives on stdin.
|
|
69
|
+
*
|
|
70
|
+
* Deliberately flat and stable: the phase, the call, and — for the phases that
|
|
71
|
+
* come after the fact — what happened. `result` is a bounded preview with
|
|
72
|
+
* `resultTruncated` saying so, so a hook can tell "the result was short" from "I
|
|
73
|
+
* was handed a cut one".
|
|
74
|
+
*/
|
|
75
|
+
export interface ToolHookPayload {
|
|
76
|
+
phase: ToolHookPhase;
|
|
77
|
+
tool: string;
|
|
78
|
+
arguments?: Record<string, unknown>;
|
|
79
|
+
callId?: string;
|
|
80
|
+
surface?: string;
|
|
81
|
+
cwd?: string;
|
|
82
|
+
hook: string;
|
|
83
|
+
/** `after` / `failed` only. */
|
|
84
|
+
ok?: boolean;
|
|
85
|
+
result?: string;
|
|
86
|
+
resultTruncated?: boolean;
|
|
87
|
+
error?: string;
|
|
88
|
+
durationMs?: number;
|
|
89
|
+
}
|
|
90
|
+
/** What a hook said about a call it was asked about. */
|
|
91
|
+
export interface ToolHookVerdict {
|
|
92
|
+
/** True when a `before` hook DENIED the call, so it must not run. */
|
|
93
|
+
denied: boolean;
|
|
94
|
+
/** Why, when the hook said. Reported to the model and the turn's trace. */
|
|
95
|
+
reason?: string;
|
|
96
|
+
/** Which hook decided. */
|
|
97
|
+
by?: string;
|
|
98
|
+
/**
|
|
99
|
+
* Hooks that failed to run or to answer, in order. REPORTED, never a veto —
|
|
100
|
+
* see the fail-open rule in the module header.
|
|
101
|
+
*/
|
|
102
|
+
problems: string[];
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* The declarations in effect: config first, then each phase REPLACED by its
|
|
106
|
+
* environment variable when one is set.
|
|
107
|
+
*
|
|
108
|
+
* Exported because the precedence rule is the part worth testing on its own: a
|
|
109
|
+
* caller cannot see which list won by watching a hook run.
|
|
110
|
+
*/
|
|
111
|
+
export declare function resolveToolHookDeclarations(cm?: ToolHooksConfigManager, env?: NodeJS.ProcessEnv): ToolHookDeclaration[];
|
|
112
|
+
/** Does this declaration apply to this tool? Absent/empty `tools` = every tool. */
|
|
113
|
+
export declare function hookAppliesTo(decl: ToolHookDeclaration, tool: string): boolean;
|
|
114
|
+
/**
|
|
115
|
+
* Read a hook's decision out of its stdout.
|
|
116
|
+
*
|
|
117
|
+
* Empty output is ALLOW, not a problem: a hook that only records something has
|
|
118
|
+
* nothing to decide. Anything non-empty must be the documented object — a hook
|
|
119
|
+
* that prints prose has not made a decision, and guessing one from loose text is
|
|
120
|
+
* how an operator ends up with a veto they never asked for.
|
|
121
|
+
*/
|
|
122
|
+
export declare function parseToolHookDecision(stdout: string, by: string): {
|
|
123
|
+
decision: HookDecision | null;
|
|
124
|
+
problem?: string;
|
|
125
|
+
};
|
|
126
|
+
/**
|
|
127
|
+
* Bind the declared hooks into the registry, if the declarations changed.
|
|
128
|
+
*
|
|
129
|
+
* Idempotent, and it REPLACES rather than accumulates: the registry is a
|
|
130
|
+
* singleton for the process, so a signature change has to unregister what the
|
|
131
|
+
* previous declarations installed — otherwise a hook that was removed from config
|
|
132
|
+
* would go on vetoing calls for the life of the process, and a test that turns a
|
|
133
|
+
* hook on could never turn it off.
|
|
134
|
+
*/
|
|
135
|
+
export declare function installDeclaredToolHooks(cm?: ToolHooksConfigManager, env?: NodeJS.ProcessEnv): ToolHookDeclaration[];
|
|
136
|
+
/** What a loop hands to the `before` phase. */
|
|
137
|
+
export interface BeforeToolCallRequest {
|
|
138
|
+
tool: string;
|
|
139
|
+
args?: Record<string, unknown>;
|
|
140
|
+
callId?: string;
|
|
141
|
+
surface?: string;
|
|
142
|
+
cwd?: string;
|
|
143
|
+
configManager?: ToolHooksConfigManager;
|
|
144
|
+
env?: NodeJS.ProcessEnv;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Ask the `before` hooks whether this call may run.
|
|
148
|
+
*
|
|
149
|
+
* ALWAYS RESOLVES: a hook that cannot answer never blocks the call, and the reason
|
|
150
|
+
* it could not answer comes back in `problems` for the caller to report.
|
|
151
|
+
*/
|
|
152
|
+
export declare function runBeforeToolHooks(req: BeforeToolCallRequest): Promise<ToolHookVerdict>;
|
|
153
|
+
/** What a loop hands to the `after` / `failed` phase. */
|
|
154
|
+
export interface ToolOutcomeRequest extends BeforeToolCallRequest {
|
|
155
|
+
ok: boolean;
|
|
156
|
+
result?: string;
|
|
157
|
+
error?: string;
|
|
158
|
+
durationMs?: number;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Tell the `after` / `failed` hooks what happened.
|
|
162
|
+
*
|
|
163
|
+
* One of the two fires, never both: a call either succeeded or it did not, and
|
|
164
|
+
* firing `failed` for a success would make a hook that counts failures wrong.
|
|
165
|
+
*/
|
|
166
|
+
export declare function runToolOutcomeHooks(req: ToolOutcomeRequest): Promise<{
|
|
167
|
+
problems: string[];
|
|
168
|
+
}>;
|
|
169
|
+
/**
|
|
170
|
+
* The refusal text a vetoed call is fed back as.
|
|
171
|
+
*
|
|
172
|
+
* Shaped like the loop's other refusals (the `Error:` prefix is how a tool
|
|
173
|
+
* result is recognised as a failure everywhere in this codebase), so a veto is
|
|
174
|
+
* accounted as a failed call rather than as work that silently did not happen.
|
|
175
|
+
*/
|
|
176
|
+
export declare function toolHookRefusalText(verdict: ToolHookVerdict): string;
|
|
177
|
+
//# sourceMappingURL=tool-hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-hooks.d.ts","sourceRoot":"","sources":["../../src/tools/tool-hooks.ts"],"names":[],"mappings":"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"}
|