@guyghost/swarm-dao-core 0.16.2 → 1.0.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 (109) hide show
  1. package/dist/adapters/persistence/file-dao-state.repository.d.ts +35 -0
  2. package/dist/adapters/persistence/file-dao-state.repository.d.ts.map +1 -1
  3. package/dist/adapters/persistence/file-dao-state.repository.js +316 -30
  4. package/dist/adapters/persistence/file-dao-state.repository.js.map +1 -1
  5. package/dist/adapters/ship-audit/fs-ship-audit.store.d.ts.map +1 -1
  6. package/dist/adapters/ship-audit/fs-ship-audit.store.js +57 -2
  7. package/dist/adapters/ship-audit/fs-ship-audit.store.js.map +1 -1
  8. package/dist/application/proposals/control-proposal.use-case.d.ts +2 -1
  9. package/dist/application/proposals/control-proposal.use-case.d.ts.map +1 -1
  10. package/dist/application/proposals/control-proposal.use-case.js +16 -3
  11. package/dist/application/proposals/control-proposal.use-case.js.map +1 -1
  12. package/dist/application/proposals/create-proposal.use-case.d.ts.map +1 -1
  13. package/dist/application/proposals/create-proposal.use-case.js +22 -0
  14. package/dist/application/proposals/create-proposal.use-case.js.map +1 -1
  15. package/dist/application/proposals/deliberate-proposal.use-case.d.ts +4 -0
  16. package/dist/application/proposals/deliberate-proposal.use-case.d.ts.map +1 -1
  17. package/dist/application/proposals/deliberate-proposal.use-case.js +33 -13
  18. package/dist/application/proposals/deliberate-proposal.use-case.js.map +1 -1
  19. package/dist/application/proposals/record-deliberation-outputs.use-case.d.ts.map +1 -1
  20. package/dist/application/proposals/record-deliberation-outputs.use-case.js +16 -2
  21. package/dist/application/proposals/record-deliberation-outputs.use-case.js.map +1 -1
  22. package/dist/application/proposals/reject-proposal.use-case.d.ts +3 -3
  23. package/dist/application/proposals/reject-proposal.use-case.d.ts.map +1 -1
  24. package/dist/application/proposals/reject-proposal.use-case.js +6 -4
  25. package/dist/application/proposals/reject-proposal.use-case.js.map +1 -1
  26. package/dist/application/proposals/ship-proposal.use-case.d.ts +1 -0
  27. package/dist/application/proposals/ship-proposal.use-case.d.ts.map +1 -1
  28. package/dist/application/proposals/ship-proposal.use-case.js +31 -4
  29. package/dist/application/proposals/ship-proposal.use-case.js.map +1 -1
  30. package/dist/commands/registry.js +3 -3
  31. package/dist/commands/registry.js.map +1 -1
  32. package/dist/config.d.ts +9 -1
  33. package/dist/config.d.ts.map +1 -1
  34. package/dist/config.js +184 -6
  35. package/dist/config.js.map +1 -1
  36. package/dist/control/gates.d.ts +10 -1
  37. package/dist/control/gates.d.ts.map +1 -1
  38. package/dist/control/gates.js +105 -43
  39. package/dist/control/gates.js.map +1 -1
  40. package/dist/delivery/execution-isolation.d.ts +3 -0
  41. package/dist/delivery/execution-isolation.d.ts.map +1 -1
  42. package/dist/delivery/execution-isolation.js +5 -0
  43. package/dist/delivery/execution-isolation.js.map +1 -1
  44. package/dist/governance/agents.d.ts.map +1 -1
  45. package/dist/governance/agents.js +5 -1
  46. package/dist/governance/agents.js.map +1 -1
  47. package/dist/governance/delegation.utils.d.ts +16 -0
  48. package/dist/governance/delegation.utils.d.ts.map +1 -1
  49. package/dist/governance/delegation.utils.js +68 -0
  50. package/dist/governance/delegation.utils.js.map +1 -1
  51. package/dist/governance/proposal.utils.d.ts +11 -1
  52. package/dist/governance/proposal.utils.d.ts.map +1 -1
  53. package/dist/governance/proposal.utils.js +40 -7
  54. package/dist/governance/proposal.utils.js.map +1 -1
  55. package/dist/governance/voting.d.ts +10 -2
  56. package/dist/governance/voting.d.ts.map +1 -1
  57. package/dist/governance/voting.js +41 -9
  58. package/dist/governance/voting.js.map +1 -1
  59. package/dist/host-tools/github-config.d.ts.map +1 -1
  60. package/dist/host-tools/github-config.js +14 -2
  61. package/dist/host-tools/github-config.js.map +1 -1
  62. package/dist/host-tools/handlers.d.ts +3 -0
  63. package/dist/host-tools/handlers.d.ts.map +1 -1
  64. package/dist/host-tools/handlers.js +91 -28
  65. package/dist/host-tools/handlers.js.map +1 -1
  66. package/dist/integrations/github.d.ts +1 -0
  67. package/dist/integrations/github.d.ts.map +1 -1
  68. package/dist/integrations/github.js +41 -0
  69. package/dist/integrations/github.js.map +1 -1
  70. package/dist/intelligence/index.d.ts +1 -0
  71. package/dist/intelligence/index.d.ts.map +1 -1
  72. package/dist/intelligence/index.js +1 -0
  73. package/dist/intelligence/index.js.map +1 -1
  74. package/dist/intelligence/roundtable.d.ts.map +1 -1
  75. package/dist/intelligence/roundtable.js +10 -0
  76. package/dist/intelligence/roundtable.js.map +1 -1
  77. package/dist/intelligence/runtime.d.ts +61 -0
  78. package/dist/intelligence/runtime.d.ts.map +1 -0
  79. package/dist/intelligence/runtime.js +135 -0
  80. package/dist/intelligence/runtime.js.map +1 -0
  81. package/dist/intelligence/sequential.d.ts +3 -0
  82. package/dist/intelligence/sequential.d.ts.map +1 -1
  83. package/dist/intelligence/sequential.js +30 -0
  84. package/dist/intelligence/sequential.js.map +1 -1
  85. package/dist/intelligence/swarm.d.ts +11 -1
  86. package/dist/intelligence/swarm.d.ts.map +1 -1
  87. package/dist/intelligence/swarm.js +62 -3
  88. package/dist/intelligence/swarm.js.map +1 -1
  89. package/dist/models/improvement-loop.machine.d.ts +7 -1
  90. package/dist/models/improvement-loop.machine.d.ts.map +1 -1
  91. package/dist/models/improvement-loop.machine.js +9 -1
  92. package/dist/models/improvement-loop.machine.js.map +1 -1
  93. package/dist/models/proposal.machine.d.ts +11 -0
  94. package/dist/models/proposal.machine.d.ts.map +1 -1
  95. package/dist/models/proposal.machine.js +14 -3
  96. package/dist/models/proposal.machine.js.map +1 -1
  97. package/dist/persistence.d.ts +23 -1
  98. package/dist/persistence.d.ts.map +1 -1
  99. package/dist/persistence.js +77 -38
  100. package/dist/persistence.js.map +1 -1
  101. package/dist/types/index.d.ts +12 -0
  102. package/dist/types/index.d.ts.map +1 -1
  103. package/dist/types/index.js +1 -0
  104. package/dist/types/index.js.map +1 -1
  105. package/dist/utils/host.d.ts +8 -1
  106. package/dist/utils/host.d.ts.map +1 -1
  107. package/dist/utils/host.js +25 -3
  108. package/dist/utils/host.js.map +1 -1
  109. package/package.json +2 -2
