@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.
- package/README.md +145 -0
- package/dist/__tests__/append-bead.test.d.ts +2 -0
- package/dist/__tests__/append-bead.test.d.ts.map +1 -0
- package/dist/__tests__/append-bead.test.js +88 -0
- package/dist/__tests__/append-bead.test.js.map +1 -0
- package/dist/__tests__/blocked-outposts.test.d.ts +2 -0
- package/dist/__tests__/blocked-outposts.test.d.ts.map +1 -0
- package/dist/__tests__/blocked-outposts.test.js +142 -0
- package/dist/__tests__/blocked-outposts.test.js.map +1 -0
- package/dist/__tests__/bugfixes.test.d.ts +2 -0
- package/dist/__tests__/bugfixes.test.d.ts.map +1 -0
- package/dist/__tests__/bugfixes.test.js +503 -0
- package/dist/__tests__/bugfixes.test.js.map +1 -0
- package/dist/__tests__/citizen-tribute.test.d.ts +2 -0
- package/dist/__tests__/citizen-tribute.test.d.ts.map +1 -0
- package/dist/__tests__/citizen-tribute.test.js +106 -0
- package/dist/__tests__/citizen-tribute.test.js.map +1 -0
- package/dist/__tests__/cli-e2e/dispatch-note-resolve.test.d.ts +2 -0
- package/dist/__tests__/cli-e2e/dispatch-note-resolve.test.d.ts.map +1 -0
- package/dist/__tests__/cli-e2e/dispatch-note-resolve.test.js +65 -0
- package/dist/__tests__/cli-e2e/dispatch-note-resolve.test.js.map +1 -0
- package/dist/__tests__/cli-e2e/full-lifecycle.test.d.ts +2 -0
- package/dist/__tests__/cli-e2e/full-lifecycle.test.d.ts.map +1 -0
- package/dist/__tests__/cli-e2e/full-lifecycle.test.js +157 -0
- package/dist/__tests__/cli-e2e/full-lifecycle.test.js.map +1 -0
- package/dist/__tests__/cli-e2e/helpers.d.ts +28 -0
- package/dist/__tests__/cli-e2e/helpers.d.ts.map +1 -0
- package/dist/__tests__/cli-e2e/helpers.js +76 -0
- package/dist/__tests__/cli-e2e/helpers.js.map +1 -0
- package/dist/__tests__/cli-e2e/init-outpost-status.test.d.ts +2 -0
- package/dist/__tests__/cli-e2e/init-outpost-status.test.d.ts.map +1 -0
- package/dist/__tests__/cli-e2e/init-outpost-status.test.js +79 -0
- package/dist/__tests__/cli-e2e/init-outpost-status.test.js.map +1 -0
- package/dist/__tests__/cli-e2e/reset-stop-tribute-trace.test.d.ts +2 -0
- package/dist/__tests__/cli-e2e/reset-stop-tribute-trace.test.d.ts.map +1 -0
- package/dist/__tests__/cli-e2e/reset-stop-tribute-trace.test.js +158 -0
- package/dist/__tests__/cli-e2e/reset-stop-tribute-trace.test.js.map +1 -0
- package/dist/__tests__/courier.test.d.ts +2 -0
- package/dist/__tests__/courier.test.d.ts.map +1 -0
- package/dist/__tests__/courier.test.js +97 -0
- package/dist/__tests__/courier.test.js.map +1 -0
- package/dist/__tests__/e2e-smoke.test.d.ts +2 -0
- package/dist/__tests__/e2e-smoke.test.d.ts.map +1 -0
- package/dist/__tests__/e2e-smoke.test.js +137 -0
- package/dist/__tests__/e2e-smoke.test.js.map +1 -0
- package/dist/__tests__/fo-broadcast.test.d.ts +2 -0
- package/dist/__tests__/fo-broadcast.test.d.ts.map +1 -0
- package/dist/__tests__/fo-broadcast.test.js +134 -0
- package/dist/__tests__/fo-broadcast.test.js.map +1 -0
- package/dist/__tests__/fo-command-processor.test.d.ts +2 -0
- package/dist/__tests__/fo-command-processor.test.d.ts.map +1 -0
- package/dist/__tests__/fo-command-processor.test.js +86 -0
- package/dist/__tests__/fo-command-processor.test.js.map +1 -0
- package/dist/__tests__/fo-escalation.test.d.ts +2 -0
- package/dist/__tests__/fo-escalation.test.d.ts.map +1 -0
- package/dist/__tests__/fo-escalation.test.js +126 -0
- package/dist/__tests__/fo-escalation.test.js.map +1 -0
- package/dist/__tests__/fo-nudge-watcher.test.d.ts +2 -0
- package/dist/__tests__/fo-nudge-watcher.test.d.ts.map +1 -0
- package/dist/__tests__/fo-nudge-watcher.test.js +154 -0
- package/dist/__tests__/fo-nudge-watcher.test.js.map +1 -0
- package/dist/__tests__/fo-nudge-wiring.test.d.ts +2 -0
- package/dist/__tests__/fo-nudge-wiring.test.d.ts.map +1 -0
- package/dist/__tests__/fo-nudge-wiring.test.js +31 -0
- package/dist/__tests__/fo-nudge-wiring.test.js.map +1 -0
- package/dist/__tests__/fo-relay.test.d.ts +2 -0
- package/dist/__tests__/fo-relay.test.d.ts.map +1 -0
- package/dist/__tests__/fo-relay.test.js +90 -0
- package/dist/__tests__/fo-relay.test.js.map +1 -0
- package/dist/__tests__/fo-task-report.test.d.ts +2 -0
- package/dist/__tests__/fo-task-report.test.d.ts.map +1 -0
- package/dist/__tests__/fo-task-report.test.js +81 -0
- package/dist/__tests__/fo-task-report.test.js.map +1 -0
- package/dist/__tests__/fo-webhook.test.d.ts +2 -0
- package/dist/__tests__/fo-webhook.test.d.ts.map +1 -0
- package/dist/__tests__/fo-webhook.test.js +70 -0
- package/dist/__tests__/fo-webhook.test.js.map +1 -0
- package/dist/__tests__/integration.test.d.ts +2 -0
- package/dist/__tests__/integration.test.d.ts.map +1 -0
- package/dist/__tests__/integration.test.js +763 -0
- package/dist/__tests__/integration.test.js.map +1 -0
- package/dist/__tests__/multi-outpost-dep.test.d.ts +2 -0
- package/dist/__tests__/multi-outpost-dep.test.d.ts.map +1 -0
- package/dist/__tests__/multi-outpost-dep.test.js +173 -0
- package/dist/__tests__/multi-outpost-dep.test.js.map +1 -0
- package/dist/__tests__/nudge.test.d.ts +2 -0
- package/dist/__tests__/nudge.test.d.ts.map +1 -0
- package/dist/__tests__/nudge.test.js +103 -0
- package/dist/__tests__/nudge.test.js.map +1 -0
- package/dist/__tests__/outpost-registry.test.d.ts +2 -0
- package/dist/__tests__/outpost-registry.test.d.ts.map +1 -0
- package/dist/__tests__/outpost-registry.test.js +72 -0
- package/dist/__tests__/outpost-registry.test.js.map +1 -0
- package/dist/__tests__/process-registry.test.d.ts +2 -0
- package/dist/__tests__/process-registry.test.d.ts.map +1 -0
- package/dist/__tests__/process-registry.test.js +108 -0
- package/dist/__tests__/process-registry.test.js.map +1 -0
- package/dist/__tests__/session-log.test.d.ts +2 -0
- package/dist/__tests__/session-log.test.d.ts.map +1 -0
- package/dist/__tests__/session-log.test.js +60 -0
- package/dist/__tests__/session-log.test.js.map +1 -0
- package/dist/__tests__/spawn-citizen.test.d.ts +2 -0
- package/dist/__tests__/spawn-citizen.test.d.ts.map +1 -0
- package/dist/__tests__/spawn-citizen.test.js +48 -0
- package/dist/__tests__/spawn-citizen.test.js.map +1 -0
- package/dist/__tests__/timeout-watchdog.test.d.ts +2 -0
- package/dist/__tests__/timeout-watchdog.test.d.ts.map +1 -0
- package/dist/__tests__/timeout-watchdog.test.js +81 -0
- package/dist/__tests__/timeout-watchdog.test.js.map +1 -0
- package/dist/__tests__/worktree-manager.test.d.ts +2 -0
- package/dist/__tests__/worktree-manager.test.d.ts.map +1 -0
- package/dist/__tests__/worktree-manager.test.js +98 -0
- package/dist/__tests__/worktree-manager.test.js.map +1 -0
- package/dist/cli/aliases.d.ts +10 -0
- package/dist/cli/aliases.d.ts.map +1 -0
- package/dist/cli/aliases.js +56 -0
- package/dist/cli/aliases.js.map +1 -0
- package/dist/cli/command.d.ts +3 -0
- package/dist/cli/command.d.ts.map +1 -0
- package/dist/cli/command.js +63 -0
- package/dist/cli/command.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +29 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/init.d.ts +3 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +57 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/cli/outpost.d.ts +3 -0
- package/dist/cli/outpost.d.ts.map +1 -0
- package/dist/cli/outpost.js +65 -0
- package/dist/cli/outpost.js.map +1 -0
- package/dist/cli/reset.d.ts +3 -0
- package/dist/cli/reset.d.ts.map +1 -0
- package/dist/cli/reset.js +67 -0
- package/dist/cli/reset.js.map +1 -0
- package/dist/cli/session.d.ts +3 -0
- package/dist/cli/session.d.ts.map +1 -0
- package/dist/cli/session.js +112 -0
- package/dist/cli/session.js.map +1 -0
- package/dist/cli/start.d.ts +3 -0
- package/dist/cli/start.d.ts.map +1 -0
- package/dist/cli/start.js +105 -0
- package/dist/cli/start.js.map +1 -0
- package/dist/cli/status.d.ts +3 -0
- package/dist/cli/status.d.ts.map +1 -0
- package/dist/cli/status.js +128 -0
- package/dist/cli/status.js.map +1 -0
- package/dist/cli/tribute.d.ts +3 -0
- package/dist/cli/tribute.d.ts.map +1 -0
- package/dist/cli/tribute.js +160 -0
- package/dist/cli/tribute.js.map +1 -0
- package/dist/cli/worktree.d.ts +3 -0
- package/dist/cli/worktree.d.ts.map +1 -0
- package/dist/cli/worktree.js +64 -0
- package/dist/cli/worktree.js.map +1 -0
- package/dist/core/append-bead.d.ts +13 -0
- package/dist/core/append-bead.d.ts.map +1 -0
- package/dist/core/append-bead.js +68 -0
- package/dist/core/append-bead.js.map +1 -0
- package/dist/core/blocked-outposts.d.ts +15 -0
- package/dist/core/blocked-outposts.d.ts.map +1 -0
- package/dist/core/blocked-outposts.js +77 -0
- package/dist/core/blocked-outposts.js.map +1 -0
- package/dist/core/citizen-bootstrap.d.ts +17 -0
- package/dist/core/citizen-bootstrap.d.ts.map +1 -0
- package/dist/core/citizen-bootstrap.js +118 -0
- package/dist/core/citizen-bootstrap.js.map +1 -0
- package/dist/core/citizen-tribute.d.ts +17 -0
- package/dist/core/citizen-tribute.d.ts.map +1 -0
- package/dist/core/citizen-tribute.js +55 -0
- package/dist/core/citizen-tribute.js.map +1 -0
- package/dist/core/command-bead.d.ts +6 -0
- package/dist/core/command-bead.d.ts.map +1 -0
- package/dist/core/command-bead.js +20 -0
- package/dist/core/command-bead.js.map +1 -0
- package/dist/core/courier.d.ts +52 -0
- package/dist/core/courier.d.ts.map +1 -0
- package/dist/core/courier.js +167 -0
- package/dist/core/courier.js.map +1 -0
- package/dist/core/fo-broadcast.d.ts +15 -0
- package/dist/core/fo-broadcast.d.ts.map +1 -0
- package/dist/core/fo-broadcast.js +57 -0
- package/dist/core/fo-broadcast.js.map +1 -0
- package/dist/core/fo-command-processor.d.ts +7 -0
- package/dist/core/fo-command-processor.d.ts.map +1 -0
- package/dist/core/fo-command-processor.js +123 -0
- package/dist/core/fo-command-processor.js.map +1 -0
- package/dist/core/fo-dispatch.d.ts +24 -0
- package/dist/core/fo-dispatch.d.ts.map +1 -0
- package/dist/core/fo-dispatch.js +76 -0
- package/dist/core/fo-dispatch.js.map +1 -0
- package/dist/core/fo-escalation.d.ts +20 -0
- package/dist/core/fo-escalation.d.ts.map +1 -0
- package/dist/core/fo-escalation.js +83 -0
- package/dist/core/fo-escalation.js.map +1 -0
- package/dist/core/fo-handlers/ceiling-hit.d.ts +8 -0
- package/dist/core/fo-handlers/ceiling-hit.d.ts.map +1 -0
- package/dist/core/fo-handlers/ceiling-hit.js +10 -0
- package/dist/core/fo-handlers/ceiling-hit.js.map +1 -0
- package/dist/core/fo-handlers/slot-open.d.ts +13 -0
- package/dist/core/fo-handlers/slot-open.d.ts.map +1 -0
- package/dist/core/fo-handlers/slot-open.js +63 -0
- package/dist/core/fo-handlers/slot-open.js.map +1 -0
- package/dist/core/fo-nudge-watcher.d.ts +19 -0
- package/dist/core/fo-nudge-watcher.d.ts.map +1 -0
- package/dist/core/fo-nudge-watcher.js +71 -0
- package/dist/core/fo-nudge-watcher.js.map +1 -0
- package/dist/core/fo-nudge-wiring.d.ts +13 -0
- package/dist/core/fo-nudge-wiring.d.ts.map +1 -0
- package/dist/core/fo-nudge-wiring.js +120 -0
- package/dist/core/fo-nudge-wiring.js.map +1 -0
- package/dist/core/fo-relay.d.ts +7 -0
- package/dist/core/fo-relay.d.ts.map +1 -0
- package/dist/core/fo-relay.js +47 -0
- package/dist/core/fo-relay.js.map +1 -0
- package/dist/core/fo-retry-policy.d.ts +17 -0
- package/dist/core/fo-retry-policy.d.ts.map +1 -0
- package/dist/core/fo-retry-policy.js +89 -0
- package/dist/core/fo-retry-policy.js.map +1 -0
- package/dist/core/fo-state.d.ts +25 -0
- package/dist/core/fo-state.d.ts.map +1 -0
- package/dist/core/fo-state.js +99 -0
- package/dist/core/fo-state.js.map +1 -0
- package/dist/core/fo-task-report.d.ts +16 -0
- package/dist/core/fo-task-report.d.ts.map +1 -0
- package/dist/core/fo-task-report.js +63 -0
- package/dist/core/fo-task-report.js.map +1 -0
- package/dist/core/fo-webhook.d.ts +22 -0
- package/dist/core/fo-webhook.d.ts.map +1 -0
- package/dist/core/fo-webhook.js +43 -0
- package/dist/core/fo-webhook.js.map +1 -0
- package/dist/core/grand-archives.d.ts +14 -0
- package/dist/core/grand-archives.d.ts.map +1 -0
- package/dist/core/grand-archives.js +79 -0
- package/dist/core/grand-archives.js.map +1 -0
- package/dist/core/nudge.d.ts +6 -0
- package/dist/core/nudge.d.ts.map +1 -0
- package/dist/core/nudge.js +19 -0
- package/dist/core/nudge.js.map +1 -0
- package/dist/core/outpost-registry.d.ts +16 -0
- package/dist/core/outpost-registry.d.ts.map +1 -0
- package/dist/core/outpost-registry.js +27 -0
- package/dist/core/outpost-registry.js.map +1 -0
- package/dist/core/pre-spawn-check.d.ts +16 -0
- package/dist/core/pre-spawn-check.d.ts.map +1 -0
- package/dist/core/pre-spawn-check.js +50 -0
- package/dist/core/pre-spawn-check.js.map +1 -0
- package/dist/core/process-registry.d.ts +17 -0
- package/dist/core/process-registry.d.ts.map +1 -0
- package/dist/core/process-registry.js +71 -0
- package/dist/core/process-registry.js.map +1 -0
- package/dist/core/spawn-citizen.d.ts +23 -0
- package/dist/core/spawn-citizen.d.ts.map +1 -0
- package/dist/core/spawn-citizen.js +99 -0
- package/dist/core/spawn-citizen.js.map +1 -0
- package/dist/core/timeout-watchdog.d.ts +14 -0
- package/dist/core/timeout-watchdog.d.ts.map +1 -0
- package/dist/core/timeout-watchdog.js +68 -0
- package/dist/core/timeout-watchdog.js.map +1 -0
- package/dist/core/validate-tribute.d.ts +11 -0
- package/dist/core/validate-tribute.d.ts.map +1 -0
- package/dist/core/validate-tribute.js +44 -0
- package/dist/core/validate-tribute.js.map +1 -0
- package/dist/core/worktree-manager.d.ts +20 -0
- package/dist/core/worktree-manager.d.ts.map +1 -0
- package/dist/core/worktree-manager.js +123 -0
- package/dist/core/worktree-manager.js.map +1 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +30 -0
- package/dist/index.js.map +1 -0
- package/dist/types/agent.d.ts +47 -0
- package/dist/types/agent.d.ts.map +1 -0
- package/dist/types/agent.js +4 -0
- package/dist/types/agent.js.map +1 -0
- package/dist/types/beads.d.ts +175 -0
- package/dist/types/beads.d.ts.map +1 -0
- package/dist/types/beads.js +4 -0
- package/dist/types/beads.js.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +4 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/registry.d.ts +110 -0
- package/dist/types/registry.d.ts.map +1 -0
- package/dist/types/registry.js +3 -0
- package/dist/types/registry.js.map +1 -0
- package/docs/README.md +7 -0
- package/docs/architecture.md +106 -0
- package/docs/cli-reference.md +81 -0
- package/docs/configuration.md +143 -0
- package/docs/contributing.md +65 -0
- package/docs/getting-started.md +88 -0
- package/grand-archives/archetypes/architect/archetype.json +18 -0
- package/grand-archives/archetypes/qa-engineer/archetype.json +18 -0
- package/grand-archives/archetypes/software-engineer/archetype.json +18 -0
- package/grand-archives/archetypes/software-engineer/system-prompt.md +39 -0
- package/grand-archives/archetypes/software-engineer/toolset.json +15 -0
- package/grand-archives/first-officer/config.json +21 -0
- package/grand-archives/first-officer/system-prompt.md +47 -0
- package/grand-archives/first-officer/toolset.json +19 -0
- package/grand-archives/registry.json +8 -0
- package/grand-archives/shared/base-prompt-preamble.md +25 -0
- package/grand-archives/shared/base-tools.json +10 -0
- package/package.json +73 -0
package/dist/index.d.ts
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.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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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
|
+
```
|