studiograph 1.3.47 → 1.3.48-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1067) hide show
  1. package/README.md +26 -16
  2. package/dist/agent/agent-pool.d.ts +117 -0
  3. package/dist/agent/agent-pool.js +287 -0
  4. package/dist/agent/agent-pool.js.map +1 -0
  5. package/dist/agent/followups.d.ts +34 -0
  6. package/dist/agent/followups.js +52 -0
  7. package/dist/agent/followups.js.map +1 -0
  8. package/dist/agent/orchestrator.d.ts +113 -22
  9. package/dist/agent/orchestrator.js +573 -181
  10. package/dist/agent/orchestrator.js.map +1 -1
  11. package/dist/agent/prompts/entity-types-section.d.ts +36 -0
  12. package/dist/agent/prompts/entity-types-section.js +90 -0
  13. package/dist/agent/prompts/entity-types-section.js.map +1 -0
  14. package/dist/agent/prompts/system.md +148 -69
  15. package/dist/agent/skill-loader.d.ts +30 -17
  16. package/dist/agent/skill-loader.js +63 -30
  17. package/dist/agent/skill-loader.js.map +1 -1
  18. package/dist/agent/skills/entity-schema.md +77 -433
  19. package/dist/agent/skills/interview/entity-templates.md +193 -0
  20. package/dist/agent/skills/interview/question-domains.md +391 -0
  21. package/dist/agent/skills/interview/skill.md +204 -0
  22. package/dist/agent/skills/schema-rules.md +54 -0
  23. package/dist/agent/tools/capture-tools.d.ts +31 -0
  24. package/dist/agent/tools/capture-tools.js +40 -0
  25. package/dist/agent/tools/capture-tools.js.map +1 -0
  26. package/dist/agent/tools/folder-tools.d.ts +47 -0
  27. package/dist/agent/tools/folder-tools.js +249 -0
  28. package/dist/agent/tools/folder-tools.js.map +1 -0
  29. package/dist/agent/tools/fs-tools.d.ts +7 -6
  30. package/dist/agent/tools/fs-tools.js +5 -4
  31. package/dist/agent/tools/fs-tools.js.map +1 -1
  32. package/dist/agent/tools/graph-tools.d.ts +21 -58
  33. package/dist/agent/tools/graph-tools.js +635 -332
  34. package/dist/agent/tools/graph-tools.js.map +1 -1
  35. package/dist/agent/tools/history-tools.d.ts +95 -0
  36. package/dist/agent/tools/history-tools.js +461 -0
  37. package/dist/agent/tools/history-tools.js.map +1 -0
  38. package/dist/agent/tools/load-skill.d.ts +6 -5
  39. package/dist/agent/tools/load-skill.js +3 -3
  40. package/dist/agent/tools/load-skill.js.map +1 -1
  41. package/dist/agent/tools/ops-tools.d.ts +5 -4
  42. package/dist/agent/tools/ops-tools.js +130 -236
  43. package/dist/agent/tools/ops-tools.js.map +1 -1
  44. package/dist/agent/tools/permission-tools.d.ts +87 -17
  45. package/dist/agent/tools/permission-tools.js +233 -38
  46. package/dist/agent/tools/permission-tools.js.map +1 -1
  47. package/dist/agent/tools/tool-loader.js +5 -4
  48. package/dist/agent/tools/tool-loader.js.map +1 -1
  49. package/dist/agent/tools/web-tools.d.ts +18 -0
  50. package/dist/agent/tools/web-tools.js +283 -0
  51. package/dist/agent/tools/web-tools.js.map +1 -0
  52. package/dist/cli/commands/about.d.ts +1 -0
  53. package/dist/cli/commands/about.js +55 -3
  54. package/dist/cli/commands/about.js.map +1 -1
  55. package/dist/cli/commands/admin/audit-workspace.d.ts +23 -0
  56. package/dist/cli/commands/admin/audit-workspace.js +133 -0
  57. package/dist/cli/commands/admin/audit-workspace.js.map +1 -0
  58. package/dist/cli/commands/admin/audit.d.ts +21 -0
  59. package/dist/cli/commands/admin/audit.js +174 -0
  60. package/dist/cli/commands/admin/audit.js.map +1 -0
  61. package/dist/cli/commands/admin/backup.d.ts +54 -0
  62. package/dist/cli/commands/admin/backup.js +207 -0
  63. package/dist/cli/commands/admin/backup.js.map +1 -0
  64. package/dist/cli/commands/admin/folder.d.ts +11 -0
  65. package/dist/cli/commands/admin/folder.js +186 -0
  66. package/dist/cli/commands/admin/folder.js.map +1 -0
  67. package/dist/cli/commands/admin/index.d.ts +16 -0
  68. package/dist/cli/commands/admin/index.js +46 -0
  69. package/dist/cli/commands/admin/index.js.map +1 -0
  70. package/dist/cli/commands/admin/migrate-assets.d.ts +53 -0
  71. package/dist/cli/commands/admin/migrate-assets.js +184 -0
  72. package/dist/cli/commands/admin/migrate-assets.js.map +1 -0
  73. package/dist/cli/commands/admin/migrate.d.ts +56 -0
  74. package/dist/cli/commands/admin/migrate.js +263 -0
  75. package/dist/cli/commands/admin/migrate.js.map +1 -0
  76. package/dist/cli/commands/admin/restore.d.ts +24 -0
  77. package/dist/cli/commands/admin/restore.js +228 -0
  78. package/dist/cli/commands/admin/restore.js.map +1 -0
  79. package/dist/cli/commands/admin/secrets.d.ts +23 -0
  80. package/dist/cli/commands/admin/secrets.js +256 -0
  81. package/dist/cli/commands/admin/secrets.js.map +1 -0
  82. package/dist/cli/commands/admin/settings.d.ts +28 -0
  83. package/dist/cli/commands/admin/settings.js +284 -0
  84. package/dist/cli/commands/admin/settings.js.map +1 -0
  85. package/dist/cli/commands/admin/token.d.ts +42 -0
  86. package/dist/cli/commands/admin/token.js +126 -0
  87. package/dist/cli/commands/admin/token.js.map +1 -0
  88. package/dist/cli/commands/admin/transfer-ownership.d.ts +15 -0
  89. package/dist/cli/commands/admin/transfer-ownership.js +106 -0
  90. package/dist/cli/commands/admin/transfer-ownership.js.map +1 -0
  91. package/dist/cli/commands/admin/user.d.ts +11 -0
  92. package/dist/cli/commands/admin/user.js +187 -0
  93. package/dist/cli/commands/admin/user.js.map +1 -0
  94. package/dist/cli/commands/clone.d.ts +25 -3
  95. package/dist/cli/commands/clone.js +142 -36
  96. package/dist/cli/commands/clone.js.map +1 -1
  97. package/dist/cli/commands/commit.d.ts +1 -1
  98. package/dist/cli/commands/commit.js +24 -11
  99. package/dist/cli/commands/commit.js.map +1 -1
  100. package/dist/cli/commands/config.d.ts +23 -107
  101. package/dist/cli/commands/config.js +52 -260
  102. package/dist/cli/commands/config.js.map +1 -1
  103. package/dist/cli/commands/connector.d.ts +10 -13
  104. package/dist/cli/commands/connector.js +16 -58
  105. package/dist/cli/commands/connector.js.map +1 -1
  106. package/dist/cli/commands/deploy.js +215 -68
  107. package/dist/cli/commands/deploy.js.map +1 -1
  108. package/dist/cli/commands/index.js +2 -2
  109. package/dist/cli/commands/index.js.map +1 -1
  110. package/dist/cli/commands/init.js +10 -30
  111. package/dist/cli/commands/init.js.map +1 -1
  112. package/dist/cli/commands/mcp.js +12 -4
  113. package/dist/cli/commands/mcp.js.map +1 -1
  114. package/dist/cli/commands/orphans.js +14 -30
  115. package/dist/cli/commands/orphans.js.map +1 -1
  116. package/dist/cli/commands/r2.d.ts +3 -0
  117. package/dist/cli/commands/r2.js +223 -204
  118. package/dist/cli/commands/r2.js.map +1 -1
  119. package/dist/cli/commands/redeploy.js +65 -12
  120. package/dist/cli/commands/redeploy.js.map +1 -1
  121. package/dist/cli/commands/reset.d.ts +22 -6
  122. package/dist/cli/commands/reset.js +142 -63
  123. package/dist/cli/commands/reset.js.map +1 -1
  124. package/dist/cli/commands/serve.js +209 -24
  125. package/dist/cli/commands/serve.js.map +1 -1
  126. package/dist/cli/commands/sync.d.ts +1 -1
  127. package/dist/cli/commands/sync.js +372 -202
  128. package/dist/cli/commands/sync.js.map +1 -1
  129. package/dist/cli/crypto-bundle.d.ts +39 -0
  130. package/dist/cli/crypto-bundle.js +94 -0
  131. package/dist/cli/crypto-bundle.js.map +1 -0
  132. package/dist/cli/index.js +24 -35
  133. package/dist/cli/index.js.map +1 -1
  134. package/dist/cli/railway-pin.d.ts +68 -0
  135. package/dist/cli/railway-pin.js +96 -0
  136. package/dist/cli/railway-pin.js.map +1 -0
  137. package/dist/cli/railway-provisioning.d.ts +53 -0
  138. package/dist/cli/railway-provisioning.js +85 -0
  139. package/dist/cli/railway-provisioning.js.map +1 -0
  140. package/dist/cli/setup-wizard.d.ts +33 -52
  141. package/dist/cli/setup-wizard.js +43 -68
  142. package/dist/cli/setup-wizard.js.map +1 -1
  143. package/dist/core/accent-palette.d.ts +22 -0
  144. package/dist/core/accent-palette.js +47 -0
  145. package/dist/core/accent-palette.js.map +1 -0
  146. package/dist/core/cell-anchor.d.ts +29 -0
  147. package/dist/core/cell-anchor.js +53 -0
  148. package/dist/core/cell-anchor.js.map +1 -0
  149. package/dist/core/comment-anchor.d.ts +41 -0
  150. package/dist/core/comment-anchor.js +147 -0
  151. package/dist/core/comment-anchor.js.map +1 -0
  152. package/dist/core/commit-messages.d.ts +57 -0
  153. package/dist/core/commit-messages.js +85 -0
  154. package/dist/core/commit-messages.js.map +1 -0
  155. package/dist/core/embeds.d.ts +56 -0
  156. package/dist/core/embeds.js +103 -0
  157. package/dist/core/embeds.js.map +1 -0
  158. package/dist/core/entity-body-templates.d.ts +21 -0
  159. package/dist/core/entity-body-templates.js +53 -0
  160. package/dist/core/entity-body-templates.js.map +1 -0
  161. package/dist/core/entity-types-catalog.d.ts +65 -0
  162. package/dist/core/entity-types-catalog.js +140 -0
  163. package/dist/core/entity-types-catalog.js.map +1 -0
  164. package/dist/core/folder-paths.d.ts +41 -0
  165. package/dist/core/folder-paths.js +95 -0
  166. package/dist/core/folder-paths.js.map +1 -0
  167. package/dist/core/folder-sidecar.d.ts +36 -0
  168. package/dist/core/folder-sidecar.js +91 -0
  169. package/dist/core/folder-sidecar.js.map +1 -0
  170. package/dist/core/graph.d.ts +675 -14
  171. package/dist/core/graph.js +2118 -314
  172. package/dist/core/graph.js.map +1 -1
  173. package/dist/core/history-diff.d.ts +35 -0
  174. package/dist/core/history-diff.js +114 -0
  175. package/dist/core/history-diff.js.map +1 -0
  176. package/dist/core/schema-registry.d.ts +59 -0
  177. package/dist/core/schema-registry.js +198 -0
  178. package/dist/core/schema-registry.js.map +1 -1
  179. package/dist/core/schemas/connector.d.ts +67 -0
  180. package/dist/core/schemas/connector.js +100 -0
  181. package/dist/core/schemas/connector.js.map +1 -0
  182. package/dist/core/schemas/workspace.d.ts +122 -0
  183. package/dist/core/schemas/workspace.js +211 -0
  184. package/dist/core/schemas/workspace.js.map +1 -0
  185. package/dist/core/secrets/SecretStore.d.ts +77 -0
  186. package/dist/core/secrets/SecretStore.js +13 -0
  187. package/dist/core/secrets/SecretStore.js.map +1 -0
  188. package/dist/core/secrets/SettingsResolver.d.ts +54 -0
  189. package/dist/core/secrets/SettingsResolver.js +80 -0
  190. package/dist/core/secrets/SettingsResolver.js.map +1 -0
  191. package/dist/core/secrets/SettingsStore.d.ts +30 -0
  192. package/dist/core/secrets/SettingsStore.js +9 -0
  193. package/dist/core/secrets/SettingsStore.js.map +1 -0
  194. package/dist/core/secrets/SqliteEncryptedStore.d.ts +90 -0
  195. package/dist/core/secrets/SqliteEncryptedStore.js +598 -0
  196. package/dist/core/secrets/SqliteEncryptedStore.js.map +1 -0
  197. package/dist/core/secrets/audit.d.ts +36 -0
  198. package/dist/core/secrets/audit.js +60 -0
  199. package/dist/core/secrets/audit.js.map +1 -0
  200. package/dist/core/secrets/auth-db-migration.d.ts +129 -0
  201. package/dist/core/secrets/auth-db-migration.js +653 -0
  202. package/dist/core/secrets/auth-db-migration.js.map +1 -0
  203. package/dist/core/secrets/bundle.d.ts +141 -0
  204. package/dist/core/secrets/bundle.js +435 -0
  205. package/dist/core/secrets/bundle.js.map +1 -0
  206. package/dist/core/secrets/dual-write.d.ts +81 -0
  207. package/dist/core/secrets/dual-write.js +247 -0
  208. package/dist/core/secrets/dual-write.js.map +1 -0
  209. package/dist/core/secrets/encryption.d.ts +44 -0
  210. package/dist/core/secrets/encryption.js +97 -0
  211. package/dist/core/secrets/encryption.js.map +1 -0
  212. package/dist/core/secrets/index.d.ts +49 -0
  213. package/dist/core/secrets/index.js +74 -0
  214. package/dist/core/secrets/index.js.map +1 -0
  215. package/dist/core/secrets/master-key.d.ts +38 -0
  216. package/dist/core/secrets/master-key.js +122 -0
  217. package/dist/core/secrets/master-key.js.map +1 -0
  218. package/dist/core/secrets/probes/anthropic.d.ts +98 -0
  219. package/dist/core/secrets/probes/anthropic.js +300 -0
  220. package/dist/core/secrets/probes/anthropic.js.map +1 -0
  221. package/dist/core/secrets/probes/brave.d.ts +9 -0
  222. package/dist/core/secrets/probes/brave.js +15 -0
  223. package/dist/core/secrets/probes/brave.js.map +1 -0
  224. package/dist/core/secrets/probes/r2.d.ts +15 -0
  225. package/dist/core/secrets/probes/r2.js +14 -0
  226. package/dist/core/secrets/probes/r2.js.map +1 -0
  227. package/dist/core/secrets/probes/voyage.d.ts +13 -0
  228. package/dist/core/secrets/probes/voyage.js +52 -0
  229. package/dist/core/secrets/probes/voyage.js.map +1 -0
  230. package/dist/core/secrets/r2-structural-migration.d.ts +39 -0
  231. package/dist/core/secrets/r2-structural-migration.js +109 -0
  232. package/dist/core/secrets/r2-structural-migration.js.map +1 -0
  233. package/dist/core/secrets/read-flip.d.ts +59 -0
  234. package/dist/core/secrets/read-flip.js +87 -0
  235. package/dist/core/secrets/read-flip.js.map +1 -0
  236. package/dist/core/secrets/registry.d.ts +188 -0
  237. package/dist/core/secrets/registry.js +598 -0
  238. package/dist/core/secrets/registry.js.map +1 -0
  239. package/dist/core/types.d.ts +77 -455
  240. package/dist/core/types.js +17 -3
  241. package/dist/core/types.js.map +1 -1
  242. package/dist/core/user-config.d.ts +75 -7
  243. package/dist/core/user-config.js +155 -7
  244. package/dist/core/user-config.js.map +1 -1
  245. package/dist/core/validation.d.ts +717 -1791
  246. package/dist/core/validation.js +357 -228
  247. package/dist/core/validation.js.map +1 -1
  248. package/dist/core/workspace-manager.d.ts +79 -12
  249. package/dist/core/workspace-manager.js +213 -73
  250. package/dist/core/workspace-manager.js.map +1 -1
  251. package/dist/core/workspace.d.ts +19 -5
  252. package/dist/core/workspace.js +69 -35
  253. package/dist/core/workspace.js.map +1 -1
  254. package/dist/mcp/comment-virtual-entity.d.ts +36 -0
  255. package/dist/mcp/comment-virtual-entity.js +71 -0
  256. package/dist/mcp/comment-virtual-entity.js.map +1 -0
  257. package/dist/mcp/connector-manager.d.ts +94 -13
  258. package/dist/mcp/connector-manager.js +283 -62
  259. package/dist/mcp/connector-manager.js.map +1 -1
  260. package/dist/mcp/oauth-provider.d.ts +27 -33
  261. package/dist/mcp/oauth-provider.js +65 -134
  262. package/dist/mcp/oauth-provider.js.map +1 -1
  263. package/dist/mcp/oauth-registry.d.ts +62 -0
  264. package/dist/mcp/oauth-registry.js +85 -0
  265. package/dist/mcp/oauth-registry.js.map +1 -0
  266. package/dist/mcp/server.d.ts +11 -3
  267. package/dist/mcp/server.js +30 -5
  268. package/dist/mcp/server.js.map +1 -1
  269. package/dist/mcp/state-signer.d.ts +41 -0
  270. package/dist/mcp/state-signer.js +120 -0
  271. package/dist/mcp/state-signer.js.map +1 -0
  272. package/dist/mcp/tools.d.ts +35 -2
  273. package/dist/mcp/tools.js +1051 -117
  274. package/dist/mcp/tools.js.map +1 -1
  275. package/dist/server/__tests__/helpers/graph-api.d.ts +18 -0
  276. package/dist/server/__tests__/helpers/graph-api.js +16 -0
  277. package/dist/server/__tests__/helpers/graph-api.js.map +1 -0
  278. package/dist/server/body-write-coordinator.d.ts +151 -0
  279. package/dist/server/body-write-coordinator.js +161 -0
  280. package/dist/server/body-write-coordinator.js.map +1 -0
  281. package/dist/server/cloud-billing-flow.d.ts +32 -0
  282. package/dist/server/cloud-billing-flow.js +75 -0
  283. package/dist/server/cloud-billing-flow.js.map +1 -0
  284. package/dist/server/commit-audit.d.ts +26 -0
  285. package/dist/server/commit-audit.js +30 -0
  286. package/dist/server/commit-audit.js.map +1 -0
  287. package/dist/server/index.d.ts +14 -3
  288. package/dist/server/index.js +451 -193
  289. package/dist/server/index.js.map +1 -1
  290. package/dist/server/middleware/sanitize.d.ts +46 -0
  291. package/dist/server/middleware/sanitize.js +171 -0
  292. package/dist/server/middleware/sanitize.js.map +1 -0
  293. package/dist/server/routes/asset-api.d.ts +10 -0
  294. package/dist/server/routes/asset-api.js +294 -0
  295. package/dist/server/routes/asset-api.js.map +1 -0
  296. package/dist/server/routes/audit-api.d.ts +24 -0
  297. package/dist/server/routes/audit-api.js +117 -0
  298. package/dist/server/routes/audit-api.js.map +1 -0
  299. package/dist/server/routes/auth-api.d.ts +3 -2
  300. package/dist/server/routes/auth-api.js +519 -38
  301. package/dist/server/routes/auth-api.js.map +1 -1
  302. package/dist/server/routes/capture-api.d.ts +18 -0
  303. package/dist/server/routes/capture-api.js +257 -0
  304. package/dist/server/routes/capture-api.js.map +1 -0
  305. package/dist/server/routes/chat.d.ts +4 -1
  306. package/dist/server/routes/chat.js +298 -88
  307. package/dist/server/routes/chat.js.map +1 -1
  308. package/dist/server/routes/comments-api.d.ts +15 -0
  309. package/dist/server/routes/comments-api.js +444 -0
  310. package/dist/server/routes/comments-api.js.map +1 -0
  311. package/dist/server/routes/config-api.d.ts +21 -0
  312. package/dist/server/routes/config-api.js +256 -0
  313. package/dist/server/routes/config-api.js.map +1 -0
  314. package/dist/server/routes/connectors-api.d.ts +17 -0
  315. package/dist/server/routes/connectors-api.js +410 -0
  316. package/dist/server/routes/connectors-api.js.map +1 -0
  317. package/dist/server/routes/event-ingest-api.d.ts +15 -0
  318. package/dist/server/routes/event-ingest-api.js +125 -0
  319. package/dist/server/routes/event-ingest-api.js.map +1 -0
  320. package/dist/server/routes/git-http.d.ts +3 -3
  321. package/dist/server/routes/git-http.js +86 -38
  322. package/dist/server/routes/git-http.js.map +1 -1
  323. package/dist/server/routes/graph-api-access.d.ts +35 -0
  324. package/dist/server/routes/graph-api-access.js +105 -0
  325. package/dist/server/routes/graph-api-access.js.map +1 -0
  326. package/dist/server/routes/graph-api.d.ts +3 -2
  327. package/dist/server/routes/graph-api.js +1321 -263
  328. package/dist/server/routes/graph-api.js.map +1 -1
  329. package/dist/server/routes/health.d.ts +18 -0
  330. package/dist/server/routes/health.js +74 -0
  331. package/dist/server/routes/health.js.map +1 -0
  332. package/dist/server/routes/insights-api.d.ts +1 -2
  333. package/dist/server/routes/insights-api.js +149 -41
  334. package/dist/server/routes/insights-api.js.map +1 -1
  335. package/dist/server/routes/mcp.d.ts +7 -3
  336. package/dist/server/routes/mcp.js +22 -6
  337. package/dist/server/routes/mcp.js.map +1 -1
  338. package/dist/server/routes/permissions-api.d.ts +9 -2
  339. package/dist/server/routes/permissions-api.js +87 -30
  340. package/dist/server/routes/permissions-api.js.map +1 -1
  341. package/dist/server/routes/r2-api.d.ts +25 -0
  342. package/dist/server/routes/r2-api.js +276 -0
  343. package/dist/server/routes/r2-api.js.map +1 -0
  344. package/dist/server/routes/secrets-api.d.ts +36 -0
  345. package/dist/server/routes/secrets-api.js +308 -0
  346. package/dist/server/routes/secrets-api.js.map +1 -0
  347. package/dist/server/routes/settings-api.d.ts +29 -0
  348. package/dist/server/routes/settings-api.js +180 -0
  349. package/dist/server/routes/settings-api.js.map +1 -0
  350. package/dist/server/routes/url-api.d.ts +7 -0
  351. package/dist/server/routes/url-api.js +74 -0
  352. package/dist/server/routes/url-api.js.map +1 -0
  353. package/dist/server/routes/views-api.js +81 -7
  354. package/dist/server/routes/views-api.js.map +1 -1
  355. package/dist/server/routes/workspace-api.d.ts +2 -1
  356. package/dist/server/routes/workspace-api.js +124 -35
  357. package/dist/server/routes/workspace-api.js.map +1 -1
  358. package/dist/server/routes/ws.d.ts +2 -1
  359. package/dist/server/routes/ws.js +64 -16
  360. package/dist/server/routes/ws.js.map +1 -1
  361. package/dist/server/session-manager.d.ts +48 -5
  362. package/dist/server/session-manager.js +182 -15
  363. package/dist/server/session-manager.js.map +1 -1
  364. package/dist/server/ws-hub.d.ts +138 -14
  365. package/dist/server/ws-hub.js +0 -0
  366. package/dist/server/ws-hub.js.map +1 -1
  367. package/dist/server/yjs-manager.d.ts +285 -7
  368. package/dist/server/yjs-manager.js +907 -36
  369. package/dist/server/yjs-manager.js.map +1 -1
  370. package/dist/server/yjs-persistence.d.ts +165 -0
  371. package/dist/server/yjs-persistence.js +557 -0
  372. package/dist/server/yjs-persistence.js.map +1 -0
  373. package/dist/server/yjs-text-diff.d.ts +32 -0
  374. package/dist/server/yjs-text-diff.js +61 -0
  375. package/dist/server/yjs-text-diff.js.map +1 -0
  376. package/dist/services/access-control.d.ts +73 -0
  377. package/dist/services/access-control.js +146 -0
  378. package/dist/services/access-control.js.map +1 -0
  379. package/dist/services/asset-listing.d.ts +39 -0
  380. package/dist/services/asset-listing.js +125 -0
  381. package/dist/services/asset-listing.js.map +1 -0
  382. package/dist/services/asset-upload-service.d.ts +53 -0
  383. package/dist/services/asset-upload-service.js +201 -0
  384. package/dist/services/asset-upload-service.js.map +1 -0
  385. package/dist/services/assets/asset-index-service.d.ts +82 -0
  386. package/dist/services/assets/asset-index-service.js +167 -0
  387. package/dist/services/assets/asset-index-service.js.map +1 -0
  388. package/dist/services/assets/base.d.ts +44 -0
  389. package/dist/services/assets/base.js +55 -0
  390. package/dist/services/assets/base.js.map +1 -1
  391. package/dist/services/assets/index.d.ts +69 -1
  392. package/dist/services/assets/index.js +125 -0
  393. package/dist/services/assets/index.js.map +1 -1
  394. package/dist/services/assets/local.d.ts +12 -1
  395. package/dist/services/assets/local.js +100 -1
  396. package/dist/services/assets/local.js.map +1 -1
  397. package/dist/services/assets/r2-sync.d.ts +88 -0
  398. package/dist/services/assets/r2-sync.js +412 -0
  399. package/dist/services/assets/r2-sync.js.map +1 -0
  400. package/dist/services/assets/r2.d.ts +34 -1
  401. package/dist/services/assets/r2.js +93 -1
  402. package/dist/services/assets/r2.js.map +1 -1
  403. package/dist/services/auth-service.d.ts +314 -36
  404. package/dist/services/auth-service.js +1126 -139
  405. package/dist/services/auth-service.js.map +1 -1
  406. package/dist/services/bookmark-import-service.d.ts +49 -0
  407. package/dist/services/bookmark-import-service.js +250 -0
  408. package/dist/services/bookmark-import-service.js.map +1 -0
  409. package/dist/services/cloud-inference-billing.d.ts +64 -0
  410. package/dist/services/cloud-inference-billing.js +313 -0
  411. package/dist/services/cloud-inference-billing.js.map +1 -0
  412. package/dist/services/comment-service.d.ts +97 -0
  413. package/dist/services/comment-service.js +341 -0
  414. package/dist/services/comment-service.js.map +1 -0
  415. package/dist/services/csv-service.d.ts +22 -17
  416. package/dist/services/csv-service.js +55 -92
  417. package/dist/services/csv-service.js.map +1 -1
  418. package/dist/services/entity-mutations.d.ts +161 -0
  419. package/dist/services/entity-mutations.js +296 -0
  420. package/dist/services/entity-mutations.js.map +1 -0
  421. package/dist/services/event-processor.d.ts +104 -0
  422. package/dist/services/event-processor.js +441 -0
  423. package/dist/services/event-processor.js.map +1 -0
  424. package/dist/services/folder-creation.d.ts +33 -0
  425. package/dist/services/folder-creation.js +103 -0
  426. package/dist/services/folder-creation.js.map +1 -0
  427. package/dist/services/git.d.ts +54 -0
  428. package/dist/services/git.js +188 -54
  429. package/dist/services/git.js.map +1 -1
  430. package/dist/services/graph-maintenance.d.ts +42 -0
  431. package/dist/services/graph-maintenance.js +143 -0
  432. package/dist/services/graph-maintenance.js.map +1 -0
  433. package/dist/services/import-service.d.ts +45 -2
  434. package/dist/services/import-service.js +304 -100
  435. package/dist/services/import-service.js.map +1 -1
  436. package/dist/services/lint-service.js +9 -16
  437. package/dist/services/lint-service.js.map +1 -1
  438. package/dist/services/markdown.d.ts +12 -1
  439. package/dist/services/markdown.js +71 -6
  440. package/dist/services/markdown.js.map +1 -1
  441. package/dist/services/memory-service.d.ts +22 -14
  442. package/dist/services/memory-service.js +53 -35
  443. package/dist/services/memory-service.js.map +1 -1
  444. package/dist/services/mention-detector.d.ts +23 -0
  445. package/dist/services/mention-detector.js +47 -0
  446. package/dist/services/mention-detector.js.map +1 -0
  447. package/dist/services/notification-broadcast.d.ts +32 -0
  448. package/dist/services/notification-broadcast.js +38 -0
  449. package/dist/services/notification-broadcast.js.map +1 -0
  450. package/dist/services/notification-service.d.ts +41 -0
  451. package/dist/services/notification-service.js +100 -0
  452. package/dist/services/notification-service.js.map +1 -0
  453. package/dist/services/personal-folder.d.ts +40 -0
  454. package/dist/services/personal-folder.js +101 -0
  455. package/dist/services/personal-folder.js.map +1 -0
  456. package/dist/services/user-person-bridge.d.ts +118 -0
  457. package/dist/services/user-person-bridge.js +306 -0
  458. package/dist/services/user-person-bridge.js.map +1 -0
  459. package/dist/services/vector-service.d.ts +146 -6
  460. package/dist/services/vector-service.js +276 -13
  461. package/dist/services/vector-service.js.map +1 -1
  462. package/dist/services/workspace-access.d.ts +106 -0
  463. package/dist/services/workspace-access.js +149 -0
  464. package/dist/services/workspace-access.js.map +1 -0
  465. package/dist/utils/git.d.ts +17 -2
  466. package/dist/utils/git.js +23 -7
  467. package/dist/utils/git.js.map +1 -1
  468. package/dist/utils/log.d.ts +42 -0
  469. package/dist/utils/log.js +137 -0
  470. package/dist/utils/log.js.map +1 -0
  471. package/dist/utils/preflight.js +2 -2
  472. package/dist/utils/preflight.js.map +1 -1
  473. package/dist/utils/version-checker.d.ts +12 -19
  474. package/dist/utils/version-checker.js +14 -104
  475. package/dist/utils/version-checker.js.map +1 -1
  476. package/dist/web/_app/immutable/assets/0.DOumm94J.css +2 -0
  477. package/dist/web/_app/immutable/assets/13.DlIf1mKh.css +1 -0
  478. package/dist/web/_app/immutable/assets/14.7d-Q37wc.css +1 -0
  479. package/dist/web/_app/immutable/assets/15.CmLrbzZp.css +1 -0
  480. package/dist/web/_app/immutable/assets/2.BftNiAA4.css +1 -0
  481. package/dist/web/_app/immutable/assets/3.CV0abekd.css +1 -0
  482. package/dist/web/_app/immutable/assets/4.BgXzUTTk.css +1 -0
  483. package/dist/web/_app/immutable/assets/9.gsF-Ne6_.css +1 -0
  484. package/dist/web/_app/immutable/assets/AgentOverlay.CpvH9rhf.css +1 -0
  485. package/dist/web/_app/immutable/assets/AssetManagerModal.BKJfPAPk.css +1 -0
  486. package/dist/web/_app/immutable/assets/CalendarView.bNewSxkH.css +1 -0
  487. package/dist/web/_app/immutable/assets/ChevronDown.Bz0FjM7b.css +1 -0
  488. package/dist/web/_app/immutable/assets/FolderMembersPanel.DX1oBeF_.css +1 -0
  489. package/dist/web/_app/immutable/assets/FolderMutationDialogs.BMRF6Z3z.css +1 -0
  490. package/dist/web/_app/immutable/assets/FolderPicker.B5KdvRYl.css +1 -0
  491. package/dist/web/_app/immutable/assets/GalleryView.DgvSjS0I.css +1 -0
  492. package/dist/web/_app/immutable/assets/GraphView.BJtGL9py.css +1 -0
  493. package/dist/web/_app/immutable/assets/KanbanView.D0QbZFd6.css +1 -0
  494. package/dist/web/_app/immutable/assets/SettingsDialog.DYWYMFSO.css +1 -0
  495. package/dist/web/_app/immutable/assets/Spinner.UBfl0pab.css +1 -0
  496. package/dist/web/_app/immutable/assets/StopFilledAlt.CkPrHdPD.css +1 -0
  497. package/dist/web/_app/immutable/assets/TimelineView.DA-H6dvv.css +1 -0
  498. package/dist/web/_app/immutable/assets/WorkspaceView.BS1ildu7.css +1 -0
  499. package/dist/web/_app/immutable/assets/button.BlLm4Dg1.css +1 -0
  500. package/dist/web/_app/immutable/assets/formatting.vV0ne105.css +1 -0
  501. package/dist/web/_app/immutable/assets/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff +0 -0
  502. package/dist/web/_app/immutable/assets/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2 +0 -0
  503. package/dist/web/_app/immutable/assets/ibm-plex-mono-latin-500-normal.CB9ihrfo.woff +0 -0
  504. package/dist/web/_app/immutable/assets/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2 +0 -0
  505. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-400-italic.CZTNEAuW.woff2 +0 -0
  506. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-400-italic.CsGl1sm0.woff +0 -0
  507. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-400-normal.CDDApCn2.woff2 +0 -0
  508. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-400-normal.CYLoc0-x.woff +0 -0
  509. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-500-italic.BNK2_mGO.woff2 +0 -0
  510. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-500-italic.DpEwFAQM.woff +0 -0
  511. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-500-normal.6ng42L7E.woff2 +0 -0
  512. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-500-normal.BgVn5rGT.woff +0 -0
  513. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-600-normal.Cu4Hd6ag.woff +0 -0
  514. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-600-normal.CuJfVYMP.woff2 +0 -0
  515. package/dist/web/_app/immutable/assets/inline-list.cqga56xT.css +1 -0
  516. package/dist/web/_app/immutable/assets/list-columns.BrRrAiZ7.css +1 -0
  517. package/dist/web/_app/immutable/assets/realtime.DDCWxn3B.css +1 -0
  518. package/dist/web/_app/immutable/assets/sheet.DJPuqnTg.css +1 -0
  519. package/dist/web/_app/immutable/assets/speech-dictation.C5CYFhS1.css +1 -0
  520. package/dist/web/_app/immutable/chunks/0edH8sO82.js +1 -0
  521. package/dist/web/_app/immutable/chunks/0iDDDyaZ.js +1 -0
  522. package/dist/web/_app/immutable/chunks/7-y0CE1z.js +1 -0
  523. package/dist/web/_app/immutable/chunks/7Bu427my2.js +184 -0
  524. package/dist/web/_app/immutable/chunks/B-V5eMSw2.js +1 -0
  525. package/dist/web/_app/immutable/chunks/B-i9_YVM.js +1 -0
  526. package/dist/web/_app/immutable/chunks/B15-kvCe.js +1 -0
  527. package/dist/web/_app/immutable/chunks/B4cFqqUS.js +3 -0
  528. package/dist/web/_app/immutable/chunks/B6Lt-qaJ.js +1 -0
  529. package/dist/web/_app/immutable/chunks/B7hznOQp.js +1 -0
  530. package/dist/web/_app/immutable/chunks/B7tbGyiU2.js +1 -0
  531. package/dist/web/_app/immutable/chunks/B8-Lm86o2.js +1 -0
  532. package/dist/web/_app/immutable/chunks/BBxt8lpa.js +1 -0
  533. package/dist/web/_app/immutable/chunks/BCaRi2AF.js +1 -0
  534. package/dist/web/_app/immutable/chunks/BJReLGMs.js +1 -0
  535. package/dist/web/_app/immutable/chunks/BKzV82vD2.js +83 -0
  536. package/dist/web/_app/immutable/chunks/BLHrJvbG.js +1 -0
  537. package/dist/web/_app/immutable/chunks/BQULA6er.js +4 -0
  538. package/dist/web/_app/immutable/chunks/BQW-EDgP2.js +224 -0
  539. package/dist/web/_app/immutable/chunks/BR6jMpLB.js +1 -0
  540. package/dist/web/_app/immutable/chunks/BUBMGU8t2.js +2 -0
  541. package/dist/web/_app/immutable/chunks/BVnuLlVg.js +1 -0
  542. package/dist/web/_app/immutable/chunks/BYokDzwE.js +1 -0
  543. package/dist/web/_app/immutable/chunks/B_Avv9jQ2.js +1 -0
  544. package/dist/web/_app/immutable/chunks/Bbp76jaT2.js +1 -0
  545. package/dist/web/_app/immutable/chunks/BddNmQ8j.js +1 -0
  546. package/dist/web/_app/immutable/chunks/BiJjH5mJ.js +2 -0
  547. package/dist/web/_app/immutable/chunks/BlyFGPFV.js +22 -0
  548. package/dist/web/_app/immutable/chunks/Bt88HrRx.js +1 -0
  549. package/dist/web/_app/immutable/chunks/Bu2iU6hh.js +67 -0
  550. package/dist/web/_app/immutable/chunks/Buih1pxI.js +1 -0
  551. package/dist/web/_app/immutable/chunks/BwwLJVvR.js +1 -0
  552. package/dist/web/_app/immutable/chunks/C0RpyyYZ.js +7 -0
  553. package/dist/web/_app/immutable/chunks/C2l-EXsT2.js +1 -0
  554. package/dist/web/_app/immutable/chunks/C35TIzaB.js +1 -0
  555. package/dist/web/_app/immutable/chunks/C3OdK8z_2.js +1 -0
  556. package/dist/web/_app/immutable/chunks/C6Nx0jpM.js +1 -0
  557. package/dist/web/_app/immutable/chunks/CA7O0J_u2.js +1 -0
  558. package/dist/web/_app/immutable/chunks/CAwjrHdk.js +23 -0
  559. package/dist/web/_app/immutable/chunks/CCLR-AJL2.js +185 -0
  560. package/dist/web/_app/immutable/chunks/CD0X7XPW.js +6 -0
  561. package/dist/web/_app/immutable/chunks/CDTjuBSm2.js +1 -0
  562. package/dist/web/_app/immutable/chunks/CSUrYOis.js +1 -0
  563. package/dist/web/_app/immutable/chunks/CUPSJObs.js +1 -0
  564. package/dist/web/_app/immutable/chunks/CUoGvuxK2.js +2 -0
  565. package/dist/web/_app/immutable/chunks/CWh8aehb.js +1 -0
  566. package/dist/web/_app/immutable/chunks/CY4XVBP0.js +1 -0
  567. package/dist/web/_app/immutable/chunks/CYTTTma0.js +3 -0
  568. package/dist/web/_app/immutable/chunks/CaoriuNq.js +1 -0
  569. package/dist/web/_app/immutable/chunks/CcsSt9AW2.js +1 -0
  570. package/dist/web/_app/immutable/chunks/Cd4VfAZC.js +2 -0
  571. package/dist/web/_app/immutable/chunks/CePZ1985.js +1 -0
  572. package/dist/web/_app/immutable/chunks/Cei8CKT4.js +1 -0
  573. package/dist/web/_app/immutable/chunks/CheXrbDk.js +1 -0
  574. package/dist/web/_app/immutable/chunks/CkLfUXwy.js +1 -0
  575. package/dist/web/_app/immutable/chunks/Cl-W0JYt.js +2 -0
  576. package/dist/web/_app/immutable/chunks/Cna7tYp-.js +1 -0
  577. package/dist/web/_app/immutable/chunks/Czwe4sGU2.js +3 -0
  578. package/dist/web/_app/immutable/chunks/D41CbXmM.js +1 -0
  579. package/dist/web/_app/immutable/chunks/D83_Ss42.js +1 -0
  580. package/dist/web/_app/immutable/chunks/D9NgbGbO2.js +9 -0
  581. package/dist/web/_app/immutable/chunks/DA-BuZei.js +2 -0
  582. package/dist/web/_app/immutable/chunks/DAXW5iLp.js +1 -0
  583. package/dist/web/_app/immutable/chunks/DCNJWlho2.js +1 -0
  584. package/dist/web/_app/immutable/chunks/DCtgLRl52.js +1 -0
  585. package/dist/web/_app/immutable/chunks/DH0epITQ2.js +1 -0
  586. package/dist/web/_app/immutable/chunks/DIb5rAPU2.js +1 -0
  587. package/dist/web/_app/immutable/chunks/DOmH4G9o2.js +14 -0
  588. package/dist/web/_app/immutable/chunks/DQMWa2t7.js +1 -0
  589. package/dist/web/_app/immutable/chunks/DQ_Xokap2.js +1 -0
  590. package/dist/web/_app/immutable/chunks/DR1K6PIm.js +1 -0
  591. package/dist/web/_app/immutable/chunks/DTCHhxD5.js +1 -0
  592. package/dist/web/_app/immutable/chunks/DU7XA-cL2.js +1 -0
  593. package/dist/web/_app/immutable/chunks/DVcy5Pp82.js +1 -0
  594. package/dist/web/_app/immutable/chunks/DWygwzcO2.js +1 -0
  595. package/dist/web/_app/immutable/chunks/DYXDRmoo2.js +1 -0
  596. package/dist/web/_app/immutable/chunks/DZEmjBTb.js +5 -0
  597. package/dist/web/_app/immutable/chunks/DaoOQFPb.js +1 -0
  598. package/dist/web/_app/immutable/chunks/DdfvtDOY.js +1 -0
  599. package/dist/web/_app/immutable/chunks/DevZTY1l.js +1 -0
  600. package/dist/web/_app/immutable/chunks/DiMQob8p.js +1 -0
  601. package/dist/web/_app/immutable/chunks/DiQJ9DLy.js +1 -0
  602. package/dist/web/_app/immutable/chunks/Dj5oP_ik.js +2 -0
  603. package/dist/web/_app/immutable/chunks/DjTJ4D_0.js +3 -0
  604. package/dist/web/_app/immutable/chunks/Dk4TeNwu.js +1 -0
  605. package/dist/web/_app/immutable/chunks/Dng3OcRd2.js +1 -0
  606. package/dist/web/_app/immutable/chunks/Do1OCNEG.js +1 -0
  607. package/dist/web/_app/immutable/chunks/Do6qOOng.js +1 -0
  608. package/dist/web/_app/immutable/chunks/DoQwt-f9.js +1 -0
  609. package/dist/web/_app/immutable/chunks/Dqg3k9HI2.js +1 -0
  610. package/dist/web/_app/immutable/chunks/DsnqOT222.js +1 -0
  611. package/dist/web/_app/immutable/chunks/DvJSCDuZ2.js +1 -0
  612. package/dist/web/_app/immutable/chunks/DvPuaTCl.js +5 -0
  613. package/dist/web/_app/immutable/chunks/DvYQu1SV.js +1 -0
  614. package/dist/web/_app/immutable/chunks/HdjeJPly2.js +1 -0
  615. package/dist/web/_app/immutable/chunks/JDw4tOUY.js +1 -0
  616. package/dist/web/_app/immutable/chunks/KBbDg4lS2.js +1 -0
  617. package/dist/web/_app/immutable/chunks/KQXQLJf32.js +1 -0
  618. package/dist/web/_app/immutable/chunks/LGnNalpn2.js +2 -0
  619. package/dist/web/_app/immutable/chunks/SH5Fg0Xu.js +1 -0
  620. package/dist/web/_app/immutable/chunks/Shyla9c12.js +2 -0
  621. package/dist/web/_app/immutable/chunks/VQbAelHN.js +1 -0
  622. package/dist/web/_app/immutable/chunks/apNT0aug2.js +1 -0
  623. package/dist/web/_app/immutable/chunks/e0ySQvQ6.js +1 -0
  624. package/dist/web/_app/immutable/chunks/eNB_sIHC2.js +1 -0
  625. package/dist/web/_app/immutable/chunks/g09ZrevW2.js +1 -0
  626. package/dist/web/_app/immutable/chunks/h4WWBpcD2.js +2692 -0
  627. package/dist/web/_app/immutable/chunks/kLub81jO.js +1 -0
  628. package/dist/web/_app/immutable/chunks/kW0z_eo62.js +1 -0
  629. package/dist/web/_app/immutable/chunks/oBQOivfH.js +1 -0
  630. package/dist/web/_app/immutable/chunks/ss8hcwTT.js +1 -0
  631. package/dist/web/_app/immutable/chunks/sub7ikQV.js +2 -0
  632. package/dist/web/_app/immutable/chunks/uuFM-ygL.js +1 -0
  633. package/dist/web/_app/immutable/chunks/v7me-ydg.js +2 -0
  634. package/dist/web/_app/immutable/chunks/xihTtKlq.js +1 -0
  635. package/dist/web/_app/immutable/chunks/yWi6xIp8.js +1 -0
  636. package/dist/web/_app/immutable/chunks/zl16E4yc2.js +1 -0
  637. package/dist/web/_app/immutable/entry/app.Bgniax9U.js +2 -0
  638. package/dist/web/_app/immutable/entry/start.DeD3x0AC.js +1 -0
  639. package/dist/web/_app/immutable/nodes/0.D7f7eDDY.js +2 -0
  640. package/dist/web/_app/immutable/nodes/1.nDAGsQWA.js +1 -0
  641. package/dist/web/_app/immutable/nodes/10.DFbhcPKT.js +1 -0
  642. package/dist/web/_app/immutable/nodes/11.CDErrkBt.js +1 -0
  643. package/dist/web/_app/immutable/nodes/12.QmphOXE2.js +1 -0
  644. package/dist/web/_app/immutable/nodes/13.Bq5rDhPs.js +1 -0
  645. package/dist/web/_app/immutable/nodes/14.BlcHqgr6.js +1 -0
  646. package/dist/web/_app/immutable/nodes/15.COK_-D-x.js +1 -0
  647. package/dist/web/_app/immutable/nodes/2.DOsCYNHa.js +109 -0
  648. package/dist/web/_app/immutable/nodes/3.BgE1sIyr.js +2 -0
  649. package/dist/web/_app/immutable/nodes/4.DvgaHeI4.js +11 -0
  650. package/dist/web/_app/immutable/nodes/5.CrjeBZES.js +1 -0
  651. package/dist/web/_app/immutable/nodes/6.DoHxsiEE.js +1 -0
  652. package/dist/web/_app/immutable/nodes/7.04fnxKIo.js +1 -0
  653. package/dist/web/_app/immutable/nodes/8.D35_cY6C.js +1 -0
  654. package/dist/web/_app/immutable/nodes/9.BRionwW6.js +1 -0
  655. package/dist/web/_app/version.json +1 -1
  656. package/dist/web/favicon-16.png +0 -0
  657. package/dist/web/favicon-180.png +0 -0
  658. package/dist/web/favicon-32.png +0 -0
  659. package/dist/web/favicon-48.png +0 -0
  660. package/dist/web/favicon-512.png +0 -0
  661. package/dist/web/favicon.ico +0 -0
  662. package/dist/web/favicon.svg +8 -0
  663. package/dist/web/index.html +56 -19
  664. package/dist/web/studiograph-logomark.svg +29 -0
  665. package/package.json +34 -14
  666. package/dist/agent/skills/enrich-entities.md +0 -136
  667. package/dist/agent/skills/obsidian-source-setup.md +0 -246
  668. package/dist/agent/skills/skill-loader.d.ts +0 -48
  669. package/dist/agent/skills/skill-loader.js +0 -166
  670. package/dist/agent/skills/skill-loader.js.map +0 -1
  671. package/dist/agent/skills/sync-configuration.md +0 -119
  672. package/dist/agent/skills/sync-setup.md +0 -82
  673. package/dist/agent/tools/sync-tools.d.ts +0 -35
  674. package/dist/agent/tools/sync-tools.js +0 -992
  675. package/dist/agent/tools/sync-tools.js.map +0 -1
  676. package/dist/auth/github.d.ts +0 -56
  677. package/dist/auth/github.js +0 -169
  678. package/dist/auth/github.js.map +0 -1
  679. package/dist/cli/commands/access.d.ts +0 -11
  680. package/dist/cli/commands/access.js +0 -156
  681. package/dist/cli/commands/access.js.map +0 -1
  682. package/dist/cli/commands/app.d.ts +0 -7
  683. package/dist/cli/commands/app.js +0 -268
  684. package/dist/cli/commands/app.js.map +0 -1
  685. package/dist/cli/commands/auth.d.ts +0 -10
  686. package/dist/cli/commands/auth.js +0 -79
  687. package/dist/cli/commands/auth.js.map +0 -1
  688. package/dist/cli/commands/clear.d.ts +0 -5
  689. package/dist/cli/commands/clear.js +0 -36
  690. package/dist/cli/commands/clear.js.map +0 -1
  691. package/dist/cli/commands/collection.d.ts +0 -10
  692. package/dist/cli/commands/collection.js +0 -187
  693. package/dist/cli/commands/collection.js.map +0 -1
  694. package/dist/cli/commands/enrich.d.ts +0 -11
  695. package/dist/cli/commands/enrich.js +0 -135
  696. package/dist/cli/commands/enrich.js.map +0 -1
  697. package/dist/cli/commands/graphrag.d.ts +0 -12
  698. package/dist/cli/commands/graphrag.js +0 -122
  699. package/dist/cli/commands/graphrag.js.map +0 -1
  700. package/dist/cli/commands/join.d.ts +0 -9
  701. package/dist/cli/commands/join.js +0 -255
  702. package/dist/cli/commands/join.js.map +0 -1
  703. package/dist/cli/commands/members.d.ts +0 -11
  704. package/dist/cli/commands/members.js +0 -230
  705. package/dist/cli/commands/members.js.map +0 -1
  706. package/dist/cli/commands/org.d.ts +0 -10
  707. package/dist/cli/commands/org.js +0 -132
  708. package/dist/cli/commands/org.js.map +0 -1
  709. package/dist/cli/commands/provision.d.ts +0 -8
  710. package/dist/cli/commands/provision.js +0 -116
  711. package/dist/cli/commands/provision.js.map +0 -1
  712. package/dist/cli/commands/resolve.d.ts +0 -8
  713. package/dist/cli/commands/resolve.js +0 -85
  714. package/dist/cli/commands/resolve.js.map +0 -1
  715. package/dist/cli/commands/review.d.ts +0 -19
  716. package/dist/cli/commands/review.js +0 -128
  717. package/dist/cli/commands/review.js.map +0 -1
  718. package/dist/cli/commands/source.d.ts +0 -16
  719. package/dist/cli/commands/source.js +0 -159
  720. package/dist/cli/commands/source.js.map +0 -1
  721. package/dist/cli/commands/start.d.ts +0 -7
  722. package/dist/cli/commands/start.js +0 -589
  723. package/dist/cli/commands/start.js.map +0 -1
  724. package/dist/cli/commands/sync-collection.d.ts +0 -14
  725. package/dist/cli/commands/sync-collection.js +0 -355
  726. package/dist/cli/commands/sync-collection.js.map +0 -1
  727. package/dist/cli/commands/sync-entities.d.ts +0 -13
  728. package/dist/cli/commands/sync-entities.js +0 -242
  729. package/dist/cli/commands/sync-entities.js.map +0 -1
  730. package/dist/cli/commands/team.d.ts +0 -12
  731. package/dist/cli/commands/team.js +0 -185
  732. package/dist/cli/commands/team.js.map +0 -1
  733. package/dist/cli/commands/update.d.ts +0 -8
  734. package/dist/cli/commands/update.js +0 -155
  735. package/dist/cli/commands/update.js.map +0 -1
  736. package/dist/cli/commands/user.d.ts +0 -7
  737. package/dist/cli/commands/user.js +0 -153
  738. package/dist/cli/commands/user.js.map +0 -1
  739. package/dist/cli/scaffolding.d.ts +0 -12
  740. package/dist/cli/scaffolding.js +0 -397
  741. package/dist/cli/scaffolding.js.map +0 -1
  742. package/dist/cli/sync-review-interactive.d.ts +0 -31
  743. package/dist/cli/sync-review-interactive.js +0 -393
  744. package/dist/cli/sync-review-interactive.js.map +0 -1
  745. package/dist/core/migration-runner.d.ts +0 -42
  746. package/dist/core/migration-runner.js +0 -232
  747. package/dist/core/migration-runner.js.map +0 -1
  748. package/dist/core/migration-types.d.ts +0 -101
  749. package/dist/core/migration-types.js +0 -21
  750. package/dist/core/migration-types.js.map +0 -1
  751. package/dist/core/migrations/20260219-formalize-memory-location.d.ts +0 -2
  752. package/dist/core/migrations/20260219-formalize-memory-location.js +0 -35
  753. package/dist/core/migrations/20260219-formalize-memory-location.js.map +0 -1
  754. package/dist/core/migrations/20260220-add-workspace-metadata.d.ts +0 -12
  755. package/dist/core/migrations/20260220-add-workspace-metadata.js +0 -65
  756. package/dist/core/migrations/20260220-add-workspace-metadata.js.map +0 -1
  757. package/dist/core/migrations/20260220-add-workspace-readme.d.ts +0 -11
  758. package/dist/core/migrations/20260220-add-workspace-readme.js +0 -82
  759. package/dist/core/migrations/20260220-add-workspace-readme.js.map +0 -1
  760. package/dist/core/migrations/20260220-migrate-yaml-to-json.d.ts +0 -9
  761. package/dist/core/migrations/20260220-migrate-yaml-to-json.js +0 -64
  762. package/dist/core/migrations/20260220-migrate-yaml-to-json.js.map +0 -1
  763. package/dist/core/migrations/index.d.ts +0 -11
  764. package/dist/core/migrations/index.js +0 -23
  765. package/dist/core/migrations/index.js.map +0 -1
  766. package/dist/integrations/asana.d.ts +0 -26
  767. package/dist/integrations/asana.js +0 -78
  768. package/dist/integrations/asana.js.map +0 -1
  769. package/dist/integrations/figma-local.d.ts +0 -16
  770. package/dist/integrations/figma-local.js +0 -10
  771. package/dist/integrations/figma-local.js.map +0 -1
  772. package/dist/integrations/figma.d.ts +0 -17
  773. package/dist/integrations/figma.js +0 -17
  774. package/dist/integrations/figma.js.map +0 -1
  775. package/dist/integrations/granola.d.ts +0 -24
  776. package/dist/integrations/granola.js +0 -60
  777. package/dist/integrations/granola.js.map +0 -1
  778. package/dist/integrations/linear.d.ts +0 -14
  779. package/dist/integrations/linear.js +0 -80
  780. package/dist/integrations/linear.js.map +0 -1
  781. package/dist/integrations/paper-local.d.ts +0 -14
  782. package/dist/integrations/paper-local.js +0 -10
  783. package/dist/integrations/paper-local.js.map +0 -1
  784. package/dist/integrations/paper.d.ts +0 -2
  785. package/dist/integrations/paper.js +0 -10
  786. package/dist/integrations/paper.js.map +0 -1
  787. package/dist/integrations/pipedrive.d.ts +0 -26
  788. package/dist/integrations/pipedrive.js +0 -97
  789. package/dist/integrations/pipedrive.js.map +0 -1
  790. package/dist/integrations/registry.d.ts +0 -15
  791. package/dist/integrations/registry.js +0 -27
  792. package/dist/integrations/registry.js.map +0 -1
  793. package/dist/integrations/types.d.ts +0 -38
  794. package/dist/integrations/types.js +0 -9
  795. package/dist/integrations/types.js.map +0 -1
  796. package/dist/lib/lib/utils.d.ts +0 -2
  797. package/dist/lib/lib/utils.js +0 -6
  798. package/dist/lib/lib/utils.js.map +0 -1
  799. package/dist/mcp/connectors/asana.d.ts +0 -2
  800. package/dist/mcp/connectors/asana.js +0 -20
  801. package/dist/mcp/connectors/asana.js.map +0 -1
  802. package/dist/mcp/connectors/definitions.d.ts +0 -45
  803. package/dist/mcp/connectors/definitions.js +0 -32
  804. package/dist/mcp/connectors/definitions.js.map +0 -1
  805. package/dist/mcp/connectors/figma.d.ts +0 -5
  806. package/dist/mcp/connectors/figma.js +0 -21
  807. package/dist/mcp/connectors/figma.js.map +0 -1
  808. package/dist/mcp/connectors/gdrive.d.ts +0 -2
  809. package/dist/mcp/connectors/gdrive.js +0 -20
  810. package/dist/mcp/connectors/gdrive.js.map +0 -1
  811. package/dist/mcp/connectors/granola.d.ts +0 -2
  812. package/dist/mcp/connectors/granola.js +0 -12
  813. package/dist/mcp/connectors/granola.js.map +0 -1
  814. package/dist/mcp/connectors/linear.d.ts +0 -2
  815. package/dist/mcp/connectors/linear.js +0 -19
  816. package/dist/mcp/connectors/linear.js.map +0 -1
  817. package/dist/mcp/connectors/obsidian.d.ts +0 -2
  818. package/dist/mcp/connectors/obsidian.js +0 -19
  819. package/dist/mcp/connectors/obsidian.js.map +0 -1
  820. package/dist/mcp/connectors/pipedrive.d.ts +0 -2
  821. package/dist/mcp/connectors/pipedrive.js +0 -20
  822. package/dist/mcp/connectors/pipedrive.js.map +0 -1
  823. package/dist/mcp/connectors/slack.d.ts +0 -2
  824. package/dist/mcp/connectors/slack.js +0 -21
  825. package/dist/mcp/connectors/slack.js.map +0 -1
  826. package/dist/mcp/server-oauth-provider.d.ts +0 -56
  827. package/dist/mcp/server-oauth-provider.js +0 -142
  828. package/dist/mcp/server-oauth-provider.js.map +0 -1
  829. package/dist/server/chrome/chrome.css +0 -691
  830. package/dist/server/chrome/chrome.js +0 -374
  831. package/dist/server/collab-authority.d.ts +0 -70
  832. package/dist/server/collab-authority.js +0 -218
  833. package/dist/server/collab-authority.js.map +0 -1
  834. package/dist/server/collab.d.ts +0 -29
  835. package/dist/server/collab.js +0 -195
  836. package/dist/server/collab.js.map +0 -1
  837. package/dist/server/commit-scheduler.d.ts +0 -39
  838. package/dist/server/commit-scheduler.js +0 -113
  839. package/dist/server/commit-scheduler.js.map +0 -1
  840. package/dist/server/plugin-loader.d.ts +0 -53
  841. package/dist/server/plugin-loader.js +0 -155
  842. package/dist/server/plugin-loader.js.map +0 -1
  843. package/dist/server/routes/collab.d.ts +0 -6
  844. package/dist/server/routes/collab.js +0 -10
  845. package/dist/server/routes/collab.js.map +0 -1
  846. package/dist/server/routes/git-api.d.ts +0 -9
  847. package/dist/server/routes/git-api.js +0 -82
  848. package/dist/server/routes/git-api.js.map +0 -1
  849. package/dist/server/routes/meeting-ingest-api.d.ts +0 -15
  850. package/dist/server/routes/meeting-ingest-api.js +0 -323
  851. package/dist/server/routes/meeting-ingest-api.js.map +0 -1
  852. package/dist/server/routes/sync-api.d.ts +0 -26
  853. package/dist/server/routes/sync-api.js +0 -814
  854. package/dist/server/routes/sync-api.js.map +0 -1
  855. package/dist/server/routes/webhook.d.ts +0 -14
  856. package/dist/server/routes/webhook.js +0 -102
  857. package/dist/server/routes/webhook.js.map +0 -1
  858. package/dist/services/github-provisioner.d.ts +0 -36
  859. package/dist/services/github-provisioner.js +0 -126
  860. package/dist/services/github-provisioner.js.map +0 -1
  861. package/dist/services/github-service.d.ts +0 -99
  862. package/dist/services/github-service.js +0 -310
  863. package/dist/services/github-service.js.map +0 -1
  864. package/dist/services/insights.d.ts +0 -38
  865. package/dist/services/insights.js +0 -246
  866. package/dist/services/insights.js.map +0 -1
  867. package/dist/services/sync/collection-sync.d.ts +0 -60
  868. package/dist/services/sync/collection-sync.js +0 -509
  869. package/dist/services/sync/collection-sync.js.map +0 -1
  870. package/dist/services/sync/commit.d.ts +0 -60
  871. package/dist/services/sync/commit.js +0 -354
  872. package/dist/services/sync/commit.js.map +0 -1
  873. package/dist/services/sync/context-index.d.ts +0 -69
  874. package/dist/services/sync/context-index.js +0 -280
  875. package/dist/services/sync/context-index.js.map +0 -1
  876. package/dist/services/sync/data-fetcher.d.ts +0 -31
  877. package/dist/services/sync/data-fetcher.js +0 -12
  878. package/dist/services/sync/data-fetcher.js.map +0 -1
  879. package/dist/services/sync/derive.d.ts +0 -34
  880. package/dist/services/sync/derive.js +0 -164
  881. package/dist/services/sync/derive.js.map +0 -1
  882. package/dist/services/sync/enrichment-state.d.ts +0 -31
  883. package/dist/services/sync/enrichment-state.js +0 -63
  884. package/dist/services/sync/enrichment-state.js.map +0 -1
  885. package/dist/services/sync/enrichment.d.ts +0 -25
  886. package/dist/services/sync/enrichment.js +0 -121
  887. package/dist/services/sync/enrichment.js.map +0 -1
  888. package/dist/services/sync/entity-refresh.d.ts +0 -30
  889. package/dist/services/sync/entity-refresh.js +0 -275
  890. package/dist/services/sync/entity-refresh.js.map +0 -1
  891. package/dist/services/sync/frontmatter-extractor.d.ts +0 -40
  892. package/dist/services/sync/frontmatter-extractor.js +0 -279
  893. package/dist/services/sync/frontmatter-extractor.js.map +0 -1
  894. package/dist/services/sync/graph-match-state.d.ts +0 -33
  895. package/dist/services/sync/graph-match-state.js +0 -61
  896. package/dist/services/sync/graph-match-state.js.map +0 -1
  897. package/dist/services/sync/graph-match.d.ts +0 -53
  898. package/dist/services/sync/graph-match.js +0 -316
  899. package/dist/services/sync/graph-match.js.map +0 -1
  900. package/dist/services/sync/graphrag-client.d.ts +0 -43
  901. package/dist/services/sync/graphrag-client.js +0 -94
  902. package/dist/services/sync/graphrag-client.js.map +0 -1
  903. package/dist/services/sync/graphrag-config.d.ts +0 -16
  904. package/dist/services/sync/graphrag-config.js +0 -39
  905. package/dist/services/sync/graphrag-config.js.map +0 -1
  906. package/dist/services/sync/graphrag-context.d.ts +0 -14
  907. package/dist/services/sync/graphrag-context.js +0 -109
  908. package/dist/services/sync/graphrag-context.js.map +0 -1
  909. package/dist/services/sync/graphrag-indexer.d.ts +0 -30
  910. package/dist/services/sync/graphrag-indexer.js +0 -358
  911. package/dist/services/sync/graphrag-indexer.js.map +0 -1
  912. package/dist/services/sync/llm.d.ts +0 -32
  913. package/dist/services/sync/llm.js +0 -115
  914. package/dist/services/sync/llm.js.map +0 -1
  915. package/dist/services/sync/mcp-client.d.ts +0 -71
  916. package/dist/services/sync/mcp-client.js +0 -299
  917. package/dist/services/sync/mcp-client.js.map +0 -1
  918. package/dist/services/sync/model-factory.d.ts +0 -13
  919. package/dist/services/sync/model-factory.js +0 -38
  920. package/dist/services/sync/model-factory.js.map +0 -1
  921. package/dist/services/sync/name-quality.d.ts +0 -31
  922. package/dist/services/sync/name-quality.js +0 -60
  923. package/dist/services/sync/name-quality.js.map +0 -1
  924. package/dist/services/sync/output-schemas.d.ts +0 -92
  925. package/dist/services/sync/output-schemas.js +0 -43
  926. package/dist/services/sync/output-schemas.js.map +0 -1
  927. package/dist/services/sync/prompts.d.ts +0 -19
  928. package/dist/services/sync/prompts.js +0 -128
  929. package/dist/services/sync/prompts.js.map +0 -1
  930. package/dist/services/sync/reconciler.d.ts +0 -48
  931. package/dist/services/sync/reconciler.js +0 -294
  932. package/dist/services/sync/reconciler.js.map +0 -1
  933. package/dist/services/sync/rest-client.d.ts +0 -40
  934. package/dist/services/sync/rest-client.js +0 -100
  935. package/dist/services/sync/rest-client.js.map +0 -1
  936. package/dist/services/sync/source-config.d.ts +0 -67
  937. package/dist/services/sync/source-config.js +0 -304
  938. package/dist/services/sync/source-config.js.map +0 -1
  939. package/dist/services/sync/source-definitions/asana.d.ts +0 -14
  940. package/dist/services/sync/source-definitions/asana.js +0 -42
  941. package/dist/services/sync/source-definitions/asana.js.map +0 -1
  942. package/dist/services/sync/source-definitions/definitions.d.ts +0 -8
  943. package/dist/services/sync/source-definitions/definitions.js +0 -8
  944. package/dist/services/sync/source-definitions/definitions.js.map +0 -1
  945. package/dist/services/sync/source-definitions/gdrive.d.ts +0 -16
  946. package/dist/services/sync/source-definitions/gdrive.js +0 -68
  947. package/dist/services/sync/source-definitions/gdrive.js.map +0 -1
  948. package/dist/services/sync/source-definitions/granola.d.ts +0 -2
  949. package/dist/services/sync/source-definitions/granola.js +0 -21
  950. package/dist/services/sync/source-definitions/granola.js.map +0 -1
  951. package/dist/services/sync/source-definitions/linear.d.ts +0 -2
  952. package/dist/services/sync/source-definitions/linear.js +0 -62
  953. package/dist/services/sync/source-definitions/linear.js.map +0 -1
  954. package/dist/services/sync/source-definitions/obsidian.d.ts +0 -2
  955. package/dist/services/sync/source-definitions/obsidian.js +0 -55
  956. package/dist/services/sync/source-definitions/obsidian.js.map +0 -1
  957. package/dist/services/sync/source-definitions/pipedrive.d.ts +0 -2
  958. package/dist/services/sync/source-definitions/pipedrive.js +0 -43
  959. package/dist/services/sync/source-definitions/pipedrive.js.map +0 -1
  960. package/dist/services/sync/staging.d.ts +0 -53
  961. package/dist/services/sync/staging.js +0 -130
  962. package/dist/services/sync/staging.js.map +0 -1
  963. package/dist/services/sync/structured-extractor.d.ts +0 -57
  964. package/dist/services/sync/structured-extractor.js +0 -584
  965. package/dist/services/sync/structured-extractor.js.map +0 -1
  966. package/dist/services/sync/sync-runner.d.ts +0 -32
  967. package/dist/services/sync/sync-runner.js +0 -195
  968. package/dist/services/sync/sync-runner.js.map +0 -1
  969. package/dist/services/sync/sync-state.d.ts +0 -43
  970. package/dist/services/sync/sync-state.js +0 -154
  971. package/dist/services/sync/sync-state.js.map +0 -1
  972. package/dist/services/sync/types.d.ts +0 -381
  973. package/dist/services/sync/types.js +0 -8
  974. package/dist/services/sync/types.js.map +0 -1
  975. package/dist/services/sync/unstructured-extractor.d.ts +0 -27
  976. package/dist/services/sync/unstructured-extractor.js +0 -185
  977. package/dist/services/sync/unstructured-extractor.js.map +0 -1
  978. package/dist/utils/merge-resolver.d.ts +0 -59
  979. package/dist/utils/merge-resolver.js +0 -303
  980. package/dist/utils/merge-resolver.js.map +0 -1
  981. package/dist/utils/workspace-config.d.ts +0 -8
  982. package/dist/utils/workspace-config.js +0 -22
  983. package/dist/utils/workspace-config.js.map +0 -1
  984. package/dist/web/_app/immutable/assets/0.DdizXOKi.css +0 -1
  985. package/dist/web/_app/immutable/assets/10.BUrHkYry.css +0 -1
  986. package/dist/web/_app/immutable/assets/2.n7-yW_Fs.css +0 -1
  987. package/dist/web/_app/immutable/assets/3.BtaZagnv.css +0 -1
  988. package/dist/web/_app/immutable/assets/4.DT7X0x5S.css +0 -1
  989. package/dist/web/_app/immutable/assets/5.DFeGxLYf.css +0 -1
  990. package/dist/web/_app/immutable/assets/6.CquhUpOu.css +0 -1
  991. package/dist/web/_app/immutable/assets/7.CjbDRbuG.css +0 -1
  992. package/dist/web/_app/immutable/assets/8.S1QdUGNM.css +0 -1
  993. package/dist/web/_app/immutable/assets/9.CT4xL4K3.css +0 -1
  994. package/dist/web/_app/immutable/assets/Copy.FS8bdfxr.css +0 -1
  995. package/dist/web/_app/immutable/assets/Toaster.rN8r_Hzv.css +0 -1
  996. package/dist/web/_app/immutable/assets/ViewToolbar.D-QW2oKe.css +0 -1
  997. package/dist/web/_app/immutable/assets/index.D6tMDJWk.css +0 -1
  998. package/dist/web/_app/immutable/chunks/37NdyH6G.js +0 -32
  999. package/dist/web/_app/immutable/chunks/4Hhzb6pv.js +0 -1
  1000. package/dist/web/_app/immutable/chunks/72bZS3G9.js +0 -1
  1001. package/dist/web/_app/immutable/chunks/7S2LGqoP.js +0 -2
  1002. package/dist/web/_app/immutable/chunks/B-7hHz7B.js +0 -1
  1003. package/dist/web/_app/immutable/chunks/B340SUKR.js +0 -1
  1004. package/dist/web/_app/immutable/chunks/BB_5th5W.js +0 -3383
  1005. package/dist/web/_app/immutable/chunks/BDoWDZaG.js +0 -1
  1006. package/dist/web/_app/immutable/chunks/BFyl1ZHO.js +0 -1
  1007. package/dist/web/_app/immutable/chunks/BS2rFAVq.js +0 -1
  1008. package/dist/web/_app/immutable/chunks/BSsDC_p4.js +0 -1
  1009. package/dist/web/_app/immutable/chunks/BTX2Jr8_.js +0 -1
  1010. package/dist/web/_app/immutable/chunks/BWNY8zw6.js +0 -2
  1011. package/dist/web/_app/immutable/chunks/BdPUVvAi.js +0 -1
  1012. package/dist/web/_app/immutable/chunks/BmsJVLyy.js +0 -1
  1013. package/dist/web/_app/immutable/chunks/BoAosqzE.js +0 -1
  1014. package/dist/web/_app/immutable/chunks/Bs-tL5OR.js +0 -1
  1015. package/dist/web/_app/immutable/chunks/Bsacq2UX.js +0 -1
  1016. package/dist/web/_app/immutable/chunks/BuewkNdS.js +0 -4
  1017. package/dist/web/_app/immutable/chunks/ByunV8un.js +0 -1
  1018. package/dist/web/_app/immutable/chunks/C7VoTosa.js +0 -2
  1019. package/dist/web/_app/immutable/chunks/CDV5Q7RN.js +0 -1
  1020. package/dist/web/_app/immutable/chunks/CJ8__CWt.js +0 -1
  1021. package/dist/web/_app/immutable/chunks/CJUKmosC.js +0 -5
  1022. package/dist/web/_app/immutable/chunks/CSVbGg_b.js +0 -5
  1023. package/dist/web/_app/immutable/chunks/CT6oIU-C.js +0 -1
  1024. package/dist/web/_app/immutable/chunks/CTRxNfZk.js +0 -1
  1025. package/dist/web/_app/immutable/chunks/CWQRQXxy.js +0 -1
  1026. package/dist/web/_app/immutable/chunks/CXH6iFbA.js +0 -1
  1027. package/dist/web/_app/immutable/chunks/CX_61fY8.js +0 -5
  1028. package/dist/web/_app/immutable/chunks/CYrVHOHA.js +0 -1
  1029. package/dist/web/_app/immutable/chunks/CdeYcEuU.js +0 -1
  1030. package/dist/web/_app/immutable/chunks/CmCtpZ1Y.js +0 -1
  1031. package/dist/web/_app/immutable/chunks/CqkleIqs.js +0 -1
  1032. package/dist/web/_app/immutable/chunks/CrdV0ttd.js +0 -1
  1033. package/dist/web/_app/immutable/chunks/CscoF-YL.js +0 -18
  1034. package/dist/web/_app/immutable/chunks/Cx4YdFMk.js +0 -1
  1035. package/dist/web/_app/immutable/chunks/D7ZqAKi9.js +0 -3
  1036. package/dist/web/_app/immutable/chunks/DGbA7IXh.js +0 -2
  1037. package/dist/web/_app/immutable/chunks/DbbB6Up5.js +0 -1
  1038. package/dist/web/_app/immutable/chunks/DnL9f0lc.js +0 -7
  1039. package/dist/web/_app/immutable/chunks/DtM5cEDu.js +0 -1
  1040. package/dist/web/_app/immutable/chunks/Eqahi7_S.js +0 -2
  1041. package/dist/web/_app/immutable/chunks/FFlLQIiS.js +0 -1
  1042. package/dist/web/_app/immutable/chunks/O9Eb9k00.js +0 -1
  1043. package/dist/web/_app/immutable/chunks/PPVm8Dsz.js +0 -1
  1044. package/dist/web/_app/immutable/chunks/QF8MAmnc.js +0 -1
  1045. package/dist/web/_app/immutable/chunks/UjzxCpxn.js +0 -1
  1046. package/dist/web/_app/immutable/chunks/WSUKABI_.js +0 -1
  1047. package/dist/web/_app/immutable/chunks/Y90OgS-9.js +0 -1
  1048. package/dist/web/_app/immutable/chunks/cLyZlkXv.js +0 -1
  1049. package/dist/web/_app/immutable/chunks/iDtAARVW.js +0 -2
  1050. package/dist/web/_app/immutable/chunks/oC_W7W7p.js +0 -1
  1051. package/dist/web/_app/immutable/chunks/rJdWIgh-.js +0 -1
  1052. package/dist/web/_app/immutable/chunks/tvOsokaa.js +0 -1
  1053. package/dist/web/_app/immutable/chunks/uLEXaPwE.js +0 -1
  1054. package/dist/web/_app/immutable/chunks/vSaooFHB.js +0 -1
  1055. package/dist/web/_app/immutable/entry/app.DAR-mtfg.js +0 -2
  1056. package/dist/web/_app/immutable/entry/start.xDnyRaR1.js +0 -1
  1057. package/dist/web/_app/immutable/nodes/0.D0aV-Zro.js +0 -2
  1058. package/dist/web/_app/immutable/nodes/1.C7QoM8qD.js +0 -1
  1059. package/dist/web/_app/immutable/nodes/10.DrDOAjOD.js +0 -1
  1060. package/dist/web/_app/immutable/nodes/2.B0OgNuKW.js +0 -168
  1061. package/dist/web/_app/immutable/nodes/3.BZ4qHGZi.js +0 -1
  1062. package/dist/web/_app/immutable/nodes/4.hm-mxuuj.js +0 -12
  1063. package/dist/web/_app/immutable/nodes/5.Bdbt4fjx.js +0 -4
  1064. package/dist/web/_app/immutable/nodes/6.BXrCI40c.js +0 -2
  1065. package/dist/web/_app/immutable/nodes/7.Chd4i9bm.js +0 -2
  1066. package/dist/web/_app/immutable/nodes/8.B8SF-aNs.js +0 -1
  1067. package/dist/web/_app/immutable/nodes/9.YDeu-RnO.js +0 -1
