@guyghost/swarm-dao-core 0.3.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 (304) 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/index.d.ts +2 -0
  90. package/dist/commands/index.d.ts.map +1 -0
  91. package/dist/commands/index.js +2 -0
  92. package/dist/commands/index.js.map +1 -0
  93. package/dist/commands/registry.d.ts +46 -0
  94. package/dist/commands/registry.d.ts.map +1 -0
  95. package/dist/commands/registry.js +367 -0
  96. package/dist/commands/registry.js.map +1 -0
  97. package/dist/config.d.ts +17 -0
  98. package/dist/config.d.ts.map +1 -1
  99. package/dist/config.js +9 -1
  100. package/dist/config.js.map +1 -1
  101. package/dist/control/gates.d.ts +4 -1
  102. package/dist/control/gates.d.ts.map +1 -1
  103. package/dist/control/gates.js +22 -10
  104. package/dist/control/gates.js.map +1 -1
  105. package/dist/delivery/dependencies.d.ts.map +1 -1
  106. package/dist/delivery/dependencies.js +15 -7
  107. package/dist/delivery/dependencies.js.map +1 -1
  108. package/dist/delivery/dry-run.d.ts.map +1 -1
  109. package/dist/delivery/dry-run.js +3 -44
  110. package/dist/delivery/dry-run.js.map +1 -1
  111. package/dist/delivery/execution-isolation.d.ts +34 -0
  112. package/dist/delivery/execution-isolation.d.ts.map +1 -0
  113. package/dist/delivery/execution-isolation.js +97 -0
  114. package/dist/delivery/execution-isolation.js.map +1 -0
  115. package/dist/delivery/execution.d.ts.map +1 -1
  116. package/dist/delivery/execution.js +7 -5
  117. package/dist/delivery/execution.js.map +1 -1
  118. package/dist/delivery/index.d.ts +1 -0
  119. package/dist/delivery/index.d.ts.map +1 -1
  120. package/dist/delivery/index.js +1 -0
  121. package/dist/delivery/index.js.map +1 -1
  122. package/dist/delivery/plans.d.ts +3 -1
  123. package/dist/delivery/plans.d.ts.map +1 -1
  124. package/dist/delivery/plans.js +2 -2
  125. package/dist/delivery/plans.js.map +1 -1
  126. package/dist/domain/dry-run.d.ts +3 -0
  127. package/dist/domain/dry-run.d.ts.map +1 -0
  128. package/dist/domain/dry-run.js +28 -0
  129. package/dist/domain/dry-run.js.map +1 -0
  130. package/dist/domain/index.d.ts +6 -0
  131. package/dist/domain/index.d.ts.map +1 -0
  132. package/dist/domain/index.js +7 -0
  133. package/dist/domain/index.js.map +1 -0
  134. package/dist/governance/agents.d.ts +2 -0
  135. package/dist/governance/agents.d.ts.map +1 -1
  136. package/dist/governance/agents.js +148 -173
  137. package/dist/governance/agents.js.map +1 -1
  138. package/dist/governance/charter.d.ts +14 -0
  139. package/dist/governance/charter.d.ts.map +1 -0
  140. package/dist/governance/charter.js +65 -0
  141. package/dist/governance/charter.js.map +1 -0
  142. package/dist/governance/delegation.machine.d.ts +316 -0
  143. package/dist/governance/delegation.machine.d.ts.map +1 -0
  144. package/dist/governance/delegation.machine.js +387 -0
  145. package/dist/governance/delegation.machine.js.map +1 -0
  146. package/dist/governance/delegation.utils.d.ts +55 -0
  147. package/dist/governance/delegation.utils.d.ts.map +1 -0
  148. package/dist/governance/delegation.utils.js +157 -0
  149. package/dist/governance/delegation.utils.js.map +1 -0
  150. package/dist/governance/edit-gate.d.ts +47 -0
  151. package/dist/governance/edit-gate.d.ts.map +1 -0
  152. package/dist/governance/edit-gate.js +156 -0
  153. package/dist/governance/edit-gate.js.map +1 -0
  154. package/dist/governance/index.d.ts +3 -0
  155. package/dist/governance/index.d.ts.map +1 -1
  156. package/dist/governance/index.js +3 -0
  157. package/dist/governance/index.js.map +1 -1
  158. package/dist/governance/lifecycle.d.ts +0 -6
  159. package/dist/governance/lifecycle.d.ts.map +1 -1
  160. package/dist/governance/lifecycle.js +7 -31
  161. package/dist/governance/lifecycle.js.map +1 -1
  162. package/dist/governance/proposal.machine.d.ts +2 -130
  163. package/dist/governance/proposal.machine.d.ts.map +1 -1
  164. package/dist/governance/proposal.machine.js +2 -377
  165. package/dist/governance/proposal.machine.js.map +1 -1
  166. package/dist/governance/proposal.utils.d.ts +22 -165
  167. package/dist/governance/proposal.utils.d.ts.map +1 -1
  168. package/dist/governance/proposal.utils.js +52 -119
  169. package/dist/governance/proposal.utils.js.map +1 -1
  170. package/dist/governance/scoring.d.ts.map +1 -1
  171. package/dist/governance/scoring.js +36 -16
  172. package/dist/governance/scoring.js.map +1 -1
  173. package/dist/governance/voting.d.ts.map +1 -1
  174. package/dist/governance/voting.js +24 -14
  175. package/dist/governance/voting.js.map +1 -1
  176. package/dist/host-tools/github-config.d.ts.map +1 -1
  177. package/dist/host-tools/github-config.js +17 -5
  178. package/dist/host-tools/github-config.js.map +1 -1
  179. package/dist/host-tools/handlers.d.ts +14 -11
  180. package/dist/host-tools/handlers.d.ts.map +1 -1
  181. package/dist/host-tools/handlers.js +204 -335
  182. package/dist/host-tools/handlers.js.map +1 -1
  183. package/dist/host-tools/messages.d.ts +10 -4
  184. package/dist/host-tools/messages.d.ts.map +1 -1
  185. package/dist/host-tools/messages.js +14 -17
  186. package/dist/host-tools/messages.js.map +1 -1
  187. package/dist/index.d.ts +6 -0
  188. package/dist/index.d.ts.map +1 -1
  189. package/dist/index.js +12 -0
  190. package/dist/index.js.map +1 -1
  191. package/dist/integrations/github.d.ts.map +1 -1
  192. package/dist/integrations/github.js +5 -2
  193. package/dist/integrations/github.js.map +1 -1
  194. package/dist/integrations/http.d.ts +12 -1
  195. package/dist/integrations/http.d.ts.map +1 -1
  196. package/dist/integrations/http.js +114 -17
  197. package/dist/integrations/http.js.map +1 -1
  198. package/dist/intelligence/delegation.d.ts +41 -0
  199. package/dist/intelligence/delegation.d.ts.map +1 -0
  200. package/dist/intelligence/delegation.js +162 -0
  201. package/dist/intelligence/delegation.js.map +1 -0
  202. package/dist/intelligence/index.d.ts +2 -0
  203. package/dist/intelligence/index.d.ts.map +1 -1
  204. package/dist/intelligence/index.js +2 -0
  205. package/dist/intelligence/index.js.map +1 -1
  206. package/dist/intelligence/model.d.ts +28 -2
  207. package/dist/intelligence/model.d.ts.map +1 -1
  208. package/dist/intelligence/model.js +36 -3
  209. package/dist/intelligence/model.js.map +1 -1
  210. package/dist/intelligence/roundtable.d.ts +4 -2
  211. package/dist/intelligence/roundtable.d.ts.map +1 -1
  212. package/dist/intelligence/roundtable.js +2 -2
  213. package/dist/intelligence/roundtable.js.map +1 -1
  214. package/dist/intelligence/sequential.d.ts +36 -0
  215. package/dist/intelligence/sequential.d.ts.map +1 -0
  216. package/dist/intelligence/sequential.js +91 -0
  217. package/dist/intelligence/sequential.js.map +1 -0
  218. package/dist/intelligence/swarm.d.ts +19 -4
  219. package/dist/intelligence/swarm.d.ts.map +1 -1
  220. package/dist/intelligence/swarm.js +107 -53
  221. package/dist/intelligence/swarm.js.map +1 -1
  222. package/dist/intelligence/synthesis.d.ts.map +1 -1
  223. package/dist/intelligence/synthesis.js +16 -4
  224. package/dist/intelligence/synthesis.js.map +1 -1
  225. package/dist/models/graph-engineering.machine.d.ts +219 -0
  226. package/dist/models/graph-engineering.machine.d.ts.map +1 -0
  227. package/dist/models/graph-engineering.machine.js +214 -0
  228. package/dist/models/graph-engineering.machine.js.map +1 -0
  229. package/dist/models/improvement-loop.machine.d.ts +239 -0
  230. package/dist/models/improvement-loop.machine.d.ts.map +1 -0
  231. package/dist/models/improvement-loop.machine.js +254 -0
  232. package/dist/models/improvement-loop.machine.js.map +1 -0
  233. package/dist/models/index.d.ts +5 -0
  234. package/dist/models/index.d.ts.map +1 -0
  235. package/dist/models/index.js +5 -0
  236. package/dist/models/index.js.map +1 -0
  237. package/dist/models/product-loop.machine.d.ts +531 -0
  238. package/dist/models/product-loop.machine.d.ts.map +1 -0
  239. package/dist/models/product-loop.machine.js +699 -0
  240. package/dist/models/product-loop.machine.js.map +1 -0
  241. package/dist/models/proposal.machine.d.ts +82 -0
  242. package/dist/models/proposal.machine.d.ts.map +1 -0
  243. package/dist/models/proposal.machine.js +68 -0
  244. package/dist/models/proposal.machine.js.map +1 -0
  245. package/dist/observability/attention.d.ts +40 -0
  246. package/dist/observability/attention.d.ts.map +1 -0
  247. package/dist/observability/attention.js +119 -0
  248. package/dist/observability/attention.js.map +1 -0
  249. package/dist/observability/index.d.ts +1 -0
  250. package/dist/observability/index.d.ts.map +1 -1
  251. package/dist/observability/index.js +1 -0
  252. package/dist/observability/index.js.map +1 -1
  253. package/dist/observability/logging.d.ts +6 -0
  254. package/dist/observability/logging.d.ts.map +1 -1
  255. package/dist/observability/logging.js +36 -6
  256. package/dist/observability/logging.js.map +1 -1
  257. package/dist/observability/metrics.d.ts +7 -0
  258. package/dist/observability/metrics.d.ts.map +1 -1
  259. package/dist/observability/metrics.js +179 -43
  260. package/dist/observability/metrics.js.map +1 -1
  261. package/dist/persistence.d.ts +5 -6
  262. package/dist/persistence.d.ts.map +1 -1
  263. package/dist/persistence.js +197 -140
  264. package/dist/persistence.js.map +1 -1
  265. package/dist/ports/clock.d.ts +7 -0
  266. package/dist/ports/clock.d.ts.map +1 -0
  267. package/dist/ports/clock.js +5 -0
  268. package/dist/ports/clock.js.map +1 -0
  269. package/dist/ports/host.d.ts +8 -0
  270. package/dist/ports/host.d.ts.map +1 -0
  271. package/dist/ports/host.js +2 -0
  272. package/dist/ports/host.js.map +1 -0
  273. package/dist/ports/index.d.ts +5 -0
  274. package/dist/ports/index.d.ts.map +1 -0
  275. package/dist/ports/index.js +5 -0
  276. package/dist/ports/index.js.map +1 -0
  277. package/dist/ports/repository.d.ts +7 -0
  278. package/dist/ports/repository.d.ts.map +1 -0
  279. package/dist/ports/repository.js +2 -0
  280. package/dist/ports/repository.js.map +1 -0
  281. package/dist/ports/workspace.d.ts +14 -0
  282. package/dist/ports/workspace.d.ts.map +1 -0
  283. package/dist/ports/workspace.js +14 -0
  284. package/dist/ports/workspace.js.map +1 -0
  285. package/dist/presenters/index.d.ts +2 -0
  286. package/dist/presenters/index.d.ts.map +1 -0
  287. package/dist/presenters/index.js +2 -0
  288. package/dist/presenters/index.js.map +1 -0
  289. package/dist/presenters/proposal.presenter.d.ts +30 -0
  290. package/dist/presenters/proposal.presenter.d.ts.map +1 -0
  291. package/dist/presenters/proposal.presenter.js +47 -0
  292. package/dist/presenters/proposal.presenter.js.map +1 -0
  293. package/dist/types/index.d.ts +70 -0
  294. package/dist/types/index.d.ts.map +1 -1
  295. package/dist/types/index.js +12 -0
  296. package/dist/types/index.js.map +1 -1
  297. package/dist/utils/host.d.ts.map +1 -1
  298. package/dist/utils/host.js +77 -6
  299. package/dist/utils/host.js.map +1 -1
  300. package/dist/utils/security.d.ts +7 -1
  301. package/dist/utils/security.d.ts.map +1 -1
  302. package/dist/utils/security.js +18 -2
  303. package/dist/utils/security.js.map +1 -1
  304. package/package.json +13 -1
