@voybio/ace-swarm 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 (334) hide show
  1. package/CHANGELOG.md +109 -0
  2. package/LICENSE +186 -0
  3. package/README.md +229 -0
  4. package/assets/.agents/ACE/ACE-Init/AGENTS.md +210 -0
  5. package/assets/.agents/ACE/ACE-Init/instructions.md +118 -0
  6. package/assets/.agents/ACE/ACE_coders/AGENTS.md +154 -0
  7. package/assets/.agents/ACE/ACE_coders/INSTRUCTIONS.md +216 -0
  8. package/assets/.agents/ACE/AGENT_REGISTRY.md +70 -0
  9. package/assets/.agents/ACE/AGENT_REGISTRY_7.md +9 -0
  10. package/assets/.agents/ACE/DIRECTIVE_KERNEL.md +234 -0
  11. package/assets/.agents/ACE/UI/AGENTS.md +115 -0
  12. package/assets/.agents/ACE/UI/instructions.md +178 -0
  13. package/assets/.agents/ACE/VOS/ACE_VOS_MISSING_INFO_MATRIX.md +42 -0
  14. package/assets/.agents/ACE/VOS/AGENTS.md +72 -0
  15. package/assets/.agents/ACE/VOS/instructions.md +211 -0
  16. package/assets/.agents/ACE/agent-astgrep/AGENTS.md +123 -0
  17. package/assets/.agents/ACE/agent-astgrep/instructions.md +91 -0
  18. package/assets/.agents/ACE/agent-builder/AGENTS.md +172 -0
  19. package/assets/.agents/ACE/agent-builder/instructions.md +137 -0
  20. package/assets/.agents/ACE/agent-docs/AGENTS.md +159 -0
  21. package/assets/.agents/ACE/agent-docs/instructions.md +133 -0
  22. package/assets/.agents/ACE/agent-eval/AGENTS.md +46 -0
  23. package/assets/.agents/ACE/agent-eval/instructions.md +56 -0
  24. package/assets/.agents/ACE/agent-memory/AGENTS.md +49 -0
  25. package/assets/.agents/ACE/agent-memory/instructions.md +50 -0
  26. package/assets/.agents/ACE/agent-observability/AGENTS.md +46 -0
  27. package/assets/.agents/ACE/agent-observability/instructions.md +50 -0
  28. package/assets/.agents/ACE/agent-ops/AGENTS.md +201 -0
  29. package/assets/.agents/ACE/agent-ops/instructions.md +136 -0
  30. package/assets/.agents/ACE/agent-qa/AGENTS.md +189 -0
  31. package/assets/.agents/ACE/agent-qa/instructions.md +121 -0
  32. package/assets/.agents/ACE/agent-release/AGENTS.md +48 -0
  33. package/assets/.agents/ACE/agent-release/instructions.md +49 -0
  34. package/assets/.agents/ACE/agent-research/AGENTS.md +160 -0
  35. package/assets/.agents/ACE/agent-research/instructions.md +118 -0
  36. package/assets/.agents/ACE/agent-security/AGENTS.md +48 -0
  37. package/assets/.agents/ACE/agent-security/instructions.md +50 -0
  38. package/assets/.agents/ACE/agent-skeptic/AGENTS.md +178 -0
  39. package/assets/.agents/ACE/agent-skeptic/instructions.md +196 -0
  40. package/assets/.agents/ACE/agent-spec/AGENTS.md +169 -0
  41. package/assets/.agents/ACE/agent-spec/instructions.md +116 -0
  42. package/assets/.agents/ACE/orchestrator/AGENTS.md +365 -0
  43. package/assets/.agents/ACE/orchestrator/instructions.md +231 -0
  44. package/assets/.agents/skills/ace-orchestrator/SKILL.md +63 -0
  45. package/assets/.agents/skills/ace-orchestrator/references/engineering-bootstrap-playbook.md +360 -0
  46. package/assets/.agents/skills/astgrep-index/SKILL.md +58 -0
  47. package/assets/.agents/skills/codemunch/SKILL.md +65 -0
  48. package/assets/.agents/skills/codemunch/references/ast-driven-protocol.md +543 -0
  49. package/assets/.agents/skills/codesnipe/SKILL.md +64 -0
  50. package/assets/.agents/skills/codesnipe/references/dual-codebase-playbook.md +671 -0
  51. package/assets/.agents/skills/eval-harness/SKILL.md +203 -0
  52. package/assets/.agents/skills/handoff-lint/SKILL.md +164 -0
  53. package/assets/.agents/skills/incident-commander/SKILL.md +174 -0
  54. package/assets/.agents/skills/landing-review-watcher/SKILL.md +68 -0
  55. package/assets/.agents/skills/memory-curator/SKILL.md +179 -0
  56. package/assets/.agents/skills/problem-triage/SKILL.md +57 -0
  57. package/assets/.agents/skills/problem-triage/agents/openai.yaml +3 -0
  58. package/assets/.agents/skills/release-sentry/SKILL.md +189 -0
  59. package/assets/.agents/skills/risk-quant/SKILL.md +190 -0
  60. package/assets/.agents/skills/schema-forge/SKILL.md +174 -0
  61. package/assets/.agents/skills/skill-auditor/SKILL.md +52 -0
  62. package/assets/.agents/skills/state-auditor/SKILL.md +182 -0
  63. package/assets/.github/hooks/ace-copilot.json +68 -0
  64. package/assets/agent-state/ACE_WORKFLOW.md +131 -0
  65. package/assets/agent-state/ARTIFACT_MANIFEST.json +5 -0
  66. package/assets/agent-state/AST_GREP_COMMANDS.md +121 -0
  67. package/assets/agent-state/AST_GREP_INDEX.json +13 -0
  68. package/assets/agent-state/AST_GREP_INDEX.md +15 -0
  69. package/assets/agent-state/DECISIONS.md +7 -0
  70. package/assets/agent-state/EVIDENCE_LOG.md +7 -0
  71. package/assets/agent-state/HANDOFF.json +24 -0
  72. package/assets/agent-state/INTERFACE_REGISTRY.md +75 -0
  73. package/assets/agent-state/MODULES/gates/gate-autonomy.json +7 -0
  74. package/assets/agent-state/MODULES/gates/gate-completeness.json +7 -0
  75. package/assets/agent-state/MODULES/gates/gate-correctness.json +7 -0
  76. package/assets/agent-state/MODULES/gates/gate-evaluation.json +7 -0
  77. package/assets/agent-state/MODULES/gates/gate-operability.json +7 -0
  78. package/assets/agent-state/MODULES/gates/gate-security.json +7 -0
  79. package/assets/agent-state/MODULES/gates/gate-typescript-public-surface.json +7 -0
  80. package/assets/agent-state/MODULES/registry.json +41 -0
  81. package/assets/agent-state/MODULES/roles/capability-astgrep.json +49 -0
  82. package/assets/agent-state/MODULES/roles/capability-build.json +39 -0
  83. package/assets/agent-state/MODULES/roles/capability-docs.json +38 -0
  84. package/assets/agent-state/MODULES/roles/capability-eval.json +20 -0
  85. package/assets/agent-state/MODULES/roles/capability-memory.json +20 -0
  86. package/assets/agent-state/MODULES/roles/capability-observability.json +20 -0
  87. package/assets/agent-state/MODULES/roles/capability-ops.json +45 -0
  88. package/assets/agent-state/MODULES/roles/capability-qa.json +40 -0
  89. package/assets/agent-state/MODULES/roles/capability-release.json +21 -0
  90. package/assets/agent-state/MODULES/roles/capability-research.json +44 -0
  91. package/assets/agent-state/MODULES/roles/capability-security.json +21 -0
  92. package/assets/agent-state/MODULES/roles/capability-skeptic.json +48 -0
  93. package/assets/agent-state/MODULES/roles/capability-spec.json +42 -0
  94. package/assets/agent-state/MODULES/schemas/ACE_RUNTIME_PROFILE.schema.json +289 -0
  95. package/assets/agent-state/MODULES/schemas/ARTIFACT_MANIFEST.schema.json +185 -0
  96. package/assets/agent-state/MODULES/schemas/HANDOFF.agent-state.schema.json +124 -0
  97. package/assets/agent-state/MODULES/schemas/HANDOFF.schema.json +55 -0
  98. package/assets/agent-state/MODULES/schemas/RUNTIME_EXECUTOR_SESSION_REGISTRY.schema.json +290 -0
  99. package/assets/agent-state/MODULES/schemas/RUNTIME_TOOL_SPEC_REGISTRY.schema.json +144 -0
  100. package/assets/agent-state/MODULES/schemas/STATUS_EVENT.schema.json +84 -0
  101. package/assets/agent-state/MODULES/schemas/SWARM_HANDOFF.schema.json +138 -0
  102. package/assets/agent-state/MODULES/schemas/TRACKER_SNAPSHOT.schema.json +134 -0
  103. package/assets/agent-state/MODULES/schemas/VERICIFY_BRIDGE_SNAPSHOT.schema.json +157 -0
  104. package/assets/agent-state/MODULES/schemas/VERICIFY_PROCESS_POST_LOG.schema.json +93 -0
  105. package/assets/agent-state/MODULES/schemas/WORKSPACE_SESSION_REGISTRY.schema.json +133 -0
  106. package/assets/agent-state/PROVENANCE_LOG.md +28 -0
  107. package/assets/agent-state/QUALITY_GATES.md +15 -0
  108. package/assets/agent-state/RISKS.md +8 -0
  109. package/assets/agent-state/SCOPE.md +20 -0
  110. package/assets/agent-state/SKILL_CATALOG.md +48 -0
  111. package/assets/agent-state/STATUS.md +8 -0
  112. package/assets/agent-state/STATUS_EVENTS.ndjson +1 -0
  113. package/assets/agent-state/TASK.md +18 -0
  114. package/assets/agent-state/TEAL_CONFIG.md +117 -0
  115. package/assets/agent-state/handoff-registry.json +5 -0
  116. package/assets/agent-state/index-fingerprints.json +7 -0
  117. package/assets/agent-state/index.json +32 -0
  118. package/assets/agent-state/run-ledger.json +5 -0
  119. package/assets/agent-state/runtime-executor-sessions.json +5 -0
  120. package/assets/agent-state/runtime-tool-specs.json +5 -0
  121. package/assets/agent-state/runtime-workspaces.json +5 -0
  122. package/assets/agent-state/todo-state.json +7 -0
  123. package/assets/agent-state/tracker-snapshot.json +7 -0
  124. package/assets/agent-state/vericify/ace-bridge.json +60 -0
  125. package/assets/agent-state/vericify/process-posts.json +5 -0
  126. package/assets/instructions/ACE.instructions.md +187 -0
  127. package/assets/instructions/ACE_Coder.instructions.md +146 -0
  128. package/assets/instructions/ACE_UI.instructions.md +178 -0
  129. package/assets/instructions/ACE_VOS.instructions.md +211 -0
  130. package/assets/scripts/ace-hook-dispatch.mjs +538 -0
  131. package/assets/scripts/bootstrap-workspace.sh +27 -0
  132. package/assets/scripts/copilot-hook-dispatch.mjs +3 -0
  133. package/assets/scripts/eval-harness.sh +68 -0
  134. package/assets/scripts/render-mcp-configs.sh +396 -0
  135. package/assets/tasks/README.md +48 -0
  136. package/assets/tasks/SWARM_HANDOFF.example.json +53 -0
  137. package/assets/tasks/SWARM_HANDOFF.example_ui_to_coders.json +55 -0
  138. package/assets/tasks/SWARM_HANDOFF.example_vos_to_ui.json +55 -0
  139. package/assets/tasks/SWARM_HANDOFF.template.json +52 -0
  140. package/assets/tasks/cli_work_split.md +22 -0
  141. package/assets/tasks/lessons.md +17 -0
  142. package/assets/tasks/role_tasks.md +206 -0
  143. package/assets/tasks/todo.md +23 -0
  144. package/dist/ace-autonomy.d.ts +137 -0
  145. package/dist/ace-autonomy.js +472 -0
  146. package/dist/ace-context.d.ts +29 -0
  147. package/dist/ace-context.js +240 -0
  148. package/dist/ace-internal-tools.d.ts +8 -0
  149. package/dist/ace-internal-tools.js +76 -0
  150. package/dist/ace-server-instructions.d.ts +12 -0
  151. package/dist/ace-server-instructions.js +324 -0
  152. package/dist/agent-runtime/role-adapters.d.ts +29 -0
  153. package/dist/agent-runtime/role-adapters.js +573 -0
  154. package/dist/astgrep-index.d.ts +24 -0
  155. package/dist/astgrep-index.js +476 -0
  156. package/dist/cli.d.ts +3 -0
  157. package/dist/cli.js +591 -0
  158. package/dist/git-ops.d.ts +53 -0
  159. package/dist/git-ops.js +238 -0
  160. package/dist/handoff-registry.d.ts +71 -0
  161. package/dist/handoff-registry.js +422 -0
  162. package/dist/helpers.d.ts +126 -0
  163. package/dist/helpers.js +1687 -0
  164. package/dist/index-store.d.ts +51 -0
  165. package/dist/index-store.js +328 -0
  166. package/dist/index.d.ts +3 -0
  167. package/dist/index.js +7 -0
  168. package/dist/internal-tool-runtime.d.ts +21 -0
  169. package/dist/internal-tool-runtime.js +136 -0
  170. package/dist/job-scheduler.d.ts +175 -0
  171. package/dist/job-scheduler.js +1217 -0
  172. package/dist/kanban.d.ts +27 -0
  173. package/dist/kanban.js +339 -0
  174. package/dist/local-model-runtime.d.ts +40 -0
  175. package/dist/local-model-runtime.js +174 -0
  176. package/dist/model-bridge.d.ts +54 -0
  177. package/dist/model-bridge.js +587 -0
  178. package/dist/orchestrator-supervisor.d.ts +100 -0
  179. package/dist/orchestrator-supervisor.js +399 -0
  180. package/dist/problem-triage.d.ts +23 -0
  181. package/dist/problem-triage.js +448 -0
  182. package/dist/prompts.d.ts +7 -0
  183. package/dist/prompts.js +628 -0
  184. package/dist/public-surface.d.ts +30 -0
  185. package/dist/public-surface.js +316 -0
  186. package/dist/resources.d.ts +7 -0
  187. package/dist/resources.js +545 -0
  188. package/dist/run-ledger.d.ts +36 -0
  189. package/dist/run-ledger.js +257 -0
  190. package/dist/runtime-command.d.ts +18 -0
  191. package/dist/runtime-command.js +76 -0
  192. package/dist/runtime-executor.d.ts +104 -0
  193. package/dist/runtime-executor.js +985 -0
  194. package/dist/runtime-profile.d.ts +116 -0
  195. package/dist/runtime-profile.js +532 -0
  196. package/dist/runtime-tool-specs.d.ts +68 -0
  197. package/dist/runtime-tool-specs.js +527 -0
  198. package/dist/safe-edit.d.ts +52 -0
  199. package/dist/safe-edit.js +255 -0
  200. package/dist/schemas.d.ts +44 -0
  201. package/dist/schemas.js +830 -0
  202. package/dist/semantic-cache.d.ts +147 -0
  203. package/dist/semantic-cache.js +552 -0
  204. package/dist/semantic-hash.d.ts +83 -0
  205. package/dist/semantic-hash.js +346 -0
  206. package/dist/server.d.ts +10 -0
  207. package/dist/server.js +46 -0
  208. package/dist/shared.d.ts +136 -0
  209. package/dist/shared.js +269 -0
  210. package/dist/skill-auditor.d.ts +26 -0
  211. package/dist/skill-auditor.js +184 -0
  212. package/dist/skill-catalog.d.ts +60 -0
  213. package/dist/skill-catalog.js +305 -0
  214. package/dist/status-events.d.ts +40 -0
  215. package/dist/status-events.js +269 -0
  216. package/dist/store/ace-packed-store.d.ts +69 -0
  217. package/dist/store/ace-packed-store.js +434 -0
  218. package/dist/store/bootstrap-store.d.ts +46 -0
  219. package/dist/store/bootstrap-store.js +242 -0
  220. package/dist/store/catalog-builder.d.ts +21 -0
  221. package/dist/store/catalog-builder.js +68 -0
  222. package/dist/store/importer.d.ts +19 -0
  223. package/dist/store/importer.js +157 -0
  224. package/dist/store/knowledge-bake.d.ts +59 -0
  225. package/dist/store/knowledge-bake.js +339 -0
  226. package/dist/store/materializers/hook-context-materializer.d.ts +25 -0
  227. package/dist/store/materializers/hook-context-materializer.js +100 -0
  228. package/dist/store/materializers/host-file-materializer.d.ts +37 -0
  229. package/dist/store/materializers/host-file-materializer.js +271 -0
  230. package/dist/store/materializers/todo-syncer.d.ts +30 -0
  231. package/dist/store/materializers/todo-syncer.js +140 -0
  232. package/dist/store/materializers/vericify-projector.d.ts +38 -0
  233. package/dist/store/materializers/vericify-projector.js +239 -0
  234. package/dist/store/repositories/discovery-repository.d.ts +24 -0
  235. package/dist/store/repositories/discovery-repository.js +58 -0
  236. package/dist/store/repositories/handoff-repository.d.ts +31 -0
  237. package/dist/store/repositories/handoff-repository.js +67 -0
  238. package/dist/store/repositories/ledger-repository.d.ts +26 -0
  239. package/dist/store/repositories/ledger-repository.js +49 -0
  240. package/dist/store/repositories/runtime-kv-repository.d.ts +16 -0
  241. package/dist/store/repositories/runtime-kv-repository.js +36 -0
  242. package/dist/store/repositories/scheduler-repository.d.ts +50 -0
  243. package/dist/store/repositories/scheduler-repository.js +123 -0
  244. package/dist/store/repositories/session-repository.d.ts +33 -0
  245. package/dist/store/repositories/session-repository.js +82 -0
  246. package/dist/store/repositories/todo-repository.d.ts +31 -0
  247. package/dist/store/repositories/todo-repository.js +77 -0
  248. package/dist/store/repositories/tracker-repository.d.ts +25 -0
  249. package/dist/store/repositories/tracker-repository.js +43 -0
  250. package/dist/store/repositories/vericify-repository.d.ts +32 -0
  251. package/dist/store/repositories/vericify-repository.js +58 -0
  252. package/dist/store/skills-install.d.ts +28 -0
  253. package/dist/store/skills-install.js +86 -0
  254. package/dist/store/state-reader.d.ts +49 -0
  255. package/dist/store/state-reader.js +111 -0
  256. package/dist/store/store-artifacts.d.ts +12 -0
  257. package/dist/store/store-artifacts.js +138 -0
  258. package/dist/store/store-snapshot.d.ts +19 -0
  259. package/dist/store/store-snapshot.js +140 -0
  260. package/dist/store/topology-bake.d.ts +15 -0
  261. package/dist/store/topology-bake.js +215 -0
  262. package/dist/store/types.d.ts +155 -0
  263. package/dist/store/types.js +35 -0
  264. package/dist/store/workspace-snapshot.d.ts +26 -0
  265. package/dist/store/workspace-snapshot.js +107 -0
  266. package/dist/store/write-queue.d.ts +7 -0
  267. package/dist/store/write-queue.js +26 -0
  268. package/dist/todo-state.d.ts +41 -0
  269. package/dist/todo-state.js +399 -0
  270. package/dist/tools-agent.d.ts +7 -0
  271. package/dist/tools-agent.js +1542 -0
  272. package/dist/tools-discovery.d.ts +6 -0
  273. package/dist/tools-discovery.js +178 -0
  274. package/dist/tools-drift.d.ts +13 -0
  275. package/dist/tools-drift.js +357 -0
  276. package/dist/tools-files.d.ts +6 -0
  277. package/dist/tools-files.js +679 -0
  278. package/dist/tools-framework.d.ts +7 -0
  279. package/dist/tools-framework.js +1414 -0
  280. package/dist/tools-git.d.ts +6 -0
  281. package/dist/tools-git.js +183 -0
  282. package/dist/tools-handoff.d.ts +32 -0
  283. package/dist/tools-handoff.js +489 -0
  284. package/dist/tools-lifecycle.d.ts +6 -0
  285. package/dist/tools-lifecycle.js +205 -0
  286. package/dist/tools-memory.d.ts +6 -0
  287. package/dist/tools-memory.js +260 -0
  288. package/dist/tools-scheduler.d.ts +6 -0
  289. package/dist/tools-scheduler.js +228 -0
  290. package/dist/tools-skills.d.ts +3 -0
  291. package/dist/tools-skills.js +104 -0
  292. package/dist/tools-todo.d.ts +6 -0
  293. package/dist/tools-todo.js +154 -0
  294. package/dist/tools.d.ts +9 -0
  295. package/dist/tools.js +33 -0
  296. package/dist/tracker-adapters.d.ts +74 -0
  297. package/dist/tracker-adapters.js +776 -0
  298. package/dist/tracker-sync.d.ts +10 -0
  299. package/dist/tracker-sync.js +84 -0
  300. package/dist/tui/agent-runner.d.ts +137 -0
  301. package/dist/tui/agent-runner.js +466 -0
  302. package/dist/tui/agent-worker.d.ts +10 -0
  303. package/dist/tui/agent-worker.js +347 -0
  304. package/dist/tui/chat.d.ts +84 -0
  305. package/dist/tui/chat.js +368 -0
  306. package/dist/tui/commands.d.ts +57 -0
  307. package/dist/tui/commands.js +432 -0
  308. package/dist/tui/dashboard.d.ts +24 -0
  309. package/dist/tui/dashboard.js +110 -0
  310. package/dist/tui/index.d.ts +114 -0
  311. package/dist/tui/index.js +1059 -0
  312. package/dist/tui/input.d.ts +49 -0
  313. package/dist/tui/input.js +336 -0
  314. package/dist/tui/layout.d.ts +116 -0
  315. package/dist/tui/layout.js +367 -0
  316. package/dist/tui/ollama.d.ts +116 -0
  317. package/dist/tui/ollama.js +192 -0
  318. package/dist/tui/openai-compatible.d.ts +63 -0
  319. package/dist/tui/openai-compatible.js +370 -0
  320. package/dist/tui/provider-discovery.d.ts +59 -0
  321. package/dist/tui/provider-discovery.js +530 -0
  322. package/dist/tui/renderer.d.ts +166 -0
  323. package/dist/tui/renderer.js +304 -0
  324. package/dist/tui/tabs.d.ts +70 -0
  325. package/dist/tui/tabs.js +208 -0
  326. package/dist/tui/telemetry.d.ts +56 -0
  327. package/dist/tui/telemetry.js +106 -0
  328. package/dist/vericify-bridge.d.ts +146 -0
  329. package/dist/vericify-bridge.js +571 -0
  330. package/dist/vericify-context.d.ts +10 -0
  331. package/dist/vericify-context.js +72 -0
  332. package/dist/workspace-manager.d.ts +107 -0
  333. package/dist/workspace-manager.js +636 -0
  334. package/package.json +83 -0
