@tea-agent/loop-agent 0.39.0-next.3 → 0.39.0-next.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. package/AGENTS.md +4 -1
  2. package/CHANGELOG.md +267 -65
  3. package/README.md +11 -5
  4. package/bin/loop-agent.js +7 -3
  5. package/dist/application/dag/generate-task-dag.js +9 -0
  6. package/dist/application/task-lifecycle/advance.js +4 -0
  7. package/dist/build-stamp.json +3 -3
  8. package/dist/cli/command-definitions.js +16 -5
  9. package/dist/cli/program.js +16 -2
  10. package/dist/cli/update/notifier.js +2 -2
  11. package/dist/cli.js +2 -1
  12. package/dist/commands/dag-rerun.js +55 -1
  13. package/dist/commands/init-model-catalog.js +464 -0
  14. package/dist/commands/init-upgrade.js +265 -97
  15. package/dist/commands/init.js +428 -27
  16. package/dist/commands/inspect-next.js +8 -0
  17. package/dist/commands/task-advance.js +31 -0
  18. package/dist/executors/dag-pi-executor.js +118 -14
  19. package/dist/executors/pi-event-serializer.js +42 -1
  20. package/dist/executors/pi-executor.js +51 -0
  21. package/dist/executors/pi-extension-resolver.js +233 -0
  22. package/dist/executors/pi-playwright-cli-tool.js +8 -1
  23. package/dist/executors/pi-sdk-executor.js +187 -59
  24. package/dist/executors/shell-executor.js +533 -29
  25. package/dist/executors/shell-write-guard.js +7 -0
  26. package/dist/shared/dag-prompt-override.js +28 -0
  27. package/dist/shared/operator/capabilities.js +181 -27
  28. package/dist/shared/update/console-notifier.js +100 -0
  29. package/dist/{cli → shared}/update/npm-client.js +41 -8
  30. package/dist/{cli → shared}/update/state.js +41 -13
  31. package/dist/task/config-types.js +22 -0
  32. package/dist/task/contract/constants.js +1 -0
  33. package/dist/task/contract/diff.js +26 -0
  34. package/dist/task/contract/project.js +5 -0
  35. package/dist/task/contract/schema.js +6 -1
  36. package/dist/task/source-prepare/build-draft.js +15 -0
  37. package/dist/worker/cli.js +31 -1
  38. package/dist/worker/console/chat/deferred-turn.js +91 -0
  39. package/dist/worker/console/chat/mcp-inventory.js +221 -0
  40. package/dist/worker/console/chat/pi-runtime.js +165 -83
  41. package/dist/worker/console/chat/repo-walk.js +10 -1
  42. package/dist/worker/console/chat/routes.js +478 -55
  43. package/dist/worker/console/chat/semantic-activity.js +20 -8
  44. package/dist/worker/console/chat/session-store.js +146 -2
  45. package/dist/worker/console/chat/turn-process.js +17 -30
  46. package/dist/worker/console/harness-pi-model-matrix.js +137 -0
  47. package/dist/worker/console/operator-actions.js +244 -4
  48. package/dist/worker/console/operator-user-error.js +19 -0
  49. package/dist/worker/console/pi-readiness.js +12 -5
  50. package/dist/worker/console/recovery-cta.js +4 -4
  51. package/dist/worker/console/recovery-error-copy.js +4 -4
  52. package/dist/worker/console/routes.js +43 -2
  53. package/dist/worker/console/security.js +83 -10
  54. package/dist/worker/console/server.js +42 -6
  55. package/dist/worker/console/static/assets/{abnfDiagram-N423BO3Z-DSvF6RXQ.js → abnfDiagram-N423BO3Z-CiGOV5eG.js} +1 -1
  56. package/dist/worker/console/static/assets/{arc-DuI4ogtJ.js → arc-Ds9Gyfd8.js} +1 -1
  57. package/dist/worker/console/static/assets/{architectureDiagram-T3A2C74G-DdBbgD4y.js → architectureDiagram-T3A2C74G-C6V6uC98.js} +1 -1
  58. package/dist/worker/console/static/assets/{blockDiagram-VBNYF7ZC-xQC2HELm.js → blockDiagram-VBNYF7ZC-DezF7Ol9.js} +1 -1
  59. package/dist/worker/console/static/assets/{c4Diagram-5PPSVZJV-DPMSgwIZ.js → c4Diagram-5PPSVZJV-BCWk3gCT.js} +1 -1
  60. package/dist/worker/console/static/assets/channel-DMvu1nmi.js +1 -0
  61. package/dist/worker/console/static/assets/{chunk-2GRJ4B5K-WTEKTxin.js → chunk-2GRJ4B5K-DbYr-Cxy.js} +1 -1
  62. package/dist/worker/console/static/assets/{chunk-2Q5K7J3B-B6vZ0Pv_.js → chunk-2Q5K7J3B-XSlusW4G.js} +1 -1
  63. package/dist/worker/console/static/assets/{chunk-5RXB4S5H-BrerNAix.js → chunk-5RXB4S5H-BtcKAj9i.js} +1 -1
  64. package/dist/worker/console/static/assets/{chunk-5VM5RSS4-D_ch2aaI.js → chunk-5VM5RSS4-BF57lhXj.js} +1 -1
  65. package/dist/worker/console/static/assets/{chunk-6Q2QTUOP-VvfacNrq.js → chunk-6Q2QTUOP-DJIlR25o.js} +1 -1
  66. package/dist/worker/console/static/assets/{chunk-GF5L2VYU-B-uGFIg2.js → chunk-GF5L2VYU-DklNc7dm.js} +1 -1
  67. package/dist/worker/console/static/assets/{chunk-JWPE2WC7-BlysCtod.js → chunk-JWPE2WC7-fZNtEdQZ.js} +1 -1
  68. package/dist/worker/console/static/assets/{chunk-KBJHAD2P-BjAUAfcT.js → chunk-KBJHAD2P-BBgLqV4h.js} +1 -1
  69. package/dist/worker/console/static/assets/{chunk-RYQCIY6F-BeZnBmb-.js → chunk-RYQCIY6F-Dl9e5n_J.js} +1 -1
  70. package/dist/worker/console/static/assets/{chunk-XXDRQBXY-Bbfe3UJG.js → chunk-XXDRQBXY-B0JK51NT.js} +1 -1
  71. package/dist/worker/console/static/assets/classDiagram-JCYQIIEL-DVzM-02m.js +1 -0
  72. package/dist/worker/console/static/assets/classDiagram-v2-OCEON4UE-DVzM-02m.js +1 -0
  73. package/dist/worker/console/static/assets/{cose-bilkent-JH36ORCC-BKJQnYVM.js → cose-bilkent-JH36ORCC-Ch-ajv4O.js} +1 -1
  74. package/dist/worker/console/static/assets/{cynefin-VYW2F7L2-B1wtI3hU.js → cynefin-VYW2F7L2-xn_NxcfB.js} +1 -1
  75. package/dist/worker/console/static/assets/{cynefinDiagram-MW4NZA55-DCF6DBSu.js → cynefinDiagram-MW4NZA55-DRD0fyga.js} +1 -1
  76. package/dist/worker/console/static/assets/{dagre-VZM6K2ZE-BJyNGRlP.js → dagre-VZM6K2ZE-COtnKp4B.js} +1 -1
  77. package/dist/worker/console/static/assets/{diagram-7IWD3JNH-B7j1-VsZ.js → diagram-7IWD3JNH-BQp_CAqG.js} +1 -1
  78. package/dist/worker/console/static/assets/{diagram-B4RE2ZJO-BREJ140a.js → diagram-B4RE2ZJO-x0y-vNgq.js} +1 -1
  79. package/dist/worker/console/static/assets/{diagram-LBJQPF4R-CDPHmHGH.js → diagram-LBJQPF4R-N2ezwL31.js} +1 -1
  80. package/dist/worker/console/static/assets/{diagram-Q27KOJAE-BtZLrez1.js → diagram-Q27KOJAE-CSaxRH6Q.js} +1 -1
  81. package/dist/worker/console/static/assets/{diagram-UB23O5K3-mzybu8oU.js → diagram-UB23O5K3-6Ro7Kpbd.js} +1 -1
  82. package/dist/worker/console/static/assets/{ebnfDiagram-BXEA7PRR-Dk3I2uO6.js → ebnfDiagram-BXEA7PRR-CrIIQEAI.js} +1 -1
  83. package/dist/worker/console/static/assets/{erDiagram-JOGREHBK-BT97u_tQ.js → erDiagram-JOGREHBK-DivKcq8g.js} +1 -1
  84. package/dist/worker/console/static/assets/{flowDiagram-UKHOOZJN-CMOtYzui.js → flowDiagram-UKHOOZJN-BXrfDo8y.js} +1 -1
  85. package/dist/worker/console/static/assets/{ganttDiagram-PKOTCBZU-DiNydkuY.js → ganttDiagram-PKOTCBZU-LTTQmMRJ.js} +1 -1
  86. package/dist/worker/console/static/assets/{gitGraphDiagram-DS77QQ5N-Cwt6fLkl.js → gitGraphDiagram-DS77QQ5N-DP3o_5qd.js} +1 -1
  87. package/dist/worker/console/static/assets/index-C2jmYBfu.js +404 -0
  88. package/dist/worker/console/static/assets/index-C8rOIAJr.css +1 -0
  89. package/dist/worker/console/static/assets/{infoDiagram-6WML65LV-AsGIGKKB.js → infoDiagram-6WML65LV-wVfSY1WH.js} +1 -1
  90. package/dist/worker/console/static/assets/{ishikawaDiagram-WSZJBQD7-BL8ITZh3.js → ishikawaDiagram-WSZJBQD7-BRKfFL0I.js} +1 -1
  91. package/dist/worker/console/static/assets/{journeyDiagram-NVQOT4AX-VPKAUX8M.js → journeyDiagram-NVQOT4AX-DEml3jLb.js} +1 -1
  92. package/dist/worker/console/static/assets/{kanban-definition-27J2QSJJ-BL56hfGp.js → kanban-definition-27J2QSJJ-DTzBmOqN.js} +1 -1
  93. package/dist/worker/console/static/assets/{linear-BmSG3nIZ.js → linear-Cpy1d873.js} +1 -1
  94. package/dist/worker/console/static/assets/{mermaid.core-DWGK9kwP.js → mermaid.core-C1cSavOy.js} +5 -5
  95. package/dist/worker/console/static/assets/{mindmap-definition-FAOFIHXS--vvKLjo0.js → mindmap-definition-FAOFIHXS-BEBSKvYM.js} +1 -1
  96. package/dist/worker/console/static/assets/{pegDiagram-VL7TDLO6-B41mxb2-.js → pegDiagram-VL7TDLO6-BrLs4Oac.js} +1 -1
  97. package/dist/worker/console/static/assets/{pieDiagram-7S7Q4E2Y-DTlu77sw.js → pieDiagram-7S7Q4E2Y-B47AZcLa.js} +1 -1
  98. package/dist/worker/console/static/assets/{quadrantDiagram-CIZ2JOQS-Bk5A7alv.js → quadrantDiagram-CIZ2JOQS-s0dVeYR2.js} +1 -1
  99. package/dist/worker/console/static/assets/{railroadDiagram-AXF67PYL-Csf9jzQy.js → railroadDiagram-AXF67PYL-lW8aJ7Q6.js} +1 -1
  100. package/dist/worker/console/static/assets/{requirementDiagram-LRYGKXZP-CeptoSNx.js → requirementDiagram-LRYGKXZP-BcHJPf6Q.js} +1 -1
  101. package/dist/worker/console/static/assets/{sankeyDiagram-W5VNT64P-A-DLCLer.js → sankeyDiagram-W5VNT64P-DdegpUUf.js} +1 -1
  102. package/dist/worker/console/static/assets/{sequenceDiagram-SI44F4Z6-22VbPdOI.js → sequenceDiagram-SI44F4Z6-BxFWqNv8.js} +1 -1
  103. package/dist/worker/console/static/assets/{sizeCapture-X5ZJPWSS-DWvAyBC9.js → sizeCapture-X5ZJPWSS-cOdUDPbR.js} +1 -1
  104. package/dist/worker/console/static/assets/{stateDiagram-OKZ733FA-qICZ75yT.js → stateDiagram-OKZ733FA-DpxlYl8P.js} +1 -1
  105. package/dist/worker/console/static/assets/stateDiagram-v2-UEYNNEHI-BwecGAkM.js +1 -0
  106. package/dist/worker/console/static/assets/{swimlanes-SLNWSIFB-xi7lcMyp.js → swimlanes-SLNWSIFB-DQOfurE0.js} +2 -2
  107. package/dist/worker/console/static/assets/swimlanesDiagram-ULZ7WXOC-D5WW_LbN.js +8 -0
  108. package/dist/worker/console/static/assets/{timeline-definition-Z64GVDOM-Bu6Nl6O2.js → timeline-definition-Z64GVDOM-CIp3tC6V.js} +1 -1
  109. package/dist/worker/console/static/assets/{vennDiagram-T6HMQDX7-BzMz4Bn9.js → vennDiagram-T6HMQDX7-C-adIPKn.js} +1 -1
  110. package/dist/worker/console/static/assets/{wardleyDiagram-T6FBY63Y-CxaJnzc5.js → wardleyDiagram-T6FBY63Y-CiYrar9M.js} +1 -1
  111. package/dist/worker/console/static/assets/{xychartDiagram-ELKLHX3M-5JK-omQK.js → xychartDiagram-ELKLHX3M-WHrdTV0-.js} +1 -1
  112. package/dist/worker/console/static/index.html +2 -2
  113. package/dist/worker/console/static-src/app/console-types.js +39 -0
  114. package/dist/worker/console/static-src/app/useOperatorActions.js +1 -1
  115. package/dist/worker/console/static-src/app/useRecoveryActions.js +2 -2
  116. package/dist/worker/console/static-src/operator-chat/chat-sse-events.js +82 -22
  117. package/dist/worker/console/static-src/operator-chat/mutation-gate.js +45 -0
  118. package/dist/worker/console/static-src/operator-chat/open-preview-in-browser.js +328 -0
  119. package/dist/worker/console/static-src/operator-chat/resource-diagnostics.js +204 -0
  120. package/dist/worker/console/static-src/operator-chat/turn-stream-controller.js +8 -1
  121. package/dist/worker/console/static-src/operator-chat/turn-submission.js +42 -0
  122. package/dist/worker/console/static-src/operator-chat/useChatSessions.js +18 -0
  123. package/dist/worker/console/static-src/operator-chat/useChatStream.js +216 -10
  124. package/dist/worker/console/static-src/operator-chat/useChatThread.js +50 -22
  125. package/dist/worker/console/static-src/operator-chat/useRepoBrowser.js +26 -1
  126. package/dist/worker/observe/node-input.js +74 -3
  127. package/dist/worker/observe/node-process.js +377 -0
  128. package/dist/worker/observe/routes.js +36 -3
  129. package/dist/worker/observe/shell-handler-keys.js +34 -0
  130. package/dist/worker/observe/static/api.js +66 -0
  131. package/dist/worker/observe/static/constants.js +8 -1
  132. package/dist/worker/observe/static/dag-history-labels.js +4 -0
  133. package/dist/worker/observe/static/format.js +23 -0
  134. package/dist/worker/observe/static/markdown-render.js +20 -1
  135. package/dist/worker/observe/static/operator-chrome.js +4 -0
  136. package/dist/worker/observe/static/state.js +13 -2
  137. package/dist/worker/observe/static/styles.css +73 -0
  138. package/dist/worker/observe/static/views/dag-inspector.js +612 -8
  139. package/dist/worker/observe/static/views/dag.js +8 -1
  140. package/dist/worker/observe/static/views/session-timeline.js +78 -9
  141. package/dist/workflows/dag/backend-test-case-coverage-analysis.js +827 -53
  142. package/dist/workflows/dag/backend-test-case-manifest.js +4 -0
  143. package/dist/workflows/dag/backend-test-execution-contract.js +18 -9
  144. package/dist/workflows/dag/backend-test-gap-fill.js +205 -0
  145. package/dist/workflows/dag/backend-test-intake-context.js +32 -0
  146. package/dist/workflows/dag/backend-test-layout.js +133 -0
  147. package/dist/workflows/dag/backend-test-markdown-workflow.js +167 -32
  148. package/dist/workflows/dag/backend-test-module-stem.js +5 -0
  149. package/dist/workflows/dag/backend-test-pytest-collection.js +368 -33
  150. package/dist/workflows/dag/backend-test-result-contract.js +1 -1
  151. package/dist/workflows/dag/backend-test-scenario-param.js +884 -140
  152. package/dist/workflows/dag/backend-test-scenario-partitions.js +321 -0
  153. package/dist/workflows/dag/backend-test-writer-completeness.js +100 -56
  154. package/dist/workflows/dag/contract-output-registry.js +15 -0
  155. package/dist/workflows/dag/contract-validator-registrations.js +3 -1
  156. package/dist/workflows/dag/convergence/controller.js +141 -0
  157. package/dist/workflows/dag/dynamic-runtime/map.js +24 -8
  158. package/dist/workflows/dag/dynamic-runtime/shared.js +1 -1
  159. package/dist/workflows/dag/failure-category.js +12 -0
  160. package/dist/workflows/dag/frontend-implementation-contract.js +493 -2
  161. package/dist/workflows/dag/frontend-plan-render.js +90 -0
  162. package/dist/workflows/dag/frontend-prewrite-gate.js +221 -31
  163. package/dist/workflows/dag/frontend-test-case-quality.js +5 -13
  164. package/dist/workflows/dag/frontend-test-environment-probe.js +227 -0
  165. package/dist/workflows/dag/frontend-test-markdown.js +61 -0
  166. package/dist/workflows/dag/frontend-test-result-contract.js +10 -18
  167. package/dist/workflows/dag/frontend-test-standard-scenarios.js +68 -0
  168. package/dist/workflows/dag/init-hybrid.js +805 -113
  169. package/dist/workflows/dag/node-execution.js +194 -6
  170. package/dist/workflows/dag/prompt.js +60 -1
  171. package/dist/workflows/dag/rerun-feedback.js +212 -0
  172. package/dist/workflows/dag/rerun-plan.js +224 -27
  173. package/dist/workflows/dag/rerun-run.js +61 -6
  174. package/dist/workflows/dag/rerun-task.js +61 -2
  175. package/dist/workflows/dag/retry-policy.js +113 -0
  176. package/dist/workflows/dag/structured-output-repair.js +712 -0
  177. package/dist/workflows/dag/types.js +157 -1
  178. package/dist/workflows/dag/validate.js +41 -1
  179. package/docs/init-surface.manifest.json +5 -0
  180. package/docs/operations/README.md +1 -1
  181. package/docs/operations/local-development-environment.md +1 -5
  182. package/docs/skills/vetted-skill-registry.md +14 -0
  183. package/docs/templates/README.md +1 -1
  184. package/docs/templates/agent-dag.schema.json +44 -0
  185. package/docs/templates/backend-test-dag.json +60 -35
  186. package/docs/templates/frontend-implementation-contract.schema.json +9 -2
  187. package/docs/templates/frontend-test-dag.json +8 -10
  188. package/docs/templates/frontend-test-dag.retrieve-context.prompt.md +1 -1
  189. package/docs/templates/init-managed-agents.md +13 -3
  190. package/harness.json +3 -1
  191. package/package.json +12 -4
  192. package/scripts/next-info.mjs +356 -0
  193. package/scripts/next-publish-gate.mjs +238 -0
  194. package/scripts/release-source-binding.mjs +251 -0
  195. package/skills/analyze-product-requirements/SKILL.md +8 -5
  196. package/skills/analyze-product-requirements/references/acceptance-criteria.md +1 -1
  197. package/skills/analyze-product-requirements/references/clarification-and-knowledge.md +10 -6
  198. package/skills/analyze-product-requirements/references/example.md +50 -0
  199. package/skills/analyze-product-requirements/references/forward-test-cases.md +11 -7
  200. package/skills/analyze-product-requirements/references/kb-integration.md +5 -5
  201. package/skills/analyze-product-requirements/references/product-analysis-schema.md +8 -4
  202. package/skills/analyze-product-requirements/references/product-requirement-schema.md +2 -2
  203. package/skills/analyze-product-requirements/references/requirement-clarification-schema.md +1 -1
  204. package/skills/analyze-product-requirements/scripts/test-validators.mjs +11 -1
  205. package/skills/analyze-product-requirements/scripts/validate-product-analysis.mjs +20 -1
  206. package/skills/analyze-product-requirements/scripts/validate-requirement-clarification.mjs +9 -0
  207. package/skills/codebase-scout/SKILL.md +1 -1
  208. package/skills/frontend-design-review/references/review-checklist.md +2 -0
  209. package/skills/frontend-implementation/references/design-spec.md +16 -19
  210. package/skills/frontend-implementation/references/node-contracts.md +9 -6
  211. package/skills/improve-codebase-architecture/SKILL.md +81 -0
  212. package/skills/improve-codebase-architecture/deepening.md +37 -0
  213. package/skills/improve-codebase-architecture/html-report.md +123 -0
  214. package/skills/improve-codebase-architecture/interface-design.md +44 -0
  215. package/skills/improve-codebase-architecture/language.md +53 -0
  216. package/skills/loop-agent/references/command-reference.md +11 -4
  217. package/dist/worker/console/static/assets/channel-DLVz9TYW.js +0 -1
  218. package/dist/worker/console/static/assets/classDiagram-JCYQIIEL-BeAuGcO9.js +0 -1
  219. package/dist/worker/console/static/assets/classDiagram-v2-OCEON4UE-BeAuGcO9.js +0 -1
  220. package/dist/worker/console/static/assets/index-DQxiso1w.js +0 -325
  221. package/dist/worker/console/static/assets/index-_j0Hzo69.css +0 -1
  222. package/dist/worker/console/static/assets/stateDiagram-v2-UEYNNEHI-DzKvfHTX.js +0 -1
  223. package/dist/worker/console/static/assets/swimlanesDiagram-ULZ7WXOC-Cxqr_qM1.js +0 -8
