@akagilnc/pi-workflow-roles 0.1.5753 → 0.1.5756

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.
@@ -13964,6 +13964,7 @@ var init_countersign_run = __esm({
13964
13964
  // src/public-cli/instruction-seat-run.ts
13965
13965
  var instruction_seat_run_exports = {};
13966
13966
  __export(instruction_seat_run_exports, {
13967
+ NOTARY_FIXED_DISPATCH: () => NOTARY_FIXED_DISPATCH,
13967
13968
  buildInstructionSeatTurnRequest: () => buildInstructionSeatTurnRequest,
13968
13969
  continueParentAfterChild: () => continueParentAfterChild,
13969
13970
  runPublicInstructionSeat: () => runPublicInstructionSeat,
@@ -14184,7 +14185,7 @@ async function resolveReviewSeatDialogueBody(input) {
14184
14185
  if (sourceRunPath === void 0) return void 0;
14185
14186
  if (input.role === "notary") {
14186
14187
  const { isTicketCourtCountersignSource: isTicketCourtCountersignSource2 } = await Promise.resolve().then(() => (init_run_terminal_artifacts(), run_terminal_artifacts_exports));
14187
- if (isTicketCourtCountersignSource2(sourceRunPath)) return void 0;
14188
+ if (isTicketCourtCountersignSource2(sourceRunPath)) return NOTARY_FIXED_DISPATCH;
14188
14189
  }
14189
14190
  return await loadLedgerPeerBody(sourceRunPath, input.projectRoot, input.home);
14190
14191
  }
@@ -15203,7 +15204,7 @@ async function auditSubmittedRole(turn, env, io, resumedOfficer, passedReceipt)
15203
15204
  await presentTerminal(turn.terminal, { ...io, omitFailureStderrDiagnostic: true }, admitted.runDirectory);
15204
15205
  return turn;
15205
15206
  }
15206
- var AUDITED_ROLES, SECRETARIAT_STATUS_REASK, WORKER_ROUTING_STATUSES, WORKER_STATUS_REASK, DOCTOR_ROUTING_STATUSES, DOCTOR_STATUS_REASK, POST_SUBMISSION_ROUTING, UNREADABLE_REASK_EXHAUSTED, GATE_CHILD_ROLES;
15207
+ var AUDITED_ROLES, SECRETARIAT_STATUS_REASK, WORKER_ROUTING_STATUSES, WORKER_STATUS_REASK, DOCTOR_ROUTING_STATUSES, DOCTOR_STATUS_REASK, POST_SUBMISSION_ROUTING, UNREADABLE_REASK_EXHAUSTED, NOTARY_FIXED_DISPATCH, GATE_CHILD_ROLES;
15207
15208
  var init_instruction_seat_run = __esm({
15208
15209
  "src/public-cli/instruction-seat-run.ts"() {
15209
15210
  "use strict";
@@ -15276,6 +15277,7 @@ var init_instruction_seat_run = __esm({
15276
15277
  }
15277
15278
  };
15278
15279
  UNREADABLE_REASK_EXHAUSTED = { unreadableReaskExhausted: true };
15280
+ NOTARY_FIXED_DISPATCH = "\u8BF7\u5BA1\u672C\u8F6E\u53D7\u5BA1\u5BF9\u8C61\uFF0C\u6309\u7B26\u5B9D\u90CE\u804C\u638C\u4EA4\u5377\u3002";
15279
15281
  GATE_CHILD_ROLES = /* @__PURE__ */ new Set(["notary", "auditor", "inspector", "countersign"]);
15280
15282
  }
15281
15283
  });
@@ -14158,6 +14158,7 @@ var init_countersign_run = __esm({
14158
14158
  // src/public-cli/instruction-seat-run.ts
14159
14159
  var instruction_seat_run_exports = {};
14160
14160
  __export(instruction_seat_run_exports, {
14161
+ NOTARY_FIXED_DISPATCH: () => NOTARY_FIXED_DISPATCH,
14161
14162
  buildInstructionSeatTurnRequest: () => buildInstructionSeatTurnRequest,
14162
14163
  continueParentAfterChild: () => continueParentAfterChild,
14163
14164
  runPublicInstructionSeat: () => runPublicInstructionSeat,
@@ -14378,7 +14379,7 @@ async function resolveReviewSeatDialogueBody(input) {
14378
14379
  if (sourceRunPath === void 0) return void 0;
14379
14380
  if (input.role === "notary") {
14380
14381
  const { isTicketCourtCountersignSource: isTicketCourtCountersignSource2 } = await Promise.resolve().then(() => (init_run_terminal_artifacts(), run_terminal_artifacts_exports));
14381
- if (isTicketCourtCountersignSource2(sourceRunPath)) return void 0;
14382
+ if (isTicketCourtCountersignSource2(sourceRunPath)) return NOTARY_FIXED_DISPATCH;
14382
14383
  }
14383
14384
  return await loadLedgerPeerBody(sourceRunPath, input.projectRoot, input.home);
14384
14385
  }
@@ -15397,7 +15398,7 @@ async function auditSubmittedRole(turn, env, io, resumedOfficer, passedReceipt)
15397
15398
  await presentTerminal(turn.terminal, { ...io, omitFailureStderrDiagnostic: true }, admitted.runDirectory);
15398
15399
  return turn;
15399
15400
  }
15400
- var AUDITED_ROLES, SECRETARIAT_STATUS_REASK, WORKER_ROUTING_STATUSES, WORKER_STATUS_REASK, DOCTOR_ROUTING_STATUSES, DOCTOR_STATUS_REASK, POST_SUBMISSION_ROUTING, UNREADABLE_REASK_EXHAUSTED, GATE_CHILD_ROLES;
15401
+ var AUDITED_ROLES, SECRETARIAT_STATUS_REASK, WORKER_ROUTING_STATUSES, WORKER_STATUS_REASK, DOCTOR_ROUTING_STATUSES, DOCTOR_STATUS_REASK, POST_SUBMISSION_ROUTING, UNREADABLE_REASK_EXHAUSTED, NOTARY_FIXED_DISPATCH, GATE_CHILD_ROLES;
15401
15402
  var init_instruction_seat_run = __esm({
15402
15403
  "src/public-cli/instruction-seat-run.ts"() {
15403
15404
  "use strict";
@@ -15470,6 +15471,7 @@ var init_instruction_seat_run = __esm({
15470
15471
  }
15471
15472
  };
15472
15473
  UNREADABLE_REASK_EXHAUSTED = { unreadableReaskExhausted: true };
15474
+ NOTARY_FIXED_DISPATCH = "\u8BF7\u5BA1\u672C\u8F6E\u53D7\u5BA1\u5BF9\u8C61\uFF0C\u6309\u7B26\u5B9D\u90CE\u804C\u638C\u4EA4\u5377\u3002";
15473
15475
  GATE_CHILD_ROLES = /* @__PURE__ */ new Set(["notary", "auditor", "inspector", "countersign"]);
15474
15476
  }
15475
15477
  });
@@ -344,11 +344,14 @@ async function loadLedgerPeerBody(sourceRunDirectory, projectRoot, home) {
344
344
  return undefined;
345
345
  return readableGateItem(latest.accepted);
346
346
  }
347
+ /** Owner-approved fixed Notary dispatch (2026-10-09); never the parent verdict. */
348
+ export const NOTARY_FIXED_DISPATCH = "请审本轮受审对象,按符宝郎职掌交卷。";
347
349
  /**
348
350
  * One delivery rule for review-seat dialogue on new turns and same-parent resume
349
351
  * (#1166 / ADR 0085 / ADR 0087): explicit reask → non-empty caller dispatch →
350
352
  * source-only ledger peer body. Identity stays in startup materials.
351
- * #1195: ticket-court notary skips peer-body preload (countersign source only).
353
+ * #1195: ticket-court notary skips peer-body preload (countersign source only) and
354
+ * receives the fixed dispatch instead (codex rejects an empty prompt).
352
355
  */
353
356
  async function resolveReviewSeatDialogueBody(input) {
354
357
  const reask = input.reask;
@@ -363,7 +366,7 @@ async function resolveReviewSeatDialogueBody(input) {
363
366
  if (input.role === "notary") {
364
367
  const { isTicketCourtCountersignSource } = await import("../run-terminal-artifacts.js");
365
368
  if (isTicketCourtCountersignSource(sourceRunPath))
366
- return undefined;
369
+ return NOTARY_FIXED_DISPATCH;
367
370
  }
368
371
  return await loadLedgerPeerBody(sourceRunPath, input.projectRoot, input.home);
369
372
  }
@@ -19114,6 +19114,7 @@ var init_countersign_run = __esm({
19114
19114
  // src/public-cli/instruction-seat-run.ts
19115
19115
  var instruction_seat_run_exports = {};
19116
19116
  __export(instruction_seat_run_exports, {
19117
+ NOTARY_FIXED_DISPATCH: () => NOTARY_FIXED_DISPATCH,
19117
19118
  buildInstructionSeatTurnRequest: () => buildInstructionSeatTurnRequest,
19118
19119
  continueParentAfterChild: () => continueParentAfterChild,
19119
19120
  runPublicInstructionSeat: () => runPublicInstructionSeat,
@@ -19334,7 +19335,7 @@ async function resolveReviewSeatDialogueBody(input) {
19334
19335
  if (sourceRunPath === void 0) return void 0;
19335
19336
  if (input.role === "notary") {
19336
19337
  const { isTicketCourtCountersignSource: isTicketCourtCountersignSource2 } = await Promise.resolve().then(() => (init_run_terminal_artifacts(), run_terminal_artifacts_exports));
19337
- if (isTicketCourtCountersignSource2(sourceRunPath)) return void 0;
19338
+ if (isTicketCourtCountersignSource2(sourceRunPath)) return NOTARY_FIXED_DISPATCH;
19338
19339
  }
19339
19340
  return await loadLedgerPeerBody(sourceRunPath, input.projectRoot, input.home);
19340
19341
  }
@@ -20353,7 +20354,7 @@ async function auditSubmittedRole(turn, env, io, resumedOfficer, passedReceipt)
20353
20354
  await presentTerminal(turn.terminal, { ...io, omitFailureStderrDiagnostic: true }, admitted.runDirectory);
20354
20355
  return turn;
20355
20356
  }
20356
- var AUDITED_ROLES, SECRETARIAT_STATUS_REASK, WORKER_ROUTING_STATUSES, WORKER_STATUS_REASK, DOCTOR_ROUTING_STATUSES, DOCTOR_STATUS_REASK, POST_SUBMISSION_ROUTING, UNREADABLE_REASK_EXHAUSTED, GATE_CHILD_ROLES;
20357
+ var AUDITED_ROLES, SECRETARIAT_STATUS_REASK, WORKER_ROUTING_STATUSES, WORKER_STATUS_REASK, DOCTOR_ROUTING_STATUSES, DOCTOR_STATUS_REASK, POST_SUBMISSION_ROUTING, UNREADABLE_REASK_EXHAUSTED, NOTARY_FIXED_DISPATCH, GATE_CHILD_ROLES;
20357
20358
  var init_instruction_seat_run = __esm({
20358
20359
  "src/public-cli/instruction-seat-run.ts"() {
20359
20360
  "use strict";
@@ -20426,6 +20427,7 @@ var init_instruction_seat_run = __esm({
20426
20427
  }
20427
20428
  };
20428
20429
  UNREADABLE_REASK_EXHAUSTED = { unreadableReaskExhausted: true };
20430
+ NOTARY_FIXED_DISPATCH = "\u8BF7\u5BA1\u672C\u8F6E\u53D7\u5BA1\u5BF9\u8C61\uFF0C\u6309\u7B26\u5B9D\u90CE\u804C\u638C\u4EA4\u5377\u3002";
20429
20431
  GATE_CHILD_ROLES = /* @__PURE__ */ new Set(["notary", "auditor", "inspector", "countersign"]);
20430
20432
  }
20431
20433
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@akagilnc/pi-workflow-roles",
3
- "version": "0.1.5753",
3
+ "version": "0.1.5756",
4
4
  "description": "Soul-bound workflow roles for Pi",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -529,11 +529,15 @@ async function loadLedgerPeerBody(
529
529
  return readableGateItem(latest.accepted);
530
530
  }
531
531
 
532
+ /** Owner-approved fixed Notary dispatch (2026-10-09); never the parent verdict. */
533
+ export const NOTARY_FIXED_DISPATCH = "请审本轮受审对象,按符宝郎职掌交卷。";
534
+
532
535
  /**
533
536
  * One delivery rule for review-seat dialogue on new turns and same-parent resume
534
537
  * (#1166 / ADR 0085 / ADR 0087): explicit reask → non-empty caller dispatch →
535
538
  * source-only ledger peer body. Identity stays in startup materials.
536
- * #1195: ticket-court notary skips peer-body preload (countersign source only).
539
+ * #1195: ticket-court notary skips peer-body preload (countersign source only) and
540
+ * receives the fixed dispatch instead (codex rejects an empty prompt).
537
541
  */
538
542
  async function resolveReviewSeatDialogueBody(input: {
539
543
  readonly role?: string;
@@ -551,7 +555,7 @@ async function resolveReviewSeatDialogueBody(input: {
551
555
  if (sourceRunPath === undefined) return undefined;
552
556
  if (input.role === "notary") {
553
557
  const { isTicketCourtCountersignSource } = await import("../run-terminal-artifacts.ts");
554
- if (isTicketCourtCountersignSource(sourceRunPath)) return undefined;
558
+ if (isTicketCourtCountersignSource(sourceRunPath)) return NOTARY_FIXED_DISPATCH;
555
559
  }
556
560
  return await loadLedgerPeerBody(sourceRunPath, input.projectRoot, input.home);
557
561
  }
@@ -724,9 +724,9 @@ export async function summonGateOfficer(options: {
724
724
  // Officer host is seat-owned only (#821), not a parent override channel.
725
725
  // #879: binding pointer = parent run directory; dialogue content = submission body.
726
726
  // Conclusion re-ask keeps sole ownership of reviewReask when present.
727
- // #1195 full-blind ticket-court notary (countersign source): do not preload the
728
- // parent body. Identity binds via --source-run; the notary reads the live ticket
729
- // and ledger itself and never opens the countersign verdict (fac9d5ec / sys-opt4).
727
+ // #1195 ticket-court notary (countersign source): do not preload the parent body.
728
+ // Identity binds via --source-run; the notary reads the ticket and verdict itself
729
+ // and its dispatch comes from resolveReviewSeatDialogueBody.
730
730
  // Other officers / non-countersign sources still receive the parent submission body.
731
731
  let gateReviewInstruction: string | undefined;
732
732
  if (options.reask === undefined && options.submission !== undefined) {