@lingjingai/scriptctl 0.49.8 → 0.49.10
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/changes/{0.49.8.md → 0.49.10.md} +2 -2
- package/dist/help-text.js +2 -2
- package/dist/infra/script-output-api.d.ts +6 -6
- package/dist/infra/script-output-api.js +10 -9
- package/dist/infra/script-output-api.js.map +1 -1
- package/dist/infra/script-output-store.d.ts +3 -2
- package/dist/infra/script-output-store.js.map +1 -1
- package/dist/usecases/script/working-copy.js +189 -55
- package/dist/usecases/script/working-copy.js.map +1 -1
- package/package.json +1 -1
- package/skills/scriptctl/SKILL.md +2 -2
- package/skills/scriptctl/references/atomic-write-workflow.md +1 -1
- package/skills/scriptctl/references/ingest-workflow.md +1 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
# 0.49.
|
|
1
|
+
# 0.49.10
|
|
2
2
|
|
|
3
3
|
## Added
|
|
4
4
|
- Add `checkout` and `status` for managed local working copies, including per-file locking, dirty detection, and arbitrary `--script-path` support.
|
|
5
5
|
|
|
6
6
|
## Changed
|
|
7
|
-
- Change `publish` to
|
|
7
|
+
- Change `publish` to use the dedicated strict-CAS `/publish` endpoint for both initial and managed local-wins writes; legacy PUT/PATCH clients remain compatible, while CAS or ambiguous network failures re-fetch, re-diff, and retry with a five-minute transfer timeout.
|
|
8
8
|
|
|
9
9
|
## Fixed
|
|
10
10
|
- None.
|
package/dist/help-text.js
CHANGED
|
@@ -226,8 +226,8 @@ Usage
|
|
|
226
226
|
- scriptctl publish [--script-path <file>] [--project-group-no <no>]
|
|
227
227
|
|
|
228
228
|
An unmanaged local file may create the first remote revision only. A managed
|
|
229
|
-
working copy
|
|
230
|
-
|
|
229
|
+
working copy fetches the latest snapshot and PATCHes its local-wins diff with
|
|
230
|
+
strict CAS. Network/CAS failures re-fetch and retry. Clean copies use no network.
|
|
231
231
|
`,
|
|
232
232
|
],
|
|
233
233
|
// =========================================================================
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { type PatchScriptOptions, type
|
|
2
|
-
export { ScriptOutputApiError, type ScriptOutputApiErrorOptions, type PatchScriptOptions, type
|
|
1
|
+
import { type PatchScriptOptions, type PublishPatchOptions, type ReplaceScriptOptions, type SaveValidationOptions, type ScriptSnapshot, type ScriptOutputStore } from "./script-output-store.js";
|
|
2
|
+
export { ScriptOutputApiError, type ScriptOutputApiErrorOptions, type PatchScriptOptions, type PublishPatchOptions, type ReplaceScriptOptions, type SaveValidationOptions, type ScriptSnapshot, type ScriptOutputStore, } from "./script-output-store.js";
|
|
3
3
|
export declare function normalizeGatewayBase(value: string): string;
|
|
4
4
|
export declare function quotePath(value: string): string;
|
|
5
5
|
/**
|
|
6
6
|
* V2 script-output store. Same gateway base + X-Access-Key auth as V1, but:
|
|
7
|
-
* -
|
|
8
|
-
* - replaceScript
|
|
7
|
+
* - publishPatch uses the dedicated strict-CAS publish endpoint.
|
|
8
|
+
* - replaceScript and patchScript retain the legacy endpoint contracts.
|
|
9
9
|
* - patchScript sends an RFC6902 PATCH (the compare() diff of old→edited),
|
|
10
10
|
* which V1 cannot do (it degrades to a whole-document replace).
|
|
11
11
|
*
|
|
@@ -14,7 +14,7 @@ export declare function quotePath(value: string): string;
|
|
|
14
14
|
* GET {prefix}/{projectGroupNo}
|
|
15
15
|
* GET {prefix}/{projectGroupNo}/revision
|
|
16
16
|
* GET {prefix}/{projectGroupNo}/snapshot
|
|
17
|
-
*
|
|
17
|
+
* PATCH {prefix}/{projectGroupNo}/publish { baseRevision, patch, validation }
|
|
18
18
|
* PATCH {prefix}/{projectGroupNo} RFC6902 patch array (wrapped with requestId)
|
|
19
19
|
* DELETE {prefix}/{projectGroupNo}
|
|
20
20
|
*/
|
|
@@ -34,7 +34,7 @@ export declare class ScriptV2OutputStore implements ScriptOutputStore {
|
|
|
34
34
|
getScript(): Promise<Record<string, unknown> | null>;
|
|
35
35
|
getRevision(): Promise<Record<string, unknown> | null>;
|
|
36
36
|
getSnapshot(): Promise<ScriptSnapshot | null>;
|
|
37
|
-
|
|
37
|
+
publishPatch(opts: PublishPatchOptions): Promise<Record<string, unknown>>;
|
|
38
38
|
replaceScript(opts: ReplaceScriptOptions): Promise<Record<string, unknown>>;
|
|
39
39
|
patchScript(opts: PatchScriptOptions): Promise<Record<string, unknown>>;
|
|
40
40
|
saveValidationResult(opts: SaveValidationOptions): Promise<Record<string, unknown> | null>;
|
|
@@ -9,8 +9,8 @@ import { ScriptOutputApiError, } from "./script-output-store.js";
|
|
|
9
9
|
// ./script-output-store.js — the shared module is the single source of truth.
|
|
10
10
|
export { ScriptOutputApiError, } from "./script-output-store.js";
|
|
11
11
|
const SCRIPT_OUTPUT_PREFIX = "/api/anime/workbench/script-output/project-groups";
|
|
12
|
-
// V2
|
|
13
|
-
//
|
|
12
|
+
// V2 adds an isolated publish endpoint while preserving the legacy PUT/PATCH
|
|
13
|
+
// contracts. Same gateway base + the same
|
|
14
14
|
// X-Access-Key auth as V1; only the path prefix and the write shape differ.
|
|
15
15
|
const SCRIPT_V2_PREFIX = "/api/anime/workbench/v2/script/project-groups";
|
|
16
16
|
// Project-group metadata lives on a DIFFERENT controller (not under the
|
|
@@ -125,8 +125,8 @@ async function gatewayRequest(gatewayBase, accessKey, timeoutMs, method, path, o
|
|
|
125
125
|
}
|
|
126
126
|
/**
|
|
127
127
|
* V2 script-output store. Same gateway base + X-Access-Key auth as V1, but:
|
|
128
|
-
* -
|
|
129
|
-
* - replaceScript
|
|
128
|
+
* - publishPatch uses the dedicated strict-CAS publish endpoint.
|
|
129
|
+
* - replaceScript and patchScript retain the legacy endpoint contracts.
|
|
130
130
|
* - patchScript sends an RFC6902 PATCH (the compare() diff of old→edited),
|
|
131
131
|
* which V1 cannot do (it degrades to a whole-document replace).
|
|
132
132
|
*
|
|
@@ -135,7 +135,7 @@ async function gatewayRequest(gatewayBase, accessKey, timeoutMs, method, path, o
|
|
|
135
135
|
* GET {prefix}/{projectGroupNo}
|
|
136
136
|
* GET {prefix}/{projectGroupNo}/revision
|
|
137
137
|
* GET {prefix}/{projectGroupNo}/snapshot
|
|
138
|
-
*
|
|
138
|
+
* PATCH {prefix}/{projectGroupNo}/publish { baseRevision, patch, validation }
|
|
139
139
|
* PATCH {prefix}/{projectGroupNo} RFC6902 patch array (wrapped with requestId)
|
|
140
140
|
* DELETE {prefix}/{projectGroupNo}
|
|
141
141
|
*/
|
|
@@ -148,7 +148,8 @@ export class ScriptV2OutputStore {
|
|
|
148
148
|
this.gatewayBase = opts.gatewayBase;
|
|
149
149
|
this.projectGroupNo = opts.projectGroupNo;
|
|
150
150
|
this.accessKey = opts.accessKey;
|
|
151
|
-
|
|
151
|
+
// checkout/publish may transfer a full large snapshot over a weak network.
|
|
152
|
+
this.timeoutMs = opts.timeoutMs ?? 300_000;
|
|
152
153
|
}
|
|
153
154
|
static fromEnv(projectGroupNo) {
|
|
154
155
|
const resolved = (projectGroupNo ?? process.env.SANDBOX_PROJECT_GROUP_NO ?? "").trim();
|
|
@@ -177,11 +178,11 @@ export class ScriptV2OutputStore {
|
|
|
177
178
|
async getSnapshot() {
|
|
178
179
|
return (await this.request("GET", `${this.projectPrefix}/snapshot`, { allowMissing: true }));
|
|
179
180
|
}
|
|
180
|
-
async
|
|
181
|
-
return (await this.request("
|
|
181
|
+
async publishPatch(opts) {
|
|
182
|
+
return (await this.request("PATCH", `${this.projectPrefix}/publish`, {
|
|
182
183
|
body: {
|
|
183
184
|
baseRevision: opts.baseRevision,
|
|
184
|
-
|
|
185
|
+
patch: compare(opts.old, opts.edited),
|
|
185
186
|
validation: opts.validation,
|
|
186
187
|
},
|
|
187
188
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"script-output-api.js","sourceRoot":"","sources":["../../src/infra/script-output-api.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,+EAA+E;AAC/E,8EAA8E;AAC9E,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,MAAM,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC;AAElC,OAAO,EACL,oBAAoB,GAOrB,MAAM,0BAA0B,CAAC;AAElC,6EAA6E;AAC7E,mEAAmE;AACnE,8EAA8E;AAC9E,OAAO,EACL,oBAAoB,GAQrB,MAAM,0BAA0B,CAAC;AAElC,MAAM,oBAAoB,GAAG,mDAAmD,CAAC;AACjF,6EAA6E;AAC7E,
|
|
1
|
+
{"version":3,"file":"script-output-api.js","sourceRoot":"","sources":["../../src/infra/script-output-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,9 +32,10 @@ export interface ScriptSnapshot {
|
|
|
32
32
|
validationSummary?: Record<string, unknown> | null;
|
|
33
33
|
updatedAt?: string | null;
|
|
34
34
|
}
|
|
35
|
-
export interface
|
|
35
|
+
export interface PublishPatchOptions {
|
|
36
36
|
baseRevision: number;
|
|
37
|
-
|
|
37
|
+
old: Record<string, unknown>;
|
|
38
|
+
edited: Record<string, unknown>;
|
|
38
39
|
validation: {
|
|
39
40
|
status: "valid";
|
|
40
41
|
summary: Record<string, unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"script-output-store.js","sourceRoot":"","sources":["../../src/infra/script-output-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAiBhE,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IACpC,MAAM,CAAgB;IACtB,IAAI,CAAyB;IAC7B,OAAO,CAAU;IACjB,aAAa,CAA2B;IAEjD,YAAY,OAAe,EAAE,OAAoC,EAAE;QACjE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC;IAClD,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"script-output-store.js","sourceRoot":"","sources":["../../src/infra/script-output-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import * as fs from "node:fs";
|
|
2
2
|
import { CliError, EXIT_INPUT, EXIT_OK, EXIT_RUNTIME, scriptJsonPath, } from "../../common.js";
|
|
3
3
|
import { isDict, strOf } from "../../domain/script/shared.js";
|
|
4
|
-
import { remoteScriptOutputStoreFromEnv, ScriptOutputApiError } from "../../infra/script-output-api.js";
|
|
4
|
+
import { remoteScriptOutputStoreFromEnv, ScriptOutputApiError, } from "../../infra/script-output-api.js";
|
|
5
5
|
import { assertLocalFileFingerprint, assertScriptUnchanged, atomicWriteJson, localFileFingerprint, readWorkingCopyMetadata, semanticScriptHash, workingCopyPaths, writeWorkingCopyMetadata, } from "../../infra/script-working-copy.js";
|
|
6
6
|
import { apiErrorToCli, validateScriptV3Report } from "./session.js";
|
|
7
|
+
const MAX_PUBLISH_ATTEMPTS = 3;
|
|
7
8
|
function configuredProjectGroupNo(opts) {
|
|
8
9
|
return strOf(opts["project_group_no"] || process.env.SANDBOX_PROJECT_GROUP_NO).trim();
|
|
9
10
|
}
|
|
@@ -61,6 +62,151 @@ function readLocalScript(scriptPath) {
|
|
|
61
62
|
}
|
|
62
63
|
return value;
|
|
63
64
|
}
|
|
65
|
+
function isRevisionConflict(error) {
|
|
66
|
+
return String(error.code) === "9002" || error.message.includes("版本冲突");
|
|
67
|
+
}
|
|
68
|
+
function isAmbiguousResponse(error) {
|
|
69
|
+
const malformedSuccess = error.status !== null
|
|
70
|
+
&& error.status >= 200
|
|
71
|
+
&& error.status < 300
|
|
72
|
+
&& error.code === null;
|
|
73
|
+
return error.status === null || error.status >= 500 || malformedSuccess;
|
|
74
|
+
}
|
|
75
|
+
function snapshotRevision(snapshot) {
|
|
76
|
+
const revision = Number(snapshot.revision);
|
|
77
|
+
if (!Number.isInteger(revision) || revision < 0) {
|
|
78
|
+
throw new CliError("PUBLISH UNKNOWN: snapshot revision invalid", "The gateway returned an invalid snapshot revision.", {
|
|
79
|
+
exitCode: EXIT_RUNTIME,
|
|
80
|
+
errorCode: "PUBLISH_OUTCOME_UNKNOWN",
|
|
81
|
+
received: [JSON.stringify(snapshot)],
|
|
82
|
+
nextSteps: ["Inspect the remote script before retrying."],
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
return revision;
|
|
86
|
+
}
|
|
87
|
+
function outcomeUnknown(baseRevision, received) {
|
|
88
|
+
return new CliError("PUBLISH UNKNOWN: response not confirmed", "The publish outcome could not be confirmed after retrying.", {
|
|
89
|
+
exitCode: EXIT_RUNTIME,
|
|
90
|
+
errorCode: "PUBLISH_OUTCOME_UNKNOWN",
|
|
91
|
+
received: [...received, `baseRevision=${baseRevision}`],
|
|
92
|
+
nextSteps: ["Run publish again; it will inspect the latest snapshot before sending another patch."],
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
async function publishManagedLocalWins(client, scriptPath, script, scriptHash, metadata, validation) {
|
|
96
|
+
const failures = [];
|
|
97
|
+
for (let attempt = 1; attempt <= MAX_PUBLISH_ATTEMPTS; attempt += 1) {
|
|
98
|
+
let snapshot;
|
|
99
|
+
try {
|
|
100
|
+
snapshot = await client.getSnapshot();
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
if (error instanceof ScriptOutputApiError && isAmbiguousResponse(error)) {
|
|
104
|
+
failures.push(`snapshot attempt ${attempt}: ${error.message}`);
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
107
|
+
if (error instanceof ScriptOutputApiError)
|
|
108
|
+
throw apiErrorToCli("PUBLISH BLOCKED: snapshot query failed", error);
|
|
109
|
+
throw error;
|
|
110
|
+
}
|
|
111
|
+
if (snapshot === null || !isDict(snapshot.script)) {
|
|
112
|
+
throw new CliError("PUBLISH BLOCKED: remote script not found", "The managed working copy no longer has a remote script.", {
|
|
113
|
+
exitCode: EXIT_INPUT,
|
|
114
|
+
errorCode: "REMOTE_SCRIPT_NOT_FOUND",
|
|
115
|
+
received: [`projectGroupNo=${client.projectGroupNo}`],
|
|
116
|
+
nextSteps: ["Publish a new unmanaged file to create the remote script, or restore the remote project."],
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
const baseRevision = snapshotRevision(snapshot);
|
|
120
|
+
if (semanticScriptHash(snapshot.script) === scriptHash && snapshot.validationStatus === "valid") {
|
|
121
|
+
return {
|
|
122
|
+
revision: baseRevision,
|
|
123
|
+
patchedFromRevision: baseRevision,
|
|
124
|
+
attempts: attempt,
|
|
125
|
+
recovered: baseRevision !== metadata.baseRevision,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
assertScriptUnchanged(scriptPath, scriptHash);
|
|
129
|
+
try {
|
|
130
|
+
const response = await client.publishPatch({
|
|
131
|
+
baseRevision,
|
|
132
|
+
old: snapshot.script,
|
|
133
|
+
edited: script,
|
|
134
|
+
validation,
|
|
135
|
+
});
|
|
136
|
+
const revision = isDict(response) ? Number(response["revision"]) : Number.NaN;
|
|
137
|
+
if (Number.isInteger(revision) && revision > baseRevision) {
|
|
138
|
+
return { revision, patchedFromRevision: baseRevision, attempts: attempt, recovered: attempt > 1 };
|
|
139
|
+
}
|
|
140
|
+
failures.push(`patch attempt ${attempt}: invalid response ${JSON.stringify(response)}`);
|
|
141
|
+
}
|
|
142
|
+
catch (error) {
|
|
143
|
+
if (error instanceof ScriptOutputApiError && (isRevisionConflict(error) || isAmbiguousResponse(error))) {
|
|
144
|
+
failures.push(`patch attempt ${attempt}: ${error.message}`);
|
|
145
|
+
continue;
|
|
146
|
+
}
|
|
147
|
+
if (error instanceof ScriptOutputApiError)
|
|
148
|
+
throw apiErrorToCli("PUBLISH BLOCKED: patch failed", error);
|
|
149
|
+
throw error;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
throw outcomeUnknown(metadata.baseRevision, failures);
|
|
153
|
+
}
|
|
154
|
+
async function publishInitial(client, scriptPath, script, scriptHash, validation) {
|
|
155
|
+
const failures = [];
|
|
156
|
+
for (let attempt = 1; attempt <= MAX_PUBLISH_ATTEMPTS; attempt += 1) {
|
|
157
|
+
let snapshot;
|
|
158
|
+
try {
|
|
159
|
+
snapshot = await client.getSnapshot();
|
|
160
|
+
}
|
|
161
|
+
catch (error) {
|
|
162
|
+
if (error instanceof ScriptOutputApiError && isAmbiguousResponse(error)) {
|
|
163
|
+
failures.push(`snapshot attempt ${attempt}: ${error.message}`);
|
|
164
|
+
continue;
|
|
165
|
+
}
|
|
166
|
+
if (error instanceof ScriptOutputApiError)
|
|
167
|
+
throw apiErrorToCli("PUBLISH BLOCKED: snapshot query failed", error);
|
|
168
|
+
throw error;
|
|
169
|
+
}
|
|
170
|
+
if (snapshot !== null) {
|
|
171
|
+
const revision = snapshotRevision(snapshot);
|
|
172
|
+
if (isDict(snapshot.script)
|
|
173
|
+
&& semanticScriptHash(snapshot.script) === scriptHash
|
|
174
|
+
&& snapshot.validationStatus === "valid") {
|
|
175
|
+
return { revision, patchedFromRevision: 0, attempts: attempt, recovered: true };
|
|
176
|
+
}
|
|
177
|
+
throw new CliError("PUBLISH BLOCKED: remote script exists", "An unmanaged local script cannot replace an existing remote script.", {
|
|
178
|
+
exitCode: EXIT_INPUT,
|
|
179
|
+
errorCode: "REMOTE_SCRIPT_EXISTS",
|
|
180
|
+
received: [`projectGroupNo=${client.projectGroupNo}`, `revision=${revision}`],
|
|
181
|
+
nextSteps: ["Checkout the remote script, apply the local changes to that managed working copy, then publish."],
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
assertScriptUnchanged(scriptPath, scriptHash);
|
|
185
|
+
try {
|
|
186
|
+
const response = await client.publishPatch({
|
|
187
|
+
baseRevision: 0,
|
|
188
|
+
old: {},
|
|
189
|
+
edited: script,
|
|
190
|
+
validation,
|
|
191
|
+
});
|
|
192
|
+
const revision = isDict(response) ? Number(response["revision"]) : Number.NaN;
|
|
193
|
+
if (Number.isInteger(revision) && revision > 0) {
|
|
194
|
+
return { revision, patchedFromRevision: 0, attempts: attempt, recovered: attempt > 1 };
|
|
195
|
+
}
|
|
196
|
+
failures.push(`patch attempt ${attempt}: invalid response ${JSON.stringify(response)}`);
|
|
197
|
+
}
|
|
198
|
+
catch (error) {
|
|
199
|
+
if (error instanceof ScriptOutputApiError && (isRevisionConflict(error) || isAmbiguousResponse(error))) {
|
|
200
|
+
failures.push(`patch attempt ${attempt}: ${error.message}`);
|
|
201
|
+
continue;
|
|
202
|
+
}
|
|
203
|
+
if (error instanceof ScriptOutputApiError)
|
|
204
|
+
throw apiErrorToCli("PUBLISH BLOCKED: patch failed", error);
|
|
205
|
+
throw error;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
throw outcomeUnknown(0, failures);
|
|
209
|
+
}
|
|
64
210
|
export async function commandCheckout(opts) {
|
|
65
211
|
const scriptPath = scriptJsonPath(opts);
|
|
66
212
|
const discardLocal = Boolean(opts["discard_local"]);
|
|
@@ -183,74 +329,62 @@ export async function commandWorkingCopyPublish(opts) {
|
|
|
183
329
|
nextSteps: [`Run \`scriptctl validate --script-path ${scriptPath}\`, repair the issues, then publish again.`],
|
|
184
330
|
});
|
|
185
331
|
}
|
|
186
|
-
const
|
|
187
|
-
|
|
188
|
-
:
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
},
|
|
205
|
-
});
|
|
206
|
-
}
|
|
207
|
-
catch (error) {
|
|
208
|
-
if (error instanceof ScriptOutputApiError) {
|
|
209
|
-
if (String(error.code) === "9002" || error.message.includes("版本冲突")) {
|
|
210
|
-
throw apiErrorToCli("PUBLISH BLOCKED: revision conflict", error);
|
|
211
|
-
}
|
|
212
|
-
const ambiguousSuccessResponse = error.status !== null
|
|
213
|
-
&& error.status >= 200
|
|
214
|
-
&& error.status < 300
|
|
215
|
-
&& error.code === null;
|
|
216
|
-
if (error.status === null || error.status >= 500 || ambiguousSuccessResponse) {
|
|
217
|
-
throw new CliError("PUBLISH UNKNOWN: response not confirmed", "The publish outcome is unknown because no definitive response was received.", {
|
|
218
|
-
exitCode: EXIT_RUNTIME,
|
|
219
|
-
errorCode: "PUBLISH_OUTCOME_UNKNOWN",
|
|
220
|
-
received: [error.message, `baseRevision=${baseRevision}`],
|
|
221
|
-
nextSteps: [`Inspect the remote script, then run \`scriptctl checkout --script-path ${scriptPath} --discard-local\` to recover when appropriate.`],
|
|
222
|
-
});
|
|
223
|
-
}
|
|
224
|
-
throw apiErrorToCli("PUBLISH BLOCKED: write failed", error);
|
|
225
|
-
}
|
|
226
|
-
throw error;
|
|
227
|
-
}
|
|
228
|
-
const revision = isDict(response) ? Number(response["revision"]) : Number.NaN;
|
|
229
|
-
if (!Number.isInteger(revision) || revision <= baseRevision) {
|
|
230
|
-
throw new CliError("PUBLISH UNKNOWN: response invalid", "The gateway returned an invalid publish revision.", {
|
|
231
|
-
exitCode: EXIT_RUNTIME,
|
|
232
|
-
errorCode: "PUBLISH_OUTCOME_UNKNOWN",
|
|
233
|
-
received: [JSON.stringify(response)],
|
|
234
|
-
nextSteps: [`Inspect the remote script before retrying or discarding ${scriptPath}.`],
|
|
332
|
+
const validationPayload = {
|
|
333
|
+
status: "valid",
|
|
334
|
+
summary: {
|
|
335
|
+
passed: true,
|
|
336
|
+
hasBlocking: false,
|
|
337
|
+
stats: validation["stats"] ?? {},
|
|
338
|
+
issueCount: 0,
|
|
339
|
+
},
|
|
340
|
+
};
|
|
341
|
+
if (metadata !== null) {
|
|
342
|
+
const client = clientForMetadata(opts, metadata);
|
|
343
|
+
const result = await publishManagedLocalWins(client, scriptPath, script, scriptHash, metadata, validationPayload);
|
|
344
|
+
writeWorkingCopyMetadata(scriptPath, {
|
|
345
|
+
schemaVersion: 1,
|
|
346
|
+
projectGroupNo: client.projectGroupNo,
|
|
347
|
+
apiBaseUrl: client.gatewayBase,
|
|
348
|
+
baseRevision: result.revision,
|
|
349
|
+
baseContentHash: scriptHash,
|
|
235
350
|
});
|
|
351
|
+
return [{
|
|
352
|
+
title: "PUBLISH COMPLETE",
|
|
353
|
+
changed: true,
|
|
354
|
+
published: true,
|
|
355
|
+
created: false,
|
|
356
|
+
transport: "patch",
|
|
357
|
+
scriptPath,
|
|
358
|
+
projectGroupNo: client.projectGroupNo,
|
|
359
|
+
baseRevision: result.patchedFromRevision,
|
|
360
|
+
revision: result.revision,
|
|
361
|
+
attempts: result.attempts,
|
|
362
|
+
recovered: result.recovered,
|
|
363
|
+
result: [`published local content over revision ${result.patchedFromRevision} → ${result.revision}`],
|
|
364
|
+
}, EXIT_OK];
|
|
236
365
|
}
|
|
366
|
+
const client = remoteClient(configuredProjectGroupNo(opts) || null);
|
|
367
|
+
const result = await publishInitial(client, scriptPath, script, scriptHash, validationPayload);
|
|
237
368
|
writeWorkingCopyMetadata(scriptPath, {
|
|
238
369
|
schemaVersion: 1,
|
|
239
370
|
projectGroupNo: client.projectGroupNo,
|
|
240
371
|
apiBaseUrl: client.gatewayBase,
|
|
241
|
-
baseRevision: revision,
|
|
372
|
+
baseRevision: result.revision,
|
|
242
373
|
baseContentHash: scriptHash,
|
|
243
374
|
});
|
|
244
375
|
return [{
|
|
245
376
|
title: "PUBLISH COMPLETE",
|
|
246
377
|
changed: true,
|
|
247
378
|
published: true,
|
|
248
|
-
created:
|
|
379
|
+
created: true,
|
|
380
|
+
transport: "patch",
|
|
249
381
|
scriptPath,
|
|
250
382
|
projectGroupNo: client.projectGroupNo,
|
|
251
|
-
baseRevision,
|
|
252
|
-
revision,
|
|
253
|
-
|
|
383
|
+
baseRevision: result.patchedFromRevision,
|
|
384
|
+
revision: result.revision,
|
|
385
|
+
attempts: result.attempts,
|
|
386
|
+
recovered: result.recovered,
|
|
387
|
+
result: [`published revision ${result.patchedFromRevision} → ${result.revision}`],
|
|
254
388
|
}, EXIT_OK];
|
|
255
389
|
}
|
|
256
390
|
//# sourceMappingURL=working-copy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"working-copy.js","sourceRoot":"","sources":["../../../src/usecases/script/working-copy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"working-copy.js","sourceRoot":"","sources":["../../../src/usecases/script/working-copy.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -51,7 +51,7 @@ location 表示可独立布置、可独立生成参考图、可重复引用的
|
|
|
51
51
|
- 编辑远端已有剧本:先 `scriptctl checkout [--script-path FILE]`,再对该文件运行任意原子命令,最后 `scriptctl publish [--script-path FILE]`。
|
|
52
52
|
- `checkout` 会建立 `.scriptctl/<filename>.working-copy.json`,记录远端项目、API 地址、base revision 和语义内容 hash。已有未管理文件或有本地修改时拒绝覆盖;只有明确 `--discard-local` 才丢弃。
|
|
53
53
|
- `status` 完全本地判断 managed / clean / dirty,不访问网络。
|
|
54
|
-
- `publish`
|
|
54
|
+
- `publish` 对已管理文件拉取最新 snapshot,以本地稿为准计算 diff 后严格 CAS PATCH;CAS 或网络失败会重拉、重算、重试。干净工作副本不访问网络。无 metadata 的文件只允许以 base revision 0 首次发布。
|
|
55
55
|
- 所有写命令按文件加锁;外部编辑器在命令期间改文件也会在落盘前被检测并拒绝覆盖。
|
|
56
56
|
- `--workspace-path` 仍只属于 `ingest` / `view` / `ingest status`;普通读写和 publish 用 `--script-path`。
|
|
57
57
|
|
|
@@ -277,7 +277,7 @@ scriptctl publish --script-path workspace/script.json # 首次发布或更
|
|
|
277
277
|
- 🔴 **ingest 不入库**——它只产出 `<workspace>/script.json`。**入库是 `publish` 这独立一步**(沙箱里转完必须 publish,否则后端/前端看不到剧本)。
|
|
278
278
|
- 🔴 **workspace 路径**:不传 `--workspace-path` 默认 `<cwd>/workspace`;`ingest` 结果回显绝对路径。后续读写/publish 指向该目录下的 `script.json`。
|
|
279
279
|
- 抽取后用所有本地动词精修,再 publish。若后续继续编辑远端版本,checkout 到本地再改,不直接对 DB 跑原子 op。
|
|
280
|
-
- publish
|
|
280
|
+
- publish 使用 local-wins:远端 revision 变化时自动以最新 snapshot 为 base 重算 diff,最终远端内容与本地稿一致;不会做三方合并。
|
|
281
281
|
|
|
282
282
|
### `ingest status`:进度按真实文件判定
|
|
283
283
|
|
|
@@ -143,7 +143,7 @@ checkout → 本地查询/原子编辑/do/patch → validate → publish
|
|
|
143
143
|
- 已有远端剧本先 `scriptctl checkout --script-path draft.json`。
|
|
144
144
|
- 全程对同一个 `draft.json` 编辑。新增原子能力只需实现本地操作,不增加远端业务 API。
|
|
145
145
|
- `scriptctl status --script-path draft.json` 查看是否 dirty。
|
|
146
|
-
- `scriptctl publish --script-path draft.json`
|
|
146
|
+
- `scriptctl publish --script-path draft.json` 拉最新 snapshot 后以本地稿为准生成 patch;CAS/网络失败会重拉重试,最终远端内容与本地稿一致。
|
|
147
147
|
- 本地新剧可直接 create/ingest 后首次 publish;没有 working-copy metadata 时只尝试从 revision 0 创建。
|
|
148
148
|
|
|
149
149
|
### 两份 script.json(洗稿 / 对标 / 转绘)
|
|
@@ -85,7 +85,7 @@ scriptctl publish --script-path workspace/script.json --project-group-no 123
|
|
|
85
85
|
|
|
86
86
|
- `publish` 读本地 `--script-path`(默认 `workspace/script.json`),**再跑一遍 v3 校验**,通过才发布。
|
|
87
87
|
- 沙箱里转完**必须 publish**,否则后端/前端看不到剧本。
|
|
88
|
-
-
|
|
88
|
+
- 已管理工作副本 publish 采用 local-wins:CAS/网络失败后重拉 snapshot、重算 diff 并重试,最终远端内容以本地稿为准。
|
|
89
89
|
- 已管理且内容未变时 publish 本地直接 no-op,不发网络请求。服务端不保存 requestId,也不提供 publish 幂等重试。
|
|
90
90
|
|
|
91
91
|
## 六、复杂场景怎么接
|