@akagilnc/pi-workflow-roles 0.1.5941 → 0.1.5949

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.
@@ -452,15 +452,15 @@ function withTerminatingOutputDeclarations(schema) {
452
452
  ...baseProperties ?? {},
453
453
  ...baseProperties?.ticketNumber === void 0 ? {
454
454
  ticketNumber: Type.Unknown({
455
- description: "\u53EF\u9009\u672C\u7968\u53F7\u3002\u5C1A\u672A\u7ED1\u5B9A\u65F6\u7531\u89D2\u8272\u5728\u65E2\u6709\u56DE\u6267\u4E2D\u7533\u62A5\uFF08\u6B63\u6574\u6570\u3001\u6570\u5B57\u4E32\u6216\u524D\u5BFC #N\uFF1B\u5F52\u4F4D\u53EA\u8BFB\u672C\u5B57\u6BB5\uFF09\u3002"
455
+ description: "\u4EC5\u5C1A\u672A\u7ED1\u5B9A\u65F6\u586B\u672C\u7968\u53F7\uFF08\u6B63\u6574\u6570\u3001\u6570\u5B57\u4E32\u6216\u524D\u5BFC #N\uFF1B\u5F52\u4F4D\u53EA\u8BFB\u672C\u5B57\u6BB5\uFF09\uFF1B\u6CA1\u6709\u5C31\u586B null"
456
456
  })
457
457
  } : {},
458
458
  ...baseProperties?.summary === void 0 ? {
459
459
  summary: Type.Unknown({
460
- description: "\u672C\u5E2D\u81EA\u884C\u586B\u5199\u7684\u4E00\u4E24\u53E5\u300120\u201350 \u5B57\u7ED3\u8BBA\u6458\u8981\u3002\u53EF\u9009\uFF1B\u4E0D\u56E0\u7F3A\u5931\u6216\u8D85\u957F\u62D2\u6536\u3001\u622A\u65AD\u6216\u4EE3\u586B\u3002"
460
+ description: "\u4EC5\u672C\u5E2D\u6709\u7ED3\u8BBA\u65F6\u586B\u4E00\u4E24\u53E5\u300120\u201350 \u5B57\u7ED3\u8BBA\u6458\u8981\uFF1B\u6CA1\u6709\u5C31\u586B null\u3002\u4E0D\u56E0\u7F3A\u5931\u6216\u8D85\u957F\u62D2\u6536\u3001\u622A\u65AD\u6216\u4EE3\u586B\u3002"
461
461
  })
462
462
  } : {},
463
- [INFRASTRUCTURE_FAILURE_DECLARATION_KEY]: infrastructureFailureDeclarationSchema.properties[INFRASTRUCTURE_FAILURE_DECLARATION_KEY]
463
+ [INFRASTRUCTURE_FAILURE_DECLARATION_KEY]: infrastructureFailureField
464
464
  };
465
465
  const object = Type.Object(properties, { additionalProperties: true });
466
466
  const incoming = schema.required;
@@ -468,30 +468,14 @@ function withTerminatingOutputDeclarations(schema) {
468
468
  object.required = preserved;
469
469
  return object;
470
470
  }
471
- var INFRASTRUCTURE_FAILURE_DECLARATION_KEY, INFRASTRUCTURE_FAILURE_DIAGNOSTIC_KEY, infrastructureFailureNested, infrastructureFailureDeclarationSchema;
471
+ var INFRASTRUCTURE_FAILURE_DECLARATION_KEY, infrastructureFailureField;
472
472
  var init_terminating_infrastructure = __esm({
473
473
  "src/package-contracts/terminating-infrastructure.ts"() {
474
474
  "use strict";
475
475
  INFRASTRUCTURE_FAILURE_DECLARATION_KEY = "infrastructureFailure";
476
- INFRASTRUCTURE_FAILURE_DIAGNOSTIC_KEY = "diagnostic";
477
- infrastructureFailureNested = Type.Object(
478
- {
479
- [INFRASTRUCTURE_FAILURE_DIAGNOSTIC_KEY]: Type.Unknown({
480
- description: "\u57FA\u7840\u8BBE\u65BD\u5931\u8D25\u8BCA\u65AD\u5B57\u7B26\u4E32\u3002"
481
- })
482
- },
483
- {
484
- additionalProperties: true,
485
- description: "\u4EC5\u57FA\u7840\u8BBE\u65BD\u771F\u5B9E\u5931\u8D25\u65F6\u51FA\u73B0\u3002"
486
- }
487
- );
488
- infrastructureFailureNested.required = [];
489
- infrastructureFailureDeclarationSchema = Type.Object(
490
- {
491
- [INFRASTRUCTURE_FAILURE_DECLARATION_KEY]: infrastructureFailureNested
492
- },
493
- { additionalProperties: true }
494
- );
476
+ infrastructureFailureField = Type.Unknown({
477
+ description: "\u4EC5\u57FA\u7840\u8BBE\u65BD\u771F\u5B9E\u5931\u8D25\u65F6\u586B {diagnostic}\uFF1B\u6CA1\u6709\u5C31\u586B null"
478
+ });
495
479
  }
496
480
  });
497
481
 
