@citadel-labs/citadel 0.1.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 (307) hide show
  1. package/README.md +145 -0
  2. package/dist/__tests__/append-bead.test.d.ts +2 -0
  3. package/dist/__tests__/append-bead.test.d.ts.map +1 -0
  4. package/dist/__tests__/append-bead.test.js +88 -0
  5. package/dist/__tests__/append-bead.test.js.map +1 -0
  6. package/dist/__tests__/blocked-outposts.test.d.ts +2 -0
  7. package/dist/__tests__/blocked-outposts.test.d.ts.map +1 -0
  8. package/dist/__tests__/blocked-outposts.test.js +142 -0
  9. package/dist/__tests__/blocked-outposts.test.js.map +1 -0
  10. package/dist/__tests__/bugfixes.test.d.ts +2 -0
  11. package/dist/__tests__/bugfixes.test.d.ts.map +1 -0
  12. package/dist/__tests__/bugfixes.test.js +503 -0
  13. package/dist/__tests__/bugfixes.test.js.map +1 -0
  14. package/dist/__tests__/citizen-tribute.test.d.ts +2 -0
  15. package/dist/__tests__/citizen-tribute.test.d.ts.map +1 -0
  16. package/dist/__tests__/citizen-tribute.test.js +106 -0
  17. package/dist/__tests__/citizen-tribute.test.js.map +1 -0
  18. package/dist/__tests__/cli-e2e/dispatch-note-resolve.test.d.ts +2 -0
  19. package/dist/__tests__/cli-e2e/dispatch-note-resolve.test.d.ts.map +1 -0
  20. package/dist/__tests__/cli-e2e/dispatch-note-resolve.test.js +65 -0
  21. package/dist/__tests__/cli-e2e/dispatch-note-resolve.test.js.map +1 -0
  22. package/dist/__tests__/cli-e2e/full-lifecycle.test.d.ts +2 -0
  23. package/dist/__tests__/cli-e2e/full-lifecycle.test.d.ts.map +1 -0
  24. package/dist/__tests__/cli-e2e/full-lifecycle.test.js +157 -0
  25. package/dist/__tests__/cli-e2e/full-lifecycle.test.js.map +1 -0
  26. package/dist/__tests__/cli-e2e/helpers.d.ts +28 -0
  27. package/dist/__tests__/cli-e2e/helpers.d.ts.map +1 -0
  28. package/dist/__tests__/cli-e2e/helpers.js +76 -0
  29. package/dist/__tests__/cli-e2e/helpers.js.map +1 -0
  30. package/dist/__tests__/cli-e2e/init-outpost-status.test.d.ts +2 -0
  31. package/dist/__tests__/cli-e2e/init-outpost-status.test.d.ts.map +1 -0
  32. package/dist/__tests__/cli-e2e/init-outpost-status.test.js +79 -0
  33. package/dist/__tests__/cli-e2e/init-outpost-status.test.js.map +1 -0
  34. package/dist/__tests__/cli-e2e/reset-stop-tribute-trace.test.d.ts +2 -0
  35. package/dist/__tests__/cli-e2e/reset-stop-tribute-trace.test.d.ts.map +1 -0
  36. package/dist/__tests__/cli-e2e/reset-stop-tribute-trace.test.js +158 -0
  37. package/dist/__tests__/cli-e2e/reset-stop-tribute-trace.test.js.map +1 -0
  38. package/dist/__tests__/courier.test.d.ts +2 -0
  39. package/dist/__tests__/courier.test.d.ts.map +1 -0
  40. package/dist/__tests__/courier.test.js +97 -0
  41. package/dist/__tests__/courier.test.js.map +1 -0
  42. package/dist/__tests__/e2e-smoke.test.d.ts +2 -0
  43. package/dist/__tests__/e2e-smoke.test.d.ts.map +1 -0
  44. package/dist/__tests__/e2e-smoke.test.js +137 -0
  45. package/dist/__tests__/e2e-smoke.test.js.map +1 -0
  46. package/dist/__tests__/fo-broadcast.test.d.ts +2 -0
  47. package/dist/__tests__/fo-broadcast.test.d.ts.map +1 -0
  48. package/dist/__tests__/fo-broadcast.test.js +134 -0
  49. package/dist/__tests__/fo-broadcast.test.js.map +1 -0
  50. package/dist/__tests__/fo-command-processor.test.d.ts +2 -0
  51. package/dist/__tests__/fo-command-processor.test.d.ts.map +1 -0
  52. package/dist/__tests__/fo-command-processor.test.js +86 -0
  53. package/dist/__tests__/fo-command-processor.test.js.map +1 -0
  54. package/dist/__tests__/fo-escalation.test.d.ts +2 -0
  55. package/dist/__tests__/fo-escalation.test.d.ts.map +1 -0
  56. package/dist/__tests__/fo-escalation.test.js +126 -0
  57. package/dist/__tests__/fo-escalation.test.js.map +1 -0
  58. package/dist/__tests__/fo-nudge-watcher.test.d.ts +2 -0
  59. package/dist/__tests__/fo-nudge-watcher.test.d.ts.map +1 -0
  60. package/dist/__tests__/fo-nudge-watcher.test.js +154 -0
  61. package/dist/__tests__/fo-nudge-watcher.test.js.map +1 -0
  62. package/dist/__tests__/fo-nudge-wiring.test.d.ts +2 -0
  63. package/dist/__tests__/fo-nudge-wiring.test.d.ts.map +1 -0
  64. package/dist/__tests__/fo-nudge-wiring.test.js +31 -0
  65. package/dist/__tests__/fo-nudge-wiring.test.js.map +1 -0
  66. package/dist/__tests__/fo-relay.test.d.ts +2 -0
  67. package/dist/__tests__/fo-relay.test.d.ts.map +1 -0
  68. package/dist/__tests__/fo-relay.test.js +90 -0
  69. package/dist/__tests__/fo-relay.test.js.map +1 -0
  70. package/dist/__tests__/fo-task-report.test.d.ts +2 -0
  71. package/dist/__tests__/fo-task-report.test.d.ts.map +1 -0
  72. package/dist/__tests__/fo-task-report.test.js +81 -0
  73. package/dist/__tests__/fo-task-report.test.js.map +1 -0
  74. package/dist/__tests__/fo-webhook.test.d.ts +2 -0
  75. package/dist/__tests__/fo-webhook.test.d.ts.map +1 -0
  76. package/dist/__tests__/fo-webhook.test.js +70 -0
  77. package/dist/__tests__/fo-webhook.test.js.map +1 -0
  78. package/dist/__tests__/integration.test.d.ts +2 -0
  79. package/dist/__tests__/integration.test.d.ts.map +1 -0
  80. package/dist/__tests__/integration.test.js +763 -0
  81. package/dist/__tests__/integration.test.js.map +1 -0
  82. package/dist/__tests__/multi-outpost-dep.test.d.ts +2 -0
  83. package/dist/__tests__/multi-outpost-dep.test.d.ts.map +1 -0
  84. package/dist/__tests__/multi-outpost-dep.test.js +173 -0
  85. package/dist/__tests__/multi-outpost-dep.test.js.map +1 -0
  86. package/dist/__tests__/nudge.test.d.ts +2 -0
  87. package/dist/__tests__/nudge.test.d.ts.map +1 -0
  88. package/dist/__tests__/nudge.test.js +103 -0
  89. package/dist/__tests__/nudge.test.js.map +1 -0
  90. package/dist/__tests__/outpost-registry.test.d.ts +2 -0
  91. package/dist/__tests__/outpost-registry.test.d.ts.map +1 -0
  92. package/dist/__tests__/outpost-registry.test.js +72 -0
  93. package/dist/__tests__/outpost-registry.test.js.map +1 -0
  94. package/dist/__tests__/process-registry.test.d.ts +2 -0
  95. package/dist/__tests__/process-registry.test.d.ts.map +1 -0
  96. package/dist/__tests__/process-registry.test.js +108 -0
  97. package/dist/__tests__/process-registry.test.js.map +1 -0
  98. package/dist/__tests__/session-log.test.d.ts +2 -0
  99. package/dist/__tests__/session-log.test.d.ts.map +1 -0
  100. package/dist/__tests__/session-log.test.js +60 -0
  101. package/dist/__tests__/session-log.test.js.map +1 -0
  102. package/dist/__tests__/spawn-citizen.test.d.ts +2 -0
  103. package/dist/__tests__/spawn-citizen.test.d.ts.map +1 -0
  104. package/dist/__tests__/spawn-citizen.test.js +48 -0
  105. package/dist/__tests__/spawn-citizen.test.js.map +1 -0
  106. package/dist/__tests__/timeout-watchdog.test.d.ts +2 -0
  107. package/dist/__tests__/timeout-watchdog.test.d.ts.map +1 -0
  108. package/dist/__tests__/timeout-watchdog.test.js +81 -0
  109. package/dist/__tests__/timeout-watchdog.test.js.map +1 -0
  110. package/dist/__tests__/worktree-manager.test.d.ts +2 -0
  111. package/dist/__tests__/worktree-manager.test.d.ts.map +1 -0
  112. package/dist/__tests__/worktree-manager.test.js +98 -0
  113. package/dist/__tests__/worktree-manager.test.js.map +1 -0
  114. package/dist/cli/aliases.d.ts +10 -0
  115. package/dist/cli/aliases.d.ts.map +1 -0
  116. package/dist/cli/aliases.js +56 -0
  117. package/dist/cli/aliases.js.map +1 -0
  118. package/dist/cli/command.d.ts +3 -0
  119. package/dist/cli/command.d.ts.map +1 -0
  120. package/dist/cli/command.js +63 -0
  121. package/dist/cli/command.js.map +1 -0
  122. package/dist/cli/index.d.ts +3 -0
  123. package/dist/cli/index.d.ts.map +1 -0
  124. package/dist/cli/index.js +29 -0
  125. package/dist/cli/index.js.map +1 -0
  126. package/dist/cli/init.d.ts +3 -0
  127. package/dist/cli/init.d.ts.map +1 -0
  128. package/dist/cli/init.js +57 -0
  129. package/dist/cli/init.js.map +1 -0
  130. package/dist/cli/outpost.d.ts +3 -0
  131. package/dist/cli/outpost.d.ts.map +1 -0
  132. package/dist/cli/outpost.js +65 -0
  133. package/dist/cli/outpost.js.map +1 -0
  134. package/dist/cli/reset.d.ts +3 -0
  135. package/dist/cli/reset.d.ts.map +1 -0
  136. package/dist/cli/reset.js +67 -0
  137. package/dist/cli/reset.js.map +1 -0
  138. package/dist/cli/session.d.ts +3 -0
  139. package/dist/cli/session.d.ts.map +1 -0
  140. package/dist/cli/session.js +112 -0
  141. package/dist/cli/session.js.map +1 -0
  142. package/dist/cli/start.d.ts +3 -0
  143. package/dist/cli/start.d.ts.map +1 -0
  144. package/dist/cli/start.js +105 -0
  145. package/dist/cli/start.js.map +1 -0
  146. package/dist/cli/status.d.ts +3 -0
  147. package/dist/cli/status.d.ts.map +1 -0
  148. package/dist/cli/status.js +128 -0
  149. package/dist/cli/status.js.map +1 -0
  150. package/dist/cli/tribute.d.ts +3 -0
  151. package/dist/cli/tribute.d.ts.map +1 -0
  152. package/dist/cli/tribute.js +160 -0
  153. package/dist/cli/tribute.js.map +1 -0
  154. package/dist/cli/worktree.d.ts +3 -0
  155. package/dist/cli/worktree.d.ts.map +1 -0
  156. package/dist/cli/worktree.js +64 -0
  157. package/dist/cli/worktree.js.map +1 -0
  158. package/dist/core/append-bead.d.ts +13 -0
  159. package/dist/core/append-bead.d.ts.map +1 -0
  160. package/dist/core/append-bead.js +68 -0
  161. package/dist/core/append-bead.js.map +1 -0
  162. package/dist/core/blocked-outposts.d.ts +15 -0
  163. package/dist/core/blocked-outposts.d.ts.map +1 -0
  164. package/dist/core/blocked-outposts.js +77 -0
  165. package/dist/core/blocked-outposts.js.map +1 -0
  166. package/dist/core/citizen-bootstrap.d.ts +17 -0
  167. package/dist/core/citizen-bootstrap.d.ts.map +1 -0
  168. package/dist/core/citizen-bootstrap.js +118 -0
  169. package/dist/core/citizen-bootstrap.js.map +1 -0
  170. package/dist/core/citizen-tribute.d.ts +17 -0
  171. package/dist/core/citizen-tribute.d.ts.map +1 -0
  172. package/dist/core/citizen-tribute.js +55 -0
  173. package/dist/core/citizen-tribute.js.map +1 -0
  174. package/dist/core/command-bead.d.ts +6 -0
  175. package/dist/core/command-bead.d.ts.map +1 -0
  176. package/dist/core/command-bead.js +20 -0
  177. package/dist/core/command-bead.js.map +1 -0
  178. package/dist/core/courier.d.ts +52 -0
  179. package/dist/core/courier.d.ts.map +1 -0
  180. package/dist/core/courier.js +167 -0
  181. package/dist/core/courier.js.map +1 -0
  182. package/dist/core/fo-broadcast.d.ts +15 -0
  183. package/dist/core/fo-broadcast.d.ts.map +1 -0
  184. package/dist/core/fo-broadcast.js +57 -0
  185. package/dist/core/fo-broadcast.js.map +1 -0
  186. package/dist/core/fo-command-processor.d.ts +7 -0
  187. package/dist/core/fo-command-processor.d.ts.map +1 -0
  188. package/dist/core/fo-command-processor.js +123 -0
  189. package/dist/core/fo-command-processor.js.map +1 -0
  190. package/dist/core/fo-dispatch.d.ts +24 -0
  191. package/dist/core/fo-dispatch.d.ts.map +1 -0
  192. package/dist/core/fo-dispatch.js +76 -0
  193. package/dist/core/fo-dispatch.js.map +1 -0
  194. package/dist/core/fo-escalation.d.ts +20 -0
  195. package/dist/core/fo-escalation.d.ts.map +1 -0
  196. package/dist/core/fo-escalation.js +83 -0
  197. package/dist/core/fo-escalation.js.map +1 -0
  198. package/dist/core/fo-handlers/ceiling-hit.d.ts +8 -0
  199. package/dist/core/fo-handlers/ceiling-hit.d.ts.map +1 -0
  200. package/dist/core/fo-handlers/ceiling-hit.js +10 -0
  201. package/dist/core/fo-handlers/ceiling-hit.js.map +1 -0
  202. package/dist/core/fo-handlers/slot-open.d.ts +13 -0
  203. package/dist/core/fo-handlers/slot-open.d.ts.map +1 -0
  204. package/dist/core/fo-handlers/slot-open.js +63 -0
  205. package/dist/core/fo-handlers/slot-open.js.map +1 -0
  206. package/dist/core/fo-nudge-watcher.d.ts +19 -0
  207. package/dist/core/fo-nudge-watcher.d.ts.map +1 -0
  208. package/dist/core/fo-nudge-watcher.js +71 -0
  209. package/dist/core/fo-nudge-watcher.js.map +1 -0
  210. package/dist/core/fo-nudge-wiring.d.ts +13 -0
  211. package/dist/core/fo-nudge-wiring.d.ts.map +1 -0
  212. package/dist/core/fo-nudge-wiring.js +120 -0
  213. package/dist/core/fo-nudge-wiring.js.map +1 -0
  214. package/dist/core/fo-relay.d.ts +7 -0
  215. package/dist/core/fo-relay.d.ts.map +1 -0
  216. package/dist/core/fo-relay.js +47 -0
  217. package/dist/core/fo-relay.js.map +1 -0
  218. package/dist/core/fo-retry-policy.d.ts +17 -0
  219. package/dist/core/fo-retry-policy.d.ts.map +1 -0
  220. package/dist/core/fo-retry-policy.js +89 -0
  221. package/dist/core/fo-retry-policy.js.map +1 -0
  222. package/dist/core/fo-state.d.ts +25 -0
  223. package/dist/core/fo-state.d.ts.map +1 -0
  224. package/dist/core/fo-state.js +99 -0
  225. package/dist/core/fo-state.js.map +1 -0
  226. package/dist/core/fo-task-report.d.ts +16 -0
  227. package/dist/core/fo-task-report.d.ts.map +1 -0
  228. package/dist/core/fo-task-report.js +63 -0
  229. package/dist/core/fo-task-report.js.map +1 -0
  230. package/dist/core/fo-webhook.d.ts +22 -0
  231. package/dist/core/fo-webhook.d.ts.map +1 -0
  232. package/dist/core/fo-webhook.js +43 -0
  233. package/dist/core/fo-webhook.js.map +1 -0
  234. package/dist/core/grand-archives.d.ts +14 -0
  235. package/dist/core/grand-archives.d.ts.map +1 -0
  236. package/dist/core/grand-archives.js +79 -0
  237. package/dist/core/grand-archives.js.map +1 -0
  238. package/dist/core/nudge.d.ts +6 -0
  239. package/dist/core/nudge.d.ts.map +1 -0
  240. package/dist/core/nudge.js +19 -0
  241. package/dist/core/nudge.js.map +1 -0
  242. package/dist/core/outpost-registry.d.ts +16 -0
  243. package/dist/core/outpost-registry.d.ts.map +1 -0
  244. package/dist/core/outpost-registry.js +27 -0
  245. package/dist/core/outpost-registry.js.map +1 -0
  246. package/dist/core/pre-spawn-check.d.ts +16 -0
  247. package/dist/core/pre-spawn-check.d.ts.map +1 -0
  248. package/dist/core/pre-spawn-check.js +50 -0
  249. package/dist/core/pre-spawn-check.js.map +1 -0
  250. package/dist/core/process-registry.d.ts +17 -0
  251. package/dist/core/process-registry.d.ts.map +1 -0
  252. package/dist/core/process-registry.js +71 -0
  253. package/dist/core/process-registry.js.map +1 -0
  254. package/dist/core/spawn-citizen.d.ts +23 -0
  255. package/dist/core/spawn-citizen.d.ts.map +1 -0
  256. package/dist/core/spawn-citizen.js +99 -0
  257. package/dist/core/spawn-citizen.js.map +1 -0
  258. package/dist/core/timeout-watchdog.d.ts +14 -0
  259. package/dist/core/timeout-watchdog.d.ts.map +1 -0
  260. package/dist/core/timeout-watchdog.js +68 -0
  261. package/dist/core/timeout-watchdog.js.map +1 -0
  262. package/dist/core/validate-tribute.d.ts +11 -0
  263. package/dist/core/validate-tribute.d.ts.map +1 -0
  264. package/dist/core/validate-tribute.js +44 -0
  265. package/dist/core/validate-tribute.js.map +1 -0
  266. package/dist/core/worktree-manager.d.ts +20 -0
  267. package/dist/core/worktree-manager.d.ts.map +1 -0
  268. package/dist/core/worktree-manager.js +123 -0
  269. package/dist/core/worktree-manager.js.map +1 -0
  270. package/dist/index.d.ts +30 -0
  271. package/dist/index.d.ts.map +1 -0
  272. package/dist/index.js +30 -0
  273. package/dist/index.js.map +1 -0
  274. package/dist/types/agent.d.ts +47 -0
  275. package/dist/types/agent.d.ts.map +1 -0
  276. package/dist/types/agent.js +4 -0
  277. package/dist/types/agent.js.map +1 -0
  278. package/dist/types/beads.d.ts +175 -0
  279. package/dist/types/beads.d.ts.map +1 -0
  280. package/dist/types/beads.js +4 -0
  281. package/dist/types/beads.js.map +1 -0
  282. package/dist/types/index.d.ts +4 -0
  283. package/dist/types/index.d.ts.map +1 -0
  284. package/dist/types/index.js +4 -0
  285. package/dist/types/index.js.map +1 -0
  286. package/dist/types/registry.d.ts +110 -0
  287. package/dist/types/registry.d.ts.map +1 -0
  288. package/dist/types/registry.js +3 -0
  289. package/dist/types/registry.js.map +1 -0
  290. package/docs/README.md +7 -0
  291. package/docs/architecture.md +106 -0
  292. package/docs/cli-reference.md +81 -0
  293. package/docs/configuration.md +143 -0
  294. package/docs/contributing.md +65 -0
  295. package/docs/getting-started.md +88 -0
  296. package/grand-archives/archetypes/architect/archetype.json +18 -0
  297. package/grand-archives/archetypes/qa-engineer/archetype.json +18 -0
  298. package/grand-archives/archetypes/software-engineer/archetype.json +18 -0
  299. package/grand-archives/archetypes/software-engineer/system-prompt.md +39 -0
  300. package/grand-archives/archetypes/software-engineer/toolset.json +15 -0
  301. package/grand-archives/first-officer/config.json +21 -0
  302. package/grand-archives/first-officer/system-prompt.md +47 -0
  303. package/grand-archives/first-officer/toolset.json +19 -0
  304. package/grand-archives/registry.json +8 -0
  305. package/grand-archives/shared/base-prompt-preamble.md +25 -0
  306. package/grand-archives/shared/base-tools.json +10 -0
  307. package/package.json +73 -0
