@guyghost/swarm-dao-core 0.4.0 → 0.5.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 (260) hide show
  1. package/dist/adapters/attention/fs-attention.store.d.ts +17 -0
  2. package/dist/adapters/attention/fs-attention.store.d.ts.map +1 -0
  3. package/dist/adapters/attention/fs-attention.store.js +59 -0
  4. package/dist/adapters/attention/fs-attention.store.js.map +1 -0
  5. package/dist/adapters/git-workspace.d.ts +26 -0
  6. package/dist/adapters/git-workspace.d.ts.map +1 -0
  7. package/dist/adapters/git-workspace.js +84 -0
  8. package/dist/adapters/git-workspace.js.map +1 -0
  9. package/dist/adapters/index.d.ts +6 -0
  10. package/dist/adapters/index.d.ts.map +1 -0
  11. package/dist/adapters/index.js +6 -0
  12. package/dist/adapters/index.js.map +1 -0
  13. package/dist/adapters/persistence/file-dao-state.repository.d.ts +15 -0
  14. package/dist/adapters/persistence/file-dao-state.repository.d.ts.map +1 -0
  15. package/dist/adapters/persistence/file-dao-state.repository.js +85 -0
  16. package/dist/adapters/persistence/file-dao-state.repository.js.map +1 -0
  17. package/dist/adapters/persistence/in-memory-dao-state.repository.d.ts +10 -0
  18. package/dist/adapters/persistence/in-memory-dao-state.repository.d.ts.map +1 -0
  19. package/dist/adapters/persistence/in-memory-dao-state.repository.js +14 -0
  20. package/dist/adapters/persistence/in-memory-dao-state.repository.js.map +1 -0
  21. package/dist/adapters/persistence/legacy-dao-state.repository.d.ts +11 -0
  22. package/dist/adapters/persistence/legacy-dao-state.repository.d.ts.map +1 -0
  23. package/dist/adapters/persistence/legacy-dao-state.repository.js +14 -0
  24. package/dist/adapters/persistence/legacy-dao-state.repository.js.map +1 -0
  25. package/dist/application/index.d.ts +16 -0
  26. package/dist/application/index.d.ts.map +1 -0
  27. package/dist/application/index.js +16 -0
  28. package/dist/application/index.js.map +1 -0
  29. package/dist/application/initialize-dao.use-case.d.ts +20 -0
  30. package/dist/application/initialize-dao.use-case.d.ts.map +1 -0
  31. package/dist/application/initialize-dao.use-case.js +17 -0
  32. package/dist/application/initialize-dao.use-case.js.map +1 -0
  33. package/dist/application/proposals/control-proposal.use-case.d.ts +23 -0
  34. package/dist/application/proposals/control-proposal.use-case.d.ts.map +1 -0
  35. package/dist/application/proposals/control-proposal.use-case.js +53 -0
  36. package/dist/application/proposals/control-proposal.use-case.js.map +1 -0
  37. package/dist/application/proposals/create-amendment-proposal.use-case.d.ts +25 -0
  38. package/dist/application/proposals/create-amendment-proposal.use-case.d.ts.map +1 -0
  39. package/dist/application/proposals/create-amendment-proposal.use-case.js +39 -0
  40. package/dist/application/proposals/create-amendment-proposal.use-case.js.map +1 -0
  41. package/dist/application/proposals/create-proposal.use-case.d.ts +34 -0
  42. package/dist/application/proposals/create-proposal.use-case.d.ts.map +1 -0
  43. package/dist/application/proposals/create-proposal.use-case.js +49 -0
  44. package/dist/application/proposals/create-proposal.use-case.js.map +1 -0
  45. package/dist/application/proposals/deliberate-proposal.use-case.d.ts +35 -0
  46. package/dist/application/proposals/deliberate-proposal.use-case.d.ts.map +1 -0
  47. package/dist/application/proposals/deliberate-proposal.use-case.js +67 -0
  48. package/dist/application/proposals/deliberate-proposal.use-case.js.map +1 -0
  49. package/dist/application/proposals/dry-run-proposal.use-case.d.ts +21 -0
  50. package/dist/application/proposals/dry-run-proposal.use-case.d.ts.map +1 -0
  51. package/dist/application/proposals/dry-run-proposal.use-case.js +20 -0
  52. package/dist/application/proposals/dry-run-proposal.use-case.js.map +1 -0
  53. package/dist/application/proposals/execute-proposal.use-case.d.ts +29 -0
  54. package/dist/application/proposals/execute-proposal.use-case.d.ts.map +1 -0
  55. package/dist/application/proposals/execute-proposal.use-case.js +66 -0
  56. package/dist/application/proposals/execute-proposal.use-case.js.map +1 -0
  57. package/dist/application/proposals/rate-proposal.use-case.d.ts +24 -0
  58. package/dist/application/proposals/rate-proposal.use-case.d.ts.map +1 -0
  59. package/dist/application/proposals/rate-proposal.use-case.js +33 -0
  60. package/dist/application/proposals/rate-proposal.use-case.js.map +1 -0
  61. package/dist/application/proposals/record-deliberation-outputs.use-case.d.ts +21 -0
  62. package/dist/application/proposals/record-deliberation-outputs.use-case.d.ts.map +1 -0
  63. package/dist/application/proposals/record-deliberation-outputs.use-case.js +65 -0
  64. package/dist/application/proposals/record-deliberation-outputs.use-case.js.map +1 -0
  65. package/dist/application/proposals/rollback-proposal.use-case.d.ts +20 -0
  66. package/dist/application/proposals/rollback-proposal.use-case.d.ts.map +1 -0
  67. package/dist/application/proposals/rollback-proposal.use-case.js +17 -0
  68. package/dist/application/proposals/rollback-proposal.use-case.js.map +1 -0
  69. package/dist/application/proposals/round-table.use-case.d.ts +27 -0
  70. package/dist/application/proposals/round-table.use-case.d.ts.map +1 -0
  71. package/dist/application/proposals/round-table.use-case.js +55 -0
  72. package/dist/application/proposals/round-table.use-case.js.map +1 -0
  73. package/dist/application/proposals/ship-proposal.use-case.d.ts +26 -0
  74. package/dist/application/proposals/ship-proposal.use-case.d.ts.map +1 -0
  75. package/dist/application/proposals/ship-proposal.use-case.js +60 -0
  76. package/dist/application/proposals/ship-proposal.use-case.js.map +1 -0
  77. package/dist/application/proposals/start-deliberation.use-case.d.ts +21 -0
  78. package/dist/application/proposals/start-deliberation.use-case.d.ts.map +1 -0
  79. package/dist/application/proposals/start-deliberation.use-case.js +30 -0
  80. package/dist/application/proposals/start-deliberation.use-case.js.map +1 -0
  81. package/dist/application/proposals/transition-proposal.use-case.d.ts +20 -0
  82. package/dist/application/proposals/transition-proposal.use-case.d.ts.map +1 -0
  83. package/dist/application/proposals/transition-proposal.use-case.js +19 -0
  84. package/dist/application/proposals/transition-proposal.use-case.js.map +1 -0
  85. package/dist/application/proposals/update-proposal.use-case.d.ts +26 -0
  86. package/dist/application/proposals/update-proposal.use-case.d.ts.map +1 -0
  87. package/dist/application/proposals/update-proposal.use-case.js +19 -0
  88. package/dist/application/proposals/update-proposal.use-case.js.map +1 -0
  89. package/dist/commands/registry.d.ts.map +1 -1
  90. package/dist/commands/registry.js +18 -3
  91. package/dist/commands/registry.js.map +1 -1
  92. package/dist/config.d.ts +17 -0
  93. package/dist/config.d.ts.map +1 -1
  94. package/dist/config.js +9 -1
  95. package/dist/config.js.map +1 -1
  96. package/dist/control/gates.d.ts +4 -1
  97. package/dist/control/gates.d.ts.map +1 -1
  98. package/dist/control/gates.js +5 -10
  99. package/dist/control/gates.js.map +1 -1
  100. package/dist/delivery/dry-run.d.ts.map +1 -1
  101. package/dist/delivery/dry-run.js +3 -44
  102. package/dist/delivery/dry-run.js.map +1 -1
  103. package/dist/delivery/execution-isolation.d.ts +34 -0
  104. package/dist/delivery/execution-isolation.d.ts.map +1 -0
  105. package/dist/delivery/execution-isolation.js +97 -0
  106. package/dist/delivery/execution-isolation.js.map +1 -0
  107. package/dist/delivery/index.d.ts +1 -0
  108. package/dist/delivery/index.d.ts.map +1 -1
  109. package/dist/delivery/index.js +1 -0
  110. package/dist/delivery/index.js.map +1 -1
  111. package/dist/delivery/plans.d.ts +3 -1
  112. package/dist/delivery/plans.d.ts.map +1 -1
  113. package/dist/delivery/plans.js +2 -2
  114. package/dist/delivery/plans.js.map +1 -1
  115. package/dist/domain/dry-run.d.ts +3 -0
  116. package/dist/domain/dry-run.d.ts.map +1 -0
  117. package/dist/domain/dry-run.js +28 -0
  118. package/dist/domain/dry-run.js.map +1 -0
  119. package/dist/domain/index.d.ts +6 -0
  120. package/dist/domain/index.d.ts.map +1 -0
  121. package/dist/domain/index.js +7 -0
  122. package/dist/domain/index.js.map +1 -0
  123. package/dist/governance/agents.d.ts.map +1 -1
  124. package/dist/governance/agents.js +107 -169
  125. package/dist/governance/agents.js.map +1 -1
  126. package/dist/governance/charter.d.ts +14 -0
  127. package/dist/governance/charter.d.ts.map +1 -0
  128. package/dist/governance/charter.js +65 -0
  129. package/dist/governance/charter.js.map +1 -0
  130. package/dist/governance/edit-gate.d.ts +47 -0
  131. package/dist/governance/edit-gate.d.ts.map +1 -0
  132. package/dist/governance/edit-gate.js +156 -0
  133. package/dist/governance/edit-gate.js.map +1 -0
  134. package/dist/governance/index.d.ts +1 -0
  135. package/dist/governance/index.d.ts.map +1 -1
  136. package/dist/governance/index.js +1 -0
  137. package/dist/governance/index.js.map +1 -1
  138. package/dist/governance/proposal.machine.d.ts +2 -114
  139. package/dist/governance/proposal.machine.d.ts.map +1 -1
  140. package/dist/governance/proposal.machine.js +2 -180
  141. package/dist/governance/proposal.machine.js.map +1 -1
  142. package/dist/governance/proposal.utils.d.ts +5 -2
  143. package/dist/governance/proposal.utils.d.ts.map +1 -1
  144. package/dist/governance/proposal.utils.js +7 -4
  145. package/dist/governance/proposal.utils.js.map +1 -1
  146. package/dist/governance/voting.d.ts.map +1 -1
  147. package/dist/governance/voting.js +24 -14
  148. package/dist/governance/voting.js.map +1 -1
  149. package/dist/host-tools/github-config.d.ts.map +1 -1
  150. package/dist/host-tools/github-config.js +17 -5
  151. package/dist/host-tools/github-config.js.map +1 -1
  152. package/dist/host-tools/handlers.d.ts +14 -11
  153. package/dist/host-tools/handlers.d.ts.map +1 -1
  154. package/dist/host-tools/handlers.js +204 -343
  155. package/dist/host-tools/handlers.js.map +1 -1
  156. package/dist/index.d.ts +5 -0
  157. package/dist/index.d.ts.map +1 -1
  158. package/dist/index.js +10 -0
  159. package/dist/index.js.map +1 -1
  160. package/dist/integrations/github.d.ts.map +1 -1
  161. package/dist/integrations/github.js +5 -2
  162. package/dist/integrations/github.js.map +1 -1
  163. package/dist/intelligence/delegation.d.ts +3 -2
  164. package/dist/intelligence/delegation.d.ts.map +1 -1
  165. package/dist/intelligence/delegation.js.map +1 -1
  166. package/dist/intelligence/index.d.ts +1 -0
  167. package/dist/intelligence/index.d.ts.map +1 -1
  168. package/dist/intelligence/index.js +1 -0
  169. package/dist/intelligence/index.js.map +1 -1
  170. package/dist/intelligence/roundtable.d.ts +4 -2
  171. package/dist/intelligence/roundtable.d.ts.map +1 -1
  172. package/dist/intelligence/roundtable.js +2 -2
  173. package/dist/intelligence/roundtable.js.map +1 -1
  174. package/dist/intelligence/sequential.d.ts +36 -0
  175. package/dist/intelligence/sequential.d.ts.map +1 -0
  176. package/dist/intelligence/sequential.js +91 -0
  177. package/dist/intelligence/sequential.js.map +1 -0
  178. package/dist/intelligence/swarm.d.ts +8 -4
  179. package/dist/intelligence/swarm.d.ts.map +1 -1
  180. package/dist/intelligence/swarm.js +10 -3
  181. package/dist/intelligence/swarm.js.map +1 -1
  182. package/dist/intelligence/synthesis.d.ts.map +1 -1
  183. package/dist/intelligence/synthesis.js +16 -4
  184. package/dist/intelligence/synthesis.js.map +1 -1
  185. package/dist/models/graph-engineering.machine.d.ts +219 -0
  186. package/dist/models/graph-engineering.machine.d.ts.map +1 -0
  187. package/dist/models/graph-engineering.machine.js +214 -0
  188. package/dist/models/graph-engineering.machine.js.map +1 -0
  189. package/dist/models/improvement-loop.machine.d.ts +239 -0
  190. package/dist/models/improvement-loop.machine.d.ts.map +1 -0
  191. package/dist/models/improvement-loop.machine.js +254 -0
  192. package/dist/models/improvement-loop.machine.js.map +1 -0
  193. package/dist/models/index.d.ts +5 -0
  194. package/dist/models/index.d.ts.map +1 -0
  195. package/dist/models/index.js +5 -0
  196. package/dist/models/index.js.map +1 -0
  197. package/dist/models/product-loop.machine.d.ts +531 -0
  198. package/dist/models/product-loop.machine.d.ts.map +1 -0
  199. package/dist/models/product-loop.machine.js +699 -0
  200. package/dist/models/product-loop.machine.js.map +1 -0
  201. package/dist/models/proposal.machine.d.ts +82 -0
  202. package/dist/models/proposal.machine.d.ts.map +1 -0
  203. package/dist/models/proposal.machine.js +68 -0
  204. package/dist/models/proposal.machine.js.map +1 -0
  205. package/dist/observability/attention.d.ts +40 -0
  206. package/dist/observability/attention.d.ts.map +1 -0
  207. package/dist/observability/attention.js +119 -0
  208. package/dist/observability/attention.js.map +1 -0
  209. package/dist/observability/index.d.ts +1 -0
  210. package/dist/observability/index.d.ts.map +1 -1
  211. package/dist/observability/index.js +1 -0
  212. package/dist/observability/index.js.map +1 -1
  213. package/dist/observability/logging.d.ts +6 -0
  214. package/dist/observability/logging.d.ts.map +1 -1
  215. package/dist/observability/logging.js +36 -6
  216. package/dist/observability/logging.js.map +1 -1
  217. package/dist/observability/metrics.d.ts +7 -0
  218. package/dist/observability/metrics.d.ts.map +1 -1
  219. package/dist/observability/metrics.js +179 -43
  220. package/dist/observability/metrics.js.map +1 -1
  221. package/dist/persistence.d.ts +3 -0
  222. package/dist/persistence.d.ts.map +1 -1
  223. package/dist/persistence.js +88 -17
  224. package/dist/persistence.js.map +1 -1
  225. package/dist/ports/clock.d.ts +7 -0
  226. package/dist/ports/clock.d.ts.map +1 -0
  227. package/dist/ports/clock.js +5 -0
  228. package/dist/ports/clock.js.map +1 -0
  229. package/dist/ports/host.d.ts +8 -0
  230. package/dist/ports/host.d.ts.map +1 -0
  231. package/dist/ports/host.js +2 -0
  232. package/dist/ports/host.js.map +1 -0
  233. package/dist/ports/index.d.ts +5 -0
  234. package/dist/ports/index.d.ts.map +1 -0
  235. package/dist/ports/index.js +5 -0
  236. package/dist/ports/index.js.map +1 -0
  237. package/dist/ports/repository.d.ts +7 -0
  238. package/dist/ports/repository.d.ts.map +1 -0
  239. package/dist/ports/repository.js +2 -0
  240. package/dist/ports/repository.js.map +1 -0
  241. package/dist/ports/workspace.d.ts +14 -0
  242. package/dist/ports/workspace.d.ts.map +1 -0
  243. package/dist/ports/workspace.js +14 -0
  244. package/dist/ports/workspace.js.map +1 -0
  245. package/dist/presenters/index.d.ts +2 -0
  246. package/dist/presenters/index.d.ts.map +1 -0
  247. package/dist/presenters/index.js +2 -0
  248. package/dist/presenters/index.js.map +1 -0
  249. package/dist/presenters/proposal.presenter.d.ts +30 -0
  250. package/dist/presenters/proposal.presenter.d.ts.map +1 -0
  251. package/dist/presenters/proposal.presenter.js +47 -0
  252. package/dist/presenters/proposal.presenter.js.map +1 -0
  253. package/dist/utils/host.d.ts.map +1 -1
  254. package/dist/utils/host.js +77 -6
  255. package/dist/utils/host.js.map +1 -1
  256. package/dist/utils/security.d.ts +7 -1
  257. package/dist/utils/security.d.ts.map +1 -1
  258. package/dist/utils/security.js +18 -2
  259. package/dist/utils/security.js.map +1 -1
  260. package/package.json +13 -1
