@principles/core 1.296.0 → 1.296.2

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 (94) hide show
  1. package/dist/principle-tree-ledger.d.ts +24 -4
  2. package/dist/principle-tree-ledger.d.ts.map +1 -1
  3. package/dist/principle-tree-ledger.js +201 -24
  4. package/dist/principle-tree-ledger.js.map +1 -1
  5. package/dist/runtime-v2/activation/ledger-identity.d.ts +4 -22
  6. package/dist/runtime-v2/activation/ledger-identity.d.ts.map +1 -1
  7. package/dist/runtime-v2/activation/ledger-identity.js +54 -0
  8. package/dist/runtime-v2/activation/ledger-identity.js.map +1 -1
  9. package/dist/runtime-v2/adapter/artificer-l2-adapter.d.ts.map +1 -1
  10. package/dist/runtime-v2/adapter/artificer-l2-adapter.js +18 -0
  11. package/dist/runtime-v2/adapter/artificer-l2-adapter.js.map +1 -1
  12. package/dist/runtime-v2/adapter/principle-tree-ledger-adapter.d.ts +11 -0
  13. package/dist/runtime-v2/adapter/principle-tree-ledger-adapter.d.ts.map +1 -1
  14. package/dist/runtime-v2/adapter/principle-tree-ledger-adapter.js +67 -1
  15. package/dist/runtime-v2/adapter/principle-tree-ledger-adapter.js.map +1 -1
  16. package/dist/runtime-v2/index.d.ts +2 -0
  17. package/dist/runtime-v2/index.d.ts.map +1 -1
  18. package/dist/runtime-v2/index.js +1 -0
  19. package/dist/runtime-v2/index.js.map +1 -1
  20. package/dist/runtime-v2/internalization/artificer-intent-preflight.d.ts.map +1 -1
  21. package/dist/runtime-v2/internalization/artificer-intent-preflight.js +10 -0
  22. package/dist/runtime-v2/internalization/artificer-intent-preflight.js.map +1 -1
  23. package/dist/runtime-v2/internalization/artificer-prompt-builder.d.ts.map +1 -1
  24. package/dist/runtime-v2/internalization/artificer-prompt-builder.js +3 -1
  25. package/dist/runtime-v2/internalization/artificer-prompt-builder.js.map +1 -1
  26. package/dist/runtime-v2/internalization/artificer-runner.d.ts +3 -0
  27. package/dist/runtime-v2/internalization/artificer-runner.d.ts.map +1 -1
  28. package/dist/runtime-v2/internalization/artificer-runner.js +23 -3
  29. package/dist/runtime-v2/internalization/artificer-runner.js.map +1 -1
  30. package/dist/runtime-v2/internalization/candidate-identity.d.ts +17 -0
  31. package/dist/runtime-v2/internalization/candidate-identity.d.ts.map +1 -0
  32. package/dist/runtime-v2/internalization/candidate-identity.js +56 -0
  33. package/dist/runtime-v2/internalization/candidate-identity.js.map +1 -0
  34. package/dist/runtime-v2/internalization/evaluator-output.d.ts +2 -0
  35. package/dist/runtime-v2/internalization/evaluator-output.d.ts.map +1 -1
  36. package/dist/runtime-v2/internalization/evaluator-output.js +3 -0
  37. package/dist/runtime-v2/internalization/evaluator-output.js.map +1 -1
  38. package/dist/runtime-v2/internalization/evaluator-prompt-builder.d.ts +2 -2
  39. package/dist/runtime-v2/internalization/evaluator-prompt-builder.d.ts.map +1 -1
  40. package/dist/runtime-v2/internalization/evaluator-prompt-builder.js +90 -38
  41. package/dist/runtime-v2/internalization/evaluator-prompt-builder.js.map +1 -1
  42. package/dist/runtime-v2/internalization/evaluator-runner.d.ts +2 -0
  43. package/dist/runtime-v2/internalization/evaluator-runner.d.ts.map +1 -1
  44. package/dist/runtime-v2/internalization/evaluator-runner.js +158 -41
  45. package/dist/runtime-v2/internalization/evaluator-runner.js.map +1 -1
  46. package/dist/runtime-v2/internalization/peer-runner-contracts.d.ts +4 -0
  47. package/dist/runtime-v2/internalization/peer-runner-contracts.d.ts.map +1 -1
  48. package/dist/runtime-v2/internalization/peer-runner-contracts.js +13 -0
  49. package/dist/runtime-v2/internalization/peer-runner-contracts.js.map +1 -1
  50. package/dist/runtime-v2/internalization/pitask-metadata.d.ts +2 -0
  51. package/dist/runtime-v2/internalization/pitask-metadata.d.ts.map +1 -1
  52. package/dist/runtime-v2/internalization/pitask-metadata.js +8 -0
  53. package/dist/runtime-v2/internalization/pitask-metadata.js.map +1 -1
  54. package/dist/runtime-v2/internalization/rule-binding-revision.d.ts +28 -0
  55. package/dist/runtime-v2/internalization/rule-binding-revision.d.ts.map +1 -0
  56. package/dist/runtime-v2/internalization/rule-binding-revision.js +92 -0
  57. package/dist/runtime-v2/internalization/rule-binding-revision.js.map +1 -0
  58. package/dist/runtime-v2/internalization/rulecode-verification-obligations.d.ts +66 -0
  59. package/dist/runtime-v2/internalization/rulecode-verification-obligations.d.ts.map +1 -0
  60. package/dist/runtime-v2/internalization/rulecode-verification-obligations.js +150 -0
  61. package/dist/runtime-v2/internalization/rulecode-verification-obligations.js.map +1 -0
  62. package/dist/runtime-v2/internalization/scribe-runner.d.ts +7 -1
  63. package/dist/runtime-v2/internalization/scribe-runner.d.ts.map +1 -1
  64. package/dist/runtime-v2/internalization/scribe-runner.js +67 -3
  65. package/dist/runtime-v2/internalization/scribe-runner.js.map +1 -1
  66. package/dist/runtime-v2/principle-tree/ledger-codec.d.ts.map +1 -1
  67. package/dist/runtime-v2/principle-tree/ledger-codec.js +3 -6
  68. package/dist/runtime-v2/principle-tree/ledger-codec.js.map +1 -1
  69. package/dist/runtime-v2/principle-tree/rule-candidate-binding.d.ts +12 -0
  70. package/dist/runtime-v2/principle-tree/rule-candidate-binding.d.ts.map +1 -0
  71. package/dist/runtime-v2/principle-tree/rule-candidate-binding.js +129 -0
  72. package/dist/runtime-v2/principle-tree/rule-candidate-binding.js.map +1 -0
  73. package/dist/runtime-v2/store/artifact/sqlite-pi-artifact-store.d.ts.map +1 -1
  74. package/dist/runtime-v2/store/artifact/sqlite-pi-artifact-store.js +70 -6
  75. package/dist/runtime-v2/store/artifact/sqlite-pi-artifact-store.js.map +1 -1
  76. package/dist/runtime-v2/store/sqlite-connection.d.ts.map +1 -1
  77. package/dist/runtime-v2/store/sqlite-connection.js +15 -1
  78. package/dist/runtime-v2/store/sqlite-connection.js.map +1 -1
  79. package/dist/runtime-v2/tools/artificer-l2-tool-contract.d.ts +10 -0
  80. package/dist/runtime-v2/tools/artificer-l2-tool-contract.d.ts.map +1 -1
  81. package/dist/runtime-v2/tools/artificer-l2-tool-contract.js +55 -5
  82. package/dist/runtime-v2/tools/artificer-l2-tool-contract.js.map +1 -1
  83. package/dist/runtime-v2/types/ledger-store.d.ts +3 -0
  84. package/dist/runtime-v2/types/ledger-store.d.ts.map +1 -1
  85. package/dist/runtime-v2/types/ledger-store.js.map +1 -1
  86. package/dist/runtime-v2/types/rule-candidate-binding.d.ts +98 -0
  87. package/dist/runtime-v2/types/rule-candidate-binding.d.ts.map +1 -0
  88. package/dist/runtime-v2/types/rule-candidate-binding.js +2 -0
  89. package/dist/runtime-v2/types/rule-candidate-binding.js.map +1 -0
  90. package/dist/telemetry-event.d.ts +2 -2
  91. package/dist/telemetry-event.d.ts.map +1 -1
  92. package/dist/telemetry-event.js +1 -0
  93. package/dist/telemetry-event.js.map +1 -1
  94. package/package.json +1 -1
