@cotal-ai/core 0.18.0 → 0.19.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 (93) hide show
  1. package/dist/acls.d.ts +0 -7
  2. package/dist/acls.d.ts.map +1 -1
  3. package/dist/acls.js +10 -7
  4. package/dist/acls.js.map +1 -1
  5. package/dist/agui-kind.d.ts +71 -0
  6. package/dist/agui-kind.d.ts.map +1 -0
  7. package/dist/agui-kind.js +95 -0
  8. package/dist/agui-kind.js.map +1 -0
  9. package/dist/endpoint-action.d.ts +3 -3
  10. package/dist/endpoint-action.js +4 -4
  11. package/dist/endpoint-action.js.map +1 -1
  12. package/dist/endpoint-binding.d.ts +48 -5
  13. package/dist/endpoint-binding.d.ts.map +1 -1
  14. package/dist/endpoint-binding.js +82 -6
  15. package/dist/endpoint-binding.js.map +1 -1
  16. package/dist/endpoint-cluster.d.ts +20 -0
  17. package/dist/endpoint-cluster.d.ts.map +1 -1
  18. package/dist/endpoint-cluster.js +47 -0
  19. package/dist/endpoint-cluster.js.map +1 -1
  20. package/dist/endpoint-effects.d.ts +73 -0
  21. package/dist/endpoint-effects.d.ts.map +1 -0
  22. package/dist/endpoint-effects.js +46 -0
  23. package/dist/endpoint-effects.js.map +1 -0
  24. package/dist/endpoint-envelope.d.ts +32 -1
  25. package/dist/endpoint-envelope.d.ts.map +1 -1
  26. package/dist/endpoint-envelope.js +56 -2
  27. package/dist/endpoint-envelope.js.map +1 -1
  28. package/dist/endpoint-epname.d.ts +62 -0
  29. package/dist/endpoint-epname.d.ts.map +1 -0
  30. package/dist/endpoint-epname.js +273 -0
  31. package/dist/endpoint-epname.js.map +1 -0
  32. package/dist/endpoint-error.d.ts +155 -1
  33. package/dist/endpoint-error.d.ts.map +1 -1
  34. package/dist/endpoint-error.js +114 -2
  35. package/dist/endpoint-error.js.map +1 -1
  36. package/dist/endpoint-goaleff.d.ts +56 -0
  37. package/dist/endpoint-goaleff.d.ts.map +1 -0
  38. package/dist/endpoint-goaleff.js +212 -0
  39. package/dist/endpoint-goaleff.js.map +1 -0
  40. package/dist/endpoint-grants.d.ts +31 -0
  41. package/dist/endpoint-grants.d.ts.map +1 -1
  42. package/dist/endpoint-grants.js +47 -0
  43. package/dist/endpoint-grants.js.map +1 -1
  44. package/dist/endpoint-invoke.d.ts +1 -1
  45. package/dist/endpoint-invoke.d.ts.map +1 -1
  46. package/dist/endpoint-invoke.js +89 -7
  47. package/dist/endpoint-invoke.js.map +1 -1
  48. package/dist/endpoint-journal.d.ts +103 -0
  49. package/dist/endpoint-journal.d.ts.map +1 -1
  50. package/dist/endpoint-journal.js +290 -0
  51. package/dist/endpoint-journal.js.map +1 -1
  52. package/dist/endpoint-records.d.ts.map +1 -1
  53. package/dist/endpoint-records.js +37 -0
  54. package/dist/endpoint-records.js.map +1 -1
  55. package/dist/endpoint-serve.d.ts.map +1 -1
  56. package/dist/endpoint-serve.js +45 -1
  57. package/dist/endpoint-serve.js.map +1 -1
  58. package/dist/endpoint-verbs.d.ts +12 -3
  59. package/dist/endpoint-verbs.d.ts.map +1 -1
  60. package/dist/endpoint-verbs.js +113 -19
  61. package/dist/endpoint-verbs.js.map +1 -1
  62. package/dist/endpoint.d.ts +149 -6
  63. package/dist/endpoint.d.ts.map +1 -1
  64. package/dist/endpoint.js +330 -14
  65. package/dist/endpoint.js.map +1 -1
  66. package/dist/event-channel.d.ts +107 -0
  67. package/dist/event-channel.d.ts.map +1 -0
  68. package/dist/event-channel.js +139 -0
  69. package/dist/event-channel.js.map +1 -0
  70. package/dist/index.d.ts +5 -0
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +5 -0
  73. package/dist/index.js.map +1 -1
  74. package/dist/membership-feed.d.ts.map +1 -1
  75. package/dist/membership-feed.js +35 -12
  76. package/dist/membership-feed.js.map +1 -1
  77. package/dist/parts.d.ts +29 -5
  78. package/dist/parts.d.ts.map +1 -1
  79. package/dist/parts.js +46 -3
  80. package/dist/parts.js.map +1 -1
  81. package/dist/provision.d.ts +1 -1
  82. package/dist/resolve.d.ts.map +1 -1
  83. package/dist/resolve.js +38 -0
  84. package/dist/resolve.js.map +1 -1
  85. package/dist/streams.d.ts +27 -3
  86. package/dist/streams.d.ts.map +1 -1
  87. package/dist/streams.js +28 -4
  88. package/dist/streams.js.map +1 -1
  89. package/dist/subjects.d.ts +42 -0
  90. package/dist/subjects.d.ts.map +1 -1
  91. package/dist/subjects.js +117 -0
  92. package/dist/subjects.js.map +1 -1
  93. package/package.json +5 -2