@@ -100,6 +100,8 @@ loop-agent --help
100
100
  ```bash
101
101
  loop-agent inspect # 当前 repo(自动检测)
102
102
  loop-agent --repo-root /path/to/target-repo inspect # 指定 repo
103
+ loop-agent inspect next # 当前 npm next 绑定(version / SHA / unpublished commits)
104
+ loop-agent inspect next --json
103
105
  ```
104
106
 
105
107
  ### 健康检查
@@ -132,13 +134,18 @@ SDK 回归或 SDK 可选依赖不可用时用 `cli-only` 诊断。CLI fallback
132
134
 
133
135
  ```bash
134
136
  loop-agent init instructions --repo-root <target-repo>
137
+ loop-agent init model-catalog --repo-root <target-repo> --json
135
138
  loop-agent init --repo-root <target-repo> --profile full --merge \
136
- --provider deepseek --model deepseek/deepseek-v4-flash
139
+ --low-model deepseek/deepseek-chat \
140
+ --med-model deepseek/deepseek-v4-flash \
141
+ --high-model deepseek/deepseek-v4-pro
137
142
  loop-agent init doctor --repo-root <target-repo>
138
143
  loop-agent init check-update --repo-root <target-repo> --json
139
144
  loop-agent init check-update --repo-root <target-repo> --markdown
140
145
  loop-agent init update --repo-root <target-repo> --bootstrap-surface
141
146
  loop-agent init update --repo-root <target-repo> --apply-safe
147
+ loop-agent init update --repo-root <target-repo> --apply-safe \
148
+ --low-model <current-or-selected> --med-model <current-or-selected> --high-model <current-or-selected>
142
149
  loop-agent init reconcile --repo-root <target-repo> [--json|--markdown] # compatibility low-level diagnostic
143
150
  loop-agent init upgrade --repo-root <target-repo> --json
144
151
  loop-agent init upgrade --repo-root <target-repo> --run-id <run-id> --status --json
@@ -146,13 +153,13 @@ loop-agent init upgrade --repo-root <target-repo> --run-id <run-id> --continue -
146
153
  loop-agent init upgrade --repo-root <target-repo> --run-id <run-id> --report --markdown
147
154
  ```
