studiograph 1.1.3 → 1.2.0-beta.10

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 (356) hide show
  1. package/README.md +2 -8
  2. package/dist/agent/orchestrator.d.ts +53 -0
  3. package/dist/agent/orchestrator.js +197 -12
  4. package/dist/agent/orchestrator.js.map +1 -1
  5. package/dist/agent/prompts/system.md +43 -11
  6. package/dist/agent/skill-loader.d.ts +48 -0
  7. package/dist/agent/skill-loader.js +166 -0
  8. package/dist/agent/skill-loader.js.map +1 -0
  9. package/dist/agent/skills/{bundled/enrich-entities.md → enrich-entities.md} +12 -0
  10. package/dist/agent/skills/entity-schema.md +502 -0
  11. package/dist/agent/skills/obsidian-source-setup.md +246 -0
  12. package/dist/agent/skills/sync-configuration.md +144 -0
  13. package/dist/agent/skills/sync-setup.md +84 -0
  14. package/dist/agent/tools/connector-tools.d.ts +37 -0
  15. package/dist/agent/tools/connector-tools.js +132 -0
  16. package/dist/agent/tools/connector-tools.js.map +1 -0
  17. package/dist/agent/tools/fs-tools.d.ts +39 -0
  18. package/dist/agent/tools/fs-tools.js +106 -0
  19. package/dist/agent/tools/fs-tools.js.map +1 -0
  20. package/dist/agent/tools/graph-tools.d.ts +33 -1
  21. package/dist/agent/tools/graph-tools.js +192 -44
  22. package/dist/agent/tools/graph-tools.js.map +1 -1
  23. package/dist/agent/tools/load-skill.d.ts +1 -1
  24. package/dist/agent/tools/load-skill.js +1 -1
  25. package/dist/agent/tools/load-skill.js.map +1 -1
  26. package/dist/agent/tools/ops-tools.d.ts +24 -0
  27. package/dist/agent/tools/ops-tools.js +542 -0
  28. package/dist/agent/tools/ops-tools.js.map +1 -0
  29. package/dist/agent/tools/sync-tools.d.ts +33 -0
  30. package/dist/agent/tools/sync-tools.js +947 -0
  31. package/dist/agent/tools/sync-tools.js.map +1 -0
  32. package/dist/auth/github.d.ts +11 -8
  33. package/dist/auth/github.js +56 -75
  34. package/dist/auth/github.js.map +1 -1
  35. package/dist/cli/colors.d.ts +54 -0
  36. package/dist/cli/colors.js +133 -0
  37. package/dist/cli/colors.js.map +1 -0
  38. package/dist/cli/commands/app.js +121 -18
  39. package/dist/cli/commands/app.js.map +1 -1
  40. package/dist/cli/commands/auth.d.ts +1 -1
  41. package/dist/cli/commands/auth.js +26 -10
  42. package/dist/cli/commands/auth.js.map +1 -1
  43. package/dist/cli/commands/clone.d.ts +9 -0
  44. package/dist/cli/commands/clone.js +167 -0
  45. package/dist/cli/commands/clone.js.map +1 -0
  46. package/dist/cli/commands/commit.d.ts +8 -0
  47. package/dist/cli/commands/commit.js +44 -0
  48. package/dist/cli/commands/commit.js.map +1 -0
  49. package/dist/cli/commands/connector.js +10 -2
  50. package/dist/cli/commands/connector.js.map +1 -1
  51. package/dist/cli/commands/deploy.d.ts +4 -6
  52. package/dist/cli/commands/deploy.js +292 -115
  53. package/dist/cli/commands/deploy.js.map +1 -1
  54. package/dist/cli/commands/enrich.d.ts +11 -0
  55. package/dist/cli/commands/enrich.js +135 -0
  56. package/dist/cli/commands/enrich.js.map +1 -0
  57. package/dist/cli/commands/graphrag.d.ts +12 -0
  58. package/dist/cli/commands/graphrag.js +122 -0
  59. package/dist/cli/commands/graphrag.js.map +1 -0
  60. package/dist/cli/commands/init.js +29 -196
  61. package/dist/cli/commands/init.js.map +1 -1
  62. package/dist/cli/commands/join.js +23 -3
  63. package/dist/cli/commands/join.js.map +1 -1
  64. package/dist/cli/commands/orphans.d.ts +8 -0
  65. package/dist/cli/commands/orphans.js +125 -0
  66. package/dist/cli/commands/orphans.js.map +1 -0
  67. package/dist/cli/commands/provision.js +11 -7
  68. package/dist/cli/commands/provision.js.map +1 -1
  69. package/dist/cli/commands/r2.js +8 -2
  70. package/dist/cli/commands/r2.js.map +1 -1
  71. package/dist/cli/commands/redeploy.d.ts +9 -0
  72. package/dist/cli/commands/redeploy.js +203 -0
  73. package/dist/cli/commands/redeploy.js.map +1 -0
  74. package/dist/cli/commands/reset.d.ts +12 -0
  75. package/dist/cli/commands/reset.js +137 -0
  76. package/dist/cli/commands/reset.js.map +1 -0
  77. package/dist/cli/commands/resolve.d.ts +8 -0
  78. package/dist/cli/commands/resolve.js +85 -0
  79. package/dist/cli/commands/resolve.js.map +1 -0
  80. package/dist/cli/commands/review.d.ts +19 -0
  81. package/dist/cli/commands/review.js +128 -0
  82. package/dist/cli/commands/review.js.map +1 -0
  83. package/dist/cli/commands/serve.js +55 -8
  84. package/dist/cli/commands/serve.js.map +1 -1
  85. package/dist/cli/commands/source.d.ts +16 -0
  86. package/dist/cli/commands/source.js +159 -0
  87. package/dist/cli/commands/source.js.map +1 -0
  88. package/dist/cli/commands/start.js +307 -55
  89. package/dist/cli/commands/start.js.map +1 -1
  90. package/dist/cli/commands/sync-entities.d.ts +13 -0
  91. package/dist/cli/commands/sync-entities.js +242 -0
  92. package/dist/cli/commands/sync-entities.js.map +1 -0
  93. package/dist/cli/commands/sync.js +81 -5
  94. package/dist/cli/commands/sync.js.map +1 -1
  95. package/dist/cli/index.js +45 -9
  96. package/dist/cli/index.js.map +1 -1
  97. package/dist/cli/scaffolding.d.ts +2 -1
  98. package/dist/cli/scaffolding.js +38 -23
  99. package/dist/cli/scaffolding.js.map +1 -1
  100. package/dist/cli/setup-wizard.d.ts +30 -0
  101. package/dist/cli/setup-wizard.js +244 -0
  102. package/dist/cli/setup-wizard.js.map +1 -0
  103. package/dist/cli/sync-review-interactive.d.ts +31 -0
  104. package/dist/cli/sync-review-interactive.js +393 -0
  105. package/dist/cli/sync-review-interactive.js.map +1 -0
  106. package/dist/cli/theme.d.ts +31 -0
  107. package/dist/cli/theme.js +116 -0
  108. package/dist/cli/theme.js.map +1 -0
  109. package/dist/core/graph.d.ts +40 -12
  110. package/dist/core/graph.js +344 -104
  111. package/dist/core/graph.js.map +1 -1
  112. package/dist/core/migration-runner.d.ts +4 -1
  113. package/dist/core/migration-runner.js +14 -3
  114. package/dist/core/migration-runner.js.map +1 -1
  115. package/dist/core/types.d.ts +2 -4
  116. package/dist/core/types.js +1 -2
  117. package/dist/core/types.js.map +1 -1
  118. package/dist/core/user-config.d.ts +12 -0
  119. package/dist/core/user-config.js.map +1 -1
  120. package/dist/core/workspace-manager.d.ts +6 -1
  121. package/dist/core/workspace-manager.js +29 -4
  122. package/dist/core/workspace-manager.js.map +1 -1
  123. package/dist/core/workspace.d.ts +13 -5
  124. package/dist/core/workspace.js +115 -33
  125. package/dist/core/workspace.js.map +1 -1
  126. package/dist/lib/lib/utils.d.ts +2 -0
  127. package/dist/lib/lib/utils.js +6 -0
  128. package/dist/lib/lib/utils.js.map +1 -0
  129. package/dist/mcp/connector-manager.d.ts +7 -3
  130. package/dist/mcp/connector-manager.js +61 -16
  131. package/dist/mcp/connector-manager.js.map +1 -1
  132. package/dist/mcp/connectors/asana.d.ts +2 -0
  133. package/dist/mcp/connectors/asana.js +20 -0
  134. package/dist/mcp/connectors/asana.js.map +1 -0
  135. package/dist/mcp/connectors/definitions.d.ts +3 -1
  136. package/dist/mcp/connectors/definitions.js +19 -127
  137. package/dist/mcp/connectors/definitions.js.map +1 -1
  138. package/dist/mcp/connectors/figma.d.ts +5 -0
  139. package/dist/mcp/connectors/figma.js +21 -0
  140. package/dist/mcp/connectors/figma.js.map +1 -0
  141. package/dist/mcp/connectors/gdrive.d.ts +2 -0
  142. package/dist/mcp/connectors/gdrive.js +20 -0
  143. package/dist/mcp/connectors/gdrive.js.map +1 -0
  144. package/dist/mcp/connectors/granola.d.ts +2 -0
  145. package/dist/mcp/connectors/granola.js +12 -0
  146. package/dist/mcp/connectors/granola.js.map +1 -0
  147. package/dist/mcp/connectors/linear.d.ts +2 -0
  148. package/dist/mcp/connectors/linear.js +19 -0
  149. package/dist/mcp/connectors/linear.js.map +1 -0
  150. package/dist/mcp/connectors/obsidian.d.ts +2 -0
  151. package/dist/mcp/connectors/obsidian.js +19 -0
  152. package/dist/mcp/connectors/obsidian.js.map +1 -0
  153. package/dist/mcp/connectors/pipedrive.d.ts +2 -0
  154. package/dist/mcp/connectors/pipedrive.js +20 -0
  155. package/dist/mcp/connectors/pipedrive.js.map +1 -0
  156. package/dist/mcp/connectors/slack.d.ts +2 -0
  157. package/dist/mcp/connectors/slack.js +21 -0
  158. package/dist/mcp/connectors/slack.js.map +1 -0
  159. package/dist/mcp/oauth-provider.d.ts +41 -0
  160. package/dist/mcp/oauth-provider.js +160 -0
  161. package/dist/mcp/oauth-provider.js.map +1 -0
  162. package/dist/server/index.js +97 -11
  163. package/dist/server/index.js.map +1 -1
  164. package/dist/server/plugin-loader.d.ts +8 -0
  165. package/dist/server/plugin-loader.js +54 -2
  166. package/dist/server/plugin-loader.js.map +1 -1
  167. package/dist/server/routes/chat.d.ts +3 -2
  168. package/dist/server/routes/chat.js +67 -16
  169. package/dist/server/routes/chat.js.map +1 -1
  170. package/dist/server/routes/git-api.d.ts +9 -0
  171. package/dist/server/routes/git-api.js +82 -0
  172. package/dist/server/routes/git-api.js.map +1 -0
  173. package/dist/server/routes/graph-api.d.ts +2 -2
  174. package/dist/server/routes/graph-api.js +164 -3
  175. package/dist/server/routes/graph-api.js.map +1 -1
  176. package/dist/server/routes/workspace-api.d.ts +9 -0
  177. package/dist/server/routes/workspace-api.js +170 -0
  178. package/dist/server/routes/workspace-api.js.map +1 -0
  179. package/dist/services/assets/base.d.ts +2 -2
  180. package/dist/services/assets/base.js +4 -4
  181. package/dist/services/assets/base.js.map +1 -1
  182. package/dist/services/assets/index.d.ts +6 -6
  183. package/dist/services/assets/index.js +12 -12
  184. package/dist/services/assets/index.js.map +1 -1
  185. package/dist/services/git.d.ts +31 -0
  186. package/dist/services/git.js +92 -3
  187. package/dist/services/git.js.map +1 -1
  188. package/dist/services/github-provisioner.d.ts +8 -3
  189. package/dist/services/github-provisioner.js +35 -8
  190. package/dist/services/github-provisioner.js.map +1 -1
  191. package/dist/services/lint-service.js +8 -1
  192. package/dist/services/lint-service.js.map +1 -1
  193. package/dist/services/markdown.js +3 -3
  194. package/dist/services/markdown.js.map +1 -1
  195. package/dist/services/memory-service.d.ts +1 -1
  196. package/dist/services/memory-service.js +2 -3
  197. package/dist/services/memory-service.js.map +1 -1
  198. package/dist/services/orphan-service.d.ts +31 -0
  199. package/dist/services/orphan-service.js +100 -0
  200. package/dist/services/orphan-service.js.map +1 -0
  201. package/dist/services/sync/commit.d.ts +60 -0
  202. package/dist/services/sync/commit.js +370 -0
  203. package/dist/services/sync/commit.js.map +1 -0
  204. package/dist/services/sync/context-index.d.ts +69 -0
  205. package/dist/services/sync/context-index.js +280 -0
  206. package/dist/services/sync/context-index.js.map +1 -0
  207. package/dist/services/sync/derive.d.ts +34 -0
  208. package/dist/services/sync/derive.js +164 -0
  209. package/dist/services/sync/derive.js.map +1 -0
  210. package/dist/services/sync/enrichment-state.d.ts +31 -0
  211. package/dist/services/sync/enrichment-state.js +63 -0
  212. package/dist/services/sync/enrichment-state.js.map +1 -0
  213. package/dist/services/sync/enrichment.d.ts +25 -0
  214. package/dist/services/sync/enrichment.js +121 -0
  215. package/dist/services/sync/enrichment.js.map +1 -0
  216. package/dist/services/sync/frontmatter-extractor.d.ts +40 -0
  217. package/dist/services/sync/frontmatter-extractor.js +273 -0
  218. package/dist/services/sync/frontmatter-extractor.js.map +1 -0
  219. package/dist/services/sync/graph-match-state.d.ts +33 -0
  220. package/dist/services/sync/graph-match-state.js +61 -0
  221. package/dist/services/sync/graph-match-state.js.map +1 -0
  222. package/dist/services/sync/graph-match.d.ts +53 -0
  223. package/dist/services/sync/graph-match.js +316 -0
  224. package/dist/services/sync/graph-match.js.map +1 -0
  225. package/dist/services/sync/graphrag-client.d.ts +43 -0
  226. package/dist/services/sync/graphrag-client.js +94 -0
  227. package/dist/services/sync/graphrag-client.js.map +1 -0
  228. package/dist/services/sync/graphrag-config.d.ts +16 -0
  229. package/dist/services/sync/graphrag-config.js +39 -0
  230. package/dist/services/sync/graphrag-config.js.map +1 -0
  231. package/dist/services/sync/graphrag-context.d.ts +14 -0
  232. package/dist/services/sync/graphrag-context.js +109 -0
  233. package/dist/services/sync/graphrag-context.js.map +1 -0
  234. package/dist/services/sync/graphrag-indexer.d.ts +30 -0
  235. package/dist/services/sync/graphrag-indexer.js +358 -0
  236. package/dist/services/sync/graphrag-indexer.js.map +1 -0
  237. package/dist/services/sync/llm.d.ts +32 -0
  238. package/dist/services/sync/llm.js +115 -0
  239. package/dist/services/sync/llm.js.map +1 -0
  240. package/dist/services/sync/mcp-client.d.ts +59 -0
  241. package/dist/services/sync/mcp-client.js +285 -0
  242. package/dist/services/sync/mcp-client.js.map +1 -0
  243. package/dist/services/sync/model-factory.d.ts +10 -0
  244. package/dist/services/sync/model-factory.js +24 -0
  245. package/dist/services/sync/model-factory.js.map +1 -0
  246. package/dist/services/sync/name-quality.d.ts +31 -0
  247. package/dist/services/sync/name-quality.js +60 -0
  248. package/dist/services/sync/name-quality.js.map +1 -0
  249. package/dist/services/sync/output-schemas.d.ts +92 -0
  250. package/dist/services/sync/output-schemas.js +43 -0
  251. package/dist/services/sync/output-schemas.js.map +1 -0
  252. package/dist/services/sync/prompts.d.ts +19 -0
  253. package/dist/services/sync/prompts.js +128 -0
  254. package/dist/services/sync/prompts.js.map +1 -0
  255. package/dist/services/sync/reconciler.d.ts +48 -0
  256. package/dist/services/sync/reconciler.js +295 -0
  257. package/dist/services/sync/reconciler.js.map +1 -0
  258. package/dist/services/sync/source-config.d.ts +45 -0
  259. package/dist/services/sync/source-config.js +208 -0
  260. package/dist/services/sync/source-config.js.map +1 -0
  261. package/dist/services/sync/source-definitions/asana.d.ts +15 -0
  262. package/dist/services/sync/source-definitions/asana.js +48 -0
  263. package/dist/services/sync/source-definitions/asana.js.map +1 -0
  264. package/dist/services/sync/source-definitions/definitions.d.ts +21 -0
  265. package/dist/services/sync/source-definitions/definitions.js +26 -0
  266. package/dist/services/sync/source-definitions/definitions.js.map +1 -0
  267. package/dist/services/sync/source-definitions/gdrive.d.ts +16 -0
  268. package/dist/services/sync/source-definitions/gdrive.js +68 -0
  269. package/dist/services/sync/source-definitions/gdrive.js.map +1 -0
  270. package/dist/services/sync/source-definitions/granola.d.ts +2 -0
  271. package/dist/services/sync/source-definitions/granola.js +28 -0
  272. package/dist/services/sync/source-definitions/granola.js.map +1 -0
  273. package/dist/services/sync/source-definitions/linear.d.ts +2 -0
  274. package/dist/services/sync/source-definitions/linear.js +60 -0
  275. package/dist/services/sync/source-definitions/linear.js.map +1 -0
  276. package/dist/services/sync/source-definitions/obsidian.d.ts +2 -0
  277. package/dist/services/sync/source-definitions/obsidian.js +55 -0
  278. package/dist/services/sync/source-definitions/obsidian.js.map +1 -0
  279. package/dist/services/sync/source-definitions/pipedrive.d.ts +2 -0
  280. package/dist/services/sync/source-definitions/pipedrive.js +52 -0
  281. package/dist/services/sync/source-definitions/pipedrive.js.map +1 -0
  282. package/dist/services/sync/staging.d.ts +53 -0
  283. package/dist/services/sync/staging.js +131 -0
  284. package/dist/services/sync/staging.js.map +1 -0
  285. package/dist/services/sync/structured-extractor.d.ts +49 -0
  286. package/dist/services/sync/structured-extractor.js +344 -0
  287. package/dist/services/sync/structured-extractor.js.map +1 -0
  288. package/dist/services/sync/sync-runner.d.ts +32 -0
  289. package/dist/services/sync/sync-runner.js +195 -0
  290. package/dist/services/sync/sync-runner.js.map +1 -0
  291. package/dist/services/sync/sync-state.d.ts +43 -0
  292. package/dist/services/sync/sync-state.js +154 -0
  293. package/dist/services/sync/sync-state.js.map +1 -0
  294. package/dist/services/sync/types.d.ts +203 -0
  295. package/dist/services/sync/types.js +8 -0
  296. package/dist/services/sync/types.js.map +1 -0
  297. package/dist/services/sync/unstructured-extractor.d.ts +29 -0
  298. package/dist/services/sync/unstructured-extractor.js +197 -0
  299. package/dist/services/sync/unstructured-extractor.js.map +1 -0
  300. package/dist/services/vector-service.d.ts +11 -0
  301. package/dist/services/vector-service.js +42 -0
  302. package/dist/services/vector-service.js.map +1 -1
  303. package/dist/utils/git.d.ts +31 -4
  304. package/dist/utils/git.js +65 -7
  305. package/dist/utils/git.js.map +1 -1
  306. package/dist/utils/merge-resolver.d.ts +60 -0
  307. package/dist/utils/merge-resolver.js +304 -0
  308. package/dist/utils/merge-resolver.js.map +1 -0
  309. package/dist/utils/preflight.d.ts +2 -1
  310. package/dist/utils/preflight.js +8 -1
  311. package/dist/utils/preflight.js.map +1 -1
  312. package/dist/utils/workspace-config.d.ts +8 -0
  313. package/dist/utils/workspace-config.js +22 -0
  314. package/dist/utils/workspace-config.js.map +1 -0
  315. package/dist/web/_app/env.js +1 -0
  316. package/dist/web/_app/immutable/assets/0.BwJV4fvl.css +1 -0
  317. package/dist/web/_app/immutable/assets/2.DRHi7ABa.css +1 -0
  318. package/dist/web/_app/immutable/assets/3.CnAQdPKU.css +1 -0
  319. package/dist/web/_app/immutable/assets/4.BG92MufE.css +1 -0
  320. package/dist/web/_app/immutable/assets/5.CfrQIPYs.css +1 -0
  321. package/dist/web/_app/immutable/assets/ChatPanel.BNzaCFTL.css +1 -0
  322. package/dist/web/_app/immutable/assets/editor.D6Rjo7RE.css +1 -0
  323. package/dist/web/_app/immutable/chunks/4QY4j-jX.js +1 -0
  324. package/dist/web/_app/immutable/chunks/B4G4uWkV.js +1 -0
  325. package/dist/web/_app/immutable/chunks/BB_5th5W.js +3383 -0
  326. package/dist/web/_app/immutable/chunks/CUzqHQY_.js +1 -0
  327. package/dist/web/_app/immutable/chunks/CYrVHOHA.js +1 -0
  328. package/dist/web/_app/immutable/chunks/CksE5s8n.js +1 -0
  329. package/dist/web/_app/immutable/chunks/CqkleIqs.js +1 -0
  330. package/dist/web/_app/immutable/chunks/D0JBkEPE.js +86 -0
  331. package/dist/web/_app/immutable/chunks/D2K5GzLj.js +1 -0
  332. package/dist/web/_app/immutable/chunks/DEkoussQ.js +2 -0
  333. package/dist/web/_app/immutable/chunks/DW-KmHRi.js +1 -0
  334. package/dist/web/_app/immutable/chunks/DcCr4z9k.js +1 -0
  335. package/dist/web/_app/immutable/chunks/Dg2wWwJu.js +2 -0
  336. package/dist/web/_app/immutable/chunks/Dh_H7Owr.js +18 -0
  337. package/dist/web/_app/immutable/chunks/DnlgZ_Tk.js +5 -0
  338. package/dist/web/_app/immutable/chunks/DtVH--hH.js +6 -0
  339. package/dist/web/_app/immutable/chunks/PPVm8Dsz.js +1 -0
  340. package/dist/web/_app/immutable/chunks/SBEriEQR.js +1 -0
  341. package/dist/web/_app/immutable/chunks/WSUKABI_.js +1 -0
  342. package/dist/web/_app/immutable/chunks/YTERt3Ul.js +6 -0
  343. package/dist/web/_app/immutable/chunks/m_R7HatS.js +1 -0
  344. package/dist/web/_app/immutable/chunks/vlmEnjfO.js +1 -0
  345. package/dist/web/_app/immutable/entry/app.B9pwpU_x.js +2 -0
  346. package/dist/web/_app/immutable/entry/start.CDuNCEco.js +1 -0
  347. package/dist/web/_app/immutable/nodes/0.YEQhw1us.js +1 -0
  348. package/dist/web/_app/immutable/nodes/1.CvmHhpRy.js +1 -0
  349. package/dist/web/_app/immutable/nodes/2.c5k1r7dq.js +1 -0
  350. package/dist/web/_app/immutable/nodes/3.B24tcdLK.js +1 -0
  351. package/dist/web/_app/immutable/nodes/4.kX2m5Pp9.js +16 -0
  352. package/dist/web/_app/immutable/nodes/5.DELt6wTD.js +2 -0
  353. package/dist/web/_app/version.json +1 -0
  354. package/dist/web/index.html +41 -0
  355. package/package.json +21 -7
  356. /package/dist/agent/skills/{bundled/gather-context.md → gather-context.md} +0 -0
