@tea-agent/loop-agent 0.42.0-next.14 → 0.42.0-next.15

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 (92) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/build-stamp.json +3 -3
  3. package/dist/executors/dag-pi-executor.js +617 -94
  4. package/dist/executors/shell-executor.js +4 -0
  5. package/dist/worker/console/chat/pi-runtime.js +45 -2
  6. package/dist/worker/console/chat/resource-loader.js +4 -1
  7. package/dist/worker/console/chat/routes.js +8 -0
  8. package/dist/worker/console/chat/subagents/agent-tool.js +62 -0
  9. package/dist/worker/console/chat/subagents/explore-agent.js +169 -0
  10. package/dist/worker/console/chat/subagents/index.js +5 -0
  11. package/dist/worker/console/chat/subagents/orchestrator.js +273 -0
  12. package/dist/worker/console/chat/subagents/tool-policy.js +53 -0
  13. package/dist/worker/console/chat/subagents/types.js +13 -0
  14. package/dist/worker/console/chat/tool-preview.js +10 -0
  15. package/dist/worker/console/chat/tools.js +11 -1
  16. package/dist/worker/console/interview/tools.js +1 -0
  17. package/dist/worker/console/static/assets/{abnfDiagram-N423BO3Z-BGMbAdAG.js → abnfDiagram-N423BO3Z-CgXb0EVO.js} +1 -1
  18. package/dist/worker/console/static/assets/{arc-CJu1LND8.js → arc-DN59MZqN.js} +1 -1
  19. package/dist/worker/console/static/assets/{architectureDiagram-T3A2C74G-BmJh9gMQ.js → architectureDiagram-T3A2C74G-BUk3sWpn.js} +1 -1
  20. package/dist/worker/console/static/assets/{blockDiagram-VBNYF7ZC-BWjaX3ZF.js → blockDiagram-VBNYF7ZC-IH-cPBFE.js} +1 -1
  21. package/dist/worker/console/static/assets/{c4Diagram-5PPSVZJV-CLEOAxLB.js → c4Diagram-5PPSVZJV-BJWf1nGo.js} +1 -1
  22. package/dist/worker/console/static/assets/channel-i1DjpDIw.js +1 -0
  23. package/dist/worker/console/static/assets/{chunk-2GRJ4B5K-CydnyQUX.js → chunk-2GRJ4B5K-BCPb5H0y.js} +1 -1
  24. package/dist/worker/console/static/assets/{chunk-2Q5K7J3B-tjJ1IoZ1.js → chunk-2Q5K7J3B-Cfs3jeW2.js} +1 -1
  25. package/dist/worker/console/static/assets/{chunk-5RXB4S5H-DR358Phd.js → chunk-5RXB4S5H-BhQI1B_T.js} +1 -1
  26. package/dist/worker/console/static/assets/{chunk-5VM5RSS4-B-LuWFZD.js → chunk-5VM5RSS4-Cc_m4gyV.js} +1 -1
  27. package/dist/worker/console/static/assets/{chunk-6Q2QTUOP-FG53fA6v.js → chunk-6Q2QTUOP-JPqDS3IV.js} +1 -1
  28. package/dist/worker/console/static/assets/{chunk-GF5L2VYU-Bkt-w8SZ.js → chunk-GF5L2VYU-AeGX6EAg.js} +1 -1
  29. package/dist/worker/console/static/assets/{chunk-JWPE2WC7-WxHo0z2I.js → chunk-JWPE2WC7-pEyTjekV.js} +1 -1
  30. package/dist/worker/console/static/assets/{chunk-KBJHAD2P-CqHrBJhp.js → chunk-KBJHAD2P-Bi5UopKd.js} +1 -1
  31. package/dist/worker/console/static/assets/{chunk-RYQCIY6F-D4MVae_f.js → chunk-RYQCIY6F-FkGFJxgQ.js} +1 -1
  32. package/dist/worker/console/static/assets/{chunk-XXDRQBXY-CamBh0Ll.js → chunk-XXDRQBXY-D-7LGrV2.js} +1 -1
  33. package/dist/worker/console/static/assets/classDiagram-JCYQIIEL-DgDRdE1V.js +1 -0
  34. package/dist/worker/console/static/assets/classDiagram-v2-OCEON4UE-DgDRdE1V.js +1 -0
  35. package/dist/worker/console/static/assets/{cose-bilkent-JH36ORCC-C3qheCuW.js → cose-bilkent-JH36ORCC-CCEDNDaX.js} +1 -1
  36. package/dist/worker/console/static/assets/{cynefin-VYW2F7L2-DQlWfkS7.js → cynefin-VYW2F7L2-DDd-t7fm.js} +1 -1
  37. package/dist/worker/console/static/assets/{cynefinDiagram-MW4NZA55-BAxa9rFb.js → cynefinDiagram-MW4NZA55-LWe4Ikzr.js} +1 -1
  38. package/dist/worker/console/static/assets/{dagre-VZM6K2ZE-YM09nLJw.js → dagre-VZM6K2ZE-BBCZScc-.js} +1 -1
  39. package/dist/worker/console/static/assets/{diagram-7IWD3JNH-I4W9EJj2.js → diagram-7IWD3JNH-B6liRVig.js} +1 -1
  40. package/dist/worker/console/static/assets/{diagram-B4RE2ZJO-DH8eJ8Ff.js → diagram-B4RE2ZJO-DO_hIrpW.js} +1 -1
  41. package/dist/worker/console/static/assets/{diagram-LBJQPF4R-D0D0ntDW.js → diagram-LBJQPF4R-dmCy93uR.js} +1 -1
  42. package/dist/worker/console/static/assets/{diagram-Q27KOJAE-BIISKq1s.js → diagram-Q27KOJAE-D6mFTIxP.js} +1 -1
  43. package/dist/worker/console/static/assets/{diagram-UB23O5K3--xyAWj0w.js → diagram-UB23O5K3-DCteVUfY.js} +1 -1
  44. package/dist/worker/console/static/assets/{ebnfDiagram-BXEA7PRR-B3sYXLJ4.js → ebnfDiagram-BXEA7PRR-DTv530VK.js} +1 -1
  45. package/dist/worker/console/static/assets/{erDiagram-JOGREHBK-zRSYWhJP.js → erDiagram-JOGREHBK-DCXDMxCr.js} +1 -1
  46. package/dist/worker/console/static/assets/{flowDiagram-UKHOOZJN-BUYlie03.js → flowDiagram-UKHOOZJN-BwEBLOJh.js} +1 -1
  47. package/dist/worker/console/static/assets/{ganttDiagram-PKOTCBZU-DP4kzzrM.js → ganttDiagram-PKOTCBZU-Ck-Vymjm.js} +1 -1
  48. package/dist/worker/console/static/assets/{gitGraphDiagram-DS77QQ5N-CAPoUxTF.js → gitGraphDiagram-DS77QQ5N-Hqs6X_3L.js} +1 -1
  49. package/dist/worker/console/static/assets/{index-CWhTyxvc.js → index-BmMi-Bve.js} +71 -71
  50. package/dist/worker/console/static/assets/{infoDiagram-6WML65LV-BXPfjekV.js → infoDiagram-6WML65LV-Cjc6M9eg.js} +1 -1
  51. package/dist/worker/console/static/assets/{ishikawaDiagram-WSZJBQD7-aOI3pV6t.js → ishikawaDiagram-WSZJBQD7-CPchYZMl.js} +1 -1
  52. package/dist/worker/console/static/assets/{journeyDiagram-NVQOT4AX-DAPZuvi4.js → journeyDiagram-NVQOT4AX-BABdJNNC.js} +1 -1
  53. package/dist/worker/console/static/assets/{kanban-definition-27J2QSJJ-atwDzL3C.js → kanban-definition-27J2QSJJ-1oXhbM4j.js} +1 -1
  54. package/dist/worker/console/static/assets/{linear-D5E09qji.js → linear-PTmQ9LkV.js} +1 -1
  55. package/dist/worker/console/static/assets/{mermaid.core-CE4idY-s.js → mermaid.core-B6Lxil0V.js} +5 -5
  56. package/dist/worker/console/static/assets/{mindmap-definition-FAOFIHXS-CbZxtPca.js → mindmap-definition-FAOFIHXS-BUqjNGEw.js} +1 -1
  57. package/dist/worker/console/static/assets/{pegDiagram-VL7TDLO6-De-FYEte.js → pegDiagram-VL7TDLO6-8D1N-orJ.js} +1 -1
  58. package/dist/worker/console/static/assets/{pieDiagram-7S7Q4E2Y-Bs0USobz.js → pieDiagram-7S7Q4E2Y-BlPMN9d9.js} +1 -1
  59. package/dist/worker/console/static/assets/{quadrantDiagram-CIZ2JOQS-Bq3ZrGCJ.js → quadrantDiagram-CIZ2JOQS-BIL5YDes.js} +1 -1
  60. package/dist/worker/console/static/assets/{railroadDiagram-AXF67PYL-Bk8ojyIj.js → railroadDiagram-AXF67PYL-Dqmil3ie.js} +1 -1
  61. package/dist/worker/console/static/assets/{requirementDiagram-LRYGKXZP-CGhoyws1.js → requirementDiagram-LRYGKXZP-C_-Dp4mH.js} +1 -1
  62. package/dist/worker/console/static/assets/{sankeyDiagram-W5VNT64P-DmVSQs3b.js → sankeyDiagram-W5VNT64P-C0s5-bQS.js} +1 -1
  63. package/dist/worker/console/static/assets/{sequenceDiagram-SI44F4Z6-C80h1u0Q.js → sequenceDiagram-SI44F4Z6-DiVCHPfi.js} +1 -1
  64. package/dist/worker/console/static/assets/{sizeCapture-X5ZJPWSS-CcbksQVZ.js → sizeCapture-X5ZJPWSS-CxQ9WVvx.js} +1 -1
  65. package/dist/worker/console/static/assets/{stateDiagram-OKZ733FA-CFTTTQKj.js → stateDiagram-OKZ733FA-D9mFHA-Y.js} +1 -1
  66. package/dist/worker/console/static/assets/stateDiagram-v2-UEYNNEHI-BqXQxfFC.js +1 -0
  67. package/dist/worker/console/static/assets/{swimlanes-SLNWSIFB-Cw7Jr7Tg.js → swimlanes-SLNWSIFB-DDnC5l-M.js} +2 -2
  68. package/dist/worker/console/static/assets/swimlanesDiagram-ULZ7WXOC-CXwWNRJl.js +8 -0
  69. package/dist/worker/console/static/assets/{timeline-definition-Z64GVDOM-CVcdTVa5.js → timeline-definition-Z64GVDOM-C8QySPC-.js} +1 -1
  70. package/dist/worker/console/static/assets/{vennDiagram-T6HMQDX7-BpLbmWp9.js → vennDiagram-T6HMQDX7-BeYdDiz6.js} +1 -1
  71. package/dist/worker/console/static/assets/{wardleyDiagram-T6FBY63Y-6PXfbwj-.js → wardleyDiagram-T6FBY63Y-D8hjFWLH.js} +1 -1
  72. package/dist/worker/console/static/assets/{xychartDiagram-ELKLHX3M-Bjkcz4ih.js → xychartDiagram-ELKLHX3M-ClqG_JGK.js} +1 -1
  73. package/dist/worker/console/static/index.html +1 -1
  74. package/dist/worker/console/static-src/operator-chat/tools-catalog.js +21 -2
  75. package/dist/workflows/dag/frontend-contract-facts.js +130 -0
  76. package/dist/workflows/dag/frontend-design-policy.js +99 -14
  77. package/dist/workflows/dag/frontend-implementation-contract.js +56 -8
  78. package/dist/workflows/dag/frontend-plan-render.js +13 -2
  79. package/dist/workflows/dag/frontend-shadow-dual-write.js +1 -0
  80. package/dist/workflows/dag/frontend-typed-event-store.js +3 -0
  81. package/dist/workflows/dag/init-hybrid.js +7 -3
  82. package/dist/workflows/dag/node-execution.js +54 -16
  83. package/docs/operations/README.md +1 -0
  84. package/docs/templates/frontend-implementation-contract.schema.json +34 -2
  85. package/package.json +2 -3
  86. package/skills/frontend-plan/SKILL.md +8 -0
  87. package/skills/frontend-plan/references/decision-contract.md +26 -3
  88. package/dist/worker/console/static/assets/channel-DOsaUk1k.js +0 -1
  89. package/dist/worker/console/static/assets/classDiagram-JCYQIIEL-D4-D49vY.js +0 -1
  90. package/dist/worker/console/static/assets/classDiagram-v2-OCEON4UE-D4-D49vY.js +0 -1
  91. package/dist/worker/console/static/assets/stateDiagram-v2-UEYNNEHI-C4YCesmi.js +0 -1
  92. package/dist/worker/console/static/assets/swimlanesDiagram-ULZ7WXOC-lN2U_DLl.js +0 -8
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tea-agent/loop-agent",
3
- "version": "0.42.0-next.14",
3
+ "version": "0.42.0-next.15",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "loop-agent": "bin/loop-agent.js",
@@ -107,6 +107,5 @@
107
107
  "typescript": "^5.9.3",
