@sema-ai/core 1.275.1
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/CHANGELOG.md +5433 -0
- package/LICENSE +27 -0
- package/NOTICE.md +30 -0
- package/README.md +1040 -0
- package/dist/agents/agent-definition.d.ts +10 -0
- package/dist/agents/agent-definition.d.ts.map +1 -0
- package/dist/agents/agent-definition.js +18 -0
- package/dist/agents/agent-definition.js.map +1 -0
- package/dist/agents/builtin-agents.d.ts +69 -0
- package/dist/agents/builtin-agents.d.ts.map +1 -0
- package/dist/agents/builtin-agents.js +177 -0
- package/dist/agents/builtin-agents.js.map +1 -0
- package/dist/agents/cascade.d.ts +101 -0
- package/dist/agents/cascade.d.ts.map +1 -0
- package/dist/agents/cascade.js +189 -0
- package/dist/agents/cascade.js.map +1 -0
- package/dist/agents/observer.d.ts +209 -0
- package/dist/agents/observer.d.ts.map +1 -0
- package/dist/agents/observer.js +495 -0
- package/dist/agents/observer.js.map +1 -0
- package/dist/agents/repair-loop.d.ts +236 -0
- package/dist/agents/repair-loop.d.ts.map +1 -0
- package/dist/agents/repair-loop.js +293 -0
- package/dist/agents/repair-loop.js.map +1 -0
- package/dist/agents/session-util.d.ts +8 -0
- package/dist/agents/session-util.d.ts.map +1 -0
- package/dist/agents/session-util.js +9 -0
- package/dist/agents/session-util.js.map +1 -0
- package/dist/agents/subagent-steps.d.ts +93 -0
- package/dist/agents/subagent-steps.d.ts.map +1 -0
- package/dist/agents/subagent-steps.js +206 -0
- package/dist/agents/subagent-steps.js.map +1 -0
- package/dist/agents/subagent.d.ts +441 -0
- package/dist/agents/subagent.d.ts.map +1 -0
- package/dist/agents/subagent.js +2492 -0
- package/dist/agents/subagent.js.map +1 -0
- package/dist/agents/suspend-guard.d.ts +35 -0
- package/dist/agents/suspend-guard.d.ts.map +1 -0
- package/dist/agents/suspend-guard.js +48 -0
- package/dist/agents/suspend-guard.js.map +1 -0
- package/dist/agents/teacher.d.ts +137 -0
- package/dist/agents/teacher.d.ts.map +1 -0
- package/dist/agents/teacher.js +575 -0
- package/dist/agents/teacher.js.map +1 -0
- package/dist/agents/team.d.ts +211 -0
- package/dist/agents/team.d.ts.map +1 -0
- package/dist/agents/team.js +293 -0
- package/dist/agents/team.js.map +1 -0
- package/dist/agents/tool-filter.d.ts +29 -0
- package/dist/agents/tool-filter.d.ts.map +1 -0
- package/dist/agents/tool-filter.js +50 -0
- package/dist/agents/tool-filter.js.map +1 -0
- package/dist/agents/verify.d.ts +177 -0
- package/dist/agents/verify.d.ts.map +1 -0
- package/dist/agents/verify.js +305 -0
- package/dist/agents/verify.js.map +1 -0
- package/dist/bench/metrics.d.ts +714 -0
- package/dist/bench/metrics.d.ts.map +1 -0
- package/dist/bench/metrics.js +618 -0
- package/dist/bench/metrics.js.map +1 -0
- package/dist/bin/sema-tb.d.ts +3 -0
- package/dist/bin/sema-tb.d.ts.map +1 -0
- package/dist/bin/sema-tb.js +516 -0
- package/dist/bin/sema-tb.js.map +1 -0
- package/dist/bin/tb-env.d.ts +13 -0
- package/dist/bin/tb-env.d.ts.map +1 -0
- package/dist/bin/tb-env.js +26 -0
- package/dist/bin/tb-env.js.map +1 -0
- package/dist/brain/anthropic.d.ts +46 -0
- package/dist/brain/anthropic.d.ts.map +1 -0
- package/dist/brain/anthropic.js +830 -0
- package/dist/brain/anthropic.js.map +1 -0
- package/dist/brain/circuit-breaker.d.ts +46 -0
- package/dist/brain/circuit-breaker.d.ts.map +1 -0
- package/dist/brain/circuit-breaker.js +173 -0
- package/dist/brain/circuit-breaker.js.map +1 -0
- package/dist/brain/degrading.d.ts +98 -0
- package/dist/brain/degrading.d.ts.map +1 -0
- package/dist/brain/degrading.js +249 -0
- package/dist/brain/degrading.js.map +1 -0
- package/dist/brain/errors.d.ts +31 -0
- package/dist/brain/errors.d.ts.map +1 -0
- package/dist/brain/errors.js +58 -0
- package/dist/brain/errors.js.map +1 -0
- package/dist/brain/failover.d.ts +18 -0
- package/dist/brain/failover.d.ts.map +1 -0
- package/dist/brain/failover.js +118 -0
- package/dist/brain/failover.js.map +1 -0
- package/dist/brain/model-presets.d.ts +36 -0
- package/dist/brain/model-presets.d.ts.map +1 -0
- package/dist/brain/model-presets.js +54 -0
- package/dist/brain/model-presets.js.map +1 -0
- package/dist/brain/openai.d.ts +43 -0
- package/dist/brain/openai.d.ts.map +1 -0
- package/dist/brain/openai.js +784 -0
- package/dist/brain/openai.js.map +1 -0
- package/dist/brain/reasoning.d.ts +138 -0
- package/dist/brain/reasoning.d.ts.map +1 -0
- package/dist/brain/reasoning.js +146 -0
- package/dist/brain/reasoning.js.map +1 -0
- package/dist/brain/repetition.d.ts +60 -0
- package/dist/brain/repetition.d.ts.map +1 -0
- package/dist/brain/repetition.js +121 -0
- package/dist/brain/repetition.js.map +1 -0
- package/dist/brain/request-params.d.ts +29 -0
- package/dist/brain/request-params.d.ts.map +1 -0
- package/dist/brain/request-params.js +78 -0
- package/dist/brain/request-params.js.map +1 -0
- package/dist/brain/retry.d.ts +18 -0
- package/dist/brain/retry.d.ts.map +1 -0
- package/dist/brain/retry.js +42 -0
- package/dist/brain/retry.js.map +1 -0
- package/dist/brain/routing.d.ts +19 -0
- package/dist/brain/routing.d.ts.map +1 -0
- package/dist/brain/routing.js +44 -0
- package/dist/brain/routing.js.map +1 -0
- package/dist/brain/status-sink.d.ts +46 -0
- package/dist/brain/status-sink.d.ts.map +1 -0
- package/dist/brain/status-sink.js +36 -0
- package/dist/brain/status-sink.js.map +1 -0
- package/dist/brain/stream-engine.d.ts +85 -0
- package/dist/brain/stream-engine.d.ts.map +1 -0
- package/dist/brain/stream-engine.js +391 -0
- package/dist/brain/stream-engine.js.map +1 -0
- package/dist/brain/timeout.d.ts +44 -0
- package/dist/brain/timeout.d.ts.map +1 -0
- package/dist/brain/timeout.js +41 -0
- package/dist/brain/timeout.js.map +1 -0
- package/dist/brain/tool-call-repair.d.ts +15 -0
- package/dist/brain/tool-call-repair.d.ts.map +1 -0
- package/dist/brain/tool-call-repair.js +67 -0
- package/dist/brain/tool-call-repair.js.map +1 -0
- package/dist/brain/walltime.d.ts +14 -0
- package/dist/brain/walltime.d.ts.map +1 -0
- package/dist/brain/walltime.js +14 -0
- package/dist/brain/walltime.js.map +1 -0
- package/dist/core/arg-summary.d.ts +19 -0
- package/dist/core/arg-summary.d.ts.map +1 -0
- package/dist/core/arg-summary.js +96 -0
- package/dist/core/arg-summary.js.map +1 -0
- package/dist/core/ask-question.d.ts +113 -0
- package/dist/core/ask-question.d.ts.map +1 -0
- package/dist/core/ask-question.js +246 -0
- package/dist/core/ask-question.js.map +1 -0
- package/dist/core/auto-compaction.d.ts +341 -0
- package/dist/core/auto-compaction.d.ts.map +1 -0
- package/dist/core/auto-compaction.js +495 -0
- package/dist/core/auto-compaction.js.map +1 -0
- package/dist/core/auto-promote.d.ts +126 -0
- package/dist/core/auto-promote.d.ts.map +1 -0
- package/dist/core/auto-promote.js +171 -0
- package/dist/core/auto-promote.js.map +1 -0
- package/dist/core/background-shell.d.ts +128 -0
- package/dist/core/background-shell.d.ts.map +1 -0
- package/dist/core/background-shell.js +42 -0
- package/dist/core/background-shell.js.map +1 -0
- package/dist/core/cache-break-detector.d.ts +63 -0
- package/dist/core/cache-break-detector.d.ts.map +1 -0
- package/dist/core/cache-break-detector.js +0 -0
- package/dist/core/cache-break-detector.js.map +1 -0
- package/dist/core/canonical-json.d.ts +45 -0
- package/dist/core/canonical-json.d.ts.map +1 -0
- package/dist/core/canonical-json.js +132 -0
- package/dist/core/canonical-json.js.map +1 -0
- package/dist/core/checkpoint-store.d.ts +1101 -0
- package/dist/core/checkpoint-store.d.ts.map +1 -0
- package/dist/core/checkpoint-store.js +514 -0
- package/dist/core/checkpoint-store.js.map +1 -0
- package/dist/core/consolidate-scope.d.ts +94 -0
- package/dist/core/consolidate-scope.d.ts.map +1 -0
- package/dist/core/consolidate-scope.js +158 -0
- package/dist/core/consolidate-scope.js.map +1 -0
- package/dist/core/context-edit.d.ts +82 -0
- package/dist/core/context-edit.d.ts.map +1 -0
- package/dist/core/context-edit.js +149 -0
- package/dist/core/context-edit.js.map +1 -0
- package/dist/core/context-guard.d.ts +43 -0
- package/dist/core/context-guard.d.ts.map +1 -0
- package/dist/core/context-guard.js +171 -0
- package/dist/core/context-guard.js.map +1 -0
- package/dist/core/dynamic-recall.d.ts +100 -0
- package/dist/core/dynamic-recall.d.ts.map +1 -0
- package/dist/core/dynamic-recall.js +108 -0
- package/dist/core/dynamic-recall.js.map +1 -0
- package/dist/core/exec-gate.d.ts +74 -0
- package/dist/core/exec-gate.d.ts.map +1 -0
- package/dist/core/exec-gate.js +143 -0
- package/dist/core/exec-gate.js.map +1 -0
- package/dist/core/exec-output-tail.d.ts +37 -0
- package/dist/core/exec-output-tail.d.ts.map +1 -0
- package/dist/core/exec-output-tail.js +63 -0
- package/dist/core/exec-output-tail.js.map +1 -0
- package/dist/core/file-snapshot-store.d.ts +137 -0
- package/dist/core/file-snapshot-store.d.ts.map +1 -0
- package/dist/core/file-snapshot-store.js +319 -0
- package/dist/core/file-snapshot-store.js.map +1 -0
- package/dist/core/git-worktree-env.d.ts +41 -0
- package/dist/core/git-worktree-env.d.ts.map +1 -0
- package/dist/core/git-worktree-env.js +64 -0
- package/dist/core/git-worktree-env.js.map +1 -0
- package/dist/core/hooks.d.ts +372 -0
- package/dist/core/hooks.d.ts.map +1 -0
- package/dist/core/hooks.js +269 -0
- package/dist/core/hooks.js.map +1 -0
- package/dist/core/lsp-diagnostics.d.ts +74 -0
- package/dist/core/lsp-diagnostics.d.ts.map +1 -0
- package/dist/core/lsp-diagnostics.js +125 -0
- package/dist/core/lsp-diagnostics.js.map +1 -0
- package/dist/core/lsp-protocol.d.ts +28 -0
- package/dist/core/lsp-protocol.d.ts.map +1 -0
- package/dist/core/lsp-protocol.js +179 -0
- package/dist/core/lsp-protocol.js.map +1 -0
- package/dist/core/lsp-session.d.ts +56 -0
- package/dist/core/lsp-session.d.ts.map +1 -0
- package/dist/core/lsp-session.js +185 -0
- package/dist/core/lsp-session.js.map +1 -0
- package/dist/core/lsp.d.ts +132 -0
- package/dist/core/lsp.d.ts.map +1 -0
- package/dist/core/lsp.js +147 -0
- package/dist/core/lsp.js.map +1 -0
- package/dist/core/mcp.d.ts +294 -0
- package/dist/core/mcp.d.ts.map +1 -0
- package/dist/core/mcp.js +992 -0
- package/dist/core/mcp.js.map +1 -0
- package/dist/core/media-byte-cap.d.ts +34 -0
- package/dist/core/media-byte-cap.d.ts.map +1 -0
- package/dist/core/media-byte-cap.js +76 -0
- package/dist/core/media-byte-cap.js.map +1 -0
- package/dist/core/memory-engine/data-plane.d.ts +103 -0
- package/dist/core/memory-engine/data-plane.d.ts.map +1 -0
- package/dist/core/memory-engine/data-plane.js +272 -0
- package/dist/core/memory-engine/data-plane.js.map +1 -0
- package/dist/core/memory-engine/dual-root.d.ts +40 -0
- package/dist/core/memory-engine/dual-root.d.ts.map +1 -0
- package/dist/core/memory-engine/dual-root.js +95 -0
- package/dist/core/memory-engine/dual-root.js.map +1 -0
- package/dist/core/memory-engine/engine.d.ts +161 -0
- package/dist/core/memory-engine/engine.d.ts.map +1 -0
- package/dist/core/memory-engine/engine.js +1110 -0
- package/dist/core/memory-engine/engine.js.map +1 -0
- package/dist/core/memory-engine/file-backend.d.ts +162 -0
- package/dist/core/memory-engine/file-backend.d.ts.map +1 -0
- package/dist/core/memory-engine/file-backend.js +948 -0
- package/dist/core/memory-engine/file-backend.js.map +1 -0
- package/dist/core/memory-engine/frontmatter.d.ts +24 -0
- package/dist/core/memory-engine/frontmatter.d.ts.map +1 -0
- package/dist/core/memory-engine/frontmatter.js +135 -0
- package/dist/core/memory-engine/frontmatter.js.map +1 -0
- package/dist/core/memory-engine/index.d.ts +13 -0
- package/dist/core/memory-engine/index.d.ts.map +1 -0
- package/dist/core/memory-engine/index.js +28 -0
- package/dist/core/memory-engine/index.js.map +1 -0
- package/dist/core/memory-engine/layout.d.ts +123 -0
- package/dist/core/memory-engine/layout.d.ts.map +1 -0
- package/dist/core/memory-engine/layout.js +643 -0
- package/dist/core/memory-engine/layout.js.map +1 -0
- package/dist/core/memory-engine/memory-backend-contract.d.ts +22 -0
- package/dist/core/memory-engine/memory-backend-contract.d.ts.map +1 -0
- package/dist/core/memory-engine/memory-backend-contract.js +271 -0
- package/dist/core/memory-engine/memory-backend-contract.js.map +1 -0
- package/dist/core/memory-engine/migrate.d.ts +17 -0
- package/dist/core/memory-engine/migrate.d.ts.map +1 -0
- package/dist/core/memory-engine/migrate.js +35 -0
- package/dist/core/memory-engine/migrate.js.map +1 -0
- package/dist/core/memory-engine/scan.d.ts +20 -0
- package/dist/core/memory-engine/scan.d.ts.map +1 -0
- package/dist/core/memory-engine/scan.js +84 -0
- package/dist/core/memory-engine/scan.js.map +1 -0
- package/dist/core/memory-engine/scope-contract.d.ts +104 -0
- package/dist/core/memory-engine/scope-contract.d.ts.map +1 -0
- package/dist/core/memory-engine/scope-contract.js +288 -0
- package/dist/core/memory-engine/scope-contract.js.map +1 -0
- package/dist/core/memory-engine/sync-client.d.ts +100 -0
- package/dist/core/memory-engine/sync-client.d.ts.map +1 -0
- package/dist/core/memory-engine/sync-client.js +328 -0
- package/dist/core/memory-engine/sync-client.js.map +1 -0
- package/dist/core/memory-engine/sync.d.ts +97 -0
- package/dist/core/memory-engine/sync.d.ts.map +1 -0
- package/dist/core/memory-engine/sync.js +91 -0
- package/dist/core/memory-engine/sync.js.map +1 -0
- package/dist/core/memory-engine/types.d.ts +279 -0
- package/dist/core/memory-engine/types.d.ts.map +1 -0
- package/dist/core/memory-engine/types.js +9 -0
- package/dist/core/memory-engine/types.js.map +1 -0
- package/dist/core/memory-recall.d.ts +261 -0
- package/dist/core/memory-recall.d.ts.map +1 -0
- package/dist/core/memory-recall.js +600 -0
- package/dist/core/memory-recall.js.map +1 -0
- package/dist/core/memory-vector.d.ts +24 -0
- package/dist/core/memory-vector.d.ts.map +1 -0
- package/dist/core/memory-vector.js +51 -0
- package/dist/core/memory-vector.js.map +1 -0
- package/dist/core/memory.d.ts +502 -0
- package/dist/core/memory.d.ts.map +1 -0
- package/dist/core/memory.js +881 -0
- package/dist/core/memory.js.map +1 -0
- package/dist/core/message-utils.d.ts +7 -0
- package/dist/core/message-utils.d.ts.map +1 -0
- package/dist/core/message-utils.js +10 -0
- package/dist/core/message-utils.js.map +1 -0
- package/dist/core/oracle-isolation.d.ts +85 -0
- package/dist/core/oracle-isolation.d.ts.map +1 -0
- package/dist/core/oracle-isolation.js +121 -0
- package/dist/core/oracle-isolation.js.map +1 -0
- package/dist/core/permission-rules.d.ts +102 -0
- package/dist/core/permission-rules.d.ts.map +1 -0
- package/dist/core/permission-rules.js +357 -0
- package/dist/core/permission-rules.js.map +1 -0
- package/dist/core/present-plan-tool.d.ts +28 -0
- package/dist/core/present-plan-tool.d.ts.map +1 -0
- package/dist/core/present-plan-tool.js +119 -0
- package/dist/core/present-plan-tool.js.map +1 -0
- package/dist/core/pricing.d.ts +48 -0
- package/dist/core/pricing.d.ts.map +1 -0
- package/dist/core/pricing.js +46 -0
- package/dist/core/pricing.js.map +1 -0
- package/dist/core/property-harness.d.ts +126 -0
- package/dist/core/property-harness.d.ts.map +1 -0
- package/dist/core/property-harness.js +192 -0
- package/dist/core/property-harness.js.map +1 -0
- package/dist/core/push-queue.d.ts +10 -0
- package/dist/core/push-queue.d.ts.map +1 -0
- package/dist/core/push-queue.js +42 -0
- package/dist/core/push-queue.js.map +1 -0
- package/dist/core/remote-env.d.ts +432 -0
- package/dist/core/remote-env.d.ts.map +1 -0
- package/dist/core/remote-env.js +77 -0
- package/dist/core/remote-env.js.map +1 -0
- package/dist/core/roles.d.ts +74 -0
- package/dist/core/roles.d.ts.map +1 -0
- package/dist/core/roles.js +272 -0
- package/dist/core/roles.js.map +1 -0
- package/dist/core/runner/active-skill-scope.d.ts +64 -0
- package/dist/core/runner/active-skill-scope.d.ts.map +1 -0
- package/dist/core/runner/active-skill-scope.js +197 -0
- package/dist/core/runner/active-skill-scope.js.map +1 -0
- package/dist/core/runner/assemble-result.d.ts +191 -0
- package/dist/core/runner/assemble-result.d.ts.map +1 -0
- package/dist/core/runner/assemble-result.js +250 -0
- package/dist/core/runner/assemble-result.js.map +1 -0
- package/dist/core/runner/call-cap.d.ts +130 -0
- package/dist/core/runner/call-cap.d.ts.map +1 -0
- package/dist/core/runner/call-cap.js +151 -0
- package/dist/core/runner/call-cap.js.map +1 -0
- package/dist/core/runner/grounding-signal.d.ts +12 -0
- package/dist/core/runner/grounding-signal.d.ts.map +1 -0
- package/dist/core/runner/grounding-signal.js +94 -0
- package/dist/core/runner/grounding-signal.js.map +1 -0
- package/dist/core/runner/image.d.ts +23 -0
- package/dist/core/runner/image.d.ts.map +1 -0
- package/dist/core/runner/image.js +151 -0
- package/dist/core/runner/image.js.map +1 -0
- package/dist/core/runner/memory-consolidation.d.ts +112 -0
- package/dist/core/runner/memory-consolidation.d.ts.map +1 -0
- package/dist/core/runner/memory-consolidation.js +372 -0
- package/dist/core/runner/memory-consolidation.js.map +1 -0
- package/dist/core/runner/prepare-task.d.ts +583 -0
- package/dist/core/runner/prepare-task.d.ts.map +1 -0
- package/dist/core/runner/prepare-task.js +3612 -0
- package/dist/core/runner/prepare-task.js.map +1 -0
- package/dist/core/runner/prompt-suggestions.d.ts +33 -0
- package/dist/core/runner/prompt-suggestions.d.ts.map +1 -0
- package/dist/core/runner/prompt-suggestions.js +116 -0
- package/dist/core/runner/prompt-suggestions.js.map +1 -0
- package/dist/core/runner/runtask.d.ts +274 -0
- package/dist/core/runner/runtask.d.ts.map +1 -0
- package/dist/core/runner/runtask.js +4606 -0
- package/dist/core/runner/runtask.js.map +1 -0
- package/dist/core/runner/session-rule-policy.d.ts +28 -0
- package/dist/core/runner/session-rule-policy.d.ts.map +1 -0
- package/dist/core/runner/session-rule-policy.js +110 -0
- package/dist/core/runner/session-rule-policy.js.map +1 -0
- package/dist/core/runner/strict-output-schema.d.ts +36 -0
- package/dist/core/runner/strict-output-schema.d.ts.map +1 -0
- package/dist/core/runner/strict-output-schema.js +365 -0
- package/dist/core/runner/strict-output-schema.js.map +1 -0
- package/dist/core/runner/synthetic-tools.d.ts +72 -0
- package/dist/core/runner/synthetic-tools.d.ts.map +1 -0
- package/dist/core/runner/synthetic-tools.js +203 -0
- package/dist/core/runner/synthetic-tools.js.map +1 -0
- package/dist/core/runner/tool-disclosure.d.ts +117 -0
- package/dist/core/runner/tool-disclosure.d.ts.map +1 -0
- package/dist/core/runner/tool-disclosure.js +0 -0
- package/dist/core/runner/tool-disclosure.js.map +1 -0
- package/dist/core/runner/turn-attachments.d.ts +381 -0
- package/dist/core/runner/turn-attachments.d.ts.map +1 -0
- package/dist/core/runner/turn-attachments.js +596 -0
- package/dist/core/runner/turn-attachments.js.map +1 -0
- package/dist/core/runner/usage-accounting.d.ts +35 -0
- package/dist/core/runner/usage-accounting.d.ts.map +1 -0
- package/dist/core/runner/usage-accounting.js +45 -0
- package/dist/core/runner/usage-accounting.js.map +1 -0
- package/dist/core/runtime.d.ts +9 -0
- package/dist/core/runtime.d.ts.map +1 -0
- package/dist/core/runtime.js +17 -0
- package/dist/core/runtime.js.map +1 -0
- package/dist/core/safety-axis-vocab.d.ts +33 -0
- package/dist/core/safety-axis-vocab.d.ts.map +1 -0
- package/dist/core/safety-axis-vocab.js +35 -0
- package/dist/core/safety-axis-vocab.js.map +1 -0
- package/dist/core/safety-merge-corpus.d.ts +48 -0
- package/dist/core/safety-merge-corpus.d.ts.map +1 -0
- package/dist/core/safety-merge-corpus.js +203 -0
- package/dist/core/safety-merge-corpus.js.map +1 -0
- package/dist/core/scheduler.d.ts +126 -0
- package/dist/core/scheduler.d.ts.map +1 -0
- package/dist/core/scheduler.js +54 -0
- package/dist/core/scheduler.js.map +1 -0
- package/dist/core/secret-env.d.ts +23 -0
- package/dist/core/secret-env.d.ts.map +1 -0
- package/dist/core/secret-env.js +35 -0
- package/dist/core/secret-env.js.map +1 -0
- package/dist/core/select-model.d.ts +26 -0
- package/dist/core/select-model.d.ts.map +1 -0
- package/dist/core/select-model.js +58 -0
- package/dist/core/select-model.js.map +1 -0
- package/dist/core/sensitive-path-policy.d.ts +24 -0
- package/dist/core/sensitive-path-policy.d.ts.map +1 -0
- package/dist/core/sensitive-path-policy.js +96 -0
- package/dist/core/sensitive-path-policy.js.map +1 -0
- package/dist/core/session-policy-store.d.ts +102 -0
- package/dist/core/session-policy-store.d.ts.map +1 -0
- package/dist/core/session-policy-store.js +177 -0
- package/dist/core/session-policy-store.js.map +1 -0
- package/dist/core/session-reconcile.d.ts +63 -0
- package/dist/core/session-reconcile.d.ts.map +1 -0
- package/dist/core/session-reconcile.js +71 -0
- package/dist/core/session-reconcile.js.map +1 -0
- package/dist/core/session-store.d.ts +99 -0
- package/dist/core/session-store.d.ts.map +1 -0
- package/dist/core/session-store.js +298 -0
- package/dist/core/session-store.js.map +1 -0
- package/dist/core/session.d.ts +144 -0
- package/dist/core/session.d.ts.map +1 -0
- package/dist/core/session.js +56 -0
- package/dist/core/session.js.map +1 -0
- package/dist/core/spec-contract.d.ts +147 -0
- package/dist/core/spec-contract.d.ts.map +1 -0
- package/dist/core/spec-contract.js +340 -0
- package/dist/core/spec-contract.js.map +1 -0
- package/dist/core/strategy-store.d.ts +50 -0
- package/dist/core/strategy-store.d.ts.map +1 -0
- package/dist/core/strategy-store.js +100 -0
- package/dist/core/strategy-store.js.map +1 -0
- package/dist/core/stub-env.d.ts +35 -0
- package/dist/core/stub-env.d.ts.map +1 -0
- package/dist/core/stub-env.js +69 -0
- package/dist/core/stub-env.js.map +1 -0
- package/dist/core/task-notification.d.ts +115 -0
- package/dist/core/task-notification.d.ts.map +1 -0
- package/dist/core/task-notification.js +247 -0
- package/dist/core/task-notification.js.map +1 -0
- package/dist/core/task-outcome.d.ts +80 -0
- package/dist/core/task-outcome.d.ts.map +1 -0
- package/dist/core/task-outcome.js +40 -0
- package/dist/core/task-outcome.js.map +1 -0
- package/dist/core/task-registry.d.ts +349 -0
- package/dist/core/task-registry.d.ts.map +1 -0
- package/dist/core/task-registry.js +1751 -0
- package/dist/core/task-registry.js.map +1 -0
- package/dist/core/tighten-task-spec.d.ts +27 -0
- package/dist/core/tighten-task-spec.d.ts.map +1 -0
- package/dist/core/tighten-task-spec.js +95 -0
- package/dist/core/tighten-task-spec.js.map +1 -0
- package/dist/core/tool-detach.d.ts +31 -0
- package/dist/core/tool-detach.d.ts.map +1 -0
- package/dist/core/tool-detach.js +62 -0
- package/dist/core/tool-detach.js.map +1 -0
- package/dist/core/tool-errors.d.ts +72 -0
- package/dist/core/tool-errors.d.ts.map +1 -0
- package/dist/core/tool-errors.js +194 -0
- package/dist/core/tool-errors.js.map +1 -0
- package/dist/core/tool-name-aliases.d.ts +5 -0
- package/dist/core/tool-name-aliases.d.ts.map +1 -0
- package/dist/core/tool-name-aliases.js +130 -0
- package/dist/core/tool-name-aliases.js.map +1 -0
- package/dist/core/tool-policy.d.ts +295 -0
- package/dist/core/tool-policy.d.ts.map +1 -0
- package/dist/core/tool-policy.js +567 -0
- package/dist/core/tool-policy.js.map +1 -0
- package/dist/core/tool-result-budget.d.ts +44 -0
- package/dist/core/tool-result-budget.d.ts.map +1 -0
- package/dist/core/tool-result-budget.js +140 -0
- package/dist/core/tool-result-budget.js.map +1 -0
- package/dist/core/tool-result-store.d.ts +136 -0
- package/dist/core/tool-result-store.d.ts.map +1 -0
- package/dist/core/tool-result-store.js +219 -0
- package/dist/core/tool-result-store.js.map +1 -0
- package/dist/core/tools.d.ts +14 -0
- package/dist/core/tools.d.ts.map +1 -0
- package/dist/core/tools.js +98 -0
- package/dist/core/tools.js.map +1 -0
- package/dist/core/trace.d.ts +340 -0
- package/dist/core/trace.d.ts.map +1 -0
- package/dist/core/trace.js +12 -0
- package/dist/core/trace.js.map +1 -0
- package/dist/core/types.d.ts +2828 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +2 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/untrusted-egress.d.ts +32 -0
- package/dist/core/untrusted-egress.d.ts.map +1 -0
- package/dist/core/untrusted-egress.js +49 -0
- package/dist/core/untrusted-egress.js.map +1 -0
- package/dist/core/untrusted-text.d.ts +64 -0
- package/dist/core/untrusted-text.d.ts.map +1 -0
- package/dist/core/untrusted-text.js +119 -0
- package/dist/core/untrusted-text.js.map +1 -0
- package/dist/core/warm-resume.d.ts +23 -0
- package/dist/core/warm-resume.d.ts.map +1 -0
- package/dist/core/warm-resume.js +28 -0
- package/dist/core/warm-resume.js.map +1 -0
- package/dist/core/with-retry.d.ts +43 -0
- package/dist/core/with-retry.d.ts.map +1 -0
- package/dist/core/with-retry.js +59 -0
- package/dist/core/with-retry.js.map +1 -0
- package/dist/core/workflow-journal-store.d.ts +44 -0
- package/dist/core/workflow-journal-store.d.ts.map +1 -0
- package/dist/core/workflow-journal-store.js +47 -0
- package/dist/core/workflow-journal-store.js.map +1 -0
- package/dist/core/workflow-run-store-contract.d.ts +31 -0
- package/dist/core/workflow-run-store-contract.d.ts.map +1 -0
- package/dist/core/workflow-run-store-contract.js +191 -0
- package/dist/core/workflow-run-store-contract.js.map +1 -0
- package/dist/core/workflow-run-store.d.ts +149 -0
- package/dist/core/workflow-run-store.d.ts.map +1 -0
- package/dist/core/workflow-run-store.js +110 -0
- package/dist/core/workflow-run-store.js.map +1 -0
- package/dist/engine/compaction/compaction.d.ts +139 -0
- package/dist/engine/compaction/compaction.d.ts.map +1 -0
- package/dist/engine/compaction/compaction.js +1030 -0
- package/dist/engine/compaction/compaction.js.map +1 -0
- package/dist/engine/compaction/utils.d.ts +45 -0
- package/dist/engine/compaction/utils.d.ts.map +1 -0
- package/dist/engine/compaction/utils.js +203 -0
- package/dist/engine/compaction/utils.js.map +1 -0
- package/dist/engine/execution-env/kill-tree.d.ts +20 -0
- package/dist/engine/execution-env/kill-tree.d.ts.map +1 -0
- package/dist/engine/execution-env/kill-tree.js +183 -0
- package/dist/engine/execution-env/kill-tree.js.map +1 -0
- package/dist/engine/execution-env/node-execution-env.d.ts +133 -0
- package/dist/engine/execution-env/node-execution-env.d.ts.map +1 -0
- package/dist/engine/execution-env/node-execution-env.js +1031 -0
- package/dist/engine/execution-env/node-execution-env.js.map +1 -0
- package/dist/engine/harness/agent-harness.d.ts +174 -0
- package/dist/engine/harness/agent-harness.d.ts.map +1 -0
- package/dist/engine/harness/agent-harness.js +1053 -0
- package/dist/engine/harness/agent-harness.js.map +1 -0
- package/dist/engine/harness/messages.d.ts +17 -0
- package/dist/engine/harness/messages.d.ts.map +1 -0
- package/dist/engine/harness/messages.js +122 -0
- package/dist/engine/harness/messages.js.map +1 -0
- package/dist/engine/harness/types.d.ts +713 -0
- package/dist/engine/harness/types.d.ts.map +1 -0
- package/dist/engine/harness/types.js +100 -0
- package/dist/engine/harness/types.js.map +1 -0
- package/dist/engine/llm/diagnostics.d.ts +23 -0
- package/dist/engine/llm/diagnostics.d.ts.map +1 -0
- package/dist/engine/llm/diagnostics.js +32 -0
- package/dist/engine/llm/diagnostics.js.map +1 -0
- package/dist/engine/llm/event-stream.d.ts +25 -0
- package/dist/engine/llm/event-stream.d.ts.map +1 -0
- package/dist/engine/llm/event-stream.js +103 -0
- package/dist/engine/llm/event-stream.js.map +1 -0
- package/dist/engine/llm/index.d.ts +12 -0
- package/dist/engine/llm/index.d.ts.map +1 -0
- package/dist/engine/llm/index.js +12 -0
- package/dist/engine/llm/index.js.map +1 -0
- package/dist/engine/llm/types.d.ts +753 -0
- package/dist/engine/llm/types.d.ts.map +1 -0
- package/dist/engine/llm/types.js +2 -0
- package/dist/engine/llm/types.js.map +1 -0
- package/dist/engine/llm/validation.d.ts +8 -0
- package/dist/engine/llm/validation.d.ts.map +1 -0
- package/dist/engine/llm/validation.js +318 -0
- package/dist/engine/llm/validation.js.map +1 -0
- package/dist/engine/loop/agent-loop.d.ts +74 -0
- package/dist/engine/loop/agent-loop.d.ts.map +1 -0
- package/dist/engine/loop/agent-loop.js +1490 -0
- package/dist/engine/loop/agent-loop.js.map +1 -0
- package/dist/engine/loop/runtime-deps.d.ts +17 -0
- package/dist/engine/loop/runtime-deps.d.ts.map +1 -0
- package/dist/engine/loop/runtime-deps.js +21 -0
- package/dist/engine/loop/runtime-deps.js.map +1 -0
- package/dist/engine/loop/types.d.ts +609 -0
- package/dist/engine/loop/types.d.ts.map +1 -0
- package/dist/engine/loop/types.js +2 -0
- package/dist/engine/loop/types.js.map +1 -0
- package/dist/engine/lsp/frame-decoder.d.ts +16 -0
- package/dist/engine/lsp/frame-decoder.d.ts.map +1 -0
- package/dist/engine/lsp/frame-decoder.js +53 -0
- package/dist/engine/lsp/frame-decoder.js.map +1 -0
- package/dist/engine/lsp/node-lsp-manager.d.ts +105 -0
- package/dist/engine/lsp/node-lsp-manager.d.ts.map +1 -0
- package/dist/engine/lsp/node-lsp-manager.js +343 -0
- package/dist/engine/lsp/node-lsp-manager.js.map +1 -0
- package/dist/engine/lsp/stdio-lsp-transport.d.ts +37 -0
- package/dist/engine/lsp/stdio-lsp-transport.d.ts.map +1 -0
- package/dist/engine/lsp/stdio-lsp-transport.js +185 -0
- package/dist/engine/lsp/stdio-lsp-transport.js.map +1 -0
- package/dist/engine/session/import-validate.d.ts +44 -0
- package/dist/engine/session/import-validate.d.ts.map +1 -0
- package/dist/engine/session/import-validate.js +92 -0
- package/dist/engine/session/import-validate.js.map +1 -0
- package/dist/engine/session/memory-repo.d.ts +25 -0
- package/dist/engine/session/memory-repo.d.ts.map +1 -0
- package/dist/engine/session/memory-repo.js +59 -0
- package/dist/engine/session/memory-repo.js.map +1 -0
- package/dist/engine/session/memory-storage.d.ts +14 -0
- package/dist/engine/session/memory-storage.d.ts.map +1 -0
- package/dist/engine/session/memory-storage.js +17 -0
- package/dist/engine/session/memory-storage.js.map +1 -0
- package/dist/engine/session/repo-utils.d.ts +11 -0
- package/dist/engine/session/repo-utils.d.ts.map +1 -0
- package/dist/engine/session/repo-utils.js +40 -0
- package/dist/engine/session/repo-utils.js.map +1 -0
- package/dist/engine/session/session.d.ts +34 -0
- package/dist/engine/session/session.d.ts.map +1 -0
- package/dist/engine/session/session.js +227 -0
- package/dist/engine/session/session.js.map +1 -0
- package/dist/engine/session/storage-base.d.ts +38 -0
- package/dist/engine/session/storage-base.d.ts.map +1 -0
- package/dist/engine/session/storage-base.js +157 -0
- package/dist/engine/session/storage-base.js.map +1 -0
- package/dist/engine/session/timestamps.d.ts +3 -0
- package/dist/engine/session/timestamps.d.ts.map +1 -0
- package/dist/engine/session/timestamps.js +15 -0
- package/dist/engine/session/timestamps.js.map +1 -0
- package/dist/engine/session/uuid.d.ts +2 -0
- package/dist/engine/session/uuid.d.ts.map +1 -0
- package/dist/engine/session/uuid.js +50 -0
- package/dist/engine/session/uuid.js.map +1 -0
- package/dist/index.d.ts +160 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +374 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/harness.d.ts +26 -0
- package/dist/internal/harness.d.ts.map +1 -0
- package/dist/internal/harness.js +24 -0
- package/dist/internal/harness.js.map +1 -0
- package/dist/internal/llm.d.ts +9 -0
- package/dist/internal/llm.d.ts.map +1 -0
- package/dist/internal/llm.js +8 -0
- package/dist/internal/llm.js.map +1 -0
- package/dist/orchestration/builtin-workflows.d.ts +44 -0
- package/dist/orchestration/builtin-workflows.d.ts.map +1 -0
- package/dist/orchestration/builtin-workflows.js +165 -0
- package/dist/orchestration/builtin-workflows.js.map +1 -0
- package/dist/orchestration/dev-vm-script-runner.d.ts +24 -0
- package/dist/orchestration/dev-vm-script-runner.d.ts.map +1 -0
- package/dist/orchestration/dev-vm-script-runner.js +106 -0
- package/dist/orchestration/dev-vm-script-runner.js.map +1 -0
- package/dist/orchestration/goal.d.ts +97 -0
- package/dist/orchestration/goal.d.ts.map +1 -0
- package/dist/orchestration/goal.js +248 -0
- package/dist/orchestration/goal.js.map +1 -0
- package/dist/orchestration/run-spec.d.ts +63 -0
- package/dist/orchestration/run-spec.d.ts.map +1 -0
- package/dist/orchestration/run-spec.js +274 -0
- package/dist/orchestration/run-spec.js.map +1 -0
- package/dist/orchestration/run-workflow-tool.d.ts +187 -0
- package/dist/orchestration/run-workflow-tool.d.ts.map +1 -0
- package/dist/orchestration/run-workflow-tool.js +612 -0
- package/dist/orchestration/run-workflow-tool.js.map +1 -0
- package/dist/orchestration/workflow-governance.d.ts +70 -0
- package/dist/orchestration/workflow-governance.d.ts.map +1 -0
- package/dist/orchestration/workflow-governance.js +176 -0
- package/dist/orchestration/workflow-governance.js.map +1 -0
- package/dist/orchestration/workflow-meta.d.ts +41 -0
- package/dist/orchestration/workflow-meta.d.ts.map +1 -0
- package/dist/orchestration/workflow-meta.js +426 -0
- package/dist/orchestration/workflow-meta.js.map +1 -0
- package/dist/orchestration/workflow-observe.d.ts +77 -0
- package/dist/orchestration/workflow-observe.d.ts.map +1 -0
- package/dist/orchestration/workflow-observe.js +177 -0
- package/dist/orchestration/workflow-observe.js.map +1 -0
- package/dist/orchestration/workflow-primitives.d.ts +31 -0
- package/dist/orchestration/workflow-primitives.d.ts.map +1 -0
- package/dist/orchestration/workflow-primitives.js +104 -0
- package/dist/orchestration/workflow-primitives.js.map +1 -0
- package/dist/orchestration/workflow-sandbox-conformance.d.ts +34 -0
- package/dist/orchestration/workflow-sandbox-conformance.d.ts.map +1 -0
- package/dist/orchestration/workflow-sandbox-conformance.js +301 -0
- package/dist/orchestration/workflow-sandbox-conformance.js.map +1 -0
- package/dist/orchestration/workflow-script-runner.d.ts +127 -0
- package/dist/orchestration/workflow-script-runner.d.ts.map +1 -0
- package/dist/orchestration/workflow-script-runner.js +48 -0
- package/dist/orchestration/workflow-script-runner.js.map +1 -0
- package/dist/orchestration/workflow-script-store.d.ts +99 -0
- package/dist/orchestration/workflow-script-store.d.ts.map +1 -0
- package/dist/orchestration/workflow-script-store.js +133 -0
- package/dist/orchestration/workflow-script-store.js.map +1 -0
- package/dist/orchestration/workflow-size-guideline.d.ts +50 -0
- package/dist/orchestration/workflow-size-guideline.d.ts.map +1 -0
- package/dist/orchestration/workflow-size-guideline.js +78 -0
- package/dist/orchestration/workflow-size-guideline.js.map +1 -0
- package/dist/orchestration/workflow.d.ts +624 -0
- package/dist/orchestration/workflow.d.ts.map +1 -0
- package/dist/orchestration/workflow.js +1596 -0
- package/dist/orchestration/workflow.js.map +1 -0
- package/dist/prompts/default.d.ts +474 -0
- package/dist/prompts/default.d.ts.map +1 -0
- package/dist/prompts/default.js +676 -0
- package/dist/prompts/default.js.map +1 -0
- package/dist/prompts/supervisor.d.ts +60 -0
- package/dist/prompts/supervisor.d.ts.map +1 -0
- package/dist/prompts/supervisor.js +162 -0
- package/dist/prompts/supervisor.js.map +1 -0
- package/dist/scenarios/env.d.ts +41 -0
- package/dist/scenarios/env.d.ts.map +1 -0
- package/dist/scenarios/env.js +65 -0
- package/dist/scenarios/env.js.map +1 -0
- package/dist/scenarios/full-body.d.ts +47 -0
- package/dist/scenarios/full-body.d.ts.map +1 -0
- package/dist/scenarios/full-body.js +36 -0
- package/dist/scenarios/full-body.js.map +1 -0
- package/dist/scenarios/scenario-registry.d.ts +107 -0
- package/dist/scenarios/scenario-registry.d.ts.map +1 -0
- package/dist/scenarios/scenario-registry.js +192 -0
- package/dist/scenarios/scenario-registry.js.map +1 -0
- package/dist/scenarios/teacher-quickstart.d.ts +41 -0
- package/dist/scenarios/teacher-quickstart.d.ts.map +1 -0
- package/dist/scenarios/teacher-quickstart.js +32 -0
- package/dist/scenarios/teacher-quickstart.js.map +1 -0
- package/dist/server/http.d.ts +36 -0
- package/dist/server/http.d.ts.map +1 -0
- package/dist/server/http.js +144 -0
- package/dist/server/http.js.map +1 -0
- package/dist/stores/file/checkpoint-store.d.ts +62 -0
- package/dist/stores/file/checkpoint-store.d.ts.map +1 -0
- package/dist/stores/file/checkpoint-store.js +250 -0
- package/dist/stores/file/checkpoint-store.js.map +1 -0
- package/dist/stores/file/file-snapshot-store.d.ts +43 -0
- package/dist/stores/file/file-snapshot-store.d.ts.map +1 -0
- package/dist/stores/file/file-snapshot-store.js +374 -0
- package/dist/stores/file/file-snapshot-store.js.map +1 -0
- package/dist/stores/file/fs-atomic.d.ts +95 -0
- package/dist/stores/file/fs-atomic.d.ts.map +1 -0
- package/dist/stores/file/fs-atomic.js +415 -0
- package/dist/stores/file/fs-atomic.js.map +1 -0
- package/dist/stores/file/index.d.ts +98 -0
- package/dist/stores/file/index.d.ts.map +1 -0
- package/dist/stores/file/index.js +109 -0
- package/dist/stores/file/index.js.map +1 -0
- package/dist/stores/file/memory-store.d.ts +95 -0
- package/dist/stores/file/memory-store.d.ts.map +1 -0
- package/dist/stores/file/memory-store.js +393 -0
- package/dist/stores/file/memory-store.js.map +1 -0
- package/dist/stores/file/session-policy-store.d.ts +24 -0
- package/dist/stores/file/session-policy-store.d.ts.map +1 -0
- package/dist/stores/file/session-policy-store.js +123 -0
- package/dist/stores/file/session-policy-store.js.map +1 -0
- package/dist/stores/file/session-store.d.ts +34 -0
- package/dist/stores/file/session-store.d.ts.map +1 -0
- package/dist/stores/file/session-store.js +175 -0
- package/dist/stores/file/session-store.js.map +1 -0
- package/dist/stores/file/tool-result-store.d.ts +23 -0
- package/dist/stores/file/tool-result-store.d.ts.map +1 -0
- package/dist/stores/file/tool-result-store.js +61 -0
- package/dist/stores/file/tool-result-store.js.map +1 -0
- package/dist/stores/file/workflow-journal-store.d.ts +36 -0
- package/dist/stores/file/workflow-journal-store.d.ts.map +1 -0
- package/dist/stores/file/workflow-journal-store.js +157 -0
- package/dist/stores/file/workflow-journal-store.js.map +1 -0
- package/dist/stores/file/workflow-run-store.d.ts +58 -0
- package/dist/stores/file/workflow-run-store.d.ts.map +1 -0
- package/dist/stores/file/workflow-run-store.js +178 -0
- package/dist/stores/file/workflow-run-store.js.map +1 -0
- package/dist/stores/pg.d.ts +210 -0
- package/dist/stores/pg.d.ts.map +1 -0
- package/dist/stores/pg.js +652 -0
- package/dist/stores/pg.js.map +1 -0
- package/dist/tools/fs/encoding.d.ts +51 -0
- package/dist/tools/fs/encoding.d.ts.map +1 -0
- package/dist/tools/fs/encoding.js +74 -0
- package/dist/tools/fs/encoding.js.map +1 -0
- package/dist/tools/fs/gh-rate-limit.d.ts +19 -0
- package/dist/tools/fs/gh-rate-limit.d.ts.map +1 -0
- package/dist/tools/fs/gh-rate-limit.js +35 -0
- package/dist/tools/fs/gh-rate-limit.js.map +1 -0
- package/dist/tools/fs/index.d.ts +246 -0
- package/dist/tools/fs/index.d.ts.map +1 -0
- package/dist/tools/fs/index.js +2130 -0
- package/dist/tools/fs/index.js.map +1 -0
- package/dist/tools/fs/pdf.d.ts +106 -0
- package/dist/tools/fs/pdf.d.ts.map +1 -0
- package/dist/tools/fs/pdf.js +178 -0
- package/dist/tools/fs/pdf.js.map +1 -0
- package/dist/tools/fs/repo-map.d.ts +15 -0
- package/dist/tools/fs/repo-map.d.ts.map +1 -0
- package/dist/tools/fs/repo-map.js +251 -0
- package/dist/tools/fs/repo-map.js.map +1 -0
- package/dist/tools/fs/safety.d.ts +168 -0
- package/dist/tools/fs/safety.d.ts.map +1 -0
- package/dist/tools/fs/safety.js +479 -0
- package/dist/tools/fs/safety.js.map +1 -0
- package/dist/tools/fs/search.d.ts +118 -0
- package/dist/tools/fs/search.d.ts.map +1 -0
- package/dist/tools/fs/search.js +650 -0
- package/dist/tools/fs/search.js.map +1 -0
- package/dist/tools/gitea-issue.d.ts +39 -0
- package/dist/tools/gitea-issue.d.ts.map +1 -0
- package/dist/tools/gitea-issue.js +91 -0
- package/dist/tools/gitea-issue.js.map +1 -0
- package/dist/tools/monitor.d.ts +64 -0
- package/dist/tools/monitor.d.ts.map +1 -0
- package/dist/tools/monitor.js +135 -0
- package/dist/tools/monitor.js.map +1 -0
- package/dist/tools/scheduler-tools.d.ts +48 -0
- package/dist/tools/scheduler-tools.d.ts.map +1 -0
- package/dist/tools/scheduler-tools.js +449 -0
- package/dist/tools/scheduler-tools.js.map +1 -0
- package/dist/tools/sql-adapters.d.ts +32 -0
- package/dist/tools/sql-adapters.d.ts.map +1 -0
- package/dist/tools/sql-adapters.js +31 -0
- package/dist/tools/sql-adapters.js.map +1 -0
- package/dist/tools/sql.d.ts +36 -0
- package/dist/tools/sql.d.ts.map +1 -0
- package/dist/tools/sql.js +131 -0
- package/dist/tools/sql.js.map +1 -0
- package/dist/tools/task-list.d.ts +26 -0
- package/dist/tools/task-list.d.ts.map +1 -0
- package/dist/tools/task-list.js +352 -0
- package/dist/tools/task-list.js.map +1 -0
- package/dist/tools/todo.d.ts +11 -0
- package/dist/tools/todo.d.ts.map +1 -0
- package/dist/tools/todo.js +126 -0
- package/dist/tools/todo.js.map +1 -0
- package/dist/tools/web.d.ts +59 -0
- package/dist/tools/web.d.ts.map +1 -0
- package/dist/tools/web.js +607 -0
- package/dist/tools/web.js.map +1 -0
- package/dist/tools/worktree.d.ts +88 -0
- package/dist/tools/worktree.d.ts.map +1 -0
- package/dist/tools/worktree.js +434 -0
- package/dist/tools/worktree.js.map +1 -0
- package/docs/A1-ATTRIBUTION-ROUND1-2026-07-09.md +181 -0
- package/docs/AB-ORACLE-GATE-VERDICT-2026-07-10.md +100 -0
- package/docs/ANCHOR-GAP-INVENTORY-2026-07-09.md +143 -0
- package/docs/ARCHITECTURE.md +125 -0
- package/docs/BUGHUNT-2026-07-05-NIGHT.md +98 -0
- package/docs/BUILD.md +63 -0
- package/docs/CANCEL-ASYNC-ATTRIBUTION-2026-07-09.md +98 -0
- package/docs/CC-198-VS-201-DRIFT-2026-07-09.md +70 -0
- package/docs/CC-BASELINE-FAKE-ZERO-AUDIT-2026-07-09.md +51 -0
- package/docs/CC-DRIFT-198-206-AGENT-TYPES-2026-07-10.md +82 -0
- package/docs/CC-DRIFT-198-206-CHANGELOG-2026-07-10.md +82 -0
- package/docs/CC-DRIFT-198-206-REMINDERS-2026-07-10.md +96 -0
- package/docs/CC-DRIFT-198-206-ROADMAP-2026-07-10.md +110 -0
- package/docs/CC-DRIFT-198-206-TOOL-INVENTORY-2026-07-10.md +53 -0
- package/docs/CC-DRIFT-198-206-USAGE-CONSTANTS-2026-07-10.md +64 -0
- package/docs/CC-DRIFT-198-206-WORKFLOW-2026-07-10.md +83 -0
- package/docs/CC-PARITY-CHECKLIST.md +220 -0
- package/docs/CC-PARITY-DEEP-SWEEP-2026-07-07.md +149 -0
- package/docs/CC-SUBAGENT-PROMPT-STUDY-2026-07-09.md +219 -0
- package/docs/CC-TASK-REMINDER-CADENCE-STUDY-2026-07-09.md +396 -0
- package/docs/CC-TOOL-PARITY-SWEEP-2026-07.md +56 -0
- package/docs/CC-TOOL-PROMPT-DEEP-DIFF-2026-07-08.md +274 -0
- package/docs/CC-TOOLSURFACE-DEEP-DIVE-2026-07-07.md +197 -0
- package/docs/CC206-OBSERVER-ANCHORS-2026-07-11.md +463 -0
- package/docs/CC207-CORE-SWEEP-BACKLOG-2026-07-12.md +155 -0
- package/docs/CENTER-CONTROL-PLANE-SEAM.md +86 -0
- package/docs/CLEANUP-CONTRACT-ANCHOR-2026-07-09.md +83 -0
- package/docs/COLD-START-RSI-2026-07-09.md +72 -0
- package/docs/COMPACTION-LIVE-AUDIT-2026-07-09.md +114 -0
- package/docs/CONTEXT-lifecycle-extension-points-and-stop-attribution.md +71 -0
- package/docs/COREWARS-POLYGLOT-TRIAGE-2026-07-09.md +85 -0
- package/docs/DEADTARGET-OVERFULL-HBOX-2026-07-10.md +92 -0
- package/docs/DEADTARGET-PATH-TRACING-REVERSE-2026-07-10.md +87 -0
- package/docs/DEADTARGET-WINNING-AVG-COREWARS-2026-07-10.md +96 -0
- package/docs/DEEPSEEK-API-LIMITS-PROBE-2026-07-09.md +118 -0
- package/docs/DESIGN-140-MOCK-VERIFY-2026-07-11.md +79 -0
- package/docs/DESIGN-140-VERIFICATION-2026-07-11.md +43 -0
- package/docs/DESIGN-DRAFT-workflow-collab-2026-07-11.md +56 -0
- package/docs/DESIGN-ORACLE-GROUNDING-GATE-2026-07-10.md +167 -0
- package/docs/DESIGN-TFRAG-RECONCILE-SCAFFOLD-2026-07-09.md +102 -0
- package/docs/EXP-PA2-PE-DESIGN-2026-07-11.md +220 -0
- package/docs/EXT-DOGFOOD-2026-07-12.md +50 -0
- package/docs/FINAL-VERIFY-SURFACE-AUDIT-2026-07-09.md +44 -0
- package/docs/FRAG-RECON-INVESTIGATION-2026-07-09.md +183 -0
- package/docs/HANDOFF.md +121 -0
- package/docs/KNOWN-ISSUES.md +96 -0
- package/docs/LEGW-WINDOW-TAX-2026-07-10.md +82 -0
- package/docs/LIVE-PROBE-BATCH-2026-07-11.md +207 -0
- package/docs/M2-CERT-ATTRIBUTION-2026-07-10.md +61 -0
- package/docs/M25-LEG-VARIANCE-ATTRIBUTION-2026-07-10.md +81 -0
- package/docs/MAILMAN-TIMEOUT-ATTRIBUTION-2026-07-10.md +88 -0
- package/docs/MEMORY-BACKEND-DIALECT-NOTES.md +69 -0
- package/docs/MTEB-ESCAPE-HATCH-ATTRIBUTION-2026-07-09.md +57 -0
- package/docs/MTEB-LEADERBOARD-ATTRIBUTION-2026-07-10.md +134 -0
- package/docs/ORACLE-GATE-NEGATIVE-SAMPLE-2026-07-11.md +28 -0
- package/docs/PARITY-CONTEXT-TRANSACTIONS-2026-07-10.md +67 -0
- package/docs/PARITY-PROGRESS-MATRIX-2026-07-10.md +37 -0
- package/docs/PARITY-SPOT-AGENT-TYPES-2026-07-10.md +70 -0
- package/docs/PARITY-SPOT-REMINDERS-2026-07-10.md +144 -0
- package/docs/PARITY-SPOT-TOOL-INVENTORY-2026-07-10.md +61 -0
- package/docs/PARITY-SPOT-USAGE-CONSTANTS-2026-07-10.md +95 -0
- package/docs/PARITY-SPOT-WORKFLOW-2026-07-10.md +93 -0
- package/docs/PASSWORD-RECOVERY-PANEL-VERDICT-2026-07-10.md +62 -0
- package/docs/R8-R9-FINALIZE-COORDINATION-2026-07-09.md +124 -0
- package/docs/REPL-CODE-MODE-EVALUATION-2026-07-10.md +187 -0
- package/docs/REPORT-1249-TARGETED.md +48 -0
- package/docs/RESEARCH-3P-MEMORY-SWAP-2026-07-12.md +273 -0
- package/docs/ROADMAP.md +111 -0
- package/docs/RSI-CLOUD-DEPLOY-2026-07-06.md +289 -0
- package/docs/RSI-PROCESS-AI-COLDSTART-2026-07-11.md +68 -0
- package/docs/S18-THOROUGHNESS-AUDIT-2026-07-09.md +113 -0
- package/docs/SERVICE-INTEGRATION-GUIDE.md +298 -0
- package/docs/SUBAGENT-STREAM-RESILIENCE-PARITY-2026-07-10.md +118 -0
- package/docs/SWEBENCH-PRO-RECON-2026-07-11.md +31 -0
- package/docs/TB-EFFICIENCY-TELEMETRY-2026-07-08.md +114 -0
- package/docs/TB-FAILURE-AUTOPSY-2026-07-05-RERUN.md +67 -0
- package/docs/TB-FAIRNESS-AUDIT-2026-07-08.md +141 -0
- package/docs/TB-FULL-1257-2026-07-08.md +77 -0
- package/docs/TB-LEG-GAP-ATTRIBUTION-1261-1263-2026-07-11.md +154 -0
- package/docs/TB-REGRESSION-DAEMON-KILL-2026-07-08.md +58 -0
- package/docs/TB-RSI-CROSSCHECK-2026-07-06.md +68 -0
- package/docs/TB-RSI-LEDGER.md +30 -0
- package/docs/TB-STABLE-SET-2026-07-08.md +127 -0
- package/docs/TB21-RECON-2026-07-11.md +28 -0
- package/docs/TEST-DESIGN-BATCH-1-2-3.md +97 -0
- package/docs/THIRD-PARTY-INTEGRATION.md +45 -0
- package/docs/TOKEN-ESTIMATE-CALIBRATION-LIVE-2026-07-09.md +102 -0
- package/docs/audit-2026-06-10-/347/254/254/344/272/214/350/275/256-/347/251/272/347/231/275/345/214/272/344/270/216/345/277/230/346/216/245/347/272/277.md +147 -0
- package/docs/audit-2026-06-10-/350/256/241/347/256/227bug/346/211/253/346/217/217.md +163 -0
- package/docs/audit-2026-06-11-/344/277/256/345/244/215/345/244/215/345/256/241/344/270/216/345/233/236/345/275/222/344/270/223/346/211/253.md +95 -0
- package/docs/audit-2026-06-12-design71-P1/346/275/234/344/274/217/351/235/242/350/243/201/345/206/263/344/270/216/345/220/236/351/224/231/345/256/241/350/256/241.md +45 -0
- package/docs/audit-2026-06-12-/345/205/254/345/274/200/346/227/213/351/222/256/346/264/273/346/200/247/344/270/216vendored/346/255/273/350/267/257.md +63 -0
- package/docs/audit-2026-06-15/ADDENDUM-second-pass.md +88 -0
- package/docs/audit-2026-06-15/ARCHITECTURE-AND-ROADMAP.md +187 -0
- package/docs/audit-2026-06-15/DOC-CORRECTIONS.md +105 -0
- package/docs/audit-2026-06-15/INDEX.md +49 -0
- package/docs/audit-2026-06-15/ORCHESTRATION-STATUS.md +98 -0
- package/docs/audit-2026-06-15/PRODUCTION-ISSUES.md +189 -0
- package/docs/audit-2026-06-15/REFERENCES-literature.md +139 -0
- package/docs/audit-2026-06-15/VENDOR-REFACTOR-PLAN.md +96 -0
- package/docs/cc-probe-198/README.md +72 -0
- package/docs/cc-probe-198/STABILITY-AUDIT.md +118 -0
- package/docs/cc-probe-198/live-schema-monitor-worktree-2026-07-09.json +56 -0
- package/docs/cc-probe-198/mount-variants.json +536 -0
- package/docs/cc-probe-198/plan-mode-run.json +1 -0
- package/docs/cc-probe-198/probe-bash-bg.json +224 -0
- package/docs/cc-probe-198/probe-edit-mismatch.json +120 -0
- package/docs/cc-probe-198/probe-read-missing.json +62 -0
- package/docs/cc-probe-198/probe-search-empty.json +127 -0
- package/docs/cc-probe-198/probe-task-family.json +227 -0
- package/docs/cc-probe-198/probes.status +6 -0
- package/docs/cc-probe-198/raw-capture-interactive.json +948 -0
- package/docs/cc-probe-198/raw-capture-print.json +787 -0
- package/docs/cc-probe-198/raw-capture2-interactive.json +948 -0
- package/docs/cc-probe-198/raw-capture2-print.json +787 -0
- package/docs/cc-probe-198/system-prompt.txt +135 -0
- package/docs/cc-probe-198/tools-array.json +962 -0
- package/docs/durability-boundary.md +63 -0
- package/docs/fix-2026-06-10-/350/256/241/347/256/227bug/344/277/256/345/244/215-search/346/211/271.md +75 -0
- package/docs/fix-2026-06-11-/347/254/254/344/272/214/350/275/256-/344/277/256/345/244/215-search/346/211/271.md +62 -0
- package/docs/parity-sweep/REPORT-DYNAMIC.md +97 -0
- package/docs/parity-sweep/REPORT-STATIC-GGB.md +127 -0
- package/docs/parity-sweep/REPORT-STATIC-RWE.md +133 -0
- package/docs/vendor-history.md +385 -0
- package/docs/vendored-upstream-diff-2026-07.md +83 -0
- package/package.json +70 -0
|
@@ -0,0 +1,575 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { mapNestedSuspend, isDurablePause } from "./suspend-guard.js";
|
|
3
|
+
import { delimitUntrusted, inlineUntrusted } from "../core/untrusted-text.js";
|
|
4
|
+
/**
|
|
5
|
+
* Teacher mode (escalation cascade): a cheap "student" does the work; a strong "teacher" is consulted
|
|
6
|
+
* only when the student is *detectably* stuck or wrong, then withdraws.
|
|
7
|
+
*
|
|
8
|
+
* APPLICABILITY — teacher mode assumes the task has a **decidable verify signal**: escalation only fires
|
|
9
|
+
* when we can tell the student is failing (Tier 0 same-tool/same-error stuck, Tier 1 rubric verifier on
|
|
10
|
+
* the final output, or a `blocked`/`failed` terminal). It pays off when "wrong" is observable.
|
|
11
|
+
*
|
|
12
|
+
* It does NOT fit **open-ended completeness/quality judgement** — e.g. code-review "find ALL the bugs",
|
|
13
|
+
* creative quality — because there is no oracle for *completeness*: the verifier can't know how many bugs
|
|
14
|
+
* the code has or which one was missed, so a student that finds one obvious issue passes the rubric while
|
|
15
|
+
* silently missing others, and the escalation machinery idles (verified in practice: 0 escalations, the
|
|
16
|
+
* verifier becomes pure added cost). Such tasks are solved by **breadth + adversarial debate** (a `team`
|
|
17
|
+
* council), not by **depth escalation** — the two are orthogonal. See design/12 §六 for the full reasoning.
|
|
18
|
+
*/
|
|
19
|
+
/** Default teacher (advisor) system prompt — returns ONLY structured JSON guidance. */
|
|
20
|
+
export const TEACHER_PROMPT = `You are an expert advisor to a less-capable "student" agent that got stuck.
|
|
21
|
+
You receive the task and the student's recent failed attempts. Your job is to help the student RECOVER,
|
|
22
|
+
not to do the work for it.
|
|
23
|
+
|
|
24
|
+
Return ONLY one valid JSON object (no markdown, no prose outside it):
|
|
25
|
+
{
|
|
26
|
+
"strategy": "<general approach for this CLASS of problem, 1-2 sentences>",
|
|
27
|
+
"correction": "<specifically what the student did wrong>",
|
|
28
|
+
"nextStep": "<one concrete action the student should take now>",
|
|
29
|
+
"takeover": <true ONLY if the student is hopelessly stuck and you must do it yourself>,
|
|
30
|
+
"confidence": <0=low .. 3=high, how sure you are this guidance is correct>
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
Be terse. Do NOT solve the whole task unless takeover=true. If you are unsure, set confidence=0 and takeover=false.`;
|
|
34
|
+
const MONITOR_PROMPT = `You judge whether a stuck-looking agent is making real progress.
|
|
35
|
+
Compare its two most recent turns below. Reply with ONLY one word: "stuck" or "progressing".`;
|
|
36
|
+
const VERIFIER_INSTRUCTION = `You verify an agent's output against its task. Be lenient: accept anything that SUBSTANTIALLY satisfies the task.`;
|
|
37
|
+
function verifierPrompt(objective, output, instruction = VERIFIER_INSTRUCTION) {
|
|
38
|
+
// design/53 §A (untrusted-data-everywhere): the student's OUTPUT is model-generated content that may
|
|
39
|
+
// have been shaped by untrusted input it processed — opaque-delimit it so it can't pose as instructions
|
|
40
|
+
// to the verifier (e.g. inject "reply pass"). Same discipline as verify.ts/team.ts; the TASK objective
|
|
41
|
+
// is the trusted caller spec and stays plain.
|
|
42
|
+
return (`${instruction}\n\nTASK:\n${objective}\n\n${delimitUntrusted("AGENT OUTPUT", output)}\n\n` +
|
|
43
|
+
`Does the output substantially satisfy the task? Reply with ONLY "pass" or "fail: <one concrete reason>".`);
|
|
44
|
+
}
|
|
45
|
+
/** Best-effort parse of the teacher's JSON advice; on failure, keep the raw text as a low-confidence correction. */
|
|
46
|
+
export function parseTeacherAdvice(text) {
|
|
47
|
+
const start = text.indexOf("{");
|
|
48
|
+
const end = text.lastIndexOf("}");
|
|
49
|
+
if (start !== -1 && end > start) {
|
|
50
|
+
try {
|
|
51
|
+
const o = JSON.parse(text.slice(start, end + 1));
|
|
52
|
+
return {
|
|
53
|
+
strategy: typeof o.strategy === "string" ? o.strategy : undefined,
|
|
54
|
+
correction: typeof o.correction === "string" ? o.correction : undefined,
|
|
55
|
+
nextStep: typeof o.nextStep === "string" ? o.nextStep : undefined,
|
|
56
|
+
takeover: o.takeover === true,
|
|
57
|
+
confidence: typeof o.confidence === "number" ? o.confidence : 0,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
/* fall through */
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return { takeover: false, confidence: 0, correction: text.trim(), raw: text };
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Run a task with a cheap "student" model that escalates to a strong "teacher" (advisor) when it gets
|
|
68
|
+
* stuck or produces a wrong answer — the escalation cascade / teacher mode (design/13).
|
|
69
|
+
*
|
|
70
|
+
* The teacher runs in an isolated session (its dialogue is discarded; only its structured JSON advice
|
|
71
|
+
* is injected back into the student's session, so the student's prefix cache survives). Triggers:
|
|
72
|
+
* Tier 0 — repeated same-tool failures (aborts the stuck run early); Tier 1 — a rubric verifier on a
|
|
73
|
+
* completed output (catches "passes but semantically wrong"). Correction-then-takeover, with hard
|
|
74
|
+
* cost guards (escalation cap, teacher-spend ratio, bounded teacher turns).
|
|
75
|
+
*/
|
|
76
|
+
export async function runWithTeacher(runner, studentSpec, teacher = {}) {
|
|
77
|
+
const store = teacher.strategyStore;
|
|
78
|
+
const scope = teacher.scope;
|
|
79
|
+
// RETRIEVAL (design/14): inject relevant past strategies into the objective (the per-task, variable
|
|
80
|
+
// message — keeps the stable system prefix cacheable). Strong negation preamble: they're from
|
|
81
|
+
// DIFFERENT past tasks and may not apply (mitigates anchoring; the student must verify before using).
|
|
82
|
+
let spec = studentSpec;
|
|
83
|
+
if (store && scope && teacher.injectStrategies !== false) {
|
|
84
|
+
const found = await store.find(scope, studentSpec.objective, teacher.retrieveK ?? 3);
|
|
85
|
+
if (found.length > 0) {
|
|
86
|
+
const block = `[STRATEGIES from PAST, DIFFERENT tasks — they may NOT apply. If unsure, IGNORE them and proceed normally.]\n` +
|
|
87
|
+
found.map((s) => `- ${s.strategy}`).join("\n");
|
|
88
|
+
spec = { ...studentSpec, objective: `${block}\n\n${studentSpec.objective}` };
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
const result = await runTeacherCore(runner, spec, teacher);
|
|
92
|
+
// STORAGE (design/14): only on success, only the FINAL escalation's strategy (intermediate ones
|
|
93
|
+
// correlate with failure), only if confident enough. `problem` is the ORIGINAL objective.
|
|
94
|
+
if (store && scope && result.status === "completed" && result.escalations.length > 0) {
|
|
95
|
+
const advice = result.escalations[result.escalations.length - 1].teacher;
|
|
96
|
+
if (advice.strategy && advice.confidence >= (teacher.minConfidenceToStore ?? 2)) {
|
|
97
|
+
await store.save({
|
|
98
|
+
id: randomUUID(),
|
|
99
|
+
problem: studentSpec.objective,
|
|
100
|
+
strategy: advice.strategy,
|
|
101
|
+
confidence: advice.confidence,
|
|
102
|
+
scope,
|
|
103
|
+
ts: new Date().toISOString(),
|
|
104
|
+
teacherModel: typeof teacher.model === "string" ? teacher.model : teacher.model?.id,
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return result;
|
|
109
|
+
}
|
|
110
|
+
/** Core escalation loop (kept free of the strategy-store concern; see {@link runWithTeacher}). */
|
|
111
|
+
async function runTeacherCore(runner, studentSpec, teacher) {
|
|
112
|
+
const maxEscalations = teacher.maxEscalations ?? 3;
|
|
113
|
+
const spendCap = teacher.teacherSpendRatioCap ?? 0.4;
|
|
114
|
+
const stuckThreshold = teacher.stuckThreshold ?? 3;
|
|
115
|
+
const stuckHardOverride = teacher.stuckHardOverride ?? 5;
|
|
116
|
+
const useStuckMonitor = teacher.useStuckMonitor !== false;
|
|
117
|
+
const verifyOutput = teacher.verifyOutput !== false;
|
|
118
|
+
const takeoverAfter = teacher.takeoverAfter ?? 2;
|
|
119
|
+
const extSignal = studentSpec.signal;
|
|
120
|
+
const escalations = [];
|
|
121
|
+
let studentTokens = 0;
|
|
122
|
+
let studentTurns = 0;
|
|
123
|
+
let studentCost = 0;
|
|
124
|
+
// A-7: accumulate the AUTHORITATIVE cost/token fields too — not just tokens/turns/costUsd. Otherwise
|
|
125
|
+
// finalize spreads the LAST run's costMicroUsd/promptTokens/cachedTokens/outputTokens/nested while
|
|
126
|
+
// tokens/turns are cumulative → the same stats object is internally inconsistent (a consumer reading
|
|
127
|
+
// the recommended `costMicroUsd` gets only the last attempt on every escalation).
|
|
128
|
+
let studentCostMicro = 0;
|
|
129
|
+
let studentPrompt = 0;
|
|
130
|
+
let studentCached = 0;
|
|
131
|
+
let studentOutput = 0;
|
|
132
|
+
let studentCacheWrite = 0;
|
|
133
|
+
let studentCacheWriteLong = 0;
|
|
134
|
+
// costBreakdown sub-fields + humanReview accumulate too (mirror cascade): else the finalize spread leaks the
|
|
135
|
+
// LAST attempt's value while costMicroUsd is the cumulative sum → the `llmRoot+nested+compaction===total`
|
|
136
|
+
// identity breaks and humanReview drops earlier attempts' gate burden (systemic pattern-A sweep).
|
|
137
|
+
let studentLlmRootMicro = 0;
|
|
138
|
+
let studentCompactionMicro = 0;
|
|
139
|
+
let hrCount = 0;
|
|
140
|
+
let hrWaitMs = 0;
|
|
141
|
+
const hrGates = [];
|
|
142
|
+
let studentNestedTokens = 0;
|
|
143
|
+
let studentNestedTurns = 0;
|
|
144
|
+
let studentNestedTasks = 0;
|
|
145
|
+
let studentNestedCostMicro = 0;
|
|
146
|
+
let studentNestedCost = 0;
|
|
147
|
+
let teacherTokens = 0;
|
|
148
|
+
let teacherTasks = 0;
|
|
149
|
+
let teacherCost = 0;
|
|
150
|
+
let teacherCostMicro = 0;
|
|
151
|
+
let teacherHrCount = 0;
|
|
152
|
+
let teacherHrWaitMs = 0;
|
|
153
|
+
const teacherHrGates = [];
|
|
154
|
+
let correctionFailures = 0;
|
|
155
|
+
let sessionId = studentSpec.sessionId;
|
|
156
|
+
let objective = studentSpec.objective;
|
|
157
|
+
// Wrap the student's tools to capture recent tool RESULTS (the observations) — so the teacher's
|
|
158
|
+
// trace shows what the tools returned, not just that the student called them (teacher v1.1).
|
|
159
|
+
const toolLog = [];
|
|
160
|
+
const logTool = (name, args, result) => {
|
|
161
|
+
toolLog.push({ tool: name, args: JSON.stringify(args).slice(0, 200), result: result.slice(0, 600) });
|
|
162
|
+
while (toolLog.length > 6)
|
|
163
|
+
toolLog.shift();
|
|
164
|
+
};
|
|
165
|
+
// Error-signature stuck tracking (v1.2): count consecutive failures of the SAME tool with the SAME
|
|
166
|
+
// error — a changing error means the student is making progress, not stuck. Reset per student run.
|
|
167
|
+
let errorStreak = 0;
|
|
168
|
+
let lastErrSig = "";
|
|
169
|
+
const onToolFail = (name, errText) => {
|
|
170
|
+
const sig = `${name}|${errText.toLowerCase().replace(/\s+/g, " ").trim().slice(0, 80)}`;
|
|
171
|
+
errorStreak = sig === lastErrSig ? errorStreak + 1 : 1;
|
|
172
|
+
lastErrSig = sig;
|
|
173
|
+
};
|
|
174
|
+
const wrap = (t) => ({
|
|
175
|
+
...t,
|
|
176
|
+
execute: async (args, ctx) => {
|
|
177
|
+
try {
|
|
178
|
+
const out = await t.execute(args, ctx);
|
|
179
|
+
const text = typeof out === "string"
|
|
180
|
+
? out
|
|
181
|
+
: out && typeof out === "object" && "content" in out
|
|
182
|
+
? String(out.content)
|
|
183
|
+
: (JSON.stringify(out) ?? ""); // JSON.stringify(undefined) is undefined → guard the .slice
|
|
184
|
+
logTool(t.name, args, text);
|
|
185
|
+
errorStreak = 0; // a successful tool call breaks the stuck streak
|
|
186
|
+
lastErrSig = "";
|
|
187
|
+
return out;
|
|
188
|
+
}
|
|
189
|
+
catch (e) {
|
|
190
|
+
// A tool FAILURE is exactly the observation the teacher needs — capture it + the signature.
|
|
191
|
+
const errText = String(e);
|
|
192
|
+
logTool(t.name, args, `ERROR: ${errText}`);
|
|
193
|
+
onToolFail(t.name, errText);
|
|
194
|
+
throw e;
|
|
195
|
+
}
|
|
196
|
+
},
|
|
197
|
+
});
|
|
198
|
+
const tools = studentSpec.tools?.map(wrap);
|
|
199
|
+
/** A cheap helper task spec (monitor/verifier): inherits the student's model unless `helperModel` set. */
|
|
200
|
+
const helperBase = () => teacher.helperModel
|
|
201
|
+
? { model: teacher.helperModel }
|
|
202
|
+
: { model: studentSpec.model, modelRole: studentSpec.modelRole, roles: studentSpec.roles };
|
|
203
|
+
/**
|
|
204
|
+
* Model fields for the teacher: an explicit `teacher.model`, else the `advisor` role. When the
|
|
205
|
+
* student ran on an explicit model (not a role), synthesize a `default` role from it so an
|
|
206
|
+
* unconfigured `advisor` degrades gracefully to the student's own model (teacher == student) instead
|
|
207
|
+
* of failing to resolve. A configured `RunnerDeps.roles.advisor` still wins.
|
|
208
|
+
*/
|
|
209
|
+
const teacherModelFields = () => {
|
|
210
|
+
if (teacher.model) {
|
|
211
|
+
return { model: teacher.model };
|
|
212
|
+
}
|
|
213
|
+
const roles = {
|
|
214
|
+
...(studentSpec.model !== undefined ? { default: studentSpec.model } : {}),
|
|
215
|
+
...studentSpec.roles,
|
|
216
|
+
};
|
|
217
|
+
return { modelRole: "advisor", roles: Object.keys(roles).length ? roles : undefined };
|
|
218
|
+
};
|
|
219
|
+
const runHelper = async (helperObjective) => {
|
|
220
|
+
const r = await runner.runTask({
|
|
221
|
+
...helperBase(),
|
|
222
|
+
objective: helperObjective,
|
|
223
|
+
enableBlockedReport: false,
|
|
224
|
+
limits: { maxTurns: 1, timeoutSec: studentSpec.limits?.timeoutSec },
|
|
225
|
+
signal: extSignal,
|
|
226
|
+
});
|
|
227
|
+
await runner.sessions.release(r.sessionId).catch(() => undefined);
|
|
228
|
+
addStudent(r); // helper is student-tier; counts toward the cheap budget
|
|
229
|
+
return r.result;
|
|
230
|
+
};
|
|
231
|
+
const addStudent = (r) => {
|
|
232
|
+
const s = r.stats;
|
|
233
|
+
studentTokens += s.tokens;
|
|
234
|
+
studentTurns += s.turns;
|
|
235
|
+
studentCost += s.costUsd ?? 0;
|
|
236
|
+
studentCostMicro += s.costMicroUsd ?? 0;
|
|
237
|
+
studentPrompt += s.promptTokens ?? 0;
|
|
238
|
+
studentCached += s.cachedTokens ?? 0;
|
|
239
|
+
studentOutput += s.outputTokens ?? 0;
|
|
240
|
+
studentCacheWrite += s.cacheWriteTokens ?? 0;
|
|
241
|
+
studentCacheWriteLong += s.cacheWriteTokensLong ?? 0;
|
|
242
|
+
if (s.costBreakdown) {
|
|
243
|
+
studentLlmRootMicro += s.costBreakdown.llmRootMicroUsd;
|
|
244
|
+
studentCompactionMicro += s.costBreakdown.compactionMicroUsd;
|
|
245
|
+
}
|
|
246
|
+
if (s.humanReview) {
|
|
247
|
+
hrCount += s.humanReview.count;
|
|
248
|
+
hrWaitMs += s.humanReview.totalWaitMs;
|
|
249
|
+
hrGates.push(...s.humanReview.gates);
|
|
250
|
+
}
|
|
251
|
+
// A-7: addStudent now accumulates nested too (was only in addTeacher = asymmetric; a student that
|
|
252
|
+
// delegates to a subagent had its delegated cost dropped from both the spendCap ratio and the
|
|
253
|
+
// final stats).
|
|
254
|
+
if (s.nested) {
|
|
255
|
+
studentNestedTokens += s.nested.tokens;
|
|
256
|
+
studentNestedTurns += s.nested.turns;
|
|
257
|
+
studentNestedTasks += s.nested.tasks;
|
|
258
|
+
studentNestedCostMicro += s.nested.costMicroUsd ?? 0;
|
|
259
|
+
studentNestedCost += s.nested.costUsd ?? 0;
|
|
260
|
+
}
|
|
261
|
+
};
|
|
262
|
+
const addTeacher = (r) => {
|
|
263
|
+
teacherTokens += r.stats.tokens + (r.stats.nested?.tokens ?? 0);
|
|
264
|
+
teacherTasks += 1;
|
|
265
|
+
teacherCost += (r.stats.costUsd ?? 0) + (r.stats.nested?.costUsd ?? 0);
|
|
266
|
+
teacherCostMicro += (r.stats.costMicroUsd ?? 0) + (r.stats.nested?.costMicroUsd ?? 0);
|
|
267
|
+
if (r.stats.humanReview) {
|
|
268
|
+
teacherHrCount += r.stats.humanReview.count;
|
|
269
|
+
teacherHrWaitMs += r.stats.humanReview.totalWaitMs;
|
|
270
|
+
teacherHrGates.push(...r.stats.humanReview.gates);
|
|
271
|
+
}
|
|
272
|
+
};
|
|
273
|
+
// Run the student (or a continuation) while watching for a stuck loop; abort early if stuck.
|
|
274
|
+
const runStudent = async () => {
|
|
275
|
+
const ac = new AbortController();
|
|
276
|
+
const onExt = () => ac.abort();
|
|
277
|
+
if (extSignal) {
|
|
278
|
+
if (extSignal.aborted)
|
|
279
|
+
ac.abort();
|
|
280
|
+
else
|
|
281
|
+
extSignal.addEventListener("abort", onExt, { once: true });
|
|
282
|
+
}
|
|
283
|
+
const stream = runner.runTaskStream({ ...studentSpec, tools, objective, sessionId, signal: ac.signal });
|
|
284
|
+
errorStreak = 0; // independent stuck detection per student run (the wrap maintains it as tools run)
|
|
285
|
+
lastErrSig = "";
|
|
286
|
+
let grace = 0; // turns to skip the stuck check after the monitor said "progressing"
|
|
287
|
+
let stuck = false;
|
|
288
|
+
const recent = [];
|
|
289
|
+
let turnText = "";
|
|
290
|
+
let turnTools = [];
|
|
291
|
+
try {
|
|
292
|
+
for await (const ev of stream) {
|
|
293
|
+
if (ev.type === "text_delta") {
|
|
294
|
+
turnText += ev.delta;
|
|
295
|
+
}
|
|
296
|
+
else if (ev.type === "tool_start") {
|
|
297
|
+
turnTools.push(`${ev.toolName}(${JSON.stringify(ev.args).slice(0, 120)})`);
|
|
298
|
+
}
|
|
299
|
+
else if (ev.type === "turn_end") {
|
|
300
|
+
recent.push(`${turnText} ${turnTools.join(" ")}`.trim());
|
|
301
|
+
turnText = "";
|
|
302
|
+
turnTools = [];
|
|
303
|
+
// `errorStreak` (same tool + same error) is maintained by the tool wrapper as tools run.
|
|
304
|
+
if (errorStreak >= stuckHardOverride) {
|
|
305
|
+
stuck = true; // hard override always fires, regardless of monitor/grace
|
|
306
|
+
}
|
|
307
|
+
else if (grace > 0) {
|
|
308
|
+
grace--; // inside the grace window → consume one turn, don't re-check
|
|
309
|
+
}
|
|
310
|
+
else if (errorStreak >= stuckThreshold) {
|
|
311
|
+
if (!useStuckMonitor || (await monitorStuck(recent))) {
|
|
312
|
+
stuck = true;
|
|
313
|
+
}
|
|
314
|
+
else {
|
|
315
|
+
grace = 2; // monitor said "progressing" → suppress the check for 2 turns (design §3.1)
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
if (stuck) {
|
|
319
|
+
ac.abort();
|
|
320
|
+
break; // stop consuming immediately — don't drain a possibly-hung stream
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
finally {
|
|
326
|
+
if (extSignal)
|
|
327
|
+
extSignal.removeEventListener("abort", onExt); // never leak the listener
|
|
328
|
+
}
|
|
329
|
+
// Swallow a late rejection so the losing branch of the race below can't become an unhandled
|
|
330
|
+
// rejection, and so a runner failure after abort doesn't throw out of here.
|
|
331
|
+
const settled = stream.result().catch(() => syntheticAborted(sessionId));
|
|
332
|
+
// After an abort, bound how long we wait for the run to settle (loss-cutting must be prompt).
|
|
333
|
+
let result;
|
|
334
|
+
if (stuck) {
|
|
335
|
+
const fb = abortFallback(sessionId);
|
|
336
|
+
result = await Promise.race([settled, fb.promise]);
|
|
337
|
+
fb.cancel(); // don't leak the 10s loss-cutting timer when `settled` wins the race
|
|
338
|
+
}
|
|
339
|
+
else {
|
|
340
|
+
result = await settled;
|
|
341
|
+
}
|
|
342
|
+
addStudent(result);
|
|
343
|
+
return { result, stuck, recent };
|
|
344
|
+
};
|
|
345
|
+
/** A synthetic "aborted/failed" result for when a stuck run's stream rejects or doesn't settle. */
|
|
346
|
+
const syntheticAborted = (sid) => ({
|
|
347
|
+
taskId: sid ?? "aborted",
|
|
348
|
+
sessionId: sid ?? "aborted",
|
|
349
|
+
status: "failed",
|
|
350
|
+
result: "",
|
|
351
|
+
errorMessage: "student run did not settle promptly after stuck-abort",
|
|
352
|
+
stats: { turns: 0, tokens: 0 },
|
|
353
|
+
});
|
|
354
|
+
const abortFallback = (sid) => {
|
|
355
|
+
let timer;
|
|
356
|
+
const promise = new Promise((res) => {
|
|
357
|
+
timer = setTimeout(() => res(syntheticAborted(sid)), 10_000);
|
|
358
|
+
timer.unref?.(); // don't keep the event loop alive on the losing branch
|
|
359
|
+
});
|
|
360
|
+
return { promise, cancel: () => { if (timer)
|
|
361
|
+
clearTimeout(timer); } };
|
|
362
|
+
};
|
|
363
|
+
const monitorStuck = async (recent) => {
|
|
364
|
+
// design/53 §A: the student's recent turns are untrusted (model-generated) — delimit before they
|
|
365
|
+
// reach the stuck-monitor's prompt, so a turn can't talk the monitor into "stuck"/"progressing".
|
|
366
|
+
const turns = delimitUntrusted("RECENT TURNS", recent.slice(-2).join("\n---\n"));
|
|
367
|
+
const out = await runHelper(`${teacher.prompts?.monitor ?? MONITOR_PROMPT}\n\n${turns}`);
|
|
368
|
+
// Match "stuck" only as the leading token, so a verbose "not stuck / making progress" isn't a
|
|
369
|
+
// false positive (default to NOT stuck when ambiguous — the hard override still catches a real stall).
|
|
370
|
+
return /^\W*stuck\b/i.test(out.trim());
|
|
371
|
+
};
|
|
372
|
+
/** Rubric verifier with optional self-consistency (majority vote over `verifierSamples` runs). */
|
|
373
|
+
const verify = async (taskObjective, output) => {
|
|
374
|
+
const k = Math.max(1, Math.floor(teacher.verifierSamples ?? 1));
|
|
375
|
+
const votes = await Promise.all(Array.from({ length: k }, () => runHelper(verifierPrompt(taskObjective, output, teacher.prompts?.verifier))));
|
|
376
|
+
const passes = votes.filter((v) => /^\s*pass\b/i.test(v)).length;
|
|
377
|
+
const pass = passes * 2 > k; // strict majority
|
|
378
|
+
const reason = pass ? "" : (votes.find((v) => !/^\s*pass\b/i.test(v)) ?? "").replace(/^\s*fail\s*:?\s*/i, "").trim();
|
|
379
|
+
return { pass, reason };
|
|
380
|
+
};
|
|
381
|
+
const askTeacher = async (trace) => {
|
|
382
|
+
const r = await runner.runTask({
|
|
383
|
+
objective: trace,
|
|
384
|
+
...teacherModelFields(),
|
|
385
|
+
systemPrompt: teacher.prompts?.teacher ?? TEACHER_PROMPT,
|
|
386
|
+
enableBlockedReport: false,
|
|
387
|
+
limits: { maxTurns: 4, timeoutSec: studentSpec.limits?.timeoutSec },
|
|
388
|
+
signal: extSignal,
|
|
389
|
+
});
|
|
390
|
+
await runner.sessions.release(r.sessionId).catch(() => undefined);
|
|
391
|
+
addTeacher(r);
|
|
392
|
+
return parseTeacherAdvice(r.result);
|
|
393
|
+
};
|
|
394
|
+
for (;;) {
|
|
395
|
+
toolLog.length = 0; // only the CURRENT attempt's tool results feed the teacher (no cross-cycle bleed)
|
|
396
|
+
const { result, stuck, recent } = await runStudent();
|
|
397
|
+
sessionId = result.sessionId;
|
|
398
|
+
// design/45 §11 Q6 hard boundary: a student task that suspended on a durable approval gate can't be
|
|
399
|
+
// taught/escalated from here — surface it to the top-level caller with the token (mapped to failed),
|
|
400
|
+
// don't loop or release. v1 only supports durable suspend at the top-level runTask.
|
|
401
|
+
if (isDurablePause(result.status)) {
|
|
402
|
+
return finalize(mapNestedSuspend(result));
|
|
403
|
+
}
|
|
404
|
+
// Classify the outcome.
|
|
405
|
+
let trigger;
|
|
406
|
+
let verifyReason = "";
|
|
407
|
+
if (stuck) {
|
|
408
|
+
trigger = "stuck";
|
|
409
|
+
}
|
|
410
|
+
else if (result.status === "blocked") {
|
|
411
|
+
trigger = "blocked";
|
|
412
|
+
}
|
|
413
|
+
else if (result.status === "failed" || result.status === "timeout") {
|
|
414
|
+
trigger = "failed";
|
|
415
|
+
}
|
|
416
|
+
else if (!verifyOutput) {
|
|
417
|
+
trigger = "success";
|
|
418
|
+
}
|
|
419
|
+
else {
|
|
420
|
+
// Verify against the ORIGINAL task, not the mutable `objective` — after the first correction `objective`
|
|
421
|
+
// is overwritten with the teacher-guidance continuation message (for the student's next run), so passing
|
|
422
|
+
// it here would make the verifier judge the student against the guidance text instead of the real task.
|
|
423
|
+
const v = await verify(studentSpec.objective, result.result);
|
|
424
|
+
if (v.pass) {
|
|
425
|
+
trigger = "success";
|
|
426
|
+
}
|
|
427
|
+
else {
|
|
428
|
+
trigger = "verify-fail";
|
|
429
|
+
verifyReason = v.reason;
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
if (trigger === "success") {
|
|
433
|
+
return finalize(result);
|
|
434
|
+
}
|
|
435
|
+
// A token-budget truncation can't be fixed by teacher advice (it's a max_tokens cap, not a
|
|
436
|
+
// reasoning gap) — don't waste an escalation on it; surface the informative failure to the caller.
|
|
437
|
+
if (trigger === "failed" &&
|
|
438
|
+
/truncat|max[ _-]?tokens?|maximum tokens?|token (limit|budget)|context (length|window)|no answer text|(consumed|exceeded).{0,12}budget/i.test(result.errorMessage ?? "")) {
|
|
439
|
+
return finalize(result);
|
|
440
|
+
}
|
|
441
|
+
// Guards: stop escalating when the cap is hit or the teacher is spending too much.
|
|
442
|
+
if (escalations.length >= maxEscalations) {
|
|
443
|
+
return finalize(result);
|
|
444
|
+
}
|
|
445
|
+
// R-6 (round-3 council): the denominator must include `studentNestedTokens` (delegated work) — the
|
|
446
|
+
// numerator `teacherTokens` already counts the teacher's own nested tokens (via addTeacher), so omitting
|
|
447
|
+
// the student's nested tokens inflates the ratio and stops escalation prematurely. Matches finalize().
|
|
448
|
+
const studentTotal = studentTokens + studentNestedTokens;
|
|
449
|
+
if (escalations.length > 0 && studentTotal > 0 && teacherTokens / studentTotal > spendCap) {
|
|
450
|
+
return finalize(result);
|
|
451
|
+
}
|
|
452
|
+
// Decoupled escalation decision (design/15): a custom policy can veto this escalation. Fails open
|
|
453
|
+
// (escalates) on a throw/error so a broken policy can't strand the student.
|
|
454
|
+
if (teacher.escalationPolicy) {
|
|
455
|
+
let go = true;
|
|
456
|
+
try {
|
|
457
|
+
go = await teacher.escalationPolicy({ trigger, attempt: escalations.length + 1, result, recent, verifyReason: verifyReason || undefined });
|
|
458
|
+
}
|
|
459
|
+
catch {
|
|
460
|
+
go = true;
|
|
461
|
+
}
|
|
462
|
+
if (!go) {
|
|
463
|
+
return finalize(result);
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
// Escalate to the teacher. Include the recent tool RESULTS (observations) so the teacher can give
|
|
467
|
+
// substantive, grounded guidance — not just process advice.
|
|
468
|
+
// design/53 §A: the student's turns AND the tool results it surfaced are untrusted content (tool
|
|
469
|
+
// output can itself carry injected text the student read) — opaque-delimit both before they enter
|
|
470
|
+
// the teacher's prompt. The ORIGINAL TASK is the trusted caller spec and stays plain.
|
|
471
|
+
const observations = toolLog.slice(-4).map((e) => `${e.tool}(${e.args}) → ${e.result}`).join("\n");
|
|
472
|
+
const studentTurnsText = delimitUntrusted("STUDENT RECENT TURNS", recent.slice(-4).join("\n---\n") || result.result || "(no output)");
|
|
473
|
+
const toolResults = delimitUntrusted("RECENT TOOL RESULTS", observations || "(no tool calls)");
|
|
474
|
+
const trace = `The student is stuck on this task and needs guidance.\n\nORIGINAL TASK:\n${studentSpec.objective}\n\n` +
|
|
475
|
+
// design/53 §6: verifyReason is the verifier helper-LLM's reply (untrusted — only regex-stripped +
|
|
476
|
+
// trimmed) interpolated INLINE into the trace passed as the trusted `objective`. Its siblings on this
|
|
477
|
+
// trace (STUDENT RECENT TURNS / RECENT TOOL RESULTS) are delimitUntrusted-wrapped; this single inline
|
|
478
|
+
// value gets the inline defuse (fold newlines so it can't forge a new trace line + neutralize break-out
|
|
479
|
+
// tags/fences) so it can't escape its parenthetical into teacher-facing instructions.
|
|
480
|
+
`TRIGGER: ${trigger}${verifyReason ? ` (${inlineUntrusted(verifyReason, 300)})` : ""}\n\n` +
|
|
481
|
+
`STUDENT'S RECENT TURNS (most recent last):\n${studentTurnsText}\n\n` +
|
|
482
|
+
`RECENT TOOL RESULTS (what the tools actually returned):\n${toolResults}\n\n` +
|
|
483
|
+
`Give your guidance as the required JSON.`;
|
|
484
|
+
const advice = await askTeacher(trace);
|
|
485
|
+
const tookOver = advice.takeover || correctionFailures >= takeoverAfter;
|
|
486
|
+
const record = { attempt: escalations.length + 1, trigger, teacher: advice, tookOver };
|
|
487
|
+
escalations.push(record);
|
|
488
|
+
teacher.onEscalation?.(record);
|
|
489
|
+
if (tookOver) {
|
|
490
|
+
// Teacher does the work directly on the same session, then a final verify.
|
|
491
|
+
const r = await runner.runTask({
|
|
492
|
+
// Spread studentSpec FIRST so the takeover — completing the SAME task on the SAME session — inherits the
|
|
493
|
+
// caller's per-task config (auth getApiKeyAndHeaders / toolPolicy / outputSchema / principal /
|
|
494
|
+
// durableApproval / limits / …), exactly like the student run (which spreads ...studentSpec). Listing
|
|
495
|
+
// fields by hand silently DROPPED auth/policy/output contract on the teacher's final-resort run (R7
|
|
496
|
+
// bug-hunt). The explicit fields below OVERRIDE for the takeover.
|
|
497
|
+
...studentSpec,
|
|
498
|
+
sessionId,
|
|
499
|
+
objective: `Take over and complete the original task. ${advice.nextStep ?? advice.strategy ?? ""}`.trim(),
|
|
500
|
+
...teacherModelFields(),
|
|
501
|
+
tools, // the teacher needs the same (wrapped) tools to actually do the work
|
|
502
|
+
enableBlockedReport: false,
|
|
503
|
+
signal: extSignal,
|
|
504
|
+
});
|
|
505
|
+
addTeacher(r);
|
|
506
|
+
// Same durable-pause hard boundary as the student path (design/45 §11 Q6): if the teacher's
|
|
507
|
+
// takeover run itself suspends on a durable approval gate, surface it with the token (mapped to
|
|
508
|
+
// failed) — never leak a raw status:"suspended" out of the orchestrator (orphaned checkpoint).
|
|
509
|
+
if (isDurablePause(r.status)) {
|
|
510
|
+
return finalize(mapNestedSuspend(r));
|
|
511
|
+
}
|
|
512
|
+
return finalize(r);
|
|
513
|
+
}
|
|
514
|
+
// Inject the structured correction and continue the student on the SAME session. Only ask the
|
|
515
|
+
// student to "verify against tool output" when it actually has tools — otherwise that instruction
|
|
516
|
+
// is nonsensical for a text-only task and confuses the model.
|
|
517
|
+
const verifyClause = studentSpec.tools && studentSpec.tools.length > 0
|
|
518
|
+
? " First verify this guidance against the actual tool output, then continue completing the original task."
|
|
519
|
+
: " Then continue completing the original task.";
|
|
520
|
+
objective =
|
|
521
|
+
`[Teacher guidance] Correction: ${advice.correction ?? "(none)"}. Next step: ${advice.nextStep ?? "(none)"}.` +
|
|
522
|
+
(advice.strategy ? ` Strategy: ${advice.strategy}.` : "") +
|
|
523
|
+
verifyClause;
|
|
524
|
+
correctionFailures++;
|
|
525
|
+
}
|
|
526
|
+
function finalize(result) {
|
|
527
|
+
return {
|
|
528
|
+
...result,
|
|
529
|
+
// Student stats are the cumulative totals across all student + helper runs — ALL cost/token fields
|
|
530
|
+
// accumulated (A-7), so authoritative `costMicroUsd` is no longer the last attempt while tokens are
|
|
531
|
+
// cumulative. cacheHitRate is re-derived from the cumulative prompt/cached totals.
|
|
532
|
+
stats: {
|
|
533
|
+
...result.stats,
|
|
534
|
+
tokens: studentTokens,
|
|
535
|
+
turns: studentTurns,
|
|
536
|
+
costUsd: studentCost || undefined,
|
|
537
|
+
costMicroUsd: studentCostMicro || undefined,
|
|
538
|
+
promptTokens: studentPrompt || undefined,
|
|
539
|
+
totalInputTokens: studentPrompt || undefined,
|
|
540
|
+
cachedTokens: studentCached || undefined,
|
|
541
|
+
outputTokens: studentOutput || undefined,
|
|
542
|
+
cacheWriteTokens: studentCacheWrite || undefined,
|
|
543
|
+
cacheWriteTokensLong: studentCacheWriteLong || undefined,
|
|
544
|
+
cacheHitRate: studentPrompt > 0 ? studentCached / studentPrompt : undefined,
|
|
545
|
+
nested: studentNestedTokens > 0 || studentNestedTasks > 0
|
|
546
|
+
? {
|
|
547
|
+
tokens: studentNestedTokens,
|
|
548
|
+
turns: studentNestedTurns,
|
|
549
|
+
tasks: studentNestedTasks,
|
|
550
|
+
costMicroUsd: studentNestedCostMicro || undefined,
|
|
551
|
+
costUsd: studentNestedCost || undefined,
|
|
552
|
+
}
|
|
553
|
+
: undefined,
|
|
554
|
+
// Cumulative breakdown (mirror cascade/assemble-result) so `llmRoot + nested + compaction` reconciles to
|
|
555
|
+
// the cumulative LLM total instead of describing only the last attempt; humanReview sums all attempts.
|
|
556
|
+
costBreakdown: {
|
|
557
|
+
llmRootMicroUsd: studentLlmRootMicro,
|
|
558
|
+
nestedSubagentMicroUsd: studentNestedCostMicro,
|
|
559
|
+
memoryConsolidationMicroUsd: 0,
|
|
560
|
+
compactionMicroUsd: studentCompactionMicro,
|
|
561
|
+
},
|
|
562
|
+
humanReview: hrCount > 0 ? { count: hrCount, totalWaitMs: hrWaitMs, gates: hrGates } : undefined,
|
|
563
|
+
},
|
|
564
|
+
escalations,
|
|
565
|
+
teacherStats: {
|
|
566
|
+
tokens: teacherTokens,
|
|
567
|
+
tasks: teacherTasks,
|
|
568
|
+
costUsd: teacherCost || undefined,
|
|
569
|
+
costMicroUsd: teacherCostMicro || undefined,
|
|
570
|
+
humanReview: teacherHrCount > 0 ? { count: teacherHrCount, totalWaitMs: teacherHrWaitMs, gates: teacherHrGates } : undefined,
|
|
571
|
+
},
|
|
572
|
+
};
|
|
573
|
+
}
|
|
574
|
+
}
|
|
575
|
+
//# sourceMappingURL=teacher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"teacher.js","sourceRoot":"","sources":["../../src/agents/teacher.ts"],"names":[],"mappings":"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"}
|