@@ -0,0 +1,545 @@
1
+ /**
2
+ * MCP Resources – expose ACE instruction files, task artifacts, skills,
3
+ * and handoff examples as readable resources.
4
+ */
5
+ import { ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";
6
+ import { ALL_AGENTS, getKernelArtifactPath, listAvailableSkills, readAgentInstructions, readAgentManifest, readKernelArtifact, readSkillInstructions, readTaskArtifact, safeRead, } from "./helpers.js";
7
+ import { readHandoffRegistry } from "./handoff-registry.js";
8
+ import { getOrRefreshKanbanSnapshot, renderKanbanHtml } from "./kanban.js";
9
+ import { loadRuntimeProfile, readRuntimePromptTemplate, readRuntimeProfileState, } from "./runtime-profile.js";
10
+ import { buildAceContinuityPacket, formatAceContinuityPacketMarkdown, normalizeContinuityPolicy, } from "./ace-autonomy.js";
11
+ import { listUnattendedSessions } from "./runtime-executor.js";
12
+ import { readRunLedger } from "./run-ledger.js";
13
+ import { loadRuntimeToolRegistry } from "./runtime-tool-specs.js";
14
+ import { loadTrackerSnapshot } from "./tracker-adapters.js";
15
+ import { loadVericifyBridgeSnapshot, loadVericifyProcessPostLog, refreshVericifyBridgeSnapshot, } from "./vericify-bridge.js";
16
+ import { readStatusEvents } from "./status-events.js";
17
+ import { listWorkspaceSessions } from "./workspace-manager.js";
18
+ import { readJobLockTable, readJobQueue, readSchedulerLease, } from "./job-scheduler.js";
19
+ export function registerResources(server) {
20
+ // ── 1. Agent instruction + manifest resources ────────────────────────
21
+ for (const role of ALL_AGENTS) {
22
+ server.resource(`ace-${role}-instructions`, `ace://agents/${role}/instructions`, {
23
+ description: `Full instruction file for ACE-${role.toUpperCase()} agent`,
24
+ mimeType: "text/markdown",
25
+ }, () => ({
26
+ contents: [
27
+ {
28
+ uri: `ace://agents/${role}/instructions`,
29
+ text: readAgentInstructions(role),
30
+ mimeType: "text/markdown",
31
+ },
32
+ ],
33
+ }));
34
+ server.resource(`ace-${role}-manifest`, `ace://agents/${role}/manifest`, {
35
+ description: `Agent manifest for ACE-${role.toUpperCase()}`,
36
+ mimeType: "text/markdown",
37
+ }, () => ({
38
+ contents: [
39
+ {
40
+ uri: `ace://agents/${role}/manifest`,
41
+ text: readAgentManifest(role),
42
+ mimeType: "text/markdown",
43
+ },
44
+ ],
45
+ }));
46
+ }
47
+ // ── 2. Kernel artifacts ──────────────────────────────────────────────
48
+ const kernelResourceMap = {
49
+ directive_kernel: {
50
+ desc: "Global ACE machine directives shared by swarm + composable agents",
51
+ },
52
+ agent_registry: {
53
+ desc: "ACE composable registry, dependency matrix, and skill catalog mapping",
54
+ },
55
+ };
56
+ for (const [key, meta] of Object.entries(kernelResourceMap)) {
57
+ server.resource(`ace-kernel-${key}`, `ace://kernel/${key}`, {
58
+ description: meta.desc,
59
+ mimeType: "text/markdown",
60
+ }, () => ({
61
+ contents: [
62
+ {
63
+ uri: `ace://kernel/${key}`,
64
+ text: [
65
+ `Source: ${getKernelArtifactPath(key) ?? "missing"}`,
66
+ "",
67
+ readKernelArtifact(key),
68
+ ].join("\n"),
69
+ mimeType: "text/markdown",
70
+ },
71
+ ],
72
+ }));
73
+ }
74
+ // ── 3. Task artifacts ────────────────────────────────────────────────
75
+ const taskResourceMap = {
76
+ todo: { desc: "Live checkable execution board" },
77
+ role_tasks: {
78
+ desc: "Explicit task boundaries per agent role",
79
+ },
80
+ cli_work_split: {
81
+ desc: "Codex CLI vs Gemini CLI routing contract",
82
+ },
83
+ lessons: {
84
+ desc: "Persistent guardrails captured after corrections",
85
+ },
86
+ readme: {
87
+ desc: "Control-plane overview for task artifacts",
88
+ },
89
+ };
90
+ for (const [key, meta] of Object.entries(taskResourceMap)) {
91
+ server.resource(`ace-task-${key}`, `ace://tasks/${key}`, { description: meta.desc, mimeType: "text/markdown" }, () => ({
92
+ contents: [
93
+ {
94
+ uri: `ace://tasks/${key}`,
95
+ text: readTaskArtifact(key),
96
+ mimeType: "text/markdown",
97
+ },
98
+ ],
99
+ }));
100
+ }
101
+ // ── 4. Handoff templates & examples ─────────────────────────────────
102
+ const handoffResources = {
103
+ handoff_template: {
104
+ desc: "Canonical SWARM_HANDOFF.json shape",
105
+ },
106
+ handoff_example: {
107
+ desc: "Filled handoff payload example",
108
+ },
109
+ handoff_example_vos_ui: {
110
+ desc: "VOS to UI concrete handoff example",
111
+ },
112
+ handoff_example_ui_coders: {
113
+ desc: "UI to Coders concrete handoff example",
114
+ },
115
+ };
116
+ for (const [key, meta] of Object.entries(handoffResources)) {
117
+ server.resource(`ace-${key}`, `ace://handoffs/${key}`, { description: meta.desc, mimeType: "application/json" }, () => ({
118
+ contents: [
119
+ {
120
+ uri: `ace://handoffs/${key}`,
121
+ text: readTaskArtifact(key),
122
+ mimeType: "application/json",
123
+ },
124
+ ],
125
+ }));
126
+ }
127
+ // ── 5. Skills index + dynamic skill template ────────────────────────
128
+ server.resource("ace-skills-index", "ace://skills", {
129
+ description: "List all discoverable ACE skills",
130
+ mimeType: "text/markdown",
131
+ }, () => {
132
+ const skills = listAvailableSkills();
133
+ const lines = [
134
+ "# ACE Skills",
135
+ "",
136
+ ...skills.map((skill) => `- ${skill.name} (${skill.source}) -> ace://skills/${skill.name}/instructions`),
137
+ ];
138
+ return {
139
+ contents: [
140
+ {
141
+ uri: "ace://skills",
142
+ text: lines.join("\n"),
143
+ mimeType: "text/markdown",
144
+ },
145
+ ],
146
+ };
147
+ });
148
+ server.resource("ace-skill-instructions", new ResourceTemplate("ace://skills/{name}/instructions", { list: undefined }), {
149
+ description: "Read a skill's SKILL.md by skill name",
150
+ mimeType: "text/markdown",
151
+ }, (uri, params) => {
152
+ const name = params.name || "";
153
+ return {
154
+ contents: [
155
+ {
156
+ uri: uri.href,
157
+ text: readSkillInstructions(name),
158
+ mimeType: "text/markdown",
159
+ },
160
+ ],
161
+ };
162
+ });
163
+ // ── 6. Dynamic workspace file resource ──────────────────────────────
164
+ server.resource("ace-workspace-file", new ResourceTemplate("ace://workspace/{path+}", { list: undefined }), { description: "Read any file from the ACE workspace by relative path" }, (uri, params) => {
165
+ const relPath = params["path+"] ||
166
+ params.path ||
167
+ "";
168
+ return {
169
+ contents: [
170
+ {
171
+ uri: uri.href,
172
+ text: safeRead(relPath),
173
+ mimeType: "text/plain",
174
+ },
175
+ ],
176
+ };
177
+ });
178
+ // ── 7. Kanban resources ─────────────────────────────────────────────
179
+ server.resource("ace-kanban-json", "ace://kanban", {
180
+ description: "Generated ACE Kanban snapshot JSON",
181
+ mimeType: "application/json",
182
+ }, () => {
183
+ const snapshot = getOrRefreshKanbanSnapshot("resource:ace://kanban");
184
+ return {
185
+ contents: [
186
+ {
187
+ uri: "ace://kanban",
188
+ text: JSON.stringify(snapshot, null, 2),
189
+ mimeType: "application/json",
190
+ },
191
+ ],
192
+ };
193
+ });
194
+ server.resource("ace-kanban-html", "ace://kanban/html", {
195
+ description: "Generated ACE Kanban HTML board",
196
+ mimeType: "text/html",
197
+ }, () => {
198
+ const snapshot = getOrRefreshKanbanSnapshot("resource:ace://kanban/html");
199
+ const html = safeRead("agent-state/kanban.html");
200
+ const text = html.startsWith("[FILE NOT FOUND]") ? renderKanbanHtml(snapshot) : html;
201
+ return {
202
+ contents: [
203
+ {
204
+ uri: "ace://kanban/html",
205
+ text,
206
+ mimeType: "text/html",
207
+ },
208
+ ],
209
+ };
210
+ });
211
+ // ── 8. Runtime stores ───────────────────────────────────────────────
212
+ server.resource("ace-runtime-profile", "ace://runtime/profile", {
213
+ description: "Validated ACE runtime profile with active and current load state",
214
+ mimeType: "application/json",
215
+ }, () => {
216
+ const current = loadRuntimeProfile();
217
+ const active = readRuntimeProfileState();
218
+ return {
219
+ contents: [
220
+ {
221
+ uri: "ace://runtime/profile",
222
+ text: JSON.stringify({
223
+ current,
224
+ active,
225
+ }, null, 2),
226
+ mimeType: "application/json",
227
+ },
228
+ ],
229
+ };
230
+ });
231
+ server.resource("ace-runtime-prompt-template", "ace://runtime/prompt-template", {
232
+ description: "Active ACE runtime prompt template body from ACE_WORKFLOW.md",
233
+ mimeType: "text/markdown",
234
+ }, () => ({
235
+ contents: [
236
+ {
237
+ uri: "ace://runtime/prompt-template",
238
+ text: readRuntimePromptTemplate(),
239
+ mimeType: "text/markdown",
240
+ },
241
+ ],
242
+ }));
243
+ server.resource("ace-runtime-continuity-packet", "ace://runtime/continuity-packet", {
244
+ description: "Derived ACE continuity packet built from the active runtime policy and current ACE truth",
245
+ mimeType: "application/json",
246
+ }, () => {
247
+ const active = readRuntimeProfileState();
248
+ const continuity = normalizeContinuityPolicy(active.profile.continuity);
249
+ const packet = buildAceContinuityPacket({
250
+ policy: continuity,
251
+ });
252
+ return {
253
+ contents: [
254
+ {
255
+ uri: "ace://runtime/continuity-packet",
256
+ text: JSON.stringify({
257
+ runtime_profile: {
258
+ path: active.path,
259
+ source: active.source,
260
+ profile_name: active.profile.runtime.profile_name,
261
+ },
262
+ continuity_policy: continuity,
263
+ packet,
264
+ markdown: formatAceContinuityPacketMarkdown(packet),
265
+ }, null, 2),
266
+ mimeType: "application/json",
267
+ },
268
+ ],
269
+ };
270
+ });
271
+ server.resource("ace-runtime-workspaces", "ace://runtime/workspaces", {
272
+ description: "Managed ACE workspace/session registry",
273
+ mimeType: "application/json",
274
+ }, () => ({
275
+ contents: [
276
+ {
277
+ uri: "ace://runtime/workspaces",
278
+ text: JSON.stringify(listWorkspaceSessions(), null, 2),
279
+ mimeType: "application/json",
280
+ },
281
+ ],
282
+ }));
283
+ server.resource("ace-runtime-tool-specs", "ace://runtime/tool-specs", {
284
+ description: "Runtime-configured external tool spec registry",
285
+ mimeType: "application/json",
286
+ }, () => {
287
+ const result = loadRuntimeToolRegistry();
288
+ return {
289
+ contents: [
290
+ {
291
+ uri: "ace://runtime/tool-specs",
292
+ text: result.ok
293
+ ? JSON.stringify(result.registry, null, 2)
294
+ : JSON.stringify({
295
+ schema: result.schema,
296
+ path: result.path,
297
+ source: result.source,
298
+ errors: result.errors,
299
+ }, null, 2),
300
+ mimeType: "application/json",
301
+ },
302
+ ],
303
+ };
304
+ });
305
+ server.resource("ace-runtime-tracker-snapshot", "ace://runtime/tracker-snapshot", {
306
+ description: "Normalized ACE tracker snapshot for the active tracker adapter",
307
+ mimeType: "application/json",
308
+ }, () => {
309
+ const result = loadTrackerSnapshot();
310
+ return {
311
+ contents: [
312
+ {
313
+ uri: "ace://runtime/tracker-snapshot",
314
+ text: result.ok
315
+ ? JSON.stringify(result.snapshot, null, 2)
316
+ : JSON.stringify({
317
+ schema: result.schema,
318
+ path: result.path,
319
+ source: result.source,
320
+ errors: result.errors,
321
+ }, null, 2),
322
+ mimeType: "application/json",
323
+ },
324
+ ],
325
+ };
326
+ });
327
+ server.resource("ace-runtime-executor-sessions", "ace://runtime/executor-sessions", {
328
+ description: "Unattended ACE runtime executor session registry",
329
+ mimeType: "application/json",
330
+ }, () => ({
331
+ contents: [
332
+ {
333
+ uri: "ace://runtime/executor-sessions",
334
+ text: JSON.stringify(listUnattendedSessions(), null, 2),
335
+ mimeType: "application/json",
336
+ },
337
+ ],
338
+ }));
339
+ server.resource("ace-runtime-vericify-bridge", "ace://runtime/vericify-bridge", {
340
+ description: "Optional Vericify sidecar bridge snapshot derived from ACE runtime artifacts",
341
+ mimeType: "application/json",
342
+ }, () => {
343
+ const current = loadVericifyBridgeSnapshot();
344
+ const snapshot = current.ok ? current.snapshot : refreshVericifyBridgeSnapshot().snapshot;
345
+ return {
346
+ contents: [
347
+ {
348
+ uri: "ace://runtime/vericify-bridge",
349
+ text: JSON.stringify(current.ok
350
+ ? current.snapshot
351
+ : snapshot ?? {
352
+ schema: current.schema,
353
+ path: current.path,
354
+ errors: current.errors,
355
+ }, null, 2),
356
+ mimeType: "application/json",
357
+ },
358
+ ],
359
+ };
360
+ });
361
+ server.resource("ace-runtime-vericify-process-posts", "ace://runtime/vericify-process-posts", {
362
+ description: "Optional Vericify sidecar process-post log maintained by ACE",
363
+ mimeType: "application/json",
364
+ }, () => {
365
+ const result = loadVericifyProcessPostLog();
366
+ return {
367
+ contents: [
368
+ {
369
+ uri: "ace://runtime/vericify-process-posts",
370
+ text: result.ok
371
+ ? JSON.stringify(result.log, null, 2)
372
+ : JSON.stringify({
373
+ schema: result.schema,
374
+ path: result.path,
375
+ errors: result.errors,
376
+ }, null, 2),
377
+ mimeType: "application/json",
378
+ },
379
+ ],
380
+ };
381
+ });
382
+ server.resource("ace-run-ledger", "ace://run-ledger", {
383
+ description: "Milestone/regression history appended by major ACE tools",
384
+ mimeType: "application/json",
385
+ }, () => ({
386
+ contents: [
387
+ {
388
+ uri: "ace://run-ledger",
389
+ text: JSON.stringify(readRunLedger(), null, 2),
390
+ mimeType: "application/json",
391
+ },
392
+ ],
393
+ }));
394
+ server.resource("ace-handoff-status", "ace://handoffs/status", {
395
+ description: "Persisted handoff lifecycle registry (open/accepted/blocked/completed)",
396
+ mimeType: "application/json",
397
+ }, () => ({
398
+ contents: [
399
+ {
400
+ uri: "ace://handoffs/status",
401
+ text: JSON.stringify(readHandoffRegistry(), null, 2),
402
+ mimeType: "application/json",
403
+ },
404
+ ],
405
+ }));
406
+ server.resource("ace-scheduler-queue", "ace://scheduler/queue", {
407
+ description: "Scheduler job queue state",
408
+ mimeType: "application/json",
409
+ }, () => ({
410
+ contents: [
411
+ {
412
+ uri: "ace://scheduler/queue",
413
+ text: JSON.stringify(readJobQueue(), null, 2),
414
+ mimeType: "application/json",
415
+ },
416
+ ],
417
+ }));
418
+ server.resource("ace-scheduler-locks", "ace://scheduler/locks", {
419
+ description: "Scheduler resource lock table for running jobs",
420
+ mimeType: "application/json",
421
+ }, () => ({
422
+ contents: [
423
+ {
424
+ uri: "ace://scheduler/locks",
425
+ text: JSON.stringify(readJobLockTable(), null, 2),
426
+ mimeType: "application/json",
427
+ },
428
+ ],
429
+ }));
430
+ server.resource("ace-scheduler-lease", "ace://scheduler/lease", {
431
+ description: "Scheduler lease ownership and heartbeat state",
432
+ mimeType: "application/json",
433
+ }, () => ({
434
+ contents: [
435
+ {
436
+ uri: "ace://scheduler/lease",
437
+ text: JSON.stringify(readSchedulerLease() ?? null, null, 2),
438
+ mimeType: "application/json",
439
+ },
440
+ ],
441
+ }));
442
+ server.resource("ace-status-events", "ace://status/events", {
443
+ description: "Lifecycle status events (NDJSON)",
444
+ mimeType: "application/x-ndjson",
445
+ }, () => ({
446
+ contents: [
447
+ {
448
+ uri: "ace://status/events",
449
+ text: readStatusEvents(1000).map((event) => JSON.stringify(event)).join("\n"),
450
+ mimeType: "application/x-ndjson",
451
+ },
452
+ ],
453
+ }));
454
+ server.resource("ace-astgrep-commands", "ace://state/astgrep-commands", {
455
+ description: "AST-grep command pack for deep code discovery without large index payloads",
456
+ mimeType: "text/markdown",
457
+ }, () => ({
458
+ contents: [
459
+ {
460
+ uri: "ace://state/astgrep-commands",
461
+ text: safeRead("agent-state/AST_GREP_COMMANDS.md"),
462
+ mimeType: "text/markdown",
463
+ },
464
+ ],
465
+ }));
466
+ server.resource("ace-astgrep-index-md", "ace://state/astgrep-index/md", {
467
+ description: "Human-readable structural discovery summary generated by agent-astgrep",
468
+ mimeType: "text/markdown",
469
+ }, () => ({
470
+ contents: [
471
+ {
472
+ uri: "ace://state/astgrep-index/md",
473
+ text: safeRead("agent-state/AST_GREP_INDEX.md"),
474
+ mimeType: "text/markdown",
475
+ },
476
+ ],
477
+ }));
478
+ server.resource("ace-astgrep-index-json", "ace://state/astgrep-index/json", {
479
+ description: "Machine-readable structural discovery payload generated by agent-astgrep",
480
+ mimeType: "application/json",
481
+ }, () => ({
482
+ contents: [
483
+ {
484
+ uri: "ace://state/astgrep-index/json",
485
+ text: safeRead("agent-state/AST_GREP_INDEX.json"),
486
+ mimeType: "application/json",
487
+ },
488
+ ],
489
+ }));
490
+ server.resource("ace-index", "ace://index", {
491
+ description: "Latest workspace delta index snapshot",
492
+ mimeType: "application/json",
493
+ }, () => {
494
+ const raw = safeRead("agent-state/index.json");
495
+ const fallback = JSON.stringify({
496
+ version: 1,
497
+ root: ".",
498
+ generated_at: "",
499
+ discovery: {
500
+ mode: "ast_grep_commands",
501
+ command_pack: "agent-state/AST_GREP_COMMANDS.md",
502
+ subagent: "astgrep",
503
+ skill: "astgrep-index",
504
+ fingerprint_store: "agent-state/index-fingerprints.json",
505
+ },
506
+ options: {
507
+ depth: 6,
508
+ max_files: 10000,
509
+ include_hidden: false,
510
+ exclude: [".git", "node_modules", "dist", "target", ".venv", "__pycache__", ".DS_Store"],
511
+ file_entry_cap: 0,
512
+ },
513
+ file_count: 0,
514
+ stored_file_count: 0,
515
+ directories: {},
516
+ extensions: {},
517
+ files: {},
518
+ }, null, 2);
519
+ const text = raw.startsWith("[FILE NOT FOUND]") || raw.startsWith("[ACCESS DENIED]")
520
+ ? fallback
521
+ : raw;
522
+ return {
523
+ contents: [
524
+ {
525
+ uri: "ace://index",
526
+ text,
527
+ mimeType: "application/json",
528
+ },
529
+ ],
530
+ };
531
+ });
532
+ server.resource("ace-index-fingerprints", "ace://index/fingerprints", {
533
+ description: "Compact full-file fingerprint map used for accurate delta detection",
534
+ mimeType: "application/json",
535
+ }, () => ({
536
+ contents: [
537
+ {
538
+ uri: "ace://index/fingerprints",
539
+ text: safeRead("agent-state/index-fingerprints.json"),
540
+ mimeType: "application/json",
541
+ },
542
+ ],
543
+ }));
544
+ }
545
+ //# sourceMappingURL=resources.js.map
@@ -0,0 +1,36 @@
1
+ export type RunLedgerCategory = "major_update" | "regression" | "info";
2
+ export interface RunLedgerEntry {
3
+ id: string;
4
+ timestamp_utc: string;
5
+ tool: string;
6
+ category: RunLedgerCategory;
7
+ message: string;
8
+ artifacts: string[];
9
+ metadata: Record<string, unknown>;
10
+ }
11
+ export interface RunLedgerFile {
12
+ version: 1;
13
+ updated_at: string;
14
+ entries: RunLedgerEntry[];
15
+ }
16
+ export interface AppendRunLedgerEntryInput {
17
+ tool: string;
18
+ category: RunLedgerCategory;
19
+ message: string;
20
+ artifacts?: string[];
21
+ metadata?: Record<string, unknown>;
22
+ }
23
+ export declare function readRunLedger(): RunLedgerFile;
24
+ export declare function appendRunLedgerEntry(input: AppendRunLedgerEntryInput): {
25
+ entry: RunLedgerEntry;
26
+ path: string;
27
+ };
28
+ /**
29
+ * Concurrency-safe variant of appendRunLedgerEntry.
30
+ */
31
+ export declare function appendRunLedgerEntrySafe(input: AppendRunLedgerEntryInput): Promise<{
32
+ entry: RunLedgerEntry;
33
+ path: string;
34
+ }>;
35
+ export declare function getRunLedgerPath(): string;
36
+ //# sourceMappingURL=run-ledger.d.ts.map