@tea-agent/loop-agent 0.40.0 → 0.41.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +140 -13
- package/dist/adapters/context-transfer/optional-pi-handoff.js +31 -0
- package/dist/adapters/context-transfer/pi-session.js +61 -0
- package/dist/build-stamp.json +3 -3
- package/dist/cli/command-definitions.js +12 -0
- package/dist/cli/program.js +23 -1
- package/dist/commands/dag-artifact.js +284 -0
- package/dist/commands/dag-context.js +184 -0
- package/dist/commands/dag-rerun.js +206 -1
- package/dist/executors/dag-pi-executor.js +39 -12
- package/dist/executors/pi-sdk-executor.js +3 -0
- package/dist/executors/shell-executor.js +3 -30
- package/dist/{worker → infrastructure}/console/app-data.js +4 -0
- package/dist/infrastructure/console/artifact-revision-store.js +430 -0
- package/dist/infrastructure/console/context-export-store.js +160 -0
- package/dist/infrastructure/console/dir-lock.js +132 -0
- package/dist/{worker → infrastructure}/console/operation-store.js +28 -0
- package/dist/infrastructure/harness/artifact-store.js +10 -1
- package/dist/infrastructure/harness/atomic-write.js +12 -2
- package/dist/shared/context-transfer/artifact-revision.js +172 -0
- package/dist/shared/context-transfer.js +418 -0
- package/dist/shared/operator/capabilities.js +14 -0
- package/dist/shared/operator/safe-run-summary.js +1 -0
- package/dist/shared/path-safety.js +93 -0
- package/dist/shared/preview.js +28 -4
- package/dist/task/config-types.js +2 -1
- package/dist/task/task-demand-routing.js +3 -0
- package/dist/worker/console/chat/chat-event-store.js +2 -2
- package/dist/worker/console/chat/resource-preferences-store.js +1 -1
- package/dist/worker/console/chat/routes.js +3 -11
- package/dist/worker/console/chat/session-store.js +1 -1
- package/dist/worker/console/chat/turn-process.js +2 -10
- package/dist/worker/console/chat/user-questions.js +1 -1
- package/dist/worker/console/console-update-runtime.js +1 -1
- package/dist/worker/console/context-transfer-diagnostics.js +198 -0
- package/dist/worker/console/dag-confirmation.js +1 -1
- package/dist/worker/console/dag-execution-receipt.js +1 -1
- package/dist/worker/console/doctor.js +1 -1
- package/dist/worker/console/draft-store.js +1 -1
- package/dist/worker/console/human-gate-token.js +1 -1
- package/dist/worker/console/index.js +3 -3
- package/dist/worker/console/interview/assessment.js +1 -1
- package/dist/worker/console/interview/session.js +1 -1
- package/dist/worker/console/operation-runner.js +45 -4
- package/dist/worker/console/operation-sse.js +1 -1
- package/dist/worker/console/operation-wait.js +1 -1
- package/dist/worker/console/operator-actions.js +104 -3
- package/dist/worker/console/operator-surface-health.js +1 -1
- package/dist/worker/console/operator-user-error.js +169 -0
- package/dist/worker/console/routes.js +618 -7
- package/dist/worker/console/security.js +35 -0
- package/dist/worker/console/server.js +4 -2
- package/dist/worker/console/static/assets/{abnfDiagram-N423BO3Z-Dy71QJp3.js → abnfDiagram-N423BO3Z-DSVcg1YO.js} +1 -1
- package/dist/worker/console/static/assets/{arc-M25fNMTE.js → arc-BtXhIqui.js} +1 -1
- package/dist/worker/console/static/assets/{architectureDiagram-T3A2C74G-CUWlVl1a.js → architectureDiagram-T3A2C74G-B-nh-ilJ.js} +1 -1
- package/dist/worker/console/static/assets/{blockDiagram-VBNYF7ZC-Dd0Whpx2.js → blockDiagram-VBNYF7ZC-BIUSVdZI.js} +1 -1
- package/dist/worker/console/static/assets/{c4Diagram-5PPSVZJV-BdfeCkI5.js → c4Diagram-5PPSVZJV-Cmw3L4qM.js} +1 -1
- package/dist/worker/console/static/assets/channel-BhZFNefx.js +1 -0
- package/dist/worker/console/static/assets/{chunk-2GRJ4B5K-D_1sUkyD.js → chunk-2GRJ4B5K-CGpMMjGm.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-2Q5K7J3B-Cxnxf36E.js → chunk-2Q5K7J3B-BNBkEpEJ.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-5RXB4S5H-D9RG3G_x.js → chunk-5RXB4S5H-ubln3eaU.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-5VM5RSS4-Zz9jgjLX.js → chunk-5VM5RSS4-_XcBTt1i.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-6Q2QTUOP-BCggDRCH.js → chunk-6Q2QTUOP-Ln30Pgrh.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-GF5L2VYU-CFg-5iAS.js → chunk-GF5L2VYU-ESH3lhSx.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-JWPE2WC7-DRQTE8x_.js → chunk-JWPE2WC7-DAJt-qXB.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-KBJHAD2P-C_Dw7uZ8.js → chunk-KBJHAD2P-Cx10LIcH.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-RYQCIY6F-BjIiApsk.js → chunk-RYQCIY6F-CENeOxoJ.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-XXDRQBXY-B5XQD4KG.js → chunk-XXDRQBXY-DXqK-D38.js} +1 -1
- package/dist/worker/console/static/assets/classDiagram-JCYQIIEL-Sbv-NJni.js +1 -0
- package/dist/worker/console/static/assets/classDiagram-v2-OCEON4UE-Sbv-NJni.js +1 -0
- package/dist/worker/console/static/assets/{cose-bilkent-JH36ORCC-huHqH6WQ.js → cose-bilkent-JH36ORCC-CE4dmvGY.js} +1 -1
- package/dist/worker/console/static/assets/{cynefin-VYW2F7L2-BSi6yZqP.js → cynefin-VYW2F7L2-CRacN1zK.js} +1 -1
- package/dist/worker/console/static/assets/{cynefinDiagram-MW4NZA55-Bs_Jp31y.js → cynefinDiagram-MW4NZA55-Cneukjrt.js} +1 -1
- package/dist/worker/console/static/assets/{dagre-VZM6K2ZE-CYxavikT.js → dagre-VZM6K2ZE-DPFboRoL.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-7IWD3JNH-B6TErl71.js → diagram-7IWD3JNH-DIAQgcOP.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-B4RE2ZJO-CvH4J2ii.js → diagram-B4RE2ZJO-VrYMKxuy.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-LBJQPF4R-v1NBAqXS.js → diagram-LBJQPF4R-CLHvBghn.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-Q27KOJAE-CUNHVAn2.js → diagram-Q27KOJAE-DVCWBif8.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-UB23O5K3-Dzz1gUu-.js → diagram-UB23O5K3-BTMmbBzJ.js} +1 -1
- package/dist/worker/console/static/assets/{ebnfDiagram-BXEA7PRR-CCF8_LjK.js → ebnfDiagram-BXEA7PRR-BUZsKJ56.js} +1 -1
- package/dist/worker/console/static/assets/{erDiagram-JOGREHBK-DObdPVLa.js → erDiagram-JOGREHBK-BsBZ5NXC.js} +1 -1
- package/dist/worker/console/static/assets/{flowDiagram-UKHOOZJN-DlN8Pxrj.js → flowDiagram-UKHOOZJN-D7fH_kDa.js} +1 -1
- package/dist/worker/console/static/assets/{ganttDiagram-PKOTCBZU-BJKIPTGX.js → ganttDiagram-PKOTCBZU-Bza5OohY.js} +1 -1
- package/dist/worker/console/static/assets/{gitGraphDiagram-DS77QQ5N-XcSSnObi.js → gitGraphDiagram-DS77QQ5N-DpkoGR_Y.js} +1 -1
- package/dist/worker/console/static/assets/index-Ius3vxhf.css +1 -0
- package/dist/worker/console/static/assets/index-yASzcbBr.js +451 -0
- package/dist/worker/console/static/assets/{infoDiagram-6WML65LV-BKrRKMww.js → infoDiagram-6WML65LV-BYm3g6LT.js} +1 -1
- package/dist/worker/console/static/assets/{ishikawaDiagram-WSZJBQD7-CN5dk-yb.js → ishikawaDiagram-WSZJBQD7-C2RS_H4v.js} +1 -1
- package/dist/worker/console/static/assets/{journeyDiagram-NVQOT4AX-B4P4KZ-Y.js → journeyDiagram-NVQOT4AX-B4slKpCo.js} +1 -1
- package/dist/worker/console/static/assets/{kanban-definition-27J2QSJJ-BRlteP32.js → kanban-definition-27J2QSJJ-B7orRNpI.js} +1 -1
- package/dist/worker/console/static/assets/{linear-CG8D9fuL.js → linear-D1BeBxLQ.js} +1 -1
- package/dist/worker/console/static/assets/{mermaid.core-BuB6P2rX.js → mermaid.core-0TtMP8k4.js} +5 -5
- package/dist/worker/console/static/assets/{mindmap-definition-FAOFIHXS-DYXGl_DR.js → mindmap-definition-FAOFIHXS-XL5EbCtT.js} +1 -1
- package/dist/worker/console/static/assets/{pegDiagram-VL7TDLO6-BM48yEVG.js → pegDiagram-VL7TDLO6-CwF7uas5.js} +1 -1
- package/dist/worker/console/static/assets/{pieDiagram-7S7Q4E2Y-mT8NL-Ow.js → pieDiagram-7S7Q4E2Y-A_Jo-72f.js} +1 -1
- package/dist/worker/console/static/assets/{quadrantDiagram-CIZ2JOQS-C4pZ6DH_.js → quadrantDiagram-CIZ2JOQS-CxOa4gKL.js} +1 -1
- package/dist/worker/console/static/assets/{railroadDiagram-AXF67PYL-BKAcr70m.js → railroadDiagram-AXF67PYL-DoAoswIH.js} +1 -1
- package/dist/worker/console/static/assets/{requirementDiagram-LRYGKXZP-CRxcKpoO.js → requirementDiagram-LRYGKXZP-C1Lc1MlD.js} +1 -1
- package/dist/worker/console/static/assets/{sankeyDiagram-W5VNT64P-Ds4LxQDI.js → sankeyDiagram-W5VNT64P-DFXOkq0U.js} +1 -1
- package/dist/worker/console/static/assets/{sequenceDiagram-SI44F4Z6-CPLwPf_p.js → sequenceDiagram-SI44F4Z6-B0ufUCuW.js} +1 -1
- package/dist/worker/console/static/assets/{sizeCapture-X5ZJPWSS-CL65uij0.js → sizeCapture-X5ZJPWSS-iPbW55g3.js} +1 -1
- package/dist/worker/console/static/assets/{stateDiagram-OKZ733FA-CO0Mgd1W.js → stateDiagram-OKZ733FA-CHiXzEKP.js} +1 -1
- package/dist/worker/console/static/assets/stateDiagram-v2-UEYNNEHI-BtMgzo_H.js +1 -0
- package/dist/worker/console/static/assets/{swimlanes-SLNWSIFB-Cxv3TSNw.js → swimlanes-SLNWSIFB-LyFs7TpX.js} +2 -2
- package/dist/worker/console/static/assets/swimlanesDiagram-ULZ7WXOC-Cb-OVd9Y.js +8 -0
- package/dist/worker/console/static/assets/{timeline-definition-Z64GVDOM-Dw85f9L2.js → timeline-definition-Z64GVDOM-tNkJnb6z.js} +1 -1
- package/dist/worker/console/static/assets/{vennDiagram-T6HMQDX7-B4QLCqCy.js → vennDiagram-T6HMQDX7-DFm7Oo8o.js} +1 -1
- package/dist/worker/console/static/assets/{wardleyDiagram-T6FBY63Y-B_yKCWwn.js → wardleyDiagram-T6FBY63Y-tpblTp9i.js} +1 -1
- package/dist/worker/console/static/assets/{xychartDiagram-ELKLHX3M-nniBEGv2.js → xychartDiagram-ELKLHX3M-BCDLWR_D.js} +1 -1
- package/dist/worker/console/static/index.html +7 -2
- package/dist/worker/console/static-src/app/useOperatorActions.js +3 -2
- package/dist/worker/console/static-src/shell/console-update-reload.js +25 -0
- package/dist/worker/console/workspace-context.js +28 -2
- package/dist/worker/console/workspace-registry.js +2 -2
- package/dist/worker/continuation/worker-continuation.js +278 -0
- package/dist/worker/observe/health.js +1 -1
- package/dist/worker/observe/node-transparency.js +572 -0
- package/dist/worker/observe/routes.js +51 -1
- package/dist/worker/observe/static/api.js +69 -5
- package/dist/worker/observe/static/dag-context-reason-labels.d.ts +9 -0
- package/dist/worker/observe/static/dag-context-reason-labels.js +120 -0
- package/dist/worker/observe/static/state.js +3 -1
- package/dist/worker/observe/static/styles.css +1037 -126
- package/dist/worker/observe/static/views/dag-inspector.js +1215 -58
- package/dist/worker/observe/static/views/session-timeline.js +75 -10
- package/dist/worker/outcomes/adapters.js +19 -0
- package/dist/worker/outcomes/types.js +1 -0
- package/dist/worker/pool/attempt-lease.js +97 -66
- package/dist/worker/pool/begin-attempt-with-lease.js +1 -0
- package/dist/worker/pool/reconcile.js +46 -1
- package/dist/worker/pool/run-store.js +2 -0
- package/dist/worker/pool/state-projection.js +2 -0
- package/dist/worker/task-spec/workflow-routing.js +8 -3
- package/dist/workflows/dag/artifact-bindings.js +149 -0
- package/dist/workflows/dag/artifact-revision-schema-registry.js +31 -0
- package/dist/workflows/dag/backend-test-result-contract.js +1 -1
- package/dist/workflows/dag/budget-enforcement.js +10 -0
- package/dist/workflows/dag/context-receipt.js +305 -0
- package/dist/workflows/dag/context-transfer/context-bundle.js +423 -0
- package/dist/workflows/dag/context-transfer/operator-actions.js +61 -0
- package/dist/workflows/dag/context-transfer/renderers.js +93 -0
- package/dist/workflows/dag/frontend-writer-rollback.js +32 -0
- package/dist/workflows/dag/init-hybrid.js +146 -0
- package/dist/workflows/dag/node-execution.js +112 -27
- package/dist/workflows/dag/path-safety.js +1 -0
- package/dist/workflows/dag/prompt.js +29 -4
- package/dist/workflows/dag/rerun-plan.js +555 -1
- package/dist/workflows/dag/rerun-run.js +601 -15
- package/dist/workflows/dag/runner.js +20 -1
- package/dist/workflows/dag/skill-snapshot.js +17 -0
- package/dist/workflows/dag/types.js +183 -7
- package/docs/architecture/runtime-boundaries.md +6 -6
- package/docs/architecture/worker-and-feature.md +1 -1
- package/docs/templates/agent-dag.schema.json +32 -0
- package/docs/templates/product-line/task.yaml +1 -1
- package/package.json +3 -1
- package/skills/loop-agent/references/command-reference.md +6 -0
- package/dist/worker/console/static/assets/channel-Ba0AKiEZ.js +0 -1
- package/dist/worker/console/static/assets/classDiagram-JCYQIIEL-BU3IjVEe.js +0 -1
- package/dist/worker/console/static/assets/classDiagram-v2-OCEON4UE-BU3IjVEe.js +0 -1
- package/dist/worker/console/static/assets/index-CIYzS16i.css +0 -1
- package/dist/worker/console/static/assets/index-CS3QOTfl.js +0 -451
- package/dist/worker/console/static/assets/stateDiagram-v2-UEYNNEHI-BUewAVYS.js +0 -1
- package/dist/worker/console/static/assets/swimlanesDiagram-ULZ7WXOC-Bhe67Wjl.js +0 -8
- /package/dist/{worker → infrastructure}/console/repo-fingerprint.js +0 -0
|
@@ -14,6 +14,162 @@ const MUTATION_GATE_COPY = [
|
|
|
14
14
|
copy: "请求主机校验失败:非回环绑定时要求 Host 头,请刷新页面或检查访问地址。",
|
|
15
15
|
},
|
|
16
16
|
];
|
|
17
|
+
/**
|
|
18
|
+
* Context-transfer / artifact-revision 稳定 reason code(kernel CLI 会原样
|
|
19
|
+
* 透传到操作错误信息里)→ 面向操作者的中文语义。与 observe 侧
|
|
20
|
+
* dag-context-reason-labels.js 同源,保留原码便于诊断。
|
|
21
|
+
*/
|
|
22
|
+
const CONTEXT_TRANSFER_CODE_COPY = [
|
|
23
|
+
{
|
|
24
|
+
pattern: /\bCONTEXT_RECEIPT_MISSING\b/,
|
|
25
|
+
copy: "该节点没有执行时上下文回执(CONTEXT_RECEIPT_MISSING):只有真实执行过的模型节点才有可导出的上下文;历史 run 不做事后回填。",
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
pattern: /\bCONTEXT_COMPONENT_UNAVAILABLE\b/,
|
|
29
|
+
copy: "部分上下文组件当前不可用(CONTEXT_COMPONENT_UNAVAILABLE),无法生成完整交接包。",
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
pattern: /\bCONTEXT_BUNDLE_TOO_LARGE\b/,
|
|
33
|
+
copy: "导出内容超出体积上限(CONTEXT_BUNDLE_TOO_LARGE),请缩小节点范围或联系维护者调整上限。",
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
pattern: /\bRAW_EXPORT_ACKNOWLEDGEMENT_REQUIRED\b/,
|
|
37
|
+
copy: "原文导出包含敏感数据风险(RAW_EXPORT_ACKNOWLEDGEMENT_REQUIRED),需要先勾选风险确认。",
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
pattern: /\bSECRET_SCAN_CONFIRMATION_REQUIRED\b/,
|
|
41
|
+
copy: "候选文件疑似包含凭据(SECRET_SCAN_CONFIRMATION_REQUIRED),确认风险后才能继续。",
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
pattern: /\bARTIFACT_BINDING_UNAVAILABLE\b/,
|
|
45
|
+
copy: "缺少结构化产物关系(ARTIFACT_BINDING_UNAVAILABLE):只有带产物绑定的新 run 支持修订与派生,历史 run 仅可查看/下载。",
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
pattern: /\bARTIFACT_NOT_REVISION_ELIGIBLE\b/,
|
|
49
|
+
copy: "该产物不允许修订替换(ARTIFACT_NOT_REVISION_ELIGIBLE)。",
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
pattern: /\bARTIFACT_IDENTITY_AMBIGUOUS\b/,
|
|
53
|
+
copy: "产物身份不唯一(ARTIFACT_IDENTITY_AMBIGUOUS),无法安全定位修订目标。",
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
pattern: /\bARTIFACT_REVISION_SCHEMA_INVALID\b/,
|
|
57
|
+
copy: "候选文件不符合该产物声明的数据结构(ARTIFACT_REVISION_SCHEMA_INVALID),已拒绝入库。",
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
pattern: /\bARTIFACT_REVISION_PATH_INVALID\b/,
|
|
61
|
+
copy: "候选目标路径无效(ARTIFACT_REVISION_PATH_INVALID),已拒绝。",
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
pattern: /\bARTIFACT_REVISION_EXPIRED\b/,
|
|
65
|
+
copy: "修订候选已过期(ARTIFACT_REVISION_EXPIRED),请重新上传后再继续。",
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
pattern: /\bARTIFACT_REVISION_DRIFT\b/,
|
|
69
|
+
copy: "候选文件与登记内容不一致(ARTIFACT_REVISION_DRIFT),请重新上传。",
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
pattern: /\bARTIFACT_REVISION_QUOTA_EXCEEDED\b/,
|
|
73
|
+
copy: "修订暂存区配额已满(ARTIFACT_REVISION_QUOTA_EXCEEDED),请先丢弃不需要的修订或等待过期回收。",
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
pattern: /\bARTIFACT_CONSUMER_UNKNOWN\b/,
|
|
77
|
+
copy: "无法确定受影响的下游节点(ARTIFACT_CONSUMER_UNKNOWN),派生继续已被阻止。",
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
pattern: /\bARTIFACT_IMPACT_UNSAFE\b/,
|
|
81
|
+
copy: "影响范围包含不能自动重跑的节点(ARTIFACT_IMPACT_UNSAFE),派生继续已被阻止。",
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
pattern: /\bRERUN_PLAN_DRIFT\b|\bPLAN_DRIFT\b/,
|
|
85
|
+
copy: "继续运行计划与当前事实发生漂移(RERUN_PLAN_DRIFT),请重新生成计划后再执行。",
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
pattern: /\bWORKER_MANAGED_CONTINUATION_UNSUPPORTED\b/,
|
|
89
|
+
copy: "由 Worker 托管的运行暂不支持派生继续(WORKER_MANAGED_CONTINUATION_UNSUPPORTED),这是当前版本的明确边界,不是失败。",
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
pattern: /\bWORKER_CONTINUATION_AUTHORITY_MISMATCH\b/,
|
|
93
|
+
copy: "Worker 派生运行的归属事实不一致(WORKER_CONTINUATION_AUTHORITY_MISMATCH),请刷新计划并核对 Task Pool 状态。",
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
pattern: /\bWORKER_CONTINUATION_LEASE_CONFLICT\b/,
|
|
97
|
+
copy: "该 Worker Task 已有运行占用(WORKER_CONTINUATION_LEASE_CONFLICT),请等待当前运行结束或先完成恢复核对。",
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
pattern: /\bWORKER_CONTINUATION_NEEDS_RECONCILE\b/,
|
|
101
|
+
copy: "Worker 派生运行已存在但终态尚未完成核对(WORKER_CONTINUATION_NEEDS_RECONCILE),不会再次启动;请先执行恢复核对。",
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
pattern: /\bPARENT_IMMUTABILITY_VIOLATION\b/,
|
|
105
|
+
copy: "父运行事实发生变化(PARENT_IMMUTABILITY_VIOLATION),已阻止派生以保护历史证据。",
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
pattern: /\bPARENT_LIFECYCLE\b/,
|
|
109
|
+
copy: "父运行当前状态不允许派生继续(PARENT_LIFECYCLE)。",
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
pattern: /\bREQUEST_ID_REUSE_CONFLICT\b/,
|
|
113
|
+
copy: "相同请求 ID 已被其他操作占用(REQUEST_ID_REUSE_CONFLICT),请更换请求 ID 重试。",
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
pattern: /\bOPERATION_NEEDS_RECONCILE\b/,
|
|
117
|
+
copy: "操作记录需要先恢复核对(OPERATION_NEEDS_RECONCILE):上次执行未确认结束,请刷新操作状态后重试。",
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
pattern: /\bCONTEXT_EXPORT_FAILED\b/,
|
|
121
|
+
copy: "上下文导出失败(CONTEXT_EXPORT_FAILED),请稍后重试;若持续失败请检查该节点是否存在可导出的执行事实。",
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
pattern: /\bCONTEXT_EXPORT_UNAVAILABLE\b/,
|
|
125
|
+
copy: "导出内容不存在或已过期(CONTEXT_EXPORT_UNAVAILABLE),请重新生成。",
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
pattern: /\bLEASE_HELD\b/,
|
|
129
|
+
copy: "资源正被其他操作占用(LEASE_HELD),请等待当前操作结束或稍后重试。",
|
|
130
|
+
},
|
|
131
|
+
// 更新并初始化链路的稳定错误码。
|
|
132
|
+
{
|
|
133
|
+
pattern: /\bREGISTRY_VERSION_REGRESSION\b/,
|
|
134
|
+
copy: "所选渠道的最新版本比当前安装的版本更旧(REGISTRY_VERSION_REGRESSION),已阻止降级更新。请改用包含更新版本的渠道(如 next/beta)。",
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
pattern: /\bUPDATE_LOCKED\b/,
|
|
138
|
+
copy: "另一个 loop-agent 更新正在进行(UPDATE_LOCKED),请等待其结束后重试。",
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
pattern: /\bINSTALL_FAILED\b/,
|
|
142
|
+
copy: "新版本安装失败(INSTALL_FAILED),请检查网络与 npm registry 后重试。",
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
pattern: /\bINSTALL_VERIFICATION_FAILED\b/,
|
|
146
|
+
copy: "安装后校验未通过(INSTALL_VERIFICATION_FAILED),未接棒新版本;请重试或手动安装。",
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
pattern: /\bACTIVE_RUNTIME\b/,
|
|
150
|
+
copy: "当前存在活跃的 DAG/Worker 运行(ACTIVE_RUNTIME),更新已推迟;请等待运行结束后再更新。",
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
pattern: /\bCHAT_TURN_ACTIVE\b/,
|
|
154
|
+
copy: "对话正在执行中(CHAT_TURN_ACTIVE),更新已推迟;请等待当前回合结束后再更新。",
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
pattern: /\bOPERATION_ACTIVE\b/,
|
|
158
|
+
copy: "另一个 Console 操作正在进行(OPERATION_ACTIVE),请等待其结束后再更新。",
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
pattern: /\bHANDOFF_FAILED\b/,
|
|
162
|
+
copy: "新版本已安装,但接棒启动新 Console 失败(HANDOFF_FAILED);旧进程未被关闭,可直接重试或手动重启 Console。",
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
pattern: /\bINIT_NEEDS_RECONCILE\b/,
|
|
166
|
+
copy: "安全初始化未完全通过(INIT_NEEDS_RECONCILE):版本已就绪,请查看初始化待处理项后重试。",
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
pattern: /\bINVALID_VERSION\b/,
|
|
170
|
+
copy: "安装版本或渠道版本号无法解析(INVALID_VERSION),请重试;若持续出现请反馈。",
|
|
171
|
+
},
|
|
172
|
+
];
|
|
17
173
|
/** Map internal spawn/controller errors to actionable Chinese copy. */
|
|
18
174
|
export function formatOperatorUserError(message) {
|
|
19
175
|
const raw = (message ?? "").trim();
|
|
@@ -37,6 +193,19 @@ export function formatOperatorUserError(message) {
|
|
|
37
193
|
if (/force-required|requires --force/i.test(raw)) {
|
|
38
194
|
return "该终态需要强制 Discard。请确认后勾选强制再试。";
|
|
39
195
|
}
|
|
196
|
+
if (/not-global|GLOBAL_INSTALL_UNPROVEN/i.test(raw)) {
|
|
197
|
+
return "当前 Console 由仓库内构建启动,不是全局 npm 安装,一键更新不可用。请全局安装(npm i -g @tea-agent/loop-agent)后从全局命令启动 Console 再更新,或手动更新本仓库后重启。";
|
|
198
|
+
}
|
|
199
|
+
if (/could not verify npm (?:latest|next) \(timeout\)/i.test(raw)) {
|
|
200
|
+
return "检查 npm 更新渠道超时:请确认本机网络或 npm registry 镜像可访问后重试。";
|
|
201
|
+
}
|
|
202
|
+
if (/could not verify npm (?:latest|next) \(/i.test(raw)) {
|
|
203
|
+
return "检查 npm 更新渠道失败:请确认本机 npm 可用、网络可访问 registry 后重试。";
|
|
204
|
+
}
|
|
205
|
+
for (const entry of CONTEXT_TRANSFER_CODE_COPY) {
|
|
206
|
+
if (entry.pattern.test(raw))
|
|
207
|
+
return entry.copy;
|
|
208
|
+
}
|
|
40
209
|
for (const entry of MUTATION_GATE_COPY) {
|
|
41
210
|
if (entry.pattern.test(raw))
|
|
42
211
|
return entry.copy;
|