@@ -4,6 +4,7 @@
4
4
  import { promises as fs } from "node:fs";
5
5
  import path from "node:path";
6
6
  import { filterEnabledAgents } from "../config.js";
7
+ import { AGENT_CHARTER, composeSystemPrompt } from "./charter.js";
7
8
  export const DEFAULT_AGENT_MODEL = "z.ai/GLM-5.1";
8
9
  export const DEFAULT_AGENTS = [
9
10
  {
@@ -20,27 +21,7 @@ For each proposal, analyze:
20
21
  1. Strategic alignment — does this fit the product vision?
21
22
  2. Objectives — which OKRs or goals does this advance?
22
23
  3. Hypotheses — what assumptions underlie this proposal?
23
- 4. Opportunity cost — what are we NOT doing if we do this?
24
-
25
- Output format:
26
- ## Analysis
27
- [Your strategic analysis]
28
-
29
- ## Vote
30
- for | against | abstain
31
-
32
- ## Reasoning
33
- [Why you voted this way]
34
-
35
- ## Composite Score Inputs (0-10)
36
- - userImpact: [0-10]
37
- - businessImpact: [0-10]
38
- - effort: [0-10] (lower = less effort)
39
- - securityRisk: [0-10] (lower = less risk)
40
- - confidence: [0-10]
41
-
42
- ## Risk Score (1-10)
43
- [Overall risk assessment]`,
24
+ 4. Opportunity cost — what are we NOT doing if we do this?`,
44
25
  riskLevel: "medium",
45
26
  councils: [{ council: "product-council", role: "lead" }],
46
27
  enabled: true,
@@ -59,27 +40,7 @@ For each proposal, research:
59
40
  1. Market context — trends, market size, growth
60
41
  2. Competition — what are competitors doing?
61
42
  3. User signals — feedback, requests, pain points
62
- 4. Data availability — do we have evidence to support this?
63
-
64
- Output format:
65
- ## Analysis
66
- [Your research findings]
67
-
68
- ## Vote
69
- for | against | abstain
70
-
71
- ## Reasoning
72
- [Why you voted this way]
73
-
74
- ## Composite Score Inputs (0-10)
75
- - userImpact: [0-10]
76
- - businessImpact: [0-10]
77
- - effort: [0-10]
78
- - securityRisk: [0-10]
79
- - confidence: [0-10]
80
-
81
- ## Risk Score (1-10)
82
- [Overall risk assessment]`,
43
+ 4. Data availability — do we have evidence to support this?`,
83
44
  riskLevel: "low",
84
45
  councils: [{ council: "product-council", role: "member" }],
85
46
  enabled: true,
@@ -99,27 +60,7 @@ For each proposal, analyze:
99
60
  2. Architecture impact — how does this affect system design?
100
61
  3. Tradeoffs — what are the key technical tradeoffs?
101
62
  4. Technical debt — will this create or reduce debt?
102
- 5. Scalability — will this scale with our growth?
103
-
104
- Output format:
105
- ## Analysis
106
- [Your technical analysis]
107
-
108
- ## Vote
109
- for | against | abstain
110
-
111
- ## Reasoning
112
- [Why you voted this way]
113
-
114
- ## Composite Score Inputs (0-10)
115
- - userImpact: [0-10]
116
- - businessImpact: [0-10]
117
- - effort: [0-10]
118
- - securityRisk: [0-10]
119
- - confidence: [0-10]
120
-
121
- ## Risk Score (1-10)
122
- [Overall risk assessment]`,
63
+ 5. Scalability — will this scale with our growth?`,
123
64
  riskLevel: "medium",
124
65
  councils: [{ council: "delivery-council", role: "lead" }],
125
66
  enabled: true,
@@ -139,27 +80,7 @@ For each proposal, scrutinize:
139
80
  2. Edge cases — what scenarios aren't covered?
140
81
  3. Guardrails — are sufficient protections in place?
141
82
  4. Downside — what's the worst-case outcome?
142
- 5. Unknown unknowns — what haven't we considered?
143
-
144
- Output format:
145
- ## Analysis
146
- [Your risk analysis and objections]
147
-
148
- ## Vote
149
- for | against | abstain
150
-
151
- ## Reasoning
152
- [Why you voted this way]
153
-
154
- ## Composite Score Inputs (0-10)
155
- - userImpact: [0-10]
156
- - businessImpact: [0-10]
157
- - effort: [0-10]
158
- - securityRisk: [0-10]
159
- - confidence: [0-10]
160
-
161
- ## Risk Score (1-10)
162
- [Overall risk assessment]`,
83
+ 5. Unknown unknowns — what haven't we considered?`,
163
84
  riskLevel: "high",
164
85
  councils: [
165
86
  { council: "security-council", role: "lead" },
@@ -182,27 +103,7 @@ For each proposal, score:
182
103
  2. Cost — implementation effort, maintenance burden
183
104
  3. Risk — probability of failure, downside exposure
184
105
  4. Roadmap fit — does this belong in our current sequence?
185
- 5. Urgency — how time-sensitive is this?
186
-
187
- Output format:
188
- ## Analysis
189
- [Your prioritization analysis]
190
-
191
- ## Vote
192
- for | against | abstain
193
-
194
- ## Reasoning
195
- [Why you voted this way]
196
-
197
- ## Composite Score Inputs (0-10)
198
- - userImpact: [0-10]
199
- - businessImpact: [0-10]
200
- - effort: [0-10]
201
- - securityRisk: [0-10]
202
- - confidence: [0-10]
203
-
204
- ## Risk Score (1-10)
205
- [Overall risk assessment]`,
106
+ 5. Urgency — how time-sensitive is this?`,
206
107
  riskLevel: "low",
207
108
  councils: [{ council: "product-council", role: "member" }],
208
109
  enabled: true,
@@ -222,27 +123,7 @@ For each proposal, assess:
222
123
  2. Completeness — what's missing from the spec?
223
124
  3. Testability — can we write acceptance criteria?
224
125
  4. User stories — can this be broken into stories?
225
- 5. Edge cases — are boundary conditions defined?
226
-
227
- Output format:
228
- ## Analysis
229
- [Your specification analysis]
230
-
231
- ## Vote
232
- for | against | abstain
233
-
234
- ## Reasoning
235
- [Why you voted this way]
236
-
237
- ## Composite Score Inputs (0-10)
238
- - userImpact: [0-10]
239
- - businessImpact: [0-10]
240
- - effort: [0-10]
241
- - securityRisk: [0-10]
242
- - confidence: [0-10]
243
-
244
- ## Risk Score (1-10)
245
- [Overall risk assessment]`,
126
+ 5. Edge cases — are boundary conditions defined?`,
246
127
  riskLevel: "low",
247
128
  councils: [{ council: "product-council", role: "advisor" }],
248
129
  enabled: true,
@@ -262,27 +143,7 @@ For each proposal, plan:
262
143
  2. Task breakdown — what are the key tasks?
263
144
  3. Effort estimate — rough timeline and resources
264
145
  4. CI/CD impact — how does this affect pipelines?
265
- 5. Dependencies — what must happen first?
266
-
267
- Output format:
268
- ## Analysis
269
- [Your delivery analysis]
270
-
271
- ## Vote
272
- for | against | abstain
273
-
274
- ## Reasoning
275
- [Why you voted this way]
276
-
277
- ## Composite Score Inputs (0-10)
278
- - userImpact: [0-10]
279
- - businessImpact: [0-10]
280
- - effort: [0-10]
281
- - securityRisk: [0-10]
282
- - confidence: [0-10]
283
-
284
- ## Risk Score (1-10)
285
- [Overall risk assessment]`,
146
+ 5. Dependencies — what must happen first?`,
286
147
  riskLevel: "medium",
287
148
  councils: [{ council: "delivery-council", role: "member" }],
288
149
  enabled: true,
@@ -291,7 +152,7 @@ for | against | abstain
291
152
  function parseAgentFrontmatter(content) {
292
153
  const match = content.match(/^---\n([\s\S]*?)\n---/);
293
154
  if (!match?.[1])
294
- return {};
155
+ return { body: content.trim() || undefined };
295
156
  const parsed = {};
296
157
  for (const line of match[1].split("\n")) {
297
158
  const field = line.match(/^([A-Za-z0-9_-]+):\s*(.+)$/);
@@ -321,6 +182,11 @@ function parseAgentFrontmatter(content) {
321
182
  break;
322
183
  }
323
184
  }
185
+ // The markdown body is the per-agent project layer (## Project
186
+ // Instructions); frontmatter fields still override agent metadata.
187
+ const body = content.slice(match[0].length).trim();
188
+ if (body)
189
+ parsed.body = body;
324
190
  return parsed;
325
191
  }
326
192
  const agentDefinitionCache = new Map();
@@ -334,23 +200,48 @@ export function __resetAgentDefinitionCache() {
334
200
  function withDefaultModel(agents) {
335
201
  return agents.map((agent) => ({ ...agent, model: agent.model ?? DEFAULT_AGENT_MODEL }));
336
202
  }
337
- async function readAndMergeMarkdownAgents(absDir, daoEntries, baseAgents) {
203
+ async function readAndMergeMarkdownAgents(absDir, daoEntries, baseAgents, base) {
338
204
  const markdownAgents = new Map();
339
- for (const entry of daoEntries) {
205
+ const parsedEntries = await Promise.all(daoEntries.map(async (entry) => {
340
206
  const content = await fs.readFile(path.join(absDir, entry), "utf-8");
341
- const frontmatter = parseAgentFrontmatter(content);
207
+ return parseAgentFrontmatter(content);
208
+ }));
209
+ for (const frontmatter of parsedEntries) {
342
210
  if (frontmatter.id) {
343
211
  markdownAgents.set(frontmatter.id, frontmatter);
344
212
  }
345
213
  }
346
- return baseAgents.map((agent) => {
214
+ // The per-project charter layer applies to every agent (swarm-forge
215
+ // local-* convention: layers add to the shared law, never replace it).
216
+ // The closest directory wins: .dao/agents beats the repo's agents/.
217
+ let projectCharter = base.projectCharter;
218
+ if (projectCharter === null) {
219
+ try {
220
+ const charter = await fs.readFile(path.join(absDir, "charter.md"), "utf-8");
221
+ if (charter.trim())
222
+ projectCharter = charter.trim();
223
+ }
224
+ catch {
225
+ // No project charter here — keep looking in the remaining dirs.
226
+ }
227
+ }
228
+ const agents = baseAgents.map((agent) => {
347
229
  const override = markdownAgents.get(agent.id);
230
+ if (!override)
231
+ return agent;
232
+ // The markdown body is the agent's role definition — it REPLACES the
233
+ // default role prompt (consistent with the frontmatter, which already
234
+ // overrides name/role/model/weight). The shared charter is never
235
+ // replaceable: composition always prepends it.
236
+ const { body: _body, ...fields } = override;
348
237
  return {
349
238
  ...agent,
350
- ...(override ?? {}),
351
- model: override?.model ?? agent.model ?? DEFAULT_AGENT_MODEL,
239
+ ...fields,
240
+ ...(override.body ? { systemPrompt: override.body } : {}),
241
+ model: override.model ?? agent.model ?? DEFAULT_AGENT_MODEL,
352
242
  };
353
243
  });
244
+ return { agents, projectCharter };
354
245
  }
355
246
  export async function loadAgentDefinitionsFromMarkdown(agentsDir, baseAgents = DEFAULT_AGENTS) {
356
247
  const absDir = path.resolve(agentsDir);
@@ -360,15 +251,21 @@ export async function loadAgentDefinitionsFromMarkdown(agentsDir, baseAgents = D
360
251
  entries = await fs.readdir(absDir);
361
252
  }
362
253
  catch {
363
- // Directory missing/unreadable: behave exactly as before and do NOT cache.
364
- return withDefaultModel(baseAgents);
254
+ // Directory missing/unreadable: do NOT cache, but still compose a
255
+ // missing directory must yield the same charter-backed prompts as an
256
+ // existing empty one.
257
+ return withComposedPrompts(withDefaultModel(baseAgents), null);
365
258
  }
366
259
  const daoEntries = entries.filter((entry) => entry.startsWith("dao-") && entry.endsWith(".md"));
367
- // Build a signature over the dao-*.md entries and their stat metadata so the
368
- // cache invalidates whenever an agent file is added, removed, or modified.
260
+ // Build a signature over the dao-*.md entries (and charter.md, which is
261
+ // also a cached layer) and their stat metadata so the cache invalidates
262
+ // whenever a file is added, removed, or modified.
369
263
  let signature;
370
264
  try {
371
- const parts = await Promise.all(daoEntries.map(async (entry) => {
265
+ const signatureEntries = [...daoEntries];
266
+ if (entries.includes("charter.md"))
267
+ signatureEntries.push("charter.md");
268
+ const parts = await Promise.all(signatureEntries.map(async (entry) => {
372
269
  const fileStat = await fs.stat(path.join(absDir, entry));
373
270
  return `${entry}:${fileStat.mtimeMs}:${fileStat.size}`;
374
271
  }));
@@ -383,7 +280,12 @@ export async function loadAgentDefinitionsFromMarkdown(agentsDir, baseAgents = D
383
280
  // Cache hit: return the merged result without re-reading files.
384
281
  return cached.result;
385
282
  }
386
- const result = await readAndMergeMarkdownAgents(absDir, daoEntries, baseAgents);
283
+ const layers = await readAndMergeMarkdownAgents(absDir, daoEntries, withDefaultModel(baseAgents), {
284
+ agents: withDefaultModel(baseAgents),
285
+ projectCharter: null,
286
+ });
287
+ // Composition happens exactly once, at the exit.
288
+ const result = withComposedPrompts(layers.agents, layers.projectCharter);
387
289
  agentDefinitionCache.set(cacheKey, { signature, result });
388
290
  return result;
389
291
  }
@@ -393,24 +295,60 @@ export async function loadAgentDefinitions(daoRoot, projectConfig) {
393
295
  path.join(daoRoot, "..", "agents"),
394
296
  path.join(daoRoot, "..", "..", "agents"),
395
297
  ];
396
- let agents = initializeAgents();
298
+ // Layer collection over the candidate dirs, closest first. Composition
299
+ // happens exactly once, after collection, so the shared charter is never
300
+ // duplicated across the chain.
301
+ let layers = {
302
+ agents: withDefaultModel(DEFAULT_AGENTS),
303
+ projectCharter: null,
304
+ };
397
305
  for (const agentsDir of candidateDirs) {
398
- const loaded = await loadAgentDefinitionsFromMarkdown(agentsDir, agents);
399
- const hasMarkdownOverrides = loaded.some((agent, index) => agent.model !== agents[index]?.model ||
400
- agent.name !== agents[index]?.name ||
401
- agent.role !== agents[index]?.role);
402
- if (hasMarkdownOverrides) {
403
- agents = loaded;
306
+ const merged = await readMarkdownLayers(agentsDir, layers);
307
+ // Closest layer wins: the first candidate directory holding agent
308
+ // definitions or a charter fully shadows the further ones, so project
309
+ // overrides (.dao/agents) are never replaced by repo defaults (agents/).
310
+ if (merged) {
311
+ layers = merged;
404
312
  break;
405
313
  }
406
314
  }
315
+ const agents = withComposedPrompts(layers.agents, layers.projectCharter);
407
316
  return projectConfig ? filterEnabledAgents(agents, projectConfig) : agents;
408
317
  }
318
+ /** Apply the charter + project layers to role-level agents (composition exit). */
319
+ function withComposedPrompts(agents, projectCharter) {
320
+ // Per-agent: mixed lists (some prompts already composed, some not) compose
321
+ // exactly the ones that need it — composeSystemPrompt is idempotent.
322
+ return agents.map((agent) => ({
323
+ ...agent,
324
+ systemPrompt: composeSystemPrompt(agent.systemPrompt, { projectCharter }),
325
+ }));
326
+ }
327
+ /** Read and merge one directory's markdown layers; null when it has none. */
328
+ async function readMarkdownLayers(agentsDir, base) {
329
+ const absDir = path.resolve(agentsDir);
330
+ let entries;
331
+ try {
332
+ entries = await fs.readdir(absDir);
333
+ }
334
+ catch {
335
+ return null;
336
+ }
337
+ const daoEntries = entries.filter((entry) => entry.startsWith("dao-") && entry.endsWith(".md"));
338
+ const hasCharter = entries.includes("charter.md");
339
+ if (daoEntries.length === 0 && !hasCharter)
340
+ return null;
341
+ return readAndMergeMarkdownAgents(absDir, daoEntries, base.agents, base);
342
+ }
409
343
  export function initializeAgents(customAgents) {
410
344
  if (customAgents && customAgents.length > 0) {
411
345
  return customAgents;
412
346
  }
413
- return DEFAULT_AGENTS.map((a) => ({ ...a, model: a.model ?? DEFAULT_AGENT_MODEL }));
347
+ return DEFAULT_AGENTS.map((a) => ({
348
+ ...a,
349
+ systemPrompt: composeSystemPrompt(a.systemPrompt),
350
+ model: a.model ?? DEFAULT_AGENT_MODEL,
351
+ }));
414
352
  }
415
353
  export function formatAgentsTable(agents) {
416
354
  let table = "| Agent | Weight | Role |\n|-------|--------|------|\n";
@@ -427,6 +365,6 @@ export function formatAgentCard(agent) {
427
365
  - **Description:** ${agent.description}`;
428
366
  }
429
367
  export function getDefaultAgentPrompts() {
430
- return Object.fromEntries(DEFAULT_AGENTS.map((a) => [a.id, a.systemPrompt]));
368
+ return Object.fromEntries(DEFAULT_AGENTS.map((a) => [a.id, composeSystemPrompt(a.systemPrompt)]));
431
369
  }
432
370
  //# sourceMappingURL=agents.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/governance/agents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/governance/agents.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,mDAAmD;AACnD,+DAA+D;AAE/D,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAElE,MAAM,CAAC,MAAM,mBAAmB,GAAG,cAAc,CAAC;AAElD,MAAM,CAAC,MAAM,cAAc,GAAe;IACxC;QACE,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,oBAAoB;QAC1B,IAAI,EAAE,gCAAgC;QACtC,WAAW,EACT,2HAA2H;QAC7H,MAAM,EAAE,CAAC;QACT,YAAY,EAAE;;;;;;;;2DAQyC;QACvD,SAAS,EAAE,QAAQ;QACnB,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACxD,OAAO,EAAE,IAAI;KACd;IACD;QACE,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,mCAAmC;QACzC,WAAW,EACT,2GAA2G;QAC7G,MAAM,EAAE,CAAC;QACT,YAAY,EAAE;;;;;;;;4DAQ0C;QACxD,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC1D,OAAO,EAAE,IAAI;KACd;IACD;QACE,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,oBAAoB;QAC1B,IAAI,EAAE,8BAA8B;QACpC,WAAW,EACT,uIAAuI;QACzI,MAAM,EAAE,CAAC;QACT,YAAY,EAAE;;;;;;;;;kDASgC;QAC9C,SAAS,EAAE,QAAQ;QACnB,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACzD,OAAO,EAAE,IAAI;KACd;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,sCAAsC;QAC5C,WAAW,EACT,8GAA8G;QAChH,MAAM,EAAE,CAAC;QACT,YAAY,EAAE;;;;;;;;;kDASgC;QAC9C,SAAS,EAAE,MAAM;QACjB,QAAQ,EAAE;YACR,EAAE,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,EAAE;YAC7C,EAAE,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC/C;QACD,OAAO,EAAE,IAAI;KACd;IACD;QACE,EAAE,EAAE,aAAa;QACjB,IAAI,EAAE,sBAAsB;QAC5B,IAAI,EAAE,uCAAuC;QAC7C,WAAW,EAAE,8FAA8F;QAC3G,MAAM,EAAE,CAAC;QACT,YAAY,EAAE;;;;;;;;;yCASuB;QACrC,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC1D,OAAO,EAAE,IAAI;KACd;IACD;QACE,EAAE,EAAE,aAAa;QACjB,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,wCAAwC;QAC9C,WAAW,EACT,2GAA2G;QAC7G,MAAM,EAAE,CAAC;QACT,YAAY,EAAE;;;;;;;;;iDAS+B;QAC7C,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC3D,OAAO,EAAE,IAAI;KACd;IACD;QACE,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,mCAAmC;QACzC,WAAW,EACT,oHAAoH;QACtH,MAAM,EAAE,CAAC;QACT,YAAY,EAAE;;;;;;;;;0CASwB;QACtC,SAAS,EAAE,QAAQ;QACnB,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC3D,OAAO,EAAE,IAAI;KACd;CACF,CAAC;AAEF,SAAS,qBAAqB,CAAC,OAAe;IAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACrD,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,SAAS,EAAE,CAAC;IAE9D,MAAM,MAAM,GAAuD,EAAE,CAAC;IACtE,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,MAAM,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ;YAAE,SAAS;QAChC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAE9B,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,IAAI;gBACP,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC;gBAClB,MAAM;YACR,KAAK,MAAM;gBACT,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC;gBACpB,MAAM;YACR,KAAK,MAAM;gBACT,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC;gBACpB,MAAM;YACR,KAAK,OAAO;gBACV,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;gBACrB,MAAM;YACR,KAAK,QAAQ;gBACX,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,MAAM;YACR;gBACE,MAAM;QACV,CAAC;IACH,CAAC;IACD,+DAA+D;IAC/D,mEAAmE;IACnE,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IACnD,IAAI,IAAI;QAAE,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;IAC7B,OAAO,MAAM,CAAC;AAChB,CAAC;AAmBD,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAqC,CAAC;AAE1E,SAAS,qBAAqB,CAAC,UAAsB;IACnD,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,mBAAmB,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9G,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,2BAA2B;IACzC,oBAAoB,CAAC,KAAK,EAAE,CAAC;AAC/B,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAkB;IAC1C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,mBAAmB,EAAE,CAAC,CAAC,CAAC;AAC1F,CAAC;AAQD,KAAK,UAAU,0BAA0B,CACvC,MAAc,EACd,UAAoB,EACpB,UAAsB,EACtB,IAAoB;IAEpB,MAAM,cAAc,GAAG,IAAI,GAAG,EAAiD,CAAC;IAChF,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACrC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;QACrE,OAAO,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC,CAAC,CACH,CAAC;IACF,KAAK,MAAM,WAAW,IAAI,aAAa,EAAE,CAAC;QACxC,IAAI,WAAW,CAAC,EAAE,EAAE,CAAC;YACnB,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,oEAAoE;IACpE,uEAAuE;IACvE,oEAAoE;IACpE,IAAI,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;IACzC,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC;YAC5E,IAAI,OAAO,CAAC,IAAI,EAAE;gBAAE,cAAc,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QACtD,CAAC;QAAC,MAAM,CAAC;YACP,gEAAgE;QAClE,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACtC,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC5B,qEAAqE;QACrE,sEAAsE;QACtE,iEAAiE;QACjE,+CAA+C;QAC/C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,GAAG,QAAQ,CAAC;QAC5C,OAAO;YACL,GAAG,KAAK;YACR,GAAG,MAAM;YACT,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,mBAAmB;SAC5D,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,SAAiB,EACjB,aAAyB,cAAc;IAEvC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,GAAG,MAAM,IAAI,qBAAqB,CAAC,UAAU,CAAC,EAAE,CAAC;IAElE,IAAI,OAAiB,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,oEAAoE;QACpE,qEAAqE;QACrE,sBAAsB;QACtB,OAAO,mBAAmB,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAEhG,wEAAwE;IACxE,wEAAwE;IACxE,kDAAkD;IAClD,IAAI,SAAiB,CAAC;IACtB,IAAI,CAAC;QACH,MAAM,gBAAgB,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;QACzC,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;YAAE,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACxE,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC7B,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACnC,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;YACzD,OAAO,GAAG,KAAK,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzD,CAAC,CAAC,CACH,CAAC;QACF,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,uEAAuE;QACvE,OAAO,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClD,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAC7C,gEAAgE;QAChE,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAAC,MAAM,EAAE,UAAU,EAAE,gBAAgB,CAAC,UAAU,CAAC,EAAE;QAChG,MAAM,EAAE,gBAAgB,CAAC,UAAU,CAAC;QACpC,cAAc,EAAE,IAAI;KACrB,CAAC,CAAC;IACH,iDAAiD;IACjD,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;IACzE,oBAAoB,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;IAC1D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAAe,EAAE,aAA6B;IACvF,MAAM,aAAa,GAAG;QACpB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC;KACzC,CAAC;IAEF,uEAAuE;IACvE,yEAAyE;IACzE,+BAA+B;IAC/B,IAAI,MAAM,GAAmB;QAC3B,MAAM,EAAE,gBAAgB,CAAC,cAAc,CAAC;QACxC,cAAc,EAAE,IAAI;KACrB,CAAC;IACF,KAAK,MAAM,SAAS,IAAI,aAAa,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC3D,kEAAkE;QAClE,sEAAsE;QACtE,yEAAyE;QACzE,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,GAAG,MAAM,CAAC;YAChB,MAAM;QACR,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;IACzE,OAAO,aAAa,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAC7E,CAAC;AAED,kFAAkF;AAClF,SAAS,mBAAmB,CAAC,MAAkB,EAAE,cAA6B;IAC5E,2EAA2E;IAC3E,qEAAqE;IACrE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5B,GAAG,KAAK;QACR,YAAY,EAAE,mBAAmB,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,cAAc,EAAE,CAAC;KAC1E,CAAC,CAAC,CAAC;AACN,CAAC;AAED,6EAA6E;AAC7E,KAAK,UAAU,kBAAkB,CAAC,SAAiB,EAAE,IAAoB;IACvE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACvC,IAAI,OAAiB,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAChG,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAClD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IACxD,OAAO,0BAA0B,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,YAAyB;IACxD,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChC,GAAG,CAAC;QACJ,YAAY,EAAE,mBAAmB,CAAC,CAAC,CAAC,YAAY,CAAC;QACjD,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,mBAAmB;KACtC,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAkB;IAClD,IAAI,KAAK,GAAG,wDAAwD,CAAC;IACrE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,IAAI,KAAK,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,MAAM,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC;IACnE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAe;IAC7C,OAAO,MAAM,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,EAAE;cAC1B,KAAK,CAAC,IAAI;gBACR,KAAK,CAAC,MAAM;oBACR,KAAK,CAAC,SAAS,IAAI,SAAS;qBAC3B,KAAK,CAAC,WAAW,EAAE,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,OAAO,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,mBAAmB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AACpG,CAAC"}
@@ -0,0 +1,14 @@
1
+ export declare const AGENT_CHARTER = "You are an agent in a DAO governance swarm. The swarm deliberates proposals; the deterministic tally of member votes decides outcomes. Your output is a signal for that tally \u2014 never an authority over it.\n\nCharter (binding on every agent, regardless of role):\n- Deliberate in good faith: ground claims in evidence and state uncertainty explicitly.\n- Your vote is yours alone: form it independently of other agents' votes.\n- Never claim decision authority and never announce state changes \u2014 the model and the human owner decide.\n- Always answer in the exact format below; the tally parses it mechanically.\n\nOutput format:\n## Analysis\n[Your analysis]\n\n## Vote\nfor | against | abstain\n\n## Reasoning\n[Why you voted this way]\n\n## Composite Score Inputs (0-10)\n- userImpact: [0-10]\n- businessImpact: [0-10]\n- effort: [0-10] (lower = less effort)\n- securityRisk: [0-10] (lower = less risk)\n- confidence: [0-10]\n\n## Risk Score (1-10)\n[Overall risk assessment]";
2
+ export interface PromptLayers {
3
+ /** Per-project charter addendum, applied to every agent. */
4
+ projectCharter?: string | null;
5
+ /** Per-agent project instructions, applied to that agent only. */
6
+ agentOverride?: string | null;
7
+ }
8
+ /**
9
+ * Compose an agent's system prompt from its layers. Pure: the same inputs
10
+ * always produce the same prompt, and layers can only append — never
11
+ * replace — the shared charter or the role mission.
12
+ */
13
+ export declare function composeSystemPrompt(rolePrompt: string, layers?: PromptLayers): string;
14
+ //# sourceMappingURL=charter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"charter.d.ts","sourceRoot":"","sources":["../../src/governance/charter.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,aAAa,+9BA0BA,CAAC;AAE3B,MAAM,WAAW,YAAY;IAC3B,4DAA4D;IAC5D,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,kEAAkE;IAClE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,GAAE,YAAiB,GAAG,MAAM,CAYzF"}
@@ -0,0 +1,65 @@
1
+ // ============================================================
2
+ // Swarm DAO Core — Agent Charter (layered constitution)
3
+ // ============================================================
4
+ // The swarm-forge constitution pattern, adapted to the DAO: every agent
5
+ // prompt is composed from layers instead of repeating shared law —
6
+ //
7
+ // 1. AGENT_CHARTER — shared law: deliberation conduct + the exact
8
+ // output format the tally parses (defined ONCE here)
9
+ // 2. role prompt — the agent's mission and analysis checklist
10
+ // 3. project charter — .dao/agents/charter.md, appended for every agent
11
+ // 4. agent override — the body of .dao/agents/dao-<id>.md, appended for
12
+ // that agent only
13
+ //
14
+ // Layers only ADD. A project cannot replace the shared charter or a role
15
+ // mission — same rule as swarm-forge's "local-* articles never replace
16
+ // shared articles". Composition is pure and deterministic.
17
+ export const AGENT_CHARTER = `You are an agent in a DAO governance swarm. The swarm deliberates proposals; the deterministic tally of member votes decides outcomes. Your output is a signal for that tally — never an authority over it.
18
+
19
+ Charter (binding on every agent, regardless of role):
20
+ - Deliberate in good faith: ground claims in evidence and state uncertainty explicitly.
21
+ - Your vote is yours alone: form it independently of other agents' votes.
22
+ - Never claim decision authority and never announce state changes — the model and the human owner decide.
23
+ - Always answer in the exact format below; the tally parses it mechanically.
24
+
25
+ Output format:
26
+ ## Analysis
27
+ [Your analysis]
28
+
29
+ ## Vote
30
+ for | against | abstain
31
+
32
+ ## Reasoning
33
+ [Why you voted this way]
34
+
35
+ ## Composite Score Inputs (0-10)
36
+ - userImpact: [0-10]
37
+ - businessImpact: [0-10]
38
+ - effort: [0-10] (lower = less effort)
39
+ - securityRisk: [0-10] (lower = less risk)
40
+ - confidence: [0-10]
41
+
42
+ ## Risk Score (1-10)
43
+ [Overall risk assessment]`;
44
+ /**
45
+ * Compose an agent's system prompt from its layers. Pure: the same inputs
46
+ * always produce the same prompt, and layers can only append — never
47
+ * replace — the shared charter or the role mission.
48
+ */
49
+ export function composeSystemPrompt(rolePrompt, layers = {}) {
50
+ // Idempotent: an already-composed prompt (e.g. re-composition across the
51
+ // candidate-dir chain or a user-supplied prompt that embeds the charter)
52
+ // passes through unchanged rather than nesting a second charter.
53
+ if (rolePrompt.startsWith(AGENT_CHARTER))
54
+ return rolePrompt;
55
+ const trimmedRole = rolePrompt.trim();
56
+ const parts = [AGENT_CHARTER, trimmedRole];
57
+ const projectCharter = layers.projectCharter?.trim();
58
+ if (projectCharter)
59
+ parts.push(`## Project Charter Addendum\n\n${projectCharter}`);
60
+ const agentOverride = layers.agentOverride?.trim();
61
+ if (agentOverride)
62
+ parts.push(`## Project Instructions\n\n${agentOverride}`);
63
+ return parts.join("\n\n");
64
+ }
65
+ //# sourceMappingURL=charter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"charter.js","sourceRoot":"","sources":["../../src/governance/charter.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,wDAAwD;AACxD,+DAA+D;AAC/D,wEAAwE;AACxE,mEAAmE;AACnE,EAAE;AACF,sEAAsE;AACtE,4EAA4E;AAC5E,oEAAoE;AACpE,0EAA0E;AAC1E,2EAA2E;AAC3E,yCAAyC;AACzC,EAAE;AACF,yEAAyE;AACzE,uEAAuE;AACvE,2DAA2D;AAE3D,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;0BA0BH,CAAC;AAS3B;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAkB,EAAE,SAAuB,EAAE;IAC/E,yEAAyE;IACzE,yEAAyE;IACzE,iEAAiE;IACjE,IAAI,UAAU,CAAC,UAAU,CAAC,aAAa,CAAC;QAAE,OAAO,UAAU,CAAC;IAC5D,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;IACtC,MAAM,KAAK,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAC3C,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC;IACrD,IAAI,cAAc;QAAE,KAAK,CAAC,IAAI,CAAC,kCAAkC,cAAc,EAAE,CAAC,CAAC;IACnF,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC;IACnD,IAAI,aAAa;QAAE,KAAK,CAAC,IAAI,CAAC,8BAA8B,aAAa,EAAE,CAAC,CAAC;IAC7E,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,47 @@
1
+ import { type ActivationMode } from "../config.js";
2
+ /** Proposals whose affectedPaths carry approval authority. */
3
+ export interface EditGateApproval {
4
+ proposalId: number;
5
+ affectedPaths?: string[];
6
+ status: string;
7
+ }
8
+ export interface EditPathVerdict {
9
+ path: string;
10
+ /** True when the path matches a criticalPaths glob. */
11
+ critical: boolean;
12
+ /** May the agent edit this path under the configured mode? */
13
+ allowed: boolean;
14
+ reason: string;
15
+ /** Proposal whose affectedPaths cover this path, when relevant. */
16
+ coveredByProposalId?: number;
17
+ }
18
+ export interface EditGateDecision {
19
+ mode: ActivationMode;
20
+ /** True only when every requested path is allowed. */
21
+ allowed: boolean;
22
+ verdicts: readonly EditPathVerdict[];
23
+ /** Non-blocking nudge (suggest) or required next step (enforce). */
24
+ guidance: string | null;
25
+ }
26
+ /**
27
+ * Lexically normalize a repository-relative path so glob matching cannot be
28
+ * evaded by spelling variants (absolute paths, `./` prefixes, `a/../b`
29
+ * segments, duplicate slashes). Fail closed: anything that cannot be
30
+ * normalized to a deterministic in-repo path is refused, never allowed.
31
+ */
32
+ export declare function normalizeEditPath(raw: string): {
33
+ ok: true;
34
+ path: string;
35
+ } | {
36
+ ok: false;
37
+ reason: string;
38
+ };
39
+ export declare function evaluateEditGate(input: {
40
+ paths: readonly string[];
41
+ mode: ActivationMode;
42
+ criticalPaths: readonly string[];
43
+ approved: readonly EditGateApproval[];
44
+ }): EditGateDecision;
45
+ /** Human-readable rendering; pure formatting. */
46
+ export declare function formatEditGate(decision: EditGateDecision): string;
47
+ //# sourceMappingURL=edit-gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit-gate.d.ts","sourceRoot":"","sources":["../../src/governance/edit-gate.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,cAAc,EAAkB,MAAM,cAAc,CAAC;AAEnE,8DAA8D;AAC9D,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,QAAQ,EAAE,OAAO,CAAC;IAClB,8DAA8D;IAC9D,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,cAAc,CAAC;IACrB,sDAAsD;IACtD,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAC;IACrC,oEAAoE;IACpE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAID;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAuBzG;AAKD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,IAAI,EAAE,cAAc,CAAC;IACrB,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACvC,GAAG,gBAAgB,CAgGnB;AAED,iDAAiD;AACjD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAYjE"}