@tea-agent/loop-agent 0.39.0-beta.7 → 0.39.0-beta.9

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 (164) hide show
  1. package/AGENTS.md +1 -1
  2. package/CHANGELOG.md +23 -5
  3. package/README.md +2 -2
  4. package/dist/application/task-lifecycle/advance.js +12 -0
  5. package/dist/build-stamp.json +3 -3
  6. package/dist/cli/command-definitions.js +7 -0
  7. package/dist/cli/program.js +5 -0
  8. package/dist/cli/update/runtime-activity.js +1 -29
  9. package/dist/commands/dag-follow-up.js +138 -0
  10. package/dist/commands/dag-rerun.js +1 -1
  11. package/dist/commands/init.js +26 -0
  12. package/dist/executors/dag-pi-executor.js +326 -8
  13. package/dist/executors/pi-read-budget-policy.js +166 -0
  14. package/dist/executors/shell-executor.js +26 -30
  15. package/dist/shared/dag-prompt-override.js +4 -5
  16. package/dist/shared/update/npm-client.js +33 -11
  17. package/dist/task/config-types.js +15 -0
  18. package/dist/task/contract/apply.js +11 -1
  19. package/dist/task/contract/constants.js +2 -0
  20. package/dist/task/contract/hash.js +3 -0
  21. package/dist/task/contract/observe.js +25 -4
  22. package/dist/task/contract/paths.js +2 -1
  23. package/dist/task/contract/project.js +15 -1
  24. package/dist/task/contract/schema.js +2 -0
  25. package/dist/task/contract/transaction.js +12 -0
  26. package/dist/task/frontend-project-capability.js +123 -4
  27. package/dist/task/source-prepare/completeness.js +188 -0
  28. package/dist/task/source-prepare/fragment-inventory.js +477 -0
  29. package/dist/task/source-prepare/index.js +3 -0
  30. package/dist/task/source-prepare/ledger-reconciliation.js +127 -0
  31. package/dist/task/source-prepare/ledger-review.js +214 -0
  32. package/dist/task/source-prepare/ledger.js +545 -0
  33. package/dist/task/source-prepare/prepare.js +262 -1
  34. package/dist/task/source-prepare/semantic-intake.js +25 -5
  35. package/dist/task/source-prepare/source-fidelity-pi.js +384 -0
  36. package/dist/task/source-prepare/types.js +22 -0
  37. package/dist/worker/cli.js +12 -26
  38. package/dist/worker/console/console-handoff.js +82 -0
  39. package/dist/worker/console/console-update-and-init.js +115 -0
  40. package/dist/worker/console/console-update-runtime.js +84 -0
  41. package/dist/worker/console/draft-store.js +49 -0
  42. package/dist/worker/console/operation-store.js +1 -1
  43. package/dist/worker/console/operator-actions.js +129 -4
  44. package/dist/worker/console/operator-surface-health.js +1 -0
  45. package/dist/worker/console/prd-intake-bridge.js +13 -0
  46. package/dist/worker/console/routes.js +3 -0
  47. package/dist/worker/console/server.js +73 -5
  48. package/dist/worker/console/static/assets/{abnfDiagram-N423BO3Z-bPer1waP.js → abnfDiagram-N423BO3Z-D1-Z-BBa.js} +1 -1
  49. package/dist/worker/console/static/assets/{arc-BLdkwucW.js → arc-q8qAYm5m.js} +1 -1
  50. package/dist/worker/console/static/assets/{architectureDiagram-T3A2C74G-Bw4wo4I1.js → architectureDiagram-T3A2C74G-CAu4_lve.js} +1 -1
  51. package/dist/worker/console/static/assets/{blockDiagram-VBNYF7ZC-DUUkc0gr.js → blockDiagram-VBNYF7ZC-D5GhQvHm.js} +1 -1
  52. package/dist/worker/console/static/assets/{c4Diagram-5PPSVZJV-BC3O0nob.js → c4Diagram-5PPSVZJV-ClQjeLkO.js} +1 -1
  53. package/dist/worker/console/static/assets/channel-ClAuhSUL.js +1 -0
  54. package/dist/worker/console/static/assets/{chunk-2GRJ4B5K-Dd4g2nti.js → chunk-2GRJ4B5K-DLqWlFbo.js} +1 -1
  55. package/dist/worker/console/static/assets/{chunk-2Q5K7J3B-s2EDm7-n.js → chunk-2Q5K7J3B-DkRT_usL.js} +1 -1
  56. package/dist/worker/console/static/assets/{chunk-5RXB4S5H-GqtHM2yQ.js → chunk-5RXB4S5H-Cqp7Chi3.js} +1 -1
  57. package/dist/worker/console/static/assets/{chunk-5VM5RSS4-BzRFrN8j.js → chunk-5VM5RSS4-CedEdFB9.js} +1 -1
  58. package/dist/worker/console/static/assets/{chunk-6Q2QTUOP-Bw9nFjCJ.js → chunk-6Q2QTUOP-BHM8vP5x.js} +1 -1
  59. package/dist/worker/console/static/assets/{chunk-GF5L2VYU-B4n-03Qm.js → chunk-GF5L2VYU-D7EFr377.js} +1 -1
  60. package/dist/worker/console/static/assets/{chunk-JWPE2WC7-Dt75ZdBD.js → chunk-JWPE2WC7-DR38mTWV.js} +1 -1
  61. package/dist/worker/console/static/assets/{chunk-KBJHAD2P-B_afMhHB.js → chunk-KBJHAD2P-BFv2LsR3.js} +1 -1
  62. package/dist/worker/console/static/assets/{chunk-RYQCIY6F-Bd8Rqqg9.js → chunk-RYQCIY6F-BAvpJS5z.js} +1 -1
  63. package/dist/worker/console/static/assets/{chunk-XXDRQBXY-9boOMji4.js → chunk-XXDRQBXY-eKI9TO72.js} +1 -1
  64. package/dist/worker/console/static/assets/classDiagram-JCYQIIEL-cBgeCpVU.js +1 -0
  65. package/dist/worker/console/static/assets/classDiagram-v2-OCEON4UE-cBgeCpVU.js +1 -0
  66. package/dist/worker/console/static/assets/{cose-bilkent-JH36ORCC-BtCycfCc.js → cose-bilkent-JH36ORCC-BMJXpgo4.js} +1 -1
  67. package/dist/worker/console/static/assets/{cynefin-VYW2F7L2-eTOts9L1.js → cynefin-VYW2F7L2-CKJ2ofZx.js} +1 -1
  68. package/dist/worker/console/static/assets/{cynefinDiagram-MW4NZA55-Cibd2mjg.js → cynefinDiagram-MW4NZA55-CsKnsazm.js} +1 -1
  69. package/dist/worker/console/static/assets/{dagre-VZM6K2ZE-CDjDZtDV.js → dagre-VZM6K2ZE-DVQ46vIw.js} +1 -1
  70. package/dist/worker/console/static/assets/{diagram-7IWD3JNH-Btexn-JJ.js → diagram-7IWD3JNH-D_RuonYS.js} +1 -1
  71. package/dist/worker/console/static/assets/{diagram-B4RE2ZJO-Cyl8sdpM.js → diagram-B4RE2ZJO-D2Mt0nMu.js} +1 -1
  72. package/dist/worker/console/static/assets/{diagram-LBJQPF4R-Ev-83E1t.js → diagram-LBJQPF4R-DjBDuye6.js} +1 -1
  73. package/dist/worker/console/static/assets/{diagram-Q27KOJAE-41LqE0Mc.js → diagram-Q27KOJAE-8VZkqpE_.js} +1 -1
  74. package/dist/worker/console/static/assets/{diagram-UB23O5K3-BC39T5R3.js → diagram-UB23O5K3-D0izYxia.js} +1 -1
  75. package/dist/worker/console/static/assets/{ebnfDiagram-BXEA7PRR-DzcNRuri.js → ebnfDiagram-BXEA7PRR-CncG2I95.js} +1 -1
  76. package/dist/worker/console/static/assets/{erDiagram-JOGREHBK-B5Frvvnz.js → erDiagram-JOGREHBK-DiBUUXR8.js} +1 -1
  77. package/dist/worker/console/static/assets/{flowDiagram-UKHOOZJN-BapxROIM.js → flowDiagram-UKHOOZJN-Dtc0fArb.js} +1 -1
  78. package/dist/worker/console/static/assets/{ganttDiagram-PKOTCBZU-Cd4d4wQ0.js → ganttDiagram-PKOTCBZU-BPNFP5OZ.js} +1 -1
  79. package/dist/worker/console/static/assets/{gitGraphDiagram-DS77QQ5N-CrL6buFW.js → gitGraphDiagram-DS77QQ5N-CsgpxEEd.js} +1 -1
  80. package/dist/worker/console/static/assets/{index-DBh_x_Ek.js → index-Bai8Z25q.js} +81 -81
  81. package/dist/worker/console/static/assets/index-CH0Tr5hY.css +1 -0
  82. package/dist/worker/console/static/assets/{infoDiagram-6WML65LV-BrSiNxyd.js → infoDiagram-6WML65LV-kHGxkJUS.js} +1 -1
  83. package/dist/worker/console/static/assets/{ishikawaDiagram-WSZJBQD7-gvlvY-n9.js → ishikawaDiagram-WSZJBQD7-CbLe9wrr.js} +1 -1
  84. package/dist/worker/console/static/assets/{journeyDiagram-NVQOT4AX-D-YaPzRQ.js → journeyDiagram-NVQOT4AX-BOkwxAcP.js} +1 -1
  85. package/dist/worker/console/static/assets/{kanban-definition-27J2QSJJ-BsmDv9E_.js → kanban-definition-27J2QSJJ-BHYQ2rDu.js} +1 -1
  86. package/dist/worker/console/static/assets/{linear-UWaoDN3h.js → linear-CHT4ujob.js} +1 -1
  87. package/dist/worker/console/static/assets/{mermaid.core-BlvpGVG8.js → mermaid.core-yL8sfqnY.js} +5 -5
  88. package/dist/worker/console/static/assets/{mindmap-definition-FAOFIHXS-CUCIP5CP.js → mindmap-definition-FAOFIHXS-DZx1coV-.js} +1 -1
  89. package/dist/worker/console/static/assets/{pegDiagram-VL7TDLO6-CB1aQUAK.js → pegDiagram-VL7TDLO6-DStWRCI8.js} +1 -1
  90. package/dist/worker/console/static/assets/{pieDiagram-7S7Q4E2Y-BwehHxhf.js → pieDiagram-7S7Q4E2Y-DSKZkwzK.js} +1 -1
  91. package/dist/worker/console/static/assets/{quadrantDiagram-CIZ2JOQS-CFz30APB.js → quadrantDiagram-CIZ2JOQS-CmoEGOuW.js} +1 -1
  92. package/dist/worker/console/static/assets/{railroadDiagram-AXF67PYL-BwNmw1i6.js → railroadDiagram-AXF67PYL-BLqzhKyq.js} +1 -1
  93. package/dist/worker/console/static/assets/{requirementDiagram-LRYGKXZP-jg-tPXlI.js → requirementDiagram-LRYGKXZP-gbHeUabM.js} +1 -1
  94. package/dist/worker/console/static/assets/{sankeyDiagram-W5VNT64P-BlyReDKl.js → sankeyDiagram-W5VNT64P-CaKkBCKO.js} +1 -1
  95. package/dist/worker/console/static/assets/{sequenceDiagram-SI44F4Z6-DBUzW1f3.js → sequenceDiagram-SI44F4Z6-PUbi3Upu.js} +1 -1
  96. package/dist/worker/console/static/assets/{sizeCapture-X5ZJPWSS-BYcI2RAr.js → sizeCapture-X5ZJPWSS-dm7S9Qfe.js} +1 -1
  97. package/dist/worker/console/static/assets/{stateDiagram-OKZ733FA-D7AiyJdo.js → stateDiagram-OKZ733FA-C7WSzv4p.js} +1 -1
  98. package/dist/worker/console/static/assets/stateDiagram-v2-UEYNNEHI-sQDv5AP3.js +1 -0
  99. package/dist/worker/console/static/assets/{swimlanes-SLNWSIFB-BHGt7Kkv.js → swimlanes-SLNWSIFB-CBKCiQwd.js} +2 -2
  100. package/dist/worker/console/static/assets/swimlanesDiagram-ULZ7WXOC-BXwsmcPs.js +8 -0
  101. package/dist/worker/console/static/assets/{timeline-definition-Z64GVDOM-OPjooWcX.js → timeline-definition-Z64GVDOM-CvnUlylk.js} +1 -1
  102. package/dist/worker/console/static/assets/{vennDiagram-T6HMQDX7-ggsWDvrO.js → vennDiagram-T6HMQDX7-xM0StY1O.js} +1 -1
  103. package/dist/worker/console/static/assets/{wardleyDiagram-T6FBY63Y-DjNe-BjZ.js → wardleyDiagram-T6FBY63Y-CWtJMagy.js} +1 -1
  104. package/dist/worker/console/static/assets/{xychartDiagram-ELKLHX3M-Byp63Hei.js → xychartDiagram-ELKLHX3M-BO_-MeK8.js} +1 -1
  105. package/dist/worker/console/static/index.html +2 -2
  106. package/dist/worker/console/static-src/app/console-types.js +40 -1
  107. package/dist/worker/console/static-src/app/useOperatorActions.js +5 -0
  108. package/dist/worker/console/static-src/app/useTaskWizard.js +73 -1
  109. package/dist/worker/observability/init-runtime-activity.js +26 -0
  110. package/dist/worker/observe/node-input.js +88 -2
  111. package/dist/worker/observe/routes.js +188 -0
  112. package/dist/worker/observe/static/api.js +3 -3
  113. package/dist/worker/observe/static/format.js +37 -0
  114. package/dist/worker/observe/static/index.html +5 -0
  115. package/dist/worker/observe/static/prompt-restart-candidates.d.ts +18 -0
  116. package/dist/worker/observe/static/prompt-restart-candidates.js +36 -0
  117. package/dist/worker/observe/static/state.js +2 -2
  118. package/dist/worker/observe/static/styles.css +331 -35
  119. package/dist/worker/observe/static/views/dag-inspector.js +509 -78
  120. package/dist/worker/observe/static/views/task.js +55 -0
  121. package/dist/workflows/dag/frontend-design-policy.js +19 -9
  122. package/dist/workflows/dag/frontend-implementation-contract.js +117 -50
  123. package/dist/workflows/dag/frontend-plan-render.js +27 -0
  124. package/dist/workflows/dag/frontend-prewrite-gate.js +45 -1
  125. package/dist/workflows/dag/frontend-recovery-controller.js +1 -0
  126. package/dist/workflows/dag/frontend-review-context.js +102 -15
  127. package/dist/workflows/dag/frontend-review-findings.js +42 -10
  128. package/dist/workflows/dag/frontend-shadow-dual-write.js +36 -2
  129. package/dist/workflows/dag/frontend-source-fidelity-ledger.js +108 -0
  130. package/dist/workflows/dag/frontend-worktree-diff.js +154 -0
  131. package/dist/workflows/dag/frontend-writer-admission.js +12 -0
  132. package/dist/workflows/dag/init-hybrid.js +297 -65
  133. package/dist/workflows/dag/interrupt-request.js +7 -0
  134. package/dist/workflows/dag/node-execution.js +111 -1
  135. package/dist/workflows/dag/prompt.js +34 -1
  136. package/dist/workflows/dag/recovery-lease.js +80 -0
  137. package/dist/workflows/dag/rerun-feedback.js +31 -8
  138. package/dist/workflows/dag/rerun-run.js +23 -0
  139. package/dist/workflows/dag/rerun-task.js +29 -0
  140. package/dist/workflows/dag/retry-policy.js +34 -9
  141. package/dist/workflows/dag/runner.js +83 -16
  142. package/dist/workflows/dag/types.js +67 -11
  143. package/docs/README.md +1 -0
  144. package/docs/architecture/evolution.md +45 -0
  145. package/docs/init-surface.manifest.json +4 -0
  146. package/docs/templates/README.md +2 -1
  147. package/docs/templates/frontend-implementation-contract.schema.json +684 -24
  148. package/docs/templates/spec-registry.schema.json +45 -0
  149. package/harness.json +3 -3
  150. package/package.json +1 -1
  151. package/skills/frontend-bounded-implement/SKILL.md +8 -14
  152. package/skills/frontend-design-review/SKILL.md +20 -41
  153. package/skills/frontend-implementation/SKILL.md +2 -3
  154. package/skills/frontend-implementation/references/design-spec.md +4 -3
  155. package/skills/frontend-implementation/references/node-contracts.md +4 -3
  156. package/skills/frontend-review/SKILL.md +22 -14
  157. package/skills/frontend-review/references/review-findings.md +6 -7
  158. package/skills/loop-agent/references/hybrid-dag.md +7 -0
  159. package/dist/worker/console/static/assets/channel-AbFtVnFm.js +0 -1
  160. package/dist/worker/console/static/assets/classDiagram-JCYQIIEL-n1yf2Jcv.js +0 -1
  161. package/dist/worker/console/static/assets/classDiagram-v2-OCEON4UE-n1yf2Jcv.js +0 -1
  162. package/dist/worker/console/static/assets/index-DwOGauxU.css +0 -1
  163. package/dist/worker/console/static/assets/stateDiagram-v2-UEYNNEHI-BBSH5c8m.js +0 -1
  164. package/dist/worker/console/static/assets/swimlanesDiagram-ULZ7WXOC-D2F7-U4H.js +0 -8