@@ -1,126 +1,59 @@
1
+ // ============================================================
2
+ // Swarm DAO Core — Proposal Dispatch Service
3
+ // ------------------------------------------------------------
4
+ // The only sanctioned way to mutate `proposal.status`. Every
5
+ // runtime path (host-tools, execution, pi/opencode adapters) goes
6
+ // through `dispatchProposalEvent`: it rehydrates an actor at the
7
+ // proposal's persisted status, asks the machine whether the event
8
+ // is permitted (guards included), and only then writes the new
9
+ // status back to the proposal. There is no other status writer.
10
+ // ============================================================
1
11
  import { createActor } from "xstate";
2
- import { proposalMachine, } from "./proposal.machine.js";
3
- /**
4
- * Creates an XState actor for a proposal
5
- */
6
- export function createProposalActor(proposal, initialStage) {
7
- const initialContext = {
8
- proposal,
9
- deliberationCount: 0,
10
- retryCount: 0,
11
- lastTransitionTime: new Date().toISOString(),
12
- stage: initialStage ?? "intake",
13
- status: proposal.status,
14
- };
15
- const actor = createActor(proposalMachine, {
16
- input: initialContext,
12
+ import { createProposalMachine, isProposalFinal, } from "../models/proposal.machine.js";
13
+ import { systemClock } from "../ports/clock.js";
14
+ /**
15
+ * Apply a lifecycle event to a proposal. Enforces the machine's
16
+ * topology AND its guards. On success, `proposal.status` (and
17
+ * `proposal.resolvedAt` for terminal states) is updated in place.
18
+ *
19
+ * Returns `{ ok: false, error }` when the event is not permitted
20
+ * from the current status — the caller must surface that error and
21
+ * MUST NOT mutate the status itself.
22
+ */
23
+ export function dispatchProposalEvent(proposal, event, options = {}) {
24
+ // Terminal states are final: no event may leave them. This guard
25
+ // makes the invariant explicit rather than relying on the actor's
26
+ // "done" status, so the model stays correct regardless of how the
27
+ // XState runtime treats root-level global transitions once done.
28
+ if (isProposalFinal(proposal.status)) {
29
+ return {
30
+ ok: false,
31
+ error: `Proposal is in terminal status "${proposal.status}"; no transitions are permitted.`,
32
+ };
33
+ }
34
+ const transitionTime = (options.clock ?? systemClock).now();
35
+ const machine = createProposalMachine(proposal.status);
36
+ const actor = createActor(machine, {
37
+ input: {
38
+ proposal,
39
+ transitionTime,
40
+ lastTransitionTime: transitionTime,
41
+ },
17
42
  });
18
43
  actor.start();
19
- return actor;
20
- }
21
- /**
22
- * Moves a proposal through its states sequentially
23
- */
24
- export function sendProposalEvent(actor, event) {
25
- actor.send(event);
26
- return actor.getSnapshot();
27
- }
28
- /**
29
- * Returns the machine's current context
30
- */
31
- export function getProposalContext(actor) {
32
- return actor.getSnapshot().context;
33
- }
34
- /**
35
- * Returns the machine's current state
36
- */
37
- export function getProposalState(actor) {
38
- return actor.getSnapshot().value;
39
- }
40
- /**
41
- * Checks whether the proposal can take a given transition
42
- */
43
- export function canSendProposalEvent(actor, eventType) {
44
- try {
45
- if (eventType === "ERROR") {
46
- return false;
47
- }
48
- const state = actor.getSnapshot();
49
- return state.can({ type: eventType });
44
+ const before = actor.getSnapshot();
45
+ if (!before.can(event)) {
46
+ return {
47
+ ok: false,
48
+ error: `Event "${event.type}" is not permitted from status "${proposal.status}".`,
49
+ };
50
50
  }
51
- catch {
52
- return false;
53
- }
54
- }
55
- /**
56
- * Returns all possible transitions from the current state
57
- */
58
- export function getAvailableProposalEvents(actor) {
59
- const eventTypes = [
60
- "SUBMIT",
61
- "QUALIFY",
62
- "ANALYZE",
63
- "CRITIQUE",
64
- "SCORE",
65
- "SEND_TO_COUNCIL",
66
- "VOTE",
67
- "APPROVE",
68
- "REJECT",
69
- "REQUEST_SPEC",
70
- "REVIEW_SPEC",
71
- "APPROVE_SPEC",
72
- "EXECUTION_GATE_PASS",
73
- "EXECUTION_GATE_FAIL",
74
- "EXECUTE",
75
- "EXECUTION_SUCCESS",
76
- "EXECUTION_FAILED",
77
- "POSTMORTEM",
78
- "RETRY",
79
- "DISCARD",
80
- ];
81
- return eventTypes.filter((eventType) => canSendProposalEvent(actor, eventType));
82
- }
83
- /**
84
- * Helper for auto-progressing a proposal through the pipeline
85
- * Uses linear progression events
86
- */
87
- export function progressProposal(actor) {
88
- const current = actor.getSnapshot().value;
89
- const progressMap = {
90
- draft: "SUBMIT",
91
- intake: "QUALIFY",
92
- qualification: "ANALYZE",
93
- analysis: "CRITIQUE",
94
- critique: "SCORE",
95
- scoring: "SEND_TO_COUNCIL",
96
- council: "VOTE",
97
- voting: "APPROVE",
98
- specDraft: "REQUEST_SPEC",
99
- specReview: "APPROVE_SPEC",
100
- executionGate: "EXECUTION_GATE_PASS",
101
- };
102
- const nextEventType = progressMap[String(current)];
103
- if (nextEventType && canSendProposalEvent(actor, nextEventType)) {
104
- const event = { type: nextEventType };
105
- sendProposalEvent(actor, event);
106
- return nextEventType;
51
+ actor.send(event);
52
+ const status = actor.getSnapshot().value;
53
+ proposal.status = status;
54
+ if (isProposalFinal(status) && !proposal.resolvedAt) {
55
+ proposal.resolvedAt = transitionTime;
107
56
  }
108
- return null;
109
- }
110
- /**
111
- * Creates a helper to trigger rejection events easily
112
- */
113
- export function rejectProposal(actor) {
114
- sendProposalEvent(actor, { type: "REJECT" });
115
- return getProposalState(actor);
116
- }
117
- /**
118
- * Listener for observing state changes
119
- */
120
- export function onProposalStateChange(actor, callback) {
121
- const subscription = actor.subscribe((snapshot) => {
122
- callback(String(snapshot.value), snapshot.context);
123
- });
124
- return () => subscription.unsubscribe();
57
+ return { ok: true, status };
125
58
  }
126
59
  //# sourceMappingURL=proposal.utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"proposal.utils.js","sourceRoot":"","sources":["../../src/governance/proposal.utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proposal.utils.js","sourceRoot":"","sources":["../../src/governance/proposal.utils.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,6CAA6C;AAC7C,+DAA+D;AAC/D,6DAA6D;AAC7D,kEAAkE;AAClE,iEAAiE;AACjE,kEAAkE;AAClE,+DAA+D;AAC/D,gEAAgE;AAChE,+DAA+D;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EACL,qBAAqB,EACrB,eAAe,GAGhB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKhD;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAAkB,EAClB,KAAoB,EACpB,UAAiC,EAAE;IAEnC,iEAAiE;IACjE,kEAAkE;IAClE,kEAAkE;IAClE,iEAAiE;IACjE,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACrC,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,mCAAmC,QAAQ,CAAC,MAAM,kCAAkC;SAC5F,CAAC;IACJ,CAAC;IAED,MAAM,cAAc,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,WAAW,CAAC,CAAC,GAAG,EAAE,CAAC;IAC5D,MAAM,OAAO,GAAG,qBAAqB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,EAAE;QACjC,KAAK,EAAE;YACL,QAAQ;YACR,cAAc;YACd,kBAAkB,EAAE,cAAc;SACJ;KACjC,CAAC,CAAC;IACH,KAAK,CAAC,KAAK,EAAE,CAAC;IAEd,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IACnC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,UAAU,KAAK,CAAC,IAAI,mCAAmC,QAAQ,CAAC,MAAM,IAAI;SAClF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,KAAuB,CAAC;IAE3D,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,IAAI,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QACpD,QAAQ,CAAC,UAAU,GAAG,cAAc,CAAC;IACvC,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC9B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"scoring.d.ts","sourceRoot":"","sources":["../../src/governance/scoring.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAY,MAAM,mBAAmB,CAAC;AAcrG,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CASzE;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,cAAc,CAqD9E;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAgBlE;AAID,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAS/G;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAYvE;AAED,wBAAgB,UAAU,CACxB,SAAS,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,SAAS,CAAA;CAAE,EAAE,GACjD;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAWtD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAExD"}
1
+ {"version":3,"file":"scoring.d.ts","sourceRoot":"","sources":["../../src/governance/scoring.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAY,MAAM,mBAAmB,CAAC;AAkBrG,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAYzE;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,cAAc,CAmE9E;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAgBlE;AAID,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAS/G;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAYvE;AAED,wBAAgB,UAAU,CACxB,SAAS,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,SAAS,CAAA;CAAE,EAAE,GACjD;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAWtD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAExD"}
@@ -4,19 +4,27 @@
4
4
  import { RISK_ZONE_LABELS, SCORING_WEIGHTS } from "../types/index.js";
5
5
  // ── Composite Score ──────────────────────────────────────────
6
6
  const _SCORE_PATTERN = /##\s*Composite Score Inputs \(0-10\)\s*\n([\s\S]*?)(?=\n##|$)/i;
7
- const AXIS_PATTERNS = {
8
- userImpact: /userImpact[:\s]+(\d+(?:\.\d+)?)/i,
9
- businessImpact: /businessImpact[:\s]+(\d+(?:\.\d+)?)/i,
10
- effort: /effort[:\s]+(\d+(?:\.\d+)?)/i,
11
- securityRisk: /securityRisk[:\s]+(\d+(?:\.\d+)?)/i,
12
- confidence: /confidence[:\s]+(\d+(?:\.\d+)?)/i,
7
+ // Single combined alternation scanned once via matchAll, replacing the former
8
+ // per-axis loop (5 full regex scans of the content). The separator `[:\s]+` is
9
+ // preserved verbatim so `key: n`, `key:n`, and `key n` keep matching exactly.
10
+ const SCORE_TOKEN_RE = /(userImpact|businessImpact|effort|securityRisk|confidence)[:\s]+(\d+(?:\.\d+)?)/gi;
11
+ const AXIS_KEY_BY_LOWER = {
12
+ userimpact: "userImpact",
13
+ businessimpact: "businessImpact",
14
+ effort: "effort",
15
+ securityrisk: "securityRisk",
16
+ confidence: "confidence",
13
17
  };
14
18
  export function parseScoresFromOutput(content) {
15
19
  const scores = {};
16
- for (const [axis, pattern] of Object.entries(AXIS_PATTERNS)) {
17
- const match = content?.match(pattern);
18
- if (match) {
19
- scores[axis] = Math.min(10, Math.max(0, parseFloat(match[1] ?? "0")));
20
+ if (!content)
21
+ return scores;
22
+ for (const match of content.matchAll(SCORE_TOKEN_RE)) {
23
+ const axis = AXIS_KEY_BY_LOWER[(match[1] ?? "").toLowerCase()];
24
+ // First occurrence wins, mirroring the previous non-global per-axis `.match`,
25
+ // which returned only the first match per axis.
26
+ if (axis !== undefined && !(axis in scores)) {
27
+ scores[axis] = Math.min(10, Math.max(0, parseFloat(match[2] ?? "0")));
20
28
  }
21
29
  }
22
30
  return scores;
@@ -38,13 +46,25 @@ export function calculateCompositeScore(outputs) {
38
46
  breakdown: "No valid scores provided",
39
47
  };
40
48
  }
41
- const avg = (key) => validScores.reduce((sum, s) => sum + (s[key] || 0), 0) / validScores.length;
49
+ // Single reduce accumulating per-axis sums, then one division each
50
+ // replaces the former five separate `reduce` passes over validScores.
51
+ // Addition order is identical, so floating-point results are bit-for-bit
52
+ // unchanged.
53
+ const sums = validScores.reduce((acc, s) => {
54
+ acc.userImpact += s.userImpact || 0;
55
+ acc.businessImpact += s.businessImpact || 0;
56
+ acc.effort += s.effort || 0;
57
+ acc.securityRisk += s.securityRisk || 0;
58
+ acc.confidence += s.confidence || 0;
59
+ return acc;
60
+ }, { userImpact: 0, businessImpact: 0, effort: 0, securityRisk: 0, confidence: 0 });
61
+ const n = validScores.length;
42
62
  const axes = {
43
- userImpact: avg("userImpact"),
44
- businessImpact: avg("businessImpact"),
45
- effort: avg("effort"),
46
- securityRisk: avg("securityRisk"),
47
- confidence: avg("confidence"),
63
+ userImpact: sums.userImpact / n,
64
+ businessImpact: sums.businessImpact / n,
65
+ effort: sums.effort / n,
66
+ securityRisk: sums.securityRisk / n,
67
+ confidence: sums.confidence / n,
48
68
  };
49
69
  // Invert effort and securityRisk (lower is better)
50
70
  const normalizedEffort = 10 - axes.effort;
@@ -1 +1 @@
1
- {"version":3,"file":"scoring.js","sourceRoot":"","sources":["../../src/governance/scoring.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scoring.js","sourceRoot":"","sources":["../../src/governance/scoring.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"voting.d.ts","sourceRoot":"","sources":["../../src/governance/voting.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAgB,MAAM,mBAAmB,CAAC;AAW3G,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,IAAI,GAAG,SAAS,CAclB;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,CAG9E;AAID,wBAAgB,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,GAAG,WAAW,CAgD7E;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAe5D"}
1
+ {"version":3,"file":"voting.d.ts","sourceRoot":"","sources":["../../src/governance/voting.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAgB,MAAM,mBAAmB,CAAC;AAW3G,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,IAAI,GAAG,SAAS,CAclB;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,CAG9E;AAID,wBAAgB,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,GAAG,WAAW,CAuD7E;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAe5D"}
@@ -29,21 +29,31 @@ export function parseVoteFromAgentOutput(output) {
29
29
  export function tallyVotes(proposal, config) {
30
30
  const votes = proposal.votes || [];
31
31
  const totalAgents = proposal.agentOutputs?.length || votes.length;
32
- const weightedFor = votes
33
- .filter((v) => v.position === "for")
34
- .reduce((sum, v) => sum + normalizeVoteWeight(v.weight), 0);
35
- const weightedAgainst = votes
36
- .filter((v) => v.position === "against")
37
- .reduce((sum, v) => sum + normalizeVoteWeight(v.weight), 0);
38
- const weightedAbstain = votes
39
- .filter((v) => v.position === "abstain")
40
- .reduce((sum, v) => sum + normalizeVoteWeight(v.weight), 0);
32
+ // Single pass over votes: accumulate weighted totals + voting-agent count.
33
+ let weightedFor = 0;
34
+ let weightedAgainst = 0;
35
+ let weightedAbstain = 0;
36
+ let totalObservedWeight = 0;
37
+ let votingAgents = 0;
38
+ for (const v of votes) {
39
+ const w = normalizeVoteWeight(v.weight);
40
+ totalObservedWeight += w;
41
+ if (v.position === "for") {
42
+ weightedFor += w;
43
+ votingAgents++;
44
+ }
45
+ else if (v.position === "against") {
46
+ weightedAgainst += w;
47
+ votingAgents++;
48
+ }
49
+ else {
50
+ weightedAbstain += w;
51
+ }
52
+ }
41
53
  const totalVotingWeight = weightedFor + weightedAgainst + weightedAbstain;
42
- const votingAgents = votes.filter((v) => v.position !== "abstain").length;
43
- // Quorum check: % of total agent weight that participated
44
- const totalPossibleWeight = totalAgents > 0
45
- ? votes.reduce((sum, v) => sum + normalizeVoteWeight(v.weight), 0) + (totalAgents - votes.length) * 1
46
- : totalVotingWeight;
54
+ // Quorum check: % of total agent weight that participated.
55
+ // Unobserved agents (totalAgents - votes.length) each contribute default weight 1.
56
+ const totalPossibleWeight = totalAgents > 0 ? totalObservedWeight + (totalAgents - votes.length) * 1 : totalVotingWeight;
47
57
  const quorumPercent = totalPossibleWeight > 0 ? Math.round((totalVotingWeight / totalPossibleWeight) * 100) : 0;
48
58
  const quorumMet = quorumPercent >= config.quorumPercent;
49
59
  // Approval: % of non-abstain weight that voted for
@@ -1 +1 @@
1
- {"version":3,"file":"voting.js","sourceRoot":"","sources":["../../src/governance/voting.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"voting.js","sourceRoot":"","sources":["../../src/governance/voting.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"github-config.d.ts","sourceRoot":"","sources":["../../src/host-tools/github-config.ts"],"names":[],"mappings":"AAIA,wBAAsB,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAenF;AAED,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,MAAM,EACf,YAAY,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC3D,OAAO,CAAC,IAAI,CAAC,CAYf"}
1
+ {"version":3,"file":"github-config.d.ts","sourceRoot":"","sources":["../../src/host-tools/github-config.ts"],"names":[],"mappings":"AAKA,wBAAsB,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAyBnF;AAED,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,MAAM,EACf,YAAY,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC3D,OAAO,CAAC,IAAI,CAAC,CAgBf"}
@@ -1,18 +1,29 @@
1
1
  import { promises as fs } from "node:fs";
2
2
  import path from "node:path";
3
3
  import { configureGitHub, isGitHubEnabled } from "../integrations/github.js";
4
+ import { logger } from "../observability/logging.js";
4
5
  export async function loadGitHubConfigFromDaoRoot(daoRoot) {
5
6
  const configPath = path.join(daoRoot, "config.json");
6
7
  try {
7
8
  const configData = JSON.parse(await fs.readFile(configPath, "utf-8"));
8
9
  const github = configData.github;
9
10
  if (github?.owner && github?.repo) {
10
- configureGitHub({ ...github, enabled: github.enabled ?? true });
11
+ // The persisted token is redacted on save; the live token comes from
12
+ // DAO_GITHUB_TOKEN (the mechanism the config output advertises). A
13
+ // redacted literal must never be sent as a credential.
14
+ const persisted = typeof github.token === "string" ? github.token : undefined;
15
+ const token = persisted && persisted !== "[REDACTED]" ? persisted : process.env.DAO_GITHUB_TOKEN;
16
+ if (!token) {
17
+ logger.debug("loadGitHubConfigFromDaoRoot: token redacted and DAO_GITHUB_TOKEN not set");
18
+ return false;
19
+ }
20
+ configureGitHub({ owner: github.owner, repo: github.repo, token, enabled: github.enabled ?? true });
11
21
  return isGitHubEnabled();
12
22
  }
13
23
  }
14
- catch {
15
- // no config file
24
+ catch (error) {
25
+ // Missing or invalid config is a normal cold-start state; log at debug.
26
+ logger.debug("loadGitHubConfigFromDaoRoot: no config (%s)", error instanceof Error ? error.message : String(error));
16
27
  }
17
28
  return false;
18
29
  }
@@ -23,8 +34,9 @@ export async function saveGitHubConfigToDaoRoot(daoRoot, githubConfig) {
23
34
  try {
24
35
  configData = JSON.parse(await fs.readFile(configPath, "utf-8"));
25
36
  }
26
- catch {
27
- // no existing config
37
+ catch (error) {
38
+ // No existing config yet; this is expected on first write.
39
+ logger.debug("saveGitHubConfigToDaoRoot: starting fresh config (%s)", error instanceof Error ? error.message : String(error));
28
40
  }
29
41
  configData.github = { ...githubConfig, enabled: true, token: "[REDACTED]" };
30
42
  await fs.writeFile(configPath, JSON.stringify(configData, null, 2), "utf-8");
@@ -1 +1 @@
1
- {"version":3,"file":"github-config.js","sourceRoot":"","sources":["../../src/host-tools/github-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE7E,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,OAAe;IAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IACrD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAEnE,CAAC;QACF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QACjC,IAAI,MAAM,EAAE,KAAK,IAAI,MAAM,EAAE,IAAI,EAAE,CAAC;YAClC,eAAe,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC,CAAC;YAChE,OAAO,eAAe,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,iBAAiB;IACnB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,OAAe,EACf,YAA4D;IAE5D,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IACrD,IAAI,UAAU,GAA4B,EAAE,CAAC;IAC7C,IAAI,CAAC;QACH,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAA4B,CAAC;IAC7F,CAAC;IAAC,MAAM,CAAC;QACP,qBAAqB;IACvB,CAAC;IACD,UAAU,CAAC,MAAM,GAAG,EAAE,GAAG,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IAC5E,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC7E,eAAe,CAAC,EAAE,GAAG,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AACtD,CAAC"}
1
+ {"version":3,"file":"github-config.js","sourceRoot":"","sources":["../../src/host-tools/github-config.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { DaoStateRepositoryPort } from "../ports/repository.js";
1
2
  import type { AmendmentPayload, HostAdapter, ProposalType } from "../types/index.js";
2
3
  import { PROPOSAL_TYPES } from "../types/index.js";
3
4
  import { DAO_ONBOARDING_MESSAGE } from "./messages.js";
@@ -12,6 +13,7 @@ export interface DaoToolContext {
12
13
  failOnGateFailure?: boolean;
13
14
  getSessionModel?: () => string | undefined;
14
15
  hostDefaultModel?: string | undefined;
16
+ repository?: DaoStateRepositoryPort;
15
17
  onDeliberationProgress?: (update: {
16
18
  agentName: string;
17
19
  phase: string;
@@ -35,31 +37,32 @@ export interface DaoProposeArgs {
35
37
  rollbackConditions?: string[];
36
38
  affectedPaths?: string[];
37
39
  }
38
- export declare function handleDaoPropose(args: DaoProposeArgs): Promise<string>;
40
+ export declare function handleDaoPropose(args: DaoProposeArgs, repository?: DaoStateRepositoryPort): Promise<string>;
39
41
  export declare function handleDaoDeliberate(ctx: DaoToolContext, proposalId: number): Promise<string>;
40
42
  export declare function handleDaoRecordOutputs(ctx: DaoToolContext, proposalId: number, outputs: RecordOutputInput[]): Promise<string>;
41
43
  export declare function handleDaoControl(ctx: DaoToolContext, proposalId: number): Promise<string>;
42
- export declare function handleDaoExecute(proposalId: number): Promise<string>;
44
+ export declare function handleDaoExecute(ctx: DaoToolContext, proposalId: number): Promise<string>;
43
45
  export declare function handleDaoShip(ctx: DaoToolContext, proposalId: number, options?: {
44
46
  cascade?: boolean;
45
47
  force?: boolean;
46
48
  }): Promise<string>;
49
+ export declare function handleDaoCheckEdit(ctx: DaoToolContext, paths: readonly string[]): Promise<string>;
47
50
  export declare function handleDaoList(): Promise<string>;
48
51
  export declare function handleDaoAgents(): Promise<string>;
49
52
  export declare function handleDaoPlan(proposalId: number, controlToolName: ControlToolName): Promise<string>;
50
53
  export declare function handleDaoArtefacts(proposalId: number): Promise<string>;
51
- export declare function handleDaoDryRun(proposalId: number): Promise<string>;
52
- export declare function handleDaoRollback(proposalId: number): Promise<string>;
53
- export declare function handleDaoDashboard(): Promise<string>;
54
+ export declare function handleDaoDryRun(proposalId: number, repository?: DaoStateRepositoryPort): Promise<string>;
55
+ export declare function handleDaoRollback(proposalId: number, repository?: DaoStateRepositoryPort): Promise<string>;
56
+ export declare function handleDaoDashboard(repository?: DaoStateRepositoryPort): Promise<string>;
54
57
  export declare function handleDaoRoundtable(ctx: DaoToolContext): Promise<string>;
55
58
  export declare function handleDaoAudit(proposalId?: number): Promise<string>;
56
- export declare function handleDaoRate(proposalId: number, score: 1 | 2 | 3 | 4 | 5, comment: string): Promise<string>;
59
+ export declare function handleDaoRate(proposalId: number, score: 1 | 2 | 3 | 4 | 5, comment: string, repository?: DaoStateRepositoryPort): Promise<string>;
57
60
  export declare function handleDaoUpdateProposal(proposalId: number, fields: {
58
61
  problemStatement?: string;
59
62
  acceptanceCriteria?: string[];
60
63
  successMetrics?: string[];
61
64
  rollbackConditions?: string[];
62
- }): Promise<string>;
65
+ }, repository?: DaoStateRepositoryPort): Promise<string>;
63
66
  export interface DaoAmendmentArgs {
64
67
  title: string;
65
68
  description: string;
@@ -75,13 +78,13 @@ export interface DaoAmendmentArgs {
75
78
  addGates?: string[];
76
79
  removeGates?: string[];
77
80
  }
78
- export declare function handleDaoProposeAmendment(args: DaoAmendmentArgs): Promise<string>;
79
- export declare function handleDaoConfigGithub(_ctx: DaoToolContext, args: {
81
+ export declare function handleDaoProposeAmendment(args: DaoAmendmentArgs, repository?: DaoStateRepositoryPort): Promise<string>;
82
+ export declare function handleDaoConfigGithub(ctx: DaoToolContext, args: {
80
83
  token: string;
81
84
  owner: string;
82
85
  repo: string;
83
86
  }): Promise<string>;
84
- export declare function handleDaoGithubCreateBranch(_ctx: DaoToolContext, proposalId: number): Promise<string>;
85
- export declare function handleDaoGithubOpenPr(_ctx: DaoToolContext, proposalId: number, headBranch: string): Promise<string>;
87
+ export declare function handleDaoGithubCreateBranch(ctx: DaoToolContext, proposalId: number): Promise<string>;
88
+ export declare function handleDaoGithubOpenPr(ctx: DaoToolContext, proposalId: number, headBranch: string): Promise<string>;
86
89
  export { DAO_ONBOARDING_MESSAGE, PROPOSAL_TYPES };
87
90
  //# sourceMappingURL=handlers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/host-tools/handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/host-tools/handlers.ts"],"names":[],"mappings":"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"}