@guyghost/swarm-dao-core 0.2.0 → 0.4.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 (101) hide show
  1. package/dist/commands/index.d.ts +2 -0
  2. package/dist/commands/index.d.ts.map +1 -0
  3. package/dist/commands/index.js +2 -0
  4. package/dist/commands/index.js.map +1 -0
  5. package/dist/commands/registry.d.ts +46 -0
  6. package/dist/commands/registry.d.ts.map +1 -0
  7. package/dist/commands/registry.js +352 -0
  8. package/dist/commands/registry.js.map +1 -0
  9. package/dist/control/gates.d.ts.map +1 -1
  10. package/dist/control/gates.js +17 -0
  11. package/dist/control/gates.js.map +1 -1
  12. package/dist/delivery/dependencies.d.ts.map +1 -1
  13. package/dist/delivery/dependencies.js +15 -7
  14. package/dist/delivery/dependencies.js.map +1 -1
  15. package/dist/delivery/execution.d.ts.map +1 -1
  16. package/dist/delivery/execution.js +7 -5
  17. package/dist/delivery/execution.js.map +1 -1
  18. package/dist/governance/agents.d.ts +2 -0
  19. package/dist/governance/agents.d.ts.map +1 -1
  20. package/dist/governance/agents.js +49 -12
  21. package/dist/governance/agents.js.map +1 -1
  22. package/dist/governance/delegation.machine.d.ts +316 -0
  23. package/dist/governance/delegation.machine.d.ts.map +1 -0
  24. package/dist/governance/delegation.machine.js +387 -0
  25. package/dist/governance/delegation.machine.js.map +1 -0
  26. package/dist/governance/delegation.utils.d.ts +55 -0
  27. package/dist/governance/delegation.utils.d.ts.map +1 -0
  28. package/dist/governance/delegation.utils.js +157 -0
  29. package/dist/governance/delegation.utils.js.map +1 -0
  30. package/dist/governance/index.d.ts +2 -0
  31. package/dist/governance/index.d.ts.map +1 -1
  32. package/dist/governance/index.js +2 -0
  33. package/dist/governance/index.js.map +1 -1
  34. package/dist/governance/lifecycle.d.ts +0 -6
  35. package/dist/governance/lifecycle.d.ts.map +1 -1
  36. package/dist/governance/lifecycle.js +7 -31
  37. package/dist/governance/lifecycle.js.map +1 -1
  38. package/dist/governance/proposal.machine.d.ts +65 -81
  39. package/dist/governance/proposal.machine.d.ts.map +1 -1
  40. package/dist/governance/proposal.machine.js +160 -357
  41. package/dist/governance/proposal.machine.js.map +1 -1
  42. package/dist/governance/proposal.utils.d.ts +19 -165
  43. package/dist/governance/proposal.utils.d.ts.map +1 -1
  44. package/dist/governance/proposal.utils.js +49 -119
  45. package/dist/governance/proposal.utils.js.map +1 -1
  46. package/dist/governance/scoring.d.ts.map +1 -1
  47. package/dist/governance/scoring.js +36 -16
  48. package/dist/governance/scoring.js.map +1 -1
  49. package/dist/host-tools/github-config.d.ts +7 -0
  50. package/dist/host-tools/github-config.d.ts.map +1 -0
  51. package/dist/host-tools/github-config.js +33 -0
  52. package/dist/host-tools/github-config.js.map +1 -0
  53. package/dist/host-tools/handlers.d.ts +87 -0
  54. package/dist/host-tools/handlers.d.ts.map +1 -0
  55. package/dist/host-tools/handlers.js +556 -0
  56. package/dist/host-tools/handlers.js.map +1 -0
  57. package/dist/host-tools/index.d.ts +5 -0
  58. package/dist/host-tools/index.d.ts.map +1 -0
  59. package/dist/host-tools/index.js +5 -0
  60. package/dist/host-tools/index.js.map +1 -0
  61. package/dist/host-tools/messages.d.ts +12 -0
  62. package/dist/host-tools/messages.d.ts.map +1 -0
  63. package/dist/host-tools/messages.js +34 -0
  64. package/dist/host-tools/messages.js.map +1 -0
  65. package/dist/host-tools/utils.d.ts +3 -0
  66. package/dist/host-tools/utils.d.ts.map +1 -0
  67. package/dist/host-tools/utils.js +29 -0
  68. package/dist/host-tools/utils.js.map +1 -0
  69. package/dist/index.d.ts +2 -0
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +4 -0
  72. package/dist/index.js.map +1 -1
  73. package/dist/integrations/http.d.ts +12 -1
  74. package/dist/integrations/http.d.ts.map +1 -1
  75. package/dist/integrations/http.js +114 -17
  76. package/dist/integrations/http.js.map +1 -1
  77. package/dist/intelligence/delegation.d.ts +40 -0
  78. package/dist/intelligence/delegation.d.ts.map +1 -0
  79. package/dist/intelligence/delegation.js +162 -0
  80. package/dist/intelligence/delegation.js.map +1 -0
  81. package/dist/intelligence/index.d.ts +1 -0
  82. package/dist/intelligence/index.d.ts.map +1 -1
  83. package/dist/intelligence/index.js +1 -0
  84. package/dist/intelligence/index.js.map +1 -1
  85. package/dist/intelligence/model.d.ts +28 -2
  86. package/dist/intelligence/model.d.ts.map +1 -1
  87. package/dist/intelligence/model.js +36 -3
  88. package/dist/intelligence/model.js.map +1 -1
  89. package/dist/intelligence/swarm.d.ts +13 -2
  90. package/dist/intelligence/swarm.d.ts.map +1 -1
  91. package/dist/intelligence/swarm.js +97 -50
  92. package/dist/intelligence/swarm.js.map +1 -1
  93. package/dist/persistence.d.ts +2 -6
  94. package/dist/persistence.d.ts.map +1 -1
  95. package/dist/persistence.js +109 -123
  96. package/dist/persistence.js.map +1 -1
  97. package/dist/types/index.d.ts +70 -0
  98. package/dist/types/index.d.ts.map +1 -1
  99. package/dist/types/index.js +12 -0
  100. package/dist/types/index.js.map +1 -1
  101. package/package.json +1 -1