@@ -0,0 +1,56 @@
1
+ export type GoalEffPhase = "claimed" | "launching" | "launched" | "settled";
2
+ export interface GoalEffExecutor {
3
+ instanceId: string;
4
+ processEpoch: number;
5
+ }
6
+ export interface GoalEffAddr {
7
+ nameToken: string;
8
+ lifecycleUid: string;
9
+ }
10
+ interface GoalEffCommon {
11
+ v: 1;
12
+ executor: GoalEffExecutor;
13
+ attemptId: string;
14
+ ts: number;
15
+ }
16
+ export type GoalEffRow = (GoalEffCommon & {
17
+ phase: "claimed";
18
+ }) | (GoalEffCommon & {
19
+ phase: "launching";
20
+ addr: GoalEffAddr;
21
+ }) | (GoalEffCommon & {
22
+ phase: "launched";
23
+ addr: GoalEffAddr;
24
+ }) | (GoalEffCommon & {
25
+ phase: "settled";
26
+ addr?: GoalEffAddr;
27
+ });
28
+ /** Who is taking the edge. A sweeper acts for an executor that is GONE — which is exactly why it
29
+ * may only settle: advancing a launch phase on a dead executor's behalf is the split-brain the
30
+ * election exists to prevent, and it is indistinguishable in the row from the executor doing it. */
31
+ export type GoalEffActor = {
32
+ role: "executor";
33
+ executor: GoalEffExecutor;
34
+ attemptId: string;
35
+ } | {
36
+ role: "sweeper";
37
+ };
38
+ /** Parse a row from CURRENT BYTES — never from a prior in-memory value. The `settled` variant is
39
+ * the one that cannot be validated any other way: both of its shapes are legal and nothing in the
40
+ * bytes distinguishes them, which is acceptable precisely because nothing downstream branches on
41
+ * it. The address is for repair, and a settled row needs no repair. */
42
+ export declare function parseGoalEff(value: unknown): GoalEffRow;
43
+ /**
44
+ * Validate a transition against § S1: the edge exists, the actor is entitled to take it, and the
45
+ * immutable fields did not move. Throws on any violation; returns nothing on success.
46
+ *
47
+ * `terminalExists` gates every settle. It is a REQUIRED argument rather than an assumed
48
+ * precondition because a settle whose terminal has not been written is precisely the goal that
49
+ * looks finished and is not — and a gate the caller can satisfy by forgetting to mention it is not
50
+ * a gate.
51
+ */
52
+ export declare function assertGoalEffEdge(prev: GoalEffRow, next: GoalEffRow, actor: GoalEffActor, opts: {
53
+ terminalExists: boolean;
54
+ }): void;
55
+ export {};
56
+ //# sourceMappingURL=endpoint-goaleff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint-goaleff.d.ts","sourceRoot":"","sources":["../src/endpoint-goaleff.ts"],"names":[],"mappings":"AA4BA,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,CAAC;AAE5E,MAAM,WAAW,eAAe;IAAG,UAAU,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE;AAC7E,MAAM,WAAW,WAAW;IAAG,SAAS,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE;AAExE,UAAU,aAAa;IACrB,CAAC,EAAE,CAAC,CAAC;IACL,QAAQ,EAAE,eAAe,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,MAAM,UAAU,GAClB,CAAC,aAAa,GAAG;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC,GACtC,CAAC,aAAa,GAAG;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC,GAC3D,CAAC,aAAa,GAAG;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC,GAC1D,CAAC,aAAa,GAAG;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,WAAW,CAAA;CAAE,CAAC,CAAC;AAE/D;;qGAEqG;AACrG,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,eAAe,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAClE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC;AAiDxB;;;wEAGwE;AACxE,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAoCvD;AAiCD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE;IAAE,cAAc,EAAE,OAAO,CAAA;CAAE,GAChC,IAAI,CA4DN"}
@@ -0,0 +1,212 @@
1
+ /**
2
+ * `goaleff` — the at-most-one-launch election (SPEC §13.4 effects; the closed machine).
3
+ *
4
+ * The row is the durable answer to "has this accepted goal already been launched, and by whom",
5
+ * and it is the ONLY thing standing between an at-least-once effects durable and two processes for
6
+ * one acceptance. A shared durable redelivers; two handlers on the same executor can be live at
7
+ * once; a winner's reply can be dropped and its re-read is byte-identical to what it would have
8
+ * written. None of that is detectable from the payload — it is detectable only from this row.
9
+ *
10
+ * TWO PROPERTIES, AND THEY FAIL DIFFERENTLY.
11
+ *
12
+ * 1. The SHAPE is per-phase. Each phase names the complete set of fields legal in it; unknown and
13
+ * missing fields are both refused. A single broad object with `addr?` cannot express the rule,
14
+ * because `claimed → settled` is legal: require `addr` on `settled` and that edge becomes
15
+ * unrepresentable, allow it absent and "an address, once you have one, is carried forward"
16
+ * stops being checkable. `settled.addr` is therefore OPTIONAL BUT DETERMINED — present iff the
17
+ * row passed through `launching`.
18
+ *
19
+ * 2. The MOVEMENT is a table, and a revision-CAS does not enforce it. A CAS prevents two writers
20
+ * moving one row concurrently. It says nothing at all about WHAT the winner writes: the same
21
+ * CAS admits `launching → launched` with a different `executor`, a different `attemptId`, or a
22
+ * re-pointed `addr`. An "exhaustive" edge list is fully satisfied by a row that changed hands
23
+ * mid-flight. So `v`, `executor` and `attemptId` are immutable after creation on EVERY edge,
24
+ * `addr` is immutable once written, and these are byte comparisons against the pinned
25
+ * revision rather than advisory rules.
26
+ */
27
+ import { EpEnvelopeError } from "./endpoint-error.js";
28
+ function fail(message) {
29
+ throw new EpEnvelopeError("bad-request", `goaleff: ${message}`);
30
+ }
31
+ const COMMON_FIELDS = ["v", "executor", "attemptId", "ts", "phase"];
32
+ /** The COMPLETE legal field set per phase. Extra and missing are both refused, and the two are
33
+ * reported separately: an unknown field is a writer speaking a different dialect, a missing one
34
+ * is a writer speaking this one badly, and an operator who cannot tell them apart cannot tell a
35
+ * version skew from a bug. */
36
+ const PHASE_FIELDS = {
37
+ claimed: COMMON_FIELDS,
38
+ launching: [...COMMON_FIELDS, "addr"],
39
+ launched: [...COMMON_FIELDS, "addr"],
40
+ settled: [...COMMON_FIELDS, "addr"], // `addr` optional here, and ONLY here
41
+ };
42
+ const ADDR_REQUIRED = {
43
+ claimed: false, launching: true, launched: true, settled: false,
44
+ };
45
+ // There is no ADDR_FORBIDDEN table. `claimed` is the only phase that forbids `addr`, and it forbids
46
+ // it by not listing it in PHASE_FIELDS — so the unknown-field check above has already refused it,
47
+ // with a better message, before any such table could be consulted. A second check for the same case
48
+ // would never once execute.
49
+ function parseExecutor(v) {
50
+ if (typeof v !== "object" || v === null || Array.isArray(v))
51
+ fail("`executor` must be an object");
52
+ const o = v;
53
+ const extra = Object.keys(o).filter((k) => k !== "instanceId" && k !== "processEpoch");
54
+ if (extra.length > 0)
55
+ fail(`unknown field(s) on \`executor\`: ${extra.join(", ")}`);
56
+ if (typeof o.instanceId !== "string" || o.instanceId.length === 0)
57
+ fail("`executor.instanceId` must be a non-empty string");
58
+ if (typeof o.processEpoch !== "number" || !Number.isSafeInteger(o.processEpoch) || o.processEpoch < 0)
59
+ fail("`executor.processEpoch` must be a non-negative safe integer");
60
+ return { instanceId: o.instanceId, processEpoch: o.processEpoch };
61
+ }
62
+ function parseAddr(v) {
63
+ if (typeof v !== "object" || v === null || Array.isArray(v))
64
+ fail("`addr` must be an object");
65
+ const o = v;
66
+ const extra = Object.keys(o).filter((k) => k !== "nameToken" && k !== "lifecycleUid");
67
+ if (extra.length > 0)
68
+ fail(`unknown field(s) on \`addr\`: ${extra.join(", ")}`);
69
+ if (typeof o.nameToken !== "string" || o.nameToken.length === 0)
70
+ fail("`addr.nameToken` must be a non-empty string");
71
+ if (typeof o.lifecycleUid !== "string" || o.lifecycleUid.length === 0)
72
+ fail("`addr.lifecycleUid` must be a non-empty string");
73
+ return { nameToken: o.nameToken, lifecycleUid: o.lifecycleUid };
74
+ }
75
+ /** Parse a row from CURRENT BYTES — never from a prior in-memory value. The `settled` variant is
76
+ * the one that cannot be validated any other way: both of its shapes are legal and nothing in the
77
+ * bytes distinguishes them, which is acceptable precisely because nothing downstream branches on
78
+ * it. The address is for repair, and a settled row needs no repair. */
79
+ export function parseGoalEff(value) {
80
+ if (typeof value !== "object" || value === null || Array.isArray(value))
81
+ fail("row must be a JSON object");
82
+ const o = value;
83
+ const phase = o.phase;
84
+ // `Object.hasOwn`, NOT `in`: the `in` operator walks the PROTOTYPE CHAIN, so a row whose
85
+ // discriminant is `toString`, `constructor` or `hasOwnProperty` passed this test and then
86
+ // crashed with an uncontrolled TypeError instead of the declared bad-request refusal. An
87
+ // attacker-supplied string reaching a plain-object lookup is exactly where that matters.
88
+ if (typeof phase !== "string" || !Object.hasOwn(PHASE_FIELDS, phase))
89
+ fail(`unknown phase ${JSON.stringify(phase)} — the legal set is claimed|launching|launched|settled`);
90
+ const p = phase;
91
+ const legal = PHASE_FIELDS[p];
92
+ const unknown = Object.keys(o).filter((k) => !legal.includes(k));
93
+ if (unknown.length > 0)
94
+ fail(`unknown field(s) for phase ${p}: ${unknown.join(", ")} — each phase names the COMPLETE legal set`);
95
+ if (o.v !== 1)
96
+ fail("`v` must be exactly 1");
97
+ if (typeof o.attemptId !== "string" || o.attemptId.length === 0)
98
+ fail("`attemptId` must be a non-empty string");
99
+ if (typeof o.ts !== "number" || !Number.isSafeInteger(o.ts))
100
+ fail("`ts` must be a safe integer");
101
+ const executor = parseExecutor(o.executor);
102
+ const hasAddr = "addr" in o && o.addr !== undefined;
103
+ if (ADDR_REQUIRED[p] && !hasAddr)
104
+ fail(`phase ${p} REQUIRES \`addr\``);
105
+ const common = { v: 1, executor, attemptId: o.attemptId, ts: o.ts };
106
+ if (p === "claimed")
107
+ return { ...common, phase: "claimed" };
108
+ if (p === "launching")
109
+ return { ...common, phase: "launching", addr: parseAddr(o.addr) };
110
+ if (p === "launched")
111
+ return { ...common, phase: "launched", addr: parseAddr(o.addr) };
112
+ return hasAddr
113
+ ? { ...common, phase: "settled", addr: parseAddr(o.addr) }
114
+ : { ...common, phase: "settled" };
115
+ }
116
+ /** The § S1 edge table. `settled` is absent as a source: it is terminal, and its absence here IS
117
+ * the terminality rule rather than a separate check that could disagree with it. */
118
+ const EDGES = {
119
+ claimed: [
120
+ { to: "launching", sweeperMay: false },
121
+ { to: "settled", sweeperMay: true },
122
+ ],
123
+ launching: [
124
+ { to: "launched", sweeperMay: false },
125
+ { to: "settled", sweeperMay: true },
126
+ ],
127
+ launched: [
128
+ { to: "settled", sweeperMay: true },
129
+ ],
130
+ };
131
+ function sameExecutor(a, b) {
132
+ return a.instanceId === b.instanceId && a.processEpoch === b.processEpoch;
133
+ }
134
+ /** The first argument is REQUIRED, and that is not a style choice: the only call site is inside the
135
+ * branch where `prevAddr === undefined` is already false, so the both-undefined and first-undefined
136
+ * cases were unreachable. They read as protection and covered nothing — the fourth such guard found
137
+ * in this file, and the first found by someone other than its author. */
138
+ function sameAddr(a, b) {
139
+ if (b === undefined)
140
+ return false;
141
+ return a.nameToken === b.nameToken && a.lifecycleUid === b.lifecycleUid;
142
+ }
143
+ function addrOf(r) {
144
+ return r.phase === "claimed" ? undefined : r.addr;
145
+ }
146
+ /**
147
+ * Validate a transition against § S1: the edge exists, the actor is entitled to take it, and the
148
+ * immutable fields did not move. Throws on any violation; returns nothing on success.
149
+ *
150
+ * `terminalExists` gates every settle. It is a REQUIRED argument rather than an assumed
151
+ * precondition because a settle whose terminal has not been written is precisely the goal that
152
+ * looks finished and is not — and a gate the caller can satisfy by forgetting to mention it is not
153
+ * a gate.
154
+ */
155
+ export function assertGoalEffEdge(prev, next, actor, opts) {
156
+ const from = prev.phase, to = next.phase;
157
+ const legal = EDGES[from];
158
+ if (legal === undefined)
159
+ fail(`\`${from}\` is TERMINAL — no edge leaves it (attempted ${from} → ${to})`);
160
+ const edge = legal.find((e) => e.to === to);
161
+ if (edge === undefined)
162
+ fail(`${from} → ${to} is not a legal edge; from \`${from}\` the legal set is ${legal.map((e) => e.to).join(", ")}`);
163
+ // CLOSED AT RUNTIME. The union is a compile-time claim about callers this module does not
164
+ // have yet; an unknown role fell through both branches below and was ACCEPTED, which is the
165
+ // most permissive possible answer to "who are you". Refuse first, then discriminate.
166
+ if (actor.role !== "sweeper" && actor.role !== "executor")
167
+ fail(`unknown actor role ${JSON.stringify(actor.role)} — the legal set is executor|sweeper`);
168
+ if (actor.role === "sweeper" && !edge.sweeperMay)
169
+ fail(`a sweeper may only settle — it may never advance a launch phase (attempted ${from} → ${to}) `
170
+ + `on behalf of an executor it believes is gone`);
171
+ if (actor.role === "executor") {
172
+ if (!sameExecutor(actor.executor, prev.executor))
173
+ fail(`the acting executor is not the row's executor: row ${JSON.stringify(prev.executor)}, actor ${JSON.stringify(actor.executor)}`);
174
+ if (actor.attemptId !== prev.attemptId)
175
+ fail(`the acting attemptId ${JSON.stringify(actor.attemptId)} is not the row's ${JSON.stringify(prev.attemptId)} — `
176
+ + `a re-read that finds a FOREIGN nonce is a loss, never a licence to proceed`);
177
+ }
178
+ if (to === "settled" && !opts.terminalExists)
179
+ fail("a settle requires the terminal to exist FIRST — settling without one publishes a finished goal that never finished");
180
+ // IMMUTABILITY, checked as comparisons and not as documentation. The revision-CAS that got us
181
+ // here proves nobody moved the row concurrently; it proves nothing about what this writer wrote.
182
+ //
183
+ // `v` IS DELIBERATELY NOT CHECKED HERE, and its absence is the point. Both arguments are
184
+ // `GoalEffRow`, which means both came through `parseGoalEff`, which refuses anything but `v: 1`.
185
+ // A `next.v !== prev.v` comparison at this point can never be true — it would be a guard that
186
+ // reads as protection and has no case that reaches it, which is worse than no guard, because a
187
+ // later reader counts it as covering something. § S1's immutability rule for `v` is enforced,
188
+ // once, by the parser refusing every other value.
189
+ if (!sameExecutor(next.executor, prev.executor))
190
+ fail(`\`executor\` is immutable after creation: ${JSON.stringify(prev.executor)} → ${JSON.stringify(next.executor)} `
191
+ + `would hand the election to a different process while taking an otherwise-legal edge`);
192
+ if (next.attemptId !== prev.attemptId)
193
+ fail(`\`attemptId\` is immutable after creation: ${JSON.stringify(prev.attemptId)} → ${JSON.stringify(next.attemptId)}`);
194
+ const prevAddr = addrOf(prev), nextAddr = addrOf(next);
195
+ if (prevAddr === undefined) {
196
+ // No address yet. It may be SET on `claimed → launching` — and only there. A settle out of
197
+ // `claimed` never had one and must not invent one: an address on a row that never launched
198
+ // names something that does not exist.
199
+ // `claimed → launching` MUST set `addr`, and that is enforced by the parser rather than here:
200
+ // a `launching` row without one is not a `GoalEffRow` at all. The edge case that IS reachable
201
+ // is the other one below — a settle out of `claimed` inventing an address, which parses fine
202
+ // because `settled.addr` is legal, and is wrong because this row never launched.
203
+ if (to !== "launching" && nextAddr !== undefined) {
204
+ fail(`\`addr\` must stay ABSENT on ${from} → ${to}: this row never passed through \`launching\`, `
205
+ + `so there is no address it could be carrying`);
206
+ }
207
+ }
208
+ else if (!sameAddr(prevAddr, nextAddr)) {
209
+ fail(`\`addr\` is immutable once written: ${JSON.stringify(prevAddr)} → ${JSON.stringify(nextAddr)}`);
210
+ }
211
+ }
212
+ //# sourceMappingURL=endpoint-goaleff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint-goaleff.js","sourceRoot":"","sources":["../src/endpoint-goaleff.ts"],"names":[],"mappings":"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"}
@@ -82,6 +82,37 @@ export declare const MANAGER_ADMIN_COMMANDS: readonly ["purge", "launch", "resum
82
82
  * per-goal live-progress read for that endpoint ({@link epGoalProgressGrantRow}), the one read an
83
83
  * invoke DOES imply because it is bounded to the caller's OWN goal subtree. */
84
84
  export declare const GOAL_BEARING_COMMANDS: readonly ["spawn", "launch"];
85
+ /** RETRY SAFETY (§13.2): commands a client may execute a SECOND time after a responded-but-unbound
86
+ * split, because a second execution is observably indistinguishable from one. Read only by
87
+ * {@link isRepeatSafeCommand}, for `Endpoint.invokeService`.
88
+ *
89
+ * An allowlist rather than a denylist so it fails CLOSED: an unclassified command surfaces the
90
+ * split to its caller instead of running twice. A denylist would auto-retry the next admin command
91
+ * someone adds above, silently.
92
+ *
93
+ * Keyed by endpoint, not by bare command name, because `invokeService` is endpoint-agnostic: a
94
+ * flat name list would hand a third-party endpoint's `list` or `ps` a judgement made about the
95
+ * manager's. An unknown endpoint has no repeat-safe commands.
96
+ *
97
+ * Written out literally rather than derived from {@link MANAGER_READ_COMMANDS}, because retry
98
+ * safety and grant tiers answer different questions and must be able to disagree. `models` is the
99
+ * case that forces it: it reads a catalog unless called with `{refresh: true}`, which shells out
100
+ * and rewrites a cache, so the answer turns on an ARGUMENT this table cannot see. Per-command
101
+ * argument rules here would be the fail-open shape again, so `models` is simply not listed.
102
+ * Convergence is not sufficient either: `despawn` converges, but its second run despawns whatever
103
+ * now holds the name.
104
+ *
105
+ * **THIS TABLE MUST NOT SURVIVE `protocol.v: 2`.** §13.7 `effect` is the command author's own
106
+ * declaration, and allowlist-says-safe could then contradict author-declares-`write`. It cannot
107
+ * reach the wire in this tree — `endpoint-serve.ts` pins the descriptor to `v: { const: 1 }` — so
108
+ * this table stands in for a field no responder here can emit rather than competing with one, and
109
+ * it derives nothing from a descriptor, which is the part §13.7 forbids. `smoke:unfenced-responder`
110
+ * tripwires that pin so the version cannot move without this table being named. */
111
+ export declare const REPEAT_SAFE_COMMANDS: Readonly<Record<string, readonly string[]>>;
112
+ /** True only for a command whose re-execution is observably harmless on THAT endpoint
113
+ * ({@link REPEAT_SAFE_COMMANDS}). An unknown endpoint, or an unlisted command, is not repeat-safe:
114
+ * the intended default, not an oversight. */
115
+ export declare function isRepeatSafeCommand(endpoint: string, command: string): boolean;
85
116
  /** `describe` on ALL endpoints (Appendix B / §13.9 "describe by default"): the ONE
86
117
  * subject-wildcard request form in the caller grammar,
87
118
  * `ep.one.*.describe.<cO>.<cA>.<cUid>.*` — the endpoint token is the wildcard, the command is
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint-grants.d.ts","sourceRoot":"","sources":["../src/endpoint-grants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"endpoint-grants.d.ts","sourceRoot":"","sources":["../src/endpoint-grants.ts"],"names":[],"mappings":"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"}
@@ -145,6 +145,53 @@ export const MANAGER_ADMIN_COMMANDS = Object.freeze([
145
145
  * invoke DOES imply because it is bounded to the caller's OWN goal subtree. */
146
146
  export const GOAL_BEARING_COMMANDS = Object.freeze(["spawn", "launch"]);
147
147
  const GOAL_BEARING_SET = new Set(GOAL_BEARING_COMMANDS);
148
+ /** RETRY SAFETY (§13.2): commands a client may execute a SECOND time after a responded-but-unbound
149
+ * split, because a second execution is observably indistinguishable from one. Read only by
150
+ * {@link isRepeatSafeCommand}, for `Endpoint.invokeService`.
151
+ *
152
+ * An allowlist rather than a denylist so it fails CLOSED: an unclassified command surfaces the
153
+ * split to its caller instead of running twice. A denylist would auto-retry the next admin command
154
+ * someone adds above, silently.
155
+ *
156
+ * Keyed by endpoint, not by bare command name, because `invokeService` is endpoint-agnostic: a
157
+ * flat name list would hand a third-party endpoint's `list` or `ps` a judgement made about the
158
+ * manager's. An unknown endpoint has no repeat-safe commands.
159
+ *
160
+ * Written out literally rather than derived from {@link MANAGER_READ_COMMANDS}, because retry
161
+ * safety and grant tiers answer different questions and must be able to disagree. `models` is the
162
+ * case that forces it: it reads a catalog unless called with `{refresh: true}`, which shells out
163
+ * and rewrites a cache, so the answer turns on an ARGUMENT this table cannot see. Per-command
164
+ * argument rules here would be the fail-open shape again, so `models` is simply not listed.
165
+ * Convergence is not sufficient either: `despawn` converges, but its second run despawns whatever
166
+ * now holds the name.
167
+ *
168
+ * **THIS TABLE MUST NOT SURVIVE `protocol.v: 2`.** §13.7 `effect` is the command author's own
169
+ * declaration, and allowlist-says-safe could then contradict author-declares-`write`. It cannot
170
+ * reach the wire in this tree — `endpoint-serve.ts` pins the descriptor to `v: { const: 1 }` — so
171
+ * this table stands in for a field no responder here can emit rather than competing with one, and
172
+ * it derives nothing from a descriptor, which is the part §13.7 forbids. `smoke:unfenced-responder`
173
+ * tripwires that pin so the version cannot move without this table being named. */
174
+ export const REPEAT_SAFE_COMMANDS = Object.freeze({
175
+ [BASELINE_LIFECYCLE_ENDPOINT]: Object.freeze(["status", "ps", "inspect"]),
176
+ [BASELINE_DELIVERY_ENDPOINT]: Object.freeze(["list"]),
177
+ });
178
+ /** `describe` is a read on every endpoint by construction, so it is repeat-safe without one: no
179
+ * handler can be attached to it (`serveEndpoint` throws on any def naming it, and a cluster
180
+ * document declaring it is invalid at registration), and the machinery builds the answer. The
181
+ * residual: it is authorization-scoped, so a future `describe` that consumed a grant or quota
182
+ * would be a write and this line would be wrong. */
183
+ const REPEAT_SAFE_ANY_ENDPOINT = "describe";
184
+ // PRIVATE module-load snapshot: the predicate reads THIS, never the live export, so a post-import
185
+ // mutation of the exported table cannot widen what the client is willing to run twice.
186
+ const REPEAT_SAFE_SNAP = new Map(Object.entries(REPEAT_SAFE_COMMANDS).map(([endpoint, commands]) => [endpoint, new Set(commands)]));
187
+ /** True only for a command whose re-execution is observably harmless on THAT endpoint
188
+ * ({@link REPEAT_SAFE_COMMANDS}). An unknown endpoint, or an unlisted command, is not repeat-safe:
189
+ * the intended default, not an oversight. */
190
+ export function isRepeatSafeCommand(endpoint, command) {
191
+ if (command === REPEAT_SAFE_ANY_ENDPOINT)
192
+ return true;
193
+ return REPEAT_SAFE_SNAP.get(endpoint)?.has(command) === true;
194
+ }
148
195
  // PRIVATE module-load snapshots of the command vocabularies: the builders below map over THESE,
149
196
  // never the live exports, so the minted surface survives even a hypothetical defeat of the
150
197
  // freezes above (the seam-snapshot half of the afa715b closure pattern).
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint-grants.js","sourceRoot":"","sources":["../src/endpoint-grants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"endpoint-grants.js","sourceRoot":"","sources":["../src/endpoint-grants.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { NatsConnection } from "@nats-io/transport-node";
1
+ import { type NatsConnection } from "@nats-io/transport-node";
2
2
  import { type CompiledContract } from "./schema-profile.js";
3
3
  import { type EpCaller } from "./endpoint-subjects.js";
4
4
  import type { EpVerbTarget, EpAttributedReply, EpScatterResult } from "./endpoint-verbs.js";
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint-invoke.d.ts","sourceRoot":"","sources":["../src/endpoint-invoke.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"endpoint-invoke.d.ts","sourceRoot":"","sources":["../src/endpoint-invoke.ts"],"names":[],"mappings":"AAmBA,OAAO,EAA4B,KAAK,cAAc,EAAqB,MAAM,yBAAyB,CAAC;AAG3G,OAAO,EAAmB,KAAK,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAQ7E,OAAO,EAAyD,KAAK,QAAQ,EAAgB,MAAM,wBAAwB,CAAC;AAE5H,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAK5F;oGACoG;AACpG,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE;QAAE,KAAK,EAAE,gBAAgB,CAAC;QAAC,MAAM,EAAE,gBAAgB,CAAA;KAAE,CAAC;IAChE,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;2FAK2F;AAC3F,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,QAAQ,CAAC;IACjB,SAAS,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACjD,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACvC;;wGAEoG;IACpG,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,cAAc,EAClB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,QAAQ,EAChB,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GACtD,OAAO,CAAC;IAAE,MAAM,EAAE,cAAc,CAAC;IAAC,SAAS,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC,CAmGvF;AA+ED,2FAA2F;AAC3F,UAAU,cAAc;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;SAAE,EAAE,CAAA;KAAE,CAAC;CACrG;AAED;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAClC,EAAE,EAAE,cAAc,EAClB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,QAAQ,EAChB,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GACtD,OAAO,CAAC,eAAe,CAAC,CAoC1B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,aAAa,CACjC,EAAE,EAAE,cAAc,EAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACzC,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,YAAY,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;CAAE,GACpH,OAAO,CAAC,iBAAiB,CAAC,CA2E5B;AAED;;;;;;;;;kFASkF;AAClF,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,cAAc,EAClB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,QAAQ,EAChB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,GACvC,OAAO,CAAC,iBAAiB,CAAC,CAuC5B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,cAAc,CAClC,EAAE,EAAE,cAAc,EAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACzC,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/E,OAAO,CAAC,eAAe,CAAC,CAuB1B;AAED,iGAAiG;AACjG,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE1D"}