@tea-agent/loop-agent 0.42.0 → 0.43.0-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/CHANGELOG.md +34 -7
  2. package/dist/application/evaluation/budget.js +19 -1
  3. package/dist/build-stamp.json +3 -3
  4. package/dist/executors/dag-pi-executor.js +762 -252
  5. package/dist/executors/pi-executor.js +20 -1
  6. package/dist/executors/pi-sdk-executor.js +64 -1
  7. package/dist/executors/shell-executor.js +5 -2
  8. package/dist/shared/frontend-execution-policy.js +22 -0
  9. package/dist/task/config-types.js +4 -0
  10. package/dist/task/source-prepare/ledger-reconciliation.js +2 -2
  11. package/dist/task/source-prepare/ledger-review.js +6 -9
  12. package/dist/task/source-prepare/semantic-intake.js +16 -26
  13. package/dist/task/source-prepare/source-fidelity-pi.js +26 -7
  14. package/dist/worker/observe/node-transparency.js +81 -72
  15. package/dist/worker/observe/routes.js +20 -1
  16. package/dist/worker/observe/static/dag-inspector-humanize.js +3 -0
  17. package/dist/worker/observe/static/dom.js +20 -1
  18. package/dist/worker/observe/static/format-pool.d.ts +2 -0
  19. package/dist/worker/observe/static/format-pool.js +6 -0
  20. package/dist/worker/observe/static/format.js +7 -0
  21. package/dist/worker/observe/static/inspect-workspace.js +34 -7
  22. package/dist/worker/observe/static/inspector-submission.js +32 -0
  23. package/dist/worker/observe/static/kpi.js +1 -0
  24. package/dist/worker/observe/static/relations.js +2 -0
  25. package/dist/worker/observe/static/router.js +13 -0
  26. package/dist/worker/observe/static/run-processing.js +2 -0
  27. package/dist/worker/observe/static/shell-chrome.js +36 -3
  28. package/dist/worker/observe/static/state.js +35 -2
  29. package/dist/worker/observe/static/styles.css +260 -39
  30. package/dist/worker/observe/static/task-failure-labels.d.ts +4 -0
  31. package/dist/worker/observe/static/task-failure-labels.js +67 -0
  32. package/dist/worker/observe/static/task-history.js +12 -0
  33. package/dist/worker/observe/static/views/batch.js +6 -13
  34. package/dist/worker/observe/static/views/dag-graph.js +50 -3
  35. package/dist/worker/observe/static/views/dag-inspector.js +746 -265
  36. package/dist/worker/observe/static/views/dag-trajectory.js +3 -0
  37. package/dist/worker/observe/static/views/dag.d.ts +6 -0
  38. package/dist/worker/observe/static/views/dag.js +48 -10
  39. package/dist/worker/observe/static/views/dags.js +2 -0
  40. package/dist/worker/observe/static/views/dashboard.js +21 -12
  41. package/dist/worker/observe/static/views/failures.js +21 -11
  42. package/dist/worker/observe/static/views/feature.js +11 -29
  43. package/dist/worker/observe/static/views/pool.js +37 -28
  44. package/dist/worker/observe/static/views/run.js +48 -5
  45. package/dist/worker/observe/static/views/session-timeline.js +189 -240
  46. package/dist/worker/observe/static/views/task.js +81 -62
  47. package/dist/workflows/dag/budget-enforcement.js +53 -3
  48. package/dist/workflows/dag/frontend-durable-tools.js +193 -0
  49. package/dist/workflows/dag/frontend-execution-groups.js +24 -0
  50. package/dist/workflows/dag/frontend-implementation-contract.js +9 -0
  51. package/dist/workflows/dag/frontend-input-projection.js +76 -0
  52. package/dist/workflows/dag/frontend-plan-render.js +10 -3
  53. package/dist/workflows/dag/frontend-recovery-controller.js +7 -7
  54. package/dist/workflows/dag/frontend-recovery-lineage.js +13 -0
  55. package/dist/workflows/dag/frontend-recovery-run.js +4 -0
  56. package/dist/workflows/dag/frontend-review-scopes.js +117 -0
  57. package/dist/workflows/dag/frontend-session-budget.js +249 -0
  58. package/dist/workflows/dag/frontend-shadow-dual-write.js +20 -2
  59. package/dist/workflows/dag/frontend-test-execution-evidence.js +3 -2
  60. package/dist/workflows/dag/frontend-typed-event-store.js +11 -0
  61. package/dist/workflows/dag/init-hybrid.js +16 -10
  62. package/dist/workflows/dag/node-execution.js +32 -155
  63. package/dist/workflows/dag/prompt.js +4 -0
  64. package/dist/workflows/dag/rerun-plan.js +7 -1
  65. package/dist/workflows/dag/runner.js +26 -1
  66. package/dist/workflows/dag/types.js +6 -0
  67. package/docs/operations/README.md +1 -0
  68. package/docs/templates/frontend-design-contract.md +4 -4
  69. package/docs/templates/frontend-implementation-contract.schema.json +34 -2
  70. package/docs/templates/frontend-implementation-dag.json +5 -5
  71. package/package.json +1 -1
  72. package/skills/frontend-contract/SKILL.md +2 -1
  73. package/skills/frontend-contract/references/contract-protocol.md +19 -3
  74. package/skills/frontend-design-review/SKILL.md +12 -11
  75. package/skills/frontend-plan/SKILL.md +2 -2
  76. package/skills/frontend-plan/references/decision-contract.md +18 -5
  77. package/skills/frontend-review/SKILL.md +10 -11
  78. package/skills/frontend-scout/references/scout-evidence.md +4 -0