@@ -0,0 +1,387 @@
1
+ // ============================================================
2
+ // Swarm DAO Core — Delegation Lifecycle State Machines
3
+ // ------------------------------------------------------------
4
+ // Source of truth for Delegated Facet Investigation (DFI, thin slice,
5
+ // depth = 1). Two coordinated XState v5 machines:
6
+ //
7
+ // • DelegationCoordinator — one per (parent agent, deliberation). Owns the
8
+ // parent-scoped budget counters atomically (INV-7), the enabled check
9
+ // (parentEnabled), and the drain/cancel cascade entry point.
10
+ // • DelegationRequest — one per request. Owns the per-request lifecycle
11
+ // (requested → gated → spawned → reported → delegated | blocked |
12
+ // cancelled | failed). Pure permission guards only.
13
+ //
14
+ // Discipline (unchanged from proposal.machine.ts): "Le modèle décide." The
15
+ // LLM produces ONE signal — `FACET_REQUESTED` — extracted by the orchestrator
16
+ // from the parent agent's output. That signal feeds `REQUEST_ARRIVED`. Every
17
+ // other transition is decided by guards + the coordinator. No call site
18
+ // chooses a target status; it emits the event that matches what happened.
19
+ //
20
+ // The orchestrator owns I/O only (parse, spawn child via adapter, fold output,
21
+ // run timers). It emits no decision the machines do not authorize. The
22
+ // proposal machine is untouched.
23
+ //
24
+ // Invariants enforced here: INV-1 (depth cap), INV-2 (no ungated spawn),
25
+ // INV-4 (terminal immutability), INV-5 (exact facet match), INV-7 (atomic
26
+ // budget). INV-3 (LLM boundary) is structural. INV-6 (child does not vote)
27
+ // is enforced in `intelligence/synthesis`. INV-8 (ordering) is enforced at
28
+ // the deliberation orchestrator via `allCoordinatorsClosed()`.
29
+ // ============================================================
30
+ import { assign, setup } from "xstate";
31
+ export const COORDINATOR_FINAL_STATUSES = new Set([
32
+ "blocked_signal",
33
+ "closed",
34
+ ]);
35
+ export const REQUEST_FINAL_STATUSES = new Set([
36
+ "delegated",
37
+ "blocked",
38
+ "cancelled",
39
+ "failed",
40
+ ]);
41
+ export function isCoordinatorFinal(status) {
42
+ return COORDINATOR_FINAL_STATUSES.has(status);
43
+ }
44
+ export function isDelegationRequestFinal(status) {
45
+ return REQUEST_FINAL_STATUSES.has(status);
46
+ }
47
+ // ── Pure helpers (INV-3, INV-5; W2, W5) ──────────────────────
48
+ /**
49
+ * Normalize a facet token. Pure. The orchestrator MUST call this before
50
+ * emitting REQUEST_ARRIVED; guards match on the normalized value exactly.
51
+ */
52
+ export function normalizeFacet(facet) {
53
+ return facet.trim().toLowerCase();
54
+ }
55
+ export function evaluateDelegationGate(input) {
56
+ const reasons = [];
57
+ const normalized = normalizeFacet(input.facet);
58
+ const declared = input.declared.find((d) => normalizeFacet(d.facet) === normalized);
59
+ if (!declared) {
60
+ reasons.push(`facet "${normalized}" is not declared by the parent agent`);
61
+ }
62
+ else if (normalizeFacet(declared.archetype) !== normalizeFacet(input.archetype)) {
63
+ reasons.push(`facet "${normalized}" is declared for archetype "${declared.archetype}", not "${input.archetype}"`);
64
+ }
65
+ if (!input.registeredArchetypes.has(normalizeFacet(input.archetype))) {
66
+ reasons.push(`archetype "${input.archetype}" has no registered delegation profile`);
67
+ }
68
+ if (input.parentDepth + 1 > input.maxDepth) {
69
+ reasons.push(`depth cap exceeded (parentDepth ${input.parentDepth} + 1 > maxDepth ${input.maxDepth})`);
70
+ }
71
+ return { ok: reasons.length === 0, reasons };
72
+ }
73
+ /**
74
+ * INV-6 boundary marker — the hash the orchestrator must compute when it
75
+ * merges a child output into the parent's reasoning. Verified by the
76
+ * `reported → delegated` guard before the fold is acknowledged.
77
+ */
78
+ export function computeMergedFoldHash(mergedContent) {
79
+ // FNV-1a 32-bit over UTF-8. Deterministic, dependency-free; sufficient as a
80
+ // tampering/integrity check for the fold ack (not a security boundary).
81
+ let hash = 0x811c9dc5;
82
+ for (let i = 0; i < mergedContent.length; i++) {
83
+ hash ^= mergedContent.charCodeAt(i);
84
+ hash = Math.imul(hash, 0x01000193);
85
+ }
86
+ return `fnv1a:${(hash >>> 0).toString(16).padStart(8, "0")}`;
87
+ }
88
+ export function extractDelegationSignals(content) {
89
+ if (!content)
90
+ return [];
91
+ const signals = [];
92
+ const section = content.match(/##\s*Delegation Requests\s*\n([\s\S]*?)(?=\n##\s|$)/i);
93
+ if (!section?.[1])
94
+ return [];
95
+ for (const line of section[1].split("\n")) {
96
+ const m = line.match(/^\s*[-*]\s*facet:\s*([^|]+?)\s*\|\s*archetype:\s*(.+?)\s*$/i);
97
+ if (!m?.[1] || !m[2])
98
+ continue;
99
+ const facet = m[1].trim();
100
+ const archetype = m[2].trim();
101
+ if (facet.length > 0 && archetype.length > 0) {
102
+ signals.push({ facet: normalizeFacet(facet), archetype: normalizeFacet(archetype) });
103
+ }
104
+ }
105
+ return signals;
106
+ }
107
+ const coordinatorSetup = setup({
108
+ types: {
109
+ context: {},
110
+ input: {},
111
+ events: {},
112
+ },
113
+ guards: {
114
+ slotAvailable: ({ context }) => context.activeRequests < context.maxChildren,
115
+ parentEnabled: ({ context }) => context.parentEnabled === true,
116
+ depthWithinBudget: ({ context }) => context.parentDepth + 1 <= context.maxDepth,
117
+ requestAccepted: ({ context }) => context.activeRequests < context.maxChildren &&
118
+ context.parentEnabled === true &&
119
+ context.parentDepth + 1 <= context.maxDepth,
120
+ // "Last in flight" — this REQUEST_RESOLVED brings activeRequests to 0, so
121
+ // the coordinator can close. Guards evaluate BEFORE actions, hence the `<= 1`
122
+ // (current count minus one == zero). Without this the coordinator could never
123
+ // reach `closed` during a drain while children were still in flight.
124
+ lastInFlight: ({ context }) => context.activeRequests <= 1,
125
+ },
126
+ });
127
+ function buildCoordinatorMachine(initial) {
128
+ return coordinatorSetup.createMachine({
129
+ id: "delegationCoordinator",
130
+ initial,
131
+ context: ({ input }) => ({
132
+ parentAgentId: input.parentAgentId,
133
+ parentDepth: input.parentDepth,
134
+ parentEnabled: input.parentEnabled,
135
+ maxChildren: input.maxChildren,
136
+ maxDepth: input.maxDepth,
137
+ activeRequests: input.activeRequests,
138
+ lastTransitionTime: input.lastTransitionTime ?? new Date().toISOString(),
139
+ }),
140
+ states: {
141
+ open: {
142
+ on: {
143
+ REQUEST_ARRIVED: [
144
+ {
145
+ guard: "requestAccepted",
146
+ target: "open",
147
+ actions: assign({
148
+ activeRequests: ({ context }) => context.activeRequests + 1,
149
+ lastTransitionTime: () => new Date().toISOString(),
150
+ }),
151
+ },
152
+ // Guards failed: stay open, no budget consumed. COORD_ACK{ok:false}
153
+ // is synthesized by the dispatch service from the unchanged
154
+ // context + the guard outcome (see delegation.utils.ts).
155
+ { target: "open" },
156
+ ],
157
+ REQUEST_RESOLVED: {
158
+ target: "open",
159
+ actions: assign({
160
+ activeRequests: ({ context }) => Math.max(0, context.activeRequests - 1),
161
+ lastTransitionTime: () => new Date().toISOString(),
162
+ }),
163
+ },
164
+ DRAIN: {
165
+ target: "draining",
166
+ actions: assign({ lastTransitionTime: () => new Date().toISOString() }),
167
+ },
168
+ ERROR: {
169
+ target: "blocked_signal",
170
+ actions: assign({
171
+ lastTransitionTime: () => new Date().toISOString(),
172
+ errorMessage: ({ event }) => (event.type === "ERROR" ? event.message : ""),
173
+ }),
174
+ },
175
+ },
176
+ },
177
+ draining: {
178
+ on: {
179
+ REQUEST_RESOLVED: [
180
+ {
181
+ guard: "lastInFlight",
182
+ target: "closed",
183
+ actions: assign({
184
+ activeRequests: ({ context }) => Math.max(0, context.activeRequests - 1),
185
+ lastTransitionTime: () => new Date().toISOString(),
186
+ }),
187
+ },
188
+ {
189
+ target: "draining",
190
+ actions: assign({
191
+ activeRequests: ({ context }) => Math.max(0, context.activeRequests - 1),
192
+ lastTransitionTime: () => new Date().toISOString(),
193
+ }),
194
+ },
195
+ ],
196
+ },
197
+ },
198
+ blocked_signal: { type: "final" },
199
+ closed: { type: "final" },
200
+ },
201
+ });
202
+ }
203
+ const coordinatorCache = new Map();
204
+ export function createDelegationCoordinatorMachine(initial) {
205
+ let machine = coordinatorCache.get(initial);
206
+ if (!machine) {
207
+ machine = buildCoordinatorMachine(initial);
208
+ coordinatorCache.set(initial, machine);
209
+ }
210
+ return machine;
211
+ }
212
+ const requestSetup = setup({
213
+ types: {
214
+ context: {},
215
+ input: {},
216
+ events: {},
217
+ },
218
+ guards: {
219
+ gateApproved: ({ event }) => event.type === "GATE_DECIDED" && event.ok === true,
220
+ foldHashMatches: ({ event, context }) => event.type === "FOLD_COMPLETE" &&
221
+ typeof event.mergedAgentOutputHash === "string" &&
222
+ event.mergedAgentOutputHash === context.mergedAgentOutputHash,
223
+ },
224
+ });
225
+ function buildRequestMachine(initial) {
226
+ return requestSetup.createMachine({
227
+ id: "delegationRequest",
228
+ initial,
229
+ context: ({ input }) => ({
230
+ requestId: input.requestId,
231
+ parentAgentId: input.parentAgentId,
232
+ facet: input.facet,
233
+ archetype: input.archetype,
234
+ childAgentId: input.childAgentId,
235
+ mergedAgentOutputHash: input.mergedAgentOutputHash,
236
+ errorMessage: input.errorMessage,
237
+ gateReasons: input.gateReasons,
238
+ lastTransitionTime: input.lastTransitionTime ?? new Date().toISOString(),
239
+ }),
240
+ states: {
241
+ requested: {
242
+ on: {
243
+ GATE_DECIDED: [
244
+ {
245
+ guard: "gateApproved",
246
+ target: "gated",
247
+ actions: assign({ lastTransitionTime: () => new Date().toISOString() }),
248
+ },
249
+ {
250
+ target: "blocked",
251
+ actions: assign({
252
+ gateReasons: ({ event }) => (event.type === "GATE_DECIDED" ? event.reasons : []),
253
+ lastTransitionTime: () => new Date().toISOString(),
254
+ }),
255
+ },
256
+ ],
257
+ CANCEL: { target: "cancelled", actions: assign({ lastTransitionTime: () => new Date().toISOString() }) },
258
+ ERROR: {
259
+ target: "failed",
260
+ actions: assign({
261
+ lastTransitionTime: () => new Date().toISOString(),
262
+ errorMessage: ({ event }) => (event.type === "ERROR" ? event.message : ""),
263
+ }),
264
+ },
265
+ },
266
+ },
267
+ gated: {
268
+ on: {
269
+ SPAWN_ACKED: {
270
+ target: "spawned",
271
+ actions: assign({
272
+ childAgentId: ({ event }) => (event.type === "SPAWN_ACKED" ? event.childAgentId : ""),
273
+ lastTransitionTime: () => new Date().toISOString(),
274
+ }),
275
+ },
276
+ CANCEL: { target: "cancelled", actions: assign({ lastTransitionTime: () => new Date().toISOString() }) },
277
+ ERROR: {
278
+ target: "failed",
279
+ actions: assign({
280
+ lastTransitionTime: () => new Date().toISOString(),
281
+ errorMessage: ({ event }) => (event.type === "ERROR" ? event.message : ""),
282
+ }),
283
+ },
284
+ },
285
+ },
286
+ spawned: {
287
+ on: {
288
+ CHILD_REPORTED: {
289
+ target: "reported",
290
+ actions: assign({
291
+ // The orchestrator computes the fold hash when it merges the
292
+ // child output into the parent's reasoning and stores it here.
293
+ // The `reported → delegated` guard verifies FOLD_COMPLETE carries
294
+ // the same hash (INV-6 integrity check, B2).
295
+ mergedAgentOutputHash: ({ event }) => event.type === "CHILD_REPORTED" ? computeMergedFoldHash(event.output.content ?? "") : "",
296
+ }),
297
+ },
298
+ CHILD_FAILED: {
299
+ target: "failed",
300
+ actions: assign({
301
+ lastTransitionTime: () => new Date().toISOString(),
302
+ errorMessage: ({ event }) => (event.type === "CHILD_FAILED" ? event.error : ""),
303
+ }),
304
+ },
305
+ SPAWN_FAILED: {
306
+ target: "failed",
307
+ actions: assign({
308
+ lastTransitionTime: () => new Date().toISOString(),
309
+ errorMessage: ({ event }) => (event.type === "SPAWN_FAILED" ? event.error : ""),
310
+ }),
311
+ },
312
+ CANCEL: { target: "cancelled", actions: assign({ lastTransitionTime: () => new Date().toISOString() }) },
313
+ ERROR: {
314
+ target: "failed",
315
+ actions: assign({
316
+ lastTransitionTime: () => new Date().toISOString(),
317
+ errorMessage: ({ event }) => (event.type === "ERROR" ? event.message : ""),
318
+ }),
319
+ },
320
+ },
321
+ },
322
+ reported: {
323
+ on: {
324
+ FOLD_COMPLETE: {
325
+ guard: "foldHashMatches",
326
+ target: "delegated",
327
+ actions: assign({ lastTransitionTime: () => new Date().toISOString() }),
328
+ },
329
+ FOLD_TIMEOUT: {
330
+ target: "failed",
331
+ actions: assign({
332
+ lastTransitionTime: () => new Date().toISOString(),
333
+ errorMessage: "fold timeout",
334
+ }),
335
+ },
336
+ CANCEL: { target: "cancelled", actions: assign({ lastTransitionTime: () => new Date().toISOString() }) },
337
+ ERROR: {
338
+ target: "failed",
339
+ actions: assign({
340
+ lastTransitionTime: () => new Date().toISOString(),
341
+ errorMessage: ({ event }) => (event.type === "ERROR" ? event.message : ""),
342
+ }),
343
+ },
344
+ },
345
+ },
346
+ delegated: { type: "final" },
347
+ blocked: { type: "final" },
348
+ cancelled: { type: "final" },
349
+ failed: { type: "final" },
350
+ },
351
+ });
352
+ }
353
+ const requestCache = new Map();
354
+ export function createDelegationRequestMachine(initial) {
355
+ let machine = requestCache.get(initial);
356
+ if (!machine) {
357
+ machine = buildRequestMachine(initial);
358
+ requestCache.set(initial, machine);
359
+ }
360
+ return machine;
361
+ }
362
+ // ── Child agent + model resolution helpers ───────────────────
363
+ /**
364
+ * Build the child agent descriptor for a declared delegation spec. Pure.
365
+ * The orchestrator spawns this via `HostAdapter.spawnAgent` using the model
366
+ * resolved through `buildChildModelResolutionContext`.
367
+ */
368
+ export function buildChildAgent(parent, spec) {
369
+ return {
370
+ id: `${parent.id}:delegate:${normalizeFacet(spec.facet)}`,
371
+ name: `${parent.name} → ${spec.facet}`,
372
+ role: `Delegated facet investigation (${spec.archetype})`,
373
+ description: `Sub-agent spawned by ${parent.id} to investigate the "${spec.facet}" facet.`,
374
+ weight: 0, // INV-6: a child never votes.
375
+ systemPrompt: "", // resolved from delegationProfile[archetype].promptId by the orchestrator
376
+ model: spec.model && spec.model !== "inherit" ? spec.model : undefined,
377
+ enabled: true,
378
+ };
379
+ }
380
+ /**
381
+ * Resolve the profile entry for an archetype from a DAO config. Returns
382
+ * undefined when no profile is registered (the gate then rejects the request).
383
+ */
384
+ export function resolveDelegationProfile(profiles, archetype) {
385
+ return profiles?.[archetype];
386
+ }
387
+ //# sourceMappingURL=delegation.machine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegation.machine.js","sourceRoot":"","sources":["../../src/governance/delegation.machine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import type { DAOAgent, DAOConfig, DelegationProfileEntry } from "../types/index.js";
2
+ import { type DelegationCoordinatorEvent, type DelegationCoordinatorStatus, type DelegationRequestEvent, type DelegationRequestStatus } from "./delegation.machine.js";
3
+ export interface DelegationCoordinatorState {
4
+ parentAgentId: string;
5
+ parentDepth: number;
6
+ parentEnabled: boolean;
7
+ maxChildren: number;
8
+ maxDepth: number;
9
+ activeRequests: number;
10
+ status: DelegationCoordinatorStatus;
11
+ lastTransitionTime: string;
12
+ errorMessage?: string;
13
+ }
14
+ export interface DelegationRequestState {
15
+ requestId: string;
16
+ parentAgentId: string;
17
+ facet: string;
18
+ archetype: string;
19
+ status: DelegationRequestStatus;
20
+ childAgentId?: string;
21
+ mergedAgentOutputHash?: string;
22
+ errorMessage?: string;
23
+ gateReasons: string[];
24
+ lastTransitionTime: string;
25
+ }
26
+ export declare function createCoordinatorState(parent: DAOAgent, config: DAOConfig, now?: string): DelegationCoordinatorState;
27
+ export declare function createRequestState(requestId: string, coordinator: DelegationCoordinatorState, facet: string, archetype: string, now?: string): DelegationRequestState;
28
+ export interface CoordinatorAck {
29
+ requestId: string;
30
+ accepted: boolean;
31
+ reason?: string;
32
+ }
33
+ export type CoordinatorDispatchResult = {
34
+ ok: true;
35
+ status: DelegationCoordinatorStatus;
36
+ ack?: CoordinatorAck;
37
+ } | {
38
+ ok: false;
39
+ error: string;
40
+ };
41
+ export declare function dispatchCoordinatorEvent(state: DelegationCoordinatorState, event: DelegationCoordinatorEvent): CoordinatorDispatchResult;
42
+ export type RequestDispatchResult = {
43
+ ok: true;
44
+ status: DelegationRequestStatus;
45
+ } | {
46
+ ok: false;
47
+ error: string;
48
+ };
49
+ export declare function dispatchDelegationEvent(state: DelegationRequestState, event: DelegationRequestEvent): RequestDispatchResult;
50
+ export declare function registeredArchetypes(config: DAOConfig): Set<string>;
51
+ export declare function profileFor(config: DAOConfig, archetype: string): DelegationProfileEntry | undefined;
52
+ export declare function registerProposalCoordinators(proposalId: number, states: DelegationCoordinatorState[]): void;
53
+ export declare function clearProposalCoordinators(proposalId: number): void;
54
+ export declare function allCoordinatorsClosed(proposalId: number): boolean;
55
+ //# sourceMappingURL=delegation.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegation.utils.d.ts","sourceRoot":"","sources":["../../src/governance/delegation.utils.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACrF,OAAO,EAIL,KAAK,0BAA0B,EAE/B,KAAK,2BAA2B,EAEhC,KAAK,sBAAsB,EAE3B,KAAK,uBAAuB,EAG7B,MAAM,yBAAyB,CAAC;AAQjC,MAAM,WAAW,0BAA0B;IACzC,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,2BAA2B,CAAC;IACpC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,uBAAuB,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAID,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,SAAS,EACjB,GAAG,GAAE,MAAiC,GACrC,0BAA0B,CAY5B;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,0BAA0B,EACvC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,GAAG,GAAE,MAAiC,GACrC,sBAAsB,CAUxB;AAID,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,yBAAyB,GACjC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,2BAA2B,CAAC;IAAC,GAAG,CAAC,EAAE,cAAc,CAAA;CAAE,GACvE;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AASjC,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,0BAA0B,EACjC,KAAK,EAAE,0BAA0B,GAChC,yBAAyB,CA4C3B;AAID,MAAM,MAAM,qBAAqB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,uBAAuB,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,sBAAsB,EAC7B,KAAK,EAAE,sBAAsB,GAC5B,qBAAqB,CAsCvB;AAID,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAInE;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,sBAAsB,GAAG,SAAS,CAEnG;AAYD,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,0BAA0B,EAAE,GAAG,IAAI,CAE3G;AAED,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAElE;AAED,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAIjE"}
@@ -0,0 +1,157 @@
1
+ // ============================================================
2
+ // Swarm DAO Core — Delegation Dispatch Service
3
+ // ------------------------------------------------------------
4
+ // The only sanctioned way to mutate a delegation lifecycle. Mirrors
5
+ // `dispatchProposalEvent`: rehydrate an actor at the persisted status,
6
+ // ask the machine whether the event is permitted (guards included),
7
+ // and only then write the new status + context back. No other writer.
8
+ //
9
+ // Two services, one per machine:
10
+ // • dispatchCoordinatorEvent — mutates a DelegationCoordinatorState
11
+ // • dispatchDelegationEvent — mutates a DelegationRequestState
12
+ //
13
+ // The orchestrator (intelligence layer) owns these state objects and drives
14
+ // them through the cascade: signal → REQUEST_ARRIVED → COORD_ACK →
15
+ // GATE_DECIDED → SPAWN_ACKED → CHILD_REPORTED → FOLD_COMPLETE. It never
16
+ // names a target status; it emits events.
17
+ // ============================================================
18
+ import { createActor } from "xstate";
19
+ import { createDelegationCoordinatorMachine, createDelegationRequestMachine, isCoordinatorFinal, isDelegationRequestFinal, } from "./delegation.machine.js";
20
+ // ── Factories ────────────────────────────────────────────────
21
+ export function createCoordinatorState(parent, config, now = new Date().toISOString()) {
22
+ const delegation = config.delegation;
23
+ return {
24
+ parentAgentId: parent.id,
25
+ parentDepth: 0, // thin slice: the council member is always depth 0
26
+ parentEnabled: Boolean(parent.enabled !== false && delegation?.enabled === true),
27
+ maxChildren: delegation?.maxChildrenPerParent ?? 0,
28
+ maxDepth: delegation?.maxDepth ?? 0,
29
+ activeRequests: 0,
30
+ status: "open",
31
+ lastTransitionTime: now,
32
+ };
33
+ }
34
+ export function createRequestState(requestId, coordinator, facet, archetype, now = new Date().toISOString()) {
35
+ return {
36
+ requestId,
37
+ parentAgentId: coordinator.parentAgentId,
38
+ facet,
39
+ archetype,
40
+ status: "requested",
41
+ gateReasons: [],
42
+ lastTransitionTime: now,
43
+ };
44
+ }
45
+ function coordinatorReason(state) {
46
+ if (!state.parentEnabled)
47
+ return "delegation is disabled for this parent";
48
+ if (state.parentDepth + 1 > state.maxDepth)
49
+ return "depth cap reached";
50
+ if (state.activeRequests >= state.maxChildren)
51
+ return "children budget exhausted";
52
+ return "rejected";
53
+ }
54
+ export function dispatchCoordinatorEvent(state, event) {
55
+ if (isCoordinatorFinal(state.status)) {
56
+ return { ok: false, error: `Coordinator is in terminal status "${state.status}"; no transitions are permitted.` };
57
+ }
58
+ const machine = createDelegationCoordinatorMachine(state.status);
59
+ const actor = createActor(machine, {
60
+ input: {
61
+ parentAgentId: state.parentAgentId,
62
+ parentDepth: state.parentDepth,
63
+ parentEnabled: state.parentEnabled,
64
+ maxChildren: state.maxChildren,
65
+ maxDepth: state.maxDepth,
66
+ activeRequests: state.activeRequests,
67
+ lastTransitionTime: state.lastTransitionTime,
68
+ errorMessage: state.errorMessage,
69
+ },
70
+ });
71
+ actor.start();
72
+ if (!actor.getSnapshot().can(event)) {
73
+ return { ok: false, error: `Event "${event.type}" is not permitted from coordinator status "${state.status}".` };
74
+ }
75
+ const before = state.activeRequests;
76
+ actor.send(event);
77
+ const snapshot = actor.getSnapshot();
78
+ const status = snapshot.value;
79
+ const ctx = snapshot.context;
80
+ state.status = status;
81
+ state.activeRequests = ctx.activeRequests;
82
+ state.lastTransitionTime = ctx.lastTransitionTime;
83
+ state.errorMessage = ctx.errorMessage;
84
+ let ack;
85
+ if (event.type === "REQUEST_ARRIVED") {
86
+ const accepted = ctx.activeRequests > before;
87
+ ack = accepted
88
+ ? { requestId: event.requestId, accepted: true }
89
+ : { requestId: event.requestId, accepted: false, reason: coordinatorReason(state) };
90
+ }
91
+ return { ok: true, status, ack };
92
+ }
93
+ export function dispatchDelegationEvent(state, event) {
94
+ if (isDelegationRequestFinal(state.status)) {
95
+ return { ok: false, error: `Request is in terminal status "${state.status}"; no transitions are permitted.` };
96
+ }
97
+ const machine = createDelegationRequestMachine(state.status);
98
+ const actor = createActor(machine, {
99
+ input: {
100
+ requestId: state.requestId,
101
+ parentAgentId: state.parentAgentId,
102
+ facet: state.facet,
103
+ archetype: state.archetype,
104
+ childAgentId: state.childAgentId,
105
+ mergedAgentOutputHash: state.mergedAgentOutputHash,
106
+ errorMessage: state.errorMessage,
107
+ gateReasons: state.gateReasons,
108
+ lastTransitionTime: state.lastTransitionTime,
109
+ },
110
+ });
111
+ actor.start();
112
+ if (!actor.getSnapshot().can(event)) {
113
+ return { ok: false, error: `Event "${event.type}" is not permitted from request status "${state.status}".` };
114
+ }
115
+ actor.send(event);
116
+ const snapshot = actor.getSnapshot();
117
+ const status = snapshot.value;
118
+ const ctx = snapshot.context;
119
+ state.status = status;
120
+ state.childAgentId = ctx.childAgentId;
121
+ state.mergedAgentOutputHash = ctx.mergedAgentOutputHash;
122
+ state.errorMessage = ctx.errorMessage;
123
+ state.gateReasons = ctx.gateReasons;
124
+ state.lastTransitionTime = ctx.lastTransitionTime;
125
+ return { ok: true, status };
126
+ }
127
+ // ── Convenience: is this archetype registered? ───────────────
128
+ export function registeredArchetypes(config) {
129
+ const set = new Set();
130
+ for (const key of Object.keys(config.delegationProfile ?? {}))
131
+ set.add(key);
132
+ return set;
133
+ }
134
+ export function profileFor(config, archetype) {
135
+ return config.delegationProfile?.[archetype];
136
+ }
137
+ // ── Proposal ↔ coordinator registry (INV-8) ──────────────────
138
+ //
139
+ // The deliberation orchestrator owns DelegationCoordinator states. For the
140
+ // `delegation-closed` control gate to enforce INV-8 (no APPROVE while a
141
+ // delegation is in flight), the orchestrator registers the live coordinators
142
+ // for a proposal; the gate reads this registry. Cleared when a proposal leaves
143
+ // the deliberation phase.
144
+ const proposalCoordinators = new Map();
145
+ export function registerProposalCoordinators(proposalId, states) {
146
+ proposalCoordinators.set(proposalId, states);
147
+ }
148
+ export function clearProposalCoordinators(proposalId) {
149
+ proposalCoordinators.delete(proposalId);
150
+ }
151
+ export function allCoordinatorsClosed(proposalId) {
152
+ const states = proposalCoordinators.get(proposalId);
153
+ if (!states || states.length === 0)
154
+ return true;
155
+ return states.every((s) => s.status === "closed" || s.status === "blocked_signal");
156
+ }
157
+ //# sourceMappingURL=delegation.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegation.utils.js","sourceRoot":"","sources":["../../src/governance/delegation.utils.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  export * from "./agents.js";
2
2
  export * from "./amendments.js";
3
+ export * from "./delegation.machine.js";
4
+ export * from "./delegation.utils.js";
3
5
  export * from "./lifecycle.js";
4
6
  export * from "./proposal.machine.js";
5
7
  export * from "./proposal.utils.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/governance/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/governance/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}