@@ -25,6 +25,8 @@
25
25
  * @see docs/adr/0003-peer-agent-state-machine-orchestration.md
26
26
  * @see BasePeerRunner in runner/base-peer-runner.ts
27
27
  */
28
+ import type { CandidatePrincipleIdentityResolution } from '../adapter/principle-tree-ledger-adapter.js';
29
+ import type { CandidateIdentityPort } from './candidate-identity.js';
28
30
  import type { RunHandle } from '../runtime-protocol.js';
29
31
  import type { ScribeOutputV1, ScribeValidator } from './scribe-output.js';
30
32
  import type { TaskRecord } from '../task-status.js';
@@ -35,6 +37,7 @@ import type { PeerRunnerOptions, PeerRunnerDeps, PeerRunnerResult, PeerRunnerVal
35
37
  import type { OutputLanguage } from '../language-directive.js';
36
38
  /** Context built by ScribeRunner.buildContext() and consumed by invokeRuntime(). */
37
39
  interface ScribeContext {
40
+ readonly identityAtStart?: CandidatePrincipleIdentityResolution;
38
41
  readonly contextHash: string;
39
42
  readonly philosopherArtifact: string;
40
43
  readonly sourcePhilosopherArtifactId: string;
@@ -100,7 +103,7 @@ export interface ScribeRunnerDeps extends PeerRunnerDeps {
100
103
  * PRI-915: `isAvailable` separates an unreadable ledger (transient outage,
101
104
  * surfaced in the skip event reason) from a genuinely unresolved chain.
102
105
  */
103
- readonly ledgerIdentity?: {
106
+ readonly ledgerIdentity?: Partial<CandidateIdentityPort> & {
104
107
  readonly isAvailable: () => boolean;
105
108
  readonly listForCandidate: (candidateId: string) => readonly {
106
109
  readonly id: string;
@@ -111,6 +114,9 @@ export declare class ScribeRunner extends BasePeerRunner<ScribeContext, ScribeOu
111
114
  private readonly validator;
112
115
  private readonly ledgerIdentity?;
113
116
  constructor(deps: ScribeRunnerDeps, options: PeerRunnerOptions);
117
+ /** Identity absence awaits Owner action and consumes no model attempt. */
118
+ run(taskId: string): Promise<PeerRunnerResult<ScribeOutputV1>>;
119
+ private resolveCurrentIdentity;
114
120
  get permanentErrorCategories(): ReadonlySet<PDErrorCategory>;
115
121
  buildContext(taskId: string): Promise<ScribeContext>;
116
122
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"scribe-runner.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/scribe-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scribe-runner.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/scribe-runner.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import { resolveFormationContext } from './formation-context.js';
6
6
  import { reconcileLineageEcho } from './peer-runner-contracts.js';
7
7
  import { BasePeerRunner } from '../runner/base-peer-runner.js';
8
8
  import { candidateIdFromDreamerSeed, candidateIdFromDreamerTaskId, } from '../activation/ledger-identity.js';
9
+ import { validateCandidateIdentityReceipt } from '../principle-tree/rule-candidate-binding.js';
9
10
  /**
10
11
  * PRI-816 (R-01): extract the authoritative dreamer artifact id from the
11
12
  * philosopher artifact content (rc-1: content is untrusted). Access uses
@@ -63,6 +64,45 @@ export class ScribeRunner extends BasePeerRunner {
63
64
  this.validator = deps.validator;
64
65
  this.ledgerIdentity = deps.ledgerIdentity;
65
66
  }
67
+ /** Identity absence awaits Owner action and consumes no model attempt. */
68
+ async run(taskId) {
69
+ if (this.ledgerIdentity?.resolveForCandidate) {
70
+ const task = await this.stateManager.getTask(taskId);
71
+ if (task && (task.status === 'pending' || task.status === 'retry_wait') && hydratePITaskRecord(task)?.channel === 'code_tool_hook') {
72
+ let identity;
73
+ try {
74
+ // buildContext already resolves identityAtStart for this port;
75
+ // reusing it avoids a second artifact/task/ledger resolution pass.
76
+ identity = (await this.buildContext(taskId)).identityAtStart;
77
+ }
78
+ catch {
79
+ // Context problems belong to the base runner's state machine, which
80
+ // owns lease acquisition and failure/retry transitions.
81
+ return super.run(taskId);
82
+ }
83
+ if (identity && identity.status !== 'resolved') {
84
+ const reason = identity.reason === 'ledger_unavailable' ? 'identity_source_unavailable' : 'awaiting_owner_binding';
85
+ const diagnostic = task.diagnosticJson ? JSON.parse(task.diagnosticJson) : {};
86
+ const metadata = diagnostic !== null && typeof diagnostic === 'object' && !Array.isArray(diagnostic) ? diagnostic : {};
87
+ await this.stateManager.updateTaskIfDiagnosticJsonUnchanged(taskId, task.diagnosticJson ?? null, {
88
+ status: 'needs_human_review',
89
+ diagnosticJson: JSON.stringify({ ...metadata, identityPreflight: { reason, detail: identity.reason, nextAction: identity.nextAction } }),
90
+ }, { expectedStatus: task.status, expectedLeaseOwner: null, expectedLeaseExpiresAt: null });
91
+ this.emitEvent('identity_preflight_blocked', taskId, { reason, detail: identity.reason, modelRequests: 0 });
92
+ return { status: 'failed', taskId, errorCategory: 'input_invalid', failureReason: `${reason}:${identity.reason}`, attemptCount: task.attemptCount };
93
+ }
94
+ }
95
+ }
96
+ return super.run(taskId);
97
+ }
98
+ async resolveCurrentIdentity(context) {
99
+ const dreamer = context.sourceDreamerArtifactId ? await this.artifactStore.getArtifactById(context.sourceDreamerArtifactId) : null;
100
+ const task = dreamer?.sourceTaskId ? await this.stateManager.getTask(dreamer.sourceTaskId) : null;
101
+ const candidateId = candidateIdFromDreamerSeed(task?.diagnosticJson) ?? candidateIdFromDreamerTaskId(dreamer?.sourceTaskId);
102
+ if (!candidateId || !this.ledgerIdentity?.resolveForCandidate)
103
+ return { status: 'unresolved', reason: 'candidate_missing', nextAction: 'Inspect the persisted dreamer lineage.' };
104
+ return this.ledgerIdentity.resolveForCandidate(candidateId);
105
+ }
66
106
  // ── Abstract implementations ───────────────────────────────────────────────
67
107
  // eslint-disable-next-line @typescript-eslint/class-methods-use-this
68
108
  get permanentErrorCategories() {
@@ -130,13 +170,15 @@ export class ScribeRunner extends BasePeerRunner {
130
170
  ]
131
171
  : []),
132
172
  ];
133
- return {
173
+ const context = {
134
174
  contextHash: BasePeerRunner.hashContextRefs(contextRefs),
135
175
  philosopherArtifact: firstArtifact.contentJson,
136
176
  sourcePhilosopherArtifactId: firstArtifact.artifactId,
137
177
  sourceDreamerArtifactId,
138
178
  ...(formationContext !== undefined ? { formationContext } : {}),
139
179
  };
180
+ return this.ledgerIdentity?.resolveForCandidate
181
+ ? { ...context, identityAtStart: await this.resolveCurrentIdentity(context) } : context;
140
182
  }
141
183
  }
142
184
  throw new PDRuntimeError('input_invalid', 'Philosopher dependency artifact not found');
@@ -283,9 +325,31 @@ export class ScribeRunner extends BasePeerRunner {
283
325
  // write the artifact unstamped with an observable event — the activation
284
326
  // boundary then refuses or resolves from lineage; never a guess.
285
327
  let stampedPrincipleId = null;
328
+ const identity = this.ledgerIdentity?.resolveForCandidate ? await this.resolveCurrentIdentity(context) : null;
329
+ // These terminal identity refusals bypass the base runner's mark-failed
330
+ // path, so the attempt lease must be released here: a lingering lease
331
+ // would keep the Owner's bounded binding revision (reviseRuleBindingOnce)
332
+ // refused with task_lease_present forever.
333
+ const parkForOwnerIdentityAction = async (reason, nextAction) => {
334
+ await this.stateManager.updateTask(taskId, { status: 'needs_human_review', leaseOwner: null, leaseExpiresAt: null });
335
+ this.emitEvent('identity_preflight_blocked', taskId, { reason, nextAction });
336
+ return { status: 'failed', taskId, errorCategory: 'input_invalid', failureReason: reason, attemptCount: task.attemptCount };
337
+ };
338
+ if (identity?.status === 'resolved' && hydratePITaskRecord(task)?.channel === 'code_tool_hook'
339
+ && !validateCandidateIdentityReceipt(context.identityAtStart, identity)) {
340
+ return parkForOwnerIdentityAction('identity_changed_during_generation', 'review_binding_and_preserve_the_current_revision_budget');
341
+ }
342
+ if (identity && identity.status !== 'resolved' && hydratePITaskRecord(task)?.channel === 'code_tool_hook') {
343
+ return parkForOwnerIdentityAction(identity.reason, identity.nextAction);
344
+ }
345
+ const receipt = identity?.status === 'resolved' ? {
346
+ candidateId: identity.candidateId, basis: identity.basis, principleId: identity.principleId,
347
+ ...(identity.bindingRevision !== undefined ? { bindingRevision: identity.bindingRevision } : {}),
348
+ ...(identity.decisionId !== undefined ? { decisionId: identity.decisionId } : {}),
349
+ } : undefined;
286
350
  if (this.ledgerIdentity) {
287
351
  try {
288
- stampedPrincipleId = await this.resolveLedgerStampPrincipleId(context);
352
+ stampedPrincipleId = identity?.status === 'resolved' ? identity.principleId : await this.resolveLedgerStampPrincipleId(context);
289
353
  }
290
354
  catch (stampErr) {
291
355
  this.emitEvent('identity_stamp_failed', taskId, {
@@ -317,7 +381,7 @@ export class ScribeRunner extends BasePeerRunner {
317
381
  lineageArtifactIds,
318
382
  validationStatus: 'pending',
319
383
  ...(stampedPrincipleId !== null ? { sourcePrincipleId: stampedPrincipleId } : {}),
320
- contentJson: JSON.stringify(output),
384
+ contentJson: JSON.stringify({ ...output, ...(receipt ? { identityResolution: receipt } : {}) }),
321
385
  createdAt: now,
322
386
  updatedAt: now,
323
387
  });
@@ -1 +1 @@
1
- {"version":3,"file":"scribe-runner.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/scribe-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scribe-runner.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/scribe-runner.ts"],"names":[],"mappings":"AA+BA,OAAO,EAAE,oCAAoC,EAAE,MAAM,oBAAoB,CAAC;AAE1E,OAAO,EAAE,cAAc,EAAwB,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AACjG,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,kCAAkC,CAAC;AAQ1C,OAAO,EAAE,gCAAgC,EAAE,MAAM,6CAA6C,CAAC;AA2B/F;;;;;;GAMG;AACH,SAAS,8BAA8B,CAAC,sBAA8B;IACpE,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7F,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC;QAAE,OAAO,SAAS,CAAC;IACxE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;IAC7D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IACvE,OAAO,KAAK,CAAC;AACf,CAAC;AAoCD,MAAM,CAAC,MAAM,6BAA6B,GAAyE;IACjH,cAAc,EAAE,KAAK;IACrB,SAAS,EAAE,OAAO;IAClB,kBAAkB,EAAE,CAAC;IACrB,OAAO,EAAE,QAAQ;IACjB,aAAa,EAAE,IAAI;CACX,CAAC;AAEX,MAAM,UAAU,0BAA0B,CAAC,OAA4B;IACrE,OAAO;QACL,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,6BAA6B,CAAC,cAAc;QACtF,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,6BAA6B,CAAC,SAAS;QACvE,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,IAAI,6BAA6B,CAAC,kBAAkB;QAClG,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,6BAA6B,CAAC,OAAO;QACjE,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,6BAA6B,CAAC,aAAa;KACpF,CAAC;AACJ,CAAC;AA4BD,gFAAgF;AAEhF,MAAM,OAAO,YAAa,SAAQ,cAA6C;IAC5D,SAAS,CAAkB;IAC3B,cAAc,CAAsC;IAErE,YAAY,IAAsB,EAAE,OAA0B;QAC5D,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE;YACnB,UAAU,EAAE,QAAQ;YACpB,gBAAgB,EAAE,QAAQ;YAC1B,cAAc,EAAE,QAAQ;YACxB,eAAe,EAAE,QAAQ;SAC1B,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;IAC5C,CAAC;IAED,0EAA0E;IACjE,KAAK,CAAC,GAAG,CAAC,MAAc;QAC/B,IAAI,IAAI,CAAC,cAAc,EAAE,mBAAmB,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACrD,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,gBAAgB,EAAE,CAAC;gBACnI,IAAI,QAA0D,CAAC;gBAC/D,IAAI,CAAC;oBACH,+DAA+D;oBAC/D,mEAAmE;oBACnE,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC;gBAC/D,CAAC;gBAAC,MAAM,CAAC;oBACP,oEAAoE;oBACpE,wDAAwD;oBACxD,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC3B,CAAC;gBACD,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;oBAC/C,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,KAAK,oBAAoB,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,wBAAwB,CAAC;oBACnH,MAAM,UAAU,GAAY,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACvF,MAAM,QAAQ,GAAG,UAAU,KAAK,IAAI,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;oBACvH,MAAM,IAAI,CAAC,YAAY,CAAC,mCAAmC,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;wBAC/F,MAAM,EAAE,oBAAoB;wBAC5B,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,QAAQ,EAAE,iBAAiB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC;qBACzI,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC5F,IAAI,CAAC,SAAS,CAAC,4BAA4B,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC;oBAC5G,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,GAAG,MAAM,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtJ,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,OAAsB;QACzD,MAAM,OAAO,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACnI,MAAM,IAAI,GAAG,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAClG,MAAM,WAAW,GAAG,0BAA0B,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,4BAA4B,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAC5H,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,mBAAmB;YAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,wCAAwC,EAAE,CAAC;QAClL,OAAO,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC9D,CAAC;IAED,8EAA8E;IAE9E,qEAAqE;IACrE,IAAI,wBAAwB;QAC1B,OAAO,IAAI,GAAG,CAAC,CAAC,qBAAqB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC;IACnH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAc;QAC/B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,cAAc,CAAC,eAAe,EAAE,QAAQ,MAAM,YAAY,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,MAAM,EAAE,iBAAiB,IAAI,EAAE,CAAC;QAE7C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,cAAc,CAAC,eAAe,EAAE,2CAA2C,CAAC,CAAC;QACzF,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACvD,IAAI,CAAC,OAAO;gBAAE,SAAS;YACvB,IAAI,OAAO,CAAC,QAAQ,KAAK,aAAa;gBAAE,SAAS;YACjD,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBACnC,IAAI,CAAC,SAAS,CAAC,0BAA0B,EAAE,MAAM,EAAE;oBACjD,SAAS,EAAE,KAAK;oBAChB,SAAS,EAAE,OAAO,CAAC,MAAM;iBAC1B,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,MAAM,SAAS,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAC/C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YACrE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;gBAClC,IAAI,CAAC,aAAa;oBAAE,SAAS;gBAC7B,MAAM,WAAW,GAAG,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,iBAAiB,KAAK,EAAE,CAAC;gBACxF,oEAAoE;gBACpE,mEAAmE;gBACnE,iEAAiE;gBACjE,oEAAoE;gBACpE,wCAAwC;gBACxC,MAAM,uBAAuB,GAAG,8BAA8B,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;gBAE1F,qEAAqE;gBACrE,yEAAyE;gBACzE,qEAAqE;gBACrE,gEAAgE;gBAChE,qEAAqE;gBACrE,wEAAwE;gBACxE,MAAM,gBAAgB,GAAG,MAAM,uBAAuB,CAAC;oBACrD,uBAAuB;oBACvB,aAAa,EAAE,IAAI,CAAC,aAAa;oBACjC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;oBAChD,SAAS,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC;oBAC/F,MAAM;iBACP,CAAC,CAAC;gBAEH,wEAAwE;gBACxE,sEAAsE;gBACtE,MAAM,WAAW,GAAG;oBAClB,WAAW;oBACX,GAAG,CAAC,gBAAgB,KAAK,SAAS;wBAChC,CAAC,CAAC;4BACE,gBAAgB,CAAC,UAAU,CAAC,uBAAuB;4BACnD,GAAG,CAAC,gBAAgB,CAAC,UAAU,CAAC,yBAAyB,KAAK,IAAI;gCAChE,CAAC,CAAC,CAAC,gBAAgB,CAAC,UAAU,CAAC,yBAAyB,CAAC;gCACzD,CAAC,CAAC,EAAE,CAAC;yBACR;wBACH,CAAC,CAAC,EAAE,CAAC;iBACR,CAAC;gBAEF,MAAM,OAAO,GAAkB;oBAC7B,WAAW,EAAE,cAAc,CAAC,eAAe,CAAC,WAAW,CAAC;oBACxD,mBAAmB,EAAE,aAAa,CAAC,WAAW;oBAC9C,2BAA2B,EAAE,aAAa,CAAC,UAAU;oBACrD,uBAAuB;oBACvB,GAAG,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAChE,CAAC;gBACF,OAAO,IAAI,CAAC,cAAc,EAAE,mBAAmB;oBAC7C,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YAC5F,CAAC;QACH,CAAC;QAED,MAAM,IAAI,cAAc,CAAC,eAAe,EAAE,2CAA2C,CAAC,CAAC;IACzF,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,mBAAmB,CAAC,MAAc;QAC9C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACvB,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,iBAAiB,EAAE,mBAAmB,CAAC,IAAI,CAAC,EAAE,iBAAiB,IAAI,EAAE;SACtE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAc,EAAE,OAAsB;QACxD,MAAM,EAAC,aAAa,EAAC,GAAG,IAAI,CAAC,eAAe,CAAC;QAE7C,IAAI,yBAAkC,CAAC;QACvC,IAAI,CAAC;YACH,yBAAyB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QACtE,CAAC;QAAC,MAAM,CAAC;YACP,yBAAyB,GAAG,OAAO,CAAC,mBAAmB,CAAC;QAC1D,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,mBAAmB,CAAC,EAAE,aAAa,EAAE,cAAc,EAAE,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,CAAC,CAAC;QAChH,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;YACpD,MAAM;YACN,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,mBAAmB,EAAE,yBAAyB;YAC9C,2BAA2B,EAAE,OAAO,CAAC,2BAA2B;YAChE,GAAG,CAAC,OAAO,CAAC,uBAAuB,KAAK,SAAS;gBAC/C,CAAC,CAAC,EAAE,uBAAuB,EAAE,OAAO,CAAC,uBAAuB,EAAE;gBAC9D,CAAC,CAAC,EAAE,CAAC;YACP,sEAAsE;YACtE,0EAA0E;YAC1E,mDAAmD;YACnD,GAAG,CAAC,OAAO,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjG,cAAc,EAAE,IAAI,CAAC,eAAe,CAAC,cAAc;YACnD,aAAa;SACd,CAAC,CAAC;QAEH,iEAAiE;QACjE,+CAA+C;QAC/C,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;QACpE,MAAM,YAAY,GAAG,gBAAgB;YACnC,CAAC,CAAC,GAAG,OAAO,4BAA4B,gBAAgB,wBAAwB;YAChF,CAAC,CAAC,OAAO,CAAC;QAEZ,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;YAClC,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE;YACzE,OAAO,EAAE,EAAE,MAAM,EAAE;YACnB,YAAY,EAAE,YAAY;YAC1B,YAAY,EAAE,EAAE;YAChB,eAAe,EAAE,kBAAkB;YACnC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS;YACzC,YAAY;SACb,CAAC,CAAC;IACL,CAAC;IAED,wDAAwD;IAChD,KAAK,CAAC,uBAAuB,CAAC,MAAc;QAClD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACrD,IAAI,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAC;YACvB,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,QAAQ,GAAG,MAAM,EAAE,gBAAgB,CAAC;YAC1C,OAAO,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;QAClF,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC,CAAC,mCAAmC;QAClD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAe,EAAE,MAAc,EAAE,OAAsB;QAC1E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,2BAA2B,CAAC,CAAC;QAElG,qFAAqF;QACrF,oFAAoF;QACpF,MAAM,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC;QACzC,IAAI,aAA0C,CAAC;QAC/C,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;YACxB,aAAa,GAAG,SAAS,CAAC;QAC5B,CAAC;aAAM,IAAI,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC;YAC1C,aAAa,GAAG,WAAW,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,wEAAwE;YACxE,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,0BAA0B,WAAW,EAAE,CAAC;gBACnE,aAAa,EAAE,gBAAgB;aAChC,CAAC;QACJ,CAAC;QAED,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,aAAa;SACd,CAAC;IACJ,CAAC;IAED,yDAAyD;IACzD,KAAK,CAAC,WAAW,CACf,MAAc,EACd,KAAa,EACb,MAAsB,EACtB,IAAgB,EAChB,WAAmB,EACnB,OAAsB;QAEtB,6FAA6F;QAC7F,IAAI,MAAM,CAAC,2BAA2B,KAAK,OAAO,CAAC,2BAA2B,EAAE,CAAC;YAC/E,MAAM,IAAI,cAAc,CACtB,gBAAgB,EAChB,kDAAkD,OAAO,CAAC,2BAA2B,SAAS,MAAM,CAAC,2BAA2B,EAAE,CACnI,CAAC;QACJ,CAAC;QAED,wCAAwC;QACxC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QACzE,CAAC;QAAC,OAAO,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,SAAS,CAAC,sBAAsB,EAAE,MAAM,EAAE;gBAC7C,KAAK;gBACL,YAAY,EAAE,SAAS,YAAY,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;aACjF,CAAC,CAAC;YACH,MAAM,SAAS,CAAC;QAClB,CAAC;QAED,+BAA+B;QAC/B,IAAI,kBAAkB,GAAa,EAAE,CAAC;QACtC,IAAI,kBAAkB,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;YACnE,kBAAkB,GAAG,aAAa,CAAC,GAAG,CAAC;YACvC,kBAAkB,GAAG,aAAa,CAAC,WAAW,CAAC;QACjD,CAAC;QAAC,OAAO,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,wBAAwB,EAAE,MAAM,EAAE;gBAC/C,KAAK;gBACL,YAAY,EAAE,UAAU,YAAY,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;aACpF,CAAC,CAAC;QACL,CAAC;QAED,IAAI,kBAAkB,EAAE,CAAC;YACvB,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,MAAM,EAAE;gBACxC,KAAK;gBACL,aAAa,EAAE,kBAAkB,CAAC,MAAM;gBACxC,OAAO,EAAE,2EAA2E;aACrF,CAAC,CAAC;QACL,CAAC;QAED,wEAAwE;QACxE,2EAA2E;QAC3E,sEAAsE;QACtE,yEAAyE;QACzE,iEAAiE;QACjE,IAAI,kBAAkB,GAAkB,IAAI,CAAC;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9G,wEAAwE;QACxE,sEAAsE;QACtE,0EAA0E;QAC1E,2CAA2C;QAC3C,MAAM,0BAA0B,GAAG,KAAK,EAAE,MAAc,EAAE,UAAkB,EAA6C,EAAE;YACzH,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,oBAAoB,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;YACrH,IAAI,CAAC,SAAS,CAAC,4BAA4B,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;YAC7E,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;QAC9H,CAAC,CAAC;QACF,IAAI,QAAQ,EAAE,MAAM,KAAK,UAAU,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,gBAAgB;eACzF,CAAC,gCAAgC,CAAC,OAAO,CAAC,eAAe,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC1E,OAAO,0BAA0B,CAAC,oCAAoC,EAAE,yDAAyD,CAAC,CAAC;QACrI,CAAC;QACD,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,gBAAgB,EAAE,CAAC;YAC1G,OAAO,0BAA0B,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,OAAO,GAAG,QAAQ,EAAE,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC;YAChD,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW;YAC3F,GAAG,CAAC,QAAQ,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChG,GAAG,CAAC,QAAQ,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClF,CAAC,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,kBAAkB,GAAG,QAAQ,EAAE,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,6BAA6B,CAAC,OAAO,CAAC,CAAC;YAClI,CAAC;YAAC,OAAO,QAAQ,EAAE,CAAC;gBAClB,IAAI,CAAC,SAAS,CAAC,uBAAuB,EAAE,MAAM,EAAE;oBAC9C,KAAK;oBACL,YAAY,EAAE,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;iBAC9E,CAAC,CAAC;YACL,CAAC;YACD,IAAI,kBAAkB,KAAK,IAAI,EAAE,CAAC;gBAChC,oEAAoE;gBACpE,sEAAsE;gBACtE,gDAAgD;gBAChD,MAAM,iBAAiB,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;gBAC7D,IAAI,CAAC,SAAS,CAAC,wBAAwB,EAAE,MAAM,EAAE;oBAC/C,KAAK;oBACL,MAAM,EAAE,iBAAiB;wBACvB,CAAC,CAAC,yGAAyG;wBAC3G,CAAC,CAAC,qHAAqH;iBAC1H,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,yDAAyD;QACzD,MAAM,UAAU,GAAG,UAAU,MAAM,IAAI,KAAK,EAAE,CAAC;QAC/C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;gBACtC,UAAU;gBACV,YAAY,EAAE,WAAW;gBACzB,YAAY,EAAE,MAAM;gBACpB,kBAAkB;gBAClB,gBAAgB,EAAE,SAAS;gBAC3B,GAAG,CAAC,kBAAkB,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjF,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC/F,SAAS,EAAE,GAAG;gBACd,SAAS,EAAE,GAAG;aACf,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,SAAS,CAAC,uBAAuB,EAAE,MAAM,EAAE;gBAC9C,KAAK;gBACL,YAAY,EAAE,WAAW,YAAY,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;aACvF,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,WAAW,CAAC;gBACtB,MAAM;gBACN,IAAI;gBACJ,aAAa,EAAE,wBAAwB;gBACvC,aAAa,EAAE,4BAA4B,WAAW,YAAY,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;aACtH,CAAC,CAAC;QACL,CAAC;QAED,sBAAsB;QACtB,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,MAAM,KAAK,EAAE,CAAC;QAC9D,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,SAAS,CAAC,uBAAuB,EAAE,MAAM,EAAE;gBAC9C,MAAM;gBACN,KAAK;gBACL,YAAY,EAAE,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;aAC9E,CAAC,CAAC;YACH,MAAM,QAAQ,CAAC;QACjB,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,MAAM,EAAE;YACvC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS;YACT,cAAc,EAAE,MAAM,CAAC,cAAc,CAAC,KAAK;YAC3C,GAAG,CAAC,kBAAkB,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClF,CAAC,CAAC;QAEH,OAAO;YACL,MAAM,EAAE,WAAW;YACnB,MAAM;YACN,KAAK;YACL,UAAU;YACV,SAAS;YACT,WAAW;YACX,MAAM;YACN,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC;IACJ,CAAC;IAED;;;;;;;;;OASG;IACK,KAAK,CAAC,6BAA6B,CAAC,OAAsB;QAChE,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;QACnC,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEzB,wEAAwE;QACxE,oEAAoE;QACpE,uEAAuE;QACvE,kEAAkE;QAClE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;YAAE,OAAO,IAAI,CAAC;QAEvC,MAAM,iBAAiB,GAAG,OAAO,CAAC,uBAAuB,CAAC;QAC1D,IAAI,CAAC,iBAAiB;YAAE,OAAO,IAAI,CAAC;QAEpC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;QACpF,IAAI,CAAC,eAAe;YAAE,OAAO,IAAI,CAAC;QAElC,IAAI,WAAW,GAAkB,IAAI,CAAC;QACtC,IAAI,eAAe,CAAC,YAAY,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;gBAClF,IAAI,WAAW,EAAE,CAAC;oBAChB,WAAW,GAAG,0BAA0B,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;gBACvE,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,wEAAwE;YAC1E,CAAC;YACD,WAAW,KAAK,4BAA4B,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QAC7E,CAAC;QACD,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC;QAE9B,MAAM,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QACrD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACtC,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,IAAI,CAAC;IAChC,CAAC;IAED,8EAA8E;IAE9E;;;;;;;OAOG;IACgB,kBAAkB,CAAC,MAAc,EAAE,eAAwB,EAAE,QAAuB;QACrG,KAAK,CAAC,kBAAkB,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;QAC5D,yDAAyD;QACzD,oEAAoE;QACpE,sEAAsE;QACtE,gDAAgD;QAChD,4DAA4D;QAC5D,wEAAwE;QACxE,yEAAyE;QACzE,oEAAoE;QACpE,sEAAsE;QACtE,iCAAiC;QACjC,MAAM,kBAAkB,GACtB,QAAQ,CAAC,uBAAuB,KAAK,SAAS;YAC5C,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,QAAQ,CAAC,uBAAuB,EAAE,CAAC;YACxF,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,eAAe,GAAG,oBAAoB,CAAC,eAAe,EAAE;YAC5D,SAAS,EAAE;gBACT,EAAE,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE;gBAC/C,EAAE,KAAK,EAAE,6BAA6B,EAAE,kBAAkB,EAAE,QAAQ,CAAC,2BAA2B,EAAE;aACnG;YACD,KAAK,EAAE;gBACL,UAAU,EAAE,aAAa;gBACzB,MAAM,EAAE;oBACN,EAAE,KAAK,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,QAAQ,CAAC,2BAA2B,EAAE;oBAC5F,GAAG,kBAAkB;iBACtB;aACF;SACF,CAAC,CAAC;QACH,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,SAAS,CAAC,wBAAwB,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,oCAAoC,CAAC,eAAe,CAAC,EAAE,CAAC;YAC1D,IAAI,CAAC,SAAS,CAAC,mCAAmC,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAEkB,oBAAoB,CAAC,MAAc,EAAE,MAAsB;QAC5E,IAAI,CAAC,SAAS,CAAC,2BAA2B,EAAE,MAAM,EAAE;YAClD,cAAc,EAAE,MAAM,CAAC,cAAc,CAAC,KAAK;SAC5C,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"ledger-codec.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/principle-tree/ledger-codec.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,4BAA4B,EAE5B,eAAe,EACf,UAAU,EACV,cAAc,EACd,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAWlC,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAEpD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAGvG;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAGrG;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAExD;AAID,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,4BAA4B,CA6BnF;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAc7E;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAanE;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAQjF;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAQhF;AAID,wBAAgB,eAAe,IAAI,eAAe,CAEjD;AAID,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe,CASvD;AAID,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,iBAAiB,CAQjE;AAID,wBAAgB,eAAe,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAKhE"}
1
+ {"version":3,"file":"ledger-codec.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/principle-tree/ledger-codec.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,4BAA4B,EAE5B,eAAe,EACf,UAAU,EACV,cAAc,EACd,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAWlC,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAEpD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAGvG;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAGrG;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAExD;AAID,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,4BAA4B,CA6BnF;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAc7E;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAanE;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAQjF;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAQhF;AAID,wBAAgB,eAAe,IAAI,eAAe,CAEjD;AAID,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe,CAWvD;AAID,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,iBAAiB,CAQjE;AAID,wBAAgB,eAAe,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAKhE"}
@@ -1,9 +1,4 @@
1
- /**
2
- * Ledger codec — pure parse/serialize functions, zero I/O.
3
- *
4
- * Extracted from principle-tree-ledger.ts (PRI-443) to separate pure logic
5
- * from filesystem operations. This module has zero fs/path imports.
6
- */
1
+ import { parseRuleCandidateBindings } from './rule-candidate-binding.js';
7
2
  import { TREE_NAMESPACE } from '../types/ledger-store.js';
8
3
  const VALID_EVALUABILITIES = ['deterministic', 'weak_heuristic', 'manual_only'];
9
4
  const VALID_INTERNALIZATION_STATUSES = [
@@ -126,6 +121,8 @@ export function parseTree(raw) {
126
121
  if (!isRecord(raw))
127
122
  return createEmptyTree();
128
123
  return {
124
+ ...raw,
125
+ ...(Object.hasOwn(raw, 'ruleCandidateBindings') ? { ruleCandidateBindings: parseRuleCandidateBindings(raw.ruleCandidateBindings) } : {}),
129
126
  principles: parsePrinciples(raw.principles),
130
127
  rules: parseRules(raw.rules),
131
128
  implementations: parseImplementations(raw.implementations),
@@ -1 +1 @@
1
- {"version":3,"file":"ledger-codec.js","sourceRoot":"","sources":["../../../src/runtime-v2/principle-tree/ledger-codec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ledger-codec.js","sourceRoot":"","sources":["../../../src/runtime-v2/principle-tree/ledger-codec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { RuleCandidateBinding, RuleCandidateMaterial, CandidatePrincipleIdentityResolution } from '../types/rule-candidate-binding.js';
2
+ export declare class RuleCandidateBindingCorruptionError extends Error {
3
+ constructor(message: string);
4
+ }
5
+ export declare function parseRuleCandidateBindings(raw: unknown): Record<string, RuleCandidateBinding>;
6
+ /** Stable digest of JSON-compatible server snapshots; object ordering does not affect review CAS. */
7
+ export declare function computeRuleCandidateReviewDigest(value: unknown): string;
8
+ export declare function isRuleCandidateMaterial(material: unknown, candidateId: string, kind: 'rule' | 'principle'): material is RuleCandidateMaterial;
9
+ export declare function validateCandidateIdentityReceipt(receipt: unknown, current: CandidatePrincipleIdentityResolution): boolean;
10
+ export declare function isCanonicalBindingPrincipleId(value: unknown): value is string;
11
+ export declare function isBindingDigest(value: unknown): value is string;
12
+ //# sourceMappingURL=rule-candidate-binding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-candidate-binding.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/principle-tree/rule-candidate-binding.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAgC,qBAAqB,EAAE,oCAAoC,EAAE,MAAM,oCAAoC,CAAC;AAM1K,qBAAa,mCAAoC,SAAQ,KAAK;IAC5D,YAAY,OAAO,EAAE,MAAM,EAAwE;CACpG;AACD,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CA+B7F;AACD,qGAAqG;AACrG,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CA2BvE;AACD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,IAAI,qBAAqB,CA6B7I;AACD,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,oCAAoC,GAAG,OAAO,CAIzH;AACD,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAA0D;AACxI,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAA4D"}
@@ -0,0 +1,129 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { Value } from '@sinclair/typebox/value';
3
+ import { DiagnosticianOutputV1Schema, DiagnosticianRecommendationSchema } from '../diagnostician-output.js';
4
+ const UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
5
+ const DIGEST = /^sha256:[0-9a-f]{64}$/;
6
+ function record(value) { return typeof value === 'object' && value !== null && !Array.isArray(value); }
7
+ function text(value) { return typeof value === 'string' && value.trim().length > 0; }
8
+ export class RuleCandidateBindingCorruptionError extends Error {
9
+ constructor(message) { super(message); this.name = 'RuleCandidateBindingCorruptionError'; }
10
+ }
11
+ export function parseRuleCandidateBindings(raw) {
12
+ const fail = () => { throw new RuleCandidateBindingCorruptionError('Malformed ruleCandidateBindings; preserve the ledger and repair from audited evidence.'); };
13
+ if (!record(raw))
14
+ return fail();
15
+ const bindings = Object.create(null);
16
+ const decisions = new Set();
17
+ const requests = new Set();
18
+ for (const [candidateId, value] of Object.entries(raw)) {
19
+ if (!text(candidateId) || !record(value) || value.candidateId !== candidateId || !Array.isArray(value.revisions) || value.revisions.length === 0)
20
+ return fail();
21
+ const revisions = [];
22
+ for (const [index, entry] of value.revisions.entries()) {
23
+ if (!record(entry) || entry.revision !== index + 1 || !text(entry.decisionId) || !UUID.test(entry.decisionId) || decisions.has(entry.decisionId)
24
+ || !text(entry.requestId) || entry.requestId.length > 200 || !['bind', 'revoke'].includes(String(entry.action))
25
+ || !text(entry.principleId) || !UUID.test(entry.principleId) || !text(entry.reason) || entry.reason.length > 2000
26
+ || !text(entry.decidedAt) || !Number.isFinite(Date.parse(entry.decidedAt)) || new Date(entry.decidedAt).toISOString() !== entry.decidedAt
27
+ || !record(entry.owner) || !text(entry.owner.actorId) || entry.owner.source !== 'authenticated_console'
28
+ || typeof entry.reviewedCandidateDigest !== 'string' || !DIGEST.test(entry.reviewedCandidateDigest)
29
+ || typeof entry.reviewedPrincipleDigest !== 'string' || !DIGEST.test(entry.reviewedPrincipleDigest))
30
+ return fail();
31
+ const requestKey = JSON.stringify([entry.owner.actorId, entry.requestId]);
32
+ if (requests.has(requestKey))
33
+ return fail();
34
+ const previous = revisions.at(-1);
35
+ if ((entry.action === 'revoke' && (!previous || previous.action !== 'bind' || previous.principleId !== entry.principleId))
36
+ || (entry.action === 'bind' && previous?.action === 'bind'))
37
+ return fail();
38
+ requests.add(requestKey);
39
+ decisions.add(entry.decisionId);
40
+ revisions.push({ ...entry, revision: index + 1, decisionId: entry.decisionId, requestId: entry.requestId,
41
+ action: entry.action === 'bind' ? 'bind' : 'revoke', principleId: entry.principleId, reason: entry.reason,
42
+ decidedAt: entry.decidedAt, owner: { ...entry.owner, actorId: entry.owner.actorId, source: 'authenticated_console' },
43
+ reviewedCandidateDigest: entry.reviewedCandidateDigest, reviewedPrincipleDigest: entry.reviewedPrincipleDigest });
44
+ }
45
+ bindings[candidateId] = { ...value, candidateId, revisions };
46
+ }
47
+ return bindings;
48
+ }
49
+ /** Stable digest of JSON-compatible server snapshots; object ordering does not affect review CAS. */
50
+ export function computeRuleCandidateReviewDigest(value) {
51
+ const seen = new Set();
52
+ const canonical = (input) => {
53
+ const kind = typeof input;
54
+ if (kind === 'boolean' || kind === 'string')
55
+ return JSON.stringify(input);
56
+ if (kind === 'number') {
57
+ if (!Number.isFinite(input))
58
+ throw new Error('Review snapshot is not finite JSON data.');
59
+ return JSON.stringify(input);
60
+ }
61
+ if (kind !== 'object')
62
+ throw new Error('Review snapshot is not finite JSON data.');
63
+ // null is the only falsy value whose typeof is 'object'; it serializes as "null".
64
+ if (!input)
65
+ return JSON.stringify(input);
66
+ if (seen.has(input))
67
+ throw new Error('Review snapshot is not finite JSON data.');
68
+ seen.add(input);
69
+ let result;
70
+ if (Array.isArray(input)) {
71
+ result = '[' + input.map(canonical).join(',') + ']';
72
+ }
73
+ else if (record(input)) {
74
+ const obj = input;
75
+ result = '{' + Object.keys(obj).sort().filter(key => obj[key] !== undefined).map(key => JSON.stringify(key) + ':' + canonical(obj[key])).join(',') + '}';
76
+ }
77
+ else {
78
+ throw new Error('Review snapshot is not finite JSON data.');
79
+ }
80
+ seen.delete(input);
81
+ return result;
82
+ };
83
+ return 'sha256:' + createHash('sha256').update(canonical(value)).digest('hex');
84
+ }
85
+ export function isRuleCandidateMaterial(material, candidateId, kind) {
86
+ if (!record(material) || !record(material.candidate) || !record(material.task) || !record(material.run) || !record(material.artifact))
87
+ return false;
88
+ const { candidate, task, run, artifact } = material;
89
+ // Split diagnoses commit recommendations on the router's own run/artifact.
90
+ // Its inputRef identifies the parent diagnosis, whose inputRef is the pain.
91
+ const parent = material.parentTask;
92
+ const diagnosisLineage = task.taskKind === 'diagnostician'
93
+ ? text(task.inputRef)
94
+ : task.taskKind === 'diag_router' && record(parent) && text(task.inputRef)
95
+ && parent.taskId === task.inputRef && parent.taskKind === 'diagnostician'
96
+ && parent.status === 'succeeded' && text(parent.inputRef);
97
+ const linked = candidate.candidateId === candidateId && candidate.rawRecommendationKind === kind
98
+ && text(candidate.taskId) && candidate.taskId === task.taskId && candidate.taskId === run.taskId && candidate.taskId === artifact.taskId
99
+ && text(candidate.sourceRunId) && candidate.sourceRunId === run.runId && candidate.sourceRunId === artifact.runId
100
+ && text(candidate.artifactId) && candidate.artifactId === artifact.artifactId
101
+ && diagnosisLineage && run.executionStatus === 'succeeded'
102
+ && text(candidate.sourceRecommendationJson) && text(artifact.contentJson) && text(run.outputPayload);
103
+ if (!linked || typeof candidate.sourceRecommendationJson !== 'string' || typeof artifact.contentJson !== 'string' || typeof run.outputPayload !== 'string')
104
+ return false;
105
+ try {
106
+ const recommendation = JSON.parse(candidate.sourceRecommendationJson);
107
+ const output = JSON.parse(run.outputPayload);
108
+ const committed = JSON.parse(artifact.contentJson);
109
+ if (!Value.Check(DiagnosticianRecommendationSchema, recommendation) || recommendation.kind !== kind
110
+ || !Value.Check(DiagnosticianOutputV1Schema, output) || !output.valid
111
+ || !Value.Check(DiagnosticianOutputV1Schema, committed) || !committed.valid)
112
+ return false;
113
+ const expected = computeRuleCandidateReviewDigest(recommendation);
114
+ return output.recommendations.some(rec => computeRuleCandidateReviewDigest(rec) === expected)
115
+ && committed.recommendations.some(rec => computeRuleCandidateReviewDigest(rec) === expected);
116
+ }
117
+ catch {
118
+ return false;
119
+ }
120
+ }
121
+ export function validateCandidateIdentityReceipt(receipt, current) {
122
+ if (!record(receipt) || current.status !== 'resolved')
123
+ return false;
124
+ return receipt.candidateId === current.candidateId && receipt.basis === current.basis && receipt.principleId === current.principleId
125
+ && receipt.bindingRevision === current.bindingRevision && receipt.decisionId === current.decisionId;
126
+ }
127
+ export function isCanonicalBindingPrincipleId(value) { return typeof value === 'string' && UUID.test(value); }
128
+ export function isBindingDigest(value) { return typeof value === 'string' && DIGEST.test(value); }
129
+ //# sourceMappingURL=rule-candidate-binding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-candidate-binding.js","sourceRoot":"","sources":["../../../src/runtime-v2/principle-tree/rule-candidate-binding.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite-pi-artifact-store.d.ts","sourceRoot":"","sources":["../../../../src/runtime-v2/store/artifact/sqlite-pi-artifact-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAE9F,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,aAAa,GAAG,gBAAgB,CAarE;AAED,qBAAa,qBAAsB,YAAW,eAAe;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU;IAAvC,YAA6B,UAAU,EAAE,gBAAgB,EAAI;IAEvD,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAsCxE;IAEK,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA2BxE;IAEK,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAQ1E;IAEK,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAQ1E;IAEK,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAajE;IAEK,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAQzH;CACF"}
1
+ {"version":3,"file":"sqlite-pi-artifact-store.d.ts","sourceRoot":"","sources":["../../../../src/runtime-v2/store/artifact/sqlite-pi-artifact-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAG9F,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,aAAa,GAAG,gBAAgB,CAarE;AAsBD,qBAAa,qBAAsB,YAAW,eAAe;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU;IAAvC,YAA6B,UAAU,EAAE,gBAAgB,EAAI;IAEvD,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAsCxE;IAEK,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAiDxE;IAEK,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAQ1E;IAEK,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAqB1E;IAEK,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAajE;IAEK,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAQzH;CACF"}
@@ -1,3 +1,4 @@
1
+ import { parsePITaskMetadata, PI_METADATA_KEY } from '../../internalization/pitask-metadata.js';
1
2
  /**
2
3
  * The ONE pi_artifacts row -> PIArtifactRecord mapping. Exported so
3
4
  * enforcement-time consumers (host-runtime production gate, OpenClaw plugin
@@ -21,6 +22,32 @@ export function mapPiArtifactRow(row) {
21
22
  updatedAt: row.updated_at,
22
23
  };
23
24
  }
25
+ function isPiArtifactRow(value) {
26
+ if (value === null || typeof value !== 'object' || Array.isArray(value))
27
+ return false;
28
+ const fields = ['artifact_id', 'artifact_kind', 'source_task_id', 'lineage_artifact_ids', 'validation_status', 'content_json', 'created_at', 'updated_at'];
29
+ if (!fields.every(key => typeof Reflect.get(value, key) === 'string'))
30
+ return false;
31
+ if (!['source_principle_id', 'source_rule_id'].every(key => Reflect.get(value, key) === null || typeof Reflect.get(value, key) === 'string'))
32
+ return false;
33
+ const raw = Reflect.get(value, 'lineage_artifact_ids');
34
+ if (typeof raw !== 'string')
35
+ return false;
36
+ try {
37
+ const lineage = JSON.parse(raw);
38
+ return Array.isArray(lineage) && lineage.every(id => typeof id === 'string');
39
+ }
40
+ catch {
41
+ return false;
42
+ }
43
+ }
44
+ function mapValidatedPiArtifactRows(rows) {
45
+ return rows.map(row => {
46
+ if (!isPiArtifactRow(row))
47
+ throw new Error('pi_artifact_row_invalid');
48
+ return mapPiArtifactRow(row);
49
+ });
50
+ }
24
51
  export class SqlitePIArtifactStore {
25
52
  connection;
26
53
  constructor(connection) {
@@ -52,11 +79,35 @@ export class SqlitePIArtifactStore {
52
79
  }
53
80
  async upsertArtifact(record) {
54
81
  const db = this.connection.getDb();
82
+ const source = db.prepare('SELECT diagnostic_json FROM tasks WHERE task_id = ?').get(record.sourceTaskId);
83
+ const diagnostic = source !== null && typeof source === 'object' ? Reflect.get(source, 'diagnostic_json') : null;
84
+ const metadata = typeof diagnostic === 'string' ? parsePITaskMetadata(diagnostic) : null;
85
+ if (typeof diagnostic === 'string' && !metadata) {
86
+ // Unparseable diagnostic JSON must fail with the structured reason, not
87
+ // a raw SyntaxError (rc-3/rc-9).
88
+ let parsed;
89
+ try {
90
+ parsed = JSON.parse(diagnostic);
91
+ }
92
+ catch {
93
+ throw new Error('artifact_revision_metadata_invalid');
94
+ }
95
+ if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed) || Object.hasOwn(parsed, PI_METADATA_KEY)) {
96
+ throw new Error('artifact_revision_metadata_invalid');
97
+ }
98
+ }
99
+ const revisionEpoch = metadata?.revisionCount ?? 0;
100
+ if (!Number.isSafeInteger(revisionEpoch) || revisionEpoch < 0)
101
+ throw new Error('invalid_artifact_revision_epoch');
102
+ const latest = db.prepare('SELECT MAX(revision_epoch) AS epoch FROM pi_artifacts WHERE source_task_id = ?').get(record.sourceTaskId);
103
+ const latestEpoch = latest !== null && typeof latest === 'object' ? Reflect.get(latest, 'epoch') : null;
104
+ if (typeof latestEpoch === 'number' && latestEpoch > revisionEpoch)
105
+ throw new Error('artifact_revision_epoch_regressed');
55
106
  const lineageJson = JSON.stringify(record.lineageArtifactIds);
56
107
  db.prepare(`
57
- INSERT INTO pi_artifacts (artifact_id, artifact_kind, source_task_id, source_principle_id, source_rule_id, lineage_artifact_ids, validation_status, content_json, created_at, updated_at)
58
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
59
- ON CONFLICT(source_task_id, artifact_kind) DO UPDATE SET
108
+ INSERT INTO pi_artifacts (artifact_id, artifact_kind, source_task_id, source_principle_id, source_rule_id, lineage_artifact_ids, validation_status, content_json, created_at, updated_at, revision_epoch)
109
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
110
+ ON CONFLICT(source_task_id, artifact_kind, revision_epoch) DO UPDATE SET
60
111
  artifact_id = excluded.artifact_id,
61
112
  source_principle_id = excluded.source_principle_id,
62
113
  source_rule_id = excluded.source_rule_id,
@@ -64,7 +115,7 @@ export class SqlitePIArtifactStore {
64
115
  validation_status = excluded.validation_status,
65
116
  content_json = excluded.content_json,
66
117
  updated_at = excluded.updated_at
67
- `).run(record.artifactId, record.artifactKind, record.sourceTaskId, record.sourcePrincipleId ?? null, record.sourceRuleId ?? null, lineageJson, record.validationStatus, record.contentJson, record.createdAt, record.updatedAt);
118
+ `).run(record.artifactId, record.artifactKind, record.sourceTaskId, record.sourcePrincipleId ?? null, record.sourceRuleId ?? null, lineageJson, record.validationStatus, record.contentJson, record.createdAt, record.updatedAt, revisionEpoch);
68
119
  return record;
69
120
  }
70
121
  async getArtifactById(artifactId) {
@@ -79,12 +130,25 @@ export class SqlitePIArtifactStore {
79
130
  }
80
131
  async listBySourceTaskId(sourceTaskId) {
81
132
  const db = this.connection.getDb();
133
+ const columns = db.prepare('PRAGMA table_info(pi_artifacts)').all();
134
+ const hasEpoch = columns.some(column => column !== null && typeof column === 'object' && Reflect.get(column, 'name') === 'revision_epoch');
135
+ // Readonly inspection must work before a normal writer upgrades an older database.
136
+ if (!hasEpoch) {
137
+ const legacy = db.prepare(`
138
+ SELECT artifact_id, artifact_kind, source_task_id, source_principle_id, source_rule_id, lineage_artifact_ids, validation_status, content_json, created_at, updated_at
139
+ FROM pi_artifacts WHERE source_task_id = ? ORDER BY created_at ASC
140
+ `).all(sourceTaskId);
141
+ return mapValidatedPiArtifactRows(legacy);
142
+ }
143
+ // Preserve the established current-output view; historical approval/lineage refs
144
+ // continue to resolve by artifactId without mixing epochs into current prompts.
82
145
  const rows = db.prepare(`
83
146
  SELECT artifact_id, artifact_kind, source_task_id, source_principle_id, source_rule_id, lineage_artifact_ids, validation_status, content_json, created_at, updated_at
84
147
  FROM pi_artifacts WHERE source_task_id = ?
148
+ AND revision_epoch = (SELECT MAX(revision_epoch) FROM pi_artifacts WHERE source_task_id = ?)
85
149
  ORDER BY created_at ASC
86
- `).all(sourceTaskId);
87
- return rows.map(mapPiArtifactRow);
150
+ `).all(sourceTaskId, sourceTaskId);
151
+ return mapValidatedPiArtifactRows(rows);
88
152
  }
89
153
  async listLineage(artifactId) {
90
154
  const db = this.connection.getDb();