148
155
 
149
- fresh init 将精确引用写到 `executors.pi.LOW/MED/HIGH`。fresh `loop-agent init` 会将合格且完整的 `provider/model` 引用投影到 `executors.pi.LOW/MED/HIGH`,即 `executors.pi.LOW`、`executors.pi.MED` `executors.pi.HIGH`。三个 tier 齐全时不会写入 `defaultModel`,也不会恢复或建议旧顶层 routing 字段。
156
+ fresh init 将精确引用写到 `executors.pi.LOW/MED/HIGH`。模型先运行只读 `init model-catalog`:Pi SDK runtime 与 OpenCode 非 verbose 列表由代码确定性发现,只向模型暴露 provider/model、能力/成本/窗口元数据、Pi setup、兼容性与 credential-ready 布尔值,不暴露原始配置和凭据。已有档位仍存在于 Pi 时原样保留,只重选失效/缺失档位;代码在 update 时拒绝替换仍有效档位。Pi 无定义时先向用户补齐必要模型元数据并帮助字段级配置 `models.json`;只有认证缺失时保留 harness 并修复认证。三个 tier 齐全时不会写入 `defaultModel`,也不会恢复旧顶层 routing 字段。
150
157
 
151
158
  `init check-update` 是只读升级报告,用于发现目标项目是否落后于当前包内初始化 surface。输出会区分 deterministic actions、model merge tasks、human decisions 和 recommended next。`--markdown` 会渲染可直接交给模型执行的合并指引,包含 `allowedPaths`、`forbiddenPaths`、`mergeRules` 和 `verification`。
