@principles/core 1.270.5 → 1.272.0

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 (188) hide show
  1. package/dist/runtime-v2/__tests__/admission-gate.test.js +23 -6
  2. package/dist/runtime-v2/__tests__/admission-gate.test.js.map +1 -1
  3. package/dist/runtime-v2/__tests__/adversarial-loop.test.js +22 -0
  4. package/dist/runtime-v2/__tests__/adversarial-loop.test.js.map +1 -1
  5. package/dist/runtime-v2/__tests__/context-payload-validation.test.js +1 -1
  6. package/dist/runtime-v2/__tests__/context-payload-validation.test.js.map +1 -1
  7. package/dist/runtime-v2/__tests__/evaluator-repair-loop.test.js +20 -0
  8. package/dist/runtime-v2/__tests__/evaluator-repair-loop.test.js.map +1 -1
  9. package/dist/runtime-v2/__tests__/evidence-guards.test.js +2 -2
  10. package/dist/runtime-v2/__tests__/evidence-guards.test.js.map +1 -1
  11. package/dist/runtime-v2/__tests__/golden-path-diagnostician-e2e.test.js +1 -1
  12. package/dist/runtime-v2/__tests__/golden-path-diagnostician-e2e.test.js.map +1 -1
  13. package/dist/runtime-v2/__tests__/governance-experience.test.js +19 -0
  14. package/dist/runtime-v2/__tests__/governance-experience.test.js.map +1 -1
  15. package/dist/runtime-v2/__tests__/pain-evidence-contract.test.js +3 -3
  16. package/dist/runtime-v2/__tests__/pain-evidence-contract.test.js.map +1 -1
  17. package/dist/runtime-v2/__tests__/pain-signal-bridge-result-shaping.test.js +1 -1
  18. package/dist/runtime-v2/__tests__/pain-signal-bridge-result-shaping.test.js.map +1 -1
  19. package/dist/runtime-v2/__tests__/rollout-reviewer-verdict-paths.test.js +26 -5
  20. package/dist/runtime-v2/__tests__/rollout-reviewer-verdict-paths.test.js.map +1 -1
  21. package/dist/runtime-v2/__tests__/rollout-rule-candidate-contract.test.d.ts +2 -0
  22. package/dist/runtime-v2/__tests__/rollout-rule-candidate-contract.test.d.ts.map +1 -0
  23. package/dist/runtime-v2/__tests__/rollout-rule-candidate-contract.test.js +243 -0
  24. package/dist/runtime-v2/__tests__/rollout-rule-candidate-contract.test.js.map +1 -0
  25. package/dist/runtime-v2/admission-gate.d.ts +8 -1
  26. package/dist/runtime-v2/admission-gate.d.ts.map +1 -1
  27. package/dist/runtime-v2/admission-gate.js +14 -0
  28. package/dist/runtime-v2/admission-gate.js.map +1 -1
  29. package/dist/runtime-v2/context-payload.d.ts +9 -3
  30. package/dist/runtime-v2/context-payload.d.ts.map +1 -1
  31. package/dist/runtime-v2/context-payload.js +3 -1
  32. package/dist/runtime-v2/context-payload.js.map +1 -1
  33. package/dist/runtime-v2/evidence-triage/__tests__/observation-resolver.test.js +2 -2
  34. package/dist/runtime-v2/evidence-triage/__tests__/observation-resolver.test.js.map +1 -1
  35. package/dist/runtime-v2/evidence-triage/observation-resolver.d.ts +1 -1
  36. package/dist/runtime-v2/evidence-triage/observation-resolver.d.ts.map +1 -1
  37. package/dist/runtime-v2/evidence-triage/observation-resolver.js +2 -2
  38. package/dist/runtime-v2/evidence-triage/observation-resolver.js.map +1 -1
  39. package/dist/runtime-v2/evidence-triage/types.d.ts +1 -1
  40. package/dist/runtime-v2/evidence-triage/types.d.ts.map +1 -1
  41. package/dist/runtime-v2/evolution/evolution-types.d.ts +8 -4
  42. package/dist/runtime-v2/evolution/evolution-types.d.ts.map +1 -1
  43. package/dist/runtime-v2/evolution/evolution-types.js +3 -1
  44. package/dist/runtime-v2/evolution/evolution-types.js.map +1 -1
  45. package/dist/runtime-v2/governance-experience-contract.d.ts +16 -16
  46. package/dist/runtime-v2/governance-experience-contract.d.ts.map +1 -1
  47. package/dist/runtime-v2/governance-experience-contract.js +4 -1
  48. package/dist/runtime-v2/governance-experience-contract.js.map +1 -1
  49. package/dist/runtime-v2/governance-experience.d.ts.map +1 -1
  50. package/dist/runtime-v2/governance-experience.js +30 -8
  51. package/dist/runtime-v2/governance-experience.js.map +1 -1
  52. package/dist/runtime-v2/index.d.ts +11 -1
  53. package/dist/runtime-v2/index.d.ts.map +1 -1
  54. package/dist/runtime-v2/index.js +7 -0
  55. package/dist/runtime-v2/index.js.map +1 -1
  56. package/dist/runtime-v2/internalization/__tests__/artificer-code-bearing.test.d.ts +2 -0
  57. package/dist/runtime-v2/internalization/__tests__/artificer-code-bearing.test.d.ts.map +1 -0
  58. package/dist/runtime-v2/internalization/__tests__/artificer-code-bearing.test.js +114 -0
  59. package/dist/runtime-v2/internalization/__tests__/artificer-code-bearing.test.js.map +1 -0
  60. package/dist/runtime-v2/internalization/__tests__/evaluator-gate-authority.test.d.ts +2 -0
  61. package/dist/runtime-v2/internalization/__tests__/evaluator-gate-authority.test.d.ts.map +1 -0
  62. package/dist/runtime-v2/internalization/__tests__/evaluator-gate-authority.test.js +256 -0
  63. package/dist/runtime-v2/internalization/__tests__/evaluator-gate-authority.test.js.map +1 -0
  64. package/dist/runtime-v2/internalization/__tests__/evaluator-prompt-builder.test.js +1 -1
  65. package/dist/runtime-v2/internalization/__tests__/internalization-transition-decision.test.js +15 -14
  66. package/dist/runtime-v2/internalization/__tests__/internalization-transition-decision.test.js.map +1 -1
  67. package/dist/runtime-v2/internalization/__tests__/owner-decision-architecture.test.d.ts +2 -0
  68. package/dist/runtime-v2/internalization/__tests__/owner-decision-architecture.test.d.ts.map +1 -0
  69. package/dist/runtime-v2/internalization/__tests__/owner-decision-architecture.test.js +56 -0
  70. package/dist/runtime-v2/internalization/__tests__/owner-decision-architecture.test.js.map +1 -0
  71. package/dist/runtime-v2/internalization/__tests__/owner-decision-review.test.d.ts +2 -0
  72. package/dist/runtime-v2/internalization/__tests__/owner-decision-review.test.d.ts.map +1 -0
  73. package/dist/runtime-v2/internalization/__tests__/owner-decision-review.test.js +229 -0
  74. package/dist/runtime-v2/internalization/__tests__/owner-decision-review.test.js.map +1 -0
  75. package/dist/runtime-v2/internalization/__tests__/owner-decision.test.d.ts +2 -0
  76. package/dist/runtime-v2/internalization/__tests__/owner-decision.test.d.ts.map +1 -0
  77. package/dist/runtime-v2/internalization/__tests__/owner-decision.test.js +1054 -0
  78. package/dist/runtime-v2/internalization/__tests__/owner-decision.test.js.map +1 -0
  79. package/dist/runtime-v2/internalization/__tests__/owner-override-resume.test.d.ts +2 -0
  80. package/dist/runtime-v2/internalization/__tests__/owner-override-resume.test.d.ts.map +1 -0
  81. package/dist/runtime-v2/internalization/__tests__/owner-override-resume.test.js +328 -0
  82. package/dist/runtime-v2/internalization/__tests__/owner-override-resume.test.js.map +1 -0
  83. package/dist/runtime-v2/internalization/__tests__/rule-activation-contract.test.d.ts +2 -0
  84. package/dist/runtime-v2/internalization/__tests__/rule-activation-contract.test.d.ts.map +1 -0
  85. package/dist/runtime-v2/internalization/__tests__/rule-activation-contract.test.js +187 -0
  86. package/dist/runtime-v2/internalization/__tests__/rule-activation-contract.test.js.map +1 -0
  87. package/dist/runtime-v2/internalization/artificer-code-bearing.d.ts +39 -0
  88. package/dist/runtime-v2/internalization/artificer-code-bearing.d.ts.map +1 -0
  89. package/dist/runtime-v2/internalization/artificer-code-bearing.js +33 -0
  90. package/dist/runtime-v2/internalization/artificer-code-bearing.js.map +1 -0
  91. package/dist/runtime-v2/internalization/evaluator-output.d.ts +63 -2
  92. package/dist/runtime-v2/internalization/evaluator-output.d.ts.map +1 -1
  93. package/dist/runtime-v2/internalization/evaluator-output.js +139 -2
  94. package/dist/runtime-v2/internalization/evaluator-output.js.map +1 -1
  95. package/dist/runtime-v2/internalization/evaluator-prompt-builder.d.ts +54 -2
  96. package/dist/runtime-v2/internalization/evaluator-prompt-builder.d.ts.map +1 -1
  97. package/dist/runtime-v2/internalization/evaluator-prompt-builder.js +49 -2
  98. package/dist/runtime-v2/internalization/evaluator-prompt-builder.js.map +1 -1
  99. package/dist/runtime-v2/internalization/evaluator-runner.d.ts +45 -8
  100. package/dist/runtime-v2/internalization/evaluator-runner.d.ts.map +1 -1
  101. package/dist/runtime-v2/internalization/evaluator-runner.js +465 -43
  102. package/dist/runtime-v2/internalization/evaluator-runner.js.map +1 -1
  103. package/dist/runtime-v2/internalization/index.d.ts +2 -0
  104. package/dist/runtime-v2/internalization/index.d.ts.map +1 -1
  105. package/dist/runtime-v2/internalization/index.js +1 -0
  106. package/dist/runtime-v2/internalization/index.js.map +1 -1
  107. package/dist/runtime-v2/internalization/internalization-orchestrator.d.ts.map +1 -1
  108. package/dist/runtime-v2/internalization/internalization-orchestrator.js +10 -54
  109. package/dist/runtime-v2/internalization/internalization-orchestrator.js.map +1 -1
  110. package/dist/runtime-v2/internalization/internalization-transition-decision.d.ts +7 -1
  111. package/dist/runtime-v2/internalization/internalization-transition-decision.d.ts.map +1 -1
  112. package/dist/runtime-v2/internalization/internalization-transition-decision.js +9 -2
  113. package/dist/runtime-v2/internalization/internalization-transition-decision.js.map +1 -1
  114. package/dist/runtime-v2/internalization/owner-decision-review.d.ts +98 -0
  115. package/dist/runtime-v2/internalization/owner-decision-review.d.ts.map +1 -0
  116. package/dist/runtime-v2/internalization/owner-decision-review.js +287 -0
  117. package/dist/runtime-v2/internalization/owner-decision-review.js.map +1 -0
  118. package/dist/runtime-v2/internalization/owner-resolution-service.d.ts +100 -0
  119. package/dist/runtime-v2/internalization/owner-resolution-service.d.ts.map +1 -0
  120. package/dist/runtime-v2/internalization/owner-resolution-service.js +385 -0
  121. package/dist/runtime-v2/internalization/owner-resolution-service.js.map +1 -0
  122. package/dist/runtime-v2/internalization/owner-retry.d.ts +12 -0
  123. package/dist/runtime-v2/internalization/owner-retry.d.ts.map +1 -1
  124. package/dist/runtime-v2/internalization/owner-retry.js +23 -0
  125. package/dist/runtime-v2/internalization/owner-retry.js.map +1 -1
  126. package/dist/runtime-v2/internalization/owner-review.d.ts +199 -0
  127. package/dist/runtime-v2/internalization/owner-review.d.ts.map +1 -0
  128. package/dist/runtime-v2/internalization/owner-review.js +470 -0
  129. package/dist/runtime-v2/internalization/owner-review.js.map +1 -0
  130. package/dist/runtime-v2/internalization/peer-runner-contracts.d.ts +5 -1
  131. package/dist/runtime-v2/internalization/peer-runner-contracts.d.ts.map +1 -1
  132. package/dist/runtime-v2/internalization/peer-runner-contracts.js.map +1 -1
  133. package/dist/runtime-v2/internalization/pitask-metadata.d.ts +84 -0
  134. package/dist/runtime-v2/internalization/pitask-metadata.d.ts.map +1 -1
  135. package/dist/runtime-v2/internalization/pitask-metadata.js +166 -0
  136. package/dist/runtime-v2/internalization/pitask-metadata.js.map +1 -1
  137. package/dist/runtime-v2/internalization/revision-reopen.d.ts +56 -0
  138. package/dist/runtime-v2/internalization/revision-reopen.d.ts.map +1 -0
  139. package/dist/runtime-v2/internalization/revision-reopen.js +144 -0
  140. package/dist/runtime-v2/internalization/revision-reopen.js.map +1 -0
  141. package/dist/runtime-v2/internalization/rollout-reviewer-runner.d.ts +25 -0
  142. package/dist/runtime-v2/internalization/rollout-reviewer-runner.d.ts.map +1 -1
  143. package/dist/runtime-v2/internalization/rollout-reviewer-runner.js +202 -23
  144. package/dist/runtime-v2/internalization/rollout-reviewer-runner.js.map +1 -1
  145. package/dist/runtime-v2/internalization/rule-activation-contract.d.ts +35 -0
  146. package/dist/runtime-v2/internalization/rule-activation-contract.d.ts.map +1 -0
  147. package/dist/runtime-v2/internalization/rule-activation-contract.js +36 -0
  148. package/dist/runtime-v2/internalization/rule-activation-contract.js.map +1 -0
  149. package/dist/runtime-v2/pain-signal-bridge.d.ts +2 -0
  150. package/dist/runtime-v2/pain-signal-bridge.d.ts.map +1 -1
  151. package/dist/runtime-v2/pain-signal-bridge.js +4 -3
  152. package/dist/runtime-v2/pain-signal-bridge.js.map +1 -1
  153. package/dist/runtime-v2/pain-to-principle-service.d.ts +1 -0
  154. package/dist/runtime-v2/pain-to-principle-service.d.ts.map +1 -1
  155. package/dist/runtime-v2/pain-to-principle-service.js +1 -0
  156. package/dist/runtime-v2/pain-to-principle-service.js.map +1 -1
  157. package/dist/runtime-v2/runner/__tests__/pain-signal-bridge-admission.test.js +6 -6
  158. package/dist/runtime-v2/runner/__tests__/pain-signal-bridge-admission.test.js.map +1 -1
  159. package/dist/runtime-v2/store/context/sqlite-context-assembler.d.ts.map +1 -1
  160. package/dist/runtime-v2/store/context/sqlite-context-assembler.js +25 -5
  161. package/dist/runtime-v2/store/context/sqlite-context-assembler.js.map +1 -1
  162. package/dist/runtime-v2/store/context/sqlite-context-assembler.test.js +39 -9
  163. package/dist/runtime-v2/store/context/sqlite-context-assembler.test.js.map +1 -1
  164. package/dist/runtime-v2/store/runtime-state-manager.d.ts +12 -0
  165. package/dist/runtime-v2/store/runtime-state-manager.d.ts.map +1 -1
  166. package/dist/runtime-v2/store/runtime-state-manager.js +17 -0
  167. package/dist/runtime-v2/store/runtime-state-manager.js.map +1 -1
  168. package/dist/runtime-v2/store/task/__tests__/sqlite-task-store-cas.test.d.ts +2 -0
  169. package/dist/runtime-v2/store/task/__tests__/sqlite-task-store-cas.test.d.ts.map +1 -0
  170. package/dist/runtime-v2/store/task/__tests__/sqlite-task-store-cas.test.js +114 -0
  171. package/dist/runtime-v2/store/task/__tests__/sqlite-task-store-cas.test.js.map +1 -0
  172. package/dist/runtime-v2/store/task/memory-task-store.d.ts +1 -0
  173. package/dist/runtime-v2/store/task/memory-task-store.d.ts.map +1 -1
  174. package/dist/runtime-v2/store/task/memory-task-store.js +8 -0
  175. package/dist/runtime-v2/store/task/memory-task-store.js.map +1 -1
  176. package/dist/runtime-v2/store/task/sqlite-task-store.d.ts +20 -0
  177. package/dist/runtime-v2/store/task/sqlite-task-store.d.ts.map +1 -1
  178. package/dist/runtime-v2/store/task/sqlite-task-store.js +81 -0
  179. package/dist/runtime-v2/store/task/sqlite-task-store.js.map +1 -1
  180. package/dist/runtime-v2/store/task/task-store.d.ts +9 -0
  181. package/dist/runtime-v2/store/task/task-store.d.ts.map +1 -1
  182. package/dist/runtime-v2/store/workspace-isolation.test.js +1 -0
  183. package/dist/runtime-v2/store/workspace-isolation.test.js.map +1 -1
  184. package/dist/runtime-v2/task-status.d.ts +2 -1
  185. package/dist/runtime-v2/task-status.d.ts.map +1 -1
  186. package/dist/runtime-v2/task-status.js +5 -1
  187. package/dist/runtime-v2/task-status.js.map +1 -1
  188. package/package.json +1 -1
