squadfoundry 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (309) hide show
  1. package/AGENTS.md +76 -0
  2. package/PROJECT.md +79 -0
  3. package/README.md +255 -0
  4. package/dist/orchestrator/adapters/context/IContextAdapter.d.ts +65 -0
  5. package/dist/orchestrator/adapters/context/IContextAdapter.d.ts.map +1 -0
  6. package/dist/orchestrator/adapters/context/IContextAdapter.js +12 -0
  7. package/dist/orchestrator/adapters/context/IContextAdapter.js.map +1 -0
  8. package/dist/orchestrator/adapters/context/filesystem.context-adapter.d.ts +33 -0
  9. package/dist/orchestrator/adapters/context/filesystem.context-adapter.d.ts.map +1 -0
  10. package/dist/orchestrator/adapters/context/filesystem.context-adapter.js +179 -0
  11. package/dist/orchestrator/adapters/context/filesystem.context-adapter.js.map +1 -0
  12. package/dist/orchestrator/adapters/deploy/IDeployAdapter.d.ts +78 -0
  13. package/dist/orchestrator/adapters/deploy/IDeployAdapter.d.ts.map +1 -0
  14. package/dist/orchestrator/adapters/deploy/IDeployAdapter.js +14 -0
  15. package/dist/orchestrator/adapters/deploy/IDeployAdapter.js.map +1 -0
  16. package/dist/orchestrator/adapters/deploy/vercel.adapter.d.ts +31 -0
  17. package/dist/orchestrator/adapters/deploy/vercel.adapter.d.ts.map +1 -0
  18. package/dist/orchestrator/adapters/deploy/vercel.adapter.js +83 -0
  19. package/dist/orchestrator/adapters/deploy/vercel.adapter.js.map +1 -0
  20. package/dist/orchestrator/adapters/host/IHostAdapter.d.ts +89 -0
  21. package/dist/orchestrator/adapters/host/IHostAdapter.d.ts.map +1 -0
  22. package/dist/orchestrator/adapters/host/IHostAdapter.js +10 -0
  23. package/dist/orchestrator/adapters/host/IHostAdapter.js.map +1 -0
  24. package/dist/orchestrator/adapters/host/anthropic.adapter.d.ts +27 -0
  25. package/dist/orchestrator/adapters/host/anthropic.adapter.d.ts.map +1 -0
  26. package/dist/orchestrator/adapters/host/anthropic.adapter.js +118 -0
  27. package/dist/orchestrator/adapters/host/anthropic.adapter.js.map +1 -0
  28. package/dist/orchestrator/adapters/host/antigravity.adapter.d.ts +53 -0
  29. package/dist/orchestrator/adapters/host/antigravity.adapter.d.ts.map +1 -0
  30. package/dist/orchestrator/adapters/host/antigravity.adapter.js +148 -0
  31. package/dist/orchestrator/adapters/host/antigravity.adapter.js.map +1 -0
  32. package/dist/orchestrator/adapters/host/claude-code.adapter.d.ts +13 -0
  33. package/dist/orchestrator/adapters/host/claude-code.adapter.d.ts.map +1 -0
  34. package/dist/orchestrator/adapters/host/claude-code.adapter.js +27 -0
  35. package/dist/orchestrator/adapters/host/claude-code.adapter.js.map +1 -0
  36. package/dist/orchestrator/adapters/host/command-model-invoker.d.ts +8 -0
  37. package/dist/orchestrator/adapters/host/command-model-invoker.d.ts.map +1 -0
  38. package/dist/orchestrator/adapters/host/command-model-invoker.js +46 -0
  39. package/dist/orchestrator/adapters/host/command-model-invoker.js.map +1 -0
  40. package/dist/orchestrator/adapters/host/ide.adapter.d.ts +61 -0
  41. package/dist/orchestrator/adapters/host/ide.adapter.d.ts.map +1 -0
  42. package/dist/orchestrator/adapters/host/ide.adapter.js +173 -0
  43. package/dist/orchestrator/adapters/host/ide.adapter.js.map +1 -0
  44. package/dist/orchestrator/adapters/host/local.adapter.d.ts +26 -0
  45. package/dist/orchestrator/adapters/host/local.adapter.d.ts.map +1 -0
  46. package/dist/orchestrator/adapters/host/local.adapter.js +82 -0
  47. package/dist/orchestrator/adapters/host/local.adapter.js.map +1 -0
  48. package/dist/orchestrator/adapters/host/openai.adapter.d.ts +26 -0
  49. package/dist/orchestrator/adapters/host/openai.adapter.d.ts.map +1 -0
  50. package/dist/orchestrator/adapters/host/openai.adapter.js +77 -0
  51. package/dist/orchestrator/adapters/host/openai.adapter.js.map +1 -0
  52. package/dist/orchestrator/adapters/host/opencode.adapter.d.ts +13 -0
  53. package/dist/orchestrator/adapters/host/opencode.adapter.d.ts.map +1 -0
  54. package/dist/orchestrator/adapters/host/opencode.adapter.js +27 -0
  55. package/dist/orchestrator/adapters/host/opencode.adapter.js.map +1 -0
  56. package/dist/orchestrator/adapters/model/IModelAdapter.d.ts +68 -0
  57. package/dist/orchestrator/adapters/model/IModelAdapter.d.ts.map +1 -0
  58. package/dist/orchestrator/adapters/model/IModelAdapter.js +11 -0
  59. package/dist/orchestrator/adapters/model/IModelAdapter.js.map +1 -0
  60. package/dist/orchestrator/adapters/publishing/ISocialMediaAdapter.d.ts +93 -0
  61. package/dist/orchestrator/adapters/publishing/ISocialMediaAdapter.d.ts.map +1 -0
  62. package/dist/orchestrator/adapters/publishing/ISocialMediaAdapter.js +10 -0
  63. package/dist/orchestrator/adapters/publishing/ISocialMediaAdapter.js.map +1 -0
  64. package/dist/orchestrator/adapters/publishing/instagram.adapter.d.ts +34 -0
  65. package/dist/orchestrator/adapters/publishing/instagram.adapter.d.ts.map +1 -0
  66. package/dist/orchestrator/adapters/publishing/instagram.adapter.js +105 -0
  67. package/dist/orchestrator/adapters/publishing/instagram.adapter.js.map +1 -0
  68. package/dist/orchestrator/adapters/tools/IToolAdapter.d.ts +52 -0
  69. package/dist/orchestrator/adapters/tools/IToolAdapter.d.ts.map +1 -0
  70. package/dist/orchestrator/adapters/tools/IToolAdapter.js +10 -0
  71. package/dist/orchestrator/adapters/tools/IToolAdapter.js.map +1 -0
  72. package/dist/orchestrator/adapters/vcs/IVCSAdapter.d.ts +89 -0
  73. package/dist/orchestrator/adapters/vcs/IVCSAdapter.d.ts.map +1 -0
  74. package/dist/orchestrator/adapters/vcs/IVCSAdapter.js +11 -0
  75. package/dist/orchestrator/adapters/vcs/IVCSAdapter.js.map +1 -0
  76. package/dist/orchestrator/adapters/vcs/github.adapter.d.ts +36 -0
  77. package/dist/orchestrator/adapters/vcs/github.adapter.d.ts.map +1 -0
  78. package/dist/orchestrator/adapters/vcs/github.adapter.js +110 -0
  79. package/dist/orchestrator/adapters/vcs/github.adapter.js.map +1 -0
  80. package/dist/orchestrator/artifacts/artifact-store.d.ts +47 -0
  81. package/dist/orchestrator/artifacts/artifact-store.d.ts.map +1 -0
  82. package/dist/orchestrator/artifacts/artifact-store.js +135 -0
  83. package/dist/orchestrator/artifacts/artifact-store.js.map +1 -0
  84. package/dist/orchestrator/builder/domain-classifier.d.ts +24 -0
  85. package/dist/orchestrator/builder/domain-classifier.d.ts.map +1 -0
  86. package/dist/orchestrator/builder/domain-classifier.js +156 -0
  87. package/dist/orchestrator/builder/domain-classifier.js.map +1 -0
  88. package/dist/orchestrator/builder/interview-questions.d.ts +13 -0
  89. package/dist/orchestrator/builder/interview-questions.d.ts.map +1 -0
  90. package/dist/orchestrator/builder/interview-questions.js +127 -0
  91. package/dist/orchestrator/builder/interview-questions.js.map +1 -0
  92. package/dist/orchestrator/builder/squad-builder.d.ts +53 -0
  93. package/dist/orchestrator/builder/squad-builder.d.ts.map +1 -0
  94. package/dist/orchestrator/builder/squad-builder.js +107 -0
  95. package/dist/orchestrator/builder/squad-builder.js.map +1 -0
  96. package/dist/orchestrator/builder/squad-generator.d.ts +33 -0
  97. package/dist/orchestrator/builder/squad-generator.d.ts.map +1 -0
  98. package/dist/orchestrator/builder/squad-generator.js +360 -0
  99. package/dist/orchestrator/builder/squad-generator.js.map +1 -0
  100. package/dist/orchestrator/cli/index.d.ts +3 -0
  101. package/dist/orchestrator/cli/index.d.ts.map +1 -0
  102. package/dist/orchestrator/cli/index.js +8 -0
  103. package/dist/orchestrator/cli/index.js.map +1 -0
  104. package/dist/orchestrator/context/context-index.d.ts +48 -0
  105. package/dist/orchestrator/context/context-index.d.ts.map +1 -0
  106. package/dist/orchestrator/context/context-index.js +116 -0
  107. package/dist/orchestrator/context/context-index.js.map +1 -0
  108. package/dist/orchestrator/context/context-loader.d.ts +49 -0
  109. package/dist/orchestrator/context/context-loader.d.ts.map +1 -0
  110. package/dist/orchestrator/context/context-loader.js +111 -0
  111. package/dist/orchestrator/context/context-loader.js.map +1 -0
  112. package/dist/orchestrator/core/guardrails.d.ts +33 -0
  113. package/dist/orchestrator/core/guardrails.d.ts.map +1 -0
  114. package/dist/orchestrator/core/guardrails.js +272 -0
  115. package/dist/orchestrator/core/guardrails.js.map +1 -0
  116. package/dist/orchestrator/core/state-machine.d.ts +65 -0
  117. package/dist/orchestrator/core/state-machine.d.ts.map +1 -0
  118. package/dist/orchestrator/core/state-machine.js +227 -0
  119. package/dist/orchestrator/core/state-machine.js.map +1 -0
  120. package/dist/orchestrator/core/types.d.ts +364 -0
  121. package/dist/orchestrator/core/types.d.ts.map +1 -0
  122. package/dist/orchestrator/core/types.js +10 -0
  123. package/dist/orchestrator/core/types.js.map +1 -0
  124. package/dist/orchestrator/index.d.ts +75 -0
  125. package/dist/orchestrator/index.d.ts.map +1 -0
  126. package/dist/orchestrator/index.js +64 -0
  127. package/dist/orchestrator/index.js.map +1 -0
  128. package/dist/orchestrator/mcp/server.d.ts +35 -0
  129. package/dist/orchestrator/mcp/server.d.ts.map +1 -0
  130. package/dist/orchestrator/mcp/server.js +378 -0
  131. package/dist/orchestrator/mcp/server.js.map +1 -0
  132. package/dist/orchestrator/runtime/agent-dispatcher.d.ts +25 -0
  133. package/dist/orchestrator/runtime/agent-dispatcher.d.ts.map +1 -0
  134. package/dist/orchestrator/runtime/agent-dispatcher.js +82 -0
  135. package/dist/orchestrator/runtime/agent-dispatcher.js.map +1 -0
  136. package/dist/orchestrator/runtime/approval-gate.d.ts +55 -0
  137. package/dist/orchestrator/runtime/approval-gate.d.ts.map +1 -0
  138. package/dist/orchestrator/runtime/approval-gate.js +104 -0
  139. package/dist/orchestrator/runtime/approval-gate.js.map +1 -0
  140. package/dist/orchestrator/runtime/handoff-manager.d.ts +29 -0
  141. package/dist/orchestrator/runtime/handoff-manager.d.ts.map +1 -0
  142. package/dist/orchestrator/runtime/handoff-manager.js +80 -0
  143. package/dist/orchestrator/runtime/handoff-manager.js.map +1 -0
  144. package/dist/orchestrator/runtime/job-manager.d.ts +39 -0
  145. package/dist/orchestrator/runtime/job-manager.d.ts.map +1 -0
  146. package/dist/orchestrator/runtime/job-manager.js +132 -0
  147. package/dist/orchestrator/runtime/job-manager.js.map +1 -0
  148. package/dist/orchestrator/runtime/squad-runtime.d.ts +70 -0
  149. package/dist/orchestrator/runtime/squad-runtime.d.ts.map +1 -0
  150. package/dist/orchestrator/runtime/squad-runtime.js +249 -0
  151. package/dist/orchestrator/runtime/squad-runtime.js.map +1 -0
  152. package/dist/orchestrator/shell/cli.d.ts +4 -0
  153. package/dist/orchestrator/shell/cli.d.ts.map +1 -0
  154. package/dist/orchestrator/shell/cli.js +27 -0
  155. package/dist/orchestrator/shell/cli.js.map +1 -0
  156. package/dist/orchestrator/shell/commands/create.command.d.ts +3 -0
  157. package/dist/orchestrator/shell/commands/create.command.d.ts.map +1 -0
  158. package/dist/orchestrator/shell/commands/create.command.js +41 -0
  159. package/dist/orchestrator/shell/commands/create.command.js.map +1 -0
  160. package/dist/orchestrator/shell/commands/edit.command.d.ts +3 -0
  161. package/dist/orchestrator/shell/commands/edit.command.d.ts.map +1 -0
  162. package/dist/orchestrator/shell/commands/edit.command.js +49 -0
  163. package/dist/orchestrator/shell/commands/edit.command.js.map +1 -0
  164. package/dist/orchestrator/shell/commands/hosts.command.d.ts +3 -0
  165. package/dist/orchestrator/shell/commands/hosts.command.d.ts.map +1 -0
  166. package/dist/orchestrator/shell/commands/hosts.command.js +27 -0
  167. package/dist/orchestrator/shell/commands/hosts.command.js.map +1 -0
  168. package/dist/orchestrator/shell/commands/init.command.d.ts +3 -0
  169. package/dist/orchestrator/shell/commands/init.command.d.ts.map +1 -0
  170. package/dist/orchestrator/shell/commands/init.command.js +13 -0
  171. package/dist/orchestrator/shell/commands/init.command.js.map +1 -0
  172. package/dist/orchestrator/shell/commands/list.command.d.ts +3 -0
  173. package/dist/orchestrator/shell/commands/list.command.d.ts.map +1 -0
  174. package/dist/orchestrator/shell/commands/list.command.js +18 -0
  175. package/dist/orchestrator/shell/commands/list.command.js.map +1 -0
  176. package/dist/orchestrator/shell/commands/run.command.d.ts +3 -0
  177. package/dist/orchestrator/shell/commands/run.command.d.ts.map +1 -0
  178. package/dist/orchestrator/shell/commands/run.command.js +71 -0
  179. package/dist/orchestrator/shell/commands/run.command.js.map +1 -0
  180. package/dist/orchestrator/shell/commands/status.command.d.ts +3 -0
  181. package/dist/orchestrator/shell/commands/status.command.d.ts.map +1 -0
  182. package/dist/orchestrator/shell/commands/status.command.js +29 -0
  183. package/dist/orchestrator/shell/commands/status.command.js.map +1 -0
  184. package/dist/orchestrator/shell/services/active-host-detector.service.d.ts +25 -0
  185. package/dist/orchestrator/shell/services/active-host-detector.service.d.ts.map +1 -0
  186. package/dist/orchestrator/shell/services/active-host-detector.service.js +128 -0
  187. package/dist/orchestrator/shell/services/active-host-detector.service.js.map +1 -0
  188. package/dist/orchestrator/shell/services/host-resolution.service.d.ts +42 -0
  189. package/dist/orchestrator/shell/services/host-resolution.service.d.ts.map +1 -0
  190. package/dist/orchestrator/shell/services/host-resolution.service.js +108 -0
  191. package/dist/orchestrator/shell/services/host-resolution.service.js.map +1 -0
  192. package/dist/orchestrator/shell/services/host-runtime.service.d.ts +23 -0
  193. package/dist/orchestrator/shell/services/host-runtime.service.d.ts.map +1 -0
  194. package/dist/orchestrator/shell/services/host-runtime.service.js +167 -0
  195. package/dist/orchestrator/shell/services/host-runtime.service.js.map +1 -0
  196. package/dist/orchestrator/shell/services/interview-host-bridge.service.d.ts +14 -0
  197. package/dist/orchestrator/shell/services/interview-host-bridge.service.d.ts.map +1 -0
  198. package/dist/orchestrator/shell/services/interview-host-bridge.service.js +16 -0
  199. package/dist/orchestrator/shell/services/interview-host-bridge.service.js.map +1 -0
  200. package/dist/orchestrator/shell/services/job-execution.service.d.ts +22 -0
  201. package/dist/orchestrator/shell/services/job-execution.service.d.ts.map +1 -0
  202. package/dist/orchestrator/shell/services/job-execution.service.js +39 -0
  203. package/dist/orchestrator/shell/services/job-execution.service.js.map +1 -0
  204. package/dist/orchestrator/shell/services/project-bootstrap.service.d.ts +6 -0
  205. package/dist/orchestrator/shell/services/project-bootstrap.service.d.ts.map +1 -0
  206. package/dist/orchestrator/shell/services/project-bootstrap.service.js +111 -0
  207. package/dist/orchestrator/shell/services/project-bootstrap.service.js.map +1 -0
  208. package/dist/orchestrator/shell/services/squad-scaffold.service.d.ts +3 -0
  209. package/dist/orchestrator/shell/services/squad-scaffold.service.d.ts.map +1 -0
  210. package/dist/orchestrator/shell/services/squad-scaffold.service.js +30 -0
  211. package/dist/orchestrator/shell/services/squad-scaffold.service.js.map +1 -0
  212. package/dist/tests/integration/instagram-squad.test.d.ts +8 -0
  213. package/dist/tests/integration/instagram-squad.test.d.ts.map +1 -0
  214. package/dist/tests/integration/instagram-squad.test.js +187 -0
  215. package/dist/tests/integration/instagram-squad.test.js.map +1 -0
  216. package/dist/tests/integration/shell/cli-run-host-native.test.d.ts +2 -0
  217. package/dist/tests/integration/shell/cli-run-host-native.test.d.ts.map +1 -0
  218. package/dist/tests/integration/shell/cli-run-host-native.test.js +42 -0
  219. package/dist/tests/integration/shell/cli-run-host-native.test.js.map +1 -0
  220. package/dist/tests/integration/software-squad.test.d.ts +8 -0
  221. package/dist/tests/integration/software-squad.test.d.ts.map +1 -0
  222. package/dist/tests/integration/software-squad.test.js +207 -0
  223. package/dist/tests/integration/software-squad.test.js.map +1 -0
  224. package/dist/tests/unit/artifact-store.test.d.ts +2 -0
  225. package/dist/tests/unit/artifact-store.test.d.ts.map +1 -0
  226. package/dist/tests/unit/artifact-store.test.js +137 -0
  227. package/dist/tests/unit/artifact-store.test.js.map +1 -0
  228. package/dist/tests/unit/context-loader.test.d.ts +2 -0
  229. package/dist/tests/unit/context-loader.test.d.ts.map +1 -0
  230. package/dist/tests/unit/context-loader.test.js +109 -0
  231. package/dist/tests/unit/context-loader.test.js.map +1 -0
  232. package/dist/tests/unit/docs/host-native-docs.test.d.ts +2 -0
  233. package/dist/tests/unit/docs/host-native-docs.test.d.ts.map +1 -0
  234. package/dist/tests/unit/docs/host-native-docs.test.js +18 -0
  235. package/dist/tests/unit/docs/host-native-docs.test.js.map +1 -0
  236. package/dist/tests/unit/guardrails.test.d.ts +2 -0
  237. package/dist/tests/unit/guardrails.test.d.ts.map +1 -0
  238. package/dist/tests/unit/guardrails.test.js +202 -0
  239. package/dist/tests/unit/guardrails.test.js.map +1 -0
  240. package/dist/tests/unit/host/host-adapter-contract.test.d.ts +2 -0
  241. package/dist/tests/unit/host/host-adapter-contract.test.d.ts.map +1 -0
  242. package/dist/tests/unit/host/host-adapter-contract.test.js +53 -0
  243. package/dist/tests/unit/host/host-adapter-contract.test.js.map +1 -0
  244. package/dist/tests/unit/host/ide.adapter.test.d.ts +2 -0
  245. package/dist/tests/unit/host/ide.adapter.test.d.ts.map +1 -0
  246. package/dist/tests/unit/host/ide.adapter.test.js +17 -0
  247. package/dist/tests/unit/host/ide.adapter.test.js.map +1 -0
  248. package/dist/tests/unit/host/native-ide-adapters.test.d.ts +2 -0
  249. package/dist/tests/unit/host/native-ide-adapters.test.d.ts.map +1 -0
  250. package/dist/tests/unit/host/native-ide-adapters.test.js +26 -0
  251. package/dist/tests/unit/host/native-ide-adapters.test.js.map +1 -0
  252. package/dist/tests/unit/runtime/squad-runtime-host-metadata.test.d.ts +2 -0
  253. package/dist/tests/unit/runtime/squad-runtime-host-metadata.test.d.ts.map +1 -0
  254. package/dist/tests/unit/runtime/squad-runtime-host-metadata.test.js +128 -0
  255. package/dist/tests/unit/runtime/squad-runtime-host-metadata.test.js.map +1 -0
  256. package/dist/tests/unit/shell/active-host-detector.test.d.ts +2 -0
  257. package/dist/tests/unit/shell/active-host-detector.test.d.ts.map +1 -0
  258. package/dist/tests/unit/shell/active-host-detector.test.js +85 -0
  259. package/dist/tests/unit/shell/active-host-detector.test.js.map +1 -0
  260. package/dist/tests/unit/shell/host-resolution.service.test.d.ts +2 -0
  261. package/dist/tests/unit/shell/host-resolution.service.test.d.ts.map +1 -0
  262. package/dist/tests/unit/shell/host-resolution.service.test.js +252 -0
  263. package/dist/tests/unit/shell/host-resolution.service.test.js.map +1 -0
  264. package/dist/tests/unit/shell/interview-host-bridge.test.d.ts +2 -0
  265. package/dist/tests/unit/shell/interview-host-bridge.test.d.ts.map +1 -0
  266. package/dist/tests/unit/shell/interview-host-bridge.test.js +58 -0
  267. package/dist/tests/unit/shell/interview-host-bridge.test.js.map +1 -0
  268. package/dist/tests/unit/shell/project-bootstrap.service.test.d.ts +2 -0
  269. package/dist/tests/unit/shell/project-bootstrap.service.test.d.ts.map +1 -0
  270. package/dist/tests/unit/shell/project-bootstrap.service.test.js +58 -0
  271. package/dist/tests/unit/shell/project-bootstrap.service.test.js.map +1 -0
  272. package/dist/tests/unit/shell/squad-scaffold.service.test.d.ts +2 -0
  273. package/dist/tests/unit/shell/squad-scaffold.service.test.d.ts.map +1 -0
  274. package/dist/tests/unit/shell/squad-scaffold.service.test.js +40 -0
  275. package/dist/tests/unit/shell/squad-scaffold.service.test.js.map +1 -0
  276. package/dist/tests/unit/squad-builder.test.d.ts +2 -0
  277. package/dist/tests/unit/squad-builder.test.d.ts.map +1 -0
  278. package/dist/tests/unit/squad-builder.test.js +126 -0
  279. package/dist/tests/unit/squad-builder.test.js.map +1 -0
  280. package/dist/tests/unit/state-machine.test.d.ts +2 -0
  281. package/dist/tests/unit/state-machine.test.d.ts.map +1 -0
  282. package/dist/tests/unit/state-machine.test.js +133 -0
  283. package/dist/tests/unit/state-machine.test.js.map +1 -0
  284. package/docs/architecture/overview.md +115 -0
  285. package/docs/development/adding-agents.md +75 -0
  286. package/docs/development/adding-hosts.md +104 -0
  287. package/docs/development/adding-integrations.md +83 -0
  288. package/docs/development/host-detection-and-resolution.md +59 -0
  289. package/docs/squads/how-to-create.md +85 -0
  290. package/docs/squads/how-to-execute.md +139 -0
  291. package/docs/superpowers/plans/2026-04-01-host-native-cli-shell-implementation.md +617 -0
  292. package/docs/superpowers/specs/2026-04-01-host-native-cli-shell-design.md +253 -0
  293. package/package.json +103 -0
  294. package/squads/examples/instagram-content/AGENTS.md +63 -0
  295. package/squads/examples/instagram-content/POLICIES.md +45 -0
  296. package/squads/examples/instagram-content/SQUAD.md +63 -0
  297. package/squads/examples/instagram-content/WORKFLOW.md +58 -0
  298. package/squads/examples/instagram-content/config/squad.json +474 -0
  299. package/squads/examples/software-development/AGENTS.md +88 -0
  300. package/squads/examples/software-development/POLICIES.md +44 -0
  301. package/squads/examples/software-development/SQUAD.md +65 -0
  302. package/squads/examples/software-development/WORKFLOW.md +78 -0
  303. package/squads/examples/software-development/config/squad.json +442 -0
  304. package/templates/AGENTS.md +46 -0
  305. package/templates/POLICIES.md +24 -0
  306. package/templates/PROJECT.md +52 -0
  307. package/templates/SQUAD.md +52 -0
  308. package/templates/TASKS.md +31 -0
  309. package/templates/WORKFLOW.md +35 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ISocialMediaAdapter.d.ts","sourceRoot":"","sources":["../../../../orchestrator/adapters/publishing/ISocialMediaAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * ISocialMediaAdapter — Social Media Publishing Adapter Interface
