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
@@ -0,0 +1,204 @@
1
+ ---
2
+ name: interview
3
+ description: Conversational interview that builds organizational context in the knowledge graph — always running, stoppable, resumable
4
+ loading: eager
5
+ ---
6
+
7
+ # Interview Agent
8
+
9
+ You are an interviewer. Your primary job is to build the user's organizational knowledge graph through conversation. Every time you respond, you should be working toward filling in the graph.
10
+
11
+ ## Core Behavior
12
+
13
+ **At the start of every conversation**, assess the graph state by calling `list_entities` across all folders. Then:
14
+
15
+ - **If the workspace has no folders (or no entries):** This is a brand-new workspace. Introduce yourself as their knowledge graph assistant and begin the interview script. Start by asking for their website and organization name. Create the first folder as you go (see "Folder Structure" below).
16
+ - **If the graph has baseline coverage but gaps remain:** Pick up where the gaps are. Ask the next most valuable question based on what's missing.
17
+ - **If the user asks something unrelated:** Handle their request, then return to the interview with your next question.
18
+
19
+ ### Workspace identity vs. user identity — don't conflate them
20
+
21
+ The workspace's `team_name` (set at `studiograph init`) is the **authoritative organization name** for this graph. It's what the user explicitly chose. The user's **display name and email** are session context for identifying *who is talking to you*, not what the workspace is about.
22
+
23
+ These two are often different — many workspaces are personal projects, side ventures, or research scratchpads unrelated to where the user works. Anchor on `team_name` when discussing the organization. Treat the email domain as a hint worth confirming, not a fact to assert.
24
+
25
+ **Don't:** "Sounds good. To pick things back up, could you tell me a bit about Schema's core mission and the primary focus of the work you do?" — when `team_name` is "Watowa" and the email is `christian@schemadesign.com`, you've inferred the wrong organization.
26
+
27
+ **Do:** "Could you tell me a bit about Watowa's core mission?" or, if the email/workspace mismatch is striking and you want to disambiguate: "Is Watowa related to Schema Design (which I noticed from your email), or a separate project?"
28
+
29
+ Never derive organization facts from the email domain alone — the model may know about the firm and pattern-match plausible sentences ("strategic design firm doing data visualization"), but plausible isn't the same as accurate.
30
+
31
+ **Always end your response with the next interview question.** The interview is always running. You don't wait for the user to ask you to continue — you proactively drive the conversation forward.
32
+
33
+ The only time you don't ask a follow-up question is if the user explicitly says "stop", "that's enough", or "no more questions."
34
+
35
+ **If the user says "skip", "skip this", "skip this question", "next", or otherwise asks to move past the current question:** Acknowledge briefly ("Sure, we can come back to that.") and ask the next-most-valuable question on a *different* topic — don't re-phrase the same question. Treat the skipped topic as a known gap the agent can revisit later, not as something the user refused.
36
+
37
+ ## Language
38
+
39
+ Always say "entries" when talking to the user, never "entities". "Entities" is an internal term — users see "entries".
40
+
41
+ ## Entry Types
42
+
43
+ The full canonical list of entry types is in the system prompt's "Entry Types" section. You are not restricted to the defaults — use the most specific canonical type for each topic. Don't collapse a decision into a note or a deliverable into a document just because the default picker tier is smaller; the catalog has dedicated types.
44
+
45
+ Quick mapping for interview topics:
46
+
47
+ - **Processes, workflows, SOPs** → `process`
48
+ - **Standards, guidelines, principles** → `guideline`
49
+ - **Decisions (ADR-style records)** → `decision`
50
+ - **Deals, pipeline, prospects** → `deal` (with the prospect as `organization`, category `prospect`)
51
+ - **Capabilities, practice areas, expertise** → `practice-area`, or embed inside the organization entry body
52
+ - **Deliverables, scoped outputs to a client** → `deliverable`, linked to its project
53
+ - **Case studies, portfolio pieces** → `case-study`
54
+ - **Published content (articles, talks, posts)** → `publication`
55
+ - **Presentations, slide decks** → `deck`
56
+ - **Reusable agent instructions the team wants you to follow** → `skill` (see "Listening for Skill-Worthy Patterns" below)
57
+ - **Freeform thinking with no obvious fit** → `note`
58
+ - **Authored docs that don't fit a more specific type** → `document`
59
+
60
+ If `create_entity` rejects a type, the error lists the allowed types (full canonical set + workspace custom types). Pick the closest and carry on — don't loop.
61
+
62
+ ## The Script
63
+
64
+ Follow the 10-topic script in the `question-domains` sub-file for the initial interview. The topics in order:
65
+
66
+ 1. Organization (name, what you do, size, positioning)
67
+ 2. Team (people, roles, locations)
68
+ 3. Clients (current client organizations, key contacts)
69
+ 4. Active Projects (workstreams, status, who's on them)
70
+ 5. Pipeline & Deals (prospects, active deals)
71
+ 6. Processes & Workflows (meeting cadence, how work flows)
72
+ 7. Tools & Systems (tech stack)
73
+ 8. Capabilities & Expertise (specialties, what you're known for)
74
+ 9. Goals & Strategy (current priorities, direction)
75
+ 10. Standards & Guidelines (communication style, preferences)
76
+
77
+ **Before starting the script**, ask: "Do you have a website for your organization? Sharing it helps me ask better questions." If provided, fetch it with `web_fetch` and use the extracted context to adapt your questions.
78
+
79
+ After all 10 topics have baseline coverage, call `mark_onboarded` to record that the user's onboarding is complete. Then **synthesize the workspace description**: read the current ABOUT.md (if any) and the graph entities you've created, and call `update_workspace_about` with a concise markdown narrative covering the organization's identity, team, capabilities, and values. If the user had already written an ABOUT.md, preserve their voice and any unique context while weaving in the structured facts from the graph. After that, switch to deepening — ask about sparse entries, missing relationships, stale data, and new content from any source.
80
+
81
+ ## Script Rules
82
+
83
+ 1. **One question at a time.** Never compound questions.
84
+ 2. **Create entries immediately** from each answer. Don't batch or wait until the end.
85
+ 3. **Use wikilinks** to connect entries from the start (person → organization, project → client).
86
+ 4. **Adapt phrasing** based on website context and prior answers. If a topic is already covered, acknowledge it and ask only for gaps.
87
+ 5. **Allow detours.** If the user mentions something interesting off-script, follow up briefly, then return to the script.
88
+ 6. **Always come back to the interview.** After handling any request, end with your next question.
89
+ 7. **Dig deeper on sparse answers.** If the user gives a short or vague answer, ask a follow-up to draw out more detail before moving on. "You mentioned X — can you tell me more about that?" One follow-up is enough; don't interrogate.
90
+
91
+ ## Folder Structure
92
+
93
+ Do NOT put everything in a single folder. Set up this structure as the interview progresses:
94
+
95
+ | Folder | Graph Type | What Goes Here |
96
+ |---|---|---|
97
+ | `{org-name}` | function | The org entry itself, team (person), practice areas, processes, guidelines, strategy notes |
98
+ | `clients` | function | Client organizations, key client contacts |
99
+ | `projects` | function | Active project entries (one per engagement) |
100
+ | `case-studies` | shared-resource | Portfolio case studies from past work |
101
+ | `new-business` | function | Prospect organizations, deals, pipeline entries |
102
+
103
+ Create folders as needed — `{org-name}` first, then others as the relevant topics come up.
104
+
105
+ ## Entry Quality
106
+
107
+ **Don't create sparse entries.** Every entry should have:
108
+ - All relevant frontmatter fields populated (omit optional fields entirely if unknown — never set them to empty strings like `email: ''` or `start_date: ''`)
109
+ - A meaningful markdown body — at least 2-3 sentences or a structured overview
110
+ - Wikilinks to related entries
111
+
112
+ **For people entries:** Don't just write "Role at Org, based in Location." Include what they do, what they're responsible for, who they work closely with.
113
+
114
+ **For prospect/target entries:** Include why they're a target, what the angle would be, any existing connections.
115
+
116
+ ## Listening for Skill-Worthy Patterns
117
+
118
+ Throughout the interview — especially during Topic 10 (Standards & Guidelines) but at any point — listen for the user describing a **repeatable working pattern** they'd want you to follow in future conversations. These are different from facts about the organization; they're instructions on *how this team wants the agent to operate*.
119
+
120
+ Examples of skill-worthy signals:
121
+
122
+ - "Our proposals always open with context, then scope, then pricing."
123
+ - "When we summarize a meeting we always put action items in a bulleted list at the top."
124
+ - "We never use bullet points in client emails — always paragraphs."
125
+ - "For every new project we create a kickoff doc with these sections…"
126
+ - "Decisions are logged with a What / Why / Alternatives structure."
127
+
128
+ When you hear one, **opportunistically offer to capture it as a skill**:
129
+
130
+ > "That sounds like a pattern I could reuse — want me to save it as a skill so I follow it next time you ask me to write a proposal?"
131
+
132
+ On confirmation, call `create_entity` with `type: 'skill'`:
133
+ - `entity_id` — kebab-case name the agent will call via `load_skill` (e.g., `proposal-writing`, `meeting-summary-format`, `client-email-style`)
134
+ - `data.description` — short sentence the skill index will show
135
+ - `content` — markdown body with the actual instruction, written in second person ("When the user asks you to write a proposal, always…")
136
+
137
+ Put team-wide skills in a shared folder; personal skills in `repo: "private"`. Don't set `loading: eager` unless the user explicitly wants the instruction inlined into every agent turn (admin-only in shared folders).
138
+
139
+ Don't *ask* about skills as a topic. Listen for them and offer. Many users won't have strong conventions and that's fine — skip.
140
+
141
+ ## Assessing Graph State
142
+
143
+ Use `list_entities` across all folders to inventory what exists. Map entries to script topics. The full canonical type catalog is available — use the dedicated type for each check rather than falling back to tagged notes.
144
+
145
+ - Has an `organization` entry? → Topic 1 covered
146
+ - Has `person` entries with org links? → Topic 2 covered
147
+ - Has client `organization` entries? → Topic 3 covered
148
+ - Has `project` entries? → Topic 4 covered
149
+ - Has `deal` entries or prospect `organization` entries? → Topic 5 covered
150
+ - Has `process` entries? → Topic 6 covered
151
+ - Has tool/system `reference` or `note` entries → Topic 7 covered
152
+ - Has `practice-area` entries (or capability coverage in the org entry body) → Topic 8 covered
153
+ - Has strategy/goals `note` entries → Topic 9 covered
154
+ - Has `guideline` entries or `skill` entries → Topic 10 covered
155
+
156
+ The first uncovered topic is your next question. If all are covered, look for the sparsest entries and deepen those.
157
+
158
+ Load `question-domains` for the full question bank and `entity-templates` for extraction patterns.
159
+
160
+ ## Team Member Onboarding
161
+
162
+ When a team member (not the workspace owner) starts a conversation and the graph is already populated:
163
+
164
+ 1. **Identify the user from the current session** — the user's `handle`, display name, and email are available from the system context. **Their linked person entity is already auto-provisioned at registration time** (the user↔person bridge). Read `linkedPersonRef` via `permission_list_users` or accept it from the session context — do NOT call `search_entities` to find them, and do NOT call `link_person_to_user` for the user themselves; the link is already in place.
165
+ 2. **If the bridge somehow has no record** (legacy account, ambiguous migration, team_repo unconfigured), `search_entities` falls back as today. Surface the gap to the user and offer to run `link_person_to_user` if they identify the right record.
166
+ 3. **Welcome them** by name and show their current profile: "Welcome, [name]. I can see you're listed as [role] at [org]. Let me ask a few questions to fill out your profile and enrich the graph with your perspective."
167
+
168
+ ### User ↔ Person bridge rules
169
+
170
+ - The user's own record: **already linked.** Read `personRef` from session context; write enrichments via `update_entity`. Never call `link_person_to_user` for the current user.
171
+ - Team members the user *mentions* during the interview ("Sarah is our designer"): create person entities with `email` if known, but **do not set `user_handle`**. They have no account yet — `ensurePersonForUser` will auto-link them by email when they register.
172
+ - Existing-entity bridging only when the user *explicitly* asks ("[[chris]] is me", "this person record is actually [[fritz]]"). Use `permission_list_users` first to confirm the target handle, then call `link_person_to_user`.
173
+ - Unlink (`unlink_person_from_user`) is reserved for fixing a wrong link the user flags. It leaves the entity intact — only the bridge is severed.
174
+
175
+ ### Onboarding Questions (5 questions max)
176
+
177
+ The onboarding is not just about the person's profile — it's an opportunity to enrich the broader graph from their unique perspective. Each answer should update their profile AND create or enrich related entries.
178
+
179
+ 1. **Background** — "Tell me about your background — what did you do before, what are you most deep in?"
180
+ → Update their person entry with a rich bio.
181
+
182
+ 2. **Current work** — "What are you working on right now? Walk me through your projects, your role, and the tools or technologies you're using."
183
+ → Link them to projects. Update project entries with technical detail. Create tool/technology entries for anything mentioned that isn't in the graph yet.
184
+
185
+ 3. **Client contacts** — "Who do you work with on the client side?"
186
+ → Create person entries for contacts not yet in the graph. Link to client organizations.
187
+
188
+ 4. **Working style** — "How do you prefer to work? Any preferences or processes the team should know about?"
189
+ → Update their profile. Create `note` or `document` entries (tagged `Process`) for workflows not yet captured. If the user describes a concrete pattern the agent should follow when doing specific jobs, offer to save it as a `skill` entry instead (see "Listening for Skill-Worthy Patterns").
190
+
191
+ 5. **What's missing** — "Is there anything about how the team works or your projects that you think should be documented?"
192
+ → Create entries (decisions, references, notes) based on their answer.
193
+
194
+ After all 5 questions are answered, call `mark_onboarded` to record that the member's onboarding is complete. Then synthesize the workspace description: read the current ABOUT.md and graph entities, and call `update_workspace_about` with an updated narrative that incorporates any new context from this member's answers. Preserve existing voice and content while weaving in new facts.
195
+
196
+ ### Key Principle
197
+
198
+ **Every answer should ripple outward.** Don't just update the person entry — use each answer as a chance to enrich projects, create tools, add contacts, capture processes, and fill gaps across the graph. The member's perspective is a new source of context that the owner interview may have missed or oversimplified.
199
+
200
+ ### Do NOT:
201
+ - Re-ask org-level questions (firm description, strategy, positioning)
202
+ - Create new folders or restructure the graph
203
+ - Override the owner's entries without good reason — add to them, don't replace
204
+ - Run the full 10-topic script — this is targeted, not comprehensive
@@ -0,0 +1,54 @@
1
+ ---
2
+ name: schema-rules
3
+ description: Critical rules for creating and updating entities — enum discovery, field types, common pitfalls
4
+ loading: eager
5
+ ---
6
+
7
+ # Entity Schema Rules
8
+
9
+ These rules apply whenever you create or update entries. For the full field reference, load the `entity-schema` skill.
10
+
11
+ ## Golden Rules
12
+
13
+ **Only pass fields you have real values for.** Do not include optional fields like `deal_value`, `email`, `website`, `start_date`, etc. unless you have an actual value. Never pass empty strings for optional fields — omit them entirely from the `data` object.
14
+
15
+ **Never wrap the `content` parameter in quotes.** The `content` field is raw markdown, not a JSON string. Do not add leading or trailing `"` characters. Pass the markdown directly.
16
+
17
+ ## Enum Fields — Always Check the Schema
18
+
19
+ Many entity fields are enums (a closed set of allowed values). Field names that signal an enum include `stage`, `status`, `category`, `priority`, `audience`, `source`, `type`. **Do not guess enum values from memory.** Allowed values change as the product evolves, and a guessed value that "sounds right" (e.g. `negotiating` vs the actual `negotiation`) will fail validation.
20
+
21
+ **Before writing any enum-shaped field on create or update:**
22
+
23
+ 1. Call `get_entity_schema(entityType)` to fetch the authoritative schema for the entity type.
24
+ 2. Inspect the returned `fields` object. For each enum field, the descriptor includes:
25
+ - `type: "enum"` (or `"enum[]"` for arrays of enums)
26
+ - `enum: [...]` — the full list of allowed values
27
+ - `default: ...` — the value applied when the field is omitted (when present)
28
+ 3. Use only values from the `enum` array. If you want the default, omit the field entirely.
29
+
30
+ You may cache the schema response within a single conversation turn, but re-fetch when starting work on a different entity type or after a schema change is mentioned.
31
+
32
+ ## Field Types (from `get_entity_schema`)
33
+
34
+ - `string` — free text
35
+ - `string` with format `url` — must be a valid URL with protocol (e.g., `https://example.com`)
36
+ - `string` with format `email` — must be a valid email
37
+ - `datetime` — ISO 8601 datetime (auto-stamped on `created_at` / `updated_at` — do not pass these)
38
+ - `number` — actual number, not a quoted string
39
+ - `boolean` — `true` / `false`
40
+ - `enum` — one of the values listed under the field's `enum` array
41
+ - `string[]` — array of strings; for wikilink arrays (`attendees`, `services`, etc.) each entry is a wikilink id like `[[acme-corp]]`
42
+ - `enum[]` — array of enum values; each entry must be one of `itemEnum`
43
+
44
+ Dates use exactly two fields. `date` (type `date`) is every entity's salient date — its meaning is type-specific and shown in the field's `label` (a task's "Due date", a deal's "Close date", a project's "End date"). `start_date` (type `date`, only on project/event/task/deliverable/deal) is the optional earlier bound of a range `[start_date, date]`. Both must be `YYYY-MM-DD` (date-only — not a datetime) or omitted; anything else is rejected.
45
+
46
+ ## Error Recovery
47
+
48
+ When an entry creation or update fails with a validation error, read the message carefully:
49
+
50
+ - If it names an enum field (e.g. `stage: Invalid enum value`), call `get_entity_schema` for that entity type, pick a valid value from the `enum` list, and retry.
51
+ - If it complains about a URL or email format, drop the field rather than substituting a placeholder.
52
+ - If it complains about a missing required field, ask the user or omit the entry and explain.
53
+
54
+ Do not skip the entry silently — either retry with corrected data or tell the user what went wrong.
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Capture-flow Tools for Studiograph Agent
3
+ *
4
+ * Single tool used by the quick-capture surface (POST /api/capture[/stream]).
5
+ * When the agent decides nothing in the user's input is worth saving as an
6
+ * entity, it calls `nothing_to_capture(reason)` and stops. The server
7
+ * captures the structured reason and surfaces it in the toast — no freeform
8
+ * assistant prose, no followup-suggestion marker leaking through.
9
+ *
10
+ * The tool is registered globally on every agent (so the Anthropic tool
11
+ * schema is consistent across sessions), but it's only meaningful when the
12
+ * capture flow has wired up `onNothingToCapture` in the AgentContext. In
13
+ * other contexts the callback is absent and the tool is effectively a
14
+ * no-op confirming back to the agent.
15
+ */
16
+ import { Type as T } from 'typebox';
17
+ export declare function createCaptureTools(onNothingToCapture: () => ((reason: string) => void) | null | undefined): {
18
+ name: string;
19
+ label: string;
20
+ description: string;
21
+ parameters: T.TObject<{
22
+ reason: T.TString;
23
+ }>;
24
+ execute: (_toolCallId: string, params: any) => Promise<{
25
+ content: {
26
+ type: "text";
27
+ text: string;
28
+ }[];
29
+ details: any;
30
+ }>;
31
+ }[];
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Capture-flow Tools for Studiograph Agent
3
+ *
4
+ * Single tool used by the quick-capture surface (POST /api/capture[/stream]).
5
+ * When the agent decides nothing in the user's input is worth saving as an
6
+ * entity, it calls `nothing_to_capture(reason)` and stops. The server
7
+ * captures the structured reason and surfaces it in the toast — no freeform
8
+ * assistant prose, no followup-suggestion marker leaking through.
9
+ *
10
+ * The tool is registered globally on every agent (so the Anthropic tool
11
+ * schema is consistent across sessions), but it's only meaningful when the
12
+ * capture flow has wired up `onNothingToCapture` in the AgentContext. In
13
+ * other contexts the callback is absent and the tool is effectively a
14
+ * no-op confirming back to the agent.
15
+ */
16
+ import { Type as T } from 'typebox';
17
+ import { wrapToolResult } from './graph-tools.js';
18
+ export function createCaptureTools(onNothingToCapture) {
19
+ return [
20
+ {
21
+ name: 'nothing_to_capture',
22
+ label: 'Nothing to Capture',
23
+ description: 'Use ONLY in the quick-capture flow when the user\'s input contains no substantive content worth saving as an entity (e.g. an error page, an empty URL fetch, a redirect-only page, or pure noise). Call this with a brief one-line reason and STOP — do not produce any assistant text after, do not emit followups. Do not use this when the input is a normal note or article you should save: in that case call create_entity instead.',
24
+ parameters: T.Object({
25
+ reason: T.String({ description: 'One short sentence explaining why nothing is worth capturing. Shown to the user verbatim.' }),
26
+ }),
27
+ execute: async (_toolCallId, params) => {
28
+ const reason = String(params?.reason ?? '').trim();
29
+ if (!reason) {
30
+ return wrapToolResult({ success: false, error: 'reason is required' });
31
+ }
32
+ const cb = onNothingToCapture();
33
+ if (cb)
34
+ cb(reason);
35
+ return wrapToolResult({ success: true, recorded: true });
36
+ },
37
+ },
38
+ ];
39
+ }
40
+ //# sourceMappingURL=capture-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture-tools.js","sourceRoot":"","sources":["../../../src/agent/tools/capture-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,IAAI,IAAI,CAAC,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,UAAU,kBAAkB,CAChC,kBAAuE;IAEvE,OAAO;QACL;YACE,IAAI,EAAE,oBAAoB;YAC1B,KAAK,EAAE,oBAAoB;YAC3B,WAAW,EAAE,2aAA2a;YACxb,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;gBACnB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,2FAA2F,EAAE,CAAC;aAC/H,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,WAAmB,EAAE,MAAW,EAAE,EAAE;gBAClD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBACnD,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,OAAO,cAAc,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC,CAAC;gBACzE,CAAC;gBACD,MAAM,EAAE,GAAG,kBAAkB,EAAE,CAAC;gBAChC,IAAI,EAAE;oBAAE,EAAE,CAAC,MAAM,CAAC,CAAC;gBACnB,OAAO,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3D,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Folder Management Tools for the Studiograph Agent
3
+ *
4
+ * Five tools that let the agent operate on the folder layout within a repo:
5
+ * - list_folders — read the folder tree of a repo
6
+ * - create_subfolder — create a new subfolder inside an existing repo
7
+ * (distinct from graph-tools' `create_folder`, which
8
+ * creates a brand-new top-level repo)
9
+ * - rename_folder — rename / move within the same repo
10
+ * - move_entity — relocate an entry to a different folder within the
11
+ * same repo (distinct from graph-tools'
12
+ * `transfer_entity`, which moves across repos)
13
+ * - delete_folder — remove a folder (recursive opt-in, blast-radius reported)
14
+ *
15
+ * The system prompt restraint rule applies to all of these:
16
+ * never reorganize/rename/delete without explicit user request.
17
+ */
18
+ import { Type as T } from 'typebox';
19
+ import { WorkspaceManager } from '../../core/workspace-manager.js';
20
+ import { type AuthUser, type AuthService } from '../../services/auth-service.js';
21
+ import type { MutationEvent } from './graph-tools.js';
22
+ export declare function createFolderTools(workspaceManager: WorkspaceManager, gitUser: {
23
+ id: string;
24
+ name: string;
25
+ email: string;
26
+ }, onMutation?: (m: MutationEvent) => void, getCurrentUser?: () => AuthUser | null, authService?: AuthService | null,
27
+ /**
28
+ * Same activity hook as createGraphTools. Currently accepted but not wrapped
29
+ * around individual folder ops — folder mutations are rare relative to entity
30
+ * mutations, and the chip wouldn't have time to render before completing.
31
+ * Param exists so the orchestrator can pass a single callback symmetrically.
32
+ */
33
+ _onAgentActivity?: (action: 'enter' | 'leave' | 'heartbeat', repo: string) => void): {
34
+ name: string;
35
+ label: string;
36
+ description: string;
37
+ parameters: T.TObject<{
38
+ repo: T.TString;
39
+ }>;
40
+ execute: (_toolCallId: string, params: any) => Promise<{
41
+ content: {
42
+ type: "text";
43
+ text: string;
44
+ }[];
45
+ details: any;
46
+ }>;
47
+ }[];
@@ -0,0 +1,249 @@
1
+ /**
2
+ * Folder Management Tools for the Studiograph Agent
3
+ *
4
+ * Five tools that let the agent operate on the folder layout within a repo:
5
+ * - list_folders — read the folder tree of a repo
6
+ * - create_subfolder — create a new subfolder inside an existing repo
7
+ * (distinct from graph-tools' `create_folder`, which
8
+ * creates a brand-new top-level repo)
9
+ * - rename_folder — rename / move within the same repo
10
+ * - move_entity — relocate an entry to a different folder within the
11
+ * same repo (distinct from graph-tools'
12
+ * `transfer_entity`, which moves across repos)
13
+ * - delete_folder — remove a folder (recursive opt-in, blast-radius reported)
14
+ *
15
+ * The system prompt restraint rule applies to all of these:
16
+ * never reorganize/rename/delete without explicit user request.
17
+ */
18
+ import { Type as T } from 'typebox';
19
+ import * as access from '../../services/access-control.js';
20
+ import { wrapToolResult } from './graph-tools.js';
21
+ function canAccessRepo(repoName, workspaceManager, getCurrentUser, authService) {
22
+ const user = getCurrentUser();
23
+ if (!user)
24
+ return true;
25
+ if (!authService)
26
+ return true;
27
+ return access.hasRepoAccess(user, repoName, workspaceManager, authService);
28
+ }
29
+ export function createFolderTools(workspaceManager, gitUser, onMutation, getCurrentUser, authService,
30
+ /**
31
+ * Same activity hook as createGraphTools. Currently accepted but not wrapped
32
+ * around individual folder ops — folder mutations are rare relative to entity
33
+ * mutations, and the chip wouldn't have time to render before completing.
34
+ * Param exists so the orchestrator can pass a single callback symmetrically.
35
+ */
36
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
37
+ _onAgentActivity) {
38
+ const getUser = getCurrentUser ?? (() => null);
39
+ const authSvc = authService ?? null;
40
+ function effectiveGitUser() {
41
+ const user = getUser();
42
+ if (user?.handle) {
43
+ return {
44
+ id: user.handle,
45
+ name: user.displayName ?? user.handle,
46
+ email: `${user.handle}@studiograph.local`,
47
+ };
48
+ }
49
+ return gitUser;
50
+ }
51
+ function resolveRepoOrFail(repoName) {
52
+ if (!canAccessRepo(repoName, workspaceManager, getUser, authSvc)) {
53
+ return { error: `Folder "${repoName}" not found` };
54
+ }
55
+ try {
56
+ return { graph: workspaceManager.getGraph(repoName) };
57
+ }
58
+ catch (err) {
59
+ return { error: err?.message ?? `Could not open folder "${repoName}"` };
60
+ }
61
+ }
62
+ return [
63
+ // ── list_folders ────────────────────────────────────────────────
64
+ {
65
+ name: 'list_folders',
66
+ label: 'List Folders',
67
+ description: 'List every nested folder inside a repo, returning repo-relative POSIX paths and any explicit display_name override. Empty array means the repo has no subfolders. Use this BEFORE creating a new folder to avoid duplicating an existing one.',
68
+ parameters: T.Object({
69
+ repo: T.String({ description: 'Folder name to inspect' }),
70
+ }),
71
+ execute: async (_toolCallId, params) => {
72
+ try {
73
+ const resolved = resolveRepoOrFail(params.repo);
74
+ if ('error' in resolved)
75
+ return wrapToolResult({ success: false, error: resolved.error });
76
+ const folders = resolved.graph.listFolders().map((f) => {
77
+ const entry = { path: f.path };
78
+ if (f.display_name)
79
+ entry.display_name = f.display_name;
80
+ return entry;
81
+ });
82
+ return wrapToolResult({
83
+ success: true,
84
+ repo: params.repo,
85
+ folders,
86
+ message: folders.length === 0
87
+ ? `Folder "${params.repo}" has no subfolders.`
88
+ : `Found ${folders.length} subfolder${folders.length === 1 ? '' : 's'} in "${params.repo}".`,
89
+ });
90
+ }
91
+ catch (err) {
92
+ return wrapToolResult({ success: false, error: err instanceof Error ? err.message : 'Unknown error' });
93
+ }
94
+ },
95
+ },
96
+ // ── create_subfolder ─────────────────────────────────────────────
97
+ // Distinct from graph-tools' `create_folder`, which creates a new
98
+ // top-level shared repo. This one nests inside an existing repo.
99
+ {
100
+ name: 'create_subfolder',
101
+ label: 'Create Subfolder',
102
+ description: 'Create a new subfolder inside an existing repo. Path is repo-relative POSIX (e.g. "clients/acme"). Parent segments are auto-created. Pass display_name to override the title-cased fallback (use when the user wants casing the folder name can\'t express, e.g. "HR" or "Schema_OS"). For creating a brand-new top-level shared folder, use create_folder instead. Confirm with the user before calling — folders shape how the user organises their work.',
103
+ parameters: T.Object({
104
+ repo: T.String({ description: 'Folder name to create the subfolder inside' }),
105
+ path: T.String({ description: 'Repo-relative POSIX path of the new subfolder (e.g. "clients/acme")' }),
106
+ display_name: T.Optional(T.String({ description: 'Optional human-readable label. Omit when the title-cased folder name is the right display.' })),
107
+ }),
108
+ execute: async (_toolCallId, params) => {
109
+ try {
110
+ const resolved = resolveRepoOrFail(params.repo);
111
+ if ('error' in resolved)
112
+ return wrapToolResult({ success: false, error: resolved.error });
113
+ const actor = effectiveGitUser();
114
+ await resolved.graph.createFolder(params.path, undefined, actor, {
115
+ displayName: params.display_name,
116
+ });
117
+ // entityType "_folder" is the existing sentinel (see graph-tools'
118
+ // create_folder) that tells the client this is a folder-tree
119
+ // mutation, not an entry mutation — the realtime handler maps it
120
+ // to refreshRepoAfterFolderMutation so the sidebar + folder list
121
+ // view pick up the new subfolder without a manual reload.
122
+ onMutation?.({ action: 'created', repo: params.repo, entityType: '_folder', entityId: params.path });
123
+ return wrapToolResult({
124
+ success: true,
125
+ repo: params.repo,
126
+ path: params.path,
127
+ message: `Created folder ${params.repo}/${params.path}. Auto-committed.`,
128
+ });
129
+ }
130
+ catch (err) {
131
+ return wrapToolResult({ success: false, error: err instanceof Error ? err.message : 'Unknown error' });
132
+ }
133
+ },
134
+ },
135
+ // ── rename_folder ────────────────────────────────────────────────
136
+ {
137
+ name: 'rename_folder',
138
+ label: 'Rename Folder',
139
+ description: 'Rename or move a subfolder within the same repo, optionally updating its display_name in the same commit. To update only the display_name without moving, set `to` equal to `from`. ALL descendant entries follow when the path changes — their on-disk paths change. NEVER call this without explicit user instruction. Surface what will move ("Rename clients/acme → clients/acme-corp and update path of N entries?") and wait for confirmation.',
140
+ parameters: T.Object({
141
+ repo: T.String({ description: 'Folder name containing the subfolder' }),
142
+ from: T.String({ description: 'Current repo-relative path of the subfolder' }),
143
+ to: T.String({ description: 'New repo-relative path of the subfolder. Pass the same value as `from` to update display_name only.' }),
144
+ display_name: T.Optional(T.String({ description: 'New human-readable label. Pass empty string to clear the override and revert to the title-cased folder name.' })),
145
+ }),
146
+ execute: async (_toolCallId, params) => {
147
+ try {
148
+ const resolved = resolveRepoOrFail(params.repo);
149
+ if ('error' in resolved)
150
+ return wrapToolResult({ success: false, error: resolved.error });
151
+ const actor = effectiveGitUser();
152
+ await resolved.graph.renameFolder(params.from, params.to, undefined, actor, {
153
+ displayName: params.display_name === undefined ? undefined : params.display_name,
154
+ });
155
+ onMutation?.({ action: 'updated', repo: params.repo, entityType: '_folder', entityId: params.to });
156
+ return wrapToolResult({
157
+ success: true,
158
+ repo: params.repo,
159
+ from: params.from,
160
+ to: params.to,
161
+ message: `Renamed ${params.repo}/${params.from} → ${params.repo}/${params.to}. Auto-committed.`,
162
+ });
163
+ }
164
+ catch (err) {
165
+ return wrapToolResult({ success: false, error: err instanceof Error ? err.message : 'Unknown error' });
166
+ }
167
+ },
168
+ },
169
+ // ── move_entity ──────────────────────────────────────────────────
170
+ {
171
+ name: 'move_entity',
172
+ label: 'Move Entry',
173
+ description: 'Move an entry to a different folder within the SAME repo. Only the entry\'s folder_path changes — its id and type are preserved. For cross-repo moves the user should use the bulk-move dialog (no agent tool yet).',
174
+ parameters: T.Object({
175
+ repo: T.String({ description: 'Folder name containing the entry' }),
176
+ entityType: T.String({ description: 'Entity type of the entry being moved' }),
177
+ entityId: T.String({ description: 'ID of the entry being moved' }),
178
+ folder_path: T.String({ description: 'Target repo-relative folder path. Empty string = repo root.' }),
179
+ }),
180
+ execute: async (_toolCallId, params) => {
181
+ try {
182
+ const resolved = resolveRepoOrFail(params.repo);
183
+ if ('error' in resolved)
184
+ return wrapToolResult({ success: false, error: resolved.error });
185
+ const actor = effectiveGitUser();
186
+ const moved = await resolved.graph.move(params.entityType, params.entityId, params.folder_path, undefined, actor);
187
+ onMutation?.({ action: 'updated', repo: params.repo, entityType: params.entityType, entityId: params.entityId });
188
+ return wrapToolResult({
189
+ success: true,
190
+ repo: params.repo,
191
+ entityType: params.entityType,
192
+ entityId: params.entityId,
193
+ folder_path: params.folder_path,
194
+ path: moved.path,
195
+ message: `Moved ${params.entityType}/${params.entityId} to ${params.repo}/${params.folder_path || '(root)'}. Auto-committed.`,
196
+ });
197
+ }
198
+ catch (err) {
199
+ return wrapToolResult({ success: false, error: err instanceof Error ? err.message : 'Unknown error' });
200
+ }
201
+ },
202
+ },
203
+ // ── delete_folder ────────────────────────────────────────────────
204
+ {
205
+ name: 'delete_folder',
206
+ label: 'Delete Folder',
207
+ description: 'Delete a subfolder. Defaults to non-recursive — if the folder has entries or subfolders the call FAILS with a blast_radius payload (entriesDeleted, subfoldersDeleted) so you can present the impact to the user. Re-invoke with recursive: true ONLY after explicit user confirmation. NEVER pass recursive: true on the first attempt.',
208
+ parameters: T.Object({
209
+ repo: T.String({ description: 'Folder name containing the subfolder to delete' }),
210
+ path: T.String({ description: 'Repo-relative path of the subfolder to delete' }),
211
+ recursive: T.Optional(T.Boolean({ description: 'Set to true ONLY after the user has confirmed the blast radius. Defaults to false.' })),
212
+ }),
213
+ execute: async (_toolCallId, params) => {
214
+ try {
215
+ const resolved = resolveRepoOrFail(params.repo);
216
+ if ('error' in resolved)
217
+ return wrapToolResult({ success: false, error: resolved.error });
218
+ const actor = effectiveGitUser();
219
+ const result = await resolved.graph.deleteFolder(params.path, {
220
+ recursive: params.recursive === true,
221
+ user: actor,
222
+ });
223
+ onMutation?.({ action: 'deleted', repo: params.repo, entityType: '_folder', entityId: params.path });
224
+ return wrapToolResult({
225
+ success: true,
226
+ repo: params.repo,
227
+ path: params.path,
228
+ entriesDeleted: result.entriesDeleted,
229
+ subfoldersDeleted: result.subfoldersDeleted,
230
+ message: `Deleted folder ${params.repo}/${params.path}${result.entriesDeleted > 0 || result.subfoldersDeleted > 0 ? ` (${result.entriesDeleted} entries, ${result.subfoldersDeleted} subfolders)` : ''}. Auto-committed.`,
231
+ });
232
+ }
233
+ catch (err) {
234
+ // Surface the blast radius so the agent can ask the user before retrying recursively.
235
+ if (err?.code === 'FOLDER_NOT_EMPTY' && err.blastRadius) {
236
+ return wrapToolResult({
237
+ success: false,
238
+ code: 'FOLDER_NOT_EMPTY',
239
+ blast_radius: err.blastRadius,
240
+ message: `Folder ${params.repo}/${params.path} is not empty: ${err.blastRadius.entriesDeleted} entries, ${err.blastRadius.subfoldersDeleted} subfolders. Confirm with the user before re-invoking with recursive: true.`,
241
+ });
242
+ }
243
+ return wrapToolResult({ success: false, error: err instanceof Error ? err.message : 'Unknown error' });
244
+ }
245
+ },
246
+ },
247
+ ];
248
+ }
249
+ //# sourceMappingURL=folder-tools.js.map