@tea-agent/loop-agent 0.41.1-beta.0 → 0.42.0-next.2

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 (277) hide show
  1. package/CHANGELOG.md +78 -206
  2. package/dist/adapters/context-transfer/optional-pi-handoff.js +31 -0
  3. package/dist/adapters/context-transfer/pi-session.js +61 -0
  4. package/dist/application/dag/generate-task-dag.js +19 -75
  5. package/dist/application/task-lifecycle/advance.js +5 -24
  6. package/dist/application/task-lifecycle/observe.js +17 -171
  7. package/dist/application/task-lifecycle/plan-transitions.js +7 -42
  8. package/dist/application/task-lifecycle/recommendations.js +2 -13
  9. package/dist/build-stamp.json +3 -3
  10. package/dist/cli/command-definitions.js +12 -7
  11. package/dist/cli/program.js +23 -6
  12. package/dist/commands/client-recovery.js +0 -3
  13. package/dist/commands/dag-artifact.js +284 -0
  14. package/dist/commands/dag-context.js +184 -0
  15. package/dist/commands/dag-rerun.js +206 -1
  16. package/dist/commands/init.js +1 -27
  17. package/dist/commands/task-advance.js +0 -19
  18. package/dist/executors/dag-pi-executor.js +266 -3792
  19. package/dist/executors/pi-executor.js +4 -15
  20. package/dist/executors/pi-sdk-executor.js +3 -0
  21. package/dist/executors/shell-executor.js +217 -945
  22. package/dist/executors/shell-write-guard.js +0 -7
  23. package/dist/{worker → infrastructure}/console/app-data.js +4 -0
  24. package/dist/infrastructure/console/artifact-revision-store.js +430 -0
  25. package/dist/infrastructure/console/context-export-store.js +160 -0
  26. package/dist/infrastructure/console/dir-lock.js +132 -0
  27. package/dist/infrastructure/console/operation-store.js +197 -0
  28. package/dist/infrastructure/harness/artifact-store.js +10 -1
  29. package/dist/infrastructure/harness/atomic-write.js +12 -2
  30. package/dist/shared/context-transfer/artifact-revision.js +172 -0
  31. package/dist/shared/context-transfer.js +418 -0
  32. package/dist/shared/dag-failure-category.js +0 -12
  33. package/dist/shared/openspec-spec.js +4 -70
  34. package/dist/shared/operator/capabilities.js +14 -7
  35. package/dist/shared/operator/safe-run-summary.js +1 -0
  36. package/dist/shared/path-safety.js +93 -0
  37. package/dist/shared/preview.js +28 -4
  38. package/dist/task/config-types.js +80 -35
  39. package/dist/task/contract/adopt.js +0 -4
  40. package/dist/task/contract/import-revision.js +0 -4
  41. package/dist/task/contract/project.js +0 -3
  42. package/dist/task/contract/schema.js +1 -2
  43. package/dist/task/frontend-project-capability.js +20 -203
  44. package/dist/task/runtime.js +2 -5
  45. package/dist/task/source-prepare/build-draft.js +3 -3
  46. package/dist/task/source-prepare/fragment-inventory.js +9 -15
  47. package/dist/task/source-prepare/prepare.js +1 -89
  48. package/dist/task/source-prepare/semantic-intake.js +2 -6
  49. package/dist/task/source-references.js +1 -22
  50. package/dist/task/task-demand-routing.js +3 -0
  51. package/dist/worker/console/chat/chat-event-store.js +2 -2
  52. package/dist/worker/console/chat/pi-runtime.js +3 -2
  53. package/dist/worker/console/chat/resource-preferences-store.js +1 -1
  54. package/dist/worker/console/chat/routes.js +13 -4
  55. package/dist/worker/console/chat/semantic-activity.js +12 -11
  56. package/dist/worker/console/chat/session-stats.js +96 -0
  57. package/dist/worker/console/chat/session-store.js +1 -1
  58. package/dist/worker/console/chat/turn-process.js +28 -4
  59. package/dist/worker/console/chat/user-questions.js +1 -1
  60. package/dist/worker/console/console-update-runtime.js +1 -1
  61. package/dist/worker/console/context-transfer-diagnostics.js +198 -0
  62. package/dist/worker/console/dag-confirmation.js +1 -1
  63. package/dist/worker/console/dag-execution-receipt.js +1 -1
  64. package/dist/worker/console/doctor.js +1 -1
  65. package/dist/worker/console/draft-store.js +1 -1
  66. package/dist/worker/console/human-gate-token.js +1 -1
  67. package/dist/worker/console/index.js +3 -6
  68. package/dist/worker/console/interview/assessment.js +1 -1
  69. package/dist/worker/console/interview/session.js +1 -1
  70. package/dist/worker/console/operation-runner.js +45 -4
  71. package/dist/worker/console/operation-sse.js +1 -1
  72. package/dist/worker/console/operation-wait.js +1 -1
  73. package/dist/worker/console/operator-actions.js +107 -168
  74. package/dist/worker/console/operator-surface-health.js +1 -1
  75. package/dist/worker/console/operator-user-error.js +169 -0
  76. package/dist/worker/console/pi-plugins.js +60 -1
  77. package/dist/worker/console/routes.js +637 -8
  78. package/dist/worker/console/security.js +35 -0
  79. package/dist/worker/console/server.js +6 -6
  80. package/dist/worker/console/static/assets/{abnfDiagram-N423BO3Z-Bho4we4c.js → abnfDiagram-N423BO3Z-DZZ8m3PO.js} +1 -1
  81. package/dist/worker/console/static/assets/{arc-TBDkTeK0.js → arc-D6PvaVd-.js} +1 -1
  82. package/dist/worker/console/static/assets/{architectureDiagram-T3A2C74G-BF_fZrn2.js → architectureDiagram-T3A2C74G-B_OTOiI8.js} +1 -1
  83. package/dist/worker/console/static/assets/{blockDiagram-VBNYF7ZC-CCnPgUe2.js → blockDiagram-VBNYF7ZC-Bv6rqHBg.js} +1 -1
  84. package/dist/worker/console/static/assets/{c4Diagram-5PPSVZJV-BCYZJLAT.js → c4Diagram-5PPSVZJV-B8eHr0oz.js} +1 -1
  85. package/dist/worker/console/static/assets/channel-BU5gOilw.js +1 -0
  86. package/dist/worker/console/static/assets/{chunk-2GRJ4B5K-D8K6adhU.js → chunk-2GRJ4B5K-DYwR0im2.js} +1 -1
  87. package/dist/worker/console/static/assets/{chunk-2Q5K7J3B-DkT1Q78b.js → chunk-2Q5K7J3B-D2WPGqXt.js} +1 -1
  88. package/dist/worker/console/static/assets/{chunk-5RXB4S5H-DuhvpIr7.js → chunk-5RXB4S5H-CQISJ_I7.js} +1 -1
  89. package/dist/worker/console/static/assets/{chunk-5VM5RSS4-BnK6dC49.js → chunk-5VM5RSS4-C0o2Du1e.js} +1 -1
  90. package/dist/worker/console/static/assets/{chunk-6Q2QTUOP-DPz__z7r.js → chunk-6Q2QTUOP-4f8kr-U7.js} +1 -1
  91. package/dist/worker/console/static/assets/{chunk-GF5L2VYU-0kkppM2j.js → chunk-GF5L2VYU-D_OWvXzX.js} +1 -1
  92. package/dist/worker/console/static/assets/{chunk-JWPE2WC7-BB41iK5t.js → chunk-JWPE2WC7-CasdPz5X.js} +1 -1
  93. package/dist/worker/console/static/assets/{chunk-KBJHAD2P-CiVrxKHU.js → chunk-KBJHAD2P-Cj8lRrla.js} +1 -1
  94. package/dist/worker/console/static/assets/{chunk-RYQCIY6F-C2h9Xje1.js → chunk-RYQCIY6F-CUvD1FSd.js} +1 -1
  95. package/dist/worker/console/static/assets/{chunk-XXDRQBXY-3iOSHdbM.js → chunk-XXDRQBXY-CqLw_eqB.js} +1 -1
  96. package/dist/worker/console/static/assets/classDiagram-JCYQIIEL-DIzKJGHr.js +1 -0
  97. package/dist/worker/console/static/assets/classDiagram-v2-OCEON4UE-DIzKJGHr.js +1 -0
  98. package/dist/worker/console/static/assets/{cose-bilkent-JH36ORCC-BN3A7tkk.js → cose-bilkent-JH36ORCC-ku-WqJPx.js} +1 -1
  99. package/dist/worker/console/static/assets/{cynefin-VYW2F7L2-CTuBy0Or.js → cynefin-VYW2F7L2-Bq_PYDhl.js} +1 -1
  100. package/dist/worker/console/static/assets/{cynefinDiagram-MW4NZA55-wb6tUlMN.js → cynefinDiagram-MW4NZA55-BiGZV641.js} +1 -1
  101. package/dist/worker/console/static/assets/{dagre-VZM6K2ZE-GP1Ivx8B.js → dagre-VZM6K2ZE-C4JRlglF.js} +1 -1
  102. package/dist/worker/console/static/assets/{diagram-7IWD3JNH-ejrcK6L0.js → diagram-7IWD3JNH-B0dNeWYG.js} +1 -1
  103. package/dist/worker/console/static/assets/{diagram-B4RE2ZJO-YFkCCvUU.js → diagram-B4RE2ZJO-Cj35YvYM.js} +1 -1
  104. package/dist/worker/console/static/assets/{diagram-LBJQPF4R-B4rrvIaL.js → diagram-LBJQPF4R-uzQoJ2-8.js} +1 -1
  105. package/dist/worker/console/static/assets/{diagram-Q27KOJAE-C-YIZcUf.js → diagram-Q27KOJAE-D1a-Buoz.js} +1 -1
  106. package/dist/worker/console/static/assets/{diagram-UB23O5K3-BPF5wcL1.js → diagram-UB23O5K3-XjRrLRSs.js} +1 -1
  107. package/dist/worker/console/static/assets/{ebnfDiagram-BXEA7PRR-CU5SzXjO.js → ebnfDiagram-BXEA7PRR-Da_O24cW.js} +1 -1
  108. package/dist/worker/console/static/assets/{erDiagram-JOGREHBK-CpL414DE.js → erDiagram-JOGREHBK-BLJ8jrYU.js} +1 -1
  109. package/dist/worker/console/static/assets/{flowDiagram-UKHOOZJN-MrhLzNau.js → flowDiagram-UKHOOZJN-B9GrLjM0.js} +1 -1
  110. package/dist/worker/console/static/assets/{ganttDiagram-PKOTCBZU-Bg4qFuUo.js → ganttDiagram-PKOTCBZU-CeJ0TqiK.js} +1 -1
  111. package/dist/worker/console/static/assets/{gitGraphDiagram-DS77QQ5N-ColxSXLR.js → gitGraphDiagram-DS77QQ5N-Bm2eNNFX.js} +1 -1
  112. package/dist/worker/console/static/assets/index-H9rFJiGL.css +1 -0
  113. package/dist/worker/console/static/assets/index-xwu9GxEc.js +451 -0
  114. package/dist/worker/console/static/assets/{infoDiagram-6WML65LV-Czvtm6gc.js → infoDiagram-6WML65LV-DB26i3d8.js} +1 -1
  115. package/dist/worker/console/static/assets/{ishikawaDiagram-WSZJBQD7-B7Xp8HyJ.js → ishikawaDiagram-WSZJBQD7-BOGRyeZT.js} +1 -1
  116. package/dist/worker/console/static/assets/{journeyDiagram-NVQOT4AX-DWYZcvph.js → journeyDiagram-NVQOT4AX-CZRoBO_6.js} +1 -1
  117. package/dist/worker/console/static/assets/{kanban-definition-27J2QSJJ-KTLZRUjx.js → kanban-definition-27J2QSJJ-qlWhJyoB.js} +1 -1
  118. package/dist/worker/console/static/assets/{linear-_Exn7bfl.js → linear-CfUiDDB3.js} +1 -1
  119. package/dist/worker/console/static/assets/{mermaid.core-Cxg8kX8V.js → mermaid.core-BQe6fpqj.js} +5 -5
  120. package/dist/worker/console/static/assets/{mindmap-definition-FAOFIHXS-oKrlo2Bt.js → mindmap-definition-FAOFIHXS-zFzWHw64.js} +1 -1
  121. package/dist/worker/console/static/assets/{pegDiagram-VL7TDLO6-XAeteiNd.js → pegDiagram-VL7TDLO6-DFGUqjZO.js} +1 -1
  122. package/dist/worker/console/static/assets/{pieDiagram-7S7Q4E2Y-BTf1K-lp.js → pieDiagram-7S7Q4E2Y-BB5i0l8Z.js} +1 -1
  123. package/dist/worker/console/static/assets/{quadrantDiagram-CIZ2JOQS-C0IlY0Jf.js → quadrantDiagram-CIZ2JOQS-obbVZ_X5.js} +1 -1
  124. package/dist/worker/console/static/assets/{railroadDiagram-AXF67PYL-BVbKtZhW.js → railroadDiagram-AXF67PYL-BwdaNzc1.js} +1 -1
  125. package/dist/worker/console/static/assets/{requirementDiagram-LRYGKXZP-C5e4JFcr.js → requirementDiagram-LRYGKXZP-CkTJaugh.js} +1 -1
  126. package/dist/worker/console/static/assets/{sankeyDiagram-W5VNT64P-Cz30hc29.js → sankeyDiagram-W5VNT64P-BwJ-hIgq.js} +1 -1
  127. package/dist/worker/console/static/assets/{sequenceDiagram-SI44F4Z6-DS33n6d0.js → sequenceDiagram-SI44F4Z6-BzSgmm7w.js} +1 -1
  128. package/dist/worker/console/static/assets/{sizeCapture-X5ZJPWSS-46w7v-9T.js → sizeCapture-X5ZJPWSS-Bn3oj5Q1.js} +1 -1
  129. package/dist/worker/console/static/assets/{stateDiagram-OKZ733FA-pbcD5SsZ.js → stateDiagram-OKZ733FA-dxhGtL8K.js} +1 -1
  130. package/dist/worker/console/static/assets/stateDiagram-v2-UEYNNEHI-Cld2qK9v.js +1 -0
  131. package/dist/worker/console/static/assets/{swimlanes-SLNWSIFB-DuivYBSj.js → swimlanes-SLNWSIFB-BLpEInya.js} +2 -2
  132. package/dist/worker/console/static/assets/swimlanesDiagram-ULZ7WXOC-TIHpiT7w.js +8 -0
  133. package/dist/worker/console/static/assets/{timeline-definition-Z64GVDOM-Cb9VZVIl.js → timeline-definition-Z64GVDOM-ChJGYcXy.js} +1 -1
  134. package/dist/worker/console/static/assets/{vennDiagram-T6HMQDX7-D2-mfOgR.js → vennDiagram-T6HMQDX7-DK-qjRer.js} +1 -1
  135. package/dist/worker/console/static/assets/{wardleyDiagram-T6FBY63Y-DeS2aC76.js → wardleyDiagram-T6FBY63Y-3qeaWAg-.js} +1 -1
  136. package/dist/worker/console/static/assets/{xychartDiagram-ELKLHX3M-WGsrFjxH.js → xychartDiagram-ELKLHX3M-CootlyP9.js} +1 -1
  137. package/dist/worker/console/static/index.html +7 -2
  138. package/dist/worker/console/static-src/app/useOperatorActions.js +3 -2
  139. package/dist/worker/console/static-src/app/useRunProgress.js +9 -2
  140. package/dist/worker/console/static-src/operator-chat/dag-progress-link.js +22 -0
  141. package/dist/worker/console/static-src/operator-chat/useChatSessions.js +2 -0
  142. package/dist/worker/console/static-src/operator-chat/useChatThread.js +6 -0
  143. package/dist/worker/console/static-src/operator-chat/useRuntimeControls.js +28 -3
  144. package/dist/worker/console/static-src/pages/tasks/run-panel-progress.js +106 -0
  145. package/dist/worker/console/static-src/shell/console-update-reload.js +25 -0
  146. package/dist/worker/console/workspace-context.js +28 -112
  147. package/dist/worker/console/workspace-registry.js +2 -2
  148. package/dist/worker/continuation/worker-continuation.js +278 -0
  149. package/dist/worker/observability/read-model.js +4 -0
  150. package/dist/worker/observe/health.js +1 -1
  151. package/dist/worker/observe/node-transparency.js +572 -0
  152. package/dist/worker/observe/routes.js +51 -1
  153. package/dist/worker/observe/static/api.js +69 -5
  154. package/dist/worker/observe/static/dag-context-reason-labels.d.ts +9 -0
  155. package/dist/worker/observe/static/dag-context-reason-labels.js +120 -0
  156. package/dist/worker/observe/static/dag-node-purpose.js +0 -5
  157. package/dist/worker/observe/static/state.js +3 -1
  158. package/dist/worker/observe/static/styles.css +1037 -126
  159. package/dist/worker/observe/static/views/dag-inspector.js +1217 -65
  160. package/dist/worker/observe/static/views/session-timeline.js +121 -25
  161. package/dist/worker/outcomes/adapters.js +19 -0
  162. package/dist/worker/outcomes/types.js +1 -0
  163. package/dist/worker/pool/attempt-lease.js +97 -66
  164. package/dist/worker/pool/begin-attempt-with-lease.js +1 -0
  165. package/dist/worker/pool/reconcile.js +46 -1
  166. package/dist/worker/pool/run-store.js +2 -0
  167. package/dist/worker/pool/state-projection.js +2 -0
  168. package/dist/worker/task-spec/workflow-routing.js +8 -3
  169. package/dist/workflows/dag/artifact-bindings.js +149 -0
  170. package/dist/workflows/dag/artifact-revision-schema-registry.js +31 -0
  171. package/dist/workflows/dag/backend-test-case-coverage-analysis.js +99 -4
  172. package/dist/workflows/dag/backend-test-markdown-workflow.js +13 -1
  173. package/dist/workflows/dag/backend-test-result-contract.js +1 -1
  174. package/dist/workflows/dag/backend-test-writer-completeness.js +45 -3
  175. package/dist/workflows/dag/budget-enforcement.js +10 -0
  176. package/dist/workflows/dag/context-receipt.js +305 -0
  177. package/dist/workflows/dag/context-transfer/context-bundle.js +423 -0
  178. package/dist/workflows/dag/context-transfer/operator-actions.js +61 -0
  179. package/dist/workflows/dag/context-transfer/renderers.js +93 -0
  180. package/dist/workflows/dag/contract-validator-registrations.js +2 -1
  181. package/dist/workflows/dag/frontend-implementation-contract.js +162 -932
  182. package/dist/workflows/dag/frontend-plan-render.js +1 -2
  183. package/dist/workflows/dag/frontend-prewrite-gate.js +349 -255
  184. package/dist/workflows/dag/frontend-recovery-plan.js +10 -17
  185. package/dist/workflows/dag/frontend-recovery-run.js +20 -33
  186. package/dist/workflows/dag/frontend-repair.js +432 -1
  187. package/dist/workflows/dag/frontend-review-context.js +15 -261
  188. package/dist/workflows/dag/frontend-verification-trace.js +24 -249
  189. package/dist/workflows/dag/frontend-worktree-diff.js +17 -250
  190. package/dist/workflows/dag/frontend-writer-rollback.js +32 -0
  191. package/dist/workflows/dag/init-hybrid.js +740 -718
  192. package/dist/workflows/dag/interrupt-request.js +0 -7
  193. package/dist/workflows/dag/node-execution.js +136 -759
  194. package/dist/workflows/dag/path-safety.js +1 -0
  195. package/dist/workflows/dag/prompt.js +30 -38
  196. package/dist/workflows/dag/report.js +1 -37
  197. package/dist/workflows/dag/rerun-feedback.js +1 -256
  198. package/dist/workflows/dag/rerun-plan.js +557 -11
  199. package/dist/workflows/dag/rerun-run.js +601 -38
  200. package/dist/workflows/dag/rerun-task.js +0 -29
  201. package/dist/workflows/dag/retry-policy.js +109 -214
  202. package/dist/workflows/dag/runner.js +142 -430
  203. package/dist/workflows/dag/scheduler.js +16 -114
  204. package/dist/workflows/dag/skill-snapshot.js +17 -0
  205. package/dist/workflows/dag/types.js +195 -246
  206. package/dist/workflows/dag/validate.js +12 -28
  207. package/docs/architecture/runtime-boundaries.md +6 -6
  208. package/docs/architecture/worker-and-feature.md +1 -1
  209. package/docs/init-surface.manifest.json +12 -30
  210. package/docs/skills/vetted-skill-registry.md +2 -4
  211. package/docs/templates/README.md +0 -2
  212. package/docs/templates/agent-dag-report.schema.json +2 -8
  213. package/docs/templates/agent-dag.schema.json +33 -1
  214. package/docs/templates/backend-test-dag.json +18 -18
  215. package/docs/templates/frontend-implementation-contract.schema.json +1 -4
  216. package/docs/templates/product-line/task.yaml +1 -1
  217. package/harness.json +3 -3
  218. package/package.json +3 -1
  219. package/skills/frontend-bounded-implement/SKILL.md +14 -15
  220. package/skills/frontend-design-review/SKILL.md +41 -22
  221. package/skills/frontend-implementation/SKILL.md +52 -0
  222. package/skills/frontend-implementation/references/code-standards.md +33 -0
  223. package/skills/frontend-implementation/references/design-spec.md +56 -0
  224. package/skills/frontend-implementation/references/node-contracts.md +31 -0
  225. package/skills/frontend-review/SKILL.md +15 -20
  226. package/skills/frontend-review/references/review-findings.md +7 -6
  227. package/skills/frontend-verification/SKILL.md +1 -1
  228. package/skills/loop-agent/references/command-reference.md +6 -1
  229. package/skills/loop-agent/references/hybrid-dag.md +2 -2
  230. package/dist/commands/dag-follow-up.js +0 -138
  231. package/dist/executors/pi-read-budget-policy.js +0 -239
  232. package/dist/worker/console/frontend-human-decision-adapter.js +0 -19
  233. package/dist/worker/console/frontend-split-operation-adapter.js +0 -20
  234. package/dist/worker/console/operation-store.js +0 -389
  235. package/dist/worker/console/static/assets/channel-bnXW0U3C.js +0 -1
  236. package/dist/worker/console/static/assets/classDiagram-JCYQIIEL-rZpq_twR.js +0 -1
  237. package/dist/worker/console/static/assets/classDiagram-v2-OCEON4UE-rZpq_twR.js +0 -1
  238. package/dist/worker/console/static/assets/index-D3CC4eUz.css +0 -1
  239. package/dist/worker/console/static/assets/index-DLt4ZFvD.js +0 -437
  240. package/dist/worker/console/static/assets/stateDiagram-v2-UEYNNEHI-zBMYiUyi.js +0 -1
  241. package/dist/worker/console/static/assets/swimlanesDiagram-ULZ7WXOC-d_rms-5i.js +0 -8
  242. package/dist/worker/console/static-src/active-run-badge.js +0 -17
  243. package/dist/worker/materialize/frontend-split-task-materializer.js +0 -72
  244. package/dist/workflows/dag/dag-retry-schema.js +0 -138
  245. package/dist/workflows/dag/frontend-closeout.js +0 -221
  246. package/dist/workflows/dag/frontend-design-policy.js +0 -400
  247. package/dist/workflows/dag/frontend-human-decision.js +0 -182
  248. package/dist/workflows/dag/frontend-provider-capability-matrix.js +0 -159
  249. package/dist/workflows/dag/frontend-read-budgets.js +0 -12
  250. package/dist/workflows/dag/frontend-recovery-capsule.js +0 -455
  251. package/dist/workflows/dag/frontend-recovery-controller.js +0 -202
  252. package/dist/workflows/dag/frontend-recovery-lineage.js +0 -178
  253. package/dist/workflows/dag/frontend-review-findings.js +0 -270
  254. package/dist/workflows/dag/frontend-shadow-dual-write.js +0 -914
  255. package/dist/workflows/dag/frontend-shape-capsule-store.js +0 -191
  256. package/dist/workflows/dag/frontend-shape-facts.js +0 -409
  257. package/dist/workflows/dag/frontend-shape.js +0 -427
  258. package/dist/workflows/dag/frontend-source-fidelity-ledger.js +0 -108
  259. package/dist/workflows/dag/frontend-split-application-service.js +0 -203
  260. package/dist/workflows/dag/frontend-split-orchestrator.js +0 -899
  261. package/dist/workflows/dag/frontend-typed-event-store.js +0 -452
  262. package/dist/workflows/dag/frontend-typed-event-transaction.js +0 -180
  263. package/dist/workflows/dag/frontend-writer-admission.js +0 -285
  264. package/dist/workflows/dag/frontend-writer-status.js +0 -256
  265. package/dist/workflows/dag/recovery-lease.js +0 -80
  266. package/docs/templates/frontend-implementation-dag.json +0 -89
  267. package/docs/templates/spec-registry.schema.json +0 -45
  268. package/skills/frontend-bounded-implement/references/code-standards.md +0 -19
  269. package/skills/frontend-contract/SKILL.md +0 -23
  270. package/skills/frontend-contract/references/contract-protocol.md +0 -34
  271. package/skills/frontend-plan/SKILL.md +0 -26
  272. package/skills/frontend-plan/references/decision-contract.md +0 -37
  273. package/skills/frontend-plan/references/design-decisions.md +0 -17
  274. package/skills/frontend-scout/SKILL.md +0 -25
  275. package/skills/frontend-scout/references/design-evidence.md +0 -16
  276. package/skills/frontend-scout/references/scout-evidence.md +0 -23
  277. /package/dist/{worker → infrastructure}/console/repo-fingerprint.js +0 -0