@@ -3570,71 +3570,367 @@ button.copy-command:focus-visible {
3570
3570
  }
3571
3571
 
3572
3572
  /* Experimental prompt-override rerun tab (only rendered with the mutation token). */
3573
+ #dag-inspector-panel-prompt-restart {
3574
+ display: flex;
3575
+ flex-direction: column;
3576
+ }
3577
+ .prompt-restart-panel,
3573
3578
  .prompt-restart-box {
3574
3579
  display: flex;
3575
3580
  flex-direction: column;
3576
- gap: 0.75rem;
3577
- padding: 0.5rem 0.25rem;
3581
+ gap: var(--space-3);
3582
+ min-width: 0;
3583
+ flex: 1;
3584
+ }
3585
+ .prompt-restart-toolbar {
3586
+ display: grid;
3587
+ grid-template-columns: minmax(0, 1fr) auto;
3588
+ gap: var(--space-3);
3589
+ align-items: start;
3590
+ }
3591
+ .prompt-restart-mode-field {
3592
+ min-width: 12.5rem;
3593
+ }
3594
+ .prompt-restart-banner {
3595
+ display: flex;
3596
+ flex-wrap: wrap;
3597
+ align-items: center;
3598
+ gap: 6px 10px;
3599
+ padding: 10px 12px;
3600
+ border: 1px solid var(--hairline);
3601
+ border-radius: var(--radius-lg);
3602
+ background: var(--canvas-soft);
3603
+ }
3604
+ .prompt-restart-banner.is-edit {
3605
+ border-color: color-mix(in srgb, var(--orange) 28%, var(--hairline));
3606
+ background: color-mix(in srgb, var(--orange-soft) 55%, var(--surface));
3607
+ }
3608
+ .prompt-restart-banner-kicker {
3609
+ width: fit-content;
3610
+ padding: 2px 8px;
3611
+ border-radius: var(--radius-pill);
3612
+ background: var(--surface-muted);
3613
+ color: var(--muted);
3614
+ font-size: 11px;
3615
+ font-weight: 700;
3616
+ letter-spacing: 0.02em;
3617
+ }
3618
+ .prompt-restart-banner.is-edit .prompt-restart-banner-kicker {
3619
+ background: var(--orange-soft);
3620
+ color: var(--orange-active);
3621
+ }
3622
+ .prompt-restart-banner-title,
3623
+ .prompt-restart-banner-body {
3624
+ margin: 0;
3625
+ }
3626
+ .prompt-restart-banner-title {
3627
+ color: var(--ink);
3628
+ font-size: 13px;
3629
+ font-weight: 700;
3630
+ line-height: 1.35;
3631
+ }
3632
+ .prompt-restart-banner-body {
3633
+ flex-basis: 100%;
3634
+ color: var(--body);
3635
+ font-size: 12px;
3636
+ line-height: 1.5;
3578
3637
  }
