@principles/core 1.287.3 → 1.287.5

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 (43) hide show
  1. package/dist/runtime-v2/activation/activation-dispatcher.d.ts +27 -0
  2. package/dist/runtime-v2/activation/activation-dispatcher.d.ts.map +1 -1
  3. package/dist/runtime-v2/activation/activation-dispatcher.js +61 -7
  4. package/dist/runtime-v2/activation/activation-dispatcher.js.map +1 -1
  5. package/dist/runtime-v2/activation/index.d.ts +2 -0
  6. package/dist/runtime-v2/activation/index.d.ts.map +1 -1
  7. package/dist/runtime-v2/activation/index.js +2 -0
  8. package/dist/runtime-v2/activation/index.js.map +1 -1
  9. package/dist/runtime-v2/activation/ledger-identity.d.ts +67 -0
  10. package/dist/runtime-v2/activation/ledger-identity.d.ts.map +1 -0
  11. package/dist/runtime-v2/activation/ledger-identity.js +105 -0
  12. package/dist/runtime-v2/activation/ledger-identity.js.map +1 -0
  13. package/dist/runtime-v2/activation/low-risk-writers.d.ts +48 -0
  14. package/dist/runtime-v2/activation/low-risk-writers.d.ts.map +1 -1
  15. package/dist/runtime-v2/activation/low-risk-writers.js +68 -8
  16. package/dist/runtime-v2/activation/low-risk-writers.js.map +1 -1
  17. package/dist/runtime-v2/index.d.ts +2 -2
  18. package/dist/runtime-v2/index.d.ts.map +1 -1
  19. package/dist/runtime-v2/index.js +1 -1
  20. package/dist/runtime-v2/index.js.map +1 -1
  21. package/dist/runtime-v2/internalization/dreamer-runner.d.ts.map +1 -1
  22. package/dist/runtime-v2/internalization/dreamer-runner.js +19 -4
  23. package/dist/runtime-v2/internalization/dreamer-runner.js.map +1 -1
  24. package/dist/runtime-v2/internalization/evaluator-runner.d.ts +46 -11
  25. package/dist/runtime-v2/internalization/evaluator-runner.d.ts.map +1 -1
  26. package/dist/runtime-v2/internalization/evaluator-runner.js +73 -41
  27. package/dist/runtime-v2/internalization/evaluator-runner.js.map +1 -1
  28. package/dist/runtime-v2/internalization/scribe-runner.d.ts +30 -0
  29. package/dist/runtime-v2/internalization/scribe-runner.d.ts.map +1 -1
  30. package/dist/runtime-v2/internalization/scribe-runner.js +68 -0
  31. package/dist/runtime-v2/internalization/scribe-runner.js.map +1 -1
  32. package/dist/runtime-v2/proven-channel-baseline.d.ts.map +1 -1
  33. package/dist/runtime-v2/proven-channel-baseline.js +4 -1
  34. package/dist/runtime-v2/proven-channel-baseline.js.map +1 -1
  35. package/dist/runtime-v2/story-a-demo.d.ts +11 -1
  36. package/dist/runtime-v2/story-a-demo.d.ts.map +1 -1
  37. package/dist/runtime-v2/story-a-demo.js +12 -2
  38. package/dist/runtime-v2/story-a-demo.js.map +1 -1
  39. package/dist/telemetry-event.d.ts +2 -2
  40. package/dist/telemetry-event.d.ts.map +1 -1
  41. package/dist/telemetry-event.js +20 -0
  42. package/dist/telemetry-event.js.map +1 -1
  43. package/package.json +1 -1
@@ -1,5 +1,6 @@
1
1
  import type { StoreEventEmitter } from '../store/event-emitter.js';
2
2
  import type { ActivationArtifactReadModel, ActivationDecision, ActivationStateReadModel, ApprovalQueueStore, ChannelWriter, DispatchInput } from './activation-types.js';