152
159
 
153
- `init update --bootstrap-surface` 为旧项目写入 `.harness/init-surface.json` 的 `inferred-baseline`,不伪装成历史 recorded baseline。`init update --apply-safe` 只执行确定性安全动作:补缺失文件、创建目录、刷新 managed block;已有但无法确认与当前包一致的文件会进入 model merge tasks,不会被覆盖。模型 merge 只会自动展开不含 tier 或其他旧字段的唯一、完整且可证明等价的旧 `defaultModel: "provider/model"`;顶层 `model`、`models`、`modelProfiles`、`modelRouting`、`verify`、`sequentialWorkflowRole`、部分/对象 tier、bare model、冲突 provider 或未知语义均 fail closed,并保留原始 `harness.json`。
160
+ `init update --bootstrap-surface` 为旧项目写入 `.harness/init-surface.json` 的 `inferred-baseline`,不伪装成历史 recorded baseline。`init update --apply-safe` 只执行确定性安全动作:补缺失文件、创建目录、刷新 managed block;`harness.json` 永不走整文件 `refresh-owned-file`,即使它仍与旧 recorded hash 一致,也只允许字段级确定性迁移或 bounded merge。带完整三档参数的 update 只替换 catalog 已判定失效的档位,仍有效档位的对象形态与 thinking 配置保持不变。模型 merge 只会自动展开不含 tier 或其他旧字段的唯一、完整且可证明等价的旧 `defaultModel: "provider/model"`;其他歧义均 fail closed 并保留原文件。
154
161
 