3
+ *
4
+ * Abstracts publishing operations across social media platforms
5
+ * (Instagram, Twitter/X, LinkedIn, TikTok, etc.).
6
+ *
7
+ * STATUS: Interface defined. Concrete adapters: instagram (stub)
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=ISocialMediaAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ISocialMediaAdapter.js","sourceRoot":"","sources":["../../../../orchestrator/adapters/publishing/ISocialMediaAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * InstagramAdapter — Stub
3
+ *
4
+ * Adapter for Instagram publishing via the Instagram Graph API.
5
+ *
6
+ * CRITICAL SAFETY NOTE:
7
+ * Publishing to Instagram is a real, irreversible action.
8
+ * This adapter MUST only be called after explicit human approval
9
+ * has been recorded via the ApprovalGate.
10
+ *
11
+ * STATUS: STUB — all methods log and return mock data.
12
+ * To activate: set INSTAGRAM_ACCESS_TOKEN and INSTAGRAM_ACCOUNT_ID.
13
+ */
14
+ import type { ISocialMediaAdapter, PostDraft, PublishedPost, PostAnalytics, AccountInfo, PublishingCapabilities } from './ISocialMediaAdapter.js';
15
+ export declare class InstagramAdapter implements ISocialMediaAdapter {
16
+ readonly id = "instagram";
17
+ readonly platform = "Instagram";
18
+ private accessToken;
19
+ private accountId;
20
+ constructor(opts?: {
21
+ accessToken?: string;
22
+ accountId?: string;
23
+ });
24
+ initialize(): Promise<void>;
25
+ getAccountInfo(): Promise<AccountInfo>;
26
+ publishPost(draft: PostDraft): Promise<PublishedPost>;
27
+ schedulePost(draft: PostDraft, publishAt: string): Promise<PublishedPost>;
28
+ getPostAnalytics(postId: string): Promise<PostAnalytics>;
29
+ listPosts(_limit?: number): Promise<PublishedPost[]>;
30
+ cancelScheduledPost(postId: string): Promise<void>;
31
+ getCapabilities(): PublishingCapabilities;
32
+ healthCheck(): Promise<boolean>;
33
+ }
34
+ //# sourceMappingURL=instagram.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instagram.adapter.d.ts","sourceRoot":"","sources":["../../../../orchestrator/adapters/publishing/instagram.adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAEjJ,qBAAa,gBAAiB,YAAW,mBAAmB;IAC1D,QAAQ,CAAC,EAAE,eAAc;IACzB,QAAQ,CAAC,QAAQ,eAAc;IAE/B,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,SAAS,CAAoB;gBAEzB,IAAI,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;IAKzD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC;IAatC,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC;IAgBrD,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAczE,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAexD,SAAS,CAAC,MAAM,SAAK,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAIhD,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD,eAAe,IAAI,sBAAsB;IAYnC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;CAItC"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * InstagramAdapter — Stub
3
+ *
4
+ * Adapter for Instagram publishing via the Instagram Graph API.
5
+ *
6
+ * CRITICAL SAFETY NOTE:
7
+ * Publishing to Instagram is a real, irreversible action.
8
+ * This adapter MUST only be called after explicit human approval
9
+ * has been recorded via the ApprovalGate.
10
+ *
11
+ * STATUS: STUB — all methods log and return mock data.
12
+ * To activate: set INSTAGRAM_ACCESS_TOKEN and INSTAGRAM_ACCOUNT_ID.
13
+ */
14
+ export class InstagramAdapter {
15
+ id = 'instagram';
16
+ platform = 'Instagram';
17
+ accessToken;
18
+ accountId;
19
+ constructor(opts) {
20
+ this.accessToken = opts?.accessToken ?? process.env['INSTAGRAM_ACCESS_TOKEN'];
21
+ this.accountId = opts?.accountId ?? process.env['INSTAGRAM_ACCOUNT_ID'];
22
+ }
23
+ async initialize() {
24
+ if (!this.accessToken || !this.accountId) {
25
+ console.warn('[InstagramAdapter] INSTAGRAM_ACCESS_TOKEN or INSTAGRAM_ACCOUNT_ID not set — running in stub mode');
26
+ }
27
+ }
28
+ async getAccountInfo() {
29
+ // STUB: GET /{account-id}?fields=id,username,name,followers_count
30
+ return {
31
+ id: this.accountId ?? 'stub-account-id',
32
+ username: 'stub_account',
33
+ displayName: 'Stub Account',
34
+ platform: 'Instagram',
35
+ followerCount: 0,
36
+ followingCount: 0,
37
+ postCount: 0,
38
+ };
39
+ }
40
+ async publishPost(draft) {
41
+ // SAFETY: This method must only be called after ApprovalGate confirms human approval.
42
+ // STUB: POST /{account-id}/media + /{account-id}/media_publish
43
+ console.log(`[InstagramAdapter][STUB] publishPost: ${draft.caption.slice(0, 60)}...`);
44
+ console.warn('[InstagramAdapter][STUB] Real publishing NOT executed — stub mode active');
45
+ return {
46
+ id: `stub-post-${Date.now()}`,
47
+ platformPostId: 'stub-platform-id',
48
+ url: 'https://www.instagram.com/p/stub/',
49
+ caption: draft.caption,
50
+ publishedAt: new Date().toISOString(),
51
+ status: 'pending_review',
52
+ platform: 'Instagram',
53
+ };
54
+ }
55
+ async schedulePost(draft, publishAt) {
56
+ // STUB: Requires Content Publishing API with scheduling support
57
+ console.log(`[InstagramAdapter][STUB] schedulePost for ${publishAt}: ${draft.caption.slice(0, 60)}`);
58
+ return {
59
+ id: `stub-scheduled-${Date.now()}`,
60
+ platformPostId: 'stub-scheduled-platform-id',
61
+ url: 'https://www.instagram.com/p/stub/',
62
+ caption: draft.caption,
63
+ publishedAt: publishAt,
64
+ status: 'scheduled',
65
+ platform: 'Instagram',
66
+ };
67
+ }
68
+ async getPostAnalytics(postId) {
69
+ // STUB: GET /{media-id}/insights
70
+ return {
71
+ postId,
72
+ impressions: 0,
73
+ reach: 0,
74
+ engagement: 0,
75
+ likes: 0,
76
+ comments: 0,
77
+ shares: 0,
78
+ saves: 0,
79
+ measuredAt: new Date().toISOString(),
80
+ };
81
+ }
82
+ async listPosts(_limit = 10) {
83
+ return [];
84
+ }
85
+ async cancelScheduledPost(postId) {
86
+ console.log(`[InstagramAdapter][STUB] cancelScheduledPost: ${postId}`);
87
+ }
88
+ getCapabilities() {
89
+ return {
90
+ supportsScheduling: true,
91
+ supportsCarousel: true,
92
+ supportsVideo: true,
93
+ supportsStories: true,
94
+ supportsAnalytics: true,
95
+ maxCaptionLength: 2200,
96
+ maxHashtags: 30,
97
+ };
98
+ }
99
+ async healthCheck() {
100
+ if (!this.accessToken)
101
+ return false;
102
+ return true;
103
+ }
104
+ }
105
+ //# sourceMappingURL=instagram.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instagram.adapter.js","sourceRoot":"","sources":["../../../../orchestrator/adapters/publishing/instagram.adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * IToolAdapter — Tool/Integration Adapter Interface
3
+ *
4
+ * Abstracts external tool invocations (web search, code execution,
5
+ * file operations, API calls, MCP tools, etc.).
6
+ *
7
+ * STATUS: Interface defined. Concrete adapters are domain-specific stubs.
8
+ */
9
+ export interface ToolInput {
10
+ name: string;
11
+ arguments: Record<string, unknown>;
12
+ }
13
+ export interface ToolOutput {
14
+ name: string;
15
+ result: unknown;
16
+ error?: string;
17
+ metadata?: Record<string, unknown>;
18
+ }
19
+ export interface AvailableTool {
20
+ id: string;
21
+ name: string;
22
+ description: string;
23
+ inputSchema: Record<string, unknown>;
24
+ category: ToolCategory;
25
+ }
26
+ export type ToolCategory = 'filesystem' | 'web' | 'code' | 'git' | 'api' | 'media' | 'database' | 'mcp' | 'custom';
27
+ /**
28
+ * Generic tool adapter interface.
29
+ * Each integration (filesystem, GitHub, web search, etc.) implements this.
30
+ */
31
+ export interface IToolAdapter {
32
+ readonly id: string;
33
+ readonly name: string;
34
+ readonly category: ToolCategory;
35
+ /**
36
+ * List tools provided by this adapter.
37
+ */
38
+ listTools(): AvailableTool[];
39
+ /**
40
+ * Execute a tool call.
41
+ */
42
+ invoke(input: ToolInput): Promise<ToolOutput>;
43
+ /**
44
+ * Check if a specific tool is supported.
45
+ */
46
+ supports(toolName: string): boolean;
47
+ /**
48
+ * Health check — verify the integration is operational.
49
+ */
50
+ healthCheck(): Promise<boolean>;
51
+ }
52
+ //# sourceMappingURL=IToolAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IToolAdapter.d.ts","sourceRoot":"","sources":["../../../../orchestrator/adapters/tools/IToolAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC,QAAQ,EAAE,YAAY,CAAA;CACvB;AAED,MAAM,MAAM,YAAY,GACpB,YAAY,GACZ,KAAK,GACL,MAAM,GACN,KAAK,GACL,KAAK,GACL,OAAO,GACP,UAAU,GACV,KAAK,GACL,QAAQ,CAAA;AAEZ;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAA;IAE/B;;OAEG;IACH,SAAS,IAAI,aAAa,EAAE,CAAA;IAE5B;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IAE7C;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAA;IAEnC;;OAEG;IACH,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;CAChC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * IToolAdapter — Tool/Integration Adapter Interface
3
+ *
4
+ * Abstracts external tool invocations (web search, code execution,
5
+ * file operations, API calls, MCP tools, etc.).
6
+ *
7
+ * STATUS: Interface defined. Concrete adapters are domain-specific stubs.
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=IToolAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IToolAdapter.js","sourceRoot":"","sources":["../../../../orchestrator/adapters/tools/IToolAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * IVCSAdapter — Version Control System Adapter Interface
3
+ *
4
+ * Abstracts VCS operations (git, GitHub, GitLab, Bitbucket, etc.).
5
+ * The core orchestrator only interacts with this interface — never with
6
+ * specific VCS clients or APIs.
7
+ *
8
+ * STATUS: Interface defined. Concrete adapters: github (stub)
9
+ */
10
+ export interface BranchOptions {
11
+ baseBranch?: string;
12
+ checkout?: boolean;
13
+ }
14
+ export interface CommitOptions {
15
+ message: string;
16
+ /** Files to stage. If empty, stages all changes */
17
+ files?: string[];
18
+ allowEmpty?: boolean;
19
+ }
20
+ export interface PullRequestOptions {
21
+ title: string;
22
+ body: string;
23
+ baseBranch: string;
24
+ headBranch: string;
25
+ draft?: boolean;
26
+ labels?: string[];
27
+ reviewers?: string[];
28
+ }
29
+ export interface PullRequestInfo {
30
+ id: string;
31
+ number: number;
32
+ url: string;
33
+ title: string;
34
+ status: 'open' | 'closed' | 'merged' | 'draft';
35
+ baseBranch: string;
36
+ headBranch: string;
37
+ createdAt: string;
38
+ }
39
+ export interface CommitInfo {
40
+ sha: string;
41
+ message: string;
42
+ author: string;
43
+ timestamp: string;
44
+ url?: string;
45
+ }
46
+ export interface BranchInfo {
47
+ name: string;
48
+ sha: string;
49
+ isDefault: boolean;
50
+ isProtected: boolean;
51
+ }
52
+ export interface VCSCapabilities {
53
+ supportsPullRequests: boolean;
54
+ supportsReviews: boolean;
55
+ supportsLabels: boolean;
56
+ supportsWebhooks: boolean;
57
+ }
58
+ /**
59
+ * Interface for VCS (version control) adapters.
60
+ * Implement this to add GitHub, GitLab, Bitbucket, or bare git support.
61
+ */
62
+ export interface IVCSAdapter {
63
+ readonly id: string;
64
+ readonly name: string;
65
+ initialize(): Promise<void>;
66
+ /** Get current branch name */
67
+ getCurrentBranch(): Promise<string>;
68
+ /** List all branches */
69
+ listBranches(): Promise<BranchInfo[]>;
70
+ /** Create and optionally checkout a new branch */
71
+ createBranch(name: string, options?: BranchOptions): Promise<BranchInfo>;
72
+ /** Stage and commit files */
73
+ commit(options: CommitOptions): Promise<CommitInfo>;
74
+ /** Push branch to remote */
75
+ push(branch: string, force?: boolean): Promise<void>;
76
+ /** Create a pull request / merge request */
77
+ createPullRequest(options: PullRequestOptions): Promise<PullRequestInfo>;
78
+ /** Get pull request info by number */
79
+ getPullRequest(number: number): Promise<PullRequestInfo>;
80
+ /** List open pull requests */
81
+ listPullRequests(state?: 'open' | 'closed' | 'all'): Promise<PullRequestInfo[]>;
82
+ /** Add a comment to a pull request */
83
+ commentOnPullRequest(number: number, body: string): Promise<void>;
84
+ /** Get recent commit history */
85
+ getCommitHistory(branch?: string, limit?: number): Promise<CommitInfo[]>;
86
+ getCapabilities(): VCSCapabilities;
87
+ healthCheck(): Promise<boolean>;
88
+ }
89
+ //# sourceMappingURL=IVCSAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IVCSAdapter.d.ts","sourceRoot":"","sources":["../../../../orchestrator/adapters/vcs/IVCSAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * IVCSAdapter — Version Control System Adapter Interface
3
+ *
4
+ * Abstracts VCS operations (git, GitHub, GitLab, Bitbucket, etc.).
5
+ * The core orchestrator only interacts with this interface — never with
6
+ * specific VCS clients or APIs.
7
+ *
8
+ * STATUS: Interface defined. Concrete adapters: github (stub)
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=IVCSAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IVCSAdapter.js","sourceRoot":"","sources":["../../../../orchestrator/adapters/vcs/IVCSAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * GitHubVCSAdapter — Stub
3
+ *
4
+ * Adapter for GitHub operations: branches, commits, PRs, comments.
5
+ * Uses the GitHub REST API (via GITHUB_TOKEN).
6
+ *
7
+ * STATUS: STUB — all methods log and return mock data.
8
+ * To activate: set GITHUB_TOKEN and GITHUB_REPO, then implement API calls.
9
+ */
10
+ import type { IVCSAdapter, BranchOptions, CommitOptions, PullRequestOptions, PullRequestInfo, CommitInfo, BranchInfo, VCSCapabilities } from './IVCSAdapter.js';
11
+ export declare class GitHubVCSAdapter implements IVCSAdapter {
12
+ readonly id = "github";
13
+ readonly name = "GitHub";
14
+ private token;
15
+ private repo;
16
+ private owner;
17
+ constructor(opts?: {
18
+ token?: string;
19
+ owner?: string;
20
+ repo?: string;
21
+ });
22
+ initialize(): Promise<void>;
23
+ getCurrentBranch(): Promise<string>;
24
+ listBranches(): Promise<BranchInfo[]>;
25
+ createBranch(name: string, _options?: BranchOptions): Promise<BranchInfo>;
26
+ commit(options: CommitOptions): Promise<CommitInfo>;
27
+ push(branch: string, _force?: boolean): Promise<void>;
28
+ createPullRequest(options: PullRequestOptions): Promise<PullRequestInfo>;
29
+ getPullRequest(number: number): Promise<PullRequestInfo>;
30
+ listPullRequests(_state?: 'open' | 'closed' | 'all'): Promise<PullRequestInfo[]>;
31
+ commentOnPullRequest(number: number, body: string): Promise<void>;
32
+ getCommitHistory(_branch?: string, limit?: number): Promise<CommitInfo[]>;
33
+ getCapabilities(): VCSCapabilities;
34
+ healthCheck(): Promise<boolean>;
35
+ }
36
+ //# sourceMappingURL=github.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github.adapter.d.ts","sourceRoot":"","sources":["../../../../orchestrator/adapters/vcs/github.adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAE/J,qBAAa,gBAAiB,YAAW,WAAW;IAClD,QAAQ,CAAC,EAAE,YAAW;IACtB,QAAQ,CAAC,IAAI,YAAW;IAExB,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,IAAI,CAAoB;IAChC,OAAO,CAAC,KAAK,CAAoB;gBAErB,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE;IAQ9D,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAKnC,YAAY,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAKrC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC;IAMzE,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC;IAWnD,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAInD,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC;IAexE,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAcxD,gBAAgB,CAAC,MAAM,GAAE,MAAM,GAAG,QAAQ,GAAG,KAAc,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAIxF,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjE,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAS3E,eAAe,IAAI,eAAe;IAS5B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;CAKtC"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * GitHubVCSAdapter — Stub
3
+ *
4
+ * Adapter for GitHub operations: branches, commits, PRs, comments.
5
+ * Uses the GitHub REST API (via GITHUB_TOKEN).
6
+ *
7
+ * STATUS: STUB — all methods log and return mock data.
8
+ * To activate: set GITHUB_TOKEN and GITHUB_REPO, then implement API calls.
9
+ */
10
+ export class GitHubVCSAdapter {
11
+ id = 'github';
12
+ name = 'GitHub';
13
+ token;
14
+ repo;
15
+ owner;
16
+ constructor(opts) {
17
+ this.token = opts?.token ?? process.env['GITHUB_TOKEN'];
18
+ const fullRepo = opts?.repo ?? process.env['GITHUB_REPO'] ?? '';
19
+ const [owner, repo] = fullRepo.split('/');
20
+ this.owner = opts?.owner ?? owner;
21
+ this.repo = repo;
22
+ }
23
+ async initialize() {
24
+ if (!this.token) {
25
+ console.warn('[GitHubVCSAdapter] GITHUB_TOKEN not set — running in stub mode');
26
+ }
27
+ }
28
+ async getCurrentBranch() {
29
+ // STUB: In real impl, run `git rev-parse --abbrev-ref HEAD`
30
+ return 'main';
31
+ }
32
+ async listBranches() {
33
+ // STUB: GET /repos/{owner}/{repo}/branches
34
+ return [{ name: 'main', sha: 'abc123', isDefault: true, isProtected: true }];
35
+ }
36
+ async createBranch(name, _options) {
37
+ // STUB: POST /repos/{owner}/{repo}/git/refs
38
+ console.log(`[GitHubVCSAdapter][STUB] createBranch: ${name}`);
39
+ return { name, sha: 'stub-sha', isDefault: false, isProtected: false };
40
+ }
41
+ async commit(options) {
42
+ // STUB: In real impl, git add + git commit
43
+ console.log(`[GitHubVCSAdapter][STUB] commit: ${options.message}`);
44
+ return {
45
+ sha: `stub-${Date.now()}`,
46
+ message: options.message,
47
+ author: 'squad-foundry[bot]',
48
+ timestamp: new Date().toISOString(),
49
+ };
50
+ }
51
+ async push(branch, _force = false) {
52
+ console.log(`[GitHubVCSAdapter][STUB] push: ${branch}`);
53
+ }
54
+ async createPullRequest(options) {
55
+ // STUB: POST /repos/{owner}/{repo}/pulls
56
+ console.log(`[GitHubVCSAdapter][STUB] createPullRequest: ${options.title}`);
57
+ return {
58
+ id: `stub-pr-${Date.now()}`,
59
+ number: 1,
60
+ url: `https://github.com/${this.owner}/${this.repo}/pull/1`,
61
+ title: options.title,
62
+ status: 'open',
63
+ baseBranch: options.baseBranch,
64
+ headBranch: options.headBranch,
65
+ createdAt: new Date().toISOString(),
66
+ };
67
+ }
68
+ async getPullRequest(number) {
69
+ // STUB: GET /repos/{owner}/{repo}/pulls/{number}
70
+ return {
71
+ id: `stub-pr-${number}`,
72
+ number,
73
+ url: `https://github.com/${this.owner}/${this.repo}/pull/${number}`,
74
+ title: 'Stub PR',
75
+ status: 'open',
76
+ baseBranch: 'main',
77
+ headBranch: 'feature/stub',
78
+ createdAt: new Date().toISOString(),
79
+ };
80
+ }
81
+ async listPullRequests(_state = 'open') {
82
+ return [];
83
+ }
84
+ async commentOnPullRequest(number, body) {
85
+ console.log(`[GitHubVCSAdapter][STUB] commentOnPullRequest #${number}: ${body.slice(0, 80)}`);
86
+ }
87
+ async getCommitHistory(_branch, limit = 10) {
88
+ return Array.from({ length: Math.min(limit, 3) }, (_, i) => ({
89
+ sha: `stub-sha-${i}`,
90
+ message: `Stub commit ${i}`,
91
+ author: 'squad-foundry[bot]',
92
+ timestamp: new Date().toISOString(),
93
+ }));
94
+ }
95
+ getCapabilities() {
96
+ return {
97
+ supportsPullRequests: true,
98
+ supportsReviews: true,
99
+ supportsLabels: true,
100
+ supportsWebhooks: true,
101
+ };
102
+ }
103
+ async healthCheck() {
104
+ if (!this.token)
105
+ return false;
106
+ // STUB: GET /user
107
+ return true;
108
+ }
109
+ }
110
+ //# sourceMappingURL=github.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github.adapter.js","sourceRoot":"","sources":["../../../../orchestrator/adapters/vcs/github.adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * ArtifactStore
3
+ *
4
+ * Filesystem-based artifact persistence for squad jobs.
5
+ * All job state, handoffs, events, outputs, and approvals are stored
6
+ * as human-readable JSON/Markdown files under:
7
+ *
8
+ * artifacts/<squad_id>/<job_id>/
9
+ * state.json
10
+ * handoffs.json
11
+ * events.json
12
+ * approvals.json
13
+ * outputs/
14
+ * reports/
15
+ */
16
+ import type { JobDefinition, HandoffEvent, HistoryEntry, ApprovalRecord, ArtifactRef, PendingArtifact, JobId, SquadId, AgentId, StepId } from '../core/types.js';
17
+ export declare class ArtifactStore {
18
+ private baseDir;
19
+ constructor(baseDir?: string);
20
+ private jobDir;
21
+ private ensureDir;
22
+ private write;
23
+ private read;
24
+ /** Persist the full job state */
25
+ saveJob(job: JobDefinition): void;
26
+ /** Load a job state from disk */
27
+ loadJob(squadId: SquadId, jobId: JobId): JobDefinition | null;
28
+ /** List all job IDs for a squad */
29
+ listJobs(squadId: SquadId): JobId[];
30
+ appendHandoff(squadId: SquadId, jobId: JobId, handoff: HandoffEvent): void;
31
+ loadHandoffs(squadId: SquadId, jobId: JobId): HandoffEvent[];
32
+ appendEvent(squadId: SquadId, jobId: JobId, event: HistoryEntry): void;
33
+ loadEvents(squadId: SquadId, jobId: JobId): HistoryEntry[];
34
+ saveApprovals(squadId: SquadId, jobId: JobId, approvals: ApprovalRecord[]): void;
35
+ loadApprovals(squadId: SquadId, jobId: JobId): ApprovalRecord[];
36
+ /**
37
+ * Persist a pending artifact (content produced by an agent) to disk.
38
+ * Returns an ArtifactRef that can be stored in the job.
39
+ */
40
+ persistArtifact(squadId: SquadId, jobId: JobId, artifact: PendingArtifact, agentId: AgentId, stepId: StepId): ArtifactRef;
41
+ /** Save a Markdown report to artifacts/<squad_id>/<job_id>/reports/ */
42
+ saveReport(squadId: SquadId, jobId: JobId, name: string, content: string): string;
43
+ /** List all artifact refs from the job's outputs directory */
44
+ listArtifacts(squadId: SquadId, jobId: JobId): string[];
45
+ }
46
+ export declare function createArtifactStore(baseDir?: string): ArtifactStore;
47
+ //# sourceMappingURL=artifact-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifact-store.d.ts","sourceRoot":"","sources":["../../../orchestrator/artifacts/artifact-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,WAAW,EACX,eAAe,EACf,KAAK,EACL,OAAO,EACP,OAAO,EACP,MAAM,EACP,MAAM,kBAAkB,CAAA;AAMzB,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAQ;gBAEX,OAAO,SAAc;IAIjC,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,IAAI;IAWZ,iCAAiC;IACjC,OAAO,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;IAKjC,iCAAiC;IACjC,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,aAAa,GAAG,IAAI;IAI7D,mCAAmC;IACnC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,KAAK,EAAE;IAUnC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAO1E,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,YAAY,EAAE;IAM5D,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI;IAOtE,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,YAAY,EAAE;IAM1D,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,IAAI;IAKhF,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,cAAc,EAAE;IAM/D;;;OAGG;IACH,eAAe,CACb,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,GACb,WAAW;IAsBd,uEAAuE;IACvE,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAQjF,8DAA8D;IAC9D,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE;CAKxD;AAED,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa,CAEnE"}