oasis_test_v2 2.2.86 → 2.2.87
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/dist/index.js +27 -33
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -141260,7 +141260,7 @@ ${m2.spec.split("\n").map((l) => ` > ${l}`).join("\n")}`);
|
|
|
141260
141260
|
// 队列从 N 变 N+1、随后 conclude 撞 queue not quiescent(本文件「怎么提交」那段注释记的卡死形状)。
|
|
141261
141261
|
...args.action === "review" || integrating || queueTaskDue ? [] : [
|
|
141262
141262
|
``,
|
|
141263
|
-
`### \u4EA4\u4ED8\u65F6\u7684\
|
|
141263
|
+
`### \u4EA4\u4ED8\u65F6\u5199\u7ED9\u4E0B\u6E38\u7684\u6CE8\u610F\u4E8B\u9879`,
|
|
141264
141264
|
`\u4E0B\u9762\u51E0\u9879\u662F\u4EA4\u4ED8\u547D\u4EE4\uFF08\`oasis propose\`\uFF09\u7684\u53C2\u6570\uFF0C\u76F4\u63A5\u52A0\u5728\u90A3\u6761\u547D\u4EE4\u540E\u9762\uFF0C\u548C \`--reason\` \u5199\u5728\u4E00\u8D77\uFF1B\`oasis conclude\` \u53EA\u6536 \`--note\`\uFF0C\u5199\u5728 conclude \u4E0A\u7684\u5176\u5B83\u53C2\u6570\u4E0D\u4F1A\u88AB\u8BB0\u5F55\u3002`,
|
|
141265
141265
|
`\`--reason\` \u5199\u660E\u76F8\u5BF9\u4E0A\u4E00\u7248\u6539\u4E86\u4EC0\u4E48\u3001\u4E3A\u4EC0\u4E48\u3001\u53EF\u80FD\u5F71\u54CD\u4EC0\u4E48\uFF1B\u9996\u6B21\u7248\u672C\u8BF4\u660E\u672C\u7248\u5B8C\u6210\u601D\u8DEF\u548C\u5185\u5BB9\u3002`,
|
|
141266
141266
|
`\u53EA\u6709\u5F53\u524D\u7248\u672C\u5DF2\u7ECF\u8FBE\u5230\u4EA4\u4ED8\u6807\u51C6\u65F6\uFF0C\u624D\u53EF\u4EE5\u8BB0\u5F55\uFF08\u6BCF\u9879\u53EF\u4EE5\u5199\u591A\u6761\uFF0C\u7528\u82F1\u6587\u5206\u53F7 \`;\` \u9694\u5F00\uFF1B\u4EE5\u4E0B\u67D0\u4E00\u9879\u5982\u679C\u6CA1\u6709\u5C31\u4E0D\u5199\uFF0C\u540C\u65F6\u8BE5\u53C2\u6570\u4E5F\u4E0D\u5199\uFF09\uFF1A`,
|
|
@@ -143302,9 +143302,12 @@ ${supplemental.taskAppend.trim()}
|
|
|
143302
143302
|
bundle.files["TASK.md"] += [
|
|
143303
143303
|
"",
|
|
143304
143304
|
"## \u6267\u884C\u6062\u590D\uFF08\u4EC5\u5F53\u524D\u8282\u70B9\uFF09",
|
|
143305
|
-
|
|
143306
|
-
|
|
143307
|
-
"\
|
|
143305
|
+
// 2026-09-24(语菲定稿):进度记录可能比实际慢一步(K-04),换了执行机器时工作目录是新的、
|
|
143306
|
+
// 上一趟写的文件都不在(K-05 第三趟)——两种情况都以工作目录里实际有的文件为准。
|
|
143307
|
+
"\u672C\u8F6E\u662F\u540C\u4E00\u8282\u70B9\u4E0A\u4E00\u6B21\u6267\u884C\u4E2D\u65AD\u540E\u7684\u7EE7\u7EED\u3002\u5F00\u5DE5\u524D\u5148\u8BFB `execution/RESUME.md`\uFF0C\u91CC\u9762\u662F\u4E0A\u4E00\u6B21\u6700\u540E\u8BB0\u4E0B\u7684\u8FDB\u5EA6\uFF1B",
|
|
143308
|
+
"\u518D\u67E5\u770B\u5DE5\u4F5C\u76EE\u5F55\u91CC\u5B9E\u9645\u5DF2\u6709\u7684\u6587\u4EF6\uFF0C\u4EE5\u5B9E\u9645\u60C5\u51B5\u4E3A\u51C6\uFF1A",
|
|
143309
|
+
"- \u8FDB\u5EA6\u91CC\u8BF4\u5DF2\u7ECF\u5199\u597D\u7684\u6587\u4EF6\uFF0C\u5DE5\u4F5C\u76EE\u5F55\u91CC\u8FD8\u5728\u7684\uFF0C\u76F4\u63A5\u63A5\u7740\u7528\uFF1B",
|
|
143310
|
+
"- \u5DE5\u4F5C\u76EE\u5F55\u91CC\u6CA1\u6709\u7684\uFF08\u6BD4\u5982\u8FD9\u6B21\u6362\u4E86\u6267\u884C\u673A\u5668\uFF0C\u5DE5\u4F5C\u76EE\u5F55\u662F\u65B0\u7684\uFF09\uFF0C\u8981\u91CD\u65B0\u5199\u3002",
|
|
143308
143311
|
"\u8FD9\u4EFD\u6062\u590D\u6750\u6599\u4E0D\u662F\u4E0A\u6E38\u8282\u70B9\u7684\u4E1A\u52A1\u4EA4\u63A5\uFF1B\u4E0A\u6E38\u4EA4\u63A5\u4ECD\u4EE5 `inputs/*/_HANDOFF.md` \u4E3A\u51C6\u3002",
|
|
143309
143312
|
""
|
|
143310
143313
|
].join("\n");
|
|
@@ -249352,8 +249355,10 @@ function executionContinuityDomain(service) {
|
|
|
249352
249355
|
router.post("/api/execution-continuity/attempts/:id/checkpoints", async (req) => {
|
|
249353
249356
|
const attemptId = resolveAttemptWriter(req, req.params.id);
|
|
249354
249357
|
const b2 = req.body ?? {};
|
|
249358
|
+
if (b2.pendingSteps === void 0) b2.pendingSteps = [];
|
|
249359
|
+
if (b2.recoverability === void 0) b2.recoverability = "partial";
|
|
249355
249360
|
if (!isStringArray(b2.pendingSteps) || !b2.recoverability || !["full", "partial", "none"].includes(b2.recoverability) || b2.durableRefs !== void 0 && !isRefArray(b2.durableRefs) || b2.completedStepIds !== void 0 && !isStringArray(b2.completedStepIds) || b2.trigger !== void 0 && !AGENT_CHECKPOINT_TRIGGERS.includes(b2.trigger)) {
|
|
249356
|
-
throw new ApiError(400, "BAD_REQUEST", "\
|
|
249361
|
+
throw new ApiError(400, "BAD_REQUEST", "pendingSteps \u987B\u4E3A\u5B57\u7B26\u4E32\u6570\u7EC4\uFF1Brecoverability \u53EA\u80FD\u662F full|partial|none");
|
|
249357
249362
|
}
|
|
249358
249363
|
const checkpoint = await service.checkpoint({
|
|
249359
249364
|
attemptId,
|
|
@@ -249473,6 +249478,9 @@ function mergeContinuityRefs2(primary, extra) {
|
|
|
249473
249478
|
}
|
|
249474
249479
|
return out;
|
|
249475
249480
|
}
|
|
249481
|
+
function stripRecoverability(text7) {
|
|
249482
|
+
return text7.replace(/\s*recoverability=\w+/g, "");
|
|
249483
|
+
}
|
|
249476
249484
|
function renderResumePack(pack) {
|
|
249477
249485
|
const lines = [
|
|
249478
249486
|
"# ResumePack",
|
|
@@ -249486,7 +249494,7 @@ function renderResumePack(pack) {
|
|
|
249486
249494
|
lines.push("", "## Previous attempt");
|
|
249487
249495
|
if (!pack.previousAttempt) lines.push("- This is the first attempt.");
|
|
249488
249496
|
else {
|
|
249489
|
-
lines.push(`- Attempt ${pack.previousAttempt.attemptNo ?? "?"}: ${pack.previousHandoff?.summary || pack.previousAttempt.status}`);
|
|
249497
|
+
lines.push(`- Attempt ${pack.previousAttempt.attemptNo ?? "?"}: ${stripRecoverability(pack.previousHandoff?.summary || pack.previousAttempt.status)}`);
|
|
249490
249498
|
const cp = pack.latestCheckpoint;
|
|
249491
249499
|
const recoverySource = pack.recoverySourceAttempt ?? (cp ? pack.previousAttempt : null);
|
|
249492
249500
|
if (cp && recoverySource && recoverySource.id !== pack.previousAttempt.id) {
|
|
@@ -249494,7 +249502,6 @@ function renderResumePack(pack) {
|
|
|
249494
249502
|
}
|
|
249495
249503
|
const done = cp?.completedStepIds ?? [];
|
|
249496
249504
|
const durable = (cp?.durableRefs.length ? cp.durableRefs : pack.previousHandoff?.changedOutputs) ?? [];
|
|
249497
|
-
if (cp) lines.push(`- Recoverability: ${cp.recoverability}`);
|
|
249498
249505
|
if (done.length > 0) lines.push(`- \u4E0A\u4E00\u8D9F\u5DF2\u5B8C\u6210\u7684\u6B65\u9AA4\uFF1A${done.join("\u3001")}`);
|
|
249499
249506
|
for (const ref2 of durable) {
|
|
249500
249507
|
lines.push(` - durable: ${renderRefId(ref2)}${ref2.version ? `@${ref2.version}` : ""}${ref2.label ? ` \u2014 ${ref2.label}` : ""}`);
|
|
@@ -249507,20 +249514,6 @@ function renderResumePack(pack) {
|
|
|
249507
249514
|
);
|
|
249508
249515
|
}
|
|
249509
249516
|
}
|
|
249510
|
-
lines.push("", "## External effects");
|
|
249511
|
-
const effectSummary = pack.externalEffectSummary;
|
|
249512
|
-
if (effectSummary.total === 0) lines.push("- None recorded");
|
|
249513
|
-
else {
|
|
249514
|
-
const totals = effectSummary.totalByStatus;
|
|
249515
|
-
const included = effectSummary.includedByStatus;
|
|
249516
|
-
lines.push(
|
|
249517
|
-
`- ${effectSummary.total} total; showing all ${included.pending} pending, latest ${included.succeeded} of ${totals.succeeded} succeeded, and latest ${included.failed} of ${totals.failed} retryable failed. Older records remain available through the history query.`
|
|
249518
|
-
);
|
|
249519
|
-
}
|
|
249520
|
-
for (const effect of pack.externalEffects) {
|
|
249521
|
-
const action = effect.status === "succeeded" ? "do not repeat" : effect.status === "pending" ? "execution uncertain; reconcile before retry" : "failed; retry allowed";
|
|
249522
|
-
lines.push(`- [${effect.status}/${effect.source}] ${effect.kind} \u2192 ${effect.target} (${action}; key ${effect.idempotencyKey})`);
|
|
249523
|
-
}
|
|
249524
249517
|
const snapshot = Buffer.from(JSON.stringify(pack), "utf8").toString("base64url");
|
|
249525
249518
|
lines.push("", `${RESUME_SNAPSHOT_PREFIX}${snapshot}${RESUME_SNAPSHOT_SUFFIX}`);
|
|
249526
249519
|
return `${lines.join("\n")}
|
|
@@ -249654,7 +249647,7 @@ function renderCoordinatorView(view, taskBackground) {
|
|
|
249654
249647
|
);
|
|
249655
249648
|
if (source.recoveryCheckpoint) {
|
|
249656
249649
|
lines.push(
|
|
249657
|
-
` - Recovery checkpoint: #${source.recoveryCheckpoint.seq}
|
|
249650
|
+
` - Recovery checkpoint: #${source.recoveryCheckpoint.seq} from Attempt ${source.recoveredFromAttempt.attemptNo ?? "?"}`
|
|
249658
249651
|
);
|
|
249659
249652
|
for (const step of source.recoveryCheckpoint.pendingSteps) lines.push(` - Recovery pending: ${step}`);
|
|
249660
249653
|
}
|
|
@@ -249664,14 +249657,14 @@ function renderCoordinatorView(view, taskBackground) {
|
|
|
249664
249657
|
lines.push(` - Recovery Agent handoff (${handoffFrom}): ${source.recoveryHandoff.summary}`);
|
|
249665
249658
|
} else if (source.recoveryHandoff.producedBy === "system_reconstructed") {
|
|
249666
249659
|
lines.push(
|
|
249667
|
-
` - Recovery system reconstruction (${handoffFrom}, not an Agent conclusion): ${source.recoveryHandoff.summary}`
|
|
249660
|
+
` - Recovery system reconstruction (${handoffFrom}, not an Agent conclusion): ${stripRecoverability(source.recoveryHandoff.summary)}`
|
|
249668
249661
|
);
|
|
249669
249662
|
}
|
|
249670
249663
|
}
|
|
249671
249664
|
for (const risk of source.recoveryHandoff?.risks ?? []) lines.push(` - Recovery risk: ${risk}`);
|
|
249672
249665
|
}
|
|
249673
249666
|
if (node2.progress) {
|
|
249674
|
-
lines.push(`- Latest checkpoint
|
|
249667
|
+
lines.push(`- Latest checkpoint at ${node2.progress.lastCheckpointAt}`);
|
|
249675
249668
|
for (const step of node2.progress.pendingSteps) lines.push(` - Pending: ${step}`);
|
|
249676
249669
|
}
|
|
249677
249670
|
if (node2.handoffProducer === "agent" && node2.summary.trim() && !sameCoordinatorText(node2.summary, node2.conclusion)) {
|
|
@@ -292957,16 +292950,16 @@ var COMMAND_DECLS = {
|
|
|
292957
292950
|
},
|
|
292958
292951
|
"continuity-checkpoint": {
|
|
292959
292952
|
group: "\u56FE\u673A\u5236\uFF08\xA76/\xA77\uFF09",
|
|
292960
|
-
usage: "oasis continuity-checkpoint --pending <list> --recoverability full|partial|none [--trigger plan_completed|stage_completed] [--refs <json-array>]
|
|
292953
|
+
usage: "oasis continuity-checkpoint [--completed <list>] [--pending <list>] [--recoverability full|partial|none] [--trigger plan_completed|stage_completed] [--refs <json-array>]",
|
|
292961
292954
|
description: "\u4E3A\u5F53\u524D\u6D3E\u53D1 attempt \u8FFD\u52A0\u53EF\u6062\u590D\u68C0\u67E5\u70B9\uFF08\u81EA\u52A8\u4FDD\u7559\u6700\u65B0\u4E94\u4E2A\uFF09\u3002",
|
|
292962
292955
|
flags: [
|
|
292963
|
-
{ name: "pending", desc:
|
|
292964
|
-
{ name: "recoverability", desc: "\u6062\u590D\u7A0B\u5EA6\uFF08full | partial | none\uFF09
|
|
292956
|
+
{ name: "pending", desc: '\u8FD8\u6CA1\u505A\u7684\u6B65\u9AA4\u3002\u5206\u53F7\u5206\u9694 "a; b" \u6216 JSON \u6570\u7EC4\u90FD\u6536\uFF1B\u4E0D\u5199\u6216\u5199\u7A7A = \u6CA1\u6709\u5269\u4F59' },
|
|
292957
|
+
{ name: "recoverability", desc: "\u6062\u590D\u7A0B\u5EA6\uFF08full | partial | none\uFF09\uFF0C\u53EF\u9009\uFF1B\u4E0D\u5199\u6309 partial \u8BB0" },
|
|
292965
292958
|
{ name: "refs", desc: "\u5DF2\u6301\u4E45\u5316\u4EA7\u51FA\u5F15\u7528 JSON array" },
|
|
292966
|
-
{ name: "completed", desc: "\
|
|
292959
|
+
{ name: "completed", desc: "\u5230\u73B0\u5728\u4E3A\u6B62\u786E\u5B9E\u505A\u5B8C\u7684\u6B65\u9AA4\u3002\u5206\u53F7\u5206\u9694\u6216 JSON \u6570\u7EC4\u90FD\u6536" },
|
|
292967
292960
|
{ name: "trigger", desc: "\u7ED3\u6784\u5316\u8FB9\u754C\uFF08plan_completed | stage_completed\uFF1B\u7701\u7565\u4E3A\u666E\u901A agent checkpoint\uFF09" }
|
|
292968
292961
|
],
|
|
292969
|
-
examples: [
|
|
292962
|
+
examples: ['oasis continuity-checkpoint --completed "\u67E5\u5B8C\u5317\u4EAC\u3001\u4E0A\u6D77\u653F\u7B56\uFF0C\u7ED3\u8BBA\u8BB0\u5728 notes.md; \u5199\u597D deliverable/beijing.md" --pending "\u5199 deliverable/shanghai.md; \u5199\u603B\u7ED3.md"']
|
|
292970
292963
|
},
|
|
292971
292964
|
"continuity-effect": {
|
|
292972
292965
|
group: "\u56FE\u673A\u5236\uFF08\xA76/\xA77\uFF09",
|
|
@@ -294810,7 +294803,7 @@ async function waitForCommandAuthorization(base, headers, draftId, fallback) {
|
|
|
294810
294803
|
}
|
|
294811
294804
|
}
|
|
294812
294805
|
}
|
|
294813
|
-
var CLI_VERSION = "2.2.
|
|
294806
|
+
var CLI_VERSION = "2.2.87" ? "2.2.87" : "dev";
|
|
294814
294807
|
function apiHeaders(token, company) {
|
|
294815
294808
|
const headers = {
|
|
294816
294809
|
authorization: `Bearer ${token}`,
|
|
@@ -295755,9 +295748,10 @@ Trace: ${run.traceRunId}`);
|
|
|
295755
295748
|
break;
|
|
295756
295749
|
}
|
|
295757
295750
|
case "continuity-checkpoint": {
|
|
295751
|
+
const pendingRaw = flags.get("pending");
|
|
295758
295752
|
const result = await api.post("/api/execution-continuity/attempts/current/checkpoints", {
|
|
295759
|
-
pendingSteps:
|
|
295760
|
-
recoverability:
|
|
295753
|
+
pendingSteps: pendingRaw === void 0 || pendingRaw.trim() === "" ? [] : parseStringArrayFlag(pendingRaw, "pending"),
|
|
295754
|
+
...flags.has("recoverability") ? { recoverability: flags.get("recoverability") } : {},
|
|
295761
295755
|
durableRefs: flags.has("refs") ? parseArrayFlag(flags.get("refs"), "refs") : [],
|
|
295762
295756
|
completedStepIds: flags.has("completed") ? parseStringArrayFlag(flags.get("completed"), "completed") : [],
|
|
295763
295757
|
...flags.has("trigger") ? { trigger: flags.get("trigger") } : {}
|
|
@@ -298779,7 +298773,7 @@ function shimScript() {
|
|
|
298779
298773
|
}
|
|
298780
298774
|
|
|
298781
298775
|
// src/index.ts
|
|
298782
|
-
var PKG_VERSION = true ? "2.2.
|
|
298776
|
+
var PKG_VERSION = true ? "2.2.87" : "dev";
|
|
298783
298777
|
var LOCAL_BIN = localBin();
|
|
298784
298778
|
var NPM_PREFIX = npmPrefix();
|
|
298785
298779
|
var INSTANCE = DEFAULT_INSTANCE;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oasis_test_v2",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.87",
|
|
4
4
|
"description": "Oasis node daemon + CLI — background daemon, auto-start, full server CLI",
|
|
5
5
|
"bin": {
|
|
6
6
|
"oasis": "./dist/index.js"
|
|
@@ -26,6 +26,6 @@
|
|
|
26
26
|
"node": ">=20"
|
|
27
27
|
},
|
|
28
28
|
"oasisRelease": {
|
|
29
|
-
"sourceHead": "
|
|
29
|
+
"sourceHead": "9c930cd1c2bf1757fde986333301a7b62376c0ad"
|
|
30
30
|
}
|
|
31
31
|
}
|