@cotal-ai/core 0.16.0 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/dist/acls.d.ts +21 -0
  2. package/dist/acls.d.ts.map +1 -1
  3. package/dist/acls.js +44 -1
  4. package/dist/acls.js.map +1 -1
  5. package/dist/artifact.d.ts +45 -0
  6. package/dist/artifact.d.ts.map +1 -0
  7. package/dist/artifact.js +82 -0
  8. package/dist/artifact.js.map +1 -0
  9. package/dist/backup-config.d.ts +9 -2
  10. package/dist/backup-config.d.ts.map +1 -1
  11. package/dist/backup-config.js +6 -2
  12. package/dist/backup-config.js.map +1 -1
  13. package/dist/broker-tls.d.ts +70 -0
  14. package/dist/broker-tls.d.ts.map +1 -0
  15. package/dist/broker-tls.js +195 -0
  16. package/dist/broker-tls.js.map +1 -0
  17. package/dist/canonical.d.ts +14 -1
  18. package/dist/canonical.d.ts.map +1 -1
  19. package/dist/canonical.js +21 -1
  20. package/dist/canonical.js.map +1 -1
  21. package/dist/channels.js +4 -4
  22. package/dist/channels.js.map +1 -1
  23. package/dist/endpoint-action.d.ts +108 -3
  24. package/dist/endpoint-action.d.ts.map +1 -1
  25. package/dist/endpoint-action.js +209 -20
  26. package/dist/endpoint-action.js.map +1 -1
  27. package/dist/endpoint-binding.d.ts +138 -8
  28. package/dist/endpoint-binding.d.ts.map +1 -1
  29. package/dist/endpoint-binding.js +233 -26
  30. package/dist/endpoint-binding.js.map +1 -1
  31. package/dist/endpoint-contract-store.d.ts +30 -1
  32. package/dist/endpoint-contract-store.d.ts.map +1 -1
  33. package/dist/endpoint-contract-store.js +100 -29
  34. package/dist/endpoint-contract-store.js.map +1 -1
  35. package/dist/endpoint-envelope.d.ts +15 -37
  36. package/dist/endpoint-envelope.d.ts.map +1 -1
  37. package/dist/endpoint-envelope.js +93 -44
  38. package/dist/endpoint-envelope.js.map +1 -1
  39. package/dist/endpoint-error.d.ts +33 -0
  40. package/dist/endpoint-error.d.ts.map +1 -0
  41. package/dist/endpoint-error.js +34 -0
  42. package/dist/endpoint-error.js.map +1 -0
  43. package/dist/endpoint-grants.d.ts +63 -7
  44. package/dist/endpoint-grants.d.ts.map +1 -1
  45. package/dist/endpoint-grants.js +118 -9
  46. package/dist/endpoint-grants.js.map +1 -1
  47. package/dist/endpoint-invoke.d.ts +138 -0
  48. package/dist/endpoint-invoke.d.ts.map +1 -0
  49. package/dist/endpoint-invoke.js +393 -0
  50. package/dist/endpoint-invoke.js.map +1 -0
  51. package/dist/endpoint-records.d.ts.map +1 -1
  52. package/dist/endpoint-records.js +17 -0
  53. package/dist/endpoint-records.js.map +1 -1
  54. package/dist/endpoint-serve-kv.d.ts +97 -0
  55. package/dist/endpoint-serve-kv.d.ts.map +1 -0
  56. package/dist/endpoint-serve-kv.js +336 -0
  57. package/dist/endpoint-serve-kv.js.map +1 -0
  58. package/dist/endpoint-serve.d.ts.map +1 -1
  59. package/dist/endpoint-serve.js +21 -1
  60. package/dist/endpoint-serve.js.map +1 -1
  61. package/dist/endpoint-service.d.ts +1 -1
  62. package/dist/endpoint-service.d.ts.map +1 -1
  63. package/dist/endpoint-service.js +34 -10
  64. package/dist/endpoint-service.js.map +1 -1
  65. package/dist/endpoint-session-rail.d.ts +127 -0
  66. package/dist/endpoint-session-rail.d.ts.map +1 -0
  67. package/dist/endpoint-session-rail.js +325 -0
  68. package/dist/endpoint-session-rail.js.map +1 -0
  69. package/dist/endpoint-session.d.ts +1 -115
  70. package/dist/endpoint-session.d.ts.map +1 -1
  71. package/dist/endpoint-session.js +4 -316
  72. package/dist/endpoint-session.js.map +1 -1
  73. package/dist/endpoint-subjects.d.ts +20 -1
  74. package/dist/endpoint-subjects.d.ts.map +1 -1
  75. package/dist/endpoint-subjects.js +20 -1
  76. package/dist/endpoint-subjects.js.map +1 -1
  77. package/dist/endpoint-verbs.d.ts +1 -2
  78. package/dist/endpoint-verbs.d.ts.map +1 -1
  79. package/dist/endpoint-verbs.js +6 -6
  80. package/dist/endpoint-verbs.js.map +1 -1
  81. package/dist/endpoint.d.ts +157 -11
  82. package/dist/endpoint.d.ts.map +1 -1
  83. package/dist/endpoint.js +471 -47
  84. package/dist/endpoint.js.map +1 -1
  85. package/dist/evict.d.ts +47 -0
  86. package/dist/evict.d.ts.map +1 -1
  87. package/dist/evict.js +191 -59
  88. package/dist/evict.js.map +1 -1
  89. package/dist/identity.d.ts +34 -0
  90. package/dist/identity.d.ts.map +1 -1
  91. package/dist/identity.js +46 -0
  92. package/dist/identity.js.map +1 -1
  93. package/dist/index.d.ts +8 -0
  94. package/dist/index.d.ts.map +1 -1
  95. package/dist/index.js +8 -0
  96. package/dist/index.js.map +1 -1
  97. package/dist/kv-scan.d.ts +8 -0
  98. package/dist/kv-scan.d.ts.map +1 -1
  99. package/dist/kv-scan.js +8 -0
  100. package/dist/kv-scan.js.map +1 -1
  101. package/dist/lease.d.ts +12 -5
  102. package/dist/lease.d.ts.map +1 -1
  103. package/dist/lease.js.map +1 -1
  104. package/dist/lifecycle-saga.d.ts +174 -0
  105. package/dist/lifecycle-saga.d.ts.map +1 -0
  106. package/dist/lifecycle-saga.js +418 -0
  107. package/dist/lifecycle-saga.js.map +1 -0
  108. package/dist/lifecycle-state.d.ts +202 -0
  109. package/dist/lifecycle-state.d.ts.map +1 -0
  110. package/dist/lifecycle-state.js +347 -0
  111. package/dist/lifecycle-state.js.map +1 -0
  112. package/dist/parts.d.ts +13 -0
  113. package/dist/parts.d.ts.map +1 -0
  114. package/dist/parts.js +17 -0
  115. package/dist/parts.js.map +1 -0
  116. package/dist/provision.d.ts +124 -15
  117. package/dist/provision.d.ts.map +1 -1
  118. package/dist/provision.js +578 -121
  119. package/dist/provision.js.map +1 -1
  120. package/dist/schema-profile.d.ts +3 -2
  121. package/dist/schema-profile.d.ts.map +1 -1
  122. package/dist/schema-profile.js +242 -18
  123. package/dist/schema-profile.js.map +1 -1
  124. package/dist/session-browser.d.ts +15 -0
  125. package/dist/session-browser.d.ts.map +1 -0
  126. package/dist/session-browser.js +14 -0
  127. package/dist/session-browser.js.map +1 -0
  128. package/dist/session-terminal-frames.d.ts +36 -0
  129. package/dist/session-terminal-frames.d.ts.map +1 -0
  130. package/dist/session-terminal-frames.js +149 -0
  131. package/dist/session-terminal-frames.js.map +1 -0
  132. package/dist/spaces.d.ts.map +1 -1
  133. package/dist/spaces.js +6 -1
  134. package/dist/spaces.js.map +1 -1
  135. package/dist/streams.d.ts +168 -1
  136. package/dist/streams.d.ts.map +1 -1
  137. package/dist/streams.js +299 -21
  138. package/dist/streams.js.map +1 -1
  139. package/dist/subjects.d.ts +34 -36
  140. package/dist/subjects.d.ts.map +1 -1
  141. package/dist/subjects.js +46 -35
  142. package/dist/subjects.js.map +1 -1
  143. package/dist/types.d.ts +27 -1
  144. package/dist/types.d.ts.map +1 -1
  145. package/package.json +6 -1
