@akagilnc/pi-workflow-roles 0.1.4802 → 0.1.4874

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.
Files changed (142) hide show
  1. package/dist/acp-host/production-host.js +19434 -18218
  2. package/dist/analyst-book-key.js +63 -0
  3. package/dist/analyst-cohort.js +167 -0
  4. package/dist/analyst-entry.js +320 -0
  5. package/dist/analyst-index.js +247 -0
  6. package/dist/analyst-ledger.js +561 -0
  7. package/dist/analyst-median.js +16 -0
  8. package/dist/analyst-metric-families/acceptance-success-rework.js +249 -0
  9. package/dist/analyst-metric-families/b2-frame-buckets-actions.js +189 -0
  10. package/dist/analyst-metric-families/gate-cycles.js +77 -0
  11. package/dist/analyst-metric-families/leg-wall-clock.js +56 -0
  12. package/dist/analyst-metric-families/round-timeline.js +126 -0
  13. package/dist/analyst-metric-families.js +23 -0
  14. package/dist/analyst-metric-family.js +11 -0
  15. package/dist/analyst-model-groups.js +135 -0
  16. package/dist/analyst-page.js +182 -0
  17. package/dist/atomic-write.js +23 -0
  18. package/dist/auditor-soul.js +1 -1
  19. package/dist/countersign-contracts.js +0 -2
  20. package/dist/diarist-contracts.js +0 -1
  21. package/dist/doctor-contracts.js +2 -2
  22. package/dist/gatekeeper-role.js +15 -16
  23. package/dist/gleaner-left-contracts.js +0 -2
  24. package/dist/headless-host/production-host.js +16967 -15749
  25. package/dist/host-contracts.js +0 -4
  26. package/dist/inspector-contracts.js +0 -2
  27. package/dist/institutional-resolution.js +4 -2
  28. package/dist/merger-contracts.js +0 -2
  29. package/dist/migrate-book-topology.js +3908 -3089
  30. package/dist/navigator-public-session.js +4 -3
  31. package/dist/notary-contracts.js +0 -2
  32. package/dist/package-contracts/auditor-output.js +0 -1
  33. package/dist/package-contracts/collector-output.js +0 -2
  34. package/dist/package-contracts/fixer-output.js +0 -2
  35. package/dist/package-contracts/gatekeeper-output.js +0 -2
  36. package/dist/package-contracts/judge-output.js +0 -2
  37. package/dist/package-contracts/navigator-output.js +0 -2
  38. package/dist/package-contracts/reviewer-output.js +0 -2
  39. package/dist/package-contracts/terminating-tools.js +32 -92
  40. package/dist/package-contracts/worker-output.js +0 -4
  41. package/dist/packaged-role-registry.js +518 -36
  42. package/dist/pi/role-turn-host.js +2 -1
  43. package/dist/public-cli/analyst-run.js +185 -0
  44. package/dist/public-cli/cli.js +885 -0
  45. package/dist/public-cli/config.js +12 -9
  46. package/dist/public-cli/countersign-run.js +4 -311
  47. package/dist/public-cli/instruction-seat-run.js +628 -158
  48. package/dist/public-cli/invocation.js +806 -1550
  49. package/dist/public-cli/main.js +6962 -9882
  50. package/dist/public-cli/option-definitions.js +51 -99
  51. package/dist/public-cli/post-admission.js +30 -2
  52. package/dist/public-cli/run-lifecycle.js +234 -353
  53. package/dist/public-cli/seat-ticket-binding.js +6 -0
  54. package/dist/public-cli/settlement.js +261 -675
  55. package/dist/public-cli/turn-request.js +76 -0
  56. package/dist/public-role-summons.js +38 -112
  57. package/dist/role-activation-flags.js +23 -45
  58. package/dist/secretariat-contracts.js +0 -2
  59. package/dist/session-identity.js +17 -8
  60. package/dist/session-opening-materials.js +3 -2
  61. package/extensions/role-runtime.ts +6 -80
  62. package/package.json +1 -1
  63. package/src/acp-host/role-turn-host.ts +4 -1
  64. package/src/analyst-metric-families/acceptance-success-rework.ts +3 -2
  65. package/src/auditor-role.ts +1 -2
  66. package/src/auditor-soul.ts +1 -1
  67. package/src/collector-role.ts +2 -2
  68. package/src/countersign-contracts.ts +0 -1
  69. package/src/countersign-role.ts +1 -1
  70. package/src/diarist-contracts.ts +0 -1
  71. package/src/diarist-role.ts +0 -1
  72. package/src/doctor-auditor.ts +1 -2
  73. package/src/doctor-contracts.ts +1 -1
  74. package/src/doctor-role.ts +3 -2
  75. package/src/external-host-turn-loop.ts +1 -1
  76. package/src/factory-board.ts +10 -7
  77. package/src/gatekeeper-role.ts +16 -10
  78. package/src/gleaner-left-contracts.ts +0 -1
  79. package/src/gleaner-left-role.ts +0 -1
  80. package/src/headless-host/role-turn-host.ts +7 -1
  81. package/src/host-contracts.ts +10 -6
  82. package/src/inspector-contracts.ts +0 -1
  83. package/src/inspector-role.ts +0 -2
  84. package/src/institutional-resolution.ts +6 -4
  85. package/src/judge-role.ts +3 -3
  86. package/src/merger-contracts.ts +0 -1
  87. package/src/merger-role.ts +2 -2
  88. package/src/navigator-public-session.ts +7 -6
  89. package/src/navigator-work-context.ts +6 -8
  90. package/src/notary-contracts.ts +0 -1
  91. package/src/notary-role.ts +2 -3
  92. package/src/package-contracts/auditor-output.ts +0 -1
  93. package/src/package-contracts/collector-output.ts +0 -1
  94. package/src/package-contracts/fixer-output.ts +0 -1
  95. package/src/package-contracts/gatekeeper-output.ts +0 -1
  96. package/src/package-contracts/judge-output.ts +0 -1
  97. package/src/package-contracts/navigator-output.ts +0 -1
  98. package/src/package-contracts/reviewer-output.ts +0 -1
  99. package/src/package-contracts/terminating-tools.ts +27 -99
  100. package/src/package-contracts/worker-output.ts +0 -2
  101. package/src/packaged-role-registry.ts +604 -35
  102. package/src/pi/role-turn-host.ts +2 -1
  103. package/src/public-cli/cli.ts +64 -259
  104. package/src/public-cli/config.ts +18 -10
  105. package/src/public-cli/countersign-run.ts +14 -449
  106. package/src/public-cli/instruction-seat-run.ts +758 -277
  107. package/src/public-cli/invocation.ts +1097 -2051
  108. package/src/public-cli/option-definitions.ts +62 -127
  109. package/src/public-cli/post-admission.ts +47 -2
  110. package/src/public-cli/run-lifecycle.ts +303 -613
  111. package/src/public-cli/seat-ticket-binding.ts +6 -0
  112. package/src/public-cli/settlement.ts +399 -1185
  113. package/src/public-cli/turn-request.ts +92 -1
  114. package/src/public-role-summons.ts +44 -128
  115. package/src/reviewer-role.ts +3 -2
  116. package/src/role-activation-flags.ts +20 -41
  117. package/src/role-runtime-dependencies.ts +25 -26
  118. package/src/role-runtime.ts +121 -232
  119. package/src/secretariat-contracts.ts +0 -1
  120. package/src/secretariat-role.ts +0 -2
  121. package/src/session-identity.ts +23 -8
  122. package/src/session-opening-materials.ts +2 -1
  123. package/src/worker-role.ts +3 -4
  124. package/dist/doctor-auditor.js +0 -25
  125. package/dist/public-cli/diarist-run.js +0 -130
  126. package/dist/public-cli/doctor-run.js +0 -87
  127. package/dist/public-cli/inspector-run.js +0 -151
  128. package/dist/public-cli/judge-run.js +0 -114
  129. package/dist/public-cli/notary-run.js +0 -174
  130. package/dist/public-cli/reviewer-run.js +0 -339
  131. package/src/public-cli/coder-run.ts +0 -255
  132. package/src/public-cli/collector-run.ts +0 -189
  133. package/src/public-cli/diarist-run.ts +0 -233
  134. package/src/public-cli/doctor-run.ts +0 -167
  135. package/src/public-cli/fixer-run.ts +0 -265
  136. package/src/public-cli/gleaner-left-run.ts +0 -167
  137. package/src/public-cli/inspector-run.ts +0 -261
  138. package/src/public-cli/judge-run.ts +0 -196
  139. package/src/public-cli/merger-run.ts +0 -294
  140. package/src/public-cli/notary-run.ts +0 -279
  141. package/src/public-cli/reviewer-run.ts +0 -480
  142. package/src/public-cli/secretariat-run.ts +0 -265