108
108
  "vite": "^7.0.0",
109
109
  "vitest": "^4.1.11"
110
- },
111
- "packageManager": "pnpm@10.33.0+sha512.10568bb4a6afb58c9eb3630da90cc9516417abebd3fabbe6739f0ae795728da1491e9db5a544c76ad8eb7570f5c4bb3d6c637b2cb41bfdcdb47fa823c8649319"
110
+ }
112
111
  }
@@ -21,6 +21,14 @@ requirement coverage, component/styling choices, applicable states and interacti
21
21
  data/Mock strategy, deviations, and dependency policy. Process a bounded requirement
22
22
  slice and record facts immediately rather than reasoning over the whole task first.
23
23
 
24
+ UX vocabulary is global, not per-requirement: commit `record_state_registry`
25
+ (one stable behavior-domain name per state/interaction) before any
26
+ `record_state_flow`, bind UI states to the contract's declared authoritative ids,
27
+ and let one component choice cover many ids via `covers`. `reuse-existing` must
28
+ cite `evidencePath` of an existing file; greenfield is `decision=new`.
29
+ Bind every file in the Contract-owned `requiredDeliverables` inventory. It records
30
+ explicit source obligations, not every path mentioned by a requirement.
31
+
24
32
  The runtime owns protected skeleton fields, path/command validation, materialization,