@@ -0,0 +1,61 @@
1
+ import type { DAOAgent } from "../types/index.js";
2
+ export declare function isValidHarnessId(id: string): boolean;
3
+ export declare function isValidModelId(id: string): boolean;
4
+ export declare function isValidModelFlag(flag: string): boolean;
5
+ /**
6
+ * D3 frozen flag table: harness → the CLI flag that carries its model.
7
+ * Unknown harness + explicit model + no config override ⇒ E4 (never silent).
8
+ */
9
+ export declare const HARNESS_MODEL_FLAGS: Readonly<Record<string, string>>;
10
+ /** Project-level runtime configuration (`.dao/config.json` → `runtime`). */
11
+ export interface RuntimeConfig {
12
+ defaultHarness?: string;
13
+ harnessModelFlag?: Record<string, string>;
14
+ }
15
+ export interface RuntimeResolutionContext {
16
+ projectRuntime?: RuntimeConfig;
17
+ hostDefaultHarness?: string;
18
+ }
19
+ export interface ResolvedHarness {
20
+ harness: string;
21
+ source: "agent" | "project" | "host";
22
+ }
23
+ export interface ResolvedAgentRuntime {
24
+ harness: string;
25
+ harnessSource: "agent" | "project" | "host";
26
+ model: string;
27
+ modelFlag?: string;
28
+ }
29
+ export type AgentRuntimeResolution = {
30
+ ok: true;
31
+ runtime: ResolvedAgentRuntime;
32
+ } | {
33
+ ok: false;
34
+ code: "E_INVALID_HARNESS" | "E_NO_HARNESS" | "E_INVALID_MODEL" | "E_MODEL_FLAG_UNKNOWN" | "E_INVALID_FLAG_OVERRIDE";
35
+ message: string;
36
+ };
37
+ export declare function buildRuntimeResolutionContext(options?: {
38
+ projectRuntime?: RuntimeConfig;
39
+ hostDefaultHarness?: string;
40
+ }): RuntimeResolutionContext;
41
+ /** §6 — deterministic host default (pi is its own harness; herdr defers to its kind; tmux has none). */
42
+ export declare function hostDefaultHarnessFor(hostId: string, herdrKind?: string): string | undefined;
43
+ /**
44
+ * D1 harness precedence:
45
+ *
46
+ * agent.harness
47
+ * → runtime.defaultHarness (project config — overrides legacy herdr kind)
48
+ * → hostDefaultHarness
49
+ *
50
+ * Returns undefined when the chain is exhausted (⇒ E2 at full resolution).
51
+ */
52
+ export declare function resolveAgentHarness(agent: DAOAgent, ctx: RuntimeResolutionContext): ResolvedHarness | undefined;
53
+ export declare function describeHarnessResolution(resolved: ResolvedHarness): string;
54
+ /**
55
+ * Full runtime resolution (D1 + D2 + D3). `resolvedModel` comes from the
56
+ * existing model chain (resolveAgentModel) — "default" means host default and
57
+ * disables flag emission. Pure and total: never throws (I1), never mutates
58
+ * anything (I3), same inputs → same outputs (I4).
59
+ */
60
+ export declare function resolveAgentRuntime(agent: DAOAgent, resolvedModel: string, ctx: RuntimeResolutionContext): AgentRuntimeResolution;
61
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/intelligence/runtime.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AASlD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAElD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAM/D,CAAC;AAEH,4EAA4E;AAC5E,MAAM,WAAW,aAAa;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,wBAAwB;IACvC,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,sBAAsB,GAC9B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,oBAAoB,CAAA;CAAE,GAC3C;IACE,EAAE,EAAE,KAAK,CAAC;IACV,IAAI,EACA,mBAAmB,GACnB,cAAc,GACd,iBAAiB,GACjB,sBAAsB,GACtB,yBAAyB,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEN,wBAAgB,6BAA6B,CAAC,OAAO,CAAC,EAAE;IACtD,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,GAAG,wBAAwB,CAK3B;AAED,wGAAwG;AACxG,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAI5F;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,wBAAwB,GAAG,eAAe,GAAG,SAAS,CAM/G;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,CAS3E;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,QAAQ,EACf,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,wBAAwB,GAC5B,sBAAsB,CAqDxB"}
@@ -0,0 +1,135 @@
1
+ // ============================================================
2
+ // Swarm DAO Core — Agent Runtime Resolution
3
+ // ============================================================
4
+ // Implements models/agent-runtime.md (approved at manifest hash
5
+ // 183507f568904059cba2084c5514d90568fa746c409feb2f6aa78784327274fa).
6
+ // Pure, total, deterministic: configuration in, (runtime | typed failure) out.
7
+ // The LLM never selects a runtime (invariant I2) — inputs are config only.
8
+ /** §4.1 — herdr-safe harness identifier. */
9
+ const SAFE_HARNESS_ID = /^[a-z][a-z0-9_-]{0,31}$/;
10
+ /** §4.2 — single argv token, provider-style model identifier. */
11
+ const SAFE_MODEL_ID = /^[A-Za-z0-9][A-Za-z0-9._/:+-]{0,127}$/;
12
+ /** D3 — model flag override syntax. */
13
+ const SAFE_MODEL_FLAG = /^--[a-z][a-z0-9-]*$/;
14
+ export function isValidHarnessId(id) {
15
+ return SAFE_HARNESS_ID.test(id);
16
+ }
17
+ export function isValidModelId(id) {
18
+ return SAFE_MODEL_ID.test(id);
19
+ }
20
+ export function isValidModelFlag(flag) {
21
+ return SAFE_MODEL_FLAG.test(flag);
22
+ }
23
+ /**
24
+ * D3 frozen flag table: harness → the CLI flag that carries its model.
25
+ * Unknown harness + explicit model + no config override ⇒ E4 (never silent).
26
+ */
27
+ export const HARNESS_MODEL_FLAGS = Object.freeze({
28
+ pi: "--model",
29
+ claude: "--model",
30
+ codex: "--model",
31
+ copilot: "--model",
32
+ opencode: "--model",
33
+ });
34
+ export function buildRuntimeResolutionContext(options) {
35
+ return {
36
+ projectRuntime: options?.projectRuntime,
37
+ hostDefaultHarness: options?.hostDefaultHarness,
38
+ };
39
+ }
40
+ /** §6 — deterministic host default (pi is its own harness; herdr defers to its kind; tmux has none). */
41
+ export function hostDefaultHarnessFor(hostId, herdrKind) {
42
+ if (hostId === "herdr")
43
+ return herdrKind;
44
+ if (hostId === "tmux")
45
+ return undefined;
46
+ return hostId;
47
+ }
48
+ /**
49
+ * D1 harness precedence:
50
+ *
51
+ * agent.harness
52
+ * → runtime.defaultHarness (project config — overrides legacy herdr kind)
53
+ * → hostDefaultHarness
54
+ *
55
+ * Returns undefined when the chain is exhausted (⇒ E2 at full resolution).
56
+ */
57
+ export function resolveAgentHarness(agent, ctx) {
58
+ if (agent.harness)
59
+ return { harness: agent.harness, source: "agent" };
60
+ const projectDefault = ctx.projectRuntime?.defaultHarness;
61
+ if (projectDefault)
62
+ return { harness: projectDefault, source: "project" };
63
+ if (ctx.hostDefaultHarness)
64
+ return { harness: ctx.hostDefaultHarness, source: "host" };
65
+ return undefined;
66
+ }
67
+ export function describeHarnessResolution(resolved) {
68
+ switch (resolved.source) {
69
+ case "agent":
70
+ return `${resolved.harness} (agent override)`;
71
+ case "project":
72
+ return `${resolved.harness} (project default)`;
73
+ case "host":
74
+ return `${resolved.harness} (host default)`;
75
+ }
76
+ }
77
+ /**
78
+ * Full runtime resolution (D1 + D2 + D3). `resolvedModel` comes from the
79
+ * existing model chain (resolveAgentModel) — "default" means host default and
80
+ * disables flag emission. Pure and total: never throws (I1), never mutates
81
+ * anything (I3), same inputs → same outputs (I4).
82
+ */
83
+ export function resolveAgentRuntime(agent, resolvedModel, ctx) {
84
+ const harness = resolveAgentHarness(agent, ctx);
85
+ if (agent.harness && !isValidHarnessId(agent.harness)) {
86
+ return {
87
+ ok: false,
88
+ code: "E_INVALID_HARNESS",
89
+ message: `Agent "${agent.id}": invalid harness "${agent.harness}" (must match ^[a-z][a-z0-9_-]{0,31}$; fix agent.harness or runtime.defaultHarness)`,
90
+ };
91
+ }
92
+ if (!harness) {
93
+ return {
94
+ ok: false,
95
+ code: "E_NO_HARNESS",
96
+ message: `Agent "${agent.id}": no harness resolvable — set runtime.defaultHarness or agent.harness`,
97
+ };
98
+ }
99
+ if (resolvedModel !== "default" && !isValidModelId(resolvedModel)) {
100
+ return {
101
+ ok: false,
102
+ code: "E_INVALID_MODEL",
103
+ message: `Agent "${agent.id}": invalid model "${resolvedModel}" (must be a single token matching ^[A-Za-z0-9][A-Za-z0-9._/:+-]{0,127}$)`,
104
+ };
105
+ }
106
+ let modelFlag;
107
+ if (resolvedModel !== "default") {
108
+ const override = ctx.projectRuntime?.harnessModelFlag?.[harness.harness];
109
+ if (override !== undefined && !isValidModelFlag(override)) {
110
+ return {
111
+ ok: false,
112
+ code: "E_INVALID_FLAG_OVERRIDE",
113
+ message: `Agent "${agent.id}": runtime.harnessModelFlag.${harness.harness} = "${override}" violates flag syntax (use --flag-name)`,
114
+ };
115
+ }
116
+ modelFlag = override ?? HARNESS_MODEL_FLAGS[harness.harness];
117
+ if (!modelFlag) {
118
+ return {
119
+ ok: false,
120
+ code: "E_MODEL_FLAG_UNKNOWN",
121
+ message: `Agent "${agent.id}": model "${resolvedModel}" requested for harness "${harness.harness}" with unknown model flag — set runtime.harnessModelFlag.${harness.harness} or drop the per-agent model`,
122
+ };
123
+ }
124
+ }
125
+ return {
126
+ ok: true,
127
+ runtime: {
128
+ harness: harness.harness,
129
+ harnessSource: harness.source,
130
+ model: resolvedModel,
131
+ modelFlag,
132
+ },
133
+ };
134
+ }
135
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/intelligence/runtime.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,4CAA4C;AAC5C,+DAA+D;AAC/D,gEAAgE;AAChE,qEAAqE;AACrE,+EAA+E;AAC/E,2EAA2E;AAI3E,4CAA4C;AAC5C,MAAM,eAAe,GAAG,yBAAyB,CAAC;AAClD,iEAAiE;AACjE,MAAM,aAAa,GAAG,uCAAuC,CAAC;AAC9D,uCAAuC;AACvC,MAAM,eAAe,GAAG,qBAAqB,CAAC;AAE9C,MAAM,UAAU,gBAAgB,CAAC,EAAU;IACzC,OAAO,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAAU;IACvC,OAAO,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAqC,MAAM,CAAC,MAAM,CAAC;IACjF,EAAE,EAAE,SAAS;IACb,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,SAAS;CACpB,CAAC,CAAC;AAsCH,MAAM,UAAU,6BAA6B,CAAC,OAG7C;IACC,OAAO;QACL,cAAc,EAAE,OAAO,EAAE,cAAc;QACvC,kBAAkB,EAAE,OAAO,EAAE,kBAAkB;KAChD,CAAC;AACJ,CAAC;AAED,wGAAwG;AACxG,MAAM,UAAU,qBAAqB,CAAC,MAAc,EAAE,SAAkB;IACtE,IAAI,MAAM,KAAK,OAAO;QAAE,OAAO,SAAS,CAAC;IACzC,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,SAAS,CAAC;IACxC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAe,EAAE,GAA6B;IAChF,IAAI,KAAK,CAAC,OAAO;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IACtE,MAAM,cAAc,GAAG,GAAG,CAAC,cAAc,EAAE,cAAc,CAAC;IAC1D,IAAI,cAAc;QAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC1E,IAAI,GAAG,CAAC,kBAAkB;QAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,kBAAkB,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IACvF,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,QAAyB;IACjE,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;QACxB,KAAK,OAAO;YACV,OAAO,GAAG,QAAQ,CAAC,OAAO,mBAAmB,CAAC;QAChD,KAAK,SAAS;YACZ,OAAO,GAAG,QAAQ,CAAC,OAAO,oBAAoB,CAAC;QACjD,KAAK,MAAM;YACT,OAAO,GAAG,QAAQ,CAAC,OAAO,iBAAiB,CAAC;IAChD,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAAe,EACf,aAAqB,EACrB,GAA6B;IAE7B,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAChD,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACtD,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,UAAU,KAAK,CAAC,EAAE,uBAAuB,KAAK,CAAC,OAAO,qFAAqF;SACrJ,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,UAAU,KAAK,CAAC,EAAE,wEAAwE;SACpG,CAAC;IACJ,CAAC;IACD,IAAI,aAAa,KAAK,SAAS,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,CAAC;QAClE,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,UAAU,KAAK,CAAC,EAAE,qBAAqB,aAAa,2EAA2E;SACzI,CAAC;IACJ,CAAC;IAED,IAAI,SAA6B,CAAC;IAClC,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,GAAG,CAAC,cAAc,EAAE,gBAAgB,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACzE,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1D,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,yBAAyB;gBAC/B,OAAO,EAAE,UAAU,KAAK,CAAC,EAAE,+BAA+B,OAAO,CAAC,OAAO,OAAO,QAAQ,0CAA0C;aACnI,CAAC;QACJ,CAAC;QACD,SAAS,GAAG,QAAQ,IAAI,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7D,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,sBAAsB;gBAC5B,OAAO,EAAE,UAAU,KAAK,CAAC,EAAE,aAAa,aAAa,4BAA4B,OAAO,CAAC,OAAO,4DAA4D,OAAO,CAAC,OAAO,8BAA8B;aAC1M,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO;QACL,EAAE,EAAE,IAAI;QACR,OAAO,EAAE;YACP,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,aAAa,EAAE,OAAO,CAAC,MAAM;YAC7B,KAAK,EAAE,aAAa;YACpB,SAAS;SACV;KACF,CAAC;AACJ,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import type { AgentWorkerPort } from "../ports/host.js";
2
2
  import type { AgentOutput, DAOAgent, Proposal } from "../types/index.js";
