studiograph 1.1.2 → 1.2.0-beta.1

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 (349) hide show
  1. package/LICENSE +191 -0
  2. package/README.md +301 -10
  3. package/dist/agent/orchestrator.d.ts +17 -9
  4. package/dist/agent/orchestrator.js +142 -97
  5. package/dist/agent/orchestrator.js.map +1 -1
  6. package/dist/agent/prompts/system.md +186 -0
  7. package/dist/agent/skill-loader.d.ts +48 -0
  8. package/dist/agent/skill-loader.js +166 -0
  9. package/dist/agent/skill-loader.js.map +1 -0
  10. package/dist/agent/skills/enrich-entities.md +136 -0
  11. package/dist/agent/skills/entity-schema.md +502 -0
  12. package/dist/agent/skills/gather-context.md +46 -0
  13. package/dist/agent/skills/obsidian-source-setup.md +246 -0
  14. package/dist/agent/skills/skill-loader.d.ts +48 -0
  15. package/dist/agent/skills/skill-loader.js +166 -0
  16. package/dist/agent/skills/skill-loader.js.map +1 -0
  17. package/dist/agent/skills/sync-configuration.md +144 -0
  18. package/dist/agent/skills/sync-setup.md +68 -0
  19. package/dist/agent/tools/connector-tools.d.ts +37 -0
  20. package/dist/agent/tools/connector-tools.js +132 -0
  21. package/dist/agent/tools/connector-tools.js.map +1 -0
  22. package/dist/agent/tools/fs-tools.d.ts +39 -0
  23. package/dist/agent/tools/fs-tools.js +106 -0
  24. package/dist/agent/tools/fs-tools.js.map +1 -0
  25. package/dist/agent/tools/graph-tools.d.ts +30 -2
  26. package/dist/agent/tools/graph-tools.js +154 -37
  27. package/dist/agent/tools/graph-tools.js.map +1 -1
  28. package/dist/agent/tools/load-skill.d.ts +42 -0
  29. package/dist/agent/tools/load-skill.js +45 -0
  30. package/dist/agent/tools/load-skill.js.map +1 -0
  31. package/dist/agent/tools/sync-tools.d.ts +25 -0
  32. package/dist/agent/tools/sync-tools.js +691 -0
  33. package/dist/agent/tools/sync-tools.js.map +1 -0
  34. package/dist/agent/tools/tool-loader.d.ts +25 -0
  35. package/dist/agent/tools/tool-loader.js +73 -0
  36. package/dist/agent/tools/tool-loader.js.map +1 -0
  37. package/dist/auth/github.d.ts +11 -8
  38. package/dist/auth/github.js +56 -75
  39. package/dist/auth/github.js.map +1 -1
  40. package/dist/cli/colors.d.ts +54 -0
  41. package/dist/cli/colors.js +133 -0
  42. package/dist/cli/colors.js.map +1 -0
  43. package/dist/cli/commands/app.d.ts +7 -0
  44. package/dist/cli/commands/app.js +167 -0
  45. package/dist/cli/commands/app.js.map +1 -0
  46. package/dist/cli/commands/auth.d.ts +1 -1
  47. package/dist/cli/commands/auth.js +26 -10
  48. package/dist/cli/commands/auth.js.map +1 -1
  49. package/dist/cli/commands/clone.d.ts +9 -0
  50. package/dist/cli/commands/clone.js +167 -0
  51. package/dist/cli/commands/clone.js.map +1 -0
  52. package/dist/cli/commands/commit.d.ts +8 -0
  53. package/dist/cli/commands/commit.js +43 -0
  54. package/dist/cli/commands/commit.js.map +1 -0
  55. package/dist/cli/commands/config.d.ts +13 -0
  56. package/dist/cli/commands/config.js +276 -0
  57. package/dist/cli/commands/config.js.map +1 -0
  58. package/dist/cli/commands/connector.d.ts +33 -0
  59. package/dist/cli/commands/connector.js +178 -0
  60. package/dist/cli/commands/connector.js.map +1 -0
  61. package/dist/cli/commands/deploy.d.ts +11 -0
  62. package/dist/cli/commands/deploy.js +153 -0
  63. package/dist/cli/commands/deploy.js.map +1 -0
  64. package/dist/cli/commands/enrich.d.ts +11 -0
  65. package/dist/cli/commands/enrich.js +135 -0
  66. package/dist/cli/commands/enrich.js.map +1 -0
  67. package/dist/cli/commands/graphrag.d.ts +12 -0
  68. package/dist/cli/commands/graphrag.js +122 -0
  69. package/dist/cli/commands/graphrag.js.map +1 -0
  70. package/dist/cli/commands/index.d.ts +15 -0
  71. package/dist/cli/commands/index.js +117 -0
  72. package/dist/cli/commands/index.js.map +1 -0
  73. package/dist/cli/commands/init.js +110 -210
  74. package/dist/cli/commands/init.js.map +1 -1
  75. package/dist/cli/commands/join.js +89 -24
  76. package/dist/cli/commands/join.js.map +1 -1
  77. package/dist/cli/commands/lint.d.ts +8 -0
  78. package/dist/cli/commands/lint.js +70 -0
  79. package/dist/cli/commands/lint.js.map +1 -0
  80. package/dist/cli/commands/mcp.d.ts +27 -0
  81. package/dist/cli/commands/mcp.js +56 -0
  82. package/dist/cli/commands/mcp.js.map +1 -0
  83. package/dist/cli/commands/orphans.d.ts +8 -0
  84. package/dist/cli/commands/orphans.js +125 -0
  85. package/dist/cli/commands/orphans.js.map +1 -0
  86. package/dist/cli/commands/provision.d.ts +8 -0
  87. package/dist/cli/commands/provision.js +116 -0
  88. package/dist/cli/commands/provision.js.map +1 -0
  89. package/dist/cli/commands/r2.d.ts +2 -0
  90. package/dist/cli/commands/r2.js +87 -6
  91. package/dist/cli/commands/r2.js.map +1 -1
  92. package/dist/cli/commands/reset.d.ts +12 -0
  93. package/dist/cli/commands/reset.js +137 -0
  94. package/dist/cli/commands/reset.js.map +1 -0
  95. package/dist/cli/commands/review.d.ts +19 -0
  96. package/dist/cli/commands/review.js +128 -0
  97. package/dist/cli/commands/review.js.map +1 -0
  98. package/dist/cli/commands/serve.js +47 -2
  99. package/dist/cli/commands/serve.js.map +1 -1
  100. package/dist/cli/commands/source.d.ts +16 -0
  101. package/dist/cli/commands/source.js +159 -0
  102. package/dist/cli/commands/source.js.map +1 -0
  103. package/dist/cli/commands/start.js +472 -103
  104. package/dist/cli/commands/start.js.map +1 -1
  105. package/dist/cli/commands/sync-entities.d.ts +13 -0
  106. package/dist/cli/commands/sync-entities.js +242 -0
  107. package/dist/cli/commands/sync-entities.js.map +1 -0
  108. package/dist/cli/commands/sync.js +40 -9
  109. package/dist/cli/commands/sync.js.map +1 -1
  110. package/dist/cli/commands/update.d.ts +8 -0
  111. package/dist/cli/commands/update.js +155 -0
  112. package/dist/cli/commands/update.js.map +1 -0
  113. package/dist/cli/index.js +114 -3
  114. package/dist/cli/index.js.map +1 -1
  115. package/dist/cli/scaffolding.d.ts +10 -0
  116. package/dist/cli/scaffolding.js +302 -0
  117. package/dist/cli/scaffolding.js.map +1 -0
  118. package/dist/cli/setup-wizard.d.ts +30 -0
  119. package/dist/cli/setup-wizard.js +244 -0
  120. package/dist/cli/setup-wizard.js.map +1 -0
  121. package/dist/cli/sync-review-interactive.d.ts +31 -0
  122. package/dist/cli/sync-review-interactive.js +393 -0
  123. package/dist/cli/sync-review-interactive.js.map +1 -0
  124. package/dist/cli/theme.d.ts +31 -0
  125. package/dist/cli/theme.js +116 -0
  126. package/dist/cli/theme.js.map +1 -0
  127. package/dist/core/graph.d.ts +16 -9
  128. package/dist/core/graph.js +263 -145
  129. package/dist/core/graph.js.map +1 -1
  130. package/dist/core/migration-runner.d.ts +42 -0
  131. package/dist/core/migration-runner.js +232 -0
  132. package/dist/core/migration-runner.js.map +1 -0
  133. package/dist/core/migration-types.d.ts +101 -0
  134. package/dist/core/migration-types.js +21 -0
  135. package/dist/core/migration-types.js.map +1 -0
  136. package/dist/core/migrations/20260219-formalize-memory-location.d.ts +2 -0
  137. package/dist/core/migrations/20260219-formalize-memory-location.js +35 -0
  138. package/dist/core/migrations/20260219-formalize-memory-location.js.map +1 -0
  139. package/dist/core/migrations/20260220-add-workspace-metadata.d.ts +12 -0
  140. package/dist/core/migrations/20260220-add-workspace-metadata.js +65 -0
  141. package/dist/core/migrations/20260220-add-workspace-metadata.js.map +1 -0
  142. package/dist/core/migrations/20260220-add-workspace-readme.d.ts +11 -0
  143. package/dist/core/migrations/20260220-add-workspace-readme.js +82 -0
  144. package/dist/core/migrations/20260220-add-workspace-readme.js.map +1 -0
  145. package/dist/core/migrations/20260220-migrate-yaml-to-json.d.ts +9 -0
  146. package/dist/core/migrations/20260220-migrate-yaml-to-json.js +64 -0
  147. package/dist/core/migrations/20260220-migrate-yaml-to-json.js.map +1 -0
  148. package/dist/core/migrations/index.d.ts +11 -0
  149. package/dist/core/migrations/index.js +23 -0
  150. package/dist/core/migrations/index.js.map +1 -0
  151. package/dist/core/schema-registry.d.ts +36 -0
  152. package/dist/core/schema-registry.js +161 -0
  153. package/dist/core/schema-registry.js.map +1 -0
  154. package/dist/core/types.d.ts +242 -3
  155. package/dist/core/types.js +21 -2
  156. package/dist/core/types.js.map +1 -1
  157. package/dist/core/user-config.d.ts +16 -0
  158. package/dist/core/user-config.js +8 -0
  159. package/dist/core/user-config.js.map +1 -1
  160. package/dist/core/validation.d.ts +973 -32
  161. package/dist/core/validation.js +163 -4
  162. package/dist/core/validation.js.map +1 -1
  163. package/dist/core/workspace-manager.d.ts +26 -2
  164. package/dist/core/workspace-manager.js +113 -15
  165. package/dist/core/workspace-manager.js.map +1 -1
  166. package/dist/core/workspace.d.ts +20 -11
  167. package/dist/core/workspace.js +123 -34
  168. package/dist/core/workspace.js.map +1 -1
  169. package/dist/mcp/connector-manager.d.ts +65 -0
  170. package/dist/mcp/connector-manager.js +223 -0
  171. package/dist/mcp/connector-manager.js.map +1 -0
  172. package/dist/mcp/connectors/asana.d.ts +2 -0
  173. package/dist/mcp/connectors/asana.js +20 -0
  174. package/dist/mcp/connectors/asana.js.map +1 -0
  175. package/dist/mcp/connectors/definitions.d.ts +45 -0
  176. package/dist/mcp/connectors/definitions.js +32 -0
  177. package/dist/mcp/connectors/definitions.js.map +1 -0
  178. package/dist/mcp/connectors/figma.d.ts +5 -0
  179. package/dist/mcp/connectors/figma.js +21 -0
  180. package/dist/mcp/connectors/figma.js.map +1 -0
  181. package/dist/mcp/connectors/gdrive.d.ts +2 -0
  182. package/dist/mcp/connectors/gdrive.js +20 -0
  183. package/dist/mcp/connectors/gdrive.js.map +1 -0
  184. package/dist/mcp/connectors/granola.d.ts +2 -0
  185. package/dist/mcp/connectors/granola.js +12 -0
  186. package/dist/mcp/connectors/granola.js.map +1 -0
  187. package/dist/mcp/connectors/linear.d.ts +2 -0
  188. package/dist/mcp/connectors/linear.js +19 -0
  189. package/dist/mcp/connectors/linear.js.map +1 -0
  190. package/dist/mcp/connectors/obsidian.d.ts +2 -0
  191. package/dist/mcp/connectors/obsidian.js +19 -0
  192. package/dist/mcp/connectors/obsidian.js.map +1 -0
  193. package/dist/mcp/connectors/pipedrive.d.ts +2 -0
  194. package/dist/mcp/connectors/pipedrive.js +20 -0
  195. package/dist/mcp/connectors/pipedrive.js.map +1 -0
  196. package/dist/mcp/connectors/slack.d.ts +2 -0
  197. package/dist/mcp/connectors/slack.js +21 -0
  198. package/dist/mcp/connectors/slack.js.map +1 -0
  199. package/dist/mcp/oauth-provider.d.ts +41 -0
  200. package/dist/mcp/oauth-provider.js +160 -0
  201. package/dist/mcp/oauth-provider.js.map +1 -0
  202. package/dist/mcp/server.d.ts +11 -0
  203. package/dist/mcp/server.js +28 -0
  204. package/dist/mcp/server.js.map +1 -0
  205. package/dist/mcp/tools.d.ts +14 -0
  206. package/dist/mcp/tools.js +172 -0
  207. package/dist/mcp/tools.js.map +1 -0
  208. package/dist/server/index.js +17 -4
  209. package/dist/server/index.js.map +1 -1
  210. package/dist/server/plugin-loader.d.ts +15 -0
  211. package/dist/server/plugin-loader.js +68 -2
  212. package/dist/server/plugin-loader.js.map +1 -1
  213. package/dist/server/routes/graph-api.js +1 -1
  214. package/dist/server/routes/graph-api.js.map +1 -1
  215. package/dist/server/routes/webhook.js +33 -0
  216. package/dist/server/routes/webhook.js.map +1 -1
  217. package/dist/services/github-provisioner.d.ts +9 -3
  218. package/dist/services/github-provisioner.js +46 -8
  219. package/dist/services/github-provisioner.js.map +1 -1
  220. package/dist/services/lint-service.d.ts +27 -0
  221. package/dist/services/lint-service.js +83 -0
  222. package/dist/services/lint-service.js.map +1 -0
  223. package/dist/services/markdown.d.ts +9 -0
  224. package/dist/services/markdown.js +26 -5
  225. package/dist/services/markdown.js.map +1 -1
  226. package/dist/services/memory-service.d.ts +1 -2
  227. package/dist/services/memory-service.js +5 -4
  228. package/dist/services/memory-service.js.map +1 -1
  229. package/dist/services/orphan-service.d.ts +31 -0
  230. package/dist/services/orphan-service.js +100 -0
  231. package/dist/services/orphan-service.js.map +1 -0
  232. package/dist/services/sync/commit.d.ts +58 -0
  233. package/dist/services/sync/commit.js +350 -0
  234. package/dist/services/sync/commit.js.map +1 -0
  235. package/dist/services/sync/context-index.d.ts +69 -0
  236. package/dist/services/sync/context-index.js +280 -0
  237. package/dist/services/sync/context-index.js.map +1 -0
  238. package/dist/services/sync/derive.d.ts +34 -0
  239. package/dist/services/sync/derive.js +164 -0
  240. package/dist/services/sync/derive.js.map +1 -0
  241. package/dist/services/sync/enrichment-state.d.ts +31 -0
  242. package/dist/services/sync/enrichment-state.js +63 -0
  243. package/dist/services/sync/enrichment-state.js.map +1 -0
  244. package/dist/services/sync/enrichment.d.ts +25 -0
  245. package/dist/services/sync/enrichment.js +121 -0
  246. package/dist/services/sync/enrichment.js.map +1 -0
  247. package/dist/services/sync/frontmatter-extractor.d.ts +40 -0
  248. package/dist/services/sync/frontmatter-extractor.js +273 -0
  249. package/dist/services/sync/frontmatter-extractor.js.map +1 -0
  250. package/dist/services/sync/graph-match-state.d.ts +33 -0
  251. package/dist/services/sync/graph-match-state.js +61 -0
  252. package/dist/services/sync/graph-match-state.js.map +1 -0
  253. package/dist/services/sync/graph-match.d.ts +53 -0
  254. package/dist/services/sync/graph-match.js +316 -0
  255. package/dist/services/sync/graph-match.js.map +1 -0
  256. package/dist/services/sync/graphrag-client.d.ts +43 -0
  257. package/dist/services/sync/graphrag-client.js +94 -0
  258. package/dist/services/sync/graphrag-client.js.map +1 -0
  259. package/dist/services/sync/graphrag-config.d.ts +16 -0
  260. package/dist/services/sync/graphrag-config.js +39 -0
  261. package/dist/services/sync/graphrag-config.js.map +1 -0
  262. package/dist/services/sync/graphrag-context.d.ts +14 -0
  263. package/dist/services/sync/graphrag-context.js +109 -0
  264. package/dist/services/sync/graphrag-context.js.map +1 -0
  265. package/dist/services/sync/graphrag-indexer.d.ts +30 -0
  266. package/dist/services/sync/graphrag-indexer.js +358 -0
  267. package/dist/services/sync/graphrag-indexer.js.map +1 -0
  268. package/dist/services/sync/llm.d.ts +32 -0
  269. package/dist/services/sync/llm.js +115 -0
  270. package/dist/services/sync/llm.js.map +1 -0
  271. package/dist/services/sync/mcp-client.d.ts +59 -0
  272. package/dist/services/sync/mcp-client.js +285 -0
  273. package/dist/services/sync/mcp-client.js.map +1 -0
  274. package/dist/services/sync/model-factory.d.ts +10 -0
  275. package/dist/services/sync/model-factory.js +24 -0
  276. package/dist/services/sync/model-factory.js.map +1 -0
  277. package/dist/services/sync/name-quality.d.ts +31 -0
  278. package/dist/services/sync/name-quality.js +60 -0
  279. package/dist/services/sync/name-quality.js.map +1 -0
  280. package/dist/services/sync/output-schemas.d.ts +92 -0
  281. package/dist/services/sync/output-schemas.js +43 -0
  282. package/dist/services/sync/output-schemas.js.map +1 -0
  283. package/dist/services/sync/prompts.d.ts +19 -0
  284. package/dist/services/sync/prompts.js +128 -0
  285. package/dist/services/sync/prompts.js.map +1 -0
  286. package/dist/services/sync/reconciler.d.ts +48 -0
  287. package/dist/services/sync/reconciler.js +295 -0
  288. package/dist/services/sync/reconciler.js.map +1 -0
  289. package/dist/services/sync/source-config.d.ts +45 -0
  290. package/dist/services/sync/source-config.js +208 -0
  291. package/dist/services/sync/source-config.js.map +1 -0
  292. package/dist/services/sync/source-definitions/asana.d.ts +15 -0
  293. package/dist/services/sync/source-definitions/asana.js +48 -0
  294. package/dist/services/sync/source-definitions/asana.js.map +1 -0
  295. package/dist/services/sync/source-definitions/definitions.d.ts +21 -0
  296. package/dist/services/sync/source-definitions/definitions.js +26 -0
  297. package/dist/services/sync/source-definitions/definitions.js.map +1 -0
  298. package/dist/services/sync/source-definitions/gdrive.d.ts +16 -0
  299. package/dist/services/sync/source-definitions/gdrive.js +68 -0
  300. package/dist/services/sync/source-definitions/gdrive.js.map +1 -0
  301. package/dist/services/sync/source-definitions/granola.d.ts +2 -0
  302. package/dist/services/sync/source-definitions/granola.js +28 -0
  303. package/dist/services/sync/source-definitions/granola.js.map +1 -0
  304. package/dist/services/sync/source-definitions/linear.d.ts +2 -0
  305. package/dist/services/sync/source-definitions/linear.js +60 -0
  306. package/dist/services/sync/source-definitions/linear.js.map +1 -0
  307. package/dist/services/sync/source-definitions/obsidian.d.ts +2 -0
  308. package/dist/services/sync/source-definitions/obsidian.js +55 -0
  309. package/dist/services/sync/source-definitions/obsidian.js.map +1 -0
  310. package/dist/services/sync/source-definitions/pipedrive.d.ts +2 -0
  311. package/dist/services/sync/source-definitions/pipedrive.js +52 -0
  312. package/dist/services/sync/source-definitions/pipedrive.js.map +1 -0
  313. package/dist/services/sync/staging.d.ts +53 -0
  314. package/dist/services/sync/staging.js +131 -0
  315. package/dist/services/sync/staging.js.map +1 -0
  316. package/dist/services/sync/structured-extractor.d.ts +49 -0
  317. package/dist/services/sync/structured-extractor.js +344 -0
  318. package/dist/services/sync/structured-extractor.js.map +1 -0
  319. package/dist/services/sync/sync-runner.d.ts +32 -0
  320. package/dist/services/sync/sync-runner.js +195 -0
  321. package/dist/services/sync/sync-runner.js.map +1 -0
  322. package/dist/services/sync/sync-state.d.ts +43 -0
  323. package/dist/services/sync/sync-state.js +154 -0
  324. package/dist/services/sync/sync-state.js.map +1 -0
  325. package/dist/services/sync/types.d.ts +203 -0
  326. package/dist/services/sync/types.js +8 -0
  327. package/dist/services/sync/types.js.map +1 -0
  328. package/dist/services/sync/unstructured-extractor.d.ts +29 -0
  329. package/dist/services/sync/unstructured-extractor.js +197 -0
  330. package/dist/services/sync/unstructured-extractor.js.map +1 -0
  331. package/dist/services/vector-service.d.ts +88 -0
  332. package/dist/services/vector-service.js +322 -0
  333. package/dist/services/vector-service.js.map +1 -0
  334. package/dist/utils/git.d.ts +26 -4
  335. package/dist/utils/git.js +55 -7
  336. package/dist/utils/git.js.map +1 -1
  337. package/dist/utils/merge-resolver.d.ts +34 -0
  338. package/dist/utils/merge-resolver.js +201 -0
  339. package/dist/utils/merge-resolver.js.map +1 -0
  340. package/dist/utils/preflight.d.ts +2 -1
  341. package/dist/utils/preflight.js +8 -1
  342. package/dist/utils/preflight.js.map +1 -1
  343. package/dist/utils/version-checker.d.ts +23 -0
  344. package/dist/utils/version-checker.js +116 -0
  345. package/dist/utils/version-checker.js.map +1 -0
  346. package/dist/utils/workspace-config.d.ts +8 -0
  347. package/dist/utils/workspace-config.js +22 -0
  348. package/dist/utils/workspace-config.js.map +1 -0
  349. package/package.json +24 -11
