@tea-agent/loop-agent 0.40.0-next.9 → 0.41.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (218) hide show
  1. package/AGENTS.md +1 -1
  2. package/CHANGELOG.md +130 -3
  3. package/README.md +2 -2
  4. package/dist/adapters/context-transfer/optional-pi-handoff.js +31 -0
  5. package/dist/adapters/context-transfer/pi-session.js +61 -0
  6. package/dist/application/dag/generate-task-dag.js +6 -2
  7. package/dist/build-stamp.json +3 -3
  8. package/dist/cli/command-definitions.js +21 -5
  9. package/dist/cli/program.js +61 -4
  10. package/dist/commands/client-recovery.js +8 -36
  11. package/dist/commands/dag-artifact.js +284 -0
  12. package/dist/commands/dag-context.js +184 -0
  13. package/dist/commands/dag-rerun.js +206 -1
  14. package/dist/commands/init-model-catalog.js +22 -0
  15. package/dist/commands/task-advance.js +23 -1
  16. package/dist/commands/task-source-prepare.js +5 -0
  17. package/dist/commands/task-status.js +1 -0
  18. package/dist/executors/dag-pi-executor.js +39 -12
  19. package/dist/executors/pi-sdk-executor.js +36 -5
  20. package/dist/executors/shell-executor.js +64 -17
  21. package/dist/governance/checks.js +1 -0
  22. package/dist/{worker → infrastructure}/console/app-data.js +4 -0
  23. package/dist/infrastructure/console/artifact-revision-store.js +430 -0
  24. package/dist/infrastructure/console/context-export-store.js +160 -0
  25. package/dist/infrastructure/console/dir-lock.js +132 -0
  26. package/dist/{worker → infrastructure}/console/operation-store.js +28 -0
  27. package/dist/infrastructure/harness/artifact-store.js +10 -1
  28. package/dist/infrastructure/harness/atomic-write.js +12 -2
  29. package/dist/shared/context-transfer/artifact-revision.js +172 -0
  30. package/dist/shared/context-transfer.js +418 -0
  31. package/dist/shared/operator/capabilities.js +23 -1
  32. package/dist/shared/operator/safe-run-summary.js +1 -0
  33. package/dist/shared/path-safety.js +93 -0
  34. package/dist/shared/pi-context-pressure/checkpoint.js +116 -0
  35. package/dist/shared/pi-context-pressure/compaction-policy.js +151 -0
  36. package/dist/shared/pi-context-pressure/env.js +58 -0
  37. package/dist/shared/pi-context-pressure/extension.js +100 -0
  38. package/dist/shared/pi-context-pressure/index.js +7 -0
  39. package/dist/shared/pi-context-pressure/overflow.js +252 -0
  40. package/dist/shared/pi-context-pressure/sift-bridge.js +386 -0
  41. package/dist/shared/pi-context-pressure/telemetry.js +51 -0
  42. package/dist/shared/preview.js +28 -4
  43. package/dist/task/config-types.js +2 -1
  44. package/dist/task/task-demand-routing.js +3 -0
  45. package/dist/worker/console/chat/assistant-content.js +7 -0
  46. package/dist/worker/console/chat/chat-event-store.js +84 -13
  47. package/dist/worker/console/chat/goal-round-driver.js +72 -0
  48. package/dist/worker/console/chat/goals.js +300 -0
  49. package/dist/worker/console/chat/pi-runtime.js +285 -8
  50. package/dist/worker/console/chat/provider-error.js +2 -1
  51. package/dist/worker/console/chat/repo-browser.js +94 -12
  52. package/dist/worker/console/chat/resource-preferences-store.js +1 -1
  53. package/dist/worker/console/chat/routes.js +487 -30
  54. package/dist/worker/console/chat/session-catalog.js +48 -0
  55. package/dist/worker/console/chat/session-stats.js +96 -0
  56. package/dist/worker/console/chat/session-store.js +28 -19
  57. package/dist/worker/console/chat/shortcuts.js +7 -0
  58. package/dist/worker/console/chat/sift-bridge.js +1 -0
  59. package/dist/worker/console/chat/turn-process.js +32 -3
  60. package/dist/worker/console/chat/user-questions.js +1 -1
  61. package/dist/worker/console/console-update-runtime.js +1 -1
  62. package/dist/worker/console/context-transfer-diagnostics.js +198 -0
  63. package/dist/worker/console/dag-confirmation.js +1 -1
  64. package/dist/worker/console/dag-execution-receipt.js +21 -3
  65. package/dist/worker/console/doctor.js +1 -1
  66. package/dist/worker/console/draft-store.js +1 -1
  67. package/dist/worker/console/human-gate-token.js +1 -1
  68. package/dist/worker/console/index.js +3 -3
  69. package/dist/worker/console/interview/assessment.js +1 -1
  70. package/dist/worker/console/interview/session.js +1 -1
  71. package/dist/worker/console/operation-runner.js +45 -4
  72. package/dist/worker/console/operation-sse.js +1 -1
  73. package/dist/worker/console/operation-wait.js +1 -1
  74. package/dist/worker/console/operator-actions.js +124 -8
  75. package/dist/worker/console/operator-selection.js +6 -2
  76. package/dist/worker/console/operator-surface-health.js +1 -1
  77. package/dist/worker/console/operator-user-error.js +169 -0
  78. package/dist/worker/console/pi-plugins.catalog.json +73658 -0
  79. package/dist/worker/console/pi-plugins.js +179 -0
  80. package/dist/worker/console/routes.js +864 -13
  81. package/dist/worker/console/security.js +35 -0
  82. package/dist/worker/console/server.js +177 -44
  83. package/dist/worker/console/static/assets/{abnfDiagram-N423BO3Z-Bs-CDAXM.js → abnfDiagram-N423BO3Z-DSVcg1YO.js} +1 -1
  84. package/dist/worker/console/static/assets/{arc-CAkA3We3.js → arc-BtXhIqui.js} +1 -1
  85. package/dist/worker/console/static/assets/{architectureDiagram-T3A2C74G-DEmI_zqr.js → architectureDiagram-T3A2C74G-B-nh-ilJ.js} +1 -1
  86. package/dist/worker/console/static/assets/{blockDiagram-VBNYF7ZC-uDHANebE.js → blockDiagram-VBNYF7ZC-BIUSVdZI.js} +1 -1
  87. package/dist/worker/console/static/assets/{c4Diagram-5PPSVZJV-Bv97b4_B.js → c4Diagram-5PPSVZJV-Cmw3L4qM.js} +1 -1
  88. package/dist/worker/console/static/assets/channel-BhZFNefx.js +1 -0
  89. package/dist/worker/console/static/assets/{chunk-2GRJ4B5K-shmQKsFz.js → chunk-2GRJ4B5K-CGpMMjGm.js} +1 -1
  90. package/dist/worker/console/static/assets/{chunk-2Q5K7J3B-BAraNvcN.js → chunk-2Q5K7J3B-BNBkEpEJ.js} +1 -1
  91. package/dist/worker/console/static/assets/{chunk-5RXB4S5H-BirhxUop.js → chunk-5RXB4S5H-ubln3eaU.js} +1 -1
  92. package/dist/worker/console/static/assets/{chunk-5VM5RSS4-C9LgUJpR.js → chunk-5VM5RSS4-_XcBTt1i.js} +1 -1
  93. package/dist/worker/console/static/assets/{chunk-6Q2QTUOP-DrU-s-t7.js → chunk-6Q2QTUOP-Ln30Pgrh.js} +1 -1
  94. package/dist/worker/console/static/assets/{chunk-GF5L2VYU-Tx-H_FA2.js → chunk-GF5L2VYU-ESH3lhSx.js} +1 -1
  95. package/dist/worker/console/static/assets/{chunk-JWPE2WC7-BjLtNFrR.js → chunk-JWPE2WC7-DAJt-qXB.js} +1 -1
  96. package/dist/worker/console/static/assets/{chunk-KBJHAD2P-UNLVwSsy.js → chunk-KBJHAD2P-Cx10LIcH.js} +1 -1
  97. package/dist/worker/console/static/assets/{chunk-RYQCIY6F-CBEUX8XD.js → chunk-RYQCIY6F-CENeOxoJ.js} +1 -1
  98. package/dist/worker/console/static/assets/{chunk-XXDRQBXY-WTL7IZOq.js → chunk-XXDRQBXY-DXqK-D38.js} +1 -1
  99. package/dist/worker/console/static/assets/classDiagram-JCYQIIEL-Sbv-NJni.js +1 -0
  100. package/dist/worker/console/static/assets/classDiagram-v2-OCEON4UE-Sbv-NJni.js +1 -0
  101. package/dist/worker/console/static/assets/{cose-bilkent-JH36ORCC-CkHG6W3s.js → cose-bilkent-JH36ORCC-CE4dmvGY.js} +1 -1
  102. package/dist/worker/console/static/assets/{cynefin-VYW2F7L2-BRzFqTaL.js → cynefin-VYW2F7L2-CRacN1zK.js} +1 -1
  103. package/dist/worker/console/static/assets/{cynefinDiagram-MW4NZA55-2_CFp_i7.js → cynefinDiagram-MW4NZA55-Cneukjrt.js} +1 -1
  104. package/dist/worker/console/static/assets/{dagre-VZM6K2ZE-BJtsmdkE.js → dagre-VZM6K2ZE-DPFboRoL.js} +1 -1
  105. package/dist/worker/console/static/assets/{diagram-7IWD3JNH-DNEFFo6w.js → diagram-7IWD3JNH-DIAQgcOP.js} +1 -1
  106. package/dist/worker/console/static/assets/{diagram-B4RE2ZJO-B_IWV7eo.js → diagram-B4RE2ZJO-VrYMKxuy.js} +1 -1
  107. package/dist/worker/console/static/assets/{diagram-LBJQPF4R-DvvRx2dz.js → diagram-LBJQPF4R-CLHvBghn.js} +1 -1
  108. package/dist/worker/console/static/assets/{diagram-Q27KOJAE-CsibsWLg.js → diagram-Q27KOJAE-DVCWBif8.js} +1 -1
  109. package/dist/worker/console/static/assets/{diagram-UB23O5K3-les_djBQ.js → diagram-UB23O5K3-BTMmbBzJ.js} +1 -1
  110. package/dist/worker/console/static/assets/{ebnfDiagram-BXEA7PRR-BEm2n7qJ.js → ebnfDiagram-BXEA7PRR-BUZsKJ56.js} +1 -1
  111. package/dist/worker/console/static/assets/{erDiagram-JOGREHBK-BI7vHHVm.js → erDiagram-JOGREHBK-BsBZ5NXC.js} +1 -1
  112. package/dist/worker/console/static/assets/{flowDiagram-UKHOOZJN-CUFCERrB.js → flowDiagram-UKHOOZJN-D7fH_kDa.js} +1 -1
  113. package/dist/worker/console/static/assets/{ganttDiagram-PKOTCBZU-wxyLiGWt.js → ganttDiagram-PKOTCBZU-Bza5OohY.js} +1 -1
  114. package/dist/worker/console/static/assets/{gitGraphDiagram-DS77QQ5N-Bt897K8Z.js → gitGraphDiagram-DS77QQ5N-DpkoGR_Y.js} +1 -1
  115. package/dist/worker/console/static/assets/index-Ius3vxhf.css +1 -0
  116. package/dist/worker/console/static/assets/index-yASzcbBr.js +451 -0
  117. package/dist/worker/console/static/assets/{infoDiagram-6WML65LV-DYNx_IPv.js → infoDiagram-6WML65LV-BYm3g6LT.js} +1 -1
  118. package/dist/worker/console/static/assets/{ishikawaDiagram-WSZJBQD7-CzpLNEu6.js → ishikawaDiagram-WSZJBQD7-C2RS_H4v.js} +1 -1
  119. package/dist/worker/console/static/assets/{journeyDiagram-NVQOT4AX-97f9owNU.js → journeyDiagram-NVQOT4AX-B4slKpCo.js} +1 -1
  120. package/dist/worker/console/static/assets/{kanban-definition-27J2QSJJ-BxM9hyBn.js → kanban-definition-27J2QSJJ-B7orRNpI.js} +1 -1
  121. package/dist/worker/console/static/assets/{linear-ByuxcHvp.js → linear-D1BeBxLQ.js} +1 -1
  122. package/dist/worker/console/static/assets/{mermaid.core-DwPGvpCv.js → mermaid.core-0TtMP8k4.js} +5 -5
  123. package/dist/worker/console/static/assets/{mindmap-definition-FAOFIHXS-DCoqG9RT.js → mindmap-definition-FAOFIHXS-XL5EbCtT.js} +1 -1
  124. package/dist/worker/console/static/assets/{pegDiagram-VL7TDLO6-BLSBmBMx.js → pegDiagram-VL7TDLO6-CwF7uas5.js} +1 -1
  125. package/dist/worker/console/static/assets/{pieDiagram-7S7Q4E2Y-B0t_0oJW.js → pieDiagram-7S7Q4E2Y-A_Jo-72f.js} +1 -1
  126. package/dist/worker/console/static/assets/{quadrantDiagram-CIZ2JOQS-sTzDk7Nt.js → quadrantDiagram-CIZ2JOQS-CxOa4gKL.js} +1 -1
  127. package/dist/worker/console/static/assets/{railroadDiagram-AXF67PYL-B3jRdATC.js → railroadDiagram-AXF67PYL-DoAoswIH.js} +1 -1
  128. package/dist/worker/console/static/assets/{requirementDiagram-LRYGKXZP-D-cTtXEN.js → requirementDiagram-LRYGKXZP-C1Lc1MlD.js} +1 -1
  129. package/dist/worker/console/static/assets/{sankeyDiagram-W5VNT64P-B25igJRE.js → sankeyDiagram-W5VNT64P-DFXOkq0U.js} +1 -1
  130. package/dist/worker/console/static/assets/{sequenceDiagram-SI44F4Z6-jW_lM1_D.js → sequenceDiagram-SI44F4Z6-B0ufUCuW.js} +1 -1
  131. package/dist/worker/console/static/assets/{sizeCapture-X5ZJPWSS-CrzTgsHE.js → sizeCapture-X5ZJPWSS-iPbW55g3.js} +1 -1
  132. package/dist/worker/console/static/assets/{stateDiagram-OKZ733FA-B01MvlqE.js → stateDiagram-OKZ733FA-CHiXzEKP.js} +1 -1
  133. package/dist/worker/console/static/assets/stateDiagram-v2-UEYNNEHI-BtMgzo_H.js +1 -0
  134. package/dist/worker/console/static/assets/{swimlanes-SLNWSIFB-YcF12FiU.js → swimlanes-SLNWSIFB-LyFs7TpX.js} +2 -2
  135. package/dist/worker/console/static/assets/swimlanesDiagram-ULZ7WXOC-Cb-OVd9Y.js +8 -0
  136. package/dist/worker/console/static/assets/{timeline-definition-Z64GVDOM-ClnRcg2s.js → timeline-definition-Z64GVDOM-tNkJnb6z.js} +1 -1
  137. package/dist/worker/console/static/assets/{vennDiagram-T6HMQDX7-B6gr_z-q.js → vennDiagram-T6HMQDX7-DFm7Oo8o.js} +1 -1
  138. package/dist/worker/console/static/assets/{wardleyDiagram-T6FBY63Y-CvSgguGH.js → wardleyDiagram-T6FBY63Y-tpblTp9i.js} +1 -1
  139. package/dist/worker/console/static/assets/{xychartDiagram-ELKLHX3M-23OtSZCb.js → xychartDiagram-ELKLHX3M-BCDLWR_D.js} +1 -1
  140. package/dist/worker/console/static/index.html +7 -2
  141. package/dist/worker/console/static-src/app/useOperatorActions.js +3 -2
  142. package/dist/worker/console/static-src/operator-chat/chat-sse-events.js +95 -25
  143. package/dist/worker/console/static-src/operator-chat/compaction-message.js +35 -1
  144. package/dist/worker/console/static-src/operator-chat/open-preview-in-browser.js +3 -1
  145. package/dist/worker/console/static-src/operator-chat/useChatSessions.js +26 -19
  146. package/dist/worker/console/static-src/operator-chat/useChatStream.js +0 -11
  147. package/dist/worker/console/static-src/operator-chat/useChatThread.js +14 -1
  148. package/dist/worker/console/static-src/operator-chat/useRepoBrowser.js +34 -4
  149. package/dist/worker/console/static-src/operator-chat/useRuntimeControls.js +28 -3
  150. package/dist/worker/console/static-src/operator-chat/workspace-reorder.js +18 -0
  151. package/dist/worker/console/static-src/shell/console-update-reload.js +25 -0
  152. package/dist/worker/console/static-src/shell/useWorkspaces.js +150 -34
  153. package/dist/worker/console/static-src/shell/workspace-route.js +3 -1
  154. package/dist/worker/console/workspace-context.js +56 -5
  155. package/dist/worker/console/workspace-registry.js +335 -62
  156. package/dist/worker/continuation/worker-continuation.js +278 -0
  157. package/dist/worker/observe/health.js +1 -1
  158. package/dist/worker/observe/node-transparency.js +572 -0
  159. package/dist/worker/observe/routes.js +51 -1
  160. package/dist/worker/observe/static/api.js +69 -5
  161. package/dist/worker/observe/static/dag-context-reason-labels.d.ts +9 -0
  162. package/dist/worker/observe/static/dag-context-reason-labels.js +120 -0
  163. package/dist/worker/observe/static/inspect-bootstrap.d.ts +8 -0
  164. package/dist/worker/observe/static/inspect-bootstrap.js +57 -0
  165. package/dist/worker/observe/static/inspect-workspace.js +54 -10
  166. package/dist/worker/observe/static/operator-chrome.css +23 -4
  167. package/dist/worker/observe/static/operator-chrome.js +7 -2
  168. package/dist/worker/observe/static/state.js +3 -1
  169. package/dist/worker/observe/static/styles.css +1108 -135
  170. package/dist/worker/observe/static/views/dag-inspector.js +1257 -59
  171. package/dist/worker/observe/static/views/dags.js +7 -5
  172. package/dist/worker/observe/static/views/session-timeline.js +210 -10
  173. package/dist/worker/outcomes/adapters.js +19 -0
  174. package/dist/worker/outcomes/types.js +1 -0
  175. package/dist/worker/pool/attempt-lease.js +97 -66
  176. package/dist/worker/pool/begin-attempt-with-lease.js +1 -0
  177. package/dist/worker/pool/reconcile.js +46 -1
  178. package/dist/worker/pool/run-store.js +2 -0
  179. package/dist/worker/pool/state-projection.js +2 -0
  180. package/dist/worker/task-spec/workflow-routing.js +8 -3
  181. package/dist/workflows/dag/artifact-bindings.js +149 -0
  182. package/dist/workflows/dag/artifact-revision-schema-registry.js +31 -0
  183. package/dist/workflows/dag/backend-test-case-coverage-analysis.js +162 -8
  184. package/dist/workflows/dag/backend-test-pytest-collection.js +70 -2
  185. package/dist/workflows/dag/backend-test-result-contract.js +4 -0
  186. package/dist/workflows/dag/backend-test-scenario-param.js +339 -53
  187. package/dist/workflows/dag/backend-test-writer-completeness.js +11 -0
  188. package/dist/workflows/dag/budget-enforcement.js +10 -0
  189. package/dist/workflows/dag/context-receipt.js +305 -0
  190. package/dist/workflows/dag/context-transfer/context-bundle.js +423 -0
  191. package/dist/workflows/dag/context-transfer/operator-actions.js +61 -0
  192. package/dist/workflows/dag/context-transfer/renderers.js +93 -0
  193. package/dist/workflows/dag/frontend-writer-rollback.js +32 -0
  194. package/dist/workflows/dag/init-hybrid.js +151 -4
  195. package/dist/workflows/dag/node-execution.js +112 -27
  196. package/dist/workflows/dag/path-safety.js +1 -0
  197. package/dist/workflows/dag/prompt.js +29 -4
  198. package/dist/workflows/dag/rerun-plan.js +555 -1
  199. package/dist/workflows/dag/rerun-run.js +601 -15
  200. package/dist/workflows/dag/runner.js +20 -1
  201. package/dist/workflows/dag/skill-snapshot.js +17 -0
  202. package/dist/workflows/dag/types.js +183 -7
  203. package/docs/architecture/runtime-boundaries.md +8 -7
  204. package/docs/architecture/worker-and-feature.md +1 -1
  205. package/docs/templates/agent-dag.schema.json +32 -0
  206. package/docs/templates/backend-test-dag.json +6 -5
  207. package/docs/templates/init-managed-agents.md +1 -1
  208. package/docs/templates/product-line/task.yaml +1 -1
  209. package/package.json +5 -2
  210. package/skills/loop-agent/references/command-reference.md +21 -1
  211. package/dist/worker/console/static/assets/channel-amxUpk7o.js +0 -1
  212. package/dist/worker/console/static/assets/classDiagram-JCYQIIEL-bejwBVIz.js +0 -1
  213. package/dist/worker/console/static/assets/classDiagram-v2-OCEON4UE-bejwBVIz.js +0 -1
  214. package/dist/worker/console/static/assets/index-BHhUOTri.css +0 -1
  215. package/dist/worker/console/static/assets/index-DqJbO3-p.js +0 -407
  216. package/dist/worker/console/static/assets/stateDiagram-v2-UEYNNEHI-BvFKEtm2.js +0 -1
  217. package/dist/worker/console/static/assets/swimlanesDiagram-ULZ7WXOC-DIB2eVg-.js +0 -8
  218. /package/dist/{worker → infrastructure}/console/repo-fingerprint.js +0 -0