@@ -1,15 +1,29 @@
1
1
  /**
2
2
  * Entity validation schemas for Studiograph
3
3
  *
4
- * 17 built-in entity types organized into three categories:
5
- * - Identity (4): person, organization, role, practice-area
6
- * - Universal (10): project, meeting, decision, task, document, dataset, reference, note, deliverable, publication
7
- * - Knowledge (3): process, standard, case-study
4
+ * 17 canonical entity types post-redesign:
5
+ * - CRM (4): person, organization, position, deal
6
+ * - PM (4): project, event, task, deliverable
7
+ * - KM authored (6): document, deck, publication, case-study, service, skill
8
+ * - Capture (3): note, reference, dataset
9
+ * - System (1): asset
8
10
  *
9
- * App plugins register additional types at runtime via SchemaRegistry.
10
- * Teams can define custom types via schema_extensions in workspace config.
11
+ * "An object earns first-class entity status only if it earns its own view
12
+ * behavior across the six primary views (List, Gallery, Kanban, Calendar,
13
+ * Timeline, Graph). Objects that are mostly useful because they're attached
14
+ * to something else become categories, fields, or inline blocks — not types."
15
+ *
16
+ * Workspaces can define additional custom types via schema_extensions.
11
17
  */
12
18
  import { z } from 'zod';
