@tea-agent/loop-agent 0.41.0 → 0.42.0-next.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 (162) hide show
  1. package/CHANGELOG.md +102 -14
  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/build-stamp.json +3 -3
  5. package/dist/cli/command-definitions.js +12 -0
  6. package/dist/cli/program.js +23 -1
  7. package/dist/commands/dag-artifact.js +284 -0
  8. package/dist/commands/dag-context.js +184 -0
  9. package/dist/commands/dag-rerun.js +206 -1
  10. package/dist/executors/dag-pi-executor.js +39 -12
  11. package/dist/executors/pi-sdk-executor.js +3 -0
  12. package/dist/{worker → infrastructure}/console/app-data.js +4 -0
  13. package/dist/infrastructure/console/artifact-revision-store.js +430 -0
  14. package/dist/infrastructure/console/context-export-store.js +160 -0
  15. package/dist/infrastructure/console/dir-lock.js +132 -0
  16. package/dist/{worker → infrastructure}/console/operation-store.js +28 -0
  17. package/dist/infrastructure/harness/artifact-store.js +10 -1
  18. package/dist/infrastructure/harness/atomic-write.js +12 -2
  19. package/dist/shared/context-transfer/artifact-revision.js +172 -0
  20. package/dist/shared/context-transfer.js +418 -0
  21. package/dist/shared/operator/capabilities.js +14 -0
  22. package/dist/shared/operator/safe-run-summary.js +1 -0
  23. package/dist/shared/path-safety.js +93 -0
  24. package/dist/shared/preview.js +28 -4
  25. package/dist/task/config-types.js +2 -1
  26. package/dist/task/task-demand-routing.js +3 -0
  27. package/dist/worker/console/chat/chat-event-store.js +2 -2
  28. package/dist/worker/console/chat/resource-preferences-store.js +1 -1
  29. package/dist/worker/console/chat/routes.js +1 -1
  30. package/dist/worker/console/chat/session-store.js +1 -1
  31. package/dist/worker/console/chat/user-questions.js +1 -1
  32. package/dist/worker/console/console-update-runtime.js +1 -1
  33. package/dist/worker/console/context-transfer-diagnostics.js +198 -0
  34. package/dist/worker/console/dag-confirmation.js +1 -1
  35. package/dist/worker/console/dag-execution-receipt.js +1 -1
  36. package/dist/worker/console/doctor.js +1 -1
  37. package/dist/worker/console/draft-store.js +1 -1
  38. package/dist/worker/console/human-gate-token.js +1 -1
  39. package/dist/worker/console/index.js +3 -3
  40. package/dist/worker/console/interview/assessment.js +1 -1
  41. package/dist/worker/console/interview/session.js +1 -1
  42. package/dist/worker/console/operation-runner.js +45 -4
  43. package/dist/worker/console/operation-sse.js +1 -1
  44. package/dist/worker/console/operation-wait.js +1 -1
  45. package/dist/worker/console/operator-actions.js +104 -3
  46. package/dist/worker/console/operator-surface-health.js +1 -1
  47. package/dist/worker/console/operator-user-error.js +169 -0
  48. package/dist/worker/console/pi-plugins.js +57 -0
  49. package/dist/worker/console/routes.js +637 -8
  50. package/dist/worker/console/security.js +35 -0
  51. package/dist/worker/console/server.js +6 -3
  52. package/dist/worker/console/static/assets/{abnfDiagram-N423BO3Z-DwVJxUxz.js → abnfDiagram-N423BO3Z-DZZ8m3PO.js} +1 -1
  53. package/dist/worker/console/static/assets/{arc-DqfCcXdu.js → arc-D6PvaVd-.js} +1 -1
  54. package/dist/worker/console/static/assets/{architectureDiagram-T3A2C74G-qMVtggRv.js → architectureDiagram-T3A2C74G-B_OTOiI8.js} +1 -1
  55. package/dist/worker/console/static/assets/{blockDiagram-VBNYF7ZC-ECrV38dh.js → blockDiagram-VBNYF7ZC-Bv6rqHBg.js} +1 -1
  56. package/dist/worker/console/static/assets/{c4Diagram-5PPSVZJV-DBaaLqQv.js → c4Diagram-5PPSVZJV-B8eHr0oz.js} +1 -1
  57. package/dist/worker/console/static/assets/channel-BU5gOilw.js +1 -0
  58. package/dist/worker/console/static/assets/{chunk-2GRJ4B5K-BvfNHkAz.js → chunk-2GRJ4B5K-DYwR0im2.js} +1 -1
  59. package/dist/worker/console/static/assets/{chunk-2Q5K7J3B-C5StiIbc.js → chunk-2Q5K7J3B-D2WPGqXt.js} +1 -1
  60. package/dist/worker/console/static/assets/{chunk-5RXB4S5H-HabGiJkS.js → chunk-5RXB4S5H-CQISJ_I7.js} +1 -1
  61. package/dist/worker/console/static/assets/{chunk-5VM5RSS4-BiTg127i.js → chunk-5VM5RSS4-C0o2Du1e.js} +1 -1
  62. package/dist/worker/console/static/assets/{chunk-6Q2QTUOP-CZsXBPuR.js → chunk-6Q2QTUOP-4f8kr-U7.js} +1 -1
  63. package/dist/worker/console/static/assets/{chunk-GF5L2VYU-D-r1MxLK.js → chunk-GF5L2VYU-D_OWvXzX.js} +1 -1
  64. package/dist/worker/console/static/assets/{chunk-JWPE2WC7-DQxb9plr.js → chunk-JWPE2WC7-CasdPz5X.js} +1 -1
  65. package/dist/worker/console/static/assets/{chunk-KBJHAD2P-DMndGvCT.js → chunk-KBJHAD2P-Cj8lRrla.js} +1 -1
  66. package/dist/worker/console/static/assets/{chunk-RYQCIY6F-ByL4BgOJ.js → chunk-RYQCIY6F-CUvD1FSd.js} +1 -1
  67. package/dist/worker/console/static/assets/{chunk-XXDRQBXY-BVe1b1gL.js → chunk-XXDRQBXY-CqLw_eqB.js} +1 -1
  68. package/dist/worker/console/static/assets/classDiagram-JCYQIIEL-DIzKJGHr.js +1 -0
  69. package/dist/worker/console/static/assets/classDiagram-v2-OCEON4UE-DIzKJGHr.js +1 -0
  70. package/dist/worker/console/static/assets/{cose-bilkent-JH36ORCC-BAyGzN8j.js → cose-bilkent-JH36ORCC-ku-WqJPx.js} +1 -1
  71. package/dist/worker/console/static/assets/{cynefin-VYW2F7L2-C5yVYU7E.js → cynefin-VYW2F7L2-Bq_PYDhl.js} +1 -1
  72. package/dist/worker/console/static/assets/{cynefinDiagram-MW4NZA55-x-MwsEm9.js → cynefinDiagram-MW4NZA55-BiGZV641.js} +1 -1
  73. package/dist/worker/console/static/assets/{dagre-VZM6K2ZE-CT5Tle5F.js → dagre-VZM6K2ZE-C4JRlglF.js} +1 -1
  74. package/dist/worker/console/static/assets/{diagram-7IWD3JNH-BARERhlS.js → diagram-7IWD3JNH-B0dNeWYG.js} +1 -1
  75. package/dist/worker/console/static/assets/{diagram-B4RE2ZJO-BwfUz0VM.js → diagram-B4RE2ZJO-Cj35YvYM.js} +1 -1
  76. package/dist/worker/console/static/assets/{diagram-LBJQPF4R-Mk4r2WvJ.js → diagram-LBJQPF4R-uzQoJ2-8.js} +1 -1
  77. package/dist/worker/console/static/assets/{diagram-Q27KOJAE-KUrxuBs0.js → diagram-Q27KOJAE-D1a-Buoz.js} +1 -1
  78. package/dist/worker/console/static/assets/{diagram-UB23O5K3-CjZOceZn.js → diagram-UB23O5K3-XjRrLRSs.js} +1 -1
  79. package/dist/worker/console/static/assets/{ebnfDiagram-BXEA7PRR-rnwUCiEI.js → ebnfDiagram-BXEA7PRR-Da_O24cW.js} +1 -1
  80. package/dist/worker/console/static/assets/{erDiagram-JOGREHBK-DM4j23FM.js → erDiagram-JOGREHBK-BLJ8jrYU.js} +1 -1
  81. package/dist/worker/console/static/assets/{flowDiagram-UKHOOZJN-DD5HdDEs.js → flowDiagram-UKHOOZJN-B9GrLjM0.js} +1 -1
  82. package/dist/worker/console/static/assets/{ganttDiagram-PKOTCBZU-CIAGSF47.js → ganttDiagram-PKOTCBZU-CeJ0TqiK.js} +1 -1
  83. package/dist/worker/console/static/assets/{gitGraphDiagram-DS77QQ5N-DbwFbVEL.js → gitGraphDiagram-DS77QQ5N-Bm2eNNFX.js} +1 -1
  84. package/dist/worker/console/static/assets/index-H9rFJiGL.css +1 -0
  85. package/dist/worker/console/static/assets/{index-Bih9w9h9.js → index-xwu9GxEc.js} +80 -80
  86. package/dist/worker/console/static/assets/{infoDiagram-6WML65LV-B-Pb0T66.js → infoDiagram-6WML65LV-DB26i3d8.js} +1 -1
  87. package/dist/worker/console/static/assets/{ishikawaDiagram-WSZJBQD7-B9Unk-YX.js → ishikawaDiagram-WSZJBQD7-BOGRyeZT.js} +1 -1
  88. package/dist/worker/console/static/assets/{journeyDiagram-NVQOT4AX-C2F3JkPt.js → journeyDiagram-NVQOT4AX-CZRoBO_6.js} +1 -1
  89. package/dist/worker/console/static/assets/{kanban-definition-27J2QSJJ-Bl8-Xcoz.js → kanban-definition-27J2QSJJ-qlWhJyoB.js} +1 -1
  90. package/dist/worker/console/static/assets/{linear-yK4uZmC5.js → linear-CfUiDDB3.js} +1 -1
  91. package/dist/worker/console/static/assets/{mermaid.core-Bpa6PmuE.js → mermaid.core-BQe6fpqj.js} +5 -5
  92. package/dist/worker/console/static/assets/{mindmap-definition-FAOFIHXS-BfGRoCSe.js → mindmap-definition-FAOFIHXS-zFzWHw64.js} +1 -1
  93. package/dist/worker/console/static/assets/{pegDiagram-VL7TDLO6-Bz6_HtST.js → pegDiagram-VL7TDLO6-DFGUqjZO.js} +1 -1
  94. package/dist/worker/console/static/assets/{pieDiagram-7S7Q4E2Y-i0Umbsby.js → pieDiagram-7S7Q4E2Y-BB5i0l8Z.js} +1 -1
  95. package/dist/worker/console/static/assets/{quadrantDiagram-CIZ2JOQS-DaVQBobe.js → quadrantDiagram-CIZ2JOQS-obbVZ_X5.js} +1 -1
  96. package/dist/worker/console/static/assets/{railroadDiagram-AXF67PYL-DMTGnSq7.js → railroadDiagram-AXF67PYL-BwdaNzc1.js} +1 -1
  97. package/dist/worker/console/static/assets/{requirementDiagram-LRYGKXZP-2ao_DaSq.js → requirementDiagram-LRYGKXZP-CkTJaugh.js} +1 -1
  98. package/dist/worker/console/static/assets/{sankeyDiagram-W5VNT64P-2SG1lTB9.js → sankeyDiagram-W5VNT64P-BwJ-hIgq.js} +1 -1
  99. package/dist/worker/console/static/assets/{sequenceDiagram-SI44F4Z6-BQYOLybR.js → sequenceDiagram-SI44F4Z6-BzSgmm7w.js} +1 -1
  100. package/dist/worker/console/static/assets/{sizeCapture-X5ZJPWSS-C8g3yjuI.js → sizeCapture-X5ZJPWSS-Bn3oj5Q1.js} +1 -1
  101. package/dist/worker/console/static/assets/{stateDiagram-OKZ733FA-q_F8nAQG.js → stateDiagram-OKZ733FA-dxhGtL8K.js} +1 -1
  102. package/dist/worker/console/static/assets/stateDiagram-v2-UEYNNEHI-Cld2qK9v.js +1 -0
  103. package/dist/worker/console/static/assets/{swimlanes-SLNWSIFB-8LrWpH2s.js → swimlanes-SLNWSIFB-BLpEInya.js} +2 -2
  104. package/dist/worker/console/static/assets/swimlanesDiagram-ULZ7WXOC-TIHpiT7w.js +8 -0
  105. package/dist/worker/console/static/assets/{timeline-definition-Z64GVDOM-BQoY3qzl.js → timeline-definition-Z64GVDOM-ChJGYcXy.js} +1 -1
  106. package/dist/worker/console/static/assets/{vennDiagram-T6HMQDX7-BDu1UjSp.js → vennDiagram-T6HMQDX7-DK-qjRer.js} +1 -1
  107. package/dist/worker/console/static/assets/{wardleyDiagram-T6FBY63Y-C48M7Y0a.js → wardleyDiagram-T6FBY63Y-3qeaWAg-.js} +1 -1
  108. package/dist/worker/console/static/assets/{xychartDiagram-ELKLHX3M-YU6FTl_F.js → xychartDiagram-ELKLHX3M-CootlyP9.js} +1 -1
  109. package/dist/worker/console/static/index.html +7 -2
  110. package/dist/worker/console/static-src/app/useOperatorActions.js +3 -2
  111. package/dist/worker/console/static-src/shell/console-update-reload.js +25 -0
  112. package/dist/worker/console/workspace-context.js +28 -2
  113. package/dist/worker/console/workspace-registry.js +2 -2
  114. package/dist/worker/continuation/worker-continuation.js +278 -0
  115. package/dist/worker/observe/health.js +1 -1
  116. package/dist/worker/observe/node-transparency.js +572 -0
  117. package/dist/worker/observe/routes.js +51 -1
  118. package/dist/worker/observe/static/api.js +69 -5
  119. package/dist/worker/observe/static/dag-context-reason-labels.d.ts +9 -0
  120. package/dist/worker/observe/static/dag-context-reason-labels.js +120 -0
  121. package/dist/worker/observe/static/state.js +3 -1
  122. package/dist/worker/observe/static/styles.css +1037 -126
  123. package/dist/worker/observe/static/views/dag-inspector.js +1215 -58
  124. package/dist/worker/observe/static/views/session-timeline.js +75 -10
  125. package/dist/worker/outcomes/adapters.js +19 -0
  126. package/dist/worker/outcomes/types.js +1 -0
  127. package/dist/worker/pool/attempt-lease.js +97 -66
  128. package/dist/worker/pool/begin-attempt-with-lease.js +1 -0
  129. package/dist/worker/pool/reconcile.js +46 -1
  130. package/dist/worker/pool/run-store.js +2 -0
  131. package/dist/worker/pool/state-projection.js +2 -0
  132. package/dist/worker/task-spec/workflow-routing.js +8 -3
  133. package/dist/workflows/dag/artifact-bindings.js +149 -0
  134. package/dist/workflows/dag/artifact-revision-schema-registry.js +31 -0
  135. package/dist/workflows/dag/budget-enforcement.js +10 -0
  136. package/dist/workflows/dag/context-receipt.js +305 -0
  137. package/dist/workflows/dag/context-transfer/context-bundle.js +423 -0
  138. package/dist/workflows/dag/context-transfer/operator-actions.js +61 -0
  139. package/dist/workflows/dag/context-transfer/renderers.js +93 -0
  140. package/dist/workflows/dag/frontend-writer-rollback.js +32 -0
  141. package/dist/workflows/dag/init-hybrid.js +146 -0
  142. package/dist/workflows/dag/node-execution.js +112 -27
  143. package/dist/workflows/dag/path-safety.js +1 -0
  144. package/dist/workflows/dag/prompt.js +29 -4
  145. package/dist/workflows/dag/rerun-plan.js +555 -1
  146. package/dist/workflows/dag/rerun-run.js +601 -15
  147. package/dist/workflows/dag/runner.js +20 -1
  148. package/dist/workflows/dag/skill-snapshot.js +17 -0
  149. package/dist/workflows/dag/types.js +183 -7
  150. package/docs/architecture/runtime-boundaries.md +6 -6
  151. package/docs/architecture/worker-and-feature.md +1 -1
  152. package/docs/templates/agent-dag.schema.json +32 -0
  153. package/docs/templates/product-line/task.yaml +1 -1
  154. package/package.json +3 -1
  155. package/skills/loop-agent/references/command-reference.md +6 -0
  156. package/dist/worker/console/static/assets/channel-CL1NRAmS.js +0 -1
  157. package/dist/worker/console/static/assets/classDiagram-JCYQIIEL-PBGzzjZA.js +0 -1
  158. package/dist/worker/console/static/assets/classDiagram-v2-OCEON4UE-PBGzzjZA.js +0 -1
  159. package/dist/worker/console/static/assets/index-BfleX-qj.css +0 -1
  160. package/dist/worker/console/static/assets/stateDiagram-v2-UEYNNEHI-DrxGBDJu.js +0 -1
  161. package/dist/worker/console/static/assets/swimlanesDiagram-ULZ7WXOC-BhpDxzAf.js +0 -8
  162. /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;