25
33
  and final schema checks. Finish with exactly one `finalize_plan`; return no Markdown
26
34
  narrative. Record a genuine evidence gap when frozen facts are insufficient.
@@ -36,12 +36,29 @@ the task's declared scope. Capabilities the task source lists as non-goals (e.g.
36
36
  responsive/mobile layout, animations) must not be promised here, and themes or
37
37
  CSS conventions must not be claimed without a Scout-confirmed repository fact.
38
38
 
39
+ ## UX vocabulary (registry first)
40
+
41
+ - Record `record_state_registry` BEFORE any `record_state_flow`: one compact
42
+ global vocabulary of UI-state and interaction names. Coverage may slice by
43
+ requirement; UX must not — never one name per requirement number and never a
44
+ rename of an already-recorded concept (kebab-case behavior-domain names, e.g.
45
+ `planner-task-edit`, `focus-queue-move`).
46
+ - UI states use the contract's declared authoritative ids (`declaredUiStates`
47
+ in the plan input) when the source declares a state table.
48
+ - Retry slices see `committedUx` in the plan input: reuse those exact names.
49
+
39
50
  ## Global decisions
40
51
 
41
52
  Keep route/component placement, Mock/data strategy, and dependency/deviation policy
42
53
  as explicit global decisions rather than duplicating them across each requirement.