@@ -1,4 +1,7 @@
1
- :root {
1
+ html:has(body[data-shell="observe-console"]),
2
+ body[data-shell="observe-console"],
3
+ .inspect-workspace-root {
4
+ color-scheme: light;
2
5
  --canvas: #f7f7f4;
3
6
  --canvas-soft: #fafaf7;
4
7
  --surface: #ffffff;
@@ -38,14 +41,14 @@
38
41
  --transition-base: 220ms ease;
39
42
  --shadow-panel: 0 1px 2px rgb(38 37 30 / 4%), 0 8px 24px rgb(38 37 30 / 3%);
40
43
  --shadow-soft: 0 10px 30px rgb(38 37 30 / 6%);
41
- color-scheme: light;
42
44
  }
43
45
 
44
- * {
46
+ body[data-shell="observe-console"] *,
47
+ .inspect-workspace-root * {
45
48
  box-sizing: border-box;
46
49
  }
47
50
 
48
- html {
51
+ html:has(body[data-shell="observe-console"]) {
49
52
  background:
50
53
  radial-gradient(
51
54
  1200px 480px at 8% -10%,
@@ -62,7 +65,7 @@ html {
62
65
  scroll-behavior: smooth;
63
66
  }
64
67
 
65
- body {
68
+ body[data-shell="observe-console"] {
66
69
  min-width: 320px;
67
70
  margin: 0;
68
71
  min-height: 100vh;
@@ -70,35 +73,58 @@ body {
70
73
  color: var(--ink);
71
74
  /* Keep system-ui first for shell contract tests; Chinese fonts follow. */
72
75
  font-family:
73
- system-ui, -apple-system, "Segoe UI", "PingFang SC", "Hiragino Sans GB",
74
- "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;
75
84
  font-size: 14px;
76
85
  line-height: 1.5;
77
86
  }
78
87
 
79
- button,
80
- input,
81
- select,
82
- textarea {
88
+ body[data-shell="observe-console"] button,
89
+ body[data-shell="observe-console"] input,
90
+ body[data-shell="observe-console"] select,
91
+ body[data-shell="observe-console"] textarea,
92
+ .inspect-workspace-root button,
93
+ .inspect-workspace-root input,
94
+ .inspect-workspace-root select,
95
+ .inspect-workspace-root textarea {
83
96
  font: inherit;
84
97
  }
85
98
 
86
- a {
99
+ body[data-shell="observe-console"] a,
100
+ .inspect-workspace-root a {
87
101
  color: inherit;
88
102
  }
89
103
 
90
- code,
91
- pre,
92
- .output-block,
93
- .dag-node-label,
94
- .dag-node-meta,
95
- .dag-node-status,
96
- .dag-node-table td:nth-child(2),
97
- td:first-child,
98
- .meta-item dd,
99
- .kpi-value,
100
- .risk-total,
101
- .process-timeline-time {
104
+ body[data-shell="observe-console"] code,
105
+ body[data-shell="observe-console"] pre,
106
+ body[data-shell="observe-console"] .output-block,
107
+ body[data-shell="observe-console"] .dag-node-label,
108
+ body[data-shell="observe-console"] .dag-node-meta,
109
+ body[data-shell="observe-console"] .dag-node-status,
110
+ body[data-shell="observe-console"] .dag-node-table td:nth-child(2),
111
+ body[data-shell="observe-console"] td:first-child,
112
+ body[data-shell="observe-console"] .meta-item dd,
113
+ body[data-shell="observe-console"] .kpi-value,
114
+ body[data-shell="observe-console"] .risk-total,
115
+ body[data-shell="observe-console"] .process-timeline-time,
116
+ .inspect-workspace-root code,
117
+ .inspect-workspace-root pre,
118
+ .inspect-workspace-root .output-block,
119
+ .inspect-workspace-root .dag-node-label,
120
+ .inspect-workspace-root .dag-node-meta,
121
+ .inspect-workspace-root .dag-node-status,
122
+ .inspect-workspace-root .dag-node-table td:nth-child(2),
123
+ .inspect-workspace-root td:first-child,
124
+ .inspect-workspace-root .meta-item dd,
125
+ .inspect-workspace-root .kpi-value,
126
+ .inspect-workspace-root .risk-total,
127
+ .inspect-workspace-root .process-timeline-time {
102
128
  font-family: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;
103
129
  }
104
130
 
@@ -125,6 +151,30 @@ td:first-child,
125
151
  padding: var(--space-5) 0 56px;
126
152
  }
127
153
 
154
+ .inspect-workspace-root {
155
+ position: relative;
156
+ min-height: 100%;
157
+ color: var(--ink);
158
+ font-family:
159
+ system-ui, -apple-system, "Segoe UI", "PingFang SC", "Hiragino Sans GB",
160
+ "Noto Sans SC", BlinkMacSystemFont, sans-serif;
161
+ font-size: 14px;
162
+ line-height: 1.5;
163
+ }
164
+
165
+ .inspect-workspace-root .dag-inspector {
166
+ top: 8px;
167
+ right: 8px;
168
+ bottom: 8px;
169
+ width: min(var(--dag-inspector-width, 50%), calc(100% - 16px));
170
+ }
171
+
172
+ .inspect-workspace-root #app {
173
+ width: 100%;
174
+ margin: 0;
175
+ padding: var(--space-4) var(--space-5) var(--space-6);
176
+ }
177
+
128
178
  .breadcrumb {
129
179
  display: flex;
130
180
  min-height: 16px;
@@ -257,7 +307,8 @@ td:first-child,
257
307
  color: var(--body);
258
308
  }
259
309
 
260
- .panel {
310
+ body[data-shell="observe-console"] .panel,
311
+ .inspect-workspace-root .panel {
261
312
  min-width: 0;
262
313
  background: color-mix(in srgb, var(--surface) 96%, transparent);
263
314
  border: 1px solid var(--hairline);
@@ -288,7 +339,8 @@ td:first-child,
288
339
  }
289
340
 
290
341
  .section-heading,
291
- .panel h3 {
342
+ body[data-shell="observe-console"] .panel h3,
343
+ .inspect-workspace-root .panel h3 {
292
344
  margin: 0 0 var(--space-4);
293
345
  color: var(--ink);
294
346
  font-size: 14px;
@@ -948,10 +1000,9 @@ td:first-child,
948
1000
  }
949
1001
  .feature-decision-row {
950
1002
  display: grid;
951
- grid-template-columns: minmax(120px, 0.9fr) minmax(88px, 0.55fr) minmax(
952
- 0,
953
- 1.6fr
954
- ) auto;
1003
+ grid-template-columns:
1004
+ minmax(120px, 0.9fr) minmax(88px, 0.55fr) minmax(0, 1.6fr)
1005
+ auto;
955
1006
  align-items: center;
956
1007
  gap: var(--space-3);
957
1008
  padding: 12px 14px;
@@ -1245,12 +1296,14 @@ body.is-resizing-dag-graph {
1245
1296
  color: var(--body);
1246
1297
  cursor: pointer;
1247
1298
  }
1248
- .dag-inspector-close:hover,
1299
+ .dag-inspector-close:hover:not(:disabled),
1249
1300
  .dag-inspector-close:focus-visible {
1250
1301
  border-color: var(--orange);
1251
1302
  color: var(--orange-active);
1252
1303
  background: var(--orange-soft);
1253
1304
  outline: none;
1305
+ box-shadow: none;
1306
+ transform: none;
1254
1307
  }
1255
1308
  .dag-inspector-tabs {
1256
1309
  display: flex;
@@ -1261,13 +1314,17 @@ body.is-resizing-dag-graph {
1261
1314
  border: 1px solid var(--hairline);
1262
1315
  border-radius: var(--radius-pill);
1263
1316
  background: var(--surface);
1264
- width: fit-content;
1317
+ width: 100%;
1265
1318
  max-width: 100%;
1266
- flex-wrap: wrap;
1319
+ flex-wrap: nowrap;
1320
+ overflow-x: auto;
1321
+ overscroll-behavior-x: contain;
1322
+ scrollbar-width: thin;
1267
1323
  }
1268
1324
  .dag-inspector-tab {
1325
+ flex: 0 0 auto;
1269
1326
  min-height: 30px;
1270
- padding: 0 12px;
1327
+ padding: 0 8px;
1271
1328
  border: 1px solid transparent;
1272
1329
  border-radius: var(--radius-pill);
1273
1330
  background: transparent;
@@ -1276,15 +1333,21 @@ body.is-resizing-dag-graph {
1276
1333
  font-weight: 700;
1277
1334
  cursor: pointer;
1278
1335
  }
1279
- .dag-inspector-tab:hover,
1336
+ .dag-inspector-tab:hover:not(:disabled),
1280
1337
  .dag-inspector-tab:focus-visible {
1281
1338
  color: var(--ink);
1339
+ background: transparent;
1340
+ border-color: transparent;
1282
1341
  outline: none;
1342
+ box-shadow: none;
1283
1343
  }
1284
- .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 {
1285
1347
  border-color: transparent;
1286
1348
  background: var(--ink);
1287
1349
  color: #fff;
1350
+ box-shadow: none;
1288
1351
  }
1289
1352
  .dag-inspector-content {
1290
1353
  min-height: 0;
@@ -1810,6 +1873,15 @@ body.is-resizing-dag-graph {
1810
1873
  color: var(--muted);
1811
1874
  font-size: 11px;
1812
1875
  }
1876
+ .process-timeline-export-bar {
1877
+ display: flex;
1878
+ justify-content: flex-end;
1879
+ padding: 2px 0 var(--space-2);
1880
+ }
1881
+ .process-timeline-export-bar .btn {
1882
+ font-size: 11px;
1883
+ padding: 3px 10px;
1884
+ }
1813
1885
  .process-timeline {
1814
1886
  display: grid;
1815
1887
  gap: 0;
@@ -1892,9 +1964,15 @@ body.is-resizing-dag-graph {
1892
1964
  .process-timeline-toolbar {
1893
1965
  display: flex;
1894
1966
  flex-wrap: wrap;
1967
+ align-items: center;
1895
1968
  gap: 8px;
1896
1969
  margin-bottom: var(--space-2);
1897
1970
  }
1971
+ .process-timeline-filter-group {
1972
+ display: inline-flex;
1973
+ flex-wrap: wrap;
1974
+ gap: 4px;
1975
+ }
1898
1976
  .process-timeline-toggle {
1899
1977
  min-height: 28px;
1900
1978
  padding: 0 10px;
@@ -2240,6 +2318,152 @@ body.is-resizing-dag-graph {
2240
2318
  color: var(--danger, #b42318);
2241
2319
  font-size: 13px;
2242
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
+ }
2243
2467
  .spec-evidence-summary {
2244
2468
  margin: var(--space-2) 0 0;
2245
2469
  color: var(--body);
@@ -2526,7 +2750,8 @@ body.is-resizing-dag-graph {
2526
2750
  flex-wrap: wrap;
2527
2751
  gap: 6px;
2528
2752
  }
2529
- .muted {
2753
+ body[data-shell="observe-console"] .muted,
2754
+ .inspect-workspace-root .muted {
2530
2755
  color: var(--muted);
2531
2756
  }
2532
2757
 
@@ -2746,6 +2971,12 @@ body.is-resizing-dag-graph {
2746
2971
  bottom: 12px;
2747
2972
  width: calc(100vw - 24px);
2748
2973
  }
2974
+ .inspect-workspace-root .dag-inspector {
2975
+ width: calc(100% - 16px);
2976
+ top: 8px;
2977
+ right: 8px;
2978
+ bottom: 8px;
2979
+ }
2749
2980
  .dag-inspector-resize-handle {
2750
2981
  display: none;
2751
2982
  }
@@ -3582,9 +3813,6 @@ button.copy-command:focus-visible {
3582
3813
  flex-direction: column;
3583
3814
  min-height: 0;
3584
3815
  }
3585
- #dag-inspector-panel-prompt-restart:has(.prompt-restart-panel.is-readonly) {
3586
- overflow: hidden;
3587
- }
3588
3816
  .prompt-restart-panel,
3589
3817
  .prompt-restart-box {
3590
3818
  display: flex;
@@ -3654,119 +3882,832 @@ button.copy-command:focus-visible {
3654
3882
  font-size: 12px;
3655
3883
  line-height: 1.5;
3656
3884
  }
3657
- .prompt-restart-field {
3885
+
3886
+ .dag-inspector-content[data-inspector-tab="prompt-restart"] {
3658
3887
  display: flex;
3659
3888
  flex-direction: column;
3660
- gap: 6px;
3661
- min-width: 0;
3889
+ gap: 14px;
3890
+ background: color-mix(in srgb, var(--canvas-soft) 72%, var(--surface));
3662
3891
  }
3663
- .prompt-restart-field.is-hidden,
3664
- .prompt-restart-prompt-card.is-hidden {
3665
- display: none;
3892
+ .dag-action-page-intro,
3893
+ .dag-action-card,
3894
+ .dag-action-export-zone {
3895
+ flex: 0 0 auto;
3666
3896
  }
3667
- .prompt-restart-label {
3668
- color: var(--ink);
3669
- font-size: 12px;
3670
- font-weight: 700;
3671
- 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;
3672
3903
  }
3673
- .prompt-restart-hint {
3904
+ .dag-action-page-intro h4,
3905
+ .dag-action-page-intro p {
3674
3906
  margin: 0;
3675
- color: var(--muted);
3676
- font-size: 12px;
3677
- line-height: 1.45;
3678
3907
  }
3679
- .prompt-restart-candidate-select {
3680
- display: block;
3681
- width: 100%;
3682
- min-width: 0;
3908
+ .dag-action-page-intro h4 {
3909
+ margin-top: 2px;
3910
+ font-size: 19px;
3911
+ line-height: 1.25;
3683
3912
  }
3684
- .prompt-restart-candidate-select .custom-select-trigger {
3685
- width: 100%;
3913
+ .dag-action-page-intro p {
3914
+ margin-top: 5px;
3915
+ color: var(--body);
3916
+ font-size: 12px;
3686
3917
  }
3687
- .prompt-restart-candidate-select .custom-select-menu {
3688
- 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;
3689
3925
  }
3690
- .prompt-restart-mode-switch {
3691
- display: flex;
3692
- width: fit-content;
3693
- max-width: 100%;
3694
- gap: 4px;
3695
- padding: 4px;
3926
+ .dag-action-node-state {
3927
+ flex: 0 0 auto;
3928
+ padding: 4px 8px;
3696
3929
  border: 1px solid var(--hairline);
3697
3930
  border-radius: var(--radius-pill);
3698
3931
  background: var(--surface);
3699
- }
3700
- #dag-inspector-panel-prompt-restart button.prompt-restart-mode-option,
3701
- .prompt-restart-mode-option {
3702
- appearance: none;
3703
- display: inline-flex;
3704
- align-items: center;
3705
- justify-content: center;
3706
- flex: 0 0 auto;
3707
- width: auto;
3708
- min-height: 30px;
3709
- height: 30px;
3710
- padding: 0 12px;
3711
- border: 1px solid transparent;
3712
- border-radius: var(--radius-pill);
3713
- background: transparent;
3714
3932
  color: var(--muted);
3715
- font-size: 12px;
3716
- font-weight: 700;
3717
- line-height: 1;
3718
- letter-spacing: 0;
3719
- white-space: nowrap;
3720
- box-shadow: none;
3721
- transform: none;
3722
- cursor: pointer;
3723
- }
3724
- #dag-inspector-panel-prompt-restart button.prompt-restart-mode-option:hover,
3725
- #dag-inspector-panel-prompt-restart button.prompt-restart-mode-option:focus-visible,
3726
- .prompt-restart-mode-option:hover,
3727
- .prompt-restart-mode-option:focus-visible {
3728
- color: var(--ink);
3729
- background: var(--surface-muted);
3730
- border-color: transparent;
3731
- outline: none;
3732
- box-shadow: none;
3733
- transform: none;
3734
- }
3735
- #dag-inspector-panel-prompt-restart button.prompt-restart-mode-option.is-selected,
3736
- .prompt-restart-mode-option.is-selected {
3737
- background: var(--ink);
3738
- color: #fff;
3739
- 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;
3740
3938
  }
3741
- .prompt-restart-prompt-card {
3742
- display: flex;
3743
- flex-direction: column;
3744
- min-width: 0;
3939
+ .dag-action-card {
3745
3940
  overflow: hidden;
3746
3941
  border: 1px solid var(--hairline);
3747
- border-radius: var(--radius-lg);
3942
+ border-radius: 13px;
3748
3943
  background: var(--surface);
3944
+ box-shadow: 0 4px 14px rgb(38 37 30 / 4%);
3749
3945
  }
3750
- .prompt-restart-prompt-head {
3751
- display: flex;
3752
- align-items: flex-start;
3753
- justify-content: space-between;
3754
- gap: var(--space-3);
3755
- 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;
3756
3952
  border-bottom: 1px solid var(--hairline);
3757
- background: var(--canvas-soft);
3953
+ background: color-mix(in srgb, var(--canvas-soft) 68%, var(--surface));
3758
3954
  }
3759
- .prompt-restart-prompt-titles {
3760
- display: flex;
3761
- flex-wrap: wrap;
3762
- align-items: center;
3763
- gap: 6px 8px;
3764
- 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;
3765
3965
  }
3766
- .prompt-restart-prompt-title {
3767
- color: var(--ink);
3768
- font-size: 13px;
3769
- font-weight: 700;
3966
+ .dag-action-card-copy h4,
3967
+ .dag-action-card-copy p {
3968
+ margin: 0;
3969
+ }
3970
+ .dag-action-card-copy h4 {
3971
+ margin-top: 2px;
3972
+ font-size: 14px;
3973
+ line-height: 1.35;
3974
+ }
3975
+ .dag-action-card-copy p {
3976
+ margin-top: 4px;
3977
+ color: var(--body);
3978
+ font-size: 11px;
3979
+ line-height: 1.5;
3980
+ }
3981
+ .dag-action-card-body {
3982
+ display: grid;
3983
+ gap: 12px;
3984
+ padding: 14px 15px;
3985
+ }
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;
3770
4711
  line-height: 1.3;
3771
4712
  }
3772
4713
  .prompt-restart-prompt-badge {
@@ -3783,9 +4724,32 @@ button.copy-command:focus-visible {
3783
4724
  font-size: 11px;
3784
4725
  line-height: 1.3;
3785
4726
  }
3786
- .prompt-restart-copy-icon {
4727
+ .prompt-restart-prompt-head > :first-child {
4728
+ min-width: 0;
4729
+ overflow-wrap: anywhere;
4730
+ }
4731
+ .prompt-restart-copy-button {
3787
4732
  flex: 0 0 auto;
3788
- margin-top: 1px;
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);
3789
4753
  }
3790
4754
  .prompt-restart-prompt-actions {
3791
4755
  display: flex;
@@ -3824,9 +4788,13 @@ button.copy-command:focus-visible {
3824
4788
  display: none;
3825
4789
  }
3826
4790
  .prompt-restart-readonly {
4791
+ box-sizing: border-box;
4792
+ width: 100%;
4793
+ min-width: 0;
4794
+ max-width: 100%;
3827
4795
  margin: 0;
3828
4796
  padding: 14px 16px;
3829
- overflow: auto;
4797
+ overflow-y: auto;
3830
4798
  background: var(--canvas-soft);
3831
4799
  color: var(--ink);
3832
4800
  font-family: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;
@@ -3834,6 +4802,8 @@ button.copy-command:focus-visible {
3834
4802
  line-height: 1.65;
3835
4803
  white-space: pre-wrap;
3836
4804
  overflow-wrap: anywhere;
4805
+ overflow-x: hidden;
4806
+ word-break: break-word;
3837
4807
  tab-size: 2;
3838
4808
  }
3839
4809
  .prompt-restart-panel.is-readonly .prompt-restart-readonly {
@@ -3846,6 +4816,8 @@ button.copy-command:focus-visible {
3846
4816
  }
3847
4817
  .prompt-restart-textarea {
3848
4818
  width: 100%;
4819
+ min-width: 0;
4820
+ max-width: 100%;
3849
4821
  min-height: 8rem;
3850
4822
  resize: vertical;
3851
4823
  box-sizing: border-box;
@@ -3859,7 +4831,8 @@ button.copy-command:focus-visible {
3859
4831
  line-height: 1.65;
3860
4832
  white-space: pre-wrap;
3861
4833
  overflow-wrap: anywhere;
3862
- overflow-x: auto;
4834
+ word-break: break-word;
4835
+ overflow-x: hidden;
3863
4836
  }
3864
4837
  .prompt-restart-textarea-work {
3865
4838
  min-height: 10rem;