@@ -73,8 +73,14 @@ body[data-shell="observe-console"] {
73
73
  color: var(--ink);
74
74
  /* Keep system-ui first for shell contract tests; Chinese fonts follow. */
75
75
  font-family:
76
- system-ui, -apple-system, "Segoe UI", "PingFang SC", "Hiragino Sans GB",
77
- "Noto Sans SC", BlinkMacSystemFont, sans-serif;
76
+ system-ui,
77
+ -apple-system,
78
+ "Segoe UI",
79
+ "PingFang SC",
80
+ "Hiragino Sans GB",
81
+ "Noto Sans SC",
82
+ BlinkMacSystemFont,
83
+ sans-serif;
78
84
  font-size: 14px;
79
85
  line-height: 1.5;
80
86
  }
@@ -994,10 +1000,9 @@ body[data-shell="observe-console"] .panel h3,
994
1000
  }
995
1001
  .feature-decision-row {
996
1002
  display: grid;
997
- grid-template-columns: minmax(120px, 0.9fr) minmax(88px, 0.55fr) minmax(
998
- 0,
999
- 1.6fr
1000
- ) auto;
1003
+ grid-template-columns:
1004
+ minmax(120px, 0.9fr) minmax(88px, 0.55fr) minmax(0, 1.6fr)
1005
+ auto;
1001
1006
  align-items: center;
1002
1007
  gap: var(--space-3);
1003
1008
  padding: 12px 14px;
@@ -1291,12 +1296,14 @@ body.is-resizing-dag-graph {
1291
1296
  color: var(--body);
1292
1297
  cursor: pointer;
1293
1298
  }
1294
- .dag-inspector-close:hover,
1299
+ .dag-inspector-close:hover:not(:disabled),
1295
1300
  .dag-inspector-close:focus-visible {
1296
1301
  border-color: var(--orange);
1297
1302
  color: var(--orange-active);
1298
1303
  background: var(--orange-soft);
1299
1304
  outline: none;
1305
+ box-shadow: none;
1306
+ transform: none;
1300
1307
  }
1301
1308
  .dag-inspector-tabs {
1302
1309
  display: flex;
@@ -1307,13 +1314,17 @@ body.is-resizing-dag-graph {
1307
1314
  border: 1px solid var(--hairline);
1308
1315
  border-radius: var(--radius-pill);
1309
1316
  background: var(--surface);
1310
- width: fit-content;
1317
+ width: 100%;
1311
1318
  max-width: 100%;
1312
- flex-wrap: wrap;
1319
+ flex-wrap: nowrap;
1320
+ overflow-x: auto;
1321
+ overscroll-behavior-x: contain;
1322
+ scrollbar-width: thin;
1313
1323
  }
1314
1324
  .dag-inspector-tab {
1325
+ flex: 0 0 auto;
1315
1326
  min-height: 30px;
1316
- padding: 0 12px;
1327
+ padding: 0 8px;
1317
1328
  border: 1px solid transparent;
1318
1329
  border-radius: var(--radius-pill);
1319
1330
  background: transparent;
@@ -1322,15 +1333,21 @@ body.is-resizing-dag-graph {
1322
1333
  font-weight: 700;
1323
1334
  cursor: pointer;
1324
1335
  }
1325
- .dag-inspector-tab:hover,
1336
+ .dag-inspector-tab:hover:not(:disabled),
1326
1337
  .dag-inspector-tab:focus-visible {
1327
1338
  color: var(--ink);
1339
+ background: transparent;
1340
+ border-color: transparent;
1328
1341
  outline: none;
1342
+ box-shadow: none;
1329
1343
  }
1330
- .dag-inspector-tab[aria-selected="true"] {
1344
+ .dag-inspector-tab[aria-selected="true"],
1345
+ .dag-inspector-tab[aria-selected="true"]:hover,
1346
+ .dag-inspector-tab[aria-selected="true"]:focus-visible {
1331
1347
  border-color: transparent;
1332
1348
  background: var(--ink);
1333
1349
  color: #fff;
1350
+ box-shadow: none;
1334
1351
  }
1335
1352
  .dag-inspector-content {
1336
1353
  min-height: 0;
@@ -1947,9 +1964,15 @@ body.is-resizing-dag-graph {
1947
1964
  .process-timeline-toolbar {
1948
1965
  display: flex;
1949
1966
  flex-wrap: wrap;
1967
+ align-items: center;
1950
1968
  gap: 8px;
1951
1969
  margin-bottom: var(--space-2);
1952
1970
  }
1971
+ .process-timeline-filter-group {
1972
+ display: inline-flex;
1973
+ flex-wrap: wrap;
1974
+ gap: 4px;
1975
+ }
1953
1976
  .process-timeline-toggle {
1954
1977
  min-height: 28px;
1955
1978
  padding: 0 10px;
@@ -2295,6 +2318,152 @@ body.is-resizing-dag-graph {
2295
2318
  color: var(--danger, #b42318);
2296
2319
  font-size: 13px;
2297
2320
  }
2321
+ .node-transparency-root {
2322
+ display: flex;
2323
+ flex-direction: column;
2324
+ gap: var(--space-3);
2325
+ }
2326
+ .node-transparency-omission {
2327
+ padding: var(--space-3);
2328
+ border: 1px solid var(--hairline);
2329
+ border-left: 3px solid var(--orange);
2330
+ border-radius: var(--radius-md);
2331
+ background: var(--orange-soft);
2332
+ }
2333
+ .node-transparency-omission h4,
2334
+ .node-transparency-omission p {
2335
+ margin: 0;
2336
+ }
2337
+ .node-transparency-omission p {
2338
+ margin-top: var(--space-2);
2339
+ }
2340
+ .node-artifact-inventory {
2341
+ margin-bottom: var(--space-3);
2342
+ }
2343
+ .node-artifact-card {
2344
+ margin-top: var(--space-3);
2345
+ padding: var(--space-3);
2346
+ border: 1px solid var(--hairline);
2347
+ border-radius: var(--radius-md);
2348
+ background: var(--surface-2, #f3f1ec);
2349
+ }
2350
+ .node-artifact-card.is-consumed {
2351
+ border-left: 3px solid var(--blue, #2563eb);
2352
+ }
2353
+ .artifact-content-preview {
2354
+ overflow: hidden;
2355
+ margin-top: 10px;
2356
+ border: 1px solid var(--hairline);
2357
+ border-radius: 9px;
2358
+ background: var(--surface);
2359
+ }
2360
+ .artifact-content-preview > summary {
2361
+ display: flex;
2362
+ align-items: center;
2363
+ gap: 7px;
2364
+ min-height: 36px;
2365
+ padding: 0 10px;
2366
+ color: var(--body);
2367
+ font-size: 11px;
2368
+ font-weight: 800;
2369
+ cursor: pointer;
2370
+ list-style: none;
2371
+ }
2372
+ .artifact-content-preview > summary::-webkit-details-marker {
2373
+ display: none;
2374
+ }
2375
+ .artifact-content-preview > summary::after {
2376
+ margin-left: auto;
2377
+ font-size: 14px;
2378
+ content: "⌄";
2379
+ transition: transform var(--transition-fast);
2380
+ }
2381
+ .artifact-content-preview[open] > summary::after {
2382
+ transform: rotate(180deg);
2383
+ }
2384
+ .artifact-content-preview > summary:hover,
2385
+ .artifact-content-preview > summary:focus-visible {
2386
+ background: var(--canvas-soft);
2387
+ color: var(--ink);
2388
+ outline: none;
2389
+ }
2390
+ .artifact-content-preview > summary i {
2391
+ color: var(--orange-active);
2392
+ font-size: 15px;
2393
+ }
2394
+ .artifact-content-preview-body {
2395
+ padding: 10px;
2396
+ border-top: 1px solid var(--hairline);
2397
+ background: color-mix(in srgb, var(--canvas-soft) 52%, var(--surface));
2398
+ }
2399
+ .artifact-content-preview-body > :first-child {
2400
+ margin-top: 0;
2401
+ }
2402
+ .artifact-content-preview-body > :last-child {
2403
+ margin-bottom: 0;
2404
+ }
2405
+ .artifact-content-preview-meta {
2406
+ display: flex;
2407
+ align-items: baseline;
2408
+ justify-content: space-between;
2409
+ gap: 10px;
2410
+ margin-bottom: 8px;
2411
+ color: var(--muted);
2412
+ font-size: 9px;
2413
+ }
2414
+ .artifact-content-preview-meta code {
2415
+ min-width: 0;
2416
+ overflow-wrap: anywhere;
2417
+ color: var(--ink);
2418
+ font-size: 10px;
2419
+ }
2420
+ .artifact-content-preview-code,
2421
+ .artifact-content-preview-document {
2422
+ max-height: 320px;
2423
+ overflow: auto;
2424
+ overscroll-behavior: contain;
2425
+ border: 1px solid color-mix(in srgb, var(--hairline) 78%, transparent);
2426
+ border-radius: 7px;
2427
+ background: var(--surface);
2428
+ }
2429
+ .artifact-content-preview-code {
2430
+ margin: 0;
2431
+ padding: 10px;
2432
+ white-space: pre-wrap;
2433
+ word-break: break-word;
2434
+ font-family: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;
2435
+ font-size: 10px;
2436
+ line-height: 1.55;
2437
+ }
2438
+ .artifact-content-preview-document {
2439
+ padding: 10px;
2440
+ }
2441
+ .artifact-content-preview-error,
2442
+ .artifact-content-preview-unavailable,
2443
+ .artifact-content-preview-note {
2444
+ margin: 0;
2445
+ font-size: 10px;
2446
+ line-height: 1.5;
2447
+ }
2448
+ .artifact-content-preview-error {
2449
+ color: var(--danger, #b42318);
2450
+ }
2451
+ .artifact-content-preview-unavailable,
2452
+ .artifact-content-preview-note {
2453
+ color: var(--muted);
2454
+ }
2455
+ .artifact-content-preview-note {
2456
+ margin-top: 7px;
2457
+ }
2458
+ .artifact-content-preview-full-cta {
2459
+ display: flex;
2460
+ align-items: center;
2461
+ gap: 6px;
2462
+ margin: 7px 0 0;
2463
+ font-size: 10px;
2464
+ line-height: 1.5;
2465
+ color: var(--muted);
2466
+ }
2298
2467
  .spec-evidence-summary {
2299
2468
  margin: var(--space-2) 0 0;
2300
2469
  color: var(--body);
@@ -3644,9 +3813,6 @@ button.copy-command:focus-visible {
3644
3813
  flex-direction: column;
3645
3814
  min-height: 0;
3646
3815
  }
3647
- #dag-inspector-panel-prompt-restart:has(.prompt-restart-panel.is-readonly) {
3648
- overflow: hidden;
3649
- }
3650
3816
  .prompt-restart-panel,
3651
3817
  .prompt-restart-box {
3652
3818
  display: flex;
@@ -3716,142 +3882,878 @@ button.copy-command:focus-visible {
3716
3882
  font-size: 12px;
3717
3883
  line-height: 1.5;
3718
3884
  }
3719
- .prompt-restart-field {
3885
+
3886
+ .dag-inspector-content[data-inspector-tab="prompt-restart"] {
3720
3887
  display: flex;
3721
3888
  flex-direction: column;
3722
- gap: 6px;
3723
- min-width: 0;
3889
+ gap: 14px;
3890
+ background: color-mix(in srgb, var(--canvas-soft) 72%, var(--surface));
3724
3891
  }
3725
- .prompt-restart-field.is-hidden,
3726
- .prompt-restart-prompt-card.is-hidden {
3727
- display: none;
3892
+ .dag-action-page-intro,
3893
+ .dag-action-card,
3894
+ .dag-action-export-zone {
3895
+ flex: 0 0 auto;
3728
3896
  }
3729
- .prompt-restart-label {
3730
- color: var(--ink);
3731
- font-size: 12px;
3732
- font-weight: 700;
3733
- letter-spacing: 0.01em;
3897
+ .dag-action-page-intro {
3898
+ display: flex;
3899
+ align-items: flex-start;
3900
+ justify-content: space-between;
3901
+ gap: 16px;
3902
+ padding: 2px 2px 4px;
3734
3903
  }
3735
- .prompt-restart-hint {
3904
+ .dag-action-page-intro h4,
3905
+ .dag-action-page-intro p {
3736
3906
  margin: 0;
3737
- color: var(--muted);
3738
- font-size: 12px;
3739
- line-height: 1.45;
3740
3907
  }
3741
- .prompt-restart-candidate-select {
3742
- display: block;
3743
- width: 100%;
3744
- min-width: 0;
3908
+ .dag-action-page-intro h4 {
3909
+ margin-top: 2px;
3910
+ font-size: 19px;
3911
+ line-height: 1.25;
3745
3912
  }
3746
- .prompt-restart-candidate-select .custom-select-trigger {
3747
- width: 100%;
3913
+ .dag-action-page-intro p {
3914
+ margin-top: 5px;
3915
+ color: var(--body);
3916
+ font-size: 12px;
3748
3917
  }
3749
- .prompt-restart-candidate-select .custom-select-menu {
3750
- z-index: 6;
3918
+ .dag-action-eyebrow {
3919
+ display: block;
3920
+ color: var(--orange-active);
3921
+ font-size: 9px;
3922
+ font-weight: 800;
3923
+ letter-spacing: 0.13em;
3924
+ text-transform: uppercase;
3751
3925
  }
3752
- .prompt-restart-mode-switch {
3753
- display: flex;
3754
- width: fit-content;
3755
- max-width: 100%;
3756
- gap: 4px;
3757
- padding: 4px;
3926
+ .dag-action-node-state {
3927
+ flex: 0 0 auto;
3928
+ padding: 4px 8px;
3758
3929
  border: 1px solid var(--hairline);
3759
3930
  border-radius: var(--radius-pill);
3760
3931
  background: var(--surface);
3761
- }
3762
- #dag-inspector-panel-prompt-restart button.prompt-restart-mode-option,
3763
- .prompt-restart-mode-option {
3764
- appearance: none;
3765
- display: inline-flex;
3766
- align-items: center;
3767
- justify-content: center;
3768
- flex: 0 0 auto;
3769
- width: auto;
3770
- min-height: 30px;
3771
- height: 30px;
3772
- padding: 0 12px;
3773
- border: 1px solid transparent;
3774
- border-radius: var(--radius-pill);
3775
- background: transparent;
3776
3932
  color: var(--muted);
3777
- font-size: 12px;
3778
- font-weight: 700;
3779
- line-height: 1;
3780
- letter-spacing: 0;
3781
- white-space: nowrap;
3782
- box-shadow: none;
3783
- transform: none;
3784
- cursor: pointer;
3785
- }
3786
- #dag-inspector-panel-prompt-restart button.prompt-restart-mode-option:hover,
3787
- #dag-inspector-panel-prompt-restart button.prompt-restart-mode-option:focus-visible,
3788
- .prompt-restart-mode-option:hover,
3789
- .prompt-restart-mode-option:focus-visible {
3790
- color: var(--ink);
3791
- background: var(--surface-muted);
3792
- border-color: transparent;
3793
- outline: none;
3794
- box-shadow: none;
3795
- transform: none;
3796
- }
3797
- #dag-inspector-panel-prompt-restart button.prompt-restart-mode-option.is-selected,
3798
- .prompt-restart-mode-option.is-selected {
3799
- background: var(--ink);
3800
- color: #fff;
3801
- border-color: transparent;
3933
+ font-family: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;
3934
+ font-size: 9px;
3935
+ font-weight: 800;
3936
+ letter-spacing: 0.05em;
3937
+ text-transform: uppercase;
3802
3938
  }
3803
- .prompt-restart-prompt-card {
3804
- display: flex;
3805
- flex-direction: column;
3806
- min-width: 0;
3939
+ .dag-action-card {
3807
3940
  overflow: hidden;
3808
3941
  border: 1px solid var(--hairline);
3809
- border-radius: var(--radius-lg);
3942
+ border-radius: 13px;
3810
3943
  background: var(--surface);
3944
+ box-shadow: 0 4px 14px rgb(38 37 30 / 4%);
3811
3945
  }
3812
- .prompt-restart-prompt-head {
3813
- display: flex;
3814
- align-items: flex-start;
3815
- justify-content: space-between;
3816
- gap: var(--space-3);
3817
- padding: 10px 12px;
3946
+ .dag-action-card-header {
3947
+ display: grid;
3948
+ grid-template-columns: 38px minmax(0, 1fr);
3949
+ gap: 12px;
3950
+ align-items: start;
3951
+ padding: 14px 15px;
3818
3952
  border-bottom: 1px solid var(--hairline);
3819
- background: var(--canvas-soft);
3953
+ background: color-mix(in srgb, var(--canvas-soft) 68%, var(--surface));
3820
3954
  }
3821
- .prompt-restart-prompt-titles {
3822
- display: flex;
3823
- flex-wrap: wrap;
3824
- align-items: center;
3825
- gap: 6px 8px;
3826
- min-width: 0;
3955
+ .dag-action-card-icon {
3956
+ display: grid;
3957
+ place-items: center;
3958
+ width: 38px;
3959
+ height: 38px;
3960
+ border: 1px solid color-mix(in srgb, var(--orange) 24%, var(--hairline));
3961
+ border-radius: 10px;
3962
+ background: var(--orange-soft);
3963
+ color: var(--orange-active);
3964
+ font-size: 19px;
3827
3965
  }
3828
- .prompt-restart-prompt-title {
3829
- color: var(--ink);
3830
- font-size: 13px;
3831
- font-weight: 700;
3832
- line-height: 1.3;
3966
+ .dag-action-card-copy h4,
3967
+ .dag-action-card-copy p {
3968
+ margin: 0;
3833
3969
  }
3834
- .prompt-restart-prompt-badge {
3835
- padding: 2px 8px;
3836
- border-radius: var(--radius-pill);
3837
- background: var(--surface-muted);
3838
- color: var(--muted);
3839
- font-size: 11px;
3840
- font-weight: 700;
3970
+ .dag-action-card-copy h4 {
3971
+ margin-top: 2px;
3972
+ font-size: 14px;
3973
+ line-height: 1.35;
3841
3974
  }
3842
- .prompt-restart-prompt-meta {
3843
- flex-basis: 100%;
3844
- color: var(--muted);
3975
+ .dag-action-card-copy p {
3976
+ margin-top: 4px;
3977
+ color: var(--body);
3845
3978
  font-size: 11px;
3846
- line-height: 1.3;
3979
+ line-height: 1.5;
3847
3980
  }
3848
- .prompt-restart-copy-icon {
3849
- flex: 0 0 auto;
3850
- margin-top: 1px;
3981
+ .dag-action-card-body {
3982
+ display: grid;
3983
+ gap: 12px;
3984
+ padding: 14px 15px;
3851
3985
  }
3852
- .prompt-restart-prompt-actions {
3853
- display: flex;
3854
- align-items: center;
3986
+ .dag-action-availability {
3987
+ display: grid;
3988
+ grid-template-columns: 20px minmax(0, 1fr);
3989
+ gap: 9px;
3990
+ align-items: start;
3991
+ padding: 11px 12px;
3992
+ border: 1px solid var(--hairline);
3993
+ border-radius: 10px;
3994
+ background: var(--canvas-soft);
3995
+ color: var(--body);
3996
+ }
3997
+ .dag-action-availability > i {
3998
+ margin-top: 1px;
3999
+ color: var(--muted);
4000
+ font-size: 17px;
4001
+ }
4002
+ .dag-action-availability strong,
4003
+ .dag-action-availability p {
4004
+ display: block;
4005
+ margin: 0;
4006
+ }
4007
+ .dag-action-availability strong {
4008
+ color: var(--ink);
4009
+ font-size: 12px;
4010
+ }
4011
+ .dag-action-availability p {
4012
+ margin-top: 3px;
4013
+ font-size: 11px;
4014
+ line-height: 1.5;
4015
+ }
4016
+ .dag-action-reason-copy {
4017
+ color: var(--ink);
4018
+ }
4019
+ .dag-action-availability code {
4020
+ display: inline-block;
4021
+ margin-top: 7px;
4022
+ padding: 2px 6px;
4023
+ border-radius: 5px;
4024
+ background: color-mix(in srgb, var(--ink) 6%, transparent);
4025
+ font-size: 9px;
4026
+ }
4027
+ .dag-action-availability.is-ready {
4028
+ border-color: color-mix(in srgb, var(--green) 28%, var(--hairline));
4029
+ background: color-mix(in srgb, var(--green) 6%, var(--surface));
4030
+ }
4031
+ .dag-action-availability.is-ready > i {
4032
+ color: var(--green);
4033
+ }
4034
+ .dag-action-availability.is-blocked {
4035
+ border-color: color-mix(in srgb, var(--red) 25%, var(--hairline));
4036
+ background: color-mix(in srgb, var(--red) 5%, var(--surface));
4037
+ }
4038
+ .dag-action-availability.is-blocked > i {
4039
+ color: var(--red);
4040
+ }
4041
+ .dag-action-form {
4042
+ display: grid;
4043
+ gap: 12px;
4044
+ padding-top: 2px;
4045
+ }
4046
+ .dag-action-field-label {
4047
+ color: var(--ink);
4048
+ font-size: 11px;
4049
+ font-weight: 800;
4050
+ }
4051
+ .dag-action-form select,
4052
+ .dag-action-form textarea,
4053
+ .dag-action-file-input {
4054
+ border: 1px solid var(--hairline-strong);
4055
+ border-radius: 9px;
4056
+ background: var(--surface);
4057
+ color: var(--ink);
4058
+ }
4059
+ .dag-action-form select {
4060
+ min-height: 38px;
4061
+ padding: 0 10px;
4062
+ }
4063
+ .dag-action-form textarea {
4064
+ padding: 9px 10px;
4065
+ }
4066
+ .dag-action-form select:focus-visible,
4067
+ .dag-action-form textarea:focus-visible,
4068
+ .dag-action-file-input:focus-visible {
4069
+ border-color: var(--orange);
4070
+ outline: 2px solid color-mix(in srgb, var(--orange) 18%, transparent);
4071
+ outline-offset: 1px;
4072
+ }
4073
+ .dag-action-file-input {
4074
+ width: 100%;
4075
+ padding: 5px;
4076
+ font-size: 11px;
4077
+ }
4078
+ .dag-action-file-input::file-selector-button {
4079
+ min-height: 30px;
4080
+ margin-right: 9px;
4081
+ padding: 0 10px;
4082
+ border: 1px solid var(--hairline);
4083
+ border-radius: 7px;
4084
+ background: var(--canvas-soft);
4085
+ color: var(--ink);
4086
+ font-weight: 700;
4087
+ cursor: pointer;
4088
+ }
4089
+ .dag-action-primary,
4090
+ .dag-action-secondary {
4091
+ min-height: 39px;
4092
+ padding: 0 14px;
4093
+ border-radius: 9px;
4094
+ font-weight: 800;
4095
+ }
4096
+ .dag-action-primary {
4097
+ border: 1px solid var(--orange-active);
4098
+ background: var(--orange);
4099
+ color: #fff;
4100
+ box-shadow: 0 4px 12px color-mix(in srgb, var(--orange) 18%, transparent);
4101
+ }
4102
+ .dag-action-primary:hover:not(:disabled),
4103
+ .dag-action-primary:focus-visible {
4104
+ background: var(--orange-active);
4105
+ outline: none;
4106
+ box-shadow:
4107
+ 0 4px 12px color-mix(in srgb, var(--orange) 18%, transparent),
4108
+ 0 0 0 3px color-mix(in srgb, var(--orange) 15%, transparent);
4109
+ }
4110
+ .dag-action-secondary {
4111
+ border: 1px solid var(--hairline-strong);
4112
+ background: var(--surface);
4113
+ color: var(--ink);
4114
+ }
4115
+ .dag-action-secondary:hover:not(:disabled),
4116
+ .dag-action-secondary:focus-visible {
4117
+ border-color: var(--ink);
4118
+ outline: none;
4119
+ }
4120
+ .dag-action-disclosure {
4121
+ overflow: hidden;
4122
+ min-width: 0;
4123
+ max-width: 100%;
4124
+ border: 1px solid var(--hairline);
4125
+ border-radius: 10px;
4126
+ background: var(--surface);
4127
+ }
4128
+ .dag-action-disclosure summary {
4129
+ display: flex;
4130
+ align-items: center;
4131
+ gap: 6px;
4132
+ min-width: 0;
4133
+ padding: 10px 12px;
4134
+ color: var(--body);
4135
+ font-size: 11px;
4136
+ font-weight: 800;
4137
+ cursor: pointer;
4138
+ list-style: none;
4139
+ }
4140
+ .dag-action-disclosure summary::-webkit-details-marker {
4141
+ display: none;
4142
+ }
4143
+ .dag-action-disclosure summary::after {
4144
+ margin-left: auto;
4145
+ font-size: 15px;
4146
+ font-weight: 700;
4147
+ content: "⌄";
4148
+ transition: transform var(--transition-fast);
4149
+ }
4150
+ .dag-action-disclosure[open] summary::after {
4151
+ transform: rotate(180deg);
4152
+ }
4153
+ .dag-action-disclosure[open] summary {
4154
+ background: color-mix(in srgb, var(--orange) 5%, var(--surface));
4155
+ color: var(--ink);
4156
+ }
4157
+ .dag-action-disclosure summary:hover,
4158
+ .dag-action-disclosure summary:focus-visible {
4159
+ background: var(--canvas-soft);
4160
+ color: var(--ink);
4161
+ outline: none;
4162
+ }
4163
+ .dag-action-disclosure-body {
4164
+ display: grid;
4165
+ gap: 12px;
4166
+ min-width: 0;
4167
+ max-width: 100%;
4168
+ padding: 12px;
4169
+ border-top: 1px solid var(--hairline);
4170
+ }
4171
+ .dag-action-export-zone {
4172
+ display: grid;
4173
+ gap: 12px;
4174
+ margin-top: 4px;
4175
+ padding-top: 16px;
4176
+ border-top: 1px dashed var(--hairline-strong);
4177
+ }
4178
+ .dag-action-export-divider span,
4179
+ .dag-action-export-divider p {
4180
+ margin: 0;
4181
+ }
4182
+ .dag-action-export-divider span {
4183
+ color: var(--ink);
4184
+ font-size: 12px;
4185
+ font-weight: 800;
4186
+ }
4187
+ .dag-action-export-divider p {
4188
+ margin-top: 2px;
4189
+ color: var(--muted);
4190
+ font-size: 11px;
4191
+ }
4192
+
4193
+ .context-export-box,
4194
+ .artifact-revision-box {
4195
+ margin-bottom: 0;
4196
+ }
4197
+
4198
+ .context-export-box {
4199
+ container-type: inline-size;
4200
+ gap: 18px;
4201
+ padding: 18px;
4202
+ border: 1px solid var(--hairline);
4203
+ border-radius: 14px;
4204
+ background: color-mix(in srgb, var(--canvas-soft) 78%, var(--surface));
4205
+ }
4206
+ .context-export-heading {
4207
+ display: flex;
4208
+ align-items: flex-start;
4209
+ justify-content: space-between;
4210
+ gap: 18px;
4211
+ }
4212
+ .context-export-heading h4,
4213
+ .context-export-heading p {
4214
+ margin: 0;
4215
+ }
4216
+ .context-export-heading h4 {
4217
+ margin-top: 3px;
4218
+ font-size: 18px;
4219
+ line-height: 1.25;
4220
+ }
4221
+ .context-export-heading p {
4222
+ margin-top: 6px;
4223
+ max-width: 58ch;
4224
+ color: var(--body);
4225
+ font-size: 13px;
4226
+ }
4227
+ .context-export-eyebrow {
4228
+ color: var(--orange-active);
4229
+ font-size: 10px;
4230
+ font-weight: 800;
4231
+ letter-spacing: 0.14em;
4232
+ text-transform: uppercase;
4233
+ }
4234
+ .context-export-invariant {
4235
+ flex: 0 0 auto;
4236
+ padding: 6px 9px;
4237
+ border: 1px solid color-mix(in srgb, var(--green) 26%, var(--hairline));
4238
+ border-radius: var(--radius-pill);
4239
+ background: color-mix(in srgb, var(--green) 8%, var(--surface));
4240
+ color: var(--green);
4241
+ font-size: 11px;
4242
+ font-weight: 700;
4243
+ white-space: nowrap;
4244
+ }
4245
+ .context-export-workspace {
4246
+ display: grid;
4247
+ grid-template-columns: minmax(0, 1.25fr) minmax(230px, 0.75fr);
4248
+ gap: 16px;
4249
+ align-items: start;
4250
+ }
4251
+ .context-export-controls {
4252
+ display: grid;
4253
+ gap: 16px;
4254
+ }
4255
+ .context-export-fieldset {
4256
+ min-width: 0;
4257
+ margin: 0;
4258
+ padding: 0;
4259
+ border: 0;
4260
+ }
4261
+ .context-export-fieldset legend {
4262
+ margin-bottom: 8px;
4263
+ padding: 0;
4264
+ color: var(--ink);
4265
+ font-size: 12px;
4266
+ font-weight: 800;
4267
+ }
4268
+ .context-export-target-grid,
4269
+ .context-export-profile-grid {
4270
+ display: grid;
4271
+ grid-template-columns: repeat(2, minmax(0, 1fr));
4272
+ gap: 8px;
4273
+ }
4274
+ .context-export-choice,
4275
+ .context-export-profile-choice {
4276
+ display: grid;
4277
+ grid-template-columns: auto minmax(0, 1fr);
4278
+ align-items: start;
4279
+ gap: 9px;
4280
+ min-width: 0;
4281
+ padding: 11px;
4282
+ border: 1px solid var(--hairline);
4283
+ border-radius: 10px;
4284
+ background: var(--surface);
4285
+ cursor: pointer;
4286
+ transition:
4287
+ border-color var(--transition-fast),
4288
+ box-shadow var(--transition-fast),
4289
+ background var(--transition-fast);
4290
+ }
4291
+ .context-export-choice {
4292
+ grid-template-columns: auto 20px minmax(0, 1fr);
4293
+ }
4294
+ .context-export-choice:hover,
4295
+ .context-export-profile-choice:hover {
4296
+ border-color: var(--hairline-strong);
4297
+ background: var(--canvas-soft);
4298
+ }
4299
+ .context-export-choice:has(input:checked),
4300
+ .context-export-profile-choice:has(input:checked) {
4301
+ border-color: color-mix(in srgb, var(--orange) 58%, var(--hairline));
4302
+ background: var(--orange-soft);
4303
+ box-shadow: 0 0 0 1px color-mix(in srgb, var(--orange) 16%, transparent);
4304
+ }
4305
+ .context-export-profile-choice.is-risk:has(input:checked) {
4306
+ border-color: color-mix(in srgb, var(--red) 58%, var(--hairline));
4307
+ background: color-mix(in srgb, var(--red) 7%, var(--surface));
4308
+ box-shadow: 0 0 0 1px color-mix(in srgb, var(--red) 15%, transparent);
4309
+ }
4310
+ .context-export-choice input,
4311
+ .context-export-profile-choice input {
4312
+ width: 15px;
4313
+ height: 15px;
4314
+ margin: 2px 0 0;
4315
+ accent-color: var(--orange);
4316
+ }
4317
+ .context-export-profile-choice.is-risk input {
4318
+ accent-color: var(--red);
4319
+ }
4320
+ .context-export-choice:has(input:focus-visible),
4321
+ .context-export-profile-choice:has(input:focus-visible) {
4322
+ outline: 2px solid color-mix(in srgb, var(--orange) 60%, transparent);
4323
+ outline-offset: 2px;
4324
+ }
4325
+ .context-export-choice > i {
4326
+ margin-top: 1px;
4327
+ color: var(--orange-active);
4328
+ font-size: 18px;
4329
+ line-height: 1;
4330
+ }
4331
+ .context-export-choice-copy {
4332
+ display: grid;
4333
+ gap: 3px;
4334
+ min-width: 0;
4335
+ }
4336
+ .context-export-choice-copy strong,
4337
+ .context-export-choice-copy small {
4338
+ display: block;
4339
+ }
4340
+ .context-export-choice-copy strong {
4341
+ font-size: 12px;
4342
+ line-height: 1.35;
4343
+ }
4344
+ .context-export-choice-copy small {
4345
+ color: var(--muted);
4346
+ font-size: 11px;
4347
+ line-height: 1.45;
4348
+ }
4349
+ .context-export-profile-title {
4350
+ display: flex;
4351
+ flex-wrap: wrap;
4352
+ align-items: center;
4353
+ gap: 6px;
4354
+ }
4355
+ .context-export-profile-badge {
4356
+ padding: 1px 6px;
4357
+ border-radius: var(--radius-pill);
4358
+ font-size: 9px;
4359
+ font-weight: 800;
4360
+ }
4361
+ .context-export-profile-badge.is-redacted {
4362
+ background: color-mix(in srgb, var(--green) 12%, var(--surface));
4363
+ color: var(--green);
4364
+ }
4365
+ .context-export-profile-badge.is-raw {
4366
+ background: color-mix(in srgb, var(--red) 11%, var(--surface));
4367
+ color: var(--red);
4368
+ }
4369
+
4370
+ .context-export-raw-ack {
4371
+ display: grid;
4372
+ grid-template-columns: auto minmax(0, 1fr);
4373
+ align-items: start;
4374
+ gap: 9px;
4375
+ padding: 11px;
4376
+ border: 1px solid color-mix(in srgb, var(--red) 38%, var(--hairline));
4377
+ border-radius: 10px;
4378
+ background: color-mix(in srgb, var(--red) 6%, var(--surface));
4379
+ color: var(--ink);
4380
+ cursor: pointer;
4381
+ }
4382
+ .context-export-raw-ack[hidden] {
4383
+ display: none;
4384
+ }
4385
+ .context-export-raw-ack input {
4386
+ width: 15px;
4387
+ height: 15px;
4388
+ margin: 2px 0 0;
4389
+ accent-color: var(--red);
4390
+ }
4391
+ .context-export-raw-ack span {
4392
+ display: grid;
4393
+ gap: 2px;
4394
+ }
4395
+ .context-export-raw-ack strong {
4396
+ font-size: 12px;
4397
+ }
4398
+ .context-export-raw-ack small {
4399
+ color: var(--body);
4400
+ font-size: 11px;
4401
+ line-height: 1.45;
4402
+ }
4403
+ .context-export-ticket {
4404
+ position: relative;
4405
+ overflow: hidden;
4406
+ min-width: 0;
4407
+ padding: 16px 16px 14px 20px;
4408
+ border-radius: 13px;
4409
+ background: var(--ink);
4410
+ color: #fff;
4411
+ box-shadow: 0 10px 24px rgb(38 37 30 / 12%);
4412
+ }
4413
+ .context-export-ticket::before {
4414
+ position: absolute;
4415
+ top: 0;
4416
+ bottom: 0;
4417
+ left: 0;
4418
+ width: 5px;
4419
+ background: var(--orange);
4420
+ content: "";
4421
+ }
4422
+ .context-export-ticket-top {
4423
+ display: flex;
4424
+ align-items: center;
4425
+ justify-content: space-between;
4426
+ gap: 8px;
4427
+ padding-bottom: 12px;
4428
+ border-bottom: 1px dashed rgb(255 255 255 / 22%);
4429
+ }
4430
+ .context-export-ticket-type,
4431
+ .context-export-ticket-safety,
4432
+ .context-export-ticket-label {
4433
+ font-family: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;
4434
+ font-size: 9px;
4435
+ font-weight: 800;
4436
+ letter-spacing: 0.1em;
4437
+ }
4438
+ .context-export-ticket-type {
4439
+ color: rgb(255 255 255 / 58%);
4440
+ }
4441
+ .context-export-ticket-safety {
4442
+ padding: 3px 6px;
4443
+ border-radius: var(--radius-pill);
4444
+ background: color-mix(in srgb, var(--green) 36%, transparent);
4445
+ color: #c9f4df;
4446
+ letter-spacing: 0.04em;
4447
+ }
4448
+ .context-export-ticket-safety.is-risk {
4449
+ background: color-mix(in srgb, var(--red) 45%, transparent);
4450
+ color: #ffd7e1;
4451
+ }
4452
+ .context-export-ticket-label {
4453
+ display: block;
4454
+ margin-top: 16px;
4455
+ color: rgb(255 255 255 / 52%);
4456
+ }
4457
+ .context-export-ticket-title {
4458
+ display: block;
4459
+ margin-top: 4px;
4460
+ font-size: 17px;
4461
+ line-height: 1.3;
4462
+ }
4463
+ .context-export-ticket-rows {
4464
+ display: grid;
4465
+ grid-template-columns: 42px minmax(0, 1fr);
4466
+ gap: 8px 10px;
4467
+ margin: 16px 0 0;
4468
+ font-size: 11px;
4469
+ line-height: 1.45;
4470
+ }
4471
+ .context-export-ticket-rows dt {
4472
+ color: rgb(255 255 255 / 48%);
4473
+ }
4474
+ .context-export-ticket-rows dd {
4475
+ min-width: 0;
4476
+ margin: 0;
4477
+ color: rgb(255 255 255 / 86%);
4478
+ overflow-wrap: anywhere;
4479
+ }
4480
+ .context-export-ticket-rows dd.is-mono {
4481
+ font-family: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;
4482
+ font-size: 10px;
4483
+ }
4484
+ .context-export-ticket-foot {
4485
+ margin: 16px 0 0;
4486
+ padding-top: 11px;
4487
+ border-top: 1px dashed rgb(255 255 255 / 22%);
4488
+ color: rgb(255 255 255 / 52%);
4489
+ font-size: 10px;
4490
+ line-height: 1.5;
4491
+ }
4492
+ .context-export-box > .prompt-restart-actions {
4493
+ justify-content: flex-end;
4494
+ }
4495
+ .context-export-submit {
4496
+ min-height: 40px;
4497
+ padding: 0 16px;
4498
+ border: 1px solid var(--orange-active);
4499
+ border-radius: 9px;
4500
+ background: var(--orange);
4501
+ color: #fff;
4502
+ font-weight: 800;
4503
+ box-shadow: 0 5px 14px color-mix(in srgb, var(--orange) 22%, transparent);
4504
+ }
4505
+ .context-export-submit:hover:not(:disabled),
4506
+ .context-export-submit:focus-visible {
4507
+ background: var(--orange-active);
4508
+ outline: none;
4509
+ box-shadow:
4510
+ 0 5px 14px color-mix(in srgb, var(--orange) 22%, transparent),
4511
+ 0 0 0 3px color-mix(in srgb, var(--orange) 18%, transparent);
4512
+ }
4513
+ .context-export-box > .prompt-restart-status:not(:empty) {
4514
+ padding: 10px 12px;
4515
+ border: 1px solid var(--hairline);
4516
+ border-radius: 9px;
4517
+ background: var(--surface);
4518
+ }
4519
+
4520
+ .node-lineage-intro {
4521
+ padding: var(--space-3);
4522
+ border: 1px solid color-mix(in srgb, var(--blue) 24%, var(--hairline));
4523
+ border-left: 3px solid var(--blue);
4524
+ border-radius: var(--radius-md);
4525
+ background: color-mix(in srgb, var(--blue) 6%, var(--surface));
4526
+ }
4527
+ .node-lineage-intro h4,
4528
+ .node-lineage-intro p {
4529
+ margin: 0;
4530
+ }
4531
+ .node-lineage-intro p {
4532
+ margin-top: var(--space-2);
4533
+ }
4534
+
4535
+ @container (max-width: 680px) {
4536
+ .context-export-workspace {
4537
+ grid-template-columns: minmax(0, 1fr);
4538
+ }
4539
+ }
4540
+
4541
+ @media (max-width: 760px) {
4542
+ .dag-action-page-intro {
4543
+ align-items: stretch;
4544
+ flex-direction: column;
4545
+ }
4546
+ .dag-action-node-state {
4547
+ align-self: flex-start;
4548
+ }
4549
+ .dag-action-card-header {
4550
+ grid-template-columns: 34px minmax(0, 1fr);
4551
+ padding: 12px;
4552
+ }
4553
+ .dag-action-card-icon {
4554
+ width: 34px;
4555
+ height: 34px;
4556
+ }
4557
+ .dag-action-card-body {
4558
+ padding: 12px;
4559
+ }
4560
+ .context-export-heading {
4561
+ align-items: stretch;
4562
+ flex-direction: column;
4563
+ }
4564
+ .context-export-invariant {
4565
+ align-self: flex-start;
4566
+ }
4567
+ .context-export-workspace {
4568
+ grid-template-columns: minmax(0, 1fr);
4569
+ }
4570
+ .context-export-target-grid,
4571
+ .context-export-profile-grid {
4572
+ grid-template-columns: minmax(0, 1fr);
4573
+ }
4574
+ .context-export-box > .prompt-restart-actions {
4575
+ justify-content: stretch;
4576
+ }
4577
+ .context-export-submit {
4578
+ width: 100%;
4579
+ }
4580
+ }
4581
+
4582
+ @media (prefers-reduced-motion: reduce) {
4583
+ .dag-action-disclosure summary::after,
4584
+ .context-export-choice,
4585
+ .context-export-profile-choice {
4586
+ transition: none;
4587
+ }
4588
+ }
4589
+
4590
+ .artifact-revision-plan {
4591
+ display: grid;
4592
+ gap: 10px;
4593
+ margin-top: 12px;
4594
+ }
4595
+ .prompt-restart-field {
4596
+ display: flex;
4597
+ flex-direction: column;
4598
+ gap: 6px;
4599
+ min-width: 0;
4600
+ max-width: 100%;
4601
+ }
4602
+ .prompt-restart-field.is-hidden,
4603
+ .prompt-restart-prompt-card.is-hidden {
4604
+ display: none;
4605
+ }
4606
+ .prompt-restart-label {
4607
+ color: var(--ink);
4608
+ font-size: 12px;
4609
+ font-weight: 700;
4610
+ letter-spacing: 0.01em;
4611
+ }
4612
+ .prompt-restart-hint {
4613
+ margin: 0;
4614
+ color: var(--muted);
4615
+ font-size: 12px;
4616
+ line-height: 1.45;
4617
+ }
4618
+ .prompt-restart-candidate-select {
4619
+ display: block;
4620
+ width: 100%;
4621
+ min-width: 0;
4622
+ }
4623
+ .prompt-restart-candidate-select .custom-select-trigger {
4624
+ width: 100%;
4625
+ }
4626
+ .prompt-restart-candidate-select .custom-select-menu {
4627
+ z-index: 6;
4628
+ }
4629
+ .prompt-restart-mode-switch {
4630
+ display: flex;
4631
+ width: fit-content;
4632
+ max-width: 100%;
4633
+ gap: 4px;
4634
+ padding: 4px;
4635
+ border: 1px solid var(--hairline);
4636
+ border-radius: var(--radius-pill);
4637
+ background: var(--surface);
4638
+ }
4639
+ #dag-inspector-panel-prompt-restart button.prompt-restart-mode-option,
4640
+ .prompt-restart-mode-option {
4641
+ appearance: none;
4642
+ display: inline-flex;
4643
+ align-items: center;
4644
+ justify-content: center;
4645
+ flex: 0 0 auto;
4646
+ width: auto;
4647
+ min-height: 30px;
4648
+ height: 30px;
4649
+ padding: 0 12px;
4650
+ border: 1px solid transparent;
4651
+ border-radius: var(--radius-pill);
4652
+ background: transparent;
4653
+ color: var(--muted);
4654
+ font-size: 12px;
4655
+ font-weight: 700;
4656
+ line-height: 1;
4657
+ letter-spacing: 0;
4658
+ white-space: nowrap;
4659
+ box-shadow: none;
4660
+ transform: none;
4661
+ cursor: pointer;
4662
+ }
4663
+ #dag-inspector-panel-prompt-restart button.prompt-restart-mode-option:hover,
4664
+ #dag-inspector-panel-prompt-restart button.prompt-restart-mode-option:focus-visible,
4665
+ .prompt-restart-mode-option:hover,
4666
+ .prompt-restart-mode-option:focus-visible {
4667
+ color: var(--ink);
4668
+ background: var(--surface-muted);
4669
+ border-color: transparent;
4670
+ outline: none;
4671
+ box-shadow: none;
4672
+ transform: none;
4673
+ }
4674
+ #dag-inspector-panel-prompt-restart button.prompt-restart-mode-option.is-selected,
4675
+ .prompt-restart-mode-option.is-selected {
4676
+ background: var(--ink);
4677
+ color: #fff;
4678
+ border-color: transparent;
4679
+ }
4680
+ .prompt-restart-prompt-card {
4681
+ display: flex;
4682
+ flex-direction: column;
4683
+ min-width: 0;
4684
+ max-width: 100%;
4685
+ overflow: hidden;
4686
+ border: 1px solid var(--hairline);
4687
+ border-radius: var(--radius-lg);
4688
+ background: var(--surface);
4689
+ }
4690
+ .prompt-restart-prompt-head {
4691
+ display: flex;
4692
+ align-items: flex-start;
4693
+ justify-content: space-between;
4694
+ gap: var(--space-3);
4695
+ min-width: 0;
4696
+ padding: 10px 12px;
4697
+ border-bottom: 1px solid var(--hairline);
4698
+ background: var(--canvas-soft);
4699
+ }
4700
+ .prompt-restart-prompt-titles {
4701
+ display: flex;
4702
+ flex-wrap: wrap;
4703
+ align-items: center;
4704
+ gap: 6px 8px;
4705
+ min-width: 0;
4706
+ }
4707
+ .prompt-restart-prompt-title {
4708
+ color: var(--ink);
4709
+ font-size: 13px;
4710
+ font-weight: 700;
4711
+ line-height: 1.3;
4712
+ }
4713
+ .prompt-restart-prompt-badge {
4714
+ padding: 2px 8px;
4715
+ border-radius: var(--radius-pill);
4716
+ background: var(--surface-muted);
4717
+ color: var(--muted);
4718
+ font-size: 11px;
4719
+ font-weight: 700;
4720
+ }
4721
+ .prompt-restart-prompt-meta {
4722
+ flex-basis: 100%;
4723
+ color: var(--muted);
4724
+ font-size: 11px;
4725
+ line-height: 1.3;
4726
+ }
4727
+ .prompt-restart-prompt-head > :first-child {
4728
+ min-width: 0;
4729
+ overflow-wrap: anywhere;
4730
+ }
4731
+ .prompt-restart-copy-button {
4732
+ flex: 0 0 auto;
4733
+ gap: 6px;
4734
+ width: auto;
4735
+ min-width: 0;
4736
+ height: 32px;
4737
+ padding: 0 10px;
4738
+ border-color: color-mix(in srgb, var(--orange) 32%, var(--hairline));
4739
+ background: var(--orange-soft);
4740
+ color: var(--orange-active);
4741
+ font-size: 11px;
4742
+ font-weight: 800;
4743
+ white-space: nowrap;
4744
+ }
4745
+ .prompt-restart-copy-button:hover {
4746
+ border-color: color-mix(in srgb, var(--orange) 54%, var(--hairline));
4747
+ background: color-mix(in srgb, var(--orange) 13%, var(--surface));
4748
+ }
4749
+ .prompt-restart-copy-button.is-copied {
4750
+ border-color: color-mix(in srgb, var(--green) 36%, var(--hairline));
4751
+ background: color-mix(in srgb, var(--green) 9%, var(--surface));
4752
+ color: var(--green);
4753
+ }
4754
+ .prompt-restart-prompt-actions {
4755
+ display: flex;
4756
+ align-items: center;
3855
4757
  gap: 6px;
3856
4758
  flex: 0 0 auto;
3857
4759
  }
@@ -3886,9 +4788,13 @@ button.copy-command:focus-visible {
3886
4788
  display: none;
3887
4789
  }
3888
4790
  .prompt-restart-readonly {
4791
+ box-sizing: border-box;
4792
+ width: 100%;
4793
+ min-width: 0;
4794
+ max-width: 100%;
3889
4795
  margin: 0;
3890
4796
  padding: 14px 16px;
3891
- overflow: auto;
4797
+ overflow-y: auto;
3892
4798
  background: var(--canvas-soft);
3893
4799
  color: var(--ink);
3894
4800
  font-family: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;
@@ -3896,6 +4802,8 @@ button.copy-command:focus-visible {
3896
4802
  line-height: 1.65;
3897
4803
  white-space: pre-wrap;
3898
4804
  overflow-wrap: anywhere;
4805
+ overflow-x: hidden;
4806
+ word-break: break-word;
3899
4807
  tab-size: 2;
3900
4808
  }
3901
4809
  .prompt-restart-panel.is-readonly .prompt-restart-readonly {
@@ -3908,6 +4816,8 @@ button.copy-command:focus-visible {
3908
4816
  }
3909
4817
  .prompt-restart-textarea {
3910
4818
  width: 100%;
4819
+ min-width: 0;
4820
+ max-width: 100%;
3911
4821
  min-height: 8rem;
3912
4822
  resize: vertical;
3913
4823
  box-sizing: border-box;
@@ -3921,7 +4831,8 @@ button.copy-command:focus-visible {
3921
4831
  line-height: 1.65;
3922
4832
  white-space: pre-wrap;
3923
4833
  overflow-wrap: anywhere;
3924
- overflow-x: auto;
4834
+ word-break: break-word;
4835
+ overflow-x: hidden;
3925
4836
  }
3926
4837
  .prompt-restart-textarea-work {
3927
4838
  min-height: 10rem;