@@ -4,56 +4,46 @@
4
4
  */
5
5
 
6
6
  import {
7
- COLLECTOR_ACCEPTED_TEXT,
8
7
  COLLECTOR_OUTPUT_TOOL,
9
8
  validateAcceptedCollectorReceipt,
10
9
  type CollectorReceipt,
11
10
  } from "./collector-output.ts";
12
11
  import {
13
- JUDGE_ACCEPTED_TEXT,
14
12
  JUDGE_OUTPUT_TOOL_NAME,
15
13
  validateAcceptedJudgeDetails,
16
14
  type JudgeVerdict,
17
15
  } from "./judge-output.ts";
18
16
  import {
19
- REVIEWER_ACCEPTED_TEXT,
20
17
  REVIEWER_OUTPUT_TOOL_NAME,
21
18
  validateReviewerIntent,
22
19
  type ReviewerIntent,
23
20
  } from "./reviewer-output.ts";
21
+ import { PACKAGED_ROLE_REGISTRY } from "../packaged-role-registry.ts";
24
22
  import { CorrectableSubmissionError } from "../submission-correctable-error.ts";
25
- import { DOCTOR_ACCEPTED_TEXT, DOCTOR_OUTPUT_TOOL_NAME, validateDoctorSubmissionShape, validateRecordedDoctorOutput, type DoctorOutput, type DoctorSubmission } from "../doctor-contracts.ts";
26
- import { GATEKEEPER_ACCEPTED_TEXT, GATEKEEPER_OUTPUT_TOOL_NAME, validateRecordedGatekeeperOutput, type GatekeeperDirectOutput } from "./gatekeeper-output.ts";
27
- import { NAVIGATOR_ACCEPTED_TEXT, NAVIGATOR_OUTPUT_TOOL_NAME, validateRecordedNavigatorOutput, type NavigatorAdvice } from "./navigator-output.ts";
28
- import { AUDITOR_ACCEPTED_TEXT, AUDITOR_OUTPUT_TOOL_NAME, validateRecordedAuditorOutput, type AuditorOutput } from "./auditor-output.ts";
29
- import { MERGER_ACCEPTED_TEXT, MERGER_OUTPUT_TOOL_NAME, validateMergerOutput, type MergerOutput } from "../merger-contracts.ts";
30
- import { NOTARY_ACCEPTED_TEXT, NOTARY_OUTPUT_TOOL_NAME, validateRecordedNotaryOutput, type NotaryOutput } from "../notary-contracts.ts";
31
- import { COUNTERSIGN_ACCEPTED_TEXT, COUNTERSIGN_OUTPUT_TOOL_NAME, validateRecordedCountersignOutput, type CountersignVerdict } from "../countersign-contracts.ts";
32
- import { GLEANER_LEFT_ACCEPTED_TEXT, GLEANER_LEFT_OUTPUT_TOOL_NAME, validateRecordedGleanerLeftOutput, type GleanerLeftOutput } from "../gleaner-left-contracts.ts";
33
- import { INSPECTOR_ACCEPTED_TEXT, INSPECTOR_OUTPUT_TOOL_NAME, validateRecordedInspectorOutput, type InspectorOutput } from "../inspector-contracts.ts";
34
- import { DIARIST_ACCEPTED_TEXT, DIARIST_OUTPUT_TOOL_NAME, validateRecordedDiaristOutput, type DiaristOutput } from "../diarist-contracts.ts";
35
- import { SECRETARIAT_ACCEPTED_TEXT, SECRETARIAT_OUTPUT_TOOL_NAME, type SecretariatVerdict } from "../secretariat-contracts.ts";
23
+ import { DOCTOR_OUTPUT_TOOL_NAME, validateDoctorSubmissionShape, validateRecordedDoctorOutput, type DoctorOutput, type DoctorSubmission } from "../doctor-contracts.ts";
24
+ import { GATEKEEPER_OUTPUT_TOOL_NAME, validateRecordedGatekeeperOutput, type GatekeeperDirectOutput } from "./gatekeeper-output.ts";
25
+ import { NAVIGATOR_OUTPUT_TOOL_NAME, validateRecordedNavigatorOutput, type NavigatorAdvice } from "./navigator-output.ts";
26
+ import { AUDITOR_OUTPUT_TOOL_NAME, validateRecordedAuditorOutput, type AuditorOutput } from "./auditor-output.ts";
27
+ import { MERGER_OUTPUT_TOOL_NAME, validateMergerOutput, type MergerOutput } from "../merger-contracts.ts";
28
+ import { NOTARY_OUTPUT_TOOL_NAME, validateRecordedNotaryOutput, type NotaryOutput } from "../notary-contracts.ts";
29
+ import { COUNTERSIGN_OUTPUT_TOOL_NAME, validateRecordedCountersignOutput, type CountersignVerdict } from "../countersign-contracts.ts";
30
+ import { GLEANER_LEFT_OUTPUT_TOOL_NAME, validateRecordedGleanerLeftOutput, type GleanerLeftOutput } from "../gleaner-left-contracts.ts";
31
+ import { INSPECTOR_OUTPUT_TOOL_NAME, validateRecordedInspectorOutput, type InspectorOutput } from "../inspector-contracts.ts";
32
+ import { DIARIST_OUTPUT_TOOL_NAME, validateRecordedDiaristOutput, type DiaristOutput } from "../diarist-contracts.ts";
33
+ import { SECRETARIAT_OUTPUT_TOOL_NAME, type SecretariatVerdict } from "../secretariat-contracts.ts";
36
34
  import {
37
- CODER_ACCEPTED_TEXT,
38
35
  CODER_OUTPUT_TOOL_NAME,
39
- FIXER_ACCEPTED_TEXT,
40
36
  FIXER_OUTPUT_TOOL_NAME,
41
37
  validateAcceptedWorkerDetails,
42
38
  type WorkerOutput,
43
39
  } from "./worker-output.ts";
