@guyghost/swarm-dao-core 0.4.0 → 0.6.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 (276) 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 +7 -0
  10. package/dist/adapters/index.d.ts.map +1 -0
  11. package/dist/adapters/index.js +7 -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/adapters/ship-audit/fs-ship-audit.store.d.ts +12 -0
  26. package/dist/adapters/ship-audit/fs-ship-audit.store.d.ts.map +1 -0
  27. package/dist/adapters/ship-audit/fs-ship-audit.store.js +69 -0
  28. package/dist/adapters/ship-audit/fs-ship-audit.store.js.map +1 -0
  29. package/dist/application/index.d.ts +16 -0
  30. package/dist/application/index.d.ts.map +1 -0
  31. package/dist/application/index.js +16 -0
  32. package/dist/application/index.js.map +1 -0
  33. package/dist/application/initialize-dao.use-case.d.ts +20 -0
  34. package/dist/application/initialize-dao.use-case.d.ts.map +1 -0
  35. package/dist/application/initialize-dao.use-case.js +17 -0
  36. package/dist/application/initialize-dao.use-case.js.map +1 -0
  37. package/dist/application/proposals/control-proposal.use-case.d.ts +23 -0
  38. package/dist/application/proposals/control-proposal.use-case.d.ts.map +1 -0
  39. package/dist/application/proposals/control-proposal.use-case.js +53 -0
  40. package/dist/application/proposals/control-proposal.use-case.js.map +1 -0
  41. package/dist/application/proposals/create-amendment-proposal.use-case.d.ts +25 -0
  42. package/dist/application/proposals/create-amendment-proposal.use-case.d.ts.map +1 -0
  43. package/dist/application/proposals/create-amendment-proposal.use-case.js +39 -0
  44. package/dist/application/proposals/create-amendment-proposal.use-case.js.map +1 -0
  45. package/dist/application/proposals/create-proposal.use-case.d.ts +34 -0
  46. package/dist/application/proposals/create-proposal.use-case.d.ts.map +1 -0
  47. package/dist/application/proposals/create-proposal.use-case.js +49 -0
  48. package/dist/application/proposals/create-proposal.use-case.js.map +1 -0
  49. package/dist/application/proposals/deliberate-proposal.use-case.d.ts +35 -0
  50. package/dist/application/proposals/deliberate-proposal.use-case.d.ts.map +1 -0
  51. package/dist/application/proposals/deliberate-proposal.use-case.js +67 -0
  52. package/dist/application/proposals/deliberate-proposal.use-case.js.map +1 -0
  53. package/dist/application/proposals/dry-run-proposal.use-case.d.ts +21 -0
  54. package/dist/application/proposals/dry-run-proposal.use-case.d.ts.map +1 -0
  55. package/dist/application/proposals/dry-run-proposal.use-case.js +20 -0
  56. package/dist/application/proposals/dry-run-proposal.use-case.js.map +1 -0
  57. package/dist/application/proposals/execute-proposal.use-case.d.ts +29 -0
  58. package/dist/application/proposals/execute-proposal.use-case.d.ts.map +1 -0
  59. package/dist/application/proposals/execute-proposal.use-case.js +66 -0
  60. package/dist/application/proposals/execute-proposal.use-case.js.map +1 -0
  61. package/dist/application/proposals/rate-proposal.use-case.d.ts +24 -0
  62. package/dist/application/proposals/rate-proposal.use-case.d.ts.map +1 -0
  63. package/dist/application/proposals/rate-proposal.use-case.js +33 -0
  64. package/dist/application/proposals/rate-proposal.use-case.js.map +1 -0
  65. package/dist/application/proposals/record-deliberation-outputs.use-case.d.ts +21 -0
  66. package/dist/application/proposals/record-deliberation-outputs.use-case.d.ts.map +1 -0
  67. package/dist/application/proposals/record-deliberation-outputs.use-case.js +65 -0
  68. package/dist/application/proposals/record-deliberation-outputs.use-case.js.map +1 -0
  69. package/dist/application/proposals/rollback-proposal.use-case.d.ts +20 -0
  70. package/dist/application/proposals/rollback-proposal.use-case.d.ts.map +1 -0
  71. package/dist/application/proposals/rollback-proposal.use-case.js +17 -0
  72. package/dist/application/proposals/rollback-proposal.use-case.js.map +1 -0
  73. package/dist/application/proposals/round-table.use-case.d.ts +27 -0
  74. package/dist/application/proposals/round-table.use-case.d.ts.map +1 -0
  75. package/dist/application/proposals/round-table.use-case.js +55 -0
  76. package/dist/application/proposals/round-table.use-case.js.map +1 -0
  77. package/dist/application/proposals/ship-proposal.use-case.d.ts +26 -0
  78. package/dist/application/proposals/ship-proposal.use-case.d.ts.map +1 -0
  79. package/dist/application/proposals/ship-proposal.use-case.js +60 -0
  80. package/dist/application/proposals/ship-proposal.use-case.js.map +1 -0
  81. package/dist/application/proposals/start-deliberation.use-case.d.ts +21 -0
  82. package/dist/application/proposals/start-deliberation.use-case.d.ts.map +1 -0
  83. package/dist/application/proposals/start-deliberation.use-case.js +30 -0
  84. package/dist/application/proposals/start-deliberation.use-case.js.map +1 -0
  85. package/dist/application/proposals/transition-proposal.use-case.d.ts +20 -0
  86. package/dist/application/proposals/transition-proposal.use-case.d.ts.map +1 -0
  87. package/dist/application/proposals/transition-proposal.use-case.js +19 -0
  88. package/dist/application/proposals/transition-proposal.use-case.js.map +1 -0
  89. package/dist/application/proposals/update-proposal.use-case.d.ts +26 -0
  90. package/dist/application/proposals/update-proposal.use-case.d.ts.map +1 -0
  91. package/dist/application/proposals/update-proposal.use-case.js +19 -0
  92. package/dist/application/proposals/update-proposal.use-case.js.map +1 -0
  93. package/dist/commands/registry.d.ts.map +1 -1
  94. package/dist/commands/registry.js +18 -3
  95. package/dist/commands/registry.js.map +1 -1
  96. package/dist/config.d.ts +23 -0
  97. package/dist/config.d.ts.map +1 -1
  98. package/dist/config.js +9 -1
  99. package/dist/config.js.map +1 -1
  100. package/dist/control/gates.d.ts +4 -1
  101. package/dist/control/gates.d.ts.map +1 -1
  102. package/dist/control/gates.js +5 -10
  103. package/dist/control/gates.js.map +1 -1
  104. package/dist/delivery/dry-run.d.ts.map +1 -1
  105. package/dist/delivery/dry-run.js +3 -44
  106. package/dist/delivery/dry-run.js.map +1 -1
  107. package/dist/delivery/execution-isolation.d.ts +34 -0
  108. package/dist/delivery/execution-isolation.d.ts.map +1 -0
  109. package/dist/delivery/execution-isolation.js +97 -0
  110. package/dist/delivery/execution-isolation.js.map +1 -0
  111. package/dist/delivery/index.d.ts +2 -0
  112. package/dist/delivery/index.d.ts.map +1 -1
  113. package/dist/delivery/index.js +2 -0
  114. package/dist/delivery/index.js.map +1 -1
  115. package/dist/delivery/plans.d.ts +3 -1
  116. package/dist/delivery/plans.d.ts.map +1 -1
  117. package/dist/delivery/plans.js +2 -2
  118. package/dist/delivery/plans.js.map +1 -1
  119. package/dist/delivery/ship-audit.d.ts +36 -0
  120. package/dist/delivery/ship-audit.d.ts.map +1 -0
  121. package/dist/delivery/ship-audit.js +155 -0
  122. package/dist/delivery/ship-audit.js.map +1 -0
  123. package/dist/domain/dry-run.d.ts +3 -0
  124. package/dist/domain/dry-run.d.ts.map +1 -0
  125. package/dist/domain/dry-run.js +28 -0
  126. package/dist/domain/dry-run.js.map +1 -0
  127. package/dist/domain/index.d.ts +6 -0
  128. package/dist/domain/index.d.ts.map +1 -0
  129. package/dist/domain/index.js +7 -0
  130. package/dist/domain/index.js.map +1 -0
  131. package/dist/governance/agents.d.ts.map +1 -1
  132. package/dist/governance/agents.js +107 -169
  133. package/dist/governance/agents.js.map +1 -1
  134. package/dist/governance/charter.d.ts +14 -0
  135. package/dist/governance/charter.d.ts.map +1 -0
  136. package/dist/governance/charter.js +65 -0
  137. package/dist/governance/charter.js.map +1 -0
  138. package/dist/governance/edit-gate.d.ts +47 -0
  139. package/dist/governance/edit-gate.d.ts.map +1 -0
  140. package/dist/governance/edit-gate.js +156 -0
  141. package/dist/governance/edit-gate.js.map +1 -0
  142. package/dist/governance/index.d.ts +1 -0
  143. package/dist/governance/index.d.ts.map +1 -1
  144. package/dist/governance/index.js +1 -0
  145. package/dist/governance/index.js.map +1 -1
  146. package/dist/governance/proposal.machine.d.ts +2 -114
  147. package/dist/governance/proposal.machine.d.ts.map +1 -1
  148. package/dist/governance/proposal.machine.js +2 -180
  149. package/dist/governance/proposal.machine.js.map +1 -1
  150. package/dist/governance/proposal.utils.d.ts +5 -2
  151. package/dist/governance/proposal.utils.d.ts.map +1 -1
  152. package/dist/governance/proposal.utils.js +7 -4
  153. package/dist/governance/proposal.utils.js.map +1 -1
  154. package/dist/governance/voting.d.ts.map +1 -1
  155. package/dist/governance/voting.js +24 -14
  156. package/dist/governance/voting.js.map +1 -1
  157. package/dist/host-tools/github-config.d.ts.map +1 -1
  158. package/dist/host-tools/github-config.js +17 -5
  159. package/dist/host-tools/github-config.js.map +1 -1
  160. package/dist/host-tools/handlers.d.ts +14 -11
  161. package/dist/host-tools/handlers.d.ts.map +1 -1
  162. package/dist/host-tools/handlers.js +247 -341
  163. package/dist/host-tools/handlers.js.map +1 -1
  164. package/dist/index.d.ts +5 -0
  165. package/dist/index.d.ts.map +1 -1
  166. package/dist/index.js +10 -0
  167. package/dist/index.js.map +1 -1
  168. package/dist/integrations/github.d.ts.map +1 -1
  169. package/dist/integrations/github.js +5 -2
  170. package/dist/integrations/github.js.map +1 -1
  171. package/dist/intelligence/delegation.d.ts +3 -2
  172. package/dist/intelligence/delegation.d.ts.map +1 -1
  173. package/dist/intelligence/delegation.js.map +1 -1
  174. package/dist/intelligence/index.d.ts +1 -0
  175. package/dist/intelligence/index.d.ts.map +1 -1
  176. package/dist/intelligence/index.js +1 -0
  177. package/dist/intelligence/index.js.map +1 -1
  178. package/dist/intelligence/roundtable.d.ts +4 -2
  179. package/dist/intelligence/roundtable.d.ts.map +1 -1
  180. package/dist/intelligence/roundtable.js +2 -2
  181. package/dist/intelligence/roundtable.js.map +1 -1
  182. package/dist/intelligence/sequential.d.ts +36 -0
  183. package/dist/intelligence/sequential.d.ts.map +1 -0
  184. package/dist/intelligence/sequential.js +91 -0
  185. package/dist/intelligence/sequential.js.map +1 -0
  186. package/dist/intelligence/swarm.d.ts +8 -4
  187. package/dist/intelligence/swarm.d.ts.map +1 -1
  188. package/dist/intelligence/swarm.js +10 -3
  189. package/dist/intelligence/swarm.js.map +1 -1
  190. package/dist/intelligence/synthesis.d.ts.map +1 -1
  191. package/dist/intelligence/synthesis.js +16 -4
  192. package/dist/intelligence/synthesis.js.map +1 -1
  193. package/dist/models/graph-engineering.machine.d.ts +219 -0
  194. package/dist/models/graph-engineering.machine.d.ts.map +1 -0
  195. package/dist/models/graph-engineering.machine.js +214 -0
  196. package/dist/models/graph-engineering.machine.js.map +1 -0
  197. package/dist/models/improvement-loop.machine.d.ts +239 -0
  198. package/dist/models/improvement-loop.machine.d.ts.map +1 -0
  199. package/dist/models/improvement-loop.machine.js +254 -0
  200. package/dist/models/improvement-loop.machine.js.map +1 -0
  201. package/dist/models/index.d.ts +6 -0
  202. package/dist/models/index.d.ts.map +1 -0
  203. package/dist/models/index.js +6 -0
  204. package/dist/models/index.js.map +1 -0
  205. package/dist/models/product-loop.machine.d.ts +531 -0
  206. package/dist/models/product-loop.machine.d.ts.map +1 -0
  207. package/dist/models/product-loop.machine.js +699 -0
  208. package/dist/models/product-loop.machine.js.map +1 -0
  209. package/dist/models/proposal.machine.d.ts +82 -0
  210. package/dist/models/proposal.machine.d.ts.map +1 -0
  211. package/dist/models/proposal.machine.js +68 -0
  212. package/dist/models/proposal.machine.js.map +1 -0
  213. package/dist/models/ship-audit.machine.d.ts +103 -0
  214. package/dist/models/ship-audit.machine.d.ts.map +1 -0
  215. package/dist/models/ship-audit.machine.js +113 -0
  216. package/dist/models/ship-audit.machine.js.map +1 -0
  217. package/dist/observability/attention.d.ts +40 -0
  218. package/dist/observability/attention.d.ts.map +1 -0
  219. package/dist/observability/attention.js +119 -0
  220. package/dist/observability/attention.js.map +1 -0
  221. package/dist/observability/index.d.ts +1 -0
  222. package/dist/observability/index.d.ts.map +1 -1
  223. package/dist/observability/index.js +1 -0
  224. package/dist/observability/index.js.map +1 -1
  225. package/dist/observability/logging.d.ts +6 -0
  226. package/dist/observability/logging.d.ts.map +1 -1
  227. package/dist/observability/logging.js +36 -6
  228. package/dist/observability/logging.js.map +1 -1
  229. package/dist/observability/metrics.d.ts +7 -0
  230. package/dist/observability/metrics.d.ts.map +1 -1
  231. package/dist/observability/metrics.js +179 -43
  232. package/dist/observability/metrics.js.map +1 -1
  233. package/dist/persistence.d.ts +3 -0
  234. package/dist/persistence.d.ts.map +1 -1
  235. package/dist/persistence.js +88 -17
  236. package/dist/persistence.js.map +1 -1
  237. package/dist/ports/clock.d.ts +7 -0
  238. package/dist/ports/clock.d.ts.map +1 -0
  239. package/dist/ports/clock.js +5 -0
  240. package/dist/ports/clock.js.map +1 -0
  241. package/dist/ports/host.d.ts +8 -0
  242. package/dist/ports/host.d.ts.map +1 -0
  243. package/dist/ports/host.js +2 -0
  244. package/dist/ports/host.js.map +1 -0
  245. package/dist/ports/index.d.ts +6 -0
  246. package/dist/ports/index.d.ts.map +1 -0
  247. package/dist/ports/index.js +6 -0
  248. package/dist/ports/index.js.map +1 -0
  249. package/dist/ports/repository.d.ts +7 -0
  250. package/dist/ports/repository.d.ts.map +1 -0
  251. package/dist/ports/repository.js +2 -0
  252. package/dist/ports/repository.js.map +1 -0
  253. package/dist/ports/ship-audit.d.ts +26 -0
  254. package/dist/ports/ship-audit.d.ts.map +1 -0
  255. package/dist/ports/ship-audit.js +9 -0
  256. package/dist/ports/ship-audit.js.map +1 -0
  257. package/dist/ports/workspace.d.ts +14 -0
  258. package/dist/ports/workspace.d.ts.map +1 -0
  259. package/dist/ports/workspace.js +14 -0
  260. package/dist/ports/workspace.js.map +1 -0
  261. package/dist/presenters/index.d.ts +2 -0
  262. package/dist/presenters/index.d.ts.map +1 -0
  263. package/dist/presenters/index.js +2 -0
  264. package/dist/presenters/index.js.map +1 -0
  265. package/dist/presenters/proposal.presenter.d.ts +30 -0
  266. package/dist/presenters/proposal.presenter.d.ts.map +1 -0
  267. package/dist/presenters/proposal.presenter.js +47 -0
  268. package/dist/presenters/proposal.presenter.js.map +1 -0
  269. package/dist/utils/host.d.ts.map +1 -1
  270. package/dist/utils/host.js +77 -6
  271. package/dist/utils/host.js.map +1 -1
  272. package/dist/utils/security.d.ts +7 -1
  273. package/dist/utils/security.d.ts.map +1 -1
  274. package/dist/utils/security.js +18 -2
  275. package/dist/utils/security.js.map +1 -1
  276. package/package.json +13 -1