3579
3638
  .prompt-restart-field {
3580
3639
  display: flex;
3581
3640
  flex-direction: column;
3582
- gap: 0.35rem;
3641
+ gap: 6px;
3642
+ min-width: 0;
3643
+ }
3644
+ .prompt-restart-field.is-hidden,
3645
+ .prompt-restart-prompt-card.is-hidden {
3646
+ display: none;
3647
+ }
3648
+ .prompt-restart-label {
3649
+ color: var(--ink);
3650
+ font-size: 12px;
3651
+ font-weight: 700;
3652
+ letter-spacing: 0.01em;
3653
+ }
3654
+ .prompt-restart-hint {
3655
+ margin: 0;
3656
+ color: var(--muted);
3657
+ font-size: 12px;
3658
+ line-height: 1.45;
3659
+ }
3660
+ .prompt-restart-candidate-select {
3661
+ display: block;
3662
+ width: 100%;
3663
+ min-width: 0;
3664
+ }
3665
+ .prompt-restart-candidate-select .custom-select-trigger {
3666
+ width: 100%;
3667
+ }
3668
+ .prompt-restart-candidate-select .custom-select-menu {
3669
+ z-index: 6;
3670
+ }
3671
+ .prompt-restart-mode-switch {
3672
+ display: flex;
3673
+ width: fit-content;
3674
+ max-width: 100%;
3675
+ gap: 4px;
3676
+ padding: 4px;
3677
+ border: 1px solid var(--hairline);
3678
+ border-radius: var(--radius-pill);
3679
+ background: var(--surface);
3680
+ }
3681
+ #dag-inspector-panel-prompt-restart button.prompt-restart-mode-option,
3682
+ .prompt-restart-mode-option {
3683
+ appearance: none;
3684
+ display: inline-flex;
3685
+ align-items: center;
3686
+ justify-content: center;
3687
+ flex: 0 0 auto;
3688
+ width: auto;
3689
+ min-height: 30px;
3690
+ height: 30px;
3691
+ padding: 0 12px;
3692
+ border: 1px solid transparent;
3693
+ border-radius: var(--radius-pill);
3694
+ background: transparent;
3695
+ color: var(--muted);
3696
+ font-size: 12px;
3697
+ font-weight: 700;
3698
+ line-height: 1;
3699
+ letter-spacing: 0;
3700
+ white-space: nowrap;
3701
+ box-shadow: none;
3702
+ transform: none;
3703
+ cursor: pointer;
3704
+ }
3705
+ #dag-inspector-panel-prompt-restart button.prompt-restart-mode-option:hover,
3706
+ #dag-inspector-panel-prompt-restart button.prompt-restart-mode-option:focus-visible,
3707
+ .prompt-restart-mode-option:hover,
3708
+ .prompt-restart-mode-option:focus-visible {
3709
+ color: var(--ink);
3710
+ background: var(--surface-muted);
3711
+ border-color: transparent;
3712
+ outline: none;
3713
+ box-shadow: none;
3714
+ transform: none;
3715
+ }
3716
+ #dag-inspector-panel-prompt-restart button.prompt-restart-mode-option.is-selected,
3717
+ .prompt-restart-mode-option.is-selected {
3718
+ background: var(--ink);
3719
+ color: #fff;
3720
+ border-color: transparent;
3721
+ }
3722
+ .prompt-restart-prompt-card {
3723
+ display: flex;
3724
+ flex-direction: column;
3725
+ min-width: 0;
3726
+ overflow: hidden;
3727
+ border: 1px solid var(--hairline);
3728
+ border-radius: var(--radius-lg);
3729
+ background: var(--surface);
3730
+ }
3731
+ .prompt-restart-prompt-head {
3732
+ display: flex;
3733
+ align-items: flex-start;
3734
+ justify-content: space-between;
3735
+ gap: var(--space-3);
3736
+ padding: 10px 12px;
3737
+ border-bottom: 1px solid var(--hairline);
3738
+ background: var(--canvas-soft);
3739
+ }
3740
+ .prompt-restart-prompt-titles {
3741
+ display: flex;
3742
+ flex-wrap: wrap;
3743
+ align-items: center;
3744
+ gap: 6px 8px;
3745
+ min-width: 0;
3746
+ }
3747
+ .prompt-restart-prompt-title {
3748
+ color: var(--ink);
3749
+ font-size: 13px;
3750
+ font-weight: 700;
3751
+ line-height: 1.3;
3752
+ }
3753
+ .prompt-restart-prompt-badge {
3754
+ padding: 2px 8px;
3755
+ border-radius: var(--radius-pill);
3756
+ background: var(--surface-muted);
3757
+ color: var(--muted);
3758
+ font-size: 11px;
3759
+ font-weight: 700;
3760
+ }
3761
+ .prompt-restart-prompt-meta {
3762
+ flex-basis: 100%;
3763
+ color: var(--muted);
3764
+ font-size: 11px;
3765
+ line-height: 1.3;
3766
+ }
3767
+ .prompt-restart-copy-icon {
3768
+ flex: 0 0 auto;
3769
+ margin-top: 1px;
3770
+ }
3771
+ .prompt-restart-prompt-actions {
3772
+ display: flex;
3773
+ align-items: center;
3774
+ gap: 6px;
3775
+ flex: 0 0 auto;
3776
+ }
3777
+ #dag-inspector-panel-prompt-restart button.prompt-restart-prompt-fold,
3778
+ .prompt-restart-prompt-fold {
3779
+ appearance: none;
3780
+ display: inline-flex;
3781
+ align-items: center;
3782
+ justify-content: center;
3783
+ min-height: 30px;
3784
+ height: 30px;
3785
+ padding: 0 10px;
3786
+ border: 1px solid var(--hairline);
3787
+ border-radius: var(--radius-pill);
3788
+ background: var(--surface);
3789
+ color: var(--body);
3790
+ font-size: 12px;
3791
+ font-weight: 700;
3792
+ line-height: 1;
3793
+ box-shadow: none;
3794
+ transform: none;
3795
+ cursor: pointer;
3796
+ }
3797
+ #dag-inspector-panel-prompt-restart button.prompt-restart-prompt-fold:hover,
3798
+ .prompt-restart-prompt-fold:hover {
3799
+ border-color: var(--hairline-strong);
3800
+ background: var(--surface-muted);
3801
+ color: var(--ink);
3802
+ transform: none;
3803
+ }
3804
+ .prompt-restart-prompt-card.is-collapsed .prompt-restart-readonly {
3805
+ display: none;
3806
+ }
3807
+ .prompt-restart-readonly {
3808
+ margin: 0;
3809
+ padding: 14px 16px;
3810
+ max-height: min(36vh, 18rem);
3811
+ overflow: auto;
3812
+ background: var(--canvas-soft);
3813
+ color: var(--ink);
3814
+ font-family: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;
3815
+ font-size: 12px;
3816
+ line-height: 1.65;
3817
+ white-space: pre-wrap;
3818
+ overflow-wrap: anywhere;
3819
+ tab-size: 2;
3583
3820
  }
