studiograph 1.3.47 → 1.3.48-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 (1067) hide show
  1. package/README.md +26 -16
  2. package/dist/agent/agent-pool.d.ts +117 -0
  3. package/dist/agent/agent-pool.js +287 -0
  4. package/dist/agent/agent-pool.js.map +1 -0
  5. package/dist/agent/followups.d.ts +34 -0
  6. package/dist/agent/followups.js +52 -0
  7. package/dist/agent/followups.js.map +1 -0
  8. package/dist/agent/orchestrator.d.ts +113 -22
  9. package/dist/agent/orchestrator.js +573 -181
  10. package/dist/agent/orchestrator.js.map +1 -1
  11. package/dist/agent/prompts/entity-types-section.d.ts +36 -0
  12. package/dist/agent/prompts/entity-types-section.js +90 -0
  13. package/dist/agent/prompts/entity-types-section.js.map +1 -0
  14. package/dist/agent/prompts/system.md +148 -69
  15. package/dist/agent/skill-loader.d.ts +30 -17
  16. package/dist/agent/skill-loader.js +63 -30
  17. package/dist/agent/skill-loader.js.map +1 -1
  18. package/dist/agent/skills/entity-schema.md +77 -433
  19. package/dist/agent/skills/interview/entity-templates.md +193 -0
  20. package/dist/agent/skills/interview/question-domains.md +391 -0
  21. package/dist/agent/skills/interview/skill.md +204 -0
  22. package/dist/agent/skills/schema-rules.md +54 -0
  23. package/dist/agent/tools/capture-tools.d.ts +31 -0
  24. package/dist/agent/tools/capture-tools.js +40 -0
  25. package/dist/agent/tools/capture-tools.js.map +1 -0
  26. package/dist/agent/tools/folder-tools.d.ts +47 -0
  27. package/dist/agent/tools/folder-tools.js +249 -0
  28. package/dist/agent/tools/folder-tools.js.map +1 -0
  29. package/dist/agent/tools/fs-tools.d.ts +7 -6
  30. package/dist/agent/tools/fs-tools.js +5 -4
  31. package/dist/agent/tools/fs-tools.js.map +1 -1
  32. package/dist/agent/tools/graph-tools.d.ts +21 -58
  33. package/dist/agent/tools/graph-tools.js +635 -332
  34. package/dist/agent/tools/graph-tools.js.map +1 -1
  35. package/dist/agent/tools/history-tools.d.ts +95 -0
  36. package/dist/agent/tools/history-tools.js +461 -0
  37. package/dist/agent/tools/history-tools.js.map +1 -0
  38. package/dist/agent/tools/load-skill.d.ts +6 -5
  39. package/dist/agent/tools/load-skill.js +3 -3
  40. package/dist/agent/tools/load-skill.js.map +1 -1
  41. package/dist/agent/tools/ops-tools.d.ts +5 -4
  42. package/dist/agent/tools/ops-tools.js +130 -236
  43. package/dist/agent/tools/ops-tools.js.map +1 -1
  44. package/dist/agent/tools/permission-tools.d.ts +87 -17
  45. package/dist/agent/tools/permission-tools.js +233 -38
  46. package/dist/agent/tools/permission-tools.js.map +1 -1
  47. package/dist/agent/tools/tool-loader.js +5 -4
  48. package/dist/agent/tools/tool-loader.js.map +1 -1
  49. package/dist/agent/tools/web-tools.d.ts +18 -0
  50. package/dist/agent/tools/web-tools.js +283 -0
  51. package/dist/agent/tools/web-tools.js.map +1 -0
  52. package/dist/cli/commands/about.d.ts +1 -0
  53. package/dist/cli/commands/about.js +55 -3
  54. package/dist/cli/commands/about.js.map +1 -1
  55. package/dist/cli/commands/admin/audit-workspace.d.ts +23 -0
  56. package/dist/cli/commands/admin/audit-workspace.js +133 -0
  57. package/dist/cli/commands/admin/audit-workspace.js.map +1 -0
  58. package/dist/cli/commands/admin/audit.d.ts +21 -0
  59. package/dist/cli/commands/admin/audit.js +174 -0
  60. package/dist/cli/commands/admin/audit.js.map +1 -0
  61. package/dist/cli/commands/admin/backup.d.ts +54 -0
  62. package/dist/cli/commands/admin/backup.js +207 -0
  63. package/dist/cli/commands/admin/backup.js.map +1 -0
  64. package/dist/cli/commands/admin/folder.d.ts +11 -0
  65. package/dist/cli/commands/admin/folder.js +186 -0
  66. package/dist/cli/commands/admin/folder.js.map +1 -0
  67. package/dist/cli/commands/admin/index.d.ts +16 -0
  68. package/dist/cli/commands/admin/index.js +46 -0
  69. package/dist/cli/commands/admin/index.js.map +1 -0
  70. package/dist/cli/commands/admin/migrate-assets.d.ts +53 -0
  71. package/dist/cli/commands/admin/migrate-assets.js +184 -0
  72. package/dist/cli/commands/admin/migrate-assets.js.map +1 -0
  73. package/dist/cli/commands/admin/migrate.d.ts +56 -0
  74. package/dist/cli/commands/admin/migrate.js +263 -0
  75. package/dist/cli/commands/admin/migrate.js.map +1 -0
  76. package/dist/cli/commands/admin/restore.d.ts +24 -0
  77. package/dist/cli/commands/admin/restore.js +228 -0
  78. package/dist/cli/commands/admin/restore.js.map +1 -0
  79. package/dist/cli/commands/admin/secrets.d.ts +23 -0
  80. package/dist/cli/commands/admin/secrets.js +256 -0
  81. package/dist/cli/commands/admin/secrets.js.map +1 -0
  82. package/dist/cli/commands/admin/settings.d.ts +28 -0
  83. package/dist/cli/commands/admin/settings.js +284 -0
  84. package/dist/cli/commands/admin/settings.js.map +1 -0
  85. package/dist/cli/commands/admin/token.d.ts +42 -0
  86. package/dist/cli/commands/admin/token.js +126 -0
  87. package/dist/cli/commands/admin/token.js.map +1 -0
  88. package/dist/cli/commands/admin/transfer-ownership.d.ts +15 -0
  89. package/dist/cli/commands/admin/transfer-ownership.js +106 -0
  90. package/dist/cli/commands/admin/transfer-ownership.js.map +1 -0
  91. package/dist/cli/commands/admin/user.d.ts +11 -0
  92. package/dist/cli/commands/admin/user.js +187 -0
  93. package/dist/cli/commands/admin/user.js.map +1 -0
  94. package/dist/cli/commands/clone.d.ts +25 -3
  95. package/dist/cli/commands/clone.js +142 -36
  96. package/dist/cli/commands/clone.js.map +1 -1
  97. package/dist/cli/commands/commit.d.ts +1 -1
  98. package/dist/cli/commands/commit.js +24 -11
  99. package/dist/cli/commands/commit.js.map +1 -1
  100. package/dist/cli/commands/config.d.ts +23 -107
  101. package/dist/cli/commands/config.js +52 -260
  102. package/dist/cli/commands/config.js.map +1 -1
  103. package/dist/cli/commands/connector.d.ts +10 -13
  104. package/dist/cli/commands/connector.js +16 -58
  105. package/dist/cli/commands/connector.js.map +1 -1
  106. package/dist/cli/commands/deploy.js +215 -68
  107. package/dist/cli/commands/deploy.js.map +1 -1
  108. package/dist/cli/commands/index.js +2 -2
  109. package/dist/cli/commands/index.js.map +1 -1
  110. package/dist/cli/commands/init.js +10 -30
  111. package/dist/cli/commands/init.js.map +1 -1
  112. package/dist/cli/commands/mcp.js +12 -4
  113. package/dist/cli/commands/mcp.js.map +1 -1
  114. package/dist/cli/commands/orphans.js +14 -30
  115. package/dist/cli/commands/orphans.js.map +1 -1
  116. package/dist/cli/commands/r2.d.ts +3 -0
  117. package/dist/cli/commands/r2.js +223 -204
  118. package/dist/cli/commands/r2.js.map +1 -1
  119. package/dist/cli/commands/redeploy.js +65 -12
  120. package/dist/cli/commands/redeploy.js.map +1 -1
  121. package/dist/cli/commands/reset.d.ts +22 -6
  122. package/dist/cli/commands/reset.js +142 -63
  123. package/dist/cli/commands/reset.js.map +1 -1
  124. package/dist/cli/commands/serve.js +209 -24
  125. package/dist/cli/commands/serve.js.map +1 -1
  126. package/dist/cli/commands/sync.d.ts +1 -1
  127. package/dist/cli/commands/sync.js +372 -202
  128. package/dist/cli/commands/sync.js.map +1 -1
  129. package/dist/cli/crypto-bundle.d.ts +39 -0
  130. package/dist/cli/crypto-bundle.js +94 -0
  131. package/dist/cli/crypto-bundle.js.map +1 -0
  132. package/dist/cli/index.js +24 -35
  133. package/dist/cli/index.js.map +1 -1
  134. package/dist/cli/railway-pin.d.ts +68 -0
  135. package/dist/cli/railway-pin.js +96 -0
  136. package/dist/cli/railway-pin.js.map +1 -0
  137. package/dist/cli/railway-provisioning.d.ts +53 -0
  138. package/dist/cli/railway-provisioning.js +85 -0
  139. package/dist/cli/railway-provisioning.js.map +1 -0
  140. package/dist/cli/setup-wizard.d.ts +33 -52
  141. package/dist/cli/setup-wizard.js +43 -68
  142. package/dist/cli/setup-wizard.js.map +1 -1
  143. package/dist/core/accent-palette.d.ts +22 -0
  144. package/dist/core/accent-palette.js +47 -0
  145. package/dist/core/accent-palette.js.map +1 -0
  146. package/dist/core/cell-anchor.d.ts +29 -0
  147. package/dist/core/cell-anchor.js +53 -0
  148. package/dist/core/cell-anchor.js.map +1 -0
  149. package/dist/core/comment-anchor.d.ts +41 -0
  150. package/dist/core/comment-anchor.js +147 -0
  151. package/dist/core/comment-anchor.js.map +1 -0
  152. package/dist/core/commit-messages.d.ts +57 -0
  153. package/dist/core/commit-messages.js +85 -0
  154. package/dist/core/commit-messages.js.map +1 -0
  155. package/dist/core/embeds.d.ts +56 -0
  156. package/dist/core/embeds.js +103 -0
  157. package/dist/core/embeds.js.map +1 -0
  158. package/dist/core/entity-body-templates.d.ts +21 -0
  159. package/dist/core/entity-body-templates.js +53 -0
  160. package/dist/core/entity-body-templates.js.map +1 -0
  161. package/dist/core/entity-types-catalog.d.ts +65 -0
  162. package/dist/core/entity-types-catalog.js +140 -0
  163. package/dist/core/entity-types-catalog.js.map +1 -0
  164. package/dist/core/folder-paths.d.ts +41 -0
  165. package/dist/core/folder-paths.js +95 -0
  166. package/dist/core/folder-paths.js.map +1 -0
  167. package/dist/core/folder-sidecar.d.ts +36 -0
  168. package/dist/core/folder-sidecar.js +91 -0
  169. package/dist/core/folder-sidecar.js.map +1 -0
  170. package/dist/core/graph.d.ts +675 -14
  171. package/dist/core/graph.js +2118 -314
  172. package/dist/core/graph.js.map +1 -1
  173. package/dist/core/history-diff.d.ts +35 -0
  174. package/dist/core/history-diff.js +114 -0
  175. package/dist/core/history-diff.js.map +1 -0
  176. package/dist/core/schema-registry.d.ts +59 -0
  177. package/dist/core/schema-registry.js +198 -0
  178. package/dist/core/schema-registry.js.map +1 -1
  179. package/dist/core/schemas/connector.d.ts +67 -0
  180. package/dist/core/schemas/connector.js +100 -0
  181. package/dist/core/schemas/connector.js.map +1 -0
  182. package/dist/core/schemas/workspace.d.ts +122 -0
  183. package/dist/core/schemas/workspace.js +211 -0
  184. package/dist/core/schemas/workspace.js.map +1 -0
  185. package/dist/core/secrets/SecretStore.d.ts +77 -0
  186. package/dist/core/secrets/SecretStore.js +13 -0
  187. package/dist/core/secrets/SecretStore.js.map +1 -0
  188. package/dist/core/secrets/SettingsResolver.d.ts +54 -0
  189. package/dist/core/secrets/SettingsResolver.js +80 -0
  190. package/dist/core/secrets/SettingsResolver.js.map +1 -0
  191. package/dist/core/secrets/SettingsStore.d.ts +30 -0
  192. package/dist/core/secrets/SettingsStore.js +9 -0
  193. package/dist/core/secrets/SettingsStore.js.map +1 -0
  194. package/dist/core/secrets/SqliteEncryptedStore.d.ts +90 -0
  195. package/dist/core/secrets/SqliteEncryptedStore.js +598 -0
  196. package/dist/core/secrets/SqliteEncryptedStore.js.map +1 -0
  197. package/dist/core/secrets/audit.d.ts +36 -0
  198. package/dist/core/secrets/audit.js +60 -0
  199. package/dist/core/secrets/audit.js.map +1 -0
  200. package/dist/core/secrets/auth-db-migration.d.ts +129 -0
  201. package/dist/core/secrets/auth-db-migration.js +653 -0
  202. package/dist/core/secrets/auth-db-migration.js.map +1 -0
  203. package/dist/core/secrets/bundle.d.ts +141 -0
  204. package/dist/core/secrets/bundle.js +435 -0
  205. package/dist/core/secrets/bundle.js.map +1 -0
  206. package/dist/core/secrets/dual-write.d.ts +81 -0
  207. package/dist/core/secrets/dual-write.js +247 -0
  208. package/dist/core/secrets/dual-write.js.map +1 -0
  209. package/dist/core/secrets/encryption.d.ts +44 -0
  210. package/dist/core/secrets/encryption.js +97 -0
  211. package/dist/core/secrets/encryption.js.map +1 -0
  212. package/dist/core/secrets/index.d.ts +49 -0
  213. package/dist/core/secrets/index.js +74 -0
  214. package/dist/core/secrets/index.js.map +1 -0
  215. package/dist/core/secrets/master-key.d.ts +38 -0
  216. package/dist/core/secrets/master-key.js +122 -0
  217. package/dist/core/secrets/master-key.js.map +1 -0
  218. package/dist/core/secrets/probes/anthropic.d.ts +98 -0
  219. package/dist/core/secrets/probes/anthropic.js +300 -0
  220. package/dist/core/secrets/probes/anthropic.js.map +1 -0
  221. package/dist/core/secrets/probes/brave.d.ts +9 -0
  222. package/dist/core/secrets/probes/brave.js +15 -0
  223. package/dist/core/secrets/probes/brave.js.map +1 -0
  224. package/dist/core/secrets/probes/r2.d.ts +15 -0
  225. package/dist/core/secrets/probes/r2.js +14 -0
  226. package/dist/core/secrets/probes/r2.js.map +1 -0
  227. package/dist/core/secrets/probes/voyage.d.ts +13 -0
  228. package/dist/core/secrets/probes/voyage.js +52 -0
  229. package/dist/core/secrets/probes/voyage.js.map +1 -0
  230. package/dist/core/secrets/r2-structural-migration.d.ts +39 -0
  231. package/dist/core/secrets/r2-structural-migration.js +109 -0
  232. package/dist/core/secrets/r2-structural-migration.js.map +1 -0
  233. package/dist/core/secrets/read-flip.d.ts +59 -0
  234. package/dist/core/secrets/read-flip.js +87 -0
  235. package/dist/core/secrets/read-flip.js.map +1 -0
  236. package/dist/core/secrets/registry.d.ts +188 -0
  237. package/dist/core/secrets/registry.js +598 -0
  238. package/dist/core/secrets/registry.js.map +1 -0
  239. package/dist/core/types.d.ts +77 -455
  240. package/dist/core/types.js +17 -3
  241. package/dist/core/types.js.map +1 -1
  242. package/dist/core/user-config.d.ts +75 -7
  243. package/dist/core/user-config.js +155 -7
  244. package/dist/core/user-config.js.map +1 -1
  245. package/dist/core/validation.d.ts +717 -1791
  246. package/dist/core/validation.js +357 -228
  247. package/dist/core/validation.js.map +1 -1
  248. package/dist/core/workspace-manager.d.ts +79 -12
  249. package/dist/core/workspace-manager.js +213 -73
  250. package/dist/core/workspace-manager.js.map +1 -1
  251. package/dist/core/workspace.d.ts +19 -5
  252. package/dist/core/workspace.js +69 -35
  253. package/dist/core/workspace.js.map +1 -1
  254. package/dist/mcp/comment-virtual-entity.d.ts +36 -0
  255. package/dist/mcp/comment-virtual-entity.js +71 -0
  256. package/dist/mcp/comment-virtual-entity.js.map +1 -0
  257. package/dist/mcp/connector-manager.d.ts +94 -13
  258. package/dist/mcp/connector-manager.js +283 -62
  259. package/dist/mcp/connector-manager.js.map +1 -1
  260. package/dist/mcp/oauth-provider.d.ts +27 -33
  261. package/dist/mcp/oauth-provider.js +65 -134
  262. package/dist/mcp/oauth-provider.js.map +1 -1
  263. package/dist/mcp/oauth-registry.d.ts +62 -0
  264. package/dist/mcp/oauth-registry.js +85 -0
  265. package/dist/mcp/oauth-registry.js.map +1 -0
  266. package/dist/mcp/server.d.ts +11 -3
  267. package/dist/mcp/server.js +30 -5
  268. package/dist/mcp/server.js.map +1 -1
  269. package/dist/mcp/state-signer.d.ts +41 -0
  270. package/dist/mcp/state-signer.js +120 -0
  271. package/dist/mcp/state-signer.js.map +1 -0
  272. package/dist/mcp/tools.d.ts +35 -2
  273. package/dist/mcp/tools.js +1051 -117
  274. package/dist/mcp/tools.js.map +1 -1
  275. package/dist/server/__tests__/helpers/graph-api.d.ts +18 -0
  276. package/dist/server/__tests__/helpers/graph-api.js +16 -0
  277. package/dist/server/__tests__/helpers/graph-api.js.map +1 -0
  278. package/dist/server/body-write-coordinator.d.ts +151 -0
  279. package/dist/server/body-write-coordinator.js +161 -0
  280. package/dist/server/body-write-coordinator.js.map +1 -0
  281. package/dist/server/cloud-billing-flow.d.ts +32 -0
  282. package/dist/server/cloud-billing-flow.js +75 -0
  283. package/dist/server/cloud-billing-flow.js.map +1 -0
  284. package/dist/server/commit-audit.d.ts +26 -0
  285. package/dist/server/commit-audit.js +30 -0
  286. package/dist/server/commit-audit.js.map +1 -0
  287. package/dist/server/index.d.ts +14 -3
  288. package/dist/server/index.js +451 -193
  289. package/dist/server/index.js.map +1 -1
  290. package/dist/server/middleware/sanitize.d.ts +46 -0
  291. package/dist/server/middleware/sanitize.js +171 -0
  292. package/dist/server/middleware/sanitize.js.map +1 -0
  293. package/dist/server/routes/asset-api.d.ts +10 -0
  294. package/dist/server/routes/asset-api.js +294 -0
  295. package/dist/server/routes/asset-api.js.map +1 -0
  296. package/dist/server/routes/audit-api.d.ts +24 -0
  297. package/dist/server/routes/audit-api.js +117 -0
  298. package/dist/server/routes/audit-api.js.map +1 -0
  299. package/dist/server/routes/auth-api.d.ts +3 -2
  300. package/dist/server/routes/auth-api.js +519 -38
  301. package/dist/server/routes/auth-api.js.map +1 -1
  302. package/dist/server/routes/capture-api.d.ts +18 -0
  303. package/dist/server/routes/capture-api.js +257 -0
  304. package/dist/server/routes/capture-api.js.map +1 -0
  305. package/dist/server/routes/chat.d.ts +4 -1
  306. package/dist/server/routes/chat.js +298 -88
  307. package/dist/server/routes/chat.js.map +1 -1
  308. package/dist/server/routes/comments-api.d.ts +15 -0
  309. package/dist/server/routes/comments-api.js +444 -0
  310. package/dist/server/routes/comments-api.js.map +1 -0
  311. package/dist/server/routes/config-api.d.ts +21 -0
  312. package/dist/server/routes/config-api.js +256 -0
  313. package/dist/server/routes/config-api.js.map +1 -0
  314. package/dist/server/routes/connectors-api.d.ts +17 -0
  315. package/dist/server/routes/connectors-api.js +410 -0
  316. package/dist/server/routes/connectors-api.js.map +1 -0
  317. package/dist/server/routes/event-ingest-api.d.ts +15 -0
  318. package/dist/server/routes/event-ingest-api.js +125 -0
  319. package/dist/server/routes/event-ingest-api.js.map +1 -0
  320. package/dist/server/routes/git-http.d.ts +3 -3
  321. package/dist/server/routes/git-http.js +86 -38
  322. package/dist/server/routes/git-http.js.map +1 -1
  323. package/dist/server/routes/graph-api-access.d.ts +35 -0
  324. package/dist/server/routes/graph-api-access.js +105 -0
  325. package/dist/server/routes/graph-api-access.js.map +1 -0
  326. package/dist/server/routes/graph-api.d.ts +3 -2
  327. package/dist/server/routes/graph-api.js +1321 -263
  328. package/dist/server/routes/graph-api.js.map +1 -1
  329. package/dist/server/routes/health.d.ts +18 -0
  330. package/dist/server/routes/health.js +74 -0
  331. package/dist/server/routes/health.js.map +1 -0
  332. package/dist/server/routes/insights-api.d.ts +1 -2
  333. package/dist/server/routes/insights-api.js +149 -41
  334. package/dist/server/routes/insights-api.js.map +1 -1
  335. package/dist/server/routes/mcp.d.ts +7 -3
  336. package/dist/server/routes/mcp.js +22 -6
  337. package/dist/server/routes/mcp.js.map +1 -1
  338. package/dist/server/routes/permissions-api.d.ts +9 -2
  339. package/dist/server/routes/permissions-api.js +87 -30
  340. package/dist/server/routes/permissions-api.js.map +1 -1
  341. package/dist/server/routes/r2-api.d.ts +25 -0
  342. package/dist/server/routes/r2-api.js +276 -0
  343. package/dist/server/routes/r2-api.js.map +1 -0
  344. package/dist/server/routes/secrets-api.d.ts +36 -0
  345. package/dist/server/routes/secrets-api.js +308 -0
  346. package/dist/server/routes/secrets-api.js.map +1 -0
  347. package/dist/server/routes/settings-api.d.ts +29 -0
  348. package/dist/server/routes/settings-api.js +180 -0
  349. package/dist/server/routes/settings-api.js.map +1 -0
  350. package/dist/server/routes/url-api.d.ts +7 -0
  351. package/dist/server/routes/url-api.js +74 -0
  352. package/dist/server/routes/url-api.js.map +1 -0
  353. package/dist/server/routes/views-api.js +81 -7
  354. package/dist/server/routes/views-api.js.map +1 -1
  355. package/dist/server/routes/workspace-api.d.ts +2 -1
  356. package/dist/server/routes/workspace-api.js +124 -35
  357. package/dist/server/routes/workspace-api.js.map +1 -1
  358. package/dist/server/routes/ws.d.ts +2 -1
  359. package/dist/server/routes/ws.js +64 -16
  360. package/dist/server/routes/ws.js.map +1 -1
  361. package/dist/server/session-manager.d.ts +48 -5
  362. package/dist/server/session-manager.js +182 -15
  363. package/dist/server/session-manager.js.map +1 -1
  364. package/dist/server/ws-hub.d.ts +138 -14
  365. package/dist/server/ws-hub.js +0 -0
  366. package/dist/server/ws-hub.js.map +1 -1
  367. package/dist/server/yjs-manager.d.ts +285 -7
  368. package/dist/server/yjs-manager.js +907 -36
  369. package/dist/server/yjs-manager.js.map +1 -1
  370. package/dist/server/yjs-persistence.d.ts +165 -0
  371. package/dist/server/yjs-persistence.js +557 -0
  372. package/dist/server/yjs-persistence.js.map +1 -0
  373. package/dist/server/yjs-text-diff.d.ts +32 -0
  374. package/dist/server/yjs-text-diff.js +61 -0
  375. package/dist/server/yjs-text-diff.js.map +1 -0
  376. package/dist/services/access-control.d.ts +73 -0
  377. package/dist/services/access-control.js +146 -0
  378. package/dist/services/access-control.js.map +1 -0
  379. package/dist/services/asset-listing.d.ts +39 -0
  380. package/dist/services/asset-listing.js +125 -0
  381. package/dist/services/asset-listing.js.map +1 -0
  382. package/dist/services/asset-upload-service.d.ts +53 -0
  383. package/dist/services/asset-upload-service.js +201 -0
  384. package/dist/services/asset-upload-service.js.map +1 -0
  385. package/dist/services/assets/asset-index-service.d.ts +82 -0
  386. package/dist/services/assets/asset-index-service.js +167 -0
  387. package/dist/services/assets/asset-index-service.js.map +1 -0
  388. package/dist/services/assets/base.d.ts +44 -0
  389. package/dist/services/assets/base.js +55 -0
  390. package/dist/services/assets/base.js.map +1 -1
  391. package/dist/services/assets/index.d.ts +69 -1
  392. package/dist/services/assets/index.js +125 -0
  393. package/dist/services/assets/index.js.map +1 -1
  394. package/dist/services/assets/local.d.ts +12 -1
  395. package/dist/services/assets/local.js +100 -1
  396. package/dist/services/assets/local.js.map +1 -1
  397. package/dist/services/assets/r2-sync.d.ts +88 -0
  398. package/dist/services/assets/r2-sync.js +412 -0
  399. package/dist/services/assets/r2-sync.js.map +1 -0
  400. package/dist/services/assets/r2.d.ts +34 -1
  401. package/dist/services/assets/r2.js +93 -1
  402. package/dist/services/assets/r2.js.map +1 -1
  403. package/dist/services/auth-service.d.ts +314 -36
  404. package/dist/services/auth-service.js +1126 -139
  405. package/dist/services/auth-service.js.map +1 -1
  406. package/dist/services/bookmark-import-service.d.ts +49 -0
  407. package/dist/services/bookmark-import-service.js +250 -0
  408. package/dist/services/bookmark-import-service.js.map +1 -0
  409. package/dist/services/cloud-inference-billing.d.ts +64 -0
  410. package/dist/services/cloud-inference-billing.js +313 -0
  411. package/dist/services/cloud-inference-billing.js.map +1 -0
  412. package/dist/services/comment-service.d.ts +97 -0
  413. package/dist/services/comment-service.js +341 -0
  414. package/dist/services/comment-service.js.map +1 -0
  415. package/dist/services/csv-service.d.ts +22 -17
  416. package/dist/services/csv-service.js +55 -92
  417. package/dist/services/csv-service.js.map +1 -1
  418. package/dist/services/entity-mutations.d.ts +161 -0
  419. package/dist/services/entity-mutations.js +296 -0
  420. package/dist/services/entity-mutations.js.map +1 -0
  421. package/dist/services/event-processor.d.ts +104 -0
  422. package/dist/services/event-processor.js +441 -0
  423. package/dist/services/event-processor.js.map +1 -0
  424. package/dist/services/folder-creation.d.ts +33 -0
  425. package/dist/services/folder-creation.js +103 -0
  426. package/dist/services/folder-creation.js.map +1 -0
  427. package/dist/services/git.d.ts +54 -0
  428. package/dist/services/git.js +188 -54
  429. package/dist/services/git.js.map +1 -1
  430. package/dist/services/graph-maintenance.d.ts +42 -0
  431. package/dist/services/graph-maintenance.js +143 -0
  432. package/dist/services/graph-maintenance.js.map +1 -0
  433. package/dist/services/import-service.d.ts +45 -2
  434. package/dist/services/import-service.js +304 -100
  435. package/dist/services/import-service.js.map +1 -1
  436. package/dist/services/lint-service.js +9 -16
  437. package/dist/services/lint-service.js.map +1 -1
  438. package/dist/services/markdown.d.ts +12 -1
  439. package/dist/services/markdown.js +71 -6
  440. package/dist/services/markdown.js.map +1 -1
  441. package/dist/services/memory-service.d.ts +22 -14
  442. package/dist/services/memory-service.js +53 -35
  443. package/dist/services/memory-service.js.map +1 -1
  444. package/dist/services/mention-detector.d.ts +23 -0
  445. package/dist/services/mention-detector.js +47 -0
  446. package/dist/services/mention-detector.js.map +1 -0
  447. package/dist/services/notification-broadcast.d.ts +32 -0
  448. package/dist/services/notification-broadcast.js +38 -0
  449. package/dist/services/notification-broadcast.js.map +1 -0
  450. package/dist/services/notification-service.d.ts +41 -0
  451. package/dist/services/notification-service.js +100 -0
  452. package/dist/services/notification-service.js.map +1 -0
  453. package/dist/services/personal-folder.d.ts +40 -0
  454. package/dist/services/personal-folder.js +101 -0
  455. package/dist/services/personal-folder.js.map +1 -0
  456. package/dist/services/user-person-bridge.d.ts +118 -0
  457. package/dist/services/user-person-bridge.js +306 -0
  458. package/dist/services/user-person-bridge.js.map +1 -0
  459. package/dist/services/vector-service.d.ts +146 -6
  460. package/dist/services/vector-service.js +276 -13
  461. package/dist/services/vector-service.js.map +1 -1
  462. package/dist/services/workspace-access.d.ts +106 -0
  463. package/dist/services/workspace-access.js +149 -0
  464. package/dist/services/workspace-access.js.map +1 -0
  465. package/dist/utils/git.d.ts +17 -2
  466. package/dist/utils/git.js +23 -7
  467. package/dist/utils/git.js.map +1 -1
  468. package/dist/utils/log.d.ts +42 -0
  469. package/dist/utils/log.js +137 -0
  470. package/dist/utils/log.js.map +1 -0
  471. package/dist/utils/preflight.js +2 -2
  472. package/dist/utils/preflight.js.map +1 -1
  473. package/dist/utils/version-checker.d.ts +12 -19
  474. package/dist/utils/version-checker.js +14 -104
  475. package/dist/utils/version-checker.js.map +1 -1
  476. package/dist/web/_app/immutable/assets/0.DOumm94J.css +2 -0
  477. package/dist/web/_app/immutable/assets/13.DlIf1mKh.css +1 -0
  478. package/dist/web/_app/immutable/assets/14.7d-Q37wc.css +1 -0
  479. package/dist/web/_app/immutable/assets/15.CmLrbzZp.css +1 -0
  480. package/dist/web/_app/immutable/assets/2.BftNiAA4.css +1 -0
  481. package/dist/web/_app/immutable/assets/3.CV0abekd.css +1 -0
  482. package/dist/web/_app/immutable/assets/4.BgXzUTTk.css +1 -0
  483. package/dist/web/_app/immutable/assets/9.gsF-Ne6_.css +1 -0
  484. package/dist/web/_app/immutable/assets/AgentOverlay.CpvH9rhf.css +1 -0
  485. package/dist/web/_app/immutable/assets/AssetManagerModal.BKJfPAPk.css +1 -0
  486. package/dist/web/_app/immutable/assets/CalendarView.bNewSxkH.css +1 -0
  487. package/dist/web/_app/immutable/assets/ChevronDown.Bz0FjM7b.css +1 -0
  488. package/dist/web/_app/immutable/assets/FolderMembersPanel.DX1oBeF_.css +1 -0
  489. package/dist/web/_app/immutable/assets/FolderMutationDialogs.BMRF6Z3z.css +1 -0
  490. package/dist/web/_app/immutable/assets/FolderPicker.B5KdvRYl.css +1 -0
  491. package/dist/web/_app/immutable/assets/GalleryView.DgvSjS0I.css +1 -0
  492. package/dist/web/_app/immutable/assets/GraphView.BJtGL9py.css +1 -0
  493. package/dist/web/_app/immutable/assets/KanbanView.D0QbZFd6.css +1 -0
  494. package/dist/web/_app/immutable/assets/SettingsDialog.DYWYMFSO.css +1 -0
  495. package/dist/web/_app/immutable/assets/Spinner.UBfl0pab.css +1 -0
  496. package/dist/web/_app/immutable/assets/StopFilledAlt.CkPrHdPD.css +1 -0
  497. package/dist/web/_app/immutable/assets/TimelineView.DA-H6dvv.css +1 -0
  498. package/dist/web/_app/immutable/assets/WorkspaceView.BS1ildu7.css +1 -0
  499. package/dist/web/_app/immutable/assets/button.BlLm4Dg1.css +1 -0
  500. package/dist/web/_app/immutable/assets/formatting.vV0ne105.css +1 -0
  501. package/dist/web/_app/immutable/assets/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff +0 -0
  502. package/dist/web/_app/immutable/assets/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2 +0 -0
  503. package/dist/web/_app/immutable/assets/ibm-plex-mono-latin-500-normal.CB9ihrfo.woff +0 -0
  504. package/dist/web/_app/immutable/assets/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2 +0 -0
  505. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-400-italic.CZTNEAuW.woff2 +0 -0
  506. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-400-italic.CsGl1sm0.woff +0 -0
  507. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-400-normal.CDDApCn2.woff2 +0 -0
  508. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-400-normal.CYLoc0-x.woff +0 -0
  509. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-500-italic.BNK2_mGO.woff2 +0 -0
  510. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-500-italic.DpEwFAQM.woff +0 -0
  511. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-500-normal.6ng42L7E.woff2 +0 -0
  512. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-500-normal.BgVn5rGT.woff +0 -0
  513. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-600-normal.Cu4Hd6ag.woff +0 -0
  514. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-600-normal.CuJfVYMP.woff2 +0 -0
  515. package/dist/web/_app/immutable/assets/inline-list.cqga56xT.css +1 -0
  516. package/dist/web/_app/immutable/assets/list-columns.BrRrAiZ7.css +1 -0
  517. package/dist/web/_app/immutable/assets/realtime.DDCWxn3B.css +1 -0
  518. package/dist/web/_app/immutable/assets/sheet.DJPuqnTg.css +1 -0
  519. package/dist/web/_app/immutable/assets/speech-dictation.C5CYFhS1.css +1 -0
  520. package/dist/web/_app/immutable/chunks/0edH8sO82.js +1 -0
  521. package/dist/web/_app/immutable/chunks/0iDDDyaZ.js +1 -0
  522. package/dist/web/_app/immutable/chunks/7-y0CE1z.js +1 -0
  523. package/dist/web/_app/immutable/chunks/7Bu427my2.js +184 -0
  524. package/dist/web/_app/immutable/chunks/B-V5eMSw2.js +1 -0
  525. package/dist/web/_app/immutable/chunks/B-i9_YVM.js +1 -0
  526. package/dist/web/_app/immutable/chunks/B15-kvCe.js +1 -0
  527. package/dist/web/_app/immutable/chunks/B4cFqqUS.js +3 -0
  528. package/dist/web/_app/immutable/chunks/B6Lt-qaJ.js +1 -0
  529. package/dist/web/_app/immutable/chunks/B7hznOQp.js +1 -0
  530. package/dist/web/_app/immutable/chunks/B7tbGyiU2.js +1 -0
  531. package/dist/web/_app/immutable/chunks/B8-Lm86o2.js +1 -0
  532. package/dist/web/_app/immutable/chunks/BBxt8lpa.js +1 -0
  533. package/dist/web/_app/immutable/chunks/BCaRi2AF.js +1 -0
  534. package/dist/web/_app/immutable/chunks/BJReLGMs.js +1 -0
  535. package/dist/web/_app/immutable/chunks/BKzV82vD2.js +83 -0
  536. package/dist/web/_app/immutable/chunks/BLHrJvbG.js +1 -0
  537. package/dist/web/_app/immutable/chunks/BQULA6er.js +4 -0
  538. package/dist/web/_app/immutable/chunks/BQW-EDgP2.js +224 -0
  539. package/dist/web/_app/immutable/chunks/BR6jMpLB.js +1 -0
  540. package/dist/web/_app/immutable/chunks/BUBMGU8t2.js +2 -0
  541. package/dist/web/_app/immutable/chunks/BVnuLlVg.js +1 -0
  542. package/dist/web/_app/immutable/chunks/BYokDzwE.js +1 -0
  543. package/dist/web/_app/immutable/chunks/B_Avv9jQ2.js +1 -0
  544. package/dist/web/_app/immutable/chunks/Bbp76jaT2.js +1 -0
  545. package/dist/web/_app/immutable/chunks/BddNmQ8j.js +1 -0
  546. package/dist/web/_app/immutable/chunks/BiJjH5mJ.js +2 -0
  547. package/dist/web/_app/immutable/chunks/BlyFGPFV.js +22 -0
  548. package/dist/web/_app/immutable/chunks/Bt88HrRx.js +1 -0
  549. package/dist/web/_app/immutable/chunks/Bu2iU6hh.js +67 -0
  550. package/dist/web/_app/immutable/chunks/Buih1pxI.js +1 -0
  551. package/dist/web/_app/immutable/chunks/BwwLJVvR.js +1 -0
  552. package/dist/web/_app/immutable/chunks/C0RpyyYZ.js +7 -0
  553. package/dist/web/_app/immutable/chunks/C2l-EXsT2.js +1 -0
  554. package/dist/web/_app/immutable/chunks/C35TIzaB.js +1 -0
  555. package/dist/web/_app/immutable/chunks/C3OdK8z_2.js +1 -0
  556. package/dist/web/_app/immutable/chunks/C6Nx0jpM.js +1 -0
  557. package/dist/web/_app/immutable/chunks/CA7O0J_u2.js +1 -0
  558. package/dist/web/_app/immutable/chunks/CAwjrHdk.js +23 -0
  559. package/dist/web/_app/immutable/chunks/CCLR-AJL2.js +185 -0
  560. package/dist/web/_app/immutable/chunks/CD0X7XPW.js +6 -0
  561. package/dist/web/_app/immutable/chunks/CDTjuBSm2.js +1 -0
  562. package/dist/web/_app/immutable/chunks/CSUrYOis.js +1 -0
  563. package/dist/web/_app/immutable/chunks/CUPSJObs.js +1 -0
  564. package/dist/web/_app/immutable/chunks/CUoGvuxK2.js +2 -0
  565. package/dist/web/_app/immutable/chunks/CWh8aehb.js +1 -0
  566. package/dist/web/_app/immutable/chunks/CY4XVBP0.js +1 -0
  567. package/dist/web/_app/immutable/chunks/CYTTTma0.js +3 -0
  568. package/dist/web/_app/immutable/chunks/CaoriuNq.js +1 -0
  569. package/dist/web/_app/immutable/chunks/CcsSt9AW2.js +1 -0
  570. package/dist/web/_app/immutable/chunks/Cd4VfAZC.js +2 -0
  571. package/dist/web/_app/immutable/chunks/CePZ1985.js +1 -0
  572. package/dist/web/_app/immutable/chunks/Cei8CKT4.js +1 -0
  573. package/dist/web/_app/immutable/chunks/CheXrbDk.js +1 -0
  574. package/dist/web/_app/immutable/chunks/CkLfUXwy.js +1 -0
  575. package/dist/web/_app/immutable/chunks/Cl-W0JYt.js +2 -0
  576. package/dist/web/_app/immutable/chunks/Cna7tYp-.js +1 -0
  577. package/dist/web/_app/immutable/chunks/Czwe4sGU2.js +3 -0
  578. package/dist/web/_app/immutable/chunks/D41CbXmM.js +1 -0
  579. package/dist/web/_app/immutable/chunks/D83_Ss42.js +1 -0
  580. package/dist/web/_app/immutable/chunks/D9NgbGbO2.js +9 -0
  581. package/dist/web/_app/immutable/chunks/DA-BuZei.js +2 -0
  582. package/dist/web/_app/immutable/chunks/DAXW5iLp.js +1 -0
  583. package/dist/web/_app/immutable/chunks/DCNJWlho2.js +1 -0
  584. package/dist/web/_app/immutable/chunks/DCtgLRl52.js +1 -0
  585. package/dist/web/_app/immutable/chunks/DH0epITQ2.js +1 -0
  586. package/dist/web/_app/immutable/chunks/DIb5rAPU2.js +1 -0
  587. package/dist/web/_app/immutable/chunks/DOmH4G9o2.js +14 -0
  588. package/dist/web/_app/immutable/chunks/DQMWa2t7.js +1 -0
  589. package/dist/web/_app/immutable/chunks/DQ_Xokap2.js +1 -0
  590. package/dist/web/_app/immutable/chunks/DR1K6PIm.js +1 -0
  591. package/dist/web/_app/immutable/chunks/DTCHhxD5.js +1 -0
  592. package/dist/web/_app/immutable/chunks/DU7XA-cL2.js +1 -0
  593. package/dist/web/_app/immutable/chunks/DVcy5Pp82.js +1 -0
  594. package/dist/web/_app/immutable/chunks/DWygwzcO2.js +1 -0
  595. package/dist/web/_app/immutable/chunks/DYXDRmoo2.js +1 -0
  596. package/dist/web/_app/immutable/chunks/DZEmjBTb.js +5 -0
  597. package/dist/web/_app/immutable/chunks/DaoOQFPb.js +1 -0
  598. package/dist/web/_app/immutable/chunks/DdfvtDOY.js +1 -0
  599. package/dist/web/_app/immutable/chunks/DevZTY1l.js +1 -0
  600. package/dist/web/_app/immutable/chunks/DiMQob8p.js +1 -0
  601. package/dist/web/_app/immutable/chunks/DiQJ9DLy.js +1 -0
  602. package/dist/web/_app/immutable/chunks/Dj5oP_ik.js +2 -0
  603. package/dist/web/_app/immutable/chunks/DjTJ4D_0.js +3 -0
  604. package/dist/web/_app/immutable/chunks/Dk4TeNwu.js +1 -0
  605. package/dist/web/_app/immutable/chunks/Dng3OcRd2.js +1 -0
  606. package/dist/web/_app/immutable/chunks/Do1OCNEG.js +1 -0
  607. package/dist/web/_app/immutable/chunks/Do6qOOng.js +1 -0
  608. package/dist/web/_app/immutable/chunks/DoQwt-f9.js +1 -0
  609. package/dist/web/_app/immutable/chunks/Dqg3k9HI2.js +1 -0
  610. package/dist/web/_app/immutable/chunks/DsnqOT222.js +1 -0
  611. package/dist/web/_app/immutable/chunks/DvJSCDuZ2.js +1 -0
  612. package/dist/web/_app/immutable/chunks/DvPuaTCl.js +5 -0
  613. package/dist/web/_app/immutable/chunks/DvYQu1SV.js +1 -0
  614. package/dist/web/_app/immutable/chunks/HdjeJPly2.js +1 -0
  615. package/dist/web/_app/immutable/chunks/JDw4tOUY.js +1 -0
  616. package/dist/web/_app/immutable/chunks/KBbDg4lS2.js +1 -0
  617. package/dist/web/_app/immutable/chunks/KQXQLJf32.js +1 -0
  618. package/dist/web/_app/immutable/chunks/LGnNalpn2.js +2 -0
  619. package/dist/web/_app/immutable/chunks/SH5Fg0Xu.js +1 -0
  620. package/dist/web/_app/immutable/chunks/Shyla9c12.js +2 -0
  621. package/dist/web/_app/immutable/chunks/VQbAelHN.js +1 -0
  622. package/dist/web/_app/immutable/chunks/apNT0aug2.js +1 -0
  623. package/dist/web/_app/immutable/chunks/e0ySQvQ6.js +1 -0
  624. package/dist/web/_app/immutable/chunks/eNB_sIHC2.js +1 -0
  625. package/dist/web/_app/immutable/chunks/g09ZrevW2.js +1 -0
  626. package/dist/web/_app/immutable/chunks/h4WWBpcD2.js +2692 -0
  627. package/dist/web/_app/immutable/chunks/kLub81jO.js +1 -0
  628. package/dist/web/_app/immutable/chunks/kW0z_eo62.js +1 -0
  629. package/dist/web/_app/immutable/chunks/oBQOivfH.js +1 -0
  630. package/dist/web/_app/immutable/chunks/ss8hcwTT.js +1 -0
  631. package/dist/web/_app/immutable/chunks/sub7ikQV.js +2 -0
  632. package/dist/web/_app/immutable/chunks/uuFM-ygL.js +1 -0
  633. package/dist/web/_app/immutable/chunks/v7me-ydg.js +2 -0
  634. package/dist/web/_app/immutable/chunks/xihTtKlq.js +1 -0
  635. package/dist/web/_app/immutable/chunks/yWi6xIp8.js +1 -0
  636. package/dist/web/_app/immutable/chunks/zl16E4yc2.js +1 -0
  637. package/dist/web/_app/immutable/entry/app.Bgniax9U.js +2 -0
  638. package/dist/web/_app/immutable/entry/start.DeD3x0AC.js +1 -0
  639. package/dist/web/_app/immutable/nodes/0.D7f7eDDY.js +2 -0
  640. package/dist/web/_app/immutable/nodes/1.nDAGsQWA.js +1 -0
  641. package/dist/web/_app/immutable/nodes/10.DFbhcPKT.js +1 -0
  642. package/dist/web/_app/immutable/nodes/11.CDErrkBt.js +1 -0
  643. package/dist/web/_app/immutable/nodes/12.QmphOXE2.js +1 -0
  644. package/dist/web/_app/immutable/nodes/13.Bq5rDhPs.js +1 -0
  645. package/dist/web/_app/immutable/nodes/14.BlcHqgr6.js +1 -0
  646. package/dist/web/_app/immutable/nodes/15.COK_-D-x.js +1 -0
  647. package/dist/web/_app/immutable/nodes/2.DOsCYNHa.js +109 -0
  648. package/dist/web/_app/immutable/nodes/3.BgE1sIyr.js +2 -0
  649. package/dist/web/_app/immutable/nodes/4.DvgaHeI4.js +11 -0
  650. package/dist/web/_app/immutable/nodes/5.CrjeBZES.js +1 -0
  651. package/dist/web/_app/immutable/nodes/6.DoHxsiEE.js +1 -0
  652. package/dist/web/_app/immutable/nodes/7.04fnxKIo.js +1 -0
  653. package/dist/web/_app/immutable/nodes/8.D35_cY6C.js +1 -0
  654. package/dist/web/_app/immutable/nodes/9.BRionwW6.js +1 -0
  655. package/dist/web/_app/version.json +1 -1
  656. package/dist/web/favicon-16.png +0 -0
  657. package/dist/web/favicon-180.png +0 -0
  658. package/dist/web/favicon-32.png +0 -0
  659. package/dist/web/favicon-48.png +0 -0
  660. package/dist/web/favicon-512.png +0 -0
  661. package/dist/web/favicon.ico +0 -0
  662. package/dist/web/favicon.svg +8 -0
  663. package/dist/web/index.html +56 -19
  664. package/dist/web/studiograph-logomark.svg +29 -0
  665. package/package.json +34 -14
  666. package/dist/agent/skills/enrich-entities.md +0 -136
  667. package/dist/agent/skills/obsidian-source-setup.md +0 -246
  668. package/dist/agent/skills/skill-loader.d.ts +0 -48
  669. package/dist/agent/skills/skill-loader.js +0 -166
  670. package/dist/agent/skills/skill-loader.js.map +0 -1
  671. package/dist/agent/skills/sync-configuration.md +0 -119
  672. package/dist/agent/skills/sync-setup.md +0 -82
  673. package/dist/agent/tools/sync-tools.d.ts +0 -35
  674. package/dist/agent/tools/sync-tools.js +0 -992
  675. package/dist/agent/tools/sync-tools.js.map +0 -1
  676. package/dist/auth/github.d.ts +0 -56
  677. package/dist/auth/github.js +0 -169
  678. package/dist/auth/github.js.map +0 -1
  679. package/dist/cli/commands/access.d.ts +0 -11
  680. package/dist/cli/commands/access.js +0 -156
  681. package/dist/cli/commands/access.js.map +0 -1
  682. package/dist/cli/commands/app.d.ts +0 -7
  683. package/dist/cli/commands/app.js +0 -268
  684. package/dist/cli/commands/app.js.map +0 -1
  685. package/dist/cli/commands/auth.d.ts +0 -10
  686. package/dist/cli/commands/auth.js +0 -79
  687. package/dist/cli/commands/auth.js.map +0 -1
  688. package/dist/cli/commands/clear.d.ts +0 -5
  689. package/dist/cli/commands/clear.js +0 -36
  690. package/dist/cli/commands/clear.js.map +0 -1
  691. package/dist/cli/commands/collection.d.ts +0 -10
  692. package/dist/cli/commands/collection.js +0 -187
  693. package/dist/cli/commands/collection.js.map +0 -1
  694. package/dist/cli/commands/enrich.d.ts +0 -11
  695. package/dist/cli/commands/enrich.js +0 -135
  696. package/dist/cli/commands/enrich.js.map +0 -1
  697. package/dist/cli/commands/graphrag.d.ts +0 -12
  698. package/dist/cli/commands/graphrag.js +0 -122
  699. package/dist/cli/commands/graphrag.js.map +0 -1
  700. package/dist/cli/commands/join.d.ts +0 -9
  701. package/dist/cli/commands/join.js +0 -255
  702. package/dist/cli/commands/join.js.map +0 -1
  703. package/dist/cli/commands/members.d.ts +0 -11
  704. package/dist/cli/commands/members.js +0 -230
  705. package/dist/cli/commands/members.js.map +0 -1
  706. package/dist/cli/commands/org.d.ts +0 -10
  707. package/dist/cli/commands/org.js +0 -132
  708. package/dist/cli/commands/org.js.map +0 -1
  709. package/dist/cli/commands/provision.d.ts +0 -8
  710. package/dist/cli/commands/provision.js +0 -116
  711. package/dist/cli/commands/provision.js.map +0 -1
  712. package/dist/cli/commands/resolve.d.ts +0 -8
  713. package/dist/cli/commands/resolve.js +0 -85
  714. package/dist/cli/commands/resolve.js.map +0 -1
  715. package/dist/cli/commands/review.d.ts +0 -19
  716. package/dist/cli/commands/review.js +0 -128
  717. package/dist/cli/commands/review.js.map +0 -1
  718. package/dist/cli/commands/source.d.ts +0 -16
  719. package/dist/cli/commands/source.js +0 -159
  720. package/dist/cli/commands/source.js.map +0 -1
  721. package/dist/cli/commands/start.d.ts +0 -7
  722. package/dist/cli/commands/start.js +0 -589
  723. package/dist/cli/commands/start.js.map +0 -1
  724. package/dist/cli/commands/sync-collection.d.ts +0 -14
  725. package/dist/cli/commands/sync-collection.js +0 -355
  726. package/dist/cli/commands/sync-collection.js.map +0 -1
  727. package/dist/cli/commands/sync-entities.d.ts +0 -13
  728. package/dist/cli/commands/sync-entities.js +0 -242
  729. package/dist/cli/commands/sync-entities.js.map +0 -1
  730. package/dist/cli/commands/team.d.ts +0 -12
  731. package/dist/cli/commands/team.js +0 -185
  732. package/dist/cli/commands/team.js.map +0 -1
  733. package/dist/cli/commands/update.d.ts +0 -8
  734. package/dist/cli/commands/update.js +0 -155
  735. package/dist/cli/commands/update.js.map +0 -1
  736. package/dist/cli/commands/user.d.ts +0 -7
  737. package/dist/cli/commands/user.js +0 -153
  738. package/dist/cli/commands/user.js.map +0 -1
  739. package/dist/cli/scaffolding.d.ts +0 -12
  740. package/dist/cli/scaffolding.js +0 -397
  741. package/dist/cli/scaffolding.js.map +0 -1
  742. package/dist/cli/sync-review-interactive.d.ts +0 -31
  743. package/dist/cli/sync-review-interactive.js +0 -393
  744. package/dist/cli/sync-review-interactive.js.map +0 -1
  745. package/dist/core/migration-runner.d.ts +0 -42
  746. package/dist/core/migration-runner.js +0 -232
  747. package/dist/core/migration-runner.js.map +0 -1
  748. package/dist/core/migration-types.d.ts +0 -101
  749. package/dist/core/migration-types.js +0 -21
  750. package/dist/core/migration-types.js.map +0 -1
  751. package/dist/core/migrations/20260219-formalize-memory-location.d.ts +0 -2
  752. package/dist/core/migrations/20260219-formalize-memory-location.js +0 -35
  753. package/dist/core/migrations/20260219-formalize-memory-location.js.map +0 -1
  754. package/dist/core/migrations/20260220-add-workspace-metadata.d.ts +0 -12
  755. package/dist/core/migrations/20260220-add-workspace-metadata.js +0 -65
  756. package/dist/core/migrations/20260220-add-workspace-metadata.js.map +0 -1
  757. package/dist/core/migrations/20260220-add-workspace-readme.d.ts +0 -11
  758. package/dist/core/migrations/20260220-add-workspace-readme.js +0 -82
  759. package/dist/core/migrations/20260220-add-workspace-readme.js.map +0 -1
  760. package/dist/core/migrations/20260220-migrate-yaml-to-json.d.ts +0 -9
  761. package/dist/core/migrations/20260220-migrate-yaml-to-json.js +0 -64
  762. package/dist/core/migrations/20260220-migrate-yaml-to-json.js.map +0 -1
  763. package/dist/core/migrations/index.d.ts +0 -11
  764. package/dist/core/migrations/index.js +0 -23
  765. package/dist/core/migrations/index.js.map +0 -1
  766. package/dist/integrations/asana.d.ts +0 -26
  767. package/dist/integrations/asana.js +0 -78
  768. package/dist/integrations/asana.js.map +0 -1
  769. package/dist/integrations/figma-local.d.ts +0 -16
  770. package/dist/integrations/figma-local.js +0 -10
  771. package/dist/integrations/figma-local.js.map +0 -1
  772. package/dist/integrations/figma.d.ts +0 -17
  773. package/dist/integrations/figma.js +0 -17
  774. package/dist/integrations/figma.js.map +0 -1
  775. package/dist/integrations/granola.d.ts +0 -24
  776. package/dist/integrations/granola.js +0 -60
  777. package/dist/integrations/granola.js.map +0 -1
  778. package/dist/integrations/linear.d.ts +0 -14
  779. package/dist/integrations/linear.js +0 -80
  780. package/dist/integrations/linear.js.map +0 -1
  781. package/dist/integrations/paper-local.d.ts +0 -14
  782. package/dist/integrations/paper-local.js +0 -10
  783. package/dist/integrations/paper-local.js.map +0 -1
  784. package/dist/integrations/paper.d.ts +0 -2
  785. package/dist/integrations/paper.js +0 -10
  786. package/dist/integrations/paper.js.map +0 -1
  787. package/dist/integrations/pipedrive.d.ts +0 -26
  788. package/dist/integrations/pipedrive.js +0 -97
  789. package/dist/integrations/pipedrive.js.map +0 -1
  790. package/dist/integrations/registry.d.ts +0 -15
  791. package/dist/integrations/registry.js +0 -27
  792. package/dist/integrations/registry.js.map +0 -1
  793. package/dist/integrations/types.d.ts +0 -38
  794. package/dist/integrations/types.js +0 -9
  795. package/dist/integrations/types.js.map +0 -1
  796. package/dist/lib/lib/utils.d.ts +0 -2
  797. package/dist/lib/lib/utils.js +0 -6
  798. package/dist/lib/lib/utils.js.map +0 -1
  799. package/dist/mcp/connectors/asana.d.ts +0 -2
  800. package/dist/mcp/connectors/asana.js +0 -20
  801. package/dist/mcp/connectors/asana.js.map +0 -1
  802. package/dist/mcp/connectors/definitions.d.ts +0 -45
  803. package/dist/mcp/connectors/definitions.js +0 -32
  804. package/dist/mcp/connectors/definitions.js.map +0 -1
  805. package/dist/mcp/connectors/figma.d.ts +0 -5
  806. package/dist/mcp/connectors/figma.js +0 -21
  807. package/dist/mcp/connectors/figma.js.map +0 -1
  808. package/dist/mcp/connectors/gdrive.d.ts +0 -2
  809. package/dist/mcp/connectors/gdrive.js +0 -20
  810. package/dist/mcp/connectors/gdrive.js.map +0 -1
  811. package/dist/mcp/connectors/granola.d.ts +0 -2
  812. package/dist/mcp/connectors/granola.js +0 -12
  813. package/dist/mcp/connectors/granola.js.map +0 -1
  814. package/dist/mcp/connectors/linear.d.ts +0 -2
  815. package/dist/mcp/connectors/linear.js +0 -19
  816. package/dist/mcp/connectors/linear.js.map +0 -1
  817. package/dist/mcp/connectors/obsidian.d.ts +0 -2
  818. package/dist/mcp/connectors/obsidian.js +0 -19
  819. package/dist/mcp/connectors/obsidian.js.map +0 -1
  820. package/dist/mcp/connectors/pipedrive.d.ts +0 -2
  821. package/dist/mcp/connectors/pipedrive.js +0 -20
  822. package/dist/mcp/connectors/pipedrive.js.map +0 -1
  823. package/dist/mcp/connectors/slack.d.ts +0 -2
  824. package/dist/mcp/connectors/slack.js +0 -21
  825. package/dist/mcp/connectors/slack.js.map +0 -1
  826. package/dist/mcp/server-oauth-provider.d.ts +0 -56
  827. package/dist/mcp/server-oauth-provider.js +0 -142
  828. package/dist/mcp/server-oauth-provider.js.map +0 -1
  829. package/dist/server/chrome/chrome.css +0 -691
  830. package/dist/server/chrome/chrome.js +0 -374
  831. package/dist/server/collab-authority.d.ts +0 -70
  832. package/dist/server/collab-authority.js +0 -218
  833. package/dist/server/collab-authority.js.map +0 -1
  834. package/dist/server/collab.d.ts +0 -29
  835. package/dist/server/collab.js +0 -195
  836. package/dist/server/collab.js.map +0 -1
  837. package/dist/server/commit-scheduler.d.ts +0 -39
  838. package/dist/server/commit-scheduler.js +0 -113
  839. package/dist/server/commit-scheduler.js.map +0 -1
  840. package/dist/server/plugin-loader.d.ts +0 -53
  841. package/dist/server/plugin-loader.js +0 -155
  842. package/dist/server/plugin-loader.js.map +0 -1
  843. package/dist/server/routes/collab.d.ts +0 -6
  844. package/dist/server/routes/collab.js +0 -10
  845. package/dist/server/routes/collab.js.map +0 -1
  846. package/dist/server/routes/git-api.d.ts +0 -9
  847. package/dist/server/routes/git-api.js +0 -82
  848. package/dist/server/routes/git-api.js.map +0 -1
  849. package/dist/server/routes/meeting-ingest-api.d.ts +0 -15
  850. package/dist/server/routes/meeting-ingest-api.js +0 -323
  851. package/dist/server/routes/meeting-ingest-api.js.map +0 -1
  852. package/dist/server/routes/sync-api.d.ts +0 -26
  853. package/dist/server/routes/sync-api.js +0 -814
  854. package/dist/server/routes/sync-api.js.map +0 -1
  855. package/dist/server/routes/webhook.d.ts +0 -14
  856. package/dist/server/routes/webhook.js +0 -102
  857. package/dist/server/routes/webhook.js.map +0 -1
  858. package/dist/services/github-provisioner.d.ts +0 -36
  859. package/dist/services/github-provisioner.js +0 -126
  860. package/dist/services/github-provisioner.js.map +0 -1
  861. package/dist/services/github-service.d.ts +0 -99
  862. package/dist/services/github-service.js +0 -310
  863. package/dist/services/github-service.js.map +0 -1
  864. package/dist/services/insights.d.ts +0 -38
  865. package/dist/services/insights.js +0 -246
  866. package/dist/services/insights.js.map +0 -1
  867. package/dist/services/sync/collection-sync.d.ts +0 -60
  868. package/dist/services/sync/collection-sync.js +0 -509
  869. package/dist/services/sync/collection-sync.js.map +0 -1
  870. package/dist/services/sync/commit.d.ts +0 -60
  871. package/dist/services/sync/commit.js +0 -354
  872. package/dist/services/sync/commit.js.map +0 -1
  873. package/dist/services/sync/context-index.d.ts +0 -69
  874. package/dist/services/sync/context-index.js +0 -280
  875. package/dist/services/sync/context-index.js.map +0 -1
  876. package/dist/services/sync/data-fetcher.d.ts +0 -31
  877. package/dist/services/sync/data-fetcher.js +0 -12
  878. package/dist/services/sync/data-fetcher.js.map +0 -1
  879. package/dist/services/sync/derive.d.ts +0 -34
  880. package/dist/services/sync/derive.js +0 -164
  881. package/dist/services/sync/derive.js.map +0 -1
  882. package/dist/services/sync/enrichment-state.d.ts +0 -31
  883. package/dist/services/sync/enrichment-state.js +0 -63
  884. package/dist/services/sync/enrichment-state.js.map +0 -1
  885. package/dist/services/sync/enrichment.d.ts +0 -25
  886. package/dist/services/sync/enrichment.js +0 -121
  887. package/dist/services/sync/enrichment.js.map +0 -1
  888. package/dist/services/sync/entity-refresh.d.ts +0 -30
  889. package/dist/services/sync/entity-refresh.js +0 -275
  890. package/dist/services/sync/entity-refresh.js.map +0 -1
  891. package/dist/services/sync/frontmatter-extractor.d.ts +0 -40
  892. package/dist/services/sync/frontmatter-extractor.js +0 -279
  893. package/dist/services/sync/frontmatter-extractor.js.map +0 -1
  894. package/dist/services/sync/graph-match-state.d.ts +0 -33
  895. package/dist/services/sync/graph-match-state.js +0 -61
  896. package/dist/services/sync/graph-match-state.js.map +0 -1
  897. package/dist/services/sync/graph-match.d.ts +0 -53
  898. package/dist/services/sync/graph-match.js +0 -316
  899. package/dist/services/sync/graph-match.js.map +0 -1
  900. package/dist/services/sync/graphrag-client.d.ts +0 -43
  901. package/dist/services/sync/graphrag-client.js +0 -94
  902. package/dist/services/sync/graphrag-client.js.map +0 -1
  903. package/dist/services/sync/graphrag-config.d.ts +0 -16
  904. package/dist/services/sync/graphrag-config.js +0 -39
  905. package/dist/services/sync/graphrag-config.js.map +0 -1
  906. package/dist/services/sync/graphrag-context.d.ts +0 -14
  907. package/dist/services/sync/graphrag-context.js +0 -109
  908. package/dist/services/sync/graphrag-context.js.map +0 -1
  909. package/dist/services/sync/graphrag-indexer.d.ts +0 -30
  910. package/dist/services/sync/graphrag-indexer.js +0 -358
  911. package/dist/services/sync/graphrag-indexer.js.map +0 -1
  912. package/dist/services/sync/llm.d.ts +0 -32
  913. package/dist/services/sync/llm.js +0 -115
  914. package/dist/services/sync/llm.js.map +0 -1
  915. package/dist/services/sync/mcp-client.d.ts +0 -71
  916. package/dist/services/sync/mcp-client.js +0 -299
  917. package/dist/services/sync/mcp-client.js.map +0 -1
  918. package/dist/services/sync/model-factory.d.ts +0 -13
  919. package/dist/services/sync/model-factory.js +0 -38
  920. package/dist/services/sync/model-factory.js.map +0 -1
  921. package/dist/services/sync/name-quality.d.ts +0 -31
  922. package/dist/services/sync/name-quality.js +0 -60
  923. package/dist/services/sync/name-quality.js.map +0 -1
  924. package/dist/services/sync/output-schemas.d.ts +0 -92
  925. package/dist/services/sync/output-schemas.js +0 -43
  926. package/dist/services/sync/output-schemas.js.map +0 -1
  927. package/dist/services/sync/prompts.d.ts +0 -19
  928. package/dist/services/sync/prompts.js +0 -128
  929. package/dist/services/sync/prompts.js.map +0 -1
  930. package/dist/services/sync/reconciler.d.ts +0 -48
  931. package/dist/services/sync/reconciler.js +0 -294
  932. package/dist/services/sync/reconciler.js.map +0 -1
  933. package/dist/services/sync/rest-client.d.ts +0 -40
  934. package/dist/services/sync/rest-client.js +0 -100
  935. package/dist/services/sync/rest-client.js.map +0 -1
  936. package/dist/services/sync/source-config.d.ts +0 -67
  937. package/dist/services/sync/source-config.js +0 -304
  938. package/dist/services/sync/source-config.js.map +0 -1
  939. package/dist/services/sync/source-definitions/asana.d.ts +0 -14
  940. package/dist/services/sync/source-definitions/asana.js +0 -42
  941. package/dist/services/sync/source-definitions/asana.js.map +0 -1
  942. package/dist/services/sync/source-definitions/definitions.d.ts +0 -8
  943. package/dist/services/sync/source-definitions/definitions.js +0 -8
  944. package/dist/services/sync/source-definitions/definitions.js.map +0 -1
  945. package/dist/services/sync/source-definitions/gdrive.d.ts +0 -16
  946. package/dist/services/sync/source-definitions/gdrive.js +0 -68
  947. package/dist/services/sync/source-definitions/gdrive.js.map +0 -1
  948. package/dist/services/sync/source-definitions/granola.d.ts +0 -2
  949. package/dist/services/sync/source-definitions/granola.js +0 -21
  950. package/dist/services/sync/source-definitions/granola.js.map +0 -1
  951. package/dist/services/sync/source-definitions/linear.d.ts +0 -2
  952. package/dist/services/sync/source-definitions/linear.js +0 -62
  953. package/dist/services/sync/source-definitions/linear.js.map +0 -1
  954. package/dist/services/sync/source-definitions/obsidian.d.ts +0 -2
  955. package/dist/services/sync/source-definitions/obsidian.js +0 -55
  956. package/dist/services/sync/source-definitions/obsidian.js.map +0 -1
  957. package/dist/services/sync/source-definitions/pipedrive.d.ts +0 -2
  958. package/dist/services/sync/source-definitions/pipedrive.js +0 -43
  959. package/dist/services/sync/source-definitions/pipedrive.js.map +0 -1
  960. package/dist/services/sync/staging.d.ts +0 -53
  961. package/dist/services/sync/staging.js +0 -130
  962. package/dist/services/sync/staging.js.map +0 -1
  963. package/dist/services/sync/structured-extractor.d.ts +0 -57
  964. package/dist/services/sync/structured-extractor.js +0 -584
  965. package/dist/services/sync/structured-extractor.js.map +0 -1
  966. package/dist/services/sync/sync-runner.d.ts +0 -32
  967. package/dist/services/sync/sync-runner.js +0 -195
  968. package/dist/services/sync/sync-runner.js.map +0 -1
  969. package/dist/services/sync/sync-state.d.ts +0 -43
  970. package/dist/services/sync/sync-state.js +0 -154
  971. package/dist/services/sync/sync-state.js.map +0 -1
  972. package/dist/services/sync/types.d.ts +0 -381
  973. package/dist/services/sync/types.js +0 -8
  974. package/dist/services/sync/types.js.map +0 -1
  975. package/dist/services/sync/unstructured-extractor.d.ts +0 -27
  976. package/dist/services/sync/unstructured-extractor.js +0 -185
  977. package/dist/services/sync/unstructured-extractor.js.map +0 -1
  978. package/dist/utils/merge-resolver.d.ts +0 -59
  979. package/dist/utils/merge-resolver.js +0 -303
  980. package/dist/utils/merge-resolver.js.map +0 -1
  981. package/dist/utils/workspace-config.d.ts +0 -8
  982. package/dist/utils/workspace-config.js +0 -22
  983. package/dist/utils/workspace-config.js.map +0 -1
  984. package/dist/web/_app/immutable/assets/0.DdizXOKi.css +0 -1
  985. package/dist/web/_app/immutable/assets/10.BUrHkYry.css +0 -1
  986. package/dist/web/_app/immutable/assets/2.n7-yW_Fs.css +0 -1
  987. package/dist/web/_app/immutable/assets/3.BtaZagnv.css +0 -1
  988. package/dist/web/_app/immutable/assets/4.DT7X0x5S.css +0 -1
  989. package/dist/web/_app/immutable/assets/5.DFeGxLYf.css +0 -1
  990. package/dist/web/_app/immutable/assets/6.CquhUpOu.css +0 -1
  991. package/dist/web/_app/immutable/assets/7.CjbDRbuG.css +0 -1
  992. package/dist/web/_app/immutable/assets/8.S1QdUGNM.css +0 -1
  993. package/dist/web/_app/immutable/assets/9.CT4xL4K3.css +0 -1
  994. package/dist/web/_app/immutable/assets/Copy.FS8bdfxr.css +0 -1
  995. package/dist/web/_app/immutable/assets/Toaster.rN8r_Hzv.css +0 -1
  996. package/dist/web/_app/immutable/assets/ViewToolbar.D-QW2oKe.css +0 -1
  997. package/dist/web/_app/immutable/assets/index.D6tMDJWk.css +0 -1
  998. package/dist/web/_app/immutable/chunks/37NdyH6G.js +0 -32
  999. package/dist/web/_app/immutable/chunks/4Hhzb6pv.js +0 -1
  1000. package/dist/web/_app/immutable/chunks/72bZS3G9.js +0 -1
  1001. package/dist/web/_app/immutable/chunks/7S2LGqoP.js +0 -2
  1002. package/dist/web/_app/immutable/chunks/B-7hHz7B.js +0 -1
  1003. package/dist/web/_app/immutable/chunks/B340SUKR.js +0 -1
  1004. package/dist/web/_app/immutable/chunks/BB_5th5W.js +0 -3383
  1005. package/dist/web/_app/immutable/chunks/BDoWDZaG.js +0 -1
  1006. package/dist/web/_app/immutable/chunks/BFyl1ZHO.js +0 -1
  1007. package/dist/web/_app/immutable/chunks/BS2rFAVq.js +0 -1
  1008. package/dist/web/_app/immutable/chunks/BSsDC_p4.js +0 -1
  1009. package/dist/web/_app/immutable/chunks/BTX2Jr8_.js +0 -1
  1010. package/dist/web/_app/immutable/chunks/BWNY8zw6.js +0 -2
  1011. package/dist/web/_app/immutable/chunks/BdPUVvAi.js +0 -1
  1012. package/dist/web/_app/immutable/chunks/BmsJVLyy.js +0 -1
  1013. package/dist/web/_app/immutable/chunks/BoAosqzE.js +0 -1
  1014. package/dist/web/_app/immutable/chunks/Bs-tL5OR.js +0 -1
  1015. package/dist/web/_app/immutable/chunks/Bsacq2UX.js +0 -1
  1016. package/dist/web/_app/immutable/chunks/BuewkNdS.js +0 -4
  1017. package/dist/web/_app/immutable/chunks/ByunV8un.js +0 -1
  1018. package/dist/web/_app/immutable/chunks/C7VoTosa.js +0 -2
  1019. package/dist/web/_app/immutable/chunks/CDV5Q7RN.js +0 -1
  1020. package/dist/web/_app/immutable/chunks/CJ8__CWt.js +0 -1
  1021. package/dist/web/_app/immutable/chunks/CJUKmosC.js +0 -5
  1022. package/dist/web/_app/immutable/chunks/CSVbGg_b.js +0 -5
  1023. package/dist/web/_app/immutable/chunks/CT6oIU-C.js +0 -1
  1024. package/dist/web/_app/immutable/chunks/CTRxNfZk.js +0 -1
  1025. package/dist/web/_app/immutable/chunks/CWQRQXxy.js +0 -1
  1026. package/dist/web/_app/immutable/chunks/CXH6iFbA.js +0 -1
  1027. package/dist/web/_app/immutable/chunks/CX_61fY8.js +0 -5
  1028. package/dist/web/_app/immutable/chunks/CYrVHOHA.js +0 -1
  1029. package/dist/web/_app/immutable/chunks/CdeYcEuU.js +0 -1
  1030. package/dist/web/_app/immutable/chunks/CmCtpZ1Y.js +0 -1
  1031. package/dist/web/_app/immutable/chunks/CqkleIqs.js +0 -1
  1032. package/dist/web/_app/immutable/chunks/CrdV0ttd.js +0 -1
  1033. package/dist/web/_app/immutable/chunks/CscoF-YL.js +0 -18
  1034. package/dist/web/_app/immutable/chunks/Cx4YdFMk.js +0 -1
  1035. package/dist/web/_app/immutable/chunks/D7ZqAKi9.js +0 -3
  1036. package/dist/web/_app/immutable/chunks/DGbA7IXh.js +0 -2
  1037. package/dist/web/_app/immutable/chunks/DbbB6Up5.js +0 -1
  1038. package/dist/web/_app/immutable/chunks/DnL9f0lc.js +0 -7
  1039. package/dist/web/_app/immutable/chunks/DtM5cEDu.js +0 -1
  1040. package/dist/web/_app/immutable/chunks/Eqahi7_S.js +0 -2
  1041. package/dist/web/_app/immutable/chunks/FFlLQIiS.js +0 -1
  1042. package/dist/web/_app/immutable/chunks/O9Eb9k00.js +0 -1
  1043. package/dist/web/_app/immutable/chunks/PPVm8Dsz.js +0 -1
  1044. package/dist/web/_app/immutable/chunks/QF8MAmnc.js +0 -1
  1045. package/dist/web/_app/immutable/chunks/UjzxCpxn.js +0 -1
  1046. package/dist/web/_app/immutable/chunks/WSUKABI_.js +0 -1
  1047. package/dist/web/_app/immutable/chunks/Y90OgS-9.js +0 -1
  1048. package/dist/web/_app/immutable/chunks/cLyZlkXv.js +0 -1
  1049. package/dist/web/_app/immutable/chunks/iDtAARVW.js +0 -2
  1050. package/dist/web/_app/immutable/chunks/oC_W7W7p.js +0 -1
  1051. package/dist/web/_app/immutable/chunks/rJdWIgh-.js +0 -1
  1052. package/dist/web/_app/immutable/chunks/tvOsokaa.js +0 -1
  1053. package/dist/web/_app/immutable/chunks/uLEXaPwE.js +0 -1
  1054. package/dist/web/_app/immutable/chunks/vSaooFHB.js +0 -1
  1055. package/dist/web/_app/immutable/entry/app.DAR-mtfg.js +0 -2
  1056. package/dist/web/_app/immutable/entry/start.xDnyRaR1.js +0 -1
  1057. package/dist/web/_app/immutable/nodes/0.D0aV-Zro.js +0 -2
  1058. package/dist/web/_app/immutable/nodes/1.C7QoM8qD.js +0 -1
  1059. package/dist/web/_app/immutable/nodes/10.DrDOAjOD.js +0 -1
  1060. package/dist/web/_app/immutable/nodes/2.B0OgNuKW.js +0 -168
  1061. package/dist/web/_app/immutable/nodes/3.BZ4qHGZi.js +0 -1
  1062. package/dist/web/_app/immutable/nodes/4.hm-mxuuj.js +0 -12
  1063. package/dist/web/_app/immutable/nodes/5.Bdbt4fjx.js +0 -4
  1064. package/dist/web/_app/immutable/nodes/6.BXrCI40c.js +0 -2
  1065. package/dist/web/_app/immutable/nodes/7.Chd4i9bm.js +0 -2
  1066. package/dist/web/_app/immutable/nodes/8.B8SF-aNs.js +0 -1
  1067. package/dist/web/_app/immutable/nodes/9.YDeu-RnO.js +0 -1