43
54
  Use only frozen command labels and Scout-confirmed paths.
44
55
 
56
+ Component choices: ONE choice may cover many UI states/interactions explicitly via
57
+ `covers` — never one row per interaction. `decision=reuse-existing` REQUIRES
58
+ `evidencePath` naming the existing repo file that proves the reuse (the runtime
59
+ verifies the file exists); a path that does not exist yet is greenfield and must
60
+ use `decision=new`.
61
+
45
62
  For Mock/API, keep the real request path enabled by default. Select only a strategy
46
63
  allowed by the frozen task capability. Active Mock requires deterministic Mock-backed
47
64
  verification and production-default-off activation. `not-needed` requires positive
@@ -54,6 +71,12 @@ widen the write set.
54
71
  ## Runtime-owned fields and terminal
55
72
 
56
73
  The runtime owns `schemaVersion`, `sourceBinding`, risk, canonical target files,
57
- aliases, command allowlisting, path containment, and final validation. Submit only
58
- editable decision facts, then call `finalize_plan` exactly once. The deterministic
59
- design policy materializes the canonical implementation contract.
74
+ `requiredDeliverables`, aliases, command allowlisting, path containment, and final
75
+ validation. Submit only editable decision facts, then call `finalize_plan` exactly
76
+ once. The deterministic design policy materializes the canonical implementation
77
+ contract: every file in the Contract's explicit source-bound delivery inventory
78
+ must be planned (`requiredDeliverables` gate). Permissions, prohibitions, examples
79
+ and read-only references do not create delivery obligations. Plan receives this
80
+ inventory as `requiredDeliverables`; it cannot add, remove or reinterpret it.
81
+ Missing files and UX name collisions are reported by finalize_plan before commit
82
+ and checked again by the policy shell.
@@ -1 +0,0 @@
1
- import{ag as o,ah as n}from"./mermaid.core-CE4idY-s.js";const t=(a,r)=>o.lang.round(n.parse(a)[r]);export{t as c};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-GF5L2VYU-Bkt-w8SZ.js";import{_ as i}from"./mermaid.core-CE4idY-s.js";import"./chunk-5VM5RSS4-B-LuWFZD.js";import"./chunk-XXDRQBXY-CamBh0Ll.js";import"./chunk-KBJHAD2P-CqHrBJhp.js";import"./chunk-2GRJ4B5K-CydnyQUX.js";import"./index-CWhTyxvc.js";var n={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{n as diagram};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-GF5L2VYU-Bkt-w8SZ.js";import{_ as i}from"./mermaid.core-CE4idY-s.js";import"./chunk-5VM5RSS4-B-LuWFZD.js";import"./chunk-XXDRQBXY-CamBh0Ll.js";import"./chunk-KBJHAD2P-CqHrBJhp.js";import"./chunk-2GRJ4B5K-CydnyQUX.js";import"./index-CWhTyxvc.js";var n={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{n as diagram};
@@ -1 +0,0 @@
1
- import{s as r,b as e,a,S as s}from"./chunk-5RXB4S5H-DR358Phd.js";import{_ as i}from"./mermaid.core-CE4idY-s.js";import"./chunk-XXDRQBXY-CamBh0Ll.js";import"./chunk-KBJHAD2P-CqHrBJhp.js";import"./chunk-2GRJ4B5K-CydnyQUX.js";import"./index-CWhTyxvc.js";var u={parser:a,get db(){return new s(2)},renderer:e,styles:r,init:i(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")};export{u as diagram};
@@ -1,8 +0,0 @@
1
- import{c as r,s as e}from"./flowDiagram-UKHOOZJN-BUYlie03.js";import{_ as a}from"./mermaid.core-CE4idY-s.js";import"./chunk-5VM5RSS4-B-LuWFZD.js";import"./chunk-XXDRQBXY-CamBh0Ll.js";import"./chunk-KBJHAD2P-CqHrBJhp.js";import"./chunk-2GRJ4B5K-CydnyQUX.js";import"./channel-DOsaUk1k.js";import"./index-CWhTyxvc.js";var o=a(t=>`${e(t)}
2
- .swimlane.cluster rect {
3
- stroke: ${t.clusterBorder} !important;
4
- }
5
- [data-look="neo"].cluster rect {
6
- filter: none;
7
- }
8
- `,"getStyles"),s=o,n=r({defaultLayout:"swimlane",styles:s});export{n as diagram};