@akagilnc/pi-workflow-roles 0.1.3891 → 0.1.3900

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
  }