studiograph 1.3.48-next.13 → 1.3.48-next.130

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 (1008) hide show
  1. package/README.md +7 -7
  2. package/dist/agent/agent-pool.d.ts +14 -1
  3. package/dist/agent/agent-pool.js +37 -12
  4. package/dist/agent/agent-pool.js.map +1 -1
  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 +29 -2
  9. package/dist/agent/orchestrator.js +239 -38
  10. package/dist/agent/orchestrator.js.map +1 -1
  11. package/dist/agent/prompts/entity-types-section.d.ts +30 -0
  12. package/dist/agent/prompts/entity-types-section.js +83 -0
  13. package/dist/agent/prompts/entity-types-section.js.map +1 -0
  14. package/dist/agent/prompts/system.md +106 -47
  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 +79 -343
  19. package/dist/agent/skills/interview/entity-templates.md +38 -37
  20. package/dist/agent/skills/interview/question-domains.md +54 -49
  21. package/dist/agent/skills/interview/skill.md +89 -14
  22. package/dist/agent/tools/capture-tools.d.ts +31 -0
  23. package/dist/agent/tools/capture-tools.js +40 -0
  24. package/dist/agent/tools/capture-tools.js.map +1 -0
  25. package/dist/agent/tools/folder-tools.d.ts +47 -0
  26. package/dist/agent/tools/folder-tools.js +249 -0
  27. package/dist/agent/tools/folder-tools.js.map +1 -0
  28. package/dist/agent/tools/fs-tools.d.ts +6 -5
  29. package/dist/agent/tools/fs-tools.js +5 -5
  30. package/dist/agent/tools/fs-tools.js.map +1 -1
  31. package/dist/agent/tools/graph-tools.d.ts +25 -72
  32. package/dist/agent/tools/graph-tools.js +362 -366
  33. package/dist/agent/tools/graph-tools.js.map +1 -1
  34. package/dist/agent/tools/history-tools.d.ts +95 -0
  35. package/dist/agent/tools/history-tools.js +461 -0
  36. package/dist/agent/tools/history-tools.js.map +1 -0
  37. package/dist/agent/tools/load-skill.d.ts +6 -5
  38. package/dist/agent/tools/load-skill.js +3 -3
  39. package/dist/agent/tools/load-skill.js.map +1 -1
  40. package/dist/agent/tools/message-tools.d.ts +13 -11
  41. package/dist/agent/tools/message-tools.js +31 -39
  42. package/dist/agent/tools/message-tools.js.map +1 -1
  43. package/dist/agent/tools/ops-tools.d.ts +5 -4
  44. package/dist/agent/tools/ops-tools.js +99 -212
  45. package/dist/agent/tools/ops-tools.js.map +1 -1
  46. package/dist/agent/tools/permission-tools.d.ts +39 -16
  47. package/dist/agent/tools/permission-tools.js +66 -41
  48. package/dist/agent/tools/permission-tools.js.map +1 -1
  49. package/dist/agent/tools/tool-loader.js +5 -4
  50. package/dist/agent/tools/tool-loader.js.map +1 -1
  51. package/dist/agent/tools/web-tools.js +58 -9
  52. package/dist/agent/tools/web-tools.js.map +1 -1
  53. package/dist/cli/commands/about.d.ts +1 -0
  54. package/dist/cli/commands/about.js +55 -3
  55. package/dist/cli/commands/about.js.map +1 -1
  56. package/dist/cli/commands/audit.d.ts +21 -0
  57. package/dist/cli/commands/audit.js +174 -0
  58. package/dist/cli/commands/audit.js.map +1 -0
  59. package/dist/cli/commands/clear.d.ts +5 -0
  60. package/dist/cli/commands/clear.js +144 -1
  61. package/dist/cli/commands/clear.js.map +1 -1
  62. package/dist/cli/commands/clone.d.ts +1 -1
  63. package/dist/cli/commands/clone.js +47 -12
  64. package/dist/cli/commands/clone.js.map +1 -1
  65. package/dist/cli/commands/deploy.js +79 -18
  66. package/dist/cli/commands/deploy.js.map +1 -1
  67. package/dist/cli/commands/folder.d.ts +11 -0
  68. package/dist/cli/commands/folder.js +186 -0
  69. package/dist/cli/commands/folder.js.map +1 -0
  70. package/dist/cli/commands/index.js +2 -2
  71. package/dist/cli/commands/index.js.map +1 -1
  72. package/dist/cli/commands/init.js +16 -14
  73. package/dist/cli/commands/init.js.map +1 -1
  74. package/dist/cli/commands/join.d.ts +1 -1
  75. package/dist/cli/commands/join.js +26 -14
  76. package/dist/cli/commands/join.js.map +1 -1
  77. package/dist/cli/commands/mcp.js +12 -4
  78. package/dist/cli/commands/mcp.js.map +1 -1
  79. package/dist/cli/commands/r2.d.ts +3 -0
  80. package/dist/cli/commands/r2.js +196 -1
  81. package/dist/cli/commands/r2.js.map +1 -1
  82. package/dist/cli/commands/redeploy.js +41 -1
  83. package/dist/cli/commands/redeploy.js.map +1 -1
  84. package/dist/cli/commands/secrets.d.ts +23 -0
  85. package/dist/cli/commands/secrets.js +256 -0
  86. package/dist/cli/commands/secrets.js.map +1 -0
  87. package/dist/cli/commands/serve.js +143 -24
  88. package/dist/cli/commands/serve.js.map +1 -1
  89. package/dist/cli/commands/start.js +140 -71
  90. package/dist/cli/commands/start.js.map +1 -1
  91. package/dist/cli/commands/sync.d.ts +1 -1
  92. package/dist/cli/commands/sync.js +509 -163
  93. package/dist/cli/commands/sync.js.map +1 -1
  94. package/dist/cli/commands/user.js +8 -24
  95. package/dist/cli/commands/user.js.map +1 -1
  96. package/dist/cli/index.js +8 -7
  97. package/dist/cli/index.js.map +1 -1
  98. package/dist/cli/railway-provisioning.d.ts +53 -0
  99. package/dist/cli/railway-provisioning.js +85 -0
  100. package/dist/cli/railway-provisioning.js.map +1 -0
  101. package/dist/cli/scaffolding.d.ts +4 -2
  102. package/dist/cli/scaffolding.js +42 -47
  103. package/dist/cli/scaffolding.js.map +1 -1
  104. package/dist/cli/setup-wizard.d.ts +30 -49
  105. package/dist/cli/setup-wizard.js +35 -38
  106. package/dist/cli/setup-wizard.js.map +1 -1
  107. package/dist/core/accent-palette.d.ts +22 -0
  108. package/dist/core/accent-palette.js +47 -0
  109. package/dist/core/accent-palette.js.map +1 -0
  110. package/dist/core/entity-body-templates.d.ts +21 -0
  111. package/dist/core/entity-body-templates.js +48 -0
  112. package/dist/core/entity-body-templates.js.map +1 -0
  113. package/dist/core/entity-types-catalog.d.ts +65 -0
  114. package/dist/core/entity-types-catalog.js +136 -0
  115. package/dist/core/entity-types-catalog.js.map +1 -0
  116. package/dist/core/feature-flags.d.ts +22 -0
  117. package/dist/core/feature-flags.js +15 -0
  118. package/dist/core/feature-flags.js.map +1 -0
  119. package/dist/core/features.d.ts +16 -0
  120. package/dist/core/features.js +48 -0
  121. package/dist/core/features.js.map +1 -0
  122. package/dist/core/folder-paths.d.ts +41 -0
  123. package/dist/core/folder-paths.js +95 -0
  124. package/dist/core/folder-paths.js.map +1 -0
  125. package/dist/core/folder-sidecar.d.ts +16 -0
  126. package/dist/core/folder-sidecar.js +45 -0
  127. package/dist/core/folder-sidecar.js.map +1 -0
  128. package/dist/core/graph.d.ts +471 -19
  129. package/dist/core/graph.js +1411 -284
  130. package/dist/core/graph.js.map +1 -1
  131. package/dist/core/schema-registry.js +1 -19
  132. package/dist/core/schema-registry.js.map +1 -1
  133. package/dist/core/schemas/connector.d.ts +67 -0
  134. package/dist/core/schemas/connector.js +100 -0
  135. package/dist/core/schemas/connector.js.map +1 -0
  136. package/dist/core/schemas/workspace.d.ts +122 -0
  137. package/dist/core/schemas/workspace.js +211 -0
  138. package/dist/core/schemas/workspace.js.map +1 -0
  139. package/dist/core/secrets/SecretStore.d.ts +77 -0
  140. package/dist/core/secrets/SecretStore.js +13 -0
  141. package/dist/core/secrets/SecretStore.js.map +1 -0
  142. package/dist/core/secrets/SettingsResolver.d.ts +54 -0
  143. package/dist/core/secrets/SettingsResolver.js +80 -0
  144. package/dist/core/secrets/SettingsResolver.js.map +1 -0
  145. package/dist/core/secrets/SettingsStore.d.ts +30 -0
  146. package/dist/core/secrets/SettingsStore.js +9 -0
  147. package/dist/core/secrets/SettingsStore.js.map +1 -0
  148. package/dist/core/secrets/SqliteEncryptedStore.d.ts +78 -0
  149. package/dist/core/secrets/SqliteEncryptedStore.js +581 -0
  150. package/dist/core/secrets/SqliteEncryptedStore.js.map +1 -0
  151. package/dist/core/secrets/audit.d.ts +36 -0
  152. package/dist/core/secrets/audit.js +60 -0
  153. package/dist/core/secrets/audit.js.map +1 -0
  154. package/dist/core/secrets/auth-db-migration.d.ts +129 -0
  155. package/dist/core/secrets/auth-db-migration.js +653 -0
  156. package/dist/core/secrets/auth-db-migration.js.map +1 -0
  157. package/dist/core/secrets/bundle.d.ts +141 -0
  158. package/dist/core/secrets/bundle.js +435 -0
  159. package/dist/core/secrets/bundle.js.map +1 -0
  160. package/dist/core/secrets/dual-write.d.ts +76 -0
  161. package/dist/core/secrets/dual-write.js +236 -0
  162. package/dist/core/secrets/dual-write.js.map +1 -0
  163. package/dist/core/secrets/encryption.d.ts +44 -0
  164. package/dist/core/secrets/encryption.js +97 -0
  165. package/dist/core/secrets/encryption.js.map +1 -0
  166. package/dist/core/secrets/importer.d.ts +94 -0
  167. package/dist/core/secrets/importer.js +319 -0
  168. package/dist/core/secrets/importer.js.map +1 -0
  169. package/dist/core/secrets/index.d.ts +35 -0
  170. package/dist/core/secrets/index.js +59 -0
  171. package/dist/core/secrets/index.js.map +1 -0
  172. package/dist/core/secrets/master-key.d.ts +38 -0
  173. package/dist/core/secrets/master-key.js +122 -0
  174. package/dist/core/secrets/master-key.js.map +1 -0
  175. package/dist/core/secrets/probes/anthropic.d.ts +98 -0
  176. package/dist/core/secrets/probes/anthropic.js +300 -0
  177. package/dist/core/secrets/probes/anthropic.js.map +1 -0
  178. package/dist/core/secrets/probes/brave.d.ts +9 -0
  179. package/dist/core/secrets/probes/brave.js +15 -0
  180. package/dist/core/secrets/probes/brave.js.map +1 -0
  181. package/dist/core/secrets/probes/r2.d.ts +15 -0
  182. package/dist/core/secrets/probes/r2.js +14 -0
  183. package/dist/core/secrets/probes/r2.js.map +1 -0
  184. package/dist/core/secrets/probes/voyage.d.ts +13 -0
  185. package/dist/core/secrets/probes/voyage.js +52 -0
  186. package/dist/core/secrets/probes/voyage.js.map +1 -0
  187. package/dist/core/secrets/read-flip.d.ts +59 -0
  188. package/dist/core/secrets/read-flip.js +87 -0
  189. package/dist/core/secrets/read-flip.js.map +1 -0
  190. package/dist/core/secrets/registry.d.ts +188 -0
  191. package/dist/core/secrets/registry.js +539 -0
  192. package/dist/core/secrets/registry.js.map +1 -0
  193. package/dist/core/types.d.ts +70 -483
  194. package/dist/core/types.js +6 -3
  195. package/dist/core/types.js.map +1 -1
  196. package/dist/core/user-config.d.ts +52 -12
  197. package/dist/core/user-config.js +119 -14
  198. package/dist/core/user-config.js.map +1 -1
  199. package/dist/core/validation.d.ts +603 -1409
  200. package/dist/core/validation.js +248 -146
  201. package/dist/core/validation.js.map +1 -1
  202. package/dist/core/workspace-manager.d.ts +35 -14
  203. package/dist/core/workspace-manager.js +105 -56
  204. package/dist/core/workspace-manager.js.map +1 -1
  205. package/dist/core/workspace.d.ts +19 -5
  206. package/dist/core/workspace.js +66 -39
  207. package/dist/core/workspace.js.map +1 -1
  208. package/dist/mcp/connector-manager.d.ts +16 -1
  209. package/dist/mcp/connector-manager.js +44 -5
  210. package/dist/mcp/connector-manager.js.map +1 -1
  211. package/dist/mcp/server.d.ts +11 -3
  212. package/dist/mcp/server.js +30 -5
  213. package/dist/mcp/server.js.map +1 -1
  214. package/dist/mcp/tools.d.ts +27 -2
  215. package/dist/mcp/tools.js +544 -113
  216. package/dist/mcp/tools.js.map +1 -1
  217. package/dist/server/__tests__/helpers/graph-api.d.ts +18 -0
  218. package/dist/server/__tests__/helpers/graph-api.js +16 -0
  219. package/dist/server/__tests__/helpers/graph-api.js.map +1 -0
  220. package/dist/server/commit-audit.d.ts +26 -0
  221. package/dist/server/commit-audit.js +30 -0
  222. package/dist/server/commit-audit.js.map +1 -0
  223. package/dist/server/index.d.ts +14 -3
  224. package/dist/server/index.js +388 -177
  225. package/dist/server/index.js.map +1 -1
  226. package/dist/server/middleware/sanitize.d.ts +46 -0
  227. package/dist/server/middleware/sanitize.js +171 -0
  228. package/dist/server/middleware/sanitize.js.map +1 -0
  229. package/dist/server/routes/asset-api.js +217 -65
  230. package/dist/server/routes/asset-api.js.map +1 -1
  231. package/dist/server/routes/audit-api.d.ts +24 -0
  232. package/dist/server/routes/audit-api.js +117 -0
  233. package/dist/server/routes/audit-api.js.map +1 -0
  234. package/dist/server/routes/auth-api.js +220 -44
  235. package/dist/server/routes/auth-api.js.map +1 -1
  236. package/dist/server/routes/capture-api.d.ts +10 -3
  237. package/dist/server/routes/capture-api.js +180 -24
  238. package/dist/server/routes/capture-api.js.map +1 -1
  239. package/dist/server/routes/chat.d.ts +4 -1
  240. package/dist/server/routes/chat.js +178 -46
  241. package/dist/server/routes/chat.js.map +1 -1
  242. package/dist/server/routes/config-api.d.ts +21 -0
  243. package/dist/server/routes/config-api.js +256 -0
  244. package/dist/server/routes/config-api.js.map +1 -0
  245. package/dist/server/routes/connectors-api.js +24 -18
  246. package/dist/server/routes/connectors-api.js.map +1 -1
  247. package/dist/server/routes/event-ingest-api.d.ts +15 -0
  248. package/dist/server/routes/event-ingest-api.js +125 -0
  249. package/dist/server/routes/event-ingest-api.js.map +1 -0
  250. package/dist/server/routes/features-api.d.ts +19 -0
  251. package/dist/server/routes/features-api.js +28 -0
  252. package/dist/server/routes/features-api.js.map +1 -0
  253. package/dist/server/routes/git-http.d.ts +2 -2
  254. package/dist/server/routes/git-http.js +69 -34
  255. package/dist/server/routes/git-http.js.map +1 -1
  256. package/dist/server/routes/graph-api-access.d.ts +35 -0
  257. package/dist/server/routes/graph-api-access.js +93 -0
  258. package/dist/server/routes/graph-api-access.js.map +1 -0
  259. package/dist/server/routes/graph-api.d.ts +3 -2
  260. package/dist/server/routes/graph-api.js +1014 -315
  261. package/dist/server/routes/graph-api.js.map +1 -1
  262. package/dist/server/routes/health.d.ts +18 -0
  263. package/dist/server/routes/health.js +74 -0
  264. package/dist/server/routes/health.js.map +1 -0
  265. package/dist/server/routes/insights-api.js +156 -33
  266. package/dist/server/routes/insights-api.js.map +1 -1
  267. package/dist/server/routes/mcp.d.ts +6 -3
  268. package/dist/server/routes/mcp.js +22 -6
  269. package/dist/server/routes/mcp.js.map +1 -1
  270. package/dist/server/routes/messages-api.d.ts +3 -3
  271. package/dist/server/routes/messages-api.js +308 -120
  272. package/dist/server/routes/messages-api.js.map +1 -1
  273. package/dist/server/routes/permissions-api.d.ts +9 -2
  274. package/dist/server/routes/permissions-api.js +87 -31
  275. package/dist/server/routes/permissions-api.js.map +1 -1
  276. package/dist/server/routes/secrets-api.d.ts +36 -0
  277. package/dist/server/routes/secrets-api.js +303 -0
  278. package/dist/server/routes/secrets-api.js.map +1 -0
  279. package/dist/server/routes/settings-api.d.ts +29 -0
  280. package/dist/server/routes/settings-api.js +177 -0
  281. package/dist/server/routes/settings-api.js.map +1 -0
  282. package/dist/server/routes/workspace-api.d.ts +2 -1
  283. package/dist/server/routes/workspace-api.js +131 -20
  284. package/dist/server/routes/workspace-api.js.map +1 -1
  285. package/dist/server/routes/ws.d.ts +3 -2
  286. package/dist/server/routes/ws.js +68 -18
  287. package/dist/server/routes/ws.js.map +1 -1
  288. package/dist/server/session-manager.d.ts +48 -5
  289. package/dist/server/session-manager.js +175 -11
  290. package/dist/server/session-manager.js.map +1 -1
  291. package/dist/server/ws-hub.d.ts +134 -22
  292. package/dist/server/ws-hub.js +0 -0
  293. package/dist/server/ws-hub.js.map +1 -1
  294. package/dist/server/yjs-manager.d.ts +107 -7
  295. package/dist/server/yjs-manager.js +444 -38
  296. package/dist/server/yjs-manager.js.map +1 -1
  297. package/dist/server/yjs-persistence.d.ts +143 -0
  298. package/dist/server/yjs-persistence.js +543 -0
  299. package/dist/server/yjs-persistence.js.map +1 -0
  300. package/dist/server/yjs-text-diff.d.ts +32 -0
  301. package/dist/server/yjs-text-diff.js +61 -0
  302. package/dist/server/yjs-text-diff.js.map +1 -0
  303. package/dist/services/access-control.d.ts +53 -0
  304. package/dist/services/access-control.js +132 -0
  305. package/dist/services/access-control.js.map +1 -0
  306. package/dist/services/asset-upload-service.d.ts +53 -0
  307. package/dist/services/asset-upload-service.js +200 -0
  308. package/dist/services/asset-upload-service.js.map +1 -0
  309. package/dist/services/assets/base.d.ts +38 -0
  310. package/dist/services/assets/base.js +55 -0
  311. package/dist/services/assets/base.js.map +1 -1
  312. package/dist/services/assets/index.d.ts +41 -1
  313. package/dist/services/assets/index.js +65 -0
  314. package/dist/services/assets/index.js.map +1 -1
  315. package/dist/services/assets/local.d.ts +7 -1
  316. package/dist/services/assets/local.js +83 -0
  317. package/dist/services/assets/local.js.map +1 -1
  318. package/dist/services/assets/r2.d.ts +28 -1
  319. package/dist/services/assets/r2.js +75 -1
  320. package/dist/services/assets/r2.js.map +1 -1
  321. package/dist/services/auth-service.d.ts +184 -36
  322. package/dist/services/auth-service.js +763 -138
  323. package/dist/services/auth-service.js.map +1 -1
  324. package/dist/services/briefing.d.ts +1 -1
  325. package/dist/services/briefing.js +12 -35
  326. package/dist/services/briefing.js.map +1 -1
  327. package/dist/services/event-processor.d.ts +104 -0
  328. package/dist/services/event-processor.js +443 -0
  329. package/dist/services/event-processor.js.map +1 -0
  330. package/dist/services/folder-creation.d.ts +33 -0
  331. package/dist/services/folder-creation.js +103 -0
  332. package/dist/services/folder-creation.js.map +1 -0
  333. package/dist/services/git.d.ts +44 -0
  334. package/dist/services/git.js +162 -55
  335. package/dist/services/git.js.map +1 -1
  336. package/dist/services/heartbeat.d.ts +19 -12
  337. package/dist/services/heartbeat.js +162 -107
  338. package/dist/services/heartbeat.js.map +1 -1
  339. package/dist/services/import-service.d.ts +37 -2
  340. package/dist/services/import-service.js +222 -123
  341. package/dist/services/import-service.js.map +1 -1
  342. package/dist/services/lint-service.js +7 -14
  343. package/dist/services/lint-service.js.map +1 -1
  344. package/dist/services/markdown.js +6 -2
  345. package/dist/services/markdown.js.map +1 -1
  346. package/dist/services/message-service.d.ts +62 -21
  347. package/dist/services/message-service.js +160 -43
  348. package/dist/services/message-service.js.map +1 -1
  349. package/dist/services/personal-folder.d.ts +40 -0
  350. package/dist/services/personal-folder.js +101 -0
  351. package/dist/services/personal-folder.js.map +1 -0
  352. package/dist/services/vector-service.d.ts +73 -3
  353. package/dist/services/vector-service.js +106 -7
  354. package/dist/services/vector-service.js.map +1 -1
  355. package/dist/services/workspace-access.d.ts +106 -0
  356. package/dist/services/workspace-access.js +149 -0
  357. package/dist/services/workspace-access.js.map +1 -0
  358. package/dist/utils/git.js +3 -3
  359. package/dist/utils/git.js.map +1 -1
  360. package/dist/utils/log.d.ts +42 -0
  361. package/dist/utils/log.js +137 -0
  362. package/dist/utils/log.js.map +1 -0
  363. package/dist/utils/preflight.js +2 -2
  364. package/dist/utils/preflight.js.map +1 -1
  365. package/dist/utils/version-checker.d.ts +4 -1
  366. package/dist/utils/version-checker.js +8 -8
  367. package/dist/utils/version-checker.js.map +1 -1
  368. package/dist/web/_app/immutable/assets/0.Bp6xXZUi.css +2 -0
  369. package/dist/web/_app/immutable/assets/11.DlIf1mKh.css +1 -0
  370. package/dist/web/_app/immutable/assets/12.Dmlt28l2.css +1 -0
  371. package/dist/web/_app/immutable/assets/13.CmLrbzZp.css +1 -0
  372. package/dist/web/_app/immutable/assets/2.oo1ac0x_.css +1 -0
  373. package/dist/web/_app/immutable/assets/3.DJJsQzDb.css +1 -0
  374. package/dist/web/_app/immutable/assets/4.CZ-fNJ91.css +1 -0
  375. package/dist/web/_app/immutable/assets/AgentOverlay.BfWESlQU.css +1 -0
  376. package/dist/web/_app/immutable/assets/AssetManagerModal.ZfasE2L3.css +1 -0
  377. package/dist/web/_app/immutable/assets/CalendarView.CeNagvyK.css +1 -0
  378. package/dist/web/_app/immutable/assets/ChatPanel.po0gYtVH.css +1 -0
  379. package/dist/web/_app/immutable/assets/FolderMembersPanel.Bepw-r0F.css +1 -0
  380. package/dist/web/_app/immutable/assets/FolderMutationDialogs.BMRF6Z3z.css +1 -0
  381. package/dist/web/_app/immutable/assets/FolderPicker.B5KdvRYl.css +1 -0
  382. package/dist/web/_app/immutable/assets/GalleryView.Dy-qQjEc.css +1 -0
  383. package/dist/web/_app/immutable/assets/GraphView.BHnGIltS.css +1 -0
  384. package/dist/web/_app/immutable/assets/KanbanView.G3NZ0uHb.css +1 -0
  385. package/dist/web/_app/immutable/assets/SettingsDialog.tBn8y9DD.css +1 -0
  386. package/dist/web/_app/immutable/assets/Spinner.UBfl0pab.css +1 -0
  387. package/dist/web/_app/immutable/assets/TagFilter.DNipjifq.css +1 -0
  388. package/dist/web/_app/immutable/assets/TagPickerSheet.DJPuqnTg.css +1 -0
  389. package/dist/web/_app/immutable/assets/WorkspaceView.B9zA92UB.css +1 -0
  390. package/dist/web/_app/immutable/assets/button.BlLm4Dg1.css +1 -0
  391. package/dist/web/_app/immutable/assets/dialog.BxVal_19.css +1 -0
  392. package/dist/web/_app/immutable/assets/dist.B5hGjnfj.css +1 -0
  393. package/dist/web/_app/immutable/assets/dist.DDCWxn3B.css +1 -0
  394. package/dist/web/_app/immutable/assets/dropdown-menu.BSsUUQ3o.css +1 -0
  395. package/dist/web/_app/immutable/assets/entity-row.Bl5FyNCt.css +1 -0
  396. package/dist/web/_app/immutable/assets/greeting.Bm7lTneV.css +1 -0
  397. package/dist/web/_app/immutable/assets/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff +0 -0
  398. package/dist/web/_app/immutable/assets/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2 +0 -0
  399. package/dist/web/_app/immutable/assets/ibm-plex-mono-latin-500-normal.CB9ihrfo.woff +0 -0
  400. package/dist/web/_app/immutable/assets/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2 +0 -0
  401. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-400-italic.CZTNEAuW.woff2 +0 -0
  402. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-400-italic.CsGl1sm0.woff +0 -0
  403. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-400-normal.CDDApCn2.woff2 +0 -0
  404. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-400-normal.CYLoc0-x.woff +0 -0
  405. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-500-italic.BNK2_mGO.woff2 +0 -0
  406. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-500-italic.DpEwFAQM.woff +0 -0
  407. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-500-normal.6ng42L7E.woff2 +0 -0
  408. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-500-normal.BgVn5rGT.woff +0 -0
  409. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-600-normal.Cu4Hd6ag.woff +0 -0
  410. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-600-normal.CuJfVYMP.woff2 +0 -0
  411. package/dist/web/_app/immutable/assets/inline-list.DORLo4xF.css +1 -0
  412. package/dist/web/_app/immutable/assets/notifications.clodJdp5.css +1 -0
  413. package/dist/web/_app/immutable/assets/radio-group.GJJRVPUJ.css +1 -0
  414. package/dist/web/_app/immutable/assets/select.D_AV992j.css +1 -0
  415. package/dist/web/_app/immutable/chunks/-KAQXGuI2.js +1 -0
  416. package/dist/web/_app/immutable/chunks/-wzwcH00.js +1 -0
  417. package/dist/web/_app/immutable/chunks/07l_1Zpm2.js +1 -0
  418. package/dist/web/_app/immutable/chunks/1i1V0Z172.js +2 -0
  419. package/dist/web/_app/immutable/chunks/38oWKNzM2.js +6 -0
  420. package/dist/web/_app/immutable/chunks/54VmiJfH.js +1 -0
  421. package/dist/web/_app/immutable/chunks/6LRpFvjo.js +185 -0
  422. package/dist/web/_app/immutable/chunks/9bCTHkeS.js +1 -0
  423. package/dist/web/_app/immutable/chunks/B-822WnD2.js +22 -0
  424. package/dist/web/_app/immutable/chunks/B0HUvliX2.js +2 -0
  425. package/dist/web/_app/immutable/chunks/B12eXGpE.js +1 -0
  426. package/dist/web/_app/immutable/chunks/B2-Cx5XA.js +1 -0
  427. package/dist/web/_app/immutable/chunks/B5af0X0p2.js +1 -0
  428. package/dist/web/_app/immutable/chunks/B6iYNwo72.js +1 -0
  429. package/dist/web/_app/immutable/chunks/B7EMtoAB.js +1 -0
  430. package/dist/web/_app/immutable/chunks/B9qBGxh62.js +3 -0
  431. package/dist/web/_app/immutable/chunks/B9rVXblv.js +1 -0
  432. package/dist/web/_app/immutable/chunks/BEpMEjHO.js +1 -0
  433. package/dist/web/_app/immutable/chunks/BErNpj-S2.js +1 -0
  434. package/dist/web/_app/immutable/chunks/BHBk4zfV.js +1 -0
  435. package/dist/web/_app/immutable/chunks/BHH-JGNF.js +1 -0
  436. package/dist/web/_app/immutable/chunks/BNTlsKDJ.js +1 -0
  437. package/dist/web/_app/immutable/chunks/BOgcXgis2.js +1 -0
  438. package/dist/web/_app/immutable/chunks/BOyyDrjn2.js +1 -0
  439. package/dist/web/_app/immutable/chunks/BPR_ufQ0.js +41 -0
  440. package/dist/web/_app/immutable/chunks/BRcFsc6v.js +5 -0
  441. package/dist/web/_app/immutable/chunks/BT3KAag_.js +3 -0
  442. package/dist/web/_app/immutable/chunks/BX2T6xiZ.js +224 -0
  443. package/dist/web/_app/immutable/chunks/BZnJ8tbJ.js +1 -0
  444. package/dist/web/_app/immutable/chunks/Ba1Yzb7u.js +1 -0
  445. package/dist/web/_app/immutable/chunks/BcsvgA3B2.js +1 -0
  446. package/dist/web/_app/immutable/chunks/BfbS7rGT.js +1 -0
  447. package/dist/web/_app/immutable/chunks/BgagL41Z.js +1 -0
  448. package/dist/web/_app/immutable/chunks/Bk-AcswV.js +1 -0
  449. package/dist/web/_app/immutable/chunks/Bl9Pzopy.js +1 -0
  450. package/dist/web/_app/immutable/chunks/BmcU05mO.js +1 -0
  451. package/dist/web/_app/immutable/chunks/Bmgp0jlT.js +1 -0
  452. package/dist/web/_app/immutable/chunks/BpDONXUo.js +8 -0
  453. package/dist/web/_app/immutable/chunks/BpTXLx8I2.js +5 -0
  454. package/dist/web/_app/immutable/chunks/Bq0-jBGC2.js +1 -0
  455. package/dist/web/_app/immutable/chunks/BqGj0_GS.js +1 -0
  456. package/dist/web/_app/immutable/chunks/Bsc9K3Pz.js +1 -0
  457. package/dist/web/_app/immutable/chunks/Bssb691Q.js +1 -0
  458. package/dist/web/_app/immutable/chunks/BuzQceOn.js +1 -0
  459. package/dist/web/_app/immutable/chunks/BzeVNab0.js +1 -0
  460. package/dist/web/_app/immutable/chunks/C-OaypFN.js +1 -0
  461. package/dist/web/_app/immutable/chunks/C0fjDjvE2.js +1 -0
  462. package/dist/web/_app/immutable/chunks/C0pTXwEX.js +2 -0
  463. package/dist/web/_app/immutable/chunks/C3Enww9L2.js +1 -0
  464. package/dist/web/_app/immutable/chunks/C3oa0Cks.js +1 -0
  465. package/dist/web/_app/immutable/chunks/C7GIvT8T.js +2 -0
  466. package/dist/web/_app/immutable/chunks/CC-YWp-f.js +1 -0
  467. package/dist/web/_app/immutable/chunks/CGdKvXV92.js +1 -0
  468. package/dist/web/_app/immutable/chunks/CH0siYFL.js +1 -0
  469. package/dist/web/_app/immutable/chunks/CIc2MMme2.js +1 -0
  470. package/dist/web/_app/immutable/chunks/CIchr8Tk2.js +1 -0
  471. package/dist/web/_app/immutable/chunks/CK_yXDQI.js +1 -0
  472. package/dist/web/_app/immutable/chunks/CLSxJmTj.js +2 -0
  473. package/dist/web/_app/immutable/chunks/CMhHc1Bq2.js +2 -0
  474. package/dist/web/_app/immutable/chunks/CNGba6T4.js +1 -0
  475. package/dist/web/_app/immutable/chunks/CPt2D5aU.js +1 -0
  476. package/dist/web/_app/immutable/chunks/CQ-2yccd.js +7 -0
  477. package/dist/web/_app/immutable/chunks/CS6VEwn7.js +1 -0
  478. package/dist/web/_app/immutable/chunks/CSsDOIrk.js +1 -0
  479. package/dist/web/_app/immutable/chunks/CVXvEWhv2.js +1 -0
  480. package/dist/web/_app/immutable/chunks/CaChtuYU2.js +1 -0
  481. package/dist/web/_app/immutable/chunks/CbiwvM3R2.js +1 -0
  482. package/dist/web/_app/immutable/chunks/CdCuBMLm.js +156 -0
  483. package/dist/web/_app/immutable/chunks/CiyqPsJo.js +1 -0
  484. package/dist/web/_app/immutable/chunks/CjGzUnEF2.js +1 -0
  485. package/dist/web/_app/immutable/chunks/Cjgbiel7.js +1 -0
  486. package/dist/web/_app/immutable/chunks/CnqSKqA62.js +1 -0
  487. package/dist/web/_app/immutable/chunks/CqyqKPuh2.js +1 -0
  488. package/dist/web/_app/immutable/chunks/CrnX-oFV.js +1 -0
  489. package/dist/web/_app/immutable/chunks/CsGahE3a.js +1 -0
  490. package/dist/web/_app/immutable/chunks/Ct3quP0F.js +1 -0
  491. package/dist/web/_app/immutable/chunks/CtlAYPxw.js +1 -0
  492. package/dist/web/_app/immutable/chunks/CvZaxjRC.js +1 -0
  493. package/dist/web/_app/immutable/chunks/CwD4G56R.js +5 -0
  494. package/dist/web/_app/immutable/chunks/CwROuREs.js +1 -0
  495. package/dist/web/_app/immutable/chunks/CxalqrMB.js +1 -0
  496. package/dist/web/_app/immutable/chunks/D7qgUfnr.js +2487 -0
  497. package/dist/web/_app/immutable/chunks/D9-_Euza2.js +1 -0
  498. package/dist/web/_app/immutable/chunks/DC69SASj.js +2 -0
  499. package/dist/web/_app/immutable/chunks/DCCaoKt42.js +1 -0
  500. package/dist/web/_app/immutable/chunks/DDKweOZr2.js +23 -0
  501. package/dist/web/_app/immutable/chunks/DEY60osH.js +1 -0
  502. package/dist/web/_app/immutable/chunks/DG3QZPgI.js +1 -0
  503. package/dist/web/_app/immutable/chunks/DHepUItL.js +1 -0
  504. package/dist/web/_app/immutable/chunks/DNtqqgv32.js +1 -0
  505. package/dist/web/_app/immutable/chunks/DRl7vwNC2.js +184 -0
  506. package/dist/web/_app/immutable/chunks/DTc5W_V6.js +1 -0
  507. package/dist/web/_app/immutable/chunks/DaiJs3St.js +1 -0
  508. package/dist/web/_app/immutable/chunks/DfITyMKh2.js +1 -0
  509. package/dist/web/_app/immutable/chunks/DhuJRrEX2.js +1 -0
  510. package/dist/web/_app/immutable/chunks/DiP2EplP.js +3 -0
  511. package/dist/web/_app/immutable/chunks/DjlDV2JG.js +1 -0
  512. package/dist/web/_app/immutable/chunks/Dm25ot5x2.js +1 -0
  513. package/dist/web/_app/immutable/chunks/DpuSt-SO.js +2 -0
  514. package/dist/web/_app/immutable/chunks/DqOcb9RX2.js +83 -0
  515. package/dist/web/_app/immutable/chunks/DrbUJCAE.js +1 -0
  516. package/dist/web/_app/immutable/chunks/Du2-B3c8.js +1 -0
  517. package/dist/web/_app/immutable/chunks/DwdkE4UD2.js +1 -0
  518. package/dist/web/_app/immutable/chunks/DxWesPbn.js +1 -0
  519. package/dist/web/_app/immutable/chunks/DyYZqUV72.js +1 -0
  520. package/dist/web/_app/immutable/chunks/HfUnhvrv2.js +1 -0
  521. package/dist/web/_app/immutable/chunks/Je8-BtCk2.js +1 -0
  522. package/dist/web/_app/immutable/chunks/MSB7eA4_.js +1 -0
  523. package/dist/web/_app/immutable/chunks/NPe9WyW1.js +1 -0
  524. package/dist/web/_app/immutable/chunks/O6IzcxXJ.js +2 -0
  525. package/dist/web/_app/immutable/chunks/SXhc9rJW.js +1 -0
  526. package/dist/web/_app/immutable/chunks/SbWhkPMt.js +6 -0
  527. package/dist/web/_app/immutable/chunks/U40J2SnU.js +1 -0
  528. package/dist/web/_app/immutable/chunks/VS3l21Gu.js +1 -0
  529. package/dist/web/_app/immutable/chunks/YEPEvlbU2.js +1 -0
  530. package/dist/web/_app/immutable/chunks/Z7TNRcgK.js +11 -0
  531. package/dist/web/_app/immutable/chunks/ZCekGjo6.js +5 -0
  532. package/dist/web/_app/immutable/chunks/_rnxQ655.js +4 -0
  533. package/dist/web/_app/immutable/chunks/aALpjBW2.js +1 -0
  534. package/dist/web/_app/immutable/chunks/gNXLhsdy.js +1 -0
  535. package/dist/web/_app/immutable/chunks/hKSTEN36.js +1 -0
  536. package/dist/web/_app/immutable/chunks/jZZTbzL5.js +1 -0
  537. package/dist/web/_app/immutable/chunks/l4FIBKss.js +1 -0
  538. package/dist/web/_app/immutable/chunks/l_4snZnh2.js +1 -0
  539. package/dist/web/_app/immutable/chunks/mz-cgRgP.js +3 -0
  540. package/dist/web/_app/immutable/chunks/qgprkMcL.js +1 -0
  541. package/dist/web/_app/immutable/chunks/rOisBLC62.js +14 -0
  542. package/dist/web/_app/immutable/chunks/t08TznXc2.js +1 -0
  543. package/dist/web/_app/immutable/chunks/t62M88qj.js +1 -0
  544. package/dist/web/_app/immutable/chunks/uCohGWC42.js +1 -0
  545. package/dist/web/_app/immutable/chunks/uqxmB78b.js +1 -0
  546. package/dist/web/_app/immutable/chunks/vJkT0IPN.js +1 -0
  547. package/dist/web/_app/immutable/chunks/vwTMEIJQ.js +1 -0
  548. package/dist/web/_app/immutable/chunks/w1FCELam.js +64 -0
  549. package/dist/web/_app/immutable/chunks/xEzUlKaR2.js +1 -0
  550. package/dist/web/_app/immutable/chunks/zumDjcgJ.js +1 -0
  551. package/dist/web/_app/immutable/entry/app.DtdPIxaY.js +2 -0
  552. package/dist/web/_app/immutable/entry/start.Cqf8YmDj.js +1 -0
  553. package/dist/web/_app/immutable/nodes/0.CktqlAe7.js +2 -0
  554. package/dist/web/_app/immutable/nodes/1.Bs7cz_ba.js +1 -0
  555. package/dist/web/_app/immutable/nodes/10.CAQtOBqO.js +1 -0
  556. package/dist/web/_app/immutable/nodes/11.l9TQGnJm.js +1 -0
  557. package/dist/web/_app/immutable/nodes/12.CttDoIpY.js +1 -0
  558. package/dist/web/_app/immutable/nodes/13.E5fh69kS.js +1 -0
  559. package/dist/web/_app/immutable/nodes/2.DnLSJfx-.js +106 -0
  560. package/dist/web/_app/immutable/nodes/3.Bw8R0Jw5.js +2 -0
  561. package/dist/web/_app/immutable/nodes/4.Cl0HgeTG.js +2 -0
  562. package/dist/web/_app/immutable/nodes/5.BpIWwWi9.js +1 -0
  563. package/dist/web/_app/immutable/nodes/6.jpx6ZgOI.js +1 -0
  564. package/dist/web/_app/immutable/nodes/7.YTFykZQe.js +1 -0
  565. package/dist/web/_app/immutable/nodes/8.Chy0HNU1.js +1 -0
  566. package/dist/web/_app/immutable/nodes/9.D10JpFt2.js +1 -0
  567. package/dist/web/_app/version.json +1 -1
  568. package/dist/web/favicon-16.png +0 -0
  569. package/dist/web/favicon-180.png +0 -0
  570. package/dist/web/favicon-32.png +0 -0
  571. package/dist/web/favicon-48.png +0 -0
  572. package/dist/web/favicon-512.png +0 -0
  573. package/dist/web/favicon.ico +0 -0
  574. package/dist/web/favicon.svg +8 -0
  575. package/dist/web/index.html +64 -21
  576. package/dist/web/studiograph-logomark.svg +29 -0
  577. package/package.json +28 -14
  578. package/dist/agent/role-loader.d.ts +0 -24
  579. package/dist/agent/role-loader.js +0 -67
  580. package/dist/agent/role-loader.js.map +0 -1
  581. package/dist/agent/skills/enrich-entities.md +0 -136
  582. package/dist/agent/skills/obsidian-source-setup.md +0 -246
  583. package/dist/agent/skills/skill-loader.d.ts +0 -48
  584. package/dist/agent/skills/skill-loader.js +0 -166
  585. package/dist/agent/skills/skill-loader.js.map +0 -1
  586. package/dist/agent/skills/sync-configuration.md +0 -119
  587. package/dist/agent/skills/sync-setup.md +0 -82
  588. package/dist/agent/tools/sync-tools.d.ts +0 -35
  589. package/dist/agent/tools/sync-tools.js +0 -992
  590. package/dist/agent/tools/sync-tools.js.map +0 -1
  591. package/dist/auth/github.d.ts +0 -56
  592. package/dist/auth/github.js +0 -169
  593. package/dist/auth/github.js.map +0 -1
  594. package/dist/cli/commands/access.d.ts +0 -11
  595. package/dist/cli/commands/access.js +0 -156
  596. package/dist/cli/commands/access.js.map +0 -1
  597. package/dist/cli/commands/app.d.ts +0 -7
  598. package/dist/cli/commands/app.js +0 -268
  599. package/dist/cli/commands/app.js.map +0 -1
  600. package/dist/cli/commands/auth.d.ts +0 -10
  601. package/dist/cli/commands/auth.js +0 -79
  602. package/dist/cli/commands/auth.js.map +0 -1
  603. package/dist/cli/commands/collection.d.ts +0 -10
  604. package/dist/cli/commands/collection.js +0 -185
  605. package/dist/cli/commands/collection.js.map +0 -1
  606. package/dist/cli/commands/enrich.d.ts +0 -11
  607. package/dist/cli/commands/enrich.js +0 -135
  608. package/dist/cli/commands/enrich.js.map +0 -1
  609. package/dist/cli/commands/graphrag.d.ts +0 -12
  610. package/dist/cli/commands/graphrag.js +0 -122
  611. package/dist/cli/commands/graphrag.js.map +0 -1
  612. package/dist/cli/commands/members.d.ts +0 -11
  613. package/dist/cli/commands/members.js +0 -230
  614. package/dist/cli/commands/members.js.map +0 -1
  615. package/dist/cli/commands/org.d.ts +0 -10
  616. package/dist/cli/commands/org.js +0 -132
  617. package/dist/cli/commands/org.js.map +0 -1
  618. package/dist/cli/commands/provision.d.ts +0 -8
  619. package/dist/cli/commands/provision.js +0 -116
  620. package/dist/cli/commands/provision.js.map +0 -1
  621. package/dist/cli/commands/resolve.d.ts +0 -8
  622. package/dist/cli/commands/resolve.js +0 -85
  623. package/dist/cli/commands/resolve.js.map +0 -1
  624. package/dist/cli/commands/review.d.ts +0 -19
  625. package/dist/cli/commands/review.js +0 -128
  626. package/dist/cli/commands/review.js.map +0 -1
  627. package/dist/cli/commands/source.d.ts +0 -16
  628. package/dist/cli/commands/source.js +0 -159
  629. package/dist/cli/commands/source.js.map +0 -1
  630. package/dist/cli/commands/sync-collection.d.ts +0 -14
  631. package/dist/cli/commands/sync-collection.js +0 -355
  632. package/dist/cli/commands/sync-collection.js.map +0 -1
  633. package/dist/cli/commands/sync-entities.d.ts +0 -13
  634. package/dist/cli/commands/sync-entities.js +0 -242
  635. package/dist/cli/commands/sync-entities.js.map +0 -1
  636. package/dist/cli/commands/team.d.ts +0 -12
  637. package/dist/cli/commands/team.js +0 -185
  638. package/dist/cli/commands/team.js.map +0 -1
  639. package/dist/cli/sync-review-interactive.d.ts +0 -31
  640. package/dist/cli/sync-review-interactive.js +0 -393
  641. package/dist/cli/sync-review-interactive.js.map +0 -1
  642. package/dist/core/migration-runner.d.ts +0 -42
  643. package/dist/core/migration-runner.js +0 -232
  644. package/dist/core/migration-runner.js.map +0 -1
  645. package/dist/core/migration-types.d.ts +0 -101
  646. package/dist/core/migration-types.js +0 -21
  647. package/dist/core/migration-types.js.map +0 -1
  648. package/dist/core/migrations/20260219-formalize-memory-location.d.ts +0 -2
  649. package/dist/core/migrations/20260219-formalize-memory-location.js +0 -35
  650. package/dist/core/migrations/20260219-formalize-memory-location.js.map +0 -1
  651. package/dist/core/migrations/20260220-add-workspace-metadata.d.ts +0 -12
  652. package/dist/core/migrations/20260220-add-workspace-metadata.js +0 -65
  653. package/dist/core/migrations/20260220-add-workspace-metadata.js.map +0 -1
  654. package/dist/core/migrations/20260220-add-workspace-readme.d.ts +0 -11
  655. package/dist/core/migrations/20260220-add-workspace-readme.js +0 -82
  656. package/dist/core/migrations/20260220-add-workspace-readme.js.map +0 -1
  657. package/dist/core/migrations/20260220-migrate-yaml-to-json.d.ts +0 -9
  658. package/dist/core/migrations/20260220-migrate-yaml-to-json.js +0 -64
  659. package/dist/core/migrations/20260220-migrate-yaml-to-json.js.map +0 -1
  660. package/dist/core/migrations/index.d.ts +0 -11
  661. package/dist/core/migrations/index.js +0 -23
  662. package/dist/core/migrations/index.js.map +0 -1
  663. package/dist/integrations/asana.d.ts +0 -26
  664. package/dist/integrations/asana.js +0 -78
  665. package/dist/integrations/asana.js.map +0 -1
  666. package/dist/integrations/figma-local.d.ts +0 -16
  667. package/dist/integrations/figma-local.js +0 -10
  668. package/dist/integrations/figma-local.js.map +0 -1
  669. package/dist/integrations/figma.d.ts +0 -17
  670. package/dist/integrations/figma.js +0 -17
  671. package/dist/integrations/figma.js.map +0 -1
  672. package/dist/integrations/granola.d.ts +0 -24
  673. package/dist/integrations/granola.js +0 -60
  674. package/dist/integrations/granola.js.map +0 -1
  675. package/dist/integrations/linear.d.ts +0 -14
  676. package/dist/integrations/linear.js +0 -80
  677. package/dist/integrations/linear.js.map +0 -1
  678. package/dist/integrations/paper-local.d.ts +0 -14
  679. package/dist/integrations/paper-local.js +0 -10
  680. package/dist/integrations/paper-local.js.map +0 -1
  681. package/dist/integrations/paper.d.ts +0 -2
  682. package/dist/integrations/paper.js +0 -10
  683. package/dist/integrations/paper.js.map +0 -1
  684. package/dist/integrations/pipedrive.d.ts +0 -26
  685. package/dist/integrations/pipedrive.js +0 -97
  686. package/dist/integrations/pipedrive.js.map +0 -1
  687. package/dist/integrations/registry.d.ts +0 -8
  688. package/dist/integrations/registry.js +0 -7
  689. package/dist/integrations/registry.js.map +0 -1
  690. package/dist/integrations/types.d.ts +0 -43
  691. package/dist/integrations/types.js +0 -5
  692. package/dist/integrations/types.js.map +0 -1
  693. package/dist/lib/lib/utils.d.ts +0 -2
  694. package/dist/lib/lib/utils.js +0 -6
  695. package/dist/lib/lib/utils.js.map +0 -1
  696. package/dist/mcp/connectors/asana.d.ts +0 -2
  697. package/dist/mcp/connectors/asana.js +0 -20
  698. package/dist/mcp/connectors/asana.js.map +0 -1
  699. package/dist/mcp/connectors/definitions.d.ts +0 -45
  700. package/dist/mcp/connectors/definitions.js +0 -32
  701. package/dist/mcp/connectors/definitions.js.map +0 -1
  702. package/dist/mcp/connectors/figma.d.ts +0 -5
  703. package/dist/mcp/connectors/figma.js +0 -21
  704. package/dist/mcp/connectors/figma.js.map +0 -1
  705. package/dist/mcp/connectors/gdrive.d.ts +0 -2
  706. package/dist/mcp/connectors/gdrive.js +0 -20
  707. package/dist/mcp/connectors/gdrive.js.map +0 -1
  708. package/dist/mcp/connectors/granola.d.ts +0 -2
  709. package/dist/mcp/connectors/granola.js +0 -12
  710. package/dist/mcp/connectors/granola.js.map +0 -1
  711. package/dist/mcp/connectors/linear.d.ts +0 -2
  712. package/dist/mcp/connectors/linear.js +0 -19
  713. package/dist/mcp/connectors/linear.js.map +0 -1
  714. package/dist/mcp/connectors/obsidian.d.ts +0 -2
  715. package/dist/mcp/connectors/obsidian.js +0 -19
  716. package/dist/mcp/connectors/obsidian.js.map +0 -1
  717. package/dist/mcp/connectors/pipedrive.d.ts +0 -2
  718. package/dist/mcp/connectors/pipedrive.js +0 -20
  719. package/dist/mcp/connectors/pipedrive.js.map +0 -1
  720. package/dist/mcp/connectors/slack.d.ts +0 -2
  721. package/dist/mcp/connectors/slack.js +0 -21
  722. package/dist/mcp/connectors/slack.js.map +0 -1
  723. package/dist/mcp/server-oauth-provider.d.ts +0 -56
  724. package/dist/mcp/server-oauth-provider.js +0 -142
  725. package/dist/mcp/server-oauth-provider.js.map +0 -1
  726. package/dist/server/agents/agent-loader.d.ts +0 -16
  727. package/dist/server/agents/agent-loader.js +0 -175
  728. package/dist/server/agents/agent-loader.js.map +0 -1
  729. package/dist/server/agents/agent-runner.d.ts +0 -33
  730. package/dist/server/agents/agent-runner.js +0 -187
  731. package/dist/server/agents/agent-runner.js.map +0 -1
  732. package/dist/server/agents/agent-runtime.d.ts +0 -39
  733. package/dist/server/agents/agent-runtime.js +0 -214
  734. package/dist/server/agents/agent-runtime.js.map +0 -1
  735. package/dist/server/agents/base-agent.d.ts +0 -30
  736. package/dist/server/agents/base-agent.js +0 -88
  737. package/dist/server/agents/base-agent.js.map +0 -1
  738. package/dist/server/agents/executive-digest.d.ts +0 -16
  739. package/dist/server/agents/executive-digest.js +0 -115
  740. package/dist/server/agents/executive-digest.js.map +0 -1
  741. package/dist/server/agents/graph-steward.d.ts +0 -16
  742. package/dist/server/agents/graph-steward.js +0 -59
  743. package/dist/server/agents/graph-steward.js.map +0 -1
  744. package/dist/server/agents/meeting-followup.d.ts +0 -16
  745. package/dist/server/agents/meeting-followup.js +0 -88
  746. package/dist/server/agents/meeting-followup.js.map +0 -1
  747. package/dist/server/agents/pipeline-monitor.d.ts +0 -15
  748. package/dist/server/agents/pipeline-monitor.js +0 -86
  749. package/dist/server/agents/pipeline-monitor.js.map +0 -1
  750. package/dist/server/agents/types.d.ts +0 -81
  751. package/dist/server/agents/types.js +0 -41
  752. package/dist/server/agents/types.js.map +0 -1
  753. package/dist/server/chrome/chrome.css +0 -691
  754. package/dist/server/chrome/chrome.js +0 -374
  755. package/dist/server/collab-authority.d.ts +0 -70
  756. package/dist/server/collab-authority.js +0 -218
  757. package/dist/server/collab-authority.js.map +0 -1
  758. package/dist/server/collab.d.ts +0 -29
  759. package/dist/server/collab.js +0 -195
  760. package/dist/server/collab.js.map +0 -1
  761. package/dist/server/commit-scheduler.d.ts +0 -39
  762. package/dist/server/commit-scheduler.js +0 -113
  763. package/dist/server/commit-scheduler.js.map +0 -1
  764. package/dist/server/plugin-loader.d.ts +0 -53
  765. package/dist/server/plugin-loader.js +0 -155
  766. package/dist/server/plugin-loader.js.map +0 -1
  767. package/dist/server/routes/agents-api.d.ts +0 -10
  768. package/dist/server/routes/agents-api.js +0 -25
  769. package/dist/server/routes/agents-api.js.map +0 -1
  770. package/dist/server/routes/collab.d.ts +0 -6
  771. package/dist/server/routes/collab.js +0 -10
  772. package/dist/server/routes/collab.js.map +0 -1
  773. package/dist/server/routes/git-api.d.ts +0 -9
  774. package/dist/server/routes/git-api.js +0 -82
  775. package/dist/server/routes/git-api.js.map +0 -1
  776. package/dist/server/routes/meeting-ingest-api.d.ts +0 -14
  777. package/dist/server/routes/meeting-ingest-api.js +0 -98
  778. package/dist/server/routes/meeting-ingest-api.js.map +0 -1
  779. package/dist/server/routes/sync-api.d.ts +0 -26
  780. package/dist/server/routes/sync-api.js +0 -848
  781. package/dist/server/routes/sync-api.js.map +0 -1
  782. package/dist/server/routes/webhook.d.ts +0 -14
  783. package/dist/server/routes/webhook.js +0 -102
  784. package/dist/server/routes/webhook.js.map +0 -1
  785. package/dist/services/batch-processor.d.ts +0 -49
  786. package/dist/services/batch-processor.js +0 -166
  787. package/dist/services/batch-processor.js.map +0 -1
  788. package/dist/services/csv-service.d.ts +0 -36
  789. package/dist/services/csv-service.js +0 -143
  790. package/dist/services/csv-service.js.map +0 -1
  791. package/dist/services/github-provisioner.d.ts +0 -36
  792. package/dist/services/github-provisioner.js +0 -126
  793. package/dist/services/github-provisioner.js.map +0 -1
  794. package/dist/services/github-service.d.ts +0 -99
  795. package/dist/services/github-service.js +0 -310
  796. package/dist/services/github-service.js.map +0 -1
  797. package/dist/services/image-import-service.d.ts +0 -24
  798. package/dist/services/image-import-service.js +0 -108
  799. package/dist/services/image-import-service.js.map +0 -1
  800. package/dist/services/insights.d.ts +0 -38
  801. package/dist/services/insights.js +0 -269
  802. package/dist/services/insights.js.map +0 -1
  803. package/dist/services/meeting-processor.d.ts +0 -91
  804. package/dist/services/meeting-processor.js +0 -331
  805. package/dist/services/meeting-processor.js.map +0 -1
  806. package/dist/services/sync/collection-sync.d.ts +0 -60
  807. package/dist/services/sync/collection-sync.js +0 -509
  808. package/dist/services/sync/collection-sync.js.map +0 -1
  809. package/dist/services/sync/commit.d.ts +0 -60
  810. package/dist/services/sync/commit.js +0 -354
  811. package/dist/services/sync/commit.js.map +0 -1
  812. package/dist/services/sync/context-index.d.ts +0 -69
  813. package/dist/services/sync/context-index.js +0 -280
  814. package/dist/services/sync/context-index.js.map +0 -1
  815. package/dist/services/sync/data-fetcher.d.ts +0 -31
  816. package/dist/services/sync/data-fetcher.js +0 -12
  817. package/dist/services/sync/data-fetcher.js.map +0 -1
  818. package/dist/services/sync/derive.d.ts +0 -34
  819. package/dist/services/sync/derive.js +0 -164
  820. package/dist/services/sync/derive.js.map +0 -1
  821. package/dist/services/sync/enrichment-state.d.ts +0 -31
  822. package/dist/services/sync/enrichment-state.js +0 -63
  823. package/dist/services/sync/enrichment-state.js.map +0 -1
  824. package/dist/services/sync/enrichment.d.ts +0 -25
  825. package/dist/services/sync/enrichment.js +0 -121
  826. package/dist/services/sync/enrichment.js.map +0 -1
  827. package/dist/services/sync/entity-refresh.d.ts +0 -30
  828. package/dist/services/sync/entity-refresh.js +0 -275
  829. package/dist/services/sync/entity-refresh.js.map +0 -1
  830. package/dist/services/sync/frontmatter-extractor.d.ts +0 -40
  831. package/dist/services/sync/frontmatter-extractor.js +0 -279
  832. package/dist/services/sync/frontmatter-extractor.js.map +0 -1
  833. package/dist/services/sync/graph-match-state.d.ts +0 -33
  834. package/dist/services/sync/graph-match-state.js +0 -61
  835. package/dist/services/sync/graph-match-state.js.map +0 -1
  836. package/dist/services/sync/graph-match.d.ts +0 -53
  837. package/dist/services/sync/graph-match.js +0 -316
  838. package/dist/services/sync/graph-match.js.map +0 -1
  839. package/dist/services/sync/graphrag-client.d.ts +0 -43
  840. package/dist/services/sync/graphrag-client.js +0 -94
  841. package/dist/services/sync/graphrag-client.js.map +0 -1
  842. package/dist/services/sync/graphrag-config.d.ts +0 -16
  843. package/dist/services/sync/graphrag-config.js +0 -39
  844. package/dist/services/sync/graphrag-config.js.map +0 -1
  845. package/dist/services/sync/graphrag-context.d.ts +0 -14
  846. package/dist/services/sync/graphrag-context.js +0 -109
  847. package/dist/services/sync/graphrag-context.js.map +0 -1
  848. package/dist/services/sync/graphrag-indexer.d.ts +0 -30
  849. package/dist/services/sync/graphrag-indexer.js +0 -358
  850. package/dist/services/sync/graphrag-indexer.js.map +0 -1
  851. package/dist/services/sync/llm.d.ts +0 -32
  852. package/dist/services/sync/llm.js +0 -115
  853. package/dist/services/sync/llm.js.map +0 -1
  854. package/dist/services/sync/mcp-client.d.ts +0 -71
  855. package/dist/services/sync/mcp-client.js +0 -299
  856. package/dist/services/sync/mcp-client.js.map +0 -1
  857. package/dist/services/sync/model-factory.d.ts +0 -13
  858. package/dist/services/sync/model-factory.js +0 -38
  859. package/dist/services/sync/model-factory.js.map +0 -1
  860. package/dist/services/sync/name-quality.d.ts +0 -31
  861. package/dist/services/sync/name-quality.js +0 -60
  862. package/dist/services/sync/name-quality.js.map +0 -1
  863. package/dist/services/sync/output-schemas.d.ts +0 -92
  864. package/dist/services/sync/output-schemas.js +0 -43
  865. package/dist/services/sync/output-schemas.js.map +0 -1
  866. package/dist/services/sync/prompts.d.ts +0 -19
  867. package/dist/services/sync/prompts.js +0 -128
  868. package/dist/services/sync/prompts.js.map +0 -1
  869. package/dist/services/sync/reconciler.d.ts +0 -48
  870. package/dist/services/sync/reconciler.js +0 -294
  871. package/dist/services/sync/reconciler.js.map +0 -1
  872. package/dist/services/sync/rest-client.d.ts +0 -40
  873. package/dist/services/sync/rest-client.js +0 -100
  874. package/dist/services/sync/rest-client.js.map +0 -1
  875. package/dist/services/sync/source-config.d.ts +0 -67
  876. package/dist/services/sync/source-config.js +0 -304
  877. package/dist/services/sync/source-config.js.map +0 -1
  878. package/dist/services/sync/source-definitions/asana.d.ts +0 -14
  879. package/dist/services/sync/source-definitions/asana.js +0 -42
  880. package/dist/services/sync/source-definitions/asana.js.map +0 -1
  881. package/dist/services/sync/source-definitions/definitions.d.ts +0 -8
  882. package/dist/services/sync/source-definitions/definitions.js +0 -8
  883. package/dist/services/sync/source-definitions/definitions.js.map +0 -1
  884. package/dist/services/sync/source-definitions/gdrive.d.ts +0 -16
  885. package/dist/services/sync/source-definitions/gdrive.js +0 -68
  886. package/dist/services/sync/source-definitions/gdrive.js.map +0 -1
  887. package/dist/services/sync/source-definitions/granola.d.ts +0 -2
  888. package/dist/services/sync/source-definitions/granola.js +0 -21
  889. package/dist/services/sync/source-definitions/granola.js.map +0 -1
  890. package/dist/services/sync/source-definitions/linear.d.ts +0 -2
  891. package/dist/services/sync/source-definitions/linear.js +0 -62
  892. package/dist/services/sync/source-definitions/linear.js.map +0 -1
  893. package/dist/services/sync/source-definitions/obsidian.d.ts +0 -2
  894. package/dist/services/sync/source-definitions/obsidian.js +0 -55
  895. package/dist/services/sync/source-definitions/obsidian.js.map +0 -1
  896. package/dist/services/sync/source-definitions/pipedrive.d.ts +0 -2
  897. package/dist/services/sync/source-definitions/pipedrive.js +0 -43
  898. package/dist/services/sync/source-definitions/pipedrive.js.map +0 -1
  899. package/dist/services/sync/staging.d.ts +0 -53
  900. package/dist/services/sync/staging.js +0 -130
  901. package/dist/services/sync/staging.js.map +0 -1
  902. package/dist/services/sync/structured-extractor.d.ts +0 -57
  903. package/dist/services/sync/structured-extractor.js +0 -584
  904. package/dist/services/sync/structured-extractor.js.map +0 -1
  905. package/dist/services/sync/sync-runner.d.ts +0 -32
  906. package/dist/services/sync/sync-runner.js +0 -195
  907. package/dist/services/sync/sync-runner.js.map +0 -1
  908. package/dist/services/sync/sync-state.d.ts +0 -43
  909. package/dist/services/sync/sync-state.js +0 -154
  910. package/dist/services/sync/sync-state.js.map +0 -1
  911. package/dist/services/sync/types.d.ts +0 -381
  912. package/dist/services/sync/types.js +0 -8
  913. package/dist/services/sync/types.js.map +0 -1
  914. package/dist/services/sync/unstructured-extractor.d.ts +0 -27
  915. package/dist/services/sync/unstructured-extractor.js +0 -185
  916. package/dist/services/sync/unstructured-extractor.js.map +0 -1
  917. package/dist/utils/merge-resolver.d.ts +0 -59
  918. package/dist/utils/merge-resolver.js +0 -303
  919. package/dist/utils/merge-resolver.js.map +0 -1
  920. package/dist/utils/workspace-config.d.ts +0 -8
  921. package/dist/utils/workspace-config.js +0 -22
  922. package/dist/utils/workspace-config.js.map +0 -1
  923. package/dist/web/_app/immutable/assets/0.QUqBcyuu.css +0 -1
  924. package/dist/web/_app/immutable/assets/11.2jzI3cZY.css +0 -1
  925. package/dist/web/_app/immutable/assets/12.CT4xL4K3.css +0 -1
  926. package/dist/web/_app/immutable/assets/13.BUrHkYry.css +0 -1
  927. package/dist/web/_app/immutable/assets/2.5jNm7Pm1.css +0 -1
  928. package/dist/web/_app/immutable/assets/3.BxdqT7zi.css +0 -1
  929. package/dist/web/_app/immutable/assets/4.BjPwtpNd.css +0 -1
  930. package/dist/web/_app/immutable/assets/5.DFeGxLYf.css +0 -1
  931. package/dist/web/_app/immutable/assets/6.DXZr_rI_.css +0 -1
  932. package/dist/web/_app/immutable/assets/GraphView.D9ePpZez.css +0 -1
  933. package/dist/web/_app/immutable/assets/Toaster.rN8r_Hzv.css +0 -1
  934. package/dist/web/_app/immutable/assets/ViewToolbar.CZjsdjy4.css +0 -1
  935. package/dist/web/_app/immutable/assets/WorkspaceView.B-1DbivC.css +0 -1
  936. package/dist/web/_app/immutable/assets/wikilinks.CtSydmQl.css +0 -1
  937. package/dist/web/_app/immutable/chunks/3--t-YNA.js +0 -1
  938. package/dist/web/_app/immutable/chunks/5OU-4caN.js +0 -1
  939. package/dist/web/_app/immutable/chunks/7S2LGqoP.js +0 -2
  940. package/dist/web/_app/immutable/chunks/B6FUcAv5.js +0 -1
  941. package/dist/web/_app/immutable/chunks/B9gDgSlp.js +0 -1
  942. package/dist/web/_app/immutable/chunks/BB_5th5W.js +0 -3383
  943. package/dist/web/_app/immutable/chunks/BFtIWl5z.js +0 -1
  944. package/dist/web/_app/immutable/chunks/BHKpz6_7.js +0 -1
  945. package/dist/web/_app/immutable/chunks/BNfrhBeA.js +0 -1
  946. package/dist/web/_app/immutable/chunks/BgO5HlCg.js +0 -2
  947. package/dist/web/_app/immutable/chunks/BqnODQDb.js +0 -1
  948. package/dist/web/_app/immutable/chunks/BrebtJNG.js +0 -18
  949. package/dist/web/_app/immutable/chunks/BvIFhEn7.js +0 -2
  950. package/dist/web/_app/immutable/chunks/BvfdTHv8.js +0 -1
  951. package/dist/web/_app/immutable/chunks/BxGm65PH.js +0 -1
  952. package/dist/web/_app/immutable/chunks/BxyxnEKw.js +0 -1
  953. package/dist/web/_app/immutable/chunks/BygFIGq4.js +0 -1
  954. package/dist/web/_app/immutable/chunks/Bz0ZjVQE.js +0 -2
  955. package/dist/web/_app/immutable/chunks/C0LVZhvn.js +0 -1
  956. package/dist/web/_app/immutable/chunks/CIb_hHMy.js +0 -1
  957. package/dist/web/_app/immutable/chunks/CNKK6nZb.js +0 -1
  958. package/dist/web/_app/immutable/chunks/CQ5FjHZK.js +0 -1
  959. package/dist/web/_app/immutable/chunks/CSVbGg_b.js +0 -5
  960. package/dist/web/_app/immutable/chunks/CX_61fY8.js +0 -5
  961. package/dist/web/_app/immutable/chunks/CYrVHOHA.js +0 -1
  962. package/dist/web/_app/immutable/chunks/CaEaeeKb.js +0 -1
  963. package/dist/web/_app/immutable/chunks/Ch6e_wpP.js +0 -1
  964. package/dist/web/_app/immutable/chunks/Ci4zzCVB.js +0 -2
  965. package/dist/web/_app/immutable/chunks/CknqBVQE.js +0 -1
  966. package/dist/web/_app/immutable/chunks/Cmfiirqp.js +0 -4
  967. package/dist/web/_app/immutable/chunks/CqkleIqs.js +0 -1
  968. package/dist/web/_app/immutable/chunks/CrFpCC6p.js +0 -1
  969. package/dist/web/_app/immutable/chunks/CxX8hcT6.js +0 -1
  970. package/dist/web/_app/immutable/chunks/D0T1ps1G.js +0 -1
  971. package/dist/web/_app/immutable/chunks/D2ZEj9xD.js +0 -1
  972. package/dist/web/_app/immutable/chunks/D3sy0IkA.js +0 -2
  973. package/dist/web/_app/immutable/chunks/DFYOFE3o.js +0 -1
  974. package/dist/web/_app/immutable/chunks/DHWoAC4y.js +0 -1
  975. package/dist/web/_app/immutable/chunks/DYYBfXU3.js +0 -1
  976. package/dist/web/_app/immutable/chunks/DiNPRA8T.js +0 -1
  977. package/dist/web/_app/immutable/chunks/DkjsqHkM.js +0 -1
  978. package/dist/web/_app/immutable/chunks/DnL9f0lc.js +0 -7
  979. package/dist/web/_app/immutable/chunks/DpMCynC3.js +0 -1
  980. package/dist/web/_app/immutable/chunks/DqrybUuA.js +0 -1
  981. package/dist/web/_app/immutable/chunks/DsnmJJEf.js +0 -1
  982. package/dist/web/_app/immutable/chunks/KyjzlWRN.js +0 -2
  983. package/dist/web/_app/immutable/chunks/O9MAeAgV.js +0 -5
  984. package/dist/web/_app/immutable/chunks/PPVm8Dsz.js +0 -1
  985. package/dist/web/_app/immutable/chunks/SKSQ4m85.js +0 -2
  986. package/dist/web/_app/immutable/chunks/WEBTyD-H.js +0 -1
  987. package/dist/web/_app/immutable/chunks/WSUKABI_.js +0 -1
  988. package/dist/web/_app/immutable/chunks/bBXT5iJP.js +0 -1
  989. package/dist/web/_app/immutable/chunks/vxEtkL8z.js +0 -1
  990. package/dist/web/_app/immutable/chunks/wDIGUaoU.js +0 -3
  991. package/dist/web/_app/immutable/chunks/xkNhbnff.js +0 -1
  992. package/dist/web/_app/immutable/chunks/zoVX1Zab.js +0 -1
  993. package/dist/web/_app/immutable/entry/app.GfE4z2GO.js +0 -2
  994. package/dist/web/_app/immutable/entry/start.H-LFJK9u.js +0 -1
  995. package/dist/web/_app/immutable/nodes/0.Bwi7tTNC.js +0 -2
  996. package/dist/web/_app/immutable/nodes/1.DgNJPEWk.js +0 -1
  997. package/dist/web/_app/immutable/nodes/10.BW_XCD2O.js +0 -1
  998. package/dist/web/_app/immutable/nodes/11.DM7RX3Ms.js +0 -1
  999. package/dist/web/_app/immutable/nodes/12.DKgssZo8.js +0 -1
  1000. package/dist/web/_app/immutable/nodes/13.DCdmTre-.js +0 -1
  1001. package/dist/web/_app/immutable/nodes/2.DOA5QBVG.js +0 -266
  1002. package/dist/web/_app/immutable/nodes/3.bpoHQwAI.js +0 -5
  1003. package/dist/web/_app/immutable/nodes/4.ye0Vy7A1.js +0 -11
  1004. package/dist/web/_app/immutable/nodes/5.rxpnYrx_.js +0 -4
  1005. package/dist/web/_app/immutable/nodes/6.DP8HSxtc.js +0 -1
  1006. package/dist/web/_app/immutable/nodes/7.C1h4Bf-E.js +0 -1
  1007. package/dist/web/_app/immutable/nodes/8.BzmQ7S7Y.js +0 -1
  1008. package/dist/web/_app/immutable/nodes/9.CEakpXpF.js +0 -1
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Phase 11 — centralized logger.
3
+ *
4
+ * Single import surface for every log call site:
5
+ *
6
+ * import { log } from '../../utils/log.js';
7
+ * log.info('starting up');
8
+ * log.warn('something looks off:', err);
9
+ *
10
+ * All output flows through `sanitize()` from the server middleware so
11
+ * registry-listed secrets, prefix-shaped tokens, URL credentials, and
12
+ * JSON-quoted secret fields are redacted before reaching stdout/stderr.
13
+ *
14
+ * Modes:
15
+ * - Production (`NODE_ENV === 'production'` or `RAILWAY_ENVIRONMENT` set):
16
+ * sanitize() is always applied.
17
+ * - Development (anything else): raw passthrough — easier to debug
18
+ * with real values visible in your own terminal.
19
+ * - Escape hatch (`STUDIOGRAPH_LOG_RAW=1`): force raw mode regardless of
20
+ * environment. Useful when troubleshooting redaction itself.
21
+ *
22
+ * Why expose `log.*` instead of patching console.* directly here? Two
23
+ * reasons. First, the console patch (in serve.ts) is only safe to apply
24
+ * in production — local dev needs real console for debugging. Second,
25
+ * the explicit `log.*` import surface is what the `no-raw-console` lint
26
+ * rule keys off of: any direct `console.*` call outside this file is a
27
+ * lint warning telling the author to migrate.
28
+ */
29
+ /**
30
+ * The exported logger. Mirrors console's API one-to-one so migration is
31
+ * a search-and-replace: `console.X(...) → log.X(...)`.
32
+ *
33
+ * `log.debug` exists for symmetry; it's silenced in production unless
34
+ * `STUDIOGRAPH_VERBOSE=1`.
35
+ */
36
+ export declare const log: {
37
+ info: (...args: unknown[]) => void;
38
+ warn: (...args: unknown[]) => void;
39
+ error: (...args: unknown[]) => void;
40
+ debug: (...args: unknown[]) => void;
41
+ };
42
+ export declare function installConsolePatch(): void;
@@ -0,0 +1,137 @@
1
+ /**
2
+ * Phase 11 — centralized logger.
3
+ *
4
+ * Single import surface for every log call site:
5
+ *
6
+ * import { log } from '../../utils/log.js';
7
+ * log.info('starting up');
8
+ * log.warn('something looks off:', err);
9
+ *
10
+ * All output flows through `sanitize()` from the server middleware so
11
+ * registry-listed secrets, prefix-shaped tokens, URL credentials, and
12
+ * JSON-quoted secret fields are redacted before reaching stdout/stderr.
13
+ *
14
+ * Modes:
15
+ * - Production (`NODE_ENV === 'production'` or `RAILWAY_ENVIRONMENT` set):
16
+ * sanitize() is always applied.
17
+ * - Development (anything else): raw passthrough — easier to debug
18
+ * with real values visible in your own terminal.
19
+ * - Escape hatch (`STUDIOGRAPH_LOG_RAW=1`): force raw mode regardless of
20
+ * environment. Useful when troubleshooting redaction itself.
21
+ *
22
+ * Why expose `log.*` instead of patching console.* directly here? Two
23
+ * reasons. First, the console patch (in serve.ts) is only safe to apply
24
+ * in production — local dev needs real console for debugging. Second,
25
+ * the explicit `log.*` import surface is what the `no-raw-console` lint
26
+ * rule keys off of: any direct `console.*` call outside this file is a
27
+ * lint warning telling the author to migrate.
28
+ */
29
+ import { sanitize } from '../server/middleware/sanitize.js';
30
+ /**
31
+ * Decide whether the current process should redact log output. Resolved
32
+ * dynamically on every call so tests can flip env vars between cases.
33
+ */
34
+ function shouldRedact() {
35
+ if (process.env.STUDIOGRAPH_LOG_RAW === '1')
36
+ return false;
37
+ return (process.env.NODE_ENV === 'production' ||
38
+ !!process.env.RAILWAY_ENVIRONMENT);
39
+ }
40
+ /**
41
+ * Sanitize a console-style arg list. Strings flow through sanitize();
42
+ * objects are JSON.stringified, sanitized, and JSON.parsed back into a
43
+ * lightly-modified shape so downstream consumers (Fastify logger, error
44
+ * serializers) can still walk them. Non-serializable args fall back to
45
+ * String() coercion.
46
+ */
47
+ function maybeSanitizeArgs(args) {
48
+ if (!shouldRedact())
49
+ return args;
50
+ return args.map((a) => {
51
+ if (typeof a === 'string')
52
+ return sanitize(a);
53
+ if (a instanceof Error) {
54
+ // Construct a new Error with sanitized message + stack so the
55
+ // shape survives downstream `instanceof Error` checks. Note: we
56
+ // can't mutate the original because Error.message is read-only
57
+ // on some V8 builds.
58
+ const e = new Error(sanitize(a.message));
59
+ if (a.stack)
60
+ e.stack = sanitize(a.stack);
61
+ // Preserve any additional properties (e.g. `code`).
62
+ Object.assign(e, { ...a });
63
+ return e;
64
+ }
65
+ if (a && typeof a === 'object') {
66
+ try {
67
+ return JSON.parse(sanitize(JSON.stringify(a)));
68
+ }
69
+ catch {
70
+ return sanitize(String(a));
71
+ }
72
+ }
73
+ return a;
74
+ });
75
+ }
76
+ /**
77
+ * The exported logger. Mirrors console's API one-to-one so migration is
78
+ * a search-and-replace: `console.X(...) → log.X(...)`.
79
+ *
80
+ * `log.debug` exists for symmetry; it's silenced in production unless
81
+ * `STUDIOGRAPH_VERBOSE=1`.
82
+ */
83
+ export const log = {
84
+ info: (...args) => {
85
+ // eslint-disable-next-line no-console
86
+ console.log(...maybeSanitizeArgs(args));
87
+ },
88
+ warn: (...args) => {
89
+ // eslint-disable-next-line no-console
90
+ console.warn(...maybeSanitizeArgs(args));
91
+ },
92
+ error: (...args) => {
93
+ // eslint-disable-next-line no-console
94
+ console.error(...maybeSanitizeArgs(args));
95
+ },
96
+ debug: (...args) => {
97
+ if (shouldRedact() && process.env.STUDIOGRAPH_VERBOSE !== '1')
98
+ return;
99
+ // eslint-disable-next-line no-console
100
+ console.debug(...maybeSanitizeArgs(args));
101
+ },
102
+ };
103
+ /**
104
+ * Idempotent installer for the production console patch. Wraps the four
105
+ * console methods so any third-party (or yet-to-migrate) callsite that
106
+ * still hits `console.*` directly also runs through sanitize() in prod.
107
+ *
108
+ * Called once at boot from `serve.ts` after the master key is loaded
109
+ * (waiting until after master-key load avoids redacting the master-key
110
+ * info line during normal boot). Safe to call multiple times — second
111
+ * call no-ops because the patch records itself on a process-level
112
+ * Symbol.
113
+ */
114
+ const CONSOLE_PATCHED = Symbol.for('studiograph.console.patched');
115
+ export function installConsolePatch() {
116
+ if (!shouldRedact())
117
+ return;
118
+ const g = globalThis;
119
+ if (g[CONSOLE_PATCHED])
120
+ return;
121
+ g[CONSOLE_PATCHED] = true;
122
+ // Capture the originals so the patch can hand the sanitized args back
123
+ // to the underlying writer.
124
+ const orig = {
125
+ log: console.log.bind(console),
126
+ info: console.info.bind(console),
127
+ warn: console.warn.bind(console),
128
+ error: console.error.bind(console),
129
+ debug: console.debug.bind(console),
130
+ };
131
+ console.log = (...args) => orig.log(...maybeSanitizeArgs(args));
132
+ console.info = (...args) => orig.info(...maybeSanitizeArgs(args));
133
+ console.warn = (...args) => orig.warn(...maybeSanitizeArgs(args));
134
+ console.error = (...args) => orig.error(...maybeSanitizeArgs(args));
135
+ console.debug = (...args) => orig.debug(...maybeSanitizeArgs(args));
136
+ }
137
+ //# sourceMappingURL=log.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/utils/log.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  * Run at the start of init, start, and join to surface missing dependencies
5
5
  * as clear, actionable messages before any command logic executes.