155
- `init upgrade` 是写入型升级入口:首次运行冻结 controller identity、检查 npm latest、扫描 surface、自动执行安全动作,并把 run facts 持久化到 `.harness/init-upgrades/<run-id>/`。`--status` `--report` 严格只读;`--continue` 会重新核验 identity、当前 hash 与不变量。版本选择、无法判定冲突、凭据、破坏性删除或 active writer 才进入 human decision。普通语义冲突返回具体单文件 `allowedPaths` merge task,主会话必须合并后继续,不能把 `needs-model-merge` 作为完成。默认管理项目级 OpenCode/Pi recovery 与 `.pi/settings.json` nested merge,保留显式 disabled,Pi trust 后才加载;默认不读写 `~/.pi/agent/settings.json`。旧 `init reconcile` 保留为兼容低层诊断。
162
+ `init upgrade` 是写入型升级入口:首次运行冻结 controller identity 与脱敏模型目录,检查 npm latest,并用一次 surface scan 形成完整计划。固定投影按 recorded bytes 确定性增删改;recorded `harness.json` 按属性树增删字段并保留项目值、同步 schema;项目自适应内容由模型决定。多个语义合并在同一计划中串行排队,每次仍只开放一个文件的 `allowedPaths`;接受后直接激活下一项,不重复版本发现/规划,队列清空后只跑一次最终验证。确定性收敛最多两轮。完成态的 verification/report 均有 controller hash anchor,`--status`、`--report` 和已完成 run 的幂等 `--continue` 只读持久化证据,不重新跑项目校验。默认管理项目级 OpenCode/Pi recovery 与 `.pi/settings.json` nested merge,默认不读写 `~/.pi/agent/settings.json`。旧 `init reconcile` 保留为兼容低层诊断。
156
163
 