3
3
  import type { ModelResolutionContext } from "./model.js";
4
+ import { type RuntimeResolutionContext } from "./runtime.js";
4
5
  /**
5
6
  * Content up to the first vote section: the analysis an agent produced,
6
7
  * stripped of its vote and reasoning so later voters stay independent.
@@ -26,6 +27,8 @@ export interface SequentialDispatchOptions extends PriorAnalysesOptions {
26
27
  }) => void;
27
28
  /** Shared project brief injected into every participant's prompt. */
28
29
  projectBrief?: string;
30
+ /** Runtime resolution context (models/agent-runtime.md). */
31
+ runtime?: RuntimeResolutionContext;
29
32
  }
30
33
  /**
31
34
  * Dispatch deliberation as a sequential pipeline: agents run in the given
@@ -1 +1 @@
1
- {"version":3,"file":"sequential.d.ts","sourceRoot":"","sources":["../../src/intelligence/sequential.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGzD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAIvD;AAED,MAAM,WAAW,oBAAoB;IACnC,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAID;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,SAAS,WAAW,EAAE,EACpC,OAAO,GAAE,oBAAyB,GACjC,MAAM,CAWR;AAED,MAAM,WAAW,yBAA0B,SAAQ,oBAAoB;IACrE,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IAC9G,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,SAAS,QAAQ,EAAE,EAC3B,OAAO,EAAE,eAAe,EACxB,YAAY,EAAE,sBAAsB,EACpC,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,WAAW,EAAE,CAAC,CA6CxB"}
1
+ {"version":3,"file":"sequential.d.ts","sourceRoot":"","sources":["../../src/intelligence/sequential.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,KAAK,wBAAwB,EAAuB,MAAM,cAAc,CAAC;AAGlF;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAIvD;AAED,MAAM,WAAW,oBAAoB;IACnC,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAID;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,SAAS,WAAW,EAAE,EACpC,OAAO,GAAE,oBAAyB,GACjC,MAAM,CAWR;AAED,MAAM,WAAW,yBAA0B,SAAQ,oBAAoB;IACrE,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IAC9G,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,wBAAwB,CAAC;CACpC;AAED;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,SAAS,QAAQ,EAAE,EAC3B,OAAO,EAAE,eAAe,EACxB,YAAY,EAAE,sBAAsB,EACpC,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,WAAW,EAAE,CAAC,CA0ExB"}
@@ -10,6 +10,7 @@
10
10
  // Boundary (unchanged): this is orchestration only. No proposal states, no
11
11
  // transitions, no new AI authority — agents still emit text that is parsed
12
12
  // into votes exactly as in the parallel strategy.
13
+ import { resolveAgentRuntime } from "./runtime.js";
13
14
  import { buildDispatchInstructions } from "./swarm.js";
14
15
  /**
15
16
  * Content up to the first vote section: the analysis an agent produced,
@@ -51,6 +52,7 @@ export function buildPriorAnalysesSection(priorOutputs, options = {}) {
51
52
  export async function dispatchSequentialSwarm(proposal, agents, adapter, modelContext, options = {}) {
52
53
  const instructions = buildDispatchInstructions(proposal, [...agents], modelContext, {
53
54
  projectBrief: options.projectBrief,
55
+ runtime: options.runtime,
54
56
  });
55
57
  const agentById = new Map(agents.map((agent) => [agent.id, agent]));
56
58
  const outputs = [];
@@ -62,12 +64,40 @@ export async function dispatchSequentialSwarm(proposal, agents, adapter, modelCo
62
64
  const priorSection = buildPriorAnalysesSection(outputs, options);
63
65
  const prompt = priorSection ? `${instruction.prompt}\n\n${priorSection}` : instruction.prompt;
64
66
  let output;
67
+ // Runtime resolution (models/agent-runtime.md): typed failure ⇒ error
68
+ // output for this agent only; the pipeline continues.
69
+ let harness;
70
+ if (options.runtime) {
71
+ const resolution = resolveAgentRuntime(agent, instruction.model, options.runtime);
72
+ if (!resolution.ok) {
73
+ output = {
74
+ agentId: instruction.agentId,
75
+ agentName: instruction.agentName,
76
+ role: agent.role,
77
+ content: "",
78
+ durationMs: 0,
79
+ error: resolution.message,
80
+ };
81
+ outputs.push(output);
82
+ options.onUpdate?.({
83
+ agentId: instruction.agentId,
84
+ agentName: instruction.agentName,
85
+ phase: "error",
86
+ });
87
+ continue;
88
+ }
89
+ harness = resolution.runtime.harness;
90
+ }
91
+ else {
92
+ harness = agent.harness;
93
+ }
65
94
  try {
66
95
  output = await adapter.spawnAgent({
67
96
  agent,
68
97
  proposal,
69
98
  systemPrompt: prompt,
70
99
  model: instruction.model,
100
+ harness,
71
101
  timeoutMs: instruction.timeoutMs,
72
102
  });
73
103
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sequential.js","sourceRoot":"","sources":["../../src/intelligence/sequential.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sequential.js","sourceRoot":"","sources":["../../src/intelligence/sequential.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { AgentWorkerPort } from "../ports/host.js";
2
2
  import type { AgentOutput, DAOAgent, DAOConfig, Proposal } from "../types/index.js";
3
3
  import { type ModelResolutionContext } from "./model.js";
4
+ import { type RuntimeResolutionContext } from "./runtime.js";
4
5
  export interface SwarmProgressUpdate {
5
6
  agentId: string;
6
7
  agentName: string;
@@ -14,6 +15,9 @@ export interface DispatchInstruction {
14
15
  prompt: string;
15
16
  model: string;
16
17
  modelDescription: string;
18
+ harness?: string;
19
+ harnessDescription?: string;
20
+ harnessWarning?: string;
17
21
  timeoutMs: number;
18
22
  }
19
23
  /**
@@ -22,6 +26,7 @@ export interface DispatchInstruction {
22
26
  */