3584
3821
  .prompt-restart-textarea {
3585
3822
  width: 100%;
3586
3823
  min-height: 8rem;
3587
3824
  resize: vertical;
3588
3825
  box-sizing: border-box;
3589
- font-family: var(--mono-font, ui-monospace, SFMono-Regular, Menlo, monospace);
3590
- font-size: 12.5px;
3591
- line-height: 1.5;
3592
- white-space: pre;
3593
- overflow-wrap: normal;
3826
+ padding: 12px 14px;
3827
+ border: 1px solid var(--hairline);
3828
+ border-radius: var(--radius-lg);
3829
+ background: var(--canvas-soft);
3830
+ color: var(--ink);
3831
+ font-family: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;
3832
+ font-size: 12px;
3833
+ line-height: 1.65;
3834
+ white-space: pre-wrap;
3835
+ overflow-wrap: anywhere;
3594
3836
  overflow-x: auto;
3595
3837
  }
3596
- .prompt-restart-actions {
3838
+ .prompt-restart-textarea-work {
3839
+ min-height: 10rem;
3840
+ }
3841
+ .prompt-restart-textarea:hover {
3842
+ border-color: var(--hairline-strong);
3843
+ }
3844
+ .prompt-restart-textarea:focus-visible {
3845
+ outline: 2px solid color-mix(in srgb, var(--orange) 55%, transparent);
3846
+ outline-offset: 1px;
3847
+ border-color: color-mix(in srgb, var(--orange) 35%, var(--hairline));
3848
+ }
3849
+ .prompt-restart-textarea-compact {
3850
+ min-height: 4.5rem;
3851
+ }
3852
+ .prompt-restart-actions,
3853
+ .prompt-restart-footer {
3597
3854
  display: flex;
3598
- gap: 0.5rem;
3855
+ flex-wrap: wrap;
3856
+ gap: var(--space-2);
3599
3857
  align-items: center;
3858
+ justify-content: flex-end;
3859
+ }
3860
+ .prompt-restart-footer {
3861
+ position: sticky;
3862
+ bottom: calc(-1 * var(--space-4));
3863
+ z-index: 2;
3864
+ margin-top: auto;
3865
+ padding: 10px 0 2px;
3866
+ border-top: 1px solid var(--hairline);
3867
+ background: var(--surface);
3868
+ }
3869
+ .prompt-restart-footer .prompt-restart-status {
3870
+ flex: 1 1 12rem;
3871
+ min-width: 0;
3872
+ margin-right: auto;
3600
3873
  }
3874
+ #dag-inspector-panel-prompt-restart button.prompt-restart-submit,
3601
3875
  .prompt-restart-submit {
3602
- padding: 0.35rem 0.9rem;
3603
- font-size: 13.5px;
3876
+ appearance: none;
3877
+ display: inline-flex;
3878
+ align-items: center;
3879
+ justify-content: center;
3880
+ min-height: 34px;
3881
+ height: 34px;
3882
+ padding: 0 16px;
3883
+ border: 1px solid var(--orange);
3884
+ border-radius: var(--radius-pill);
3885
+ background: var(--orange);
3886
+ color: #fff;
3887
+ font-size: 13px;
3888
+ font-weight: 700;
3889
+ line-height: 1;
3890
+ letter-spacing: 0.01em;
3891
+ box-shadow: none;
3892
+ transform: none;
3604
3893
  cursor: pointer;
3605
3894
  }
3895
+ #dag-inspector-panel-prompt-restart button.prompt-restart-submit:hover,
3896
+ #dag-inspector-panel-prompt-restart button.prompt-restart-submit:focus-visible,
3897
+ .prompt-restart-submit:hover,
3898
+ .prompt-restart-submit:focus-visible {
3899
+ background: var(--orange-active);
3900
+ border-color: var(--orange-active);
3901
+ color: #fff;
3902
+ outline: none;
3903
+ box-shadow: none;
3904
+ transform: none;
3905
+ }
3906
+ #dag-inspector-panel-prompt-restart button.prompt-restart-submit.is-secondary,
3907
+ .prompt-restart-submit.is-secondary {
3908
+ border-color: var(--hairline);
3909
+ background: var(--surface);
3910
+ color: var(--ink);
3911
+ }
3912
+ #dag-inspector-panel-prompt-restart button.prompt-restart-submit.is-secondary:hover,
3913
+ #dag-inspector-panel-prompt-restart button.prompt-restart-submit.is-secondary:focus-visible,
3914
+ .prompt-restart-submit.is-secondary:hover,
3915
+ .prompt-restart-submit.is-secondary:focus-visible {
3916
+ border-color: var(--orange);
3917
+ background: var(--orange-soft);
3918
+ color: var(--orange-active);
3919
+ }
3920
+ #dag-inspector-panel-prompt-restart button.prompt-restart-submit:disabled,
3606
3921
  .prompt-restart-submit:disabled {
3607
3922
  opacity: 0.55;
3608
3923
  cursor: wait;
3924
+ transform: none;
3609
3925
  }
3610
3926
  .prompt-restart-status {
3611
3927
  margin: 0;
3612
- font-size: 13px;
3613
3928
  min-height: 1.2em;
3929
+ color: var(--body);
3930
+ font-size: 13px;
3614
3931
  white-space: pre-wrap;
3615
3932
  word-break: break-word;
3616
3933
  }
3617
3934
  .prompt-restart-status.prompt-restart-error {
3618
- color: var(--red, #c0392b);
3619
- }
3620
- .prompt-restart-readonly {
3621
- margin: 0;
3622
- padding: 0.5rem 0.6rem;
3623
- font-family: var(--mono-font, ui-monospace, SFMono-Regular, Menlo, monospace);
3624
- font-size: 12.5px;
3625
- line-height: 1.5;
3626
- white-space: pre;
3627
- overflow: auto;
3628
- border: 1px solid var(--border-color, rgba(125, 125, 125, 0.35));
3629
- border-radius: 6px;
3630
- max-height: 60vh;
3631
- }
3632
- .prompt-restart-mode {
3633
- display: flex;
3634
- align-items: center;
3635
- gap: 0.5rem;
3636
- }
3637
- .prompt-restart-mode-select {
3638
- max-width: 100%;
3639
- font-size: 13px;
3935
+ color: var(--red);
3640
3936
  }