From 5ff7a82e643d1c6ac0fcc7b6be996fe46a047027 Mon Sep 17 00:00:00 2001 From: song Date: Tue, 20 Oct 2026 14:21:46 +0800 Subject: [PATCH] feat(replan): isolate evidence-bound method comparison for main Rebuild PR #6889 from only its B5 comparison and later-work delta on main 5853e151. Retain the strict real adopt, independent withheld oracle, acceptance, quiet, and replay checks. Keep comparison captures tied to their original qualification rather than relabeling them as new runs. Use the qualified foundation -> B2 -> B4 -> B5 landing order until separate dependency reduction is proven. File/SQLite interaction comparison both pass in that combined tree; pure-main adopt remains a known dependency gate. Original source: dee55e1bc963f9ba1dc4b5f221579f1057e6096e Original author: song Validated local source: 313ec701a56684c606ef02f46a3f85681b4df98d Validated tree: 50ddcbbf6366c1f6dc722cc5f6e9fe4d70a5eef7 Original history: codex/research-split-archive-20261020 Signed-off-by: song Signed-off-by: Codex --- .../hierarchical-agent-stride-control-v0.md | 33 ++- ...rarchical-agent-stride-control-v0.zh-CN.md | 25 +- .../goal-vision-replan-contract-v0.md | 128 +++++++- .../evidence/research-continuity/README.md | 50 ++++ .../comparison-adopted-desktop.png | Bin 0 -> 199629 bytes ...parison-adopted-mobile-result-viewport.png | Bin 0 -> 76345 bytes ...mparison-adopted-mobile-scope-viewport.png | Bin 0 -> 71923 bytes .../capabilities/explore_turn_context.ts | 32 +- .../work_items/replan_context.ts | 8 +- .../work_items/replan_semantics.ts | 44 +-- .../control_plane/work_items/stride_policy.ts | 78 ++++- .../research_comparison_fixture.py | 276 ++++++++++++++++++ .../test_replan_progress_native_cli.py | 211 +++++++++++++ .../test_research_comparison_cli.py | 193 ++++++++++++ ...est_stride_comparison_followthrough_cli.py | 149 ++++++++++ tests/control_plane_ts/replan_context.test.ts | 16 + .../control_plane_ts/replan_semantics.test.ts | 3 +- .../stride_comparison_selection.test.ts | 223 ++++++++++++++ tests/control_plane_ts/stride_policy.test.ts | 36 ++- 19 files changed, 1457 insertions(+), 48 deletions(-) create mode 100644 examples/personal-workspace-browser/evidence/research-continuity/README.md create mode 100644 examples/personal-workspace-browser/evidence/research-continuity/comparison-adopted-desktop.png create mode 100644 examples/personal-workspace-browser/evidence/research-continuity/comparison-adopted-mobile-result-viewport.png create mode 100644 examples/personal-workspace-browser/evidence/research-continuity/comparison-adopted-mobile-scope-viewport.png create mode 100644 tests/control_plane/research_comparison_fixture.py create mode 100644 tests/control_plane/test_research_comparison_cli.py create mode 100644 tests/control_plane/test_stride_comparison_followthrough_cli.py create mode 100644 tests/control_plane_ts/stride_comparison_selection.test.ts diff --git a/docs/architecture/rfcs/hierarchical-agent-stride-control-v0.md b/docs/architecture/rfcs/hierarchical-agent-stride-control-v0.md index b1d3968f04..01f6499484 100644 --- a/docs/architecture/rfcs/hierarchical-agent-stride-control-v0.md +++ b/docs/architecture/rfcs/hierarchical-agent-stride-control-v0.md @@ -697,8 +697,11 @@ adoption, restoration or improved results. These are refinements of the existing Agent questions, not new decision fields, score thresholds or settlement gates; the strategy remains default-off. Identify the remaining authoritative goal gap, its limiting component and plausible headroom before choosing the next mechanism. Compare -continuation with one feasible different approach that could affect that -component, including complete cost. A changed auxiliary mechanism can be useful, +continuation with plausible alternatives that change the limiting assumption or +mechanism, including complete cost. A stalled route calls for a discriminating +experiment across those explanations, not only more local parameter changes. +Distinguish an unexecuted intervention, failed transfer and insufficient tested +route potential; each calls for different evidence. A changed auxiliary mechanism can be useful, but its novelty does not establish that it addresses the remaining gap. Local or synthetic improvement needs applicable transfer evidence; repeated identical outcomes are not new information. Prefer the smallest coverage that resolves the @@ -825,18 +828,36 @@ projection/review semantics. Both historical v1 decision shapes retain read compatibility, but cannot discharge a fresh enabled review. Frozen workers retain their exact source. Pin implementation revisions for comparisons; do not reinterpret old decisions. The policy seam can evolve when evidence warrants it, without maintaining speculative variants. -For an enabled periodic review, every settlement path now requires a current, +For an enabled periodic review or an existing observed-stall review +(`typed_progress_repeat`, `no_progress_streak`, `repeated_action_loop`, +`external_progress_review_drift`), every settlement path requires a current, source-bound stride decision. Typed progress, successor and terminal results remain valid evidence/outcomes, while a bare Todo successor transition cannot -stand in for the review. This closes the decision-recording gap; it does not -establish that the proposed action was adopted or improved the Goal. +stand in for the review. An evidenced path decision can retain unfinished useful +work without a fabricated new progress identifier or Todo. Explicit acceptance +and capability outcome restrictions still apply; default-off and other sources +retain their prior exit policies. No new detector, threshold or action is added. + +The frozen [EdgeBench diagnostic window](https://huggingface.co/datasets/songwells/loopxbench/blob/c5dd30bfaa2f5af42ccd7d0ca9ed59b865a81d42/public/edgebench-20261018-v1/diagnostic_windows.csv) +reports 902 completed native turns and no submissions over one post-hoc selected +230-minute window. This motivates checking whether review changes subsequent +work, but does not identify the cause or establish a general stagnation rate; +zero `apply_patch` calls cannot exclude writes through shell commands. + +Real File/SQLite CLI coverage now takes an existing typed-progress stall through +decision rejection/recovery, an executed comparison of local choice, reverse +priority and joint assignment under one fixed objective, result readback and the +next executable transfer-validation Todo. The current decision can retain the +original Todo; comparison results, not a new label, choose the next mechanism. +This proves the scripted control path, not model adoption or EdgeBench score gain. +Existing negative-result and later-work followthrough coverage remains necessary. The effective review cadence remains owned by the [Goal Vision/replan contract](../../reference/protocols/goal-vision-replan-contract-v0.md#default-review-cadence) and Goal/device configuration. Six effective work Turns is the default; enabling the stride strategy for one Goal inherits its live review cadence, and only an explicit Goal cadence override pins a separate count or unit. The cadence is not Todo size, an experiment boundary or a mandatory route switch; this refinement -changes neither counting nor discharge. Matched continuation must qualify actual +does not change counting. Matched continuation must qualify actual adoption, target benefit and full cost before promotion or synergy claims. Exploratory iteration may run only strategy-enabled test arms and reuse historical diff --git a/docs/architecture/rfcs/hierarchical-agent-stride-control-v0.zh-CN.md b/docs/architecture/rfcs/hierarchical-agent-stride-control-v0.zh-CN.md index c04e62d895..99feb6d376 100644 --- a/docs/architecture/rfcs/hierarchical-agent-stride-control-v0.zh-CN.md +++ b/docs/architecture/rfcs/hierarchical-agent-stride-control-v0.zh-CN.md @@ -589,7 +589,9 @@ switch(尝试不同机制)或 verify(解决决定扩大或切换的具体 或结果改善。这些是既有Agent问题的细化,不增加决策字段、分数阈值或结算门槛; 策略仍默认关闭。先识别仍未满足的 权威目标、当前瓶颈分量和可能的收益空间,再选择下一机制。比较原路线接续与 -一种能影响该瓶颈的可行替代路线,并计入完整成本。辅助机制变化可能有用,但 +改变该瓶颈假设或机制的可行替代路线,并计入完整成本。路线停滞时,应以能区分 +这些解释的完整实验推进,不能只继续局部调参。区分干预未执行、局部改善未迁移, +以及被当前测试限制的路线潜力;它们需要不同证据。辅助机制变化可能有用,但 新颖本身不证明能解决剩余缺口。局部或合成数据的提升须有适用的迁移证据;重复 相同结果不算新信息。优先用能决定路线选择的最少验证范围,避免再做宽泛扫测, 同时保留相关失败证据。 @@ -674,13 +676,28 @@ Benchmark 的显式 `loopx-planned` provider 在未修改的规划 packet 外附 普通投影/复盘;两种历史 v1 决策保留原义读取兼容,不能完成新的启用策略复盘; 新提案使用 v2 数据格式,仍只有同一个可选策略,冻结 worker 保持确切源码。比较固定 实现 revision,不重释旧决定;有证据后迭代同一组件,避免维护假设性的策略变体。 -启用策略的周期复盘到期后,任何结算路径都须留下绑定本次来源的 stride 决定。 +启用策略的周期复盘到期,或既有停滞复核触发时(`typed_progress_repeat`、 +`no_progress_streak`、`repeated_action_loop`、`external_progress_review_drift`), +任何结算路径都须留下绑定本次来源的 stride 决定。 类型化进展、后续任务和终止结果仍可作为证据与结果,但单独的 Todo 后续转换不能 -代替复盘。这补齐决定记录闭环,不证明提案已被采用或提升了 Goal。 +代替复盘。有证据的路径决定可以保留尚未完成的有用工作,不必编造新进展标识或 +Todo。验收和能力 owner 显式限定的结果仍须遵守;默认关闭和其他来源保持原有 +出口规则。不增加检测器、阈值或动作。 + +冻结的 [EdgeBench 诊断窗口](https://huggingface.co/datasets/songwells/loopxbench/blob/c5dd30bfaa2f5af42ccd7d0ca9ed59b865a81d42/public/edgebench-20261018-v1/diagnostic_windows.csv) +记录一个事后选取的 230 分钟窗口中,原生 turn 完成 902 次、提交为零。这支持 +检查复盘是否改变后续工作,但不能识别原因或推算普遍停滞率;`apply_patch` 为零 +也不能排除 shell 命令修改文件。 + +真实 File/SQLite CLI 验证现覆盖既有 typed-progress 停滞、缺决定时拒绝及修正、 +同一固定目标下实际执行局部选择/逆序优先/联合分配三种方法、读取结果,以及 +创建下一项可执行的迁移验证 Todo。本次决定可以保留原 Todo;实验结果驱动下一 +机制选择,改名本身不算换路。这证明脚本化控制链路,不证明模型采用或 EdgeBench +分数提升;既有负结果与后续实际工作跟进验证仍有必要。 有效复核周期仍由[Goal Vision/replan 契约](../../reference/protocols/goal-vision-replan-contract-v0.md#default-review-cadence) 及 Goal/设备配置负责。六个有效工作 Turn 是默认值;对单个 Goal 启用步幅策略时 沿用实时复盘周期,只有显式设置 Goal 复盘周期,才固定该 Goal 的计数依据或数量。 -周期不是 Todo 大小、实验边界或强制换路信号;本细化不改变计数或解除条件。 +周期不是 Todo 大小、实验边界或强制换路信号;本细化不改变计数。 策略采用、目标收益、完整成本和交互增益须通过匹配接续等实验验证后再作结论。 敏捷探索可只跑启用策略的测试组,以历史基线作描述性参照;不要求每次迭代都 diff --git a/docs/reference/protocols/goal-vision-replan-contract-v0.md b/docs/reference/protocols/goal-vision-replan-contract-v0.md index 73df49e9a9..4b2299bb5a 100644 --- a/docs/reference/protocols/goal-vision-replan-contract-v0.md +++ b/docs/reference/protocols/goal-vision-replan-contract-v0.md @@ -538,6 +538,25 @@ resolve the execution gap or name the changed inputs/new uncertainty first. A `verify` action names the grow-or-switch decision its result will inform; repeated checking without new information is not a default continuation policy. +When evidence weakens the current route, the existing `route_distance` guidance +asks for a small set of genuinely different explanations or approaches before +selecting an experiment: representation, decomposition, search method or +information source as applicable. Contrast predictions and full costs, preserve +the qualified incumbent, and choose a comparison that can change the next +decision. Parameter variants alone are not distinct mechanisms. Missing feedback +is a wait/evidence gap, not evidence that a route failed or alternatives were +exhausted. This is opt-in Agent guidance in the existing axes/reasons and +`next_probe`, not a new proposal field, forced pivot, branch scheduler, permission +or automatic experiment launch. A larger portfolio or a recorded switch does +not establish adoption or benefit; subsequent evidence must still qualify both. + +当证据削弱当前路线时,现有 `route_distance` 指引要求先提出少量真正不同的解释或 +方法,再选择实验;可考虑表征、问题分解、搜索机制或信息来源。比较各自预测和 +完整成本,保留已验证的当前最佳产物,选择能改变下一步决策的对照。相同机制的 +参数变体不算不同路线;缺少反馈属于等待或证据缺口,不证明路线失败或其他方法 +已经穷尽。这仅补充启用策略后的既有轴、理由与 `next_probe` 指引,不增加字段、 +强制转向、分支调度或执行权限。记录了切换或更多候选,不等于执行或效果已经成立。 + When a prior accepted decision is delivered, `previous_review` references its exact `replan-decision-*` id and separately records: @@ -582,14 +601,22 @@ adopted it. Existing v2 decisions without pages and historical v1 reads retain their behavior. Other detail routes are not supplemental citation sources. The typed owner validates shape, references and declared provenance before the -fresh Vision path exit. When an enabled Goal reaches a periodic review, every +fresh Vision path exit. When an enabled Goal reaches a periodic review or an +existing observed-stall review (`typed_progress_repeat`, `no_progress_streak`, +`repeated_action_loop`, `external_progress_review_drift`), every accepted exit must also record a current `agent_vision.stride_decision`: a new progress observation, runnable successor, blocker or coverage-backed terminal result cannot silently replace that decision. The typed outcome remains legal and retains its own evidence gate. The decision references both the due obligation and its delivered review context. A terminal review may attach it to an evidence-linked `stop` path. A Todo successor transition alone cannot settle -the due review. Other replan sources retain their existing exit policies. +the review. An evidence-linked `continue` or `no_change` decision can retain useful +unfinished work without manufacturing a new progress identifier or successor. +Explicit acceptance/capability outcome restrictions still apply. Other replan +sources retain their existing exit policies; `off` retains the prior stall exits. +This changes the completeness of an enabled review, not stall detection, cadence, +authority or the choice of action. + All attachment text counts toward the existing 1,800-character Vision budget. The live packet exposes field limits. Legacy recorded declarations and old explicit off-mode attachments retain transport @@ -617,11 +644,16 @@ revision 与具体 finding,说明采用、暂缓、无适用证据或读取不 按原 Turn 身份重新审视;不开额外执行权或配额。机器校验提案结构与引用,不能证明 模型判断正确或已提升收益。两种历史 v1 决策保留原义读取兼容,但不能完成新的 启用策略复盘;数据格式更新不增加可选策略版本。 -策略启用且周期复盘到期时,所有可接受出口都须记录绑定本次义务的 +策略启用且周期复盘到期,或既有停滞复核触发时(`typed_progress_repeat`、 +`no_progress_streak`、`repeated_action_loop`、`external_progress_review_drift`), +所有可接受出口都须记录绑定本次义务的 `agent_vision.stride_decision`。新进展、可执行后续任务、阻塞或有覆盖证据的终止 仍可作为结果,但不能代替复盘决定;决定须引用本次义务及交付的复盘上下文, 单独创建后续 Todo 也不能结算到期义务。 -终止时可把决定附在有证据的 `stop` 路径上。其他 replan 来源沿用原有出口规则。 +终止时可把决定附在有证据的 `stop` 路径上。有证据的 `continue` 或 `no_change` +可以保留尚未完成的有用工作,不必编造新进展标识或后续任务;验收和能力 owner +显式限定的结果仍须遵守。其他 replan 来源和 `off` 模式的停滞出口保持原规则。 +这补齐启用后的复核内容,不改变停滞检测、周期、权限或替 Agent 选择动作。 The same opt-in strategy covers ordinary engineering, organizing and maintenance. `grow` expands a coherent accepted deliverable, including related integration, @@ -641,6 +673,94 @@ not improved model decisions or net efficiency. 应在原 Turn 和原复盘义务下补读并重新评估。读取不写入回执或扣额度,分页引用随 决策保留到历史和下次复盘;来源核验不证明模型理解、采用或研究收益。 +### Source-bound comparison selection + +With Explore planning and `evidence_conditioned_v1` enabled, the existing +turn-context result page can include `comparison_candidates`. Each card links +an actionable, own-or-unclaimed canonical Todo to up to three current results +through that Todo's explicit Explore node references. An outcome contains +`node_id`, `finding_id`, and `source_sha256`, the digest of the full scoped +result. These links survive into `stride_control.explore_basis`; an Agent can +compare the actual result contents before planning further work. Planner rank +does not grant or remove execution permission: eligible linked Todos from the +planner's unselected pool can also supply cards. Negative findings do not +automatically penalize, forbid or replace a route. + +A v2 decision may optionally copy one exact outcome and its Todo into +`explore_review.selected_candidate`: + +```json +{ + "todo_id": "todo_current_probe", + "node_id": "current-question", + "finding_id": "current-result", + "source_sha256": "<64 lowercase hexadecimal characters from the source card>" +} +``` + +This declaration requires `disposition: "used"`, the selected finding in +`considered_refs`, and `retain:todo_current_probe` in the same Vision's existing +`todo_delta`. Qualification of a fresh Vision stride decision checks the +current source link and exact content digest; an unrelated fresh-path or +successor outcome cannot make an invalid binding qualify as that decision. +Changed source requires reassessment. For an enabled periodic or observed-stall +review listed above, a standalone canonical successor ACK cannot replace the +current evidence-linked stride decision. Other obligation sources and the +disabled strategy keep their existing outcome gates; a successor ACK alone +does not make an attached comparison selection an accepted decision or executed +work. +The optional fields share the existing Vision budget. A decision without this +field, disabled planning, and the strategy's `off` mode retain their existing +behavior and authority. + +Cards use the existing result page coordinates and limits. If a card is not +visible, read a current global result page and attach its coordinates in +`explore_review.result_pages`. Increasing the existing `--result-limit` to its +maximum of 20 can expose more Todos linked to the same finding. The page's +`omitted_comparison_candidates` reports remaining omissions; more than 20 +matching Todos on one page are not all selectable through this optional +binding. Up to three replayed pages and three considered findings remain the +existing upper bounds. No new pagination or scheduling protocol is created. + +The selection records evidence-backed **planning intent** for the retained +Todo. It does not reserve that Todo or force the next scheduler choice. Another +legally admitted Todo may run; its result remains attributable to its own work. +The existing `decision_followthrough.planned_work` and scoped history distinguish +the declared Todo from subsequent evidence, keep execution and Goal gain +unknown without proof, and reject an execution claim supported only by +unrelated work. An identifier or changed source digest cannot certify a new +mechanism. The Agent must explain the mechanism, predicted benefit, evidence +and uncertainty, then perform the chosen work and satisfy the original +acceptance through the existing owners. + +The local comparison fixture exercises one original implementation Todo with +three measured alternatives: retaining its program, searching parameters in a +fixed representation, and generating programs from a finite arithmetic grammar. +Each family performs 125 score calls against the same six training inputs. +The choice uses those measured results; an additive positive control can retain +the original program. The selected source is then deployed and executed by an +independent pinned owner verifier on withheld inputs. This checks actual +program adoption within the Todo, not mandatory cross-Todo scheduling or live +provider creativity. Grammar generation CPU, token usage and money are not +equalized by the score-call limit. The controlled Host does not read withheld +inputs before choosing; the fixture is not an adversarial data-access sandbox. +Keep measured choice, reasons and final verifier results in the existing +`path_delta` and Explore findings so the shipped evidence view can show them +beside linked Todo state. + +**中文:** 当前结果页可把真实可执行 Todo 与其明确关联的实验结果一起交给复盘, +包括未进入高分候选的合法路线;排名不替代准入。可选 `selected_candidate` 精确 +绑定 Todo、节点、finding 及完整来源摘要,同时要求同一 Vision 保留该 Todo。 +错源、已变化的结果或没有保留对应工作均不能借别的后继结果混过核验。上述已启用 +的周期或停滞复核均不能用单独的后继 ACK 代替当前决策;其他义务和关闭策略时 +保留原出口边界,后继 ACK 本身也不证明比较选择已被接受或执行。分页仍沿用 +既有坐标与最多 20 项的上限,同一结果关联过多 Todo 时明确显示省略数,不能声称 +无限候选均可达。这是有来源的规划意图,不是调度命令;合法 B 任务可以执行, +但不能凭 B 的结果声称所选 A 已执行。实际采用、机制差异和原验收仍需真实证据。 +受控实验比较停留原式、局部调参与结构语法搜索,评分调用预算相同;它证明原 +Todo 内的实际选程序、部署与独立验收,不证明付费模型创造力、完整成本或普遍 +研究收益。选择、理由和实际结果复用现有路径说明、Explore finding 与任务回读。 + ### Path Delta A vision packet may include a top-level `path_delta` object; `goal_path_delta_v0` diff --git a/examples/personal-workspace-browser/evidence/research-continuity/README.md b/examples/personal-workspace-browser/evidence/research-continuity/README.md new file mode 100644 index 0000000000..912e7ebf58 --- /dev/null +++ b/examples/personal-workspace-browser/evidence/research-continuity/README.md @@ -0,0 +1,50 @@ +# Measured method comparison in the existing results view + +These retained captures use disposable synthetic data. They were produced for +the original research-continuity proposal, before the independent main-targeted +slice. They record that source and are not a new validation of this branch. +Worker attempt/readback evidence belongs to PR #6885; this slice carries only +the comparison evidence and its existing Explore/Todo owners. + + +The original run also read a completed synthetic method comparison through the +same packaged Chat server and its real Explore HTTP API. It uses the File +case produced by `tests/control_plane/test_research_comparison_cli.py`: +three search families measure their actual generated expressions, the same +original Todo adopts one, and the unchanged owner verifier checks deployed +source on withheld inputs. The test separately covers SQLite and an additive +positive control that retains the original expression. + +| View | Capture | +| --- | --- | +| Desktop results, selected adoption and original completed Todo | [Packaged viewport](comparison-adopted-desktop.png) | +| Mobile viewport: measured losses and adoption explanation | [Result viewport](comparison-adopted-mobile-result-viewport.png) | +| Mobile viewport: source and original completed Todo | [Scope viewport](comparison-adopted-mobile-scope-viewport.png) | + +These historical captures show the original assembled candidate after its merged-source CLI comparison, using +the existing results layout. Both mobile images capture the actual +390 × 844 viewport at overlapping scroll positions: its 346-pixel content +region cannot show the full 477-pixel evidence reader at once. No layout, +DOM or image cropping was applied. The readback +checks the recorded 54 / 16 / 0 training losses, the original Todo's `done` +state, source references and adoption explanation. Navigation and reading +append no work or settlement history. The original training observations keep +their then-unknown heldout result; a later finding records the independent +verification and bounded adoption. The interface still distinguishes a saved +claim from independently certified adoption. + +Generate the source with the source-checkout Python environment: + +```bash +python -m pytest --no-cov tests/control_plane/test_research_comparison_cli.py +``` + +The finite program-search Host is deterministic. Equal score-call budgets do +not establish equal grammar-generation CPU, model tokens, money, or improved +EdgeBench performance. No model provider is used by the readback. + +**中文:** 新增截图读取实际合成实验完成后的原 Explore/Todo 数据,展示三种 +方法的测量、所选程序的采用说明和原任务完成状态。两张手机图分别记录实际 +视口中相互重叠的滚动位置,连续展示结果和关联任务,没有修改页面或裁切。 +查看与导航没有追加执行或结算;历史实验中的未知与后续已验证 +结果分别保留。该证据不等于真实模型或完整成本的效果对照。 diff --git a/examples/personal-workspace-browser/evidence/research-continuity/comparison-adopted-desktop.png b/examples/personal-workspace-browser/evidence/research-continuity/comparison-adopted-desktop.png new file mode 100644 index 0000000000000000000000000000000000000000..405a5370637c68360fbb88fe05be203a40e7a870 GIT binary patch literal 199629 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