@@ -0,0 +1,64 @@
1
+ import { join } from 'path';
2
+ import * as yaml from 'js-yaml';
3
+ /**
4
+ * Migration: Convert legacy YAML workspace config to JSON
5
+ *
6
+ * Early versions of Studiograph used config.yml for workspace configuration.
7
+ * This migration converts any remaining YAML configs to the new workspace.json
8
+ * format and removes the legacy file.
9
+ */
10
+ export const migration = {
11
+ id: '20260220-migrate-yaml-to-json',
12
+ description: 'Convert legacy YAML workspace config to JSON format',
13
+ targetVersion: '1.2.0',
14
+ async up(context) {
15
+ const yamlPath = join(context.workspacePath, '.studiograph', 'config.yml');
16
+ const jsonPath = join(context.workspacePath, '.studiograph', 'workspace.json');
17
+ // Check if YAML config exists
18
+ if (!context.fileExists(yamlPath)) {
19
+ context.log('No legacy YAML config found - skipping');
20
+ return;
21
+ }
22
+ // If JSON config already exists, we've likely already migrated
23
+ if (context.fileExists(jsonPath)) {
24
+ context.warn('Both YAML and JSON configs exist - removing YAML backup');
25
+ context.deleteFile(yamlPath);
26
+ return;
27
+ }
28
+ context.log('Converting YAML config to JSON...');
29
+ // Read and parse YAML config
30
+ const yamlContent = context.readFile(yamlPath);
31
+ const config = yaml.load(yamlContent);
32
+ // Ensure required fields exist
33
+ if (!config.version)
34
+ config.version = '1.0.0';
35
+ if (!config.created_at)
36
+ config.created_at = new Date().toISOString();
37
+ if (!config.repos)
38
+ config.repos = [];
39
+ // Write as JSON
40
+ context.writeFile(jsonPath, JSON.stringify(config, null, 2));
41
+ context.log(`✓ Converted YAML config to workspace.json`);
42
+ // Remove legacy YAML file
43
+ context.deleteFile(yamlPath);
44
+ context.log(`✓ Removed legacy config.yml`);
45
+ },
46
+ async down(context) {
47
+ const yamlPath = join(context.workspacePath, '.studiograph', 'config.yml');
48
+ const jsonPath = join(context.workspacePath, '.studiograph', 'workspace.json');
49
+ // Rollback: convert JSON back to YAML
50
+ if (context.fileExists(jsonPath)) {
51
+ const jsonContent = context.readFile(jsonPath);
52
+ const config = JSON.parse(jsonContent);
53
+ const yamlContent = yaml.dump(config);
54
+ context.writeFile(yamlPath, yamlContent);
55
+ context.log('Rollback: Restored config.yml from workspace.json');
56
+ }
57
+ },
58
+ async shouldRun(context) {
59
+ const yamlPath = join(context.workspacePath, '.studiograph', 'config.yml');
60
+ // Only run if YAML config exists
61
+ return context.fileExists(yamlPath);
62
+ },
63
+ };
64
+ //# sourceMappingURL=20260220-migrate-yaml-to-json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20260220-migrate-yaml-to-json.js","sourceRoot":"","sources":["../../../src/core/migrations/20260220-migrate-yaml-to-json.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * All migrations in chronological order.
3
+ * Naming convention: YYYYMMDD-kebab-case-description.ts
4
+ *
5
+ * Migration execution order:
6
+ * 1. 20260219-formalize-memory-location — Ensures global memory directory
7
+ * 2. 20260220-migrate-yaml-to-json — Converts legacy YAML configs
8
+ * 3. 20260220-add-workspace-metadata — Adds tracking fields
9
+ * 4. 20260220-add-workspace-readme — Creates documentation
10
+ */
11
+ export declare const ALL_MIGRATIONS: import("../migration-types.js").Migration[];
@@ -0,0 +1,23 @@
1
+ import { migration as m20260219 } from './20260219-formalize-memory-location.js';
2
+ import { migration as m20260220_yaml } from './20260220-migrate-yaml-to-json.js';
3
+ import { migration as m20260220_metadata } from './20260220-add-workspace-metadata.js';
4
+ import { migration as m20260220_readme } from './20260220-add-workspace-readme.js';
5
+ // Future migrations added here
6
+ /**
7
+ * All migrations in chronological order.
8
+ * Naming convention: YYYYMMDD-kebab-case-description.ts
9
+ *
10
+ * Migration execution order:
11
+ * 1. 20260219-formalize-memory-location — Ensures global memory directory
12
+ * 2. 20260220-migrate-yaml-to-json — Converts legacy YAML configs
13
+ * 3. 20260220-add-workspace-metadata — Adds tracking fields
14
+ * 4. 20260220-add-workspace-readme — Creates documentation
15
+ */
16
+ export const ALL_MIGRATIONS = [
17
+ m20260219,
18
+ m20260220_yaml,
19
+ m20260220_metadata,
20
+ m20260220_readme,
21
+ // New migrations appended in chronological order
22
+ ];
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/migrations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,SAAS,IAAI,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAE,SAAS,IAAI,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AACvF,OAAO,EAAE,SAAS,IAAI,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACnF,+BAA+B;AAE/B;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,SAAS;IACT,cAAc;IACd,kBAAkB;IAClB,gBAAgB;IAChB,iDAAiD;CAClD,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * SchemaRegistry
3
+ *
4
+ * Builds and caches merged Zod schemas from workspace config schema_extensions.
5
+ * Supports additive extensions to existing entity types and fully custom new types.
6
+ */
7
+ import { z } from 'zod';
8
+ import { FieldDefinition, SchemaExtension } from './types.js';
9
+ export declare class SchemaRegistry {
10
+ private extensions;
11
+ private schemaCache;
12
+ private fieldDefsCache;
13
+ constructor(extensions?: Record<string, SchemaExtension>);
14
+ private build;
15
+ /**
16
+ * Get the Zod schema for an entity type (built-in + extensions, or custom).
17
+ * Falls back to the built-in schema, then EntityBaseSchema.
18
+ */
19
+ getSchema(entityType: string): z.ZodTypeAny;
20
+ /**
21
+ * Get the declared field definitions for an entity type.
22
+ * For extended built-in types: returns additional_fields only.
23
+ * For custom types: returns all fields.
24
+ * For types with no extension: returns [].
25
+ */
26
+ getFieldDefs(entityType: string): FieldDefinition[];
27
+ /**
28
+ * Get all entity type names: built-in types + custom extension types.
29
+ */
30
+ getAllTypes(): string[];
31
+ /**
32
+ * Return a formatted prompt section describing the workspace's schema extensions.
33
+ * Returns "" when no extensions are defined.
34
+ */
35
+ toPromptSection(): string;
36
+ }
@@ -0,0 +1,161 @@
1
+ /**
2
+ * SchemaRegistry
3
+ *
4
+ * Builds and caches merged Zod schemas from workspace config schema_extensions.
5
+ * Supports additive extensions to existing entity types and fully custom new types.
6
+ */
7
+ import { z } from 'zod';
8
+ import { ENTITY_SCHEMAS, EntityBaseSchema } from './validation.js';
9
+ /**
10
+ * Build a record of Zod field entries from an array of FieldDefinitions.
11
+ */
12
+ function buildZodFields(fields) {
13
+ const result = {};
14
+ for (const field of fields) {
15
+ let zodType;
16
+ switch (field.type) {
17
+ case 'string':
18
+ zodType = z.string();
19
+ break;
20
+ case 'number':
21
+ zodType = z.number();
22
+ break;
23
+ case 'boolean':
24
+ zodType = z.boolean();
25
+ break;
26
+ case 'enum': {
27
+ const values = field.enum_values;
28
+ if (!values || values.length === 0) {
29
+ zodType = z.string(); // fallback if enum_values missing
30
+ }
31
+ else {
32
+ zodType = z.enum(values);
33
+ }
34
+ break;
35
+ }
36
+ case 'string[]':
37
+ zodType = z.array(z.string());
38
+ break;
39
+ default:
40
+ zodType = z.string();
41
+ }
42
+ if (field.description) {
43
+ zodType = zodType.describe(field.description);
44
+ }
45
+ if (!field.required) {
46
+ zodType = zodType.optional();
47
+ }
48
+ result[field.name] = zodType;
49
+ }
50
+ return result;
51
+ }
52
+ export class SchemaRegistry {
53
+ extensions;
54
+ schemaCache = new Map();
55
+ fieldDefsCache = new Map();
56
+ constructor(extensions) {
57
+ this.extensions = extensions ?? {};
58
+ this.build();
59
+ }
60
+ build() {
61
+ const builtinTypes = new Set(Object.keys(ENTITY_SCHEMAS));
62
+ for (const [typeKey, extension] of Object.entries(this.extensions)) {
63
+ if (builtinTypes.has(typeKey)) {
64
+ // Extend an existing built-in schema
65
+ const base = ENTITY_SCHEMAS[typeKey];
66
+ const additionalFields = extension.additional_fields ?? [];
67
+ if (additionalFields.length > 0) {
68
+ const zodFields = buildZodFields(additionalFields);
69
+ const extended = base.extend(zodFields);
70
+ this.schemaCache.set(typeKey, extended);
71
+ }
72
+ this.fieldDefsCache.set(typeKey, additionalFields);
73
+ }
74
+ else {
75
+ // Build a new custom type from EntityBaseSchema
76
+ const customFields = extension.fields ?? [];
77
+ const zodFields = buildZodFields(customFields);
78
+ const schema = EntityBaseSchema.extend(zodFields).passthrough();
79
+ this.schemaCache.set(typeKey, schema);
80
+ this.fieldDefsCache.set(typeKey, customFields);
81
+ }
82
+ }
83
+ }
84
+ /**
85
+ * Get the Zod schema for an entity type (built-in + extensions, or custom).
86
+ * Falls back to the built-in schema, then EntityBaseSchema.
87
+ */
88
+ getSchema(entityType) {
89
+ if (this.schemaCache.has(entityType)) {
90
+ return this.schemaCache.get(entityType);
91
+ }
92
+ if (entityType in ENTITY_SCHEMAS) {
93
+ return ENTITY_SCHEMAS[entityType];
94
+ }
95
+ return EntityBaseSchema;
96
+ }
97
+ /**
98
+ * Get the declared field definitions for an entity type.
99
+ * For extended built-in types: returns additional_fields only.
100
+ * For custom types: returns all fields.
101
+ * For types with no extension: returns [].
102
+ */
103
+ getFieldDefs(entityType) {
104
+ return this.fieldDefsCache.get(entityType) ?? [];
105
+ }
106
+ /**
107
+ * Get all entity type names: built-in types + custom extension types.
108
+ */
109
+ getAllTypes() {
110
+ const builtin = Object.keys(ENTITY_SCHEMAS);
111
+ const customTypes = Object.keys(this.extensions).filter(k => !(k in ENTITY_SCHEMAS));
112
+ return [...new Set([...builtin, ...customTypes])];
113
+ }
114
+ /**
115
+ * Return a formatted prompt section describing the workspace's schema extensions.
116
+ * Returns "" when no extensions are defined.
117
+ */
118
+ toPromptSection() {
119
+ if (Object.keys(this.extensions).length === 0) {
120
+ return '';
121
+ }
122
+ const builtinTypes = new Set(Object.keys(ENTITY_SCHEMAS));
123
+ const lines = ['## Workspace Schema Extensions', ''];
124
+ for (const [typeKey, extension] of Object.entries(this.extensions)) {
125
+ const isBuiltin = builtinTypes.has(typeKey);
126
+ const fields = isBuiltin
127
+ ? (extension.additional_fields ?? [])
128
+ : (extension.fields ?? []);
129
+ if (fields.length === 0)
130
+ continue;
131
+ if (isBuiltin) {
132
+ lines.push(`**${typeKey}** — additional fields:`);
133
+ }
134
+ else {
135
+ const desc = extension.description
136
+ ? ` (${extension.description})`
137
+ : '';
138
+ const label = extension.label ?? typeKey;
139
+ lines.push(`**${typeKey}** — custom entity type${desc}:`);
140
+ if (extension.label && extension.label !== typeKey) {
141
+ lines[lines.length - 1] = `**${typeKey}** (${label}) — custom entity type${desc}:`;
142
+ }
143
+ }
144
+ for (const field of fields) {
145
+ const req = field.required ? 'required' : 'optional';
146
+ const typeStr = field.type === 'enum' && field.enum_values?.length
147
+ ? `enum: ${field.enum_values.join('|')}`
148
+ : field.type;
149
+ const descPart = field.description ? `: ${field.description}` : '';
150
+ lines.push(`- \`${field.name}\` (${typeStr}, ${req})${descPart}`);
151
+ }
152
+ lines.push('');
153
+ }
154
+ // Remove trailing empty line
155
+ while (lines.length > 0 && lines[lines.length - 1] === '') {
156
+ lines.pop();
157
+ }
158
+ return lines.join('\n');
159
+ }
160
+ }
161
+ //# sourceMappingURL=schema-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-registry.js","sourceRoot":"","sources":["../../src/core/schema-registry.ts"],"names":[],"mappings":"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"}
@@ -71,6 +71,122 @@ export type RepoConfigInput = Omit<RepoConfig, 'path' | 'access'> & {
71
71
  /**
72
72
  * Workspace configuration
73
73
  */
74
+ /**
75
+ * Field definition for schema extensions
76
+ */
77
+ export declare const FieldDefinitionSchema: z.ZodObject<{
78
+ name: z.ZodString;
79
+ type: z.ZodEnum<["string", "number", "boolean", "enum", "string[]"]>;
80
+ required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
81
+ description: z.ZodOptional<z.ZodString>;
82
+ enum_values: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
83
+ default: z.ZodOptional<z.ZodUnknown>;
84
+ }, "strip", z.ZodTypeAny, {
85
+ name: string;
86
+ type: "string" | "number" | "boolean" | "enum" | "string[]";
87
+ required: boolean;
88
+ description?: string | undefined;
89
+ enum_values?: string[] | undefined;
90
+ default?: unknown;
91
+ }, {
92
+ name: string;
93
+ type: "string" | "number" | "boolean" | "enum" | "string[]";
94
+ description?: string | undefined;
95
+ required?: boolean | undefined;
96
+ enum_values?: string[] | undefined;
97
+ default?: unknown;
98
+ }>;
99
+ export type FieldDefinition = z.infer<typeof FieldDefinitionSchema>;
100
+ /**
101
+ * Schema extension for an existing or custom entity type
102
+ */
103
+ export declare const SchemaExtensionSchema: z.ZodObject<{
104
+ label: z.ZodOptional<z.ZodString>;
105
+ description: z.ZodOptional<z.ZodString>;
106
+ additional_fields: z.ZodOptional<z.ZodArray<z.ZodObject<{
107
+ name: z.ZodString;
108
+ type: z.ZodEnum<["string", "number", "boolean", "enum", "string[]"]>;
109
+ required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
110
+ description: z.ZodOptional<z.ZodString>;
111
+ enum_values: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
112
+ default: z.ZodOptional<z.ZodUnknown>;
113
+ }, "strip", z.ZodTypeAny, {
114
+ name: string;
115
+ type: "string" | "number" | "boolean" | "enum" | "string[]";
116
+ required: boolean;
117
+ description?: string | undefined;
118
+ enum_values?: string[] | undefined;
119
+ default?: unknown;
120
+ }, {
121
+ name: string;
122
+ type: "string" | "number" | "boolean" | "enum" | "string[]";
123
+ description?: string | undefined;
124
+ required?: boolean | undefined;
125
+ enum_values?: string[] | undefined;
126
+ default?: unknown;
127
+ }>, "many">>;
128
+ fields: z.ZodOptional<z.ZodArray<z.ZodObject<{
129
+ name: z.ZodString;
130
+ type: z.ZodEnum<["string", "number", "boolean", "enum", "string[]"]>;
131
+ required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
132
+ description: z.ZodOptional<z.ZodString>;
133
+ enum_values: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
134
+ default: z.ZodOptional<z.ZodUnknown>;
135
+ }, "strip", z.ZodTypeAny, {
136
+ name: string;
137
+ type: "string" | "number" | "boolean" | "enum" | "string[]";
138
+ required: boolean;
139
+ description?: string | undefined;
140
+ enum_values?: string[] | undefined;
141
+ default?: unknown;
142
+ }, {
143
+ name: string;
144
+ type: "string" | "number" | "boolean" | "enum" | "string[]";
145
+ description?: string | undefined;
146
+ required?: boolean | undefined;
147
+ enum_values?: string[] | undefined;
148
+ default?: unknown;
149
+ }>, "many">>;
150
+ }, "strip", z.ZodTypeAny, {
151
+ description?: string | undefined;
152
+ label?: string | undefined;
153
+ additional_fields?: {
154
+ name: string;
155
+ type: "string" | "number" | "boolean" | "enum" | "string[]";
156
+ required: boolean;
157
+ description?: string | undefined;
158
+ enum_values?: string[] | undefined;
159
+ default?: unknown;
160
+ }[] | undefined;
161
+ fields?: {
162
+ name: string;
163
+ type: "string" | "number" | "boolean" | "enum" | "string[]";
164
+ required: boolean;
165
+ description?: string | undefined;
166
+ enum_values?: string[] | undefined;
167
+ default?: unknown;
168
+ }[] | undefined;
169
+ }, {
170
+ description?: string | undefined;
171
+ label?: string | undefined;
172
+ additional_fields?: {
173
+ name: string;
174
+ type: "string" | "number" | "boolean" | "enum" | "string[]";
175
+ description?: string | undefined;
176
+ required?: boolean | undefined;
177
+ enum_values?: string[] | undefined;
178
+ default?: unknown;
179
+ }[] | undefined;
180
+ fields?: {
181
+ name: string;
182
+ type: "string" | "number" | "boolean" | "enum" | "string[]";
183
+ description?: string | undefined;
184
+ required?: boolean | undefined;
185
+ enum_values?: string[] | undefined;
186
+ default?: unknown;
187
+ }[] | undefined;
188
+ }>;
189
+ export type SchemaExtension = z.infer<typeof SchemaExtensionSchema>;
74
190
  export declare const WorkspaceConfigSchema: z.ZodObject<{
75
191
  version: z.ZodString;
76
192
  team_name: z.ZodString;
@@ -100,7 +216,6 @@ export declare const WorkspaceConfigSchema: z.ZodObject<{
100
216
  model_provider: z.ZodOptional<z.ZodString>;
101
217
  model_id: z.ZodOptional<z.ZodString>;
102
218
  api_key: z.ZodOptional<z.ZodString>;
103
- anthropic_api_key: z.ZodOptional<z.ZodString>;
104
219
  r2_config: z.ZodOptional<z.ZodObject<{
105
220
  account_id: z.ZodOptional<z.ZodString>;
106
221
  bucket: z.ZodOptional<z.ZodString>;
@@ -127,6 +242,92 @@ export declare const WorkspaceConfigSchema: z.ZodObject<{
127
242
  }, {
128
243
  org?: string | undefined;
129
244
  }>>;
245
+ schema_extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
246
+ label: z.ZodOptional<z.ZodString>;
247
+ description: z.ZodOptional<z.ZodString>;
248
+ additional_fields: z.ZodOptional<z.ZodArray<z.ZodObject<{
249
+ name: z.ZodString;
250
+ type: z.ZodEnum<["string", "number", "boolean", "enum", "string[]"]>;
251
+ required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
252
+ description: z.ZodOptional<z.ZodString>;
253
+ enum_values: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
254
+ default: z.ZodOptional<z.ZodUnknown>;
255
+ }, "strip", z.ZodTypeAny, {
256
+ name: string;
257
+ type: "string" | "number" | "boolean" | "enum" | "string[]";
258
+ required: boolean;
259
+ description?: string | undefined;
260
+ enum_values?: string[] | undefined;
261
+ default?: unknown;
262
+ }, {
263
+ name: string;
264
+ type: "string" | "number" | "boolean" | "enum" | "string[]";
265
+ description?: string | undefined;
266
+ required?: boolean | undefined;
267
+ enum_values?: string[] | undefined;
268
+ default?: unknown;
269
+ }>, "many">>;
270
+ fields: z.ZodOptional<z.ZodArray<z.ZodObject<{
271
+ name: z.ZodString;
272
+ type: z.ZodEnum<["string", "number", "boolean", "enum", "string[]"]>;
273
+ required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
274
+ description: z.ZodOptional<z.ZodString>;
275
+ enum_values: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
276
+ default: z.ZodOptional<z.ZodUnknown>;
277
+ }, "strip", z.ZodTypeAny, {
278
+ name: string;
279
+ type: "string" | "number" | "boolean" | "enum" | "string[]";
280
+ required: boolean;
281
+ description?: string | undefined;
282
+ enum_values?: string[] | undefined;
283
+ default?: unknown;
284
+ }, {
285
+ name: string;
286
+ type: "string" | "number" | "boolean" | "enum" | "string[]";
287
+ description?: string | undefined;
288
+ required?: boolean | undefined;
289
+ enum_values?: string[] | undefined;
290
+ default?: unknown;
291
+ }>, "many">>;
292
+ }, "strip", z.ZodTypeAny, {
293
+ description?: string | undefined;
294
+ label?: string | undefined;
295
+ additional_fields?: {
296
+ name: string;
297
+ type: "string" | "number" | "boolean" | "enum" | "string[]";
298
+ required: boolean;
299
+ description?: string | undefined;
300
+ enum_values?: string[] | undefined;
301
+ default?: unknown;
302
+ }[] | undefined;
303
+ fields?: {
304
+ name: string;
305
+ type: "string" | "number" | "boolean" | "enum" | "string[]";
306
+ required: boolean;
307
+ description?: string | undefined;
308
+ enum_values?: string[] | undefined;
309
+ default?: unknown;
310
+ }[] | undefined;
311
+ }, {
312
+ description?: string | undefined;
313
+ label?: string | undefined;
314
+ additional_fields?: {
315
+ name: string;
316
+ type: "string" | "number" | "boolean" | "enum" | "string[]";
317
+ description?: string | undefined;
318
+ required?: boolean | undefined;
319
+ enum_values?: string[] | undefined;
320
+ default?: unknown;
321
+ }[] | undefined;
322
+ fields?: {
323
+ name: string;
324
+ type: "string" | "number" | "boolean" | "enum" | "string[]";
325
+ description?: string | undefined;
326
+ required?: boolean | undefined;
327
+ enum_values?: string[] | undefined;
328
+ default?: unknown;
329
+ }[] | undefined;
330
+ }>>>;
130
331
  }, "strip", z.ZodTypeAny, {
131
332
  created_at: string;
132
333
  version: string;
@@ -142,7 +343,6 @@ export declare const WorkspaceConfigSchema: z.ZodObject<{
142
343
  model_provider?: string | undefined;
143
344
  model_id?: string | undefined;
144
345
  api_key?: string | undefined;
145
- anthropic_api_key?: string | undefined;
146
346
  r2_config?: {
147
347
  account_id?: string | undefined;
148
348
  bucket?: string | undefined;
@@ -153,6 +353,26 @@ export declare const WorkspaceConfigSchema: z.ZodObject<{
153
353
  github?: {
154
354
  org?: string | undefined;
155
355
  } | undefined;
356
+ schema_extensions?: Record<string, {
357
+ description?: string | undefined;
358
+ label?: string | undefined;
359
+ additional_fields?: {
360
+ name: string;
361
+ type: "string" | "number" | "boolean" | "enum" | "string[]";
362
+ required: boolean;
363
+ description?: string | undefined;
364
+ enum_values?: string[] | undefined;
365
+ default?: unknown;
366
+ }[] | undefined;
367
+ fields?: {
368
+ name: string;
369
+ type: "string" | "number" | "boolean" | "enum" | "string[]";
370
+ required: boolean;
371
+ description?: string | undefined;
372
+ enum_values?: string[] | undefined;
373
+ default?: unknown;
374
+ }[] | undefined;
375
+ }> | undefined;
156
376
  }, {
157
377
  created_at: string;
158
378
  version: string;
@@ -168,7 +388,6 @@ export declare const WorkspaceConfigSchema: z.ZodObject<{
168
388
  model_provider?: string | undefined;
169
389
  model_id?: string | undefined;
170
390
  api_key?: string | undefined;
171
- anthropic_api_key?: string | undefined;
172
391
  r2_config?: {
173
392
  account_id?: string | undefined;
174
393
  bucket?: string | undefined;
@@ -179,6 +398,26 @@ export declare const WorkspaceConfigSchema: z.ZodObject<{
179
398
  github?: {
180
399
  org?: string | undefined;
181
400
  } | undefined;
401
+ schema_extensions?: Record<string, {
402
+ description?: string | undefined;
403
+ label?: string | undefined;
404
+ additional_fields?: {
405
+ name: string;
406
+ type: "string" | "number" | "boolean" | "enum" | "string[]";
407
+ description?: string | undefined;
408
+ required?: boolean | undefined;
409
+ enum_values?: string[] | undefined;
410
+ default?: unknown;
411
+ }[] | undefined;
412
+ fields?: {
413
+ name: string;
414
+ type: "string" | "number" | "boolean" | "enum" | "string[]";
415
+ description?: string | undefined;
416
+ required?: boolean | undefined;
417
+ enum_values?: string[] | undefined;
418
+ default?: unknown;
419
+ }[] | undefined;
420
+ }> | undefined;
182
421
  }>;
183
422
  export type WorkspaceConfig = z.infer<typeof WorkspaceConfigSchema>;
184
423
  /**
@@ -37,6 +37,26 @@ export const RepoConfigSchema = z.object({
37
37
  /**
38
38
  * Workspace configuration
39
39
  */
40
+ /**
41
+ * Field definition for schema extensions
42
+ */
43
+ export const FieldDefinitionSchema = z.object({
44
+ name: z.string(),
45
+ type: z.enum(['string', 'number', 'boolean', 'enum', 'string[]']),
46
+ required: z.boolean().optional().default(false),
47
+ description: z.string().optional(),
48
+ enum_values: z.array(z.string()).optional(),
49
+ default: z.unknown().optional(),
50
+ });
51
+ /**
52
+ * Schema extension for an existing or custom entity type
53
+ */
54
+ export const SchemaExtensionSchema = z.object({
55
+ label: z.string().optional(),
56
+ description: z.string().optional(),
57
+ additional_fields: z.array(FieldDefinitionSchema).optional(), // for extending existing types
58
+ fields: z.array(FieldDefinitionSchema).optional(), // for defining new custom types
59
+ });
40
60
  export const WorkspaceConfigSchema = z.object({
41
61
  version: z.string(),
42
62
  team_name: z.string(),
@@ -46,8 +66,6 @@ export const WorkspaceConfigSchema = z.object({
46
66
  model_provider: z.string().optional(), // e.g., 'anthropic', 'openai', 'google'
47
67
  model_id: z.string().optional(), // e.g., 'claude-sonnet-4-5-20250929'
48
68
  api_key: z.string().optional(), // Unified API key field
49
- // Legacy field (deprecated, use api_key instead)
50
- anthropic_api_key: z.string().optional(),
51
69
  r2_config: z.object({
52
70
  account_id: z.string().optional(),
53
71
  bucket: z.string().optional(),
@@ -58,6 +76,7 @@ export const WorkspaceConfigSchema = z.object({
58
76
  github: z.object({
59
77
  org: z.string().optional(),
60
78
  }).optional(),
79
+ schema_extensions: z.record(z.string(), SchemaExtensionSchema).optional(),
61
80
  });
62
81
  /**
63
82
  * Permission error thrown when user lacks access to a repository
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}