@akagilnc/pi-workflow-roles 0.1.3886 → 0.1.3898
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/README.zh-CN.md +1 -1
- package/dist/acp-host/production-host.js +37 -82
- package/dist/headless-host/production-host.js +37 -82
- package/dist/public-cli/doctor-run.js +1 -1
- package/dist/public-cli/judge-run.js +1 -1
- package/dist/public-cli/main.js +204 -287
- package/dist/public-cli/option-definitions.js +4 -3
- package/dist/public-cli/post-admission.js +57 -98
- package/dist/public-cli/run-lifecycle.js +3 -3
- package/dist/public-cli/settlement.js +47 -47
- package/dist/public-cli/turn-request.js +3 -0
- package/dist/submission-ledger.js +7 -8
- package/package.json +1 -1
- package/src/host-contracts.ts +2 -3
- package/src/public-cli/cli.ts +6 -2
- package/src/public-cli/coder-run.ts +34 -52
- package/src/public-cli/collector-run.ts +2 -1
- package/src/public-cli/doctor-run.ts +2 -1
- package/src/public-cli/fixer-run.ts +35 -50
- package/src/public-cli/judge-run.ts +2 -1
- package/src/public-cli/merger-run.ts +36 -51
- package/src/public-cli/option-definitions.ts +4 -3
- package/src/public-cli/post-admission.ts +104 -132
- package/src/public-cli/reviewer-run.ts +35 -50
- package/src/public-cli/run-lifecycle.ts +3 -3
- package/src/public-cli/settlement.ts +49 -28
- package/src/public-cli/turn-request.ts +5 -0
- package/src/submission-ledger.ts +7 -7
|
@@ -39,8 +39,9 @@ import {
|
|
|
39
39
|
} from "./turn-request.ts";
|
|
40
40
|
import {
|
|
41
41
|
presentControlledFailure,
|
|
42
|
-
|
|
42
|
+
resolveResumeMethodMaterialAdapters,
|
|
43
43
|
runPostAdmissionResumable,
|
|
44
|
+
runPostAdmissionSeatResume,
|
|
44
45
|
type PostAdmissionAdapters,
|
|
45
46
|
type PostAdmissionEnv,
|
|
46
47
|
resumeTurnRequestProjectionOptions,
|
|
@@ -82,10 +83,15 @@ function coderAdapters(
|
|
|
82
83
|
methodProvenance?: PackagedMethodSkillProvenance,
|
|
83
84
|
): PostAdmissionAdapters<AdmittedCoderInvocation> {
|
|
84
85
|
return {
|
|
85
|
-
trySettle: (admitted, authority) =>
|
|
86
|
-
trySettleCoderTerminalResult(
|
|
87
|
-
|
|
88
|
-
|
|
86
|
+
trySettle: (admitted, authority, scope) =>
|
|
87
|
+
trySettleCoderTerminalResult(
|
|
88
|
+
admitted,
|
|
89
|
+
authority,
|
|
90
|
+
{
|
|
91
|
+
...(methodProvenance === undefined ? {} : { methodProvenance }),
|
|
92
|
+
},
|
|
93
|
+
scope,
|
|
94
|
+
),
|
|
89
95
|
};
|
|
90
96
|
}
|
|
91
97
|
|
|
@@ -216,55 +222,31 @@ export async function runPublicCoderResume(
|
|
|
216
222
|
admitted?: AdmittedCoderInvocation;
|
|
217
223
|
terminal?: TerminalResult;
|
|
218
224
|
}> {
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
loaded = await loadResumableCoderRun(env.home, request.runId, env.principalAuthority);
|
|
222
|
-
} catch (error) {
|
|
223
|
-
if (error instanceof CliUsageError) {
|
|
224
|
-
presentStructuralRejection(error, io);
|
|
225
|
-
return { exitCode: 2 };
|
|
226
|
-
}
|
|
227
|
-
throw error;
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
const { admitted } = loaded;
|
|
231
|
-
|
|
232
|
-
let methodProvenance: PackagedMethodSkillProvenance | undefined;
|
|
233
|
-
if (admitted.phase === "apply") {
|
|
234
|
-
try {
|
|
235
|
-
const material = await loadPackagedMethodSkillMaterial(
|
|
236
|
-
env.packageRoot,
|
|
237
|
-
"tdd",
|
|
238
|
-
);
|
|
239
|
-
methodProvenance = material.provenance;
|
|
240
|
-
} catch (error) {
|
|
241
|
-
return (await presentControlledFailure(
|
|
242
|
-
admitted,
|
|
243
|
-
{
|
|
244
|
-
timedOut: false,
|
|
245
|
-
code: null,
|
|
246
|
-
stderr: "",
|
|
247
|
-
thrown: error,
|
|
248
|
-
knownCause: "activation",
|
|
249
|
-
},
|
|
250
|
-
coderAdapters(),
|
|
251
|
-
env.principalAuthority,
|
|
252
|
-
io,
|
|
253
|
-
)) as { exitCode: number; admitted: AdmittedCoderInvocation; terminal: TerminalResult };
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
const turnRequest = buildCoderTurnRequest(
|
|
258
|
-
admitted,
|
|
259
|
-
resumeTurnRequestProjectionOptions(admitted, request, env),
|
|
260
|
-
);
|
|
261
|
-
|
|
262
|
-
return await runPostAdmissionManualResume({
|
|
263
|
-
admitted,
|
|
225
|
+
return await runPostAdmissionSeatResume({
|
|
226
|
+
request,
|
|
264
227
|
env,
|
|
265
228
|
io,
|
|
266
|
-
|
|
267
|
-
|
|
229
|
+
load: (effective) =>
|
|
230
|
+
loadResumableCoderRun(env.home, effective.runId, env.principalAuthority),
|
|
231
|
+
buildTurnRequest: (admitted, effective) =>
|
|
232
|
+
buildCoderTurnRequest(
|
|
233
|
+
admitted,
|
|
234
|
+
resumeTurnRequestProjectionOptions(admitted, effective, env),
|
|
235
|
+
),
|
|
236
|
+
adapters: coderAdapters(),
|
|
237
|
+
// Apply-only method; plan resume keeps empty provenance (same as initial).
|
|
238
|
+
afterAdmittedLoad: (admitted) =>
|
|
239
|
+
resolveResumeMethodMaterialAdapters({
|
|
240
|
+
admitted,
|
|
241
|
+
authority: env.principalAuthority,
|
|
242
|
+
io,
|
|
243
|
+
shouldLoad: admitted.phase === "apply",
|
|
244
|
+
loadMaterial: () =>
|
|
245
|
+
loadPackagedMethodSkillMaterial(env.packageRoot, "tdd"),
|
|
246
|
+
adaptersWith: (material) => coderAdapters(material.provenance),
|
|
247
|
+
emptyAdapters: coderAdapters(),
|
|
248
|
+
knownCause: "activation",
|
|
249
|
+
}),
|
|
268
250
|
...(env.engine === undefined ? {} : { effectiveEngine: env.engine }),
|
|
269
251
|
});
|
|
270
252
|
}
|
|
@@ -126,7 +126,8 @@ export async function runPublicCollector(
|
|
|
126
126
|
|
|
127
127
|
function collectorAdapters(): PostAdmissionAdapters<AdmittedCollectorInvocation> {
|
|
128
128
|
return {
|
|
129
|
-
trySettle: (admitted, authority) =>
|
|
129
|
+
trySettle: (admitted, authority, scope) =>
|
|
130
|
+
trySettleCollectorTerminalResult(admitted, authority, scope),
|
|
130
131
|
shouldPresentSettled: () => true,
|
|
131
132
|
resolveRunnerKnownFailure: async ({ result, sessionFile }) => {
|
|
132
133
|
const infrastructureFailure = await readCollectorInfrastructureFailure(sessionFile);
|
|
@@ -120,7 +120,8 @@ export async function runPublicDoctor(
|
|
|
120
120
|
|
|
121
121
|
function doctorAdapters(): PostAdmissionAdapters<AdmittedDoctorInvocation> {
|
|
122
122
|
return {
|
|
123
|
-
trySettle: (admitted, authority) =>
|
|
123
|
+
trySettle: (admitted, authority, scope) =>
|
|
124
|
+
trySettleDoctorTerminalResult(admitted, authority, scope),
|
|
124
125
|
shouldPresentSettled: (terminal) =>
|
|
125
126
|
isLawfulTypedTerminalOutcome(terminal.roleOutcome),
|
|
126
127
|
};
|
|
@@ -42,8 +42,9 @@ import {
|
|
|
42
42
|
} from "./turn-request.ts";
|
|
43
43
|
import {
|
|
44
44
|
presentControlledFailure,
|
|
45
|
-
|
|
45
|
+
resolveResumeMethodMaterialAdapters,
|
|
46
46
|
runPostAdmissionResumable,
|
|
47
|
+
runPostAdmissionSeatResume,
|
|
47
48
|
type PostAdmissionAdapters,
|
|
48
49
|
type PostAdmissionEnv,
|
|
49
50
|
resumeTurnRequestProjectionOptions,
|
|
@@ -87,17 +88,22 @@ function fixerAdapters(
|
|
|
87
88
|
methodMaterial?: PackagedMethodSkillMaterial,
|
|
88
89
|
): PostAdmissionAdapters<AdmittedFixerInvocation> {
|
|
89
90
|
return {
|
|
90
|
-
trySettle: (admitted, authority) =>
|
|
91
|
+
trySettle: (admitted, authority, scope) =>
|
|
91
92
|
methodMaterial === undefined
|
|
92
93
|
? Promise.resolve(undefined)
|
|
93
|
-
: trySettleFixerTerminalResult(
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
94
|
+
: trySettleFixerTerminalResult(
|
|
95
|
+
admitted,
|
|
96
|
+
authority,
|
|
97
|
+
{
|
|
98
|
+
methodProvenance: methodMaterial.provenance,
|
|
99
|
+
methodSkillPath: methodMaterial.skillPath,
|
|
100
|
+
methodSkillConfiguredPath: resolvePackagedMethodSkillPath(
|
|
101
|
+
packageRoot,
|
|
102
|
+
"diagnosing-bugs",
|
|
103
|
+
),
|
|
104
|
+
},
|
|
105
|
+
scope,
|
|
106
|
+
),
|
|
101
107
|
};
|
|
102
108
|
}
|
|
103
109
|
|
|
@@ -231,48 +237,27 @@ export async function runPublicFixerResume(
|
|
|
231
237
|
admitted?: AdmittedFixerInvocation;
|
|
232
238
|
terminal?: TerminalResult;
|
|
233
239
|
}> {
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
loaded = await loadResumableFixerRun(env.home, request.runId, env.principalAuthority);
|
|
237
|
-
} catch (error) {
|
|
238
|
-
if (error instanceof CliUsageError) {
|
|
239
|
-
presentStructuralRejection(error, io);
|
|
240
|
-
return { exitCode: 2 };
|
|
241
|
-
}
|
|
242
|
-
throw error;
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
const { admitted } = loaded;
|
|
246
|
-
|
|
247
|
-
let methodMaterial: PackagedMethodSkillMaterial;
|
|
248
|
-
try {
|
|
249
|
-
methodMaterial = await loadFixerMethodMaterial(env.packageRoot);
|
|
250
|
-
} catch (error) {
|
|
251
|
-
return (await presentControlledFailure(
|
|
252
|
-
admitted,
|
|
253
|
-
{
|
|
254
|
-
timedOut: false,
|
|
255
|
-
code: null,
|
|
256
|
-
stderr: "",
|
|
257
|
-
thrown: error,
|
|
258
|
-
},
|
|
259
|
-
fixerAdapters(env.packageRoot),
|
|
260
|
-
env.principalAuthority,
|
|
261
|
-
io,
|
|
262
|
-
)) as { exitCode: number; admitted: AdmittedFixerInvocation; terminal: TerminalResult };
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
const turnRequest = buildFixerTurnRequest(
|
|
266
|
-
admitted,
|
|
267
|
-
resumeTurnRequestProjectionOptions(admitted, request, env),
|
|
268
|
-
);
|
|
269
|
-
|
|
270
|
-
return await runPostAdmissionManualResume({
|
|
271
|
-
admitted,
|
|
240
|
+
return await runPostAdmissionSeatResume({
|
|
241
|
+
request,
|
|
272
242
|
env,
|
|
273
243
|
io,
|
|
274
|
-
|
|
275
|
-
|
|
244
|
+
load: (effective) =>
|
|
245
|
+
loadResumableFixerRun(env.home, effective.runId, env.principalAuthority),
|
|
246
|
+
buildTurnRequest: (admitted, effective) =>
|
|
247
|
+
buildFixerTurnRequest(
|
|
248
|
+
admitted,
|
|
249
|
+
resumeTurnRequestProjectionOptions(admitted, effective, env),
|
|
250
|
+
),
|
|
251
|
+
adapters: fixerAdapters(env.packageRoot),
|
|
252
|
+
afterAdmittedLoad: (admitted) =>
|
|
253
|
+
resolveResumeMethodMaterialAdapters({
|
|
254
|
+
admitted,
|
|
255
|
+
authority: env.principalAuthority,
|
|
256
|
+
io,
|
|
257
|
+
loadMaterial: () => loadFixerMethodMaterial(env.packageRoot),
|
|
258
|
+
adaptersWith: (material) => fixerAdapters(env.packageRoot, material),
|
|
259
|
+
emptyAdapters: fixerAdapters(env.packageRoot),
|
|
260
|
+
}),
|
|
276
261
|
...(env.engine === undefined ? {} : { effectiveEngine: env.engine }),
|
|
277
262
|
});
|
|
278
263
|
}
|
|
@@ -54,7 +54,8 @@ export function buildJudgeTurnRequest(
|
|
|
54
54
|
|
|
55
55
|
function judgeAdapters(): PostAdmissionAdapters<AdmittedJudgeInvocation> {
|
|
56
56
|
return {
|
|
57
|
-
trySettle: (admitted, authority) =>
|
|
57
|
+
trySettle: (admitted, authority, scope) =>
|
|
58
|
+
trySettleJudgeTerminalResult(admitted, authority, scope),
|
|
58
59
|
resolveRunnerKnownFailure: async ({ result, sessionFile }) => {
|
|
59
60
|
const infrastructureFailure = await readEngineDetourInfrastructureFailure(sessionFile);
|
|
60
61
|
return (
|
|
@@ -40,8 +40,9 @@ import {
|
|
|
40
40
|
} from "./turn-request.ts";
|
|
41
41
|
import {
|
|
42
42
|
presentControlledFailure,
|
|
43
|
-
|
|
43
|
+
resolveResumeMethodMaterialAdapters,
|
|
44
44
|
runPostAdmissionResumable,
|
|
45
|
+
runPostAdmissionSeatResume,
|
|
45
46
|
type PostAdmissionAdapters,
|
|
46
47
|
type PostAdmissionEnv,
|
|
47
48
|
resumeTurnRequestProjectionOptions,
|
|
@@ -83,17 +84,22 @@ function mergerAdapters(
|
|
|
83
84
|
methodMaterial?: PackagedMethodSkillMaterial,
|
|
84
85
|
): PostAdmissionAdapters<AdmittedMergerInvocation> {
|
|
85
86
|
return {
|
|
86
|
-
trySettle: (admitted, authority) =>
|
|
87
|
+
trySettle: (admitted, authority, scope) =>
|
|
87
88
|
methodMaterial === undefined
|
|
88
89
|
? Promise.resolve(undefined)
|
|
89
|
-
: trySettleMergerTerminalResult(
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
90
|
+
: trySettleMergerTerminalResult(
|
|
91
|
+
admitted,
|
|
92
|
+
authority,
|
|
93
|
+
{
|
|
94
|
+
methodProvenance: methodMaterial.provenance,
|
|
95
|
+
methodSkillPath: methodMaterial.skillPath,
|
|
96
|
+
methodSkillConfiguredPath: resolvePackagedMethodSkillPath(
|
|
97
|
+
packageRoot,
|
|
98
|
+
"resolving-merge-conflicts",
|
|
99
|
+
),
|
|
100
|
+
},
|
|
101
|
+
scope,
|
|
102
|
+
),
|
|
97
103
|
shouldPresentSettled: (t) =>
|
|
98
104
|
isLawfulTypedTerminalOutcome(t.roleOutcome) || t.roleOutcome.kind === "incomplete",
|
|
99
105
|
};
|
|
@@ -258,49 +264,28 @@ export async function runPublicMergerResume(
|
|
|
258
264
|
admitted?: AdmittedMergerInvocation;
|
|
259
265
|
terminal?: TerminalResult;
|
|
260
266
|
}> {
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
loaded = await loadResumableMergerRun(env.home, request.runId, env.principalAuthority);
|
|
264
|
-
} catch (error) {
|
|
265
|
-
if (error instanceof CliUsageError) {
|
|
266
|
-
presentStructuralRejection(error, io);
|
|
267
|
-
return { exitCode: 2 };
|
|
268
|
-
}
|
|
269
|
-
throw error;
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
const { admitted } = loaded;
|
|
273
|
-
|
|
274
|
-
let methodMaterial: PackagedMethodSkillMaterial;
|
|
275
|
-
try {
|
|
276
|
-
methodMaterial = await loadMergerMethodMaterial(env.packageRoot);
|
|
277
|
-
} catch (error) {
|
|
278
|
-
return (await presentControlledFailure(
|
|
279
|
-
admitted,
|
|
280
|
-
{
|
|
281
|
-
timedOut: false,
|
|
282
|
-
code: null,
|
|
283
|
-
stderr: "",
|
|
284
|
-
thrown: error,
|
|
285
|
-
knownCause: "activation",
|
|
286
|
-
},
|
|
287
|
-
mergerAdapters(env.packageRoot),
|
|
288
|
-
env.principalAuthority,
|
|
289
|
-
io,
|
|
290
|
-
)) as { exitCode: number; admitted: AdmittedMergerInvocation; terminal: TerminalResult };
|
|
291
|
-
}
|
|
292
|
-
|
|
293
|
-
const turnRequest = buildMergerTurnRequest(
|
|
294
|
-
admitted,
|
|
295
|
-
resumeTurnRequestProjectionOptions(admitted, request, env),
|
|
296
|
-
);
|
|
297
|
-
|
|
298
|
-
return await runPostAdmissionManualResume({
|
|
299
|
-
admitted,
|
|
267
|
+
return await runPostAdmissionSeatResume({
|
|
268
|
+
request,
|
|
300
269
|
env,
|
|
301
270
|
io,
|
|
302
|
-
|
|
303
|
-
|
|
271
|
+
load: (effective) =>
|
|
272
|
+
loadResumableMergerRun(env.home, effective.runId, env.principalAuthority),
|
|
273
|
+
buildTurnRequest: (admitted, effective) =>
|
|
274
|
+
buildMergerTurnRequest(
|
|
275
|
+
admitted,
|
|
276
|
+
resumeTurnRequestProjectionOptions(admitted, effective, env),
|
|
277
|
+
),
|
|
278
|
+
adapters: mergerAdapters(env.packageRoot),
|
|
279
|
+
afterAdmittedLoad: (admitted) =>
|
|
280
|
+
resolveResumeMethodMaterialAdapters({
|
|
281
|
+
admitted,
|
|
282
|
+
authority: env.principalAuthority,
|
|
283
|
+
io,
|
|
284
|
+
loadMaterial: () => loadMergerMethodMaterial(env.packageRoot),
|
|
285
|
+
adaptersWith: (material) => mergerAdapters(env.packageRoot, material),
|
|
286
|
+
emptyAdapters: mergerAdapters(env.packageRoot),
|
|
287
|
+
knownCause: "activation",
|
|
288
|
+
}),
|
|
304
289
|
...(env.engine === undefined ? {} : { effectiveEngine: env.engine }),
|
|
305
290
|
});
|
|
306
291
|
}
|
|
@@ -276,8 +276,8 @@ const GLOBAL_OPTIONS = [
|
|
|
276
276
|
repeatable: false,
|
|
277
277
|
form: "option",
|
|
278
278
|
description: {
|
|
279
|
-
en: "Override the effective seat model for this invocation (before or after the command).",
|
|
280
|
-
zh: "
|
|
279
|
+
en: "Override the effective seat model for this invocation (before or after the command name).",
|
|
280
|
+
zh: "覆盖本调用有效席位模型(可置于子命令名前或后)。",
|
|
281
281
|
},
|
|
282
282
|
},
|
|
283
283
|
{
|
|
@@ -1341,13 +1341,14 @@ const SUPPORT_COMMAND_HELP = {
|
|
|
1341
1341
|
resume: {
|
|
1342
1342
|
command: "resume",
|
|
1343
1343
|
summary:
|
|
1344
|
-
"Resume a role run under the live seat table (model/host/engine); session principal must still exist. [message] applies only to seats that accept caller instruction; Notary/符宝郎 must omit message and derives evidence from the existing source-run/dossier binding.",
|
|
1344
|
+
"Resume a role run under the live seat table (model/host/engine); session principal must still exist. [message] applies only to seats that accept caller instruction; Notary/符宝郎 must omit message and derives evidence from the existing source-run/dossier binding. Global --model/--thinking/--host/--engine must be placed before <runId> (either before `resume` or between `resume` and <runId>); the one argv after <runId> is the opaque message, not a flag position (#471).",
|
|
1345
1345
|
usage: ["ak-role resume <runId> [message]"],
|
|
1346
1346
|
examples: [
|
|
1347
1347
|
"ak-role resume 01abc…",
|
|
1348
1348
|
"ak-role resume 01abc… \"owner ruling\"",
|
|
1349
1349
|
"ak-role --host grok-build resume 01abc…",
|
|
1350
1350
|
"ak-role --engine agy resume 01abc…",
|
|
1351
|
+
"ak-role resume --model xai/grok-4.5 01abc… \"owner ruling\"",
|
|
1351
1352
|
],
|
|
1352
1353
|
},
|
|
1353
1354
|
new: {
|