3
+ import { type LedgerIdentityLookupDeps } from './ledger-identity.js';
3
4
  export interface DispatcherConfig {
4
5
  writers: Iterable<ChannelWriter>;
5
6
  approvalQueueStore?: ApprovalQueueStore;
@@ -12,6 +13,18 @@ export interface DispatcherConfig {
12
13
  * refused decision is the authoritative record regardless.
13
14
  */
14
15
  eventEmitter?: StoreEventEmitter;
16
+ /**
17
+ * I3 upgrade (Owner review of PR #1856, P1 ×3) — ledger-aware identity
18
+ * resolution. When provided, BOTH dispatch paths (enqueueForApproval and
19
+ * activateArtifact) verify the artifact's principle identity against the
20
+ * LEDGER before the approval record is enqueued and before the activation
21
+ * commit: a UUID-shaped `source_principle_id` must also be present in the
22
+ * ledger (`hasPrinciple`), and an unstamped artifact may resolve through
23
+ * candidate lineage (dreamer artifact → dreamer task seed candidateId →
24
+ * ledger principle). When omitted, the dispatcher falls back to the strict
25
+ * UUID-shape-only boundary (legacy callers, unchanged behavior).
26
+ */
27
+ ledgerIdentity?: LedgerIdentityLookupDeps;
15
28
  }
16
29
  export declare class ActivationDispatcher {
17
30
  private readonly artifactReadModel;
@@ -19,7 +32,21 @@ export declare class ActivationDispatcher {
19
32
  private readonly writers;
20
33
  private readonly approvalQueueStore?;
21
34
  private readonly eventEmitter?;
35
+ private readonly ledgerIdentity?;
22
36
  constructor(artifactReadModel: ActivationArtifactReadModel, stateReadModel: ActivationStateReadModel, config: DispatcherConfig);
37
+ /**
38
+ * Resolve the principle identity an activation may carry, BEFORE any state
39
+ * change (approval enqueue or activation commit).
40
+ *
41
+ * With `ledgerIdentity` deps: the identity must resolve against the ledger —
42
+ * either a stamped UUID that the ledger actually contains
43
+ * (`direct_validated`) or an unstamped artifact's candidate lineage. A
44
+ * stamped-but-unknown UUID is data drift (`principle_not_in_ledger`) and is
45
+ * refused — it never falls through to lineage guessing.
46
+ *
47
+ * Without `ledgerIdentity` deps (legacy callers): strict UUID shape only.
48
+ */
49
+ private resolveActivationIdentity;
23
50
  dispatch(input: DispatchInput): Promise<ActivationDecision>;
24
51
  private enqueueForApproval;
25
52
  private activateArtifact;
@@ -1 +1 @@
1
- {"version":3,"file":"activation-dispatcher.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/activation/activation-dispatcher.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EACV,2BAA2B,EAC3B,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EAGlB,aAAa,EACb,aAAa,EAMd,MAAM,uBAAuB,CAAC;AAwH/B,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IACjC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,iBAAiB,CAAC;CAClC;AAED,qBAAa,oBAAoB;IAM7B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,cAAc;IANjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6C;IACrE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAqB;IACzD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAoB;IAElD,YACmB,iBAAiB,EAAE,2BAA2B,EAC9C,cAAc,EAAE,wBAAwB,EACzD,MAAM,EAAE,gBAAgB,EAQzB;IAEK,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAoGhE;YAEa,kBAAkB;YAgElB,gBAAgB;YAmEhB,YAAY;YAmBZ,gBAAgB;CA0C/B"}
1
+ {"version":3,"file":"activation-dispatcher.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/activation/activation-dispatcher.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EACV,2BAA2B,EAC3B,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EAGlB,aAAa,EACb,aAAa,EAMd,MAAM,uBAAuB,CAAC;AAM/B,OAAO,EAA6B,KAAK,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAmHhG,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IACjC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC;;;;;;;;;;OAUG;IACH,cAAc,CAAC,EAAE,wBAAwB,CAAC;CAC3C;AAED,qBAAa,oBAAoB;IAO7B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAPjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6C;IACrE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAqB;IACzD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAoB;IAClD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAA2B;IAE3D,YACmB,iBAAiB,EAAE,2BAA2B,EAC9C,cAAc,EAAE,wBAAwB,EACzD,MAAM,EAAE,gBAAgB,EASzB;IAED;;;;;;;;;;;OAWG;YACW,yBAAyB;IAsBjC,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAoGhE;YAEa,kBAAkB;YAyElB,gBAAgB;YA2EhB,YAAY;YAmBZ,gBAAgB;CA0C/B"}
@@ -1,5 +1,6 @@
1
1
  import { getChannelRiskLevel, makeIdempotencyKey, } from './activation-types.js';
2
- import { extractPrincipleId } from './low-risk-writers.js';
2
+ import { resolveActivationPrincipleId } from './low-risk-writers.js';
3
+ import { resolveLedgerActivationId } from './ledger-identity.js';
3
4
  /**
4
5
  * rc-2 type guard: narrow unknown to Record<string, unknown> without `as`.
5
6
  * Used for JSON.parse output where the shape is genuinely unknown at compile
@@ -107,16 +108,51 @@ export class ActivationDispatcher {
107
108
  writers;
108
109
  approvalQueueStore;
109
110
  eventEmitter;
111
+ ledgerIdentity;
110
112
  constructor(artifactReadModel, stateReadModel, config) {
111
113
  this.artifactReadModel = artifactReadModel;
112
114
  this.stateReadModel = stateReadModel;
113
115
  this.approvalQueueStore = config.approvalQueueStore;
114
116
  this.eventEmitter = config.eventEmitter;
117
+ this.ledgerIdentity = config.ledgerIdentity;
115
118
  this.writers = new Map();
116
119
  for (const writer of config.writers) {
117
120
  this.writers.set(writer.channel, writer);
118
121
  }
119
122
  }
123
+ /**
124
+ * Resolve the principle identity an activation may carry, BEFORE any state
125
+ * change (approval enqueue or activation commit).
126
+ *
127
+ * With `ledgerIdentity` deps: the identity must resolve against the ledger —
128
+ * either a stamped UUID that the ledger actually contains
129
+ * (`direct_validated`) or an unstamped artifact's candidate lineage. A
130
+ * stamped-but-unknown UUID is data drift (`principle_not_in_ledger`) and is
131
+ * refused — it never falls through to lineage guessing.
132
+ *
133
+ * Without `ledgerIdentity` deps (legacy callers): strict UUID shape only.
134
+ */
135
+ async resolveActivationIdentity(artifact) {
136
+ if (!this.ledgerIdentity) {
137
+ const strict = resolveActivationPrincipleId(artifact);
138
+ return strict
139
+ ? { principleId: strict }
140
+ : { error: { decision: 'invalid_artifact', reason: 'no_principle_id_in_artifact' } };
141
+ }
142
+ const resolution = await resolveLedgerActivationId(artifact, this.ledgerIdentity);
143
+ if (resolution.status === 'resolved') {
144
+ return { principleId: resolution.principleId };
145
+ }
146
+ return {
147
+ error: {
148
+ decision: 'invalid_artifact',
149
+ reason: resolution.reason,
150
+ nextAction: resolution.reason.startsWith('principle_not_in_ledger')
151
+ ? 'check_pi_artifacts_source_principle_id_against_ledger_or_run_identity_reconciliation'
152
+ : 'ensure_intake_minted_a_ledger_principle_for_this_candidate_before_internalization',
153
+ },
154
+ };
155
+ }
120
156
  async dispatch(input) {
121
157
  const artifactResult = await this.readArtifact(input.artifactId);
122
158
  if (artifactResult.decision)
@@ -225,6 +261,15 @@ export class ActivationDispatcher {
225
261
  riskLevel,
226
262
  };
227
263
  }
264
+ // Identity gate BEFORE the approval record exists: the ledger membership
265
+ // (when ledgerIdentity deps are wired) or at least the strict UUID shape
266
+ // must hold here too — a pending approval for an artifact that can never
267
+ // be activated is a poisoned queue entry (Owner review of PR #1856, P1:
268
+ // "明确在激活提交前如何验证 Ledger 成员关系" — the approval record IS the
269
+ // pre-commit state change).
270
+ const identity = await this.resolveActivationIdentity(artifact);
271
+ if ('error' in identity)
272
+ return identity.error;
228
273
  const writer = this.writers.get(input.channel);
229
274
  if (writer) {
230
275
  const canActivateResult = await checkCanActivate(writer, artifact, this.eventEmitter);
@@ -245,7 +290,7 @@ export class ActivationDispatcher {
245
290
  const writerContext = writer?.buildApprovalContext?.({
246
291
  artifactId: input.artifactId,
247
292
  channel: input.channel,
248
- principleId: extractPrincipleId(artifact) ?? '',
293
+ principleId: identity.principleId,
249
294
  idempotencyKey: idempotencyKey,
250
295
  now: input.now,
251
296
  }, artifact, input.confidence);
@@ -270,14 +315,23 @@ export class ActivationDispatcher {
270
315
  }
271
316
  async activateArtifact(input, artifact, idempotencyKey) {
272
317
  // Resolve the principle ID for WriterInput.principleId. Rule artifacts
273
- // (code_tool_hook channel) MUST carry sourcePrincipleId — without it,
318
+ // (code_tool_hook channel) MUST carry a resolvable identity — without it,
274
319
  // the activated rule cannot be traced back to the owner-approved principle,
275
320
  // producing an untraceable behavior change (P1 #3 fix: removed the
276
321
  // sourceRuleId/artifactId fallback that allowed untraceable activation).
277
- const principleId = extractPrincipleId(artifact);
278
- if (!principleId) {
279
- return { decision: 'invalid_artifact', reason: 'no_principle_id' };
280
- }
322
+ //
323
+ // I3 — ACTIVATION IDENTITY BOUNDARY (Phase 3 Option A′, upgraded per Owner
324
+ // review of PR #1856): with ledgerIdentity deps the identity must be a
325
+ // ledger MEMBER — either the stamped `source_principle_id` UUID present in
326
+ // the ledger (`direct_validated`) or an unstamped artifact resolved through
327
+ // candidate lineage (dreamer artifact → dreamer task seed candidateId →
328
+ // ledger principle). UUID shape alone never proves membership. Without
329
+ // ledgerIdentity deps the legacy strict shape boundary applies
330
+ // (see docs/architecture/principle-identity-reconciliation.md).
331
+ const identity = await this.resolveActivationIdentity(artifact);
332
+ if ('error' in identity)
333
+ return identity.error;
334
+ const { principleId } = identity;
281
335
  const writer = this.writers.get(input.channel);
282
336
  if (!writer) {
283
337
  return { decision: 'refused', reason: 'no_writer_for_channel_' + input.channel, channel: input.channel };
@@ -1 +1 @@
1
- {"version":3,"file":"activation-dispatcher.js","sourceRoot":"","sources":["../../../src/runtime-v2/activation/activation-dispatcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"activation-dispatcher.js","sourceRoot":"","sources":["../../../src/runtime-v2/activation/activation-dispatcher.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,8 @@ export type { ActivationRiskLevel, ActivationActor, RolloutActivationDecision, D
2
2
  export { isArtifactRevisionOf, LOW_RISK_CHANNELS, HIGH_RISK_CHANNEL_MAP, makeIdempotencyKey, isLowRiskChannel, getChannelRiskLevel, AUTO_PROMOTION_CONFIDENCE_THRESHOLD, AUTO_PROMOTABLE_CHANNELS, mapConfidenceToLabel, } from './activation-types.js';
3
3
  export { ActivationDispatcher } from './activation-dispatcher.js';
4
4
  export type { DispatcherConfig } from './activation-dispatcher.js';
5
+ export { resolveLedgerActivationId, candidateIdFromDreamerTaskId, candidateIdFromDreamerSeed } from './ledger-identity.js';
6
+ export type { LedgerIdentityChecker, LedgerIdentityLookupDeps, LedgerActivationResolution } from './ledger-identity.js';
5
7
  export { PromptWriter, DeferArchiveWriter, extractPrincipleId, } from './low-risk-writers.js';
6
8
  export { MemoryActivationStateStore, MemoryArtifactReadModel, } from './memory-activation-state-store.js';
7
9
  export { SqliteActivationStateStore } from './sqlite-activation-state-store.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/activation/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/activation/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  export { isArtifactRevisionOf, LOW_RISK_CHANNELS, HIGH_RISK_CHANNEL_MAP, makeIdempotencyKey, isLowRiskChannel, getChannelRiskLevel, AUTO_PROMOTION_CONFIDENCE_THRESHOLD, AUTO_PROMOTABLE_CHANNELS, mapConfidenceToLabel, } from './activation-types.js';
2
2
  export { ActivationDispatcher } from './activation-dispatcher.js';
3
+ // I3 upgrade (Owner review of PR #1856): ledger-aware activation identity.
4
+ export { resolveLedgerActivationId, candidateIdFromDreamerTaskId, candidateIdFromDreamerSeed } from './ledger-identity.js';
3
5
  export { PromptWriter, DeferArchiveWriter, extractPrincipleId, } from './low-risk-writers.js';
4
6
  export { MemoryActivationStateStore, MemoryArtifactReadModel, } from './memory-activation-state-store.js';
5
7
  export { SqliteActivationStateStore } from './sqlite-activation-state-store.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime-v2/activation/index.ts"],"names":[],"mappings":"AA+BA,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,mCAAmC,EACnC,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAGlE,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAElF,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAMpF,OAAO,EAAE,4BAA4B,EAAE,kCAAkC,EAAE,MAAM,oCAAoC,CAAC;AAEtH,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,OAAO,EAAE,6BAA6B,EAAE,iCAAiC,EAAE,MAAM,sCAAsC,CAAC;AAExH,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAEhF,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAE7E,OAAO,EAAE,8BAA8B,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAG5J,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAEzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAGpF,4EAA4E;AAC5E,0EAA0E;AAC1E,2DAA2D;AAC3D,OAAO,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAEnG,oEAAoE;AACpE,4EAA4E;AAC5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAG7E,OAAO,EACL,2BAA2B,EAC3B,QAAQ,IAAI,gBAAgB,EAC5B,uBAAuB,EACvB,4BAA4B,EAC5B,YAAY,EACZ,4BAA4B,GAC7B,MAAM,wCAAwC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime-v2/activation/index.ts"],"names":[],"mappings":"AA+BA,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,mCAAmC,EACnC,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAGlE,2EAA2E;AAC3E,OAAO,EAAE,yBAAyB,EAAE,4BAA4B,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAG3H,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAElF,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAMpF,OAAO,EAAE,4BAA4B,EAAE,kCAAkC,EAAE,MAAM,oCAAoC,CAAC;AAEtH,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,OAAO,EAAE,6BAA6B,EAAE,iCAAiC,EAAE,MAAM,sCAAsC,CAAC;AAExH,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAEhF,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAE7E,OAAO,EAAE,8BAA8B,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAG5J,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAEzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAGpF,4EAA4E;AAC5E,0EAA0E;AAC1E,2DAA2D;AAC3D,OAAO,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAEnG,oEAAoE;AACpE,4EAA4E;AAC5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAG7E,OAAO,EACL,2BAA2B,EAC3B,QAAQ,IAAI,gBAAgB,EAC5B,uBAAuB,EACvB,4BAA4B,EAC5B,YAAY,EACZ,4BAA4B,GAC7B,MAAM,wCAAwC,CAAC"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Ledger-aware activation identity resolution (Phase 3 Option A′ — I2+I3).
3
+ *
4
+ * Owner review of PR #1856 (P1 × 3): the UUID-shape-only boundary shipped in
5
+ * I3 refused artifacts that carry no stamped identity, while the production
6
+ * chain (ScribeRunner) did not stamp one yet — the new gate cut the live
7
+ * production chain and the E2E "passed" only because the test stamped a
8
+ * synthetic identity by hand. This module implements the missing half of the
9
+ * ADR (§6 Phase 1): the identity is resolved against the LEDGER, either
10
+ *
11
+ * 1. `direct` — the artifact's `source_principle_id` when it is a
12
+ * ledger-shaped UUID **and** the ledger actually contains that principle
13
+ * (shape alone never proves membership), or
14
+ * 2. `candidate_lineage` — the structural chain scribe → dreamer artifact →
15
+ * dreamer task seed (`candidateId`) → ledger principle(s) derived from
16
+ * that candidate. Ambiguity (0 or >1 ledger matches) stays unresolved —
17
+ * never guessed.
18
+ *
19
+ * This is the activation-boundary counterpart of PRI-768 v5 F4's
20
+ * `resolveLedgerPrincipleId` (pd-console), which until now only ran AFTER the
21
+ * activation commit as a non-fatal ledger upgrade.
22
+ */
23
+ import type { PIArtifactSnapshot } from './activation-types.js';
24
+ /** The subset of PrincipleTreeLedgerAdapter the boundary needs. */
25
+ export interface LedgerIdentityChecker {
26
+ hasPrinciple(principleId: string): boolean;
27
+ listForCandidate(candidateId: string): {
28
+ id: string;
29
+ }[];
30
+ }
31
+ export interface LedgerIdentityLookupDeps {
32
+ ledger: LedgerIdentityChecker;
33
+ getArtifactById: (artifactId: string) => Promise<PIArtifactSnapshot | null>;
34
+ /**
35
+ * Read one task's diagnostic_json. May be sync or async (hosts back it with
36
+ * either raw SQLite reads or RuntimeStateManager.getTask). Optional: when
37
+ * absent the resolver falls back to deriving the candidateId from the
38
+ * dreamer task id spelling (`dreamer-<candidateId>-<channel>`, PRI-720
39
+ * bridge naming).
40
+ */
41
+ getTaskDiagnosticJson?: (taskId: string) => string | null | Promise<string | null>;
42
+ }
43
+ export type LedgerActivationResolution = {
44
+ status: 'resolved';
45
+ principleId: string;
46
+ how: 'direct_validated' | 'candidate_lineage';
47
+ } | {
48
+ status: 'unresolved';
49
+ reason: string;
50
+ };
51
+ /** Candidate id embedded in a dreamer task id ("dreamer-<uuid>-<channel>"). */
52
+ export declare function candidateIdFromDreamerTaskId(taskId: string | null | undefined): string | null;
53
+ /**
54
+ * Read the candidate id carried at the top level of a dreamer task seed's
55
+ * diagnostic_json (written by intake-to-internalization-bridge). Shared by the
56
+ * activation boundary and the scribe's chain stamping.
57
+ */
58
+ export declare function candidateIdFromDreamerSeed(diagnosticJson: string | null | undefined): string | null;
59
+ /**
60
+ * Resolve the ledger principle identity for an activation artifact.
61
+ *
62
+ * Order: direct UUID (ledger-validated) → candidate lineage. Direct ids that
63
+ * fail ledger membership do NOT fall through to the lineage — a stamped id
64
+ * that the ledger does not know is data drift and must surface as such.
65
+ */
66
+ export declare function resolveLedgerActivationId(artifact: PIArtifactSnapshot, deps: LedgerIdentityLookupDeps): Promise<LedgerActivationResolution>;
67
+ //# sourceMappingURL=ledger-identity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ledger-identity.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/activation/ledger-identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAGhE,mEAAmE;AACnE,MAAM,WAAW,qBAAqB;IACpC,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3C,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACzD;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,qBAAqB,CAAC;IAC9B,eAAe,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IAC5E;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACpF;AAED,MAAM,MAAM,0BAA0B,GAClC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,kBAAkB,GAAG,mBAAmB,CAAA;CAAE,GAC1F;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAQ7C,+EAA+E;AAC/E,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAS7F;AAqBD;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAYnG;AAED;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,kBAAkB,EAC5B,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,0BAA0B,CAAC,CAuCrC"}
@@ -0,0 +1,105 @@
1
+ import { resolveActivationPrincipleId } from './low-risk-writers.js';
2
+ function isRecord(value) {
3
+ return value !== null && typeof value === 'object' && !Array.isArray(value);
4
+ }
5
+ const DREAMER_TASK_PREFIX = 'dreamer-';
6
+ /** Candidate id embedded in a dreamer task id ("dreamer-<uuid>-<channel>"). */
7
+ export function candidateIdFromDreamerTaskId(taskId) {
8
+ if (!taskId || !taskId.startsWith(DREAMER_TASK_PREFIX))
9
+ return null;
10
+ const withoutPrefix = taskId.slice(DREAMER_TASK_PREFIX.length);
11
+ const lastDash = withoutPrefix.lastIndexOf('-');
12
+ if (lastDash <= 0)
13
+ return null;
14
+ const candidateId = withoutPrefix.slice(0, lastDash);
15
+ return /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(candidateId)
16
+ ? candidateId
17
+ : null;
18
+ }
19
+ /** The authoritative dreamer artifact reference: content sourceTrace first, lineage fallback. */
20
+ function readDreamerArtifactId(artifact) {
21
+ try {
22
+ const parsed = JSON.parse(artifact.contentJson);
23
+ if (isRecord(parsed) && Object.hasOwn(parsed, 'sourceTrace')) {
24
+ const trace = Reflect.get(parsed, 'sourceTrace');
25
+ if (isRecord(trace) && Object.hasOwn(trace, 'dreamerArtifactId')) {
26
+ const id = Reflect.get(trace, 'dreamerArtifactId');
27
+ if (typeof id === 'string' && id.trim() !== '')
28
+ return id;
29
+ }
30
+ }
31
+ }
32
+ catch {
33
+ // contentJson is untrusted; lineage fallback below still applies.
34
+ }
35
+ const lineage = artifact.lineageArtifactIds ?? [];
36
+ const dreamer = lineage.find((id) => typeof id === 'string' && id.includes('-dreamer-'));
37
+ return dreamer ?? null;
38
+ }
39
+ /**
40
+ * Read the candidate id carried at the top level of a dreamer task seed's
41
+ * diagnostic_json (written by intake-to-internalization-bridge). Shared by the
42
+ * activation boundary and the scribe's chain stamping.
43
+ */
44
+ export function candidateIdFromDreamerSeed(diagnosticJson) {
45
+ if (!diagnosticJson)
46
+ return null;
47
+ try {
48
+ const parsed = JSON.parse(diagnosticJson);
49
+ if (isRecord(parsed) && Object.hasOwn(parsed, 'candidateId')) {
50
+ const value = Reflect.get(parsed, 'candidateId');
51
+ if (typeof value === 'string' && value.trim() !== '')
52
+ return value.trim();
53
+ }
54
+ }
55
+ catch {
56
+ // Malformed seed JSON — fall back to the task-id derivation.
57
+ }
58
+ return null;
59
+ }
60
+ /**
61
+ * Resolve the ledger principle identity for an activation artifact.
62
+ *
63
+ * Order: direct UUID (ledger-validated) → candidate lineage. Direct ids that
64
+ * fail ledger membership do NOT fall through to the lineage — a stamped id
65
+ * that the ledger does not know is data drift and must surface as such.
66
+ */
67
+ export async function resolveLedgerActivationId(artifact, deps) {
68
+ const direct = resolveActivationPrincipleId(artifact);
69
+ if (direct) {
70
+ if (deps.ledger.hasPrinciple(direct)) {
71
+ return { status: 'resolved', principleId: direct, how: 'direct_validated' };
72
+ }
73
+ return { status: 'unresolved', reason: `principle_not_in_ledger: ${direct}` };
74
+ }
75
+ const dreamerArtifactId = readDreamerArtifactId(artifact);
76
+ if (!dreamerArtifactId) {
77
+ return { status: 'unresolved', reason: 'no_principle_id_in_artifact: artifact has no identity and no dreamer lineage' };
78
+ }
79
+ const dreamerArtifact = await deps.getArtifactById(dreamerArtifactId);
80
+ if (!dreamerArtifact) {
81
+ return { status: 'unresolved', reason: `no_principle_id_in_artifact: dreamer artifact ${dreamerArtifactId} not found` };
82
+ }
83
+ // The dreamer TASK seed is the authoritative carrier of the candidate id;
84
+ // the task-id spelling is only a fallback.
85
+ let candidateId = candidateIdFromDreamerTaskId(dreamerArtifact.sourceTaskId);
86
+ if (dreamerArtifact.sourceTaskId && deps.getTaskDiagnosticJson) {
87
+ const fromSeed = candidateIdFromDreamerSeed(await deps.getTaskDiagnosticJson(dreamerArtifact.sourceTaskId));
88
+ if (fromSeed)
89
+ candidateId = fromSeed;
90
+ }
91
+ if (!candidateId) {
92
+ return { status: 'unresolved', reason: 'no_principle_id_in_artifact: dreamer lineage carries no candidate id' };
93
+ }
94
+ const matches = deps.ledger.listForCandidate(candidateId);
95
+ if (matches.length === 1) {
96
+ const [entry] = matches;
97
+ if (entry)
98
+ return { status: 'resolved', principleId: entry.id, how: 'candidate_lineage' };
99
+ }
100
+ if (matches.length === 0) {
101
+ return { status: 'unresolved', reason: `no_principle_id_in_artifact: ledger has no principle derived from candidate ${candidateId}` };
102
+ }
103
+ return { status: 'unresolved', reason: `no_principle_id_in_artifact: candidate ${candidateId} maps to ${matches.length} ledger principles; refusing to guess` };
104
+ }
105
+ //# sourceMappingURL=ledger-identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ledger-identity.js","sourceRoot":"","sources":["../../../src/runtime-v2/activation/ledger-identity.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,53 @@
1
1
  import type { PIArtifactSnapshot, CanActivateResult, ChannelWriter, WriterInput, WriterResult } from './activation-types.js';
2
+ /**
3
+ * ⚠️ DISPLAY / RESOLUTION ONLY — never an identity source.
4
+ *
5
+ * This helper intentionally keeps its lenient multi-step fallback (column →
6
+ * `content.principleId` → `content.sourcePrincipleId` → `principleDraft.title`)
7
+ * because display and approval-grouping surfaces need to show *something* for
8
+ * legacy artifacts that were activated before identities were stamped.
9
+ *
10
+ * It must NOT be used to mint or gate a principle identity: its last fallback
11
+ * returns `principleDraft.title` — a natural-language string generated by the
12
+ * philosopher — which is exactly how content came to masquerade as identity and
13
+ * fragmented the principle identity space (Phase 3 design audit,
14
+ * `docs/architecture/principle-identity-reconciliation.md`, finding F1).
15
+ *
16
+ * For anything that WRITES or GATES an activation use
17
+ * {@link resolveActivationPrincipleId} instead (fail-closed).
18
+ */
2
19
  declare function extractPrincipleId(artifact: PIArtifactSnapshot): string | null;
20
+ /**
21
+ * I3 — ACTIVATION IDENTITY BOUNDARY (fail-closed).
22
+ *
23
+ * Phase 3 (Principle Identity Reconciliation,
24
+ * `docs/architecture/principle-identity-reconciliation.md`): the ONLY identity
25
+ * an activation may carry is the `pi_artifacts.source_principle_id` column value
26
+ * when it is a ledger-shaped principle UUID. Everything else — `principleDraft`
27
+ * titles, content-level ids, any text form — is refused (`null`), because a
28
+ * content-derived identity is how `principle_applications` / `activations`
29
+ * ended up keyed by philosopher titles instead of ledger UUIDs.
30
+ *
31
+ * Deliberately NOT here (and never re-add):
32
+ * - contentJson fallbacks (`principleId` / `sourcePrincipleId` / draft title)
33
+ * - text/fuzzy matching against ledger principles
34
+ *
35
+ * Ledger *membership* is validated by the ledger-backed call sites
36
+ * (`PrincipleTreeLedgerAdapter.hasPrinciple` / `activatePrinciple` and
37
+ * pd-console's `resolveLedgerPrincipleId`); this boundary guarantees the value
38
+ * is at least UUID-shaped, so a title can never become a durable identity.
39
+ *
40
+ * The returned value is LOWERCASE-normalized: ledger keys are minted by
41
+ * `randomUUID()` (always lowercase), so an uppercase UUID that passes the shape
42
+ * check would otherwise miss `hasPrinciple` and be refused as
43
+ * `principle_not_in_ledger` — a case-only mismatch masquerading as data drift.
44
+ *
45
+ * @returns the trimmed, lowercase UUID, or `null` when the value carries no
46
+ * usable identity — callers must refuse with
47
+ * `no_principle_id_in_artifact`.
48
+ */
49
+ export declare function canonicalLedgerPrincipleId(value: unknown): string | null;
50
+ export declare function resolveActivationPrincipleId(artifact: PIArtifactSnapshot): string | null;
3
51
  export declare class PromptWriter implements ChannelWriter {
4
52
  readonly channel: 'prompt';
5
53
  canActivate(artifact: PIArtifactSnapshot): Promise<CanActivateResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"low-risk-writers.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/activation/low-risk-writers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAM7H,iBAAS,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI,CAwBvE;AAED,qBAAa,YAAa,YAAW,aAAa;IAChD,QAAQ,CAAC,OAAO,EAAG,QAAQ,CAAU;IAG/B,WAAW,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAY1E;IAGK,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAMvF;CACF;AAED,qBAAa,kBAAmB,YAAW,aAAa;IACtD,QAAQ,CAAC,OAAO,EAAG,eAAe,CAAU;IAGtC,WAAW,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAY1E;IAGK,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAMvF;CACF;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
1
+ {"version":3,"file":"low-risk-writers.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/activation/low-risk-writers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAM7H;;;;;;;;;;;;;;;;GAgBG;AACH,iBAAS,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI,CAwBvE;AAKD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAMxE;AAED,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI,CAExF;AAED,qBAAa,YAAa,YAAW,aAAa;IAChD,QAAQ,CAAC,OAAO,EAAG,QAAQ,CAAU;IAG/B,WAAW,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAc1E;IAGK,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAMvF;CACF;AAED,qBAAa,kBAAmB,YAAW,aAAa;IACtD,QAAQ,CAAC,OAAO,EAAG,eAAe,CAAU;IAGtC,WAAW,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAS1E;IAGK,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAMvF;CACF;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
@@ -1,6 +1,23 @@
1
1
  function isRecord(value) {
2
2
  return value !== null && typeof value === 'object' && !Array.isArray(value);
3
3
  }
4
+ /**
5
+ * ⚠️ DISPLAY / RESOLUTION ONLY — never an identity source.
6
+ *
7
+ * This helper intentionally keeps its lenient multi-step fallback (column →
8
+ * `content.principleId` → `content.sourcePrincipleId` → `principleDraft.title`)
9
+ * because display and approval-grouping surfaces need to show *something* for
10
+ * legacy artifacts that were activated before identities were stamped.
11
+ *
12
+ * It must NOT be used to mint or gate a principle identity: its last fallback
13
+ * returns `principleDraft.title` — a natural-language string generated by the
14
+ * philosopher — which is exactly how content came to masquerade as identity and
15
+ * fragmented the principle identity space (Phase 3 design audit,
16
+ * `docs/architecture/principle-identity-reconciliation.md`, finding F1).
17
+ *
18
+ * For anything that WRITES or GATES an activation use
19
+ * {@link resolveActivationPrincipleId} instead (fail-closed).
20
+ */
4
21
  function extractPrincipleId(artifact) {
5
22
  if (typeof artifact.sourcePrincipleId === 'string') {
6
23
  const sourceId = artifact.sourcePrincipleId.trim();
@@ -29,6 +46,50 @@ function extractPrincipleId(artifact) {
29
46
  }
30
47
  return null;
31
48
  }
49
+ /** Ledger principle ids are UUIDs — `_tree.principles` is keyed by `randomUUID()`. */
50
+ const PRINCIPLE_ID_UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
51
+ /**
52
+ * I3 — ACTIVATION IDENTITY BOUNDARY (fail-closed).
53
+ *
54
+ * Phase 3 (Principle Identity Reconciliation,
55
+ * `docs/architecture/principle-identity-reconciliation.md`): the ONLY identity
56
+ * an activation may carry is the `pi_artifacts.source_principle_id` column value
57
+ * when it is a ledger-shaped principle UUID. Everything else — `principleDraft`
58
+ * titles, content-level ids, any text form — is refused (`null`), because a
59
+ * content-derived identity is how `principle_applications` / `activations`
60
+ * ended up keyed by philosopher titles instead of ledger UUIDs.
61
+ *
62
+ * Deliberately NOT here (and never re-add):
63
+ * - contentJson fallbacks (`principleId` / `sourcePrincipleId` / draft title)
64
+ * - text/fuzzy matching against ledger principles
65
+ *
66
+ * Ledger *membership* is validated by the ledger-backed call sites
67
+ * (`PrincipleTreeLedgerAdapter.hasPrinciple` / `activatePrinciple` and
68
+ * pd-console's `resolveLedgerPrincipleId`); this boundary guarantees the value
69
+ * is at least UUID-shaped, so a title can never become a durable identity.
70
+ *
71
+ * The returned value is LOWERCASE-normalized: ledger keys are minted by
72
+ * `randomUUID()` (always lowercase), so an uppercase UUID that passes the shape
73
+ * check would otherwise miss `hasPrinciple` and be refused as
74
+ * `principle_not_in_ledger` — a case-only mismatch masquerading as data drift.
75
+ *
76
+ * @returns the trimmed, lowercase UUID, or `null` when the value carries no
77
+ * usable identity — callers must refuse with
78
+ * `no_principle_id_in_artifact`.
79
+ */
80
+ export function canonicalLedgerPrincipleId(value) {
81
+ if (typeof value !== 'string')
82
+ return null;
83
+ const candidate = value.trim();
84
+ if (candidate === '')
85
+ return null;
86
+ if (!PRINCIPLE_ID_UUID_RE.test(candidate))
87
+ return null;
88
+ return candidate.toLowerCase();
89
+ }
90
+ export function resolveActivationPrincipleId(artifact) {
91
+ return canonicalLedgerPrincipleId(artifact.sourcePrincipleId);
92
+ }
32
93
  export class PromptWriter {
33
94
  channel = 'prompt';
34
95
  // eslint-disable-next-line @typescript-eslint/class-methods-use-this
@@ -39,10 +100,12 @@ export class PromptWriter {
39
100
  if (artifact.validationStatus !== 'validated') {
40
101
  return { ok: false, reason: `artifact_validation_status_${artifact.validationStatus}`, riskLevel: 'low' };
41
102
  }
42
- const principleId = extractPrincipleId(artifact);
43
- if (!principleId) {
44
- return { ok: false, reason: 'no_principle_id_in_artifact', riskLevel: 'low' };
45
- }
103
+ // Identity gating deliberately does NOT live here anymore (Owner review of
104
+ // PR #1856, P1): the writer only knows artifact shape — ledger membership
105
+ // requires the ActivationDispatcher's ledgerIdentity deps. The dispatcher
106
+ // gates BOTH paths (enqueueForApproval + activateArtifact) so the identity
107
+ // check happens once, before the approval queue and before the activation
108
+ // commit, against the ledger.
46
109
  return { ok: true, riskLevel: 'low' };
47
110
  }
48
111
  // eslint-disable-next-line @typescript-eslint/class-methods-use-this
@@ -64,10 +127,7 @@ export class DeferArchiveWriter {
64
127
  if (artifact.validationStatus !== 'validated') {
65
128
  return { ok: false, reason: `artifact_validation_status_${artifact.validationStatus}`, riskLevel: 'low' };
66
129
  }
67
- const principleId = extractPrincipleId(artifact);
68
- if (!principleId) {
69
- return { ok: false, reason: 'no_principle_id_in_artifact', riskLevel: 'low' };
70
- }
130
+ // See PromptWriter.canActivate: identity gating moved to the dispatcher.
71
131
  return { ok: true, riskLevel: 'low' };
72
132
  }
73
133
  // eslint-disable-next-line @typescript-eslint/class-methods-use-this