19
+ function dateField(role, label, description) {
20
+ return z
21
+ .string()
22
+ .date()
23
+ .optional()
24
+ .describe(description ?? label)
25
+ .meta({ dateRole: role, label });
26
+ }
13
27
  /**
14
28
  * Base entity schema - all entities have these fields
15
29
  */
@@ -22,328 +36,420 @@ export const EntityBaseSchema = z.object({
22
36
  updated_at: z.string().datetime('Invalid datetime format'),
23
37
  created_by: z.string().min(1, 'Created by is required'),
24
38
  updated_by: z.string().min(1, 'Updated by is required'),
25
- date: z.string().optional().describe('Human-friendly date (e.g., meeting date, project start, note taken)'),
39
+ date: dateField('primary', 'Date', "The entity's primary date (YYYY-MM-DD)"),
26
40
  tags: z.array(z.string())
27
41
  .optional()
28
42
  .describe('Tags for categorization'),
29
43
  }).passthrough(); // Allow custom fields beyond the base schema
30
44
  // ══════════════════════════════════════════════════════════════════════════════
31
- // IDENTITY ENTITIES — people, organizations, roles, practice areas
45
+ // CRM — people, organizations, positions, deals
32
46
  // ══════════════════════════════════════════════════════════════════════════════
33
47
  /**
34
- * Person — team members, client contacts, any individual
48
+ * Person — team members, client contacts, any individual.
49
+ *
50
+ * `category` and `status` are split: category is the relationship type
51
+ * (employee/contractor/client/partner) and status is whether that
52
+ * relationship is current or historical. Mirrors organization.
35
53
  */
