claude-code-swarm 0.0.1 → 0.3.3

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 (1176) hide show
  1. package/.claude-plugin/marketplace.json +15 -0
  2. package/.claude-plugin/plugin.json +8 -0
  3. package/CLAUDE.md +266 -0
  4. package/README.md +108 -1
  5. package/docs/design.md +1181 -0
  6. package/docs/implementation-plan.md +635 -0
  7. package/e2e/helpers/assertions.mjs +162 -0
  8. package/e2e/helpers/cleanup.mjs +48 -0
  9. package/e2e/helpers/cli.mjs +327 -0
  10. package/e2e/helpers/map-mock-server.mjs +121 -0
  11. package/e2e/helpers/workspace.mjs +72 -0
  12. package/e2e/tier1-hooks.test.mjs +176 -0
  13. package/e2e/tier2-skill.test.mjs +146 -0
  14. package/e2e/tier3-coordination.test.mjs +88 -0
  15. package/e2e/tier4-map.test.mjs +203 -0
  16. package/e2e/vitest.config.e2e.mjs +19 -0
  17. package/hooks/hooks.json +107 -0
  18. package/package.json +45 -14
  19. package/plan.md +214 -0
  20. package/references/multi-agent-protocol/.sudocode/issues.jsonl +120 -0
  21. package/references/multi-agent-protocol/.sudocode/specs.jsonl +15 -0
  22. package/references/multi-agent-protocol/LICENSE +21 -0
  23. package/references/multi-agent-protocol/README.md +113 -0
  24. package/references/multi-agent-protocol/docs/00-design-specification.md +496 -0
  25. package/references/multi-agent-protocol/docs/01-open-questions.md +1050 -0
  26. package/references/multi-agent-protocol/docs/02-wire-protocol.md +296 -0
  27. package/references/multi-agent-protocol/docs/03-streaming-semantics.md +252 -0
  28. package/references/multi-agent-protocol/docs/04-error-handling.md +231 -0
  29. package/references/multi-agent-protocol/docs/05-connection-model.md +244 -0
  30. package/references/multi-agent-protocol/docs/06-visibility-permissions.md +243 -0
  31. package/references/multi-agent-protocol/docs/07-federation.md +335 -0
  32. package/references/multi-agent-protocol/docs/08-macro-agent-migration.md +253 -0
  33. package/references/multi-agent-protocol/docs/09-authentication.md +748 -0
  34. package/references/multi-agent-protocol/docs/10-environment-awareness.md +242 -0
  35. package/references/multi-agent-protocol/docs/10-mail-protocol.md +553 -0
  36. package/references/multi-agent-protocol/docs/11-anp-inspired-improvements.md +1079 -0
  37. package/references/multi-agent-protocol/docs/11-trajectory-protocol.md +292 -0
  38. package/references/multi-agent-protocol/docs/12-anp-implementation-plan.md +641 -0
  39. package/references/multi-agent-protocol/docs/agent-iam-integration.md +877 -0
  40. package/references/multi-agent-protocol/docs/agentic-mesh-integration-draft.md +459 -0
  41. package/references/multi-agent-protocol/docs/git-transport-draft.md +251 -0
  42. package/references/multi-agent-protocol/docs-site/Gemfile +22 -0
  43. package/references/multi-agent-protocol/docs-site/README.md +82 -0
  44. package/references/multi-agent-protocol/docs-site/_config.yml +91 -0
  45. package/references/multi-agent-protocol/docs-site/_includes/head_custom.html +20 -0
  46. package/references/multi-agent-protocol/docs-site/_sass/color_schemes/map.scss +42 -0
  47. package/references/multi-agent-protocol/docs-site/_sass/custom/custom.scss +34 -0
  48. package/references/multi-agent-protocol/docs-site/examples/full-integration.md +510 -0
  49. package/references/multi-agent-protocol/docs-site/examples/index.md +138 -0
  50. package/references/multi-agent-protocol/docs-site/examples/simple-chat.md +282 -0
  51. package/references/multi-agent-protocol/docs-site/examples/task-queue.md +399 -0
  52. package/references/multi-agent-protocol/docs-site/getting-started/index.md +98 -0
  53. package/references/multi-agent-protocol/docs-site/getting-started/installation.md +219 -0
  54. package/references/multi-agent-protocol/docs-site/getting-started/overview.md +172 -0
  55. package/references/multi-agent-protocol/docs-site/getting-started/quickstart.md +237 -0
  56. package/references/multi-agent-protocol/docs-site/index.md +136 -0
  57. package/references/multi-agent-protocol/docs-site/protocol/authentication.md +391 -0
  58. package/references/multi-agent-protocol/docs-site/protocol/connection-model.md +376 -0
  59. package/references/multi-agent-protocol/docs-site/protocol/design.md +284 -0
  60. package/references/multi-agent-protocol/docs-site/protocol/error-handling.md +312 -0
  61. package/references/multi-agent-protocol/docs-site/protocol/federation.md +449 -0
  62. package/references/multi-agent-protocol/docs-site/protocol/index.md +129 -0
  63. package/references/multi-agent-protocol/docs-site/protocol/permissions.md +398 -0
  64. package/references/multi-agent-protocol/docs-site/protocol/streaming.md +353 -0
  65. package/references/multi-agent-protocol/docs-site/protocol/wire-protocol.md +369 -0
  66. package/references/multi-agent-protocol/docs-site/sdk/api/agent.md +357 -0
  67. package/references/multi-agent-protocol/docs-site/sdk/api/client.md +380 -0
  68. package/references/multi-agent-protocol/docs-site/sdk/api/index.md +62 -0
  69. package/references/multi-agent-protocol/docs-site/sdk/api/server.md +453 -0
  70. package/references/multi-agent-protocol/docs-site/sdk/api/types.md +468 -0
  71. package/references/multi-agent-protocol/docs-site/sdk/guides/agent.md +375 -0
  72. package/references/multi-agent-protocol/docs-site/sdk/guides/authentication.md +405 -0
  73. package/references/multi-agent-protocol/docs-site/sdk/guides/client.md +352 -0
  74. package/references/multi-agent-protocol/docs-site/sdk/guides/index.md +89 -0
  75. package/references/multi-agent-protocol/docs-site/sdk/guides/server.md +360 -0
  76. package/references/multi-agent-protocol/docs-site/sdk/guides/testing.md +446 -0
  77. package/references/multi-agent-protocol/docs-site/sdk/guides/transports.md +363 -0
  78. package/references/multi-agent-protocol/docs-site/sdk/index.md +206 -0
  79. package/references/multi-agent-protocol/package-lock.json +4230 -0
  80. package/references/multi-agent-protocol/package.json +56 -0
  81. package/references/multi-agent-protocol/schema/meta.json +584 -0
  82. package/references/multi-agent-protocol/schema/schema.json +3067 -0
  83. package/references/openhive/.claude/settings.json +6 -0
  84. package/references/openhive/.dockerignore +54 -0
  85. package/references/openhive/.github/workflows/docker.yml +52 -0
  86. package/references/openhive/.sudocode/issues.jsonl +24 -0
  87. package/references/openhive/.sudocode/specs.jsonl +4 -0
  88. package/references/openhive/CLAUDE.md +88 -0
  89. package/references/openhive/Dockerfile +105 -0
  90. package/references/openhive/README.md +745 -0
  91. package/references/openhive/bin/openhive.js +6 -0
  92. package/references/openhive/cloudbuild.yaml +80 -0
  93. package/references/openhive/deploy/cloud-run.sh +106 -0
  94. package/references/openhive/deploy/openhive.env.example +80 -0
  95. package/references/openhive/deploy/openhive.service +91 -0
  96. package/references/openhive/docker-compose.yml +67 -0
  97. package/references/openhive/docker-entrypoint.sh +117 -0
  98. package/references/openhive/docs/API_MIGRATION.md +176 -0
  99. package/references/openhive/docs/DEPLOYMENT.md +847 -0
  100. package/references/openhive/docs/DESIGN_v1.md +489 -0
  101. package/references/openhive/docs/DESIGN_v2.md +564 -0
  102. package/references/openhive/docs/HEADSCALE_HOSTING_SPEC.md +513 -0
  103. package/references/openhive/docs/HIVE_SYNC_DESIGN.md +2362 -0
  104. package/references/openhive/docs/HIVE_SYNC_IMPLEMENTATION_PLAN.md +1169 -0
  105. package/references/openhive/docs/HOSTING.md +601 -0
  106. package/references/openhive/docs/IMPLEMENTATION_PLAN.md +428 -0
  107. package/references/openhive/docs/LOCAL_SETUP.md +506 -0
  108. package/references/openhive/docs/MACRO_AGENT_ATLAS_EXTENSION.md +351 -0
  109. package/references/openhive/docs/MEMORY_BANK_SYNC_SPEC.md +909 -0
  110. package/references/openhive/docs/PLAN_v1.md +471 -0
  111. package/references/openhive/docs/PLAN_v2.md +623 -0
  112. package/references/openhive/docs/WEBSOCKET.md +267 -0
  113. package/references/openhive/docs/openswarm-bootstrap-token-spec.md +240 -0
  114. package/references/openhive/ecosystem.config.cjs +76 -0
  115. package/references/openhive/fly.toml +63 -0
  116. package/references/openhive/package-lock.json +17640 -0
  117. package/references/openhive/package.json +128 -0
  118. package/references/openhive/packages/openhive-types/package-lock.json +1473 -0
  119. package/references/openhive/packages/openhive-types/package.json +42 -0
  120. package/references/openhive/packages/openhive-types/src/index.ts +36 -0
  121. package/references/openhive/packages/openhive-types/src/map-coordination.ts +92 -0
  122. package/references/openhive/packages/openhive-types/src/map-session-sync.ts +50 -0
  123. package/references/openhive/packages/openhive-types/src/map-sync.ts +68 -0
  124. package/references/openhive/packages/openhive-types/tsconfig.json +15 -0
  125. package/references/openhive/packages/openhive-types/tsconfig.tsbuildinfo +1 -0
  126. package/references/openhive/packages/openhive-types/tsup.config.ts +12 -0
  127. package/references/openhive/railway.json +13 -0
  128. package/references/openhive/railway.toml +24 -0
  129. package/references/openhive/render.yaml +51 -0
  130. package/references/openhive/src/__tests__/auth.test.ts +148 -0
  131. package/references/openhive/src/__tests__/bridge/credentials.test.ts +65 -0
  132. package/references/openhive/src/__tests__/bridge/dal.test.ts +279 -0
  133. package/references/openhive/src/__tests__/bridge/inbound.test.ts +349 -0
  134. package/references/openhive/src/__tests__/bridge/manager.test.ts +419 -0
  135. package/references/openhive/src/__tests__/bridge/mentions.test.ts +83 -0
  136. package/references/openhive/src/__tests__/bridge/outbound.test.ts +209 -0
  137. package/references/openhive/src/__tests__/bridge/slack-adapter.test.ts +276 -0
  138. package/references/openhive/src/__tests__/cli.test.ts +342 -0
  139. package/references/openhive/src/__tests__/config.test.ts +205 -0
  140. package/references/openhive/src/__tests__/coordination/coordination.test.ts +1072 -0
  141. package/references/openhive/src/__tests__/coordination/cross-instance.test.ts +540 -0
  142. package/references/openhive/src/__tests__/coordination/e2e.test.ts +780 -0
  143. package/references/openhive/src/__tests__/data-dir.test.ts +332 -0
  144. package/references/openhive/src/__tests__/db.test.ts +258 -0
  145. package/references/openhive/src/__tests__/discovery.test.ts +288 -0
  146. package/references/openhive/src/__tests__/events/dal.test.ts +371 -0
  147. package/references/openhive/src/__tests__/events/dispatch.test.ts +202 -0
  148. package/references/openhive/src/__tests__/events/e2e.test.ts +528 -0
  149. package/references/openhive/src/__tests__/events/normalizers.test.ts +263 -0
  150. package/references/openhive/src/__tests__/events/router.test.ts +314 -0
  151. package/references/openhive/src/__tests__/events/routes.test.ts +407 -0
  152. package/references/openhive/src/__tests__/follows.test.ts +328 -0
  153. package/references/openhive/src/__tests__/helpers/test-dirs.ts +44 -0
  154. package/references/openhive/src/__tests__/ingest-keys.test.ts +925 -0
  155. package/references/openhive/src/__tests__/map/sync-client-content.test.ts +288 -0
  156. package/references/openhive/src/__tests__/map/sync-client.test.ts +500 -0
  157. package/references/openhive/src/__tests__/map/sync-listener.test.ts +504 -0
  158. package/references/openhive/src/__tests__/middleware/hostname-guard.test.ts +73 -0
  159. package/references/openhive/src/__tests__/migrations.test.ts +260 -0
  160. package/references/openhive/src/__tests__/opentasks/client.test.ts +497 -0
  161. package/references/openhive/src/__tests__/opentasks/discovery.test.ts +283 -0
  162. package/references/openhive/src/__tests__/opentasks/e2e.test.ts +767 -0
  163. package/references/openhive/src/__tests__/routes/agents.test.ts +417 -0
  164. package/references/openhive/src/__tests__/routes/opentasks-content.test.ts +493 -0
  165. package/references/openhive/src/__tests__/routes/resource-content.test.ts +1741 -0
  166. package/references/openhive/src/__tests__/sessions/adapters.test.ts +524 -0
  167. package/references/openhive/src/__tests__/sessions/routes.test.ts +1053 -0
  168. package/references/openhive/src/__tests__/sessions/storage.test.ts +545 -0
  169. package/references/openhive/src/__tests__/sessions/trajectory-checkpoints.test.ts +349 -0
  170. package/references/openhive/src/__tests__/sessions/trajectory-routes.test.ts +290 -0
  171. package/references/openhive/src/__tests__/swarm/config.test.ts +125 -0
  172. package/references/openhive/src/__tests__/swarm/credentials.test.ts +254 -0
  173. package/references/openhive/src/__tests__/swarm/dal.test.ts +290 -0
  174. package/references/openhive/src/__tests__/swarm/e2e.test.ts +827 -0
  175. package/references/openhive/src/__tests__/swarm/fixtures/exit-immediately.js +3 -0
  176. package/references/openhive/src/__tests__/swarm/fixtures/map-server.js +147 -0
  177. package/references/openhive/src/__tests__/swarm/fixtures/sleep-server.js +52 -0
  178. package/references/openhive/src/__tests__/swarm/local-provider.test.ts +279 -0
  179. package/references/openhive/src/__tests__/swarm/manager.test.ts +305 -0
  180. package/references/openhive/src/__tests__/swarm/routes.test.ts +396 -0
  181. package/references/openhive/src/__tests__/swarm/workspace.test.ts +257 -0
  182. package/references/openhive/src/__tests__/swarmhub/client.test.ts +324 -0
  183. package/references/openhive/src/__tests__/swarmhub/config.test.ts +213 -0
  184. package/references/openhive/src/__tests__/swarmhub/connector.test.ts +581 -0
  185. package/references/openhive/src/__tests__/swarmhub/routes.test.ts +639 -0
  186. package/references/openhive/src/__tests__/swarmhub/slack-client.test.ts +164 -0
  187. package/references/openhive/src/__tests__/swarmhub/slack-connector.test.ts +164 -0
  188. package/references/openhive/src/__tests__/swarmhub/slack-routes.test.ts +373 -0
  189. package/references/openhive/src/__tests__/swarmhub/webhook-handler.test.ts +295 -0
  190. package/references/openhive/src/__tests__/sync/resource-sync.test.ts +1418 -0
  191. package/references/openhive/src/__tests__/sync/sync.test.ts +800 -0
  192. package/references/openhive/src/api/index.ts +65 -0
  193. package/references/openhive/src/api/middleware/auth.ts +227 -0
  194. package/references/openhive/src/api/middleware/hostname-guard.ts +38 -0
  195. package/references/openhive/src/api/routes/admin.ts +366 -0
  196. package/references/openhive/src/api/routes/agents.ts +223 -0
  197. package/references/openhive/src/api/routes/auth.ts +164 -0
  198. package/references/openhive/src/api/routes/bridges.ts +384 -0
  199. package/references/openhive/src/api/routes/comments.ts +294 -0
  200. package/references/openhive/src/api/routes/coordination.ts +312 -0
  201. package/references/openhive/src/api/routes/events.ts +158 -0
  202. package/references/openhive/src/api/routes/federation.ts +367 -0
  203. package/references/openhive/src/api/routes/feed.ts +212 -0
  204. package/references/openhive/src/api/routes/hives.ts +264 -0
  205. package/references/openhive/src/api/routes/map.ts +674 -0
  206. package/references/openhive/src/api/routes/memory-banks.ts +971 -0
  207. package/references/openhive/src/api/routes/posts.ts +342 -0
  208. package/references/openhive/src/api/routes/resource-content.ts +727 -0
  209. package/references/openhive/src/api/routes/resources.ts +1013 -0
  210. package/references/openhive/src/api/routes/search.ts +45 -0
  211. package/references/openhive/src/api/routes/sessions.ts +1187 -0
  212. package/references/openhive/src/api/routes/swarm-hosting.ts +313 -0
  213. package/references/openhive/src/api/routes/sync-protocol.ts +168 -0
  214. package/references/openhive/src/api/routes/sync.ts +279 -0
  215. package/references/openhive/src/api/routes/uploads.ts +174 -0
  216. package/references/openhive/src/api/routes/webhooks.ts +603 -0
  217. package/references/openhive/src/api/schemas/agents.ts +26 -0
  218. package/references/openhive/src/api/schemas/comments.ts +22 -0
  219. package/references/openhive/src/api/schemas/hives.ts +33 -0
  220. package/references/openhive/src/api/schemas/posts.ts +37 -0
  221. package/references/openhive/src/api/schemas/sync.ts +56 -0
  222. package/references/openhive/src/auth/index.ts +2 -0
  223. package/references/openhive/src/auth/jwks.ts +58 -0
  224. package/references/openhive/src/bridge/adapters/slack.ts +306 -0
  225. package/references/openhive/src/bridge/credentials.ts +72 -0
  226. package/references/openhive/src/bridge/inbound.ts +288 -0
  227. package/references/openhive/src/bridge/index.ts +42 -0
  228. package/references/openhive/src/bridge/manager.ts +425 -0
  229. package/references/openhive/src/bridge/mentions.ts +42 -0
  230. package/references/openhive/src/bridge/outbound.ts +103 -0
  231. package/references/openhive/src/bridge/schema.ts +82 -0
  232. package/references/openhive/src/bridge/types.ts +238 -0
  233. package/references/openhive/src/cli/network.ts +480 -0
  234. package/references/openhive/src/cli.ts +620 -0
  235. package/references/openhive/src/config.ts +611 -0
  236. package/references/openhive/src/coordination/index.ts +43 -0
  237. package/references/openhive/src/coordination/listener.ts +92 -0
  238. package/references/openhive/src/coordination/schema.ts +79 -0
  239. package/references/openhive/src/coordination/service.ts +233 -0
  240. package/references/openhive/src/coordination/types.ts +177 -0
  241. package/references/openhive/src/data-dir.ts +105 -0
  242. package/references/openhive/src/db/adapters/index.ts +21 -0
  243. package/references/openhive/src/db/adapters/postgres.ts +310 -0
  244. package/references/openhive/src/db/adapters/sqlite.ts +56 -0
  245. package/references/openhive/src/db/adapters/types.ts +65 -0
  246. package/references/openhive/src/db/dal/agents.ts +430 -0
  247. package/references/openhive/src/db/dal/bridge.ts +336 -0
  248. package/references/openhive/src/db/dal/comments.ts +213 -0
  249. package/references/openhive/src/db/dal/coordination.ts +361 -0
  250. package/references/openhive/src/db/dal/events.ts +381 -0
  251. package/references/openhive/src/db/dal/follows.ts +96 -0
  252. package/references/openhive/src/db/dal/hives.ts +198 -0
  253. package/references/openhive/src/db/dal/ingest-keys.ts +176 -0
  254. package/references/openhive/src/db/dal/instances.ts +196 -0
  255. package/references/openhive/src/db/dal/invites.ts +123 -0
  256. package/references/openhive/src/db/dal/map.ts +750 -0
  257. package/references/openhive/src/db/dal/posts.ts +274 -0
  258. package/references/openhive/src/db/dal/remote-agents.ts +56 -0
  259. package/references/openhive/src/db/dal/search.ts +238 -0
  260. package/references/openhive/src/db/dal/sync-events.ts +160 -0
  261. package/references/openhive/src/db/dal/sync-groups.ts +100 -0
  262. package/references/openhive/src/db/dal/sync-peer-configs.ts +216 -0
  263. package/references/openhive/src/db/dal/sync-peers.ts +145 -0
  264. package/references/openhive/src/db/dal/syncable-resources.ts +888 -0
  265. package/references/openhive/src/db/dal/trajectory-checkpoints.ts +291 -0
  266. package/references/openhive/src/db/dal/uploads.ts +124 -0
  267. package/references/openhive/src/db/dal/votes.ts +124 -0
  268. package/references/openhive/src/db/index.ts +293 -0
  269. package/references/openhive/src/db/providers/index.ts +75 -0
  270. package/references/openhive/src/db/providers/postgres.ts +529 -0
  271. package/references/openhive/src/db/providers/sqlite.ts +1383 -0
  272. package/references/openhive/src/db/providers/turso.ts +1360 -0
  273. package/references/openhive/src/db/providers/types.ts +516 -0
  274. package/references/openhive/src/db/schema.ts +641 -0
  275. package/references/openhive/src/discovery/index.ts +403 -0
  276. package/references/openhive/src/events/dispatch.ts +106 -0
  277. package/references/openhive/src/events/index.ts +17 -0
  278. package/references/openhive/src/events/normalizers/github.ts +133 -0
  279. package/references/openhive/src/events/normalizers/index.ts +62 -0
  280. package/references/openhive/src/events/normalizers/slack.ts +50 -0
  281. package/references/openhive/src/events/router.ts +156 -0
  282. package/references/openhive/src/events/schema.ts +66 -0
  283. package/references/openhive/src/events/types.ts +130 -0
  284. package/references/openhive/src/federation/index.ts +1 -0
  285. package/references/openhive/src/federation/service.ts +776 -0
  286. package/references/openhive/src/headscale/client.ts +256 -0
  287. package/references/openhive/src/headscale/config.ts +212 -0
  288. package/references/openhive/src/headscale/index.ts +23 -0
  289. package/references/openhive/src/headscale/manager.ts +249 -0
  290. package/references/openhive/src/headscale/sync.ts +272 -0
  291. package/references/openhive/src/headscale/types.ts +231 -0
  292. package/references/openhive/src/index.ts +225 -0
  293. package/references/openhive/src/map/client-entry.ts +26 -0
  294. package/references/openhive/src/map/index.ts +76 -0
  295. package/references/openhive/src/map/schema.ts +119 -0
  296. package/references/openhive/src/map/service.ts +323 -0
  297. package/references/openhive/src/map/sync-client.ts +696 -0
  298. package/references/openhive/src/map/sync-listener.ts +409 -0
  299. package/references/openhive/src/map/types.ts +290 -0
  300. package/references/openhive/src/network/factory.ts +118 -0
  301. package/references/openhive/src/network/headscale-provider.ts +437 -0
  302. package/references/openhive/src/network/index.ts +43 -0
  303. package/references/openhive/src/network/tailscale-client.ts +289 -0
  304. package/references/openhive/src/network/tailscale-provider.ts +287 -0
  305. package/references/openhive/src/network/types.ts +178 -0
  306. package/references/openhive/src/opentasks-client/client.ts +374 -0
  307. package/references/openhive/src/opentasks-client/index.ts +7 -0
  308. package/references/openhive/src/realtime/index.ts +282 -0
  309. package/references/openhive/src/server.ts +1069 -0
  310. package/references/openhive/src/services/email.ts +177 -0
  311. package/references/openhive/src/services/sitemap.ts +135 -0
  312. package/references/openhive/src/sessions/adapters/claude.ts +466 -0
  313. package/references/openhive/src/sessions/adapters/codex.ts +265 -0
  314. package/references/openhive/src/sessions/adapters/index.ts +263 -0
  315. package/references/openhive/src/sessions/adapters/raw.ts +144 -0
  316. package/references/openhive/src/sessions/adapters/types.ts +83 -0
  317. package/references/openhive/src/sessions/index.ts +50 -0
  318. package/references/openhive/src/sessions/storage/adapters/gcs.ts +277 -0
  319. package/references/openhive/src/sessions/storage/adapters/local.ts +240 -0
  320. package/references/openhive/src/sessions/storage/adapters/s3.ts +321 -0
  321. package/references/openhive/src/sessions/storage/index.ts +231 -0
  322. package/references/openhive/src/sessions/storage/types.ts +189 -0
  323. package/references/openhive/src/sessions/types.ts +415 -0
  324. package/references/openhive/src/shared/types/index.ts +45 -0
  325. package/references/openhive/src/shared/types/map-coordination.ts +92 -0
  326. package/references/openhive/src/shared/types/map-session-sync.ts +170 -0
  327. package/references/openhive/src/shared/types/map-sync.ts +68 -0
  328. package/references/openhive/src/skill.ts +203 -0
  329. package/references/openhive/src/storage/adapters/local.ts +169 -0
  330. package/references/openhive/src/storage/adapters/s3.ts +195 -0
  331. package/references/openhive/src/storage/index.ts +64 -0
  332. package/references/openhive/src/storage/types.ts +69 -0
  333. package/references/openhive/src/swarm/credentials.ts +98 -0
  334. package/references/openhive/src/swarm/dal.ts +206 -0
  335. package/references/openhive/src/swarm/index.ts +28 -0
  336. package/references/openhive/src/swarm/manager.ts +917 -0
  337. package/references/openhive/src/swarm/providers/local.ts +338 -0
  338. package/references/openhive/src/swarm/providers/sandboxed-local.ts +478 -0
  339. package/references/openhive/src/swarm/providers/workspace.ts +52 -0
  340. package/references/openhive/src/swarm/schema.ts +43 -0
  341. package/references/openhive/src/swarm/types.ts +333 -0
  342. package/references/openhive/src/swarmhub/client.ts +279 -0
  343. package/references/openhive/src/swarmhub/connector.ts +463 -0
  344. package/references/openhive/src/swarmhub/index.ts +43 -0
  345. package/references/openhive/src/swarmhub/routes.ts +296 -0
  346. package/references/openhive/src/swarmhub/types.ts +213 -0
  347. package/references/openhive/src/swarmhub/webhook-handler.ts +126 -0
  348. package/references/openhive/src/sync/compaction.ts +193 -0
  349. package/references/openhive/src/sync/coordination-hooks.ts +154 -0
  350. package/references/openhive/src/sync/crypto.ts +79 -0
  351. package/references/openhive/src/sync/gossip.ts +136 -0
  352. package/references/openhive/src/sync/hooks.ts +202 -0
  353. package/references/openhive/src/sync/materializer-repo.ts +256 -0
  354. package/references/openhive/src/sync/materializer.ts +682 -0
  355. package/references/openhive/src/sync/middleware.ts +140 -0
  356. package/references/openhive/src/sync/peer-resolver.ts +157 -0
  357. package/references/openhive/src/sync/resource-hooks.ts +161 -0
  358. package/references/openhive/src/sync/schema.ts +158 -0
  359. package/references/openhive/src/sync/service.ts +990 -0
  360. package/references/openhive/src/sync/types.ts +369 -0
  361. package/references/openhive/src/terminal/index.ts +4 -0
  362. package/references/openhive/src/terminal/pty-manager.ts +337 -0
  363. package/references/openhive/src/terminal/resolve-tui.ts +44 -0
  364. package/references/openhive/src/terminal/terminal-ws.ts +251 -0
  365. package/references/openhive/src/types.ts +442 -0
  366. package/references/openhive/src/utils/git-remote.ts +329 -0
  367. package/references/openhive/src/web/App.tsx +77 -0
  368. package/references/openhive/src/web/__tests__/components/dashboard/RecentActivity.test.tsx +77 -0
  369. package/references/openhive/src/web/__tests__/components/dashboard/StatsOverview.test.tsx +62 -0
  370. package/references/openhive/src/web/__tests__/components/dashboard/SwarmStatusSummary.test.tsx +122 -0
  371. package/references/openhive/src/web/__tests__/components/dashboard/SyncResourcesStatus.test.tsx +104 -0
  372. package/references/openhive/src/web/__tests__/components/layout/Sidebar.test.tsx +110 -0
  373. package/references/openhive/src/web/__tests__/components/swarm/StatusBadges.test.tsx +65 -0
  374. package/references/openhive/src/web/__tests__/components/terminal/query-responses.test.ts +143 -0
  375. package/references/openhive/src/web/__tests__/components/terminal/terminal-mouse.test.ts +509 -0
  376. package/references/openhive/src/web/__tests__/hooks/useEventsApi.test.ts +378 -0
  377. package/references/openhive/src/web/__tests__/pages/Dashboard.test.tsx +57 -0
  378. package/references/openhive/src/web/__tests__/pages/Events.test.tsx +886 -0
  379. package/references/openhive/src/web/__tests__/pages/Explore.test.tsx +63 -0
  380. package/references/openhive/src/web/__tests__/routing.test.tsx +79 -0
  381. package/references/openhive/src/web/__tests__/setup.ts +37 -0
  382. package/references/openhive/src/web/__tests__/stores/dashboard.test.ts +49 -0
  383. package/references/openhive/src/web/components/common/AgentBadge.tsx +58 -0
  384. package/references/openhive/src/web/components/common/Avatar.tsx +78 -0
  385. package/references/openhive/src/web/components/common/ErrorBoundary.tsx +76 -0
  386. package/references/openhive/src/web/components/common/Highlight.tsx +79 -0
  387. package/references/openhive/src/web/components/common/ImageUpload.tsx +209 -0
  388. package/references/openhive/src/web/components/common/LoadingSpinner.tsx +37 -0
  389. package/references/openhive/src/web/components/common/Logo.tsx +21 -0
  390. package/references/openhive/src/web/components/common/Markdown.tsx +53 -0
  391. package/references/openhive/src/web/components/common/ProtectedRoute.tsx +18 -0
  392. package/references/openhive/src/web/components/common/ThemeToggle.tsx +38 -0
  393. package/references/openhive/src/web/components/common/TimeAgo.tsx +17 -0
  394. package/references/openhive/src/web/components/common/Toast.tsx +70 -0
  395. package/references/openhive/src/web/components/common/VoteButtons.tsx +100 -0
  396. package/references/openhive/src/web/components/dashboard/RecentActivity.tsx +100 -0
  397. package/references/openhive/src/web/components/dashboard/StatsOverview.tsx +40 -0
  398. package/references/openhive/src/web/components/dashboard/SwarmStatusSummary.tsx +89 -0
  399. package/references/openhive/src/web/components/dashboard/SyncResourcesStatus.tsx +81 -0
  400. package/references/openhive/src/web/components/feed/FeedControls.tsx +38 -0
  401. package/references/openhive/src/web/components/feed/NewPostsIndicator.tsx +75 -0
  402. package/references/openhive/src/web/components/feed/PostCard.tsx +129 -0
  403. package/references/openhive/src/web/components/feed/PostList.tsx +83 -0
  404. package/references/openhive/src/web/components/layout/Footer.tsx +5 -0
  405. package/references/openhive/src/web/components/layout/Layout.tsx +29 -0
  406. package/references/openhive/src/web/components/layout/Sidebar.tsx +348 -0
  407. package/references/openhive/src/web/components/post/CommentForm.tsx +59 -0
  408. package/references/openhive/src/web/components/post/CommentTree.tsx +145 -0
  409. package/references/openhive/src/web/components/resources/MemoryBrowser.tsx +208 -0
  410. package/references/openhive/src/web/components/resources/OpenTasksSummary.tsx +138 -0
  411. package/references/openhive/src/web/components/resources/SkillBrowser.tsx +284 -0
  412. package/references/openhive/src/web/components/swarm/StatusBadges.tsx +56 -0
  413. package/references/openhive/src/web/components/terminal/TerminalPanel.tsx +485 -0
  414. package/references/openhive/src/web/components/terminal/index.ts +2 -0
  415. package/references/openhive/src/web/components/terminal/query-responses.ts +70 -0
  416. package/references/openhive/src/web/components/terminal/terminal-mouse.ts +222 -0
  417. package/references/openhive/src/web/hooks/useApi.ts +740 -0
  418. package/references/openhive/src/web/hooks/useDocumentTitle.ts +49 -0
  419. package/references/openhive/src/web/hooks/useInfiniteScroll.ts +58 -0
  420. package/references/openhive/src/web/hooks/useRealtimeUpdates.ts +154 -0
  421. package/references/openhive/src/web/hooks/useWebSocket.ts +225 -0
  422. package/references/openhive/src/web/index.html +73 -0
  423. package/references/openhive/src/web/lib/api.ts +518 -0
  424. package/references/openhive/src/web/main.tsx +32 -0
  425. package/references/openhive/src/web/pages/About.tsx +131 -0
  426. package/references/openhive/src/web/pages/Agent.tsx +130 -0
  427. package/references/openhive/src/web/pages/Agents.tsx +69 -0
  428. package/references/openhive/src/web/pages/AuthCallback.tsx +75 -0
  429. package/references/openhive/src/web/pages/Dashboard.tsx +41 -0
  430. package/references/openhive/src/web/pages/Events.tsx +1025 -0
  431. package/references/openhive/src/web/pages/Explore.tsx +43 -0
  432. package/references/openhive/src/web/pages/Hive.tsx +134 -0
  433. package/references/openhive/src/web/pages/Hives.tsx +64 -0
  434. package/references/openhive/src/web/pages/Home.tsx +43 -0
  435. package/references/openhive/src/web/pages/Login.tsx +122 -0
  436. package/references/openhive/src/web/pages/Post.tsx +216 -0
  437. package/references/openhive/src/web/pages/ResourceDetail.tsx +426 -0
  438. package/references/openhive/src/web/pages/Resources.tsx +276 -0
  439. package/references/openhive/src/web/pages/Search.tsx +234 -0
  440. package/references/openhive/src/web/pages/SessionDetail.tsx +703 -0
  441. package/references/openhive/src/web/pages/Sessions.tsx +129 -0
  442. package/references/openhive/src/web/pages/Settings.tsx +826 -0
  443. package/references/openhive/src/web/pages/SwarmCraft.tsx +16 -0
  444. package/references/openhive/src/web/pages/Swarms.tsx +981 -0
  445. package/references/openhive/src/web/pages/Terminal.tsx +69 -0
  446. package/references/openhive/src/web/postcss.config.js +5 -0
  447. package/references/openhive/src/web/public/favicon.svg +11 -0
  448. package/references/openhive/src/web/public/manifest.json +21 -0
  449. package/references/openhive/src/web/stores/auth.ts +207 -0
  450. package/references/openhive/src/web/stores/dashboard.ts +23 -0
  451. package/references/openhive/src/web/stores/realtime.ts +90 -0
  452. package/references/openhive/src/web/stores/theme.ts +70 -0
  453. package/references/openhive/src/web/stores/toast.ts +63 -0
  454. package/references/openhive/src/web/styles/globals.css +503 -0
  455. package/references/openhive/src/web/sw.ts +228 -0
  456. package/references/openhive/src/web/utils/serviceWorker.ts +86 -0
  457. package/references/openhive/src/web/vite.config.ts +81 -0
  458. package/references/openhive/tsconfig.json +32 -0
  459. package/references/openhive/tsup.config.ts +17 -0
  460. package/references/openhive/vitest.config.ts +30 -0
  461. package/references/openhive/vitest.web.config.ts +20 -0
  462. package/references/opentasks/.claude/settings.json +6 -0
  463. package/references/opentasks/.claude-plugin/plugin.json +20 -0
  464. package/references/opentasks/.lintstagedrc.json +4 -0
  465. package/references/opentasks/.prettierignore +4 -0
  466. package/references/opentasks/.prettierrc.json +11 -0
  467. package/references/opentasks/.sudocode/issues.jsonl +89 -0
  468. package/references/opentasks/.sudocode/specs.jsonl +24 -0
  469. package/references/opentasks/README.md +401 -0
  470. package/references/opentasks/docs/ARCHITECTURE.md +841 -0
  471. package/references/opentasks/docs/DESIGN.md +689 -0
  472. package/references/opentasks/docs/INTERFACE.md +670 -0
  473. package/references/opentasks/docs/PERSISTENCE.md +1638 -0
  474. package/references/opentasks/docs/PROVIDERS.md +1412 -0
  475. package/references/opentasks/docs/SCHEMA.md +815 -0
  476. package/references/opentasks/docs/TESTING.md +1081 -0
  477. package/references/opentasks/eslint.config.js +58 -0
  478. package/references/opentasks/package-lock.json +4348 -0
  479. package/references/opentasks/package.json +81 -0
  480. package/references/opentasks/skills/opentasks/SKILL.md +139 -0
  481. package/references/opentasks/skills/opentasks/dependency-management.md +119 -0
  482. package/references/opentasks/skills/opentasks/feedback-and-review.md +100 -0
  483. package/references/opentasks/skills/opentasks/linking-external-data.md +103 -0
  484. package/references/opentasks/skills/opentasks/spec-to-implementation.md +98 -0
  485. package/references/opentasks/src/__tests__/cli-tools.test.ts +800 -0
  486. package/references/opentasks/src/__tests__/cli.test.ts +97 -0
  487. package/references/opentasks/src/__tests__/p1-p3-gaps.test.ts +635 -0
  488. package/references/opentasks/src/cli.ts +929 -0
  489. package/references/opentasks/src/client/__tests__/client-crud.test.ts +546 -0
  490. package/references/opentasks/src/client/__tests__/client.test.ts +658 -0
  491. package/references/opentasks/src/client/__tests__/socket-discovery.test.ts +122 -0
  492. package/references/opentasks/src/client/client.ts +560 -0
  493. package/references/opentasks/src/client/index.ts +32 -0
  494. package/references/opentasks/src/config/__tests__/defaults.test.ts +66 -0
  495. package/references/opentasks/src/config/__tests__/env.test.ts +155 -0
  496. package/references/opentasks/src/config/__tests__/index.test.ts +148 -0
  497. package/references/opentasks/src/config/__tests__/loader.test.ts +173 -0
  498. package/references/opentasks/src/config/__tests__/merge.test.ts +121 -0
  499. package/references/opentasks/src/config/__tests__/schema.test.ts +446 -0
  500. package/references/opentasks/src/config/defaults.ts +18 -0
  501. package/references/opentasks/src/config/env.ts +170 -0
  502. package/references/opentasks/src/config/errors.ts +33 -0
  503. package/references/opentasks/src/config/index.ts +63 -0
  504. package/references/opentasks/src/config/loader.ts +90 -0
  505. package/references/opentasks/src/config/merge.ts +64 -0
  506. package/references/opentasks/src/config/schema.ts +767 -0
  507. package/references/opentasks/src/core/__tests__/conditional-redirects.test.ts +116 -0
  508. package/references/opentasks/src/core/__tests__/connections.test.ts +194 -0
  509. package/references/opentasks/src/core/__tests__/hash.test.ts +161 -0
  510. package/references/opentasks/src/core/__tests__/id.test.ts +175 -0
  511. package/references/opentasks/src/core/__tests__/init.test.ts +115 -0
  512. package/references/opentasks/src/core/__tests__/location.test.ts +94 -0
  513. package/references/opentasks/src/core/__tests__/merge-driver.test.ts +300 -0
  514. package/references/opentasks/src/core/__tests__/redirects.test.ts +169 -0
  515. package/references/opentasks/src/core/__tests__/resolve-location-target.test.ts +468 -0
  516. package/references/opentasks/src/core/__tests__/uri.test.ts +228 -0
  517. package/references/opentasks/src/core/__tests__/worktree.test.ts +160 -0
  518. package/references/opentasks/src/core/conditional-redirects.ts +100 -0
  519. package/references/opentasks/src/core/connections.ts +217 -0
  520. package/references/opentasks/src/core/discover.ts +195 -0
  521. package/references/opentasks/src/core/hash.ts +74 -0
  522. package/references/opentasks/src/core/id.ts +174 -0
  523. package/references/opentasks/src/core/index.ts +108 -0
  524. package/references/opentasks/src/core/init.ts +66 -0
  525. package/references/opentasks/src/core/location.ts +139 -0
  526. package/references/opentasks/src/core/merge-driver.ts +280 -0
  527. package/references/opentasks/src/core/redirects.ts +182 -0
  528. package/references/opentasks/src/core/uri.ts +270 -0
  529. package/references/opentasks/src/core/worktree.ts +504 -0
  530. package/references/opentasks/src/daemon/__tests__/e2e-live-agent.test.ts +344 -0
  531. package/references/opentasks/src/daemon/__tests__/e2e-session-pipeline.test.ts +447 -0
  532. package/references/opentasks/src/daemon/__tests__/e2e-watch.test.ts +279 -0
  533. package/references/opentasks/src/daemon/__tests__/entire-linker.test.ts +1074 -0
  534. package/references/opentasks/src/daemon/__tests__/entire-watcher.test.ts +659 -0
  535. package/references/opentasks/src/daemon/__tests__/flush.test.ts +306 -0
  536. package/references/opentasks/src/daemon/__tests__/integration.test.ts +338 -0
  537. package/references/opentasks/src/daemon/__tests__/ipc.test.ts +406 -0
  538. package/references/opentasks/src/daemon/__tests__/lifecycle.test.ts +378 -0
  539. package/references/opentasks/src/daemon/__tests__/lock.test.ts +240 -0
  540. package/references/opentasks/src/daemon/__tests__/methods/graph.test.ts +372 -0
  541. package/references/opentasks/src/daemon/__tests__/methods/provider.test.ts +238 -0
  542. package/references/opentasks/src/daemon/__tests__/methods/tools.test.ts +690 -0
  543. package/references/opentasks/src/daemon/__tests__/multi-location.test.ts +945 -0
  544. package/references/opentasks/src/daemon/__tests__/registry.test.ts +268 -0
  545. package/references/opentasks/src/daemon/__tests__/watcher.test.ts +329 -0
  546. package/references/opentasks/src/daemon/entire-linker.ts +615 -0
  547. package/references/opentasks/src/daemon/entire-watcher.ts +415 -0
  548. package/references/opentasks/src/daemon/factory.ts +133 -0
  549. package/references/opentasks/src/daemon/flush.ts +168 -0
  550. package/references/opentasks/src/daemon/index.ts +120 -0
  551. package/references/opentasks/src/daemon/ipc.ts +491 -0
  552. package/references/opentasks/src/daemon/lifecycle.ts +1106 -0
  553. package/references/opentasks/src/daemon/location-state.ts +481 -0
  554. package/references/opentasks/src/daemon/lock.ts +168 -0
  555. package/references/opentasks/src/daemon/methods/__tests__/graph.test.ts +359 -0
  556. package/references/opentasks/src/daemon/methods/__tests__/provider.test.ts +227 -0
  557. package/references/opentasks/src/daemon/methods/__tests__/tools.test.ts +360 -0
  558. package/references/opentasks/src/daemon/methods/__tests__/watch.test.ts +656 -0
  559. package/references/opentasks/src/daemon/methods/archive.ts +193 -0
  560. package/references/opentasks/src/daemon/methods/graph.ts +274 -0
  561. package/references/opentasks/src/daemon/methods/lifecycle.ts +112 -0
  562. package/references/opentasks/src/daemon/methods/location.ts +118 -0
  563. package/references/opentasks/src/daemon/methods/provider.ts +159 -0
  564. package/references/opentasks/src/daemon/methods/tools.ts +221 -0
  565. package/references/opentasks/src/daemon/methods/watch.ts +206 -0
  566. package/references/opentasks/src/daemon/registry.ts +244 -0
  567. package/references/opentasks/src/daemon/types.ts +163 -0
  568. package/references/opentasks/src/daemon/watcher.ts +248 -0
  569. package/references/opentasks/src/entire/__tests__/agent-registry.test.ts +127 -0
  570. package/references/opentasks/src/entire/__tests__/claude-generator.test.ts +49 -0
  571. package/references/opentasks/src/entire/__tests__/commit-msg.test.ts +89 -0
  572. package/references/opentasks/src/entire/__tests__/cursor-agent.test.ts +224 -0
  573. package/references/opentasks/src/entire/__tests__/flush-sentinel.test.ts +93 -0
  574. package/references/opentasks/src/entire/__tests__/gemini-agent.test.ts +375 -0
  575. package/references/opentasks/src/entire/__tests__/git-hooks.test.ts +85 -0
  576. package/references/opentasks/src/entire/__tests__/hook-managers.test.ts +128 -0
  577. package/references/opentasks/src/entire/__tests__/opencode-agent.test.ts +329 -0
  578. package/references/opentasks/src/entire/__tests__/redaction.test.ts +143 -0
  579. package/references/opentasks/src/entire/__tests__/session-store.test.ts +83 -0
  580. package/references/opentasks/src/entire/__tests__/summarize.test.ts +346 -0
  581. package/references/opentasks/src/entire/__tests__/transcript-timestamp.test.ts +127 -0
  582. package/references/opentasks/src/entire/__tests__/types.test.ts +112 -0
  583. package/references/opentasks/src/entire/__tests__/utils.test.ts +296 -0
  584. package/references/opentasks/src/entire/__tests__/validation.test.ts +103 -0
  585. package/references/opentasks/src/entire/__tests__/worktree.test.ts +66 -0
  586. package/references/opentasks/src/entire/agent/registry.ts +143 -0
  587. package/references/opentasks/src/entire/agent/session-types.ts +117 -0
  588. package/references/opentasks/src/entire/agent/types.ts +217 -0
  589. package/references/opentasks/src/entire/commands/clean.ts +134 -0
  590. package/references/opentasks/src/entire/commands/disable.ts +85 -0
  591. package/references/opentasks/src/entire/commands/doctor.ts +152 -0
  592. package/references/opentasks/src/entire/commands/enable.ts +149 -0
  593. package/references/opentasks/src/entire/commands/explain.ts +271 -0
  594. package/references/opentasks/src/entire/commands/reset.ts +105 -0
  595. package/references/opentasks/src/entire/commands/resume.ts +194 -0
  596. package/references/opentasks/src/entire/commands/rewind.ts +204 -0
  597. package/references/opentasks/src/entire/commands/status.ts +150 -0
  598. package/references/opentasks/src/entire/config.ts +153 -0
  599. package/references/opentasks/src/entire/git-operations.ts +485 -0
  600. package/references/opentasks/src/entire/hooks/git-hooks.ts +171 -0
  601. package/references/opentasks/src/entire/hooks/lifecycle.ts +224 -0
  602. package/references/opentasks/src/entire/index.ts +644 -0
  603. package/references/opentasks/src/entire/security/redaction.ts +263 -0
  604. package/references/opentasks/src/entire/session/state-machine.ts +463 -0
  605. package/references/opentasks/src/entire/store/checkpoint-store.ts +489 -0
  606. package/references/opentasks/src/entire/store/native-store.ts +178 -0
  607. package/references/opentasks/src/entire/store/provider-types.ts +99 -0
  608. package/references/opentasks/src/entire/store/session-store.ts +233 -0
  609. package/references/opentasks/src/entire/strategy/attribution.ts +300 -0
  610. package/references/opentasks/src/entire/strategy/common.ts +222 -0
  611. package/references/opentasks/src/entire/strategy/content-overlap.ts +242 -0
  612. package/references/opentasks/src/entire/strategy/manual-commit.ts +1008 -0
  613. package/references/opentasks/src/entire/strategy/types.ts +285 -0
  614. package/references/opentasks/src/entire/summarize/claude-generator.ts +119 -0
  615. package/references/opentasks/src/entire/summarize/summarize.ts +432 -0
  616. package/references/opentasks/src/entire/types.ts +408 -0
  617. package/references/opentasks/src/entire/utils/chunk-files.ts +49 -0
  618. package/references/opentasks/src/entire/utils/commit-message.ts +65 -0
  619. package/references/opentasks/src/entire/utils/detect-agent.ts +36 -0
  620. package/references/opentasks/src/entire/utils/hook-managers.ts +118 -0
  621. package/references/opentasks/src/entire/utils/ide-tags.ts +32 -0
  622. package/references/opentasks/src/entire/utils/paths.ts +59 -0
  623. package/references/opentasks/src/entire/utils/preview-rewind.ts +86 -0
  624. package/references/opentasks/src/entire/utils/rewind-conflict.ts +121 -0
  625. package/references/opentasks/src/entire/utils/shadow-branch.ts +113 -0
  626. package/references/opentasks/src/entire/utils/string-utils.ts +46 -0
  627. package/references/opentasks/src/entire/utils/todo-extract.ts +193 -0
  628. package/references/opentasks/src/entire/utils/trailers.ts +190 -0
  629. package/references/opentasks/src/entire/utils/transcript-parse.ts +177 -0
  630. package/references/opentasks/src/entire/utils/transcript-timestamp.ts +61 -0
  631. package/references/opentasks/src/entire/utils/tree-ops.ts +227 -0
  632. package/references/opentasks/src/entire/utils/tty.ts +72 -0
  633. package/references/opentasks/src/entire/utils/validation.ts +67 -0
  634. package/references/opentasks/src/entire/utils/worktree.ts +58 -0
  635. package/references/opentasks/src/graph/EdgeTypeRegistry.ts +330 -0
  636. package/references/opentasks/src/graph/FederatedGraph.ts +796 -0
  637. package/references/opentasks/src/graph/GraphologyAdapter.ts +374 -0
  638. package/references/opentasks/src/graph/HydratingFederatedGraph.ts +533 -0
  639. package/references/opentasks/src/graph/__tests__/EdgeTypeRegistry.test.ts +263 -0
  640. package/references/opentasks/src/graph/__tests__/FederatedGraph.test.ts +821 -0
  641. package/references/opentasks/src/graph/__tests__/GraphologyAdapter.test.ts +408 -0
  642. package/references/opentasks/src/graph/__tests__/HydratingFederatedGraph.test.ts +735 -0
  643. package/references/opentasks/src/graph/__tests__/debounce.test.ts +276 -0
  644. package/references/opentasks/src/graph/__tests__/e2e-store-roundtrip.test.ts +349 -0
  645. package/references/opentasks/src/graph/__tests__/edge-cases.test.ts +595 -0
  646. package/references/opentasks/src/graph/__tests__/expansion.test.ts +304 -0
  647. package/references/opentasks/src/graph/__tests__/git-graph-syncer.test.ts +572 -0
  648. package/references/opentasks/src/graph/__tests__/provider-store.test.ts +1091 -0
  649. package/references/opentasks/src/graph/__tests__/query.test.ts +991 -0
  650. package/references/opentasks/src/graph/__tests__/store.test.ts +998 -0
  651. package/references/opentasks/src/graph/__tests__/sync.test.ts +178 -0
  652. package/references/opentasks/src/graph/__tests__/validation.test.ts +657 -0
  653. package/references/opentasks/src/graph/coordination.ts +454 -0
  654. package/references/opentasks/src/graph/debounce.ts +154 -0
  655. package/references/opentasks/src/graph/expansion.ts +364 -0
  656. package/references/opentasks/src/graph/git-graph-syncer.ts +321 -0
  657. package/references/opentasks/src/graph/history.ts +438 -0
  658. package/references/opentasks/src/graph/index.ts +145 -0
  659. package/references/opentasks/src/graph/provider-store.ts +1077 -0
  660. package/references/opentasks/src/graph/query.ts +651 -0
  661. package/references/opentasks/src/graph/store.ts +861 -0
  662. package/references/opentasks/src/graph/sync.ts +116 -0
  663. package/references/opentasks/src/graph/types.ts +420 -0
  664. package/references/opentasks/src/graph/validation.ts +520 -0
  665. package/references/opentasks/src/index.ts +270 -0
  666. package/references/opentasks/src/materialization/CLAUDE.md +88 -0
  667. package/references/opentasks/src/materialization/README.md +187 -0
  668. package/references/opentasks/src/materialization/__tests__/archive-methods.test.ts +194 -0
  669. package/references/opentasks/src/materialization/__tests__/archiver.test.ts +528 -0
  670. package/references/opentasks/src/materialization/__tests__/config.test.ts +123 -0
  671. package/references/opentasks/src/materialization/__tests__/git-remote-store.test.ts +533 -0
  672. package/references/opentasks/src/materialization/__tests__/graph-id.test.ts +82 -0
  673. package/references/opentasks/src/materialization/__tests__/http-remote-store.test.ts +263 -0
  674. package/references/opentasks/src/materialization/__tests__/materialize-before-archive.test.ts +246 -0
  675. package/references/opentasks/src/materialization/__tests__/remote-store-factory.test.ts +152 -0
  676. package/references/opentasks/src/materialization/__tests__/snapshot.test.ts +209 -0
  677. package/references/opentasks/src/materialization/archiver.ts +318 -0
  678. package/references/opentasks/src/materialization/git-archive-store.ts +568 -0
  679. package/references/opentasks/src/materialization/git-remote-store.ts +551 -0
  680. package/references/opentasks/src/materialization/graph-id.ts +173 -0
  681. package/references/opentasks/src/materialization/http-remote-store.ts +190 -0
  682. package/references/opentasks/src/materialization/index.ts +62 -0
  683. package/references/opentasks/src/materialization/remote-store-factory.ts +55 -0
  684. package/references/opentasks/src/materialization/snapshot.ts +230 -0
  685. package/references/opentasks/src/materialization/types.ts +410 -0
  686. package/references/opentasks/src/providers/__tests__/beads.test.ts +752 -0
  687. package/references/opentasks/src/providers/__tests__/claude-tasks.test.ts +485 -0
  688. package/references/opentasks/src/providers/__tests__/entire-e2e.test.ts +692 -0
  689. package/references/opentasks/src/providers/__tests__/entire-sessionlog-e2e.test.ts +1113 -0
  690. package/references/opentasks/src/providers/__tests__/entire.test.ts +1016 -0
  691. package/references/opentasks/src/providers/__tests__/from-config.test.ts +183 -0
  692. package/references/opentasks/src/providers/__tests__/global.test.ts +515 -0
  693. package/references/opentasks/src/providers/__tests__/materialization.test.ts +567 -0
  694. package/references/opentasks/src/providers/__tests__/native.test.ts +693 -0
  695. package/references/opentasks/src/providers/__tests__/registry.test.ts +232 -0
  696. package/references/opentasks/src/providers/beads.ts +1155 -0
  697. package/references/opentasks/src/providers/claude-tasks.ts +402 -0
  698. package/references/opentasks/src/providers/entire.ts +608 -0
  699. package/references/opentasks/src/providers/from-config.ts +210 -0
  700. package/references/opentasks/src/providers/global.ts +460 -0
  701. package/references/opentasks/src/providers/index.ts +147 -0
  702. package/references/opentasks/src/providers/location.ts +237 -0
  703. package/references/opentasks/src/providers/materialization.ts +346 -0
  704. package/references/opentasks/src/providers/native.ts +725 -0
  705. package/references/opentasks/src/providers/registry.ts +114 -0
  706. package/references/opentasks/src/providers/sudocode.ts +1292 -0
  707. package/references/opentasks/src/providers/sync.ts +485 -0
  708. package/references/opentasks/src/providers/traits/RelationshipQueryable.ts +169 -0
  709. package/references/opentasks/src/providers/traits/TaskManageable.ts +211 -0
  710. package/references/opentasks/src/providers/traits/Watchable.ts +260 -0
  711. package/references/opentasks/src/providers/traits/__tests__/RelationshipQueryable.test.ts +217 -0
  712. package/references/opentasks/src/providers/traits/__tests__/TaskManageable.test.ts +241 -0
  713. package/references/opentasks/src/providers/traits/index.ts +42 -0
  714. package/references/opentasks/src/providers/types.ts +439 -0
  715. package/references/opentasks/src/schema/__tests__/validation.test.ts +283 -0
  716. package/references/opentasks/src/schema/base.ts +88 -0
  717. package/references/opentasks/src/schema/edges.ts +78 -0
  718. package/references/opentasks/src/schema/index.ts +37 -0
  719. package/references/opentasks/src/schema/nodes.ts +119 -0
  720. package/references/opentasks/src/schema/storage.ts +130 -0
  721. package/references/opentasks/src/schema/validation.ts +209 -0
  722. package/references/opentasks/src/storage/__tests__/atomic-write.test.ts +227 -0
  723. package/references/opentasks/src/storage/__tests__/file-lock.test.ts +120 -0
  724. package/references/opentasks/src/storage/__tests__/jsonl.test.ts +267 -0
  725. package/references/opentasks/src/storage/__tests__/locked-writer.test.ts +134 -0
  726. package/references/opentasks/src/storage/__tests__/sqlite.test.ts +572 -0
  727. package/references/opentasks/src/storage/atomic-write.ts +86 -0
  728. package/references/opentasks/src/storage/file-lock.ts +215 -0
  729. package/references/opentasks/src/storage/index.ts +24 -0
  730. package/references/opentasks/src/storage/interface.ts +289 -0
  731. package/references/opentasks/src/storage/jsonl.ts +264 -0
  732. package/references/opentasks/src/storage/locked-writer.ts +140 -0
  733. package/references/opentasks/src/storage/sqlite-schema.ts +177 -0
  734. package/references/opentasks/src/storage/sqlite.ts +791 -0
  735. package/references/opentasks/src/tools/__tests__/annotate.test.ts +381 -0
  736. package/references/opentasks/src/tools/__tests__/link.test.ts +299 -0
  737. package/references/opentasks/src/tools/__tests__/query.test.ts +350 -0
  738. package/references/opentasks/src/tools/__tests__/task.test.ts +218 -0
  739. package/references/opentasks/src/tools/annotate.ts +277 -0
  740. package/references/opentasks/src/tools/index.ts +57 -0
  741. package/references/opentasks/src/tools/link.ts +163 -0
  742. package/references/opentasks/src/tools/query.ts +468 -0
  743. package/references/opentasks/src/tools/task.ts +213 -0
  744. package/references/opentasks/src/tools/types.ts +451 -0
  745. package/references/opentasks/src/tracking/__tests__/claude-tool-categorizer.test.ts +223 -0
  746. package/references/opentasks/src/tracking/__tests__/transcript-extractor.test.ts +262 -0
  747. package/references/opentasks/src/tracking/claude-tool-categorizer.ts +155 -0
  748. package/references/opentasks/src/tracking/index.ts +32 -0
  749. package/references/opentasks/src/tracking/skill-tracker.ts +322 -0
  750. package/references/opentasks/src/tracking/transcript-extractor.ts +225 -0
  751. package/references/opentasks/tests/e2e/helpers/assertions.ts +211 -0
  752. package/references/opentasks/tests/e2e/helpers/beads-helpers.ts +487 -0
  753. package/references/opentasks/tests/e2e/helpers/fixtures.ts +236 -0
  754. package/references/opentasks/tests/e2e/helpers/index.ts +122 -0
  755. package/references/opentasks/tests/e2e/helpers/sudocode-helpers.ts +341 -0
  756. package/references/opentasks/tests/e2e/helpers/system-setup.ts +504 -0
  757. package/references/opentasks/tests/e2e/helpers/test-agent.ts +504 -0
  758. package/references/opentasks/tests/e2e/infrastructure.e2e.test.ts +521 -0
  759. package/references/opentasks/tests/e2e/skill-tracking.e2e.test.ts +625 -0
  760. package/references/opentasks/tests/e2e/workflows/feedback-loop.e2e.test.ts +279 -0
  761. package/references/opentasks/tests/e2e/workflows/multi-agent.e2e.test.ts +304 -0
  762. package/references/opentasks/tests/e2e/workflows/provider-sync/background-sync.e2e.test.ts +292 -0
  763. package/references/opentasks/tests/e2e/workflows/provider-sync/beads-provider-compat.e2e.test.ts +249 -0
  764. package/references/opentasks/tests/e2e/workflows/provider-sync/cross-provider-edges.e2e.test.ts +407 -0
  765. package/references/opentasks/tests/e2e/workflows/provider-sync/federated-ready.e2e.test.ts +504 -0
  766. package/references/opentasks/tests/e2e/workflows/provider-sync/hydration.e2e.test.ts +340 -0
  767. package/references/opentasks/tests/e2e/workflows/provider-sync/materialization.e2e.test.ts +370 -0
  768. package/references/opentasks/tests/e2e/workflows/provider-sync/sudocode-provider-compat.e2e.test.ts +683 -0
  769. package/references/opentasks/tests/e2e/workflows/provider-sync/watchable-beads.e2e.test.ts +573 -0
  770. package/references/opentasks/tests/e2e/workflows/spec-driven.e2e.test.ts +244 -0
  771. package/references/opentasks/tests/e2e/worktree-location.e2e.test.ts +699 -0
  772. package/references/opentasks/tests/integration/daemon/helpers.ts +147 -0
  773. package/references/opentasks/tests/integration/daemon/ipc.integration.test.ts +343 -0
  774. package/references/opentasks/tests/integration/daemon/lifecycle.integration.test.ts +407 -0
  775. package/references/opentasks/tests/integration/graph/federated-graph.integration.test.ts +660 -0
  776. package/references/opentasks/tests/integration/helpers/flags.ts +28 -0
  777. package/references/opentasks/tests/integration/helpers/index.ts +47 -0
  778. package/references/opentasks/tests/integration/helpers/process.ts +133 -0
  779. package/references/opentasks/tests/integration/helpers/temp.ts +105 -0
  780. package/references/opentasks/tests/integration/helpers/wait.ts +133 -0
  781. package/references/opentasks/tests/integration/helpers.test.ts +120 -0
  782. package/references/opentasks/tests/integration/providers/beads-task-manageable.integration.test.ts +450 -0
  783. package/references/opentasks/tests/integration/providers/beads.integration.test.ts +388 -0
  784. package/references/opentasks/tests/integration/providers/native-task-manageable.integration.test.ts +667 -0
  785. package/references/opentasks/tests/integration/providers/sudocode-task-manageable.integration.test.ts +406 -0
  786. package/references/opentasks/tests/integration/providers/sudocode.integration.test.ts +342 -0
  787. package/references/opentasks/tests/integration/storage/jsonl-durability.integration.test.ts +390 -0
  788. package/references/opentasks/tests/integration/storage/sqlite-durability.integration.test.ts +527 -0
  789. package/references/opentasks/tests/integration/worktree/redirect-location-resolution.integration.test.ts +578 -0
  790. package/references/opentasks/tests/integration/worktree/worktree-flow.integration.test.ts +656 -0
  791. package/references/opentasks/tsconfig.json +18 -0
  792. package/references/opentasks/vitest.config.ts +27 -0
  793. package/references/opentasks/vitest.e2e.config.ts +35 -0
  794. package/references/opentasks/vitest.integration.config.ts +19 -0
  795. package/references/openteams/.claude/settings.json +6 -0
  796. package/references/openteams/CLAUDE.md +98 -0
  797. package/references/openteams/README.md +508 -0
  798. package/references/openteams/SKILL.md +198 -0
  799. package/references/openteams/design.md +250 -0
  800. package/references/openteams/docs/visual-editor-design.md +1225 -0
  801. package/references/openteams/editor/index.html +15 -0
  802. package/references/openteams/editor/package.json +39 -0
  803. package/references/openteams/editor/src/App.tsx +48 -0
  804. package/references/openteams/editor/src/components/canvas/Canvas.tsx +131 -0
  805. package/references/openteams/editor/src/components/canvas/QuickAddMenu.tsx +134 -0
  806. package/references/openteams/editor/src/components/edges/PeerRouteEdge.tsx +82 -0
  807. package/references/openteams/editor/src/components/edges/SignalFlowEdge.tsx +77 -0
  808. package/references/openteams/editor/src/components/edges/SpawnEdge.tsx +54 -0
  809. package/references/openteams/editor/src/components/inspector/ChannelInspector.tsx +158 -0
  810. package/references/openteams/editor/src/components/inspector/EdgeInspector.tsx +168 -0
  811. package/references/openteams/editor/src/components/inspector/Inspector.tsx +46 -0
  812. package/references/openteams/editor/src/components/inspector/RoleInspector.tsx +508 -0
  813. package/references/openteams/editor/src/components/inspector/TeamInspector.tsx +126 -0
  814. package/references/openteams/editor/src/components/nodes/ChannelNode.tsx +103 -0
  815. package/references/openteams/editor/src/components/nodes/RoleNode.tsx +157 -0
  816. package/references/openteams/editor/src/components/nodes/node-styles.ts +101 -0
  817. package/references/openteams/editor/src/components/sidebar/Sidebar.tsx +227 -0
  818. package/references/openteams/editor/src/components/toolbar/ExportModal.tsx +110 -0
  819. package/references/openteams/editor/src/components/toolbar/ImportModal.tsx +139 -0
  820. package/references/openteams/editor/src/components/toolbar/Toolbar.tsx +190 -0
  821. package/references/openteams/editor/src/hooks/use-autosave.ts +126 -0
  822. package/references/openteams/editor/src/hooks/use-keyboard.ts +106 -0
  823. package/references/openteams/editor/src/hooks/use-validation.ts +45 -0
  824. package/references/openteams/editor/src/index.css +245 -0
  825. package/references/openteams/editor/src/lib/auto-layout.ts +51 -0
  826. package/references/openteams/editor/src/lib/bundled-templates.ts +42 -0
  827. package/references/openteams/editor/src/lib/compiler.ts +75 -0
  828. package/references/openteams/editor/src/lib/load-template.ts +103 -0
  829. package/references/openteams/editor/src/lib/rebuild-edges.ts +104 -0
  830. package/references/openteams/editor/src/lib/serializer.ts +408 -0
  831. package/references/openteams/editor/src/lib/signal-catalog.ts +50 -0
  832. package/references/openteams/editor/src/lib/validator.ts +172 -0
  833. package/references/openteams/editor/src/main.tsx +10 -0
  834. package/references/openteams/editor/src/stores/canvas-store.ts +80 -0
  835. package/references/openteams/editor/src/stores/config-store.ts +243 -0
  836. package/references/openteams/editor/src/stores/history-store.ts +143 -0
  837. package/references/openteams/editor/src/stores/theme-store.ts +66 -0
  838. package/references/openteams/editor/src/stores/ui-store.ts +46 -0
  839. package/references/openteams/editor/src/stores/validation-store.ts +27 -0
  840. package/references/openteams/editor/src/types/editor.ts +74 -0
  841. package/references/openteams/editor/src/vite-env.d.ts +1 -0
  842. package/references/openteams/editor/tests/compiler.test.ts +151 -0
  843. package/references/openteams/editor/tests/e2e-add-remove.test.ts +386 -0
  844. package/references/openteams/editor/tests/e2e-components.test.tsx +424 -0
  845. package/references/openteams/editor/tests/e2e-export-roundtrip.test.ts +299 -0
  846. package/references/openteams/editor/tests/e2e-template-load.test.ts +204 -0
  847. package/references/openteams/editor/tests/e2e-ui-store.test.ts +126 -0
  848. package/references/openteams/editor/tests/e2e-undo-redo.test.ts +203 -0
  849. package/references/openteams/editor/tests/e2e-validation.test.ts +307 -0
  850. package/references/openteams/editor/tests/serializer.test.ts +142 -0
  851. package/references/openteams/editor/tests/setup.ts +52 -0
  852. package/references/openteams/editor/tests/validator.test.ts +92 -0
  853. package/references/openteams/editor/tsconfig.json +21 -0
  854. package/references/openteams/editor/tsconfig.tsbuildinfo +1 -0
  855. package/references/openteams/editor/vite.config.ts +28 -0
  856. package/references/openteams/examples/bmad-method/prompts/analyst/ROLE.md +16 -0
  857. package/references/openteams/examples/bmad-method/prompts/analyst/SOUL.md +5 -0
  858. package/references/openteams/examples/bmad-method/prompts/architect/ROLE.md +24 -0
  859. package/references/openteams/examples/bmad-method/prompts/architect/SOUL.md +5 -0
  860. package/references/openteams/examples/bmad-method/prompts/developer/ROLE.md +25 -0
  861. package/references/openteams/examples/bmad-method/prompts/developer/SOUL.md +5 -0
  862. package/references/openteams/examples/bmad-method/prompts/master/ROLE.md +21 -0
  863. package/references/openteams/examples/bmad-method/prompts/master/SOUL.md +5 -0
  864. package/references/openteams/examples/bmad-method/prompts/pm/ROLE.md +20 -0
  865. package/references/openteams/examples/bmad-method/prompts/pm/SOUL.md +5 -0
  866. package/references/openteams/examples/bmad-method/prompts/qa/ROLE.md +17 -0
  867. package/references/openteams/examples/bmad-method/prompts/qa/SOUL.md +5 -0
  868. package/references/openteams/examples/bmad-method/prompts/quick-flow-dev/ROLE.md +23 -0
  869. package/references/openteams/examples/bmad-method/prompts/quick-flow-dev/SOUL.md +5 -0
  870. package/references/openteams/examples/bmad-method/prompts/scrum-master/ROLE.md +27 -0
  871. package/references/openteams/examples/bmad-method/prompts/scrum-master/SOUL.md +5 -0
  872. package/references/openteams/examples/bmad-method/prompts/tech-writer/ROLE.md +21 -0
  873. package/references/openteams/examples/bmad-method/prompts/tech-writer/SOUL.md +5 -0
  874. package/references/openteams/examples/bmad-method/prompts/ux-designer/ROLE.md +16 -0
  875. package/references/openteams/examples/bmad-method/prompts/ux-designer/SOUL.md +5 -0
  876. package/references/openteams/examples/bmad-method/roles/analyst.yaml +9 -0
  877. package/references/openteams/examples/bmad-method/roles/architect.yaml +9 -0
  878. package/references/openteams/examples/bmad-method/roles/developer.yaml +8 -0
  879. package/references/openteams/examples/bmad-method/roles/master.yaml +8 -0
  880. package/references/openteams/examples/bmad-method/roles/pm.yaml +9 -0
  881. package/references/openteams/examples/bmad-method/roles/qa.yaml +8 -0
  882. package/references/openteams/examples/bmad-method/roles/quick-flow-dev.yaml +8 -0
  883. package/references/openteams/examples/bmad-method/roles/scrum-master.yaml +9 -0
  884. package/references/openteams/examples/bmad-method/roles/tech-writer.yaml +8 -0
  885. package/references/openteams/examples/bmad-method/roles/ux-designer.yaml +8 -0
  886. package/references/openteams/examples/bmad-method/team.yaml +161 -0
  887. package/references/openteams/examples/bug-fix-pipeline/roles/fixer.yaml +9 -0
  888. package/references/openteams/examples/bug-fix-pipeline/roles/investigator.yaml +8 -0
  889. package/references/openteams/examples/bug-fix-pipeline/roles/pr-creator.yaml +6 -0
  890. package/references/openteams/examples/bug-fix-pipeline/roles/triager.yaml +7 -0
  891. package/references/openteams/examples/bug-fix-pipeline/roles/verifier.yaml +8 -0
  892. package/references/openteams/examples/bug-fix-pipeline/team.yaml +88 -0
  893. package/references/openteams/examples/codebase-migration/roles/assessor.yaml +7 -0
  894. package/references/openteams/examples/codebase-migration/roles/migrator.yaml +9 -0
  895. package/references/openteams/examples/codebase-migration/roles/planner.yaml +5 -0
  896. package/references/openteams/examples/codebase-migration/roles/test-extractor.yaml +9 -0
  897. package/references/openteams/examples/codebase-migration/roles/validator.yaml +7 -0
  898. package/references/openteams/examples/codebase-migration/team.yaml +81 -0
  899. package/references/openteams/examples/docs-sync/roles/adr-writer.yaml +7 -0
  900. package/references/openteams/examples/docs-sync/roles/api-doc-writer.yaml +7 -0
  901. package/references/openteams/examples/docs-sync/roles/change-detector.yaml +7 -0
  902. package/references/openteams/examples/docs-sync/roles/doc-reviewer.yaml +7 -0
  903. package/references/openteams/examples/docs-sync/roles/guide-writer.yaml +7 -0
  904. package/references/openteams/examples/docs-sync/team.yaml +84 -0
  905. package/references/openteams/examples/gsd/prompts/codebase-mapper/ROLE.md +17 -0
  906. package/references/openteams/examples/gsd/prompts/codebase-mapper/SOUL.md +5 -0
  907. package/references/openteams/examples/gsd/prompts/debugger/ROLE.md +25 -0
  908. package/references/openteams/examples/gsd/prompts/debugger/SOUL.md +5 -0
  909. package/references/openteams/examples/gsd/prompts/executor/ROLE.md +34 -0
  910. package/references/openteams/examples/gsd/prompts/executor/SOUL.md +5 -0
  911. package/references/openteams/examples/gsd/prompts/integration-checker/ROLE.md +18 -0
  912. package/references/openteams/examples/gsd/prompts/integration-checker/SOUL.md +3 -0
  913. package/references/openteams/examples/gsd/prompts/orchestrator/ROLE.md +42 -0
  914. package/references/openteams/examples/gsd/prompts/orchestrator/SOUL.md +5 -0
  915. package/references/openteams/examples/gsd/prompts/phase-researcher/ROLE.md +15 -0
  916. package/references/openteams/examples/gsd/prompts/phase-researcher/SOUL.md +3 -0
  917. package/references/openteams/examples/gsd/prompts/plan-checker/ROLE.md +17 -0
  918. package/references/openteams/examples/gsd/prompts/plan-checker/SOUL.md +3 -0
  919. package/references/openteams/examples/gsd/prompts/planner/ROLE.md +28 -0
  920. package/references/openteams/examples/gsd/prompts/planner/SOUL.md +5 -0
  921. package/references/openteams/examples/gsd/prompts/project-researcher/ROLE.md +16 -0
  922. package/references/openteams/examples/gsd/prompts/project-researcher/SOUL.md +3 -0
  923. package/references/openteams/examples/gsd/prompts/research-synthesizer/ROLE.md +13 -0
  924. package/references/openteams/examples/gsd/prompts/research-synthesizer/SOUL.md +3 -0
  925. package/references/openteams/examples/gsd/prompts/roadmapper/ROLE.md +14 -0
  926. package/references/openteams/examples/gsd/prompts/roadmapper/SOUL.md +3 -0
  927. package/references/openteams/examples/gsd/prompts/verifier/ROLE.md +19 -0
  928. package/references/openteams/examples/gsd/prompts/verifier/SOUL.md +5 -0
  929. package/references/openteams/examples/gsd/roles/codebase-mapper.yaml +8 -0
  930. package/references/openteams/examples/gsd/roles/debugger.yaml +8 -0
  931. package/references/openteams/examples/gsd/roles/executor.yaml +8 -0
  932. package/references/openteams/examples/gsd/roles/integration-checker.yaml +8 -0
  933. package/references/openteams/examples/gsd/roles/orchestrator.yaml +9 -0
  934. package/references/openteams/examples/gsd/roles/phase-researcher.yaml +7 -0
  935. package/references/openteams/examples/gsd/roles/plan-checker.yaml +8 -0
  936. package/references/openteams/examples/gsd/roles/planner.yaml +8 -0
  937. package/references/openteams/examples/gsd/roles/project-researcher.yaml +8 -0
  938. package/references/openteams/examples/gsd/roles/research-synthesizer.yaml +7 -0
  939. package/references/openteams/examples/gsd/roles/roadmapper.yaml +7 -0
  940. package/references/openteams/examples/gsd/roles/verifier.yaml +8 -0
  941. package/references/openteams/examples/gsd/team.yaml +154 -0
  942. package/references/openteams/examples/incident-response/roles/communicator.yaml +5 -0
  943. package/references/openteams/examples/incident-response/roles/fix-proposer.yaml +7 -0
  944. package/references/openteams/examples/incident-response/roles/incident-triager.yaml +8 -0
  945. package/references/openteams/examples/incident-response/roles/investigator.yaml +8 -0
  946. package/references/openteams/examples/incident-response/team.yaml +68 -0
  947. package/references/openteams/examples/pr-review-checks/roles/code-reviewer.yaml +7 -0
  948. package/references/openteams/examples/pr-review-checks/roles/security-scanner.yaml +6 -0
  949. package/references/openteams/examples/pr-review-checks/roles/summarizer.yaml +6 -0
  950. package/references/openteams/examples/pr-review-checks/roles/test-checker.yaml +8 -0
  951. package/references/openteams/examples/pr-review-checks/team.yaml +64 -0
  952. package/references/openteams/examples/security-audit/roles/code-analyzer.yaml +6 -0
  953. package/references/openteams/examples/security-audit/roles/dep-scanner.yaml +7 -0
  954. package/references/openteams/examples/security-audit/roles/fixer.yaml +9 -0
  955. package/references/openteams/examples/security-audit/roles/pr-creator.yaml +6 -0
  956. package/references/openteams/examples/security-audit/roles/prioritizer.yaml +6 -0
  957. package/references/openteams/examples/security-audit/roles/secrets-scanner.yaml +6 -0
  958. package/references/openteams/examples/security-audit/roles/verifier.yaml +8 -0
  959. package/references/openteams/examples/security-audit/team.yaml +102 -0
  960. package/references/openteams/media/banner.png +0 -0
  961. package/references/openteams/media/editor.png +0 -0
  962. package/references/openteams/package-lock.json +4804 -0
  963. package/references/openteams/package.json +58 -0
  964. package/references/openteams/schema/role.schema.json +147 -0
  965. package/references/openteams/schema/team.schema.json +311 -0
  966. package/references/openteams/src/cli/editor.ts +170 -0
  967. package/references/openteams/src/cli/generate.test.ts +191 -0
  968. package/references/openteams/src/cli/generate.ts +220 -0
  969. package/references/openteams/src/cli/prompt-utils.ts +42 -0
  970. package/references/openteams/src/cli/template.test.ts +365 -0
  971. package/references/openteams/src/cli/template.ts +205 -0
  972. package/references/openteams/src/cli.ts +22 -0
  973. package/references/openteams/src/generators/agent-prompt-generator.test.ts +332 -0
  974. package/references/openteams/src/generators/agent-prompt-generator.ts +527 -0
  975. package/references/openteams/src/generators/package-generator.test.ts +129 -0
  976. package/references/openteams/src/generators/package-generator.ts +102 -0
  977. package/references/openteams/src/generators/skill-generator.test.ts +246 -0
  978. package/references/openteams/src/generators/skill-generator.ts +388 -0
  979. package/references/openteams/src/index.ts +84 -0
  980. package/references/openteams/src/template/builtins.test.ts +74 -0
  981. package/references/openteams/src/template/builtins.ts +108 -0
  982. package/references/openteams/src/template/install-service.test.ts +452 -0
  983. package/references/openteams/src/template/install-service.ts +332 -0
  984. package/references/openteams/src/template/loader.test.ts +1696 -0
  985. package/references/openteams/src/template/loader.ts +804 -0
  986. package/references/openteams/src/template/resolver.test.ts +304 -0
  987. package/references/openteams/src/template/resolver.ts +251 -0
  988. package/references/openteams/src/template/types.ts +229 -0
  989. package/references/openteams/tsconfig.cjs.json +7 -0
  990. package/references/openteams/tsconfig.esm.json +8 -0
  991. package/references/openteams/tsconfig.json +16 -0
  992. package/references/openteams/vitest.config.ts +9 -0
  993. package/references/sessionlog/.husky/pre-commit +1 -0
  994. package/references/sessionlog/.lintstagedrc.json +4 -0
  995. package/references/sessionlog/.prettierignore +4 -0
  996. package/references/sessionlog/.prettierrc.json +11 -0
  997. package/references/sessionlog/LICENSE +21 -0
  998. package/references/sessionlog/README.md +453 -0
  999. package/references/sessionlog/eslint.config.js +58 -0
  1000. package/references/sessionlog/package-lock.json +3672 -0
  1001. package/references/sessionlog/package.json +65 -0
  1002. package/references/sessionlog/src/__tests__/agent-hooks.test.ts +570 -0
  1003. package/references/sessionlog/src/__tests__/agent-registry.test.ts +127 -0
  1004. package/references/sessionlog/src/__tests__/claude-code-hooks.test.ts +225 -0
  1005. package/references/sessionlog/src/__tests__/claude-generator.test.ts +46 -0
  1006. package/references/sessionlog/src/__tests__/commit-msg.test.ts +86 -0
  1007. package/references/sessionlog/src/__tests__/cursor-agent.test.ts +224 -0
  1008. package/references/sessionlog/src/__tests__/e2e-live.test.ts +890 -0
  1009. package/references/sessionlog/src/__tests__/event-log.test.ts +183 -0
  1010. package/references/sessionlog/src/__tests__/flush-sentinel.test.ts +105 -0
  1011. package/references/sessionlog/src/__tests__/gemini-agent.test.ts +375 -0
  1012. package/references/sessionlog/src/__tests__/git-hooks.test.ts +78 -0
  1013. package/references/sessionlog/src/__tests__/hook-managers.test.ts +121 -0
  1014. package/references/sessionlog/src/__tests__/lifecycle-tasks.test.ts +759 -0
  1015. package/references/sessionlog/src/__tests__/opencode-agent.test.ts +338 -0
  1016. package/references/sessionlog/src/__tests__/redaction.test.ts +136 -0
  1017. package/references/sessionlog/src/__tests__/session-repo.test.ts +353 -0
  1018. package/references/sessionlog/src/__tests__/session-store.test.ts +166 -0
  1019. package/references/sessionlog/src/__tests__/setup-ccweb.test.ts +466 -0
  1020. package/references/sessionlog/src/__tests__/skill-live.test.ts +461 -0
  1021. package/references/sessionlog/src/__tests__/summarize.test.ts +348 -0
  1022. package/references/sessionlog/src/__tests__/task-plan-e2e.test.ts +610 -0
  1023. package/references/sessionlog/src/__tests__/task-plan-live.test.ts +632 -0
  1024. package/references/sessionlog/src/__tests__/transcript-timestamp.test.ts +121 -0
  1025. package/references/sessionlog/src/__tests__/types.test.ts +166 -0
  1026. package/references/sessionlog/src/__tests__/utils.test.ts +333 -0
  1027. package/references/sessionlog/src/__tests__/validation.test.ts +103 -0
  1028. package/references/sessionlog/src/__tests__/worktree.test.ts +57 -0
  1029. package/references/sessionlog/src/agent/registry.ts +143 -0
  1030. package/references/sessionlog/src/agent/session-types.ts +113 -0
  1031. package/references/sessionlog/src/agent/types.ts +220 -0
  1032. package/references/sessionlog/src/cli.ts +597 -0
  1033. package/references/sessionlog/src/commands/clean.ts +133 -0
  1034. package/references/sessionlog/src/commands/disable.ts +84 -0
  1035. package/references/sessionlog/src/commands/doctor.ts +145 -0
  1036. package/references/sessionlog/src/commands/enable.ts +202 -0
  1037. package/references/sessionlog/src/commands/explain.ts +261 -0
  1038. package/references/sessionlog/src/commands/reset.ts +105 -0
  1039. package/references/sessionlog/src/commands/resume.ts +180 -0
  1040. package/references/sessionlog/src/commands/rewind.ts +195 -0
  1041. package/references/sessionlog/src/commands/setup-ccweb.ts +275 -0
  1042. package/references/sessionlog/src/commands/status.ts +172 -0
  1043. package/references/sessionlog/src/config.ts +165 -0
  1044. package/references/sessionlog/src/events/event-log.ts +126 -0
  1045. package/references/sessionlog/src/git-operations.ts +558 -0
  1046. package/references/sessionlog/src/hooks/git-hooks.ts +165 -0
  1047. package/references/sessionlog/src/hooks/lifecycle.ts +391 -0
  1048. package/references/sessionlog/src/index.ts +650 -0
  1049. package/references/sessionlog/src/security/redaction.ts +283 -0
  1050. package/references/sessionlog/src/session/state-machine.ts +452 -0
  1051. package/references/sessionlog/src/store/checkpoint-store.ts +509 -0
  1052. package/references/sessionlog/src/store/native-store.ts +173 -0
  1053. package/references/sessionlog/src/store/provider-types.ts +99 -0
  1054. package/references/sessionlog/src/store/session-store.ts +266 -0
  1055. package/references/sessionlog/src/strategy/attribution.ts +296 -0
  1056. package/references/sessionlog/src/strategy/common.ts +207 -0
  1057. package/references/sessionlog/src/strategy/content-overlap.ts +228 -0
  1058. package/references/sessionlog/src/strategy/manual-commit.ts +988 -0
  1059. package/references/sessionlog/src/strategy/types.ts +279 -0
  1060. package/references/sessionlog/src/summarize/claude-generator.ts +115 -0
  1061. package/references/sessionlog/src/summarize/summarize.ts +432 -0
  1062. package/references/sessionlog/src/types.ts +508 -0
  1063. package/references/sessionlog/src/utils/chunk-files.ts +49 -0
  1064. package/references/sessionlog/src/utils/commit-message.ts +65 -0
  1065. package/references/sessionlog/src/utils/detect-agent.ts +36 -0
  1066. package/references/sessionlog/src/utils/hook-managers.ts +125 -0
  1067. package/references/sessionlog/src/utils/ide-tags.ts +32 -0
  1068. package/references/sessionlog/src/utils/paths.ts +79 -0
  1069. package/references/sessionlog/src/utils/preview-rewind.ts +80 -0
  1070. package/references/sessionlog/src/utils/rewind-conflict.ts +121 -0
  1071. package/references/sessionlog/src/utils/shadow-branch.ts +109 -0
  1072. package/references/sessionlog/src/utils/string-utils.ts +46 -0
  1073. package/references/sessionlog/src/utils/todo-extract.ts +188 -0
  1074. package/references/sessionlog/src/utils/trailers.ts +187 -0
  1075. package/references/sessionlog/src/utils/transcript-parse.ts +177 -0
  1076. package/references/sessionlog/src/utils/transcript-timestamp.ts +59 -0
  1077. package/references/sessionlog/src/utils/tree-ops.ts +219 -0
  1078. package/references/sessionlog/src/utils/tty.ts +72 -0
  1079. package/references/sessionlog/src/utils/validation.ts +65 -0
  1080. package/references/sessionlog/src/utils/worktree.ts +58 -0
  1081. package/references/sessionlog/src/wire-types.ts +59 -0
  1082. package/references/sessionlog/templates/setup-env.sh +153 -0
  1083. package/references/sessionlog/tsconfig.json +18 -0
  1084. package/references/sessionlog/vitest.config.ts +12 -0
  1085. package/references/swarmkit/LICENSE +21 -0
  1086. package/references/swarmkit/README.md +130 -0
  1087. package/references/swarmkit/docs/design.md +453 -0
  1088. package/references/swarmkit/docs/package-setup-reference.md +519 -0
  1089. package/references/swarmkit/package-lock.json +1938 -0
  1090. package/references/swarmkit/package.json +43 -0
  1091. package/references/swarmkit/src/cli.ts +41 -0
  1092. package/references/swarmkit/src/commands/add.ts +126 -0
  1093. package/references/swarmkit/src/commands/doctor.ts +117 -0
  1094. package/references/swarmkit/src/commands/hive.ts +279 -0
  1095. package/references/swarmkit/src/commands/init/phases/configure.ts +96 -0
  1096. package/references/swarmkit/src/commands/init/phases/global-setup.ts +102 -0
  1097. package/references/swarmkit/src/commands/init/phases/packages.ts +44 -0
  1098. package/references/swarmkit/src/commands/init/phases/project.ts +81 -0
  1099. package/references/swarmkit/src/commands/init/phases/use-case.ts +47 -0
  1100. package/references/swarmkit/src/commands/init/state.test.ts +23 -0
  1101. package/references/swarmkit/src/commands/init/state.ts +22 -0
  1102. package/references/swarmkit/src/commands/init/wizard.ts +160 -0
  1103. package/references/swarmkit/src/commands/init.ts +17 -0
  1104. package/references/swarmkit/src/commands/login.ts +106 -0
  1105. package/references/swarmkit/src/commands/logout.ts +22 -0
  1106. package/references/swarmkit/src/commands/remove.ts +72 -0
  1107. package/references/swarmkit/src/commands/status.ts +101 -0
  1108. package/references/swarmkit/src/commands/update.ts +62 -0
  1109. package/references/swarmkit/src/commands/whoami.ts +41 -0
  1110. package/references/swarmkit/src/config/global.test.ts +258 -0
  1111. package/references/swarmkit/src/config/global.ts +141 -0
  1112. package/references/swarmkit/src/config/keys.test.ts +109 -0
  1113. package/references/swarmkit/src/config/keys.ts +49 -0
  1114. package/references/swarmkit/src/doctor/checks.test.ts +366 -0
  1115. package/references/swarmkit/src/doctor/checks.ts +292 -0
  1116. package/references/swarmkit/src/doctor/types.ts +33 -0
  1117. package/references/swarmkit/src/hub/auth-flow.test.ts +127 -0
  1118. package/references/swarmkit/src/hub/auth-flow.ts +144 -0
  1119. package/references/swarmkit/src/hub/client.test.ts +224 -0
  1120. package/references/swarmkit/src/hub/client.ts +185 -0
  1121. package/references/swarmkit/src/hub/credentials.test.ts +132 -0
  1122. package/references/swarmkit/src/hub/credentials.ts +51 -0
  1123. package/references/swarmkit/src/index.ts +116 -0
  1124. package/references/swarmkit/src/packages/installer.test.ts +365 -0
  1125. package/references/swarmkit/src/packages/installer.ts +206 -0
  1126. package/references/swarmkit/src/packages/plugin.test.ts +141 -0
  1127. package/references/swarmkit/src/packages/plugin.ts +46 -0
  1128. package/references/swarmkit/src/packages/registry.test.ts +235 -0
  1129. package/references/swarmkit/src/packages/registry.ts +209 -0
  1130. package/references/swarmkit/src/packages/setup.test.ts +1349 -0
  1131. package/references/swarmkit/src/packages/setup.ts +635 -0
  1132. package/references/swarmkit/src/utils/ui.test.ts +115 -0
  1133. package/references/swarmkit/src/utils/ui.ts +62 -0
  1134. package/references/swarmkit/tsconfig.json +17 -0
  1135. package/references/swarmkit/vitest.config.ts +9 -0
  1136. package/scripts/bootstrap.mjs +26 -0
  1137. package/scripts/generate-agents.mjs +32 -0
  1138. package/scripts/map-hook.mjs +187 -0
  1139. package/scripts/map-sidecar.mjs +115 -0
  1140. package/scripts/sync-version.mjs +22 -0
  1141. package/scripts/team-loader.mjs +87 -0
  1142. package/settings.json +13 -0
  1143. package/skills/swarm/SKILL.md +71 -0
  1144. package/src/__tests__/agent-generator.test.mjs +299 -0
  1145. package/src/__tests__/bootstrap.test.mjs +353 -0
  1146. package/src/__tests__/config.test.mjs +286 -0
  1147. package/src/__tests__/context-output.test.mjs +138 -0
  1148. package/src/__tests__/helpers.mjs +136 -0
  1149. package/src/__tests__/inbox.test.mjs +174 -0
  1150. package/src/__tests__/index.test.mjs +90 -0
  1151. package/src/__tests__/map-connection.test.mjs +134 -0
  1152. package/src/__tests__/map-events.test.mjs +325 -0
  1153. package/src/__tests__/paths.test.mjs +70 -0
  1154. package/src/__tests__/roles.test.mjs +112 -0
  1155. package/src/__tests__/sessionlog.test.mjs +139 -0
  1156. package/src/__tests__/sidecar-client.test.mjs +73 -0
  1157. package/src/__tests__/sidecar-server.test.mjs +318 -0
  1158. package/src/__tests__/template.test.mjs +109 -0
  1159. package/src/agent-generator.mjs +325 -0
  1160. package/src/bootstrap.mjs +237 -0
  1161. package/src/config.mjs +86 -0
  1162. package/src/context-output.mjs +150 -0
  1163. package/src/inbox.mjs +105 -0
  1164. package/src/index.mjs +98 -0
  1165. package/src/map-connection.mjs +121 -0
  1166. package/src/map-events.mjs +175 -0
  1167. package/src/paths.mjs +74 -0
  1168. package/src/roles.mjs +72 -0
  1169. package/src/sessionlog.mjs +161 -0
  1170. package/src/sidecar-client.mjs +131 -0
  1171. package/src/sidecar-server.mjs +247 -0
  1172. package/src/swarmkit-resolver.mjs +111 -0
  1173. package/src/template.mjs +163 -0
  1174. package/vitest.config.mjs +17 -0
  1175. package/dist/index.d.ts +0 -1
  1176. package/dist/index.js +0 -6
