@tea-agent/loop-agent 0.44.0-next.4 → 0.44.0-next.6
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 +29 -1
- package/dist/build-stamp.json +3 -3
- package/dist/executors/pi-sdk-executor.js +7 -7
- package/dist/executors/shell-write-guard.js +26 -3
- package/dist/infrastructure/console/operation-store.js +46 -14
- package/dist/shared/file-identity.js +23 -0
- package/dist/shared/git-workspace-status.js +480 -0
- package/dist/shared/path-safety.js +2 -2
- package/dist/shared/wizard-local-telemetry.js +2 -1
- package/dist/worker/console/chat/context-insights.js +723 -0
- package/dist/worker/console/chat/pi-runtime.js +217 -18
- package/dist/worker/console/chat/repo-browser.js +52 -4
- package/dist/worker/console/chat/routes.js +150 -58
- package/dist/worker/console/chat/shortcuts.js +7 -0
- package/dist/worker/console/console-update-runtime.js +2 -2
- package/dist/worker/console/operator-user-error.js +28 -1
- package/dist/worker/console/pi-readiness.js +4 -4
- package/dist/worker/console/recovery-cta.js +14 -14
- package/dist/worker/console/static/assets/{abnfDiagram-N423BO3Z-B_lmJjOm.js → abnfDiagram-N423BO3Z-Brn2sPzL.js} +1 -1
- package/dist/worker/console/static/assets/{arc-pymM4Qeh.js → arc-BIMNTG0W.js} +1 -1
- package/dist/worker/console/static/assets/{architectureDiagram-T3A2C74G-Bw9EPAhi.js → architectureDiagram-T3A2C74G--WtcgR_A.js} +1 -1
- package/dist/worker/console/static/assets/{blockDiagram-VBNYF7ZC-C7_oXJp2.js → blockDiagram-VBNYF7ZC-BT_Ztog1.js} +1 -1
- package/dist/worker/console/static/assets/{c4Diagram-5PPSVZJV-LnLWDbh8.js → c4Diagram-5PPSVZJV-C5hbVr-l.js} +1 -1
- package/dist/worker/console/static/assets/channel-DNWB4hpR.js +1 -0
- package/dist/worker/console/static/assets/{chunk-2GRJ4B5K-BBiu3sCW.js → chunk-2GRJ4B5K-BKKnyR9Z.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-2Q5K7J3B-DiXqDQml.js → chunk-2Q5K7J3B-BHs6biqA.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-5RXB4S5H-lmNq9nYk.js → chunk-5RXB4S5H-BdSFy_vP.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-5VM5RSS4-boBu74dU.js → chunk-5VM5RSS4-BpJIdTKV.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-6Q2QTUOP-CjxqoJLQ.js → chunk-6Q2QTUOP-C_iWJhkT.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-GF5L2VYU-DL0vQ9MG.js → chunk-GF5L2VYU-BTbmx3-k.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-JWPE2WC7-DGPqE-O0.js → chunk-JWPE2WC7-D4Ee6DmP.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-KBJHAD2P-v4BbT_r2.js → chunk-KBJHAD2P-B487SORR.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-RYQCIY6F-Ci0ynvyL.js → chunk-RYQCIY6F-BKYHjNrr.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-XXDRQBXY-CGsbJoTV.js → chunk-XXDRQBXY-DrTdoYZG.js} +1 -1
- package/dist/worker/console/static/assets/classDiagram-JCYQIIEL-COhFgJji.js +1 -0
- package/dist/worker/console/static/assets/classDiagram-v2-OCEON4UE-COhFgJji.js +1 -0
- package/dist/worker/console/static/assets/{cose-bilkent-JH36ORCC-CzoRDEI7.js → cose-bilkent-JH36ORCC-CttUY_Jo.js} +1 -1
- package/dist/worker/console/static/assets/{cynefin-VYW2F7L2-BOwFwbX4.js → cynefin-VYW2F7L2-B4Rm5gnR.js} +1 -1
- package/dist/worker/console/static/assets/{cynefinDiagram-MW4NZA55-2Cfg451l.js → cynefinDiagram-MW4NZA55-ByxHBq_S.js} +1 -1
- package/dist/worker/console/static/assets/{dagre-VZM6K2ZE-DbT0D6Y5.js → dagre-VZM6K2ZE-DGrfNFA0.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-7IWD3JNH-Dfd_JoMs.js → diagram-7IWD3JNH-KjrUPquv.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-B4RE2ZJO-DaGm82kh.js → diagram-B4RE2ZJO-VS4mlm75.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-LBJQPF4R-DMoI8Ibc.js → diagram-LBJQPF4R-BLXYmFTM.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-Q27KOJAE-BtIFA3aY.js → diagram-Q27KOJAE-C6xoFAqH.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-UB23O5K3-D_2X1DTZ.js → diagram-UB23O5K3-C478dCe7.js} +1 -1
- package/dist/worker/console/static/assets/{ebnfDiagram-BXEA7PRR-yFW5ZYlZ.js → ebnfDiagram-BXEA7PRR-DHEpW5zN.js} +1 -1
- package/dist/worker/console/static/assets/{erDiagram-JOGREHBK-DBXh5Svj.js → erDiagram-JOGREHBK-CA5GKfo9.js} +1 -1
- package/dist/worker/console/static/assets/{flowDiagram-UKHOOZJN-C4ycm8KM.js → flowDiagram-UKHOOZJN-zysi0Fl-.js} +1 -1
- package/dist/worker/console/static/assets/{ganttDiagram-PKOTCBZU-qr-_Pekr.js → ganttDiagram-PKOTCBZU-DGzcKA8Y.js} +1 -1
- package/dist/worker/console/static/assets/{gitGraphDiagram-DS77QQ5N-DzOSLv_A.js → gitGraphDiagram-DS77QQ5N-CHsuIG1w.js} +1 -1
- package/dist/worker/console/static/assets/index-CJh6pVLm.js +482 -0
- package/dist/worker/console/static/assets/index-C_kvKmFM.css +1 -0
- package/dist/worker/console/static/assets/{infoDiagram-6WML65LV-C7Hl8D7l.js → infoDiagram-6WML65LV-BexZHPCp.js} +1 -1
- package/dist/worker/console/static/assets/{ishikawaDiagram-WSZJBQD7-fBxVlr6t.js → ishikawaDiagram-WSZJBQD7-Gkx8q-DB.js} +1 -1
- package/dist/worker/console/static/assets/{journeyDiagram-NVQOT4AX-CoiJEVCl.js → journeyDiagram-NVQOT4AX-XDW3qrJ7.js} +1 -1
- package/dist/worker/console/static/assets/{kanban-definition-27J2QSJJ-TJXpxNuV.js → kanban-definition-27J2QSJJ-DJ07eEaN.js} +1 -1
- package/dist/worker/console/static/assets/{linear-CjQWz1pG.js → linear-DL-zeqOn.js} +1 -1
- package/dist/worker/console/static/assets/{mermaid.core-DY9_apIE.js → mermaid.core-C0HdXtOf.js} +5 -5
- package/dist/worker/console/static/assets/{mindmap-definition-FAOFIHXS-HB0Id8gM.js → mindmap-definition-FAOFIHXS-CqRX0lrt.js} +1 -1
- package/dist/worker/console/static/assets/{pegDiagram-VL7TDLO6-0OSWgr6v.js → pegDiagram-VL7TDLO6-BVM9JZ2H.js} +1 -1
- package/dist/worker/console/static/assets/{pieDiagram-7S7Q4E2Y-Cei1GGC2.js → pieDiagram-7S7Q4E2Y-BA3ozdKk.js} +1 -1
- package/dist/worker/console/static/assets/{quadrantDiagram-CIZ2JOQS-CDy0Adfu.js → quadrantDiagram-CIZ2JOQS-B-0_p9_4.js} +1 -1
- package/dist/worker/console/static/assets/{railroadDiagram-AXF67PYL-BwqzUWwN.js → railroadDiagram-AXF67PYL-DHRzPWFc.js} +1 -1
- package/dist/worker/console/static/assets/{requirementDiagram-LRYGKXZP-Bif2IBRL.js → requirementDiagram-LRYGKXZP-9BEC_PcW.js} +1 -1
- package/dist/worker/console/static/assets/{sankeyDiagram-W5VNT64P-CYIoNMLg.js → sankeyDiagram-W5VNT64P-DMxeW4rN.js} +1 -1
- package/dist/worker/console/static/assets/{sequenceDiagram-SI44F4Z6-BDS7Y0aQ.js → sequenceDiagram-SI44F4Z6-DixP6LIU.js} +1 -1
- package/dist/worker/console/static/assets/{sizeCapture-X5ZJPWSS-lZic-_Bp.js → sizeCapture-X5ZJPWSS-B_EifJBo.js} +1 -1
- package/dist/worker/console/static/assets/{stateDiagram-OKZ733FA-WCVlCqSd.js → stateDiagram-OKZ733FA-BwikwWbX.js} +1 -1
- package/dist/worker/console/static/assets/stateDiagram-v2-UEYNNEHI-S2ZHMo1c.js +1 -0
- package/dist/worker/console/static/assets/{swimlanes-SLNWSIFB-pGccxTw_.js → swimlanes-SLNWSIFB-C162l9o1.js} +2 -2
- package/dist/worker/console/static/assets/swimlanesDiagram-ULZ7WXOC-BZm4ByfV.js +8 -0
- package/dist/worker/console/static/assets/{timeline-definition-Z64GVDOM-D29RlrQA.js → timeline-definition-Z64GVDOM-mpe_u1i4.js} +1 -1
- package/dist/worker/console/static/assets/{vennDiagram-T6HMQDX7-01fEM1NU.js → vennDiagram-T6HMQDX7-DyUk54HX.js} +1 -1
- package/dist/worker/console/static/assets/{wardleyDiagram-T6FBY63Y-C4GeB6dq.js → wardleyDiagram-T6FBY63Y-HYyMkzfm.js} +1 -1
- package/dist/worker/console/static/assets/{xychartDiagram-ELKLHX3M-BXHrXHps.js → xychartDiagram-ELKLHX3M-DRoh7skR.js} +1 -1
- package/dist/worker/console/static/index.html +2 -2
- package/dist/worker/console/static-src/app/console-types.js +9 -1
- package/dist/worker/console/static-src/operator-chat/context-insights-store.js +64 -0
- package/dist/worker/console/static-src/operator-chat/details-rail-surfaces.js +98 -0
- package/dist/worker/console/static-src/operator-chat/file-palette-nav.js +81 -0
- package/dist/worker/console/static-src/operator-chat/useChatSessions.js +4 -2
- package/dist/worker/console/static-src/operator-chat/useComposer.js +80 -6
- package/dist/worker/console/static-src/operator-chat/useRepoBrowser.js +8 -1
- package/dist/worker/console/static-src/operator-chat/useRuntimeControls.js +36 -17
- package/dist/worker/console/static-src/operator-chat/useRuntimeSnapshot.js +18 -0
- package/dist/worker/console/static-src/operator-chat/useWorkspaceBrowserGate.js +4 -0
- package/dist/worker/console/static-src/shell/console-update-reload.js +1 -1
- package/dist/worker/console/workspace-initialization.js +3 -3
- package/dist/worker/observability/read-model.js +23 -2
- package/dist/worker/observe/node-context-insights.js +479 -0
- package/docs/README.md +1 -1
- package/docs/templates/backend-test-dag.json +1 -0
- package/package.json +4 -4
- package/dist/worker/console/static/assets/channel-Ym13M3Lb.js +0 -1
- package/dist/worker/console/static/assets/classDiagram-JCYQIIEL-BeFR1wGo.js +0 -1
- package/dist/worker/console/static/assets/classDiagram-v2-OCEON4UE-BeFR1wGo.js +0 -1
- package/dist/worker/console/static/assets/index-PFjB6g6l.js +0 -482
- package/dist/worker/console/static/assets/index-ZtyB6Ol-.css +0 -1
- package/dist/worker/console/static/assets/stateDiagram-v2-UEYNNEHI-cj5UUB6m.js +0 -1
- package/dist/worker/console/static/assets/swimlanesDiagram-ULZ7WXOC-C_Qp6bnh.js +0 -8
|
@@ -42,6 +42,13 @@ export const SHORTCUTS = [
|
|
|
42
42
|
action: "reload",
|
|
43
43
|
source: "operator",
|
|
44
44
|
},
|
|
45
|
+
{
|
|
46
|
+
command: "/context",
|
|
47
|
+
label: "Context insights",
|
|
48
|
+
description: "打开上下文洞察仪表盘:构成、趋势、事件与文件活动",
|
|
49
|
+
action: "focus:context-insights",
|
|
50
|
+
source: "operator",
|
|
51
|
+
},
|
|
45
52
|
];
|
|
46
53
|
export const SDD_BINGO_SHORTCUT = {
|
|
47
54
|
command: "/sdd-bingo",
|
|
@@ -4,7 +4,7 @@ import { createNpmUpdateClient } from "../../shared/update/npm-client.js";
|
|
|
4
4
|
import { acquireUpdateLock, updateLockPath } from "../../shared/update/state.js";
|
|
5
5
|
import { readInitRuntimeActivity } from "../observability/init-runtime-activity.js";
|
|
6
6
|
import { performConsoleUpdateAndInit, } from "./console-update-and-init.js";
|
|
7
|
-
import {
|
|
7
|
+
import { isOperationOccupied, } from "../../infrastructure/console/operation-store.js";
|
|
8
8
|
export function createConsoleUpdateExecutor(input) {
|
|
9
9
|
return async (channel) => {
|
|
10
10
|
const currentVersion = readPackageVersion(input.packageRoot);
|
|
@@ -49,7 +49,7 @@ export function createConsoleUpdateExecutor(input) {
|
|
|
49
49
|
};
|
|
50
50
|
}
|
|
51
51
|
const liveOtherOperation = operations.some((operation) => operation.action !== "consoleUpdateAndInit" &&
|
|
52
|
-
|
|
52
|
+
isOperationOccupied(operation.state));
|
|
53
53
|
return liveOtherOperation
|
|
54
54
|
? {
|
|
55
55
|
ok: false,
|
|
@@ -114,7 +114,7 @@ const CONTEXT_TRANSFER_CODE_COPY = [
|
|
|
114
114
|
},
|
|
115
115
|
{
|
|
116
116
|
pattern: /\bOPERATION_NEEDS_RECONCILE\b/,
|
|
117
|
-
copy: "
|
|
117
|
+
copy: "当前操作的执行结果尚未确认,需要先核对(OPERATION_NEEDS_RECONCILE)。请查看操作记录和相关任务状态,核对实际执行结果后再决定后续操作;确认前请勿重复提交。",
|
|
118
118
|
},
|
|
119
119
|
{
|
|
120
120
|
pattern: /\bCONTEXT_EXPORT_FAILED\b/,
|
|
@@ -169,6 +169,33 @@ const CONTEXT_TRANSFER_CODE_COPY = [
|
|
|
169
169
|
pattern: /\bINVALID_VERSION\b/,
|
|
170
170
|
copy: "安装版本或渠道版本号无法解析(INVALID_VERSION),请重试;若持续出现请反馈。",
|
|
171
171
|
},
|
|
172
|
+
// 源绑定漂移(dag-confirmation.ts / dag-execution-receipt.ts 的英文原文)
|
|
173
|
+
// 与 frontend split CAS 冲突(operator-actions.ts)原本会原样透传到操作者
|
|
174
|
+
// 横幅,这里给出可执行的中文说明。
|
|
175
|
+
{
|
|
176
|
+
pattern: /\bBINDING_DRIFT\b|\bbinding drift\b|\bbinding drifted\b/i,
|
|
177
|
+
copy: "这次确认所依据的内容已经变了(任务契约、源文件、程序版本或校验结果在确认之后被修改),因此旧确认不能再使用。这是保护措施,不是故障:请回到任务页重新生成确认,然后重新开始运行。",
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
pattern: /frontend split CAS conflict/i,
|
|
181
|
+
copy: "前端拆分任务的状态在你操作期间被其他操作改过了(通常是另一个标签页或并发操作),为避免覆盖对方的结果,本次修改没有生效。请刷新页面,确认当前状态后重试。",
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
pattern: /\bCONFIRMATION_EXPIRED\b/,
|
|
185
|
+
copy: "这次确认已经超时失效。请回到任务页重新生成确认后再继续。",
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
pattern: /\bCONFIRMATION_STALE\b/,
|
|
189
|
+
copy: "这次确认对应的是改动之前的内容,已经过期作废。请回到任务页重新生成确认后再继续。",
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
pattern: /\bCONFIRMATION_CONSUMED\b/,
|
|
193
|
+
copy: "这次确认已经被使用过了,不能重复提交。如需再次执行,请重新生成确认。",
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
pattern: /\bHUMAN_CONFIRMATION_REQUIRED\b/,
|
|
197
|
+
copy: "这一步需要你先在页面上确认一次才能继续。请按提示完成确认后再重试。",
|
|
198
|
+
},
|
|
172
199
|
];
|
|
173
200
|
/** Map internal spawn/controller errors to actionable Chinese copy. */
|
|
174
201
|
export function formatOperatorUserError(message) {
|
|
@@ -85,7 +85,7 @@ function hasProviderConfig(snapshot) {
|
|
|
85
85
|
/**
|
|
86
86
|
* Discover live Pi SDK / auth / model readiness via ModelRuntime.
|
|
87
87
|
* Kept inside worker/console (dynamic import) so Worker does not depend on
|
|
88
|
-
* executors; contract matches pi-sdk-executor 0.
|
|
88
|
+
* executors; contract matches pi-sdk-executor 0.84.4.
|
|
89
89
|
*/
|
|
90
90
|
export async function discoverPiReadinessProbe(options) {
|
|
91
91
|
const repoRoot = options?.repoRoot ?? process.cwd();
|
|
@@ -118,7 +118,7 @@ export async function discoverPiReadinessProbe(options) {
|
|
|
118
118
|
modelsAvailable: false,
|
|
119
119
|
interviewSessionOk: false,
|
|
120
120
|
details: {
|
|
121
|
-
sdkMessage: "Pi SDK incompatible: requires createAgentSession, getAgentDir, and ModelRuntime.create (0.
|
|
121
|
+
sdkMessage: "Pi SDK incompatible: requires createAgentSession, getAgentDir, and ModelRuntime.create (0.84.4)",
|
|
122
122
|
authMessage: "skipped (sdk incompatible)",
|
|
123
123
|
modelsMessage: "skipped (sdk incompatible)",
|
|
124
124
|
sessionMessage: "skipped (sdk incompatible)",
|
|
@@ -159,7 +159,7 @@ export async function discoverPiReadinessProbe(options) {
|
|
|
159
159
|
modelsAvailable: false,
|
|
160
160
|
interviewSessionOk: false,
|
|
161
161
|
details: {
|
|
162
|
-
sdkMessage: "Pi SDK 0.
|
|
162
|
+
sdkMessage: "Pi SDK 0.84.4 contract available",
|
|
163
163
|
authMessage: `ModelRuntime.create failed: ${message}`,
|
|
164
164
|
modelsMessage: "skipped (runtime init failed)",
|
|
165
165
|
sessionMessage: "skipped (runtime init failed)",
|
|
@@ -225,7 +225,7 @@ export async function discoverPiReadinessProbe(options) {
|
|
|
225
225
|
interviewSessionOk,
|
|
226
226
|
piAvailableModels: availableModels,
|
|
227
227
|
details: {
|
|
228
|
-
sdkMessage: `Pi SDK 0.
|
|
228
|
+
sdkMessage: `Pi SDK 0.84.4 contract available (agentDir=${agentDir})`,
|
|
229
229
|
authMessage: authReady
|
|
230
230
|
? `credentials/providers ready (available=${availableCount}, providerConfig=${providerConfigured})`
|
|
231
231
|
: "no available models and no stored/configured provider credentials (set Pi auth or provider API keys)",
|
|
@@ -13,40 +13,40 @@ const CTA = {
|
|
|
13
13
|
},
|
|
14
14
|
doctor: {
|
|
15
15
|
id: "doctor",
|
|
16
|
-
label: "
|
|
16
|
+
label: "体检诊断",
|
|
17
17
|
action: "doctor",
|
|
18
18
|
lane: "dag",
|
|
19
|
-
guide: "
|
|
19
|
+
guide: "只做检查、不改动任何东西:看看 Console、模型服务和仓库是否正常。重跑之前先跑它,能省很多试错。",
|
|
20
20
|
commandHint: "agent-worker console doctor --repo .",
|
|
21
21
|
},
|
|
22
22
|
decision: {
|
|
23
23
|
id: "decision",
|
|
24
24
|
label: "人工决策",
|
|
25
25
|
lane: "dag",
|
|
26
|
-
guide: "
|
|
26
|
+
guide: "运行停下来等你拍板时用:先点「体检诊断」看清现状,再决定继续还是调整(需要走命令行)。",
|
|
27
27
|
commandHint: "loop-agent dag doctor --run-id <run-id> --markdown",
|
|
28
28
|
},
|
|
29
29
|
resume: {
|
|
30
30
|
id: "resume",
|
|
31
|
-
label: "
|
|
31
|
+
label: "继续运行",
|
|
32
32
|
lane: "dag",
|
|
33
|
-
guide: "
|
|
33
|
+
guide: "只在确认这次运行还能安全接着跑时使用;不确定就先点「体检诊断」(需要走命令行)。",
|
|
34
34
|
commandHint: "loop-agent task advance <task-id> --json",
|
|
35
35
|
},
|
|
36
36
|
reconcile: {
|
|
37
37
|
id: "reconcile",
|
|
38
|
-
label: "
|
|
38
|
+
label: "核对并归档中断的运行",
|
|
39
39
|
requiresReason: true,
|
|
40
40
|
action: "dagReconcileRun",
|
|
41
41
|
lane: "dag",
|
|
42
|
-
guide: "
|
|
42
|
+
guide: "运行被中断或找不到归属时,用它把这次运行标记为「已归档」,之后才能重新发起。如果运行其实还在跑,请不要用这个动作,否则会打断它。",
|
|
43
43
|
commandHint: "loop-agent dag reconcile-run --run-id <run-id> --action supersede --reason <structured-reason>",
|
|
44
44
|
},
|
|
45
45
|
regenerate: {
|
|
46
46
|
id: "regenerate",
|
|
47
47
|
label: "重新生成契约/计划",
|
|
48
48
|
lane: "dag",
|
|
49
|
-
guide: "
|
|
49
|
+
guide: "任务契约或计划已经过期时用:回任务页重新生成,或走命令行重跑一次 task advance。本页只是提示,按钮在任务页。",
|
|
50
50
|
commandHint: "loop-agent task advance <task-id> --json",
|
|
51
51
|
},
|
|
52
52
|
observeLink: {
|
|
@@ -54,16 +54,16 @@ const CTA = {
|
|
|
54
54
|
label: "全屏观测",
|
|
55
55
|
action: "observeLink",
|
|
56
56
|
lane: "dag",
|
|
57
|
-
guide: "
|
|
57
|
+
guide: "打开完整的过程视图;顶栏可以回到操作台。",
|
|
58
58
|
commandHint: "agent-worker console --repo . --port 8790",
|
|
59
59
|
},
|
|
60
60
|
dagRerun: {
|
|
61
61
|
id: "dagRerun",
|
|
62
|
-
label: "
|
|
62
|
+
label: "从失败节点继续",
|
|
63
63
|
requiresReason: true,
|
|
64
64
|
action: "dagRerun",
|
|
65
65
|
lane: "dag",
|
|
66
|
-
guide: "
|
|
66
|
+
guide: "失败原因跟代码无关时(模型服务报错、网络、限流、超时)首选这个:系统会先判断哪些步骤可以安全跳过,再从出错前的那一步接着跑,不用从头再来,也不需要人工审批。以下几种情况不能这样跑:这次运行是 Worker 队列发起的、仓库或程序版本在这次运行后被改过、或者后续步骤里有会执行命令的验证环节——遇到这些请改用「带反馈重新执行任务」。",
|
|
67
67
|
commandHint: "loop-agent dag rerun --run-id <run-id> --from-node <node-id> --plan",
|
|
68
68
|
},
|
|
69
69
|
standaloneTaskRerun: {
|
|
@@ -72,7 +72,7 @@ const CTA = {
|
|
|
72
72
|
requiresReason: true,
|
|
73
73
|
action: "standaloneTaskRerun",
|
|
74
74
|
lane: "dag",
|
|
75
|
-
guide: "
|
|
75
|
+
guide: "不能从中间某一步接着跑时用这个:会把整个任务从头重新执行一遍,并自动带上上一轮还没解决的验证/评审意见,不用人工审批。如果没有可以继承的意见,会明确告诉你。注意:Worker 队列发起的任务请用下方「重新排队 Worker Task」。",
|
|
76
76
|
commandHint: "loop-agent dag rerun-task --run-id <run-id> --reason <text> --json",
|
|
77
77
|
},
|
|
78
78
|
workerTaskRetry: {
|
|
@@ -81,7 +81,7 @@ const CTA = {
|
|
|
81
81
|
requiresReason: true,
|
|
82
82
|
action: "workerTaskRetry",
|
|
83
83
|
lane: "worker",
|
|
84
|
-
guide: "
|
|
84
|
+
guide: "只用于 Worker 队列里失败的任务:服务端会先确认它确实处于失败状态再重新入队,不需要人工审批。不要和上面的「带反馈重新执行任务」混用。",
|
|
85
85
|
commandHint: "agent-worker task retry <task-id> --feature-id <feature-id> --repo . --reason <reason>",
|
|
86
86
|
},
|
|
87
87
|
interrupt: {
|
|
@@ -90,7 +90,7 @@ const CTA = {
|
|
|
90
90
|
requiresReason: true,
|
|
91
91
|
action: "dagRequestInterrupt",
|
|
92
92
|
lane: "dag",
|
|
93
|
-
guide: "
|
|
93
|
+
guide: "只对这台 Console 正在跑的运行有效:提交后需要你在浏览器里确认一次,然后等当前步骤安全跑完,不会立刻杀掉进程。",
|
|
94
94
|
commandHint: "loop-agent dag request-interrupt --run-id <run-id> --reason-code operator-request --reason <structured-reason>",
|
|
95
95
|
},
|
|
96
96
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{g as p,r as u,d as a}from"./chunk-6Q2QTUOP-
|
|
1
|
+
import{g as p,r as u,d as a}from"./chunk-6Q2QTUOP-C_iWJhkT.js";import{p as f}from"./chunk-JWPE2WC7-D4Ee6DmP.js";import{_ as n,l as o}from"./mermaid.core-C0HdXtOf.js";import{M as c,b as d}from"./cynefin-VYW2F7L2-B4Rm5gnR.js";import"./index-CJh6pVLm.js";var v=d().RailroadAbnf.parser.LangiumParser,i=n(e=>{const r=e.alternatives.map(g);return r.length===1?r[0]:{type:"choice",alternatives:r}},"transformAlternation"),g=n(e=>{const r=e.elements.map(y);return r.length===1?r[0]:{type:"sequence",elements:r}},"transformConcatenation"),b=n(e=>{if(e.includes("*")){const[t,s]=e.split("*"),l=t?parseInt(t,10):0,m=s?parseInt(s,10):1/0;return{min:l,max:m}}const r=parseInt(e,10);return{min:r,max:r}},"parseRepeat"),y=n(e=>{const r=A(e.primary);if(!e.repeat)return r;const{min:t,max:s}=b(e.repeat);return t===0&&s===1?{type:"optional",element:r}:{type:"repetition",element:r,min:t,max:s}},"transformElement"),A=n(e=>{switch(e.$type){case"AbnfStringLiteral":return{type:"terminal",value:e.value};case"AbnfNumVal":return{type:"terminal",value:e.value};case"AbnfRuleName":return{type:"nonterminal",name:e.name};case"AbnfGroup":return i(e.element);case"AbnfOptionalGroup":return{type:"optional",element:i(e.element)};default:throw new Error(`Unsupported ABNF primary node: ${e.$type}`)}},"transformPrimary"),P=n(e=>({name:e.name,definition:i(e.definition)}),"transformRule"),h=n(e=>{f(e,a),e.title&&a.setTitle(e.title),e.rules.map(r=>a.addRule(P(r)))},"populateDb"),R={parse:n(e=>{a.clear(),o.debug("[ABNF Parser] Starting Langium parse");const r=v.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new c(r);const t=r.value;o.debug("[ABNF Parser] Parsed rules:",t.rules.length),h(t),o.debug("[ABNF Parser] Parse complete")},"parse"),parser:{yy:a}},B={parser:R,db:a,renderer:u,styles:p};export{B as diagram};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Y as ln,$ as an,a0 as F,a1 as q,a2 as j,a3 as un,a4 as y,a5 as tn,a6 as J,a7 as _,a8 as rn,a9 as o,aa as on,ab as sn,ac as fn}from"./mermaid.core-
|
|
1
|
+
import{Y as ln,$ as an,a0 as F,a1 as q,a2 as j,a3 as un,a4 as y,a5 as tn,a6 as J,a7 as _,a8 as rn,a9 as o,aa as on,ab as sn,ac as fn}from"./mermaid.core-C0HdXtOf.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,I,D,v,A,z,a){var O=I-l,i=D-h,n=z-v,d=a-A,u=d*O-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*O,h+u*i]}function U(l,h,I,D,v,A,z){var a=l-I,O=h-D,i=(z?A:-A)/J(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,B=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,S=(g<0?-1:1)*J(on(0,T*T*R-P*P)),Y=(P*g-m*S)/R,$=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*S)/R,x=Y-B,e=$-t,r=w-B,C=p-t;return x*x+e*e>r*r+C*C&&(Y=w,$=p),{cx:Y,cy:$,x01:-n,y01:-d,x11:Y*(v/T-1),y11:$*(v/T-1)}}function hn(){var l=cn,h=yn,I=j(0),D=null,v=gn,A=dn,z=mn,a=null,O=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-un,c=A.apply(this,arguments)-un,B=rn(c-f),t=c>f;if(a||(a=n=O()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(B>tn-y)a.moveTo(s*F(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*F(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=B,S=B,Y=z.apply(this,arguments)/2,$=Y>y&&(D?+D.apply(this,arguments):J(u*u+s*s)),w=_(rn(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if($>y){var C=sn($/u*q(Y)),K=sn($/s*q(Y));(P-=C*2)>y?(C*=t?1:-1,R+=C,T-=C):(P=0,R=T=(f+c)/2),(S-=K*2)>y?(K*=t?1:-1,m+=K,g-=K):(S=0,m=g=(f+c)/2)}var G=s*F(m),H=s*q(m),L=u*F(T),M=u*q(T);if(w>y){var N=s*F(g),Q=s*q(g),V=u*F(R),W=u*q(R),E;if(B<an)if(E=pn(G,H,V,W,N,Q,L,M)){var X=G-E[0],Z=H-E[1],b=N-E[0],k=Q-E[1],nn=1/q(fn((X*b+Z*k)/(J(X*X+Z*Z)*J(b*b+k*k)))/2),en=J(E[0]*E[0]+E[1]*E[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}S>y?x>y?(e=U(V,W,G,H,s,x,t),r=U(N,Q,L,M,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(G,H),a.arc(0,0,s,m,g,!t)):a.moveTo(G,H),!(u>y)||!(P>y)?a.lineTo(L,M):p>y?(e=U(L,M,N,Q,u,-p,t),r=U(G,H,V,W,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-an/2;return[F(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:j(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:j(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:j(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:j(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:j(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:j(+n),i):A},i.padAngle=function(n){return arguments.length?(z=typeof n=="function"?n:j(+n),i):z},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
|