wWLPl5q(53iTh93$iCq>F9Skp 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 literal 0 HcmV?d00001 diff --git a/examples/personal-workspace-browser/evidence/research-continuity/comparison-adopted-mobile-result-viewport.png b/examples/personal-workspace-browser/evidence/research-continuity/comparison-adopted-mobile-result-viewport.png new file mode 100644 index 0000000000000000000000000000000000000000..b1d013fab5f22e487aa6b89a1f4b5e62666bc9f0 GIT binary patch literal 76345 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�|M-mYt)Z1CQUn-9|z`v)#?3w%dG#+ zSsxdNKxEr42M^%Aua?D`uFF9;qjivgVygz`sq!!=vn*~}z;DQ*u7QRrLhxkh303%a zsnO9lh-XX;j1-IJo?mb&)a>l{k$}~5J{E�kImSgmI=UNkvgZhx?7xLRB`S&g-w; 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 literal 0 HcmV?d00001 diff --git a/loopx/control_plane/capabilities/explore_turn_context.ts b/loopx/control_plane/capabilities/explore_turn_context.ts index fcc234e02b..cd21d0296e 100644 --- a/loopx/control_plane/capabilities/explore_turn_context.ts +++ b/loopx/control_plane/capabilities/explore_turn_context.ts @@ -3,6 +3,7 @@ import {createHash} from "node:crypto"; import type {JsonObject} from "../effect_program.ts"; import {EffectRuntimeRequestError} from "../effect_runtime_errors.ts"; import {requireInteger, requireJsonObject, requireNonEmptyString, requireStringArray} from "../runtime_decode.ts"; +import {PLANNING_TODO_ID} from "../work_items/planning_relations.ts"; import {EXPLORE_WRITEBACK_SUMMARY_LIMIT, exploreResultWritebackAffordance} from "./explore_result_writeback.ts"; import {normalizeExploreResultPages} from "./explore_result_page.ts"; @@ -116,6 +117,30 @@ export function projectExploreTurnContext(params: JsonObject): JsonObject { const resultNode = params.result_node == null ? null : requireNonEmptyString(params.result_node, "result_node"); const resultRows = resultNode == null ? writebackResults : writebackResults.filter(row => row.node_id === resultNode); const nodeById = new Map(nodes.map(node => [node.node_id, node])); + // Bind current Todo links to the results on this page. Include the full + // planner's nonselected branches: a heuristic/batch budget cannot prevent + // the Agent from comparing a lower-ranked method. This grants no claim, + // lease, quota or execution permission; their existing owners still apply. + const comparisonCandidates = (page: JsonObject[], limit: number): JsonObject => { + if (!harness) return {}; + const linkedCandidates = [...branches, ...rejected].flatMap(branch => { + if (typeof branch.todo_id !== "string" || !PLANNING_TODO_ID.test(branch.todo_id) + || branch.actionable_open !== true || branch.claimed_by && branch.claimed_by !== agent + || branch.typed_evidence_audit == null) return []; + const audit = requireJsonObject(branch.typed_evidence_audit, "Explore evidence audit"); + const linked = new Set(requireStringArray(audit.requested_node_refs ?? [], "Explore node refs") + .filter(ref => nodeById.has(ref))); + const outcomes = page.filter(row => linked.has(String(row.node_id))).slice(0, 3); + return outcomes.length ? [{todo_id: branch.todo_id, outcomes}] : []; + }); + if (!linkedCandidates.length) return {}; + return { + comparison_candidates: linkedCandidates.slice(0, limit).map(card => ({todo_id: card.todo_id, + outcomes: card.outcomes.map(row => ({node_id: row.node_id, finding_id: row.finding_id, + source_sha256: createHash("sha256").update(JSON.stringify(row)).digest("hex")}))})), + omitted_comparison_candidates: Math.max(0, linkedCandidates.length - limit), + }; + }; const relationsByNode = new Map(); for (const edge of rows(projection.edges)) { for (const id of new Set([edge.from_node, edge.to_node])) { @@ -157,9 +182,11 @@ export function projectExploreTurnContext(params: JsonObject): JsonObject { // context/read route; the replan owner refuses any unresolved citation. return []; } - return [{...page, finding_refs: resultRows.slice(Number(page.offset), Number(page.offset) + Number(page.limit)) - .map(row => row.finding_id)}]; + const found = resultRows.slice(Number(page.offset), Number(page.offset) + Number(page.limit)); + return [{...page, finding_refs: found.map(row => row.finding_id), + ...comparisonCandidates(found, Number(page.limit))}]; }); + const visibleComparisons = comparisonCandidates(visibleResults, resultLimit); const remainingResults = Math.max(0, resultRows.length - resultOffset - visibleResults.length); const resultRead = (...args: string[]) => command("turn-context", "--agent-id", agent, ...args); const writeback = exploreResultWritebackAffordance(); @@ -210,6 +237,7 @@ export function projectExploreTurnContext(params: JsonObject): JsonObject { orchestration_gate: gate, candidate_count: plan.candidate_count ?? 0, selected_branches: branches.slice(0, 3).map(branch => branchContext(branch, findingSources)), + ...visibleComparisons, omitted_selected_branches: Math.max(0, branches.length - 3), rejected_candidates: rejected.slice(0, 3).map(branch => branchContext(branch)), omitted_rejected_candidates: Math.max(0, diff --git a/loopx/control_plane/work_items/replan_context.ts b/loopx/control_plane/work_items/replan_context.ts index f909d478ad..b48fc4b622 100644 --- a/loopx/control_plane/work_items/replan_context.ts +++ b/loopx/control_plane/work_items/replan_context.ts @@ -570,7 +570,12 @@ export function projectReplanContext(value: unknown): JsonObject { ? (obligation.triggers as JsonObject[]).find(trigger => trigger.progress_baseline)?.progress_baseline : null ) ?? null; - const frontier = {baseline, required_any_of: obligation ? requiredSemanticOutcomes(obligation) : []}; + const strideStrategy = normalizeStrideStrategy(request.stride_strategy); + // This context has not been attached yet. Project outcomes with its current + // effective strategy through the same owner used by requirements/writeback. + const frontier = {baseline, required_any_of: obligation ? requiredSemanticOutcomes({ + ...obligation, replan_context: {stride_strategy: strideStrategy}, + }) : []}; const prefix = request.read_prefix === undefined ? "loopx" : requireNonEmptyString(request.read_prefix, "read_prefix"); const groups = new Map(); for (const row of evidence) { @@ -619,7 +624,6 @@ export function projectReplanContext(value: unknown): JsonObject { ? [String((row.progress_observation as JsonObject).fingerprint)] : [])); const ledger = [...coverage].filter(([key]) => selectedCoverage.has(key)).map(([, value]) => value); const core = projectCoreGoal(request.goal_facts); - const strideStrategy = normalizeStrideStrategy(request.stride_strategy); const exploreBasis = strideStrategy !== "off" ? projectStrideExploreBasis(request.explore_context, goal, agent) : null; const followthrough = agent && strideStrategy !== "off" ? decisionFollowthrough(rows, request.goal_facts, request.from_full_index === true, request.todo_items) : null; diff --git a/loopx/control_plane/work_items/replan_semantics.ts b/loopx/control_plane/work_items/replan_semantics.ts index 579a816883..3846462430 100644 --- a/loopx/control_plane/work_items/replan_semantics.ts +++ b/loopx/control_plane/work_items/replan_semantics.ts @@ -71,12 +71,15 @@ function isExternalReview(obligation: JsonObject): boolean { return triggerKinds(obligation).some(kind => EXTERNAL_REVIEW_TRIGGERS.has(kind)); } -// A due cadence review is a decision checkpoint. Typed progress may still be -// its outcome, but cannot stand in for the review when the strategy is enabled. -function requiresPeriodicStrideDecision(obligation: JsonObject, fallbackStrategy: unknown = "off"): boolean { +// Existing cadence and observed-stall triggers become decision checkpoints +// only for the opted-in strategy. This does not detect stalls or force a pivot. +const STRIDE_REVIEW_TRIGGERS = new Set(["periodic_review_due", "typed_progress_repeat", + "no_progress_streak", "repeated_action_loop", "external_progress_review_drift"]); +function requiresStrideDecision(obligation: JsonObject, fallbackStrategy: unknown = "off"): boolean { const context = object(obligation.replan_context); const strategy = Object.hasOwn(context, "stride_strategy") ? context.stride_strategy : fallbackStrategy; - return triggerKinds(obligation).includes("periodic_review_due") && normalizeStrideStrategy(strategy) !== "off"; + return triggerKinds(obligation).some(kind => STRIDE_REVIEW_TRIGGERS.has(kind)) && + normalizeStrideStrategy(strategy) !== "off"; } /** Route only a revalidated canonical transition to its original Turn guard. @@ -97,7 +100,7 @@ function projectTurnTransition(request: JsonObject): JsonObject { const candidateSource = object(value); const sourceObligation = object(candidateSource.obligation); if (sourceObligation.obligation_id !== selected) continue; - if (requiresPeriodicStrideDecision(sourceObligation, request.stride_strategy)) continue; + if (requiresStrideDecision(sourceObligation, request.stride_strategy)) continue; const ack = object(candidateSource.ack); const candidate = object(ack.semantic_delta); if (ack.schema_version === "autonomous_replan_ack_v0" && @@ -279,9 +282,10 @@ export function requiredSemanticOutcomes(obligation: JsonObject): SemanticOutcom // Periodic and long-chain reviews may retain existing runnable work. The // vision decision must close the checkpoint without manufacturing another // successor or progress identifier. Keep previously legal progress exits. - // An external progress review likewise lets the Agent keep its plan on - // evidence (a fresh vision path) or pivot with a typed progress delta. - return kinds.some(kind => kind === "long_todo_chain" || + // An enabled stall review can also retain the unfinished useful experiment + // after a current evidenced decision, without inventing progress or a Todo. + // Explicit capability/acceptance outcome restrictions above still apply. + return requiresStrideDecision(obligation) || kinds.some(kind => kind === "long_todo_chain" || kind === "periodic_review_due" || EXTERNAL_REVIEW_TRIGGERS.has(kind)) ? ["fresh_vision_path_outcome", ...PROGRESS_OUTCOMES] : [...PROGRESS_OUTCOMES]; } @@ -364,21 +368,21 @@ export function projectReplanSemantics(value: unknown): JsonObject { if (request.operation === "receipt_bound_obligation") return preserveReceiptBoundObligation(request); const obligation = requireJsonObject(request.obligation, "obligation"); if (request.operation === "transition_eligibility") { - return {allowed: !requiresPeriodicStrideDecision(obligation, request.stride_strategy)}; + return {allowed: !requiresStrideDecision(obligation, request.stride_strategy)}; } const required = requiredSemanticOutcomes(obligation); const externalReview = isExternalReview(obligation); if (request.operation === "requirements") { const strideControl = strideControlContract(object(obligation.replan_context), obligation.obligation_id); const writeback = writebackProjection(required, externalReview); - if (requiresPeriodicStrideDecision(obligation)) { + if (requiresStrideDecision(obligation)) { const contract = object(writeback.writeback_contract); writeback.cli_semantic_args = VISION_CLI_ARGS; writeback.writeback_contract = {...contract, preferred_input: "evidence_linked_vision_path", required_fields: [...new Set([...strings(contract.required_fields), "agent_vision.stride_decision"])], path_outcomes: [...FRESH_PATH_DISPOSITIONS, "stop"], - rule: "This due periodic review must record a current evidence-linked stride_decision before any typed progress, successor, blocker or terminal outcome can settle it. " + + rule: "This cadence or observed-stall review must record a current evidence-linked stride_decision before any typed progress, successor, blocker or terminal outcome can settle it. " + String(contract.rule ?? "")}; } return {required_any_of: required, planning_guidance: [...REPLAN_PLANNING_GUIDANCE, @@ -398,21 +402,22 @@ export function projectReplanSemantics(value: unknown): JsonObject { const context = object(obligation.replan_context); const [strideDecision] = normalizeStrideDecision(vision.stride_decision); const structuredReview = normalizeStrideStrategy(context.stride_strategy) !== "off"; - const periodicStrideReview = requiresPeriodicStrideDecision(obligation); + const selectedComparison = object(strideDecision?.explore_review).selected_candidate != null; + const requiredStrideReview = requiresStrideDecision(obligation); const pathOutcome = String(path.outcome ?? "").trim(); const evidenceLinkedPath = Boolean(String(patch.acceptance_summary ?? "").trim() && (FRESH_PATH_DISPOSITIONS.has(pathOutcome) || pathOutcome === "stop") && strings(path.evidence_refs).length); const freshPath = evidenceLinkedPath && FRESH_PATH_DISPOSITIONS.has(pathOutcome); const independentStride = strideDecision?.schema_version === STRIDE_DECISION_SCHEMA; - const missingStride = structuredReview && (freshPath || periodicStrideReview) && + const missingStride = structuredReview && (freshPath || requiredStrideReview) && (!strideDecision || !independentStride); - const missingStridePath = periodicStrideReview && !evidenceLinkedPath; - const staleStride = !!strideDecision && structuredReview && + const missingStridePath = requiredStrideReview && !evidenceLinkedPath; + const staleStride = !!strideDecision && (structuredReview || selectedComparison) && strideDecision.reference_obligation_id !== obligation.obligation_id; - const reviewMismatch = strideDecision && structuredReview - ? periodicStrideReview && strideDecision.reference_context_id !== context.context_id + const reviewMismatch = strideDecision && (structuredReview || selectedComparison) + ? (requiredStrideReview || selectedComparison) && strideDecision.reference_context_id !== context.context_id ? "Stride decision must reference the delivered due-review context." - : strideReviewMismatch(strideDecision, context, request.stride_review_evidence) + : strideReviewMismatch(strideDecision, context, request.stride_review_evidence, vision.todo_delta) : null; let outcomes = strings(observation.delta_kinds); if (outcomes.some(value => (CAPABILITY_OUTCOMES as readonly string[]).includes(value))) { @@ -443,7 +448,8 @@ export function projectReplanSemantics(value: unknown): JsonObject { outcomes.push("fresh_vision_path_outcome"); } if (staleStride || missingStride || reviewMismatch) outcomes = outcomes.filter(outcome => outcome !== "fresh_vision_path_outcome"); - const satisfying = inconsistentTerminal || (periodicStrideReview && (missingStride || missingStridePath || staleStride || reviewMismatch)) + const satisfying = inconsistentTerminal || (requiredStrideReview && (missingStride || missingStridePath || staleStride || reviewMismatch)) + || (selectedComparison && (staleStride || reviewMismatch)) ? [] : outcomes.filter(outcome => required.includes(outcome as SemanticOutcome)); const replayRefused = (replayed || knownBlocker) && !satisfying.length && !inconsistentTerminal; const identityRefused = identityWithoutEvidence && !satisfying.length && !inconsistentTerminal; diff --git a/loopx/control_plane/work_items/stride_policy.ts b/loopx/control_plane/work_items/stride_policy.ts index 5176b76e12..bbd352c79e 100644 --- a/loopx/control_plane/work_items/stride_policy.ts +++ b/loopx/control_plane/work_items/stride_policy.ts @@ -7,6 +7,7 @@ import {EffectRuntimeRequestError} from "../effect_runtime_errors.ts"; import type {JsonObject} from "../effect_program.ts"; import {requireJsonObject, requireNonEmptyString, requireStringLiteral} from "../runtime_decode.ts"; import {normalizeExploreResultPages} from "../capabilities/explore_result_page.ts"; +import {PLANNING_TODO_ID} from "./planning_relations.ts"; export function normalizeStrideStrategy(value: unknown): string { if (value === undefined) return schema.default; @@ -26,6 +27,9 @@ const decisionValueReview = { route_distance: "Name the remaining authoritative goal gap, its limiting component and the plausible headroom. " + "Keep the retained best artifact as the comparison anchor and check whether subsequent work actually implements the proposed mechanism change. " + "Compare a different approach that can affect that component. Distinguish an unexecuted intervention, failed transfer and insufficient route potential: they imply different next experiments. " + + "When evidence weakens the current route, generate a small set of genuinely different explanations or approaches before selecting one: consider representation, decomposition, search method or information source where relevant. " + + "Contrast their predictions and full costs, then choose a discriminating experiment; parameter variants of the same mechanism are not independent alternatives. " + + "Missing feedback is a wait or evidence gap, not proof of route failure or exhausted alternatives. " + "A changed auxiliary mechanism alone does not show that it addresses the gap.", validation_scope: "Use evidence applicable to the limiting outcome and changed mechanism. " + "Bind comparisons to the artifact version, input conditions and original budget, and distinguish when feedback became available from when work was submitted. " + @@ -87,6 +91,35 @@ function refs(value: unknown, label: string): string[] { } return value as string[]; } +function selectedCandidate(value: unknown): JsonObject { + const input = requireJsonObject(value, "explore_review.selected_candidate"); + exactFields(input, ["todo_id", "node_id", "finding_id", "source_sha256"], "selected_candidate"); + const todo = requireNonEmptyString(input.todo_id, "selected_candidate.todo_id"); + if (!PLANNING_TODO_ID.test(todo)) throw new EffectRuntimeRequestError("selected_candidate requires a public Todo id"); + const node = refs([input.node_id], "selected_candidate.node_id")[0]; + const finding = refs([input.finding_id], "selected_candidate.finding_id")[0]; + const digest = requireNonEmptyString(input.source_sha256, "selected_candidate.source_sha256"); + if (!BARE_SHA256_PATTERN.test(digest)) throw new EffectRuntimeRequestError("selected_candidate requires the exact source digest"); + return {todo_id: todo, node_id: node, finding_id: finding, source_sha256: digest}; +} +function comparisonCandidates(value: unknown): JsonObject[] { + if (value === undefined) return []; + if (!Array.isArray(value) || value.length > 20) throw new EffectRuntimeRequestError("comparison_candidates must be a bounded source page"); + return value.map(value => { + const card = requireJsonObject(value, "comparison candidate"); + exactFields(card, ["todo_id", "outcomes"], "comparison candidate"); + if (!Array.isArray(card.outcomes) || !card.outcomes.length || card.outcomes.length > 3) { + throw new EffectRuntimeRequestError("comparison candidate requires at most three scoped outcomes"); + } + const outcomes = card.outcomes.map(value => { + const outcome = requireJsonObject(value, "comparison outcome"); + exactFields(outcome, ["node_id", "finding_id", "source_sha256"], "comparison outcome"); + const checked = selectedCandidate({todo_id: card.todo_id, ...outcome}); + return {node_id: checked.node_id, finding_id: checked.finding_id, source_sha256: checked.source_sha256}; + }); + return {todo_id: card.todo_id, outcomes}; + }); +} /** Agent interpretations are structured claims, not certified evidence or authority. */ export function normalizeStrideDecision(value: unknown, bounded: BoundedText = text): @@ -164,7 +197,7 @@ export function normalizeStrideDecision(value: unknown, bounded: BoundedText = t } if (input.explore_review != null) { const review = requireJsonObject(input.explore_review, "stride_decision.explore_review"); - exactFields(review, ["revision", "disposition", "considered_refs", "reason", ...(!historical ? ["result_pages"] : [])], "explore_review"); + exactFields(review, ["revision", "disposition", "considered_refs", "reason", ...(!historical ? ["result_pages", "selected_candidate"] : [])], "explore_review"); if (review.revision !== null && !BARE_SHA256_PATTERN.test(requireNonEmptyString(review.revision, "explore_review.revision"))) throw new EffectRuntimeRequestError("explore_review requires a delivered revision or null when unavailable"); requireStringLiteral(review.disposition, decisionSchema.explore_dispositions, "explore_review.disposition"); const considered = refs(review.considered_refs, "explore_review.considered_refs"); @@ -180,6 +213,14 @@ export function normalizeStrideDecision(value: unknown, bounded: BoundedText = t (output.explore_review as JsonObject).result_pages = pages; usage["stride_decision.explore_review.result_pages"] = JSON.stringify(pages).length; } + if (Object.hasOwn(review, "selected_candidate")) { + const candidate = selectedCandidate(review.selected_candidate); + if (review.disposition !== "used" || review.revision === null || !considered.includes(String(candidate.finding_id))) { + throw new EffectRuntimeRequestError("selected_candidate requires used, cited Explore evidence"); + } + (output.explore_review as JsonObject).selected_candidate = candidate; + usage["stride_decision.explore_review.selected_candidate"] = JSON.stringify(candidate).length; + } } return [output, usage]; } @@ -231,6 +272,7 @@ export function projectStrideExploreBasis(value: unknown, goal: string, agent: s const findings = Array.isArray(graph?.writeback_results) ? graph.writeback_results as JsonObject[] : []; const recent = Array.isArray(graph?.recent_findings) ? graph.recent_findings as JsonObject[] : []; const branches = Array.isArray(harness?.selected_branches) ? harness.selected_branches as JsonObject[] : []; + const candidates = source.harness_enabled === true ? comparisonCandidates(harness?.comparison_candidates) : []; const audits = branches.flatMap(branch => { const audit = branch.typed_evidence_audit as JsonObject | undefined; return Array.isArray(audit?.findings) ? audit.findings as JsonObject[] : []; @@ -246,8 +288,11 @@ export function projectStrideExploreBasis(value: unknown, goal: string, agent: s // Planner scores/counts and unrelated pool churn do not alter a cited // finding's source. Bind the actual bounded evidence, not the whole view. revision: createHash("sha256").update(JSON.stringify([goal, agent, source.graph_enabled, - source.harness_enabled, [...byId.values()].slice(0, 6)])).digest("hex"), + source.harness_enabled, [...byId.values()].slice(0, 6), ...(candidates.length ? [candidates] : [])])).digest("hex"), finding_refs: [...byId.values()].slice(0, 6), + ...(candidates.length ? {comparison_candidates: candidates} : {}), + ...(harness?.omitted_comparison_candidates !== undefined ? { + omitted_comparison_candidates: harness.omitted_comparison_candidates} : {}), branches: branches.slice(0, 3).map(branch => ({todo_id: branch.todo_id, selection_status: branch.selection_status, actionable_open: branch.actionable_open})), omitted_finding_refs: Math.max(0, byId.size - 6), @@ -258,7 +303,7 @@ export function projectStrideExploreBasis(value: unknown, goal: string, agent: s } /** Context binding checks shape and declared provenance, never truth of Agent claims. */ -export function strideReviewMismatch(decision: JsonObject, context: JsonObject, sourceReview?: unknown): string | null { +export function strideReviewMismatch(decision: JsonObject, context: JsonObject, sourceReview?: unknown, todoDelta?: unknown): string | null { const follow = context.decision_followthrough as JsonObject | undefined; const previous = follow?.previous_decision as JsonObject | undefined; const review = decision.previous_review as JsonObject | undefined; @@ -318,6 +363,8 @@ export function strideReviewMismatch(decision: JsonObject, context: JsonObject, } if (explore.disposition === "unavailable") return "Available Explore evidence cannot be declared unreadable."; const allowed = new Set((basis.finding_refs as JsonObject[]).map(row => row.finding_id)); + const candidates = comparisonCandidates(basis.comparison_candidates); + for (const card of candidates) for (const outcome of card.outcomes as JsonObject[]) allowed.add(outcome.finding_id); const deliveredPages = Array.isArray(context.explore_result_pages) ? context.explore_result_pages as JsonObject[] : []; for (const page of (explore.result_pages ?? []) as JsonObject[]) { const resolved = deliveredPages.find(row => row.revision === page.revision && @@ -326,8 +373,21 @@ export function strideReviewMismatch(decision: JsonObject, context: JsonObject, return "Explore result pages require current source replay; reread global pages under the original Turn."; } for (const ref of resolved.finding_refs as string[]) allowed.add(ref); + candidates.push(...comparisonCandidates(resolved.comparison_candidates)); } if (considered.some(ref => !allowed.has(ref))) return "Explore review cites an undelivered or foreign finding."; + if (explore.selected_candidate != null) { + const selected = selectedCandidate(explore.selected_candidate); + if (!candidates.some(card => card.todo_id === selected.todo_id && (card.outcomes as JsonObject[]).some(outcome => + ["node_id", "finding_id", "source_sha256"].every(key => outcome[key] === selected[key])))) { + return "Selected candidate requires the current Todo's explicit link to the exact scoped result; reread changed sources."; + } + // The existing Vision Todo plan and followthrough owner retain execution + // lineage. This optional claim cannot invent work or grant its admission. + if (!Array.isArray(todoDelta) || !todoDelta.includes(`retain:${selected.todo_id}`)) { + return "Selected candidate must be retained as the same existing Todo in agent_vision.todo_delta."; + } + } return null; } @@ -359,10 +419,20 @@ export function strideControlContract(context: JsonObject, obligationId: unknown ...(follow ? {decision_followthrough: follow} : {}), previous_review_options: {adoption: decisionSchema.adoption_options, information_gain: decisionSchema.information_options, goal_gain: decisionSchema.gain_options}, explore_basis: context.explore_basis ?? null, explore_dispositions: decisionSchema.explore_dispositions, + ...(basis?.harness_enabled === true ? { + selected_candidate_option: { + attachment: "explore_review.selected_candidate", + fields: ["todo_id", "node_id", "finding_id", "source_sha256"], + rule: "Optionally bind the next probe to an exact comparison_candidates Todo/outcome, cite that finding with disposition=used, and retain the same existing Todo in agent_vision.todo_delta. " + + "For an omitted alternative, read the existing global result pages and attach their coordinates in result_pages; current Todo links are replayed with those results. " + + "Cards share the page limit: expand --result-limit up to 20 for multiple Todos linked to one result. omitted_comparison_candidates discloses the remaining bound; omission does not mean ineligible. " + + "Choose continuation, a different mechanism or verification from the evidence; this source binding does not certify novelty, execution or utility and grants no admission.", + }, + } : {}), minimal_example: example, attachment: "agent_vision.stride_decision", requires_evidence_linked_path: true, required_on_periodic_review: true, - rule: "Every due periodic review with this strategy enabled must record a stride decision before settlement, including when a typed progress, successor, blocker or terminal outcome is also reported. " + + rule: "Every due periodic review and observed-stall review (typed_progress_repeat, no_progress_streak, repeated_action_loop or external_progress_review_drift) with this strategy enabled must record a stride decision before settlement, including when a typed progress, successor, blocker or terminal outcome is also reported. " + "The decision requires an evidence-linked Vision path (including a terminal stop when supported by evidence), an explicit grow/switch/verify action and a concrete plan/reason for each axis. " + "Grow expands a supported route; switch names the reference method and changed mechanism; verify resolves a named grow-or-switch question. Size every action for a coherent accepted deliverable or complete interpretable experiment, including ordinary engineering and maintenance. Grow changes useful completed scope, not authority or settlement boundaries. " + "The minimal example demonstrates syntax, not the recommended action for the current evidence. " + diff --git a/tests/control_plane/research_comparison_fixture.py b/tests/control_plane/research_comparison_fixture.py new file mode 100644 index 0000000000..01c7763b13 --- /dev/null +++ b/tests/control_plane/research_comparison_fixture.py @@ -0,0 +1,276 @@ +"""Controlled local Host: finite program search through real LoopX CLI owners. + +This is a deterministic experiment actor, not a model or an implementation of +LoopX's choice policy. It only reads training data; the owner verifier is a +separate program and receives withheld cases after a candidate is deployed. +""" +from __future__ import annotations + +from hashlib import sha256 +from itertools import islice, product +import json +from pathlib import Path +import random +import subprocess +import sys +import traceback + + +ROLES = ("retained", "parameter", "structural") + + +def encoded(value): + return json.dumps(value, sort_keys=True, separators=(",", ":")) + + +def simplify(op, left, right): + if isinstance(left, int) and isinstance(right, int): + return {"+": lambda: left + right, "-": lambda: left - right, "*": lambda: left * right}[op]() + if op == "+" and left == 0: + return right + if op in ("+", "-") and right == 0: + return left + if op == "*" and (left == 0 or right == 0): + return 0 + if op == "*" and left == 1: + return right + if op == "*" and right == 1: + return left + if op in ("+", "*") and encoded(left) > encoded(right): + left, right = right, left + return [op, left, right] + + +def programs(role, budget, seed): + incumbent = simplify("+", "x", "y") + if role == "retained": + yield from (incumbent for _ in range(budget)) + return + if role == "parameter": + # A fixed representation: a*x + b*y + c. No input interaction is + # available in this family, regardless of the parameter order. + coefficients = list(product(range(-2, 3), repeat=3)) + random.Random(seed).shuffle(coefficients) + for a, b, c in coefficients: + yield simplify("+", simplify("+", simplify("*", a, "x"), simplify("*", b, "y")), c) + return + assert role == "structural" + atoms = ["x", "y", -1, 0, 1] + random.Random(seed).shuffle(atoms) + by_size, seen = {1: atoms}, set() + for size in (1, 3, 5): + if size > 1: + by_size[size] = [simplify(op, left, right) + for left_size in range(1, size - 1, 2) + for left in by_size[left_size] for right in by_size[size - 1 - left_size] + for op in ("+", "-", "*")] + for program in by_size[size]: + key = encoded(program) + if key not in seen: + seen.add(key) + yield program + + +def evaluate(program, x, y): + if isinstance(program, int): + return program + if isinstance(program, str): + return {"x": x, "y": y}[program] + op, left, right = program + a, b = evaluate(left, x, y), evaluate(right, x, y) + return {"+": lambda: a + b, "-": lambda: a - b, "*": lambda: a * b}[op]() + + +def size(program): + return 1 if not isinstance(program, list) else 1 + size(program[1]) + size(program[2]) + + +def render(program): + return str(program) if not isinstance(program, list) else f"({render(program[1])}{program[0]}{render(program[2])})" + + +def cli(request, *arguments, expected=0): + result = subprocess.run([sys.executable, "-m", "loopx.cli", "--registry", request["registry"], + "--runtime-root", request["runtime"], "--format", "json", *arguments], + cwd=request["project"], capture_output=True, text=True, check=False) + assert result.returncode == expected, (arguments, result.stdout, result.stderr) + return json.loads(result.stdout) + + +def actor(request): + return ("--goal-id", request["goal_id"], "--agent-id", request["agent_id"]) + + +def guard(request, turn, *, todo=True): + return cli(request, "quota", "should-run", *actor(request), "--codex-app", "--scan-path", request["project"], + "--turn-instance-id", turn, *(("--todo-id", request["todo_id"]) if todo else ())) + + +def vision(request, evidence, *, outcome="continue"): + return {"schema_version": "goal_vision_replan_contract_v0", "state": "vision_patch_proposed", + "vision_patch": {"acceptance_summary": request["objective"]}, + "path_delta": {"schema_version": "goal_path_delta_v0", "outcome": outcome, + "prior_assumption": "The retained program may not express the observed relation.", + "observed_reality": "The bounded experiment produced an attributable result; withheld acceptance remains independent.", + "retained": ["Original owner acceptance and the best measured program."], "evidence_refs": [evidence]}} + + +def refresh(request, turn, packet, *, obligation=None): + path = Path(request["project"]) / (turn + "-vision.json") + path.write_text(json.dumps(packet)) + # The guard reconciles this exact existing Todo into the same Turn. Its + # receipt retains the due review; a planning recommendation alone is not a + # new replan-settlement identity or a reason to manufacture another Todo. + binding = ("--todo-id", request["todo_id"]) + result = cli(request, "refresh-state", *actor(request), *binding, "--turn-instance-id", turn, + "--classification", "comparison_measured_work", "--delivery-batch-scale", "implementation", + "--delivery-outcome", "outcome_progress", "--delivery-boundary", "semantic_closeout" if obligation else "in_flight_continuation", + "--agent-vision-json", str(path), "--no-global-sync", "--suppress-external-sinks") + cli(request, "quota", "spend-slot", *actor(request), *binding, "--turn-instance-id", turn, + "--slots", "1", "--source", "heartbeat", "--execute", "--scan-path", request["project"]) + return result + + +def probe(request, role): + turn = "comparison-probe-" + role + admitted = guard(request, turn) + assert admitted["should_run"] and admitted["selected_todo"]["todo_id"] == request["todo_id"], admitted + assert not admitted.get("autonomous_replan_obligation"), admitted + training = json.loads(Path(request["training"]).read_text()) + trace = [] + for program in islice(programs(role, request["budget"], request["seed"]), request["budget"]): + predicted = [evaluate(program, row["x"], row["y"]) for row in training] + trace.append({"program": program, "predicted": predicted, + "squared_error": sum((prediction - row["observed"]) ** 2 for prediction, row in zip(predicted, training))}) + assert len(trace) == request["budget"] + best = min(trace, key=lambda row: (row["squared_error"], size(row["program"]), encoded(row["program"]))) + result = {"role": role, "training_sha256": sha256(Path(request["training"]).read_bytes()).hexdigest(), + "score_calls": len(trace), "sample_evaluations": len(trace) * len(training), "trace": trace, "best": best} + artifact = Path(request["project"]) / ("experiment-" + role + ".json") + artifact.write_text(encoded(result)) + evidence = "experiment:" + sha256(artifact.read_bytes()).hexdigest() + packet = vision(request, evidence) + packet["path_delta"]["observed_reality"] = ( + f"The {role} family measured {render(best['program'])} with squared error " + f"{best['squared_error']} in {len(trace)} score calls; withheld performance is still unknown.") + packet["explore_result"] = {"schema_version": "explore_result_attachment_v0", "node_id": "comparison-" + role, + "question": "Can this bounded search family express the observed relation?", + "applicability": "Only the recorded training cases and the common scoring budget; heldout outcome is unknown.", + "input_revision": result["training_sha256"], "status": "confirmed" if best["squared_error"] == 0 else "refuted", + "observation": f"Best program {render(best['program'])} has squared error {best['squared_error']} in {len(trace)} score calls.", + "interpretation": "Compare the measured programs before adopting one; an unsuccessful representation may need a structural alternative.", + "evidence_refs": [evidence]} + written = refresh(request, turn, packet) + assert written["explore_result_delivery"]["ok"], written + return {"result": result, "writeback": written} + + +def propose(request): + pending = guard(request, "comparison-review", todo=False) + assert pending["heartbeat_receipt"]["settlement_binding_owed"] is True, pending + admitted = guard(request, "comparison-review") + assert admitted["heartbeat_receipt"]["settlement_identity"]["todo_id"] == request["todo_id"], admitted + obligation = admitted["autonomous_replan_obligation"] + contract = admitted["replan_action_packet"]["stride_control"] + current = cli(request, "explore", "turn-context", *actor(request), "--result-limit", "20") + findings = {row["finding_id"]: row for row in current["graph"]["writeback_results"]} + artifacts = {} + for role in ROLES: + path = Path(request["project"]) / ("experiment-" + role + ".json") + artifacts["experiment:" + sha256(path.read_bytes()).hexdigest()] = json.loads(path.read_text()) + eligible = [] + for card in contract["explore_basis"]["comparison_candidates"]: + for outcome in card["outcomes"]: + measured = next((artifacts[ref] for ref in findings[outcome["finding_id"]]["evidence_refs"] if ref in artifacts), None) + if measured: + eligible.append(({"todo_id": card["todo_id"], **outcome}, measured)) + assert len(eligible) == 3, eligible + choice, result = min(eligible, key=lambda pair: (pair[1]["best"]["squared_error"], size(pair[1]["best"]["program"]), ROLES.index(pair[1]["role"]))) + comparison = "; ".join(f"{item['role']} {render(item['best']['program'])}: SSE {item['best']['squared_error']}" + for _, item in sorted(eligible, key=lambda pair: ROLES.index(pair[1]["role"]))) + decision = json.loads(json.dumps(contract["minimal_example"])) + decision.update(basis="useful_new_route" if result["role"] != "retained" else "supported_progress", + action="switch" if result["role"] != "retained" else "verify") + decision["axes"] = { + "work_slice": {"plan": "Deploy and validate the measured program.", "reason": "Training alone leaves acceptance open."}, + "route_distance": {"plan": "Use " + render(result["best"]["program"]) + " from the selected comparison.", "reason": "Measured loss determines retention or change."}, + "validation_scope": {"plan": "Execute the pinned verifier on the deployed module.", "reason": "Withheld inputs check transfer."}} + decision["next_probe"] = {"scope": "One deployment and independent validation.", "prediction": "The program transfers to withheld inputs.", + "adoption_criterion": "Original owner verifier succeeds on deployed code.", + "cost_bound": "One implementation Turn.", "minimum_evidence": "Actual source, experiment provenance, acceptance receipt."} + decision["explore_review"] = {"revision": contract["explore_basis"]["revision"], "disposition": "used", + "considered_refs": [pair[0]["finding_id"] for pair in eligible], "selected_candidate": choice, + "reason": "Compare measured loss and representation size; retain the incumbent on equal evidence."} + packet = vision(request, choice["finding_id"], outcome="replan") + packet["stride_decision"], packet["todo_delta"] = decision, ["retain:" + choice["todo_id"]] + packet["path_delta"]["observed_reality"] = comparison + ". Each family used 125 score calls and 750 sample evaluations; heldout outcome is unknown." + packet["path_delta"]["changed"] = [f"Deploy {render(result['best']['program'])} from {result['role']}, then execute the unchanged owner verifier."] + return {"obligation_id": obligation["obligation_id"], "vision": packet, "selected_result": result} + + +def adopt(request): + proposal = propose(request) + written = refresh(request, "comparison-review", proposal["vision"], obligation=proposal["obligation_id"]) + assert written["autonomous_replan_ack"]["semantic_delta"]["accepted"], written + # Reread the committed source, then execute its selected artifact. A submitted + # proposal or a context card alone is not counted as implementation. + recorded = json.loads(Path(written["json_path"]).read_text())["agent_vision"] + selected = recorded["stride_decision"]["explore_review"]["selected_candidate"] + assert selected == proposal["vision"]["stride_decision"]["explore_review"]["selected_candidate"] + from loopx.goal_mode_mcp import GoalModeMCPConfig, GoalModeMCPControlPlane + control = GoalModeMCPControlPlane(GoalModeMCPConfig(server_name="comparison-fixture", runtime_profile="generic_cli", legacy_host_surface="claude_code"), + lambda: {"goal_id": request["goal_id"], "agent_id": request["agent_id"], "registry": request["registry"]}) + control.command_prefix = lambda: [sys.executable, "-m", "loopx.cli", "--runtime-root", request["runtime"]] + admitted = json.loads(control.should_run()) + assert admitted["should_run"] and admitted["selected_todo"]["todo_id"] == selected["todo_id"], admitted + artifact = Path(request["project"]) / ("experiment-" + proposal["selected_result"]["role"] + ".json") + result = json.loads(artifact.read_text()) + module = Path(request["project"]) / "predictor.py" + module.write_text("import json,sys\n\ndef predict(x,y):\n return " + render(result["best"]["program"]) + + "\n\nif __name__ == '__main__':\n print(json.dumps([predict(*pair) for pair in json.load(sys.stdin)]))\n") + training = json.loads(Path(request["training"]).read_text()) + execution = subprocess.run([sys.executable, str(module)], input=json.dumps([[row["x"], row["y"]] for row in training]), + capture_output=True, text=True, check=True) + deployed = {"selected_candidate": selected, "experiment_sha256": sha256(artifact.read_bytes()).hexdigest(), + "program": result["best"]["program"], "role": result["role"], "module_sha256": sha256(module.read_bytes()).hexdigest(), + "training_predictions": json.loads(execution.stdout)} + target = Path(request["project"]) / "deployed.json" + target.write_text(encoded(deployed)) + evidence = "deployed:" + sha256(target.read_bytes()).hexdigest() + terminal = vision(request, evidence, outcome="no_change") + terminal["state"] = "no_followup" + terminal["path_delta"]["observed_reality"] = f"Deployed {render(result['best']['program'])} from {result['role']}; actual training execution agrees. Completion will execute the unchanged independent verifier." + completed = json.loads(control.complete_task(selected["todo_id"], request["agent_id"], evidence, no_follow_up=True, agent_vision=terminal)) + assert completed["ok"], completed + verified = cli(request, "goal-acceptance", "verify", "--goal-id", request["goal_id"], "--execute") + assert verified["goal_acceptance_contract"]["status"] == "accepted", verified + # Publish the measured adoption through the existing evidence owner after + # actual verification. The shipped Explore view already links this node to + # the original Todo and shows the finding beside its completion state. + adoption = cli(request, "explore", "finding", *actor(request), "--node", selected["node_id"], + "--title", f"Adopted {render(result['best']['program'])} after independent acceptance.", "--status", "confirmed", + "--summary", proposal["vision"]["path_delta"]["observed_reality"].replace("heldout outcome is unknown", "the deployed source now passed the original heldout verifier") + + " Selection used measured loss and program size, retaining the incumbent on ties. This finite result does not establish live model creativity or broader utility.", + "--evidence-ref", evidence, "--evidence-ref", selected["finding_id"], "--tag", "comparison-adoption") + return {"proposal": proposal, "review": written, "deployment": deployed, "completion": completed, + "verification": verified, "adoption_finding": adoption} + + +def main(): + request = json.loads(Path(sys.argv[1]).read_text()) + try: + if request["stage"] == "probe": + result = probe(request, request["role"]) + elif request["stage"] == "propose": + result = propose(request) + else: + assert request["stage"] == "adopt" + result = adopt(request) + except Exception: + Path(request["response"]).write_text(json.dumps({"error": traceback.format_exc()})) + raise + Path(request["response"]).write_text(json.dumps(result)) + + +if __name__ == "__main__": + main() diff --git a/tests/control_plane/test_replan_progress_native_cli.py b/tests/control_plane/test_replan_progress_native_cli.py index 348741eb0d..ed79423bcd 100644 --- a/tests/control_plane/test_replan_progress_native_cli.py +++ b/tests/control_plane/test_replan_progress_native_cli.py @@ -205,3 +205,214 @@ def test_typed_progress_cli_preserves_replan_authority( assert authority["todos"][0]["status"] == "open" finally: restart_effect_runtime(wait_for_exit=True) + + +@pytest.mark.parametrize("provider", ["file", "sqlite"]) +@pytest.mark.parametrize("comparison_binding", [False, True], ids=["original", "source_bound"]) +def test_stalled_stride_review_drives_an_executed_mechanism_comparison( + tmp_path: Path, monkeypatch: pytest.MonkeyPatch, provider: str, + comparison_binding: bool, +) -> None: + """A real stall review reaches work and a later decision under one Goal. + + The bounded assignment problem is synthetic, with an unchanged minimum-cost + objective. It tests the control path, not benchmark or model effectiveness. + """ + isolate_sqlite_runtime(tmp_path, monkeypatch) + fixture = make_progress_cli_fixture(tmp_path, provider, "advanced") + registry = json.loads(fixture["registry"].read_text()) + registry["goals"][0]["quota"]["allowed_slots"] = 8 + fixture["registry"].write_text(json.dumps(registry)) + + def call(*args: str, expected_code: int = 0) -> dict: + return call_progress_cli(fixture, *args, expected_code=expected_code) + + def guard(turn: str, *, todo: str | None = TODO) -> dict: + return call("quota", "should-run", "--codex-app", "--goal-id", GOAL, + "--agent-id", AGENT, "--turn-instance-id", turn, + *(["--todo-id", todo] if todo else []), "--scan-path", str(fixture["project"])) + + def spend(turn: str, *, todo: str | None = TODO, obligation: str | None = None) -> dict: + return call("quota", "spend-slot", "--goal-id", GOAL, "--agent-id", AGENT, + "--turn-instance-id", turn, *(["--todo-id", todo] if todo else []), + *(["--replan-obligation-id", obligation] if obligation else []), + "--slots", "1", "--source", "heartbeat", "--execute") + + try: + call("configure-goal", "--goal-id", GOAL, "--execution-replan-after-turns", "1", + "--execution-stride-strategy", "evidence_conditioned_v1", "--execute") + if comparison_binding: + call("configure-goal", "--goal-id", GOAL, "--explore-mode", "planning", "--execute") + call("explore", "node", "--goal-id", GOAL, "--agent-id", AGENT, + "--node-id", "recorded-local-route", "--kind", "question", + "--title", "Do the existing observations establish useful progress?") + call("explore", "finding", "--goal-id", GOAL, "--agent-id", AGENT, + "--node", "recorded-local-route", "--finding-id", "finding-recorded-local", + "--title", "The recorded local observations are unchanged.", "--status", "tentative", + "--summary", "Only the fixture's recorded observations; alternate mechanisms remain untested.", + "--tag", "writeback-result", "--evidence-ref", "evidence-existing") + call("todo", "update", "--goal-id", GOAL, "--agent-id", AGENT, "--todo-id", TODO, + "--explore-result-node-ref", "recorded-local-route") + guard(TURN, todo=None) + admitted = guard(TURN) + obligation = admitted["autonomous_replan_obligation"] + assert [item["kind"] for item in obligation["triggers"]] == ["typed_progress_repeat"] + assert "fresh_vision_path_outcome" in obligation["replan_context"]["uncovered_frontier"]["required_any_of"] + assert admitted["replan_action_packet"]["uncovered_frontier"] == obligation["replan_context"]["uncovered_frontier"] + original_index = fixture["index"].read_bytes() + refused = call(*fixture["refresh"], expected_code=1) + assert refused["replan_transition"]["reason_code"] == "stride_decision_required" + assert fixture["index"].read_bytes() == original_index + + control = admitted["replan_action_packet"]["stride_control"] + decision = {**control["minimal_example"], "basis": "unexplained_gap", "action": "verify", + "axes": { + "work_slice": {"plan": "Run and compare three complete assignment methods.", + "reason": "Repeated local changes have not resolved the cost gap."}, + "route_distance": {"plan": "Compare local choice, reverse priority and joint assignment.", + "reason": "Row interactions may defeat independent greedy choices."}, + "validation_scope": {"plan": "Use the same costs and one-use-per-column constraint.", + "reason": "A changed objective cannot establish a better route."}}, + "next_probe": {"scope": "One complete bounded assignment comparison.", + "prediction": "Joint choices can beat independent local choices.", + "minimum_evidence": "Executable methods, assignments, constraint checks and costs.", + "adoption_criterion": "A valid lower-cost assignment under the original objective.", + "cost_bound": "Three methods on a three-row fixture; at most six joint assignments."}} + choice = None + if comparison_binding: + basis = control["explore_basis"] + card = next(card for card in basis["comparison_candidates"] if card["todo_id"] == TODO) + choice = {"todo_id": TODO, **card["outcomes"][0]} + assert choice["finding_id"] == "finding-recorded-local" + decision["explore_review"] = {"revision": basis["revision"], "disposition": "used", + "considered_refs": [choice["finding_id"]], "selected_candidate": choice, + "reason": "Use the recorded outcome to compare mechanisms within the original unfinished task."} + packet = {"schema_version": "goal_vision_replan_contract_v0", "state": "vision_patch_proposed", + "vision_patch": {"acceptance_summary": "The original minimum-cost validation remains open."}, + "path_delta": {"outcome": "continue", "prior_assumption": "Local changes can resolve the gap.", + "observed_reality": "Repeated observations do not establish that explanation.", + "retained": ["Original objective and unfinished validation"], + "evidence_refs": ["evidence-existing"]}, + "stride_decision": decision, "todo_delta": [f"retain:{TODO}"]} + vision = tmp_path / "comparison-review.json" + vision.write_text(json.dumps(packet)) + refresh_args = ("refresh-state", "--goal-id", GOAL, "--agent-id", AGENT, + "--todo-id", TODO, "--turn-instance-id", TURN, "--agent-vision-json", str(vision), + "--classification", "bounded_replan_progress", "--delivery-batch-scale", "single_surface", + "--delivery-outcome", "outcome_progress", "--no-global-sync", "--suppress-external-sinks") + if comparison_binding: + # Reuse the admitted current context, but falsify only the source + # digest. The typed progress exit must not hide this mismatch. + current_source = _authority(fixture) + current_state = fixture["state"].read_bytes() + wrong = json.loads(json.dumps(packet)) + digest = choice["source_sha256"] + wrong["stride_decision"]["explore_review"]["selected_candidate"]["source_sha256"] = ( + ("0" if digest[0] != "0" else "1") + digest[1:]) + vision.write_text(json.dumps(wrong)) + refused = call(*refresh_args, "--progress-result-class", "advanced", + "--progress-probe-kind", "probe-independent", "--progress-evidence-id", "evidence-current", + expected_code=1) + assert "exact scoped result" in refused["error"], refused + assert fixture["index"].read_bytes() == original_index + assert fixture["state"].read_bytes() == current_state and _authority(fixture) == current_source + vision.write_text(json.dumps(packet)) + accepted = call(*refresh_args) + assert accepted["autonomous_replan_ack"]["semantic_delta"]["satisfying_outcomes"] == ["fresh_vision_path_outcome"] + if comparison_binding: + persisted = json.loads(Path(accepted["json_path"]).read_text()) + assert persisted["agent_vision"]["stride_decision"]["explore_review"]["selected_candidate"] == choice + restart_effect_runtime(wait_for_exit=True) + assert call(*refresh_args)["appended"] is False + spend(TURN) + + work_turn = "turn-executed-route-comparison" + selected = guard(work_turn) + assert selected["selected_todo"]["todo_id"] == TODO + artifact = fixture["project"] / "assignment-comparison.json" + subprocess.run([sys.executable, "-c", """ +import itertools, json, sys +from pathlib import Path +costs = [[1, 2, 9], [1, 9, 9], [9, 1, 2]] +def greedy(order): + assignment, available = [None] * len(costs), set(range(len(costs))) + for row in order: + column = min(available, key=lambda column: (costs[row][column], column)) + assignment[row] = column + available.remove(column) + return assignment +def cost(assignment): + assert sorted(assignment) == list(range(len(costs))) + return sum(costs[row][column] for row, column in enumerate(assignment)) +assignments = {'local': greedy(range(3)), 'reverse_priority': greedy(range(2, -1, -1)), + 'joint': min(itertools.permutations(range(3)), key=cost)} +results = {name: {'assignment': list(value), 'cost': cost(value)} for name, value in assignments.items()} +winner = min(results, key=lambda name: results[name]['cost']) +Path(sys.argv[1]).write_text(json.dumps({'results': results, 'winner': winner, + 'objective': 'minimum_total_cost', 'constraint': 'each_column_once'})) +""", str(artifact)], check=True, cwd=fixture["project"], timeout=10) + measured = json.loads(artifact.read_text()) + assert measured["results"]["local"]["cost"] == 12 + assert measured["results"]["reverse_priority"]["cost"] == 11 + assert measured["results"]["joint"]["cost"] == 5 + assert measured["winner"] == "joint" + summary = "Local cost 12; reverse-priority cost 11; joint cost 5. Retain the joint result; validate transfer." + work = call("refresh-state", "--goal-id", GOAL, "--agent-id", AGENT, + "--todo-id", TODO, "--turn-instance-id", work_turn, + "--classification", "validated_progress", "--delivery-batch-scale", "implementation", + "--delivery-outcome", "outcome_progress", "--delivery-boundary", "in_flight_continuation", + "--recommended-action", summary, "--no-global-sync", "--suppress-external-sinks") + spend(work_turn) + + next_turn = "turn-review-executed-comparison" + next_guard = guard(next_turn, todo=None) + next_obligation = next_guard["autonomous_replan_obligation"] + follow = next_obligation["replan_context"]["decision_followthrough"] + planned = next(item for item in follow["planned_work"] if item["todo_id"] == TODO) + result_ref = planned["ordinary_evidence_refs"][0] + readback = call("history", "--goal-id", GOAL, "--agent-id", AGENT, + "--evidence-ref", result_ref)["evidence"] + assert readback["recommended_action"] == summary + assert readback["generated_at"] == json.loads(Path(work["json_path"]).read_text())["generated_at"] + assert follow["execution_and_goal_gain"] == "unknown", "Synthetic provenance is not authoritative transfer" + if comparison_binding: + assert follow["previous_decision"]["stride_decision"]["explore_review"]["selected_candidate"] == choice + + # The measured choice changes the next executable work, not just prose. + successor = call("todo", "add", "--goal-id", GOAL, "--role", "agent", "--claimed-by", AGENT, + "--text", f"Validate transfer of {measured['winner']} assignment on independent costs", + "--task-class", "advancement_task", "--action-kind", "validate", + "--target-key", "joint-assignment-transfer", "--replan-obligation-id", next_obligation["obligation_id"]) + next_guard = guard(next_turn, todo=successor["todo_id"]) + next_control = next_guard["replan_action_packet"]["stride_control"] + next_decision = {**decision, "action": "switch", "basis": "useful_new_route", + "reference_context_id": next_control["reference_context_id"], + "reference_obligation_id": next_obligation["obligation_id"], + "previous_review": {"reference_decision_ref": follow["previous_decision"]["evidence_ref"], + "adoption": "executed", "information_gain": "new_evidence", "goal_gain": "unknown", + "evidence_refs": [result_ref], "lesson": "Joint choices improved this fixture; transfer remains unproven."}} + next_decision["axes"] = {**decision["axes"], "route_distance": { + "plan": "Carry joint assignment into an independent transfer check.", + "reason": "The paired experiment exposed the local-choice limitation."}} + if comparison_binding: + # B is new work justified by the actual comparison. The optional + # retained-A choice is not a routing command or evidence of B. + next_decision["explore_review"] = {"revision": next_control["explore_basis"]["revision"], + "disposition": "deferred", "considered_refs": [], + "reason": "Transfer remains untested; the next work uses the executed comparison's history evidence."} + packet = {**packet, "stride_decision": next_decision, "todo_delta": [f"create:{successor['todo_id']}"]} + vision.write_text(json.dumps(packet)) + adopted = call("refresh-state", "--goal-id", GOAL, "--agent-id", AGENT, + "--replan-obligation-id", next_obligation["obligation_id"], "--turn-instance-id", next_turn, + "--agent-vision-json", str(vision), "--classification", "bounded_replan_progress", + "--delivery-batch-scale", "single_surface", "--delivery-outcome", "outcome_progress", + "--no-global-sync", "--suppress-external-sinks") + assert adopted["autonomous_replan_ack"]["semantic_delta"]["accepted"] is True + spend(next_turn, todo=None, obligation=next_obligation["obligation_id"]) + if comparison_binding: + spent = [json.loads(line) for line in fixture["index"].read_text().splitlines() + if json.loads(line).get("quota_spend_commit")] + assert len(spent) == 3 + assert {row["turn_instance_id"] for row in spent} == {TURN, work_turn, next_turn} + finally: + restart_effect_runtime(wait_for_exit=True) diff --git a/tests/control_plane/test_research_comparison_cli.py b/tests/control_plane/test_research_comparison_cli.py new file mode 100644 index 0000000000..fa01876f26 --- /dev/null +++ b/tests/control_plane/test_research_comparison_cli.py @@ -0,0 +1,193 @@ +"""Evidence changes actual selected programs under real CLI/worker/acceptance. + +The local Host performs finite symbolic search, not a live provider call. The +retained route, parameter neighbourhood and structural grammar have the same +scoring budget. The oracle independently executes generated source on withheld +inputs and never supplies those inputs to the search or choice actor. +""" +from __future__ import annotations + +from hashlib import sha256 +import json +from pathlib import Path +import shlex +import sys + +import pytest + +from canonical_authority_fixture import isolate_sqlite_runtime +import test_quota_settlement_cli as fixture +from test_external_scheduler_worker import _args, worker + + +HOST = Path(__file__).with_name("research_comparison_fixture.py") +ROLES = ("retained", "parameter", "structural") +OBJECTIVE = "Deploy a program that explains the observed relation and passes independent withheld cases under the original bounded study." + +# A separate evaluator: it compiles the generated module and reconstructs the +# recorded expressions with Python's AST, without importing the search actor. +ORACLE = r'''import ast,hashlib,importlib.util,json +from pathlib import Path + +def expression(program): + if type(program) is int: + return ast.Constant(program) + if program in ("x","y"): + return ast.Name(id=program,ctx=ast.Load()) + assert isinstance(program,list) and len(program)==3 + operation={"+":ast.Add,"-":ast.Sub,"*":ast.Mult}[program[0]] + return ast.BinOp(left=expression(program[1]),op=operation(),right=expression(program[2])) + +def compiled(program): + return compile(ast.fix_missing_locations(ast.Expression(body=expression(program))),"recorded-expression","eval") + +training=json.loads(Path("training.json").read_text()) +study=json.loads(Path("study.json").read_text()) +deployed=json.loads(Path("deployed.json").read_text()) +spec=importlib.util.spec_from_file_location("actual_deployment",Path("predictor.py")) +module=importlib.util.module_from_spec(spec) +spec.loader.exec_module(module) +assert deployed["module_sha256"]==hashlib.sha256(Path("predictor.py").read_bytes()).hexdigest() +assert all(module.predict(row["x"],row["y"])==row["observed"] for row in study["withheld"]) +assert deployed["training_predictions"]==[module.predict(row["x"],row["y"]) for row in training] +candidate=compiled(deployed["program"]) +assert all(eval(candidate,{"__builtins__":{}},{"x":row["x"],"y":row["y"]})==module.predict(row["x"],row["y"]) + for row in study["withheld"]) +measured=[] +for role in ("retained","parameter","structural"): + path=Path("experiment-"+role+".json") + result=json.loads(path.read_text()) + assert result["training_sha256"]==hashlib.sha256(Path("training.json").read_bytes()).hexdigest() + assert result["score_calls"]==len(result["trace"])==study["score_budget"] + assert result["sample_evaluations"]==study["score_budget"]*len(training) + for row in result["trace"]: + executable=compiled(row["program"]) + predicted=[eval(executable,{"__builtins__":{}},{"x":case["x"],"y":case["y"]}) for case in training] + assert row["predicted"]==predicted + assert row["squared_error"]==sum((value-case["observed"])**2 for value,case in zip(predicted,training)) + assert result["best"] in result["trace"] + assert result["best"]["squared_error"]==min(row["squared_error"] for row in result["trace"]) + measured.append(result["best"]["squared_error"]) + if role==deployed["role"]: + assert deployed["experiment_sha256"]==hashlib.sha256(path.read_bytes()).hexdigest() + assert deployed["program"]==result["best"]["program"] + selected_loss=result["best"]["squared_error"] +assert selected_loss==min(measured) +with Path("oracle-executions.jsonl").open("a") as stream: + stream.write(json.dumps({"withheld_cases":len(study["withheld"]),"module_sha256":deployed["module_sha256"]})+"\n") +''' + + +@pytest.mark.parametrize("provider", ["file", "sqlite"]) +@pytest.mark.parametrize("relation", ["interaction", "additive"]) +def test_measured_comparison_generates_and_adopts_a_program_with_original_acceptance(tmp_path, monkeypatch, provider, relation): + isolate_sqlite_runtime(tmp_path, monkeypatch) + monkeypatch.setenv("LOOPX_USAGE_PING", "0") + monkeypatch.setenv("PYTHONPATH", str(fixture.REPO_ROOT)) + project, runtime, registry = fixture._write_fixture(tmp_path) + monkeypatch.chdir(project) + config = json.loads(registry.read_text()) + config["goals"][0]["quota"]["allowed_slots"] = 16 + registry.write_text(json.dumps(config)) + fixture._initialize_fixture_authority(project, runtime, provider=provider) + + def cli(*arguments, code=0): + observed, packet = fixture._run_cli(registry, runtime, *arguments, cwd=project) + assert observed == code, json.dumps(packet) + return packet + + cli("configure-goal", "--goal-id", fixture.GOAL_ID, "--explore-mode", "planning", + "--execution-replan-after-turns", "3", "--execution-stride-strategy", "evidence_conditioned_v1", "--execute") + # The owner defines three search families and a complete implementation + # task, not a winning expression or a prewritten next-route Todo. Links are + # part of that initial work declaration; later result capture adds evidence. + cli("todo", "update", "--goal-id", fixture.GOAL_ID, "--todo-id", fixture.TODO_ID, + "--agent-id", fixture.AGENT_ID, "--text", OBJECTIVE, + *[value for role in ROLES for value in ("--explore-result-node-ref", "comparison-" + role)]) + # Both relations use the same search/data order for a provider. The second + # provider independently reverses training order and changes grammar order; + # neither relation nor withheld outcomes enter the actor's route choice. + seed = 17 if provider == "file" else 18 + pairs = [(-2, -1), (-1, 2), (0, 3), (1, -2), (2, 1), (3, 0)] + if seed % 2: + pairs.reverse() + operation = (lambda x, y: x * y) if relation == "interaction" else (lambda x, y: x + y) + training = [{"x": x, "y": y, "observed": operation(x, y)} for x, y in pairs] + withheld = [{"x": x, "y": y, "observed": operation(x, y)} for x, y in [(-7, 4), (5, -6), (11, 13), (0, -9)]] + (project / "training.json").write_text(json.dumps(training)) + (project / "study.json").write_text(json.dumps({"score_budget": 125, "withheld": withheld})) + (project / "verify.py").write_text(ORACLE) + document = {"scope": {"kind": "all_advancement"}, "objective": OBJECTIVE, + "non_goals": ["No claim about live model creativity or performance outside this finite arithmetic study."], + "criteria": [{"id": "transfer", "description": "Actual deployed source passes withheld inputs and preserves the bounded comparison evidence.", + "validation_argv": [sys.executable, "verify.py"], "validation_timeout_seconds": 10, + "validation_files": [{"path": name, "sha256": sha256((project / name).read_bytes()).hexdigest()} + for name in ("verify.py", "study.json", "training.json")]}], + "bindings": [{"todo_id": fixture.TODO_ID, "criterion_ids": ["transfer"]}]} + document_path = project / "requirements.json" + document_path.write_text(json.dumps(document)) + initial = cli("goal-acceptance", "inspect", "--goal-id", fixture.GOAL_ID) + configured = cli("goal-acceptance", "configure", "--goal-id", fixture.GOAL_ID, "--document", str(document_path), + "--expected-provider-revision", initial["provider_revision"], "--operation-id", "owner-frozen-study", "--execute")["goal_acceptance_contract"] + args = _args(fake_cli=Path(sys.executable).parent / "loopx", state_file=tmp_path / "worker.json", + quota_timeout_seconds=90, wake_timeout_seconds=180) + args.registry, args.runtime_root = str(registry), str(runtime) + args.goal_id, args.agent_id = fixture.GOAL_ID, fixture.AGENT_ID + request = {"project": str(project), "registry": str(registry), "runtime": str(runtime), + "goal_id": fixture.GOAL_ID, "agent_id": fixture.AGENT_ID, "todo_id": fixture.TODO_ID, + "objective": OBJECTIVE, "training": str(project / "training.json"), "budget": 125, "seed": seed} + + def run_host(stage, role=""): + key = stage + ("-" + role if role else "") + response, path = project / (key + "-response.json"), project / (key + "-request.json") + path.write_text(json.dumps({**request, "stage": stage, "role": role, "response": str(response)})) + args.wake_cmd = shlex.join([sys.executable, str(HOST), str(path)]) + code = worker.run_worker(args) + assert code == 0, response.read_text() if response.exists() else key + assert response.exists(), "The authorized worker did not execute the controlled Host." + return json.loads(response.read_text()) + + results = {role: run_host("probe", role)["result"] for role in ROLES} + assert {row["score_calls"] for row in results.values()} == {125} + assert {row["sample_evaluations"] for row in results.values()} == {750} + assert len({json.dumps(row["program"]) for row in results["structural"]["trace"]}) == 125 + assert not (project / "deployed.json").exists() and not (project / "oracle-executions.jsonl").exists() + if relation == "interaction": + assert results["retained"]["best"]["squared_error"] > 0 + assert results["parameter"]["best"]["squared_error"] > 0 + else: + assert results["retained"]["best"]["squared_error"] == 0 + adopted = run_host("adopt") + deployed = adopted["deployment"] + expected_role = "structural" if relation == "interaction" else "retained" + assert deployed["role"] == expected_role + # Neither the Todo nor the Host request contains the expected winning + # program; the actual evaluated source selected from current cards does. + assert deployed["program"] == results[expected_role]["best"]["program"] + assert deployed["selected_candidate"] == adopted["proposal"]["vision"]["stride_decision"]["explore_review"]["selected_candidate"] + assert adopted["review"]["autonomous_replan_ack"]["semantic_delta"]["accepted"] + final = cli("goal-acceptance", "inspect", "--goal-id", fixture.GOAL_ID)["goal_acceptance_contract"] + assert final["status"] == "accepted" and final["revision"] == configured["revision"] + assert final["digest"] == configured["digest"] + # The existing adapter's completion/terminal readback runs two validation + # checks; the explicit original Goal verification runs the third. Count + # all of them instead of hiding validation cost behind one completion. + assert len((project / "oracle-executions.jsonl").read_text().splitlines()) == 3 + current = cli("todo", "list", "--goal-id", fixture.GOAL_ID, "--todo-id", fixture.TODO_ID)["todo"] + assert current["status"] == "done" and current["no_followup"] is True + before = (runtime / "goals" / fixture.GOAL_ID / "runs/index.jsonl").read_bytes() + rows = [json.loads(line) for line in before.splitlines()] + spent = [row for row in rows if row.get("quota_spend_commit")] + work = [row for row in rows if not row.get("quota_spend_commit")] + expected_turns = {"comparison-review", *["comparison-probe-" + role for role in ROLES], + adopted["completion"]["settlement_identity"]["turn_instance_id"]} + assert len(rows) == 10 and len(work) == len(spent) == len(expected_turns) == 5 + assert {row["turn_instance_id"] for row in work} == expected_turns + assert {row["turn_instance_id"] for row in spent} == expected_turns + assert {row["todo_id"] for row in rows} == {fixture.TODO_ID} + for _ in range(2): + assert worker.run_worker(args) == 0 + after = (runtime / "goals" / fixture.GOAL_ID / "runs/index.jsonl").read_bytes() + assert after == before, "A completed finite comparison must not dispatch or settle another research Turn." + final_guard = cli("quota", "should-run", "--goal-id", fixture.GOAL_ID, "--agent-id", fixture.AGENT_ID) + assert final_guard["should_run"] is False diff --git a/tests/control_plane/test_stride_comparison_followthrough_cli.py b/tests/control_plane/test_stride_comparison_followthrough_cli.py new file mode 100644 index 0000000000..9ea2bde6f7 --- /dev/null +++ b/tests/control_plane/test_stride_comparison_followthrough_cli.py @@ -0,0 +1,149 @@ +"""Exact comparison provenance is planning intent, not execution authority. + +Exercise a real canonical B successor beside a selected/retained A decision. +Subsequent B work must remain B work and cannot substantiate execution of A. +""" +from __future__ import annotations + +from copy import deepcopy +import json +from pathlib import Path +import sys + +import pytest + +from canonical_authority_fixture import isolate_sqlite_runtime +import research_comparison_fixture as actor +import test_quota_settlement_cli as fixture + + +@pytest.mark.parametrize("provider", ["file", "sqlite"]) +def test_current_source_replay_and_different_successor_do_not_certify_selected_work(tmp_path, monkeypatch, provider): + isolate_sqlite_runtime(tmp_path, monkeypatch) + monkeypatch.setenv("LOOPX_USAGE_PING", "0") + monkeypatch.setenv("PYTHONPATH", str(fixture.REPO_ROOT)) + project, runtime, registry = fixture._write_fixture(tmp_path) + monkeypatch.chdir(project) + config = json.loads(registry.read_text()) + config["goals"][0]["quota"]["allowed_slots"] = 12 + registry.write_text(json.dumps(config)) + fixture._initialize_fixture_authority(project, runtime, provider=provider) + + def cli(*arguments, expected=0): + code, packet = fixture._run_cli(registry, runtime, *arguments, cwd=project) + assert code == expected, json.dumps(packet) + return packet + + identity = ("--goal-id", fixture.GOAL_ID, "--agent-id", fixture.AGENT_ID) + cli("configure-goal", "--goal-id", fixture.GOAL_ID, "--explore-mode", "planning", + "--execution-replan-after-turns", "1", "--execution-stride-strategy", "evidence_conditioned_v1", "--execute") + cli("todo", "update", *identity, "--todo-id", fixture.TODO_ID, + "--explore-result-node-ref", "comparison-retained") + training = project / "training.json" + training.write_text(json.dumps([{"x": x, "y": y, "observed": x * y} for x, y in [(-2, -1), (1, -2)]])) + request = {"project": str(project), "registry": str(registry), "runtime": str(runtime), + "goal_id": fixture.GOAL_ID, "agent_id": fixture.AGENT_ID, "todo_id": fixture.TODO_ID, + "objective": "Keep the comparison's current source distinct from later unrelated work.", + "training": str(training), "budget": 125, "seed": 17} + actor.probe(request, "retained") + + def guard(turn, todo=None): + return cli("quota", "should-run", *identity, "--codex-app", "--scan-path", str(project), + "--turn-instance-id", turn, *(("--todo-id", todo) if todo else ())) + + turn = "comparison-a-plan-b-successor" + initial = guard(turn) + obligation = initial["autonomous_replan_obligation"] + assert {row["kind"] for row in obligation["triggers"]} == {"periodic_review_due"} + old_choice = {"todo_id": fixture.TODO_ID, + **initial["replan_action_packet"]["stride_control"]["explore_basis"]["comparison_candidates"][0]["outcomes"][0]} + # This is an actual current-source update through the public Explore owner, + # with the same finding id. A previously read hash must not survive it. + cli("explore", "finding", *identity, "--finding-id", old_choice["finding_id"], + "--node", old_choice["node_id"], "--title", "The retained program fails the recorded interaction cases.", + "--summary", "Updated applicability: only these measured inputs; a later independent task is not this experiment.", + "--status", "refuted", "--tag", "writeback-result", "--evidence-ref", "measured:retained-inputs") + successor = cli("todo", "add", "--goal-id", fixture.GOAL_ID, "--role", "agent", + "--claimed-by", fixture.AGENT_ID, "--text", "Independently measure another input relation.", + "--task-class", "advancement_task", "--action-kind", "validate", "--target-key", "independent-b", + "--replan-obligation-id", obligation["obligation_id"]) + other_id = successor["todo_id"] + assert other_id != fixture.TODO_ID + bound = guard(turn, fixture.TODO_ID) + assert bound["heartbeat_receipt"]["settlement_identity"]["todo_id"] == fixture.TODO_ID + assert bound["autonomous_replan_obligation"]["obligation_id"] == obligation["obligation_id"] + control = bound["replan_action_packet"]["stride_control"] + card = next(card for card in control["explore_basis"]["comparison_candidates"] if card["todo_id"] == fixture.TODO_ID) + current_choice = {"todo_id": fixture.TODO_ID, **card["outcomes"][0]} + assert current_choice["source_sha256"] != old_choice["source_sha256"] + decision = deepcopy(control["minimal_example"]) + decision["explore_review"] = {"revision": control["explore_basis"]["revision"], "disposition": "used", + "considered_refs": [current_choice["finding_id"]], "selected_candidate": old_choice, + "reason": "Keep exact source provenance for the retained A plan."} + packet = actor.vision(request, current_choice["finding_id"], outcome="replan") + packet.update(stride_decision=decision, todo_delta=["retain:" + fixture.TODO_ID]) + packet["path_delta"]["changed"] = ["A remains the declared next probe; the separate B task does not count as its execution."] + path = project / "review-a.json" + index = runtime / "goals" / fixture.GOAL_ID / "runs/index.jsonl" + + def review(value, turn_id=turn, *, expected=0): + path.write_text(json.dumps(value)) + return cli("refresh-state", *identity, "--todo-id", fixture.TODO_ID, "--turn-instance-id", turn_id, + "--classification", "source_bound_comparison", "--delivery-batch-scale", "implementation", + "--delivery-outcome", "outcome_progress", "--agent-vision-json", str(path), + "--no-global-sync", "--suppress-external-sinks", expected=expected) + + before = index.read_bytes() + refused = review(packet, expected=1) + assert not refused.get("appended") + assert "exact scoped result" in refused["error"], refused + assert index.read_bytes() == before + packet["stride_decision"]["explore_review"]["selected_candidate"] = current_choice + accepted = review(packet) + delta = accepted["autonomous_replan_ack"]["semantic_delta"] + assert delta["accepted"] and "fresh_vision_path_outcome" in delta["satisfying_outcomes"] + persisted = json.loads(Path(accepted["json_path"]).read_text()) + assert persisted["agent_vision"]["todo_delta"] == ["retain:" + fixture.TODO_ID] + assert persisted["agent_vision"]["stride_decision"]["explore_review"]["selected_candidate"] == current_choice + cli("quota", "spend-slot", *identity, "--todo-id", fixture.TODO_ID, "--turn-instance-id", turn, + "--slots", "1", "--source", "heartbeat", "--execute") + + # B receives its own normal admission, performs actual work, then settles. + # The optional A selection never reserves or silently redirects execution. + actual_turn = "actual-independent-b" + actual = guard(actual_turn, other_id) + assert actual["should_run"] and actual["selected_todo"]["todo_id"] == other_id + import subprocess + artifact = project / "actual-b.json" + subprocess.run([sys.executable, "-c", "import json,sys;from pathlib import Path;" + "Path(sys.argv[1]).write_text(json.dumps({'measured_sum':sum(x*x for x in [-2,0,3])}))", str(artifact)], check=True) + assert json.loads(artifact.read_text())["measured_sum"] == 13 + cli("refresh-state", *identity, "--todo-id", other_id, "--turn-instance-id", actual_turn, + "--classification", "independent_b_experiment", "--delivery-batch-scale", "implementation", + "--delivery-outcome", "outcome_progress", "--delivery-boundary", "in_flight_continuation", + "--progress-result-class", "advanced", "--progress-surface-id", "independent-b", + "--progress-probe-kind", "sum-of-squares", "--progress-evidence-id", "measured:actual-b", + "--no-global-sync", "--suppress-external-sinks") + cli("quota", "spend-slot", *identity, "--todo-id", other_id, "--turn-instance-id", actual_turn, + "--slots", "1", "--source", "heartbeat", "--execute") + next_turn = "review-a-execution-claim" + guard(next_turn) + next_guard = guard(next_turn, fixture.TODO_ID) + next_control = next_guard["replan_action_packet"]["stride_control"] + follow = next_control["decision_followthrough"] + assert follow["previous_decision"]["stride_decision"]["explore_review"]["selected_candidate"] == current_choice + assert follow["execution_and_goal_gain"] == "unknown" + [planned] = follow["planned_work"] + assert planned["todo_id"] == fixture.TODO_ID + assert planned["observation_refs"] == [] and not planned.get("ordinary_evidence_refs") + observed_b = next(row for row in follow["observations"] if row["todo_id"] == other_id) + next_packet = actor.vision(request, observed_b["evidence_ref"], outcome="replan") + next_decision = deepcopy(next_control["minimal_example"]) + next_decision["previous_review"] = {"reference_decision_ref": follow["previous_decision"]["evidence_ref"], + "adoption": "executed", "information_gain": "new_evidence", "goal_gain": "unknown", + "evidence_refs": [observed_b["evidence_ref"]], "lesson": "Attempt to pass off B's measurement as A's execution."} + next_packet.update(stride_decision=next_decision, todo_delta=["retain:" + fixture.TODO_ID]) + before = index.read_bytes() + refused = review(next_packet, next_turn, expected=1) + assert "declared work" in refused["error"] and not refused.get("appended"), refused + assert index.read_bytes() == before diff --git a/tests/control_plane_ts/replan_context.test.ts b/tests/control_plane_ts/replan_context.test.ts index 2dd917d11a..47d56781ca 100644 --- a/tests/control_plane_ts/replan_context.test.ts +++ b/tests/control_plane_ts/replan_context.test.ts @@ -471,6 +471,22 @@ test("another lane or retired Goal instance never supplies current decision evid .decision_followthrough as JsonObject).previous_decision as JsonObject).goal_ref, currentRef); }); +test("stall frontier projects its current strategy through the shared outcome owner", () => { + for (const kind of ["typed_progress_repeat", "no_progress_streak", "repeated_action_loop"]) { + const obligation = {...request.obligation, triggers: [{kind}], + replan_context: {stride_strategy: "off"}}; + const enabled = projectReplanContext({...request, obligation, stride_strategy: "evidence_conditioned_v1"}); + assert.ok(((enabled.uncovered_frontier as JsonObject).required_any_of as string[]) + .includes("fresh_vision_path_outcome")); + const off = projectReplanContext({...request, obligation, stride_strategy: "off"}); + assert.equal(((off.uncovered_frontier as JsonObject).required_any_of as string[]) + .includes("fresh_vision_path_outcome"), false); + const restricted = projectReplanContext({...request, stride_strategy: "evidence_conditioned_v1", + obligation: {...obligation, satisfying_semantic_outcomes: ["new_runnable_successor"]}}); + assert.deepEqual((restricted.uncovered_frontier as JsonObject).required_any_of, ["new_runnable_successor"]); + } +}); + test("strategy off preserves context identity and selection despite decision transport facts", () => { const rows = [reviewed(), subsequent(1)]; const ordinary = projectReplanContext({...request, rows}); diff --git a/tests/control_plane_ts/replan_semantics.test.ts b/tests/control_plane_ts/replan_semantics.test.ts index d45137dcf7..7d53694a74 100644 --- a/tests/control_plane_ts/replan_semantics.test.ts +++ b/tests/control_plane_ts/replan_semantics.test.ts @@ -344,7 +344,8 @@ test("versioned stride advice is opt-in and never a semantic discharge", () => { const withStrategy = projectReplanSemantics({operation: "requirements", obligation: enabled}); assert.deepEqual((withStrategy.planning_guidance as string[]).slice(0, 5), base.planning_guidance); assert.equal((withStrategy.planning_guidance as string[]).length, 6); - assert.deepEqual(withStrategy.required_any_of, base.required_any_of); + assert.deepEqual(withStrategy.required_any_of, + ["fresh_vision_path_outcome", ...(base.required_any_of as string[])]); assert.match((withStrategy.planning_guidance as string[])[5], /work size, route distance and validation breadth independently/); assert.match((withStrategy.planning_guidance as string[])[5], /Do not restart unfinished coherent work/); assert.equal(projectReplanSemantics({operation: "qualify", obligation: enabled, diff --git a/tests/control_plane_ts/stride_comparison_selection.test.ts b/tests/control_plane_ts/stride_comparison_selection.test.ts new file mode 100644 index 0000000000..4bb8af244c --- /dev/null +++ b/tests/control_plane_ts/stride_comparison_selection.test.ts @@ -0,0 +1,223 @@ +import assert from "node:assert/strict"; +import test from "node:test"; +import type {JsonObject} from "../../loopx/control_plane/effect_program.ts"; +import {projectExploreTurnContext} from "../../loopx/control_plane/capabilities/explore_turn_context.ts"; +import {projectReplanContext} from "../../loopx/control_plane/work_items/replan_context.ts"; +import {normalizeStrideDecision, strideControlContract, strideReviewMismatch} from "../../loopx/control_plane/work_items/stride_policy.ts"; +import {projectReplanSemantics} from "../../loopx/control_plane/work_items/replan_semantics.ts"; + +const goal = "route-comparison", agent = "researcher", obligationId = "replan-" + "a".repeat(16); +const findings = [ + {finding_id: "finding-local", node_id: "local-method", finding: "The local method misses the interaction.", + status: "refuted", summary: "The measured result applies only to input-v1 and the tested local search.", + evidence_refs: ["measurement:local-v1"], tags: ["writeback-result"]}, + {finding_id: "finding-joint", node_id: "joint-method", finding: "The joint method resolves the tested interaction.", + status: "confirmed", summary: "The measured result applies only to input-v1; independent validation remains.", + evidence_refs: ["measurement:joint-v1"], tags: ["writeback-result"]}, +]; +const branches = findings.map((finding, i) => ({todo_id: `todo_method_${i}`, text: `Validate mechanism ${i}.`, + status: "open", actionable_open: true, selection_status: "selected", score: 100 - i, + typed_evidence_audit: {mode: "diagnostic_only", score_delta: 0, + requested_node_refs: [finding.node_id], unknown_node_refs: [], + nodes: [{node_id: finding.node_id, status: "exploring"}], findings: [finding], relevant_edges: []}})); +const input: JsonObject = {goal_id: goal, agent_id: agent, route: ["loopx"], graph_enabled: true, + harness_gate: {enabled: true}, plan: {selected_branches: branches}, + projection: {nodes: findings.map(row => ({node_id: row.node_id, status: "exploring"})), findings}, + include_finding_digests: true}; + +function context(source = projectExploreTurnContext(input)): JsonObject { + return projectReplanContext({operation: "project", goal_id: goal, agent_id: agent, rows: [], goal_facts: {}, + obligation: {obligation_id: obligationId}, stride_strategy: "evidence_conditioned_v1", explore_context: source}); +} +function selected(ctx: JsonObject): JsonObject { + const cards = (ctx.explore_basis as JsonObject).comparison_candidates as JsonObject[]; + const card = cards.find(row => row.todo_id === "todo_method_1")!; + return {todo_id: card.todo_id, ...(card.outcomes as JsonObject[])[0]}; +} +function decision(ctx: JsonObject): JsonObject { + const choice = selected(ctx); + return {...strideControlContract(ctx, obligationId)!.minimal_example as JsonObject, + explore_review: {revision: (ctx.explore_basis as JsonObject).revision, disposition: "used", + considered_refs: [choice.finding_id], reason: "Compare the measured mechanism under unchanged acceptance.", + selected_candidate: choice}}; +} +function qualify(ctx: JsonObject, proposal: JsonObject, todoDelta = ["retain:todo_method_1"]): JsonObject { + return projectReplanSemantics({operation: "qualify", obligation: {obligation_id: obligationId, + triggers: [{kind: "periodic_review_due"}], replan_context: ctx}, agent_vision: { + stride_decision: proposal, todo_delta: todoDelta, vision_patch: {acceptance_summary: "Original acceptance remains."}, + path_delta: {outcome: "replan", evidence_refs: ["measurement:joint-v1"]}}, + observation_delta: {delta_kinds: ["new_runnable_successor"]}}); +} + +test("admitted stride context retains executable candidate links to exact scoped outcomes", () => { + const source = projectExploreTurnContext(input), ctx = context(source); + const cards = (ctx.explore_basis as JsonObject).comparison_candidates as JsonObject[]; + assert.equal(cards?.length, 2, "The executable comparison relation must survive the replan projection."); + assert.deepEqual(cards.map(row => row.todo_id), ["todo_method_0", "todo_method_1"]); + assert.equal((cards[0].outcomes as JsonObject[])[0].node_id, "local-method"); + assert.equal((cards[1].outcomes as JsonObject[])[0].node_id, "joint-method"); + assert.match(String(selected(ctx).source_sha256), /^[0-9a-f]{64}$/); + assert.equal((source.harness as JsonObject).selected_branches instanceof Array, true); + assert.deepEqual(((source.harness as JsonObject).selected_branches as JsonObject[]).map(row => row.score), [100, 99]); + assert.equal(qualify(ctx, decision(ctx)).accepted, true); +}); + +test("candidate selection binds current Todo linkage, source content and retained planned work", () => { + const ctx = context(), proposal = decision(ctx), choice = selected(ctx); + for (const patch of [{todo_id: "todo_other"}, {node_id: "local-method"}, + {finding_id: "finding-local"}, {source_sha256: "b".repeat(64)}]) { + const changed = {...proposal, explore_review: {...proposal.explore_review as JsonObject, + considered_refs: [patch.finding_id ?? choice.finding_id], + selected_candidate: {...choice, ...patch}}}; + assert.equal(qualify(ctx, changed).accepted, false, JSON.stringify(patch)); + } + for (const todoDelta of [[], ["retain:todo_other"], ["The chosen method will run."]]) { + assert.equal(qualify(ctx, proposal, todoDelta).accepted, false); + } + const changedSource = projectExploreTurnContext({...input, projection: {...input.projection as JsonObject, + findings: findings.map(row => row.finding_id === choice.finding_id ? {...row, + summary: "New input-v2 contradicts the prior applicability."} : row)}}); + assert.equal(qualify(context(changedSource), proposal).accepted, false); + const unlinked = projectExploreTurnContext({...input, plan: {selected_branches: branches.map(row => ({...row, + typed_evidence_audit: {...row.typed_evidence_audit, requested_node_refs: ["unknown"], unknown_node_refs: ["unknown"]}}))}}); + assert.equal(qualify(context(unlinked), proposal).accepted, false); + for (const patch of [{actionable_open: false}, {claimed_by: "other-agent"}]) { + const closed = projectExploreTurnContext({...input, plan: {selected_branches: branches.map(row => ({...row, ...patch}))}}); + assert.equal((closed.harness as JsonObject).comparison_candidates, undefined); + assert.equal(qualify(context(closed), proposal).accepted, false); + } +}); + +for (const kind of ["periodic_review_due", "typed_progress_repeat", "no_progress_streak", + "repeated_action_loop", "external_progress_review_drift"]) { + test(`${kind} combines current comparison evidence with its required decision`, () => { + const ctx = context(), proposal = decision(ctx), choice = selected(ctx); + const obligation = {obligation_id: obligationId, triggers: [{kind}], replan_context: ctx}; + const vision = {stride_decision: proposal, todo_delta: ["retain:todo_method_1"], + vision_patch: {acceptance_summary: "Original acceptance remains."}, + path_delta: {outcome: "continue", evidence_refs: ["measurement:joint-v1"]}}; + const request = {operation: "qualify", obligation, agent_vision: vision}; + const accepted = projectReplanSemantics(request); + assert.deepEqual(accepted.satisfying_outcomes, ["fresh_vision_path_outcome"], + "Current evidence may justify finishing useful work without inventing a successor."); + const successor = {delta_kinds: ["new_runnable_successor"]}; + const wrongSource = {...proposal, explore_review: {...proposal.explore_review as JsonObject, + selected_candidate: {...choice, source_sha256: "b".repeat(64)}}}; + for (const change of [ + {stride_decision: wrongSource}, + {stride_decision: {...proposal, reference_context_id: "replan-context-" + "b".repeat(24)}}, + {stride_decision: {...proposal, reference_obligation_id: "replan-" + "b".repeat(16)}}, + {todo_delta: ["retain:todo_other"]}, + {stride_decision: undefined}, + ]) { + assert.equal(projectReplanSemantics({...request, observation_delta: successor, + agent_vision: {...vision, ...change}}).accepted, false, + "A typed successor cannot bypass either the current decision or its explicit source binding."); + } + assert.equal(projectReplanSemantics({operation: "transition_eligibility", obligation}).allowed, false); + assert.equal(projectReplanSemantics({...request, obligation: {...obligation, + satisfying_semantic_outcomes: ["new_runnable_successor"]}}).accepted, false, + "An explicit source restriction still cannot be satisfied by a fresh path alone."); + const off = {...obligation, replan_context: {stride_strategy: "off"}}; + assert.equal(projectReplanSemantics({operation: "qualify", obligation: off, + observation_delta: successor}).accepted, true); + assert.equal(projectReplanSemantics({operation: "transition_eligibility", obligation: off}).allowed, true); + }); +} + +test("explicit selection remains optional and cannot be turned into authority or a forced pivot", () => { + const ctx = context(), proposal = decision(ctx); + const ordinary = {...proposal, explore_review: {...proposal.explore_review as JsonObject}}; + delete (ordinary.explore_review as JsonObject).selected_candidate; + assert.equal(strideReviewMismatch(normalizeStrideDecision(ordinary)[0]!, ctx), null); + assert.equal(qualify(ctx, ordinary, []).accepted, true); + const incumbent = (ctx.explore_basis as JsonObject).comparison_candidates as JsonObject[]; + const keep = {todo_id: incumbent[0].todo_id, ...(incumbent[0].outcomes as JsonObject[])[0]}; + assert.equal(qualify(ctx, {...proposal, action: "verify", explore_review: { + ...proposal.explore_review as JsonObject, considered_refs: [keep.finding_id], selected_candidate: keep}}, + ["retain:todo_method_0"]).accepted, true, "Scoped negative evidence does not ban a new discriminating probe."); + const off = context(projectExploreTurnContext({...input, graph_enabled: false, harness_gate: {enabled: false}, plan: {}})); + assert.equal(off.explore_basis, undefined); + assert.equal(qualify(off, proposal).accepted, false); + const disabledStrategy = projectReplanContext({operation: "project", goal_id: goal, agent_id: agent, rows: [], + goal_facts: {}, obligation: {obligation_id: obligationId}, stride_strategy: "off", + explore_context: projectExploreTurnContext(input)}); + assert.equal(disabledStrategy.explore_basis, undefined); + assert.equal(qualify(disabledStrategy, proposal).accepted, false); + const nonperiodic = {operation: "qualify", obligation: {obligation_id: obligationId, + triggers: [{kind: "vision_acceptance_gap"}], replan_context: ctx}, + agent_vision: {stride_decision: proposal, todo_delta: ["retain:todo_other"]}, + observation_delta: {delta_kinds: ["new_runnable_successor"]}}; + assert.equal(projectReplanSemantics(nonperiodic).accepted, false, + "An explicit invalid binding cannot settle through an unrelated typed successor outcome."); +}); + +test("selection declarations reject malformed identities, unsupported authority and uncited results", () => { + const ctx = context(), proposal = decision(ctx), choice = selected(ctx); + for (const patch of [{todo_id: ""}, {source_sha256: "A".repeat(64)}, {source_sha256: "sha256:" + "a".repeat(64)}, + {node_id: "/private/path"}, {execute: true}]) { + assert.throws(() => normalizeStrideDecision({...proposal, explore_review: { + ...proposal.explore_review as JsonObject, selected_candidate: {...choice, ...patch}}})); + } + for (const patch of [{disposition: "deferred"}, {considered_refs: []}, {considered_refs: ["finding-local"]}]) { + assert.throws(() => normalizeStrideDecision({...proposal, explore_review: {...proposal.explore_review as JsonObject, ...patch}})); + } +}); + +test("source-replayed result pages reach a lower-ranked method without changing planner permission", () => { + const measured = Array.from({length: 4}, (_, index) => ({...findings[index === 3 ? 1 : 0], + finding_id: `finding-ranked-${index}`, node_id: `mechanism-${index}`})); + const pool = measured.map((finding, index) => ({...branches[0], todo_id: `todo_ranked_${index}`, + score: 100 - 20 * index, selection_status: index < 3 ? "selected" : "verification_budget_exhausted", + typed_evidence_audit: {...branches[0].typed_evidence_audit, requested_node_refs: [finding.node_id], + nodes: [{node_id: finding.node_id, status: "exploring"}], findings: [finding]}})); + const full: JsonObject = {...input, plan: {selected_branches: pool.slice(0, 3), rejected_candidates: pool.slice(3)}, + projection: {nodes: measured.map(row => ({node_id: row.node_id, status: "exploring"})), findings: measured}}; + const first = projectExploreTurnContext(full), original = context(first); + const page = {revision: ((first.graph as JsonObject).result_page as JsonObject).revision, offset: 3, limit: 3}; + const read = projectExploreTurnContext({...full, result_offset: 3, result_revision: page.revision}); + const card = ((read.harness as JsonObject).comparison_candidates as JsonObject[])[0]; + const choice = {todo_id: card.todo_id, ...(card.outcomes as JsonObject[])[0]}; + assert.equal(choice.todo_id, "todo_ranked_3"); + const proposal = {...strideControlContract(original, obligationId)!.minimal_example as JsonObject, + explore_review: {revision: (original.explore_basis as JsonObject).revision, disposition: "used", + considered_refs: [choice.finding_id], reason: "Compare the measured alternative under the original budget.", + selected_candidate: choice, result_pages: [page]}}; + assert.equal(qualify(original, proposal, ["retain:todo_ranked_3"]).accepted, false); + const replayed = context(projectExploreTurnContext({...full, review_pages: [page]})); + assert.equal(replayed.context_id, original.context_id); + assert.equal(qualify(replayed, proposal, ["retain:todo_ranked_3"]).accepted, true); + assert.deepEqual(((first.harness as JsonObject).selected_branches as JsonObject[]).map(row => row.todo_id), + ["todo_ranked_0", "todo_ranked_1", "todo_ranked_2"]); + assert.equal(((read.harness as JsonObject).rejected_candidates as JsonObject[])[0].selection_status, + "verification_budget_exhausted", "Evidence access does not rewrite planner execution permission."); + const unlinked = {...full, plan: {...full.plan as JsonObject, rejected_candidates: [ + {...pool[3], typed_evidence_audit: {...pool[3].typed_evidence_audit, requested_node_refs: []}}]}}; + assert.equal(qualify(context(projectExploreTurnContext({...unlinked, review_pages: [page]})), + proposal, ["retain:todo_ranked_3"]).accepted, false, "A page cannot revive a removed current Todo link."); +}); + +test("multiple Todos sharing one finding disclose omission and use the existing expanded page", () => { + const pool = Array.from({length: 21}, (_, index) => ({...branches[0], todo_id: `todo_shared_${index}`, + score: 100 - index, selection_status: index < 3 ? "selected" : "verification_budget_exhausted"})); + const full: JsonObject = {...input, plan: {selected_branches: pool.slice(0, 3), rejected_candidates: pool.slice(3)}, + projection: {nodes: [{node_id: findings[0].node_id, status: "exploring"}], findings: [findings[0]]}}; + const first = projectExploreTurnContext(full), original = context(first); + assert.equal((first.harness as JsonObject).omitted_comparison_candidates, 18); + const read = projectExploreTurnContext({...full, result_limit: 20}); + const cards = (read.harness as JsonObject).comparison_candidates as JsonObject[]; + assert.equal(cards.length, 20); + assert.equal((read.harness as JsonObject).omitted_comparison_candidates, 1); + const card = cards[3], choice = {todo_id: card.todo_id, ...(card.outcomes as JsonObject[])[0]}; + const page = {revision: ((first.graph as JsonObject).result_page as JsonObject).revision, offset: 0, limit: 20}; + const proposal = {...strideControlContract(original, obligationId)!.minimal_example as JsonObject, + explore_review: {revision: (original.explore_basis as JsonObject).revision, disposition: "used", + considered_refs: [choice.finding_id], reason: "Check a different current work item against the same scoped result.", + selected_candidate: choice, result_pages: [page]}}; + const replayed = context(projectExploreTurnContext({...full, review_pages: [page]})); + assert.equal(qualify(replayed, proposal, ["retain:todo_shared_3"]).accepted, true); + const omitted = {...proposal, explore_review: {...proposal.explore_review as JsonObject, + selected_candidate: {...choice, todo_id: "todo_shared_20"}}}; + assert.equal(qualify(replayed, omitted, ["retain:todo_shared_20"]).accepted, false, + "A full planner row alone is not a delivered comparison source binding."); +}); diff --git a/tests/control_plane_ts/stride_policy.test.ts b/tests/control_plane_ts/stride_policy.test.ts index e14f378b88..ac1d48fc54 100644 --- a/tests/control_plane_ts/stride_policy.test.ts +++ b/tests/control_plane_ts/stride_policy.test.ts @@ -5,6 +5,8 @@ import {buildVisionCheckpoint, VISION_REFRESH_REQUEST_SCHEMA} from "../../loopx/ import {projectReplanSemantics} from "../../loopx/control_plane/work_items/replan_semantics.ts"; const contextId = "replan-context-" + "a".repeat(24); +const decisionReviewTriggers = ["periodic_review_due", "typed_progress_repeat", + "no_progress_streak", "repeated_action_loop", "external_progress_review_drift"]; const proposal = {schema_version: "stride_decision_v2", strategy_version: "evidence_conditioned_v1", reference_context_id: contextId, reference_obligation_id: "replan-" + "a".repeat(16), basis: "unexplained_gap", action: "switch", axes: { work_slice: {plan: "Build the complete alternate engine and compare it with the incumbent.", reason: "A partial component cannot test the end-to-end explanation."}, @@ -108,6 +110,11 @@ test("goal-value questions are enabled review input, not persisted decisions or assert.match(work, /recovering an avoidable initial quality deficit/); assert.match(route, /retained best artifact/); assert.match(route, /subsequent work actually implements/); + assert.match(route, /generate a small set of genuinely different explanations or approaches/); + assert.match(route, /representation, decomposition, search method or information source/); + assert.match(route, /Contrast their predictions and full costs/); + assert.match(route, /parameter variants of the same mechanism are not independent alternatives/); + assert.match(route, /Missing feedback is a wait or evidence gap/); assert.match(validation, /artifact version, input conditions/); assert.match(validation, /feedback became available/); assert.match(validation, /not proof of restoration or continued execution/); @@ -161,9 +168,9 @@ test("an accepted schema and vector do not authorize work or certify gain; stale assert.equal(projectReplanSemantics({operation: "qualify", obligation, stride_decision: proposal}).accepted, false); }); -test("every enabled due review records stride even when progress, a successor or a blocker is the exit", () => { +for (const kind of decisionReviewTriggers) test(`${kind} records stride even when progress, a successor or a blocker is the exit`, () => { const obligation = {obligation_id: proposal.reference_obligation_id, - triggers: [{kind: "periodic_review_due"}], + triggers: [{kind}], replan_context: {stride_strategy: "evidence_conditioned_v1", context_id: contextId}}; const authored = buildVisionCheckpoint(request).agent_vision; const withoutDecision = {...authored, stride_decision: undefined}; @@ -197,7 +204,7 @@ test("every enabled due review records stride even when progress, a successor or assert.equal(bareDecision.reason_code, "stride_path_evidence_required"); }); -test("terminal due review can record stride without manufacturing a continuing path", () => { +for (const kind of decisionReviewTriggers) test(`${kind} can record a terminal decision without manufacturing a continuing path`, () => { const terminalPacket = {...packet, state: "no_followup", path_delta: {...packet.path_delta, outcome: "stop"}}; assert.throws(() => buildVisionCheckpoint({...request, agent_vision_packet: terminalPacket}), /stride_decision requires/); @@ -206,7 +213,7 @@ test("terminal due review can record stride without manufacturing a continuing p const terminal = buildVisionCheckpoint({...request, allow_terminal_stride_path: true, agent_vision_packet: terminalPacket}).agent_vision; const obligation = {obligation_id: proposal.reference_obligation_id, - triggers: [{kind: "periodic_review_due"}], + triggers: [{kind}], replan_context: {stride_strategy: "evidence_conditioned_v1", context_id: contextId}}; const observation_delta = {delta_kinds: ["coverage_backed_no_followup"]}; assert.equal(projectReplanSemantics({operation: "qualify", obligation, observation_delta, @@ -215,9 +222,9 @@ test("terminal due review can record stride without manufacturing a continuing p agent_vision: terminal}).accepted, true); }); -test("a successor Todo transition cannot silently settle an enabled due review", () => { +for (const kind of decisionReviewTriggers) test(`${kind} cannot be silently settled by a successor Todo transition`, () => { const obligation = {obligation_id: proposal.reference_obligation_id, - triggers: [{kind: "periodic_review_due"}]}; + triggers: [{kind}]}; const semantic_delta = {schema_version: "replan_semantic_delta_v0", accepted: true, obligation_id: proposal.reference_obligation_id, successor_todo_id: "todo_successor", outcomes: ["new_runnable_successor"], satisfying_outcomes: ["new_runnable_successor"]}; @@ -237,6 +244,23 @@ test("a successor Todo transition cannot silently settle an enabled due review", assert.equal((bound.obligation as Record).resolution_mode, undefined); }); +for (const kind of decisionReviewTriggers) test(`${kind} can retain useful work through an evidenced decision without inventing progress`, () => { + const obligation = {obligation_id: proposal.reference_obligation_id, triggers: [{kind}], + replan_context: {stride_strategy: "evidence_conditioned_v1", context_id: contextId}}; + const requirements = projectReplanSemantics({operation: "requirements", obligation}); + assert.ok((requirements.required_any_of as string[]).includes("fresh_vision_path_outcome")); + assert.ok(((requirements.writeback_contract as Record).required_fields as string[]) + .includes("agent_vision.stride_decision")); + for (const action of ["grow", "switch", "verify"]) { + const vision = buildVisionCheckpoint({...request, agent_vision_packet: {...packet, + path_delta: {...packet.path_delta, outcome: "continue"}, + stride_decision: {...proposal, action}}}).agent_vision; + const result = projectReplanSemantics({operation: "qualify", obligation, agent_vision: vision}); + assert.equal(result.accepted, true, action); + assert.deepEqual(result.satisfying_outcomes, ["fresh_vision_path_outcome"]); + } +}); + test("all three actions preserve independently planned complete work and validation", () => { const axes = {...proposal.axes, work_slice: {plan: "Finish the expanded engine and paired independent repetitions.", reason: "The complete experiment is needed to resolve uncertainty."},