157
164
  升级在 managed block 收敛后生成只读 gitignore 迁移评估(`.harness/init-upgrades/<run-id>/gitignore-migration.json`):inventory 已跟踪的 `.harness/**` 与 `.agents/**`,建议 index-only 命令 `git rm -r --cached --ignore-unmatch .harness` / `.agents`(只改 index、保留工作区文件;`scripts/**` 与 `ai_workspace/loop-agent/**` 永不出现)。`.agents` 已跟踪内容会触发 human-decision 暂停等待审查;非 Git 仓库、git 查询失败或存在 staged 条目时 `status: blocked` 且无命令建议。controller 不自动修改 Git index。
158
165
 
@@ -1 +0,0 @@
1
- import{ag as o,ah as n}from"./mermaid.core-DWGK9kwP.js";const t=(a,r)=>o.lang.round(n.parse(a)[r]);export{t as c};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-GF5L2VYU-B-uGFIg2.js";import{_ as i}from"./mermaid.core-DWGK9kwP.js";import"./chunk-5VM5RSS4-D_ch2aaI.js";import"./chunk-XXDRQBXY-Bbfe3UJG.js";import"./chunk-KBJHAD2P-BjAUAfcT.js";import"./chunk-2GRJ4B5K-WTEKTxin.js";import"./index-DQxiso1w.js";var n={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{n as diagram};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-GF5L2VYU-B-uGFIg2.js";import{_ as i}from"./mermaid.core-DWGK9kwP.js";import"./chunk-5VM5RSS4-D_ch2aaI.js";import"./chunk-XXDRQBXY-Bbfe3UJG.js";import"./chunk-KBJHAD2P-BjAUAfcT.js";import"./chunk-2GRJ4B5K-WTEKTxin.js";import"./index-DQxiso1w.js";var n={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{n as diagram};