36
54
  export const PersonSchema = EntityBaseSchema.extend({
37
55
  entity_type: z.literal('person'),
38
56
  name: z.string().min(1, 'Person name is required'),
39
- role: z.string().optional().describe('Role or title'),
40
- status: z.enum(['current', 'former', 'contractor', 'client', 'partner'])
57
+ role: z.string().optional().describe('Free-text title (distinct from `position` entity)'),
58
+ category: z.enum(['employee', 'contractor', 'client', 'partner', 'other'])
41
59
  .optional()
42
- .describe('Relationship status'),
60
+ .describe('Relationship category'),
61
+ status: z.enum(['current', 'former'])
62
+ .optional()
63
+ .describe('Whether the relationship is current or historical'),
43
64
  email: z.string().optional().describe('Email address'),
44
65
  location: z.string().optional().describe('Location'),
45
66
  organization: z.string().optional().describe('Organization wikilink'),
46
- bio: z.string().optional().describe('Biography (markdown)'),
47
- projects: z.array(z.string()).optional().describe('Related project wikilinks'),
48
- reports_to: z.string().optional().describe('Manager or role wikilink'),
49
- department: z.string().optional().describe('Department'),
67
+ // Bridge to the auth.db user account this person represents. Scalar handle
68
+ // string (not a wikilink): users are out-of-graph identities. Workspace-
69
+ // unique — write-path enforcement lives in user-person-bridge.ts. Optional
70
+ // because person entities can exist without a corresponding user
71
+ // (contractors, client contacts, anyone in the org chart who doesn't log
72
+ // in). Empty string is the "cleared" form — graph.create seeds optional
73
+ // string fields to "" on new entities, and unlink writes "" as well, so
74
+ // the regex must accept it explicitly.
75
+ user_handle: z.string()
76
+ // Empty (cleared) OR a kebab-case handle: leading alnum, alnum/hyphen
77
+ // body, alnum tail, no doubled hyphens. Mirrors what auth's
78
+ // slugifyHandle + allocateHandle can actually emit — accepting
79
+ // `foo-` or `foo--bar` here would let a hand-edit drift outside what
80
+ // findUserByHandle can match.
81
+ .regex(/^(|[a-z0-9](?:[a-z0-9]|-(?=[a-z0-9]))*)$/, 'user_handle must match the auth handle format (lowercase, single hyphens between alnums, alnum endpoints)')
82
+ .optional()
83
+ .describe('Auth handle of the user this person represents'),
50
84
  });