@@ -0,0 +1,542 @@
1
+ /**
2
+ * Operations Tools for Studiograph Agent
3
+ *
4
+ * These tools allow the agent to manage deployment and app plugins:
5
+ * - Deploy to Railway
6
+ * - Install app plugins
7
+ */
8
+ import { Type as T } from '@sinclair/typebox';
9
+ import { spawnSync, execSync } from 'child_process';
10
+ import { existsSync, readFileSync, mkdirSync, cpSync, readdirSync, writeFileSync, rmSync } from 'fs';
11
+ import { join } from 'path';
12
+ import { tmpdir, homedir } from 'os';
13
+ import { Octokit } from '@octokit/rest';
14
+ import { wrapToolResult } from './graph-tools.js';
15
+ import { createGitHubRepo, initAndPush } from '../../services/github-provisioner.js';
16
+ import { Workspace } from '../../core/workspace.js';
17
+ const RAILWAY_API = 'https://backboard.railway.com/graphql/v2';
18
+ async function railwayQuery(token, query, variables = {}) {
19
+ const res = await fetch(RAILWAY_API, {
20
+ method: 'POST',
21
+ headers: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json' },
22
+ body: JSON.stringify({ query, variables }),
23
+ });
24
+ const json = await res.json();
25
+ if (json.errors?.length)
26
+ throw new Error(json.errors.map((e) => e.message).join(', '));
27
+ return json.data;
28
+ }
29
+ function loadUserConfig() {
30
+ const configPath = join(homedir(), '.studiograph', 'user.json');
31
+ if (!existsSync(configPath))
32
+ return {};
33
+ try {
34
+ return JSON.parse(readFileSync(configPath, 'utf-8'));
35
+ }
36
+ catch {
37
+ return {};
38
+ }
39
+ }
40
+ /** Load GitHub PAT from env vars or ~/.studiograph/auth.json */
41
+ function loadGitHubToken() {
42
+ const envToken = process.env.STUDIOGRAPH_GITHUB_TOKEN || process.env.GITHUB_TOKEN;
43
+ if (envToken)
44
+ return envToken;
45
+ const authPath = join(homedir(), '.studiograph', 'auth.json');
46
+ if (!existsSync(authPath))
47
+ return null;
48
+ try {
49
+ const data = JSON.parse(readFileSync(authPath, 'utf-8'));
50
+ return data.token || null;
51
+ }
52
+ catch {
53
+ return null;
54
+ }
55
+ }
56
+ /**
57
+ * Create operations tools for the agent
58
+ */
59
+ export function createOpsTools(workspacePath, workspaceConfig) {
60
+ return [
61
+ // Install an app plugin
62
+ {
63
+ name: 'app_install',
64
+ label: 'Install App',
65
+ description: 'Install a Studiograph app plugin from a local directory or Git URL into the workspace. The source must contain an app.json manifest. Optionally builds before installing. Always confirm with the user before calling this.',
66
+ parameters: T.Object({
67
+ source: T.String({ description: 'Path to app source directory or Git URL (must contain app.json)' }),
68
+ commit: T.Optional(T.Boolean({ description: 'Commit to config repo after installing (default: true)' })),
69
+ push: T.Optional(T.Boolean({ description: 'Push config repo to remote after committing (default: false)' })),
70
+ }),
71
+ execute: async (_toolCallId, params) => {
72
+ let clonedTempDir = null;
73
+ try {
74
+ let sourceDir = params.source;
75
+ // Clone if source is a URL
76
+ const isUrl = sourceDir.startsWith('https://') || sourceDir.startsWith('http://') ||
77
+ sourceDir.startsWith('git@') || sourceDir.startsWith('git://') || sourceDir.startsWith('ssh://');
78
+ if (isUrl) {
79
+ const dir = join(tmpdir(), `studiograph-app-${Date.now()}`);
80
+ const result = spawnSync('git', ['clone', '--depth', '1', sourceDir, dir], { encoding: 'utf-8', stdio: 'pipe' });
81
+ if (result.status !== 0) {
82
+ return wrapToolResult({ error: `Failed to clone ${sourceDir}: ${result.stderr}` });
83
+ }
84
+ sourceDir = dir;
85
+ clonedTempDir = dir;
86
+ }
87
+ const manifestPath = join(sourceDir, 'app.json');
88
+ if (!existsSync(manifestPath)) {
89
+ return wrapToolResult({ error: `No app.json found in ${sourceDir}` });
90
+ }
91
+ const manifest = JSON.parse(readFileSync(manifestPath, 'utf-8'));
92
+ if (!manifest.name || !manifest.plugin || !manifest.mountPath) {
93
+ return wrapToolResult({ error: 'app.json missing required fields: name, plugin, mountPath' });
94
+ }
95
+ // Build if declared, or auto-detect from package.json
96
+ let buildCmd = manifest.build;
97
+ if (!buildCmd) {
98
+ const pkgPath = join(sourceDir, 'package.json');
99
+ if (existsSync(pkgPath)) {
100
+ try {
101
+ const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
102
+ if (pkg.scripts?.build) {
103
+ buildCmd = 'npm install --ignore-scripts && npm run build';
104
+ }
105
+ }
106
+ catch { /* ignore */ }
107
+ }
108
+ }
109
+ if (buildCmd) {
110
+ try {
111
+ execSync(buildCmd, { cwd: sourceDir, stdio: 'pipe' });
112
+ }
113
+ catch (err) {
114
+ return wrapToolResult({ error: `Build failed: ${err?.stderr?.toString() ?? err.message}` });
115
+ }
116
+ }
117
+ // Copy files to .studiograph/apps/<name>/
118
+ const studiographDir = join(workspacePath, '.studiograph');
119
+ const destDir = join(studiographDir, 'apps', manifest.name);
120
+ mkdirSync(destDir, { recursive: true });
121
+ const installed = [];
122
+ // app.json
123
+ cpSync(manifestPath, join(destDir, 'app.json'));
124
+ installed.push('app.json');
125
+ // plugin file (fall back to dist/ if not found at root)
126
+ const pluginRelPath = manifest.plugin.replace(/^\.\//, '');
127
+ let pluginSrc = join(sourceDir, pluginRelPath);
128
+ if (!existsSync(pluginSrc)) {
129
+ pluginSrc = join(sourceDir, 'dist', pluginRelPath);
130
+ }
131
+ if (!existsSync(pluginSrc)) {
132
+ return wrapToolResult({ error: `Plugin file not found: ${join(sourceDir, pluginRelPath)} (also checked dist/)` });
133
+ }
134
+ cpSync(pluginSrc, join(destDir, 'plugin.js'));
135
+ installed.push('plugin.js');
136
+ // entity-types.json
137
+ if (manifest.entityTypes) {
138
+ const etSrc = join(sourceDir, manifest.entityTypes.replace(/^\.\//, ''));
139
+ if (existsSync(etSrc)) {
140
+ cpSync(etSrc, join(destDir, 'entity-types.json'));
141
+ installed.push('entity-types.json');
142
+ }
143
+ }
144
+ // skills/
145
+ const skillsSrc = join(sourceDir, 'skills');
146
+ if (existsSync(skillsSrc)) {
147
+ cpSync(skillsSrc, join(destDir, 'skills'), { recursive: true });
148
+ installed.push(`skills/ (${readdirSync(skillsSrc).length} entries)`);
149
+ }
150
+ // tools/
151
+ const toolsSrc = join(sourceDir, 'tools');
152
+ if (existsSync(toolsSrc)) {
153
+ cpSync(toolsSrc, join(destDir, 'tools'), { recursive: true });
154
+ installed.push(`tools/ (${readdirSync(toolsSrc).length} entries)`);
155
+ }
156
+ // theme/ — probe theme/ → themes/ → dist/themes/
157
+ let themeSrcDir = null;
158
+ if (manifest.themeDir) {
159
+ themeSrcDir = join(sourceDir, manifest.themeDir.replace(/^\.\//, ''));
160
+ }
161
+ else {
162
+ for (const candidate of ['theme', 'themes', join('dist', 'themes')]) {
163
+ const p = join(sourceDir, candidate);
164
+ if (existsSync(p)) {
165
+ themeSrcDir = p;
166
+ break;
167
+ }
168
+ }
169
+ }
170
+ if (themeSrcDir && existsSync(themeSrcDir)) {
171
+ // Flatten single subdirectory (e.g. themes/default/ → theme/)
172
+ const themeEntries = readdirSync(themeSrcDir);
173
+ if (!themeEntries.includes('tokens.json') && themeEntries.length === 1) {
174
+ const sub = join(themeSrcDir, themeEntries[0]);
175
+ if (existsSync(join(sub, 'tokens.json')))
176
+ themeSrcDir = sub;
177
+ }
178
+ const themeDest = join(destDir, 'theme');
179
+ const tokensPath = join(themeDest, 'tokens.json');
180
+ const existingTokens = existsSync(tokensPath) ? readFileSync(tokensPath, 'utf-8') : null;
181
+ cpSync(themeSrcDir, themeDest, { recursive: true });
182
+ if (existingTokens !== null)
183
+ writeFileSync(tokensPath, existingTokens);
184
+ installed.push('theme/');
185
+ }
186
+ // Git commit
187
+ const shouldCommit = params.commit !== false;
188
+ let committed = false;
189
+ if (shouldCommit) {
190
+ try {
191
+ execSync(`git -C "${studiographDir}" add "apps/${manifest.name}/"`, { stdio: 'pipe' });
192
+ const versionLabel = manifest.version ? ` v${manifest.version}` : '';
193
+ execSync(`git -C "${studiographDir}" commit -m "install ${manifest.name}${versionLabel}"`, { stdio: 'pipe' });
194
+ committed = true;
195
+ }
196
+ catch {
197
+ // Nothing to commit
198
+ }
199
+ }
200
+ // Push
201
+ if (params.push && committed) {
202
+ try {
203
+ execSync(`git -C "${studiographDir}" push`, { stdio: 'pipe' });
204
+ }
205
+ catch {
206
+ // Push failed — non-fatal
207
+ }
208
+ }
209
+ return wrapToolResult({
210
+ success: true,
211
+ app: manifest.name,
212
+ version: manifest.version,
213
+ mountPath: manifest.mountPath,
214
+ installed,
215
+ committed,
216
+ pushed: params.push && committed,
217
+ });
218
+ }
219
+ catch (err) {
220
+ return wrapToolResult({ error: err instanceof Error ? err.message : String(err) });
221
+ }
222
+ finally {
223
+ if (clonedTempDir)
224
+ rmSync(clonedTempDir, { recursive: true, force: true });
225
+ }
226
+ },
227
+ },
228
+ // List installed apps
229
+ {
230
+ name: 'app_list',
231
+ label: 'List Apps',
232
+ description: 'List all installed Studiograph app plugins in the workspace.',
233
+ parameters: T.Object({}),
234
+ execute: async (_toolCallId, _params) => {
235
+ try {
236
+ const appsDir = join(workspacePath, '.studiograph', 'apps');
237
+ if (!existsSync(appsDir)) {
238
+ return wrapToolResult({ apps: [], count: 0 });
239
+ }
240
+ const apps = [];
241
+ for (const entry of readdirSync(appsDir)) {
242
+ const manifestPath = join(appsDir, entry, 'app.json');
243
+ if (!existsSync(manifestPath))
244
+ continue;
245
+ try {
246
+ const manifest = JSON.parse(readFileSync(manifestPath, 'utf-8'));
247
+ apps.push({
248
+ name: manifest.name,
249
+ version: manifest.version,
250
+ description: manifest.description,
251
+ mountPath: manifest.mountPath,
252
+ });
253
+ }
254
+ catch {
255
+ // Skip malformed manifests
256
+ }
257
+ }
258
+ return wrapToolResult({ apps, count: apps.length });
259
+ }
260
+ catch (err) {
261
+ return wrapToolResult({ error: err instanceof Error ? err.message : String(err) });
262
+ }
263
+ },
264
+ },
265
+ // Deploy to Railway
266
+ {
267
+ name: 'deploy_railway',
268
+ label: 'Deploy to Railway',
269
+ description: 'Deploy the Studiograph workspace to Railway (first-time setup). Creates a project, service, volume, sets env vars, and triggers a deploy. Reads tokens from ~/.studiograph/user.json and ~/.studiograph/auth.json automatically. Only ask the user for tokens if they are not already saved. For redeploying an existing service, use redeploy_railway instead.',
270
+ parameters: T.Object({
271
+ railwayToken: T.Optional(T.String({ description: 'Railway API token (reads from user config if omitted)' })),
272
+ githubToken: T.Optional(T.String({ description: 'GitHub PAT (reads from auth.json if omitted)' })),
273
+ projectName: T.Optional(T.String({ description: 'Railway project name (default: team name)' })),
274
+ }),
275
+ execute: async (_toolCallId, params) => {
276
+ try {
277
+ // Resolve tokens from params, user config, or auth
278
+ const userConfig = loadUserConfig();
279
+ const railwayToken = params.railwayToken || process.env.RAILWAY_TOKEN || userConfig.railway_token;
280
+ if (!railwayToken) {
281
+ return wrapToolResult({ success: false, error: 'No Railway token found. Provide railwayToken parameter, set RAILWAY_TOKEN env var, or save railway_token in ~/.studiograph/user.json.' });
282
+ }
283
+ const githubToken = params.githubToken || loadGitHubToken();
284
+ if (!githubToken) {
285
+ return wrapToolResult({ success: false, error: 'No GitHub token found. Provide githubToken parameter, run `studiograph auth github`, or set GITHUB_TOKEN env var.' });
286
+ }
287
+ // Detect config repo URL
288
+ const configDir = join(workspacePath, '.studiograph');
289
+ const remote = spawnSync('git', ['remote', 'get-url', 'origin'], { cwd: configDir, encoding: 'utf-8' });
290
+ const configRepoUrl = remote.status === 0 ? remote.stdout.trim() : null;
291
+ if (!configRepoUrl) {
292
+ return wrapToolResult({ error: 'Could not detect config repo URL from .studiograph remote' });
293
+ }
294
+ const { randomBytes } = await import('crypto');
295
+ const apiKey = randomBytes(24).toString('base64url');
296
+ const webhookSecret = randomBytes(20).toString('hex');
297
+ const projectName = params.projectName
298
+ || (workspaceConfig.team_name ? `${workspaceConfig.team_name} — Studiograph` : 'Studiograph');
299
+ // Determine start command from package version
300
+ const pkgPath = new URL('../../../package.json', import.meta.url);
301
+ const pkgVersion = JSON.parse(readFileSync(pkgPath, 'utf-8')).version;
302
+ const startCommand = pkgVersion.includes('-')
303
+ ? `npx studiograph@${pkgVersion} serve`
304
+ : 'npx studiograph serve';
305
+ const query = (q, variables = {}) => railwayQuery(railwayToken, q, variables);
306
+ // Create project
307
+ const projectData = await query(`
308
+ mutation($input: ProjectCreateInput!) { projectCreate(input: $input) { id name } }
309
+ `, { input: { name: projectName } });
310
+ const projectId = projectData.projectCreate.id;
311
+ // Get environment
312
+ const envData = await query(`
313
+ query($id: String!) { project(id: $id) { environments { edges { node { id name } } } } }
314
+ `, { id: projectId });
315
+ const envId = envData.project.environments.edges[0].node.id;
316
+ // Create empty service
317
+ const serviceData = await query(`
318
+ mutation($input: ServiceCreateInput!) { serviceCreate(input: $input) { id name } }
319
+ `, { input: { projectId, name: 'studiograph' } });
320
+ const serviceId = serviceData.serviceCreate.id;
321
+ // Set start command
322
+ await query(`
323
+ mutation($serviceId: String!, $environmentId: String!, $input: ServiceInstanceUpdateInput!) {
324
+ serviceInstanceUpdate(serviceId: $serviceId, environmentId: $environmentId, input: $input)
325
+ }
326
+ `, { serviceId, environmentId: envId, input: { startCommand } });
327
+ // Create volume
328
+ await query(`
329
+ mutation($input: VolumeCreateInput!) { volumeCreate(input: $input) { id } }
330
+ `, { input: { projectId, serviceId, mountPath: '/workspace' } });
331
+ // Set env vars
332
+ await query(`
333
+ mutation($input: VariableCollectionUpsertInput!) { variableCollectionUpsert(input: $input) }
334
+ `, { input: { projectId, environmentId: envId, serviceId, variables: {
335
+ STUDIOGRAPH_CONFIG_REPO: configRepoUrl,
336
+ GITHUB_TOKEN: githubToken,
337
+ PORT: '3001',
338
+ API_KEYS: apiKey,
339
+ WEBHOOK_SECRET: webhookSecret,
340
+ } } });
341
+ // Generate domain
342
+ let domain = '';
343
+ try {
344
+ const d = await query(`
345
+ mutation($input: ServiceDomainCreateInput!) { serviceDomainCreate(input: $input) { id domain } }
346
+ `, { input: { serviceId, environmentId: envId } });
347
+ domain = d.serviceDomainCreate?.domain || '';
348
+ }
349
+ catch { /* non-fatal */ }
350
+ // Connect image (triggers deploy)
351
+ await query(`
352
+ mutation($id: String!, $input: ServiceConnectInput!) { serviceConnect(id: $id, input: $input) { id } }
353
+ `, { id: serviceId, input: { image: 'node:20' } });
354
+ return wrapToolResult({
355
+ success: true,
356
+ projectId,
357
+ projectName: projectData.projectCreate.name,
358
+ serviceId,
359
+ domain: domain ? `https://${domain}` : null,
360
+ dashboardUrl: `https://railway.com/project/${projectId}`,
361
+ apiKey,
362
+ webhookSecret,
363
+ startCommand,
364
+ });
365
+ }
366
+ catch (err) {
367
+ return wrapToolResult({ error: err instanceof Error ? err.message : String(err) });
368
+ }
369
+ },
370
+ },
371
+ // Redeploy existing Railway service
372
+ {
373
+ name: 'redeploy_railway',
374
+ label: 'Redeploy Railway',
375
+ description: 'Trigger a redeploy of an existing Railway service. Reads railway_token, railway_project_id, railway_service_id, and railway_environment_id from ~/.studiograph/user.json. Updates the start command to the current package version before redeploying. Call this after workspace_push to update the deployed server with latest commits — pushing alone does NOT update Railway.',
376
+ parameters: T.Object({}),
377
+ execute: async (_toolCallId, _params) => {
378
+ try {
379
+ const userConfig = loadUserConfig();
380
+ const token = process.env.RAILWAY_TOKEN || userConfig.railway_token;
381
+ if (!token) {
382
+ return wrapToolResult({ success: false, error: 'No Railway token found. Set railway_token in ~/.studiograph/user.json or RAILWAY_TOKEN env var.' });
383
+ }
384
+ const projectId = userConfig.railway_project_id;
385
+ let serviceId = userConfig.railway_service_id;
386
+ let environmentId = userConfig.railway_environment_id;
387
+ if (!projectId) {
388
+ return wrapToolResult({ success: false, error: 'No Railway project linked. Run `studiograph redeploy <railway-dashboard-url>` first or set railway_project_id in ~/.studiograph/user.json.' });
389
+ }
390
+ // Resolve service and environment from API if not saved
391
+ if (!serviceId || !environmentId) {
392
+ const data = await railwayQuery(token, `
393
+ query($id: String!) {
394
+ project(id: $id) {
395
+ services { edges { node { id name } } }
396
+ environments { edges { node { id name } } }
397
+ }
398
+ }
399
+ `, { id: projectId });
400
+ if (!environmentId) {
401
+ environmentId = data.project.environments.edges[0]?.node.id;
402
+ }
403
+ if (!serviceId) {
404
+ const services = data.project.services.edges.map((e) => e.node);
405
+ if (services.length === 0) {
406
+ return wrapToolResult({ success: false, error: 'No services found in this Railway project.' });
407
+ }
408
+ serviceId = services[0].id;
409
+ }
410
+ }
411
+ if (!environmentId) {
412
+ return wrapToolResult({ success: false, error: 'Could not determine Railway environment.' });
413
+ }
414
+ // Update start command to current version
415
+ let startCommand = 'npx studiograph serve';
416
+ try {
417
+ const pkgPath = new URL('../../../package.json', import.meta.url);
418
+ const pkgVersion = JSON.parse(readFileSync(pkgPath, 'utf-8')).version;
419
+ startCommand = pkgVersion.includes('-')
420
+ ? `npx studiograph@${pkgVersion} serve`
421
+ : 'npx studiograph serve';
422
+ await railwayQuery(token, `
423
+ mutation($serviceId: String!, $environmentId: String!, $input: ServiceInstanceUpdateInput!) {
424
+ serviceInstanceUpdate(serviceId: $serviceId, environmentId: $environmentId, input: $input)
425
+ }
426
+ `, { serviceId, environmentId, input: { startCommand } });
427
+ }
428
+ catch { /* non-fatal — continue with redeploy */ }
429
+ // Find latest deployment and redeploy
430
+ const deployData = await railwayQuery(token, `
431
+ query($projectId: String!, $serviceId: String!, $environmentId: String!) {
432
+ deployments(
433
+ input: { projectId: $projectId, serviceId: $serviceId, environmentId: $environmentId }
434
+ first: 1
435
+ ) {
436
+ edges { node { id status } }
437
+ }
438
+ }
439
+ `, { projectId, serviceId, environmentId });
440
+ const latestDeploy = deployData.deployments.edges[0]?.node;
441
+ if (!latestDeploy) {
442
+ return wrapToolResult({ success: false, error: 'No previous deployment found. Run `studiograph deploy railway` first.' });
443
+ }
444
+ await railwayQuery(token, `
445
+ mutation($id: String!) {
446
+ deploymentRedeploy(id: $id) { id status }
447
+ }
448
+ `, { id: latestDeploy.id });
449
+ return wrapToolResult({
450
+ success: true,
451
+ message: 'Redeploy triggered',
452
+ startCommand,
453
+ dashboardUrl: `https://railway.com/project/${projectId}`,
454
+ });
455
+ }
456
+ catch (err) {
457
+ return wrapToolResult({ success: false, error: err instanceof Error ? err.message : String(err) });
458
+ }
459
+ },
460
+ },
461
+ // Provision GitHub repos
462
+ {
463
+ name: 'provision_repos',
464
+ label: 'Provision GitHub Repos',
465
+ description: 'Create GitHub repositories and push local repos that have no remote. Provisions repos that are missing a github_url in workspace config. Always confirm with the user before calling this.',
466
+ parameters: T.Object({
467
+ repos: T.Optional(T.Array(T.String(), { description: 'Specific repo names to provision (default: all unprovisioned repos)' })),
468
+ org: T.Optional(T.String({ description: 'GitHub organization (default: from workspace config)' })),
469
+ }),
470
+ execute: async (_toolCallId, params) => {
471
+ try {
472
+ // Resolve GitHub org
473
+ const org = params.org || workspaceConfig.github?.org;
474
+ if (!org) {
475
+ return wrapToolResult({ error: 'No GitHub org specified. Provide an org parameter or set github.org in workspace config.' });
476
+ }
477
+ // Resolve GitHub token
478
+ const token = loadGitHubToken();
479
+ if (!token) {
480
+ return wrapToolResult({ error: 'No GitHub token found. Run `studiograph auth github`, set GITHUB_TOKEN env var, or save token in ~/.studiograph/auth.json.' });
481
+ }
482
+ const octokit = new Octokit({ auth: token });
483
+ // Load fresh config to get current repo state
484
+ const workspace = new Workspace(workspacePath);
485
+ const config = await workspace.loadConfig();
486
+ // Filter repos to provision
487
+ let targetRepos = config.repos;
488
+ if (params.repos?.length) {
489
+ targetRepos = targetRepos.filter((r) => params.repos.includes(r.name));
490
+ const found = targetRepos.map((r) => r.name);
491
+ const missing = params.repos.filter((n) => !found.includes(n));
492
+ if (missing.length) {
493
+ return wrapToolResult({ error: `Repos not found in workspace config: ${missing.join(', ')}` });
494
+ }
495
+ }
496
+ // Only provision repos without github_url
497
+ const unprovisioned = targetRepos.filter((r) => !r.github_url);
498
+ const skippedNames = targetRepos.filter((r) => r.github_url).map((r) => r.name);
499
+ if (unprovisioned.length === 0) {
500
+ return wrapToolResult({ provisioned: [], skipped: skippedNames, message: 'All repos already have remotes.' });
501
+ }
502
+ const provisioned = [];
503
+ const errors = [];
504
+ for (const repo of unprovisioned) {
505
+ try {
506
+ const isPrivate = repo.access !== 'public';
507
+ const cloneUrl = await createGitHubRepo(octokit, org, repo.name, isPrivate, repo.description);
508
+ const localPath = join(workspacePath, repo.path);
509
+ const pushed = initAndPush(localPath, cloneUrl);
510
+ // Update config entry
511
+ const idx = config.repos.findIndex((r) => r.name === repo.name);
512
+ if (idx !== -1) {
513
+ config.repos[idx] = { ...config.repos[idx], github_url: cloneUrl };
514
+ }
515
+ provisioned.push(repo.name);
516
+ if (!pushed) {
517
+ errors.push(`${repo.name}: created repo but no commits to push`);
518
+ }
519
+ }
520
+ catch (err) {
521
+ errors.push(`${repo.name}: ${err instanceof Error ? err.message : String(err)}`);
522
+ }
523
+ }
524
+ // Persist updated config
525
+ if (provisioned.length > 0) {
526
+ workspace.writeConfig(config);
527
+ }
528
+ return wrapToolResult({
529
+ provisioned,
530
+ skipped: skippedNames,
531
+ org,
532
+ ...(errors.length ? { errors } : {}),
533
+ });
534
+ }
535
+ catch (err) {
536
+ return wrapToolResult({ error: err instanceof Error ? err.message : String(err) });
537
+ }
538
+ },
539
+ },
540
+ ];
541
+ }
542
+ //# sourceMappingURL=ops-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ops-tools.js","sourceRoot":"","sources":["../../../src/agent/tools/ops-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Sync & Enrich Tools for Studiograph Agent
3
+ *
4
+ * These tools allow the agent to orchestrate sync and enrich operations:
5
+ * - Run the sync pipeline, apply staging, commit
6
+ * - Run LLM enrichment on entities
7
+ * - Manage source configs
8
+ */
9
+ import type { WorkspaceConfig } from '../../core/types.js';
10
+ import type { ConnectorRegistry } from './connector-tools.js';
11
+ /**
12
+ * Mutable holder so the connector registry can be injected after async init.
13
+ * The sync inspect/sample tools gracefully degrade when registry is null.
14
+ */
15
+ export interface ConnectorRegistryRef {
16
+ registry: ConnectorRegistry | null;
17
+ }
18
+ /**
19
+ * Create sync tools for the agent
20
+ */
21
+ export declare function createSyncTools(workspacePath: string, workspaceConfig: WorkspaceConfig, registryRef?: ConnectorRegistryRef): {
22
+ name: string;
23
+ label: string;
24
+ description: string;
25
+ parameters: import("@sinclair/typebox").TObject<{}>;
26
+ execute: (toolCallId: string, params: any) => Promise<{
27
+ content: {
28
+ type: "text";
29
+ text: string;
30
+ }[];
31
+ details: any;
32
+ }>;
33
+ }[];