@@ -0,0 +1,30 @@
1
+ export * from './types/index.js';
2
+ export * from './core/append-bead.js';
3
+ export * from './core/grand-archives.js';
4
+ export * from './core/process-registry.js';
5
+ export * from './core/nudge.js';
6
+ export * from './core/command-bead.js';
7
+ export * from './core/worktree-manager.js';
8
+ export * from './core/courier.js';
9
+ export * from './core/pre-spawn-check.js';
10
+ export * from './core/spawn-citizen.js';
11
+ export * from './core/timeout-watchdog.js';
12
+ export * from './core/validate-tribute.js';
13
+ export * from './core/citizen-bootstrap.js';
14
+ export * from './core/fo-state.js';
15
+ export * from './core/citizen-tribute.js';
16
+ export * from './core/fo-nudge-watcher.js';
17
+ export * from './core/fo-nudge-wiring.js';
18
+ export * from './core/fo-handlers/ceiling-hit.js';
19
+ export * from './core/fo-handlers/slot-open.js';
20
+ export * from './core/fo-dispatch.js';
21
+ export * from './core/fo-command-processor.js';
22
+ export * from './core/fo-retry-policy.js';
23
+ export * from './core/fo-escalation.js';
24
+ export * from './core/outpost-registry.js';
25
+ export * from './core/blocked-outposts.js';
26
+ export * from './core/fo-broadcast.js';
27
+ export * from './core/fo-relay.js';
28
+ export * from './core/fo-task-report.js';
29
+ export * from './core/fo-webhook.js';
30
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,30 @@
1
+ export * from './types/index.js';
2
+ export * from './core/append-bead.js';
3
+ export * from './core/grand-archives.js';
4
+ export * from './core/process-registry.js';
5
+ export * from './core/nudge.js';
6
+ export * from './core/command-bead.js';
7
+ export * from './core/worktree-manager.js';
8
+ export * from './core/courier.js';
9
+ export * from './core/pre-spawn-check.js';
10
+ export * from './core/spawn-citizen.js';
11
+ export * from './core/timeout-watchdog.js';
12
+ export * from './core/validate-tribute.js';
13
+ export * from './core/citizen-bootstrap.js';
14
+ export * from './core/fo-state.js';
15
+ export * from './core/citizen-tribute.js';
16
+ export * from './core/fo-nudge-watcher.js';
17
+ export * from './core/fo-nudge-wiring.js';
18
+ export * from './core/fo-handlers/ceiling-hit.js';
19
+ export * from './core/fo-handlers/slot-open.js';
20
+ export * from './core/fo-dispatch.js';
21
+ export * from './core/fo-command-processor.js';
22
+ export * from './core/fo-retry-policy.js';
23
+ export * from './core/fo-escalation.js';
24
+ export * from './core/outpost-registry.js';
25
+ export * from './core/blocked-outposts.js';
26
+ export * from './core/fo-broadcast.js';
27
+ export * from './core/fo-relay.js';
28
+ export * from './core/fo-task-report.js';
29
+ export * from './core/fo-webhook.js';
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,47 @@
1
+ import type { ChildProcess } from 'node:child_process';
2
+ /**
3
+ * Environment variables injected into every Citizen process.
4
+ */
5
+ export interface CitizenEnv {
6
+ CITADEL_OUTPOST: string;
7
+ CITADEL_ARCHETYPE: string;
8
+ CITADEL_CITIZEN_ID: string;
9
+ CITADEL_TASK_ID: string;
10
+ CITADEL_WORKTREE: string;
11
+ CITADEL_BEADS_ROOT: string;
12
+ }
13
+ /**
14
+ * Options for spawning an agent process.
15
+ */
16
+ export interface AgentSpawnOptions {
17
+ systemPromptPath: string;
18
+ toolsetManifestPath: string;
19
+ workingDirectory: string;
20
+ env: CitizenEnv & Record<string, string>;
21
+ }
22
+ /**
23
+ * Result from a completed agent process.
24
+ */
25
+ export interface AgentExitResult {
26
+ exitCode: number | null;
27
+ signal: string | null;
28
+ }
29
+ /**
30
+ * Agent runtime abstraction. Each supported agent runtime implements this.
31
+ */
32
+ export interface AgentRuntime {
33
+ /** Identifier for this runtime (e.g. 'claude-code', 'cursor', 'copilot') */
34
+ readonly name: string;
35
+ /** Binary or command used to launch the agent */
36
+ readonly bin: string;
37
+ /**
38
+ * Spawn an agent process. Returns the child process handle.
39
+ * The caller (Courier) manages lifecycle via the returned ChildProcess.
40
+ */
41
+ spawn(options: AgentSpawnOptions): ChildProcess;
42
+ /**
43
+ * Build CLI arguments for the agent from spawn options.
44
+ */
45
+ buildArgs(options: AgentSpawnOptions): string[];
46
+ }
47
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/types/agent.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,GAAG,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,4EAA4E;IAC5E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,iDAAiD;IACjD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,KAAK,CAAC,OAAO,EAAE,iBAAiB,GAAG,YAAY,CAAC;IAEhD;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAAC;CACjD"}
@@ -0,0 +1,4 @@
1
+ // Agent runtime abstraction — agent-agnostic interface
2
+ // Supports: Claude Code, Cursor, Copilot, or any compatible CLI agent
3
+ export {};
4
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/types/agent.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,sEAAsE"}
@@ -0,0 +1,175 @@
1
+ export declare const SCHEMA_VERSION = "9.0";
2
+ export type BeadType = 'MAIL' | 'TRIBUTE' | 'IDENTITY' | 'COMMAND' | 'NUDGE';
3
+ export interface BaseBead {
4
+ bead_id: string;
5
+ bead_type: BeadType;
6
+ schema_version: string;
7
+ created_at: string;
8
+ metadata?: Record<string, unknown>;
9
+ }
10
+ export type MailType = 'TASK_ASSIGNMENT' | 'DEPENDENCY_RESOLVED' | 'OPERATOR_NOTE' | 'PEER_RELAY' | 'TRIBUTE_INVALID' | 'TASK_REPORT' | 'RELAY_REQUEST';
11
+ export type MailDirection = 'downward' | 'upward';
12
+ export interface SpawnHint {
13
+ archetype: string;
14
+ citizen_id: string;
15
+ }
16
+ export interface MailBead extends BaseBead {
17
+ bead_type: 'MAIL';
18
+ task_id?: string;
19
+ mail_type: MailType;
20
+ from: string;
21
+ to: string;
22
+ subject: string;
23
+ read: boolean;
24
+ retry_of: string | null;
25
+ spawn_hint?: SpawnHint;
26
+ payload: MailPayload;
27
+ }
28
+ export type MailPayload = TaskAssignmentPayload | DependencyResolvedPayload | OperatorNotePayload | PeerRelayPayload | TributeInvalidPayload | TaskReportPayload | RelayRequestPayload;
29
+ export interface TaskAssignmentPayload {
30
+ archetype: string;
31
+ citizen_id: string;
32
+ priority: 'CRITICAL' | 'HIGH' | 'MEDIUM' | 'LOW';
33
+ title: string;
34
+ description: string;
35
+ acceptance_criteria: string[];
36
+ context_refs: string[];
37
+ dependencies: string[];
38
+ timeout_seconds: number;
39
+ }
40
+ export interface DependencyResolvedPayload {
41
+ resolved_task_id: string;
42
+ resolved_by_outpost: string;
43
+ tribute_ref: string;
44
+ pr_url?: string;
45
+ summary: string;
46
+ }
47
+ export interface OperatorNotePayload {
48
+ body: string;
49
+ task_id?: string;
50
+ }
51
+ export interface PeerRelayPayload {
52
+ origin_outpost: string;
53
+ origin_mail_ref: string;
54
+ subject: string;
55
+ body: string;
56
+ context_refs: string[];
57
+ }
58
+ export interface TributeInvalidPayload {
59
+ tribute_ref: string;
60
+ errors: string[];
61
+ suggested_action: 'RETRY' | 'ESCALATE';
62
+ }
63
+ export type TaskReportStatus = 'IN_PROGRESS' | 'BLOCKED' | 'NEEDS_INPUT' | 'COMPLETE';
64
+ export interface TaskReportPayload {
65
+ status: TaskReportStatus;
66
+ summary: string;
67
+ blockers: string[];
68
+ questions: string[];
69
+ context_refs: string[];
70
+ }
71
+ export interface RelayRequestPayload {
72
+ intended_for: string;
73
+ subject: string;
74
+ body: string;
75
+ context_refs: string[];
76
+ }
77
+ export type TributeStatus = 'SUCCESS' | 'PARTIAL' | 'FAILED';
78
+ export interface TributeBead extends BaseBead {
79
+ bead_type: 'TRIBUTE';
80
+ citizen_id: string;
81
+ task_id: string;
82
+ originating_mail_ref: string;
83
+ archetype: string;
84
+ outpost: string;
85
+ worktree: string;
86
+ attempt: number;
87
+ status: TributeStatus;
88
+ pr_url?: string;
89
+ summary: string;
90
+ artifacts: string[];
91
+ acceptance_met: boolean[];
92
+ elapsed_seconds: number;
93
+ }
94
+ export interface IdentityBead extends BaseBead {
95
+ bead_type: 'IDENTITY';
96
+ role: 'first-officer';
97
+ display_name: string;
98
+ agent: string;
99
+ citadel_root: string;
100
+ last_session_at: string;
101
+ }
102
+ export type CommandName = 'dispatch' | 'note' | 'retry' | 'resolve';
103
+ export interface CommandBead extends BaseBead {
104
+ bead_type: 'COMMAND';
105
+ command: CommandName;
106
+ args: CommandArgs;
107
+ processed: boolean;
108
+ }
109
+ export type CommandArgs = DispatchArgs | NoteArgs | RetryArgs | ResolveArgs;
110
+ export interface DispatchArgs {
111
+ outpost: string;
112
+ task: string;
113
+ archetype?: string;
114
+ }
115
+ export interface NoteArgs {
116
+ outpost: string;
117
+ body: string;
118
+ task_id?: string;
119
+ }
120
+ export interface RetryArgs {
121
+ task_id: string;
122
+ }
123
+ export type ResolveAction = 'retry' | 'abandon' | 'rewrite';
124
+ export interface ResolveArgs {
125
+ task_id: string;
126
+ action: ResolveAction;
127
+ note?: string;
128
+ }
129
+ export type NudgeSignalType = 'TRIBUTE_WRITTEN' | 'MAIL_RECEIVED' | 'COMMAND_RECEIVED' | 'NO_TASK_ASSIGNMENT' | 'CITIZEN_EXIT_ERROR' | 'CITIZEN_TIMEOUT' | 'PARALLELISM_CEILING_HIT';
130
+ export interface NudgeBead extends BaseBead {
131
+ bead_type: 'NUDGE';
132
+ signal_type: NudgeSignalType;
133
+ payload: NudgePayload;
134
+ processed: boolean;
135
+ }
136
+ export type NudgePayload = TributeWrittenPayload | MailReceivedPayload | CommandReceivedPayload | NoTaskAssignmentPayload | CitizenExitErrorPayload | CitizenTimeoutPayload | ParallelismCeilingHitPayload;
137
+ export interface TributeWrittenPayload {
138
+ outpost: string;
139
+ tribute_bead_id: string;
140
+ task_id: string;
141
+ worktree: string;
142
+ }
143
+ export interface MailReceivedPayload {
144
+ mail_bead_id: string;
145
+ mail_type: MailType;
146
+ from: string;
147
+ }
148
+ export interface CommandReceivedPayload {
149
+ command_bead_id: string;
150
+ command: CommandName;
151
+ }
152
+ export interface NoTaskAssignmentPayload {
153
+ outpost: string;
154
+ triggering_mail_bead_id: string;
155
+ }
156
+ export interface CitizenExitErrorPayload {
157
+ outpost: string;
158
+ citizen_id: string;
159
+ task_id: string;
160
+ exit_code: number | null;
161
+ worktree: string;
162
+ }
163
+ export interface CitizenTimeoutPayload {
164
+ outpost: string;
165
+ citizen_id: string;
166
+ task_id: string;
167
+ spawned_at: string;
168
+ worktree: string;
169
+ }
170
+ export interface ParallelismCeilingHitPayload {
171
+ outpost: string;
172
+ active_count: number;
173
+ ceiling: number;
174
+ }
175
+ //# sourceMappingURL=beads.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"beads.d.ts","sourceRoot":"","sources":["../../src/types/beads.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ // Citadel Bead Schema — v9.0
2
+ // All Beads are append-only JSONL records, written via appendBead().
3
+ export const SCHEMA_VERSION = '9.0';
4
+ //# sourceMappingURL=beads.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"beads.js","sourceRoot":"","sources":["../../src/types/beads.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,qEAAqE;AAErE,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './beads.js';
2
+ export * from './registry.js';
3
+ export * from './agent.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './beads.js';
2
+ export * from './registry.js';
3
+ export * from './agent.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,110 @@
1
+ export type OutpostStatus = 'ACTIVE' | 'INACTIVE' | 'SUSPENDED';
2
+ export interface OutpostRegistryEntry {
3
+ slug: string;
4
+ path: string;
5
+ status: OutpostStatus;
6
+ registered_at: string;
7
+ default_archetype?: string;
8
+ max_citizens?: number;
9
+ }
10
+ export interface OutpostRegistry {
11
+ schema_version: string;
12
+ outposts: OutpostRegistryEntry[];
13
+ }
14
+ export interface ProcessRegistryEntry {
15
+ pid: number;
16
+ spawned_at: string;
17
+ worktree_path: string;
18
+ task_id: string;
19
+ }
20
+ export interface WorktreeEntry {
21
+ path: string;
22
+ branch: string;
23
+ head: string;
24
+ prunable: boolean;
25
+ }
26
+ export type ArchetypeStatus = 'active' | 'planned';
27
+ export interface ArchetypeRegistryEntry {
28
+ key: string;
29
+ description: string;
30
+ status: ArchetypeStatus;
31
+ }
32
+ export interface ArchetypeRegistry {
33
+ schema_version: string;
34
+ archetypes: ArchetypeRegistryEntry[];
35
+ }
36
+ export interface ArchetypeSystemPrompt {
37
+ preamble_ref: string;
38
+ body_ref: string;
39
+ }
40
+ export interface ArchetypeToolset {
41
+ base_ref: string;
42
+ override_ref: string;
43
+ }
44
+ export interface ArchetypeConfig {
45
+ key: string;
46
+ schema_version: string;
47
+ display_name: string;
48
+ system_prompt: ArchetypeSystemPrompt;
49
+ toolset: ArchetypeToolset;
50
+ constraints: {
51
+ max_tokens_per_turn: number;
52
+ temperature: number;
53
+ model: string;
54
+ };
55
+ }
56
+ export interface FirstOfficerConfig {
57
+ schema_version: string;
58
+ display_name: string;
59
+ singleton: boolean;
60
+ assignable: boolean;
61
+ agent: string;
62
+ system_prompt_ref: string;
63
+ toolset_ref: string;
64
+ model: string;
65
+ constraints: {
66
+ temperature: number;
67
+ max_tokens_per_turn: number;
68
+ };
69
+ retry_policy: RetryPolicy;
70
+ nudge_retention: number;
71
+ }
72
+ export interface RetryPolicy {
73
+ max_retries: number;
74
+ retry_on: string[];
75
+ partial_strategy: string;
76
+ on_ceiling_reached: string;
77
+ }
78
+ export interface CourierConfig {
79
+ citadel_root: string;
80
+ poll_interval_ms: number;
81
+ debounce_ms: number;
82
+ default_max_citizens: number;
83
+ citizen_timeout_seconds: number;
84
+ log_level: 'DEBUG' | 'INFO' | 'WARN' | 'ERROR';
85
+ log_path: string;
86
+ }
87
+ export interface ToolEntry {
88
+ name: string;
89
+ enabled: boolean;
90
+ allowed_commands?: string[];
91
+ }
92
+ export interface Toolset {
93
+ schema_version: string;
94
+ description: string;
95
+ tools: ToolEntry[];
96
+ }
97
+ export interface ResolvedArchetype {
98
+ key: string;
99
+ display_name: string;
100
+ preamble_path: string;
101
+ system_prompt_path: string;
102
+ toolset_manifest_path: string;
103
+ model: string;
104
+ agent_binary: string;
105
+ constraints: {
106
+ max_tokens_per_turn: number;
107
+ temperature: number;
108
+ };
109
+ }
110
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/types/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ // Outpost Registry and Grand Archives types
2
+ export {};
3
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/types/registry.ts"],"names":[],"mappings":"AAAA,4CAA4C"}
package/docs/README.md ADDED
@@ -0,0 +1,7 @@
1
+ # Citadel Documentation
2
+
3
+ - [Getting Started](./getting-started.md) - Install, initialize, and dispatch your first task
4
+ - [Architecture](./architecture.md) - System design, bead types, chain of command
5
+ - [CLI Reference](./cli-reference.md) - All commands, flags, and examples
6
+ - [Configuration](./configuration.md) - courier.config.yaml, outpost overrides, archetype setup
7
+ - [Contributing](./contributing.md) - Development setup, testing, and PR guidelines
@@ -0,0 +1,106 @@
1
+ # Architecture
2
+
3
+ ## Chain of Command
4
+
5
+ ```
6
+ Commander (you)
7
+ | issues orders via CLI
8
+ v
9
+ First Officer (persistent LLM agent, agent-agnostic)
10
+ | selects archetype, mints citizen_id, writes Mail
11
+ v
12
+ Courier (daemon)
13
+ | watches filesystem, manages worktrees, spawns Citizens
14
+ v
15
+ Citizens (cold-start LLM agents in isolated git worktrees)
16
+ | read Mail, do work, write Tribute
17
+ v
18
+ First Officer receives Tribute, validates, broadcasts, retries or escalates
19
+ ```
20
+
21
+ | Role | What It Does | Writes |
22
+ |---|---|---|
23
+ | **Commander** | Issues orders, reviews Broadcasts | Command Beads |
24
+ | **First Officer** | Orchestrates everything — dispatch, retry, escalate | Mail Beads (downward) |
25
+ | **Courier** | Watches filesystem, spawns Citizens, manages worktrees | Nudge Beads only |
26
+ | **Citizens** | Execute tasks in isolated worktrees | Tribute + Mail (upward) |
27
+
28
+ ## Bead Types
29
+
30
+ All state lives in append-only JSONL files, written through `appendBead()` with lockfile serialization.
31
+
32
+ | Bead | Purpose | Path |
33
+ |---|---|---|
34
+ | **Mail** | Universal message envelope, sole wake trigger | `.beads/mail/*.jsonl` |
35
+ | **Tribute** | Work output — status, artifacts, acceptance criteria | `.beads/tribute/*.jsonl` |
36
+ | **Identity** | First Officer persistent identity | `.citadel/identity.jsonl` |
37
+ | **Command** | Commander input (dispatch, note, retry, resolve) | `.citadel/commands/*.jsonl` |
38
+ | **Nudge** | Courier-to-FO signals (never load-bearing) | `.citadel/nudges.jsonl` |
39
+
40
+ ## Nudge Signal Types
41
+
42
+ The Courier sends 7 signal types to the First Officer via nudges:
43
+
44
+ | Signal | Trigger | FO Action |
45
+ |---|---|---|
46
+ | `TRIBUTE_WRITTEN` | Citizen writes tribute | Validate, retry/broadcast/escalate |
47
+ | `MAIL_RECEIVED` | Upward mail from citizen | Route RELAY_REQUEST/TASK_REPORT |
48
+ | `COMMAND_RECEIVED` | Commander writes command | Process dispatch/note/retry/resolve |
49
+ | `CITIZEN_EXIT_ERROR` | Citizen process crashes | Log, consider retry |
50
+ | `CITIZEN_TIMEOUT` | Citizen exceeds timeout | Kill process, nudge FO |
51
+ | `PARALLELISM_CEILING_HIT` | Outpost at max citizens | Log contention, queue work |
52
+ | `NO_TASK_ASSIGNMENT` | No unread mail for citizen | Log, no action needed |
53
+
54
+ ## Parallelism
55
+
56
+ Multiple Citizens can work the same Outpost simultaneously:
57
+
58
+ ```
59
+ outpost-api-gateway/
60
+ .beads/ <-- shared across all Citizens
61
+ mail/ <-- inbox = pending work queue
62
+ tribute/ <-- all attempts, all tasks
63
+ worktrees/citizen/
64
+ task_a1b2c3/ <-- Citizen A workspace
65
+ task_d4e5f6/ <-- Citizen B workspace
66
+ ```
67
+
68
+ Parallelism ceiling is `max_citizens` per outpost (default 3). When at capacity, tasks queue in the inbox and auto-dispatch when a slot opens.
69
+
70
+ ## Retry Policy
71
+
72
+ Failed or partial Tribute triggers automatic retry up to `max_retries`. The worktree is preserved — retry Citizens inherit prior state. At the ceiling, the FO escalates to Commander.
73
+
74
+ ## Dependency Resolution
75
+
76
+ Tasks can declare dependencies. On SUCCESS tribute, the FO scans all outposts for blocked tasks and sends `DEPENDENCY_RESOLVED` mail.
77
+
78
+ ## Inter-Outpost Relay
79
+
80
+ Citizens can request peer communication via `RELAY_REQUEST` mail. The FO routes it as `PEER_RELAY` to the target outpost.
81
+
82
+ ## Task Reports
83
+
84
+ Citizens send `TASK_REPORT` mail for status updates:
85
+
86
+ | Status | FO Action |
87
+ |---|---|
88
+ | `IN_PROGRESS` | Log update |
89
+ | `BLOCKED` | Escalate to Commander |
90
+ | `NEEDS_INPUT` | Escalate to Commander |
91
+ | `COMPLETE` | Log note, await Tribute |
92
+
93
+ ## Lockfile Contract
94
+
95
+ All bead writes go through `appendBead()`:
96
+
97
+ 1. Lockfile acquisition via `proper-lockfile` (retries: 3, stale: 5s)
98
+ 2. Atomic append — single JSON line per write
99
+ 3. Best-effort git commit after write
100
+ 4. Cross-platform (Windows, macOS, Linux)
101
+
102
+ Concurrent writes to the same file are serialized. Writes to different files run in parallel.
103
+
104
+ ## State Reconstruction
105
+
106
+ Full FO state is reconstructed from Mail + Tribute only. Nudge history is disposable. Identity persists; sessions are cattle.
@@ -0,0 +1,81 @@
1
+ # CLI Reference
2
+
3
+ ## Workspace
4
+
5
+ | Command | Description |
6
+ |---|---|
7
+ | `citadel init [dir]` | Scaffold `.citadel/`, `grand-archives/`, `outposts/`, `courier.config.yaml` |
8
+ | `citadel status` | Session info, per-outpost overview, pending counts |
9
+ | `citadel reset` | Clear unprocessed commands and nudges |
10
+ | `citadel reset --hard` | Wipe `.citadel/` and citadel-level `.beads/` (outpost beads untouched) |
11
+
12
+ ## Session
13
+
14
+ | Command | Description |
15
+ |---|---|
16
+ | `citadel start [--agent <runtime>]` | Boot the First Officer (claude-code, cursor, copilot) |
17
+ | `citadel stop` | Graceful shutdown — clears unprocessed nudges, writes session.log |
18
+ | `citadel attach` | Tail session log (Unix: live `tail -f`; Windows: last 20 lines) |
19
+ | `citadel detach` | Disconnect Commander view; session continues |
20
+
21
+ ## Outposts
22
+
23
+ | Command | Description |
24
+ |---|---|
25
+ | `citadel outpost register --slug <name> --path <path>` | Register a repo as an outpost |
26
+ | `citadel worktree list --outpost <slug>` | Show active worktrees |
27
+ | `citadel worktree prune [--outpost <slug>]` | Clean up orphaned worktrees |
28
+
29
+ ## Commands (Full Form)
30
+
31
+ | Command | Description |
32
+ |---|---|
33
+ | `citadel command dispatch --outpost <slug> --task <text> [--archetype <key>]` | Assign a task |
34
+ | `citadel command note --outpost <slug> --body <text> [--task-id <id>]` | Send guidance |
35
+ | `citadel command retry --task-id <id>` | Force retry |
36
+ | `citadel command resolve --task-id <id> --action <retry\|abandon\|rewrite> [--note <text>]` | Resolve escalation |
37
+
38
+ ## Top-Level Aliases
39
+
40
+ | Command | Equivalent |
41
+ |---|---|
42
+ | `citadel dispatch --outpost <slug> --task <text> [--archetype <key>]` | `citadel command dispatch` |
43
+ | `citadel note --outpost <slug> --body <text> [--task-id <id>]` | `citadel command note` |
44
+ | `citadel resolve --task-id <id> --action <action> [--note <text>]` | `citadel command resolve` |
45
+
46
+ ## Inspection
47
+
48
+ | Command | Description |
49
+ |---|---|
50
+ | `citadel tribute --task <id>` | List all tribute attempts for a task |
51
+ | `citadel trace --task <id>` | Full event timeline (commands, mail, tribute, nudges) |
52
+
53
+ ## Examples
54
+
55
+ ```bash
56
+ # Initialize and start
57
+ citadel init my-project && cd my-project
58
+ citadel outpost register --slug api --path ../api-server
59
+ citadel start
60
+
61
+ # Dispatch tasks
62
+ citadel dispatch --outpost api --task "Add health check endpoint"
63
+ citadel dispatch --outpost api --task "Write integration tests" --archetype qa-engineer
64
+
65
+ # Monitor
66
+ citadel status
67
+ citadel attach
68
+
69
+ # Inspect results
70
+ citadel tribute --task task-abc123
71
+ citadel trace --task task-abc123
72
+
73
+ # Handle escalations
74
+ citadel resolve --task-id task-abc123 --action retry --note "Try a different approach"
75
+ citadel resolve --task-id task-abc123 --action abandon
76
+
77
+ # Cleanup
78
+ citadel stop
79
+ citadel worktree prune --outpost api
80
+ citadel reset
81
+ ```