51
85
  /**
52
- * Organization — clients, vendors, partners, prospects, industry bodies
53
- * Replaces the former separate client and vendor types.
86
+ * Organization — clients, vendors, partners, prospects, professional
87
+ * associations.
54
88
  */
55
89
  export const OrganizationSchema = EntityBaseSchema.extend({
56
90
  entity_type: z.literal('organization'),
57
91
  name: z.string().min(1, 'Organization name is required'),
58
- category: z.enum(['client', 'vendor', 'partner', 'prospect', 'industry-body', 'other'])
92
+ category: z.enum(['client', 'vendor', 'partner', 'prospect', 'professional-association', 'other'])
59
93
  .optional()
60
94
  .describe('Relationship category'),
61
- status: z.enum(['active', 'inactive', 'prospect', 'former'])
95
+ status: z.enum(['active', 'dormant', 'former'])
62
96
  .default('active')
63
- .describe('Organization status'),
97
+ .describe('Organization status (`dormant` covers clients you have not worked with in a while but might again)'),
64
98
  industry: z.string().optional().describe('Industry sector'),
65
99
  website: z.string().url().optional().describe('Website URL'),
66
- location: z.string().optional().describe('Primary location'),
67
- size: z.enum(['small', 'medium', 'large', 'enterprise'])
68
- .optional()
69
- .describe('Organization size'),
70
- contacts: z.array(z.string()).optional().describe('Contact person wikilinks'),
71
- projects: z.array(z.string()).optional().describe('Related project wikilinks'),
72
- relationship_start: z.string().optional().describe('When the relationship started'),
73
100
  });