@@ -5,9 +5,21 @@ import { promises as fs } from "node:fs";
5
5
  import path from "node:path";
6
6
  import { logger } from "./observability/logging.js";
7
7
  import { recordVoteCast } from "./observability/metrics.js";
8
- import { createInitialState } from "./types/index.js";
8
+ import { createInitialState, PROPOSAL_TYPES } from "./types/index.js";
9
9
  import { redactSensitiveFields, SENSITIVE_KEYS } from "./utils/security.js";
10
- let state = null;
10
+ class CompatibilityFileRepository {
11
+ state;
12
+ constructor(state) {
13
+ this.state = state;
14
+ }
15
+ get() {
16
+ return this.state;
17
+ }
18
+ persist() {
19
+ return persistState(this.state);
20
+ }
21
+ }
22
+ let activeRepository = null;
11
23
  const STATE_FILE = "state.json";
12
24
  const DECISIONS_DIR = "decisions";
13
25
  const CONFIG_FILE = "config.json";
@@ -84,7 +96,37 @@ async function readJsonFile(filePath) {
84
96
  return parseJsonText(raw, filePath);
85
97
  }
86
98
  async function writeJsonFile(filePath, value) {
87
- await fs.writeFile(filePath, formatJson(value), "utf-8");
99
+ await writeAtomic(filePath, formatJson(value));
100
+ }
101
+ /**
102
+ * Write `content` to `filePath` atomically: serialize to a sibling temp file,
103
+ * then `rename` it over the target. POSIX `rename(2)` is atomic, so a reader
104
+ * (or a crash at any instant) observes either the previous content or the new
105
+ * content — never a partial write. The temp file lives in the same directory
106
+ * to guarantee a same-filesystem rename.
107
+ */
108
+ async function writeAtomic(filePath, content) {
109
+ const tmpPath = `${filePath}.tmp-${process.pid}-${randomToken()}`;
110
+ try {
111
+ await fs.writeFile(tmpPath, content, "utf-8");
112
+ await fs.rename(tmpPath, filePath);
113
+ }
114
+ catch (error) {
115
+ await safeUnlink(tmpPath);
116
+ throw error;
117
+ }
118
+ }
119
+ function randomToken() {
120
+ // Short, collision-resistant suffix for concurrent writers within one PID.
121
+ return Math.random().toString(36).slice(2, 10);
122
+ }
123
+ async function safeUnlink(p) {
124
+ try {
125
+ await fs.unlink(p);
126
+ }
127
+ catch {
128
+ // Ignore — file may not exist or may already be gone.
129
+ }
88
130
  }