@@ -1,992 +0,0 @@
1
- /**
2
- * Sync & Workspace Tools for Studiograph Agent
3
- *
4
- * These tools allow the agent to:
5
- * - Sync external data into collections (collection-scoped sync)
6
- * - Refresh individual synced entities from their source
7
- * - Manage workspace git operations (commit, push, pull, status)
8
- * - Inspect MCP connectors for sync configuration
9
- */
10
- import { Type as T } from '@sinclair/typebox';
11
- import { spawnSync } from 'child_process';
12
- import { gitPush, gitPull } from '../../utils/git.js';
13
- import { existsSync } from 'fs';
14
- import { join } from 'path';
15
- import { homedir } from 'os';
16
- import { commitRepos } from '../../services/sync/commit.js';
17
- import { StagingManager } from '../../services/sync/staging.js';
18
- import { SourceConfigManager } from '../../services/sync/source-config.js';
19
- import { ConnectorManager } from '../../mcp/connector-manager.js';
20
- import { SOURCE_DEFINITIONS } from '../../services/sync/source-definitions/definitions.js';
21
- import { syncRepo, syncWorkspaceRule } from '../../services/sync/collection-sync.js';
22
- import { refreshEntity } from '../../services/sync/entity-refresh.js';
23
- import { wrapToolResult } from './graph-tools.js';
24
- import { VectorService } from '../../services/vector-service.js';
25
- import { BaseGraphManager } from '../../core/graph.js';
26
- import { loadUserConfig } from '../../core/user-config.js';
27
- export function createSyncTools(workspacePath, workspaceConfig, registryRef, getCurrentUser) {
28
- const getUser = getCurrentUser ?? (() => null);
29
- const getRegistry = () => registryRef?.registry ?? null;
30
- function adminOnly() {
31
- const user = getUser();
32
- if (!user)
33
- return null;
34
- if (user.role === 'admin')
35
- return null;
36
- return 'Sync operations require admin access.';
37
- }
38
- return [
39
- // ── Collection-scoped sync tools ─────────────────────────────────────────
40
- // Sync a collection — runs collection-level rules AND workspace-level rules targeting it
41
- {
42
- name: 'sync_collection',
43
- label: 'Sync Collection',
44
- description: 'Pull new entities from external sources into a collection (admin only). Runs both collection-level sync rules and any workspace-level sync rules that target this collection. Creates new entities only — existing entities (matched by source_ref) are never updated. Always confirm with the user before calling.',
45
- parameters: T.Object({
46
- collection: T.String({ description: 'Collection name to sync' }),
47
- }),
48
- execute: async (toolCallId, params) => {
49
- try {
50
- const denied = adminOnly();
51
- if (denied)
52
- return wrapToolResult({ success: false, error: denied });
53
- const progress = [];
54
- const { results } = await syncRepo({
55
- workspacePath,
56
- collectionName: params.collection,
57
- workspaceConfig,
58
- schemaExtensions: workspaceConfig.schema_extensions,
59
- onProgress: (msg) => progress.push(msg),
60
- });
61
- const totalCreated = results.reduce((s, r) => r.targets.reduce((ts, t) => ts + t.created + t.derived, 0) + s, 0);
62
- const totalSkipped = results.reduce((s, r) => r.targets.reduce((ts, t) => ts + t.skipped, 0) + s, 0);
63
- return wrapToolResult({
64
- success: true,
65
- results,
66
- summary: `Created ${totalCreated}, skipped ${totalSkipped}`,
67
- progress: progress.join('\n'),
68
- nextSteps: totalCreated > 0 ? 'Commit changes with workspace_commit' : undefined,
69
- });
70
- }
71
- catch (error) {
72
- return wrapToolResult({
73
- success: false,
74
- error: error instanceof Error ? error.message : 'Unknown error',
75
- });
76
- }
77
- },
78
- },
79
- // Run all workspace-level sync rules
80
- {
81
- name: 'sync_workspace',
82
- label: 'Sync Workspace',
83
- description: 'Run all workspace-level sync rules (admin only). Each rule fetches from its source once and distributes records to multiple target collections.',
84
- parameters: T.Object({}),
85
- execute: async (toolCallId, _params) => {
86
- try {
87
- const denied = adminOnly();
88
- if (denied)
89
- return wrapToolResult({ success: false, error: denied });
90
- const rules = workspaceConfig.sync ?? [];
91
- if (rules.length === 0) {
92
- return wrapToolResult({ success: true, results: [], summary: 'No workspace-level sync rules configured' });
93
- }
94
- const progress = [];
95
- const results = [];
96
- for (const rule of rules) {
97
- const result = await syncWorkspaceRule({
98
- workspacePath,
99
- rule,
100
- workspaceConfig,
101
- schemaExtensions: workspaceConfig.schema_extensions,
102
- onProgress: (msg) => progress.push(msg),
103
- });
104
- results.push(result);
105
- }
106
- const totalCreated = results.reduce((s, r) => r.targets.reduce((ts, t) => ts + t.created + t.derived, 0) + s, 0);
107
- return wrapToolResult({
108
- success: true,
109
- results,
110
- summary: `Ran ${rules.length} workspace rule(s), created ${totalCreated} entities`,
111
- progress: progress.join('\n'),
112
- nextSteps: totalCreated > 0 ? 'Commit changes with workspace_commit' : undefined,
113
- });
114
- }
115
- catch (error) {
116
- return wrapToolResult({
117
- success: false,
118
- error: error instanceof Error ? error.message : 'Unknown error',
119
- });
120
- }
121
- },
122
- },
123
- // Refresh a single synced entity
124
- {
125
- name: 'sync_refresh',
126
- label: 'Refresh Synced Entity',
127
- description: 'Refresh a single entity from its external source (admin only). Shows what fields have changed.',
128
- parameters: T.Object({
129
- entity_id: T.String({ description: 'Entity ID to refresh' }),
130
- collection: T.Optional(T.String({ description: 'Collection name (auto-detected if omitted)' })),
131
- entity_type: T.Optional(T.String({ description: 'Entity type (auto-detected if omitted)' })),
132
- apply: T.Optional(T.Boolean({ description: 'Apply changes immediately (default: false, just show diff)' })),
133
- }),
134
- execute: async (toolCallId, params) => {
135
- const denied = adminOnly();
136
- if (denied)
137
- return wrapToolResult({ success: false, error: denied });
138
- try {
139
- let { collection, entity_type, entity_id, apply } = params;
140
- // Auto-detect collection and entity_type if not provided
141
- if (!collection || !entity_type) {
142
- for (const repo of workspaceConfig.repos) {
143
- try {
144
- const repoPath = join(workspacePath, repo.path);
145
- if (!existsSync(repoPath))
146
- continue;
147
- const graph = new BaseGraphManager({
148
- repoPath,
149
- repoName: repo.name,
150
- gitUser: { id: 'agent', name: 'Agent', email: 'agent@studiograph.local' },
151
- });
152
- const entities = graph.list();
153
- const match = entities.find(e => e.data?.entity_id === entity_id);
154
- if (match) {
155
- collection = repo.name;
156
- entity_type = match.entityType;
157
- break;
158
- }
159
- }
160
- catch { /* skip */ }
161
- }
162
- }
163
- if (!collection || !entity_type) {
164
- return wrapToolResult({
165
- success: false,
166
- error: `Entity "${entity_id}" not found in any collection`,
167
- });
168
- }
169
- const result = await refreshEntity({
170
- workspacePath,
171
- collectionName: collection,
172
- entityType: entity_type,
173
- entityId: entity_id,
174
- workspaceConfig: workspaceConfig,
175
- schemaExtensions: workspaceConfig.schema_extensions,
176
- apply: apply ?? false,
177
- });
178
- if (result.diffs.length === 0 && !result.body_changed) {
179
- return wrapToolResult({
180
- success: true,
181
- message: 'Entity is already up to date with the source.',
182
- entity_id,
183
- source_ref: result.source_ref,
184
- });
185
- }
186
- return wrapToolResult({
187
- success: true,
188
- entity_id,
189
- source_ref: result.source_ref,
190
- applied: result.applied,
191
- changes: result.diffs.map(d => ({
192
- field: d.field,
193
- from: d.old_value,
194
- to: d.new_value,
195
- })),
196
- body_changed: result.body_changed,
197
- nextSteps: result.applied
198
- ? 'Changes applied. Commit with workspace_commit.'
199
- : 'Review the changes above and call sync_refresh with apply: true to apply them.',
200
- });
201
- }
202
- catch (error) {
203
- return wrapToolResult({
204
- success: false,
205
- error: error instanceof Error ? error.message : 'Unknown error',
206
- });
207
- }
208
- },
209
- },
210
- // Show sync status across collections
211
- {
212
- name: 'sync_status',
213
- label: 'Sync Status',
214
- description: 'Show which collections have sync rules configured, their sources, and last sync time. Use this when users ask about sync configuration or what has been synced.',
215
- parameters: T.Object({
216
- collection: T.Optional(T.String({ description: 'Filter to a specific collection' })),
217
- }),
218
- execute: async (toolCallId, params) => {
219
- try {
220
- const repos = params.collection
221
- ? workspaceConfig.repos.filter(r => r.name === params.collection)
222
- : workspaceConfig.repos;
223
- const collections = [];
224
- for (const repo of repos) {
225
- const syncRules = repo.sync;
226
- if (!syncRules || syncRules.length === 0)
227
- continue;
228
- let syncedCount = 0;
229
- let lastSync = null;
230
- try {
231
- const repoPath = join(workspacePath, repo.path);
232
- if (!existsSync(repoPath))
233
- continue;
234
- const graph = new BaseGraphManager({
235
- repoPath,
236
- repoName: repo.name,
237
- gitUser: { id: 'agent', name: 'Agent', email: 'agent@studiograph.local' },
238
- });
239
- for (const entity of graph.list()) {
240
- const syncedAt = entity.data?.synced_at;
241
- if (syncedAt) {
242
- syncedCount++;
243
- if (!lastSync || syncedAt > lastSync)
244
- lastSync = syncedAt;
245
- }
246
- }
247
- }
248
- catch { /* skip */ }
249
- collections.push({ name: repo.name, syncRules, syncedCount, lastSync });
250
- }
251
- // Also list available source definitions
252
- const configMgr = new SourceConfigManager(workspacePath);
253
- const sources = configMgr.getAll().map(s => s.name);
254
- // Check for new-format too
255
- const { readdirSync } = await import('fs');
256
- const sourcesDir = join(workspacePath, '.studiograph', 'sources');
257
- if (existsSync(sourcesDir)) {
258
- for (const file of readdirSync(sourcesDir)) {
259
- if (!file.endsWith('.json'))
260
- continue;
261
- const name = file.replace('.json', '');
262
- if (!sources.includes(name)) {
263
- const def = configMgr.getDefinition(name);
264
- if (def)
265
- sources.push(name);
266
- }
267
- }
268
- }
269
- return wrapToolResult({
270
- success: true,
271
- collections,
272
- availableSources: sources,
273
- message: collections.length > 0
274
- ? `${collections.length} collection(s) with sync rules`
275
- : 'No collections have sync rules configured.',
276
- });
277
- }
278
- catch (error) {
279
- return wrapToolResult({
280
- success: false,
281
- error: error instanceof Error ? error.message : 'Unknown error',
282
- });
283
- }
284
- },
285
- },
286
- // Git commit across workspace repos
287
- {
288
- name: 'workspace_commit',
289
- label: 'Commit Changes',
290
- description: 'Git commit entity changes across all workspace repos. Works after sync_apply, enrich_run, or manual edits. Always confirm with the user before calling this.',
291
- parameters: T.Object({
292
- messagePrefix: T.Optional(T.String({ description: 'Commit message prefix (default: "update")' })),
293
- }),
294
- execute: async (toolCallId, params) => {
295
- try {
296
- const progress = [];
297
- await commitRepos(workspacePath, (msg) => progress.push(msg), { messagePrefix: params.messagePrefix ?? 'update' });
298
- return wrapToolResult({
299
- success: true,
300
- progress: progress.join('\n'),
301
- });
302
- }
303
- catch (error) {
304
- return wrapToolResult({
305
- success: false,
306
- error: error instanceof Error ? error.message : 'Unknown error',
307
- });
308
- }
309
- },
310
- },
311
- // List sources and connectors
312
- {
313
- name: 'sync_list_sources',
314
- label: 'List Sync Sources',
315
- description: 'Read sync source configurations. Returns full source configs with entity_mappings, field maps, transforms, and all settings. Also lists available connectors and known source definitions. Use this whenever users ask about their source config.',
316
- parameters: T.Object({}),
317
- execute: async (toolCallId, params) => {
318
- try {
319
- const configMgr = new SourceConfigManager(workspacePath);
320
- const sources = configMgr.getAll();
321
- // Load connectors but strip sensitive fields
322
- const connectors = ConnectorManager.loadConfigs(workspacePath).map(c => ({
323
- name: c.name,
324
- url: c.url,
325
- description: c.description,
326
- }));
327
- const availableDefinitions = Object.keys(SOURCE_DEFINITIONS);
328
- return wrapToolResult({
329
- success: true,
330
- sources,
331
- connectors,
332
- availableDefinitions,
333
- });
334
- }
335
- catch (error) {
336
- return wrapToolResult({
337
- success: false,
338
- error: error instanceof Error ? error.message : 'Unknown error',
339
- });
340
- }
341
- },
342
- },
343
- // Set up a new source
344
- {
345
- name: 'sync_setup_source',
346
- label: 'Setup Sync Source',
347
- description: 'Add or reconfigure a sync source (admin only).',
348
- parameters: T.Object({
349
- name: T.String({ description: 'Source name — must match a built-in source definition (e.g. "linear", "pipedrive", "granola", "asana")' }),
350
- connector: T.Optional(T.String({ description: 'Connector name (defaults to source name)' })),
351
- force: T.Optional(T.Boolean({ description: 'Overwrite existing source config' })),
352
- }),
353
- execute: async (toolCallId, params) => {
354
- try {
355
- const denied = adminOnly();
356
- if (denied)
357
- return wrapToolResult({ success: false, error: denied });
358
- const configMgr = new SourceConfigManager(workspacePath);
359
- const connectorName = params.connector ?? params.name;
360
- // Check if source already exists
361
- const existing = configMgr.get(params.name);
362
- if (existing && !params.force) {
363
- return wrapToolResult({
364
- success: false,
365
- error: `Source "${params.name}" already exists. Use force: true to overwrite.`,
366
- });
367
- }
368
- // Verify connector exists
369
- const connectors = ConnectorManager.loadConfigs(workspacePath);
370
- const connector = connectors.find(c => c.name === connectorName);
371
- if (!connector) {
372
- return wrapToolResult({
373
- success: false,
374
- error: `Connector "${connectorName}" not found. Set up the connector first using the CLI: studiograph connector add ${connectorName}`,
375
- availableConnectors: connectors.map(c => c.name),
376
- });
377
- }
378
- // Built-in definition required — don't allow custom configs
379
- const definition = SOURCE_DEFINITIONS[params.name] ?? SOURCE_DEFINITIONS[connectorName];
380
- if (!definition || !definition.entities || Object.keys(definition.entities).length === 0) {
381
- return wrapToolResult({
382
- success: false,
383
- error: `No built-in source definition for "${params.name}". Available sources: ${Object.keys(SOURCE_DEFINITIONS).join(', ')}`,
384
- });
385
- }
386
- // Save as new-format source definition
387
- const savedDef = {
388
- ...definition,
389
- name: params.name,
390
- enabled: true,
391
- added_at: new Date().toISOString(),
392
- };
393
- configMgr.saveDefinition(params.name, savedDef);
394
- const entityTypes = Object.keys(definition.entities);
395
- return wrapToolResult({
396
- success: true,
397
- message: `Source "${params.name}" configured with ${entityTypes.length} entity type(s): ${entityTypes.join(', ')}. Assign it to a collection via sync rules in collection settings.`,
398
- definition: savedDef,
399
- });
400
- }
401
- catch (error) {
402
- return wrapToolResult({
403
- success: false,
404
- error: error instanceof Error ? error.message : 'Unknown error',
405
- });
406
- }
407
- },
408
- },
409
- // Remove a source
410
- {
411
- name: 'sync_remove_source',
412
- label: 'Remove Sync Source',
413
- description: 'Remove a sync source configuration (admin only).',
414
- parameters: T.Object({
415
- name: T.String({ description: 'Source name to remove' }),
416
- }),
417
- execute: async (toolCallId, params) => {
418
- try {
419
- const denied = adminOnly();
420
- if (denied)
421
- return wrapToolResult({ success: false, error: denied });
422
- const configMgr = new SourceConfigManager(workspacePath);
423
- const removed = configMgr.remove(params.name);
424
- return wrapToolResult({
425
- success: true,
426
- removed,
427
- message: removed
428
- ? `Source "${params.name}" removed.`
429
- : `Source "${params.name}" not found.`,
430
- });
431
- }
432
- catch (error) {
433
- return wrapToolResult({
434
- success: false,
435
- error: error instanceof Error ? error.message : 'Unknown error',
436
- });
437
- }
438
- },
439
- },
440
- // ── Connector introspection for sync config building ────────────────────
441
- // Inspect a connector's tools, categorized for sync
442
- {
443
- name: 'sync_inspect_connector',
444
- label: 'Inspect Connector for Sync',
445
- description: 'Inspect a connector\'s MCP tools to understand what data types are available for sync. Auto-categorizes tools by purpose (list, get, search, create) and detects syncable entity types with their list/get tool pairs. Use this when building a new source config to understand what the connector offers.',
446
- parameters: T.Object({
447
- connector: T.String({ description: 'Connector name (e.g. "pipedrive", "linear", "granola")' }),
448
- }),
449
- execute: async (toolCallId, params) => {
450
- try {
451
- const reg = getRegistry();
452
- const tools = reg?.connectors.get(params.connector);
453
- if (!tools) {
454
- const available = reg ? [...reg.connectors.keys()] : [];
455
- return wrapToolResult({
456
- success: false,
457
- error: available.length === 0
458
- ? 'No connectors loaded yet. Connectors may still be initializing, or none are configured.'
459
- : `Connector "${params.connector}" not found`,
460
- availableConnectors: available,
461
- });
462
- }
463
- // Categorize tools by purpose
464
- const categories = {
465
- list: [],
466
- get: [],
467
- search: [],
468
- create: [],
469
- update: [],
470
- delete: [],
471
- other: [],
472
- };
473
- for (const tool of tools) {
474
- const n = tool.localName;
475
- if (/(?:^list_|_list$|_list_)/.test(n))
476
- categories.list.push({ name: n, description: tool.description });
477
- else if (/(?:^get_|_get$|^read_|_read$)/.test(n))
478
- categories.get.push({ name: n, description: tool.description });
479
- else if (/(?:^search_|_search$)/.test(n))
480
- categories.search.push({ name: n, description: tool.description });
481
- else if (/(?:^create_|_create$)/.test(n))
482
- categories.create.push({ name: n, description: tool.description });
483
- else if (/(?:^update_|_update$)/.test(n))
484
- categories.update.push({ name: n, description: tool.description });
485
- else if (/(?:^delete_|_delete$|^remove_|_remove$)/.test(n))
486
- categories.delete.push({ name: n, description: tool.description });
487
- else
488
- categories.other.push({ name: n, description: tool.description });
489
- }
490
- // Detect syncable entity types (list + optional get pairs)
491
- const toolNames = new Set(tools.map(t => t.localName));
492
- const detected = [];
493
- for (const tool of categories.list) {
494
- // Extract entity type from tool name
495
- let sourceType = null;
496
- const listMatch = tool.name.match(/^list_(.+?)s?$/);
497
- if (listMatch)
498
- sourceType = listMatch[1];
499
- if (!sourceType) {
500
- const suffixMatch = tool.name.match(/^(.+?)s?_list(?:_|$)/);
501
- if (suffixMatch)
502
- sourceType = suffixMatch[1];
503
- }
504
- if (!sourceType)
505
- continue;
506
- if (detected.some(d => d.source_type === sourceType))
507
- continue;
508
- // Find corresponding get tool
509
- const getVariants = [`get_${sourceType}`, `${sourceType}_get`, `${sourceType}s_get`, `read_${sourceType}`];
510
- const getTool = getVariants.find(g => toolNames.has(g)) ?? null;
511
- detected.push({ source_type: sourceType, list_tool: tool.name, get_tool: getTool });
512
- }
513
- return wrapToolResult({
514
- success: true,
515
- connector: params.connector,
516
- totalTools: tools.length,
517
- categories: Object.fromEntries(Object.entries(categories).filter(([_, v]) => v.length > 0)),
518
- syncableTypes: detected,
519
- hint: detected.length > 0
520
- ? 'Use sync_sample_data to fetch a sample record from any list tool and see available fields for field_map building.'
521
- : 'No list tools detected. This connector may not support sync, or tools may use non-standard naming.',
522
- });
523
- }
524
- catch (error) {
525
- return wrapToolResult({
526
- success: false,
527
- error: error instanceof Error ? error.message : 'Unknown error',
528
- });
529
- }
530
- },
531
- },
532
- // Fetch sample data from a connector to inspect field shapes
533
- {
534
- name: 'sync_sample_data',
535
- label: 'Fetch Sample Data',
536
- description: 'Fetch a sample record from a connector to inspect its field structure. Calls a list tool with limit 1 and returns the field names, types, nesting, and sample values. Use this to auto-build field_map entries for sync source configs.',
537
- parameters: T.Object({
538
- connector: T.String({ description: 'Connector name (e.g. "pipedrive", "linear")' }),
539
- tool: T.String({ description: 'Tool name to call (e.g. "deals_list", "list_issues")' }),
540
- arguments: T.Optional(T.Object({}, { additionalProperties: true, description: 'Extra arguments to pass to the tool (limit is auto-set to 1 if the tool accepts it)' })),
541
- }),
542
- execute: async (toolCallId, params) => {
543
- try {
544
- const reg = getRegistry();
545
- const tools = reg?.connectors.get(params.connector);
546
- if (!tools) {
547
- const available = reg ? [...reg.connectors.keys()] : [];
548
- return wrapToolResult({
549
- success: false,
550
- error: available.length === 0
551
- ? 'No connectors loaded yet. Connectors may still be initializing, or none are configured.'
552
- : `Connector "${params.connector}" not found`,
553
- availableConnectors: available,
554
- });
555
- }
556
- const tool = tools.find(t => t.localName === params.tool);
557
- if (!tool) {
558
- return wrapToolResult({
559
- success: false,
560
- error: `Tool "${params.tool}" not found in ${params.connector}`,
561
- availableTools: tools.slice(0, 30).map(t => t.localName),
562
- });
563
- }
564
- // Build arguments — try to limit to 1 record
565
- const args = { ...params.arguments };
566
- const schema = tool.parameters;
567
- const props = schema?.properties || {};
568
- if ('limit' in props && !args.limit)
569
- args.limit = 1;
570
- if ('first' in props && !args.first)
571
- args.first = 1;
572
- if ('per_page' in props && !args.per_page)
573
- args.per_page = 1;
574
- if ('page_size' in props && !args.page_size)
575
- args.page_size = 1;
576
- // Call the tool
577
- const result = await tool.execute(toolCallId, args);
578
- const text = result?.content?.[0]?.text ?? '';
579
- // Parse the response
580
- let data;
581
- try {
582
- data = JSON.parse(text);
583
- }
584
- catch {
585
- // Some tools return double-wrapped content
586
- try {
587
- const outer = JSON.parse(text);
588
- if (outer.content?.[0]?.text) {
589
- data = JSON.parse(outer.content[0].text);
590
- }
591
- }
592
- catch {
593
- return wrapToolResult({
594
- success: true,
595
- rawResponse: text.slice(0, 3000),
596
- note: 'Response is not JSON. Showing raw text for manual inspection.',
597
- });
598
- }
599
- }
600
- // Extract the first record from common response shapes
601
- let record = null;
602
- if (Array.isArray(data)) {
603
- record = data[0];
604
- }
605
- else if (data?.data && Array.isArray(data.data)) {
606
- record = data.data[0];
607
- }
608
- else if (data?.items && Array.isArray(data.items)) {
609
- record = data.items[0];
610
- }
611
- else if (data?.results && Array.isArray(data.results)) {
612
- record = data.results[0];
613
- }
614
- else if (data?.nodes && Array.isArray(data.nodes)) {
615
- record = data.nodes[0];
616
- }
617
- else if (typeof data === 'object' && data !== null && !Array.isArray(data)) {
618
- // Might be a single record response
619
- record = data;
620
- }
621
- if (!record) {
622
- return wrapToolResult({
623
- success: true,
624
- note: 'No records returned. The source may be empty or the tool may need different arguments.',
625
- responseShape: typeof data,
626
- responseKeys: data && typeof data === 'object' ? Object.keys(data) : [],
627
- });
628
- }
629
- // Analyze field structure
630
- const analyzeFields = (obj, prefix = '') => {
631
- const fields = [];
632
- if (!obj || typeof obj !== 'object')
633
- return fields;
634
- for (const [key, value] of Object.entries(obj)) {
635
- const path = prefix ? `${prefix}.${key}` : key;
636
- const type = value === null ? 'null'
637
- : Array.isArray(value) ? `array(${value.length})`
638
- : typeof value;
639
- // Truncate long strings for display
640
- let sample = value;
641
- if (typeof value === 'string' && value.length > 100) {
642
- sample = value.slice(0, 100) + '...';
643
- }
644
- if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
645
- fields.push({ path, type: 'object', sample: `{${Object.keys(value).join(', ')}}` });
646
- // Recurse one level into objects
647
- fields.push(...analyzeFields(value, path));
648
- }
649
- else if (Array.isArray(value) && value.length > 0 && typeof value[0] === 'object') {
650
- fields.push({ path, type: `array(${value.length})`, sample: `[{${Object.keys(value[0]).join(', ')}}]` });
651
- }
652
- else {
653
- fields.push({ path, type, sample });
654
- }
655
- }
656
- return fields;
657
- };
658
- const fields = analyzeFields(record);
659
- // Suggest field_map entries for common entity fields
660
- const topLevelKeys = Object.keys(record);
661
- const suggestions = {};
662
- const nameFields = ['title', 'name', 'subject', 'summary'];
663
- const statusFields = ['status', 'state', 'stage'];
664
- const dateFields = ['created_at', 'createdAt', 'date', 'start_date', 'due_date', 'dueDate'];
665
- const descFields = ['description', 'content', 'body', 'notes', 'note'];
666
- for (const key of topLevelKeys) {
667
- if (nameFields.includes(key))
668
- suggestions[key] = 'name';
669
- else if (statusFields.includes(key))
670
- suggestions[key] = 'status';
671
- else if (dateFields.includes(key))
672
- suggestions[key] = 'date (use date-iso transform)';
673
- else if (descFields.includes(key))
674
- suggestions[key] = 'description (or use as content_from)';
675
- }
676
- return wrapToolResult({
677
- success: true,
678
- connector: params.connector,
679
- tool: params.tool,
680
- fieldCount: fields.length,
681
- fields,
682
- topLevelKeys,
683
- suggestedFieldMap: Object.keys(suggestions).length > 0 ? suggestions : undefined,
684
- hint: 'Use these field paths in field_map when configuring sync_setup_source. Nested fields use dot notation (e.g. "org_id.name": "organization").',
685
- });
686
- }
687
- catch (error) {
688
- return wrapToolResult({
689
- success: false,
690
- error: error instanceof Error ? error.message : 'Unknown error',
691
- });
692
- }
693
- },
694
- },
695
- // Reset workspace (discard uncommitted changes)
696
- {
697
- name: 'workspace_reset',
698
- label: 'Reset Workspace',
699
- description: 'Discard ALL uncommitted changes across workspace repos: reverts modified files (git checkout) and removes untracked files (git clean -fd). Also clears staging if present. This is destructive — always confirm with the user before calling.',
700
- parameters: T.Object({}),
701
- execute: async (toolCallId, _params) => {
702
- try {
703
- const repos = workspaceConfig.repos ?? [];
704
- const resetRepos = [];
705
- const details = [];
706
- for (const repo of repos) {
707
- const repoPath = join(workspacePath, repo.path);
708
- if (!existsSync(repoPath))
709
- continue;
710
- // Check if there are changes to reset
711
- const status = spawnSync('git', ['status', '--porcelain'], { cwd: repoPath, encoding: 'utf-8' });
712
- if (status.status !== 0 || !status.stdout.trim())
713
- continue;
714
- const fileCount = status.stdout.trim().split('\n').length;
715
- // Revert tracked file changes
716
- spawnSync('git', ['checkout', '--', '.'], { cwd: repoPath, encoding: 'utf-8' });
717
- // Remove untracked files and directories
718
- spawnSync('git', ['clean', '-fd'], { cwd: repoPath, encoding: 'utf-8' });
719
- resetRepos.push(repo.name);
720
- details.push(`${repo.name}: ${fileCount} file(s) reset`);
721
- }
722
- // Clear staging too
723
- let clearedStaging = false;
724
- try {
725
- const staging = new StagingManager(workspacePath);
726
- if (staging.hasStaging()) {
727
- staging.clear();
728
- clearedStaging = true;
729
- }
730
- }
731
- catch { /* staging dir may not exist */ }
732
- const parts = [];
733
- if (resetRepos.length > 0)
734
- parts.push(`Reset ${resetRepos.length} repo(s): ${resetRepos.join(', ')}`);
735
- if (clearedStaging)
736
- parts.push('Cleared staging');
737
- return wrapToolResult({
738
- success: true,
739
- resetRepos,
740
- details,
741
- clearedStaging,
742
- message: parts.length > 0 ? parts.join('. ') + '.' : 'No changes to reset.',
743
- });
744
- }
745
- catch (error) {
746
- return wrapToolResult({
747
- success: false,
748
- error: String(error instanceof Error ? error.message : error),
749
- });
750
- }
751
- },
752
- },
753
- // Reindex search
754
- {
755
- name: 'workspace_reindex',
756
- label: 'Reindex Search',
757
- description: 'Rebuild the search index (LanceDB) for all workspace collections. Run after sync, enrich, or manual entity edits to update search results.',
758
- parameters: T.Object({
759
- repo: T.Optional(T.String({ description: 'Reindex a single collection only' })),
760
- }),
761
- execute: async (toolCallId, params) => {
762
- try {
763
- const userConfig = loadUserConfig();
764
- const dbPath = userConfig.vector_db_path || join(homedir(), '.studiograph', 'vector');
765
- const vectorService = new VectorService(dbPath, userConfig.voyage_api_key);
766
- await vectorService.init();
767
- const allRepos = workspaceConfig.repos ?? [];
768
- const repos = params.repo
769
- ? allRepos.filter(r => r.name === params.repo)
770
- : allRepos;
771
- if (params.repo && repos.length === 0) {
772
- return wrapToolResult({
773
- success: false,
774
- error: `Repo "${params.repo}" not found in workspace`,
775
- availableRepos: allRepos.map(r => r.name),
776
- });
777
- }
778
- const repoResults = {};
779
- let totalIndexed = 0;
780
- for (const repo of repos) {
781
- const repoPath = join(workspacePath, repo.path);
782
- if (!existsSync(repoPath))
783
- continue;
784
- try {
785
- const graph = new BaseGraphManager({
786
- repoPath,
787
- repoName: repo.name,
788
- gitUser: { id: 'reindex', name: 'reindex', email: 'reindex@studiograph.local' },
789
- });
790
- const entities = graph.list();
791
- if (entities.length > 0) {
792
- await vectorService.upsertMany(repo.name, entities);
793
- }
794
- vectorService.setLastIndexedTime(repo.name);
795
- repoResults[repo.name] = entities.length;
796
- totalIndexed += entities.length;
797
- }
798
- catch (err) {
799
- repoResults[repo.name] = -1; // signal failure
800
- }
801
- }
802
- return wrapToolResult({
803
- success: true,
804
- indexed: totalIndexed,
805
- repos: repoResults,
806
- message: `Indexed ${totalIndexed} entities across ${repos.length} repo(s)`,
807
- });
808
- }
809
- catch (error) {
810
- return wrapToolResult({
811
- success: false,
812
- error: error instanceof Error ? error.message : 'Unknown error',
813
- });
814
- }
815
- },
816
- },
817
- // ── Graph status & review ─────────────────────────────────────────────────
818
- // Show changed files across repos
819
- {
820
- name: 'workspace_status',
821
- label: 'Workspace Status',
822
- description: 'Show uncommitted git changes across all workspace repos. Use this when users ask about pending changes, what files are modified, or whether there are changes ready to commit.',
823
- parameters: T.Object({}),
824
- execute: async (toolCallId, params) => {
825
- try {
826
- const repos = workspaceConfig.repos ?? [];
827
- const changes = {};
828
- let totalChanged = 0;
829
- for (const repo of repos) {
830
- const repoPath = join(workspacePath, repo.path);
831
- if (!existsSync(repoPath))
832
- continue;
833
- const result = spawnSync('git', ['status', '--porcelain'], { cwd: repoPath, encoding: 'utf-8' });
834
- if (result.status === 0 && result.stdout.trim()) {
835
- const files = result.stdout.trim().split('\n').filter(Boolean);
836
- changes[repo.name] = files;
837
- totalChanged += files.length;
838
- }
839
- }
840
- return wrapToolResult({
841
- success: true,
842
- totalChanged,
843
- changes,
844
- message: totalChanged > 0
845
- ? `${totalChanged} file${totalChanged === 1 ? '' : 's'} changed across ${Object.keys(changes).length} repo${Object.keys(changes).length === 1 ? '' : 's'}`
846
- : 'No uncommitted changes.',
847
- });
848
- }
849
- catch (error) {
850
- return wrapToolResult({
851
- success: false,
852
- error: error instanceof Error ? error.message : 'Unknown error',
853
- });
854
- }
855
- },
856
- },
857
- // Show diffs for review
858
- {
859
- name: 'workspace_review',
860
- label: 'Review Changes',
861
- description: 'Show git diffs for uncommitted entity changes across workspace repos. Use this to preview what will be committed. Optionally filter by entity type or specific file path.',
862
- parameters: T.Object({
863
- entityType: T.Optional(T.String({ description: 'Filter diff to a specific entity type (e.g. "person", "deal")' })),
864
- file: T.Optional(T.String({ description: 'Show diff for a specific file path' })),
865
- committed: T.Optional(T.Boolean({ description: 'Review last commit instead of uncommitted changes' })),
866
- }),
867
- execute: async (toolCallId, params) => {
868
- try {
869
- const repos = workspaceConfig.repos ?? [];
870
- const diffArgs = params.committed
871
- ? ['diff', 'HEAD~1..HEAD']
872
- : ['diff'];
873
- const diffs = {};
874
- for (const repo of repos) {
875
- const repoPath = join(workspacePath, repo.path);
876
- if (!existsSync(repoPath))
877
- continue;
878
- const args = [...diffArgs];
879
- if (params.file) {
880
- args.push('--', params.file);
881
- }
882
- else if (params.entityType) {
883
- args.push('--', `${params.entityType}/`);
884
- }
885
- const result = spawnSync('git', args, { cwd: repoPath, encoding: 'utf-8' });
886
- if (result.status === 0 && result.stdout.trim()) {
887
- // Truncate very large diffs to avoid overwhelming the context
888
- const diff = result.stdout;
889
- diffs[repo.name] = diff.length > 10000
890
- ? diff.slice(0, 10000) + '\n\n... (truncated, use --file for specific entities)'
891
- : diff;
892
- }
893
- }
894
- return wrapToolResult({
895
- success: true,
896
- hasDiffs: Object.keys(diffs).length > 0,
897
- diffs,
898
- message: Object.keys(diffs).length > 0
899
- ? `Diffs from ${Object.keys(diffs).length} repo(s)`
900
- : 'No changes found.',
901
- });
902
- }
903
- catch (error) {
904
- return wrapToolResult({
905
- success: false,
906
- error: error instanceof Error ? error.message : 'Unknown error',
907
- });
908
- }
909
- },
910
- },
911
- // Push all repos
912
- {
913
- name: 'workspace_push',
914
- label: 'Push Repos',
915
- description: 'Git push all workspace repos to their remotes. Always confirm with the user before calling this. IMPORTANT: Pushing does NOT automatically update a Railway deployment. If the workspace is deployed to Railway, call redeploy_railway after pushing to trigger a fresh deploy with the latest commits.',
916
- parameters: T.Object({}),
917
- execute: async (_toolCallId, _params) => {
918
- try {
919
- const repos = workspaceConfig.repos ?? [];
920
- const results = {};
921
- for (const repo of repos) {
922
- const repoPath = join(workspacePath, repo.path);
923
- if (!existsSync(repoPath))
924
- continue;
925
- try {
926
- results[repo.name] = gitPush(repoPath);
927
- }
928
- catch (err) {
929
- results[repo.name] = `error: ${err instanceof Error ? err.message : String(err)}`;
930
- }
931
- }
932
- const pushed = Object.values(results).filter(r => r === 'pushed').length;
933
- return wrapToolResult({
934
- success: true,
935
- results,
936
- message: pushed > 0
937
- ? `Pushed ${pushed} repo${pushed === 1 ? '' : 's'}`
938
- : 'All repos already up to date.',
939
- });
940
- }
941
- catch (error) {
942
- return wrapToolResult({
943
- success: false,
944
- error: error instanceof Error ? error.message : 'Unknown error',
945
- });
946
- }
947
- },
948
- },
949
- // Pull all repos
950
- {
951
- name: 'workspace_pull',
952
- label: 'Pull Repos',
953
- description: 'Git pull all workspace repos from their remotes. Reports conflicts if any.',
954
- parameters: T.Object({}),
955
- execute: async (_toolCallId, _params) => {
956
- try {
957
- const repos = workspaceConfig.repos ?? [];
958
- const results = {};
959
- for (const repo of repos) {
960
- const repoPath = join(workspacePath, repo.path);
961
- if (!existsSync(repoPath))
962
- continue;
963
- try {
964
- results[repo.name] = gitPull(repoPath);
965
- }
966
- catch (err) {
967
- results[repo.name] = `error: ${err instanceof Error ? err.message : String(err)}`;
968
- }
969
- }
970
- const updated = Object.values(results).filter(r => r === 'updated').length;
971
- const conflicts = Object.values(results).filter(r => r === 'conflict').length;
972
- return wrapToolResult({
973
- success: conflicts === 0,
974
- results,
975
- message: conflicts > 0
976
- ? `${conflicts} repo${conflicts === 1 ? '' : 's'} with merge conflicts — resolve manually`
977
- : updated > 0
978
- ? `Pulled updates in ${updated} repo${updated === 1 ? '' : 's'}`
979
- : 'All repos already up to date.',
980
- });
981
- }
982
- catch (error) {
983
- return wrapToolResult({
984
- success: false,
985
- error: error instanceof Error ? error.message : 'Unknown error',
986
- });
987
- }
988
- },
989
- },
990
- ];
991
- }
992
- //# sourceMappingURL=sync-tools.js.map