23
27
  export declare function buildDispatchInstructions(proposal: Proposal, agents: DAOAgent[], modelContext: ModelResolutionContext, options?: {
24
28
  projectBrief?: string;
29
+ runtime?: RuntimeResolutionContext;
25
30
  }): DispatchInstruction[];
26
31
  export declare function formatDispatchPlan(proposal: Proposal, instructions: DispatchInstruction[], options?: {
27
32
  strategy?: "parallel" | "sequential";
@@ -42,10 +47,15 @@ export declare function createDispatchModelContext(configDefaultModel: string, a
42
47
  * coordinators are registered for the `delegation-closed` gate (INV-8) and
43
48
  * drained on completion.
44
49
  */
45
- export declare function dispatchSwarm(proposal: Proposal, agents: DAOAgent[], adapter: AgentWorkerPort, maxConcurrent: number, modelContext: ModelResolutionContext, onUpdate?: (update: SwarmProgressUpdate) => void, delegation?: {
50
+ export declare function dispatchSwarm(proposal: Proposal, agents: DAOAgent[], adapter: AgentWorkerPort, maxConcurrent: number, modelContext: ModelResolutionContext, onUpdate?: (update: SwarmProgressUpdate) => void,
51
+ /** `daoRoot` persists a cross-process in-flight marker so the
52
+ * delegation-closed gate can actually block while delegations run (#159). */
53
+ delegation?: {
46
54
  config: DAOConfig;
55
+ daoRoot?: string;
47
56
  }, options?: {
48
57
  projectBrief?: string;
58
+ runtime?: RuntimeResolutionContext;
49
59
  }): Promise<AgentOutput[]>;
50
60
  /** Clear the coordinator registry for a proposal once deliberation is over. */
51
61
  export declare function resetDelegationRegistry(proposalId: number): void;
@@ -1 +1 @@
1
- {"version":3,"file":"swarm.d.ts","sourceRoot":"","sources":["../../src/intelligence/swarm.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAEpF,OAAO,EAGL,KAAK,sBAAsB,EAE5B,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;IACrD,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,QAAQ,EAAE,EAClB,YAAY,EAAE,sBAAsB,EACpC,OAAO,GAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAO,GACtC,mBAAmB,EAAE,CA+BvB;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,mBAAmB,EAAE,EACnC,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7E,MAAM,CA+BR;AAED,wBAAgB,0BAA0B,CACxC,kBAAkB,EAAE,MAAM,EAC1B,OAAO,EAAE,eAAe,EACxB,OAAO,CAAC,EAAE;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAAE,GACnE,sBAAsB,CAKxB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,QAAQ,EAAE,EAClB,OAAO,EAAE,eAAe,EACxB,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,sBAAsB,EACpC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,EAChD,UAAU,CAAC,EAAE;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,EAClC,OAAO,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GAClC,OAAO,CAAC,WAAW,EAAE,CAAC,CAkGxB;AAED,+EAA+E;AAC/E,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAEhE"}
1
+ {"version":3,"file":"swarm.d.ts","sourceRoot":"","sources":["../../src/intelligence/swarm.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAEpF,OAAO,EAGL,KAAK,sBAAsB,EAE5B,MAAM,YAAY,CAAC;AACpB,OAAO,EAA6B,KAAK,wBAAwB,EAAuB,MAAM,cAAc,CAAC;AAE7G,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;IACrD,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,QAAQ,EAAE,EAClB,YAAY,EAAE,sBAAsB,EACpC,OAAO,GAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,wBAAwB,CAAA;CAAO,GAC1E,mBAAmB,EAAE,CAiDvB;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,mBAAmB,EAAE,EACnC,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7E,MAAM,CA+BR;AAED,wBAAgB,0BAA0B,CACxC,kBAAkB,EAAE,MAAM,EAC1B,OAAO,EAAE,eAAe,EACxB,OAAO,CAAC,EAAE;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAAE,GACnE,sBAAsB,CAKxB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,QAAQ,EAAE,EAClB,OAAO,EAAE,eAAe,EACxB,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,sBAAsB,EACpC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI;AAChD;8EAC8E;AAC9E,UAAU,CAAC,EAAE;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,EACpD,OAAO,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,wBAAwB,CAAA;CAAE,GACtE,OAAO,CAAC,WAAW,EAAE,CAAC,CAsIxB;AAED,+EAA+E;AAC/E,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAEhE"}
@@ -1,9 +1,10 @@
1
1
  // ============================================================
2
2
  // Swarm DAO Core — Swarm Dispatch
3
3
  // ============================================================
4
- import { clearProposalCoordinators, registerProposalCoordinators } from "../governance/delegation.utils.js";
4
+ import { clearDelegationInFlight, clearProposalCoordinators, markDelegationInFlight, registerProposalCoordinators, } from "../governance/delegation.utils.js";
5
5
  import { drainDelegations, runDelegations } from "./delegation.js";
6
6
  import { buildModelResolutionContext, describeModelResolution, resolveAgentModel, } from "./model.js";
7
+ import { describeHarnessResolution, resolveAgentRuntime } from "./runtime.js";
7
8
  /**
8
9
  * Build dispatch instructions for each agent.
9
10
  * Host adapters use these to spawn sub-agents.
@@ -27,12 +28,31 @@ ${proposal.successMetrics?.length ? `**Success Metrics:**\n${proposal.successMet
27
28
  ${briefSection}Evaluate this proposal carefully. Provide your analysis, vote, and scoring.`;
28
29
  return agents.map((agent) => {
29
30
  const model = resolveAgentModel(agent, modelContext);
31
+ let harness;
32
+ let harnessDescription;
33
+ let harnessWarning;
34
+ if (options.runtime) {
35
+ const resolution = resolveAgentRuntime(agent, model, options.runtime);
36
+ if (resolution.ok) {
37
+ harness = resolution.runtime.harness;
38
+ harnessDescription = describeHarnessResolution({
39
+ harness: resolution.runtime.harness,
40
+ source: resolution.runtime.harnessSource,
41
+ });
42
+ }
43
+ else {
44
+ harnessWarning = `⚠️ ${resolution.message}`;
45
+ }
46
+ }
30
47
  return {
31
48
  agentId: agent.id,
32
49
  agentName: agent.name,
33
50
  prompt: `${agent.systemPrompt}\n\n${basePrompt}`,
34
51
  model,
35
52
  modelDescription: describeModelResolution(agent, model, modelContext),
53
+ harness,
54
+ harnessDescription,
55
+ harnessWarning,
36
56
  timeoutMs: 120_000,
37
57
  };
38
58
  });
@@ -54,7 +74,7 @@ ${sequentialNote}## Instructions
54
74
  ${instructions
55
75
  .map((inst) => `### @${inst.agentId} (${inst.agentName})
56
76
  - Model: ${inst.modelDescription}
57
- - Timeout: ${inst.timeoutMs}ms
77
+ ${inst.harness ? `- Harness: ${inst.harnessDescription ?? inst.harness}\n` : ""}${inst.harnessWarning ? `${inst.harnessWarning}\n` : ""}- Timeout: ${inst.timeoutMs}ms
58
78
 
59
79
  Spawn this sub-agent with the following task (use \`task\` with \`model="${inst.model}"\` when available):
60
80
  \`\`\`
@@ -83,7 +103,10 @@ export function createDispatchModelContext(configDefaultModel, adapter, options)
83
103
  * coordinators are registered for the `delegation-closed` gate (INV-8) and
84
104
  * drained on completion.
85
105
  */
86
- export async function dispatchSwarm(proposal, agents, adapter, maxConcurrent, modelContext, onUpdate, delegation, options) {
106
+ export async function dispatchSwarm(proposal, agents, adapter, maxConcurrent, modelContext, onUpdate,
107
+ /** `daoRoot` persists a cross-process in-flight marker so the
108
+ * delegation-closed gate can actually block while delegations run (#159). */
109
+ delegation, options) {
87
110
  const instructions = buildDispatchInstructions(proposal, agents, modelContext, options);
88
111
  const outputs = [];
89
112
  const agentById = new Map(agents.map((a) => [a.id, a]));
@@ -94,6 +117,9 @@ export async function dispatchSwarm(proposal, agents, adapter, maxConcurrent, mo
94
117
  // gate can observe in-flight coordinators as they are pushed during dispatch.
95
118
  if (delegationEnabled) {
96
119
  registerProposalCoordinators(proposal.id, allCoordinators);
120
+ if (delegation?.daoRoot) {
121
+ await markDelegationInFlight(delegation.daoRoot, proposal.id);
122
+ }
97
123
  }
98
124
  try {
99
125
  // Process in batches based on maxConcurrent
@@ -109,11 +135,41 @@ export async function dispatchSwarm(proposal, agents, adapter, maxConcurrent, mo
109
135
  agentName: inst.agentName,
110
136
  phase: "started",
111
137
  });
138
+ // Runtime resolution (models/agent-runtime.md): a typed failure
139
+ // produces a per-agent error output — never a throw across the
140
+ // dispatch loop, never a silent model drop.
141
+ let harness;
142
+ if (options?.runtime) {
143
+ const resolution = resolveAgentRuntime(agent, inst.model, options.runtime);
144
+ if (!resolution.ok) {
145
+ const errorOutput = {
146
+ agentId: inst.agentId,
147
+ agentName: inst.agentName,
148
+ role: agent.role,
149
+ content: "",
150
+ durationMs: 0,
151
+ error: resolution.message,
152
+ };
153
+ outputs.push(errorOutput);
154
+ onUpdate?.({
155
+ agentId: inst.agentId,
156
+ agentName: inst.agentName,
157
+ phase: "error",
158
+ output: errorOutput,
159
+ });
160
+ return errorOutput;
161
+ }
162
+ harness = resolution.runtime.harness;
163
+ }
164
+ else {
165
+ harness = agent.harness;
166
+ }
112
167
  const output = await adapter.spawnAgent({
113
168
  agent,
114
169
  proposal,
115
170
  systemPrompt: inst.prompt,
116
171
  model: inst.model,
172
+ harness,
117
173
  timeoutMs: inst.timeoutMs,
118
174
  });
119
175
  // DFI hook: fold declared delegations into the parent reasoning.
@@ -169,6 +225,9 @@ export async function dispatchSwarm(proposal, agents, adapter, maxConcurrent, mo
169
225
  if (delegationEnabled) {
170
226
  drainDelegations(allCoordinators, allRequests);
171
227
  clearProposalCoordinators(proposal.id);
228
+ if (delegation?.daoRoot) {
229
+ await clearDelegationInFlight(delegation.daoRoot, proposal.id);
230
+ }
172
231
  }
173
232
  }
174
233
  return outputs;
@@ -1 +1 @@
1
- {"version":3,"file":"swarm.js","sourceRoot":"","sources":["../../src/intelligence/swarm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"swarm.js","sourceRoot":"","sources":["../../src/intelligence/swarm.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ export declare const IMPROVEMENT_MAX_RETRIES = 2;
4
4
  export declare const IMPROVEMENT_TERMINAL_STATES: readonly ["succeeded", "failed", "blocked", "cancelled"];
5
5
  export type ImprovementAnchorName = (typeof REQUIRED_IMPROVEMENT_ANCHORS)[number];
6
6
  export type ImprovementSignalSource = "ai" | "tool" | "human" | "system";
7
- export type AnchorStatus = "passed" | "failed";
7
+ export type AnchorStatus = "passed" | "failed" | "blocked";
8
8
  export type DriftClass = "none" | "partial" | "detached";
9
9
  export type Sample = Readonly<{
10
10
  value: string;
@@ -170,6 +170,9 @@ export declare const improvementMachine: import("xstate").StateMachine<Improveme
170
170
  } | {
171
171
  type: "applyReferenceApproval";
172
172
  params: import("xstate").NonReducibleUnknown;
173
+ } | {
174
+ type: "recordBlockedReason";
175
+ params: import("xstate").NonReducibleUnknown;
173
176
  } | {
174
177
  type: "recordDetachedAdjustment";
175
178
  params: import("xstate").NonReducibleUnknown;
@@ -203,6 +206,9 @@ export declare const improvementMachine: import("xstate").StateMachine<Improveme
203
206
  } | {
204
207
  type: "isToolArbitration";
205
208
  params: unknown;
209
+ } | {
210
+ type: "hasBlockedAnchor";
211
+ params: unknown;
206
212
  } | {
207
213
  type: "isSystemEvaluate";
208
214
  params: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"improvement-loop.machine.d.ts","sourceRoot":"","sources":["../../src/models/improvement-loop.machine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"improvement-loop.machine.d.ts","sourceRoot":"","sources":["../../src/models/improvement-loop.machine.ts"],"names":[],"mappings":"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"}
@@ -75,8 +75,9 @@ const improvementSetup = setup({
75
75
  isValidAnchor: ({ event }) => event.type === "ANCHOR_RECORDED" &&
76
76
  event.source === "tool" &&
77
77
  isRequiredImprovementAnchor(event.anchor) &&
78
- (event.status === "passed" || event.status === "failed") &&
78
+ (event.status === "passed" || event.status === "failed" || event.status === "blocked") &&
79
79
  isNonEmpty(event.evidence),
80
+ hasBlockedAnchor: ({ context }) => REQUIRED_IMPROVEMENT_ANCHORS.some((anchor) => context.anchors[anchor]?.status === "blocked"),
80
81
  isSystemEvaluate: ({ event }) => event.type === "EVALUATE" && event.source === "system",
81
82
  isDetached: ({ context }) => context.driftClass === "detached",
82
83
  allAnchorsPassed: ({ context }) => REQUIRED_IMPROVEMENT_ANCHORS.every((anchor) => {
@@ -176,6 +177,10 @@ const improvementSetup = setup({
176
177
  ...context,
177
178
  terminalReason: "reason" in event && isNonEmpty(event.reason) ? event.reason : "improvement cycle failed",
178
179
  })),
180
+ recordBlockedReason: assign(({ context }) => ({
181
+ ...context,
182
+ terminalReason: `blocked anchors (environment could not be measured): ${REQUIRED_IMPROVEMENT_ANCHORS.filter((anchor) => context.anchors[anchor]?.status === "blocked").join(", ")}`,
183
+ })),
179
184
  recordVerificationFailure: assign(({ context }) => ({
180
185
  ...context,
181
186
  terminalReason: "required ground-contact anchors did not all pass",
@@ -228,6 +233,9 @@ export const improvementMachine = improvementSetup.createMachine({
228
233
  },
229
234
  evaluating: {
230
235
  always: [
236
+ // Issue #145: an unmeasurable environment invalidates the whole verdict —
237
+ // blocked precedes every other outcome and only a human restart recovers.
238
+ { guard: "hasBlockedAnchor", target: "#swarm-dao-improvement-loop.blocked", actions: "recordBlockedReason" },
231
239
  { guard: "isDetached", target: "adjusting", actions: "recordDetachedAdjustment" },
232
240
  { guard: "allAnchorsPassed", target: "succeeded", actions: "recordSuccess" },
233
241
  { guard: "canRetry", target: "retrying", actions: "recordVerificationFailure" },