74
101
  /**
75
- * Rolerole definitions from the firm's leveling framework
102
+ * Positiona position spec or open job. Renamed from `role` to avoid
103
+ * collision with `person.role` (the free-text title field). Reframes from
104
+ * "the person's seat" to "the spec for a position."
76
105
  */
77
- export const RoleSchema = EntityBaseSchema.extend({
78
- entity_type: z.literal('role'),
79
- name: z.string().min(1, 'Role name is required'),
106
+ export const PositionSchema = EntityBaseSchema.extend({
107
+ entity_type: z.literal('position'),
108
+ name: z.string().min(1, 'Position name is required'),
80
109
  department: z.string().optional().describe('Department'),
81
- level: z.number().optional().describe('Level 1–5 from leveling framework'),
82
110
  category: z.enum(['staff', 'contractor', 'intern'])
83
111
  .optional()
84
112
  .describe('Employment category'),
85
- status: z.enum(['active', 'archived'])
86
- .default('active')
87
- .describe('Role status'),
88
- location: z.string().optional().describe('Location'),
89
- reports_to: z.string().optional().describe('Parent role or person wikilink'),
113
+ status: z.enum(['draft', 'open', 'filled', 'closed'])
114
+ .default('open')
115
+ .describe('Position lifecycle'),
90
116
  });
91
117
  /**
92
- * Practice Area firm capabilities and disciplines
118
+ * Dealpre-project opportunity in the sales pipeline.
93
119
  */
94
- export const PracticeAreaSchema = EntityBaseSchema.extend({
95
- entity_type: z.literal('practice-area'),
96
- name: z.string().min(1, 'Practice area name is required'),
97
- description: z.string().optional().describe('Overview of the discipline'),
98
- capabilities: z.array(z.string()).optional().describe('Specific service offerings'),
99
- related_case_studies: z.array(z.string()).optional().describe('Case study wikilinks'),
100
- related_projects: z.array(z.string()).optional().describe('Related project wikilinks'),
120
+ export const DealSchema = EntityBaseSchema.extend({
121
+ entity_type: z.literal('deal'),
122
+ name: z.string().min(1, 'Deal name is required'),
123
+ client: z.string().optional().describe('Client organization wikilink'),
124
+ contact: z.string().optional().describe('Primary contact person wikilink'),
125
+ stage: z.enum(['qualification', 'scoping', 'proposal', 'negotiation', 'pending-signature', 'won', 'lost'])
126
+ .default('qualification')
127
+ .describe('Pipeline stage'),
128
+ deal_value: z.number().optional().describe('Estimated deal value'),
129
+ start_date: dateField('start', 'Start date', 'When work on the deal began (enables Timeline rendering of duration)'),
130
+ date: dateField('primary', 'Close date', 'Expected close date'),
101
131
  });
102
132
  // ══════════════════════════════════════════════════════════════════════════════
103
- // UNIVERSAL ENTITIES available in any repo
133
+ // PMproject, event, task, deliverable
104
134
  // ══════════════════════════════════════════════════════════════════════════════
105
135
  /**
106
- * Project — a client engagement or internal initiative
136
+ * Project — a client engagement or internal initiative.
137
+ *
138
+ * `services` is a wikilink array to `service` entities the project includes
139
+ * (replaces the previous `practice_area` concept).
107
140
  */
108
141
  export const ProjectSchema = EntityBaseSchema.extend({
109
142
  entity_type: z.literal('project'),
110
143
  name: z.string().min(1, 'Project name is required'),
111
- category: z.string().optional().describe('Project category (e.g., client-project, internal-initiative, event, research)'),
144
+ category: z.enum(['client', 'internal'])
145
+ .optional()
146
+ .describe('Project category'),
147
+ project_type: z.string().optional().describe('Kind of project (e.g., website, research, event, rebrand, prototype)'),
112
148
  client: z.string().optional().describe('Client organization wikilink'),
113
- website_url: z.string().url().optional().describe('Project website URL'),
114
- start_date: z.string().optional().describe('Project start date'),
115
- end_date: z.string().optional().describe('Project end date'),
116
- status: z.enum(['planning', 'scoping', 'active', 'on-hold', 'completed', 'archived'])
149
+ services: z.array(z.string()).optional()
150
+ .describe('Service entities this project includes (wikilinks)'),
151
+ status: z.enum(['planning', 'in-progress', 'paused', 'complete', 'archived'])
117
152
  .optional()
118
153
  .describe('Current project status'),
119
- related_projects: z.array(z.string()).optional().describe('Related project wikilinks'),
120
- related_areas: z.array(z.string()).optional().describe('Practice area wikilinks'),
121
- team: z.array(z.string()).optional().describe('Team member wikilinks'),
122
- deliverables: z.array(z.string()).optional().describe('Deliverable wikilinks'),
123
- deal: z.string().optional().describe('Originating deal wikilink'),
154
+ start_date: dateField('start', 'Start date', 'Project start date'),
155
+ date: dateField('primary', 'End date', 'Project end date'),
124
156
  });
125
157
  /**
126
- * Meeting — any scheduled gathering
158
+ * Event — any scheduled gathering (meeting, call, workshop, review, etc.).
159
+ * `type` discriminates the kind of gathering for grouping/filtering. The
160
+ * default `meeting` preserves semantics for legacy meeting captures.
161
+ *
162
+ * Note: `deadline` is intentionally NOT a `type` value — deadlines are
163
+ * `task` entries with a `date` (the due date). Events are things you attend.
127
164
  */
128
- export const MeetingSchema = EntityBaseSchema.extend({
129
- entity_type: z.literal('meeting'),
130
- name: z.string().min(1, 'Meeting name/subject is required'),
131
- category: z.string().optional().describe('Meeting category (e.g., internal, client, workshop, conference, industry-event)'),
165
+ export const EVENT_TYPES = [
166
+ 'meeting', 'call', 'review', 'workshop', 'presentation', 'conference', 'other',
167
+ ];
168
+ export const EventSchema = EntityBaseSchema.extend({
169
+ entity_type: z.literal('event'),
170
+ name: z.string().min(1, 'Event name/subject is required'),
171
+ type: z.enum(EVENT_TYPES).default('meeting').describe('Kind of event'),
132
172
  attendees: z.array(z.string()).optional().describe('Attendee wikilinks'),
133
- related_projects: z.array(z.string()).optional().describe('Related project wikilinks'),
134
- related_organizations: z.array(z.string()).optional().describe('Related organization wikilinks'),
135
173
  location: z.string().optional().describe('Location or meeting link'),
136
- duration: z.string().optional().describe('Duration (e.g., 30m, 1h)'),
174
+ start_date: dateField('start', 'Start date', 'When a multi-day event begins (omit for single-day events)'),
175
+ date: dateField('primary', 'Date', 'When the event takes place'),
137
176
  });
138
177
  /**
139
- * Decisionstructured decision records (ADR-style)
140
- */
141
- export const DecisionSchema = EntityBaseSchema.extend({
142
- entity_type: z.literal('decision'),
143
- name: z.string().min(1, 'Decision name is required'),
144
- status: z.enum(['proposed', 'accepted', 'rejected', 'deprecated', 'superseded'])
145
- .default('proposed')
146
- .describe('Current status'),
147
- decision_makers: z.array(z.string()).optional().describe('People who made the decision'),
148
- stakeholders: z.array(z.string()).optional().describe('People affected'),
149
- context: z.string().optional().describe('Background and why this decision was needed'),
150
- alternatives: z.string().optional().describe('Alternatives considered (markdown)'),
151
- decision: z.string().optional().describe('The actual decision made'),
152
- rationale: z.string().optional().describe('Why this decision was chosen'),
153
- consequences: z.string().optional().describe('Outcomes and risks'),
154
- supersedes: z.string().optional().describe('Decision this one replaces (wikilink)'),
155
- superseded_by: z.string().optional().describe('Decision that replaces this one (wikilink)'),
156
- });
157
- /**
158
- * Task — lightweight action items and to-dos
178
+ * Tasklightweight action items and to-dos.
179
+ *
180
+ * `phase` is intentionally free-text (not a separate entity type or workspace
181
+ * config list). Phases vary widely across project types; the Timeline view
182
+ * auto-discovers distinct values per-project for grouping.
159
183
  */
160
184
  export const TaskSchema = EntityBaseSchema.extend({
161
185
  entity_type: z.literal('task'),
162
186
  name: z.string().min(1, 'Task name is required'),
163
- status: z.enum(['open', 'in-progress', 'done', 'cancelled'])
164
- .default('open')
187
+ status: z.enum(['backlog', 'todo', 'in-progress', 'in-review', 'done', 'cancelled'])
188
+ .default('backlog')
165
189
  .describe('Task status'),
166
190
  priority: z.enum(['low', 'medium', 'high', 'urgent'])
167
191
  .optional()
168
192
  .describe('Priority level'),
169
193
  assignee: z.string().optional().describe('Person assigned (wikilink)'),
170
- due_date: z.string().optional().describe('Due date'),
171
- description: z.string().optional().describe('Detailed description'),
194
+ phase: z.string().optional().describe('Project phase (free-text — Discover, Design, Prototype, Build, etc.)'),
195
+ start_date: dateField('start', 'Start date', 'Task start date (enables Timeline / Gantt rendering of duration)'),
196
+ date: dateField('primary', 'Due date', 'When the task is due'),
172
197
  });
173
198
  /**
174
- * Documentany authored document
175
- * Absorbs the former separate proposal, contract, brief, financial-plan, and template types.
199
+ * Deliverablea scoped output promised to a client.
200
+ */
201
+ export const DeliverableSchema = EntityBaseSchema.extend({
202
+ entity_type: z.literal('deliverable'),
203
+ name: z.string().min(1, 'Deliverable name is required'),
204
+ project: z.string().optional().describe('Parent project wikilink'),
205
+ status: z.enum(['planned', 'in-progress', 'delivered', 'accepted', 'rejected'])
206
+ .default('planned')
207
+ .describe('Delivery status'),
208
+ phase: z.string().optional().describe('Project phase (free-text — same semantics as task.phase)'),
209
+ start_date: dateField('start', 'Start date', 'Deliverable start date (enables Timeline rendering of duration)'),
210
+ date: dateField('primary', 'Due date', 'When the deliverable is due'),
211
+ });
212
+ // ══════════════════════════════════════════════════════════════════════════════
213
+ // KM — authored (document, deck, publication, case-study, service, skill)
214
+ // ══════════════════════════════════════════════════════════════════════════════
215
+ /**
216
+ * Document — any authored document. The `guideline` category absorbs the
217
+ * former standalone `guideline` entity type.
176
218
  */
177
219
  export const DocumentSchema = EntityBaseSchema.extend({
178
220
  entity_type: z.literal('document'),
179
221
  name: z.string().min(1, 'Document name is required'),
180
- category: z.string().optional().describe('Document category (e.g., proposal, contract, brief, memo, financial-plan, template, report)'),
181
- client: z.string().optional().describe('Client organization wikilink'),
182
- project: z.string().optional().describe('Related project wikilink'),
183
- version: z.string().optional().describe('Version (e.g., v1, v2)'),
184
- status: z.enum(['draft', 'sent', 'accepted', 'rejected', 'negotiating', 'signed', 'completed', 'terminated'])
222
+ category: z.enum(['proposal', 'contract', 'brief', 'memo', 'report', 'template', 'guideline', 'other'])
223
+ .optional()
224
+ .describe('Document category'),
225
+ status: z.enum(['draft', 'review', 'final', 'archived'])
185
226
  .default('draft')
186
227
  .describe('Document status'),
187
- description: z.string().optional().describe('Description or summary'),
188
- });
189
- /**
190
- * Dataset — structured tabular data with typed columns and CSV body
191
- */
192
- export const ColumnDefinitionSchema = z.object({
193
- name: z.string().min(1),
194
- type: z.enum(['string', 'number', 'boolean', 'date']),
195
- required: z.boolean().optional(),
196
- description: z.string().optional(),
197
- });
198
- export const DatasetSchema = EntityBaseSchema.extend({
199
- entity_type: z.literal('dataset'),
200
- name: z.string().min(1, 'Dataset name is required'),
201
- schema: z.array(ColumnDefinitionSchema).min(1, 'At least one column required'),
202
228
  });
203
229
  /**
204
- * Referenceexternal resources and inspiration
205
- * Absorbs the former separate technique type.
230
+ * Decka slide deck or presentation. Stays its own type alongside
231
+ * `document` because of the dedicated slides renderer + agent skills that
232
+ * pattern-match on `entity_type === 'deck'`.
206
233
  */
207
- export const ReferenceSchema = EntityBaseSchema.extend({
208
- entity_type: z.literal('reference'),
209
- name: z.string().min(1, 'Reference name is required'),
210
- category: z.string().optional().describe('Reference category (e.g., article, video, tool, technique, framework, website)'),
211
- source: z.string().optional().describe('Source/author'),
212
- link: z.string().optional().describe('URL'),
213
- related_projects: z.array(z.string()).optional().describe('Related project wikilinks'),
214
- related_areas: z.array(z.string()).optional().describe('Related practice areas'),
215
- description: z.string().optional().describe('Description'),
216
- });
217
- /**
218
- * Note — freeform thinking, research, scratch, daily notes
219
- * Lightweight entity with minimal schema. Participates in the graph like any other entity.
220
- */
221
- export const NoteSchema = EntityBaseSchema.extend({
222
- entity_type: z.literal('note'),
223
- name: z.string().min(1, 'Note name is required'),
224
- category: z.string().optional().describe('Note category (e.g., research, scratch, daily, brainstorm, draft)'),
225
- });
226
- /**
227
- * Deliverable — a scoped contractual output promised to a client
228
- * Bridges the commercial side (proposal, contract) to execution (artifacts, tasks).
229
- */
230
- export const DeliverableSchema = EntityBaseSchema.extend({
231
- entity_type: z.literal('deliverable'),
232
- name: z.string().min(1, 'Deliverable name is required'),
233
- project: z.string().optional().describe('Related project wikilink'),
234
- status: z.enum(['planned', 'in-progress', 'delivered', 'accepted', 'rejected'])
235
- .default('planned')
236
- .describe('Delivery status'),
237
- due_date: z.string().optional().describe('Due date'),
238
- delivered_date: z.string().optional().describe('Actual delivery date'),
239
- description: z.string().optional().describe('What this deliverable comprises'),
234
+ export const DeckSchema = EntityBaseSchema.extend({
235
+ entity_type: z.literal('deck'),
236
+ name: z.string().min(1, 'Deck name is required'),
237
+ audience: z.enum(['client', 'team', 'board', 'external', 'other'])
238
+ .optional()
239
+ .describe('Intended audience'),
240
+ status: z.enum(['draft', 'review', 'final', 'archived'])
241
+ .default('draft')
242
+ .describe('Deck status'),
240
243
  });
241
244
  /**
242
- * Publication — authored content published externally
245
+ * Publication — authored content published externally.
243
246
  */
244
247
  export const PublicationSchema = EntityBaseSchema.extend({
245
248
  entity_type: z.literal('publication'),
246
249
  name: z.string().min(1, 'Publication name is required'),
247
- category: z.string().optional().describe('Publication category (e.g., article, social-post, talk, podcast, award-submission)'),
248
- platform: z.string().optional().describe('Platform (e.g., linkedin, medium, behance, conference)'),
250
+ platform: z.string().optional().describe('Where published (e.g., linkedin, medium, behance, conference)'),
249
251
  status: z.enum(['draft', 'review', 'scheduled', 'published'])
250
252
  .default('draft')
251
253
  .describe('Publication status'),
252
- published_date: z.string().optional().describe('Date published'),
253
254
  url: z.string().optional().describe('URL of published content'),
254
- related_projects: z.array(z.string()).optional().describe('Related project wikilinks'),
255
- related_areas: z.array(z.string()).optional().describe('Related practice area wikilinks'),
256
255
  });
257
256
  /**
258
- * Dealpre-project opportunity in the sales pipeline
257
+ * Case Study portfolio narratives for completed projects.
259
258
  */
260
- export const DealSchema = EntityBaseSchema.extend({
261
- entity_type: z.literal('deal'),
262
- name: z.string().min(1, 'Deal name is required'),
259
+ export const CaseStudySchema = EntityBaseSchema.extend({
260
+ entity_type: z.literal('case-study'),
261
+ name: z.string().min(1, 'Case study name is required'),
263
262
  client: z.string().optional().describe('Client organization wikilink'),
264
- contacts: z.array(z.string()).optional().describe('Contact person wikilinks'),
265
- stage: z.enum(['scoping', 'proposal', 'negotiating', 'won', 'lost'])
266
- .default('scoping')
267
- .describe('Pipeline stage'),
268
- deal_value: z.number().optional().describe('Estimated deal value'),
269
- probability: z.number().min(0).max(100).optional().describe('Win probability 0–100'),
270
- expected_close: z.string().optional().describe('Expected close date'),
271
- source: z.enum(['referral', 'inbound', 'outbound', 'repeat', 'partner', 'other'])
272
- .optional()
273
- .describe('How the opportunity originated'),
274
- proposals: z.array(z.string()).optional().describe('Related proposal document wikilinks'),
275
- project: z.string().optional().describe('Resulting project wikilink (once won)'),
276
- lost_reason: z.string().optional().describe('Why the deal was lost'),
263
+ services: z.array(z.string()).optional()
264
+ .describe('Service entities this case study highlights (wikilinks)'),
265
+ date_range: z.string().optional().describe('Project timeframe (e.g., 2025-09 / 2026-01)'),
266
+ status: z.enum(['draft', 'review', 'final', 'published'])
267
+ .default('draft')
268
+ .describe('Case study status'),
269
+ });
270
+ /**
271
+ * Service — the firm's offerings + methodologies. Replaces the old
272
+ * `process` type and absorbs `practice-area` (top-level services replace
273
+ * what practice-area was trying to be).
274
+ *
275
+ * `sprint` links a granular service to its parent service (top-level
276
+ * services have none). `depends_on` / `enables` form a directed graph
277
+ * across the service set — the Graph view's most valuable use case.
278
+ */
279
+ export const ServiceSchema = EntityBaseSchema.extend({
280
+ entity_type: z.literal('service'),
281
+ name: z.string().min(1, 'Service name is required'),
282
+ service_id: z.string().optional()
283
+ .describe('Optional human-readable id (e.g. "1.4") for studios that number their services'),
284
+ sprint: z.string().optional()
285
+ .describe('Parent service wikilink for hierarchy (top-level services / sprints have none)'),
286
+ depends_on: z.array(z.string()).optional()
287
+ .describe('Services that must precede this one (wikilinks)'),
288
+ enables: z.array(z.string()).optional()
289
+ .describe('Services that this one unlocks (wikilinks)'),
290
+ deliverables: z.array(z.string()).optional()
291
+ .describe('Named outputs this service produces'),
292
+ status: z.enum(['offered', 'in-development', 'retired'])
293
+ .default('offered')
294
+ .describe('Service lifecycle'),
295
+ });
296
+ /**
297
+ * Skill — prompt-level instructions the agent can load to teach it how to
298
+ * do a specific job. The entity id is the skill name used by `load_skill`.
299
+ * The body markdown is the instruction content.
300
+ *
301
+ * `applies_to` lets the agent load deck-skills when working on a deck,
302
+ * proposal-skills when on a `document.category=proposal`, etc. Empty /
303
+ * unset = generally applicable.
304
+ *
305
+ * The previous `loading: eager | on-demand` field is gone for graph-authored
306
+ * skills. Filesystem skills (shipped with the product in `src/agent/skills/`)
307
+ * keep their own loading mechanism via skill-loader.ts and orchestrator.ts.
308
+ *
309
+ * `name` and `description` are optional at creation so the sidebar new-entry
310
+ * flow works — the user fills them in afterward via the property panel.
311
+ */
312
+ export const SkillSchema = EntityBaseSchema.extend({
313
+ entity_type: z.literal('skill'),
314
+ name: z.string().optional().describe('Human-readable title (falls back to entity id)'),
315
+ description: z.string().optional().describe('Shown in the skill index so the agent knows when to load it'),
316
+ applies_to: z.array(z.string()).optional()
317
+ .describe('Entity types this skill applies to (e.g. ["deck"]). Empty = generally applicable.'),
277
318
  });
278
319
  // ══════════════════════════════════════════════════════════════════════════════
279
- // KNOWLEDGE ENTITIES typically in resource repos
320
+ // CAPTUREnote, reference
280
321
  // ══════════════════════════════════════════════════════════════════════════════
281
322
  /**
282
- * Processworkflows, SOPs, and methodologies
323
+ * Notefreeform thinking, research, daily notes.
324
+ *
325
+ * Decisions migrated from the cut `decision` type land here as plain
326
+ * notes; operators may manually convert specific entries to `task` if they
327
+ * read better as work items.
283
328
  */
284
- export const ProcessSchema = EntityBaseSchema.extend({
285
- entity_type: z.literal('process'),
286
- name: z.string().min(1, 'Process name is required'),
287
- description: z.string().optional().describe('Process description'),
288
- steps: z.string().optional().describe('Process steps (markdown)'),
289
- related_areas: z.array(z.string()).optional().describe('Related practice areas'),
290
- owner: z.string().optional().describe('Person or team responsible (wikilink)'),
291
- review_cycle: z.enum(['monthly', 'quarterly', 'annual', 'as-needed']).optional().describe('Review frequency'),
329
+ export const NoteSchema = EntityBaseSchema.extend({
330
+ entity_type: z.literal('note'),
331
+ name: z.string().min(1, 'Note name is required'),
292
332
  });
293
333
  /**
294
- * Standardguidelines and best practices
334
+ * Referenceexternal resources and inspiration.
295
335
  */
296
- export const StandardSchema = EntityBaseSchema.extend({
297
- entity_type: z.literal('standard'),
298
- name: z.string().min(1, 'Standard name is required'),
299
- category: z.string().optional().describe('Category (e.g., accessibility, design-principles, code-standards)'),
300
- description: z.string().optional().describe('Standard description'),
301
- guidelines: z.string().optional().describe('Guidelines (markdown)'),
302
- examples: z.array(z.string()).optional().describe('Example wikilinks'),
336
+ export const ReferenceSchema = EntityBaseSchema.extend({
337
+ entity_type: z.literal('reference'),
338
+ name: z.string().min(1, 'Reference name is required'),
339
+ source: z.string().optional().describe('Source or author'),
340
+ link: z.string().optional().describe('URL'),
303
341
  });
304
342
  /**
305
- * Case Study portfolio narratives for completed projects
343
+ * Dataseta CSV the workspace owns, edited in a grid.
344
+ *
345
+ * Conventional CSV: the markdown body IS the data, and the header row IS the
346
+ * column list — there's no separate typed column schema. The grid editor
347
+ * (web CsvEditor) and the agent's `query_dataset` / `append_rows` tools read
348
+ * the body through CSVService (src/services/csv-service.ts), deriving columns
349
+ * from the header. Distinct from an uploaded `asset` with
350
+ * `asset_kind: 'spreadsheet'`, which is an opaque binary — a dataset is
351
+ * in-graph, queryable, and row-appendable.
306
352
  */
307
- export const CaseStudySchema = EntityBaseSchema.extend({
308
- entity_type: z.literal('case-study'),
309
- name: z.string().min(1, 'Case study name is required'),
310
- client: z.string().optional().describe('Client organization wikilink'),
311
- year: z.number().optional().describe('Year of the project'),
312
- practice_areas: z.array(z.string()).optional().describe('Practice area wikilinks'),
313
- sectors: z.array(z.string()).optional().describe('Industry tags'),
314
- website_url: z.string().url().optional().describe('Project website URL'),
315
- description: z.string().optional().describe('Short description'),
353
+ export const DatasetSchema = EntityBaseSchema.extend({
354
+ entity_type: z.literal('dataset'),
355
+ name: z.string().min(1, 'Dataset name is required'),
356
+ });
357
+ // ══════════════════════════════════════════════════════════════════════════════
358
+ // SYSTEM asset
359
+ // ══════════════════════════════════════════════════════════════════════════════
360
+ /**
361
+ * Asset — a hosted binary the workspace owns. The frontmatter is the
362
+ * entity; the body is optional user notes. The binary itself lives in
363
+ * the asset backend (R2 or local volume) at `asset/{entity_id}/{file}`.
364
+ *
365
+ * Distinct from `reference`, which points at an external URL the
366
+ * workspace doesn't own. Per-kind UI (icon, viewer, thumbnail) is
367
+ * driven by `asset_kind`; see `detectAssetKind` in
368
+ * src/services/assets/base.ts.
369
+ *
370
+ * Asset is graph-visible (search, history, wikilinks) but hidden from the
371
+ * New Entry picker — it's created via the upload/drag-drop flow.
372
+ */
373
+ export const ASSET_KINDS = [
374
+ 'image', 'video', 'audio', 'pdf', 'spreadsheet', 'other',
375
+ ];
376
+ export const AssetSchema = EntityBaseSchema.extend({
377
+ entity_type: z.literal('asset'),
378
+ name: z.string().min(1, 'Asset name is required'),
379
+ asset_url: z.string().min(1, 'asset_url is required').describe('Public URL or /api/assets/... path'),
380
+ asset_kind: z.enum(ASSET_KINDS).describe('High-level kind that drives icon and viewer'),
381
+ asset_extension: z.string().min(1).describe('Original file extension including the dot, e.g. ".csv"'),
382
+ asset_size: z.number().int().nonnegative().describe('Size in bytes'),
383
+ asset_mime: z.string().optional().describe('Detected MIME type'),
384
+ pages: z.number().int().positive().optional().describe('Page count (PDF only)'),
385
+ width: z.number().int().positive().optional().describe('Pixel width (image/video)'),
386
+ height: z.number().int().positive().optional().describe('Pixel height (image/video)'),
387
+ duration: z.number().nonnegative().optional().describe('Length in seconds (audio/video)'),
388
+ checksum: z.string().optional().describe('Content hash, e.g. sha256:...'),
316
389
  });
317
390
  // ══════════════════════════════════════════════════════════════════════════════
391
+ // SYSTEM — comment (virtual entity, SQLite-backed)
392
+ // ══════════════════════════════════════════════════════════════════════════════
393
+ /**
394
+ * Comment — a threaded comment anchored to another entry. Unlike every other
395
+ * entity type, comments are NOT stored as markdown files; they live in
396
+ * `comments.db` (see `src/services/comment-service.ts`) for throughput.
397
+ * Agents see them as first-class typed entities through the virtual-entity
398
+ * adapter (`src/mcp/comment-virtual-entity.ts`), which is why the schema
399
+ * lives here alongside the file-backed types.
400
+ *
401
+ * The shape documents what fields the MCP envelope exposes; runtime
402
+ * validation happens inside CommentService itself.
403
+ */
404
+ export const CommentSchema = EntityBaseSchema.extend({
405
+ entity_type: z.literal('comment'),
406
+ repo: z.string().describe('Folder the anchored entry lives in'),
407
+ entry_type: z.string().describe('Entity type of the anchored entry'),
408
+ entry_id: z.string().describe('Entity id of the anchored entry'),
409
+ thread_id: z.string().describe('Head comment id; replies share the same thread_id'),
410
+ parent_id: z.string().nullable().optional().describe('Parent comment id for replies, null on the head'),
411
+ author_user_id: z.number().int().describe('users.id of the author'),
412
+ author_role: z.enum(['user', 'agent']).describe('Whether the author was a human or the agent'),
413
+ anchor_quote: z.string().nullable().optional()
414
+ .describe('Original highlighted text at creation time, ≤256 chars (used for orphan rendering)'),
415
+ resolved_at: z.string().nullable().optional(),
416
+ resolved_by_user_id: z.number().int().nullable().optional(),
417
+ edited: z.boolean().optional(),
418
+ mentions: z.array(z.string()).optional().describe('Handles of mentioned users'),
419
+ });
318
420
  // ══════════════════════════════════════════════════════════════════════════════
319
421
  // SCHEMA REGISTRY
320
422
  // ══════════════════════════════════════════════════════════════════════════════
321
423
  /**
322
- * Maps entity types to their Zod schemas.
323
- * 17 built-in types. App plugins register additional types at runtime via SchemaRegistry.
424
+ * Maps entity types to their Zod schemas. 17 canonical built-in types
425
+ * (16 user-facing + 1 system). Workspaces can register additional custom
426
+ * types via SchemaRegistry (schema_extensions).
324
427
  */
325
428
  export const ENTITY_SCHEMAS = {
326
- // Identity (4)
429
+ // CRM (4)
327
430
  person: PersonSchema,
328
431
  organization: OrganizationSchema,
329
- role: RoleSchema,
330
- 'practice-area': PracticeAreaSchema,
331
- // Universal (10)
432
+ position: PositionSchema,
433
+ deal: DealSchema,
434
+ // PM (4)
332
435
  project: ProjectSchema,
333
- meeting: MeetingSchema,
334
- decision: DecisionSchema,
436
+ event: EventSchema,
335
437
  task: TaskSchema,
336
- document: DocumentSchema,
337
- dataset: DatasetSchema,
338
- reference: ReferenceSchema,
339
- note: NoteSchema,
340
438
  deliverable: DeliverableSchema,
439
+ // KM — authored (6)
440
+ document: DocumentSchema,
441
+ deck: DeckSchema,
341
442
  publication: PublicationSchema,
342
- deal: DealSchema,
343
- // Knowledge (3)
344
- process: ProcessSchema,
345
- standard: StandardSchema,
346
443
  'case-study': CaseStudySchema,
444
+ service: ServiceSchema,
445
+ skill: SkillSchema,
446
+ // Capture (3)
447
+ note: NoteSchema,
448
+ reference: ReferenceSchema,
449
+ dataset: DatasetSchema,
450
+ // System (2)
451
+ asset: AssetSchema,
452
+ comment: CommentSchema,
347
453
  };
348
454
  /**
349
455
  * Plural subfolder name → singular entity_type mapping
@@ -351,27 +457,47 @@ export const ENTITY_SCHEMAS = {
351
457
  export const PLURAL_TO_SINGULAR = {
352
458
  'people': 'person',
353
459
  'organizations': 'organization',
354
- 'roles': 'role',
355
- 'practice-areas': 'practice-area',
460
+ 'positions': 'position',
461
+ 'deals': 'deal',
356
462
  'projects': 'project',
357
- 'meetings': 'meeting',
358
- 'decisions': 'decision',
463
+ 'events': 'event',
359
464
  'tasks': 'task',
360
- 'documents': 'document',
361
- 'datasets': 'dataset',
362
- 'references': 'reference',
363
- 'notes': 'note',
364
465
  'deliverables': 'deliverable',
466
+ 'documents': 'document',
467
+ 'decks': 'deck',
365
468
  'publications': 'publication',
366
- 'deals': 'deal',
367
- 'processes': 'process',
368
- 'standards': 'standard',
369
469
  'case-studies': 'case-study',
470
+ 'services': 'service',
471
+ 'skills': 'skill',
472
+ 'notes': 'note',
473
+ 'references': 'reference',
474
+ 'datasets': 'dataset',
475
+ 'assets': 'asset',
476
+ 'comments': 'comment',
370
477
  };
371
478
  /**
372
479
  * Singular entity_type → plural subfolder name mapping
373
480
  */
374
481
  export const SINGULAR_TO_PLURAL = Object.fromEntries(Object.entries(PLURAL_TO_SINGULAR).map(([plural, singular]) => [singular, plural]));
482
+ /**
483
+ * Cross-field task rule: a task's start date must not fall after its due date.
484
+ *
485
+ * This lives OUTSIDE the Zod schema on purpose. Expressing it as a
486
+ * `TaskSchema.refine(...)` would turn the ZodObject into a ZodEffects, which
487
+ * breaks shape introspection in schema-registry (`describeZodObject` and the
488
+ * schema_extensions `.extend()` path both rely on `instanceof z.ZodObject`) —
489
+ * and that powers the metadata field panel. So both validation entry points
490
+ * (this module's `validateEntity` and `graph.ts`'s private one) call this
491
+ * helper after a successful parse instead.
492
+ *
493
+ * `dateField` stores ISO 'YYYY-MM-DD' strings, so a lexicographic comparison
494
+ * is a correct date comparison.
495
+ */
496
+ export function assertValidTaskDates(data) {
497
+ if (data.start_date && data.date && data.start_date > data.date) {
498
+ throw new Error(`Validation failed for task:\n - start_date: Start date (${data.start_date}) must be on or before the due date (${data.date})`);
499
+ }
500
+ }
375
501
  /**
376
502
  * Validation helper with helpful error messages
377
503
  */
@@ -381,11 +507,14 @@ export function validateEntity(entityType, data) {
381
507
  throw new Error(`Unknown entity type: ${entityType}`);
382
508
  }
383
509
  try {
384
- return schema.parse(data);
510
+ const parsed = schema.parse(data);
511
+ if (entityType === 'task')
512
+ assertValidTaskDates(parsed);
513
+ return parsed;
385
514
  }
386
515
  catch (error) {
387
516
  if (error instanceof z.ZodError) {
388
- const messages = error.errors.map(e => {
517
+ const messages = error.issues.map(e => {
389
518
  const path = e.path.join('.');
390
519
  return ` - ${path}: ${e.message}`;
391
520
  });
@@ -403,7 +532,7 @@ export function validateCustomEntity(data) {
403
532
  }
404
533
  catch (error) {
405
534
  if (error instanceof z.ZodError) {
406
- const messages = error.errors.map(e => {
535
+ const messages = error.issues.map(e => {
407
536
  const path = e.path.join('.');
408
537
  return ` - ${path}: ${e.message}`;
409
538
  });