@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.
- package/dist/acls.d.ts +0 -7
- package/dist/acls.d.ts.map +1 -1
- package/dist/acls.js +10 -7
- package/dist/acls.js.map +1 -1
- package/dist/agui-kind.d.ts +71 -0
- package/dist/agui-kind.d.ts.map +1 -0
- package/dist/agui-kind.js +95 -0
- package/dist/agui-kind.js.map +1 -0
- package/dist/endpoint-action.d.ts +3 -3
- package/dist/endpoint-action.js +4 -4
- package/dist/endpoint-action.js.map +1 -1
- package/dist/endpoint-binding.d.ts +48 -5
- package/dist/endpoint-binding.d.ts.map +1 -1
- package/dist/endpoint-binding.js +82 -6
- package/dist/endpoint-binding.js.map +1 -1
- package/dist/endpoint-cluster.d.ts +20 -0
- package/dist/endpoint-cluster.d.ts.map +1 -1
- package/dist/endpoint-cluster.js +47 -0
- package/dist/endpoint-cluster.js.map +1 -1
- package/dist/endpoint-effects.d.ts +73 -0
- package/dist/endpoint-effects.d.ts.map +1 -0
- package/dist/endpoint-effects.js +46 -0
- package/dist/endpoint-effects.js.map +1 -0
- package/dist/endpoint-envelope.d.ts +32 -1
- package/dist/endpoint-envelope.d.ts.map +1 -1
- package/dist/endpoint-envelope.js +56 -2
- package/dist/endpoint-envelope.js.map +1 -1
- package/dist/endpoint-epname.d.ts +62 -0
- package/dist/endpoint-epname.d.ts.map +1 -0
- package/dist/endpoint-epname.js +273 -0
- package/dist/endpoint-epname.js.map +1 -0
- package/dist/endpoint-error.d.ts +155 -1
- package/dist/endpoint-error.d.ts.map +1 -1
- package/dist/endpoint-error.js +114 -2
- package/dist/endpoint-error.js.map +1 -1
- package/dist/endpoint-goaleff.d.ts +56 -0
- package/dist/endpoint-goaleff.d.ts.map +1 -0
- package/dist/endpoint-goaleff.js +212 -0
- package/dist/endpoint-goaleff.js.map +1 -0
- package/dist/endpoint-grants.d.ts +31 -0
- package/dist/endpoint-grants.d.ts.map +1 -1
- package/dist/endpoint-grants.js +47 -0
- package/dist/endpoint-grants.js.map +1 -1
- package/dist/endpoint-invoke.d.ts +1 -1
- package/dist/endpoint-invoke.d.ts.map +1 -1
- package/dist/endpoint-invoke.js +89 -7
- package/dist/endpoint-invoke.js.map +1 -1
- package/dist/endpoint-journal.d.ts +103 -0
- package/dist/endpoint-journal.d.ts.map +1 -1
- package/dist/endpoint-journal.js +290 -0
- package/dist/endpoint-journal.js.map +1 -1
- package/dist/endpoint-records.d.ts.map +1 -1
- package/dist/endpoint-records.js +37 -0
- package/dist/endpoint-records.js.map +1 -1
- package/dist/endpoint-serve.d.ts.map +1 -1
- package/dist/endpoint-serve.js +45 -1
- package/dist/endpoint-serve.js.map +1 -1
- package/dist/endpoint-verbs.d.ts +12 -3
- package/dist/endpoint-verbs.d.ts.map +1 -1
- package/dist/endpoint-verbs.js +113 -19
- package/dist/endpoint-verbs.js.map +1 -1
- package/dist/endpoint.d.ts +149 -6
- package/dist/endpoint.d.ts.map +1 -1
- package/dist/endpoint.js +330 -14
- package/dist/endpoint.js.map +1 -1
- package/dist/event-channel.d.ts +107 -0
- package/dist/event-channel.d.ts.map +1 -0
- package/dist/event-channel.js +139 -0
- package/dist/event-channel.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/membership-feed.d.ts.map +1 -1
- package/dist/membership-feed.js +35 -12
- package/dist/membership-feed.js.map +1 -1
- package/dist/parts.d.ts +29 -5
- package/dist/parts.d.ts.map +1 -1
- package/dist/parts.js +46 -3
- package/dist/parts.js.map +1 -1
- package/dist/provision.d.ts +1 -1
- package/dist/resolve.d.ts.map +1 -1
- package/dist/resolve.js +38 -0
- package/dist/resolve.js.map +1 -1
- package/dist/streams.d.ts +27 -3
- package/dist/streams.d.ts.map +1 -1
- package/dist/streams.js +28 -4
- package/dist/streams.js.map +1 -1
- package/dist/subjects.d.ts +42 -0
- package/dist/subjects.d.ts.map +1 -1
- package/dist/subjects.js +117 -0
- package/dist/subjects.js.map +1 -1
- 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":"AAaA,OAAO,EAEL,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAE7B,MAAM,wBAAwB,CAAC;AAEhC;;;;;;;iEAOiE;AACjE,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,mFAAmF;IACnF,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAwBD;;2FAE2F;AAC3F,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,GAAG,MAAM,EAAE,CAS/F;AAED;+FAC+F;AAC/F,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,GAAG,MAAM,CAG5F;AAED,kGAAkG;AAClG,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,MAAM,CAE7E;AAED;;wFAEwF;AACxF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,MAAM,CAEhG;AAED;;;;;;;;;wDASwD;AACxD,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,YAAY,EAAE,EACpB,MAAM,EAAE,QAAQ,GACf;IAAE,GAAG,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,EAAE,MAAM,EAAE,CAAA;CAAE,CAalC;AAcD;;;;oFAIoF;AACpF,eAAO,MAAM,0BAA0B,aAAa,CAAC;AACrD,eAAO,MAAM,0BAA0B,oCAAoD,CAAC;AAC5F;4EAC4E;AAC5E,eAAO,MAAM,2BAA2B,YAAY,CAAC;AACrD,eAAO,MAAM,gCAAgC,mBAAmC,CAAC;AACjF;;;;;;;;iGAQiG;AACjG,eAAO,MAAM,qBAAqB,oBAAoC,CAAC;AACvE,eAAO,MAAM,8BAA8B,gCAAgD,CAAC;AAC5F;;;oGAGoG;AACpG,eAAO,MAAM,sBAAsB,wCAAwD,CAAC;AAG5F,mEAAmE;AACnE,eAAO,MAAM,qBAAqB,gDAAgE,CAAC;AACnG;;0DAE0D;AAC1D,eAAO,MAAM,sBAAsB,2JAIxB,CAAC;AAEZ;;;;gFAIgF;AAChF,eAAO,MAAM,qBAAqB,8BAA8C,CAAC;
|
|
1
|
+
{"version":3,"file":"endpoint-grants.d.ts","sourceRoot":"","sources":["../src/endpoint-grants.ts"],"names":[],"mappings":"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"}
|
package/dist/endpoint-grants.js
CHANGED
|
@@ -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
|
|
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":"AAmBA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"endpoint-invoke.d.ts","sourceRoot":"","sources":["../src/endpoint-invoke.ts"],"names":[],"mappings":"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"}
|