@@ -0,0 +1,689 @@
1
+ # OpenTasks Design Document
2
+
3
+ **See also:** [SCHEMA.md](./SCHEMA.md) (data model) · [ARCHITECTURE.md](./ARCHITECTURE.md) (hierarchy, daemon) · [PERSISTENCE.md](./PERSISTENCE.md) (storage) · [PROVIDERS.md](./PROVIDERS.md) (integrations) · [INTERFACE.md](./INTERFACE.md) (API)
4
+
5
+ ---
6
+
7
+ ## Vision
8
+
9
+ OpenTasks is a **graph connector** that links heterogeneous task and context systems:
10
+
11
+ 1. **A graph layer over existing tools** — connects Claude Tasks, Beads, Taskmaster, and other systems without replacing them
12
+ 2. **Cross-system relationships** — edges that span system boundaries (e.g., Claude subtask blocks Beads issue)
13
+ 3. **Unified queries** — find blockers, ready items, and dependencies across all connected systems
14
+ 4. **Optional native storage** — lightweight context/tasks for simple use cases when external providers aren't needed
15
+
16
+ **What OpenTasks is NOT:**
17
+ - Not a replacement for Claude's built-in tasks (use `TaskCreate`/`TaskUpdate` directly)
18
+ - Not a replacement for Beads (use `bd` CLI directly)
19
+ - Not a unified CRUD API (each system keeps its own interface)
20
+
21
+ The goal is to provide the **relationship layer** that existing tools lack — the ability to say "this Claude task implements that Beads issue which references that Jira ticket."
22
+
23
+ ```
24
+ ┌─────────────────────────────────────────────────────────────────┐
25
+ │ Agents / UIs │
26
+ └─────────────────────────────────────────────────────────────────┘
27
+ │ │ │
28
+ ▼ ▼ ▼
29
+ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
30
+ │ Claude Tasks │ │ Beads │ │ Taskmaster │
31
+ │ TaskCreate() │ │ bd new/show │ │ tm task │
32
+ │ TaskUpdate() │ │ bd update │ │ tm prd │
33
+ └────────┬────────┘ └────────┬────────┘ └────────┬────────┘
34
+ │ │ │
35
+ └────────────────────┼────────────────────┘
36
+
37
+
38
+ ┌─────────────────────────────────────────────────────────────────┐
39
+ │ OpenTasks Graph Layer │
40
+ │ │
41
+ │ ┌──────────────────────────────────────────────────────────┐ │
42
+ │ │ Edges │ │
43
+ │ │ claude://t-abc ──implements──▶ beads://./bd-x7k9 │ │
44
+ │ │ beads://./bd-x7k9 ──blocks──▶ jira://PROJ-123 │ │
45
+ │ │ taskmaster://./prd ◀──discovered-from── beads://./bd-y │ │
46
+ │ └──────────────────────────────────────────────────────────┘ │
47
+ │ │
48
+ │ 3 Tools: link() | query() | annotate() │
49
+ │ │
50
+ │ Optional: Native context/tasks for lightweight use │
51
+ └─────────────────────────────────────────────────────────────────┘
52
+ ```
53
+
54
+ ---
55
+
56
+ ## Design Motivations
57
+
58
+ ### Why a graph connector?
59
+
60
+ Existing tools are good at what they do:
61
+
62
+ **Beads** — Distributed issue tracker for AI agent swarms (100+ fields, 19 dependency types, sophisticated)
63
+
64
+ **Claude's Tasks** — Simple session-scoped work tracking (TaskCreate, TaskUpdate, TaskList)
65
+
66
+ **Taskmaster** — PRD management and task breakdown
67
+
68
+ **Jira/Linear/GitHub** — Team collaboration and project management
69
+
70
+ **The problem**: These systems don't talk to each other. You can't say:
71
+ - "This Claude subtask implements that Beads issue"
72
+ - "This Beads issue is blocked by that Jira ticket"
73
+ - "What's ready to work on across all my systems?"
74
+
75
+ **OpenTasks solves this** by providing:
76
+ - **Cross-system edges** — relationships that span system boundaries
77
+ - **Unified queries** — find blockers/ready items across all connected systems
78
+ - **Feedback routing** — comments that reference nodes in different systems
79
+ - **Optional native storage** — simple context/issues when you don't need a full-featured tracker
80
+
81
+ ### Core Principles
82
+
83
+ 1. **Graph-first** — edges/relationships are the primary value; node storage is secondary
84
+ 2. **Non-invasive** — works alongside existing tools without replacing them
85
+ 3. **Progressive enhancement** — start with edges only, add native nodes when needed
86
+ 4. **Provider-agnostic** — any system with a URI can participate in the graph
87
+ 5. **Git-friendly** — JSONL storage designed for version control
88
+ 6. **Designed for multi-agent** — handles concurrent access, branches, worktrees
89
+
90
+ ### File Structure (Hybrid Model)
91
+
92
+ ```
93
+ .opentasks/
94
+ ├── graph.jsonl # Local nodes + edges + external refs (append-only, source of truth)
95
+ ├── tombstones.jsonl # Soft deletes (configurable gitignore)
96
+ ├── cache.db # SQLite in WAL mode (queries, external cache) — gitignored
97
+ ├── config.json # Configuration, connections, role, redirects
98
+ ├── write.lock # Advisory lock for JSONL writes — gitignored
99
+ ├── context/ # Optional: markdown expansion
100
+ └── tasks/ # Optional: markdown expansion
101
+
102
+ .git/opentasks/ # Shared across all worktrees (Phase 3)
103
+ ├── daemon.sock # Single daemon socket
104
+ ├── daemon.lock # PID lock
105
+ └── worktrees.json # Registered worktrees
106
+ ```
107
+
108
+ See [PERSISTENCE.md](./PERSISTENCE.md) for storage details and [plans/CORE-ARCHITECTURE.md](./plans/CORE-ARCHITECTURE.md) for cross-location architecture.
109
+
110
+ ---
111
+
112
+ ## Core Concepts
113
+
114
+ ### Entity Model
115
+
116
+ OpenTasks has two primary local node types:
117
+
118
+ #### Context (Intent/Requirements)
119
+ Captures user intent, requirements, and context that should persist. Derived from sudocode's context concept.
120
+
121
+ #### Tasks (Actionable Work)
122
+ Trackable units of work with status. The primary entity for task tracking.
123
+
124
+ #### External Nodes
125
+ References to entities in external systems (Jira, Linear, GitHub, beads, etc.) that can participate in the graph.
126
+
127
+ ### Relationships (Edges)
128
+
129
+ Edges connect nodes and can target:
130
+ - Local node IDs (`t-x7k9`, `c-a2b3`)
131
+ - External URIs (`jira://PROJ-123`, `bd://bd-x7k9`, `gh://owner/repo#42`)
132
+
133
+ Core relationship types (minimal set, extensible):
134
+ - `blocks` — dependency blocking
135
+ - `implements` — task implements a context
136
+ - `references` — general reference
137
+ - `related` — loose association
138
+
139
+ Additional types can be added by integrations or users.
140
+
141
+ ---
142
+
143
+ ## External References
144
+
145
+ ### Hybrid Phantom Node Model
146
+
147
+ External references use a progressive materialization approach:
148
+
149
+ ```
150
+ Stage 1: URI Reference (Edge Target)
151
+ ┌─────────────┐ ┌─────────────────────┐
152
+ │ Local Task │─────▶│ "jira://PROJ-123" │
153
+ └─────────────┘ └─────────────────────┘
154
+ (just a URI string)
155
+
156
+ Stage 2: Phantom Node (Lazy Creation)
157
+ ┌─────────────┐ ┌─────────────────────┐
158
+ │ Local Task │─────▶│ Phantom Node │
159
+ └─────────────┘ │ id: jira://PROJ-123 │
160
+ │ materialized: false │
161
+ └─────────────────────┘
162
+ (exists in graph, not yet resolved)
163
+
164
+ Stage 3: Materialized Node (On-Demand Fetch)
165
+ ┌─────────────┐ ┌─────────────────────┐
166
+ │ Local Task │─────▶│ Materialized Node │
167
+ └─────────────┘ │ id: jira://PROJ-123 │
168
+ │ title: "Fix bug..." │
169
+ │ status: "In Progress"│
170
+ │ cached_at: ... │
171
+ │ materialized: true │
172
+ └─────────────────────┘
173
+ (fetched from integration)
174
+ ```
175
+
176
+ ### Benefits
177
+
178
+ - **Lightweight by default** — edges can just be URIs, no overhead
179
+ - **Progressive enhancement** — materialize only when needed
180
+ - **Offline capable** — cached materialized nodes work without network
181
+ - **Clear boundaries** — explicit distinction between local and external
182
+
183
+ ### Materialization Triggers
184
+
185
+ Nodes materialize when:
186
+ - Explicitly requested (user/agent asks for details)
187
+ - Traversing the graph and node data is needed
188
+ - Sync operation pulls from external system
189
+ - Cache refresh on configured schedule
190
+
191
+ ---
192
+
193
+ ## Integration Model
194
+
195
+ OpenTasks provides flexible hooks rather than forcing a uniform integration pattern. Different backends can integrate in the way that makes most sense for them.
196
+
197
+ ### Integration Interface
198
+
199
+ ```typescript
200
+ interface Integration {
201
+ name: string
202
+
203
+ // Required: identify what this integration handles
204
+ handles(ref: string | Node): boolean
205
+
206
+ // Optional: choose integration style(s)
207
+ asProvider?: Provider // URI-based capability dispatch
208
+ asAdapter?: Adapter // Full interface translation
209
+ asSyncTarget?: SyncTarget // Bidirectional sync
210
+
211
+ // Extension point
212
+ extensions?: Record<string, unknown>
213
+ }
214
+ ```
215
+
216
+ ### Pattern: Provider (URI-Based Dispatch)
217
+
218
+ Providers declare capabilities and handle URI schemes. Good for read-heavy integrations.
219
+
220
+ ```typescript
221
+ interface Provider {
222
+ name: string
223
+ schemes: string[] // ["jira://", "linear://"]
224
+ capabilities: Capability[] // What operations supported
225
+
226
+ resolve?(uri: string): Promise<Node>
227
+ search?(query: string): Promise<Node[]>
228
+ create?(node: Node): Promise<string>
229
+ update?(uri: string, updates: Partial<Node>): Promise<void>
230
+ }
231
+ ```
232
+
233
+ **Use when**: Integration is primarily about resolving external references on-demand.
234
+
235
+ **Example**: Jira provider that resolves `jira://PROJ-123` URIs.
236
+
237
+ ### Pattern: Adapter (Interface Translation)
238
+
239
+ Adapters implement opentasks' full CRUD interface, translating to backend operations.
240
+
241
+ ```typescript
242
+ interface Adapter {
243
+ createIssue(node: Node): Promise<string>
244
+ updateIssue(id: string, updates: Partial<Node>): Promise<void>
245
+ getIssue(id: string): Promise<Node>
246
+ query(filter: Filter): Promise<Node[]>
247
+ watch?(callback: (event: Event) => void): void
248
+ }
249
+ ```
250
+
251
+ **Use when**: Integration should fully delegate storage/operations to backend.
252
+
253
+ **Example**: Beads adapter where all issue operations go through `bd` CLI.
254
+
255
+ ### Pattern: Sync Target (Bidirectional Sync)
256
+
257
+ Sync targets enable bidirectional synchronization with external systems.
258
+
259
+ ```typescript
260
+ interface SyncTarget {
261
+ name: string
262
+ direction: 'push' | 'pull' | 'bidirectional'
263
+
264
+ mapToExternal(node: Node): ExternalFormat
265
+ mapFromExternal(external: ExternalFormat): Node
266
+
267
+ push(nodes: Node[]): Promise<SyncResult>
268
+ pull(): Promise<Node[]>
269
+
270
+ conflictStrategy: 'local-wins' | 'remote-wins' | 'manual' | 'merge'
271
+ }
272
+ ```
273
+
274
+ **Use when**: Both systems should stay in sync, either direction.
275
+
276
+ **Example**: Sudocode sync that keeps opentasks and sudocode issues aligned.
277
+
278
+ ### Integration Examples
279
+
280
+ | System | Likely Pattern | Rationale |
281
+ |--------|---------------|-----------|
282
+ | Beads | Provider + Adapter | Resolve `bd://` URIs, optionally delegate full storage |
283
+ | Jira | Provider | Read-heavy, resolve on-demand, maybe push updates |
284
+ | Linear | Provider | Similar to Jira |
285
+ | GitHub Issues | Provider | Resolve `gh://` URIs |
286
+ | Sudocode | Sync Target | Bidirectional sync with existing sudocode storage |
287
+
288
+ ---
289
+
290
+ ## Storage Model
291
+
292
+ ### Hybrid: Owned Local + Delegated External
293
+
294
+ OpenTasks owns storage for:
295
+ - Local nodes (context, tasks)
296
+ - All edges/relationships (including those targeting external URIs)
297
+ - Cached external nodes (materialized phantoms)
298
+ - Integration configuration
299
+
300
+ External systems own their own data; opentasks caches/references it.
301
+
302
+ ```
303
+ .opentasks/
304
+ ├── graph.jsonl # Local nodes + edges (source of truth)
305
+ ├── cache.db # SQLite for queries + cached external nodes
306
+ └── config.json # Integration configurations
307
+ ```
308
+
309
+ ### Storage Layers
310
+
311
+ ```
312
+ ┌─────────────────────────────────────────────────────────────────┐
313
+ │ Application Layer │
314
+ │ (queries, mutations, graph ops) │
315
+ └─────────────────────────────────────────────────────────────────┘
316
+
317
+ ┌─────────────────────────────────────────────────────────────────┐
318
+ │ Query Layer (SQLite) │
319
+ │ - Fast queries on local + cached nodes │
320
+ │ - Indexes on status, priority, relationships │
321
+ │ - Gitignored, rebuilt from JSONL │
322
+ └─────────────────────────────────────────────────────────────────┘
323
+
324
+ ┌─────────────────────────────────────────────────────────────────┐
325
+ │ Persistence Layer (JSONL) │
326
+ │ - Source of truth for local data │
327
+ │ - Git-tracked, merge-friendly │
328
+ │ - Append-optimized, compact on demand │
329
+ └─────────────────────────────────────────────────────────────────┘
330
+
331
+ ┌─────────────────────────────────────────────────────────────────┐
332
+ │ Integration Layer │
333
+ │ - Delegated storage for configured backends │
334
+ │ - Cache population for external nodes │
335
+ │ - Sync operations │
336
+ └─────────────────────────────────────────────────────────────────┘
337
+ ```
338
+
339
+ ### Why This Approach
340
+
341
+ | Requirement | How Addressed |
342
+ |-------------|---------------|
343
+ | Works standalone | JSONL + SQLite provide full functionality with no integrations |
344
+ | Git-friendly | JSONL is merge-friendly, SQLite is gitignored |
345
+ | Fast queries | SQLite cache enables complex queries |
346
+ | External refs | Edges can target URIs; nodes materialize on demand |
347
+ | Offline capable | Cached external nodes available without network |
348
+ | Delegated storage | Adapters can route operations to external backends |
349
+
350
+ ### Cache Considerations
351
+
352
+ For materialized external nodes:
353
+ - **TTL-based expiry** — configurable per integration
354
+ - **Stale-while-revalidate** — serve cached, refresh in background
355
+ - **Manual refresh** — explicit invalidation when needed
356
+ - **Sync-driven** — refresh during pull operations
357
+
358
+ Cache invalidation risks are acknowledged; design should favor explicit refresh over implicit staleness.
359
+
360
+ ---
361
+
362
+ ## Location Model
363
+
364
+ OpenTasks supports flexible deployment across different location contexts while maintaining a consistent graph model.
365
+
366
+ ### Location Types
367
+
368
+ ```
369
+ ┌─────────────────────────────────────────────────────────────────┐
370
+ │ Location Hierarchy │
371
+ │ │
372
+ │ ┌─────────────────────────────────────────────────────────┐ │
373
+ │ │ User Global (~/.opentasks/) │ │
374
+ │ │ - Personal tasks, cross-project work │ │
375
+ │ │ - Default fallback location │ │
376
+ │ └─────────────────────────────────────────────────────────┘ │
377
+ │ ↓ inherits │
378
+ │ ┌─────────────────────────────────────────────────────────┐ │
379
+ │ │ Workspace (~/<workspace>/.opentasks/) │ │
380
+ │ │ - Team/project-level coordination │ │
381
+ │ │ - Shared across related repos │ │
382
+ │ └─────────────────────────────────────────────────────────┘ │
383
+ │ ↓ inherits │
384
+ │ ┌─────────────────────────────────────────────────────────┐ │
385
+ │ │ Repo-Local (<repo>/.opentasks/) │ │
386
+ │ │ - Repository-specific work │ │
387
+ │ │ - Git-tracked with the repo │ │
388
+ │ └─────────────────────────────────────────────────────────┘ │
389
+ │ │
390
+ └─────────────────────────────────────────────────────────────────┘
391
+ ```
392
+
393
+ ### Scenarios
394
+
395
+ | Scenario | Location | Git Integration | Use Case |
396
+ |----------|----------|-----------------|----------|
397
+ | **Single repo** | `<repo>/.opentasks/` | Tracked in repo | Typical project work |
398
+ | **Multi-repo workspace** | `<workspace>/.opentasks/` | Own repo or untracked | Coordinating across microservices |
399
+ | **Personal/global** | `~/.opentasks/` | Optional | Cross-project tasks, scratch work |
400
+ | **Standalone** | Any directory | None (degraded) | Non-code projects, quick planning |
401
+
402
+ ### Cross-Location References
403
+
404
+ Nodes can reference other nodes across locations via URIs:
405
+
406
+ ```typescript
407
+ // URI scheme encodes location
408
+ "opentasks://./t-x7k9" // same location (relative)
409
+ "opentasks://~/t-a2b3" // user global
410
+ "opentasks://../other-repo/c-c4d5" // relative path to another repo
411
+ "opentasks:///absolute/path/t-e6f7" // absolute path
412
+ "opentasks://github.com/org/repo/t-g8h9" // remote repository
413
+ ```
414
+
415
+ ### Remote Repositories
416
+
417
+ Remote git repos present an interesting design question: are they **external integrations** (like Jira) or **virtual locations** (like local paths)?
418
+
419
+ **As External Integration:**
420
+ ```
421
+ - Treated like jira://, linear://, etc.
422
+ - Provider resolves remote references
423
+ - Fetch-on-demand, cache locally
424
+ - Clear boundary: local vs. remote
425
+ ```
426
+
427
+ **As Virtual Location:**
428
+ ```
429
+ - Part of the location hierarchy
430
+ - Can clone/sync like a local location
431
+ - Participates in redirect rules (see Git Topology)
432
+ - Blurred boundary: just another location
433
+ ```
434
+
435
+ **Hybrid Approach (Recommended):**
436
+ ```
437
+ Remote repos are locations that use provider-like resolution:
438
+ - URIs identify them as locations (opentasks://github.com/...)
439
+ - Resolution happens via git clone/fetch (not HTTP API)
440
+ - Can be configured as redirect targets
441
+ - Cached locally like materialized external nodes
442
+ ```
443
+
444
+ ### Standalone Mode (No Git)
445
+
446
+ When no git repository is present:
447
+
448
+ | Capability | Behavior |
449
+ |------------|----------|
450
+ | Persistence | JSONL still works |
451
+ | Queries | SQLite cache still works |
452
+ | History | No automatic versioning |
453
+ | Sync | Manual export/import only |
454
+ | Merge | No automatic conflict resolution |
455
+ | Cross-location refs | Work, but no git-based sync |
456
+
457
+ **Future consideration:** Could offer `opentasks init --git` to bootstrap minimal git repo for standalone directories that want versioning.
458
+
459
+ ---
460
+
461
+ ## Git Topology
462
+
463
+ OpenTasks is designed to handle complex git topologies including branches, worktrees, and distributed agent coordination. The revised design uses a **single daemon per git repo**, **explicit worktree registration**, **append-only JSONL writes**, and a **custom merge driver** to solve concurrency and merge challenges.
464
+
465
+ See [plans/CORE-ARCHITECTURE.md](./plans/CORE-ARCHITECTURE.md) for the full cross-location architecture.
466
+
467
+ ### The Challenge
468
+
469
+ ```
470
+ repo/
471
+ ├── .git/
472
+ │ └── opentasks/ ← shared state (daemon, worktree registry)
473
+ │ ├── daemon.sock
474
+ │ └── worktrees.json
475
+ ├── main-worktree/
476
+ │ ├── .opentasks/
477
+ │ │ └── graph.jsonl ← branch: main (manager)
478
+ │ └── src/
479
+ ├── feature-a-worktree/
480
+ │ ├── .opentasks/
481
+ │ │ └── config.json ← role: worker, redirect → manager
482
+ │ └── src/
483
+ └── feature-b-worktree/
484
+ ├── .opentasks/
485
+ │ └── config.json ← role: worker, redirect → manager
486
+ └── src/
487
+ ```
488
+
489
+ **Problems solved:**
490
+ - Each worktree has its own view of the graph (from its branch) → **redirect rules route to manager**
491
+ - Parallel agents creating issues → **hash-based IDs prevent collisions**
492
+ - Status updates in parallel → **append-only writes + custom merge driver**
493
+ - Orchestrator needs visibility across all worktrees → **single daemon manages all locations**
494
+
495
+ ### How Worktrees Work
496
+
497
+ 1. **Explicit registration** — `opentasks worktree setup` creates and configures worker worktrees
498
+ 2. **Role-based routing** — workers redirect reads/writes to manager via config (not agent identity)
499
+ 3. **Single daemon** — one process at `.git/opentasks/daemon.sock` serves all worktrees
500
+ 4. **Provider-based queries** — connected locations register as providers; `ready()` resolves cross-location blockers
501
+
502
+ ```
503
+ ┌─────────────────────────────────────────────────────────────────┐
504
+ │ Single Daemon (.git/opentasks/daemon.sock) │
505
+ │ - Manages all registered worktrees │
506
+ │ - Serializes writes │
507
+ │ - Cross-location queries are in-process │
508
+ └─────────────────────────────────────────────────────────────────┘
509
+ ↑ ↑ ↑
510
+ main-worktree feature-a feature-b
511
+ (role: manager) (role: worker) (role: worker)
512
+ ```
513
+
514
+ ### Redirect Rules (Role-Based)
515
+
516
+ Redirects are configured by the orchestrator at worktree setup time. Rules match on **role** and **branch**, not agent identity:
517
+
518
+ ```json
519
+ {
520
+ "role": "worker",
521
+ "redirects": [
522
+ {
523
+ "operations": ["read", "write"],
524
+ "pattern": "*",
525
+ "target": "opentasks://k7m2x9p4/",
526
+ "priority": 100,
527
+ "fallback": "error",
528
+ "when": { "role": "worker" }
529
+ }
530
+ ]
531
+ }
532
+ ```
533
+
534
+ Rule evaluation: sorted by priority (ascending), first match wins. Max redirect depth: 3 hops.
535
+
536
+ ### Merge Safety
537
+
538
+ Concurrent work across branches is handled by two complementary mechanisms:
539
+
540
+ 1. **Append-only JSONL writes** — updates append new lines with the same ID and newer `updated_at`. Git merges appends trivially (no line conflicts).
541
+
542
+ 2. **Custom merge driver** — registered via `.gitattributes`, deduplicates by ID (keeps latest `updated_at`), performs field-level three-way merge for concurrent edits.
543
+
544
+ ```gitattributes
545
+ .opentasks/graph.jsonl merge=opentasks
546
+ ```
547
+
548
+ See [plans/PHASE-3.md](./plans/PHASE-3.md) for the full merge driver specification.
549
+
550
+ ### Coordination Patterns
551
+
552
+ #### Pattern 1: Optimistic Merge (Simple)
553
+
554
+ Each worktree works independently. Append-only writes + merge driver handle merging:
555
+
556
+ ```
557
+ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐
558
+ │ Worktree A │ │ Worktree B │ │ Worktree C │
559
+ │ (feature-a) │ │ (feature-b) │ │ (main) │
560
+ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘
561
+ │ │ │
562
+ │ create t-x1 │ create t-y2 │
563
+ │ update t-z3 │ update t-z3 │
564
+ │ │ │
565
+ └────────────────┬┴─────────────────┘
566
+ │ git merge + merge driver
567
+
568
+ ┌──────────────────┐
569
+ │ Merged graph │
570
+ │ t-x1, t-y2 │ ← new nodes: union
571
+ │ t-z3 │ ← conflict: field-level merge
572
+ └──────────────────┘
573
+ ```
574
+
575
+ **Best for:** Independent work streams, async collaboration.
576
+
577
+ #### Pattern 2: Redirect Hierarchy (Recommended for Agent Swarms)
578
+
579
+ Workers redirect to manager. Single daemon coordinates. Setup via `opentasks worktree setup`:
580
+
581
+ ```
582
+ ┌─────────────────────────────────────────────────────────────────┐
583
+ │ Manager Agent (main-worktree) │
584
+ │ .opentasks/ (authoritative) — role: manager │
585
+ │ - All context lives here │
586
+ │ - All tasks centrally managed │
587
+ │ - Single daemon handles all requests │
588
+ └─────────────────────────────────────────────────────────────────┘
589
+
590
+ ┌───────────────┼───────────────┐
591
+ │ │ │
592
+ ┌─────────────┴───┐ ┌────────┴────────┐ ┌────┴──────────────┐
593
+ │ Worker A │ │ Worker B │ │ Worker C │
594
+ │ (feature-a) │ │ (feature-b) │ │ (feature-c) │
595
+ │ role: worker │ │ role: worker │ │ role: worker │
596
+ │ redirect: mgr │ │ redirect: mgr │ │ redirect: mgr │
597
+ └─────────────────┘ └─────────────────┘ └───────────────────┘
598
+ ```
599
+
600
+ **Setup:**
601
+ ```bash
602
+ opentasks worktree setup ./feature-a --branch feature-a --role worker --redirect-to .
603
+ opentasks worktree setup ./feature-b --branch feature-b --role worker --redirect-to .
604
+ ```
605
+
606
+ ### Agent Coordination Primitives
607
+
608
+ OpenTasks provides basic advisory primitives for coordination:
609
+
610
+ ```typescript
611
+ interface Node {
612
+ // ... other fields
613
+
614
+ // Coordination hints (optional, advisory)
615
+ claimed_by?: string // agent ID that claimed this work
616
+ claimed_at?: string // when claimed
617
+ lock_until?: string // soft lock expiry (default: 30 min)
618
+ }
619
+ ```
620
+
621
+ With the single-daemon model, claims are atomic (in-process check-and-set). Expired claims auto-release.
622
+
623
+ **Why not more?** Beads has sophisticated gates, waiters, and dependency types. Those belong in the beads integration or application layer. OpenTasks provides the graph; coordination is built on top.
624
+
625
+ ---
626
+
627
+ ## Key Decisions
628
+
629
+ | Decision | Choice | Rationale |
630
+ |----------|--------|-----------|
631
+ | Core identity | Graph connector, not task system | Existing tools (Claude Tasks, Beads) handle CRUD; OpenTasks adds relationships |
632
+ | Entity model | Edges + optional native nodes | Edges are primary; native context/tasks for lightweight use |
633
+ | External refs | Phantom nodes with materialization | Flexible, progressive, clear boundaries |
634
+ | Integration model | Provider URIs + native tools | Agents use each system's tools directly; OpenTasks links them |
635
+ | Storage | Edges always local, nodes via providers | OpenTasks owns graph structure, providers own content |
636
+ | Storage format | JSONL + SQLite | Git-friendly + fast queries |
637
+ | Location model | Single-location v1, multi-location v2 | Start simple, design for future cross-location |
638
+ | Agent coordination | Basic primitives (claims), rest in app layer | OpenTasks is graph, not orchestrator |
639
+
640
+ ---
641
+
642
+ ## Open Questions
643
+
644
+ ### Resolved
645
+ - [x] **Core identity**: Graph connector, not task replacement
646
+ - [x] **Daemon model**: Single daemon per git repo (Phase 3); no daemon for Phase 2 (WAL + file locks)
647
+ - [x] **3-tool interface**: Sufficient because providers have their own CRUD tools
648
+ - [x] **Feedback**: Native first, design for cross-system routing
649
+ - [x] **URI canonicalization**: Use deterministic location hashes (8-char base36) as primary URI identifier
650
+ - [x] **Global daemon registry**: Eliminated — socket at `.git/opentasks/daemon.sock` + explicit connections
651
+ - [x] **Location discovery**: One-time setup aid only, not runtime; explicit connections for queries
652
+ - [x] **Redirect conditions**: Role-based (set by orchestrator in config), not agent-identity-based
653
+ - [x] **Worktree detection**: Replaced with explicit registration via `opentasks worktree setup`
654
+ - [x] **JSONL merge conflicts**: Append-only writes + custom merge driver with field-level resolution
655
+
656
+ ### Active
657
+ - [ ] **Location hash fallback**: What to use when repo has no git remote? (absolute path hash?)
658
+ - [ ] **Merge driver edge deletions**: If one side deletes and other modifies, keep or delete?
659
+ - [ ] **Compaction frequency**: Triggers and scheduling for append-only JSONL growth
660
+
661
+ ### Implementation Details (Address During Build)
662
+ - [ ] Compaction strategy for append-only JSONL
663
+ - [ ] Cache TTL defaults per provider
664
+ - [ ] Provider authentication handling
665
+
666
+ ---
667
+
668
+ ## References
669
+
670
+ ### Sudocode
671
+ - Repository: `references/sudocode/`
672
+ - Key concepts: Context, Tasks, Relationships, Anchored Feedback
673
+ - Storage: JSONL + SQLite + Markdown (three-layer)
674
+
675
+ ### Beads
676
+ - Repository: `references/beads/`
677
+ - Documentation: https://github.com/steveyegge/beads
678
+ - Key concepts: Issues, Dependencies (19 types), Gates, Molecules, HOP
679
+ - Storage: JSONL + SQLite (two-layer)
680
+ - Relevant patterns:
681
+ - **Hash-based IDs**: Collision-resistant for multi-agent concurrent creates
682
+ - **Content hashing**: Deduplication on merge
683
+ - **Redirects**: Configurable read/write routing for worktree coordination
684
+ - **Dirty tracking**: Incremental export with debounce
685
+
686
+ ### Claude's Tasks
687
+ - Built-in to Claude Code CLI
688
+ - Simple status tracking (pending → in_progress → completed)
689
+ - Session-scoped, basic blocking relationships