@@ -8,8 +8,8 @@
8
8
  source-fidelity ledger. Do not infer fragment IDs from prose.
9
9
  - Record observable outcomes, applicable UI states, runtime/environment constraints,
10
10
  non-goals, risks, and verification expectations without choosing implementation.
11
- - Classify each requirement as `explicit`, `repository-resolvable`, `assumption`, or
12
- `blocking`. Blocking facts name their owner and evidence.
11
+ - Runtime owns requirement text, source binding and disposition. Use typed questions
12
+ and constraints for uncertainties; blocked terminal facts name their owner.
13
13
 
14
14
  ## Evidence and handoff
15
15
 
@@ -29,6 +29,22 @@ enumerate or downgrade them.
29
29
 
30
30
  ## Terminal
31
31
 
32
- Commit facts in small batches and call `finalize_contract` exactly once with
32
+ Commit facts from the complete current scope, then `complete_contract_scope` only
33
+ after its evidence, constraints and source-bound deliverables are recorded. Scope
34
+ checkpoints survive interruption; confirming an ID alone is not completion.
35
+ Call `finalize_contract` with
33
36
  `ready`, `ready-with-assumptions`, or `blocked`. If the task is too large for one
34
37
  bounded writer, record a split proposal instead of broadening the contract.
38
+
39
+ A successful receipt means the fact was saved durably. Replays are idempotent;
40
+ changed facts require explicit `replace:true`. Correct rejected calls and retry,
41
+ but do not mutate after a successful terminal. Never drop tail conditions to fit.
42
+
43
+ ## Execution ownership
44
+
45
+ `record_requirement` may include `execution:{groupId,kind,summary}`. Use `behavior`,
46
+ `constraint`, or `exclusion`; reuse an existing group only when semantics agree.
47
+ Keep permission, threshold and failure-path differences separate. Do not merge
48
+ source IDs or independent acceptance conditions. Unclassified requirements remain
49
+ independent. Later scopes receive the shared group index. A group is a planning
50
+ proposal; independent design review must check every member's complete text.
@@ -9,26 +9,27 @@ references:
9
9
 
10
10
  # Frontend Design Review
11
11
 
