@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.
@@ -39,8 +39,9 @@ import {
39
39
  } from "./turn-request.ts";
40
40
  import {
41
41
  presentControlledFailure,
42
- runPostAdmissionManualResume,
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(admitted, authority, {
87
- ...(methodProvenance === undefined ? {} : { methodProvenance }),
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
- let loaded;
220
- try {
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
- request: turnRequest,
267
- adapters: coderAdapters(methodProvenance),
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) => trySettleCollectorTerminalResult(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) => trySettleDoctorTerminalResult(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
- runPostAdmissionManualResume,
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(admitted, authority, {
94
- methodProvenance: methodMaterial.provenance,
95
- methodSkillPath: methodMaterial.skillPath,
96
- methodSkillConfiguredPath: resolvePackagedMethodSkillPath(
97
- packageRoot,
98
- "diagnosing-bugs",
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
- let loaded;
235
- try {
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
- request: turnRequest,
275
- adapters: fixerAdapters(env.packageRoot, methodMaterial),
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) => trySettleJudgeTerminalResult(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
- runPostAdmissionManualResume,
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(admitted, authority, {
90
- methodProvenance: methodMaterial.provenance,
91
- methodSkillPath: methodMaterial.skillPath,
92
- methodSkillConfiguredPath: resolvePackagedMethodSkillPath(
93
- packageRoot,
94
- "resolving-merge-conflicts",
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
- let loaded;
262
- try {
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
- request: turnRequest,
303
- adapters: mergerAdapters(env.packageRoot, methodMaterial),
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: {