@@ -2,8 +2,8 @@ import { jetstream, jetstreamManager } from "@nats-io/jetstream";
2
2
  import { headers as natsHeaders } from "@nats-io/transport-node";
3
3
  import { canonicalJson, contractDigest } from "./canonical.js";
4
4
  import { EpEnvelopeError } from "./endpoint-envelope.js";
5
- import { epfSubject, assertIdToken } from "./endpoint-subjects.js";
6
- import { RECORD_KINDS, recordSpecKey, recordStatusKey, createRecordEntry, updateRecordEntry, assertStatusValue, openRecordsBucket, readRecordLeader } from "./endpoint-records.js";
5
+ import { epfSubject, assertIdToken, endpointToken } from "./endpoint-subjects.js";
6
+ import { RECORD_KINDS, recordSpecKey, recordStatusKey, recordAtomicKey, createRecordEntry, updateRecordEntry, assertStatusValue, openRecordsBucket, readRecordLeader } from "./endpoint-records.js";
7
7
  import { epfStreamName, epfGoalBindSubject, readLastFact, parseDecisionFact } from "./endpoint-journal.js";
8
8
  import { readCheckpointSpec, readCheckpointSettle } from "./endpoint-checkpoint.js";
9
9
  import { mintReceiptFromFacts, receiptOutcomeOfGoal, publishReceipt, readReceipt, assertReceiptAttestsSameFacts, assertReceiptStoreContext, assertReceiptStoreConnection, } from "./endpoint-receipt.js";
@@ -87,7 +87,18 @@ export function goalRefOf(request, goalId) {
87
87
  const c = request.caller;
88
88
  return { endpoint: request.endpoint, caller: { owner: c.owner, actor: c.actor, uid: c.uid }, goalId: assertIdToken(goalId, "goalId") };
89
89
  }