@@ -0,0 +1,199 @@
1
+ /**
2
+ * owner-review.ts — PRI-629 统一 Owner Decision 策略层(纯函数 + 窄事实读取)。
3
+ *
4
+ * 职责(单一深模块,Console/CLI/Runner 共用,禁止各自再推导):
5
+ * - collectOwnerDecisionFacts 读取 durable facts(task/lineage/artifact)
6
+ * - deriveOwnerDecisionCapability 纯策略:该 NHR 任务是否 decision-capable、
7
+ * 允许哪些 Owner 动作(INV-01 的唯一依据)
8
+ * - buildOwnerReviewKey 裁决事实快照的稳定 hash(stale 防护)
9
+ * - resolveEffectiveRunnerDecision effective decision 的唯一解析点
10
+ * - classifyHumanReviewAttention owner_decision vs recovery(fail closed)
11
+ *
12
+ * 不变式(SPEC PRI-629/630):
13
+ * - machine verdict 永不被覆盖(runnerDecision 只读)
14
+ * - allowedActions.length === 0 ⇔ 不进 Owner Inbox、不阻止 Recover
15
+ * - 未知 reasonCode / 模糊 legacy 事实 → recovery(fail closed)
16
+ * - reviewKey 绑定 (taskId, epoch, run, artifact, hash, verdict, reason)
17
+ */
18
+ import type { TaskRecord } from '../task-status.js';
19
+ import type { PITaskRecord } from './peer-runner-contracts.js';
20
+ import { type OwnerResolutionAction, type OwnerResolutionRecord, type RunnerDecision } from './pitask-metadata.js';
21
+ /**
22
+ * needs_human_review 的结构化原因码(PRI-629)。写入侧由 runner 使用常量;
23
+ * 解析侧接受任意非空串(前向兼容),分类侧只认 DECISION_CAPABLE 集合,
24
+ * 其余一律 recovery。
25
+ */
26
+ export declare const HUMAN_REVIEW_REASON: {
27
+ /** Evaluator 修复预算耗尽(2 轮已用完)— Owner 可裁决 */
28
+ readonly evaluatorRepairBudgetExhausted: 'evaluator_repair_budget_exhausted';
29
+ /** Rollout 修订预算耗尽 — Owner 可裁决 */
30
+ readonly rolloutRevisionBudgetExhausted: 'rollout_revision_budget_exhausted';
31
+ readonly evaluatorRepairSeedFailed: 'evaluator_repair_seed_failed';
32
+ readonly rolloutActivationCandidateUnresolved: 'rollout_activation_candidate_unresolved';
33
+ readonly rolloutDispatchNotWired: 'rollout_dispatch_not_wired';
34
+ readonly rolloutDispatchRefused: 'rollout_dispatch_refused';
35
+ readonly rolloutRevisionTargetUnresolved: 'rollout_revision_target_unresolved';
36
+ readonly rolloutRevisionRoutingNotWired: 'rollout_revision_routing_not_wired';
37
+ readonly rolloutRevisionReopenFailed: 'rollout_revision_reopen_failed';
38
+ readonly rolloutRevisionIterationMissing: 'rollout_revision_iteration_missing';
39
+ readonly workspaceDirtyStall: 'workspace_dirty_stall';
40
+ };
41
+ export type HumanReviewReasonCode = typeof HUMAN_REVIEW_REASON[keyof typeof HUMAN_REVIEW_REASON];
42
+ /** decision-capable 原因集合 — 只有这些允许 Owner verdict override。 */
43
+ export declare const DECISION_CAPABLE_HUMAN_REVIEW_REASONS: ReadonlySet<string>;
44
+ /** legacy(无 humanReviewContext)判定后使用的原因码,携带 _legacy 后缀以示证据来源。 */
45
+ export declare const LEGACY_EVALUATOR_BUDGET_EXHAUSTED = "evaluator_repair_budget_exhausted_legacy";
46
+ export declare const LEGACY_ROLLOUT_BUDGET_EXHAUSTED = "rollout_revision_budget_exhausted_legacy";
47
+ /** 事实读取所需的最窄接口 — RuntimeStateManager 天然满足前两项。 */
48
+ export interface OwnerDecisionFactStore {
49
+ getTask(taskId: string): Promise<TaskRecord | null>;
50
+ listArtifactsBySourceTask(taskId: string): Promise<readonly DecisionArtifactRecord[]>;
51
+ }
52
+ export interface DecisionArtifactRecord {
53
+ readonly artifactId: string;
54
+ readonly artifactKind: string;
55
+ readonly validationStatus: string;
56
+ readonly contentJson: string;
57
+ /** Review projection lineage fields; optional for legacy fact-store adapters. */
58
+ readonly sourceTaskId?: string;
59
+ readonly lineageArtifactIds?: readonly string[];
60
+ readonly createdAt?: string;
61
+ }
62
+ /** 决策输出 artifact(evaluator/rollout 名下的 kind='principle' 评审输出)。 */
63
+ export interface DecisionArtifactFacts {
64
+ readonly artifactId: string;
65
+ readonly contentHash: string;
66
+ }
67
+ /** collectOwnerDecisionFacts 的产物 — capability 的全部输入。 */
68
+ export interface OwnerDecisionFacts {
69
+ readonly task: PITaskRecord;
70
+ /** 决策输出 artifact(pi-art-<taskId>-<runId>);不存在 = null */
71
+ readonly decisionArtifact: DecisionArtifactFacts | null;
72
+ /** 决策 artifact 的确定性安全门(adversarial hard gate)失败 — accept 禁止 */
73
+ readonly hardGateFailed: boolean;
74
+ /** evaluator: 依赖链上 artificer 的 repairPayload.repairIteration(无 payload 的首轮 artificer = 0;无 artificer = null) */
75
+ readonly dependencyRepairIteration: number | null;
76
+ /** evaluator: 依赖 artificer 的 taskId(revise_once 的 reopen 目标;无 = null) */
77
+ readonly dependencyArtificerTaskId: string | null;
78
+ /** rollout: rolloutRevisionPayload 已 APPLIED 的修订轮数 */
79
+ readonly rolloutRevisionAppliedCount: number | null;
80
+ /** 依赖链可解析(evaluator: 依赖 artificer 任务存在;rollout: 依赖 evaluator 任务存在) */
81
+ readonly lineageResolvable: boolean;
82
+ }
83
+ /** 对 artifact contentJson 计算 sha256 hex(reviewKey / stale 防护的事实输入)。 */
84
+ export declare function computeArtifactContentHash(contentJson: string): string;
85
+ /** evaluator/rollout 输出 artifact 的确定性 id(与 runner 写入约定一致)。 */
86
+ export declare function decisionArtifactIdFor(taskId: string, runId: string): string;
87
+ /**
88
+ * 从 durable facts 还原裁决事实快照:
89
+ * 1. humanReviewContext 存在 → 直接采用(它由 runner 在 NHR 落库时原子写入);
90
+ * 2. legacy → completionIntent.sourceRunId + 确定性 artifact id + 内容 hash。
91
+ * 决策 artifact 必须真实存在且可读 — 缺失即 capability 失败(recovery)。
92
+ */
93
+ /**
94
+ * 硬确定性安全门判定(SPEC §20):evaluator V2 输出携带 adversarialResult
95
+ * 且 passed=false → 确定性对抗门失败,Owner 不得 accept(可 revise/reject)。
96
+ * 此处只读 metadata 可达的事实;artifact 内容级判定在 apply 阶段由 runner
97
+ * 的既有 deterministic gates 兜底(RuleHostWriter.canActivate / sandbox replay)。
98
+ */
99
+ /**
100
+ * verdict override 的 effective decision 映射(SPEC §10/§14/§16)。
101
+ * 注意 rollout accept → 'approve_rollout'(不是 'approved')— 高风险部署
102
+ * 审批由 ActivationDispatcher 在下游强制,Owner review 不穿透。
103
+ */
104
+ export declare function effectiveDecisionFor(taskKind: string, action: OwnerResolutionAction): RunnerDecision | undefined;
105
+ export interface OwnerOverrideResumePlan {
106
+ readonly resolution: OwnerResolutionRecord;
107
+ readonly overrideDecision: RunnerDecision;
108
+ }
109
+ /**
110
+ * Runner 入口恢复门的第一优先级检查(SPEC §10):
111
+ * pending Owner Resolution → pending Completion Intent → normal LLM。
112
+ * 当前 epoch 存在 verdict override resolution(pending 或 applied 均可 —
113
+ * applied 但任务未 terminal 的 crash 窗口同样由此收敛)→ 返回 override 计划。
114
+ */
115
+ export declare function planOwnerVerdictOverrideResume(piTask: PITaskRecord): OwnerOverrideResumePlan | null;
116
+ /**
117
+ * runner 侧 detail reason string → 规范化 humanReviewContext.reasonCode。
118
+ * 保留 detail 原串在事件里(可观测),context 携带规范码(可分类)。
119
+ */
120
+ export declare function canonicalHumanReviewReasonCode(detail: string): string;
121
+ /**
122
+ * 硬确定性安全门判定(SPEC §9.1/§20):evaluator V2 输出携带
123
+ * adversarialResult 且 passed=false → 确定性对抗门失败 → accept_current
124
+ * 不允许(revise/reject 仍可用)。从决策 artifact contentJson 做有界解析。
125
+ */
126
+ export declare function detectHardGateFailureFromArtifact(contentJson: string): boolean;
127
+ export declare function collectOwnerDecisionFacts(store: OwnerDecisionFactStore, taskId: string): Promise<OwnerDecisionFacts | null>;
128
+ export interface ReviewKeyFacts {
129
+ readonly taskId: string;
130
+ readonly revisionEpoch: number;
131
+ readonly sourceRunId: string;
132
+ readonly sourceArtifactId: string;
133
+ readonly sourceArtifactHash: string;
134
+ readonly machineDecision: string;
135
+ readonly humanReviewReason: string;
136
+ }
137
+ /**
138
+ * Owner Decision Item 的稳定身份:裁决事实快照的 sha256。任何一个事实变化
139
+ * (新一轮 run / 新 artifact / 新 epoch / 不同 verdict)都会产生新 key —
140
+ * Owner 只能批准自己实际看到的那个版本(stale 防护,SPEC §6)。
141
+ */
142
+ export declare function buildOwnerReviewKey(facts: ReviewKeyFacts): string;
143
+ /**
144
+ * effective decision 的唯一解析点(SPEC §8):
145
+ * 当前 revision epoch 存在合法、applied 的 Owner verdict override →
146
+ * effectiveDecision;否则 → runnerDecision(机器判定,永不改写)。
147
+ *
148
+ * Internalization transition / orchestrator / 任何消费方必须经由本函数;
149
+ * Console / HTTP route / 各 runner 禁止自行计算。
150
+ */
151
+ /** 当前 epoch 内最新一条 owner resolution(pending 或 applied),无则 null。 */
152
+ export declare function findOwnerResolutionForCurrentEpoch(piTask: PITaskRecord): OwnerResolutionRecord | null;
153
+ /**
154
+ * P0 评审修复: 当前 epoch 内是否有 **pending**(等待 runner 应用)的 resolution。
155
+ * Recover guard 只拒 pending——applied resolution 表示裁决已被执行(即使下游
156
+ * 治理转移因技术原因落在 recovery NHR),此时 Recover 是合法的技术重试出口
157
+ * (resume 门会基于 applied override 确定性重放,不重问 LLM)。
158
+ */
159
+ export declare function findPendingOwnerResolutionForCurrentEpoch(piTask: PITaskRecord): OwnerResolutionRecord | null;
160
+ /** 当前 epoch 内最新 applied verdict override(accept/reject)— resolver 的输入。 */
161
+ export declare function findAppliedVerdictOverrideResolution(piTask: PITaskRecord): OwnerResolutionRecord | null;
162
+ export declare function resolveEffectiveRunnerDecision(piTask: PITaskRecord): RunnerDecision | undefined;
163
+ export type HumanReviewAttention = 'owner_decision' | 'recovery';
164
+ export interface OwnerDecisionCapability {
165
+ /** true ⇔ allowedActions.length > 0(INV-01 Actionability Truth) */
166
+ readonly eligible: boolean;
167
+ /** 规范化原因码(legacy 判定带 _legacy 后缀) */
168
+ readonly reasonCode: string;
169
+ readonly attention: HumanReviewAttention;
170
+ readonly legacy: boolean;
171
+ readonly reviewKey?: string;
172
+ readonly allowedActions: readonly OwnerResolutionAction[];
173
+ readonly blockers: readonly string[];
174
+ }
175
+ /**
176
+ * 规范化人工裁决原因:
177
+ * - 有 humanReviewContext → 其 reasonCode(未知码 → attention=recovery,fail closed);
178
+ * - legacy → 按 durable facts 推断(SPEC §23):
179
+ * evaluator: needs_revision + dep artificer repairIteration>=2 + 同 epoch
180
+ * pending intent → budget exhausted (legacy)
181
+ * rollout: needs_revision + applied revision count>=2 → budget exhausted (legacy)
182
+ * - 事实不足/歧义 → recovery(不得猜)。
183
+ */
184
+ export declare function classifyHumanReviewAttention(facts: OwnerDecisionFacts): {
185
+ attention: HumanReviewAttention;
186
+ reasonCode: string;
187
+ legacy: boolean;
188
+ };
189
+ export declare function deriveOwnerDecisionCapability(facts: OwnerDecisionFacts): OwnerDecisionCapability;
190
+ /** resolution 标 applied(幂等,单调 pending→applied;并发同值写安全)。 */
191
+ export interface MarkOwnerResolutionAppliedCtx {
192
+ readonly updateDiagnosticJson: (taskId: string, json: string) => Promise<void>;
193
+ readonly getTask: (taskId: string) => Promise<TaskRecord | null>;
194
+ readonly taskId: string;
195
+ readonly resolutionId: string;
196
+ readonly appliedAt: string;
197
+ }
198
+ export declare function markOwnerResolutionApplied(ctx: MarkOwnerResolutionAppliedCtx): Promise<void>;
199
+ //# sourceMappingURL=owner-review.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"owner-review.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/owner-review.ts"],"names":[],"mappings":"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"}