44
40
 
45
41
  export {
46
- CODER_ACCEPTED_TEXT,
47
42
  CODER_OUTPUT_TOOL_NAME,
48
- COLLECTOR_ACCEPTED_TEXT,
49
43
  COLLECTOR_OUTPUT_TOOL,
50
- FIXER_ACCEPTED_TEXT,
51
44
  FIXER_OUTPUT_TOOL_NAME,
52
- JUDGE_ACCEPTED_TEXT,
53
45
  JUDGE_OUTPUT_TOOL_NAME,
54
- REVIEWER_ACCEPTED_TEXT,
55
46
  REVIEWER_OUTPUT_TOOL_NAME,
56
- MERGER_ACCEPTED_TEXT,
57
47
  MERGER_OUTPUT_TOOL_NAME,
58
48
  validateAcceptedCollectorReceipt,
59
49
  validateAcceptedJudgeDetails,
@@ -90,24 +80,7 @@ export type {
90
80
  SecretariatVerdict,
91
81
  };
92
82
 
93
- export const TERMINATING_TOOL_NAMES = [
94
- CODER_OUTPUT_TOOL_NAME,
95
- FIXER_OUTPUT_TOOL_NAME,
96
- REVIEWER_OUTPUT_TOOL_NAME,
97
- JUDGE_OUTPUT_TOOL_NAME,
98
- COLLECTOR_OUTPUT_TOOL,
99
- DOCTOR_OUTPUT_TOOL_NAME,
100
- MERGER_OUTPUT_TOOL_NAME,
101
- NOTARY_OUTPUT_TOOL_NAME,
102
- COUNTERSIGN_OUTPUT_TOOL_NAME,
103
- GLEANER_LEFT_OUTPUT_TOOL_NAME,
104
- INSPECTOR_OUTPUT_TOOL_NAME,
105
- GATEKEEPER_OUTPUT_TOOL_NAME,
106
- NAVIGATOR_OUTPUT_TOOL_NAME,
107
- AUDITOR_OUTPUT_TOOL_NAME,
108
- DIARIST_OUTPUT_TOOL_NAME,
109
- SECRETARIAT_OUTPUT_TOOL_NAME,
110
- ] as const;
83
+ export const TERMINATING_TOOL_NAMES = PACKAGED_ROLE_REGISTRY.map((entry) => entry.outputTool);
111
84
 
112
85
  export type TerminatingToolName = (typeof TERMINATING_TOOL_NAMES)[number];
113
86
 
@@ -134,43 +107,6 @@ export function isTerminatingToolName(
134
107
  return (TERMINATING_TOOL_NAMES as readonly string[]).includes(name);
135
108
  }
136
109
 
137
- export function acceptedTextFor(toolName: TerminatingToolName): string {
138
- switch (toolName) {
139
- case CODER_OUTPUT_TOOL_NAME:
140
- return CODER_ACCEPTED_TEXT;
141
- case FIXER_OUTPUT_TOOL_NAME:
142
- return FIXER_ACCEPTED_TEXT;
143
- case REVIEWER_OUTPUT_TOOL_NAME:
144
- return REVIEWER_ACCEPTED_TEXT;
145
- case JUDGE_OUTPUT_TOOL_NAME:
146
- return JUDGE_ACCEPTED_TEXT;
147
- case COLLECTOR_OUTPUT_TOOL:
148
- return COLLECTOR_ACCEPTED_TEXT;
149
- case DOCTOR_OUTPUT_TOOL_NAME:
150
- return DOCTOR_ACCEPTED_TEXT;
151
- case MERGER_OUTPUT_TOOL_NAME:
152
- return MERGER_ACCEPTED_TEXT;
153
- case NOTARY_OUTPUT_TOOL_NAME:
154
- return NOTARY_ACCEPTED_TEXT;
155
- case COUNTERSIGN_OUTPUT_TOOL_NAME:
156
- return COUNTERSIGN_ACCEPTED_TEXT;
157
- case GLEANER_LEFT_OUTPUT_TOOL_NAME:
158
- return GLEANER_LEFT_ACCEPTED_TEXT;
159
- case INSPECTOR_OUTPUT_TOOL_NAME:
160
- return INSPECTOR_ACCEPTED_TEXT;
161
- case GATEKEEPER_OUTPUT_TOOL_NAME:
162
- return GATEKEEPER_ACCEPTED_TEXT;
163
- case NAVIGATOR_OUTPUT_TOOL_NAME:
164
- return NAVIGATOR_ACCEPTED_TEXT;
165
- case AUDITOR_OUTPUT_TOOL_NAME:
166
- return AUDITOR_ACCEPTED_TEXT;
167
- case DIARIST_OUTPUT_TOOL_NAME:
168
- return DIARIST_ACCEPTED_TEXT;
169
- case SECRETARIAT_OUTPUT_TOOL_NAME:
170
- return SECRETARIAT_ACCEPTED_TEXT;
171
- }
172
- }
173
-
174
110
  export class AcceptedDetailsContractError extends CorrectableSubmissionError {
175
111
  readonly code = "accepted_details_contract" as const;
176
112
  constructor(message: string, options?: ErrorOptions) {
@@ -215,28 +151,20 @@ export type AcceptedFacts = {
215
151
  /** Read status/commit leaves the role wrote — never invent defaults (#836). */
216
152
  export function acceptedFacts(toolName: TerminatingToolName, details: AcceptedDetails): AcceptedFacts {
217
153
  const record = details as Record<string, unknown>;
218
- switch (toolName) {
219
- case JUDGE_OUTPUT_TOOL_NAME:
220
- return typeof record.judgeStatus === "string" ? { status: record.judgeStatus } : {};
221
- case COUNTERSIGN_OUTPUT_TOOL_NAME:
222
- return typeof record.countersignStatus === "string" ? { status: record.countersignStatus } : {};
223
- case SECRETARIAT_OUTPUT_TOOL_NAME:
224
- return typeof record.secretariatStatus === "string" ? { status: record.secretariatStatus } : {};
225
- case MERGER_OUTPUT_TOOL_NAME: {
226
- const status = typeof record.status === "string" ? record.status : undefined;
227
- return {
228
- ...(status === undefined ? {} : { status }),
229
- ...(status === "completed" && typeof record.mergeCommitId === "string"
230
- ? { commit: record.mergeCommitId }
231
- : {}),
232
- };
233
- }
234
- case COLLECTOR_OUTPUT_TOOL:
235
- // Collector has no status leaf — do not invent "collected".
236
- return typeof record.status === "string" ? { status: record.status } : {};
237
- default:
238
- return typeof record.status === "string" ? { status: record.status } : {};
239
- }
154
+ const entry = PACKAGED_ROLE_REGISTRY.find((candidate) => candidate.outputTool === toolName);
155
+ const statusKey = entry !== undefined && "receiptStatusKey" in entry ? entry.receiptStatusKey : "status";
156
+ const status = typeof record[statusKey] === "string" ? record[statusKey] : undefined;
157
+ const commitKey = entry !== undefined && "receiptCommitKey" in entry ? entry.receiptCommitKey : undefined;
158
+ const commitWhen = entry !== undefined && "receiptCommitWhen" in entry ? entry.receiptCommitWhen : undefined;
159
+ const commit = commitKey !== undefined
160
+ && status === commitWhen
161
+ && typeof record[commitKey] === "string"
162
+ ? record[commitKey]
163
+ : undefined;
164
+ return {
165
+ ...(status === undefined ? {} : { status }),
166
+ ...(commit === undefined ? {} : { commit }),
167
+ };
240
168
  }
241
169
 
242
170
  /** Deep structural equality for lifecycle agreement checks. */
@@ -1,7 +1,6 @@
1
1
  /** Package-owned independent Coder and Fixer output leaves. */
2
2
 
3
3
  export {
4
- FIXER_ACCEPTED_TEXT,
5
4
  FIXER_OUTPUT_TOOL_NAME,
6
5
  fixerOutputSchema,
7
6
  validateFixerOutput,
@@ -17,7 +16,6 @@ export type { FixerInvocationInput, FixerPrerequisite } from "./fixer-packet.ts"
17
16
  import { validateFixerOutput, type FixerOutput } from "./fixer-output.ts";
18
17
 
19
18
  export const CODER_OUTPUT_TOOL_NAME = "ak_coder_output";
20
- export const CODER_ACCEPTED_TEXT = "将作监回执已接受";
21
19
  export type WorkerRoleLabel = "Coder" | "Fixer";
22
20
  export type CoderOutput =
23
21
  | { status: "planned"; report: string }