90
- /** The goal's terminal-result fact subject (`epf.<e>.goal.<triple>.<goalId>.result`, §13.2). */
90
+ /** The goal's terminal-result fact subject the ONE subject SPEC:1394 reserves,
91
+ * `epf.<e>.goal.<cOwner>.<cActor>.<cUid>.<goalId>.result`, with NO epoch token.
92
+ *
93
+ * An earlier revision epoch-scoped this (`…result.<execEpoch>`) to fence a live-superseded
94
+ * committer by giving each executor epoch its own create-only subject. That was non-conformant
95
+ * AND wrong: the window it addressed is "commit the fact, then die before the projection", where
96
+ * the pre-restart fact is the LEGITIMATE outcome, not a corpse's guess. Scoping by epoch hid that
97
+ * winner from every post-restart reader, let the successor commit a SECOND contradictory terminal
98
+ * at the new epoch, and surfaced the wrong one to callers (executed repro: a real `succeeded`
99
+ * read back as `uncertain`). One goal has one terminal, on one subject, first-fact-wins globally.
100
+ * The fence against a superseded committer is the §13.1 takeover barrier, which revokes and
101
+ * cluster-verify-evicts the family BEFORE it advances the process epoch. */
91
102
  export function goalResultSubject(space, ref) {
92
103
  return epfSubject(space, ref.endpoint, ["goal", ref.caller.owner, ref.caller.actor, ref.caller.uid, ref.goalId, "result"]);
93
104
  }
