@linzumi/cli 1.0.131 → 1.0.133
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/README.md +1 -1
- package/dist/impl-res/crossHarnessFailover.mjs +6 -6
- package/dist/impl-res/index.js +83 -72
- package/dist/impl-res/mcp-server.mjs +1 -1
- package/dist/impl-ts/crossHarnessFailover.mjs +6 -6
- package/dist/impl-ts/index.js +341 -341
- package/package.json +1 -1
- package/scripts/build-core-fate-ladder-parity-oracle.mjs +14 -67
package/package.json
CHANGED
|
@@ -28,16 +28,18 @@ import { build } from 'esbuild';
|
|
|
28
28
|
|
|
29
29
|
const packageRoot = dirname(dirname(fileURLToPath(import.meta.url)));
|
|
30
30
|
|
|
31
|
+
// PARITY SCOPE (owner ruling 2026-07-18, failover becomes a user-decision
|
|
32
|
+
// capability): the compared surface is the SHARED F2 recovery engine only.
|
|
33
|
+
// The TS-only frozen failover rung (flag-OFF forever, superseded) is
|
|
34
|
+
// excluded: no failover constants, no failover flag case, no failover
|
|
35
|
+
// decide input/grant, no commitFailover op, no per-entry failover
|
|
36
|
+
// sub-object, and the rung vocabulary is filtered to the shared members -
|
|
37
|
+
// the ReScript commander has no automatic failover surface to compare.
|
|
31
38
|
const driverSource = `
|
|
32
39
|
import {
|
|
33
40
|
appendFateLadderEntry,
|
|
34
|
-
commitFateLadderFailoverOutcome,
|
|
35
41
|
commitFateLadderHoldDispatch,
|
|
36
42
|
createFateLadderRun,
|
|
37
|
-
crossHarnessFailoverDetail,
|
|
38
|
-
crossHarnessFailoverEnabled,
|
|
39
|
-
crossHarnessFailoverReason,
|
|
40
|
-
crossHarnessFailoverRungSlot,
|
|
41
43
|
decideFateLadderStep,
|
|
42
44
|
defaultFateLadderBudgets,
|
|
43
45
|
fateLadderBudgets,
|
|
@@ -71,22 +73,6 @@ function runJson(run) {
|
|
|
71
73
|
atMs: entry.atMs,
|
|
72
74
|
detail: entry.detail === undefined ? null : entry.detail,
|
|
73
75
|
resetAtMs: entry.resetAtMs === undefined ? null : entry.resetAtMs,
|
|
74
|
-
failover:
|
|
75
|
-
entry.failover === undefined
|
|
76
|
-
? null
|
|
77
|
-
: {
|
|
78
|
-
sourceHarness: entry.failover.sourceHarness,
|
|
79
|
-
targetHarness: entry.failover.targetHarness,
|
|
80
|
-
model: entry.failover.model === undefined ? null : entry.failover.model,
|
|
81
|
-
transpiledItemCount:
|
|
82
|
-
entry.failover.transpiledItemCount === undefined
|
|
83
|
-
? null
|
|
84
|
-
: entry.failover.transpiledItemCount,
|
|
85
|
-
redactedReasoningCount:
|
|
86
|
-
entry.failover.redactedReasoningCount === undefined
|
|
87
|
-
? null
|
|
88
|
-
: entry.failover.redactedReasoningCount,
|
|
89
|
-
},
|
|
90
76
|
})),
|
|
91
77
|
};
|
|
92
78
|
}
|
|
@@ -152,17 +138,8 @@ function runScheduleCase(caseInput) {
|
|
|
152
138
|
inPlaceResume: op.grants?.inPlaceResume === true,
|
|
153
139
|
redispatch: op.grants?.redispatch === true,
|
|
154
140
|
workerRebuild: op.grants?.workerRebuild === true,
|
|
155
|
-
crossHarnessFailover: op.grants?.crossHarnessFailover === true,
|
|
156
141
|
},
|
|
157
142
|
rateLimitResetAtMs: op.resetAtMs ?? undefined,
|
|
158
|
-
failover:
|
|
159
|
-
op.failover === undefined || op.failover === null
|
|
160
|
-
? undefined
|
|
161
|
-
: {
|
|
162
|
-
sourceHarness: op.failover.sourceHarness,
|
|
163
|
-
targetHarness: op.failover.targetHarness,
|
|
164
|
-
model: op.failover.model ?? undefined,
|
|
165
|
-
},
|
|
166
143
|
});
|
|
167
144
|
if (decision.kind !== 'stand') {
|
|
168
145
|
current = decision.run;
|
|
@@ -175,24 +152,6 @@ function runScheduleCase(caseInput) {
|
|
|
175
152
|
current = commitFateLadderHoldDispatch(current, op.nowMs);
|
|
176
153
|
steps.push({ run: runJson(current) });
|
|
177
154
|
}
|
|
178
|
-
} else if (op.op === 'commitFailover') {
|
|
179
|
-
if (current === undefined) {
|
|
180
|
-
steps.push({ skipped: true });
|
|
181
|
-
} else {
|
|
182
|
-
current = commitFateLadderFailoverOutcome(current, {
|
|
183
|
-
outcome: op.outcome,
|
|
184
|
-
atMs: op.nowMs,
|
|
185
|
-
failover: {
|
|
186
|
-
sourceHarness: op.failover.sourceHarness,
|
|
187
|
-
targetHarness: op.failover.targetHarness,
|
|
188
|
-
model: op.failover.model ?? undefined,
|
|
189
|
-
transpiledItemCount: op.failover.transpiledItemCount ?? undefined,
|
|
190
|
-
redactedReasoningCount: op.failover.redactedReasoningCount ?? undefined,
|
|
191
|
-
},
|
|
192
|
-
detail: op.detail ?? undefined,
|
|
193
|
-
});
|
|
194
|
-
steps.push({ run: runJson(current) });
|
|
195
|
-
}
|
|
196
155
|
} else if (op.op === 'append') {
|
|
197
156
|
if (current === undefined) {
|
|
198
157
|
steps.push({ skipped: true });
|
|
@@ -227,7 +186,13 @@ function runCase(input) {
|
|
|
227
186
|
switch (input.kind) {
|
|
228
187
|
case 'constants':
|
|
229
188
|
return {
|
|
230
|
-
|
|
189
|
+
// The shared recovery vocabulary only: the TS-only frozen
|
|
190
|
+
// cross_harness_failover member is excluded by name (2026-07-18
|
|
191
|
+
// ruling) - the ReScript engine's fateLadderRungs is the filtered
|
|
192
|
+
// array by construction.
|
|
193
|
+
fateLadderRungs: fateLadderRungs.filter(
|
|
194
|
+
(rung) => rung !== 'cross_harness_failover'
|
|
195
|
+
),
|
|
231
196
|
inPlaceResumeMaxAttempts,
|
|
232
197
|
fateLadderPolicies,
|
|
233
198
|
defaultFateLadderBudgets,
|
|
@@ -235,25 +200,7 @@ function runCase(input) {
|
|
|
235
200
|
redispatchAfterLocalFailureReason,
|
|
236
201
|
workerRebuildRetryReason,
|
|
237
202
|
rateLimitHoldReasonPrefix,
|
|
238
|
-
crossHarnessFailoverRungSlot,
|
|
239
|
-
crossHarnessFailoverReason,
|
|
240
|
-
crossHarnessFailoverDetailSamples: [
|
|
241
|
-
crossHarnessFailoverDetail({
|
|
242
|
-
sourceHarness: 'codex',
|
|
243
|
-
targetHarness: 'claude_code',
|
|
244
|
-
model: 'parity-model-slug',
|
|
245
|
-
transpiledItemCount: 12,
|
|
246
|
-
redactedReasoningCount: 3,
|
|
247
|
-
}),
|
|
248
|
-
crossHarnessFailoverDetail({
|
|
249
|
-
sourceHarness: 'codex',
|
|
250
|
-
targetHarness: 'claude_code',
|
|
251
|
-
model: undefined,
|
|
252
|
-
}),
|
|
253
|
-
],
|
|
254
203
|
};
|
|
255
|
-
case 'failoverFlag':
|
|
256
|
-
return crossHarnessFailoverEnabled(input.env ?? {});
|
|
257
204
|
case 'budgets':
|
|
258
205
|
return fateLadderBudgets(input.env ?? {});
|
|
259
206
|
case 'holdReason':
|