12
- For frontend design review nodes. Read the checklist and the non-blocking contract
13
- capacity diagnostic first. Audit either the canonical contract or, when the
14
- diagnostic recommends indexed reading, its hash-bound field sections. Check the
15
- bound Mock strategy, task bounds, and traceable design evidence supplied by the
16
- upstream context. Do not rediscover task sources, search specification roots, or
17
- replace frozen evidence with nearby-code conventions. Use only exact, bound evidence
18
- paths when additional reading is necessary; never invent connector results.
12
+ Audit the canonical contract or its hash-bound indexed sections, guided by the
13
+ capacity diagnostic. Check Mock strategy, task bounds and exact bound evidence.
14
+ Do not rediscover sources, search specification roots or invent connector results.
19
15
 
20
16
  ## Authoritative Terminal
21
17
 
22
- Complete the review with exactly one committed typed tool call:
18
+ Submit findings one at a time with `record_design_finding` using stable IDs.
19
+ Use `replace:true` for revisions. The terminal automatically includes saved findings;
20
+ do not repeat their array. Correct rejected calls, then commit one successful terminal:
23
21
 
24
22
  - `approve_design` when no blocking design defect remains;
25
23
  - `request_design_changes` when a blocker exists. It must include a typed
26
- `issueCategory`, at least one `evidenceRef`, and non-empty findings.
24
+ `issueCategory`, at least one `evidenceRef`, and non-empty findings (saved or supplied).
27
25
 
28
26
  The typed terminal is the only authoritative outcome. Do not require or emit a
29
27
  `VERDICT:` line, JSON verdict, revision patch, or a second final-design-review
30
- verdict. A requested design change ends this run; the recovery controller creates
31
- any bounded follow-up run from the appropriate phase.
28
+ verdict. Requested changes end this run; recovery owns the bounded follow-up.
29
+
30
+ Check every execution group against its members' complete outcomes. Permissions,
31
+ thresholds and error paths remain independent ACs; a shared VT must prove them all.
32
+ Constraint/exclusion labels never waive source-required behavior evidence.
32
33
 
33
34
  ## Blocking Conditions
34
35
 
@@ -4,7 +4,7 @@ description: Use only for the tool-only frontend decision planning node.
4
4
  references:
5
5
  - path: references/decision-contract.md
6
6
  required: true
7
- maxChars: 5600
7
+ maxChars: 6800
8
8
  - path: references/design-decisions.md
9
9
  required: true
10
10
  maxChars: 3400
@@ -35,5 +35,5 @@ here with the same id and `replace=true` (union backfill) before finalize. A
35
35
  `duplicate` receipt is a correction invitation, not a prohibition.
36
36
 
37
37
  The runtime owns protected skeleton fields, path/command validation, materialization,
38
- and final schema checks. Finish with exactly one `finalize_plan`; return no Markdown
38
+ and final schema checks. Finish with one successful `finalize_plan` (correct rejected facts and retry); return no Markdown
39
39
  narrative. Record a genuine evidence gap when frozen facts are insufficient.
@@ -95,9 +95,11 @@ facts".
95
95
 
96
96
  ## UX vocabulary (registry first)
97
97
 
98
- - Record `record_state_registry` BEFORE `record_state_flow`: one global vocabulary.
99
- Coverage may slice by requirement; UX must not. Use stable kebab-case behavior
100
- names, never AC-number-derived names or renamed committed concepts.
98
+ - Record `record_state_registry` BEFORE any `record_state_flow`: one compact
99
+ global vocabulary of UI-state and interaction names. Details use complete execution
100
+ group scopes; reuse shared names across scopes, never one name per AC or a
101
+ rename of an already-recorded concept (kebab-case behavior-domain names, e.g.
102
+ `planner-task-edit`, `focus-queue-move`).
101
103
  - UI states use the contract's declared authoritative ids (`declaredUiStates`
102
104
  in the plan input) when the source declares a state table.
103
105
  - Retry slices see `committedUx` in the plan input: reuse those exact names.
@@ -123,11 +125,22 @@ widen the write set.
123
125
 
124
126
  The runtime owns `schemaVersion`, `sourceBinding`, risk, canonical target files,
125
127
  `requiredDeliverables`, aliases, command allowlisting, path containment, and final