@@ -520,7 +504,7 @@ var init_review_submission = __esm({
520
504
  reason: Type2.Optional(Type2.Unknown({ description: "\u4E0A\u5448\u7406\u7531" })),
521
505
  violations: Type2.Optional(Type2.Unknown({ description: "\u8FDD\u89C4\u6761\u76EE" })),
522
506
  conflicts: Type2.Optional(Type2.Unknown({ description: "\u5F85\u51B3\u51B2\u7A81" })),
523
- fix: Type2.Optional(Type2.Unknown({ description: "continue \u65F6\u7684\u8865\u6551\u8BF4\u660E\uFF1B\u53EF\u5199 summary \u6458\u8981\uFF0C\u5176\u4F59\u5185\u5BB9\u539F\u6837\u7559\u5B58" })),
507
+ fix: Type2.Optional(Type2.Unknown({ description: "\u4EC5 continue \u65F6\u586B\u8865\u6551\u8BF4\u660E\uFF08\u53EF\u5199 summary \u6458\u8981\uFF0C\u5176\u4F59\u5185\u5BB9\u539F\u6837\u7559\u5B58\uFF09\uFF1B\u6CA1\u6709\u5C31\u586B null" })),
524
508
  classes: Type2.Optional(Type2.Unknown({ description: "\u5DF2\u88C1\u51B3 finding \u7C7B\uFF1B\u53EF\u8BF4\u660E name\u3001owner\u3001boundary\u3001disposition\uFF0C\u539F\u6837\u7559\u5B58" })),
525
509
  note: Type2.Optional(Type2.Unknown({ description: "\u88C1\u51B3\u9644\u6CE8" })),
526
510
  evidence: Type2.Optional(Type2.Unknown({ description: "\u7559\u5B58\u8BC1\u636E" })),
@@ -634,7 +618,7 @@ var init_reviewer_output = __esm({
634
618
  init_open_tool_schema();
635
619
  init_terminating_infrastructure();
636
620
  REVIEWER_OUTPUT_TOOL_NAME = "ak_reviewer_output";
637
- REVIEWER_AMENDMENTS_DESCRIPTION = "\u5DF2\u8FD0\u884C lens \u7684 amendments \u627F\u8F7D candidates\u3001\u9010\u6761\u5904\u7F6E\u4E0E verdict \u7684\u5B8C\u6574\u62A5\u544A\uFF08\u975E\u4EC5 verdict \u884C\uFF09\uFF1B\u663E\u5F0F\u5355\u8F74\u65F6\u53E6\u4E00\u8F74\u53EF\u7701\u7565\uFF08completeness / correctness\uFF09\u3002hard-stop\uFF0Fusage error \u4E3A refused \u65F6\uFF0C\u5DF2\u4EA7\u51FA\u62A5\u544A\u4ECD\u7167\u5F55\u5BF9\u5E94 lens \u5B57\u6BB5\u3002";
621
+ REVIEWER_AMENDMENTS_DESCRIPTION = "\u5DF2\u8FD0\u884C lens \u7684 amendments \u627F\u8F7D candidates\u3001\u9010\u6761\u5904\u7F6E\u4E0E verdict \u7684\u5B8C\u6574\u62A5\u544A\uFF08\u975E\u4EC5 verdict \u884C\uFF09\uFF1B\u5404\u8F74\uFF08completeness / correctness\uFF09\u4EC5\u6709\u5DF2\u4EA7\u51FA\u62A5\u544A\u65F6\u586B\u62A5\u544A\uFF1B\u6CA1\u6709\u5C31\u586B null\u3002hard-stop\uFF0Fusage error \u4E3A refused \u65F6\uFF0C\u5DF2\u4EA7\u51FA\u62A5\u544A\u4ECD\u7167\u5F55\u5BF9\u5E94 lens \u5B57\u6BB5\u3002";
638
622
  REVIEWER_STATUS_DESCRIPTION = "completed | refused\u3002\u4E24\u79CD\u6B63\u5E38 lens verdict\uFF08completeness / correctness\uFF09\u5747 completed\uFF1Bhard-stop \u4E0E usage error \u4E3A refused\uFF08\u5DF2\u4EA7\u51FA\u62A5\u544A\u4ECD\u7167\u5F55\u8FDB\u6240\u9009 lens amendments\uFF09\u3002";
639
623
  reviewerOutputObject = Type4.Object({
640
624
  status: Type4.Unknown({ description: REVIEWER_STATUS_DESCRIPTION }),
@@ -665,10 +649,10 @@ var init_gatekeeper_output = __esm({
665
649
  description: "dispatch | pass"
666
650
  }),
667
651
  officer: Type5.Unknown({
668
- description: "status \u4E3A dispatch \u65F6\u4E3A inspector | notary"
652
+ description: "\u4EC5 status \u4E3A dispatch \u65F6\u586B inspector | notary\uFF1B\u6CA1\u6709\u5C31\u586B null"
669
653
  }),
670
654
  findings: Type5.Unknown({
671
- description: "status \u4E3A pass \u65F6\u53EF\u9009 string[] findings"
655
+ description: "\u4EC5 status \u4E3A pass \u65F6\u586B string[] findings\uFF1B\u6CA1\u6709\u5C31\u586B null"
672
656
  })
673
657
  })
674
658
  );
@@ -769,13 +753,13 @@ var init_navigator_output = __esm({
769
753
  NAVIGATOR_OUTPUT_TOOL_NAME = "ak_navigator_output";
770
754
  navigatorAdviceFields = {
771
755
  prose: Type6.Unknown({
772
- description: "\u5355\u6761\u6563\u6587\u5EFA\u8BAE\u3002\u65E0\u72B6\u6001\u5206\u53C9\u65F6\u4F7F\u7528\uFF1B\u539F\u6837\u5448\u73B0\u3002"
756
+ description: "\u4EC5\u65E0\u72B6\u6001\u5206\u53C9\u65F6\u586B\u5355\u6761\u6563\u6587\u5EFA\u8BAE\uFF1B\u6CA1\u6709\u5C31\u586B null\u3002\u539F\u6837\u5448\u73B0\u3002"
773
757
  }),
774
758
  byStatus: Type6.Unknown({
775
759
  description: "\u6309\u4E3B\u8859\u95E8\u7ED3\u5C40 status \u9884\u5199\u7684\u6563\u6587\u5EFA\u8BAE\u3002\u952E\u4E3A status \u5B57\u9762\u91CF\uFF0C\u503C\u4E3A\u5EFA\u8BAE\u6B63\u6587\u3002\u7ED3\u7B97\u65F6\u4EE3\u7801\u53EA\u6309\u5B9E\u9645 status \u53D6\u5BF9\u5E94\u539F\u6587\uFF0C\u4E0D\u89E3\u6790\u5EFA\u8BAE\u8BED\u4E49\u3002"
776
760
  }),
777
761
  byRole: Type6.Unknown({
778
- description: "\u6574\u5F20\u8DEF\u7EBF\u8868\uFF1A\u952E\u4E3A\u8859\u95E8\u89D2\u8272\uFF0C\u503C\u4E3A\u8BE5\u8859\u95E8 status \u2192 \u5EFA\u8BAE\u3002\u76F4\u63A5\u5165\u53E3\u4E0D\u7ED9\u89D2\u8272\u65F6\u4F7F\u7528\u3002"
762
+ description: "\u4EC5\u76F4\u63A5\u5165\u53E3\u4E0D\u7ED9\u89D2\u8272\u65F6\u586B\u6574\u5F20\u8DEF\u7EBF\u8868\uFF08\u952E\u4E3A\u8859\u95E8\u89D2\u8272\uFF0C\u503C\u4E3A\u8BE5\u8859\u95E8 status \u2192 \u5EFA\u8BAE\uFF09\uFF1B\u6CA1\u6709\u5C31\u586B null"
779
763
  })
780
764
  };
781
765
  navigatorAdviceBodySchema = openToolObject(Type6.Object(navigatorAdviceFields));
@@ -827,7 +811,7 @@ var init_fixer_output = __esm({
827
811
  }),
828
812
  diffItems: diffItemsField,
829
813
  testEvidence: Type8.Unknown({
830
- description: "\u6D4B\u8BD5\u8BC1\u636E\u6761\uFF1Bdiff \u542B\u6D4B\u8BD5\u6539\u52A8\u65F6\u63D0\u4EA4\uFF1B\u673A\u5668\u4E0D\u6838\u9A8C\u3002\u53EF\u5199 contract\uFF08\u6D4B\u8BD5\u6539\u52A8\u6240\u8BC1\u660E\u7684\u5951\u7EA6\uFF09\u3001minimumNecessaryCost\uFF08\u6D4B\u8BD5\u6539\u52A8\u7684\u4E00\u884C\u6700\u5C0F\u5FC5\u8981\u6210\u672C\uFF09\u3001measuredDuration\uFF08\u805A\u7126\u9A8C\u8BC1\u5B9E\u6D4B\u65F6\u957F\uFF09\u3002"
814
+ description: "\u4EC5 diff \u542B\u6D4B\u8BD5\u6539\u52A8\u65F6\u586B\u6D4B\u8BD5\u8BC1\u636E\u6761\uFF1B\u6CA1\u6709\u5C31\u586B null\u3002\u673A\u5668\u4E0D\u6838\u9A8C\u3002\u53EF\u5199 contract\uFF08\u6D4B\u8BD5\u6539\u52A8\u6240\u8BC1\u660E\u7684\u5951\u7EA6\uFF09\u3001minimumNecessaryCost\uFF08\u6D4B\u8BD5\u6539\u52A8\u7684\u4E00\u884C\u6700\u5C0F\u5FC5\u8981\u6210\u672C\uFF09\u3001measuredDuration\uFF08\u805A\u7126\u9A8C\u8BC1\u5B9E\u6D4B\u65F6\u957F\uFF09\u3002"
831
815
  })
832
816
  });
833
817
  fixerOutputSchema = withTerminatingOutputDeclarations(
@@ -912,7 +896,7 @@ var init_doctor_contracts = __esm({
912
896
  description: `\u9010\u6761\u8D44\u4EA7\u89C2\u5BDF\u4E0E\u5904\u65B9\uFF0C\u539F\u6837\u7559\u5B58\u3002\u4E00\u6761\u53EF\u542B targetKey\u3001targetKind\uFF08${DOCTOR_TARGET_KINDS.join(" | ")}\uFF09\u3001observation\u3001evidenceIds\u3001disposition\uFF08${DOCTOR_DISPOSITIONS.join(" | ")}\uFF09\u3001assetEvidence\uFF08targetKey\u3001targetKind\u3001evidenceId\uFF09\u3001guardrails\uFF08reproducibleFailure\u3001owningSeamOrInvariant\u3001deletionOrSimplificationSuffices\uFF0C\u5404\u9879\u53EF\u542B answer\u3001evidenceIds\u3001explanation\uFF09\u3001prescription\uFF08kind \u4E3A ${DOCTOR_PRESCRIPTION_KINDS.join(" | ")}\uFF0C\u53E6\u53EF\u5199 recommendation\u3001necessityExplanation\uFF09\u3001lastRealBite\uFF08kind \u4E3A ${DOCTOR_BITE_KINDS.join(" | ")}\uFF0C\u53E6\u53EF\u5199 targetKey\u3001evidenceId\u3001eligibleEvidenceIds\uFF09\u3002\u4E0D\u8981\u6C42\u4EFB\u4F55\u5904\u65B9\u6216\u53EF\u590D\u7528 finding\uFF1B\u7F3A\u53EF\u590D\u7528\u8D44\u4EA7\u6216 bounded-bite \u8BC1\u636E\u53EA\u6392\u9664\u5BF9\u5E94\u8D44\u4EA7\u5904\u65B9\u3002\u673A\u5668\u4E0D\u6838\u9A8C\u3002`
913
897
  }),
914
898
  reason: Type10.Unknown({
915
- description: "\u8BC1\u636E\u4E0D\u8DB3\u4EE5\u652F\u6491\u5982\u5B9E\u8BC1\u8BCD\u7684\u539F\u56E0\uFF1B\u4EC5 refused \u65F6\u7528\u3002"
899
+ description: "\u4EC5 refused \u65F6\u586B\u8BC1\u636E\u4E0D\u8DB3\u4EE5\u652F\u6491\u5982\u5B9E\u8BC1\u8BCD\u7684\u539F\u56E0\uFF1B\u6CA1\u6709\u5C31\u586B null"
916
900
  }),
917
901
  missingEvidence: Type10.Unknown({
918
902
  description: "\u5982\u5B9E\u8BC1\u8BCD\u6240\u9700\u800C\u5C1A\u7F3A\u7684\u8BC1\u636E\uFF0C\u539F\u6837\u7559\u5B58\uFF08\u5982\u6BCF\u9879 need\u3001targetKeys\uFF09\u3002"
@@ -2117,7 +2101,7 @@ var init_ticket_provenance_contracts = __esm({
2117
2101
  import { Type as Type13 } from "typebox";
2118
2102
  function projectDiaristSessions(value) {
2119
2103
  const raw = value?.sessions;
2120
- if (raw === void 0) return [];
2104
+ if (raw == null) return [];
2121
2105
  return projectTicketProvenanceSessions(raw);
2122
2106
  }
2123
2107
  function projectDiaristTicketSessions(value) {
@@ -2154,15 +2138,17 @@ var init_diarist_contracts = __esm({
2154
2138
  }),
2155
2139
  ticketNumber: Type13.Optional(
2156
2140
  Type13.Unknown({
2157
- description: "\u672C\u5EAD\u5BF9\u8C61\u7968\u53F7\uFF08\u6B63\u6574\u6570\uFF09\u6216 null/\u7701\u7565\uFF1D\u771F\u65E0\u7968\uFF1B\u4E0B\u6E38\u8D70 typed \u952E\uFF1B\u8BA4\u4E0D\u51FA\u7528 status=escalate\uFF0C\u4E0D\u6D17\u6210\u65E0\u5F55\u3002\u673A\u68B0\u5C42\u4E0D\u91CD\u5224\u3002"
2141
+ description: "\u4EC5\u6709\u672C\u5EAD\u5BF9\u8C61\u65F6\u586B\u7968\u53F7\uFF08\u6B63\u6574\u6570\uFF09\uFF1B\u6CA1\u6709\u5C31\u586B null\uFF1D\u771F\u65E0\u7968\uFF1B\u4E0B\u6E38\u8D70 typed \u952E\uFF1B\u8BA4\u4E0D\u51FA\u7528 status=escalate\uFF0C\u4E0D\u6D17\u6210\u65E0\u5F55\u3002\u673A\u68B0\u5C42\u4E0D\u91CD\u5224\u3002"
2158
2142
  })
2159
2143
  ),
2160
2144
  reason: Type13.Unknown({
2161
- description: "status \u4E3A escalate \u65F6\uFF1A\u4E0A\u5448\u7684\u539F\u56E0"
2145
+ description: "\u4EC5 status \u4E3A escalate \u65F6\u586B\u4E0A\u5448\u7684\u539F\u56E0\uFF1B\u6CA1\u6709\u5C31\u586B null"
2162
2146
  }),
2163
- sessions: Type13.Optional(Type13.Unknown({ description: DIARIST_SESSIONS_DESCRIPTION })),
2147
+ sessions: Type13.Optional(Type13.Unknown({
2148
+ description: `\u4EC5\u5355\u7968\u5EAD\u65F6\u586B\u5BF9\u8BDD\u8FB9\u754C\uFF1B\u6CA1\u6709\u5C31\u586B null\u3002${DIARIST_SESSIONS_DESCRIPTION}`
2149
+ })),
2164
2150
  ticketSessions: Type13.Unknown({
2165
- description: `\u591A\u7968\u5EAD\u9010\u7968\u5BF9\u8BDD\u8FB9\u754C\uFF1B\u6BCF\u7968\u542B ticketNumber\uFF08\u672C\u6761\u8FB9\u754C\u6240\u5F52\u7968\u53F7\uFF0C\u6B63\u6574\u6570\uFF09\u4E0E sessions\uFF08${DIARIST_SESSIONS_DESCRIPTION}\uFF09\u3002\u4E00\u6B21\u4EA4\u5377\u5404\u7968\u5404\u81EA\u5206\u5F55\u3002\u4E0E\u5355\u7968 sessions \u4E8C\u9009\u4E00\u3002`
2151
+ description: `\u4EC5\u591A\u7968\u5EAD\u65F6\u586B\u9010\u7968\u5BF9\u8BDD\u8FB9\u754C\uFF1B\u6CA1\u6709\u5C31\u586B null\u3002\u6BCF\u7968\u542B ticketNumber\uFF08\u672C\u6761\u8FB9\u754C\u6240\u5F52\u7968\u53F7\uFF0C\u6B63\u6574\u6570\uFF09\u4E0E sessions\uFF08${DIARIST_SESSIONS_DESCRIPTION}\uFF09\u3002\u4E00\u6B21\u4EA4\u5377\u5404\u7968\u5404\u81EA\u5206\u5F55\u3002`
2166
2152
  })
2167
2153
  })
2168
2154
  )
@@ -4382,7 +4368,7 @@ var init_collector_tool_schemas = __esm({
4382
4368
  description: "\u6309\u673A\u5668\u8EAB\u4EFD\u5F52\u7EC4\u7684\u51FA\u5E2D\u3001\u6750\u6599\u4E0E\u9010\u6761 findings\uFF08LLM \u81EA\u884C\u4ECE\u5BBF\u4E3B CLI \u53D6\u8BC1\u6574\u7406\uFF1B\u4EE3\u7801\u4E0D\u4EE3\u6536\u4E0D\u5F52\u5E76\uFF09\u3002"
4383
4369
  }),
4384
4370
  unfinishedReasons: Type15.Unknown({
4385
- description: "\u672A\u5B8C\u6210\u539F\u56E0\uFF1B\u53D6\u8BC1\u53D7\u9650\u65F6\u5982\u5B9E\u62A5\u544A\u3002"
4371
+ description: "\u4EC5\u53D6\u8BC1\u53D7\u9650\u65F6\u586B\u672A\u5B8C\u6210\u539F\u56E0\uFF1B\u6CA1\u6709\u5C31\u586B null"
4386
4372
  })
4387
4373
  })
4388
4374
  );
@@ -9390,6 +9376,7 @@ var run_lifecycle_exports = {};
9390
9376
  __export(run_lifecycle_exports, {
9391
9377
  AUTO_RESUME_LIMIT: () => AUTO_RESUME_LIMIT,
9392
9378
  RunWriterLeaseHeldError: () => RunWriterLeaseHeldError,
9379
+ WRITER_LOCK_FILE: () => WRITER_LOCK_FILE,
9393
9380
  acquireRunWriterLease: () => acquireRunWriterLease,
9394
9381
  autopsyWriterLock: () => autopsyWriterLock,
9395
9382
  clearCurrentCourt: () => clearCurrentCourt,
@@ -15580,24 +15567,48 @@ var init_post_admission = __esm({
15580
15567
  });
15581
15568
 
15582
15569
  // src/public-cli/seat-ticket-binding.ts
15570
+ import { join as join24 } from "node:path";
15571
+ function resumedSessionIdMissing(result, runId) {
15572
+ if (typeof result !== "object" || result === null) return false;
15573
+ const terminal = result.terminal;
15574
+ if (typeof terminal !== "object" || terminal === null) return false;
15575
+ if (terminal.runId !== runId) return false;
15576
+ const outcome = terminal.roleOutcome;
15577
+ if (typeof outcome !== "object" || outcome === null) return false;
15578
+ if (outcome.kind !== "failure") return false;
15579
+ const facts = outcome.decisiveFacts;
15580
+ if (typeof facts !== "object" || facts === null) return false;
15581
+ return facts.errorCode === SESSION_ID_MISSING;
15582
+ }
15583
+ async function writerLockBlocksFreshSummons(runDirectory) {
15584
+ const autopsy = await autopsyWriterLock(join24(runDirectory, WRITER_LOCK_FILE));
15585
+ return autopsy.verdict === "alive" || autopsy.verdict === "unknown";
15586
+ }
15583
15587
  async function tryResumeSameTicketSeatRun(input) {
15584
15588
  if (input.freshSummons === true) return void 0;
15585
15589
  if (input.parentRunPath.trim() === "") return void 0;
15590
+ const bookKey = resolveBookKeyFromGit(input.projectRoot);
15586
15591
  const previous = await findLatestRunForSeatTicket({
15587
15592
  home: input.home,
15588
- bookKey: resolveBookKeyFromGit(input.projectRoot),
15593
+ bookKey,
15589
15594
  role: input.role,
15590
15595
  parentRunPath: input.parentRunPath,
15591
15596
  ...input.ticketNumber === void 0 ? {} : { ticketNumber: input.ticketNumber }
15592
15597
  });
15593
15598
  if (previous === void 0) return void 0;
15594
- return await input.resume(previous.runId, input.summons, previous.runDirectory);
15599
+ const resumed = await input.resume(previous.runId, input.summons, previous.runDirectory);
15600
+ if (!resumedSessionIdMissing(resumed, previous.runId)) return resumed;
15601
+ const live = await resolveLiveRunDirectoryPath(previous.runDirectory, input.home, bookKey);
15602
+ if (live !== void 0 && await writerLockBlocksFreshSummons(live)) return resumed;
15603
+ return void 0;
15595
15604
  }
15605
+ var SESSION_ID_MISSING;
15596
15606
  var init_seat_ticket_binding = __esm({
15597
15607
  "src/public-cli/seat-ticket-binding.ts"() {
15598
15608
  "use strict";
15599
15609
  init_activation_ledger_git();
15600
15610
  init_run_lifecycle();
15611
+ SESSION_ID_MISSING = "session-id-missing";
15601
15612
  }
15602
15613
  });
15603
15614
 
@@ -17256,10 +17267,10 @@ var init_analyst_book_key = __esm({
17256
17267
  // src/atomic-write.ts
17257
17268
  import { randomUUID as randomUUID7 } from "node:crypto";
17258
17269
  import { rename as rename2, rm, writeFile as writeFile4 } from "node:fs/promises";
17259
- import { dirname as dirname15, join as join24 } from "node:path";
17270
+ import { dirname as dirname15, join as join25 } from "node:path";
17260
17271
  async function writeFileAtomically(destination, contents, options) {
17261
17272
  const parent = dirname15(destination);
17262
- const temporary = join24(parent, `.atomic-write-${randomUUID7()}.tmp`);
17273
+ const temporary = join25(parent, `.atomic-write-${randomUUID7()}.tmp`);
17263
17274
  try {
17264
17275
  await writeFile4(temporary, contents, options);
17265
17276
  await rename2(temporary, destination);
@@ -17276,12 +17287,12 @@ var init_atomic_write = __esm({
17276
17287
 
17277
17288
  // src/analyst-index.ts
17278
17289
  import { open as open2, readFile as readFile11, unlink as unlink2 } from "node:fs/promises";
17279
- import { dirname as dirname16, join as join25 } from "node:path";
17290
+ import { dirname as dirname16, join as join26 } from "node:path";
17280
17291
  import { setTimeout as sleep } from "node:timers/promises";
17281
17292
  async function withAnalystLibraryIndexLock(ledgerHome, fn) {
17282
17293
  const indexPath = analystLibraryIndexPath(ledgerHome);
17283
17294
  ensureRealDirectoryTree(ledgerHome, dirname16(indexPath));
17284
- const lockPath = join25(dirname16(indexPath), LIBRARY_INDEX_LOCK_NAME);
17295
+ const lockPath = join26(dirname16(indexPath), LIBRARY_INDEX_LOCK_NAME);
17285
17296
  assertLedgerFileInsideHome(lockPath, ledgerHome);
17286
17297
  const startedAt = Date.now();
17287
17298
  while (true) {
@@ -17308,7 +17319,7 @@ async function withAnalystLibraryIndexLock(ledgerHome, fn) {
17308
17319
  }
17309
17320
  }
17310
17321
  function analystLibraryIndexPath(ledgerHome) {
17311
- return join25(ledgerHome, "analyst", "library-index.json");
17322
+ return join26(ledgerHome, "analyst", "library-index.json");
17312
17323
  }
17313
17324
  function rowFromIssueMetricsPage(page) {
17314
17325
  return {
@@ -17602,7 +17613,7 @@ var init_analyst_cohort = __esm({
17602
17613
  });
17603
17614
 
17604
17615
  // src/archivist-record-pointer.ts
17605
- import { basename as basename12, join as join26 } from "node:path";
17616
+ import { basename as basename12, join as join27 } from "node:path";
17606
17617
  async function resolveOfficerPointer(raw, parentRunDirectory) {
17607
17618
  const where = `${parentRunDirectory} officers`;
17608
17619
  if (!isRecord(raw) || raw.kind !== DIRECT_OFFICER_RUN_POINTER_KIND || raw.version !== 1) {
@@ -17635,7 +17646,7 @@ async function resolveOfficerPointer(raw, parentRunDirectory) {
17635
17646
  };
17636
17647
  }
17637
17648
  async function readBookedOfficerPointers(parentRunDirectory) {
17638
- const { records, diagnostics } = await readSitianRecords(join26(parentRunDirectory, RUN_HISTORY_FILE));
17649
+ const { records, diagnostics } = await readSitianRecords(join27(parentRunDirectory, RUN_HISTORY_FILE));
17639
17650
  if (diagnostics.length > 0) {
17640
17651
  throw new Error(
17641
17652
  `${RUN_HISTORY_FILE} has ${diagnostics.length} malformed row(s); officer pointers unreadable: ${parentRunDirectory}`
@@ -17918,7 +17929,7 @@ var init_analyst_gate_cycles_read = __esm({
17918
17929
 
17919
17930
  // src/analyst-ledger.ts
17920
17931
  import { readdir as readdir4 } from "node:fs/promises";
17921
- import { basename as basename13, join as join27 } from "node:path";
17932
+ import { basename as basename13, join as join28 } from "node:path";
17922
17933
  async function readExistingRunLifecycleState(runDirectory) {
17923
17934
  return (await readRoleRunIdentity(runDirectory))?.state;
17924
17935
  }
@@ -17938,7 +17949,7 @@ function ghostLeaseCheckFromAutopsy(autopsy) {
17938
17949
  }
17939
17950
  }
17940
17951
  async function classifyGhostCandidate(input) {
17941
- const autopsy = await autopsyWriterLock(join27(input.runDirectory, "writer.lock"));
17952
+ const autopsy = await autopsyWriterLock(join28(input.runDirectory, "writer.lock"));
17942
17953
  const leaseCheck = ghostLeaseCheckFromAutopsy(autopsy);
17943
17954
  if (leaseCheck === void 0) return { kind: "live" };
17944
17955
  return {
@@ -18228,7 +18239,7 @@ async function classifyScopedRun(input) {
18228
18239
  async function scanAnalystIssueRuns(input) {
18229
18240
  const ledgerHome = resolveActivationLedgerHome(input.home);
18230
18241
  const scopeTicketNumber = input.ticketNumber;
18231
- const booksRoot = join27(ledgerHome, "books");
18242
+ const booksRoot = join28(ledgerHome, "books");
18232
18243
  let wholeBook = false;
18233
18244
  let scopeRootIdentity;
18234
18245
  let bookNames;
@@ -18261,7 +18272,7 @@ async function scanAnalystIssueRuns(input) {
18261
18272
  const ghostLegs = [];
18262
18273
  const scopeConflicts = [];
18263
18274
  for (const book of bookNames) {
18264
- const bookDir = join27(booksRoot, book);
18275
+ const bookDir = join28(booksRoot, book);
18265
18276
  let runDirectories;
18266
18277
  try {
18267
18278
  runDirectories = await listBookRunDirectories(bookDir);
@@ -19007,7 +19018,7 @@ var init_analyst_metric_family = __esm({
19007
19018
  });
19008
19019
 
19009
19020
  // src/analyst-page.ts
19010
- import { dirname as dirname17, join as join28 } from "node:path";
19021
+ import { dirname as dirname17, join as join29 } from "node:path";
19011
19022
  function analystIssuePageKey(address) {
19012
19023
  const parts = ["book", address.bookKey];
19013
19024
  if (address.issueNumber !== void 0) {
@@ -19018,7 +19029,7 @@ function analystIssuePageKey(address) {
19018
19029
  return sha256Hex(parts.join("\0")).slice(0, 32);
19019
19030
  }
19020
19031
  function analystIssuePagePath(ledgerHome, address) {
19021
- return join28(ledgerHome, "analyst", "issues", `${analystIssuePageKey(address)}.json`);
19032
+ return join29(ledgerHome, "analyst", "issues", `${analystIssuePageKey(address)}.json`);
19022
19033
  }
19023
19034
  function analystIssuePageAddressFromPage(page) {
19024
19035
  return {
@@ -20582,7 +20593,7 @@ __export(public_role_summons_exports, {
20582
20593
  import { execFile as execFile3 } from "node:child_process";
20583
20594
  import { existsSync as existsSync13 } from "node:fs";
20584
20595
  import { realpath as realpath6 } from "node:fs/promises";
20585
- import { join as join29 } from "node:path";
20596
+ import { join as join30 } from "node:path";
20586
20597
  import { promisify as promisify3 } from "node:util";
20587
20598
  function createCapturingIo() {
20588
20599
  const chunks = [];
@@ -20606,7 +20617,7 @@ function parentDir(path) {
20606
20617
  function walkPackageRoot(start) {
20607
20618
  let dir = start;
20608
20619
  for (let i = 0; i < 12; i += 1) {
20609
- if (existsSync13(join29(dir, "package.json")) && existsSync13(join29(dir, "souls"))) {
20620
+ if (existsSync13(join30(dir, "package.json")) && existsSync13(join30(dir, "souls"))) {
20610
20621
  return dir;
20611
20622
  }
20612
20623
  const parent = parentDir(dir);
@@ -21214,7 +21225,7 @@ init_submission_ledger();
21214
21225
  init_filed_submission();
21215
21226
  init_report_ticket_tool();
21216
21227
  import { writeSync as writeSync2 } from "node:fs";
21217
- import { join as join30 } from "node:path";
21228
+ import { join as join31 } from "node:path";
21218
21229
  import { Value as Value2 } from "typebox/value";
21219
21230
 
21220
21231
  // src/activation-trace.ts
@@ -22832,7 +22843,7 @@ function readRoleRunCoordinates(ctx, label) {
22832
22843
  if (runDirectory === void 0) throw new Error(`${label} requires AK_ROLE_RUN_DIR`);
22833
22844
  const admitted = readPageSync(runDirectory, "admitted");
22834
22845
  if (typeof admitted?.projectRoot !== "string" || admitted.projectRoot.trim() === "") {
22835
- throw new Error(`${label} state.jsonl admitted-request row missing projectRoot (${join30(runDirectory, RUN_STATE_FILE)})`);
22846
+ throw new Error(`${label} state.jsonl admitted-request row missing projectRoot (${join31(runDirectory, RUN_STATE_FILE)})`);
22836
22847
  }
22837
22848
  return {
22838
22849
  runDirectory,
@@ -24225,7 +24236,7 @@ import { randomUUID as randomUUID10 } from "node:crypto";
24225
24236
  import { existsSync as existsSync15 } from "node:fs";
24226
24237
  import { mkdtemp, rm as rm2, writeFile as writeFile6 } from "node:fs/promises";
24227
24238
  import { tmpdir } from "node:os";
24228
- import { dirname as dirname19, isAbsolute as isAbsolute11, join as join31, resolve as resolve16 } from "node:path";
24239
+ import { dirname as dirname19, isAbsolute as isAbsolute11, join as join32, resolve as resolve16 } from "node:path";
24229
24240
 
24230
24241
  // src/agent-start-materials.ts
24231
24242
  function renderAgentStartMaterials(body, materials) {
@@ -24611,7 +24622,7 @@ function formatCodexFailurePayload(payload) {
24611
24622
  function cwdIsGitWorkTree(cwd) {
24612
24623
  let dir = cwd;
24613
24624
  for (; ; ) {
24614
- if (existsSync15(join31(dir, ".git"))) return true;
24625
+ if (existsSync15(join32(dir, ".git"))) return true;
24615
24626
  const parent = dirname19(dir);
24616
24627
  if (parent === dir) return false;
24617
24628
  dir = parent;
@@ -24828,8 +24839,8 @@ function createHeadlessRoleTurnHost(config) {
24828
24839
  }
24829
24840
  const env = { ...process.env, ...config.env ?? {} };
24830
24841
  const liveSessionParent = () => config.sessionIdentity.resolveSessionFile(request.principal);
24831
- const inputsDirectory = await mkdtemp(join31(tmpdir(), "ak-role-headless-"));
24832
- const systemPromptPath = join31(inputsDirectory, "system-prompt.txt");
24842
+ const inputsDirectory = await mkdtemp(join32(tmpdir(), "ak-role-headless-"));
24843
+ const systemPromptPath = join32(inputsDirectory, "system-prompt.txt");
24833
24844
  let mcpConfigPath;
24834
24845
  let outputSchemaPath;
24835
24846
  let startedWithSchema;
@@ -24837,12 +24848,12 @@ function createHeadlessRoleTurnHost(config) {
24837
24848
  await writeFile6(systemPromptPath, systemPrompt, "utf8");
24838
24849
  let deliveredSchema;
24839
24850
  if (codex) {
24840
- outputSchemaPath = join31(inputsDirectory, "output-schema.json");
24851
+ outputSchemaPath = join32(inputsDirectory, "output-schema.json");
24841
24852
  deliveredSchema = closeJsonSchemaForCodex(prepared.jsonSchema);
24842
24853
  await writeFile6(outputSchemaPath, `${JSON.stringify(deliveredSchema, null, 2)}
24843
24854
  `, "utf8");
24844
24855
  } else {
24845
- mcpConfigPath = join31(inputsDirectory, "mcp-config.json");
24856
+ mcpConfigPath = join32(inputsDirectory, "mcp-config.json");
24846
24857
  await writeFile6(
24847
24858
  mcpConfigPath,
24848
24859
  `${JSON.stringify(headlessMcpConfigDocument(prepared.mcpServers), null, 2)}
@@ -8623,15 +8623,15 @@ function withTerminatingOutputDeclarations(schema) {
8623
8623
  ...baseProperties ?? {},
8624
8624
  ...baseProperties?.ticketNumber === void 0 ? {
8625
8625
  ticketNumber: typebox_exports.Unknown({
8626
- description: "\u53EF\u9009\u672C\u7968\u53F7\u3002\u5C1A\u672A\u7ED1\u5B9A\u65F6\u7531\u89D2\u8272\u5728\u65E2\u6709\u56DE\u6267\u4E2D\u7533\u62A5\uFF08\u6B63\u6574\u6570\u3001\u6570\u5B57\u4E32\u6216\u524D\u5BFC #N\uFF1B\u5F52\u4F4D\u53EA\u8BFB\u672C\u5B57\u6BB5\uFF09\u3002"
8626
+ description: "\u4EC5\u5C1A\u672A\u7ED1\u5B9A\u65F6\u586B\u672C\u7968\u53F7\uFF08\u6B63\u6574\u6570\u3001\u6570\u5B57\u4E32\u6216\u524D\u5BFC #N\uFF1B\u5F52\u4F4D\u53EA\u8BFB\u672C\u5B57\u6BB5\uFF09\uFF1B\u6CA1\u6709\u5C31\u586B null"
8627
8627
  })
8628
8628
  } : {},
8629
8629
  ...baseProperties?.summary === void 0 ? {
8630
8630
  summary: typebox_exports.Unknown({
8631
- description: "\u672C\u5E2D\u81EA\u884C\u586B\u5199\u7684\u4E00\u4E24\u53E5\u300120\u201350 \u5B57\u7ED3\u8BBA\u6458\u8981\u3002\u53EF\u9009\uFF1B\u4E0D\u56E0\u7F3A\u5931\u6216\u8D85\u957F\u62D2\u6536\u3001\u622A\u65AD\u6216\u4EE3\u586B\u3002"
8631
+ description: "\u4EC5\u672C\u5E2D\u6709\u7ED3\u8BBA\u65F6\u586B\u4E00\u4E24\u53E5\u300120\u201350 \u5B57\u7ED3\u8BBA\u6458\u8981\uFF1B\u6CA1\u6709\u5C31\u586B null\u3002\u4E0D\u56E0\u7F3A\u5931\u6216\u8D85\u957F\u62D2\u6536\u3001\u622A\u65AD\u6216\u4EE3\u586B\u3002"
8632
8632
  })
8633
8633
  } : {},
8634
- [INFRASTRUCTURE_FAILURE_DECLARATION_KEY]: infrastructureFailureDeclarationSchema.properties[INFRASTRUCTURE_FAILURE_DECLARATION_KEY]
8634
+ [INFRASTRUCTURE_FAILURE_DECLARATION_KEY]: infrastructureFailureField
8635
8635
  };
8636
8636
  const object = typebox_exports.Object(properties, { additionalProperties: true });
8637
8637
  const incoming = schema.required;
@@ -8639,31 +8639,15 @@ function withTerminatingOutputDeclarations(schema) {
8639
8639
  object.required = preserved;
8640
8640
  return object;
8641
8641
  }
8642
- var INFRASTRUCTURE_FAILURE_DECLARATION_KEY, INFRASTRUCTURE_FAILURE_DIAGNOSTIC_KEY, infrastructureFailureNested, infrastructureFailureDeclarationSchema;
8642
+ var INFRASTRUCTURE_FAILURE_DECLARATION_KEY, infrastructureFailureField;
8643
8643
  var init_terminating_infrastructure = __esm({
8644
8644
  "src/package-contracts/terminating-infrastructure.ts"() {
8645
8645
  "use strict";
8646
8646
  init_build();
8647
8647
  INFRASTRUCTURE_FAILURE_DECLARATION_KEY = "infrastructureFailure";
8648
- INFRASTRUCTURE_FAILURE_DIAGNOSTIC_KEY = "diagnostic";
8649
- infrastructureFailureNested = typebox_exports.Object(
8650
- {
8651
- [INFRASTRUCTURE_FAILURE_DIAGNOSTIC_KEY]: typebox_exports.Unknown({
8652
- description: "\u57FA\u7840\u8BBE\u65BD\u5931\u8D25\u8BCA\u65AD\u5B57\u7B26\u4E32\u3002"
8653
- })
8654
- },
8655
- {
8656
- additionalProperties: true,
8657
- description: "\u4EC5\u57FA\u7840\u8BBE\u65BD\u771F\u5B9E\u5931\u8D25\u65F6\u51FA\u73B0\u3002"
8658
- }
8659
- );
8660
- infrastructureFailureNested.required = [];
8661
- infrastructureFailureDeclarationSchema = typebox_exports.Object(
8662
- {
8663
- [INFRASTRUCTURE_FAILURE_DECLARATION_KEY]: infrastructureFailureNested
8664
- },
8665
- { additionalProperties: true }
8666
- );
8648
+ infrastructureFailureField = typebox_exports.Unknown({
8649
+ description: "\u4EC5\u57FA\u7840\u8BBE\u65BD\u771F\u5B9E\u5931\u8D25\u65F6\u586B {diagnostic}\uFF1B\u6CA1\u6709\u5C31\u586B null"
8650
+ });
8667
8651
  }
8668
8652
  });
8669
8653
 
@@ -8683,10 +8667,10 @@ var init_gatekeeper_output = __esm({
8683
8667
  description: "dispatch | pass"
8684
8668
  }),
8685
8669
  officer: typebox_exports.Unknown({
8686
- description: "status \u4E3A dispatch \u65F6\u4E3A inspector | notary"
8670
+ description: "\u4EC5 status \u4E3A dispatch \u65F6\u586B inspector | notary\uFF1B\u6CA1\u6709\u5C31\u586B null"
8687
8671
  }),
8688
8672
  findings: typebox_exports.Unknown({
8689
- description: "status \u4E3A pass \u65F6\u53EF\u9009 string[] findings"
8673
+ description: "\u4EC5 status \u4E3A pass \u65F6\u586B string[] findings\uFF1B\u6CA1\u6709\u5C31\u586B null"
8690
8674
  })
8691
8675
  })
8692
8676
  );
@@ -8708,13 +8692,13 @@ var init_navigator_output = __esm({
8708
8692
  NAVIGATOR_OUTPUT_TOOL_NAME = "ak_navigator_output";
8709
8693
  navigatorAdviceFields = {
8710
8694
  prose: typebox_exports.Unknown({
8711
- description: "\u5355\u6761\u6563\u6587\u5EFA\u8BAE\u3002\u65E0\u72B6\u6001\u5206\u53C9\u65F6\u4F7F\u7528\uFF1B\u539F\u6837\u5448\u73B0\u3002"
8695
+ description: "\u4EC5\u65E0\u72B6\u6001\u5206\u53C9\u65F6\u586B\u5355\u6761\u6563\u6587\u5EFA\u8BAE\uFF1B\u6CA1\u6709\u5C31\u586B null\u3002\u539F\u6837\u5448\u73B0\u3002"
8712
8696
  }),
8713
8697
  byStatus: typebox_exports.Unknown({
8714
8698
  description: "\u6309\u4E3B\u8859\u95E8\u7ED3\u5C40 status \u9884\u5199\u7684\u6563\u6587\u5EFA\u8BAE\u3002\u952E\u4E3A status \u5B57\u9762\u91CF\uFF0C\u503C\u4E3A\u5EFA\u8BAE\u6B63\u6587\u3002\u7ED3\u7B97\u65F6\u4EE3\u7801\u53EA\u6309\u5B9E\u9645 status \u53D6\u5BF9\u5E94\u539F\u6587\uFF0C\u4E0D\u89E3\u6790\u5EFA\u8BAE\u8BED\u4E49\u3002"
8715
8699
  }),
8716
8700
  byRole: typebox_exports.Unknown({
8717
- description: "\u6574\u5F20\u8DEF\u7EBF\u8868\uFF1A\u952E\u4E3A\u8859\u95E8\u89D2\u8272\uFF0C\u503C\u4E3A\u8BE5\u8859\u95E8 status \u2192 \u5EFA\u8BAE\u3002\u76F4\u63A5\u5165\u53E3\u4E0D\u7ED9\u89D2\u8272\u65F6\u4F7F\u7528\u3002"
8701
+ description: "\u4EC5\u76F4\u63A5\u5165\u53E3\u4E0D\u7ED9\u89D2\u8272\u65F6\u586B\u6574\u5F20\u8DEF\u7EBF\u8868\uFF08\u952E\u4E3A\u8859\u95E8\u89D2\u8272\uFF0C\u503C\u4E3A\u8BE5\u8859\u95E8 status \u2192 \u5EFA\u8BAE\uFF09\uFF1B\u6CA1\u6709\u5C31\u586B null"
8718
8702
  })
8719
8703
  };
8720
8704
  navigatorAdviceBodySchema = openToolObject(typebox_exports.Object(navigatorAdviceFields));
@@ -8747,7 +8731,7 @@ var init_review_submission = __esm({
8747
8731
  reason: typebox_exports.Optional(typebox_exports.Unknown({ description: "\u4E0A\u5448\u7406\u7531" })),
8748
8732
  violations: typebox_exports.Optional(typebox_exports.Unknown({ description: "\u8FDD\u89C4\u6761\u76EE" })),
8749
8733
  conflicts: typebox_exports.Optional(typebox_exports.Unknown({ description: "\u5F85\u51B3\u51B2\u7A81" })),
8750
- fix: typebox_exports.Optional(typebox_exports.Unknown({ description: "continue \u65F6\u7684\u8865\u6551\u8BF4\u660E\uFF1B\u53EF\u5199 summary \u6458\u8981\uFF0C\u5176\u4F59\u5185\u5BB9\u539F\u6837\u7559\u5B58" })),
8734
+ fix: typebox_exports.Optional(typebox_exports.Unknown({ description: "\u4EC5 continue \u65F6\u586B\u8865\u6551\u8BF4\u660E\uFF08\u53EF\u5199 summary \u6458\u8981\uFF0C\u5176\u4F59\u5185\u5BB9\u539F\u6837\u7559\u5B58\uFF09\uFF1B\u6CA1\u6709\u5C31\u586B null" })),
8751
8735
  classes: typebox_exports.Optional(typebox_exports.Unknown({ description: "\u5DF2\u88C1\u51B3 finding \u7C7B\uFF1B\u53EF\u8BF4\u660E name\u3001owner\u3001boundary\u3001disposition\uFF0C\u539F\u6837\u7559\u5B58" })),
8752
8736
  note: typebox_exports.Optional(typebox_exports.Unknown({ description: "\u88C1\u51B3\u9644\u6CE8" })),
8753
8737
  evidence: typebox_exports.Optional(typebox_exports.Unknown({ description: "\u7559\u5B58\u8BC1\u636E" })),
@@ -8838,7 +8822,7 @@ var init_reviewer_output = __esm({
8838
8822
  init_open_tool_schema();
8839
8823
  init_terminating_infrastructure();
8840
8824
  REVIEWER_OUTPUT_TOOL_NAME = "ak_reviewer_output";
8841
- REVIEWER_AMENDMENTS_DESCRIPTION = "\u5DF2\u8FD0\u884C lens \u7684 amendments \u627F\u8F7D candidates\u3001\u9010\u6761\u5904\u7F6E\u4E0E verdict \u7684\u5B8C\u6574\u62A5\u544A\uFF08\u975E\u4EC5 verdict \u884C\uFF09\uFF1B\u663E\u5F0F\u5355\u8F74\u65F6\u53E6\u4E00\u8F74\u53EF\u7701\u7565\uFF08completeness / correctness\uFF09\u3002hard-stop\uFF0Fusage error \u4E3A refused \u65F6\uFF0C\u5DF2\u4EA7\u51FA\u62A5\u544A\u4ECD\u7167\u5F55\u5BF9\u5E94 lens \u5B57\u6BB5\u3002";
8825
+ REVIEWER_AMENDMENTS_DESCRIPTION = "\u5DF2\u8FD0\u884C lens \u7684 amendments \u627F\u8F7D candidates\u3001\u9010\u6761\u5904\u7F6E\u4E0E verdict \u7684\u5B8C\u6574\u62A5\u544A\uFF08\u975E\u4EC5 verdict \u884C\uFF09\uFF1B\u5404\u8F74\uFF08completeness / correctness\uFF09\u4EC5\u6709\u5DF2\u4EA7\u51FA\u62A5\u544A\u65F6\u586B\u62A5\u544A\uFF1B\u6CA1\u6709\u5C31\u586B null\u3002hard-stop\uFF0Fusage error \u4E3A refused \u65F6\uFF0C\u5DF2\u4EA7\u51FA\u62A5\u544A\u4ECD\u7167\u5F55\u5BF9\u5E94 lens \u5B57\u6BB5\u3002";
8842
8826
  REVIEWER_STATUS_DESCRIPTION = "completed | refused\u3002\u4E24\u79CD\u6B63\u5E38 lens verdict\uFF08completeness / correctness\uFF09\u5747 completed\uFF1Bhard-stop \u4E0E usage error \u4E3A refused\uFF08\u5DF2\u4EA7\u51FA\u62A5\u544A\u4ECD\u7167\u5F55\u8FDB\u6240\u9009 lens amendments\uFF09\u3002";
8843
8827
  reviewerOutputObject = typebox_exports.Object({
8844
8828
  status: typebox_exports.Unknown({ description: REVIEWER_STATUS_DESCRIPTION }),
@@ -8894,7 +8878,7 @@ var init_fixer_output = __esm({
8894
8878
  }),
8895
8879
  diffItems: diffItemsField,
8896
8880
  testEvidence: typebox_exports.Unknown({
8897
- description: "\u6D4B\u8BD5\u8BC1\u636E\u6761\uFF1Bdiff \u542B\u6D4B\u8BD5\u6539\u52A8\u65F6\u63D0\u4EA4\uFF1B\u673A\u5668\u4E0D\u6838\u9A8C\u3002\u53EF\u5199 contract\uFF08\u6D4B\u8BD5\u6539\u52A8\u6240\u8BC1\u660E\u7684\u5951\u7EA6\uFF09\u3001minimumNecessaryCost\uFF08\u6D4B\u8BD5\u6539\u52A8\u7684\u4E00\u884C\u6700\u5C0F\u5FC5\u8981\u6210\u672C\uFF09\u3001measuredDuration\uFF08\u805A\u7126\u9A8C\u8BC1\u5B9E\u6D4B\u65F6\u957F\uFF09\u3002"
8881
+ description: "\u4EC5 diff \u542B\u6D4B\u8BD5\u6539\u52A8\u65F6\u586B\u6D4B\u8BD5\u8BC1\u636E\u6761\uFF1B\u6CA1\u6709\u5C31\u586B null\u3002\u673A\u5668\u4E0D\u6838\u9A8C\u3002\u53EF\u5199 contract\uFF08\u6D4B\u8BD5\u6539\u52A8\u6240\u8BC1\u660E\u7684\u5951\u7EA6\uFF09\u3001minimumNecessaryCost\uFF08\u6D4B\u8BD5\u6539\u52A8\u7684\u4E00\u884C\u6700\u5C0F\u5FC5\u8981\u6210\u672C\uFF09\u3001measuredDuration\uFF08\u805A\u7126\u9A8C\u8BC1\u5B9E\u6D4B\u65F6\u957F\uFF09\u3002"
8898
8882
  })
8899
8883
  });
8900
8884
  fixerOutputSchema = withTerminatingOutputDeclarations(
@@ -8966,7 +8950,7 @@ var init_doctor_contracts = __esm({
8966
8950
  description: `\u9010\u6761\u8D44\u4EA7\u89C2\u5BDF\u4E0E\u5904\u65B9\uFF0C\u539F\u6837\u7559\u5B58\u3002\u4E00\u6761\u53EF\u542B targetKey\u3001targetKind\uFF08${DOCTOR_TARGET_KINDS.join(" | ")}\uFF09\u3001observation\u3001evidenceIds\u3001disposition\uFF08${DOCTOR_DISPOSITIONS.join(" | ")}\uFF09\u3001assetEvidence\uFF08targetKey\u3001targetKind\u3001evidenceId\uFF09\u3001guardrails\uFF08reproducibleFailure\u3001owningSeamOrInvariant\u3001deletionOrSimplificationSuffices\uFF0C\u5404\u9879\u53EF\u542B answer\u3001evidenceIds\u3001explanation\uFF09\u3001prescription\uFF08kind \u4E3A ${DOCTOR_PRESCRIPTION_KINDS.join(" | ")}\uFF0C\u53E6\u53EF\u5199 recommendation\u3001necessityExplanation\uFF09\u3001lastRealBite\uFF08kind \u4E3A ${DOCTOR_BITE_KINDS.join(" | ")}\uFF0C\u53E6\u53EF\u5199 targetKey\u3001evidenceId\u3001eligibleEvidenceIds\uFF09\u3002\u4E0D\u8981\u6C42\u4EFB\u4F55\u5904\u65B9\u6216\u53EF\u590D\u7528 finding\uFF1B\u7F3A\u53EF\u590D\u7528\u8D44\u4EA7\u6216 bounded-bite \u8BC1\u636E\u53EA\u6392\u9664\u5BF9\u5E94\u8D44\u4EA7\u5904\u65B9\u3002\u673A\u5668\u4E0D\u6838\u9A8C\u3002`
8967
8951
  }),
8968
8952
  reason: typebox_exports.Unknown({
8969
- description: "\u8BC1\u636E\u4E0D\u8DB3\u4EE5\u652F\u6491\u5982\u5B9E\u8BC1\u8BCD\u7684\u539F\u56E0\uFF1B\u4EC5 refused \u65F6\u7528\u3002"
8953
+ description: "\u4EC5 refused \u65F6\u586B\u8BC1\u636E\u4E0D\u8DB3\u4EE5\u652F\u6491\u5982\u5B9E\u8BC1\u8BCD\u7684\u539F\u56E0\uFF1B\u6CA1\u6709\u5C31\u586B null"
8970
8954
  }),
8971
8955
  missingEvidence: typebox_exports.Unknown({
8972
8956
  description: "\u5982\u5B9E\u8BC1\u8BCD\u6240\u9700\u800C\u5C1A\u7F3A\u7684\u8BC1\u636E\uFF0C\u539F\u6837\u7559\u5B58\uFF08\u5982\u6BCF\u9879 need\u3001targetKeys\uFF09\u3002"
@@ -9174,15 +9158,17 @@ var init_diarist_contracts = __esm({
9174
9158
  }),
9175
9159
  ticketNumber: typebox_exports.Optional(
9176
9160
  typebox_exports.Unknown({
9177
- description: "\u672C\u5EAD\u5BF9\u8C61\u7968\u53F7\uFF08\u6B63\u6574\u6570\uFF09\u6216 null/\u7701\u7565\uFF1D\u771F\u65E0\u7968\uFF1B\u4E0B\u6E38\u8D70 typed \u952E\uFF1B\u8BA4\u4E0D\u51FA\u7528 status=escalate\uFF0C\u4E0D\u6D17\u6210\u65E0\u5F55\u3002\u673A\u68B0\u5C42\u4E0D\u91CD\u5224\u3002"
9161
+ description: "\u4EC5\u6709\u672C\u5EAD\u5BF9\u8C61\u65F6\u586B\u7968\u53F7\uFF08\u6B63\u6574\u6570\uFF09\uFF1B\u6CA1\u6709\u5C31\u586B null\uFF1D\u771F\u65E0\u7968\uFF1B\u4E0B\u6E38\u8D70 typed \u952E\uFF1B\u8BA4\u4E0D\u51FA\u7528 status=escalate\uFF0C\u4E0D\u6D17\u6210\u65E0\u5F55\u3002\u673A\u68B0\u5C42\u4E0D\u91CD\u5224\u3002"
9178
9162
  })
9179
9163
  ),
9180
9164
  reason: typebox_exports.Unknown({
9181
- description: "status \u4E3A escalate \u65F6\uFF1A\u4E0A\u5448\u7684\u539F\u56E0"
9165
+ description: "\u4EC5 status \u4E3A escalate \u65F6\u586B\u4E0A\u5448\u7684\u539F\u56E0\uFF1B\u6CA1\u6709\u5C31\u586B null"
9182
9166
  }),
9183
- sessions: typebox_exports.Optional(typebox_exports.Unknown({ description: DIARIST_SESSIONS_DESCRIPTION })),
9167
+ sessions: typebox_exports.Optional(typebox_exports.Unknown({
9168
+ description: `\u4EC5\u5355\u7968\u5EAD\u65F6\u586B\u5BF9\u8BDD\u8FB9\u754C\uFF1B\u6CA1\u6709\u5C31\u586B null\u3002${DIARIST_SESSIONS_DESCRIPTION}`
9169
+ })),
9184
9170
  ticketSessions: typebox_exports.Unknown({
9185
- description: `\u591A\u7968\u5EAD\u9010\u7968\u5BF9\u8BDD\u8FB9\u754C\uFF1B\u6BCF\u7968\u542B ticketNumber\uFF08\u672C\u6761\u8FB9\u754C\u6240\u5F52\u7968\u53F7\uFF0C\u6B63\u6574\u6570\uFF09\u4E0E sessions\uFF08${DIARIST_SESSIONS_DESCRIPTION}\uFF09\u3002\u4E00\u6B21\u4EA4\u5377\u5404\u7968\u5404\u81EA\u5206\u5F55\u3002\u4E0E\u5355\u7968 sessions \u4E8C\u9009\u4E00\u3002`
9171
+ description: `\u4EC5\u591A\u7968\u5EAD\u65F6\u586B\u9010\u7968\u5BF9\u8BDD\u8FB9\u754C\uFF1B\u6CA1\u6709\u5C31\u586B null\u3002\u6BCF\u7968\u542B ticketNumber\uFF08\u672C\u6761\u8FB9\u754C\u6240\u5F52\u7968\u53F7\uFF0C\u6B63\u6574\u6570\uFF09\u4E0E sessions\uFF08${DIARIST_SESSIONS_DESCRIPTION}\uFF09\u3002\u4E00\u6B21\u4EA4\u5377\u5404\u7968\u5404\u81EA\u5206\u5F55\u3002`
9186
9172
  })
9187
9173
  })
9188
9174
  )
@@ -9737,7 +9723,7 @@ var init_collector_tool_schemas = __esm({
9737
9723
  description: "\u6309\u673A\u5668\u8EAB\u4EFD\u5F52\u7EC4\u7684\u51FA\u5E2D\u3001\u6750\u6599\u4E0E\u9010\u6761 findings\uFF08LLM \u81EA\u884C\u4ECE\u5BBF\u4E3B CLI \u53D6\u8BC1\u6574\u7406\uFF1B\u4EE3\u7801\u4E0D\u4EE3\u6536\u4E0D\u5F52\u5E76\uFF09\u3002"
9738
9724
  }),
9739
9725
  unfinishedReasons: typebox_exports.Unknown({
9740
- description: "\u672A\u5B8C\u6210\u539F\u56E0\uFF1B\u53D6\u8BC1\u53D7\u9650\u65F6\u5982\u5B9E\u62A5\u544A\u3002"
9726
+ description: "\u4EC5\u53D6\u8BC1\u53D7\u9650\u65F6\u586B\u672A\u5B8C\u6210\u539F\u56E0\uFF1B\u6CA1\u6709\u5C31\u586B null"
9741
9727
  })
9742
9728
  })
9743
9729
  );
@@ -22,7 +22,7 @@ const fixerOutputObject = Type.Object({
22
22
  }),
23
23
  diffItems: diffItemsField,
24
24
  testEvidence: Type.Unknown({
25
- description: "\u6D4B\u8BD5\u8BC1\u636E\u6761\uFF1Bdiff \u542B\u6D4B\u8BD5\u6539\u52A8\u65F6\u63D0\u4EA4\uFF1B\u673A\u5668\u4E0D\u6838\u9A8C\u3002\u53EF\u5199 contract\uFF08\u6D4B\u8BD5\u6539\u52A8\u6240\u8BC1\u660E\u7684\u5951\u7EA6\uFF09\u3001minimumNecessaryCost\uFF08\u6D4B\u8BD5\u6539\u52A8\u7684\u4E00\u884C\u6700\u5C0F\u5FC5\u8981\u6210\u672C\uFF09\u3001measuredDuration\uFF08\u805A\u7126\u9A8C\u8BC1\u5B9E\u6D4B\u65F6\u957F\uFF09\u3002"
25
+ description: "\u4EC5 diff \u542B\u6D4B\u8BD5\u6539\u52A8\u65F6\u586B\u6D4B\u8BD5\u8BC1\u636E\u6761\uFF1B\u6CA1\u6709\u5C31\u586B null\u3002\u673A\u5668\u4E0D\u6838\u9A8C\u3002\u53EF\u5199 contract\uFF08\u6D4B\u8BD5\u6539\u52A8\u6240\u8BC1\u660E\u7684\u5951\u7EA6\uFF09\u3001minimumNecessaryCost\uFF08\u6D4B\u8BD5\u6539\u52A8\u7684\u4E00\u884C\u6700\u5C0F\u5FC5\u8981\u6210\u672C\uFF09\u3001measuredDuration\uFF08\u805A\u7126\u9A8C\u8BC1\u5B9E\u6D4B\u65F6\u957F\uFF09\u3002"
26
26
  })
27
27
  });
28
28
  const fixerOutputSchema = withTerminatingOutputDeclarations(
@@ -9,10 +9,10 @@ const gatekeeperDecisionSchema = openToolObject(
9
9
  description: "dispatch | pass"
10
10
  }),
11
11
  officer: Type.Unknown({
12
- description: "status \u4E3A dispatch \u65F6\u4E3A inspector | notary"
12
+ description: "\u4EC5 status \u4E3A dispatch \u65F6\u586B inspector | notary\uFF1B\u6CA1\u6709\u5C31\u586B null"
13
13
  }),
14
14
  findings: Type.Unknown({
15
- description: "status \u4E3A pass \u65F6\u53EF\u9009 string[] findings"
15
+ description: "\u4EC5 status \u4E3A pass \u65F6\u586B string[] findings\uFF1B\u6CA1\u6709\u5C31\u586B null"
16
16
  })
17
17
  })
18
18
  );
@@ -5,13 +5,13 @@ import { withTerminatingOutputDeclarations } from "./terminating-infrastructure.
5
5
  const NAVIGATOR_OUTPUT_TOOL_NAME = "ak_navigator_output";
6
6
  const navigatorAdviceFields = {
7
7
  prose: Type.Unknown({
8
- description: "\u5355\u6761\u6563\u6587\u5EFA\u8BAE\u3002\u65E0\u72B6\u6001\u5206\u53C9\u65F6\u4F7F\u7528\uFF1B\u539F\u6837\u5448\u73B0\u3002"
8
+ description: "\u4EC5\u65E0\u72B6\u6001\u5206\u53C9\u65F6\u586B\u5355\u6761\u6563\u6587\u5EFA\u8BAE\uFF1B\u6CA1\u6709\u5C31\u586B null\u3002\u539F\u6837\u5448\u73B0\u3002"
9
9
  }),
10
10
  byStatus: Type.Unknown({
11
11
  description: "\u6309\u4E3B\u8859\u95E8\u7ED3\u5C40 status \u9884\u5199\u7684\u6563\u6587\u5EFA\u8BAE\u3002\u952E\u4E3A status \u5B57\u9762\u91CF\uFF0C\u503C\u4E3A\u5EFA\u8BAE\u6B63\u6587\u3002\u7ED3\u7B97\u65F6\u4EE3\u7801\u53EA\u6309\u5B9E\u9645 status \u53D6\u5BF9\u5E94\u539F\u6587\uFF0C\u4E0D\u89E3\u6790\u5EFA\u8BAE\u8BED\u4E49\u3002"
12
12
  }),
13
13
  byRole: Type.Unknown({
14
- description: "\u6574\u5F20\u8DEF\u7EBF\u8868\uFF1A\u952E\u4E3A\u8859\u95E8\u89D2\u8272\uFF0C\u503C\u4E3A\u8BE5\u8859\u95E8 status \u2192 \u5EFA\u8BAE\u3002\u76F4\u63A5\u5165\u53E3\u4E0D\u7ED9\u89D2\u8272\u65F6\u4F7F\u7528\u3002"
14
+ description: "\u4EC5\u76F4\u63A5\u5165\u53E3\u4E0D\u7ED9\u89D2\u8272\u65F6\u586B\u6574\u5F20\u8DEF\u7EBF\u8868\uFF08\u952E\u4E3A\u8859\u95E8\u89D2\u8272\uFF0C\u503C\u4E3A\u8BE5\u8859\u95E8 status \u2192 \u5EFA\u8BAE\uFF09\uFF1B\u6CA1\u6709\u5C31\u586B null"
15
15
  })
16
16
  };
17
17
  const navigatorAdviceBodySchema = openToolObject(Type.Object(navigatorAdviceFields));
@@ -2,7 +2,7 @@ import { Type } from "typebox";
2
2
  import { openToolObject } from "../open-tool-schema.js";
3
3
  import { withTerminatingOutputDeclarations } from "./terminating-infrastructure.js";
4
4
  const REVIEWER_OUTPUT_TOOL_NAME = "ak_reviewer_output";
5
- const REVIEWER_AMENDMENTS_DESCRIPTION = "\u5DF2\u8FD0\u884C lens \u7684 amendments \u627F\u8F7D candidates\u3001\u9010\u6761\u5904\u7F6E\u4E0E verdict \u7684\u5B8C\u6574\u62A5\u544A\uFF08\u975E\u4EC5 verdict \u884C\uFF09\uFF1B\u663E\u5F0F\u5355\u8F74\u65F6\u53E6\u4E00\u8F74\u53EF\u7701\u7565\uFF08completeness / correctness\uFF09\u3002hard-stop\uFF0Fusage error \u4E3A refused \u65F6\uFF0C\u5DF2\u4EA7\u51FA\u62A5\u544A\u4ECD\u7167\u5F55\u5BF9\u5E94 lens \u5B57\u6BB5\u3002";
5
+ const REVIEWER_AMENDMENTS_DESCRIPTION = "\u5DF2\u8FD0\u884C lens \u7684 amendments \u627F\u8F7D candidates\u3001\u9010\u6761\u5904\u7F6E\u4E0E verdict \u7684\u5B8C\u6574\u62A5\u544A\uFF08\u975E\u4EC5 verdict \u884C\uFF09\uFF1B\u5404\u8F74\uFF08completeness / correctness\uFF09\u4EC5\u6709\u5DF2\u4EA7\u51FA\u62A5\u544A\u65F6\u586B\u62A5\u544A\uFF1B\u6CA1\u6709\u5C31\u586B null\u3002hard-stop\uFF0Fusage error \u4E3A refused \u65F6\uFF0C\u5DF2\u4EA7\u51FA\u62A5\u544A\u4ECD\u7167\u5F55\u5BF9\u5E94 lens \u5B57\u6BB5\u3002";
6
6
  const REVIEWER_STATUS_DESCRIPTION = "completed | refused\u3002\u4E24\u79CD\u6B63\u5E38 lens verdict\uFF08completeness / correctness\uFF09\u5747 completed\uFF1Bhard-stop \u4E0E usage error \u4E3A refused\uFF08\u5DF2\u4EA7\u51FA\u62A5\u544A\u4ECD\u7167\u5F55\u8FDB\u6240\u9009 lens amendments\uFF09\u3002";
7
7
  const reviewerOutputObject = Type.Object({
8
8
  status: Type.Unknown({ description: REVIEWER_STATUS_DESCRIPTION }),