@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,56 @@
|
|
|
1
|
+
# DESIGN DRAFT:workflow 承载 collab 编排(service [423] 六项的统一解)
|
|
2
|
+
|
|
3
|
+
> 状态:草案 v2(clay 方向已认;**dogfood 已跑,判决 adopt_with_conditions**;codex 评审在途)。2026-07-11。
|
|
4
|
+
|
|
5
|
+
## 0. Dogfood 判决(wf_98a5f3c0-902,2 成员×2 轮+综合官,真跑 5 agent)
|
|
6
|
+
|
|
7
|
+
**亲测**:回合制讨论零摩擦——重喂 transcript 够用、第二轮成员精准回应对方、structured output 一次到位。坐实「team discussion 零新机制」基座判断。
|
|
8
|
+
|
|
9
|
+
**讨论产出的设计升级(采纳,覆盖 §1 的 M-A/M-B 原案)**:
|
|
10
|
+
1. **单原语替代双 API**:spawn 返回一等成员 handle;一切交互(续跑/黑板通知/用户插话)=向成员信箱 `post(handle, msg)`,成员只在 turn 边界拉件;「continue」=等回执的 post,「send」=不等回执的 post。投递点确定化=D-1 的根源性缓解。
|
|
11
|
+
2. **D-1 第三解(取代原两候选)**:状态外置+消息序确定——成员 transcript 挂 durable checkpoint(复用 design/45),journal 只记消息投递全序;resume=成员自 checkpoint 恢复+按序补投未消费信件。须形式化为可测不变量(journal 消息序/成员消费游标/checkpoint 截断点三者对齐,含 turn 中途崩溃+恢复窗口新件两个边角,进 npm test 硬门)。
|
|
12
|
+
3. **v1 边界明文=同步回合制**:机会主义激活(经典 blackboard 抢占)与 supervisor 抢占式打断=引擎级调度,不塞数据模式;轮询降级实现**不得冒名 blackboard**(改名 bulletin-rounds 或元数据显式标注降级)。
|
|
13
|
+
4. **解析时点纪律(防污染存量)**:模型回落(零配置=会话当前模型)、center args、动态元数据一律在 journal 记录点快照入事件,resume 零重查;横扫存量解析点。
|
|
14
|
+
5. **用户面三件套与内置 workflow 同批 ship(非 follow-up)**:whenToUse 负向边界(when-NOT-to-use:单一事实题/预算敏感)+ bench 回填成本量级字段(anti-rot)+ 预算上限原语(maxRounds×成员×单发,超限确定性截断不派评估 agent)。
|
|
15
|
+
6. **D-3 定谳**:handle=run 作用域,workflow 终止(含 Ctrl-C)引擎级联回收长命成员,不指望脚本 finally。
|
|
16
|
+
7. **可观测**:信箱深度+投递-消费事件进流式面(turn 边界拉件改变 send 可感知语义,不可观测会被用户误判「成员无视黑板」)。
|
|
17
|
+
8. **TOP 未处置项=D-2**:post 权限矩阵(谁可写谁信箱)+跨成员信件来源标记+注入面横扫(修类不修点)——正式 design 必须专节,dogfood 两轮零讨论,是当前最大洞。
|
|
18
|
+
9. **D-4 补强**:post/handle 放可区隔命名空间+声明稳定性等级,记录与 CC 上游(Observer agents 苗头)的对齐预案。
|
|
19
|
+
> 核心论点(clay 拍):编排统一由 LLM 做(和现在 Workflow 一样),用户在 center 只配「模式里各 slot 用什么模型」;引擎侧不写死任何模式,只保证抽象的支持性。经典模式=数据(内置命名 workflow),不是代码。
|
|
20
|
+
|
|
21
|
+
## 1. 判定:workflow+subagent 现状能承载什么
|
|
22
|
+
|
|
23
|
+
- **team discussion(ring/star/layered)= 今天就能,零新机制**:讨论=脚本控制流(轮次 for + 成员 agent() + transcript 变量);star=协调者 agent 点名下一发言人;layered=嵌套 workflow()/分层脚本;earlyStop(consensus/stability)=轮间带 schema 的评估 agent;finalizer(judge/vote/fuse/verify)=换 prompt+schema 的综合 agent,verify 回炉=script while。②-2/②-5 在此视角下是脚本内容,非机制。
|
|
24
|
+
- **blackboard = 差两个机制口**(能力引擎已有,只是没暴露给脚本面):
|
|
25
|
+
- **M-A `agent.continue(id, prompt)`**:向此前 spawn 的 agent 追加消息并续跑(成员跨轮保留私有上下文)。引擎对应物=SendMessage 死代复活(design/122)。
|
|
26
|
+
- **M-B `send(id, msg)`**:向在飞 agent 的 steerQueue 投递(「黑板有新信件请读取」的信箱语义)。引擎对应物=steerQueue/durable steering(design/47)。
|
|
27
|
+
- **预算**:workflow 已有 `budget`(total/spent/remaining 硬顶),collab 的 budget 语义天生覆盖;runTeamDiscussion 的 [571]③ 轴(cf1f8c1)保留为简单快路径。
|
|
28
|
+
|
|
29
|
+
## 2. 模式=内置命名 workflow(profile,非机制)
|
|
30
|
+
|
|
31
|
+
复制内置 Explore/Plan agent 的形态:ship `team-discussion`/`blackboard`/`advisor` 等**内置命名 workflow**(walk 同一注册表,带 args schema + meta.whenToUse),部署可覆盖、用户可另存变体、`builtinWorkflows:false` 可退出(对齐 builtinAgents 开关先例)。
|
|
32
|
+
|
|
33
|
+
- **args 即配置面**:`{members:[{model?, rolePrompt?}], rounds:{max, earlyStop?}, finalizer:{type, model?}, sharedContext?, budget?}` ——center「用户只配模型」=下发该命名 workflow 的默认 args;调用时可覆盖。
|
|
34
|
+
- **service CollabTemplate 翻译目标**从 runTeamDiscussion 换成 `Workflow({name, args})`,翻译层更薄;子集外跳过逻辑天然消失(五种拓扑全部可承载)。
|
|
35
|
+
|
|
36
|
+
## 3. 用户/LLM 使用面(三条现成通道)
|
|
37
|
+
|
|
38
|
+
1. **skill 作为用户快捷命令**:`/team <议题>` → skill 内调 `Workflow({name:'team-discussion', args})`;skill 调用=Workflow opt-in 门的既有合法通道(规则原文已允许)。
|
|
39
|
+
2. **LLM 自主发现**:命名 workflow 注册表的 `meta.whenToUse`(1.261.0 已落)——「当用户想要多视角合议/多模型对抗讨论时用 team-discussion」;用户一句自然语言即可被对上。
|
|
40
|
+
3. **center 注入**:center 配 per-模式 per-slot 模型 → 下发默认 args;LLM/用户不给参数即用之。
|
|
41
|
+
|
|
42
|
+
## 4. 已识别的设计难点(评审重点)
|
|
43
|
+
|
|
44
|
+
- **D-1 确定性 resume**:workflow journal 重放假设 agent(prompt, opts) 纯函数式缓存;M-A/M-B 引入跨 call 状态(continuation 的结果依赖成员既往上下文)。方案候选:continuation/send 也入 journal 按序重放(agent id 映射 journal 内句柄,resume 时按原序重放到未完成点);或 M-A/M-B 标记该 run「粗粒度 resume」(从最近 phase 边界重跑)。
|
|
45
|
+
- **D-2 send 的注入面**:脚本可向任意在飞 agent 投递文本——信任边界=脚本本身已是特权面(能 spawn agent),但需确认 send 内容按 untrusted 包裹与否(对齐 steer 的 trusted/untrusted 双轨)。
|
|
46
|
+
- **D-3 成员活性与泄漏**:blackboard 模式成员是长命 agent,越轴/超时的清理责任在脚本还是运行时?(倾向:运行时兜底=workflow 结束强制回收所有子 agent,脚本层 budget 闸先例已有)。
|
|
47
|
+
- **D-4 CC 上游演化兼容**(clay 点名):CC 的 workflow 能力会继续进化(本次活体探针已证 198 有完整 Workflow 工具:script/scriptPath/resumeFromRunId/args+确定性禁令)。M-A/M-B 作为 sema 扩展要**不挡后续 CC 对齐**:命名与形态尽量中性(agent 句柄+continue/send 是通用概念),若 CC 后续 ship 同类能力,以 CC 形态为准重整(vendored-can-change 纪律)。
|
|
48
|
+
- **D-5 advisor/supervisor 模式的归位**:advisor=对在飞任务的观察+建议,与 design/80 supervisor(权力面)和 CC 206 Observer agents(实验期,WATCH)三者关系需在 profile 层厘清,不新造机制。
|
|
49
|
+
|
|
50
|
+
## 5. 一期切片(只保支持性)
|
|
51
|
+
|
|
52
|
+
1. M-A/M-B 两个脚本机制口(含 D-1 的 resume 设计)——core。
|
|
53
|
+
2. 内置命名 workflow 样板一个(team-discussion)+ args schema + whenToUse——core(profile 数据)。
|
|
54
|
+
3. skill 样板(/team)——shell/飞轮侧接。
|
|
55
|
+
4. CollabTemplate→Workflow({name,args}) 翻译——service([423] ②-3 同批)。
|
|
56
|
+
5. blackboard/advisor 等其余模式 profile:等真模板信号(a2 现零真模板)。
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
# DESIGN: oracle 接地硬闸(交付物内嵌可校验结构 → 收尾自证升级为 oracle 接地)
|
|
2
|
+
|
|
3
|
+
> 设计草案(不落码)。2026-07-10。承接 `docs/PASSWORD-RECOVERY-PANEL-VERDICT-2026-07-10.md` 第六节候选杠杆①。
|
|
4
|
+
> 中性口径:全文用「重建/取证类任务」「交付物」「可校验结构」等中性词,不描述具体执行细节。
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 0. 问题陈述(一句话)
|
|
9
|
+
|
|
10
|
+
一类「交付物内嵌可校验结构」的重建/取证任务里,模型有时基于「满足题面自然语言约束」就自证过关,而没有拿**交付物自带的独立客观判据**(结构字段、内嵌校验值、参考数据、可回放确定性)去接地确认。现有 R9 final-verify 已点名此类校验,但形态是 **one-shot 软提示**,被早期锚死错误约束的模型会就地绕过。目标:把「欠定自证」升级成「oracle 接地」,且**杠杆必须泛化到整类题,禁单题脚手架**。
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 1. 行为锚调查结论(CC 轨迹取证,决定机制该锚在哪个抽象层)
|
|
15
|
+
|
|
16
|
+
纪律:SEMA-only 机制要有 CC 轨迹跨题 ≥2 重复才可锚,单题=运气不锚。取证覆盖两个 job(`cc-pro-r3-full`/`cc-pro-full`,各 ~89 题),逐题读了 13 个不同重建/取证类任务的收尾段。
|
|
17
|
+
|
|
18
|
+
**锚证表**(任务 | 校验形态 | 轨迹坐标 | PASS):
|
|
19
|
+
|
|
20
|
+
| 任务 | 校验形态 | 坐标(step) | PASS |
|
|
21
|
+
|---|---|---|---|
|
|
22
|
+
| password-recovery (r3) | 内嵌校验值重算比对(交付物拼装后重算内嵌校验字段,对上容器头声明值,匹配才写答案) | S22-26 | ✅ |
|
|
23
|
+
| extract-elf (r3) | 逐值交叉核对原始字节(采样值对 raw binary 逐一核验,含文件头标识) | S9-10 | ✅ |
|
|
24
|
+
| code-from-image (r3) | 摘要值题内 oracle(重算摘要链,前缀对上题目给的提示值) | S6/S12-13 | ✅ |
|
|
25
|
+
| sqlite-db-truncate (r3) | 结构重解析核对(从原始字节逐单元重解析,对上产出) | S3/S7-9 | ✅ |
|
|
26
|
+
| path-tracing (r3) | 像素级 diff 参考数据(重建与参考图逐像素比对) | S29/S33/S35-42 | ✅ |
|
|
27
|
+
| path-tracing-reverse (r3) | 像素级 diff 参考数据 | S49-50 | ✅ |
|
|
28
|
+
| path-tracing-reverse (pro) | 像素级 diff 参考数据 | S58-69 | ❌(行为在,结果挂) |
|
|
29
|
+
| reshard-c4-data (r3) | 全量摘要值比对 + 边界 round-trip 重放 | S38-42 | ✅ |
|
|
30
|
+
| reshard-c4-data (pro) | 全量摘要值比对 + round-trip 重放 | S28-38 | ✅ |
|
|
31
|
+
| write-compressor (pro) | oracle 重跑 + diff(拿题目自带反向工具跑自己输出再比对) | S11/S14 | ✅ |
|
|
32
|
+
| pytorch-model-cli (pro) | 参考实现 oracle diff(先跑参考实现,再确认自己输出一致) | S9/S16 | ✅ |
|
|
33
|
+
| db-wal-recovery (pro) | 文件头标识核对 + 结构验证 | S3-5/S9 | ✅ |
|
|
34
|
+
| crack-7z-hash (r3) | (弱/隐式)裸字节判产出损坏 + 工具自带完整性校验 | S8/13/16/24 | ✅ |
|
|
35
|
+
| protein-assembly (r3) | 结构验证(裸字节核尾部约束) | S16-19 | ❌(行为在,结果挂) |
|
|
36
|
+
|
|
37
|
+
**形态重复统计(跨不同任务)**:
|
|
38
|
+
|
|
39
|
+
| 形态 | 不同任务数 | 可锚? |
|
|
40
|
+
|---|---|---|
|
|
41
|
+
| diff / 比对参考数据(逐像素/逐文件/逐值) | ≥6 | ✅ 强可锚 |
|
|
42
|
+
| 裸字节读取 + 结构重解析对账 | ≥5 | ✅ 可锚 |
|
|
43
|
+
| 内嵌校验值(CRC/摘要族)重算比对 | ≥4 | ✅ 可锚 |
|
|
44
|
+
| 文件头标识核对 | ≥3 | ✅ 可锚 |
|
|
45
|
+
| oracle / 参考实现重跑确认 | ≥3 | ✅ 可锚 |
|
|
46
|
+
| round-trip / 重放确定性 | ≥3 | ✅ 可锚 |
|
|
47
|
+
| 某一 exact 具体手法(单题手算某一内嵌校验值) | 1 | ❌ 单题不可锚 |
|
|
48
|
+
|
|
49
|
+
**决定性结论(锚在哪一层)**:
|
|
50
|
+
- **具体手法层不可锚**:password-recovery 用到的那一 exact 校验手法是单例 = 运气,不能拿它当 SEMA-only 对照锚,更不能据它做单题脚手架。
|
|
51
|
+
- **抽象行为类可锚**:上一层「交付前用交付物自带的独立 oracle / 结构判据接地确认」这一**行为类**,在 CC 轨迹上跨 ≥6 种形态、每种 ≥2 不同任务稳健重复,且在两个失败 run 里也照样出现(path-tracing-reverse/protein-assembly reward=0 仍执行了该校验)→ **这是收尾的普遍习惯,不是 PASS 幸存者偏差**。
|
|
52
|
+
- 因此:**机制必须锚在「有可校验结构就做接地确认并报告校验结果」这一泛化行为类,不能锚在任何单一手法**。这直接约束了下面机制的判据设计(触发条件按「结构可校验」的通用信号,不按题名/题内魔法值)。
|
|
53
|
+
- 诚实注:该轨迹是「CC 壳 + deepseek-v4-pro 模型」,若锚证目标是「CC harness 引导下的收尾校验行为」完全成立;非 Anthropic 模型本体。
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## 2. 现状引擎面(改动基线)
|
|
58
|
+
|
|
59
|
+
- `src/core/runner/runtask.ts:1957-2015`:`finalVerification:true` opt-in。在自然结束的排空点注入**一次** system-reminder(设 `finalVerifyInjected=true`,下一次结束即穿透放行)。文案已点名结构校验/参考数据/内嵌校验值,但**是 one-shot 软提示**。
|
|
60
|
+
- `src/prompts/default.ts:586-588`:常驻宪法「验证最终产物而非代理、读校验输出并据以修正」。同样是软纪律。
|
|
61
|
+
- 已有可复用机构:stop-hook 路径(`runtask.ts:2016-2054`)已支持**重复 block + 上限**(`STOP_HOOK_BLOCK_CAP=8`),每次 block 把 reason 注入为 system-reminder 再续跑一轮,超帽由引擎 override 放行。**这套「block 直到通过、封顶 N」的机构已存在** —— 硬闸档不必新造循环。
|
|
62
|
+
- `wroteThisRun`(:1674)= ≥1 个非 read 工具调用即 arm(未注册工具效果默认按 write 处理)。这是判「本 run 是否产出了交付物」的现成信号。
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## 3. 机制候选(两档 + 组合)
|
|
67
|
+
|
|
68
|
+
### 档 A —— prompt 升级(软,但每轮可重入)
|
|
69
|
+
|
|
70
|
+
**做什么**:把 R9 文案里的结构校验从「点名列举」升为**祈使级契约**:「若交付物内嵌可校验结构(结构字段/内嵌校验值/参考数据/可回放确定性),你**必须**执行对应的接地校验并在收尾**报告校验结果**;没有报告校验结果 = 未完成」。同时把 one-shot 改为**可重入软提示**:每次自然结束时,若检测到「交付物疑似含可校验结构 且 收尾文本无校验结果报告」,则再注入一轮(复用 stop-hook 的 additionalContext 通道,受同一 cap 封顶),而非只注入一次就穿透。
|
|
71
|
+
|
|
72
|
+
- **改动面**:`src/prompts/default.ts` R9/宪法文案;`runtask.ts` 把 `finalVerifyInjected` 从「一次性 latch」放宽为「带 cap 的可重入」(判据见下)。**不新增判据机构**,复用 wroteThisRun + stop-hook cap。
|
|
73
|
+
- **风险**:
|
|
74
|
+
- 过度阻塞好答案:低。软提示不阻止结束,只多注入几轮;有 cap 兜底。
|
|
75
|
+
- 无 oracle 题误触发:中。若判据只看「wroteThisRun」会对纯 Q&A/无结构产出题误注入。**缓解**:判据须叠加「交付物疑似含可校验结构」的弱信号(见 §3.C 判据),Q&A/read-only run 不 arm。
|
|
76
|
+
- 增益接近 model_luck:R9 注释自陈,prompt discipline 增益低落地率。**必须 A/B 坐实**。
|
|
77
|
+
- **对 CC 锚的对应**:精确对上「行为类可锚、手法不可锚」—— 文案只要求「有可校验结构就接地并报告」,不点任何具体手法,泛化正确。
|
|
78
|
+
|
|
79
|
+
### 档 B —— 引擎硬闸(校验通过才放行 / 最多 N 次重入)
|
|
80
|
+
|
|
81
|
+
**做什么**:收尾自检**检测**到交付物含可校验结构时,把 final-verify 从 one-shot 升为**条件放行**:在放行前要求本 run 出现过「对交付物的接地校验动作 + 其结果被读取」的证据信号;缺失则 block 一轮(注入定向 reminder),最多重入 N 次,N 次后引擎 override 放行(同 stop-hook cap 语义,绝不 wedge)。
|
|
82
|
+
|
|
83
|
+
- **改动面**:`runtask.ts` final-verify 分支扩展一个**判据函数**(下节),接到已有 stop-gate 的 block/cap 循环上;可能新增一个轻量「本 run 是否观察到接地校验信号」的追踪器(扫工具调用/产出里的结构对账动作,thin projection,不读全文)。文案侧同 A。
|
|
84
|
+
- **风险**:
|
|
85
|
+
- **过度阻塞好答案**:中-高。这是硬闸最大风险 —— 一个已正确但没显式跑校验的好答案会被反复 block 到 cap。**缓解三重**:①判据是「疑似含可校验结构」的**保守 gating**(宁可漏 gate 也不错 gate);②cap 小(建议 N=2~3,远小于 stop-hook 的 8),到帽必放行;③永不 gate 已提交 StructuredOutput(复用 `outputRef.set` 判别,同现分支)、永不在 maxTurns-1 gate(同现 MED[3] 护栏)。
|
|
86
|
+
- **无 oracle 题误触发**:中。判据误判「含可校验结构」会对无结构题浪费轮次。**缓解**:判据白名单式弱信号(见 §3.C),阈值宁严勿宽;误触发的代价被 cap 上限 bound 住(最多浪费 N 轮)。
|
|
87
|
+
- **判据本身不可靠**:引擎无法真正「验证校验是否通过」(那要重跑评测面),只能观察「模型是否执行了接地校验动作并读了结果」。所以硬闸真实语义 = **「强制模型至少执行一次接地校验并报告」**,而非「校验结果为真才放行」。这点必须在文案/注释里诚实标注,避免误以为引擎能判对错。
|
|
88
|
+
- **对 CC 锚的对应**:对上「该校验行为是普遍收尾习惯(失败 run 也做)」—— 硬闸把「习惯」变「强制」,与 CC 轨迹里模型自发、跨题、失败也做的画面同向。仍不点手法,泛化正确。
|
|
89
|
+
|
|
90
|
+
### 档 C —— 触发判据(A/B 共用,决定误触发面)
|
|
91
|
+
|
|
92
|
+
关键难点 = **如何判「交付物内嵌可校验结构」而不写单题特判**。分层弱信号(命中任一即视为「疑似可校验」,保守 gating):
|
|
93
|
+
|
|
94
|
+
1. **任务侧信号**:题面/交付契约提到参考数据、期望输出、可校验字段、内嵌完整性值、可回放判据等**通用词类**(不是题名匹配)。
|
|
95
|
+
2. **产出侧信号**:本 run 产出了**二进制/容器/结构化数据类交付物**(非纯文本报告),或产出对象声明了 size/长度/头部标识等结构字段。
|
|
96
|
+
3. **过程侧信号**:本 run 已出现裸字节读取 / 结构解析 / 参考数据存在的动作(说明模型自己都在跟结构打交道)。
|
|
97
|
+
|
|
98
|
+
- 判据取「保守 gating」:上述信号弱且叠加,漏 gate(无害,退化成现状 one-shot)优于错 gate(浪费轮次 + 阻塞好答案)。
|
|
99
|
+
- **判据禁项**:禁按题名(password-recovery)、禁按题内具体魔法值、禁任何单题专用分支。判据必须能被上面 §5 的多题验证集共同触发。
|
|
100
|
+
|
|
101
|
+
### 推荐:AB 组合(A 先行 + B 收口),分两步
|
|
102
|
+
|
|
103
|
+
- **第一步 = A**:文案升「必须执行 + 报告校验结果」+ 可重入软提示。改动小、风险低、可立即 A/B。**先坐实 prompt 升级本身的增益**(隔离变量)。
|
|
104
|
+
- **第二步 = B(条件上)**:仅当 A 的 A/B 显示「软提示可重入仍拉不回自证过关的模型」(即 password-recovery 类高方差题在 A 下落地率仍不足)时,再上硬闸 B,cap 取 2~3,判据同 §3.C。B 的价值 = 把 A 的「软重入」升成「带下限的强制接地」,直接治「锚死错误约束、软提示就地绕过」这一失败面。
|
|
105
|
+
- 不推荐一步到位只上 B:硬闸的过度阻塞风险需要 A 先把判据面/文案面调稳,再叠强制,否则 B 的 false-gate 会污染 A/B 读数。
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## 4. 非目标(硬约束)
|
|
110
|
+
|
|
111
|
+
- **禁单题脚手架**:任何 password-recovery 专用逻辑、专用判据、专用魔法值匹配 = 禁。杠杆必须泛化到「交付物内嵌可校验结构」整类题(见 §5 验证集 ≥3 题共同受益)。
|
|
112
|
+
- **不做「引擎判对错」**:引擎不重跑评测面、不宣称能判校验结果真假;硬闸真实语义 = 强制「至少执行一次接地校验并报告」。
|
|
113
|
+
- **不加预算/不补取证**:评审团已坐实信息不缺、取证链完整;杠杆只在「收尾验证面」,不在取证/预算维度。
|
|
114
|
+
- **不碰无结构题**:纯 Q&A / read-only / 纯文本报告类不 arm,不 gate。
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## 5. A/B 验收方案
|
|
119
|
+
|
|
120
|
+
### 验证集(从 89 题按「交付物含可校验结构」筛,禁只含 password-recovery)
|
|
121
|
+
|
|
122
|
+
必入 3 题(同类、判据必须共同覆盖):
|
|
123
|
+
1. **password-recovery** —— 主靶(内嵌校验值 + 结构字段)。
|
|
124
|
+
2. **extract-elf** 或 **sqlite-db-truncate** —— 结构重解析类(文件头标识 / 逐单元对账),CC 在此稳过且稳定执行接地校验。
|
|
125
|
+
3. **reshard-c4-data** 或 **write-compressor** —— 参考数据 diff / round-trip 重放类(全量比对 / oracle 重跑),判据的「参考数据/可回放」分支代表。
|
|
126
|
+
|
|
127
|
+
对照锚(判据必须**不误触发**的负样本,验过度阻塞):
|
|
128
|
+
4. 一个**无可校验结构**的写任务(如 log-summary-date-ranges / nginx-request-logging 类纯文本产出)—— 期望:A/B 均**不 gate**、不注入额外轮次。
|
|
129
|
+
|
|
130
|
+
### 协议
|
|
131
|
+
|
|
132
|
+
- **N ≥ 5** 双版本(baseline vs 候选档),同模型(deepseek-v4-pro)、同 job 配置、同并发(用标定档并发,不用高并发以免测量污染)。
|
|
133
|
+
- 三臂:baseline(现 one-shot)/ A(可重入软提示)/ B(硬闸 cap=2)。至少先跑 baseline vs A;A 达标不足再加 B 臂。
|
|
134
|
+
- **判据写死**(避免事后挪门):
|
|
135
|
+
- **主判据**:验证集 3 题(1-3)的 reward=1 率,候选档 vs baseline。password-recovery 单题高方差,以 3 题**合并 pass 计数**为主读数(单题波动不作结论)。
|
|
136
|
+
- **落地率判据**:候选档下,验证集 3 题里「收尾出现接地校验 + 报告校验结果」的轨迹比例(观测轨迹关键动作,确定性 grep,不用 LLM-judge)。目标:显著高于 baseline。
|
|
137
|
+
- **过度阻塞判据(负样本)**:第 4 题(无结构写任务)在候选档下的**额外注入轮次 = 0**、reward 不下降。任一违反 = 判据不通过。
|
|
138
|
+
- **不 wedge 判据**:任何题都不得因 gate 撞 maxTurns 变 limit.max_turns(复用现 MED[3] 护栏,回归验证)。
|
|
139
|
+
- **诚实边界**:password-recovery 是高方差题,增益必须 3 题合并 N≥5 坐实,禁当确定性修复报(与 R9 注释「增益接近 model_luck」一致)。若 A/B 显示增益带内不可分,如实报「不可分」,不给 fake credit。
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## 6. 输出格式陷阱(评审团第五节)——是否同闸兜住
|
|
144
|
+
|
|
145
|
+
评审团独有发现:某历史 run 取证全对、也做了内嵌校验值比对、拼对了正确的裸值,但**最后一跳把「恢复出的文件内容」错当「要提交的本体值」**,写进了带 `字段名=` 前缀的文件行而非裸值 → 验收面要裸值 in guesses → FAIL。
|
|
146
|
+
|
|
147
|
+
**判断:本闸兜不住,需独立小修。** 理由:
|
|
148
|
+
- oracle 接地硬闸治的是「交付物的**内容正确性**没被接地确认」;而输出格式陷阱是「内容正确、但**提交载体/表示层**错位」—— 正交问题。模型此时的自证会说「校验通过」(因为它校的是文件内容的正确性,确实通过了),硬闸放行,格式错位仍在。
|
|
149
|
+
- 这对应 §1 里 CC 锚证的另一条独立纪律:pytorch-model-cli / password-recovery 的 CC PASS run 显式**区分了「文件内容」与「要提交的本体值」并分别落位**。这是「验收面语义对账」的子项,不是「oracle 接地」的子项。
|
|
150
|
+
|
|
151
|
+
**独立小修建议(不在本闸,单独一节记账)**:
|
|
152
|
+
- 归入 R9 文案已有的「验收面语义对账」腿(default.ts:587「Verify the final artifact, not a proxy … judged the way the task itself will be judged」),补一句中性纪律:「确认你提交的是**验收面要的本体值**,不是包裹它的文件行、前缀、或中间表示 —— 按验收面**逐字**核对提交载体」。
|
|
153
|
+
- 这条同样是软纪律、需并入同一 A/B(用带此陷阱的历史 run 作回归样本),但**机制独立于 oracle 接地闸**,不应把两者耦合进同一硬闸(否则判据面糊、A/B 变量不隔离)。
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## 7. 推荐档位(一句话)
|
|
158
|
+
|
|
159
|
+
**AB 组合、分两步**:先上 **A**(R9 文案「必须执行 + 报告校验结果」+ 可重入软提示,复用 stop-hook cap),隔离坐实 prompt 增益;**A 落地率仍不足时再上 B**(硬闸 cap=2~3、判据保守 gating、语义诚实标注为「强制至少一次接地校验+报告」而非「判对错」)。输出格式陷阱**独立小修**并入「验收面语义对账」腿,不耦合本闸。全部增益以 3 题合并 N≥5 双版本坐实,不当确定性修复。
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## 附:证据坐标
|
|
164
|
+
|
|
165
|
+
- 引擎:`src/core/runner/runtask.ts:1957-2015`(R9 one-shot)、:2016-2054(stop-hook block/cap 可复用机构)、:1674(wroteThisRun arm)、:89(STOP_HOOK_BLOCK_CAP=8);`src/prompts/default.ts:586-588`(常驻验证宪法)。
|
|
166
|
+
- CC 锚证:见 §1 锚证表;job 根 = 测试机 `~/sema-tb/jobs/{cc-pro-r3-full,cc-pro-full}/<task>__<id>/`,reward 字段 = `result.json` 的 `"reward"`。
|
|
167
|
+
- 评审团:`docs/PASSWORD-RECOVERY-PANEL-VERDICT-2026-07-10.md`(合议判决 §四 + 候选杠杆 §六 + 输出格式陷阱 §五)。
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# design:T-FRAG 内在一致性对账脚手架(RSI 轮11 落码候选,2026-07-09)
|
|
2
|
+
|
|
3
|
+
> 来源:password-recovery(T-FRAG)归因链闭合(`docs/FRAG-RECON-INVESTIGATION-2026-07-09.md` 第四/五部分)——prompt 锚已封(sema 验证面已强于 CC 198),行为锚成立(CC 跨 6/7 计算/取证题真·内在一致性对账)。案由从「不可锚不修」翻转为「引擎侧行为脚手架落码候选」。本档=设计探路(opus)结论,**未落码**。task #54。
|
|
4
|
+
|
|
5
|
+
## 一、关键纠正:四原则不在静态 prompt,已在引擎注入面
|
|
6
|
+
|
|
7
|
+
1.258.6「验证面四原则 A/B/C/E」落在 **design/132 final-verify stop-gate 注入文案**,即 `src/core/runner/runtask.ts:2004-2011`(非 `src/prompts/`)。静态 prompt 另有两处常开基线:`src/prompts/default.ts:60-69`(DEFAULT_SYSTEM_PROMPT ## Verification)+ `585-588`(CODE_AGENT_PROMPT)。
|
|
8
|
+
|
|
9
|
+
**真分界不是文本位置,而是:文本引导(告诉它验)vs 机械牙齿(不给证据不放行)。** 现在 R9 有时机、有文本、**无牙齿**——注入后模型下一个 natural end 无条件放行(one-shot latch,`runtask.ts:1974`)。
|
|
10
|
+
|
|
11
|
+
## 二、T-FRAG 死法比四原则深一层
|
|
12
|
+
|
|
13
|
+
四原则治「验收面选错」(拿自一致当正确)。T-FRAG 死法更深:**答案本身是构造的,不是从源数据读出来的**——agent 验「我的串满足题面约束」(表层 checklist),而非「答案==源真实数据」。现文本缺一条**溯源纪律**:「凡从源数据恢复/推导的答案,每一段都必须能在源数据里定位回去;定位不回=你编的」。这正是 CC 六题行为锚公共本质(CRC 对账/回读源库/独立重解析都 = answer↔source 双向可追溯)。
|
|
14
|
+
|
|
15
|
+
## 三、收尾流程代码路径(索引)
|
|
16
|
+
|
|
17
|
+
| 机制 | 坐标 | 触发 | 可观测 |
|
|
18
|
+
|---|---|---|---|
|
|
19
|
+
| R9 final-verify(design/132) | `runtask.ts:1948-2015`;开关 `spec.finalVerification`(`types.ts:846-857`,默认 OFF,sema-tb 默认 ON `bin/sema-tb.ts:429`) | natural end 的 setStopGate,门:`wroteThisRun && !finalVerifyInjected && !outputRef.set && turns<maxTurns-1` | **无 wire echo**,仅 `stats.mechanisms.finalVerifyInjected` latch(`:3155`) |
|
|
20
|
+
| R8 graceful-finalize(design/130 P2) | `runtask.ts:2190-2225`;默认 ON | 临墙钟,turn boundary steer | 有 `steering_injected source:"finalize"` echo |
|
|
21
|
+
| write-effect 检测 | `runtask.ts:1674-1675`(toolEffects 来自 `prepare-task.ts:745-823`) | ≥1 非 read 工具 → wroteThisRun | — |
|
|
22
|
+
|
|
23
|
+
R8×R9 协调已审定(`docs/R8-R9-FINALIZE-COORDINATION-2026-07-09.md`):互补非冲突。**现成扩展点 = R9 stop-gate,不需新通道。**
|
|
24
|
+
|
|
25
|
+
## 四、P0 前置事实核查(决定落码方向,不可拍脑袋)
|
|
26
|
+
|
|
27
|
+
T-FRAG 四注跑在 finalVerification ON + 有写盘,**大概率 R9 已注入含全文,agent 仍构造伪串**(与 FINAL-VERIFY-SURFACE-AUDIT「9/9 情形③验证面错位」同型)。但 R9 无 wire echo,未坐实。须回测试机核两事实(在飞:agent a1109b2592486268f):
|
|
28
|
+
1. 四注 `finalVerifyInjected` latch = true/false?
|
|
29
|
+
2. R9 注入后 agent 有没有对源数据做 read 工具调用?
|
|
30
|
+
|
|
31
|
+
**三岔判定**:
|
|
32
|
+
- **岔 A**(触发+有回读/验错对象)→ 方案 B(文案定向升级:溯源子句)
|
|
33
|
+
- **岔 B**(触发+零回读/纯 checklist 背书)→ 方案 B + C1(证据门:不回读不放行)
|
|
34
|
+
- **岔 C**(R9 没触发)→ 先修门控归因,方案搁置重判
|
|
35
|
+
|
|
36
|
+
## 五、候选方案权衡
|
|
37
|
+
|
|
38
|
+
| | A 静态 prompt | B 文案升级+echo | C1 证据门 | C2 独立 verifier |
|
|
39
|
+
|---|---|---|---|---|
|
|
40
|
+
| 改动面 | 极小 | 小 | 小-中(~25 行) | 大 |
|
|
41
|
+
| BREAKING | 否 | 否(additive wire) | 否 | 否但编排面新增 |
|
|
42
|
+
| 直击 T-FRAG 死法 | 否(已证无效层) | 是(溯源子句) | 是(若死法=零回读) | 是(结构性) |
|
|
43
|
+
| 伪增益风险 | 高(基本坐实) | 中高 | 中(视 P0) | 低但成本高 |
|
|
44
|
+
| 活体探针 | 无法区分 | echo+grep 事件流 | latch+工具调用计数(全确定性) | 事件流可见 |
|
|
45
|
+
| token/turn 税 | ~0 | ~0 | 最坏 +1 turn | 重 |
|
|
46
|
+
|
|
47
|
+
- **方案 A 不独立做**(锚核已证 sema prompt 已强于 CC,再堆文本=往没被执行的纪律堆再堆一条=伪增益)。
|
|
48
|
+
- **方案 B 溯源子句草案**(落码打磨):"If your answer or deliverable content was recovered/reconstructed/derived FROM source data, reconcile it against that source before finishing: locate every part back in the source bytes (a fragment you cannot find in the source was constructed by you, not recovered), and where the source carries integrity data (checksums, lengths, record counts), recompute and compare. Satisfying format constraints is NOT this check; a self-written checklist that only re-states the constraints is self-endorsement, not verification."
|
|
49
|
+
- **wire echo 无论哪岔都做**:stop-gate 注入发 `steering_injected source:"final_verify"`(`types.ts:1699` union 追加一枚,additive wire 契约,黑板知会非 BREAKING)——它是既有立案的验证覆盖缺口,也是一切活体探针前提(没 echo 探针做不了)。
|
|
50
|
+
- **C2 记档缓议**(唯一结构性破自我背书,但改动/token 税重)。
|
|
51
|
+
|
|
52
|
+
## 六、反方论证(诚实边界,止损线)
|
|
53
|
+
|
|
54
|
+
1. **CC 赢的是模型自发判断力,不是脚手架**:CC 198 单代理 verified-absent、零收尾机制,6/7 题照样真对账。sema 文本+注入都比 CC 多还是死→最合理空模型=**模型侧心智差异**(碎片化 vs 损坏先验),那不是引擎变量。此路线可能整体不该落码。
|
|
55
|
+
2. **文本槽边际已被活体证据打折**:9/9 情形③=注入了也验了、验错对象。B 赌「换判据方向的措辞」≠「验收面措辞」,是假设非证据。
|
|
56
|
+
3. **止损线预立**:快环 N=3 无增益即**回滚文案**,不留「反正无害」僵尸段落;接受 T-FRAG 留 CC-diff 独占死账(与 polyglot 模型面同类)。
|
|
57
|
+
|
|
58
|
+
## 七、快环验证方案
|
|
59
|
+
|
|
60
|
+
- 题集:password-recovery(主靶 0/4)+ sqlite-db-truncate + financial-document-processor(行为锚双实证,financial 现 PASS 当回归哨)各 N=3,`@candidate` vs `@1.259.0`;+1 道非重建题 N=2 测误伤/token 税。
|
|
61
|
+
- 判据(确定性零 LLM-judge):① reward 翻转(T-FRAG ≥1/3 方向性,3/3 坐实);② 活体探针=events.jsonl 出现 `steering_injected source:"final_verify"` 且注入后 ≥1 次针对源数据 read 工具调用(验行为发生非自述);③ `TB_FINALVERIFY=0` 一注排除注入本身致害;④ 非重建题零回退、turn 增量 ≤1。
|
|
62
|
+
- 并发:判决腿标定档(≤8)按题配。
|
|
63
|
+
|
|
64
|
+
## 八、P0 事实核查回归 + 落码判决(2026-07-10,两独立 opus 腿收敛)
|
|
65
|
+
|
|
66
|
+
两个独立 P0 腿(ab22f9315ecca1ec2 + a1109b2592486268f,对抗冗余)全部坐实,结论收敛:
|
|
67
|
+
|
|
68
|
+
**四注 × 两事实**(latch 在 `agent/events.jsonl` 末条 `done` 事件的 `stats.mechanisms`,非 result.json):
|
|
69
|
+
| 注 | R9 触发 | 注入后行为 | 岔 |
|
|
70
|
+
|---|---|---|---|
|
|
71
|
+
| rsVdoZX | ✅ true | 回源读 `.dat` 原始字节,但 confirmatory 自证(察觉约束不符却无力修) | A |
|
|
72
|
+
| 4epyX6Y | ✅ true | 回源 `dd skip=1048652 \| xxd` 复读,但"确认自己错误重建为唯一可能" | A |
|
|
73
|
+
| UzuSuuP | ✅ true | 零回源,仅 `cat` 自身产出 + 纯 bash 格式校验循环 | B |
|
|
74
|
+
| DJbVmWq | ✅ true | 零回源,仅 1 次 `Read` 复读自身产出即收尾 | B |
|
|
75
|
+
|
|
76
|
+
- **岔 C = 0 注**:R9 门控四注全健康触发,`wroteThisRun`/headroom 门无一拦截。**门控归因彻底排除**。
|
|
77
|
+
- **死法 2:2**:一半回源但验错对象(confirmatory),一半纯自建 checklist 背书。共同深层死因=把"exactly 23 characters"误读为"PASSWORD= 行长 23→密码 14 字符"+ 未建"两碎片按序拼接"模型(DJbVmWq 找到后段碎片又主动否决"不以 8XD 开头")。
|
|
78
|
+
|
|
79
|
+
### 杀死落码候选的实锤:文本杠杆已耗尽
|
|
80
|
+
R9 现行注入文案(`runtask.ts:2004-2011`,1.258.6 四原则)**已逐字包含**本设计要加的"溯源子句"全部实质:
|
|
81
|
+
- (a)"re-running your own implementation and getting the same answer is **self-consistency, not correctness**" = 禁 confirmatory 自证(直接命中岔 A 的 confirmatory 死法);
|
|
82
|
+
- (b)"cross-check through an independent second path (**checksums**, runtime artifacts)" = CRC/完整性重算(= CC step-64 制胜招);
|
|
83
|
+
- (c)"against every hard constraint from the original task text (**numeric bounds**, allowed-value lists...)" = 23 字符约束逐字对账。
|
|
84
|
+
|
|
85
|
+
**T-FRAG 四注就是在这段文案已注入的情况下 FAIL 的。** 设计档反方 point 2(文本槽边际递减)由假设升为实锤:要加的纪律早在注入文本里,agent 读了、2 注还真回了源,照样构造伪串/误读约束。→ **方案 A/B(文案路)确认耗尽,不落码。**
|
|
86
|
+
|
|
87
|
+
### 剩余引擎杠杆逐条否决
|
|
88
|
+
- **C1 证据门(强制注入后必须回源 read 才放行)**:只覆盖 2/4 岔 B(零回源);对 2/4 岔 A(已回源)**无效**(它们已满足"回源"前置);且误伤无源可读的生成/问答题 + turn 税;且岔 A 两注察觉约束冲突仍无力修=**模型面**,证据门防自证背书但**不保证重建正确**。→ 部分 + 高风险 + 低确定,**单题不值核心路径机械门的风险(修类不修点:1 题 2 注不构成类)**。
|
|
89
|
+
- **C2 独立 verifier**:若复用同模型同错误约束解读→同样 FAIL;改动/token 税重。→ 否。
|
|
90
|
+
- **门控修**:岔 C=0,无归因问题。→ 无对象。
|
|
91
|
+
|
|
92
|
+
### 初判(待对抗腿 a09aea87c8017c0a2 确认):**关门,归 CC-diff 独占模型面死账**
|
|
93
|
+
增益不在引擎变量:文本杠杆耗尽(已注入照样死)、证据门部分+风险+不保证、模型面(碎片化 vs 损坏先验 + 23 字符解读)是主导。与 `polyglot-rust-c` 同类(模型面归因)。**符合止损线(反方 point 1):sema 文本+注入都比 CC 多还是死→模型侧心智差异,非引擎变量,整体不该落码。**
|
|
94
|
+
|
|
95
|
+
### 唯一存活的正交 actionable(与 T-FRAG 结局无关)
|
|
96
|
+
**R9 wire echo**:R9 注入无 `steering_injected` 事件(仅 latch),是既有立案的验证覆盖观测缺口(P0 取证被迫靠 reasoning 回声反推注入点)。additive union 追加 `source:"final_verify"`(`types.ts:1699`),非 BREAKING,**并入下批遥测小修,不作 T-FRAG 修**。是一切未来 R9 活体探针的前提。
|
|
97
|
+
|
|
98
|
+
### 证据门 deferred-for-class(不弃,升级触发条件)
|
|
99
|
+
若后续 M2/M3 围栏发现**多题**共享岔 B"零回源纯自建 checklist 背书"死法(≥3 题成类),则证据门按修类不修点重新立案(为类担核心路径风险)。当前 1 题 2 注不够。
|
|
100
|
+
|
|
101
|
+
## 关键代码坐标索引
|
|
102
|
+
`runtask.ts:1948-2015`(R9 gate+四原则)、`:1143-1146,1674-1675`(wroteThisRun)、`:2190-2225`(R8)、`:3148-3155`(mechanisms stats);`types.ts:846-857,1699`;`prompts/default.ts:60-69,585-588`;`bin/sema-tb.ts:421-429`。背景档:`FRAG-RECON-INVESTIGATION-2026-07-09.md`、`R8-R9-FINALIZE-COORDINATION-2026-07-09.md`、`FINAL-VERIFY-SURFACE-AUDIT-2026-07-09.md`。
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
# 实验组两候选 A/B 实验设计:P-a②(批内只读先行护栏)· P-e(oracle 收尾硬闸)
|
|
2
|
+
|
|
3
|
+
> 纯调研设计交付,不落码、不跑腿、不碰测试机。2026-07-11。中性工程语汇。
|
|
4
|
+
> 承接:`docs/TB-RSI-LEDGER.md` 轮 13b 增补(clay 判决:两者=实验组候选,「担心副作用,后续实践了再看;如果只有正向作用你就做」)+ `docs/TB-LEG-GAP-ATTRIBUTION-1261-1263-2026-07-11.md`(原始取证)。
|
|
5
|
+
> 落码前置条件(clay 拍):bench A/B 证明**纯正向**(有增益且**无劣化面**)。两者均无 CC 锚、属自研 → 判据宁严勿宽,任一副作用信号触发即弃。
|
|
6
|
+
>
|
|
7
|
+
> 关键背景锚(实现基线,已核代码):
|
|
8
|
+
> - P-a①(并行批默认 fail-closed)已发 1.266.0(`f563a02`)。分批器在 `src/engine/loop/agent-loop.ts:1337 partitionToolCalls`:**批严格按 assistant source order 执行**,连续 batch-safe 调用合成一个 capped 并行批,其余为 singleton 串行批。P-a② 是在此之上的**排序**追加护栏。
|
|
9
|
+
> - P-e 有前史:`docs/AB-ORACLE-GATE-VERDICT-2026-07-10.md`(1.259→1.260 A/B = **净 +1,中性档,未达 +2 门**)+ `docs/ORACLE-GATE-NEGATIVE-SAMPLE-2026-07-11.md`(**已实锤一个 BLOCKER 负样本**:finalVerify 注入把已过题的持久终态覆盖成 FAIL)。P-e 硬闸设计**必须**把这个负样本类当第一优先副作用。设计档 = `docs/DESIGN-ORACLE-GROUNDING-GATE-2026-07-10.md`(档 A/B/C + §5 验收方案)。
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## 通用口径(两候选共用,避免测量污染)
|
|
14
|
+
|
|
15
|
+
方差量级参照(来自归因文档,作为 n 的下界依据):
|
|
16
|
+
- 17 差异题**全部** = variance_likely,版本差/机器差零因果 → 引擎微改在这类题上的信号极易被采样方差淹没。
|
|
17
|
+
- 配对 49 共过题 B/A 时长比**中位 1.067**、符号检验 **p≈0.39**(即 ~7% 的时长差都测不出显著)→ 任何 <5% 的效应在 N=5 量级下不可分。
|
|
18
|
+
- 单题 N=5 下 ±1 通过数 = 方差纪律内噪声(前 oracle A/B 明确判语),**不构成信号**。
|
|
19
|
+
|
|
20
|
+
由此定通用协议:
|
|
21
|
+
- **同版本对照**:baseline = 候选 flag OFF,实验 = flag ON,**同一个 tgz**(用 build flag 或 env flag 切,不换构建),逐 tgz 解包核 `package.json` 版本一致(照前 oracle A/B 的版本核实纪律)。
|
|
22
|
+
- **同机同模型同窗**:同一测试机、deepseek-v4-pro、低负载窗(参照 UTC 22:00-02:30),用**标定档并发不用高并发**(高并发会污染时长/墙钟读数)。
|
|
23
|
+
- **亲数**:reward 路径 `verifier_result.rewards.reward`(0/1),errored/timeout/无 reward 记 0 并标记;逐 trial 落盘,不抄 status。
|
|
24
|
+
- **确定性轨迹指标**:所有「模型是否做了 X」用确定性 grep 命中轨迹关键动作,**禁 LLM-judge**(照 `feedback-deterministic-harness-over-llm-probes`)。
|
|
25
|
+
- **反事实纪律**:revert flag → 关键副作用样本回归必须复现「无护栏则过/有护栏则挂」,反之亦然(照负样本档的反事实标准)。**教训**:反事实的 git checkout 不放进复合命令(轮 13b 踩过工作树被冲)。
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
# 候选一:P-a② 批内只读先行护栏
|
|
30
|
+
|
|
31
|
+
## 1. 机制假设(预期因果链)
|
|
32
|
+
|
|
33
|
+
**问题形态**(取证锚 = 归因文档 T3):模型把「不可逆写/查」与「只读转储」放进同一批工具调用,并行/乱序执行时**写先于读落地**,破坏了读所依赖的初始状态。T3 腿B:第 ~7s 把「对主库执行查询」和「转储日志文件」放进同一并行批 → 查询先执行 → 数据库引擎打开时清除了头部无效日志文件(环境固有不可逆陷阱)→ 此后 880s 全部陪葬在底层块级找回 → 墙钟顶死。单点致死,880s 陪葬。
|
|
34
|
+
|
|
35
|
+
**改动**:在一个批(经 P-a① fail-closed 分批后)内,**把只读调用排到写/副作用调用之前执行**——让模型「先取证快照、再动手改」的隐含意图被引擎强制兑现,即使模型把顺序写反了。
|
|
36
|
+
|
|
37
|
+
**预期因果链**:只读调用先落地 → 读到的是**未被写污染的初始状态** → 模型基于正确初始态做后续决策 → 避免 T3 类「读到已被自己写坏的状态 / 读根本没跑成」的不可逆死链 → 该题从 0 变 1。
|
|
38
|
+
|
|
39
|
+
**收益上界(诚实)**:归因文档里能明确对上这条因果链的**只有 T3 一题**(1 题单点致死)。所以 P-a② 的收益天花板很低,**主战场是「不倒扣分」而非「多拿分」**——这恰好是 clay 担心的方向。
|
|
40
|
+
|
|
41
|
+
## 2. 副作用假设清单(穷举,每条给可观测信号)
|
|
42
|
+
|
|
43
|
+
> 核心矛盾:P-a① 分批器当前**严格按 assistant source order 执行**(代码 `partitionToolCalls` 注释:batches execute strictly in assistant source order)。P-a② **主动打破** source order,这本身就是风险源——source order 是模型表达意图的载体。
|
|
44
|
+
|
|
45
|
+
| # | 副作用假设(在哪类题倒扣分) | 因果 | 可观测信号(确定性) |
|
|
46
|
+
|---|---|---|---|
|
|
47
|
+
| **S1** | **写→读有意依赖被反转**:模型故意先写后读(写入配置/临时文件再读回验证、写 fixture 再读、生成再校验),只读先行把「读旧态」当结果 → 读到写之前的空/旧内容 → 后续逻辑错 | 高危 | 同批内存在「写路径 P」+「读同一路径 P」;护栏 ON 后读的 tool_result 内容 = 写前旧值 / 空 / not-found;reward 由 1→0 |
|
|
48
|
+
| **S2** | **只读判定误分类**:某调用被引擎判为 read(`executionMode:"parallel"` 或 `isConcurrencySafe`→true)实则有副作用(Bash「只读」命令实际写了 /tmp、MCP resource 工具有隐藏 effect)→ 被提前,污染真读 | 中 | 命中被判 read 但其后 tool_result / 文件系统 diff 显示状态变更;结合 P-a① 的 undeclared→serial,主要暴露面是 Bash isConcurrencySafe 误判 |
|
|
49
|
+
| **S3** | **打破幂等/顺序语义的批**:同批多个写彼此有序(migration step1→step2),但护栏只动 read/write 相对序不动 write 间序——**若实现误伤 write 间序则致命** | 中(取决实现) | write 调用间的 source order 在护栏 ON 后发生重排;migration/多步写题 reward 下降 |
|
|
50
|
+
| **S4** | **streaming 路径交互**:in-stream side effect(design/120 P2,`agent-loop.ts:731/862`)已经就地执行,护栏在 post-stream 批阶段重排,可能与已落地的 in-stream 写产生「读在已提交 in-stream 写之后但排到批内其它写之前」的错位 | 中 | 该题走 in-stream 执行路径(事件里 in-stream side effect commit)+ 护栏 ON 后行为分叉 |
|
|
51
|
+
| **S5** | **hook 注入工具交互**:beforeToolCall / afterToolCall hook 注入或改写调用,护栏基于「引擎看到的 effect 标注」排序,可能与 hook 语义冲突(hook 期望某写先跑) | 低-中 | 该 run 有 hook 注入工具 + 护栏 ON 后顺序变化 |
|
|
52
|
+
| **S6** | **护栏本身开销/复杂度**:重排逻辑引入 bug 使某些批执行失败或死锁 → 无关题 reward 下降 | 低 | 负样本集外的题出现新的 reward 下降 / 墙钟膨胀 |
|
|
53
|
+
| **S7** | **与 P-a① fail-closed 叠加语义**:P-a① 后 undeclared 工具已默认串行(各为 singleton 批)。若 P-a② 只作用于**已合成的并行批内部**,则单元素批天然无重排空间——护栏可能对 T3 这类「写调用是 undeclared→singleton」的场景**根本不生效**(T3 的「查询」若被判 unsafe 已是 singleton,不与 read 同批) | **设计致命面** | 需先静态核 T3 的「查询」调用在 P-a① 下是否与「读」同批;若否,P-a② 对 T3 无效,机制假设不成立 |
|
|
54
|
+
|
|
55
|
+
**S1 是最大副作用风险**:「先写后读回验证」是极常见的合法模式(configure/生成/落盘再校验),只读先行会系统性破坏它。**S7 是最大机制风险**:P-a① 之后 T3 的写调用很可能已是 singleton 串行批,与读不同批,则 P-a② 对唯一锚题都无效——**S7 必须在跑 bench 前用静态轨迹核死**,否则整个实验没有意义。
|
|
56
|
+
|
|
57
|
+
## 3. 实验设计
|
|
58
|
+
|
|
59
|
+
**前置门(不跑 bench,先做)**:静态核 S7。取 T3 腿B 的 `events.jsonl`,确认那一批「查询 + 转储」在 P-a①(1.266.0)分批器下的实际分批结果——是否同批、谁 safe 谁 unsafe。
|
|
60
|
+
- 若「查询」= undeclared/write → singleton 串行批 → 与「转储(read)」不同批 → **P-a② 需作用在跨批层(把靠后的 read singleton 提到靠前的 write singleton 之前)**,而非批内——这会大幅放大 S1/S3 副作用面(跨批重排比批内重排危险得多)。
|
|
61
|
+
- 若两者判定后仍同批 → 批内重排即可,副作用面较窄。
|
|
62
|
+
- **此门决定 P-a② 到底是「批内」还是「跨批」护栏,两者副作用画像完全不同**。归因文档已给足 T3 事件坐标,可离线判。
|
|
63
|
+
|
|
64
|
+
**腿配置(前置门通过后)**:
|
|
65
|
+
- 三臂:baseline(护栏 OFF)/ 实验(护栏 ON,批内)/ 若前置门判需跨批,再加一臂(护栏 ON,跨批)——**跨批臂副作用风险高,单独隔离读数**。
|
|
66
|
+
- 题集分三组:
|
|
67
|
+
1. **靶题组**:T3 + 从 89 题里筛「同批含只读+不可逆写、且写会污染读依赖状态」的同类题(靠工具调用形态筛,不靠题名)。目标:验证增益。
|
|
68
|
+
2. **副作用探针组(S1 主靶)**:筛「先写后读回验证 / 生成再校验 / 写 fixture 再读」形态的题(configure 类、凭据生成类 T7 形态、migration 类)。目标:验证不倒扣。
|
|
69
|
+
3. **对照锚组**:与只读先行完全无关的题(纯 read-only、纯单写),验护栏不误伤。
|
|
70
|
+
|
|
71
|
+
**n 取值**:
|
|
72
|
+
- 单题 N=5 只能滤 ±1 噪声,不足以判 P-a② 这种**低收益天花板**候选。
|
|
73
|
+
- 靶题组按**合并 pass 计数**读(单题不作结论),靶题组题数 ≥3、每题 N≥5 → 合并样本 ≥15。
|
|
74
|
+
- 副作用探针组是判「弃/留」的关键,**要求更严**:每题 N≥8(把 S1 这种「有时才触发」的破坏采到)。理由:S1 破坏只在「模型确实先写后读」的采样轨迹上发生,单题 N=5 可能整批都没走到该路径,漏采 = 假阴性 = 把有副作用的护栏误判纯正向。
|
|
75
|
+
- 对照锚组 N≥5 够(只验不掉分)。
|
|
76
|
+
|
|
77
|
+
**逐题指标**:
|
|
78
|
+
- reward(主)。
|
|
79
|
+
- 确定性轨迹:①同批 read/write 调用的**实际执行顺序**(护栏 ON 是否真把 read 提前);②S1 探针——「读同一路径的 tool_result 内容」是否 = 写后值(正确)还是写前值(被护栏破坏);③墙钟/轮数(验 S6 无膨胀);④in-stream side effect 事件计数(验 S4);⑤hook 注入工具计数(验 S5)。
|
|
80
|
+
|
|
81
|
+
## 4. 判停准则
|
|
82
|
+
|
|
83
|
+
- **纯正向,落码**:靶题组合并 pass **净 +2 以上**(照 oracle A/B 的阶梯门)**且** 副作用探针组**零 reward 下降**(逐题 Δ≥0)**且** 对照锚组零下降 **且** S1 探针零命中(护栏 ON 从未让 read 读到写前旧值造成错误)。
|
|
84
|
+
- **有副作用,弃**:副作用探针组任一题 reward 下降且反事实成立(revert 护栏该题回升),**或** S1 探针命中破坏,**或** 前置门判定为跨批护栏且跨批臂出现新增下降。**任一触发即弃**——clay 的判据是纯正向,副作用一票否决。
|
|
85
|
+
- **样本不足,加腿**:靶题组增益落在 +1(方差内)且副作用组干净 → 增益不可分,加腿到靶题合并样本 ≥30 再判;若加腿后仍 +1 → 判「增益不可分,不值落码」弃(低天花板候选不值持续投入)。
|
|
86
|
+
- **机制不成立,弃(前置门)**:S7 前置门若判 T3 的写/读在 P-a① 下已天然不同批**且**跨批护栏副作用不可控 → 机制对唯一锚题无效,直接弃,不进 bench。
|
|
87
|
+
|
|
88
|
+
## 5. 实现草图(伪码/挂点级)
|
|
89
|
+
|
|
90
|
+
- **挂点**:`src/engine/loop/agent-loop.ts`,`partitionToolCalls`(:1337)之后、批执行(runCapped 那段)之前。
|
|
91
|
+
- **flag**:`ExecutionOptions.readFirstOrdering?: boolean`(默认 false),经 `spec` 透传;OFF = 现状(严格 source order),ON = 启用重排。同版本 A/B 靠此 flag 切,不换构建。
|
|
92
|
+
- **effect 判别复用**:已有 `isCallConcurrencySafe`(:1309)+ `defineTool` 的 effect→executionMode 映射(read→parallel)。read 判据复用 `executionMode:"parallel"`,不新造。
|
|
93
|
+
- **批内档伪码**:
|
|
94
|
+
```
|
|
95
|
+
for each batch from partitionToolCalls:
|
|
96
|
+
if flag.readFirstOrdering and batch.safe: // 只在已合成的并行批内
|
|
97
|
+
// stable-partition:reads 提前,writes 保持相对序不变(护 S3)
|
|
98
|
+
batch.calls = [...reads(stable), ...writes(stable)]
|
|
99
|
+
// 严禁动 batch 间顺序(批内档);写间序绝不重排(stable 保证)
|
|
100
|
+
```
|
|
101
|
+
- **跨批档(仅前置门要求时,高风险)**:需在批列表层把靠后的 read singleton 提到 write singleton 前——**建议不做**,除非前置门证明批内档对 T3 无效且跨批副作用可用探针组兜住。
|
|
102
|
+
- **诚实注释**:护栏语义 = 「兑现模型隐含的『先读后写』意图」,**不保证**模型意图就是先读后写(S1 场景模型意图恰是先写后读)——故必须默认 OFF、A/B 坐实纯正向才可能默认 ON。
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
# 候选二:P-e oracle 收尾硬闸
|
|
107
|
+
|
|
108
|
+
## 1. 机制假设(预期因果链)
|
|
109
|
+
|
|
110
|
+
**问题形态**(取证锚 = 归因文档「过度自信自宣完成」5 题复现型:T2/T9/T13/T8/T6 部分,+ 归因外 password-recovery 类):模型基于「满足题面自然语言约束」就 `status:completed` 自证过关,没拿**交付物自带的独立客观判据**(结构字段、内嵌校验值、参考数据、可回放确定性)去接地确认。R9 final-verify 已点名此类,但形态 = **one-shot 软提示**,被早期锚死错误约束的模型就地绕过。
|
|
111
|
+
|
|
112
|
+
**改动**(设计档档 B):检测到交付物**疑似含可校验结构**时,把 final-verify 从 one-shot 升为**条件放行**——放行前要求本 run 出现「对交付物的接地校验动作 + 结果被读取」的证据信号;缺失则 block 一轮(注入定向 reminder),最多重入 N 次(cap=2~3,远小于 stop-hook 的 8),到帽引擎 override 放行(绝不 wedge)。
|
|
113
|
+
|
|
114
|
+
**诚实语义**:引擎无法真判校验对错(那要重跑评测面),硬闸真实语义 = **强制模型至少执行一次接地校验并报告**,而非「校验结果为真才放行」。
|
|
115
|
+
|
|
116
|
+
**预期因果链**:硬闸 block → 模型被迫真跑一次接地校验(diff 参考数据 / 重解析裸字节 / 重算内嵌校验值)→ 发现自己锚死的错误约束 → 修正 → reward 0→1。
|
|
117
|
+
|
|
118
|
+
**收益上界(诚实,已有实测)**:前 A/B(1.259→1.260)= **净 +1,中性档,唯一变动来自 password-recovery(1/5→2/5)**,其余三正样本 Δ=0。即**软档(档 A/one-shot 升级)已测过,增益接近 model_luck、未达 +2 门**。P-e 硬闸(档 B)是在此之上加「强制」——**核心待答问题:强制能否把 password-recovery 类从 +1 顶到 +2 以上,同时不引入负样本**。
|
|
119
|
+
|
|
120
|
+
## 2. 副作用假设清单(穷举,每条给可观测信号)
|
|
121
|
+
|
|
122
|
+
> **P-e 已有一个实锤 BLOCKER 负样本**(`ORACLE-GATE-NEGATIVE-SAMPLE-2026-07-11.md`):finalVerify 注入把已过题的持久终态(git 已 push 的 hello.html)覆盖成 FAIL——闸能逼验证,不能逼验证的**无害性**。硬闸把「逼」加强,**这个负样本类是第一优先副作用**。
|
|
123
|
+
|
|
124
|
+
| # | 副作用假设(在哪类题倒扣分) | 因果 | 可观测信号(确定性) |
|
|
125
|
+
|---|---|---|---|
|
|
126
|
+
| **E1** | **破坏性重验证(已实锤)**:交付物=持久终态快照(已 push 文件、已部署 docroot、已落盘产物),模型把「验证」执行成「再走一遍全链」→ 覆盖正确终态为错。硬闸 block 更多轮 = 更多次破坏机会 | **BLOCKER(已实锤)** | 该题已过题终态 + 硬闸注入后出现新写/push/redeploy + 终态被覆盖;reward 1→0。回归样本 = configure-git-webserver |
|
|
127
|
+
| **E2** | **过度阻塞好答案**:已正确但没显式跑校验的好答案被反复 block 到 cap → 浪费 N 轮,若撞 maxTurns 变 limit.max_turns | 中-高 | 该题 baseline 已 reward=1 + 硬闸 ON 后额外注入轮次 >0 + reward 由 1→0(或 walltime/maxTurns 顶死) |
|
|
128
|
+
| **E3** | **无 oracle 题误触发**:判据(§3.C 弱信号)误判「含可校验结构」→ 对纯文本/Q&A/read-only 题浪费轮次 | 中 | 负样本(无结构写任务)硬闸 ON 后额外注入轮次 >0 |
|
|
129
|
+
| **E4** | **判据把墙钟顶紧的题推过线**:高难长题(T4/T11 类,已近墙钟)被硬闸多塞 2-3 轮 → 从「差一点完成」变「墙钟顶死」 | 中 | 该题 baseline 接近墙钟 + 硬闸 ON 后墙钟触发计数上升 + reward 下降 |
|
|
130
|
+
| **E5** | **强制校验诱发新错误**:模型为满足闸而临时写的校验脚本本身有 bug / 依赖会话内环境(T7 形态:pip 装三方库,verifier 独立环境跑不动),校验动作反而改坏交付物 | 中 | 硬闸注入后新增的校验相关工具调用 + 交付物在校验后被改动 |
|
|
131
|
+
| **E6** | **cap override 后的收尾质量**:到 cap 强制放行时,模型可能停在「验证进行到一半」的中间态而非干净终态 | 低-中 | 触发 cap 的 trial + 终态是否干净(对比 baseline 同题) |
|
|
132
|
+
| **E7** | **与已有 grounding 门交互**:引擎已有 design/132 oracle-grounding gate(R9 + 至多一次 grounding 再入,`runtask.ts:1827/1834`,双相 latch),硬闸叠加可能重复注入/相互抵消 | 中 | 同 run 里 finalVerifyInjections + grounding re-entry 计数异常;need 静态核两机构不重复 arm |
|
|
133
|
+
|
|
134
|
+
**E1 是一票否决级**:负样本已证「闸能逼验证,不能逼验证的无害性」。硬闸设计**必须**先内建「验证无害性」约束(复用 finalVerify 注入文案 v2 定稿:`do not change that state merely to test it` + `Only write when the real acceptance path requires it`),且**回归样本 configure-git-webserver 必须零倒扣**才可能放行。
|
|
135
|
+
|
|
136
|
+
## 3. 实验设计
|
|
137
|
+
|
|
138
|
+
**分两步(照设计档 §7,不一步到位只上硬闸)**:
|
|
139
|
+
- **第一步已完成**:档 A(one-shot 升可重入软提示)前 A/B = 净 +1 中性。**本实验直接从档 B(硬闸)起**,但保留 baseline=现状(含 v2 无害性文案)与档 A 臂做隔离。
|
|
140
|
+
- 三臂:baseline(现 one-shot + v2 无害文案)/ 档 B 硬闸 cap=2 / 档 B 硬闸 cap=3。
|
|
141
|
+
|
|
142
|
+
**题集(照设计档 §5 验证集,扩负样本)**:
|
|
143
|
+
1. **正样本靶组**(≥3 同类,判据须共同覆盖):password-recovery(主靶)+ extract-elf/sqlite-db-truncate(结构重解析)+ reshard-c4-data/write-compressor(参考数据 diff/round-trip)。**从归因文档补**:T2(棋局重建,图像→FEN 内嵌可校验)、T9(序列组装,结构断言)、T13(引物,grounding 自证过关型)——这三题正是「过度自信自宣完成」复现型,是 P-e 的天然靶。
|
|
144
|
+
2. **E1 破坏性回归组(第一优先)**:configure-git-webserver(已实锤负样本)+ 同类持久终态题(已 push/已部署/已落盘)。目标:硬闸 ON **零倒扣**。
|
|
145
|
+
3. **E3 无结构负样本组**:nginx-request-logging / log-summary 类纯文本写任务。目标:硬闸 ON 额外注入轮次 = 0。
|
|
146
|
+
4. **E4 墙钟压力组**:T4/T11 类近墙钟长题。目标:硬闸 ON 墙钟触发不上升。
|
|
147
|
+
|
|
148
|
+
**n 取值**:
|
|
149
|
+
- password-recovery **高方差**(前 A/B 逐 trial 1259=[0,0,1,0,0]/1260=[1,1,0,0,0])→ 单题结论禁,**正样本靶组合并 pass 计数**读,每题 N≥5、靶题 ≥3 → 合并 ≥15;考虑到前 A/B 在 N=5 只测出 +1,**建议靶组每题 N≥8**(把 password 类高方差顶起,合并 ≥24),否则大概率又落 +1 不可分区间。
|
|
150
|
+
- E1 破坏性回归组 N≥8(破坏是「有时才触发」的采样事件,照 P-a② S1 同理,N=5 易漏采假阴性)。
|
|
151
|
+
- E3/E4 负样本组 N≥5。
|
|
152
|
+
|
|
153
|
+
**逐题指标**:
|
|
154
|
+
- reward(主,正样本合并读)。
|
|
155
|
+
- **落地率**(确定性 grep):硬闸 ON 下「收尾出现接地校验动作 + 报告校验结果」的轨迹比例,须显著高于 baseline(验机制真的逼出了校验)。
|
|
156
|
+
- **额外注入轮次**:每题 baseline vs 硬闸的 finalVerify/grounding 注入计数差(验 E2/E3)。
|
|
157
|
+
- **破坏信号**(E1):硬闸注入后是否出现新写/push/redeploy + 终态是否被覆盖。
|
|
158
|
+
- **墙钟触发计数**(E4)。
|
|
159
|
+
- **cap override 计数 + override 后终态干净度**(E6)。
|
|
160
|
+
- **不 wedge**:任何题不得因 gate 撞 maxTurns 变 limit.max_turns(复用 MED[3] 护栏,回归验证)。
|
|
161
|
+
|
|
162
|
+
## 4. 判停准则
|
|
163
|
+
|
|
164
|
+
- **纯正向,落码**:正样本靶组合并 pass **净 +2 以上**(顶破前 A/B 的 +1 中性档)**且** E1 破坏性回归组**零倒扣**(configure-git-webserver 逐 trial Δ≥0,反事实:revert 硬闸不回升破坏)**且** E3 无结构组额外注入轮次 = 0、reward 不降 **且** E4 墙钟组墙钟触发不上升、reward 不降 **且** 零 wedge。
|
|
165
|
+
- **有副作用,弃**:E1 破坏性回归组任一倒扣且反事实成立,**或** E3 误触发注入 >0,**或** E4 墙钟顶死上升致 reward 下降,**或** 任一题因 gate wedge 成 limit.max_turns。**E1 一票否决**——已实锤的负样本类若硬闸放大它,直接弃。
|
|
166
|
+
- **样本不足,加腿**:正样本靶组增益落 +1(与前 A/B 同,方差内)且副作用组全干净 → 增益仍不可分,加腿到靶组合并 ≥40 再判;若加腿后仍 +1 → 判「硬闸相对软档无额外增益,不值落码」弃(强制没比软提示多拿分,却带 E1~E7 副作用面,负期望)。
|
|
167
|
+
- **档位回退**:若 cap=3 出现 E2/E4 副作用而 cap=2 干净 → 取 cap=2 重判;若 cap=2 增益不足而 cap=3 有增益但带副作用 → 判「增益与副作用不可分离」弃。
|
|
168
|
+
|
|
169
|
+
## 5. 实现草图(伪码/挂点级)
|
|
170
|
+
|
|
171
|
+
- **挂点**:`src/core/runner/runtask.ts` final-verify 分支(:1957-2015 R9 one-shot)+ 已有 stop-hook block/cap 机构(:2016-2054,`STOP_HOOK_BLOCK_CAP`)。**复用已有 block-直到-通过-封顶-N 机构,不新造循环**(设计档明确)。
|
|
172
|
+
- **flag**:`spec.oracleGroundingHardGate?: { enabled: boolean; cap?: number }`(默认 disabled)。同版本 A/B 靠此切。
|
|
173
|
+
- **判据函数(§3.C 保守 gating,禁单题特判)**:
|
|
174
|
+
```
|
|
175
|
+
function suspectsVerifiableStructure(run): boolean {
|
|
176
|
+
// 弱信号叠加,命中任一即"疑似"(宁漏 gate 不错 gate):
|
|
177
|
+
// ① 任务侧:交付契约提"参考数据/期望输出/内嵌完整性值/可回放判据"通用词类
|
|
178
|
+
// ② 产出侧:本 run 产出二进制/容器/结构化数据类交付物(非纯文本)
|
|
179
|
+
// ③ 过程侧:run 里出现裸字节读取/结构解析/参考数据存在动作
|
|
180
|
+
// 复用已有 hasVerifiableStructureSignal(grounding-signal.ts) 作过程侧信号
|
|
181
|
+
// 禁:题名匹配、题内魔法值、单题分支
|
|
182
|
+
}
|
|
183
|
+
function observedGroundingCheck(run): boolean {
|
|
184
|
+
// thin projection:扫工具调用/产出里的"接地校验动作+结果被读取"
|
|
185
|
+
// 不读全文、不判对错
|
|
186
|
+
}
|
|
187
|
+
```
|
|
188
|
+
- **硬闸伪码**(接在自然结束排空点):
|
|
189
|
+
```
|
|
190
|
+
onNaturalEnd:
|
|
191
|
+
if hardGate.enabled and wroteThisRun and suspectsVerifiableStructure(run)
|
|
192
|
+
and not observedGroundingCheck(run)
|
|
193
|
+
and finalVerifyInjections < cap // cap=2~3,远小于 stop-hook 8
|
|
194
|
+
and not outputRef.set // 已提交 StructuredOutput 永不 gate(复用现分支)
|
|
195
|
+
and turn < maxTurns-1: // 复用 MED[3] 护栏,永不在 maxTurns-1 gate
|
|
196
|
+
block(inject 定向 reminder); finalVerifyInjections += 1
|
|
197
|
+
else:
|
|
198
|
+
release // 到 cap / 无结构 / 已校验 / 已提交 → 放行,绝不 wedge
|
|
199
|
+
```
|
|
200
|
+
- **E1 无害性内建(必须)**:注入文案复用 finalVerify v2 定稿(`do not change that state merely to test it` / `Only write when the real acceptance path requires it` / `end in the exact required final state, and verify that final state before finishing`),硬闸不得引入与之拉扯的新祈使。
|
|
201
|
+
- **E7 去重(必须)**:与已有 design/132 grounding gate(:1827/1834 双相 latch)**共用 finalVerifyInjections 计数**,不各自 arm——静态核两机构在同 run 不重复注入。
|
|
202
|
+
- **诚实注释**:硬闸语义 = 「强制至少一次接地校验+报告」,**非**「引擎判校验对错」;文案/注释必须诚实标注,避免误以为引擎能判真假。
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
# 回报摘要
|
|
207
|
+
|
|
208
|
+
**P-a②(批内只读先行护栏)**
|
|
209
|
+
- 机制假设:同批内把只读调用排到写/副作用调用前执行,让读落在未被写污染的初始态上,避免 T3 类「读被自己写坏 / 读没跑成」的不可逆死链。收益天花板极低(明确对上因果链的仅 T3 一题),主战场是「不倒扣」而非「多拿分」。
|
|
210
|
+
- 最大副作用风险:**S1「先写后读回验证」合法模式被系统性破坏**(configure/生成再校验极常见);以及 **S7 机制风险**——P-a① fail-closed 后 T3 的写调用很可能已是 singleton 串行批、与读不同批,则批内护栏对唯一锚题根本无效。**S7 必须先用 T3 静态轨迹核死,否则实验没意义**。
|
|
211
|
+
- 建议 n 与口径:同 tgz flag 切 A/B、同机同模型低负载窗、标定档并发。前置门(离线静态核 S7)→ 靶题组 ≥3 题×N≥5 合并读、**副作用探针组每题 N≥8**(采 S1 破坏)、对照锚组 N≥5。指标:实际执行序、S1 探针(读到写前旧值?)、墙钟、in-stream/hook 计数。
|
|
212
|
+
- 判停:靶组合并净 +2 **且** 副作用/对照组零下降 **且** S1 探针零命中 = 落码;任一副作用一票否决 = 弃;增益落 +1 且干净 = 加腿到 ≥30,仍 +1 则弃(低天花板不值投入)。
|
|
213
|
+
|
|
214
|
+
**P-e(oracle 收尾硬闸)**
|
|
215
|
+
- 机制假设:检测交付物疑似含可校验结构时,把 final-verify 从 one-shot 软提示升为「放行前须见接地校验证据、缺则 block、cap=2~3 到帽 override」,强制模型至少跑一次接地校验并报告(引擎不判对错)。软档(档 A)前 A/B 已测 = 净 +1 中性,硬闸待答:强制能否顶破 +2。
|
|
216
|
+
- 最大副作用风险:**E1 破坏性重验证——已实锤 BLOCKER 负样本**(configure-git-webserver:finalVerify 注入把已 push 的正确终态覆盖成 FAIL)。硬闸加强「逼」= 放大这个「闸能逼验证、不能逼验证无害性」的病理。设计必须内建无害性文案(v2 定稿),回归样本零倒扣才可能放行。
|
|
217
|
+
- 建议 n 与口径:同 tgz flag 切、同机同模型低负载窗、标定档并发;三臂 baseline/cap=2/cap=3。**正样本靶组每题 N≥8**(password-recovery 高方差,N=5 前 A/B 只测出 +1),合并 pass 读;**E1 破坏回归组 N≥8**;E3 无结构/E4 墙钟负样本 N≥5。指标:reward 合并、落地率 grep、额外注入轮次、破坏信号、墙钟触发、cap override 终态干净度、不 wedge。
|
|
218
|
+
- 判停:靶组合并净 +2 **且** E1 回归零倒扣(反事实成立)**且** E3 注入 0、E4 墙钟不升、零 wedge = 落码;**E1 倒扣一票否决** = 弃;增益落 +1 且干净 = 加腿到 ≥40,仍 +1 则弃(强制无额外增益却带 E1~E7 副作用面 = 负期望)。
|
|
219
|
+
|
|
220
|
+
**文档路径**:`/Users/clay/开发/gittea/ai-agent-core/docs/EXP-PA2-PE-DESIGN-2026-07-11.md`(新建,未 commit,留主会话复核)。
|