89
131
  /**
90
132
  * In-memory cache of the last serialized content written per file path.
@@ -114,7 +156,7 @@ async function writeJsonFileIfChanged(filePath, value) {
114
156
  const serialized = formatJson(value);
115
157
  if (writeCache.get(filePath) === serialized)
116
158
  return false;
117
- await fs.writeFile(filePath, serialized, "utf-8");
159
+ await writeAtomic(filePath, serialized);
118
160
  writeCache.set(filePath, serialized);
119
161
  return true;
120
162
  }
@@ -233,22 +275,27 @@ export async function migrateFromLegacy(cwd, legacyDirectories = []) {
233
275
  }
234
276
  // ── State Access ─────────────────────────────────────────────
235
277
  export function getState() {
236
- if (!state) {
278
+ if (!activeRepository) {
237
279
  throw new Error("DAO not initialized. Run dao_setup first.");
238
280
  }
239
- return state;
281
+ return activeRepository.get();
240
282
  }
241
283
  export function setState(newState) {
242
- state = newState;
284
+ activeRepository = newState ? new CompatibilityFileRepository(newState) : null;
243
285
  // The in-memory state identity changed (or was reset); the write cache no
244
286
  // longer reflects what is on disk, so force the next save to be a full write.
245
287
  resetWriteCache();
246
288
  }
289
+ /** Select the repository instance used by compatibility persistence functions. */
290
+ export function setRepository(repository) {
291
+ activeRepository = repository;
292
+ resetWriteCache();
293
+ }
247
294
  export function getOrCreateState(cwd) {
248
- if (!state) {
249
- state = createInitialState(getDaoRoot(cwd));
295
+ if (!activeRepository) {
296
+ activeRepository = new CompatibilityFileRepository(createInitialState(getDaoRoot(cwd)));
250
297
  }
251
- return state;
298
+ return activeRepository.get();
252
299
  }
253
300
  // ── Load / Save ──────────────────────────────────────────────
254
301
  export async function loadState(cwd, options) {
@@ -306,11 +353,11 @@ export async function loadState(cwd, options) {
306
353
  }, 0);
307
354
  if (loaded.nextAuditId <= highestAuditId)
308
355
  loaded.nextAuditId = highestAuditId + 1;
309
- state = loaded;
356
+ activeRepository = new CompatibilityFileRepository(loaded);
310
357
  // Disk is now the source of truth for the freshly loaded state; reset the
311
358
  // cache so the first subsequent save reflects the real on-disk content.
312
359
  resetWriteCache();
313
- return state;
360
+ return activeRepository.get();
314
361
  }