6
6
  */
7
- import { execSync } from 'child_process';
7
+ import { execFileSync } from 'child_process';
8
8
  import { log } from '@clack/prompts';
9
9
  /** Minimum supported Node.js major version */
10
10
  export const MIN_NODE_MAJOR = 20;
@@ -13,7 +13,7 @@ export const MIN_NODE_MAJOR = 20;
13
13
  */
14
14
  export function checkGit() {
15
15
  try {
16
- const output = execSync('git --version', { stdio: 'pipe' }).toString().trim();
16
+ const output = execFileSync('git', ['--version'], { stdio: 'pipe' }).toString().trim();
17
17
  const match = output.match(/git version (\S+)/);
18
18
  const version = match ? match[1] : output;
19
19
  return { passed: true, message: `git ${version} found` };
@@ -1 +1 @@
1
- {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../src/utils/preflight.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAErC,8CAA8C;AAC9C,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AAQjC;;GAEG;AACH,MAAM,UAAU,QAAQ;IACtB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QAC9E,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC1C,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,OAAO,QAAQ,EAAE,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,eAAe;YACxB,IAAI,EAAE,sCAAsC;SAC7C,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS;IACvB,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClD,IAAI,KAAK,IAAI,cAAc,EAAE,CAAC;QAC5B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,OAAO,QAAQ,EAAE,CAAC;IAChE,CAAC;IACD,OAAO;QACL,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,YAAY,OAAO,0BAA0B,cAAc,IAAI;QACxE,IAAI,EAAE,oBAAoB,cAAc,2BAA2B;KACpE,CAAC;AACJ,CAAC;AAMD;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,WAA6B,EAAE;IAC1D,MAAM,SAAS,GAAG,QAAQ,EAAE,CAAC;IAC7B,MAAM,UAAU,GAAG,SAAS,EAAE,CAAC;IAE/B,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QACrB,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACtB,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,OAAO,SAAS,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../src/utils/preflight.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAErC,8CAA8C;AAC9C,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AAQjC;;GAEG;AACH,MAAM,UAAU,QAAQ;IACtB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QACvF,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC1C,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,OAAO,QAAQ,EAAE,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,eAAe;YACxB,IAAI,EAAE,sCAAsC;SAC7C,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS;IACvB,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClD,IAAI,KAAK,IAAI,cAAc,EAAE,CAAC;QAC5B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,OAAO,QAAQ,EAAE,CAAC;IAChE,CAAC;IACD,OAAO;QACL,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,YAAY,OAAO,0BAA0B,cAAc,IAAI;QACxE,IAAI,EAAE,oBAAoB,cAAc,2BAA2B;KACpE,CAAC;AACJ,CAAC;AAMD;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,WAA6B,EAAE;IAC1D,MAAM,SAAS,GAAG,QAAQ,EAAE,CAAC;IAC7B,MAAM,UAAU,GAAG,SAAS,EAAE,CAAC;IAE/B,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QACrB,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACtB,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,OAAO,SAAS,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC;AAC/C,CAAC"}
@@ -4,6 +4,9 @@
4
4
  * Provides lightweight version checking that can be called by commands
5
5
  * to notify users of available updates.
6
6
  */
7
+ export interface VersionCheckOptions {
8
+ cachePath?: string;
9
+ }
7
10
  /**
8
11
  * Get current CLI version from package.json
9
12
  */
@@ -12,7 +15,7 @@ export declare function getCurrentVersion(): string;
12
15
  * Check if an update is available (non-blocking, cached)
13
16
  * Returns update info or null if up-to-date or check failed
14
17
  */
15
- export declare function checkForUpdate(): Promise<{
18
+ export declare function checkForUpdate(options?: VersionCheckOptions): Promise<{
16
19
  current: string;
17
20
  latest: string;
18
21
  } | null>;
@@ -10,7 +10,7 @@ import { homedir } from 'os';
10
10
  import { execSync } from 'child_process';
11
11
  import { fileURLToPath } from 'url';
12
12
  import { dirname } from 'path';
13
- const CACHE_PATH = join(homedir(), '.studiograph', 'version-cache.json');
13
+ const DEFAULT_CACHE_PATH = join(homedir(), '.studiograph', 'version-cache.json');
14
14
  const CACHE_TTL_HOURS = 24; // Check once per day
15
15
  /**
16
16
  * Get current CLI version from package.json
@@ -25,11 +25,11 @@ export function getCurrentVersion() {
25
25
  /**
26
26
  * Fetch latest version from npm (with caching)
27
27
  */
28
- async function getLatestVersion() {
28
+ async function getLatestVersion(cachePath = DEFAULT_CACHE_PATH) {
29
29
  // Check cache first
30
- if (existsSync(CACHE_PATH)) {
30
+ if (existsSync(cachePath)) {
31
31
  try {
32
- const cache = JSON.parse(readFileSync(CACHE_PATH, 'utf-8'));
32
+ const cache = JSON.parse(readFileSync(cachePath, 'utf-8'));
33
33
  const cacheAge = Date.now() - new Date(cache.lastChecked).getTime();
34
34
  const cacheAgeHours = cacheAge / (1000 * 60 * 60);
35
35
  if (cacheAgeHours < CACHE_TTL_HOURS) {
@@ -49,7 +49,7 @@ async function getLatestVersion() {
49
49
  });
50
50
  const latest = result.trim();
51
51
  // Update cache
52
- const cacheDir = dirname(CACHE_PATH);
52
+ const cacheDir = dirname(cachePath);
53
53
  if (!existsSync(cacheDir)) {
54
54
  mkdirSync(cacheDir, { recursive: true, mode: 0o755 });
55
55
  }
@@ -57,7 +57,7 @@ async function getLatestVersion() {
57
57
  lastChecked: new Date().toISOString(),
58
58
  latestVersion: latest,
59
59
  };
60
- writeFileSync(CACHE_PATH, JSON.stringify(cache, null, 2), 'utf-8');
60
+ writeFileSync(cachePath, JSON.stringify(cache, null, 2), 'utf-8');
61
61
  return latest;
62
62
  }
63
63
  catch {
@@ -84,9 +84,9 @@ function compareVersions(v1, v2) {
84
84
  * Check if an update is available (non-blocking, cached)
85
85
  * Returns update info or null if up-to-date or check failed
86
86
  */
87
- export async function checkForUpdate() {
87
+ export async function checkForUpdate(options = {}) {
88
88
  const current = getCurrentVersion();
89
- const latest = await getLatestVersion();
89
+ const latest = await getLatestVersion(options.cachePath);
90
90
  if (!latest)
91
91
  return null;
92
92
  const comparison = compareVersions(latest, current);
@@ -1 +1 @@
1
- {"version":3,"file":"version-checker.js","sourceRoot":"","sources":["../../src/utils/version-checker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"version-checker.js","sourceRoot":"","sources":["../../src/utils/version-checker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ /*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:"IBM Plex Sans", "IBM Plex Sans Fallback", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;--font-mono:"IBM Plex Mono", "IBM Plex Mono Fallback", ui-monospace, Menlo, Consolas, monospace;--color-black:#000;--spacing:.25rem;--container-sm:24rem;--container-lg:32rem;--text-xs:.75rem;--text-xs--line-height:1rem;--text-sm:.875rem;--text-sm--line-height:1.25rem;--text-base:.875rem;--text-base--line-height:1.25rem;--text-lg:1.125rem;--text-lg--line-height:1.625rem;--text-xl:1.5rem;--text-xl--line-height:2rem;--text-2xl:2rem;--text-2xl--line-height:2.5rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.625;--radius-xs:.25rem;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.625rem;--radius-xl:.875rem;--shadow-sm:0 2px 8px #00000026;--shadow-md:0 4px 16px #0003;--shadow-lg:0 8px 24px #00000040;--shadow-xl:0 12px 40px #0006;--shadow-2xl:0 24px 80px #00000080;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--text-mono:.8125rem;--text-mono--line-height:1.25rem;--editor-font-size:1rem;--editor-line-height:1.65;--editor-h1-size:1.5rem;--editor-h2-size:1.25rem;--editor-h3-size:1.125rem;--menu-font-size:var(--text-sm);--menu-item-padding:.5rem .625rem;--menu-item-radius:var(--radius-md);--menu-item-height:2rem;--menu-min-width:8.75rem;--btn-height:2rem;--btn-height-lg:2.25rem;--btn-height-sm:1.5rem;--icon-btn-height:1.875rem;--icon-btn-height-sm:1.5rem;--icon-btn-icon-size-sm:var(--icon-xs);--icon-xs:.75rem;--icon-sm:.875rem;--icon-md:1rem;--icon-lg:1.125rem;--icon-xl:1.25rem;--icon-2xl:1.5rem;--icon-btn-icon-size:var(--icon-md);--avatar-md:2.5rem;--fab-height:2.875rem;--input-height:2.25rem;--control-height:2.5rem;--row-height:2.875rem;--row-height-sm:2.25rem;--row-height-tab:2.5rem;--col-padding:1.75rem;--row-icon-gap:1rem;--z-component:10;--z-toolbar:100;--z-dropdown:200;--z-overlay:1000;--z-dialog:1001;--z-tooltip:1100}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{box-sizing:border-box;margin:0;padding:0}:focus{outline:none}html,body{width:100%;overflow:hidden}html{height:100dvh}body{height:100%;font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--text-base--line-height);color:var(--color-text-primary);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{color:inherit;font-family:inherit;font-weight:600;line-height:1.25}h1{font-size:var(--text-2xl);line-height:var(--text-2xl--line-height)}h2{font-size:var(--text-xl);line-height:var(--text-xl--line-height)}h3{font-size:var(--text-lg);line-height:var(--text-lg--line-height)}h4{font-size:var(--text-base);line-height:var(--text-base--line-height)}h5{font-size:var(--text-sm);line-height:var(--text-sm--line-height)}h6{font-size:var(--text-xs);line-height:var(--text-xs--line-height)}input,textarea,select,button,[contenteditable=true],[contenteditable=plaintext-only]{font-size:var(--text-base);line-height:var(--text-base--line-height)}::-webkit-scrollbar{width:.375rem;height:.375rem}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:.1875rem}::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}@media (width<=1023px){.app-frame.mobile-sidebar-open .main-content,.app-frame.mobile-sidebar-open .main-content *,.app-frame.mobile-chat-open .main-content,.app-frame.mobile-chat-open .main-content *{scrollbar-width:none}.app-frame.mobile-sidebar-open .main-content::-webkit-scrollbar{width:0;height:0;display:none}.app-frame.mobile-sidebar-open .main-content ::-webkit-scrollbar{width:0;height:0;display:none}.app-frame.mobile-chat-open .main-content::-webkit-scrollbar{width:0;height:0;display:none}.app-frame.mobile-chat-open .main-content ::-webkit-scrollbar{width:0;height:0;display:none}}}@layer components;@layer utilities{.\@container{container-type:inline-size}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.start-0{inset-inline-start:calc(var(--spacing) * 0)}.end{inset-inline-end:var(--spacing)}.end-0{inset-inline-end:calc(var(--spacing) * 0)}.top-0{top:calc(var(--spacing) * 0)}.top-\[50\%\]{top:50%}.bottom-0{bottom:calc(var(--spacing) * 0)}.left-\[50\%\]{left:50%}.z-50{z-index:50}.z-\[1100\]{z-index:1100}.z-\[1101\]{z-index:1101}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.my-0{margin-block:calc(var(--spacing) * 0)}.ms-auto{margin-inline-start:auto}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-auto{margin-top:auto}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-row{display:table-row}.aspect-square{aspect-ratio:1}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-14{width:calc(var(--spacing) * 14);height:calc(var(--spacing) * 14)}.size-\[1\.375rem\]{width:1.375rem;height:1.375rem}.size-\[var\(--icon-btn-height\,2rem\)\]{width:var(--icon-btn-height,2rem);height:var(--icon-btn-height,2rem)}.size-full{width:100%;height:100%}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-\[var\(--btn-height\,2rem\)\]{height:var(--btn-height,2rem)}.h-\[var\(--btn-height-lg\,2\.25rem\)\]{height:var(--btn-height-lg,2.25rem)}.h-\[var\(--btn-height-sm\,1\.5rem\)\]{height:var(--btn-height-sm,1.5rem)}.h-\[var\(--icon-2xl\)\]{height:var(--icon-2xl)}.h-\[var\(--input-height\,2rem\)\]{height:var(--input-height,2rem)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.max-h-\[300px\]{max-height:300px}.w-3\/4{width:75%}.w-\[var\(--icon-2xl\)\]{width:var(--icon-2xl)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-8{min-width:calc(var(--spacing) * 8)}.min-w-9{min-width:calc(var(--spacing) * 9)}.min-w-10{min-width:calc(var(--spacing) * 10)}.flex-1{flex:1}.flex-shrink,.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.basis-full{flex-basis:100%}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-y{resize:vertical}.scroll-py-1{scroll-padding-block:calc(var(--spacing) * 1)}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-start{justify-content:flex-start}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-\[--spacing\(var\(--gap\)\)\]{gap:calc(var(--spacing) * var(--gap))}.gap-\[11px\]{gap:11px}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\[var\(--radius-md\)\]{border-radius:var(--radius-md)}.rounded-\[var\(--radius-sm\)\]{border-radius:var(--radius-sm)}.rounded-\[var\(--radius-xs\)\]{border-radius:var(--radius-xs)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-s{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-\[color-mix\(in_srgb\,var\(--color-accent-fg\)_30\%\,transparent\)\]{border-color:var(--color-accent-fg)}@supports (color:color-mix(in lab, red, red)){.border-\[color-mix\(in_srgb\,var\(--color-accent-fg\)_30\%\,transparent\)\]{border-color:color-mix(in srgb,var(--color-accent-fg) 30%,transparent)}}.border-\[var\(--color-border\)\]{border-color:var(--color-border)}.border-\[var\(--color-text-tertiary\)\]{border-color:var(--color-text-tertiary)}.border-transparent{border-color:#0000}.bg-\[color-mix\(in_srgb\,var\(--color-accent-fg\)_10\%\,transparent\)\]{background-color:var(--color-accent-fg)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--color-accent-fg\)_10\%\,transparent\)\]{background-color:color-mix(in srgb,var(--color-accent-fg) 10%,transparent)}}.bg-\[var\(--color-accent\)\]{background-color:var(--color-accent)}.bg-\[var\(--color-badge-bg\)\]{background-color:var(--color-badge-bg)}.bg-\[var\(--color-bg\)\]{background-color:var(--color-bg)}.bg-\[var\(--color-bg-elevated\)\]{background-color:var(--color-bg-elevated)}.bg-\[var\(--color-bg-surface\)\]{background-color:var(--color-bg-surface)}.bg-\[var\(--color-destructive\)\]{background-color:var(--color-destructive)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-transparent{background-color:#0000}.bg-clip-padding{background-clip:padding-box}.p-0{padding:calc(var(--spacing) * 0)}.p-1{padding:calc(var(--spacing) * 1)}.p-2{padding:calc(var(--spacing) * 2)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-\[0\.1875rem\]{padding:.1875rem}.px-0{padding-inline:calc(var(--spacing) * 0)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-6{padding-block:calc(var(--spacing) * 6)}.ps-3{padding-inline-start:calc(var(--spacing) * 3)}.pe-8{padding-inline-end:calc(var(--spacing) * 8)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pl-\[19px\]{padding-left:19px}.text-center{text-align:center}.text-start{text-align:start}.align-baseline{vertical-align:baseline}.align-middle{vertical-align:middle}.font-\[inherit\]{font-family:inherit}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-wrap{text-wrap:wrap}.whitespace-nowrap{white-space:nowrap}.text-\[var\(--color-accent-fg\)\]{color:var(--color-accent-fg)}.text-\[var\(--color-accent-text\,\#ededef\)\]{color:var(--color-accent-text,#ededef)}.text-\[var\(--color-badge-text\)\]{color:var(--color-badge-text)}.text-\[var\(--color-text-primary\)\]{color:var(--color-text-primary)}.text-\[var\(--color-text-secondary\)\]{color:var(--color-text-secondary)}.text-\[var\(--color-text-tertiary\)\]{color:var(--color-text-tertiary)}.text-current{color:currentColor}.italic{font-style:italic}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-50{opacity:.5}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 8px 24px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px var(--tw-shadow-color,#0000000a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,background\]{transition-property:color,background;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}.placeholder\:text-\[var\(--color-text-tertiary\)\]::placeholder{color:var(--color-text-tertiary)}@media (hover:hover){.hover\:border-\[var\(--color-accent\)\]:hover{border-color:var(--color-accent)}.hover\:border-\[var\(--color-text-tertiary\)\]:hover{border-color:var(--color-text-tertiary)}.hover\:bg-\[var\(--color-accent-hover\)\]:hover{background-color:var(--color-accent-hover)}.hover\:bg-\[var\(--color-bg-hover\)\]:hover{background-color:var(--color-bg-hover)}.hover\:text-\[var\(--color-text-primary\)\]:hover{color:var(--color-text-primary)}.hover\:text-\[var\(--color-text-secondary\)\]:hover{color:var(--color-text-secondary)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:z-10:focus{z-index:10}.focus\:border-\[var\(--color-accent\,\#f04e4e\)\]:focus{border-color:var(--color-accent,#f04e4e)}.focus-visible\:z-10:focus-visible{z-index:10}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-\[var\(--color-accent\)\]:focus-visible{--tw-ring-color:var(--color-accent)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:ring-offset-\[var\(--color-bg-primary\)\]:focus-visible{--tw-ring-offset-color:var(--color-bg-primary)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-\[var\(--color-bg-hover\)\]:disabled{background-color:var(--color-bg-hover)}.disabled\:text-\[var\(--color-accent-text-disabled\)\]:disabled{color:var(--color-accent-text-disabled)}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-100:disabled{opacity:1}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true]{pointer-events:none}.data-\[disabled\=true\]\:opacity-50[data-disabled=true]{opacity:.5}.data-\[orientation\=horizontal\]\:h-px[data-orientation=horizontal]{height:1px}.data-\[orientation\=horizontal\]\:w-full[data-orientation=horizontal]{width:100%}.data-\[orientation\=vertical\]\:min-h-full[data-orientation=vertical]{min-height:100%}.data-\[orientation\=vertical\]\:w-px[data-orientation=vertical]{width:1px}:is(.\*\*\:data-\[slot\=command-input-wrapper\]\:h-12 *)[data-slot=command-input-wrapper]{height:calc(var(--spacing) * 12)}.data-\[spacing\=0\]\:rounded-none[data-spacing="0"]{border-radius:0}.data-\[spacing\=0\]\:shadow-none[data-spacing="0"]{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.data-\[spacing\=0\]\:first\:rounded-l-md[data-spacing="0"]:first-child{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.data-\[spacing\=0\]\:last\:rounded-r-md[data-spacing="0"]:last-child{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.data-\[state\=active\]\:bg-\[var\(--color-bg-hover\)\][data-state=active]{background-color:var(--color-bg-hover)}.data-\[state\=active\]\:font-medium[data-state=active]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.data-\[state\=active\]\:text-\[var\(--color-text-primary\)\][data-state=active]{color:var(--color-text-primary)}.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow:0 2px 8px var(--tw-shadow-color,#00000026);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.data-\[state\=checked\]\:border-\[var\(--color-accent\)\][data-state=checked]{border-color:var(--color-accent)}.data-\[state\=checked\]\:bg-\[var\(--color-accent\)\][data-state=checked]{background-color:var(--color-accent)}.data-\[state\=checked\]\:text-\[var\(--color-accent-text\)\][data-state=checked]{color:var(--color-accent-text)}.data-\[state\=closed\]\:duration-300[data-state=closed]{--tw-duration:.3s;transition-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{--tw-duration:.5s;transition-duration:.5s}.data-\[spacing\=0\]\:data-\[variant\=outline\]\:border-l-0[data-spacing="0"][data-variant=outline]{border-left-style:var(--tw-border-style);border-left-width:0}.data-\[spacing\=0\]\:data-\[variant\=outline\]\:first\:border-l[data-spacing="0"][data-variant=outline]:first-child{border-left-style:var(--tw-border-style);border-left-width:1px}.data-\[spacing\=default\]\:data-\[variant\=outline\]\:shadow-xs[data-spacing=default][data-variant=outline]{--tw-shadow:0 1px 2px var(--tw-shadow-color,#0000000a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}@media not all and (width>=48rem){.max-md\:rounded-\[var\(--radius-xl\)\]{border-radius:var(--radius-xl)}}@media (width>=40rem){.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:max-w-sm{max-width:var(--container-sm)}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:text-start{text-align:start}}@media (width>=64rem){.lg\:h-\[var\(--icon-md\)\]{height:var(--icon-md)}.lg\:w-\[var\(--icon-md\)\]{width:var(--icon-md)}}.\[\&_\[data-command-group\]\]\:px-2 [data-command-group]{padding-inline:calc(var(--spacing) * 2)}.\[\&_\[data-command-group\]\:not\(\[hidden\]\)_\~\[data-command-group\]\]\:pt-0 [data-command-group]:not([hidden])~[data-command-group]{padding-top:calc(var(--spacing) * 0)}.\[\&_\[data-command-input-wrapper\]_svg\]\:h-5 [data-command-input-wrapper] svg{height:calc(var(--spacing) * 5)}.\[\&_\[data-command-input-wrapper\]_svg\]\:w-5 [data-command-input-wrapper] svg{width:calc(var(--spacing) * 5)}.\[\&_\[data-command-input\]\]\:h-12 [data-command-input]{height:calc(var(--spacing) * 12)}.\[\&_\[data-command-item\]\]\:px-2 [data-command-item]{padding-inline:calc(var(--spacing) * 2)}.\[\&_\[data-command-item\]\]\:py-3 [data-command-item]{padding-block:calc(var(--spacing) * 3)}.\[\&_\[data-command-item\]_svg\]\:h-5 [data-command-item] svg{height:calc(var(--spacing) * 5)}.\[\&_\[data-command-item\]_svg\]\:w-5 [data-command-item] svg{width:calc(var(--spacing) * 5)}.\[\&_img\]\:size-full img{width:100%;height:100%}.\[\&_img\]\:object-cover img{object-fit:cover}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:h-\[var\(--icon-md\)\] svg{height:var(--icon-md)}.\[\&_svg\]\:w-\[var\(--icon-md\)\] svg{width:var(--icon-md)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}@media (width>=64rem){.lg\:\[\&_svg\]\:h-\[var\(--icon-xs\)\] svg{height:var(--icon-xs)}.lg\:\[\&_svg\]\:w-\[var\(--icon-xs\)\] svg{width:var(--icon-xs)}}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:h-\[var\(--icon-btn-icon-size\)\] svg:not([class*=size-]){height:var(--icon-btn-icon-size)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:h-\[var\(--icon-lg\)\] svg:not([class*=size-]){height:var(--icon-lg)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:h-\[var\(--icon-md\)\] svg:not([class*=size-]){height:var(--icon-md)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:h-\[var\(--icon-sm\)\] svg:not([class*=size-]){height:var(--icon-sm)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:w-\[var\(--icon-btn-icon-size\)\] svg:not([class*=size-]){width:var(--icon-btn-icon-size)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:w-\[var\(--icon-lg\)\] svg:not([class*=size-]){width:var(--icon-lg)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:w-\[var\(--icon-md\)\] svg:not([class*=size-]){width:var(--icon-md)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:w-\[var\(--icon-sm\)\] svg:not([class*=size-]){width:var(--icon-sm)}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&\+\[data-slot\=item-content\]\]\:flex-none+[data-slot=item-content]{flex:none}.\[\&\:has\(\[role\=checkbox\]\)\]\:pe-0:has([role=checkbox]){padding-inline-end:calc(var(--spacing) * 0)}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:mt-0\.5>svg{margin-top:calc(var(--spacing) * .5)}.\[\&\>svg\]\:size-3>svg{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:text-\[var\(--color-accent-fg\)\]>svg{color:var(--color-accent-fg)}.\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-sans-latin-400-normal.CDDApCn2.woff2)format("woff2"),url(./ibm-plex-sans-latin-400-normal.CYLoc0-x.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-sans-latin-500-normal.6ng42L7E.woff2)format("woff2"),url(./ibm-plex-sans-latin-500-normal.BgVn5rGT.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-sans-latin-600-normal.CuJfVYMP.woff2)format("woff2"),url(./ibm-plex-sans-latin-600-normal.Cu4Hd6ag.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:italic;font-display:swap;font-weight:400;src:url(./ibm-plex-sans-latin-400-italic.CZTNEAuW.woff2)format("woff2"),url(./ibm-plex-sans-latin-400-italic.CsGl1sm0.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:italic;font-display:swap;font-weight:500;src:url(./ibm-plex-sans-latin-500-italic.BNK2_mGO.woff2)format("woff2"),url(./ibm-plex-sans-latin-500-italic.DpEwFAQM.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2)format("woff2"),url(./ibm-plex-mono-latin-400-normal.CvHOgSBP.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2)format("woff2"),url(./ibm-plex-mono-latin-500-normal.CB9ihrfo.woff)format("woff")}@font-face{font-family:IBM Plex Sans Fallback;src:local(Arial);font-display:swap;size-adjust:98%;ascent-override:105%;descent-override:28%;line-gap-override:0%}@font-face{font-family:IBM Plex Mono Fallback;src:local(Menlo),local(Consolas),local(Courier New);font-display:swap;size-adjust:100%;ascent-override:103%;descent-override:28%;line-gap-override:0%}@media (width<=1023px){:root{--row-height:3.75rem;--menu-item-height:2.25rem;--input-height:2.25rem;--control-height:2.25rem;--icon-btn-height:2.75rem;--icon-btn-icon-size:var(--icon-xl);--fab-height:3.5rem;--text-sm:.9375rem;--text-base:1rem;--text-base--line-height:1.5rem;--text-2xl:1.75rem;--radius-xl:.75rem}}:root{--color-accent:#fe3c3c;--color-accent-hover:#e63939;--color-accent-text:#ededef;--color-destructive:var(--color-accent);--color-destructive-fg:var(--color-accent-fg);--color-destructive-hover:var(--color-accent-hover);--color-link:var(--color-accent-fg,#fe8a8a);--color-agent:#7c7cd9}:root,[data-theme=dark]{--color-bg:#09090b;--color-bg-elevated:#0f0f12;--color-bg-surface:#121216;--color-bg-hover:#1a1a1f;--color-bg-selected:#1a1a1f;--color-border:#1e1e24;--color-border-strong:#2a2a32;--color-text-primary:#ededef;--color-text-secondary:#a0a0a6;--color-text-tertiary:#5c5c66;--color-accent-fg:var(--color-accent-fg-dark,var(--color-accent));--color-accent-bg:var(--color-accent);--color-accent-text-disabled:#5c5c66;--color-accent-muted:#fe535314;--color-badge-bg:#1a1a22;--color-badge-text:#8b8b94}[data-theme=light]{--color-bg:#f8f8fa;--color-bg-elevated:#f0f0f3;--color-bg-surface:#f0f0f3;--color-bg-hover:#e2e2e8;--color-bg-selected:#e2e2e8;--color-border:#dadadf;--color-border-strong:#c9c9d0;--color-text-primary:#1a1a1f;--color-text-secondary:#63636b;--color-text-tertiary:#9898a0;--color-accent-fg:var(--color-accent-fg-light,var(--color-accent));--color-accent-bg:var(--color-accent);--color-accent-text-disabled:#9898a0;--color-accent-muted:#fe535314;--color-accent-text:#1a1a1f;--color-badge-bg:#e0e0e5;--color-badge-text:#63636b}.sg-mobile-sheet{background:var(--color-bg-elevated);border-top:1px solid var(--color-border-strong);border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl);max-height:85vh;color:var(--color-text-primary);flex-direction:column;gap:0;padding:0;display:flex;z-index:var(--z-dialog)!important}.sg-mobile-sheet[data-state=open]{animation:.28s ease-out sg-sheet-slide-in}.sg-mobile-sheet[data-state=closed]{animation:.22s ease-in sg-sheet-slide-out}@keyframes sg-sheet-slide-in{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes sg-sheet-slide-out{0%{transform:translateY(0)}to{transform:translateY(100%)}}.sg-sheet-header{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-4)!important;flex-direction:row!important;display:flex!important}.sg-sheet-title{font-size:var(--text-base);color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.sg-sheet-title:first-child{margin-left:var(--space-3)}.sg-sheet-body{min-height:0;padding:0 var(--space-2) var(--space-2);flex:1;overflow-y:auto}.sg-sheet-row{align-items:center;gap:var(--space-2);width:100%;height:3rem;padding:0 var(--space-2) 0 var(--space-5);border-radius:var(--radius-md);color:var(--color-text-primary);font-family:inherit;font-size:var(--text-base);text-align:left;cursor:pointer;background:0 0;border:none;display:flex}.sg-sheet-row:active{background:var(--color-bg-hover)}.sg-sheet-row:has(>.sg-sheet-row-lead){padding-left:var(--space-2)}.sg-sheet-row-lead{width:2.75rem;height:2.75rem;color:var(--color-text-primary);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.sg-sheet-row-lead :global(svg){width:var(--icon-xl);height:var(--icon-xl)}.sg-sheet-row-trail{width:2.75rem;height:2.75rem;color:var(--color-text-tertiary);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.sg-sheet-row-trail :global(svg){width:var(--icon-xl);height:var(--icon-xl)}.sg-sheet-row-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.sg-sheet-row-value{color:var(--color-text-tertiary);font-size:var(--text-sm);flex-shrink:0}.sg-sheet-search{align-items:center;gap:var(--space-2);margin:var(--space-2);height:var(--input-height);background:var(--color-bg-surface);border-radius:var(--radius-md);color:var(--color-text-secondary);padding:0;display:flex}.sg-sheet-search-lead{color:var(--color-text-secondary)}.sg-sheet-search:focus-within{outline:1px solid var(--color-accent-fg);outline-offset:.125rem}.sg-sheet-search input{min-width:0;font-family:inherit;font-size:var(--text-base);color:var(--color-text-primary);background:0 0;border:none;outline:none;flex:1}.sg-sheet-empty{padding:var(--space-6) var(--space-3);text-align:center;color:var(--color-text-tertiary);font-size:var(--text-sm)}.sg-sheet-footer{justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-4) calc(env(safe-area-inset-bottom,0) + var(--space-4));flex-direction:row!important;display:flex!important}.sg-sheet-btn:disabled{opacity:.4;cursor:not-allowed}@media (width<=1023px){.sg-sheet-btn{border-radius:var(--radius-xl);flex:1}.sg-sheet-row{border-radius:var(--radius-xl)}}.sg-sheet-btn{height:2.5rem;padding:0 var(--space-5);border-radius:var(--radius-md);font-family:inherit;font-size:var(--text-sm);cursor:pointer;border:none;font-weight:500}.sg-sheet-btn-ghost{color:var(--color-text-secondary);background:0 0}.sg-sheet-btn-ghost:active{background:var(--color-bg-hover);color:var(--color-text-primary)}.sg-sheet-btn-primary{background:var(--color-accent);color:var(--color-accent-text)}.toolbar-icon-btn{appearance:none;width:var(--icon-btn-height);height:var(--icon-btn-height);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;font-family:inherit;transition:background .15s,color .15s;display:inline-flex;position:relative}.toolbar-icon-btn:hover,.toolbar-icon-btn:active{background:var(--color-bg-hover);color:var(--color-text-secondary)}.toolbar-icon-btn.active,.toolbar-icon-btn[data-state=open]{background:var(--color-bg-hover);color:var(--color-text-primary)}.dialog-close-btn{width:var(--icon-btn-height);height:var(--icon-btn-height);color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md);background:0 0;border:none;justify-content:center;align-items:center;line-height:1;transition:color .15s,background .15s;display:flex}.dialog-close-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.mobile-top-bar>button svg,.toolbar-icon-btn>svg,.nav-btn>svg,.view-toggle-compact>svg,.tag-filter-chevron,.tag-filter-trigger>svg,.dialog-close-btn>svg{width:var(--icon-btn-icon-size);height:var(--icon-btn-icon-size)}.sg-menu-item>svg{width:var(--icon-md);height:var(--icon-md)}@media (width<=1023px){.toolbar-icon-btn,.dialog-close-btn{border-radius:var(--radius-xl)}.sg-menu-item>svg{width:var(--icon-lg);height:var(--icon-lg)}}.text-input{min-height:var(--row-height);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:0 0;align-items:center;max-height:8.75rem;padding:0 0 0 .8125rem;transition:border-color .15s;display:flex}.text-input:hover{border-color:var(--color-text-tertiary)}.text-input:focus-within{border-color:var(--color-accent)}.input-field{color:var(--color-text-primary);resize:none;white-space:pre-wrap;word-wrap:break-word;field-sizing:content;background:0 0;border:none;outline:none;flex:1;min-height:1.25rem;max-height:7.5rem;padding:.4375rem 0;font-family:inherit;overflow-y:auto}.input-field[data-placeholder]:empty:before{content:attr(data-placeholder);color:var(--color-text-tertiary);pointer-events:none}.input-field::placeholder{color:var(--color-text-tertiary)}.input-field:disabled{opacity:.5}.send-btn{color:var(--color-text-tertiary);pointer-events:none;flex-shrink:0;align-self:flex-end;margin:.375rem}@media (width<=1023px){.send-btn{margin:var(--space-2)}}.send-btn.send-active,.stop-btn{pointer-events:auto;color:var(--color-accent-text,#ededef);background:var(--color-accent);border-radius:var(--radius-md)}@media (pointer:coarse){.tap-target,.tap-target-y{position:relative}.tap-target:before{content:"";inset:var(--tap-expand,-.375rem);position:absolute}.tap-target-y:before{content:"";inset-block:var(--tap-expand,-.375rem);position:absolute;inset-inline:0}}@media (prefers-reduced-motion:reduce){.sg-mobile-sheet[data-state=open],.sg-mobile-sheet[data-state=closed],.sg-mobile-sheet-overlay[data-state=open],.sg-mobile-sheet-overlay[data-state=closed]{animation:none!important}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}[data-sonner-toast]{background:var(--color-bg-elevated)!important;-webkit-backdrop-filter:blur(12px)!important;border:1px solid var(--color-border)!important;color:var(--color-text-primary)!important}.app-boot-loader.svelte-12qhfyh{background:var(--color-bg);justify-content:center;align-items:center;width:100%;height:100vh;display:flex}.app-boot-spinner.svelte-12qhfyh{width:var(--icon-xl);height:var(--icon-xl);border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:.8s linear infinite svelte-12qhfyh-app-boot-spin}@keyframes svelte-12qhfyh-app-boot-spin{to{transform:rotate(360deg)}}.sr-only.svelte-12qhfyh{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:.0625rem;height:.0625rem;margin:-.0625rem;padding:0;position:absolute;overflow:hidden}
@@ -0,0 +1 @@
1
+ .search-loading.svelte-u56y4m{color:var(--color-text-tertiary);font-size:var(--text-base);flex:1;justify-content:center;align-items:center;display:flex}
@@ -0,0 +1 @@
1
+ .login-page.svelte-1x05zx6{background:var(--color-bg);width:100%;min-height:100vh;font-family:var(--font-sans,"IBM Plex Sans", ui-sans-serif, system-ui, sans-serif);justify-content:center;align-items:center;display:flex}.login-card.svelte-1x05zx6{width:100%;max-width:26rem;padding:2.5rem var(--space-8)}.logo.svelte-1x05zx6{align-items:center;gap:var(--space-6);margin-bottom:var(--space-12);flex-direction:column;display:flex}.logo-mark.svelte-1x05zx6{flex-shrink:0;width:4rem;height:4rem;display:block}.logo-text.svelte-1x05zx6{font-size:var(--text-xl);color:var(--color-text-primary);text-align:center;text-wrap:balance;font-weight:600;line-height:1.25}@media (width<=1023px){.login-card.svelte-1x05zx6{padding:var(--space-8) var(--space-6)}}form.svelte-1x05zx6{gap:var(--space-5);flex-direction:column;display:flex}.field.svelte-1x05zx6{flex-direction:column;gap:.375rem;display:flex}.field-label.svelte-1x05zx6{font-size:var(--text-base);color:var(--color-text-secondary);font-weight:500}.field.svelte-1x05zx6 .field-input{height:var(--control-height);border-radius:var(--radius-lg);font-size:var(--text-base)}.error-msg.svelte-1x05zx6{font-size:var(--text-base);color:var(--color-destructive-fg,#fe5353);text-align:center;margin:0}form.svelte-1x05zx6 .submit-btn{height:var(--control-height);border-radius:var(--radius-lg);font-size:var(--text-base);margin-top:var(--space-1);width:100%;font-weight:600}
@@ -0,0 +1 @@
1
+ .setup-page.svelte-g40i6i{background:var(--color-bg);width:100%;min-height:100vh;font-family:var(--font-sans,"IBM Plex Sans", ui-sans-serif, system-ui, sans-serif);justify-content:center;align-items:center;display:flex}.setup-card.svelte-g40i6i{width:100%;max-width:26rem;padding:2.5rem var(--space-8)}.logo.svelte-g40i6i{align-items:center;gap:var(--space-6);margin-bottom:var(--space-12);flex-direction:column;display:flex}.logo-mark.svelte-g40i6i{flex-shrink:0;width:4rem;height:4rem;display:block}.logo-text.svelte-g40i6i{font-size:var(--text-xl);color:var(--color-text-primary);text-align:center;text-wrap:balance;font-weight:600;line-height:1.25}@media (width<=1023px){.setup-card.svelte-g40i6i{padding:var(--space-8) var(--space-6)}}.subtitle.svelte-g40i6i{text-align:center;color:var(--color-text-secondary);font-size:var(--text-base);margin:0 0 1.75rem}form.svelte-g40i6i{gap:var(--space-5);flex-direction:column;display:flex}.field.svelte-g40i6i{flex-direction:column;gap:.375rem;display:flex}.field-label.svelte-g40i6i{font-size:var(--text-base);color:var(--color-text-secondary);font-weight:500}.field-hint.svelte-g40i6i{font-size:var(--text-sm);color:var(--color-text-tertiary,var(--color-text-secondary));opacity:.7}.field.svelte-g40i6i .field-input{height:var(--control-height);border-radius:var(--radius-lg);font-size:var(--text-base)}.error-msg.svelte-g40i6i{font-size:var(--text-base);color:var(--color-destructive-fg,#fe5353);text-align:center;margin:0}form.svelte-g40i6i .submit-btn{height:var(--control-height);border-radius:var(--radius-lg);font-size:var(--text-base);margin-top:var(--space-1);width:100%;font-weight:600}
@@ -0,0 +1 @@
1
+ .picker.svelte-4g8ci4{gap:var(--space-3);flex-direction:column;display:flex}.grid.svelte-4g8ci4{gap:var(--space-2);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}@media (width<=1023px){.grid.svelte-4g8ci4{grid-template-columns:repeat(2,minmax(0,1fr))}}.type-card.svelte-4g8ci4{all:unset;cursor:pointer;box-sizing:border-box;border-radius:var(--radius-lg);border:1px solid var(--color-border);background:0 0;flex-direction:column;gap:.625rem;min-height:10.75rem;padding:1.125rem;transition:border-color .15s;display:flex}.type-card.svelte-4g8ci4:hover:not(.selected){border-color:var(--color-text-tertiary)}.type-card.selected.svelte-4g8ci4{background:var(--color-bg-hover);border-color:var(--color-text-tertiary)}.card-badge.svelte-4g8ci4{width:var(--avatar-md);height:var(--avatar-md);border-radius:var(--radius-md);color:var(--color-text-primary);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.more-badge.svelte-4g8ci4{width:var(--avatar-md);height:var(--avatar-md);border-radius:var(--radius-md);background:var(--color-bg-hover);color:var(--color-text-primary);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.card-name.svelte-4g8ci4{font-size:var(--text-base);color:var(--color-text-primary);letter-spacing:-.01em;font-weight:500}.card-description.svelte-4g8ci4{font-size:var(--text-sm);color:var(--color-text-secondary);text-wrap:pretty;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;font-weight:400;line-height:1.125rem;display:-webkit-box;overflow:hidden}.new-entry-title{margin-bottom:var(--space-5)}.new-entry-meta.svelte-1entna9{align-items:center;gap:var(--space-2);margin:var(--space-2) 0 var(--space-5);display:flex}.new-entry-meta-label.svelte-1entna9{font-size:var(--text-base);color:var(--color-text-secondary);font-weight:400}.new-entry-meta-folder.svelte-1entna9{font-size:var(--text-base);color:var(--color-text-primary);font-weight:500}.new-entry-meta .new-entry-name-input{flex:none;width:16rem}.new-entry-picker-prompt.svelte-1entna9{margin:0 0 var(--space-3);font-size:var(--text-sm);color:var(--color-text-secondary)}.sidebar.svelte-6dohdz{z-index:2;background:var(--color-bg);border-right:1px solid var(--color-border);width:var(--sidebar-desktop-width);flex-direction:column;flex-shrink:0;transition:width .15s;display:flex;position:relative;overflow:visible clip}.sidebar.collapsed.svelte-6dohdz{overflow:visible}@media (width<=1023px){.sidebar.svelte-6dohdz{height:100dvh;z-index:var(--z-dialog);transition:transform .2s ease-out;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);width:calc(100vw - var(--icon-btn-height) - var(--space-4))!important}.sidebar.mobile-open.svelte-6dohdz{box-shadow:var(--shadow-xl);transform:translate(0)}.sidebar.svelte-6dohdz .resize-handle{display:none}.workspace-icon.svelte-6dohdz{border-radius:var(--radius-xl)}@media (prefers-reduced-motion:reduce){.sidebar.svelte-6dohdz{transition:none}}}.rail.svelte-6dohdz{padding:var(--space-2) 0;align-items:center;gap:var(--space-1);flex-direction:column;height:100%;display:flex}.rail-spacer.svelte-6dohdz{flex:1}.rail-btn{border-radius:var(--radius-lg);justify-content:center;align-items:center;transition:none;width:2.25rem!important;height:2.25rem!important;display:flex!important}.rail-btn:hover{background:var(--color-bg-hover)!important}.rail.svelte-6dohdz .workspace-icon:where(.svelte-6dohdz){width:1.75rem;height:1.75rem;font-size:var(--text-base)}.workspace-icon.svelte-6dohdz{width:var(--icon-btn-height);height:var(--icon-btn-height);border-radius:var(--radius-sm);background:var(--color-accent,#f04e4e);color:var(--color-accent-text,#ededef);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.sidebar-scroll.svelte-6dohdz{flex:1;min-height:0;overflow-y:auto}.sidebar-mobile-actions.svelte-6dohdz{display:none}@media (width<=1023px){.sidebar-mobile-actions.svelte-6dohdz{justify-content:space-between;align-items:center;gap:var(--space-2);height:var(--row-height);padding:0 var(--space-4);border-bottom:1px solid var(--color-border);flex-shrink:0;display:flex}.sidebar-mobile-actions-trailing.svelte-6dohdz{align-items:center;gap:var(--space-2);display:flex}}.repo-row{height:var(--row-height);line-height:var(--row-height);width:100%;padding:0 var(--space-3) 0 var(--space-4);text-align:left;align-items:center;gap:calc(var(--row-icon-gap) - (var(--icon-btn-height) - var(--icon-btn-icon-size)) / 2);background:0 0;border:none;border-radius:0;justify-content:flex-start;font-family:inherit;transition:none;display:flex}.repo-row:hover,.repo-row.focused{background:var(--color-bg-hover)}.tree-row{height:var(--row-height);line-height:var(--row-height);padding-left:var(--space-4);padding-right:var(--space-10);color:var(--color-text-secondary);font-size:var(--text-base);text-align:left;align-items:center;gap:calc(var(--row-icon-gap) - (var(--icon-btn-height) - var(--icon-btn-icon-size)) / 2);background:0 0;border:none;border-radius:0;justify-content:flex-start;width:100%;font-family:inherit;transition:none;display:flex;position:relative}.tree-row:hover,.tree-row.focused{background:var(--color-bg-hover)}.subfolder-row.svelte-6dohdz .tree-row{padding-left:calc(var(--space-4) + var(--row-depth,0) * 30px)}.tree-row.selected{background:var(--color-bg-selected);color:var(--color-text-primary);font-weight:600}.tree-row.ancestor{color:var(--color-text-primary);font-weight:600}.tree-row.selected .icon-slot.svelte-6dohdz,.tree-row.ancestor .icon-slot.svelte-6dohdz{color:var(--color-text-primary)}.icon-slot.svelte-6dohdz,.row-chevron.svelte-6dohdz{width:var(--icon-btn-height);height:var(--icon-btn-height);color:var(--color-text-secondary);flex-shrink:0;justify-content:center;align-self:center;align-items:center;display:inline-flex}.icon-slot.svelte-6dohdz svg,.row-chevron.svelte-6dohdz svg{width:var(--icon-btn-icon-size);height:var(--icon-btn-icon-size)}.row-chevron.svelte-6dohdz{transition:transform .15s}.row-chevron.open.svelte-6dohdz{transform:rotate(90deg)}.row-label.svelte-6dohdz{white-space:nowrap;flex:1;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 1rem),#0000 100%);mask-image:linear-gradient(90deg,#000 calc(100% - 1rem),#0000 100%)}.type-header-row{color:var(--color-text-secondary)}.type-header-row.type-active{color:var(--color-text-primary);font-weight:600}.type-header-row .row-label.svelte-6dohdz{flex:none;-webkit-mask-image:none;mask-image:none}.new-entity-row{color:var(--color-text-tertiary);align-items:center}.new-entity-row:hover{color:var(--color-text-secondary)}.entity-row-wrapper.svelte-6dohdz{align-items:center;display:flex;position:relative}.entity-row-wrapper.svelte-6dohdz .tree-row{flex:1;min-width:0}.entity-row-wrapper.svelte-6dohdz .entity-actions-btn{width:var(--icon-btn-height);height:var(--icon-btn-height);cursor:pointer;color:var(--color-text-tertiary);border-radius:var(--radius-sm);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:none;position:absolute;right:.75rem}.entity-row-wrapper.svelte-6dohdz .entity-actions-btn>svg{width:var(--icon-btn-icon-size);height:var(--icon-btn-icon-size)}.entity-row-wrapper.svelte-6dohdz .entity-actions-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.entity-row-wrapper.svelte-6dohdz:hover .tree-row{background:var(--color-bg-hover)}.entity-row-wrapper.svelte-6dohdz:has(.entity-actions-btn.menu-open) .tree-row{background:var(--color-bg-hover)}.entity-row-wrapper.svelte-6dohdz:hover .entity-actions-btn,.entity-row-wrapper.svelte-6dohdz .entity-actions-btn.menu-open{display:inline-flex}.presence-avatar.svelte-6dohdz{width:1.125rem;height:1.125rem;font-size:var(--text-xs);color:var(--color-accent-text,#ededef);background:var(--color-accent);box-sizing:border-box;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-self:center;align-items:center;margin-left:-.1875rem;font-weight:600;display:flex}.presence-avatar.svelte-6dohdz:first-child{z-index:3}.presence-avatar.svelte-6dohdz:nth-child(2){z-index:2}.presence-avatar.svelte-6dohdz:nth-child(3){z-index:1}.agent-activity-avatar.svelte-6dohdz{width:1.125rem;height:1.125rem;color:var(--color-text-secondary);border:1px solid var(--color-border);background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-self:center;align-items:center;margin-left:.1875rem;animation:.2s ease-out svelte-6dohdz-agent-chip-fade-in;display:flex}.agent-activity-avatar.has-owner-color.svelte-6dohdz{color:var(--color-accent-text,#ededef);border-color:#0000}@keyframes svelte-6dohdz-agent-chip-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.unread-dot.svelte-6dohdz{background:var(--color-accent);border-radius:50%;width:.375rem;height:.375rem;display:block}.repo-row .repo-rename-input{border:1px solid var(--color-accent-fg,#f04e4e);min-width:0;height:100%;font-size:var(--text-base);border-radius:.1875rem;flex:1;margin:0;padding:0 .375rem;font-weight:600}.repo-row-wrapper.svelte-6dohdz{align-items:center;display:flex;position:relative}.import-description.svelte-6dohdz{font-size:var(--text-base);color:var(--color-text-primary);margin:0 0 var(--space-3)}.import-filetypes.svelte-6dohdz{margin:0 0 var(--space-4)}.import-modal-body.svelte-6dohdz{padding:0}.import-skipped.svelte-6dohdz{font-size:var(--font-xs);color:var(--color-text-secondary);margin:0 0 var(--space-2)}.import-file-list.svelte-6dohdz{flex-direction:column;max-height:15rem;display:flex;overflow-y:auto}.import-file-row.svelte-6dohdz{padding:.625rem var(--space-3);border-bottom:1px solid var(--color-border);align-items:center;gap:.625rem;display:flex}.import-file-icon.svelte-6dohdz{color:var(--color-text-tertiary);flex-shrink:0}.import-file-info.svelte-6dohdz{flex-direction:column;flex:1;gap:.125rem;min-width:0;display:flex}.import-file-name.svelte-6dohdz{font-size:var(--text-base);color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.import-file-size.svelte-6dohdz{font-size:var(--text-xs);color:var(--color-text-tertiary)}.import-file-remove.svelte-6dohdz{color:var(--color-text-tertiary);cursor:pointer;padding:var(--space-1);border-radius:var(--radius-sm);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.import-file-remove.svelte-6dohdz:hover{color:var(--color-text-primary);background:var(--color-bg-hover)}.import-drop-zone.svelte-6dohdz{border:1px solid var(--color-border,#333);border-radius:var(--radius-lg);padding:var(--space-10) var(--space-4);text-align:center;color:var(--color-text-tertiary);font-size:var(--text-base);justify-content:center;align-items:center;gap:var(--space-2);flex-direction:column;min-height:11.25rem;transition:background .15s;display:flex}.import-drop-zone-active.svelte-6dohdz{border-color:var(--color-accent-fg);background:color-mix(in srgb, var(--color-accent-fg) 6%, transparent);color:var(--color-accent-fg)}.import-drop-zone-compact.svelte-6dohdz{min-height:0;padding:.875rem var(--space-4);margin-top:var(--space-2)}.import-hint.svelte-6dohdz{font-size:var(--text-sm);color:var(--color-text-tertiary);margin:0}.file-picker-link{font:inherit;font-size:var(--text-base);color:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.file-picker-link:hover{text-decoration:none}.file-picker-link-sm{font-size:var(--text-sm)}.repo-row-wrapper.svelte-6dohdz .repo-row{flex:1;min-width:0}.repo-row-wrapper.svelte-6dohdz .repo-actions-btn{width:var(--icon-btn-height);height:var(--icon-btn-height);cursor:pointer;color:var(--color-text-secondary);border-radius:var(--radius-sm);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:none;position:absolute;right:.75rem}.repo-row-wrapper.svelte-6dohdz .repo-actions-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.new-folder-btn,.new-folder-btn .row-chevron.svelte-6dohdz{color:var(--color-text-tertiary)}.new-folder-btn:hover{color:var(--color-text-secondary)}.transfer-header-col.svelte-6dohdz{gap:var(--space-1);flex-direction:column;display:flex}.transfer-list.svelte-6dohdz{flex-direction:column;gap:.125rem;display:flex}.transfer-list-item.svelte-6dohdz{width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--text-sm);cursor:pointer;align-items:center;gap:.625rem;display:flex}.transfer-list-item.svelte-6dohdz:hover{background:var(--color-bg-hover)}.entity-floating-tooltip.svelte-6dohdz{z-index:var(--z-overlay);border-radius:var(--radius-md);background:var(--color-bg-elevated);border:1px solid var(--color-border);pointer-events:none;flex-direction:column;gap:.125rem;min-width:7.5rem;max-width:16.25rem;padding:.375rem .625rem;display:flex;position:fixed;transform:translateY(-50%);box-shadow:0 4px 16px #0000004d}.entity-floating-tooltip.fading.svelte-6dohdz{opacity:0;transition:opacity .12s ease-out}.entity-tooltip-title.svelte-6dohdz{font-size:var(--text-sm);color:var(--color-text-primary);font-weight:600}.entity-tooltip-meta.svelte-6dohdz{font-size:var(--text-sm);color:var(--color-text-tertiary)}.section-add-btn{color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-sm);justify-content:center;align-items:center;width:var(--btn-height-sm)!important;height:var(--btn-height-sm)!important;background:0 0!important;border:none!important;padding:0!important;display:flex!important}.section-add-btn:hover{color:var(--color-text-primary);background:var(--color-bg-hover)!important}.section-row-wrapper.svelte-6dohdz{height:var(--row-height);box-shadow:inset 0 1px 0 var(--color-border)}.sidebar-scroll.svelte-6dohdz>.section-row-wrapper:where(.svelte-6dohdz):first-child{box-shadow:none}.section-row-wrapper.svelte-6dohdz .repo-actions-btn{display:inline-flex}.section-name.svelte-6dohdz{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);text-align:left;flex:1;font-weight:600}.section-row-wrapper.svelte-6dohdz:hover .repo-row{background:var(--color-bg-hover)}@media (width<=1023px){.tree-row{align-items:center;padding-left:calc(var(--space-4) + var(--row-depth,0) * 30px)!important}}.search-area.svelte-xij127{justify-content:center;align-items:center;gap:var(--space-2);width:100%;min-width:0;max-width:30rem;color:var(--color-text-secondary);padding:0 var(--space-3);height:var(--btn-height);background:var(--color-bg-surface);border-radius:var(--radius-lg);cursor:text;flex-shrink:1;transition:background-color .12s;display:flex;position:relative}.search-area.svelte-xij127:hover:not(.focused){background:var(--color-bg-hover)}.search-area.focused.svelte-xij127{outline:1px solid var(--color-accent);background:var(--color-bg);justify-content:flex-start}.search-area.focused.svelte-xij127 .search-input:where(.svelte-xij127){flex:1}.search-input.svelte-xij127{min-width:0;font-family:inherit;font-size:var(--text-base);color:var(--color-text-primary);field-sizing:content;background:0 0;border:none;outline:none}.search-area.focused.svelte-xij127 .search-input:where(.svelte-xij127){field-sizing:fixed}@media (width<=1023px){.search-area.svelte-xij127{height:var(--input-height)}}.search-input.svelte-xij127::placeholder{color:var(--color-text-tertiary)}.search-dropdown.svelte-xij127{top:calc(100% + var(--space-1));background:var(--color-bg-elevated);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);z-index:var(--z-dropdown);max-height:25rem;padding:var(--space-1);position:absolute;left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #0003}.notif-badge.svelte-1xuvmb6{background:var(--color-accent);min-width:.875rem;height:.875rem;color:var(--color-accent-text,#ededef);border-radius:999px;justify-content:center;align-items:center;padding:0 .1875rem;font-size:.625rem;font-weight:600;line-height:1;display:flex;position:absolute;top:.125rem;right:.125rem}.notif-dropdown{flex-direction:column;max-height:25rem;display:flex;overflow:hidden;background:var(--color-bg)!important;border:1px solid var(--color-border)!important;border-radius:var(--radius-lg)!important;width:20rem!important;z-index:var(--z-dropdown)!important;gap:0!important;padding:0!important;box-shadow:0 4px 16px #0000001f!important}.notif-dropdown .notif-header{padding:var(--space-3) var(--space-4) var(--space-3) var(--space-8);box-shadow:0 1px 0 var(--color-border);flex-shrink:0;justify-content:space-between;align-items:baseline;display:flex}.notif-dropdown .notif-title{font-size:var(--text-base);color:var(--color-text-secondary);font-weight:400}.notif-dropdown .notif-mark-all{color:var(--color-accent-fg);font-size:var(--text-xs);cursor:pointer;background:0 0;border:none;padding:0}.notif-dropdown .notif-mark-all:hover{text-decoration:underline}.notif-dropdown .notif-list{flex:1;overflow-y:auto}.notif-dropdown .notif-empty{padding:var(--space-6) var(--space-3);text-align:center;font-size:var(--menu-font-size);color:var(--color-text-tertiary)}.notif-item{text-align:left;cursor:pointer;background:0 0;border:none;align-items:flex-start;width:100%;position:relative;padding:var(--space-3) var(--space-4) var(--space-3) var(--space-8)!important;border-radius:0!important;flex-direction:row!important;display:flex!important}.notif-item+.notif-item{border-top:1px solid var(--color-border)}.notif-item:hover,.notif-item[data-highlighted]{background:var(--color-bg-hover)!important}.notif-dot{background:var(--color-accent);border-radius:.1875rem;width:.375rem;height:.375rem;position:absolute;top:1.0625rem;left:.75rem}.notif-item-body{flex-direction:column;flex:1;gap:.125rem;min-width:0;display:flex}.notif-item-line{align-items:baseline;gap:var(--space-1);font-size:var(--menu-font-size);line-height:1rem;display:flex}.notif-item-who{color:var(--color-text-primary);white-space:nowrap;font-weight:600}.notif-item-time{font-size:var(--text-xs);color:var(--color-text-tertiary);white-space:nowrap;margin-left:auto}.notif-item-preview{font-size:var(--text-xs);line-height:var(--text-xs--line-height);color:var(--color-text-secondary);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.notif-mention{color:var(--color-accent-fg)}.mobile-top-bar.svelte-t2i2yt{height:var(--row-height);align-items:center;gap:var(--space-2);padding:0 var(--space-2);background:var(--color-bg);border-bottom:1px solid var(--color-border);z-index:var(--z-toolbar);flex-shrink:0;display:none}.mobile-top-bar-search.svelte-t2i2yt{flex:1;justify-content:center;min-width:0;display:flex}@media (width<=1023px){.mobile-top-bar.svelte-t2i2yt{display:flex}}.recording-indicator.svelte-1rdz8b7{padding:.125rem var(--space-2);border-radius:var(--radius-md);background:#ef444414;align-items:center;gap:.375rem;display:flex}.recording-info.svelte-1rdz8b7{cursor:pointer;color:var(--color-text-primary);background:0 0;border:none;align-items:center;gap:.375rem;padding:0;font-family:inherit;display:flex}.recording-dot.svelte-1rdz8b7{background:var(--color-destructive,#f04e4e);border-radius:50%;width:.5rem;height:.5rem;animation:1.5s ease-in-out infinite svelte-1rdz8b7-pulse}@keyframes svelte-1rdz8b7-pulse{0%,to{opacity:1}50%{opacity:.3}}.recording-time.svelte-1rdz8b7{font-size:var(--text-sm);font-variant-numeric:tabular-nums;color:var(--color-text-secondary)}.recording-title.svelte-1rdz8b7{font-size:var(--text-sm);color:var(--color-text-tertiary);text-overflow:ellipsis;white-space:nowrap;max-width:7.5rem;overflow:hidden}.stop-btn.svelte-1rdz8b7{width:var(--btn-height-sm);height:var(--btn-height-sm);border-radius:var(--radius-sm);color:var(--color-destructive-fg,#f04e4e);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex}.stop-btn.svelte-1rdz8b7:hover{background:color-mix(in srgb, var(--color-destructive-fg,#f04e4e) 12%, transparent)}.stopping-text.svelte-1rdz8b7{font-size:var(--text-xs);color:var(--color-text-tertiary)}.top-bar.svelte-r6dy5f{height:var(--row-height);border-bottom:1px solid var(--color-border);padding:0 var(--space-4);align-items:center;gap:var(--space-3);background:var(--color-bg);flex-shrink:0;display:flex}.bar-left.svelte-r6dy5f{align-items:center;gap:var(--space-1);flex:1;min-width:0;display:flex}[data-host~=electron-mac] .bar-left.svelte-r6dy5f{padding-left:5rem}[data-host~=electron] .top-bar{-webkit-app-region:drag}[data-host~=electron] .top-bar :is(button,a,input,[role=button],[role=menuitem]),[data-host~=electron] .bar-center{-webkit-app-region:no-drag}.bar-center.svelte-r6dy5f{flex:0 30rem;justify-content:center;min-width:0;display:flex}.bar-right.svelte-r6dy5f{justify-content:flex-end;align-items:center;gap:var(--space-1);flex:1;min-width:0;display:flex}@media (width<=1023px){.top-bar.svelte-r6dy5f{display:none}}.app-footer.svelte-1jf7fcf{height:var(--row-height);padding:0 var(--space-4);background:var(--color-bg);border-top:1px solid var(--color-border);font-size:var(--text-xs);z-index:50;flex-shrink:0;grid-template-columns:1fr auto 1fr;align-items:center;display:grid}@media (width<=1023px){.app-footer.svelte-1jf7fcf{display:none}}.footer-left.svelte-1jf7fcf{align-items:center;gap:0;display:flex}.footer-icon-btn.svelte-1jf7fcf{width:var(--icon-btn-height);height:var(--icon-btn-height);color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;transition:color .15s,background .15s;display:flex}.footer-icon-btn.svelte-1jf7fcf svg{width:var(--icon-btn-icon-size);height:var(--icon-btn-icon-size)}.footer-icon-btn.svelte-1jf7fcf:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.footer-center.svelte-1jf7fcf{justify-content:center;align-items:center;display:flex}.footer-stat.svelte-1jf7fcf{color:var(--color-text-secondary);font-size:var(--text-xs)}.footer-version.svelte-1jf7fcf{color:var(--color-text-secondary);font-size:var(--text-xs);margin-left:var(--space-2)}.footer-sep.svelte-1jf7fcf{color:var(--color-text-secondary);opacity:.5;font-size:var(--text-xs);margin:0 .375rem}.footer-link.svelte-1jf7fcf{font-size:var(--text-xs);color:var(--color-text-secondary);text-decoration:none}.footer-link.svelte-1jf7fcf:hover{color:var(--color-text-primary)}.footer-right.svelte-1jf7fcf{justify-content:flex-end;align-items:center;gap:var(--space-2);display:flex}.collaborator.svelte-1jf7fcf{align-items:center;gap:var(--space-1);display:inline-flex}.collaborator-avatar.svelte-1jf7fcf{width:var(--icon-lg);height:var(--icon-lg);background:var(--color-accent);color:var(--color-accent-text,#ededef);font-size:var(--text-xs);border-radius:50%;justify-content:center;align-items:center;font-weight:600;display:flex}.agent-avatar.svelte-1jf7fcf{color:var(--color-text-secondary);border:1px solid var(--color-border);background:0 0}.agent-avatar.has-owner-color.svelte-1jf7fcf{color:var(--color-accent-text,#ededef);border-color:#0000}.collaborator-name.svelte-1jf7fcf{font-size:var(--text-xs);color:var(--color-text-secondary)}.formatting-palette.svelte-13701ak{padding:var(--space-1);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md,.5rem);z-index:var(--z-component);align-items:center;gap:.125rem;display:flex;position:absolute;bottom:1.375rem;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #00000014,0 1px 2px #0000000a}.fmt-btn.svelte-13701ak{border-radius:var(--radius-sm);width:1.625rem;height:1.625rem;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.fmt-btn.svelte-13701ak:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.fmt-sep.svelte-13701ak{background:var(--color-border);width:.0625rem;height:.875rem;margin:0 .1875rem}@media (width<=1023px){.formatting-palette.svelte-13701ak{bottom:1.625rem}}.settings-loader-overlay.svelte-8zzv64{all:unset;z-index:var(--z-overlay);cursor:default;background:#0009;position:fixed;inset:0}[data-theme=light] .settings-loader-overlay.svelte-8zzv64{background:#00000040}.settings-loader-center.svelte-8zzv64{z-index:var(--z-dialog);pointer-events:none;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.settings-loader-spinner-wrap.svelte-8zzv64{opacity:0;animation:.2s ease-out 50ms forwards svelte-8zzv64-settings-loader-fade}@keyframes svelte-8zzv64-settings-loader-fade{to{opacity:1}}.sr-only.svelte-8zzv64{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:.0625rem;height:.0625rem;margin:-.0625rem;padding:0;position:absolute;overflow:hidden}.app-frame.svelte-vr1z90{background:var(--color-bg);flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}.chat-panel-shell.svelte-vr1z90{background:var(--color-bg);border-left:1px solid var(--color-border);width:var(--chat-desktop-width);flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative}.chat-panel-shell-spinner.svelte-vr1z90{width:var(--icon-xl);height:var(--icon-xl);border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:.8s linear infinite svelte-vr1z90-chat-panel-shell-spin}@keyframes svelte-vr1z90-chat-panel-shell-spin{to{transform:rotate(360deg)}}@media (width<=1023px){.chat-panel-shell.svelte-vr1z90{height:100dvh;z-index:var(--z-dialog);box-shadow:var(--shadow-xl);animation:.2s ease-out svelte-vr1z90-chat-shell-slide-in;position:fixed;top:0;bottom:0;right:0;width:calc(100vw - var(--icon-btn-height) - var(--space-4))!important}@keyframes svelte-vr1z90-chat-shell-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}}.app-body.svelte-vr1z90{flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.main-content.svelte-vr1z90{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.mobile-backdrop.svelte-vr1z90{z-index:var(--z-overlay);cursor:pointer;background:#00000080;border:0;padding:0;animation:.18s ease-out svelte-vr1z90-backdrop-fade-in;position:fixed;inset:0}[data-theme=light] .mobile-backdrop.svelte-vr1z90{background:#00000040}@keyframes svelte-vr1z90-backdrop-fade-in{0%{opacity:0}to{opacity:1}}@media (width>=768px){.mobile-backdrop.svelte-vr1z90{display:none}}@media (prefers-reduced-motion:reduce){.mobile-backdrop.svelte-vr1z90{animation:none}}.nav-progress.svelte-12i33sa{z-index:9999;pointer-events:none;background:0 0;height:2px;position:fixed;top:0;left:0;right:0;overflow:hidden}.nav-progress.svelte-12i33sa:after{content:"";background:var(--color-accent);width:40%;height:100%;animation:1.1s ease-in-out infinite svelte-12i33sa-nav-progress-slide;position:absolute;top:0;left:0}@keyframes svelte-12i33sa-nav-progress-slide{0%{transform:translate(-100%)}50%{transform:translate(160%)}to{transform:translate(260%)}}.wikilink-popup.svelte-1hc6xb6{z-index:var(--z-tooltip);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-bg-elevated);width:22.5rem;max-height:20rem;font-family:var(--font-sans);flex-direction:column;display:flex;position:fixed;overflow:hidden;box-shadow:0 8px 24px #0000004d}.wikilink-list.svelte-1hc6xb6{flex:1;min-height:0;padding:.375rem;overflow-y:auto}.wikilink-item.svelte-1hc6xb6{all:unset;cursor:pointer;box-sizing:border-box;width:100%;padding:var(--menu-item-padding);min-height:var(--menu-item-height);border-radius:var(--menu-item-radius);font-size:var(--text-base);color:var(--color-text-primary);align-items:center;gap:.625rem;display:flex}.wikilink-item.selected.svelte-1hc6xb6{background:var(--color-bg-hover)}.wikilink-dot.svelte-1hc6xb6{width:var(--icon-xs);height:var(--icon-xs);border-radius:50%;flex-shrink:0}.wikilink-title.svelte-1hc6xb6{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.wikilink-meta.svelte-1hc6xb6{font-size:var(--text-sm);color:var(--color-text-secondary);flex-shrink:0}
@@ -0,0 +1 @@
1
+ .home-input-wrap.svelte-1anss1t{width:100%;max-width:48rem}.home-input.svelte-1anss1t{min-height:var(--row-height);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:0 0;flex-direction:column;padding:0;transition:border-color .15s;display:flex}.home-input.svelte-1anss1t:focus-within{border-color:var(--color-accent)}.home-input-dragover.svelte-1anss1t{border-color:var(--color-accent);background:color-mix(in srgb, var(--color-accent) 6%, transparent)}.home-input-field.svelte-1anss1t:disabled{cursor:not-allowed;color:var(--color-text-secondary)}.home-input-toolbar.svelte-1anss1t{justify-content:space-between;align-items:center;padding:.375rem;display:flex}.home-input-attach.svelte-1anss1t{align-items:center;display:flex}.home-drop-indicator.svelte-1anss1t{justify-content:center;align-items:center;gap:var(--space-2);min-height:10rem;color:var(--color-accent-fg);font-size:var(--text-base);pointer-events:none;flex-direction:column;padding:.625rem 0;font-weight:400;display:flex}.home-input-field.svelte-1anss1t{width:100%;font-family:inherit;font-size:var(--text-base);line-height:var(--text-base--line-height);color:var(--color-text-primary);resize:none;field-sizing:content;background:0 0;border:none;outline:none;min-height:10rem;max-height:18.75rem;padding:.75rem .875rem 0;overflow-y:auto}.home-input-field.svelte-1anss1t::placeholder{color:var(--color-text-tertiary)}.home-input-actions.svelte-1anss1t{align-items:center;gap:var(--space-1);display:flex}.home-attach-btn{color:var(--color-text-tertiary);border-radius:var(--radius-md);flex-shrink:0}.home-attach-btn:hover{color:var(--color-text-secondary)}.home-send-btn{color:var(--color-text-tertiary);pointer-events:none;flex-shrink:0}.home-send-btn.home-send-active{pointer-events:auto;color:var(--color-accent-text,#ededef);background:var(--color-accent);border-radius:var(--radius-md)}.home-send-btn.home-send-active:disabled{background:var(--color-bg-hover);color:var(--color-text-tertiary);opacity:1}.tasks-section.svelte-q21uam{gap:var(--space-3);flex-direction:column;width:100%;display:flex}.tasks-header.svelte-q21uam{align-items:baseline;gap:var(--space-2);display:flex}.tasks-title.svelte-q21uam{font-size:var(--text-base);color:var(--color-text-secondary);margin:0;font-weight:500}.tasks-view-all.svelte-q21uam{all:unset;font-size:var(--text-xs);color:var(--color-text-tertiary);cursor:pointer}.tasks-view-all.svelte-q21uam:hover{color:var(--color-text-secondary);text-decoration:underline}@media (width<=1023px){.tasks-view-all.svelte-q21uam{display:none}}.tasks-list.svelte-q21uam{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg);overflow:hidden}.task-row.svelte-q21uam{padding:.625rem var(--space-3);align-items:center;gap:.625rem;display:flex}.task-text.svelte-q21uam{flex:1;align-items:baseline;gap:.625rem;min-width:0;display:flex}.task-row.svelte-q21uam+.task-row:where(.svelte-q21uam){border-top:1px solid var(--color-border)}.task-name.svelte-q21uam{all:unset;font-size:var(--text-base);color:var(--color-text-primary);cursor:pointer;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.task-name.is-overflowing{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 1.5rem),#0000 100%);mask-image:linear-gradient(90deg,#000 calc(100% - 1.5rem),#0000 100%)}.task-name.svelte-q21uam:hover{color:var(--color-accent-fg)}.task-row.done.svelte-q21uam .task-name:where(.svelte-q21uam){color:var(--color-text-tertiary);text-decoration:line-through}.task-row.done.svelte-q21uam .task-due:where(.svelte-q21uam){text-decoration:line-through}.task-due.svelte-q21uam{font-size:var(--text-xs);color:var(--color-text-tertiary);white-space:nowrap;flex-shrink:0}.task-due.overdue.svelte-q21uam{color:var(--color-accent-fg)}@media (width<=1023px){.task-row.svelte-q21uam{padding:.875rem var(--space-4)}}.meetings-section.svelte-1q98wxk{gap:var(--space-3);flex-direction:column;width:100%;display:flex}.meetings-header.svelte-1q98wxk{align-items:center;gap:var(--space-2);display:flex}.meetings-title.svelte-1q98wxk{font-size:var(--text-base);color:var(--color-text-secondary);margin:0;font-weight:500}.meetings-list.svelte-1q98wxk{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg);overflow:hidden}.meeting-row.svelte-1q98wxk{all:unset;padding:.625rem var(--space-3);box-sizing:border-box;cursor:pointer;align-items:center;gap:.625rem;width:100%;display:flex}.meeting-row.svelte-1q98wxk+.meeting-row:where(.svelte-1q98wxk){border-top:1px solid var(--color-border)}.meeting-row.svelte-1q98wxk:hover{background:var(--color-bg-hover)}.meeting-time.svelte-1q98wxk{font-size:var(--text-sm);color:var(--color-text-tertiary);white-space:nowrap;flex-shrink:0;min-width:4rem}.meeting-name.svelte-1q98wxk{font-size:var(--text-base);color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.meeting-attendees.svelte-1q98wxk{font-size:var(--text-xs);color:var(--color-text-tertiary);white-space:nowrap;flex-shrink:0;max-width:12.5rem;overflow:hidden}.meeting-attendees.svelte-1q98wxk.is-overflowing{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 1.875rem),#0000 100%);mask-image:linear-gradient(90deg,#000 calc(100% - 1.875rem),#0000 100%)}.starters-section.svelte-efacsa{gap:var(--space-3);flex-direction:column;width:100%;display:flex}.starters-header.svelte-efacsa{align-items:center;gap:var(--space-2);display:flex}.starters-title.svelte-efacsa{font-size:var(--text-base);color:var(--color-text-secondary);margin:0;font-weight:500}.starters-grid.svelte-efacsa{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}@container (width>=701px){.starter-card.svelte-efacsa:last-child:nth-child(3n+1),.starter-card.svelte-efacsa:last-child:nth-child(3n+2),.starter-card.svelte-efacsa:nth-last-child(2):nth-child(3n+1){display:none}}@container (width<=700px){.starters-grid.svelte-efacsa{grid-template-columns:repeat(2,minmax(0,1fr))}.starter-card.svelte-efacsa:last-child:nth-child(odd){display:none}}.starter-card.svelte-efacsa{all:unset;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg);cursor:pointer;align-items:center;gap:.625rem;min-width:0;transition:border-color .15s,background .15s;display:flex}.starter-card.svelte-efacsa:hover{background:var(--color-bg-hover)}.starter-card.svelte-efacsa:focus-visible{background:var(--color-bg-hover);outline:none}.starter-icon.svelte-efacsa{color:var(--color-text-secondary);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.starter-title.svelte-efacsa{font-size:var(--text-sm);color:var(--color-text-primary);white-space:nowrap;min-width:0;font-weight:500;line-height:1.3;overflow:hidden}.starter-title.is-overflowing{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 1.5rem),#0000 100%);mask-image:linear-gradient(90deg,#000 calc(100% - 1.5rem),#0000 100%)}@container (width<=700px){@media (orientation:portrait){.starter-card.svelte-efacsa{min-height:var(--row-height);padding-top:.375rem;padding-bottom:.375rem}.starter-title.svelte-efacsa{white-space:normal;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.starter-title.is-overflowing{-webkit-mask-image:none;mask-image:none}}}.home.svelte-h7bcrl{flex-direction:column;flex:1;min-height:0;display:flex;position:relative;overflow-y:auto;container-type:inline-size}.home-flow.svelte-h7bcrl{max-width:48rem;padding:var(--space-12) var(--space-6) var(--space-12);box-sizing:border-box;flex-direction:column;gap:2.25rem;width:100%;margin:0 auto;display:flex}.section-greeting.svelte-h7bcrl{margin:0}.greeting.svelte-h7bcrl{font-size:var(--text-2xl);color:var(--color-text-primary);letter-spacing:-.01em;margin:0;font-weight:400;line-height:1.2}@container (width<=700px){.greeting.svelte-h7bcrl{font-size:var(--text-xl)}}.section-label.svelte-h7bcrl{font-size:var(--text-base);color:var(--color-text-secondary);margin:0;font-weight:500}.section-capture.svelte-h7bcrl{gap:var(--space-3);flex-direction:column;display:flex}.capture-section-header.svelte-h7bcrl{align-items:baseline;gap:var(--space-2);display:flex}.filetypes-link{all:unset;font-size:var(--text-xs);color:var(--color-text-tertiary);cursor:pointer}.filetypes-link:hover{color:var(--color-text-secondary);text-decoration:underline}@media (width<=1023px){.filetypes-link{display:none}}.filetypes-popover{background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-3);z-index:var(--z-toolbar);max-width:22rem}.capture-loading.svelte-h7bcrl{align-items:center;gap:var(--space-2);margin-top:var(--space-2);font-size:var(--text-sm);color:var(--color-text-tertiary);display:flex}.capture-confirmation.svelte-h7bcrl{gap:var(--space-1);margin-top:var(--space-2);padding:.625rem var(--space-3);border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-bg-surface);flex-direction:column;width:100%;max-width:48rem;display:flex}.capture-header.svelte-h7bcrl{margin-bottom:var(--space-1);justify-content:space-between;align-items:center;display:flex}.capture-check.svelte-h7bcrl{font-size:var(--text-xs);color:var(--color-text-secondary);font-weight:500}.capture-dismiss.svelte-h7bcrl{width:var(--icon-xl);height:var(--icon-xl);color:var(--color-text-tertiary);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.capture-dismiss.svelte-h7bcrl:hover{background:var(--color-bg-hover);color:var(--color-text-secondary)}
@@ -0,0 +1 @@
1
+ .property-row.svelte-eh8ho9{padding:.3125rem var(--space-2);margin:0 calc(-1 * var(--space-2));border-radius:var(--radius-lg);min-height:var(--row-height-sm);grid-template-columns:1.25rem 8.125rem 1fr;align-items:start;gap:.625rem;display:grid;position:relative}.row-editable.svelte-eh8ho9{cursor:pointer}.row-editable.svelte-eh8ho9:hover{background:var(--color-bg-hover)}.prop-icon.svelte-eh8ho9{height:1.5rem;color:var(--color-text-tertiary);justify-content:center;align-items:center;display:flex}.prop-key.svelte-eh8ho9{font-size:var(--text-base);color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;line-height:1.5rem;overflow:hidden}.prop-value.svelte-eh8ho9{font-size:var(--text-base);color:var(--color-text-primary);flex-wrap:wrap;align-items:baseline;gap:.375rem;min-width:0;line-height:1.5rem;display:flex}.dot.svelte-eh8ho9{border-radius:50%;flex-shrink:0;align-self:center;width:.375rem;height:.375rem}.empty-hint.svelte-eh8ho9{color:var(--color-text-tertiary)}.text-value.svelte-eh8ho9{word-break:break-word;line-height:1.5}.wikilink-chip.svelte-eh8ho9{font-size:var(--text-sm);border:none;border-radius:999px;align-items:center;padding:.125rem .875rem;font-family:inherit;display:inline-flex}.wikilink-active.svelte-eh8ho9{background:color-mix(in srgb, var(--color-accent-fg) 17%, transparent);color:var(--color-text-primary);cursor:pointer}.wikilink-active.svelte-eh8ho9:hover{background:color-mix(in srgb, var(--color-accent-fg) 27%, transparent)}.wikilink-inactive.svelte-eh8ho9{background:var(--color-bg-surface);color:var(--color-text-tertiary)}.tag-pill.svelte-eh8ho9{font-size:var(--text-sm);background:var(--color-bg-surface);color:var(--color-text-secondary);border-radius:999px;align-items:center;padding:.125rem .875rem;font-family:inherit;display:inline-flex}.url-link.svelte-eh8ho9{color:var(--color-link,var(--color-accent));white-space:nowrap;text-overflow:ellipsis;text-decoration:none;overflow:hidden}.url-link.svelte-eh8ho9:hover{text-decoration:underline}.schema-list.svelte-eh8ho9{flex-direction:column;gap:.125rem;width:100%;margin:0;padding:0;list-style:none;display:flex}.schema-row.svelte-eh8ho9{line-height:var(--text-sm--line-height);align-items:baseline;gap:.625rem;display:flex}.schema-col-name.svelte-eh8ho9{color:var(--color-text-primary);font-variant-numeric:tabular-nums}.schema-col-type.svelte-eh8ho9{color:var(--color-text-tertiary);font-size:var(--text-sm)}.badge-value.svelte-eh8ho9{padding:.125rem var(--space-2);font-size:var(--text-xs);border-radius:var(--radius-sm);background:var(--color-bg-surface);color:var(--color-text-secondary);display:inline-flex}.edit-btn.svelte-eh8ho9{all:unset;right:var(--space-2);width:var(--btn-height-sm);height:var(--btn-height-sm);color:var(--color-text-tertiary);cursor:pointer;opacity:0;justify-content:center;align-items:center;transition:opacity .15s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.property-row.svelte-eh8ho9:hover .edit-btn:where(.svelte-eh8ho9){opacity:1}.property-row.is-list.svelte-eh8ho9 .edit-btn:where(.svelte-eh8ho9){top:var(--space-2);transform:none}.autocomplete-wrapper.svelte-84vb17{width:100%}.input-area.svelte-84vb17{border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color .15s;overflow:hidden}.input-area.has-results.svelte-84vb17{border-color:var(--color-accent)}.input-container.svelte-84vb17{align-items:center;gap:var(--space-1);min-height:var(--input-height);padding:var(--space-1) var(--space-2);cursor:text;flex-wrap:wrap;display:flex}.chip.svelte-84vb17{all:unset;align-items:center;gap:var(--space-1);padding:.125rem var(--space-3);font-size:var(--text-sm);background:color-mix(in srgb, var(--color-accent-fg) 17%, transparent);color:var(--color-text-secondary);cursor:pointer;border-radius:999px;flex-shrink:0;display:inline-flex}.chip.svelte-84vb17:hover{background:color-mix(in srgb, var(--color-accent-fg) 27%, transparent);color:var(--color-text-primary)}.chip.chip-inactive.svelte-84vb17{background:var(--color-bg-surface);color:var(--color-text-tertiary)}.input-wrap.svelte-84vb17{flex:1;align-items:center;gap:.375rem;min-width:5rem;display:flex}.search-icon-wrap.svelte-84vb17{color:var(--color-text-tertiary);flex-shrink:0;align-items:center;display:flex}.ac-input{min-width:3.75rem;height:1.5rem;font-size:var(--text-base);color:var(--color-text-primary);background:0 0;border:none;outline:none;flex:1;padding:0;font-family:inherit}.results-list{border-top:1px solid var(--color-border);max-height:12.5rem;padding:var(--space-1);overflow-y:auto}.combobox-item{justify-content:space-between;align-items:center;gap:var(--space-2);min-height:var(--menu-item-height);padding:var(--menu-item-padding);border-radius:var(--menu-item-radius);cursor:pointer;outline:none;display:flex}.combobox-item[data-highlighted]{background:var(--color-bg-hover)}.entity-title.svelte-84vb17{font-size:var(--text-base);color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.entity-type-label.svelte-84vb17{font-size:var(--text-xs);color:var(--color-text-tertiary);flex-shrink:0}.combobox-hint.svelte-84vb17{padding:var(--space-2);font-size:var(--text-sm);color:var(--color-text-tertiary)}.field-edit-form.svelte-1ez75tk{gap:var(--space-4);flex-direction:column;display:flex}.form-row.svelte-1ez75tk{flex-direction:column;gap:.375rem;display:flex}.form-label.svelte-1ez75tk{font-size:var(--text-xs);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em;font-weight:500}.form-textarea.svelte-1ez75tk{font-size:var(--text-base);color:var(--color-text-primary);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2) .625rem;resize:vertical;field-sizing:content;outline:none;min-height:3.75rem;font-family:inherit;line-height:1.5}.form-textarea.svelte-1ez75tk:focus{border-color:var(--color-accent)}.form-error.svelte-1ez75tk{font-size:var(--text-xs);color:var(--color-destructive-fg,#f04e4e)}.status-dot.svelte-1ez75tk{border-radius:50%;flex-shrink:0;width:.375rem;height:.375rem}.item-label{flex:1;align-items:center;gap:.375rem;display:inline-flex}.danger-body.svelte-1ez75tk{flex-direction:column;flex:1;gap:.125rem;min-width:0;display:flex}.delete-btn{color:var(--color-text-secondary)!important;margin-right:auto!important}.footer-right.svelte-1ez75tk{gap:var(--space-2);margin-left:auto;display:flex}.inline-calendar.svelte-1ez75tk{gap:var(--space-2);flex-direction:column;display:flex}.cal-container.svelte-1ez75tk{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg,#fff);overflow:hidden}.cal-text-input.svelte-1ez75tk{width:100%;padding:var(--space-2) .625rem;font-size:var(--text-base);color:var(--color-text-primary);border:none;border-bottom:1px solid var(--color-border);box-sizing:border-box;background:0 0;outline:none;font-family:inherit}.cal-text-input.svelte-1ez75tk:focus{border-bottom-color:var(--color-accent)}.cal-text-input.svelte-1ez75tk::placeholder{color:var(--color-text-tertiary)}.cal-body.svelte-1ez75tk{padding:.625rem}.cal-header.svelte-1ez75tk{margin-bottom:var(--space-1);justify-content:space-between;align-items:center;display:flex}.cal-heading{font-size:var(--text-base);color:var(--color-text-primary);font-weight:600}.cal-nav-btn{all:unset;width:var(--icon-btn-height);height:var(--icon-btn-height);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;justify-content:center;align-items:center;display:inline-flex}.cal-nav-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.cal-nav-btn[data-disabled]{opacity:.3;pointer-events:none}.cal-grid{border-collapse:collapse;width:100%}.cal-grid-row{display:flex}.cal-head-cell{height:var(--btn-height-sm);font-size:var(--text-xs);color:var(--color-text-tertiary);text-transform:uppercase;flex:1;justify-content:center;align-items:center;font-weight:500;display:flex}.cal-cell{aspect-ratio:1;flex:1;justify-content:center;align-items:center;display:flex}.cal-day{all:unset;width:var(--input-height);height:var(--input-height);font-size:var(--text-sm);border-radius:var(--radius-lg);color:var(--color-text-primary);cursor:pointer;justify-content:center;align-items:center;transition:background .15s;display:flex}.cal-day:hover{background:var(--color-bg-hover)}.cal-day[data-selected]{background:var(--color-accent);color:var(--color-accent-text,#ededef);font-weight:600}.cal-day[data-today]:not([data-selected]){border:1px solid var(--color-accent-fg)}.cal-day[data-outside-month]{color:var(--color-text-tertiary);opacity:.4}.cal-day[data-disabled]{opacity:.2;pointer-events:none}.entity-properties.svelte-1a2lez6{padding:var(--space-4) 0 var(--space-2)}.entity-properties.metadata-open.svelte-1a2lez6{padding-bottom:var(--space-5);border-bottom:1px solid var(--color-border)}.name-headline.svelte-1a2lez6{margin:var(--space-8) 0 var(--space-5);cursor:text;align-items:flex-start;display:flex;position:relative}.task-checkbox{position:absolute;top:.4375rem;left:-1.75rem}.task-done.svelte-1a2lez6 .name-input:where(.svelte-1a2lez6){color:var(--color-text-tertiary);text-decoration:line-through}.name-input.svelte-1a2lez6{font-size:var(--text-xl);color:var(--color-text-primary);resize:none;background:0 0;border:none;outline:none;width:100%;padding:0;font-family:inherit;font-weight:600;line-height:1.3;display:block;overflow:hidden}.subheadline-date.svelte-1a2lez6{all:unset;font-size:var(--text-base);color:var(--color-text-secondary);margin:calc(-1 * var(--space-3)) 0 var(--space-5);display:block}button.subheadline-date.svelte-1a2lez6{cursor:pointer}button.subheadline-date.svelte-1a2lez6:hover{color:var(--color-text-primary)}.subheadline-date.placeholder.svelte-1a2lez6{color:var(--color-text-tertiary)}.subheadline-date.overdue.svelte-1a2lez6{color:var(--color-accent-fg)}.entity-breadcrumb-row.svelte-1a2lez6{align-items:center;gap:var(--space-3);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border);min-height:var(--btn-height-sm);display:flex;position:relative}.breadcrumb-back.svelte-1a2lez6{flex-shrink:0}@media (width<=1023px){.entity-breadcrumb-row.svelte-1a2lez6 .breadcrumb-sep:where(.svelte-1a2lez6),.entity-breadcrumb-row.svelte-1a2lez6 .folder-breadcrumb-segment:where(.svelte-1a2lez6),.entity-breadcrumb-row.svelte-1a2lez6 .folder-breadcrumb-ellipsis:where(.svelte-1a2lez6),.entity-breadcrumb-row.svelte-1a2lez6 .entity-type-crumb:where(.svelte-1a2lez6){display:none}}.folder-breadcrumb.svelte-1a2lez6{font-size:var(--text-base);color:var(--color-text-secondary);align-items:center;gap:.375rem;text-decoration:none;display:inline-flex}.folder-breadcrumb.svelte-1a2lez6:hover{color:var(--color-text-primary)}.folder-breadcrumb-segment.svelte-1a2lez6{gap:0}.folder-breadcrumb-leaf.svelte-1a2lez6{gap:.375rem}.folder-breadcrumb-ellipsis.svelte-1a2lez6{font-size:var(--text-base);color:var(--color-text-tertiary);cursor:default}.breadcrumb-sep.svelte-1a2lez6{font-size:var(--text-base);color:var(--color-text-tertiary);-webkit-user-select:none;user-select:none}.entity-type-crumb.svelte-1a2lez6{font-size:var(--text-base);color:var(--color-text-secondary);align-items:center;gap:.375rem;display:inline-flex}.entity-type-crumb-toggle.svelte-1a2lez6{all:unset;box-sizing:border-box;cursor:pointer;font-size:var(--text-base);color:var(--color-text-secondary);align-items:center;gap:.375rem;transition:color .15s;display:inline-flex}.entity-type-crumb-toggle.svelte-1a2lez6:hover,.entity-type-crumb-toggle.open.svelte-1a2lez6{color:var(--color-text-primary)}.fields-action-btn.svelte-1a2lez6{all:unset;font-size:var(--text-base);color:var(--color-text-tertiary);cursor:pointer;margin-left:1.875rem;margin-top:var(--space-1);padding:.375rem 0;font-family:inherit;display:inline-flex}.fields-action-btn.svelte-1a2lez6:hover{color:var(--color-text-secondary)}.fields-list.svelte-1a2lez6{margin-top:var(--space-3)}.dotted-item{align-items:center!important;gap:var(--space-2)!important;display:flex!important}.dialog-desc.svelte-1a2lez6{font-size:var(--text-base);color:var(--color-text-secondary);margin:0 0 var(--space-3)}.dialog-error.svelte-1a2lez6{font-size:var(--font-size-sm);color:var(--color-destructive);margin:var(--space-2) 0 0}.dialog-radio-item.svelte-1a2lez6,.dialog-check-item.svelte-1a2lez6{align-items:center;gap:var(--space-2);min-height:var(--menu-item-height);padding:var(--menu-item-padding);border-radius:var(--menu-item-radius);font-size:var(--text-base);color:var(--color-text-primary);display:flex}.dialog-check-item.svelte-1a2lez6{cursor:pointer}.dialog-check-item.svelte-1a2lez6:hover{background:var(--color-bg-hover)}.connections-panel.svelte-16xienp{margin:var(--space-12) 0 var(--space-10);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.connections-header.svelte-16xienp{font-family:inherit;font-size:var(--text-base);color:var(--color-text-secondary);cursor:pointer;padding:var(--space-1) var(--space-2);margin:0 calc(-1 * var(--space-2));background:0 0;border:none;align-items:baseline;gap:.625rem;display:flex}.connections-header.svelte-16xienp:hover{color:var(--color-text-primary)}.header-chevron.svelte-16xienp{width:var(--icon-xl);color:var(--color-text-tertiary);justify-content:center;align-self:center;align-items:center;transition:transform .15s;display:inline-flex;transform:rotate(90deg)}.header-chevron.collapsed.svelte-16xienp{transform:rotate(0)}.header-label.svelte-16xienp{font-weight:400}.header-count.svelte-16xienp{font-size:var(--text-xs);color:var(--color-text-tertiary)}.connections-body.svelte-16xienp{margin-top:var(--space-2);flex-direction:column;gap:0;display:flex}.history-panel.svelte-1wxto27{border-top:1px solid var(--color-border);margin-top:var(--space-2);padding-top:var(--space-4);margin-bottom:var(--space-10)}.history-header.svelte-1wxto27{font-family:inherit;font-size:var(--text-base);color:var(--color-text-secondary);cursor:pointer;padding:var(--space-1) var(--space-2);margin:0 calc(-1 * var(--space-2));background:0 0;border:none;align-items:baseline;gap:.625rem;display:flex}.history-header.svelte-1wxto27:hover{color:var(--color-text-primary)}.header-chevron.svelte-1wxto27{width:var(--icon-xl);color:var(--color-text-tertiary);justify-content:center;align-self:center;align-items:center;transition:transform .15s;display:inline-flex;transform:rotate(90deg)}.header-chevron.collapsed.svelte-1wxto27{transform:rotate(0)}.header-label.svelte-1wxto27{font-weight:400}.header-count.svelte-1wxto27{font-size:var(--text-xs);color:var(--color-text-tertiary)}.history-body.svelte-1wxto27{margin-top:var(--space-2);flex-direction:column;display:flex}.history-loading.svelte-1wxto27{padding:var(--space-2) 0;font-size:var(--text-sm);color:var(--color-text-tertiary)}.history-entry.svelte-1wxto27{padding:.375rem var(--space-2) .375rem 0;align-items:flex-start;gap:.625rem;display:flex}.entry-dot.svelte-1wxto27{width:var(--icon-xl);height:.375rem;margin-top:var(--space-2);flex-shrink:0;justify-content:center;align-items:center;display:flex}.entry-dot.svelte-1wxto27:after{content:"";background:var(--color-text-tertiary);border-radius:50%;width:.375rem;height:.375rem}.history-entry.first.svelte-1wxto27 .entry-dot:where(.svelte-1wxto27):after{background:var(--color-accent)}.entry-content.svelte-1wxto27{flex:1;min-width:0}.entry-message.svelte-1wxto27{font-size:var(--text-sm);color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.entry-meta.svelte-1wxto27{gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-tertiary);margin-top:0;display:flex}.entry-restore.svelte-1wxto27{width:var(--icon-btn-height-sm);height:var(--icon-btn-height-sm);color:var(--color-text-tertiary);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;flex-shrink:0;justify-content:center;align-self:flex-start;align-items:center;margin-top:-2px;transition:color .15s,background .15s;display:inline-flex}.entry-restore.svelte-1wxto27:hover{color:var(--color-text-primary);background:var(--color-bg-hover)}.editor-wrap.svelte-ok7wy5{min-height:0;display:flex;position:relative}.editor-wrap.loading.svelte-ok7wy5{min-height:15rem}.cm-container.svelte-ok7wy5{flex:1;min-height:6.25rem}.editor-loader.svelte-ok7wy5{pointer-events:none;justify-content:center;align-items:center;min-height:15rem;display:flex;position:absolute;inset:0}.editor-loader-spinner.svelte-ok7wy5{border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;width:1.25rem;height:1.25rem;animation:.8s linear infinite svelte-ok7wy5-editor-loader-spin}@keyframes svelte-ok7wy5-editor-loader-spin{to{transform:rotate(360deg)}}.sr-only.svelte-ok7wy5{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:.0625rem;height:.0625rem;margin:-.0625rem;padding:0;position:absolute;overflow:hidden}.cm-container.svelte-ok7wy5 .cm-editor{outline:none;min-height:6.25rem}.cm-container.svelte-ok7wy5 .cm-scroller{overflow:visible!important}.cursor-overlay.svelte-ok7wy5{pointer-events:none;position:absolute;inset:0;overflow:hidden}.remote-cursor.svelte-ok7wy5{background-color:var(--cursor-color);z-index:10;width:.125rem;position:absolute}.remote-cursor-label.svelte-ok7wy5{font-size:var(--text-xs);font-family:var(--font-sans);padding:0 var(--space-1);white-space:nowrap;color:var(--color-accent-text,#ededef);border-radius:.1875rem .1875rem .1875rem 0;font-weight:500;line-height:1.5;position:absolute;top:-1.4em;left:-1px}.flipped.svelte-ok7wy5 .remote-cursor-label:where(.svelte-ok7wy5){border-radius:.1875rem .1875rem 0;left:auto;right:-1px}.asset-preview.svelte-k1cnqs{background:var(--color-surface-2,#f5f5f5);border:1px solid var(--color-border,#e5e5e5);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;margin-bottom:1rem;padding:1rem;display:flex}.asset-preview.svelte-k1cnqs img:where(.svelte-k1cnqs){object-fit:contain;border-radius:4px;max-width:100%;max-height:60vh}.asset-preview.svelte-k1cnqs embed:where(.svelte-k1cnqs){border:none;border-radius:4px;width:100%;height:70vh}.asset-preview.svelte-k1cnqs video:where(.svelte-k1cnqs){background:#000;border-radius:4px;width:100%;max-height:60vh}.asset-preview.svelte-k1cnqs audio:where(.svelte-k1cnqs){width:100%}.asset-card.svelte-k1cnqs{align-items:center;gap:.75rem;width:100%;max-width:480px;display:flex}.asset-card-body.svelte-k1cnqs{flex:1;min-width:0}.asset-card-name.svelte-k1cnqs{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.asset-card-meta.svelte-k1cnqs{color:var(--color-text-secondary,#666);margin-top:.125rem;font-size:.85em}.asset-card-action.svelte-k1cnqs{border:1px solid var(--color-border,#e5e5e5);background:var(--color-surface,#fff);color:inherit;border-radius:6px;align-items:center;gap:.375rem;padding:.375rem .75rem;font-size:.9em;text-decoration:none;display:inline-flex}.asset-card-action.svelte-k1cnqs:hover{background:var(--color-surface-hover,#f0f0f0)}.document-scroll.svelte-udj3er{flex:1;min-height:0;overflow-y:auto}.document-well.svelte-udj3er{box-sizing:border-box;width:100%;max-width:45rem;margin:0 auto;padding:0 2.5rem}.editor-well.svelte-udj3er{position:relative}.editor-well.processing.svelte-udj3er .cm-content{opacity:.4;pointer-events:none;-webkit-user-select:none;user-select:none}.processing-overlay.svelte-udj3er{justify-content:center;align-items:center;gap:var(--space-2);pointer-events:none;flex-direction:column;display:flex;position:absolute;inset:0}.processing-spinner.svelte-udj3er{border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;width:1.5rem;height:1.5rem;animation:.9s linear infinite svelte-udj3er-processing-spin}.processing-label.svelte-udj3er{font-size:var(--text-sm);color:var(--color-text-secondary)}@keyframes svelte-udj3er-processing-spin{to{transform:rotate(360deg)}}.entity-error.svelte-udj3er{padding-top:var(--space-6);color:var(--color-text-secondary)}
@@ -0,0 +1 @@
1
+ .agent-overlay-root.svelte-2kfnqv{pointer-events:none;z-index:99;position:absolute;inset:0}.agent-overlay-root.svelte-2kfnqv>:where(.svelte-2kfnqv){pointer-events:auto}.agent-fab.svelte-2kfnqv{width:var(--fab-height);height:var(--fab-height);border:1px solid var(--color-accent);background:var(--color-accent);color:var(--color-accent-text,#ededef);cursor:pointer;z-index:2;border-radius:50%;justify-content:center;align-items:center;padding:0;line-height:0;transition:box-shadow .15s,background .15s,color .15s;display:flex;position:absolute;bottom:1rem;right:1rem;box-shadow:0 4px 14px #0000002e}.agent-fab.svelte-2kfnqv:hover{box-shadow:0 4px 14px #00000047}.agent-fab.is-open.svelte-2kfnqv{background:var(--color-bg-elevated,var(--color-bg));color:var(--color-text-primary);border-color:var(--color-border)}.agent-fab.has-unread.svelte-2kfnqv{animation:1.6s ease-out infinite svelte-2kfnqv-fab-unread}@keyframes svelte-2kfnqv-fab-unread{0%{box-shadow:0 4px 14px #0000002e, 0 0 0 0 color-mix(in srgb, var(--color-accent) 55%, transparent)}70%{box-shadow:0 4px 14px #0000002e, 0 0 0 14px color-mix(in srgb, var(--color-accent) 0%, transparent)}to{box-shadow:0 4px 14px #0000002e, 0 0 0 0 color-mix(in srgb, var(--color-accent) 0%, transparent)}}.agent-panel.svelte-2kfnqv{right:1rem;bottom:calc(4.875rem + var(--keyboard-offset,0px));width:26.25rem;height:42.5rem;max-width:calc(100% - var(--space-8));max-height:calc(100% - 5.875rem - var(--keyboard-offset,0rem));background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);z-index:1;flex-direction:column;display:flex;position:absolute;overflow:hidden;box-shadow:0 10px 30px #0000002e}@media (width<=1023px){.agent-panel.svelte-2kfnqv{bottom:calc(5.5rem + var(--keyboard-offset,0px));max-height:calc(100% - 6.5rem - var(--keyboard-offset,0rem))}}.agent-header.svelte-2kfnqv{padding:var(--space-4);min-height:var(--row-height,2.75rem);flex-shrink:0;grid-template-columns:1fr auto 1fr;align-items:center;display:grid}.agent-header.svelte-2kfnqv>:where(.svelte-2kfnqv):first-child{justify-self:start}.agent-header.svelte-2kfnqv>:where(.svelte-2kfnqv):last-child{justify-self:end}.agent-session-nav.svelte-2kfnqv{justify-self:center;align-items:center;gap:0;display:flex}.agent-session-label.svelte-2kfnqv{font-size:var(--text-sm);color:var(--color-text-primary);font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;text-align:center;min-width:8.75rem;padding:.125rem var(--space-2);overflow:hidden}.agent-header-btn.svelte-2kfnqv{width:var(--icon-btn-height);height:var(--icon-btn-height);color:var(--color-text-secondary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:background .15s,color .15s;display:inline-flex}.agent-header-btn.svelte-2kfnqv svg{width:var(--icon-btn-icon-size);height:var(--icon-btn-icon-size)}.agent-header-btn.svelte-2kfnqv:hover:not(:disabled),.agent-header-btn.svelte-2kfnqv:active:not(:disabled){background:var(--color-bg-hover);color:var(--color-text-primary)}.agent-header-btn.svelte-2kfnqv:disabled{opacity:.3;cursor:default}.agent-messages.svelte-2kfnqv{padding:var(--space-4) 0;gap:var(--space-4);flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.empty-state.svelte-2kfnqv{min-height:100%;padding:0 var(--space-4);flex:1;justify-content:center;align-items:center;display:flex}.seed-prompts.svelte-2kfnqv{gap:var(--space-2);flex-direction:column;width:100%;display:flex}.seed-prompts.svelte-2kfnqv .seed-prompt,.follow-up-prompts.svelte-2kfnqv .seed-prompt{font-size:var(--text-base);min-height:var(--row-height);border-radius:var(--radius-lg);width:100%;height:auto;color:var(--color-text-secondary);background:var(--color-bg-secondary,#8080800f);text-align:left;white-space:normal;justify-content:flex-start;padding:.5625rem .8125rem;line-height:1.25rem}.seed-prompts.svelte-2kfnqv .seed-prompt:hover,.follow-up-prompts.svelte-2kfnqv .seed-prompt:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.follow-up-prompts.svelte-2kfnqv{gap:var(--space-2);padding:0 var(--space-4);flex-direction:column;width:100%;display:flex}.message-group.svelte-2kfnqv{gap:var(--space-4);padding:0 var(--space-4);flex-direction:column;display:flex}.user-bubble.svelte-2kfnqv{background:var(--color-bg-surface);border-radius:var(--radius-lg);padding:var(--space-3) .875rem;font-size:var(--text-base);color:var(--color-text-primary);line-height:1.375rem}.agent-content.svelte-2kfnqv{flex-direction:column;gap:.875rem;display:flex;position:relative}.msg-actions.svelte-2kfnqv{gap:var(--space-1);align-self:flex-start;display:flex}.copy-btn.svelte-2kfnqv{width:var(--icon-btn-height-sm);height:var(--icon-btn-height-sm);color:var(--color-text-tertiary);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.copy-btn.svelte-2kfnqv>svg{width:var(--icon-btn-icon-size-sm);height:var(--icon-btn-icon-size-sm)}.copy-btn.svelte-2kfnqv:hover{color:var(--color-text-primary);background:var(--color-bg-hover)}.skip-question-link.svelte-2kfnqv{font-family:inherit;font-size:var(--text-sm);color:var(--color-text-tertiary);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0}.skip-question-link.svelte-2kfnqv:hover{text-decoration:underline}.tool-calls.svelte-2kfnqv{gap:var(--space-1);flex-direction:column;display:flex}.tool-call.svelte-2kfnqv{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-accent-fg)}.agent-text.svelte-2kfnqv{font-size:var(--text-base);color:var(--color-text-primary);line-height:1.375rem}.prose.svelte-2kfnqv h1{font-size:var(--text-lg);color:var(--color-text-primary);margin:var(--space-6) 0 var(--space-3);font-weight:600}.prose.svelte-2kfnqv h2{font-size:var(--text-base);color:var(--color-text-primary);margin:1.375rem 0 .625rem;font-weight:600}.prose.svelte-2kfnqv h3{font-size:var(--text-base);color:var(--color-text-primary);margin:var(--space-5) 0 var(--space-2);font-weight:600}.prose.svelte-2kfnqv p{margin:0 0 .875rem}.prose.svelte-2kfnqv p:last-child{margin-bottom:0}.prose.svelte-2kfnqv strong{font-weight:600}.prose.svelte-2kfnqv ul,.prose.svelte-2kfnqv ol{padding-left:var(--space-5);color:var(--color-text-primary);margin:0 0 .875rem}.prose.svelte-2kfnqv li ul,.prose.svelte-2kfnqv li ol{margin:var(--space-1) 0 0}.prose.svelte-2kfnqv ul{list-style-type:disc}.prose.svelte-2kfnqv ol{list-style-type:decimal}.prose.svelte-2kfnqv li{margin-bottom:.375rem}.prose.svelte-2kfnqv table{border-collapse:collapse;width:100%;font-size:var(--text-sm);margin:var(--space-4) 0}.prose.svelte-2kfnqv th,.prose.svelte-2kfnqv td{border:1px solid var(--color-border);padding:var(--space-1) var(--space-2);text-align:left;vertical-align:top}.prose.svelte-2kfnqv th{font-weight:600}.prose.svelte-2kfnqv pre{background:var(--color-bg-surface);border-radius:var(--radius-md);padding:.625rem var(--space-3);margin:var(--space-4) 0;font-family:var(--font-mono);font-size:var(--text-mono);line-height:var(--text-mono--line-height);overflow-x:auto}.prose.svelte-2kfnqv code{font-family:var(--font-mono);font-size:var(--text-mono);background:var(--color-bg-surface);padding:.0625rem var(--space-1);border-radius:.1875rem}.prose.svelte-2kfnqv pre code{background:0 0;padding:0}.prose.svelte-2kfnqv a{color:var(--color-link);text-decoration:none}.prose.svelte-2kfnqv a:hover{text-decoration:underline}.prose.svelte-2kfnqv blockquote{border-left:3px solid var(--color-accent-fg);padding-left:var(--space-3);margin:var(--space-4) 0;color:var(--color-text-secondary)}.prose.svelte-2kfnqv hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-6) 0}.streaming-dot.svelte-2kfnqv{width:var(--space-2);height:var(--space-2);background:var(--color-accent);border-radius:var(--radius-sm);animation:1s ease-in-out infinite svelte-2kfnqv-pulse;display:inline-block}@keyframes svelte-2kfnqv-pulse{0%,to{opacity:.3}50%{opacity:1}}.scroll-to-bottom-wrapper.svelte-2kfnqv{z-index:2;pointer-events:none;justify-content:center;display:flex;position:absolute;bottom:4.75rem;left:0;right:0}.scroll-to-bottom.svelte-2kfnqv{border:1px solid var(--color-border);background:var(--color-bg-elevated);width:1.75rem;height:1.75rem;color:var(--color-text-secondary);cursor:pointer;box-shadow:var(--shadow-sm);pointer-events:auto;border-radius:50%;justify-content:center;align-items:center;transition:opacity .15s;display:flex}.scroll-to-bottom.is-hidden.svelte-2kfnqv{opacity:0;pointer-events:none}.scroll-to-bottom.svelte-2kfnqv:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.agent-input-area.svelte-2kfnqv{padding:var(--space-3) var(--space-4) var(--space-4);flex-shrink:0}.context-chip.svelte-2kfnqv{font-size:var(--text-xs);color:var(--color-text-tertiary);padding:0 .125rem var(--space-1);white-space:nowrap;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 1rem),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 1rem),#0000)}.agent-panel .stop-btn.send-btn{border-radius:var(--radius-md);color:var(--color-accent-text,#ededef)!important;background:var(--color-accent)!important}@media (width<=1023px){.agent-header-btn.svelte-2kfnqv{border-radius:var(--radius-xl)}.agent-session-label.svelte-2kfnqv{font-size:var(--text-base)}.msg-actions.svelte-2kfnqv,.agent-session-nav.svelte-2kfnqv .agent-header-btn:where(.svelte-2kfnqv){display:none}.context-chip.svelte-2kfnqv{font-size:var(--text-sm)}.agent-text.svelte-2kfnqv,.user-bubble.svelte-2kfnqv{font-size:var(--text-base);line-height:1.5625rem}.agent-panel .seed-prompt{font-size:var(--text-base);line-height:1.375rem}}
@@ -0,0 +1 @@
1
+ .asset-manager.svelte-3ci416{max-height:calc(70vh - 5rem);padding-right:var(--space-3);overflow-y:auto}.asset-status.svelte-3ci416{color:var(--color-text-secondary);font-size:var(--text-base);text-align:center;padding:var(--space-8) 0}.asset-error.svelte-3ci416{color:var(--color-destructive-fg,#f04e4e)}.asset-grid.svelte-3ci416{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));display:grid}.asset-card.svelte-3ci416{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);position:relative;overflow:hidden}.asset-card.svelte-3ci416:hover .asset-delete:where(.svelte-3ci416){opacity:1}.asset-preview.svelte-3ci416{aspect-ratio:1;background:var(--color-bg-tertiary,var(--color-bg-secondary));justify-content:center;align-items:center;width:100%;display:flex;overflow:hidden}.asset-preview.svelte-3ci416 img:where(.svelte-3ci416){object-fit:cover;width:100%;height:100%}.asset-icon.svelte-3ci416{color:var(--color-text-secondary)}.asset-info.svelte-3ci416{padding:var(--space-2) .625rem;flex-direction:column;gap:.125rem;display:flex}.asset-filename.svelte-3ci416{font-size:var(--text-xs);color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.asset-meta.svelte-3ci416{font-size:var(--text-xs);color:var(--color-text-secondary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.asset-delete.svelte-3ci416{border-radius:var(--radius-sm);color:#ededef;cursor:pointer;opacity:0;background:#0009;border:none;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;transition:opacity .15s;display:flex;position:absolute;top:.375rem;right:.375rem}.asset-delete.svelte-3ci416:hover{background:#e05050e6}