@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,269 @@
|
|
|
1
|
+
import { decisionText } from "./tool-policy.js";
|
|
2
|
+
/**
|
|
3
|
+
* 1.256 复审 MED-1 — observe-only payload isolation for {@link Hooks.permissionDenied}: clone the tool
|
|
4
|
+
* args before they ride the observer payload, so a hook mutating `payload.input` can never pollute the
|
|
5
|
+
* LIVE args object (later events / audit records share it). Same posture as the postToolUseFailure
|
|
6
|
+
* details clone (prepare-task): `structuredClone` first; a non-structured-cloneable graph
|
|
7
|
+
* (functions/handles) falls back to a SHALLOW plain object/array copy (top-level mutation isolated);
|
|
8
|
+
* a non-object primitive passes through as-is (immutable anyway).
|
|
9
|
+
*/
|
|
10
|
+
export function cloneObserverInput(input) {
|
|
11
|
+
try {
|
|
12
|
+
return structuredClone(input);
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
if (Array.isArray(input))
|
|
16
|
+
return [...input];
|
|
17
|
+
if (input !== null && typeof input === "object")
|
|
18
|
+
return { ...input };
|
|
19
|
+
return input;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/** Wrap model-facing hook/gate feedback in a `<system-reminder>` so it reads as guidance, not data.
|
|
23
|
+
* NOTE (council design/74 #6): this does NOT escape a literal `</system-reminder>` in `text` — callers MUST
|
|
24
|
+
* pass trusted, first-party strings (every current caller does: fixed gate/limit messages). If a future
|
|
25
|
+
* caller needs to relay UNTRUSTED content (tool output, user data), it must sanitize the close tag first
|
|
26
|
+
* (or use the `delimitUntrusted` fence), or a crafted payload could break out of the reminder framing. */
|
|
27
|
+
export function formatHookFeedback(text) {
|
|
28
|
+
return `<system-reminder>\n${text}\n</system-reminder>`;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* design/77 §4: resolve `p`, but REJECT (so the caller catches and fails closed) if it hasn't settled within
|
|
32
|
+
* `ms` OR the `signal` aborts first (the task timed out / was cancelled — its real deadline). A rejection of
|
|
33
|
+
* `p` propagates with its true cause. Both `ms` and `signal` undefined ⇒ no deadline (await `p`). Mirrors
|
|
34
|
+
* `tool-policy.ts withTimeout`, but REJECTS on timeout (the probe has no safe fallback VALUE — the gate's
|
|
35
|
+
* only safe action on an unresolved probe is to tighten to ask).
|
|
36
|
+
*/
|
|
37
|
+
function withProbeTimeout(p, ms, signal) {
|
|
38
|
+
if (ms === undefined && signal === undefined)
|
|
39
|
+
return p;
|
|
40
|
+
return new Promise((resolve, reject) => {
|
|
41
|
+
let settled = false;
|
|
42
|
+
const done = (fn, v) => {
|
|
43
|
+
if (settled)
|
|
44
|
+
return;
|
|
45
|
+
settled = true;
|
|
46
|
+
if (timer !== undefined)
|
|
47
|
+
clearTimeout(timer);
|
|
48
|
+
signal?.removeEventListener("abort", onAbort);
|
|
49
|
+
fn(v);
|
|
50
|
+
};
|
|
51
|
+
const onAbort = () => done(reject, new Error("reversibilityProbe aborted (task ended)"));
|
|
52
|
+
const timer = ms !== undefined
|
|
53
|
+
? setTimeout(() => done(reject, new Error(`reversibilityProbe timed out after ${ms}ms`)), ms)
|
|
54
|
+
: undefined;
|
|
55
|
+
if (signal?.aborted) {
|
|
56
|
+
onAbort();
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
signal?.addEventListener("abort", onAbort);
|
|
60
|
+
p.then((v) => done(resolve, v), (err) => done(reject, err));
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* The design/37 **two-phase tool gate** — the single chokepoint that makes the load-bearing invariant
|
|
65
|
+
* structural ("a hook's `allow` cannot bypass the policy's `deny`/`ask`"):
|
|
66
|
+
*
|
|
67
|
+
* 1. **collect** — run the PreToolUse hook, threading any `updatedInput` rewrite into `currentInput`
|
|
68
|
+
* and collecting `additionalContext`. A hook `deny` short-circuits to a block immediately; a hook
|
|
69
|
+
* `ask` is remembered (it does not short-circuit — a later policy `deny` outranks it).
|
|
70
|
+
* 2. **adjudicate** — run the tool policy on the FINAL `currentInput` (never the model's stale args),
|
|
71
|
+
* fold it with any remembered hook-ask via `deny > ask > allow`, and resolve a surviving `ask`
|
|
72
|
+
* through `onAsk`. The policy ALWAYS runs regardless of the hook's verdict. A policy `allow` may
|
|
73
|
+
* itself carry an `updatedInput` rewrite (redact/clamp), applied last over any hook rewrite.
|
|
74
|
+
*
|
|
75
|
+
* Because both phases run in this one linear function, the ordering — and the "policy is final"
|
|
76
|
+
* invariant — is enforced by the call stack, not by registration convention. Returns the gate result
|
|
77
|
+
* for the harness `tool_call` hook plus the PreToolUse context to attach to the tool result.
|
|
78
|
+
*/
|
|
79
|
+
export async function runToolGate(input) {
|
|
80
|
+
const { event, preToolUse, adjudicate, resolveAsk, suspendAsk } = input;
|
|
81
|
+
const { toolCallId, toolName } = event;
|
|
82
|
+
let currentInput = event.input;
|
|
83
|
+
const preToolContext = [];
|
|
84
|
+
let hookAsk;
|
|
85
|
+
// Phase 1: collect — PreToolUse hook may rewrite args, restrict, and/or inject context.
|
|
86
|
+
if (preToolUse) {
|
|
87
|
+
const r = await preToolUse(toolName, currentInput, { toolCallId, toolName });
|
|
88
|
+
if (r) {
|
|
89
|
+
if (r.additionalContext) {
|
|
90
|
+
preToolContext.push(r.additionalContext);
|
|
91
|
+
}
|
|
92
|
+
if (r.action === "deny") {
|
|
93
|
+
// design/134 R5: a PreToolUse hook deny does NOT fire `permissionDenied` (CC-exact: "PreToolUse
|
|
94
|
+
// hook denies bypass canUseTool and are not covered here") — this return stays observer-free.
|
|
95
|
+
return {
|
|
96
|
+
block: true,
|
|
97
|
+
reason: formatHookFeedback(decisionText(r) ?? `tool "${toolName}" blocked by a PreToolUse hook`),
|
|
98
|
+
preToolContext,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
if (r.action === "ask") {
|
|
102
|
+
hookAsk = r; // fold into adjudication; a policy deny still outranks it
|
|
103
|
+
}
|
|
104
|
+
else if (r.updatedInput !== undefined) {
|
|
105
|
+
currentInput = r.updatedInput; // rewrite; the policy below sees this, never the stale args
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
// Phase 2: adjudicate — the policy runs on the FINAL args and is the final say.
|
|
110
|
+
const req = { toolName, args: currentInput, toolCallId };
|
|
111
|
+
let decision = adjudicate ? await adjudicate(req) : { action: "allow" };
|
|
112
|
+
// design/134 R5: attribute WHO raised the gate that (may) end in a deny — the PermissionDenied `source`.
|
|
113
|
+
// Starts as "policy" (a direct policy deny, or a policy-raised ask later resolved to deny) and is
|
|
114
|
+
// re-attributed by each promotion below (hook-ask fold → "hook"; egress/irreversibility tighten →
|
|
115
|
+
// "safety"/"shellGate"). Only consumed at the single deny exit at the bottom of this function.
|
|
116
|
+
let denySource = "policy";
|
|
117
|
+
// Fold the remembered hook-ask: deny > ask > allow. A policy deny/ask already outranks (or ties) an
|
|
118
|
+
// ask, so only promote allow→ask.
|
|
119
|
+
// B-1 (round-2 audit): a policy `allow{updatedInput}` (redact a secret, clamp a path) was silently lost
|
|
120
|
+
// when a hook-ask promoted the decision to `ask` — after the human approves, the resolved `allow` carries
|
|
121
|
+
// no rewrite, so the tool ran on un-redacted args. Remember the policy rewrite BEFORE the promotion and
|
|
122
|
+
// re-apply it on the approved path (the redaction is not cancelled just because a human confirmed).
|
|
123
|
+
// Capture a rewrite from EITHER an allow OR an ask: combinePolicies now carries an accumulated rewrite
|
|
124
|
+
// out on the ask when an ask outranks a later redaction (round-2 council confirmed dropping it was a real
|
|
125
|
+
// bug). Either way the redaction must survive a hook-ask promotion + human approval.
|
|
126
|
+
// R-4 (round-3 council): the rewrite can come from the policy (allow/ask) OR — when the policy returns a
|
|
127
|
+
// bare allow — from a hook's own `ask{updatedInput}` (`hookAsk`, which the type widening now permits and
|
|
128
|
+
// was previously a dead field). Policy takes priority (it runs last / is the final say); the hook rewrite
|
|
129
|
+
// is the fallback. This single `policyRewrite` then survives the promotion + approval below.
|
|
130
|
+
let policyRewrite;
|
|
131
|
+
if ((decision.action === "allow" || decision.action === "ask") && decision.updatedInput !== undefined) {
|
|
132
|
+
policyRewrite = decision.updatedInput;
|
|
133
|
+
}
|
|
134
|
+
else if (hookAsk?.action === "ask" && hookAsk.updatedInput !== undefined) {
|
|
135
|
+
policyRewrite = hookAsk.updatedInput;
|
|
136
|
+
}
|
|
137
|
+
if (decision.action === "allow" && hookAsk) {
|
|
138
|
+
decision = hookAsk;
|
|
139
|
+
denySource = "hook"; // R5: the gate now standing is the PreToolUse hook's ask, not a policy verdict
|
|
140
|
+
}
|
|
141
|
+
// design/70 post-fold tighten: an egress-marked tool (external write) is NEVER auto-allowed — a
|
|
142
|
+
// surviving `allow` (the no-policy default OR an explicit/blanket policy allow) is tightened to `ask`,
|
|
143
|
+
// so execution always passes an explicit ask-resolution: synchronous onAsk, a durable suspend
|
|
144
|
+
// (design/45 — approve the PR from anywhere), or a deployment-authored approver. With no approver
|
|
145
|
+
// wired, `resolveAsk` auto-denies (headless: an external write never happens without confirmation).
|
|
146
|
+
// Ordering is load-bearing: AFTER the policyRewrite capture (a redaction survives the tighten +
|
|
147
|
+
// approval exactly like a hook-ask promotion) and AFTER the hook-ask fold (already `ask` → no-op).
|
|
148
|
+
// A policy `deny`/`ask` is untouched — the tighten only ever tightens.
|
|
149
|
+
if (input.egress && decision.action === "allow") {
|
|
150
|
+
decision = {
|
|
151
|
+
action: "ask",
|
|
152
|
+
message: `tool "${toolName}" performs an external write (egress) — explicit approval required`,
|
|
153
|
+
decisionReason: "safety",
|
|
154
|
+
};
|
|
155
|
+
denySource = "safety"; // R5: the standing gate is the deterministic egress tighten
|
|
156
|
+
}
|
|
157
|
+
// design/77 §4 (Gate 4) post-fold tighten — runs immediately AFTER the egress tighten, on the SAME axis
|
|
158
|
+
// (only ever tightens a surviving `allow` to `ask`; a `deny`/`ask` is untouched, and an egress tool already
|
|
159
|
+
// tightened to `ask` is a no-op here, idempotent under deny>ask). An IRREVERSIBLE tool (send money/email,
|
|
160
|
+
// file a return) is NEVER auto-allowed: execution must pass an explicit ask-resolution (onAsk / durable
|
|
161
|
+
// `irreversible_ask` suspend / approver). `"always"` always tightens; `"maybe"` calls the deployment's
|
|
162
|
+
// `reversibilityProbe` on the post-hook args and tightens UNLESS it reports reversible — fail-closed: a
|
|
163
|
+
// timeout, a throw, or any non-`reversible` verdict tightens to ask (the probe can never auto-allow).
|
|
164
|
+
if (decision.action === "allow" && (input.irreversibility === "always" || input.irreversibility === "maybe")) {
|
|
165
|
+
let tighten = true;
|
|
166
|
+
if (input.irreversibility === "maybe" && input.reversibilityProbe) {
|
|
167
|
+
let reversible = false;
|
|
168
|
+
try {
|
|
169
|
+
const verdict = await withProbeTimeout(Promise.resolve(input.reversibilityProbe(currentInput)), input.approvalTimeoutMs, input.abortSignal);
|
|
170
|
+
reversible = verdict?.reversible === true;
|
|
171
|
+
}
|
|
172
|
+
catch {
|
|
173
|
+
reversible = false; // fail-closed: a throwing probe must not auto-allow an irreversible action
|
|
174
|
+
}
|
|
175
|
+
tighten = !reversible;
|
|
176
|
+
}
|
|
177
|
+
if (tighten) {
|
|
178
|
+
decision = {
|
|
179
|
+
action: "ask",
|
|
180
|
+
message: `tool "${toolName}" performs an irreversible action — explicit approval required`,
|
|
181
|
+
decisionReason: "safety",
|
|
182
|
+
};
|
|
183
|
+
// R5: a coarse-shellGate-installed tier attributes to "shellGate"; an explicit per-tool mark to "safety".
|
|
184
|
+
denySource = input.shellGated === true ? "shellGate" : "safety";
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
if (decision.action === "ask") {
|
|
188
|
+
// R-1 (round-3 council): apply `policyRewrite` to the args BEFORE checkpointing on the durable path.
|
|
189
|
+
// Resume BYPASSES the gate (`prepare-task.ts` — the human already adjudicated the checkpointed call) and
|
|
190
|
+
// executes the stored postHookArgs verbatim; if we checkpoint un-redacted args here, resume runs them
|
|
191
|
+
// un-redacted (a redacting policy's sanitization is lost). Merging into `currentInput`/`req.args` now
|
|
192
|
+
// means the checkpoint stores the REDACTED args. No double-apply — resume never re-runs the gate.
|
|
193
|
+
if (policyRewrite !== undefined) {
|
|
194
|
+
currentInput = policyRewrite;
|
|
195
|
+
req.args = policyRewrite;
|
|
196
|
+
}
|
|
197
|
+
// design/45: in durable mode, persist a checkpoint + abort instead of asking synchronously. The
|
|
198
|
+
// suspend decision lives ONLY in this `ask` branch (the policy already ran and stays pure). On
|
|
199
|
+
// `undefined` (no durable mode, or capture failed) fall through to the synchronous onAsk path.
|
|
200
|
+
if (suspendAsk) {
|
|
201
|
+
// design/80 D-2 (council BLOCKER fix): thread the SAFETY grade to the mint-site from the AUTHORITATIVE
|
|
202
|
+
// TOOL MARKS (`input.egress` / `input.irreversibility`), NOT from how the ask arose. The gate's egress/
|
|
203
|
+
// irreversibility tightens only fire from a surviving `allow`; if a POLICY or PreToolUse HOOK already
|
|
204
|
+
// returned `ask` on a safety-marked tool, those tightens are skipped and `decisionReason` is not
|
|
205
|
+
// "safety" — yet the tool is STILL egress/irreversible and MUST mint the non-budgetable `irreversible_ask`
|
|
206
|
+
// (else a budget auto-approves the git-push/send-money — the exact r2 bypass D-2 closes). Keying on the
|
|
207
|
+
// static tool marks instead of the per-call `decisionReason` also closes the inverse: a policy/hook can no
|
|
208
|
+
// longer FORGE `decisionReason:"safety"` on an unmarked tool to force `irreversible_ask`. A tool with
|
|
209
|
+
// NEITHER mark → a plain ask → budgetable `human`. `"maybe"` counts as irreversible here: an ask for it
|
|
210
|
+
// means either the probe did not prove it reversible (it tightened) or a policy asked before the probe ran
|
|
211
|
+
// (unknown ⇒ fail-closed). The deployment's lever to make a tool budgetable is `irreversibility:"never"`.
|
|
212
|
+
const egressTool = input.egress === true;
|
|
213
|
+
const irreversibleTool = input.irreversibility === "always" || input.irreversibility === "maybe";
|
|
214
|
+
const safety = egressTool || irreversibleTool ? { egress: egressTool, irreversible: irreversibleTool } : undefined;
|
|
215
|
+
const suspended = await suspendAsk(req, currentInput, safety);
|
|
216
|
+
if (suspended) {
|
|
217
|
+
return { suspend: suspended, preToolContext };
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
decision = await resolveAsk(decision, req);
|
|
221
|
+
}
|
|
222
|
+
if (decision.action === "deny") {
|
|
223
|
+
// design/134 R5 — the SINGLE deny exit of the adjudicate chain (every path funnels here: a direct
|
|
224
|
+
// policy deny, and every tighten/fold whose surviving `ask` resolved to deny — headless auto-deny,
|
|
225
|
+
// approver-no, approval-abort). The durable-suspend path returned `{ suspend }` above (ask domain —
|
|
226
|
+
// never fires this), and a PreToolUse hook deny returned in phase 1 (CC-exact exclusion).
|
|
227
|
+
const denyReason = decisionText(decision) ?? `tool "${toolName}" denied by policy`;
|
|
228
|
+
// 1.256 复审 MED-2: a combined-policy deny can carry the ACCUMULATED pre-deny rewrite (policy A
|
|
229
|
+
// redacted → policy B denied; combinePolicies now returns it as `deny.updatedInput`). Fold it into
|
|
230
|
+
// `currentInput` so the observer payload honors its "FINAL post-rewrite args" contract — without
|
|
231
|
+
// this, the deny observer saw the stale un-redacted args.
|
|
232
|
+
if (decision.updatedInput !== undefined) {
|
|
233
|
+
currentInput = decision.updatedInput;
|
|
234
|
+
}
|
|
235
|
+
if (input.permissionDenied) {
|
|
236
|
+
try {
|
|
237
|
+
// MED-1: clone the args (observe-only isolation) — a hook mutating `payload.input` must not
|
|
238
|
+
// pollute the live args object shared with later events/audit.
|
|
239
|
+
await input.permissionDenied({ toolName, input: cloneObserverInput(currentInput), toolCallId, reason: denyReason, source: denySource });
|
|
240
|
+
}
|
|
241
|
+
catch {
|
|
242
|
+
/* observe-only: a throwing observer (or wrapper) must never alter the deny outcome */
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
return {
|
|
246
|
+
block: true,
|
|
247
|
+
reason: formatHookFeedback(denyReason),
|
|
248
|
+
preToolContext,
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
// A policy `allow` may itself REWRITE args (redact a secret, clamp a path/value) — apply it as the
|
|
252
|
+
// final say, layered over any hook rewrite (the policy runs last). The loop re-validates it against the
|
|
253
|
+
// tool schema like a hook rewrite. An `ask` that was promoted/approved here carries no rewrite of its
|
|
254
|
+
// own, so we fall back to `policyRewrite` (captured above from the original allow OR ask) — the redaction
|
|
255
|
+
// survives approval.
|
|
256
|
+
if (decision.action === "allow") {
|
|
257
|
+
// B-1: prefer the resolved decision's own rewrite; fall back to the policy rewrite remembered before a
|
|
258
|
+
// hook-ask promotion / on the ask path (the promoted-then-approved path carries no updatedInput itself).
|
|
259
|
+
const rw = decision.updatedInput !== undefined ? decision.updatedInput : policyRewrite;
|
|
260
|
+
if (rw !== undefined)
|
|
261
|
+
currentInput = rw;
|
|
262
|
+
}
|
|
263
|
+
// Allowed. Carry a rewrite only when phase 1 or 2 actually changed the args (else the loop skips re-validation).
|
|
264
|
+
return {
|
|
265
|
+
updatedInput: currentInput === event.input ? undefined : currentInput,
|
|
266
|
+
preToolContext,
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/core/hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* design/121 — LSP diagnostics registry + model-facing formatting (CC 2.1.198 parity).
|
|
3
|
+
*
|
|
4
|
+
* CC's two diagnostics sources (IDE MCP baseline/diff + passive LSP publishDiagnostics) collapse to
|
|
5
|
+
* ONE in sema: the passive registry. The "only NEW diagnostics" semantics CC gets from per-file
|
|
6
|
+
* baselines falls out of the delivered-set here — a diagnostic is injected at most once, and editing
|
|
7
|
+
* a file clears its delivered set so a persisting problem can resurface (CC `Fjn` same behavior).
|
|
8
|
+
*
|
|
9
|
+
* Volumes and wire format are CC-exact (198:320661 `Njn=10, nqa=30`; 198:320480-320505 summary +
|
|
10
|
+
* 4000-char cap; severity symbols ✖/⚠/ℹ/★).
|
|
11
|
+
*
|
|
12
|
+
* NOT durable: diagnostics regenerate from the language server on the next edit; a suspend/resume
|
|
13
|
+
* simply starts empty (recorded in design/121 §2).
|
|
14
|
+
*/
|
|
15
|
+
/** One LSP diagnostic, the subset the model/shell needs (LSP `Diagnostic` narrowed). */
|
|
16
|
+
export interface LspDiagnostic {
|
|
17
|
+
message: string;
|
|
18
|
+
/** LSP severity: 1=Error 2=Warning 3=Information 4=Hint. Absent = unknown (sorted last). */
|
|
19
|
+
severity?: number;
|
|
20
|
+
range?: {
|
|
21
|
+
start: {
|
|
22
|
+
line: number;
|
|
23
|
+
character: number;
|
|
24
|
+
};
|
|
25
|
+
end?: {
|
|
26
|
+
line: number;
|
|
27
|
+
character: number;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
code?: string | number;
|
|
31
|
+
source?: string;
|
|
32
|
+
}
|
|
33
|
+
/** One file's new diagnostics, as drained for injection + the wire frame. */
|
|
34
|
+
export interface LspFileDiagnostics {
|
|
35
|
+
uri: string;
|
|
36
|
+
diagnostics: LspDiagnostic[];
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Per-run pending/delivered registry. `publish` is called by an LSP session's publishDiagnostics
|
|
40
|
+
* subscription (whole-file replacement semantics, per the LSP spec); `drain` is called at the turn
|
|
41
|
+
* boundary and returns only diagnostics not yet delivered, sorted and volume-capped.
|
|
42
|
+
*/
|
|
43
|
+
export declare class LspDiagnosticsRegistry {
|
|
44
|
+
/** uri → the LAST published full diagnostic set for that file (LSP replace semantics). */
|
|
45
|
+
private readonly pending;
|
|
46
|
+
/** Keys already injected once — cleared per file when the agent edits it (may resurface). */
|
|
47
|
+
private readonly delivered;
|
|
48
|
+
/** Record a `textDocument/publishDiagnostics` payload (already version-checked by the session). */
|
|
49
|
+
publish(uri: string, diagnostics: LspDiagnostic[]): void;
|
|
50
|
+
/** The agent edited `uri` — its delivered set resets so a still-present problem can resurface
|
|
51
|
+
* against the NEW text (CC clears per-file delivered on edit, 198 `Fjn`). */
|
|
52
|
+
fileEdited(uri: string): void;
|
|
53
|
+
/** True when a drain would produce nothing (cheap pre-check for the turn-boundary hook). */
|
|
54
|
+
isEmpty(): boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Take the NEW (never-delivered) diagnostics: sorted Error>Warning>Info>Hint within each file,
|
|
57
|
+
* capped at {@link MAX_PER_FILE}/{@link MAX_TOTAL}, marked delivered. Pending is consumed (a file
|
|
58
|
+
* with only already-delivered diagnostics simply drops out until its server publishes again or the
|
|
59
|
+
* file is edited).
|
|
60
|
+
*/
|
|
61
|
+
drain(): LspFileDiagnostics[];
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* CC 198 `formatDiagnosticsSummary` (198:320480-320499), verbatim shape:
|
|
65
|
+
* ```
|
|
66
|
+
* {basename}:
|
|
67
|
+
* {symbol} [Line {line+1}:{col+1}] {message}[ [{code}]][ ({source})]
|
|
68
|
+
* ```
|
|
69
|
+
* capped at 4000 chars with an honest `…[truncated]` tail.
|
|
70
|
+
*/
|
|
71
|
+
export declare function formatDiagnosticsSummary(files: LspFileDiagnostics[]): string;
|
|
72
|
+
/** CC 198 model-facing injection block (198:320500-320503), verbatim framing. */
|
|
73
|
+
export declare function formatDiagnosticsBlock(files: LspFileDiagnostics[]): string;
|
|
74
|
+
//# sourceMappingURL=lsp-diagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lsp-diagnostics.d.ts","sourceRoot":"","sources":["../../src/core/lsp-diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,wFAAwF;AACxF,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE;QAAE,KAAK,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,GAAG,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IAClG,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,6EAA6E;AAC7E,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,aAAa,EAAE,CAAC;CAC9B;AAyBD;;;;GAIG;AACH,qBAAa,sBAAsB;IACjC,0FAA0F;IAC1F,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsC;IAC9D,6FAA6F;IAC7F,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAE/C,mGAAmG;IACnG,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,IAAI;IAMxD;kFAC8E;IAC9E,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAO7B,4FAA4F;IAC5F,OAAO,IAAI,OAAO;IAIlB;;;;;OAKG;IACH,KAAK,IAAI,kBAAkB,EAAE;CAiB9B;AASD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAa5E;AAED,iFAAiF;AACjF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAE1E"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* design/121 — LSP diagnostics registry + model-facing formatting (CC 2.1.198 parity).
|
|
3
|
+
*
|
|
4
|
+
* CC's two diagnostics sources (IDE MCP baseline/diff + passive LSP publishDiagnostics) collapse to
|
|
5
|
+
* ONE in sema: the passive registry. The "only NEW diagnostics" semantics CC gets from per-file
|
|
6
|
+
* baselines falls out of the delivered-set here — a diagnostic is injected at most once, and editing
|
|
7
|
+
* a file clears its delivered set so a persisting problem can resurface (CC `Fjn` same behavior).
|
|
8
|
+
*
|
|
9
|
+
* Volumes and wire format are CC-exact (198:320661 `Njn=10, nqa=30`; 198:320480-320505 summary +
|
|
10
|
+
* 4000-char cap; severity symbols ✖/⚠/ℹ/★).
|
|
11
|
+
*
|
|
12
|
+
* NOT durable: diagnostics regenerate from the language server on the next edit; a suspend/resume
|
|
13
|
+
* simply starts empty (recorded in design/121 §2).
|
|
14
|
+
*/
|
|
15
|
+
/** CC 198 volume caps (198:320661). */
|
|
16
|
+
const MAX_PER_FILE = 10;
|
|
17
|
+
const MAX_TOTAL = 30;
|
|
18
|
+
/** CC 198 summary cap (198:320500 `Z4a`). */
|
|
19
|
+
const MAX_SUMMARY_CHARS = 4000;
|
|
20
|
+
/** CC 198 severity symbols (198:320505): Error=✖ Warning=⚠ Info=ℹ Hint=★, fallback ●. */
|
|
21
|
+
function severitySymbol(severity) {
|
|
22
|
+
switch (severity) {
|
|
23
|
+
case 1: return "✖";
|
|
24
|
+
case 2: return "⚠";
|
|
25
|
+
case 3: return "ℹ";
|
|
26
|
+
case 4: return "★";
|
|
27
|
+
default: return "●";
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/** Identity key for the delivered set — CC compares message+severity+source+code+range (198:320457). */
|
|
31
|
+
function diagnosticKey(uri, d) {
|
|
32
|
+
const r = d.range ? `${d.range.start.line}:${d.range.start.character}-${d.range.end?.line ?? ""}:${d.range.end?.character ?? ""}` : "";
|
|
33
|
+
return `${uri}|${d.message}|${d.severity ?? ""}|${d.source ?? ""}|${d.code ?? ""}|${r}`;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Per-run pending/delivered registry. `publish` is called by an LSP session's publishDiagnostics
|
|
37
|
+
* subscription (whole-file replacement semantics, per the LSP spec); `drain` is called at the turn
|
|
38
|
+
* boundary and returns only diagnostics not yet delivered, sorted and volume-capped.
|
|
39
|
+
*/
|
|
40
|
+
export class LspDiagnosticsRegistry {
|
|
41
|
+
/** uri → the LAST published full diagnostic set for that file (LSP replace semantics). */
|
|
42
|
+
pending = new Map();
|
|
43
|
+
/** Keys already injected once — cleared per file when the agent edits it (may resurface). */
|
|
44
|
+
delivered = new Set();
|
|
45
|
+
/** Record a `textDocument/publishDiagnostics` payload (already version-checked by the session). */
|
|
46
|
+
publish(uri, diagnostics) {
|
|
47
|
+
// An empty set REPLACES too (the server saying "all clear") — it clears pending for the file.
|
|
48
|
+
if (diagnostics.length === 0)
|
|
49
|
+
this.pending.delete(uri);
|
|
50
|
+
else
|
|
51
|
+
this.pending.set(uri, diagnostics);
|
|
52
|
+
}
|
|
53
|
+
/** The agent edited `uri` — its delivered set resets so a still-present problem can resurface
|
|
54
|
+
* against the NEW text (CC clears per-file delivered on edit, 198 `Fjn`). */
|
|
55
|
+
fileEdited(uri) {
|
|
56
|
+
const prefix = `${uri}|`;
|
|
57
|
+
for (const key of this.delivered) {
|
|
58
|
+
if (key.startsWith(prefix))
|
|
59
|
+
this.delivered.delete(key);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/** True when a drain would produce nothing (cheap pre-check for the turn-boundary hook). */
|
|
63
|
+
isEmpty() {
|
|
64
|
+
return this.pending.size === 0;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Take the NEW (never-delivered) diagnostics: sorted Error>Warning>Info>Hint within each file,
|
|
68
|
+
* capped at {@link MAX_PER_FILE}/{@link MAX_TOTAL}, marked delivered. Pending is consumed (a file
|
|
69
|
+
* with only already-delivered diagnostics simply drops out until its server publishes again or the
|
|
70
|
+
* file is edited).
|
|
71
|
+
*/
|
|
72
|
+
drain() {
|
|
73
|
+
const out = [];
|
|
74
|
+
let total = 0;
|
|
75
|
+
for (const [uri, all] of this.pending) {
|
|
76
|
+
if (total >= MAX_TOTAL)
|
|
77
|
+
break;
|
|
78
|
+
const fresh = all
|
|
79
|
+
.filter((d) => !this.delivered.has(diagnosticKey(uri, d)))
|
|
80
|
+
.sort((a, b) => (a.severity ?? 99) - (b.severity ?? 99))
|
|
81
|
+
.slice(0, Math.min(MAX_PER_FILE, MAX_TOTAL - total));
|
|
82
|
+
if (fresh.length === 0)
|
|
83
|
+
continue;
|
|
84
|
+
for (const d of fresh)
|
|
85
|
+
this.delivered.add(diagnosticKey(uri, d));
|
|
86
|
+
total += fresh.length;
|
|
87
|
+
out.push({ uri, diagnostics: fresh });
|
|
88
|
+
}
|
|
89
|
+
this.pending.clear();
|
|
90
|
+
return out;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/** `file:///a/b/c.ts` → `c.ts` (CC's summary shows basenames, 198:320485). */
|
|
94
|
+
function basenameOfUri(uri) {
|
|
95
|
+
const path = uri.replace(/^file:\/\//, "");
|
|
96
|
+
const idx = path.lastIndexOf("/");
|
|
97
|
+
return idx >= 0 ? path.slice(idx + 1) : path;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* CC 198 `formatDiagnosticsSummary` (198:320480-320499), verbatim shape:
|
|
101
|
+
* ```
|
|
102
|
+
* {basename}:
|
|
103
|
+
* {symbol} [Line {line+1}:{col+1}] {message}[ [{code}]][ ({source})]
|
|
104
|
+
* ```
|
|
105
|
+
* capped at 4000 chars with an honest `…[truncated]` tail.
|
|
106
|
+
*/
|
|
107
|
+
export function formatDiagnosticsSummary(files) {
|
|
108
|
+
const lines = [];
|
|
109
|
+
for (const f of files) {
|
|
110
|
+
lines.push(`${basenameOfUri(f.uri)}:`);
|
|
111
|
+
for (const d of f.diagnostics) {
|
|
112
|
+
const pos = d.range ? `[Line ${d.range.start.line + 1}:${d.range.start.character + 1}] ` : "";
|
|
113
|
+
const code = d.code !== undefined ? ` [${d.code}]` : "";
|
|
114
|
+
const source = d.source ? ` (${d.source})` : "";
|
|
115
|
+
lines.push(` ${severitySymbol(d.severity)} ${pos}${d.message}${code}${source}`);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
const summary = lines.join("\n");
|
|
119
|
+
return summary.length > MAX_SUMMARY_CHARS ? `${summary.slice(0, MAX_SUMMARY_CHARS)}…[truncated]` : summary;
|
|
120
|
+
}
|
|
121
|
+
/** CC 198 model-facing injection block (198:320500-320503), verbatim framing. */
|
|
122
|
+
export function formatDiagnosticsBlock(files) {
|
|
123
|
+
return `<new-diagnostics>The following new diagnostic issues were detected:\n\n${formatDiagnosticsSummary(files)}</new-diagnostics>`;
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=lsp-diagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lsp-diagnostics.js","sourceRoot":"","sources":["../../src/core/lsp-diagnostics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { LspOperation, LspRequestParams, LspResult } from "./lsp.js";
|
|
2
|
+
/**
|
|
3
|
+
* file:// URI for an absolute path. channel [388](service win32 真机逮):this serves TWO lanes —
|
|
4
|
+
* TOC host files (NodeLspManager, host semantics correct) AND remote WS-lane container paths
|
|
5
|
+
* (E2B/kata sidecar, Linux form). `pathToFileURL` is HOST-platform-semantic: on a win32 host it
|
|
6
|
+
* parses a remote `/home/user/x.ts` as drive-relative → `file:///C:/home/user/x.ts` → the remote
|
|
7
|
+
* LSP server gets a nonexistent URI(win32 host + 远程 lane 全瘫). Structural form detection
|
|
8
|
+
* instead(与 [385] fs-safety 双家族修同哲学——路径来自 ExecutionEnv,可能是另一家族,绝不按
|
|
9
|
+
* process.platform 判):POSIX-form absolutes are hand-assembled(percent-encoded per segment,
|
|
10
|
+
* no host path module);drive-letter form keeps `pathToFileURL`(CC parity for Windows files).
|
|
11
|
+
* On a POSIX host the hand-assembled branch matches `pathToFileURL(p).href` for typical paths(space 等常见字符同形;极端字符按 encodeURIComponent 更严格,LSP server 两者都收).
|
|
12
|
+
*/
|
|
13
|
+
export declare function pathToUri(p: string): string;
|
|
14
|
+
/**
|
|
15
|
+
* [K-PLATFORM-SWEEP] MINOR#5: structural inverse of {@link pathToUri} — the naive `file://` prefix strip
|
|
16
|
+
* left win-form URIs as `/C:/x` (never matching the didOpen keys) and never percent-decoded (a space in a
|
|
17
|
+
* filename broke the staleness map). Form-detected, never host `fileURLToPath` (cross-family lanes).
|
|
18
|
+
*/
|
|
19
|
+
export declare function uriToPath(uri: string): string;
|
|
20
|
+
/** The follow-up method for the 2-step call ops (issued by the session after prepareCallHierarchy). */
|
|
21
|
+
export declare function callHierarchyMethod(op: "incomingCalls" | "outgoingCalls"): string;
|
|
22
|
+
/** The LSP method + params for an op (incoming/outgoing FIRST issue prepareCallHierarchy — the session 2-steps). */
|
|
23
|
+
export declare function buildRequest(op: LspOperation, params: LspRequestParams): {
|
|
24
|
+
method: string;
|
|
25
|
+
params: unknown;
|
|
26
|
+
} | undefined;
|
|
27
|
+
export declare function parseResult(op: LspOperation, raw: unknown): LspResult;
|
|
28
|
+
//# sourceMappingURL=lsp-protocol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lsp-protocol.d.ts","sourceRoot":"","sources":["../../src/core/lsp-protocol.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAA8B,MAAM,UAAU,CAAC;AAEtG;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAK3C;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAe7C;AAED,uGAAuG;AACvG,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,eAAe,GAAG,eAAe,GAAG,MAAM,CAEjF;AAOD,oHAAoH;AACpH,wBAAgB,YAAY,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,CAuBxH;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,OAAO,GAAG,SAAS,CAwBrE"}
|