315
362
  /**
316
363
  * One-time migration: import any legacy `.dao/proposals/NNN.json` sidecars that
@@ -358,8 +405,11 @@ async function importLegacyProposalSidecars(daoRoot, loaded) {
358
405
  }
359
406
  }
360
407
  export async function saveState() {
361
- if (!state)
408
+ if (!activeRepository)
362
409
  return;
410
+ await activeRepository.persist();
411
+ }
412
+ async function persistState(state) {
363
413
  if (!state.daoRoot)
364
414
  return;
365
415
  if (!state.proposals)
@@ -368,10 +418,15 @@ export async function saveState() {
368
418
  const statePath = path.join(daoRoot, STATE_FILE);
369
419
  await fs.mkdir(daoRoot, { recursive: true });
370
420
  await writeJsonFileIfChanged(statePath, state);
371
- await saveDecisions();
421
+ await persistDecisions(state);
372
422
  }
373
423
  export async function saveDecisions() {
374
- if (!state?.daoRoot || !state.proposals)
424
+ if (!activeRepository)
425
+ return;
426
+ await persistDecisions(activeRepository.get());
427
+ }
428
+ async function persistDecisions(state) {
429
+ if (!state.daoRoot || !state.proposals)
375
430
  return;
376
431
  const decisionsDir = getDecisionsDir(state.daoRoot);
377
432
  await fs.mkdir(decisionsDir, { recursive: true });
@@ -448,12 +503,25 @@ export function listAgents() {
448
503
  return getState().agents;
449
504
  }
450
505
  // ── Proposal CRUD ────────────────────────────────────────────
506
+ /**
507
+ * Validates that a proposal type string is a known ProposalType.
508
+ * Throws on unknown types instead of silently casting, so malformed input
509
+ * (from CLI, config, or batch import) fails fast rather than poisoning state.
510
+ */
511
+ function assertProposalType(type) {
512
+ if (!PROPOSAL_TYPES.includes(type)) {
513
+ throw new Error(`Unknown proposal type "${type}". Expected one of: ${PROPOSAL_TYPES.join(", ")}.`);
514
+ }
515
+ return type;
516
+ }
451
517
  export async function createProposal(title, type, description, proposedBy, context) {
452
518
  const s = getState();
519
+ // Validate before touching nextProposalId, so an invalid type doesn't burn an id.
520
+ const validatedType = assertProposalType(type);
453
521
  const proposal = {
454
522
  id: s.nextProposalId++,
455
523
  title,
456
- type: type,
524
+ type: validatedType,
457
525
  description,
458
526
  context,
459
527
  proposedBy,
@@ -469,8 +537,11 @@ export async function createProposal(title, type, description, proposedBy, conte
469
537
  export async function createProposalsBatch(entries) {
470
538
  if (entries.length === 0)
471
539
  return [];
540
+ // Validate all types up front so a single bad entry doesn't leave state
541
+ // with nextProposalId already advanced for the preceding valid entries.
542
+ const validated = entries.map((entry) => ({ ...entry, type: assertProposalType(entry.type) }));
472
543
  const s = getState();
473
- const proposals = entries.map((entry) => {
544
+ const proposals = validated.map((entry) => {
474
545
  const proposal = {
475
546
  id: s.nextProposalId++,
476
547
  title: entry.title,
@@ -1 +1 @@
1
- {"version":3,"file":"persistence.js","sourceRoot":"","sources":["../src/persistence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"persistence.js","sourceRoot":"","sources":["../src/persistence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /** Technical time source injected by the imperative shell. */
2
+ export interface ClockPort {
3
+ now(): string;
4
+ }
5
+ /** Default shell implementation. Domain and model code must not import it. */
6
+ export declare const systemClock: ClockPort;
7
+ //# sourceMappingURL=clock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clock.d.ts","sourceRoot":"","sources":["../../src/ports/clock.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,MAAM,WAAW,SAAS;IACxB,GAAG,IAAI,MAAM,CAAC;CACf;AAED,8EAA8E;AAC9E,eAAO,MAAM,WAAW,EAAE,SAEzB,CAAC"}
@@ -0,0 +1,5 @@
1
+ /** Default shell implementation. Domain and model code must not import it. */
2
+ export const systemClock = {
3
+ now: () => new Date().toISOString(),
4
+ };
5
+ //# sourceMappingURL=clock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clock.js","sourceRoot":"","sources":["../../src/ports/clock.ts"],"names":[],"mappings":"AAKA,8EAA8E;AAC9E,MAAM,CAAC,MAAM,WAAW,GAAc;IACpC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;CACpC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { HostAdapter } from "../types/index.js";
2
+ /** Narrow capabilities consumed independently by application use cases. */
3
+ export type AgentWorkerPort = Pick<HostAdapter, "spawnAgent" | "spawnAgents" | "getSessionModel">;
4
+ export type LoggerPort = Pick<HostAdapter, "log">;
5
+ export type WorkspacePort = Pick<HostAdapter, "getWorkingDirectory" | "readFile" | "writeFile">;
6
+ export type CommandRunnerPort = Pick<HostAdapter, "exec">;
7
+ export type CapabilityPort = Pick<HostAdapter, "hasCapability">;
8
+ //# sourceMappingURL=host.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../src/ports/host.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,2EAA2E;AAC3E,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,EAAE,YAAY,GAAG,aAAa,GAAG,iBAAiB,CAAC,CAAC;AAClG,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AAClD,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE,qBAAqB,GAAG,UAAU,GAAG,WAAW,CAAC,CAAC;AAChG,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAC1D,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host.js","sourceRoot":"","sources":["../../src/ports/host.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ export * from "./clock.js";
2
+ export * from "./host.js";
3
+ export * from "./repository.js";
4
+ export * from "./ship-audit.js";
5
+ export * from "./workspace.js";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ports/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from "./clock.js";
2
+ export * from "./host.js";
3
+ export * from "./repository.js";
4
+ export * from "./ship-audit.js";
5
+ export * from "./workspace.js";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ports/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { DAOState } from "../types/index.js";
2
+ /** Persistence boundary used by application use cases. */
3
+ export interface DaoStateRepositoryPort {
4
+ get(): DAOState;
5
+ persist(): Promise<void>;
6
+ }
7
+ //# sourceMappingURL=repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../src/ports/repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,0DAA0D;AAC1D,MAAM,WAAW,sBAAsB;IACrC,GAAG,IAAI,QAAQ,CAAC;IAChB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/ports/repository.ts"],"names":[],"mappings":""}
@@ -0,0 +1,26 @@
1
+ export interface ShipAuditSnapshot {
2
+ proposalId: number;
3
+ state: string;
4
+ status: string;
5
+ context: {
6
+ proposalId: number;
7
+ fingerprint: string | null;
8
+ challengeCount: number;
9
+ confirmedAt: string | null;
10
+ terminalReason: string | null;
11
+ };
12
+ }
13
+ export interface ShipAuditStorePort {
14
+ load(proposalId: number): Promise<ShipAuditSnapshot | null>;
15
+ save(snapshot: ShipAuditSnapshot): Promise<void>;
16
+ /**
17
+ * Exclusive cross-process claim for the gate's read→transition→write
18
+ * sequence (INV-6: one confirmation must not authorize concurrent
19
+ * ships). Resolve true when acquired; release via the returned function.
20
+ */
21
+ claim(proposalId: number): Promise<{
22
+ acquired: boolean;
23
+ release: () => Promise<void>;
24
+ }>;
25
+ }
26
+ //# sourceMappingURL=ship-audit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ship-audit.d.ts","sourceRoot":"","sources":["../../src/ports/ship-audit.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE;QACP,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,cAAc,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;KAC/B,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAC5D,IAAI,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD;;;;OAIG;IACH,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC,CAAC;CACzF"}
@@ -0,0 +1,9 @@
1
+ // ============================================================
2
+ // Swarm DAO Core — Ship Audit Store Port
3
+ // ============================================================
4
+ // Narrow port through which the ship handler loads, persists, and
5
+ // exclusively claims a proposal's audit-challenge snapshots. The machine
6
+ // stays pure; implementations live in adapters (FsShipAuditStore writes
7
+ // .dao/ship-audits/<id>.json with an O_EXCL cross-process claim).
8
+ export {};
9
+ //# sourceMappingURL=ship-audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ship-audit.js","sourceRoot":"","sources":["../../src/ports/ship-audit.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,yCAAyC;AACzC,+DAA+D;AAC/D,kEAAkE;AAClE,yEAAyE;AACzE,wEAAwE;AACxE,kEAAkE"}
@@ -0,0 +1,14 @@
1
+ import type { Proposal } from "../types/index.js";
2
+ export type ExecutionWorkspaceResult = {
3
+ ok: true;
4
+ branch: string;
5
+ path: string | null;
6
+ } | {
7
+ ok: false;
8
+ error: string;
9
+ };
10
+ export interface ExecutionWorkspacePort {
11
+ /** Provision (or reattach to) the isolated workspace for a proposal. */
12
+ prepare(proposal: Pick<Proposal, "id" | "title">): Promise<ExecutionWorkspaceResult>;
13
+ }
14
+ //# sourceMappingURL=workspace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/ports/workspace.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,MAAM,wBAAwB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAExH,MAAM,WAAW,sBAAsB;IACrC,wEAAwE;IACxE,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;CACtF"}
@@ -0,0 +1,14 @@
1
+ // ============================================================
2
+ // Swarm DAO Core — Execution Workspace Port
3
+ // ============================================================
4
+ // Narrow port through which the application layer asks for an isolated
5
+ // execution workspace before a proposal is executed. Implementations live
6
+ // outside the business logic (adapters/git-workspace.ts binds it to
7
+ // `git worktree`); tests bind it to fakes.
8
+ //
9
+ // Contract: prepare() only provisions the workspace (branch + directory).
10
+ // It never mutates DAO state, never transitions the proposal machine, and
11
+ // never merges anything back — merging stays a deliberate, separately
12
+ // authorized action (e.g. via the existing GitHub PR flow).
13
+ export {};
14
+ //# sourceMappingURL=workspace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/ports/workspace.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,4CAA4C;AAC5C,+DAA+D;AAC/D,uEAAuE;AACvE,0EAA0E;AAC1E,oEAAoE;AACpE,2CAA2C;AAC3C,EAAE;AACF,0EAA0E;AAC1E,0EAA0E;AAC1E,sEAAsE;AACtE,4DAA4D"}
@@ -0,0 +1,2 @@
1
+ export * from "./proposal.presenter.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/presenters/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./proposal.presenter.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/presenters/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { InitializeDaoResult } from "../application/initialize-dao.use-case.js";
2
+ import type { CreateAmendmentProposalResult } from "../application/proposals/create-amendment-proposal.use-case.js";
3
+ import type { DeliberateProposalResult } from "../application/proposals/deliberate-proposal.use-case.js";
4
+ import type { ExecuteProposalResult } from "../application/proposals/execute-proposal.use-case.js";
5
+ import type { RollbackProposalResult } from "../application/proposals/rollback-proposal.use-case.js";
6
+ import type { ShipProposalResult } from "../application/proposals/ship-proposal.use-case.js";
7
+ import type { ControlCheckResult, DryRunResult, OutcomeRating, Proposal } from "../types/index.js";
8
+ export declare function presentProposalCreated(proposal: Proposal): string;
9
+ export declare function presentInitialization(result: InitializeDaoResult): string;
10
+ export declare function presentDeliberation(proposalId: number, result: Extract<DeliberateProposalResult, {
11
+ ok: true;
12
+ }>, options: {
13
+ durationMs?: number;
14
+ controlToolName: string;
15
+ }): string;
16
+ export declare function presentControl(control: ControlCheckResult): string;
17
+ export declare function presentExecution(result: Extract<ExecuteProposalResult, {
18
+ ok: true;
19
+ }>): string;
20
+ export declare function presentShip(result: Extract<ShipProposalResult, {
21
+ ok: true;
22
+ }>): string;
23
+ export declare function presentAmendment(result: Extract<CreateAmendmentProposalResult, {
24
+ ok: true;
25
+ }>): string;
26
+ export declare function presentDryRun(result: DryRunResult): string;
27
+ export declare function presentRating(rating: OutcomeRating): string;
28
+ export declare function presentProposalUpdated(proposal: Proposal): string;
29
+ export declare function presentRollback(result: RollbackProposalResult): string;
30
+ //# sourceMappingURL=proposal.presenter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proposal.presenter.d.ts","sourceRoot":"","sources":["../../src/presenters/proposal.presenter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AACrF,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,gEAAgE,CAAC;AACpH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0DAA0D,CAAC;AACzG,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uDAAuD,CAAC;AACnG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wDAAwD,CAAC;AACrG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oDAAoD,CAAC;AAM7F,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGnG,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAGjE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAGzE;AAED,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,OAAO,CAAC,wBAAwB,EAAE;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,CAAC,EACvD,OAAO,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,GACxD,MAAM,CAGR;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CAElE;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,qBAAqB,EAAE;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,CAAC,GAAG,MAAM,CAK7F;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,EAAE;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,CAAC,GAAG,MAAM,CAErF;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,6BAA6B,EAAE;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,CAAC,GAAG,MAAM,CAErG;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAE1D;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAE3D;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAEjE;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,sBAAsB,GAAG,MAAM,CAEtE"}
@@ -0,0 +1,47 @@
1
+ import { formatControlResult } from "../control/gates.js";
2
+ import { formatDryRun } from "../delivery/dry-run.js";
3
+ import { formatAgentsTable } from "../governance/agents.js";
4
+ import { formatCompositeScore } from "../governance/scoring.js";
5
+ import { formatTallyResult } from "../governance/voting.js";
6
+ import { PROPOSAL_TYPE_LABELS } from "../types/index.js";
7
+ export function presentProposalCreated(proposal) {
8
+ const typeLabel = PROPOSAL_TYPE_LABELS[proposal.type] ?? proposal.type;
9
+ return `# 📋 Proposal Created — #${proposal.id}\n\n**Title:** ${proposal.title}\n**Type:** ${proposal.type} — ${typeLabel}\n**Zone:** ${proposal.riskZone}\n\nRun \`dao_deliberate proposalId=${proposal.id}\``;
10
+ }
11
+ export function presentInitialization(result) {
12
+ if (!result.ok)
13
+ return result.error;
14
+ return `# DAO Initialized\n\n${formatAgentsTable(result.agents)}\n\nRun \`dao_help\` to discover the workflow, then \`dao_propose\` to create proposals.`;
15
+ }
16
+ export function presentDeliberation(proposalId, result, options) {
17
+ const duration = options.durationMs === undefined ? "" : ` (${options.durationMs}ms)`;
18
+ return `# 🗳️ Deliberation Complete — #${proposalId}${duration}\n\n${formatTallyResult(result.tally)}\n\n${formatCompositeScore(result.compositeScore)}\n\n${result.synthesis}\n\n> Next: \`${options.controlToolName} proposalId=${proposalId}\``;
19
+ }
20
+ export function presentControl(control) {
21
+ return formatControlResult(control);
22
+ }
23
+ export function presentExecution(result) {
24
+ const taskCount = result.plan.phases.reduce((sum, phase) => sum + phase.tasks.length, 0);
25
+ // snapshot.branch is the branch actually used: the delivery plan strategy
26
+ // without isolation, the isolated dao/<id>-<slug> branch with a workspace.
27
+ return `# ✅ Proposal Executed — #${result.proposal.id}\n\n**Title:** ${result.proposal.title}\n**Status:** 🚀 executed\n**Branch:** \`${result.snapshot.branch}\`\n**Plan:** ${result.plan.phases.length} phases, ${taskCount} tasks\n\nThe delivery agent has prepared an implementation plan. Review the tasks and begin implementation.`;
28
+ }
29
+ export function presentShip(result) {
30
+ return `# 🚀 Ship Complete\n\nShipped proposals:\n${result.shipped.map((id) => `- #${id}`).join("\n")}`;
31
+ }
32
+ export function presentAmendment(result) {
33
+ return `# 📜 Amendment Proposed — #${result.proposal.id}\n\nType: ${result.payload.type}\n\nRun \`dao_deliberate proposalId=${result.proposal.id}\``;
34
+ }
35
+ export function presentDryRun(result) {
36
+ return formatDryRun(result);
37
+ }
38
+ export function presentRating(rating) {
39
+ return `# ⭐ Rating Recorded — #${rating.proposalId}\n\n**Score:** ${rating.score}/5\n**Comment:** ${rating.comment}`;
40
+ }
41
+ export function presentProposalUpdated(proposal) {
42
+ return `# 📝 Proposal Updated — #${proposal.id}\n\nUpdated fields applied.`;
43
+ }
44
+ export function presentRollback(result) {
45
+ return result.ok ? `# ⏪ Rollback Successful\n\n${result.message}` : `# ❌ Rollback Failed\n\n${result.error}`;
46
+ }
47
+ //# sourceMappingURL=proposal.presenter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proposal.presenter.js","sourceRoot":"","sources":["../../src/presenters/proposal.presenter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../src/utils/host.ts"],"names":[],"mappings":"AAkCA,iFAAiF;AACjF,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3C,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAmD/D;AAYD,wEAAwE;AACxE,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAM3F;AAED,yEAAyE;AACzE,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO3G"}
1
+ {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../src/utils/host.ts"],"names":[],"mappings":"AAkCA,iFAAiF;AACjF,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3C,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAmD/D;AAuFD,wEAAwE;AACxE,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAM3F;AAED,yEAAyE;AACzE,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ3G"}