@@ -226,7 +237,9 @@ function parseSpec(raw, key, ref) {
226
237
  if (raw === null || typeof raw !== "object" || Array.isArray(raw))
227
238
  throw new EpEnvelopeError("internal", `goal spec ${key} is not an object; garbled mediated record state never authorizes (SPEC 13.4)`);
228
239
  const o = raw;
229
- assertClosedKeys(o, ["v", "goalId", "fingerprint", "command", "caller", "target", "requestId", "guard", "sourceSeq", "acceptedAt", "readinessDeadlineMs"], `goal spec ${key}`);
240
+ assertClosedKeys(o, ["v", "goalId", "fingerprint", "command", "caller", "target", "acceptedEpoch", "requestId", "guard", "sourceSeq", "acceptedAt", "readinessDeadlineMs"], `goal spec ${key}`);
241
+ if (o.acceptedEpoch !== undefined && (typeof o.acceptedEpoch !== "number" || !Number.isSafeInteger(o.acceptedEpoch) || o.acceptedEpoch < 0))
242
+ throw new EpEnvelopeError("internal", `goal spec ${key} acceptedEpoch is not an unsigned integer; garbled state never authorizes (SPEC 13.1/13.6)`);
230
243
  if (o.guard !== undefined && (typeof o.guard !== "string" || o.guard.length === 0))
231
244
  throw new EpEnvelopeError("internal", `goal spec ${key} carries a malformed guard binding; garbled state never authorizes (SPEC 13.4/13.6)`);
232
245
  if (o.v !== 1 || typeof o.goalId !== "string" || typeof o.fingerprint !== "string" || o.fingerprint.length === 0 || typeof o.command !== "string")
@@ -498,23 +511,29 @@ export async function transitionGoal(ctx, ref, to, opts = {}) {
498
511
  /** Project the WINNING terminal fact onto the status — the ONLY path a status reaches a terminal
499
512
  * state, and the crash reconciler for a commit that fenced the fact but died before projecting.
500
513
  * Cross-checks the fact's fingerprint against the persisted spec (a terminal fact whose
501
- * fingerprint disagrees with the accepted goal is a garbled authority chain). */
514
+ * fingerprint disagrees with the accepted goal is a garbled authority chain). One goal has ONE
515
+ * terminal subject (SPEC:1394), so the projection follows the one committed fact — there is no
516
+ * epoch to resolve and no per-epoch variant of "the winner". */
502
517
  export async function projectGoalTerminal(ctx, ref) {
503
518
  assertCtx(ctx);
504
519
  const snap = snapshotRef(ref);
505
- const fact = await readGoalResult(ctx, snap);
506
- if (fact === undefined)
507
- throw new EpEnvelopeError("failed-precondition", `goal "${snap.goalId}" has no terminal fact; only a committed result projects a terminal status (SPEC 13.6)`);
508
520
  const spec = await readGoalSpec(ctx, snap);
509
521
  if (spec === undefined)
510
522
  throw new EpEnvelopeError("internal", `goal "${snap.goalId}" has a terminal fact but no accepted spec; garbled state never authorizes (SPEC 13.4)`);
523
+ const subject = goalResultSubject(ctx.space, snap);
524
+ const raw = await readLastFact(ctx.jsm, epfStreamName(ctx.space), subject);
525
+ const fact = raw === undefined ? undefined : parseGoalResultFact(raw, subject, snap);
526
+ if (fact === undefined)
527
+ throw new EpEnvelopeError("failed-precondition", `goal "${snap.goalId}" has no terminal fact; only a committed result projects a terminal status (SPEC 13.6)`);
511
528
  if (fact.fingerprint !== spec.value.fingerprint)
512
529
  throw new EpEnvelopeError("internal", `goal "${snap.goalId}"'s terminal fact fingerprint disagrees with its accepted spec; a projection never follows a garbled fact (SPEC 13.6)`);
530
+ assertTerminalAttribution(fact, spec.value, snap.goalId);
513
531
  const key = recordStatusKey(RECORD_KINDS.goal, goalQualifiers(snap));
532
+ const terminal = (state, observedSpecRevision) => assertStatusValue({ state, observedSpecRevision });
514
533
  for (let pass = 0; pass < 2; pass++) {
515
534
  const current = await readGoalStatus(ctx, snap);
516
535
  if (current === undefined) {
517
- const created = assertStatusValue({ state: fact.state, observedSpecRevision: spec.revision });
536
+ const created = terminal(fact.state, spec.revision);
518
537
  try {
519
538
  await createRecordEntry(ctx.kv, key, created);
520
539
  return created;
@@ -525,11 +544,12 @@ export async function projectGoalTerminal(ctx, ref) {
525
544
  throw e;
526
545
  }
527
546
  }
547
+ // The same terminal is already projected: converge.
528
548
  if (current.value.state === fact.state)
529
549
  return current.value;
530
550
  if (GOAL_TERMINAL_STATES.includes(current.value.state))
531
551
  throw new EpEnvelopeError("internal", `goal "${snap.goalId}" status is terminal ${current.value.state} but the winning fact is ${fact.state}; a projection never contradicts the journal (SPEC 13.6)`);
532
- const next = assertStatusValue({ state: fact.state, observedSpecRevision: current.value.observedSpecRevision });
552
+ const next = terminal(fact.state, current.value.observedSpecRevision);
533
553
  try {
534
554
  await updateRecordEntry(ctx.kv, key, next, current.revision);
535
555
  return next;
@@ -563,12 +583,56 @@ export function goalCancelledResultOf(acceptance, cancelled, ts) {
563
583
  export function goalTombstone(fact) {
564
584
  return { v: 1, goalId: fact.goalId, fingerprint: fact.fingerprint, state: fact.state, outcomeDigest: fact.outcomeDigest, data: { evicted: true }, ts: fact.ts };
565
585
  }
586
+ /** Judge a parsed terminal against the ACCEPTED goal (the §13.6 attribution rule). The comparison
587
+ * is against the goal's OWN accepted epoch, never the current one:
588
+ * - `committed == accepted` — the accepting executor answering for its own work. Valid FOREVER,
589
+ * however far the current epoch has advanced since. This is the invariant HIGH-1 lost.
590
+ * - `committed > accepted` — a successor settling work it inherited. Valid.
591
+ * - `committed < accepted` — no incarnation can commit under an epoch older than the one that
592
+ * accepted the goal; the journal is garbled and it refuses loud.
593
+ * A goal accepted with no epoch context takes no committer, and vice versa: a half-attributed
594
+ * pair is a wiring confusion, not a silent pass.
595
+ *
596
+ * WHAT THIS IS NOT: it is not a write fence against a LIVE superseded committer. A corpse
597
+ * committing the terminal of a goal IT accepted stamps `committed == accepted` and is accepted
598
+ * here, exactly as the real executor would be. Create-only CAS conditions on subject ABSENCE and
599
+ * cannot express "only if my epoch is still current", so the write fence is the §13.1 barrier.
600
+ *
601
+ * AND THE BARRIER'S WINDOW IS WIDER THAN "BYTES IN FLIGHT", which an earlier revision of this
602
+ * comment claimed. A gate FREEZE neither kills the predecessor's connection nor advances the
603
+ * epoch, and the currency belt compares `processEpoch` alone, so a deposed manager's belt STILL
604
+ * PASSES from barrier start through PHASE 1-2 until the reopen. Revoking an `epcred` row marks a
605
+ * ledger row; it does not re-check a live JWT mid-publish on an already-open connection. What
606
+ * durably kills that publisher is the CLUSTER-VERIFIED EVICTION in PHASE 2, not the revoke. So
607
+ * the window in which a deposed manager can still INITIATE a new terminal publish runs from
608
+ * barrier start until eviction is verified — not merely the bytes already on the wire. On an OPEN
609
+ * mesh no credential family exists, so that eviction is vacuous and there is no durable fence at
610
+ * all; the belt there is cooperative only. */
611
+ function assertTerminalAttribution(fact, spec, goalId) {
612
+ const accepted = spec.acceptedEpoch;
613
+ const committed = fact.committer?.epoch;
614
+ if (accepted === undefined && committed === undefined)
615
+ return;
616
+ if (accepted === undefined || committed === undefined)
617
+ throw new EpEnvelopeError("internal", `goal "${goalId}" has ${accepted === undefined ? "no accepted epoch but a committer-stamped terminal" : "an accepted epoch but an unattributed terminal"}; a half-attributed terminal never authorizes (SPEC 13.6)`);
618
+ if (committed < accepted)
619
+ throw new EpEnvelopeError("internal", `goal "${goalId}" carries a terminal committed under epoch ${committed} but was accepted under ${accepted}; no incarnation commits under an epoch older than the one that accepted the goal - the journal is garbled (SPEC 13.1/13.6)`);
620
+ }
566
621
  /** Closed validation, IDENTITY-BOUND to the ref, with the tombstone digest RE-VERIFIED. */
567
622
  export function parseGoalResultFact(raw, subject, ref) {
568
623
  if (raw === null || typeof raw !== "object" || Array.isArray(raw))
569
624
  throw new EpEnvelopeError("internal", `goal result fact on ${subject} is not an object; garbled state never authorizes (SPEC 13.6)`);
570
625
  const o = raw;
571
- assertClosedKeys(o, ["v", "goalId", "fingerprint", "state", "outcomeDigest", "data", "ts"], `goal result fact on ${subject}`);
626
+ assertClosedKeys(o, ["v", "goalId", "fingerprint", "state", "outcomeDigest", "data", "committer", "ts"], `goal result fact on ${subject}`);
627
+ if (o.committer !== undefined) {
628
+ const cm = o.committer;
629
+ if (cm === null || typeof cm !== "object" || Array.isArray(cm))
630
+ throw new EpEnvelopeError("internal", `goal result fact on ${subject} committer is not an object; garbled state never authorizes (SPEC 13.6)`);
631
+ assertClosedKeys(cm, ["instanceId", "epoch"], `goal result fact on ${subject} committer`);
632
+ if (typeof cm.instanceId !== "string" || cm.instanceId.length === 0
633
+ || typeof cm.epoch !== "number" || !Number.isSafeInteger(cm.epoch) || cm.epoch < 0)
634
+ throw new EpEnvelopeError("internal", `goal result fact on ${subject} carries a malformed committer; garbled state never authorizes (SPEC 13.6)`);
635
+ }
572
636
  if (o.v !== 1 || typeof o.goalId !== "string" || typeof o.fingerprint !== "string" || o.fingerprint.length === 0
573
637
  || typeof o.state !== "string" || !GOAL_TERMINAL_STATES.includes(o.state)
574
638
  || typeof o.outcomeDigest !== "string" || o.outcomeDigest.length === 0
@@ -580,7 +644,9 @@ export function parseGoalResultFact(raw, subject, ref) {
580
644
  throw new EpEnvelopeError("internal", `goal result fact on ${subject} carries an outcomeDigest that does not match its payload; a digest-inconsistent fact never authorizes (SPEC 13.6)`);
581
645
  return o;
582
646
  }
583
- /** Read the goal's cached terminal outcome (`undefined` = not terminal yet). */
647
+ /** Read the goal's cached terminal outcome (`undefined` = not terminal yet). ONE goal, ONE
648
+ * terminal subject (SPEC:1394), read exactly (never a wildcard `last_by_subj` — the append-shadow
649
+ * lesson): a committed terminal is surfaced to every reader, in every incarnation, forever. */
584
650
  export async function readGoalResult(ctx, ref) {
585
651
  assertCtx(ctx);
586
652
  const snap = snapshotRef(ref);
@@ -592,20 +658,31 @@ export async function readGoalResult(ctx, ref) {
592
658
  * the spec already read. Snapshots the payload strict-canonical BEFORE the CAS, stamps the
593
659
  * fingerprint FROM the spec, projects the winner, and proves a lost-CAS winner's fingerprint
594
660
  * agrees with the spec. */
595
- async function commitTerminalFact(ctx, snap, spec, state, data, now) {
661
+ async function commitTerminalFact(ctx, snap, spec, state, data, now, committer) {
596
662
  const snapshotData = data === undefined ? undefined : JSON.parse(canonicalJson(data));
597
663
  const fact = {
598
664
  v: 1, goalId: snap.goalId, fingerprint: spec.fingerprint, state,
599
665
  outcomeDigest: contractDigest(snapshotData === undefined ? null : snapshotData),
600
- ...(snapshotData !== undefined ? { data: snapshotData } : {}), ts: now,
666
+ ...(snapshotData !== undefined ? { data: snapshotData } : {}),
667
+ ...(committer !== undefined ? { committer } : {}), ts: now,
601
668
  };
669
+ // ONE terminal subject per goal (SPEC:1394). First fact wins GLOBALLY: a late or superseded
670
+ // committer loses the create-only CAS and reads the winner, rather than winning a private
671
+ // per-epoch subject of its own that hides the real outcome from everyone else.
602
672
  const subject = goalResultSubject(ctx.space, snap);
603
673
  const res = await publishCreateOnly(ctx.js, subject, new TextEncoder().encode(JSON.stringify(fact)));
604
- const winner = res.won ? fact : await readGoalResult(ctx, snap);
674
+ let winner;
675
+ if (res.won)
676
+ winner = fact;
677
+ else {
678
+ const raw = await readLastFact(ctx.jsm, epfStreamName(ctx.space), subject);
679
+ winner = raw === undefined ? undefined : parseGoalResultFact(raw, subject, snap);
680
+ }
605
681
  if (winner === undefined)
606
682
  throw new EpEnvelopeError("internal", `the goal terminal CAS for ${subject} was lost but no winning fact is readable (SPEC 13.4)`);
607
683
  if (winner.fingerprint !== spec.fingerprint)
608
684
  throw new EpEnvelopeError("internal", `the recorded terminal for goal "${snap.goalId}" carries fingerprint ${JSON.stringify(winner.fingerprint)}, not the accepted spec's ${spec.fingerprint}; a foreign-fingerprint winner is never adopted (SPEC 13.4/13.6)`);
685
+ assertTerminalAttribution(winner, spec, snap.goalId);
609
686
  const status = await projectGoalTerminal(ctx, snap);
610
687
  return { won: res.won, fact: winner, status };
611
688
  }
@@ -733,6 +810,10 @@ export async function commitGoalResult(ctx, args) {
733
810
  const receipts = args.receipts;
734
811
  if (receipts !== undefined)
735
812
  assertEmissionWiring(ctx, receipts);
813
+ const committerIn = args.committer;
814
+ const committer = committerIn === undefined ? undefined : { instanceId: String(committerIn.instanceId), epoch: committerIn.epoch };
815
+ if (committer !== undefined && (committer.instanceId.length === 0 || !Number.isSafeInteger(committer.epoch) || committer.epoch < 0))
816
+ throw new EpEnvelopeError("failed-precondition", `a terminal committer is an instanceId plus an unsigned epoch; got ${JSON.stringify(args.committer)} (SPEC 13.6)`);
736
817
  const cause = args.cause;
737
818
  const dataRaw = args.data;
738
819
  let data;
@@ -789,6 +870,15 @@ export async function commitGoalResult(ctx, args) {
789
870
  const spec = await readGoalSpecLeader(ctx, snap);
790
871
  if (spec === undefined)
791
872
  throw new EpEnvelopeError("failed-precondition", `goal "${snap.goalId}" has no accepted spec; a terminal commits only for an accepted goal (SPEC 13.6)`);
873
+ // Attribution is REQUIRED exactly when the goal was accepted under an epoch, and refused when it
874
+ // was not: an unattributed terminal on an epoch-bearing goal is the anonymous-fact state this
875
+ // rule exists to end, and a committer on a goal with no epoch context is a wiring confusion.
876
+ if ((spec.value.acceptedEpoch !== undefined) !== (committer !== undefined))
877
+ throw new EpEnvelopeError("failed-precondition", spec.value.acceptedEpoch !== undefined
878
+ ? `goal "${snap.goalId}" was accepted under epoch ${spec.value.acceptedEpoch}; its terminal MUST carry the committing instance and epoch (SPEC 13.6)`
879
+ : `goal "${snap.goalId}" was accepted with no epoch context; a terminal committer here is a wiring confusion (SPEC 13.6)`);
880
+ if (committer !== undefined && committer.epoch < spec.value.acceptedEpoch)
881
+ throw new EpEnvelopeError("failed-precondition", `goal "${snap.goalId}" was accepted under epoch ${spec.value.acceptedEpoch} but the committer presents ${committer.epoch}; no incarnation commits under an epoch older than the one that accepted the goal (SPEC 13.1/13.6)`);
792
882
  // The post-commit emission tail every cause routes through: the terminal is already committed
793
883
  // and immutable when this runs, so a runtime emission failure SURFACES on the result instead
794
884
  // of masking the commit (the reconciler converges it); wiring errors refused at entry above.
@@ -807,13 +897,13 @@ export async function commitGoalResult(ctx, args) {
807
897
  // Currency immediately before the terminal CAS — the check is paired with the commit it
808
898
  // fences, never a stale earlier read (SPEC 13.6 item 7).
809
899
  await assertExecutorCurrency(spec.value, snap.goalId, plan.executor, plan.resolver, plan.budget);
810
- return finish(await commitTerminalFact(ctx, snap, spec.value, plan.state, data, now));
900
+ return finish(await commitTerminalFact(ctx, snap, spec.value, plan.state, data, now, committer));
811
901
  }
812
902
  if (plan.cause === "cancel") {
813
903
  const status = await readGoalStatus(ctx, snap);
814
904
  if (status === undefined || status.value.state !== "cancelling")
815
905
  throw new EpEnvelopeError("failed-precondition", `goal "${snap.goalId}" is not \`cancelling\` (state ${status?.value.state ?? "unknown"}); a cancel terminal follows a requested cancel, never a naked assertion (SPEC 13.6)`);
816
- return finish(await commitTerminalFact(ctx, snap, spec.value, "cancelled", data, now));
906
+ return finish(await commitTerminalFact(ctx, snap, spec.value, "cancelled", data, now, committer));
817
907
  }
818
908
  if (plan.cause === "deny") {
819
909
  if (plan.denial.kind === "hold-expired") {
@@ -832,14 +922,14 @@ export async function commitGoalResult(ctx, args) {
832
922
  if (settle === undefined || settle.settle !== "expired")
833
923
  throw new EpEnvelopeError("failed-precondition", `checkpoint "${plan.denial.token}" has no RECORDED expired settlement (${settle === undefined ? "still live" : `settled ${settle.settle}`}); a live or resumed hold never denies (SPEC 13.6)`);
834
924
  }
835
- return finish(await commitTerminalFact(ctx, snap, spec.value, "failed", data, now));
925
+ return finish(await commitTerminalFact(ctx, snap, spec.value, "failed", data, now, committer));
836
926
  }
837
927
  // readiness
838
928
  if (spec.value.readinessDeadlineMs === undefined)
839
929
  throw new EpEnvelopeError("failed-precondition", `goal "${snap.goalId}" declares no readiness deadline; an unbounded goal is never settled uncertain (SPEC 13.6)`);
840
930
  if (now < spec.value.acceptedAt + spec.value.readinessDeadlineMs)
841
931
  throw new EpEnvelopeError("failed-precondition", `goal "${snap.goalId}" is not past its readiness deadline (acceptedAt ${spec.value.acceptedAt} + ${spec.value.readinessDeadlineMs}ms > now ${now}); an early uncertain settle would steal a still-possible success (SPEC 13.6)`);
842
- return finish(await commitTerminalFact(ctx, snap, spec.value, "uncertain", { reason: "the success signal did not arrive within the readiness deadline", readinessDeadlineMs: spec.value.readinessDeadlineMs }, now));
932
+ return finish(await commitTerminalFact(ctx, snap, spec.value, "uncertain", { reason: "the success signal did not arrive within the readiness deadline", readinessDeadlineMs: spec.value.readinessDeadlineMs }, now, committer));
843
933
  }
844
934
  // ---- cancel (§13.6 item 4) --------------------------------------------------------------------
845
935
  /** The reverse-DNS detail kind carrying a goal's cached terminal fact on an error (§13.3). */
@@ -899,7 +989,106 @@ export async function requestGoalCancel(ctx, args) {
899
989
  * REACHABLE (readiness is the owner's deadline, not an executor completion, so no executor is
900
990
  * required). A racing late success that committed first wins and this returns the winner. */
901
991
  export async function settleGoalUncertain(ctx, args) {
902
- return commitGoalResult(ctx, { ref: args.ref, now: args.now, cause: "readiness" });
992
+ return commitGoalResult(ctx, { ref: args.ref, now: args.now, cause: "readiness", ...(args.committer !== undefined ? { committer: args.committer } : {}) });
993
+ }
994
+ function goalIndexKey(ref) {
995
+ return recordAtomicKey(RECORD_KINDS.goalidx, [ref.endpoint, ref.caller.owner, ref.caller.actor, ref.caller.uid, ref.goalId]);
996
+ }
997
+ function goalIndexEntryOf(ref, iid, allocated) {
998
+ // Refuse a hollow floor AT THE WRITE, not only when someone reads it back: an entry naming an
999
+ // empty identity is the exact defect this field exists to end, and letting it land would just
1000
+ // move the failure to whichever unlucky retry reads it.
1001
+ if (allocated !== undefined && !["name", "actor", "uid"].every((k) => typeof allocated[k] === "string" && allocated[k].length > 0))
1002
+ throw new EpEnvelopeError("internal", `the acceptance floor for goal "${ref.goalId}" has an empty component; a hollow identity is never recorded (SPEC 13.6)`);
1003
+ return {
1004
+ v: 1, endpoint: ref.endpoint, owner: ref.caller.owner, actor: ref.caller.actor, uid: ref.caller.uid, goalId: ref.goalId, iid,
1005
+ ...(allocated !== undefined ? { allocated: { name: allocated.name, actor: allocated.actor, uid: allocated.uid } } : {}),
1006
+ };
1007
+ }
1008
+ function parseGoalIndexEntry(raw, key) {
1009
+ if (raw === null || typeof raw !== "object" || Array.isArray(raw))
1010
+ throw new EpEnvelopeError("internal", `goal-index entry ${key} is not an object; garbled reconcile state never authorizes (SPEC 13.6)`);
1011
+ const o = raw;
1012
+ assertClosedKeys(o, ["v", "endpoint", "owner", "actor", "uid", "goalId", "iid", "allocated"], `goal-index entry ${key}`);
1013
+ if (o.v !== 1 || typeof o.endpoint !== "string" || typeof o.owner !== "string" || typeof o.actor !== "string"
1014
+ || typeof o.uid !== "string" || typeof o.goalId !== "string" || typeof o.iid !== "string")
1015
+ throw new EpEnvelopeError("internal", `goal-index entry ${key} is malformed; garbled reconcile state never authorizes (SPEC 13.6)`);
1016
+ if (o.allocated !== undefined) {
1017
+ const a = o.allocated;
1018
+ if (a === null || typeof a !== "object" || Array.isArray(a))
1019
+ throw new EpEnvelopeError("internal", `goal-index entry ${key} carries a malformed acceptance floor; garbled reconcile state never authorizes (SPEC 13.6)`);
1020
+ assertClosedKeys(a, ["name", "actor", "uid"], `goal-index entry ${key} allocated`);
1021
+ // A floor with an EMPTY component is the hollow acceptance this field exists to end: it would
1022
+ // read as a real identity and name nothing. Refuse it as garbled rather than serve it.
1023
+ if (!["name", "actor", "uid"].every((k) => typeof a[k] === "string" && a[k].length > 0))
1024
+ throw new EpEnvelopeError("internal", `goal-index entry ${key} carries an acceptance floor with an empty component; a hollow identity never authorizes (SPEC 13.6)`);
1025
+ }
1026
+ return o;
1027
+ }
1028
+ /** Record an accepted goal in the endpoint's reconcile index, CREATE-ONLY and BEFORE the bind
1029
+ * (must-5 Q-B): the atomicity is `index-CAS-before-bind`, so recoverability is clean either side
1030
+ * of a crash — a crash AFTER this write and BEFORE the bind leaves an index entry whose goal
1031
+ * status is absent (the sweep treats it as a no-goal and clears it); a crash BEFORE it leaves no
1032
+ * entry, so the acceptance was never durable. `iid` is the accepting incarnation's instanceId.
1033
+ * Idempotent for an adopted or concurrent same-goalId retry (a byte-identical pointer). */
1034
+ export async function recordGoalIndex(ctx, ref, iid, allocated) {
1035
+ assertCtx(ctx);
1036
+ const snap = snapshotRef(ref);
1037
+ const key = goalIndexKey(snap);
1038
+ try {
1039
+ await createRecordEntry(ctx.kv, key, goalIndexEntryOf(snap, iid, allocated));
1040
+ return { recorded: true };
1041
+ }
1042
+ catch (e) {
1043
+ if (!(e instanceof EpEnvelopeError && e.code === "conflict"))
1044
+ throw e;
1045
+ // A non-PUT marker is corruption, never reusable absence.
1046
+ const existing = await ctx.kv.get(key);
1047
+ if (!existing || existing.operation !== "PUT")
1048
+ throw new EpEnvelopeError("internal", `goal-index entry ${key} lost its create-only CAS but is absent/deleted; reconcile the store (SPEC 13.6)`);
1049
+ const entry = parseGoalIndexEntry(JSON.parse(new TextDecoder().decode(existing.value)), key);
1050
+ // H2: the loss is only an IDEMPOTENT RETRY when the winner is the same incarnation. A FOREIGN
1051
+ // `iid` means another instance accepted this goalId, which this function must not silently
1052
+ // absorb: the caller was proceeding on the belief that the index points at ITS acceptance, and
1053
+ // it does not. Report the winner instead of deciding — who may be served, and whether a foreign
1054
+ // winner is answerable at all, is the endpoint's policy, not the substrate's.
1055
+ return { recorded: false, existing: entry };
1056
+ }
1057
+ }
1058
+ /** Delete an index entry once its goal is terminal (or after a sweep settles it): a terminal goal
1059
+ * is never reconciled again. Idempotent — an absent entry is a no-op. */
1060
+ export async function clearGoalIndex(ctx, ref) {
1061
+ assertCtx(ctx);
1062
+ await ctx.kv.delete(goalIndexKey(snapshotRef(ref)));
1063
+ }
1064
+ /** Read ONE reconcile-index entry over the goal-writer's own bonded KV — the durable answer to
1065
+ * "who accepted this goalId, and what identity did they allocate for it", available from the
1066
+ * moment of acceptance rather than only once a terminal exists. Absent means no incarnation ever
1067
+ * durably accepted it. */
1068
+ export async function readGoalIndex(ctx, ref) {
1069
+ assertCtx(ctx);
1070
+ const key = goalIndexKey(snapshotRef(ref));
1071
+ const e = await ctx.kv.get(key);
1072
+ if (!e || e.operation !== "PUT")
1073
+ return undefined;
1074
+ return parseGoalIndexEntry(JSON.parse(new TextDecoder().decode(e.value)), key);
1075
+ }
1076
+ /** Enumerate the endpoint's in-flight reconcile index over a RAW records KV: a successor's boot
1077
+ * sweep opens it with the PROVISIONER credential (records CONSUMER.CREATE), never the goal-writer
1078
+ * (which holds no enumeration grant), and settles each unterminal goal so an accepted goal is
1079
+ * never dropped across a manager restart. Returns each recorded GoalRef + the accepting `iid` (the
1080
+ * hook a multi-instance sweep filters on so it never settles a live sibling's goal). */
1081
+ export async function listGoalIndex(kv, endpoint) {
1082
+ const filter = `${RECORD_KINDS.goalidx.kind}.${endpointToken(endpoint)}.>`;
1083
+ const out = [];
1084
+ for await (const key of await kv.keys(filter)) {
1085
+ const e = await kv.get(key);
1086
+ if (!e || e.operation !== "PUT")
1087
+ continue; // deleted/absent since the key listed: terminal already cleared
1088
+ const v = parseGoalIndexEntry(JSON.parse(new TextDecoder().decode(e.value)), key);
1089
+ out.push({ ref: { endpoint: v.endpoint, caller: { owner: v.owner, actor: v.actor, uid: v.uid }, goalId: v.goalId }, iid: v.iid });
1090
+ }
1091
+ return out;
903
1092
  }
904
1093
  // ---- goalId reuse (§13.6 item 5) ---------------------------------------------------------------
905
1094
  /** Classify a resubmission against the recorded bind: same fingerprint = retry (cached), else
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint-action.js","sourceRoot":"","sources":["../src/endpoint-action.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"endpoint-action.js","sourceRoot":"","sources":["../src/endpoint-action.ts"],"names":[],"mappings":"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"}