126
- validation. Submit only editable decision facts, then call `finalize_plan` exactly
127
- once. The deterministic design policy materializes the canonical implementation
128
+ validation. Submit editable decision facts, then call `finalize_plan`; correct
129
+ rejected facts and retry until one successful terminal commit. The deterministic design policy materializes the canonical implementation
128
130
  contract: every file in the Contract's explicit source-bound delivery inventory
129
131
  must be planned (`requiredDeliverables` gate). Permissions, prohibitions, examples
130
132
  and read-only references do not create delivery obligations. Plan receives this
131
133
  inventory as `requiredDeliverables`; it cannot add, remove or reinterpret it.
132
134
  Missing files and UX name collisions are reported by finalize_plan before commit
133
135
  and checked again by the policy shell.
136
+
137
+
138
+ Use `record_plan_group_coverage` for a complete declared execution group with shared
139
+ targets/VTs; runtime expands to all canonical members. Submit individual coverage
140
+ for differences. Constraints/exclusions create no invented UI or tests; keep genuine
141
+ evidence gaps, and never weaken behavior evidence required by the source.
142
+
143
+ Submit Mock policy with `record_mock_api` and empty endpoints, then one endpoint per
144
+ `record_mock_endpoint`. Use `replace:true` for revisions, plus `remove:true` to
145
+ withdraw an endpoint. Use stable finding/fact identities; successful receipts mean
146
+ durable commits. Resume missing work instead of regenerating full JSON or history.
@@ -9,25 +9,24 @@ references:
9
9
 
10
10
  # Frontend Review
11
11
 
12
- Use for `frontend-review-pi`; read the findings guide and capacity diagnostic first.
13
- Inputs are `contracts/frontend-review-context.json`, its hash-bound contract
14
- reference/index and diff fragments, and only source files named by that diff. Use
15
- indexed contract sections when recommended. Do not reopen task sources, plans,
16
- design-review prose, OpenSpec, or `ai_workspace/`; the bound context is authoritative.
12
+ Use `contracts/frontend-review-context.json`, its hash-bound contract index and diff,
13
+ and only files named by the diff. Read the findings guide and capacity diagnostic;
14
+ use indexed sections when advised. Do not reopen task sources, plans, OpenSpec,
15
+ design-review prose or `ai_workspace/`.
17
16
 
18
17
  ## Authoritative Terminal
19
18
 
20
- Complete the review with exactly one committed typed tool call:
19
+ Submit findings one at a time with `record_review_finding` using stable IDs.
20
+ Use `replace:true` for revisions. The terminal automatically includes saved findings;
21
+ do not repeat their array. Correct rejected calls, then commit one successful terminal:
21
22
 
22
23
  - `approve_review` when no Critical/Important finding remains;
23
24
  - `request_review_changes` for a defect, missing required evidence, forbidden
24
25
  write, or unmet acceptance criterion. It must include a typed `issueCategory`,
25
- at least one `evidenceRef`, and non-empty findings.
26
+ at least one `evidenceRef`, and non-empty findings (saved or supplied).
26
27
 
27
- The typed terminal is the only authoritative outcome. Do not require or emit a
28
- `VERDICT:` line or response-text JSON verdict. A request for review changes ends
29
- this run and is handled by the recovery controller rather than a same-run repair
30
- branch.
28
+ Only the typed terminal controls the outcome; no `VERDICT:` line or JSON verdict.
29
+ Requested changes end this run; the recovery controller owns follow-up.
31
30
 
32
31
  ## Review Scope
33
32
 
@@ -21,3 +21,7 @@ the exact evidence. Do not recursively inspect unrelated directories.
21
21
  Commit `complete` only when the target surface is sufficiently proven for Plan to
22
22
  reuse without repository discovery. Otherwise commit `blocked` and list every
23
23
  unresolved path or ownership question. Do not shift discovery work into Plan.
24
+
25
+ A successful typed receipt is durable. Reuse only facts bound to the same source
26
+ and fresh file evidence; changed or missing evidence requires Scout refresh. Do
27
+ not replay stale success or repeat complete discovery merely because a reply was lost.