@agent-native/core 0.4.5 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1015) hide show
  1. package/README.md +15 -43
  2. package/dist/a2a/agent-card.d.ts.map +1 -1
  3. package/dist/a2a/agent-card.js +12 -1
  4. package/dist/a2a/agent-card.js.map +1 -1
  5. package/dist/a2a/client.d.ts +18 -0
  6. package/dist/a2a/client.d.ts.map +1 -1
  7. package/dist/a2a/client.js +62 -4
  8. package/dist/a2a/client.js.map +1 -1
  9. package/dist/a2a/handlers.d.ts +6 -3
  10. package/dist/a2a/handlers.d.ts.map +1 -1
  11. package/dist/a2a/handlers.js +45 -39
  12. package/dist/a2a/handlers.js.map +1 -1
  13. package/dist/a2a/index.d.ts +2 -2
  14. package/dist/a2a/index.d.ts.map +1 -1
  15. package/dist/a2a/index.js +3 -3
  16. package/dist/a2a/index.js.map +1 -1
  17. package/dist/a2a/server.d.ts +11 -2
  18. package/dist/a2a/server.d.ts.map +1 -1
  19. package/dist/a2a/server.js +99 -14
  20. package/dist/a2a/server.js.map +1 -1
  21. package/dist/a2a/task-store.d.ts +6 -6
  22. package/dist/a2a/task-store.d.ts.map +1 -1
  23. package/dist/a2a/task-store.js +102 -42
  24. package/dist/a2a/task-store.js.map +1 -1
  25. package/dist/a2a/types.d.ts +3 -0
  26. package/dist/a2a/types.d.ts.map +1 -1
  27. package/dist/action.d.ts +80 -0
  28. package/dist/action.d.ts.map +1 -0
  29. package/dist/action.js +232 -0
  30. package/dist/action.js.map +1 -0
  31. package/dist/agent/engine/ai-sdk-engine.d.ts +24 -0
  32. package/dist/agent/engine/ai-sdk-engine.d.ts.map +1 -0
  33. package/dist/agent/engine/ai-sdk-engine.js +302 -0
  34. package/dist/agent/engine/ai-sdk-engine.js.map +1 -0
  35. package/dist/agent/engine/anthropic-engine.d.ts +24 -0
  36. package/dist/agent/engine/anthropic-engine.d.ts.map +1 -0
  37. package/dist/agent/engine/anthropic-engine.js +169 -0
  38. package/dist/agent/engine/anthropic-engine.js.map +1 -0
  39. package/dist/agent/engine/builtin.d.ts +12 -0
  40. package/dist/agent/engine/builtin.d.ts.map +1 -0
  41. package/dist/agent/engine/builtin.js +72 -0
  42. package/dist/agent/engine/builtin.js.map +1 -0
  43. package/dist/agent/engine/index.d.ts +9 -0
  44. package/dist/agent/engine/index.d.ts.map +1 -0
  45. package/dist/agent/engine/index.js +8 -0
  46. package/dist/agent/engine/index.js.map +1 -0
  47. package/dist/agent/engine/registry.d.ts +61 -0
  48. package/dist/agent/engine/registry.d.ts.map +1 -0
  49. package/dist/agent/engine/registry.js +101 -0
  50. package/dist/agent/engine/registry.js.map +1 -0
  51. package/dist/agent/engine/translate-ai-sdk.d.ts +20 -0
  52. package/dist/agent/engine/translate-ai-sdk.d.ts.map +1 -0
  53. package/dist/agent/engine/translate-ai-sdk.js +174 -0
  54. package/dist/agent/engine/translate-ai-sdk.js.map +1 -0
  55. package/dist/agent/engine/translate-anthropic.d.ts +23 -0
  56. package/dist/agent/engine/translate-anthropic.d.ts.map +1 -0
  57. package/dist/agent/engine/translate-anthropic.js +140 -0
  58. package/dist/agent/engine/translate-anthropic.js.map +1 -0
  59. package/dist/agent/engine/types.d.ts +168 -0
  60. package/dist/agent/engine/types.d.ts.map +1 -0
  61. package/dist/agent/engine/types.js +13 -0
  62. package/dist/agent/engine/types.js.map +1 -0
  63. package/dist/agent/index.d.ts +2 -2
  64. package/dist/agent/index.d.ts.map +1 -1
  65. package/dist/agent/index.js.map +1 -1
  66. package/dist/agent/production-agent.d.ts +69 -7
  67. package/dist/agent/production-agent.d.ts.map +1 -1
  68. package/dist/agent/production-agent.js +480 -127
  69. package/dist/agent/production-agent.js.map +1 -1
  70. package/dist/agent/run-manager.d.ts +43 -0
  71. package/dist/agent/run-manager.d.ts.map +1 -0
  72. package/dist/agent/run-manager.js +364 -0
  73. package/dist/agent/run-manager.js.map +1 -0
  74. package/dist/agent/run-store.d.ts +26 -0
  75. package/dist/agent/run-store.d.ts.map +1 -0
  76. package/dist/agent/run-store.js +145 -0
  77. package/dist/agent/run-store.js.map +1 -0
  78. package/dist/agent/thread-data-builder.d.ts +31 -0
  79. package/dist/agent/thread-data-builder.d.ts.map +1 -0
  80. package/dist/agent/thread-data-builder.js +91 -0
  81. package/dist/agent/thread-data-builder.js.map +1 -0
  82. package/dist/agent/types.d.ts +73 -1
  83. package/dist/agent/types.d.ts.map +1 -1
  84. package/dist/application-state/emitter.d.ts +3 -2
  85. package/dist/application-state/emitter.d.ts.map +1 -1
  86. package/dist/application-state/emitter.js +14 -4
  87. package/dist/application-state/emitter.js.map +1 -1
  88. package/dist/application-state/handlers.d.ts +8 -8
  89. package/dist/application-state/handlers.d.ts.map +1 -1
  90. package/dist/application-state/handlers.js +15 -17
  91. package/dist/application-state/handlers.js.map +1 -1
  92. package/dist/application-state/script-helpers.d.ts +1 -1
  93. package/dist/application-state/script-helpers.d.ts.map +1 -1
  94. package/dist/application-state/script-helpers.js +56 -8
  95. package/dist/application-state/script-helpers.js.map +1 -1
  96. package/dist/application-state/store.d.ts +4 -3
  97. package/dist/application-state/store.d.ts.map +1 -1
  98. package/dist/application-state/store.js +31 -59
  99. package/dist/application-state/store.js.map +1 -1
  100. package/dist/chat-threads/emitter.d.ts +9 -0
  101. package/dist/chat-threads/emitter.d.ts.map +1 -0
  102. package/dist/chat-threads/emitter.js +14 -0
  103. package/dist/chat-threads/emitter.js.map +1 -0
  104. package/dist/chat-threads/store.d.ts +42 -0
  105. package/dist/chat-threads/store.d.ts.map +1 -0
  106. package/dist/chat-threads/store.js +156 -0
  107. package/dist/chat-threads/store.js.map +1 -0
  108. package/dist/cli/create.d.ts +8 -2
  109. package/dist/cli/create.d.ts.map +1 -1
  110. package/dist/cli/create.js +288 -47
  111. package/dist/cli/create.js.map +1 -1
  112. package/dist/cli/index.js +49 -9
  113. package/dist/cli/index.js.map +1 -1
  114. package/dist/cli/setup-agents.d.ts +11 -0
  115. package/dist/cli/setup-agents.d.ts.map +1 -0
  116. package/dist/cli/setup-agents.js +123 -0
  117. package/dist/cli/setup-agents.js.map +1 -0
  118. package/dist/client/AgentPanel.d.ts +13 -2
  119. package/dist/client/AgentPanel.d.ts.map +1 -1
  120. package/dist/client/AgentPanel.js +771 -38
  121. package/dist/client/AgentPanel.js.map +1 -1
  122. package/dist/client/AgentTaskCard.d.ts +12 -0
  123. package/dist/client/AgentTaskCard.d.ts.map +1 -0
  124. package/dist/client/AgentTaskCard.js +146 -0
  125. package/dist/client/AgentTaskCard.js.map +1 -0
  126. package/dist/client/AssistantChat.d.ts +36 -3
  127. package/dist/client/AssistantChat.d.ts.map +1 -1
  128. package/dist/client/AssistantChat.js +838 -86
  129. package/dist/client/AssistantChat.js.map +1 -1
  130. package/dist/client/ClientOnly.d.ts +14 -0
  131. package/dist/client/ClientOnly.d.ts.map +1 -0
  132. package/dist/client/ClientOnly.js +17 -0
  133. package/dist/client/ClientOnly.js.map +1 -0
  134. package/dist/client/CommandMenu.d.ts +71 -0
  135. package/dist/client/CommandMenu.d.ts.map +1 -0
  136. package/dist/client/CommandMenu.js +257 -0
  137. package/dist/client/CommandMenu.js.map +1 -0
  138. package/dist/client/DefaultSpinner.d.ts +7 -0
  139. package/dist/client/DefaultSpinner.d.ts.map +1 -0
  140. package/dist/client/DefaultSpinner.js +28 -0
  141. package/dist/client/DefaultSpinner.js.map +1 -0
  142. package/dist/client/MultiTabAssistantChat.d.ts +40 -2
  143. package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
  144. package/dist/client/MultiTabAssistantChat.js +630 -59
  145. package/dist/client/MultiTabAssistantChat.js.map +1 -1
  146. package/dist/client/PoweredByBadge.d.ts.map +1 -1
  147. package/dist/client/PoweredByBadge.js +4 -3
  148. package/dist/client/PoweredByBadge.js.map +1 -1
  149. package/dist/client/Turnstile.d.ts.map +1 -1
  150. package/dist/client/Turnstile.js +2 -3
  151. package/dist/client/Turnstile.js.map +1 -1
  152. package/dist/client/active-run-state.d.ts +10 -0
  153. package/dist/client/active-run-state.d.ts.map +1 -0
  154. package/dist/client/active-run-state.js +32 -0
  155. package/dist/client/active-run-state.js.map +1 -0
  156. package/dist/client/agent-chat-adapter.d.ts +2 -1
  157. package/dist/client/agent-chat-adapter.d.ts.map +1 -1
  158. package/dist/client/agent-chat-adapter.js +145 -130
  159. package/dist/client/agent-chat-adapter.js.map +1 -1
  160. package/dist/client/agent-chat.d.ts +14 -1
  161. package/dist/client/agent-chat.d.ts.map +1 -1
  162. package/dist/client/agent-chat.js +6 -4
  163. package/dist/client/agent-chat.js.map +1 -1
  164. package/dist/client/components/ApiKeySettings.d.ts +2 -2
  165. package/dist/client/components/ApiKeySettings.js +4 -4
  166. package/dist/client/components/ApiKeySettings.js.map +1 -1
  167. package/dist/client/components/CodeAgentIndicator.d.ts +14 -0
  168. package/dist/client/components/CodeAgentIndicator.d.ts.map +1 -0
  169. package/dist/client/components/CodeAgentIndicator.js +29 -0
  170. package/dist/client/components/CodeAgentIndicator.js.map +1 -0
  171. package/dist/client/components/CodeRequiredDialog.d.ts.map +1 -1
  172. package/dist/client/components/CodeRequiredDialog.js +4 -3
  173. package/dist/client/components/CodeRequiredDialog.js.map +1 -1
  174. package/dist/client/composer/MentionPopover.d.ts +29 -0
  175. package/dist/client/composer/MentionPopover.d.ts.map +1 -0
  176. package/dist/client/composer/MentionPopover.js +160 -0
  177. package/dist/client/composer/MentionPopover.js.map +1 -0
  178. package/dist/client/composer/TiptapComposer.d.ts +26 -0
  179. package/dist/client/composer/TiptapComposer.d.ts.map +1 -0
  180. package/dist/client/composer/TiptapComposer.js +545 -0
  181. package/dist/client/composer/TiptapComposer.js.map +1 -0
  182. package/dist/client/composer/extensions/FileReference.d.ts +3 -0
  183. package/dist/client/composer/extensions/FileReference.d.ts.map +1 -0
  184. package/dist/client/composer/extensions/FileReference.js +36 -0
  185. package/dist/client/composer/extensions/FileReference.js.map +1 -0
  186. package/dist/client/composer/extensions/MentionReference.d.ts +3 -0
  187. package/dist/client/composer/extensions/MentionReference.d.ts.map +1 -0
  188. package/dist/client/composer/extensions/MentionReference.js +63 -0
  189. package/dist/client/composer/extensions/MentionReference.js.map +1 -0
  190. package/dist/client/composer/extensions/SkillReference.d.ts +3 -0
  191. package/dist/client/composer/extensions/SkillReference.d.ts.map +1 -0
  192. package/dist/client/composer/extensions/SkillReference.js +40 -0
  193. package/dist/client/composer/extensions/SkillReference.js.map +1 -0
  194. package/dist/client/composer/index.d.ts +8 -0
  195. package/dist/client/composer/index.d.ts.map +1 -0
  196. package/dist/client/composer/index.js +7 -0
  197. package/dist/client/composer/index.js.map +1 -0
  198. package/dist/client/composer/types.d.ts +37 -0
  199. package/dist/client/composer/types.d.ts.map +1 -0
  200. package/dist/client/composer/types.js +2 -0
  201. package/dist/client/composer/types.js.map +1 -0
  202. package/dist/client/composer/use-file-search.d.ts +6 -0
  203. package/dist/client/composer/use-file-search.d.ts.map +1 -0
  204. package/dist/client/composer/use-file-search.js +40 -0
  205. package/dist/client/composer/use-file-search.js.map +1 -0
  206. package/dist/client/composer/use-mention-search.d.ts +6 -0
  207. package/dist/client/composer/use-mention-search.d.ts.map +1 -0
  208. package/dist/client/composer/use-mention-search.js +72 -0
  209. package/dist/client/composer/use-mention-search.js.map +1 -0
  210. package/dist/client/composer/use-skills.d.ts +7 -0
  211. package/dist/client/composer/use-skills.d.ts.map +1 -0
  212. package/dist/client/composer/use-skills.js +38 -0
  213. package/dist/client/composer/use-skills.js.map +1 -0
  214. package/dist/client/frame-protocol.d.ts +54 -0
  215. package/dist/client/frame-protocol.d.ts.map +1 -0
  216. package/dist/client/frame-protocol.js +9 -0
  217. package/dist/client/frame-protocol.js.map +1 -0
  218. package/dist/client/frame.d.ts +56 -0
  219. package/dist/client/frame.d.ts.map +1 -0
  220. package/dist/client/{harness.js → frame.js} +49 -26
  221. package/dist/client/frame.js.map +1 -0
  222. package/dist/client/index.d.ts +15 -6
  223. package/dist/client/index.d.ts.map +1 -1
  224. package/dist/client/index.js +13 -5
  225. package/dist/client/index.js.map +1 -1
  226. package/dist/client/integrations/IntegrationCard.d.ts +6 -0
  227. package/dist/client/integrations/IntegrationCard.d.ts.map +1 -0
  228. package/dist/client/integrations/IntegrationCard.js +45 -0
  229. package/dist/client/integrations/IntegrationCard.js.map +1 -0
  230. package/dist/client/integrations/IntegrationsPanel.d.ts +2 -0
  231. package/dist/client/integrations/IntegrationsPanel.d.ts.map +1 -0
  232. package/dist/client/integrations/IntegrationsPanel.js +149 -0
  233. package/dist/client/integrations/IntegrationsPanel.js.map +1 -0
  234. package/dist/client/integrations/index.d.ts +4 -0
  235. package/dist/client/integrations/index.d.ts.map +1 -0
  236. package/dist/client/integrations/index.js +3 -0
  237. package/dist/client/integrations/index.js.map +1 -0
  238. package/dist/client/integrations/useIntegrationStatus.d.ts +15 -0
  239. package/dist/client/integrations/useIntegrationStatus.d.ts.map +1 -0
  240. package/dist/client/integrations/useIntegrationStatus.js +37 -0
  241. package/dist/client/integrations/useIntegrationStatus.js.map +1 -0
  242. package/dist/client/org/InvitationBanner.d.ts +9 -0
  243. package/dist/client/org/InvitationBanner.d.ts.map +1 -0
  244. package/dist/client/org/InvitationBanner.js +17 -0
  245. package/dist/client/org/InvitationBanner.js.map +1 -0
  246. package/dist/client/org/OrgSwitcher.d.ts +14 -0
  247. package/dist/client/org/OrgSwitcher.d.ts.map +1 -0
  248. package/dist/client/org/OrgSwitcher.js +51 -0
  249. package/dist/client/org/OrgSwitcher.js.map +1 -0
  250. package/dist/client/org/TeamPage.d.ts +23 -0
  251. package/dist/client/org/TeamPage.d.ts.map +1 -0
  252. package/dist/client/org/TeamPage.js +145 -0
  253. package/dist/client/org/TeamPage.js.map +1 -0
  254. package/dist/client/org/hooks.d.ts +14 -0
  255. package/dist/client/org/hooks.d.ts.map +1 -0
  256. package/dist/client/org/hooks.js +101 -0
  257. package/dist/client/org/hooks.js.map +1 -0
  258. package/dist/client/org/index.d.ts +6 -0
  259. package/dist/client/org/index.d.ts.map +1 -0
  260. package/dist/client/org/index.js +6 -0
  261. package/dist/client/org/index.js.map +1 -0
  262. package/dist/client/resources/ResourceEditor.d.ts +14 -0
  263. package/dist/client/resources/ResourceEditor.d.ts.map +1 -0
  264. package/dist/client/resources/ResourceEditor.js +932 -0
  265. package/dist/client/resources/ResourceEditor.js.map +1 -0
  266. package/dist/client/resources/ResourceTree.d.ts +17 -0
  267. package/dist/client/resources/ResourceTree.d.ts.map +1 -0
  268. package/dist/client/resources/ResourceTree.js +137 -0
  269. package/dist/client/resources/ResourceTree.js.map +1 -0
  270. package/dist/client/resources/ResourcesPanel.d.ts +2 -0
  271. package/dist/client/resources/ResourcesPanel.d.ts.map +1 -0
  272. package/dist/client/resources/ResourcesPanel.js +366 -0
  273. package/dist/client/resources/ResourcesPanel.js.map +1 -0
  274. package/dist/client/resources/index.d.ts +5 -0
  275. package/dist/client/resources/index.d.ts.map +1 -0
  276. package/dist/client/resources/index.js +5 -0
  277. package/dist/client/resources/index.js.map +1 -0
  278. package/dist/client/resources/use-resources.d.ts +55 -0
  279. package/dist/client/resources/use-resources.d.ts.map +1 -0
  280. package/dist/client/resources/use-resources.js +102 -0
  281. package/dist/client/resources/use-resources.js.map +1 -0
  282. package/dist/client/sse-event-processor.d.ts +58 -0
  283. package/dist/client/sse-event-processor.d.ts.map +1 -0
  284. package/dist/client/sse-event-processor.js +300 -0
  285. package/dist/client/sse-event-processor.js.map +1 -0
  286. package/dist/client/terminal/AgentTerminal.d.ts +5 -5
  287. package/dist/client/terminal/AgentTerminal.d.ts.map +1 -1
  288. package/dist/client/terminal/AgentTerminal.js +25 -20
  289. package/dist/client/terminal/AgentTerminal.js.map +1 -1
  290. package/dist/client/use-action.d.ts +51 -0
  291. package/dist/client/use-action.d.ts.map +1 -0
  292. package/dist/client/use-action.js +102 -0
  293. package/dist/client/use-action.js.map +1 -0
  294. package/dist/client/use-agent-chat.d.ts +1 -1
  295. package/dist/client/use-agent-chat.d.ts.map +1 -1
  296. package/dist/client/use-agent-chat.js +3 -3
  297. package/dist/client/use-agent-chat.js.map +1 -1
  298. package/dist/client/use-avatar.d.ts +15 -0
  299. package/dist/client/use-avatar.d.ts.map +1 -0
  300. package/dist/client/use-avatar.js +116 -0
  301. package/dist/client/use-avatar.js.map +1 -0
  302. package/dist/client/use-chat-threads.d.ts +36 -0
  303. package/dist/client/use-chat-threads.d.ts.map +1 -0
  304. package/dist/client/use-chat-threads.js +191 -0
  305. package/dist/client/use-chat-threads.js.map +1 -0
  306. package/dist/client/use-db-sync.d.ts +35 -0
  307. package/dist/client/use-db-sync.d.ts.map +1 -0
  308. package/dist/client/use-db-sync.js +74 -0
  309. package/dist/client/use-db-sync.js.map +1 -0
  310. package/dist/client/use-dev-mode.d.ts +4 -2
  311. package/dist/client/use-dev-mode.d.ts.map +1 -1
  312. package/dist/client/use-dev-mode.js +41 -12
  313. package/dist/client/use-dev-mode.js.map +1 -1
  314. package/dist/client/use-send-to-agent-chat.d.ts +7 -4
  315. package/dist/client/use-send-to-agent-chat.d.ts.map +1 -1
  316. package/dist/client/use-send-to-agent-chat.js +31 -10
  317. package/dist/client/use-send-to-agent-chat.js.map +1 -1
  318. package/dist/client/use-session.d.ts +1 -1
  319. package/dist/client/use-session.js +2 -2
  320. package/dist/client/use-session.js.map +1 -1
  321. package/dist/client/useProductionAgent.d.ts +1 -1
  322. package/dist/client/useProductionAgent.d.ts.map +1 -1
  323. package/dist/client/useProductionAgent.js +38 -3
  324. package/dist/client/useProductionAgent.js.map +1 -1
  325. package/dist/collab/awareness.d.ts +41 -0
  326. package/dist/collab/awareness.d.ts.map +1 -0
  327. package/dist/collab/awareness.js +82 -0
  328. package/dist/collab/awareness.js.map +1 -0
  329. package/dist/collab/client.d.ts +49 -0
  330. package/dist/collab/client.d.ts.map +1 -0
  331. package/dist/collab/client.js +250 -0
  332. package/dist/collab/client.js.map +1 -0
  333. package/dist/collab/emitter.d.ts +12 -0
  334. package/dist/collab/emitter.d.ts.map +1 -0
  335. package/dist/collab/emitter.js +16 -0
  336. package/dist/collab/emitter.js.map +1 -0
  337. package/dist/collab/index.d.ts +7 -0
  338. package/dist/collab/index.d.ts.map +1 -0
  339. package/dist/collab/index.js +14 -0
  340. package/dist/collab/index.js.map +1 -0
  341. package/dist/collab/routes.d.ts +69 -0
  342. package/dist/collab/routes.d.ts.map +1 -0
  343. package/dist/collab/routes.js +98 -0
  344. package/dist/collab/routes.js.map +1 -0
  345. package/dist/collab/storage.d.ts +18 -0
  346. package/dist/collab/storage.d.ts.map +1 -0
  347. package/dist/collab/storage.js +94 -0
  348. package/dist/collab/storage.js.map +1 -0
  349. package/dist/collab/text-to-yjs.d.ts +23 -0
  350. package/dist/collab/text-to-yjs.d.ts.map +1 -0
  351. package/dist/collab/text-to-yjs.js +63 -0
  352. package/dist/collab/text-to-yjs.js.map +1 -0
  353. package/dist/collab/xml-ops.d.ts +20 -0
  354. package/dist/collab/xml-ops.d.ts.map +1 -0
  355. package/dist/collab/xml-ops.js +59 -0
  356. package/dist/collab/xml-ops.js.map +1 -0
  357. package/dist/collab/ydoc-manager.d.ts +52 -0
  358. package/dist/collab/ydoc-manager.d.ts.map +1 -0
  359. package/dist/collab/ydoc-manager.js +154 -0
  360. package/dist/collab/ydoc-manager.js.map +1 -0
  361. package/dist/credentials/index.d.ts +18 -0
  362. package/dist/credentials/index.d.ts.map +1 -0
  363. package/dist/credentials/index.js +32 -0
  364. package/dist/credentials/index.js.map +1 -0
  365. package/dist/db/client.d.ts +45 -0
  366. package/dist/db/client.d.ts.map +1 -0
  367. package/dist/db/client.js +289 -0
  368. package/dist/db/client.js.map +1 -0
  369. package/dist/db/create-get-db.d.ts.map +1 -1
  370. package/dist/db/create-get-db.js +103 -16
  371. package/dist/db/create-get-db.js.map +1 -1
  372. package/dist/db/index.d.ts +10 -6
  373. package/dist/db/index.d.ts.map +1 -1
  374. package/dist/db/index.js +10 -4
  375. package/dist/db/index.js.map +1 -1
  376. package/dist/db/migrations.d.ts +9 -1
  377. package/dist/db/migrations.d.ts.map +1 -1
  378. package/dist/db/migrations.js +67 -41
  379. package/dist/db/migrations.js.map +1 -1
  380. package/dist/db/schema.d.ts +52 -0
  381. package/dist/db/schema.d.ts.map +1 -0
  382. package/dist/db/schema.js +72 -0
  383. package/dist/db/schema.js.map +1 -0
  384. package/dist/deploy/build.js +636 -42
  385. package/dist/deploy/build.js.map +1 -1
  386. package/dist/deploy/route-discovery.d.ts +25 -3
  387. package/dist/deploy/route-discovery.d.ts.map +1 -1
  388. package/dist/deploy/route-discovery.js +135 -24
  389. package/dist/deploy/route-discovery.js.map +1 -1
  390. package/dist/index.browser.d.ts +3 -1
  391. package/dist/index.browser.d.ts.map +1 -1
  392. package/dist/index.browser.js +5 -1
  393. package/dist/index.browser.js.map +1 -1
  394. package/dist/index.d.ts +4 -3
  395. package/dist/index.d.ts.map +1 -1
  396. package/dist/index.js +3 -2
  397. package/dist/index.js.map +1 -1
  398. package/dist/integrations/adapters/slack.d.ts +10 -0
  399. package/dist/integrations/adapters/slack.d.ts.map +1 -0
  400. package/dist/integrations/adapters/slack.js +215 -0
  401. package/dist/integrations/adapters/slack.js.map +1 -0
  402. package/dist/integrations/adapters/telegram.d.ts +12 -0
  403. package/dist/integrations/adapters/telegram.d.ts.map +1 -0
  404. package/dist/integrations/adapters/telegram.js +184 -0
  405. package/dist/integrations/adapters/telegram.js.map +1 -0
  406. package/dist/integrations/adapters/whatsapp.d.ts +14 -0
  407. package/dist/integrations/adapters/whatsapp.d.ts.map +1 -0
  408. package/dist/integrations/adapters/whatsapp.js +205 -0
  409. package/dist/integrations/adapters/whatsapp.js.map +1 -0
  410. package/dist/integrations/config-store.d.ts +24 -0
  411. package/dist/integrations/config-store.d.ts.map +1 -0
  412. package/dist/integrations/config-store.js +92 -0
  413. package/dist/integrations/config-store.js.map +1 -0
  414. package/dist/integrations/index.d.ts +8 -0
  415. package/dist/integrations/index.d.ts.map +1 -0
  416. package/dist/integrations/index.js +10 -0
  417. package/dist/integrations/index.js.map +1 -0
  418. package/dist/integrations/plugin.d.ts +20 -0
  419. package/dist/integrations/plugin.d.ts.map +1 -0
  420. package/dist/integrations/plugin.js +213 -0
  421. package/dist/integrations/plugin.js.map +1 -0
  422. package/dist/integrations/thread-mapping-store.d.ts +25 -0
  423. package/dist/integrations/thread-mapping-store.d.ts.map +1 -0
  424. package/dist/integrations/thread-mapping-store.js +95 -0
  425. package/dist/integrations/thread-mapping-store.js.map +1 -0
  426. package/dist/integrations/types.d.ts +111 -0
  427. package/dist/integrations/types.d.ts.map +1 -0
  428. package/dist/integrations/types.js +2 -0
  429. package/dist/integrations/types.js.map +1 -0
  430. package/dist/integrations/webhook-handler.d.ts +31 -0
  431. package/dist/integrations/webhook-handler.d.ts.map +1 -0
  432. package/dist/integrations/webhook-handler.js +210 -0
  433. package/dist/integrations/webhook-handler.js.map +1 -0
  434. package/dist/jobs/cron.d.ts +14 -0
  435. package/dist/jobs/cron.d.ts.map +1 -0
  436. package/dist/jobs/cron.js +100 -0
  437. package/dist/jobs/cron.js.map +1 -0
  438. package/dist/jobs/index.d.ts +4 -0
  439. package/dist/jobs/index.d.ts.map +1 -0
  440. package/dist/jobs/index.js +4 -0
  441. package/dist/jobs/index.js.map +1 -0
  442. package/dist/jobs/scheduler.d.ts +29 -0
  443. package/dist/jobs/scheduler.d.ts.map +1 -0
  444. package/dist/jobs/scheduler.js +205 -0
  445. package/dist/jobs/scheduler.js.map +1 -0
  446. package/dist/jobs/tools.d.ts +3 -0
  447. package/dist/jobs/tools.d.ts.map +1 -0
  448. package/dist/jobs/tools.js +192 -0
  449. package/dist/jobs/tools.js.map +1 -0
  450. package/dist/mcp/index.d.ts +3 -0
  451. package/dist/mcp/index.d.ts.map +1 -0
  452. package/dist/mcp/index.js +2 -0
  453. package/dist/mcp/index.js.map +1 -0
  454. package/dist/mcp/server.d.ts +26 -0
  455. package/dist/mcp/server.d.ts.map +1 -0
  456. package/dist/mcp/server.js +182 -0
  457. package/dist/mcp/server.js.map +1 -0
  458. package/dist/oauth-tokens/index.d.ts +1 -1
  459. package/dist/oauth-tokens/index.d.ts.map +1 -1
  460. package/dist/oauth-tokens/index.js +1 -1
  461. package/dist/oauth-tokens/index.js.map +1 -1
  462. package/dist/oauth-tokens/store.d.ts +5 -0
  463. package/dist/oauth-tokens/store.d.ts.map +1 -1
  464. package/dist/oauth-tokens/store.js +67 -82
  465. package/dist/oauth-tokens/store.js.map +1 -1
  466. package/dist/org/context.d.ts +11 -0
  467. package/dist/org/context.d.ts.map +1 -0
  468. package/dist/org/context.js +61 -0
  469. package/dist/org/context.js.map +1 -0
  470. package/dist/org/handlers.d.ts +66 -0
  471. package/dist/org/handlers.d.ts.map +1 -0
  472. package/dist/org/handlers.js +306 -0
  473. package/dist/org/handlers.js.map +1 -0
  474. package/dist/org/index.d.ts +7 -0
  475. package/dist/org/index.d.ts.map +1 -0
  476. package/dist/org/index.js +11 -0
  477. package/dist/org/index.js.map +1 -0
  478. package/dist/org/migrations.d.ts +10 -0
  479. package/dist/org/migrations.d.ts.map +1 -0
  480. package/dist/org/migrations.js +39 -0
  481. package/dist/org/migrations.js.map +1 -0
  482. package/dist/org/plugin.d.ts +26 -0
  483. package/dist/org/plugin.d.ts.map +1 -0
  484. package/dist/org/plugin.js +94 -0
  485. package/dist/org/plugin.js.map +1 -0
  486. package/dist/org/schema.d.ts +301 -0
  487. package/dist/org/schema.d.ts.map +1 -0
  488. package/dist/org/schema.js +23 -0
  489. package/dist/org/schema.js.map +1 -0
  490. package/dist/org/types.d.ts +42 -0
  491. package/dist/org/types.d.ts.map +1 -0
  492. package/dist/org/types.js +5 -0
  493. package/dist/org/types.js.map +1 -0
  494. package/dist/resources/emitter.d.ts +13 -0
  495. package/dist/resources/emitter.d.ts.map +1 -0
  496. package/dist/resources/emitter.js +32 -0
  497. package/dist/resources/emitter.js.map +1 -0
  498. package/dist/resources/handlers.d.ts +54 -0
  499. package/dist/resources/handlers.d.ts.map +1 -0
  500. package/dist/resources/handlers.js +292 -0
  501. package/dist/resources/handlers.js.map +1 -0
  502. package/dist/resources/index.d.ts +5 -0
  503. package/dist/resources/index.d.ts.map +1 -0
  504. package/dist/resources/index.js +5 -0
  505. package/dist/resources/index.js.map +1 -0
  506. package/dist/resources/script-helpers.d.ts +24 -0
  507. package/dist/resources/script-helpers.d.ts.map +1 -0
  508. package/dist/resources/script-helpers.js +36 -0
  509. package/dist/resources/script-helpers.js.map +1 -0
  510. package/dist/resources/store.d.ts +40 -0
  511. package/dist/resources/store.d.ts.map +1 -0
  512. package/dist/resources/store.js +497 -0
  513. package/dist/resources/store.js.map +1 -0
  514. package/dist/scripts/agent-engines/list-agent-engines.d.ts +7 -0
  515. package/dist/scripts/agent-engines/list-agent-engines.d.ts.map +1 -0
  516. package/dist/scripts/agent-engines/list-agent-engines.js +42 -0
  517. package/dist/scripts/agent-engines/list-agent-engines.js.map +1 -0
  518. package/dist/scripts/agent-engines/set-agent-engine.d.ts +7 -0
  519. package/dist/scripts/agent-engines/set-agent-engine.d.ts.map +1 -0
  520. package/dist/scripts/agent-engines/set-agent-engine.js +57 -0
  521. package/dist/scripts/agent-engines/set-agent-engine.js.map +1 -0
  522. package/dist/scripts/agent-engines/test-agent-engine.d.ts +7 -0
  523. package/dist/scripts/agent-engines/test-agent-engine.d.ts.map +1 -0
  524. package/dist/scripts/agent-engines/test-agent-engine.js +102 -0
  525. package/dist/scripts/agent-engines/test-agent-engine.js.map +1 -0
  526. package/dist/scripts/call-agent.d.ts +5 -0
  527. package/dist/scripts/call-agent.d.ts.map +1 -0
  528. package/dist/scripts/call-agent.js +111 -0
  529. package/dist/scripts/call-agent.js.map +1 -0
  530. package/dist/scripts/chat/index.d.ts +2 -0
  531. package/dist/scripts/chat/index.d.ts.map +1 -0
  532. package/dist/scripts/chat/index.js +5 -0
  533. package/dist/scripts/chat/index.js.map +1 -0
  534. package/dist/scripts/chat/open-chat.d.ts +11 -0
  535. package/dist/scripts/chat/open-chat.d.ts.map +1 -0
  536. package/dist/scripts/chat/open-chat.js +48 -0
  537. package/dist/scripts/chat/open-chat.js.map +1 -0
  538. package/dist/scripts/chat/search-chats.d.ts +10 -0
  539. package/dist/scripts/chat/search-chats.d.ts.map +1 -0
  540. package/dist/scripts/chat/search-chats.js +89 -0
  541. package/dist/scripts/chat/search-chats.js.map +1 -0
  542. package/dist/scripts/core-scripts.d.ts.map +1 -1
  543. package/dist/scripts/core-scripts.js +4 -0
  544. package/dist/scripts/core-scripts.js.map +1 -1
  545. package/dist/scripts/db/check-scoping.d.ts +14 -0
  546. package/dist/scripts/db/check-scoping.d.ts.map +1 -0
  547. package/dist/scripts/db/check-scoping.js +174 -0
  548. package/dist/scripts/db/check-scoping.js.map +1 -0
  549. package/dist/scripts/db/exec.d.ts +7 -2
  550. package/dist/scripts/db/exec.d.ts.map +1 -1
  551. package/dist/scripts/db/exec.js +143 -36
  552. package/dist/scripts/db/exec.js.map +1 -1
  553. package/dist/scripts/db/index.d.ts.map +1 -1
  554. package/dist/scripts/db/index.js +2 -0
  555. package/dist/scripts/db/index.js.map +1 -1
  556. package/dist/scripts/db/patch.d.ts +50 -0
  557. package/dist/scripts/db/patch.d.ts.map +1 -0
  558. package/dist/scripts/db/patch.js +392 -0
  559. package/dist/scripts/db/patch.js.map +1 -0
  560. package/dist/scripts/db/query.d.ts +7 -2
  561. package/dist/scripts/db/query.d.ts.map +1 -1
  562. package/dist/scripts/db/query.js +89 -45
  563. package/dist/scripts/db/query.js.map +1 -1
  564. package/dist/scripts/db/schema.d.ts +2 -2
  565. package/dist/scripts/db/schema.d.ts.map +1 -1
  566. package/dist/scripts/db/schema.js +145 -6
  567. package/dist/scripts/db/schema.js.map +1 -1
  568. package/dist/scripts/db/scoping.d.ts +42 -0
  569. package/dist/scripts/db/scoping.d.ts.map +1 -0
  570. package/dist/scripts/db/scoping.js +216 -0
  571. package/dist/scripts/db/scoping.js.map +1 -0
  572. package/dist/scripts/dev/index.d.ts +2 -2
  573. package/dist/scripts/dev/index.d.ts.map +1 -1
  574. package/dist/scripts/dev/index.js +65 -2
  575. package/dist/scripts/dev/index.js.map +1 -1
  576. package/dist/scripts/dev/list-files.d.ts +2 -2
  577. package/dist/scripts/dev/read-file.d.ts +2 -2
  578. package/dist/scripts/dev/read-file.js +1 -1
  579. package/dist/scripts/dev/read-file.js.map +1 -1
  580. package/dist/scripts/dev/search-files.d.ts +2 -2
  581. package/dist/scripts/dev/search-files.js +1 -1
  582. package/dist/scripts/dev/search-files.js.map +1 -1
  583. package/dist/scripts/dev/shell.d.ts +2 -2
  584. package/dist/scripts/dev/shell.js +1 -1
  585. package/dist/scripts/dev/shell.js.map +1 -1
  586. package/dist/scripts/dev/write-file.d.ts +2 -2
  587. package/dist/scripts/dev/write-file.js +1 -1
  588. package/dist/scripts/dev/write-file.js.map +1 -1
  589. package/dist/scripts/parse-args.d.ts +14 -0
  590. package/dist/scripts/parse-args.d.ts.map +1 -0
  591. package/dist/scripts/parse-args.js +45 -0
  592. package/dist/scripts/parse-args.js.map +1 -0
  593. package/dist/scripts/resources/delete.d.ts +10 -0
  594. package/dist/scripts/resources/delete.d.ts.map +1 -0
  595. package/dist/scripts/resources/delete.js +38 -0
  596. package/dist/scripts/resources/delete.js.map +1 -0
  597. package/dist/scripts/resources/index.d.ts +2 -0
  598. package/dist/scripts/resources/index.d.ts.map +1 -0
  599. package/dist/scripts/resources/index.js +8 -0
  600. package/dist/scripts/resources/index.js.map +1 -0
  601. package/dist/scripts/resources/list.d.ts +10 -0
  602. package/dist/scripts/resources/list.d.ts.map +1 -0
  603. package/dist/scripts/resources/list.js +57 -0
  604. package/dist/scripts/resources/list.js.map +1 -0
  605. package/dist/scripts/resources/migrate-learnings.d.ts +10 -0
  606. package/dist/scripts/resources/migrate-learnings.d.ts.map +1 -0
  607. package/dist/scripts/resources/migrate-learnings.js +23 -0
  608. package/dist/scripts/resources/migrate-learnings.js.map +1 -0
  609. package/dist/scripts/resources/read.d.ts +10 -0
  610. package/dist/scripts/resources/read.d.ts.map +1 -0
  611. package/dist/scripts/resources/read.js +59 -0
  612. package/dist/scripts/resources/read.js.map +1 -0
  613. package/dist/scripts/resources/write.d.ts +10 -0
  614. package/dist/scripts/resources/write.d.ts.map +1 -0
  615. package/dist/scripts/resources/write.js +67 -0
  616. package/dist/scripts/resources/write.js.map +1 -0
  617. package/dist/scripts/runner.d.ts +7 -7
  618. package/dist/scripts/runner.d.ts.map +1 -1
  619. package/dist/scripts/runner.js +78 -29
  620. package/dist/scripts/runner.js.map +1 -1
  621. package/dist/scripts/utils.d.ts +5 -10
  622. package/dist/scripts/utils.d.ts.map +1 -1
  623. package/dist/scripts/utils.js +7 -43
  624. package/dist/scripts/utils.js.map +1 -1
  625. package/dist/server/action-discovery.d.ts +40 -0
  626. package/dist/server/action-discovery.d.ts.map +1 -0
  627. package/dist/server/action-discovery.js +257 -0
  628. package/dist/server/action-discovery.js.map +1 -0
  629. package/dist/server/action-routes.d.ts +15 -0
  630. package/dist/server/action-routes.d.ts.map +1 -0
  631. package/dist/server/action-routes.js +105 -0
  632. package/dist/server/action-routes.js.map +1 -0
  633. package/dist/server/agent-chat-plugin.d.ts +32 -23
  634. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  635. package/dist/server/agent-chat-plugin.js +1983 -39
  636. package/dist/server/agent-chat-plugin.js.map +1 -1
  637. package/dist/server/agent-discovery.d.ts +21 -0
  638. package/dist/server/agent-discovery.d.ts.map +1 -0
  639. package/dist/server/agent-discovery.js +197 -0
  640. package/dist/server/agent-discovery.js.map +1 -0
  641. package/dist/server/agent-teams.d.ts +70 -0
  642. package/dist/server/agent-teams.d.ts.map +1 -0
  643. package/dist/server/agent-teams.js +367 -0
  644. package/dist/server/agent-teams.js.map +1 -0
  645. package/dist/server/agents-bundle.d.ts +87 -0
  646. package/dist/server/agents-bundle.d.ts.map +1 -0
  647. package/dist/server/agents-bundle.js +231 -0
  648. package/dist/server/agents-bundle.js.map +1 -0
  649. package/dist/server/auth-plugin.d.ts +5 -0
  650. package/dist/server/auth-plugin.d.ts.map +1 -1
  651. package/dist/server/auth-plugin.js +13 -3
  652. package/dist/server/auth-plugin.js.map +1 -1
  653. package/dist/server/auth.d.ts +54 -31
  654. package/dist/server/auth.d.ts.map +1 -1
  655. package/dist/server/auth.js +671 -294
  656. package/dist/server/auth.js.map +1 -1
  657. package/dist/server/better-auth-instance.d.ts +72 -0
  658. package/dist/server/better-auth-instance.d.ts.map +1 -0
  659. package/dist/server/better-auth-instance.js +144 -0
  660. package/dist/server/better-auth-instance.js.map +1 -0
  661. package/dist/server/collab-plugin.d.ts +29 -0
  662. package/dist/server/collab-plugin.d.ts.map +1 -0
  663. package/dist/server/collab-plugin.js +85 -0
  664. package/dist/server/collab-plugin.js.map +1 -0
  665. package/dist/server/core-routes-plugin.d.ts +54 -0
  666. package/dist/server/core-routes-plugin.d.ts.map +1 -0
  667. package/dist/server/core-routes-plugin.js +195 -0
  668. package/dist/server/core-routes-plugin.js.map +1 -0
  669. package/dist/server/create-server.d.ts +5 -5
  670. package/dist/server/create-server.d.ts.map +1 -1
  671. package/dist/server/create-server.js +44 -21
  672. package/dist/server/create-server.js.map +1 -1
  673. package/dist/server/framework-request-handler.d.ts +47 -0
  674. package/dist/server/framework-request-handler.d.ts.map +1 -0
  675. package/dist/server/framework-request-handler.js +168 -0
  676. package/dist/server/framework-request-handler.js.map +1 -0
  677. package/dist/server/google-auth-plugin.d.ts +4 -0
  678. package/dist/server/google-auth-plugin.d.ts.map +1 -1
  679. package/dist/server/google-auth-plugin.js +16 -15
  680. package/dist/server/google-auth-plugin.js.map +1 -1
  681. package/dist/server/google-oauth.d.ts +72 -0
  682. package/dist/server/google-oauth.d.ts.map +1 -0
  683. package/dist/server/google-oauth.js +209 -0
  684. package/dist/server/google-oauth.js.map +1 -0
  685. package/dist/server/h3-helpers.d.ts +23 -0
  686. package/dist/server/h3-helpers.d.ts.map +1 -0
  687. package/dist/server/h3-helpers.js +37 -0
  688. package/dist/server/h3-helpers.js.map +1 -0
  689. package/dist/server/index.d.ts +17 -5
  690. package/dist/server/index.d.ts.map +1 -1
  691. package/dist/server/index.js +19 -4
  692. package/dist/server/index.js.map +1 -1
  693. package/dist/server/local-migration.d.ts +32 -0
  694. package/dist/server/local-migration.d.ts.map +1 -0
  695. package/dist/server/local-migration.js +205 -0
  696. package/dist/server/local-migration.js.map +1 -0
  697. package/dist/server/oauth-helpers.d.ts +14 -0
  698. package/dist/server/oauth-helpers.d.ts.map +1 -0
  699. package/dist/server/oauth-helpers.js +23 -0
  700. package/dist/server/oauth-helpers.js.map +1 -0
  701. package/dist/server/onboarding-html.d.ts +24 -0
  702. package/dist/server/onboarding-html.d.ts.map +1 -0
  703. package/dist/server/onboarding-html.js +347 -0
  704. package/dist/server/onboarding-html.js.map +1 -0
  705. package/dist/server/poll.d.ts +45 -0
  706. package/dist/server/poll.d.ts.map +1 -0
  707. package/dist/server/poll.js +96 -0
  708. package/dist/server/poll.js.map +1 -0
  709. package/dist/server/resources-plugin.d.ts +27 -0
  710. package/dist/server/resources-plugin.d.ts.map +1 -0
  711. package/dist/server/resources-plugin.js +75 -0
  712. package/dist/server/resources-plugin.js.map +1 -0
  713. package/dist/server/schema-prompt.d.ts +16 -0
  714. package/dist/server/schema-prompt.d.ts.map +1 -0
  715. package/dist/server/schema-prompt.js +275 -0
  716. package/dist/server/schema-prompt.js.map +1 -0
  717. package/dist/server/script-discovery.d.ts +6 -0
  718. package/dist/server/script-discovery.d.ts.map +1 -0
  719. package/dist/server/script-discovery.js +6 -0
  720. package/dist/server/script-discovery.js.map +1 -0
  721. package/dist/server/sse.d.ts +4 -21
  722. package/dist/server/sse.d.ts.map +1 -1
  723. package/dist/server/sse.js +2 -30
  724. package/dist/server/sse.js.map +1 -1
  725. package/dist/server/ssr-handler.d.ts +6 -0
  726. package/dist/server/ssr-handler.d.ts.map +1 -0
  727. package/dist/server/ssr-handler.js +55 -0
  728. package/dist/server/ssr-handler.js.map +1 -0
  729. package/dist/settings/handlers.d.ts +6 -6
  730. package/dist/settings/handlers.d.ts.map +1 -1
  731. package/dist/settings/handlers.js +9 -6
  732. package/dist/settings/handlers.js.map +1 -1
  733. package/dist/settings/index.d.ts +2 -1
  734. package/dist/settings/index.d.ts.map +1 -1
  735. package/dist/settings/index.js +2 -0
  736. package/dist/settings/index.js.map +1 -1
  737. package/dist/settings/org-settings.d.ts +22 -0
  738. package/dist/settings/org-settings.d.ts.map +1 -0
  739. package/dist/settings/org-settings.js +45 -0
  740. package/dist/settings/org-settings.js.map +1 -0
  741. package/dist/settings/store.d.ts +6 -2
  742. package/dist/settings/store.d.ts.map +1 -1
  743. package/dist/settings/store.js +26 -63
  744. package/dist/settings/store.js.map +1 -1
  745. package/dist/settings/user-settings.d.ts +3 -2
  746. package/dist/settings/user-settings.d.ts.map +1 -1
  747. package/dist/settings/user-settings.js +5 -5
  748. package/dist/settings/user-settings.js.map +1 -1
  749. package/dist/shared/agent-chat.d.ts +5 -5
  750. package/dist/shared/agent-chat.d.ts.map +1 -1
  751. package/dist/shared/agent-chat.js +8 -8
  752. package/dist/shared/agent-chat.js.map +1 -1
  753. package/dist/shared/agent-env.d.ts +1 -1
  754. package/dist/shared/agent-env.js +1 -1
  755. package/dist/shared/runtime.d.ts +14 -0
  756. package/dist/shared/runtime.d.ts.map +1 -0
  757. package/dist/shared/runtime.js +25 -0
  758. package/dist/shared/runtime.js.map +1 -0
  759. package/dist/tailwind.preset.d.ts +7 -6
  760. package/dist/tailwind.preset.d.ts.map +1 -1
  761. package/dist/tailwind.preset.js +18 -1
  762. package/dist/tailwind.preset.js.map +1 -1
  763. package/dist/templates/default/.agents/skills/actions/SKILL.md +142 -0
  764. package/dist/templates/default/.agents/skills/agent-engines/SKILL.md +127 -0
  765. package/dist/templates/default/.agents/skills/capture-learnings/SKILL.md +50 -0
  766. package/dist/templates/default/.agents/skills/create-skill/SKILL.md +167 -0
  767. package/dist/templates/default/.agents/skills/delegate-to-agent/SKILL.md +90 -0
  768. package/dist/templates/default/.agents/skills/frontend-design/SKILL.md +69 -0
  769. package/dist/templates/default/.agents/skills/real-time-collab/SKILL.md +183 -0
  770. package/dist/templates/default/.agents/skills/real-time-sync/SKILL.md +112 -0
  771. package/dist/templates/default/.agents/skills/security/SKILL.md +108 -0
  772. package/dist/templates/default/.agents/skills/self-modifying-code/SKILL.md +79 -0
  773. package/{src/templates/default/.agents/skills/files-as-database → dist/templates/default/.agents/skills/storing-data}/SKILL.md +2 -2
  774. package/dist/templates/default/.claude/settings.json +100 -0
  775. package/dist/templates/default/.env.example +5 -0
  776. package/dist/templates/default/.prettierrc +5 -0
  777. package/dist/templates/default/AGENTS.md +110 -0
  778. package/dist/templates/default/DEVELOPING.md +117 -0
  779. package/dist/templates/default/_gitignore +37 -0
  780. package/{src/templates/default/scripts → dist/templates/default/actions}/hello.ts +1 -1
  781. package/dist/templates/default/actions/navigate.ts +53 -0
  782. package/dist/templates/default/actions/view-screen.ts +39 -0
  783. package/dist/templates/default/app/entry.client.tsx +4 -0
  784. package/dist/templates/default/app/entry.server.tsx +56 -0
  785. package/dist/templates/default/app/global.css +95 -0
  786. package/dist/templates/default/app/lib/utils.ts +1 -0
  787. package/dist/templates/default/app/root.tsx +107 -0
  788. package/dist/templates/default/app/routes/_index.tsx +62 -0
  789. package/dist/templates/default/app/routes.ts +4 -0
  790. package/dist/templates/default/app/vite-env.d.ts +6 -0
  791. package/dist/templates/default/components.json +20 -0
  792. package/dist/templates/default/data/.gitkeep +0 -0
  793. package/dist/templates/default/data/sync-config.json +1 -0
  794. package/dist/templates/default/learnings.defaults.md +5 -0
  795. package/dist/templates/default/learnings.md +0 -0
  796. package/dist/templates/default/package.json +46 -0
  797. package/dist/templates/default/postcss.config.js +6 -0
  798. package/dist/templates/default/public/icon-180.svg +4 -0
  799. package/dist/templates/default/public/icon-192.svg +4 -0
  800. package/dist/templates/default/public/icon-512.svg +4 -0
  801. package/dist/templates/default/public/manifest.json +13 -0
  802. package/dist/templates/default/react-router.config.ts +6 -0
  803. package/dist/templates/default/server/middleware/auth.ts +15 -0
  804. package/dist/templates/default/server/plugins/.gitkeep +0 -0
  805. package/dist/templates/default/server/routes/[...page].get.ts +5 -0
  806. package/dist/templates/default/server/routes/api/hello.get.ts +5 -0
  807. package/dist/templates/default/shared/api.ts +6 -0
  808. package/dist/templates/default/ssr-entry.ts +20 -0
  809. package/dist/templates/default/tailwind.config.ts +7 -0
  810. package/dist/templates/default/tsconfig.json +11 -0
  811. package/dist/templates/default/vite.config.ts +6 -0
  812. package/dist/templates/templates/default/.agents/skills/actions/SKILL.md +142 -0
  813. package/dist/templates/templates/default/.agents/skills/agent-engines/SKILL.md +127 -0
  814. package/dist/templates/templates/default/.agents/skills/capture-learnings/SKILL.md +50 -0
  815. package/dist/templates/templates/default/.agents/skills/create-skill/SKILL.md +167 -0
  816. package/dist/templates/templates/default/.agents/skills/delegate-to-agent/SKILL.md +90 -0
  817. package/dist/templates/templates/default/.agents/skills/frontend-design/SKILL.md +69 -0
  818. package/dist/templates/templates/default/.agents/skills/real-time-collab/SKILL.md +183 -0
  819. package/dist/templates/templates/default/.agents/skills/real-time-sync/SKILL.md +112 -0
  820. package/dist/templates/templates/default/.agents/skills/security/SKILL.md +108 -0
  821. package/dist/templates/templates/default/.agents/skills/self-modifying-code/SKILL.md +79 -0
  822. package/dist/templates/templates/default/.agents/skills/storing-data/SKILL.md +110 -0
  823. package/dist/templates/templates/default/.claude/settings.json +100 -0
  824. package/dist/templates/templates/default/.env.example +5 -0
  825. package/dist/templates/templates/default/.ignore +0 -0
  826. package/dist/templates/templates/default/.prettierrc +5 -0
  827. package/dist/templates/templates/default/AGENTS.md +110 -0
  828. package/dist/templates/templates/default/DEVELOPING.md +117 -0
  829. package/dist/templates/templates/default/_gitignore +37 -0
  830. package/dist/templates/templates/default/actions/hello.ts +20 -0
  831. package/dist/templates/templates/default/actions/navigate.ts +53 -0
  832. package/dist/templates/templates/default/actions/run.ts +2 -0
  833. package/dist/templates/templates/default/actions/view-screen.ts +39 -0
  834. package/dist/templates/templates/default/app/entry.client.tsx +4 -0
  835. package/dist/templates/templates/default/app/entry.server.tsx +56 -0
  836. package/dist/templates/templates/default/app/global.css +95 -0
  837. package/dist/templates/templates/default/app/lib/utils.ts +1 -0
  838. package/dist/templates/templates/default/app/root.tsx +107 -0
  839. package/dist/templates/templates/default/app/routes/_index.tsx +62 -0
  840. package/dist/templates/templates/default/app/routes.ts +4 -0
  841. package/dist/templates/templates/default/app/vite-env.d.ts +6 -0
  842. package/dist/templates/templates/default/components.json +20 -0
  843. package/dist/templates/templates/default/data/.gitkeep +0 -0
  844. package/dist/templates/templates/default/data/sync-config.json +1 -0
  845. package/dist/templates/templates/default/learnings.defaults.md +5 -0
  846. package/dist/templates/templates/default/learnings.md +0 -0
  847. package/dist/templates/templates/default/package.json +46 -0
  848. package/dist/templates/templates/default/postcss.config.js +6 -0
  849. package/dist/templates/templates/default/public/icon-180.svg +4 -0
  850. package/dist/templates/templates/default/public/icon-192.svg +4 -0
  851. package/dist/templates/templates/default/public/icon-512.svg +4 -0
  852. package/dist/templates/templates/default/public/manifest.json +13 -0
  853. package/dist/templates/templates/default/react-router.config.ts +6 -0
  854. package/dist/templates/templates/default/server/middleware/auth.ts +15 -0
  855. package/dist/templates/templates/default/server/plugins/.gitkeep +0 -0
  856. package/dist/templates/templates/default/server/routes/[...page].get.ts +5 -0
  857. package/dist/templates/templates/default/server/routes/api/hello.get.ts +5 -0
  858. package/dist/templates/templates/default/shared/api.ts +6 -0
  859. package/dist/templates/templates/default/ssr-entry.ts +20 -0
  860. package/dist/templates/templates/default/tailwind.config.ts +7 -0
  861. package/dist/templates/templates/default/tsconfig.json +11 -0
  862. package/dist/templates/templates/default/vite.config.ts +6 -0
  863. package/dist/terminal/cli-registry.d.ts +2 -2
  864. package/dist/terminal/cli-registry.d.ts.map +1 -1
  865. package/dist/terminal/cli-registry.js +8 -8
  866. package/dist/terminal/cli-registry.js.map +1 -1
  867. package/dist/terminal/pty-server.d.ts +1 -1
  868. package/dist/terminal/pty-server.d.ts.map +1 -1
  869. package/dist/terminal/pty-server.js +94 -18
  870. package/dist/terminal/pty-server.js.map +1 -1
  871. package/dist/terminal/terminal-plugin.d.ts +1 -10
  872. package/dist/terminal/terminal-plugin.d.ts.map +1 -1
  873. package/dist/terminal/terminal-plugin.js +77 -28
  874. package/dist/terminal/terminal-plugin.js.map +1 -1
  875. package/dist/usage/store.d.ts +29 -0
  876. package/dist/usage/store.d.ts.map +1 -0
  877. package/dist/usage/store.js +102 -0
  878. package/dist/usage/store.js.map +1 -0
  879. package/dist/vite/action-types-plugin.d.ts +13 -0
  880. package/dist/vite/action-types-plugin.d.ts.map +1 -0
  881. package/dist/vite/action-types-plugin.js +132 -0
  882. package/dist/vite/action-types-plugin.js.map +1 -0
  883. package/dist/vite/agents-bundle-plugin.d.ts +3 -0
  884. package/dist/vite/agents-bundle-plugin.d.ts.map +1 -0
  885. package/dist/vite/agents-bundle-plugin.js +87 -0
  886. package/dist/vite/agents-bundle-plugin.js.map +1 -0
  887. package/dist/vite/client.d.ts +5 -0
  888. package/dist/vite/client.d.ts.map +1 -1
  889. package/dist/vite/client.js +310 -19
  890. package/dist/vite/client.js.map +1 -1
  891. package/dist/vite/index.d.ts +2 -1
  892. package/dist/vite/index.d.ts.map +1 -1
  893. package/dist/vite/index.js +2 -1
  894. package/dist/vite/index.js.map +1 -1
  895. package/package.json +78 -14
  896. package/src/templates/default/.agents/skills/actions/SKILL.md +142 -0
  897. package/src/templates/default/.agents/skills/agent-engines/SKILL.md +127 -0
  898. package/src/templates/default/.agents/skills/create-skill/SKILL.md +1 -1
  899. package/src/templates/default/.agents/skills/delegate-to-agent/SKILL.md +1 -1
  900. package/src/templates/default/.agents/skills/real-time-collab/SKILL.md +183 -0
  901. package/src/templates/default/.agents/skills/real-time-sync/SKILL.md +112 -0
  902. package/src/templates/default/.agents/skills/security/SKILL.md +108 -0
  903. package/src/templates/default/.agents/skills/storing-data/SKILL.md +110 -0
  904. package/src/templates/default/.claude/settings.json +13 -0
  905. package/src/templates/default/AGENTS.md +72 -164
  906. package/src/templates/default/DEVELOPING.md +117 -0
  907. package/src/templates/default/actions/hello.ts +20 -0
  908. package/src/templates/default/actions/navigate.ts +53 -0
  909. package/src/templates/default/actions/run.ts +2 -0
  910. package/src/templates/default/actions/view-screen.ts +39 -0
  911. package/src/templates/default/app/global.css +2 -2
  912. package/src/templates/default/app/root.tsx +19 -16
  913. package/src/templates/default/app/routes/_index.tsx +1 -1
  914. package/src/templates/default/package.json +6 -2
  915. package/src/templates/default/server/middleware/auth.ts +15 -0
  916. package/src/templates/default/server/plugins/.gitkeep +0 -0
  917. package/src/templates/default/server/routes/[...page].get.ts +2 -9
  918. package/src/templates/default/ssr-entry.ts +20 -0
  919. package/dist/a2a/middleware.d.ts +0 -3
  920. package/dist/a2a/middleware.d.ts.map +0 -1
  921. package/dist/a2a/middleware.js +0 -36
  922. package/dist/a2a/middleware.js.map +0 -1
  923. package/dist/adapters/convex/adapter.d.ts +0 -24
  924. package/dist/adapters/convex/adapter.d.ts.map +0 -1
  925. package/dist/adapters/convex/adapter.js +0 -125
  926. package/dist/adapters/convex/adapter.js.map +0 -1
  927. package/dist/adapters/convex/index.d.ts +0 -4
  928. package/dist/adapters/convex/index.d.ts.map +0 -1
  929. package/dist/adapters/convex/index.js +0 -3
  930. package/dist/adapters/convex/index.js.map +0 -1
  931. package/dist/adapters/drizzle/adapter.d.ts +0 -36
  932. package/dist/adapters/drizzle/adapter.d.ts.map +0 -1
  933. package/dist/adapters/drizzle/adapter.js +0 -210
  934. package/dist/adapters/drizzle/adapter.js.map +0 -1
  935. package/dist/adapters/drizzle/index.d.ts +0 -3
  936. package/dist/adapters/drizzle/index.d.ts.map +0 -1
  937. package/dist/adapters/drizzle/index.js +0 -3
  938. package/dist/adapters/drizzle/index.js.map +0 -1
  939. package/dist/adapters/drizzle/schema.d.ts +0 -146
  940. package/dist/adapters/drizzle/schema.d.ts.map +0 -1
  941. package/dist/adapters/drizzle/schema.js +0 -20
  942. package/dist/adapters/drizzle/schema.js.map +0 -1
  943. package/dist/adapters/firestore/adapter.d.ts +0 -48
  944. package/dist/adapters/firestore/adapter.d.ts.map +0 -1
  945. package/dist/adapters/firestore/adapter.js +0 -62
  946. package/dist/adapters/firestore/adapter.js.map +0 -1
  947. package/dist/adapters/firestore/index.d.ts +0 -4
  948. package/dist/adapters/firestore/index.d.ts.map +0 -1
  949. package/dist/adapters/firestore/index.js +0 -3
  950. package/dist/adapters/firestore/index.js.map +0 -1
  951. package/dist/adapters/supabase/adapter.d.ts +0 -43
  952. package/dist/adapters/supabase/adapter.d.ts.map +0 -1
  953. package/dist/adapters/supabase/adapter.js +0 -137
  954. package/dist/adapters/supabase/adapter.js.map +0 -1
  955. package/dist/adapters/supabase/index.d.ts +0 -3
  956. package/dist/adapters/supabase/index.d.ts.map +0 -1
  957. package/dist/adapters/supabase/index.js +0 -3
  958. package/dist/adapters/supabase/index.js.map +0 -1
  959. package/dist/adapters/sync/config.d.ts +0 -40
  960. package/dist/adapters/sync/config.d.ts.map +0 -1
  961. package/dist/adapters/sync/config.js +0 -209
  962. package/dist/adapters/sync/config.js.map +0 -1
  963. package/dist/adapters/sync/create-file-sync.d.ts +0 -32
  964. package/dist/adapters/sync/create-file-sync.d.ts.map +0 -1
  965. package/dist/adapters/sync/create-file-sync.js +0 -218
  966. package/dist/adapters/sync/create-file-sync.js.map +0 -1
  967. package/dist/adapters/sync/file-sync.d.ts +0 -94
  968. package/dist/adapters/sync/file-sync.d.ts.map +0 -1
  969. package/dist/adapters/sync/file-sync.js +0 -671
  970. package/dist/adapters/sync/file-sync.js.map +0 -1
  971. package/dist/adapters/sync/index.d.ts +0 -6
  972. package/dist/adapters/sync/index.d.ts.map +0 -1
  973. package/dist/adapters/sync/index.js +0 -6
  974. package/dist/adapters/sync/index.js.map +0 -1
  975. package/dist/adapters/sync/merge.d.ts +0 -21
  976. package/dist/adapters/sync/merge.d.ts.map +0 -1
  977. package/dist/adapters/sync/merge.js +0 -132
  978. package/dist/adapters/sync/merge.js.map +0 -1
  979. package/dist/adapters/sync/types.d.ts +0 -62
  980. package/dist/adapters/sync/types.d.ts.map +0 -1
  981. package/dist/adapters/sync/types.js +0 -23
  982. package/dist/adapters/sync/types.js.map +0 -1
  983. package/dist/client/harness.d.ts +0 -48
  984. package/dist/client/harness.d.ts.map +0 -1
  985. package/dist/client/harness.js.map +0 -1
  986. package/dist/client/use-file-sync-status.d.ts +0 -21
  987. package/dist/client/use-file-sync-status.d.ts.map +0 -1
  988. package/dist/client/use-file-sync-status.js +0 -65
  989. package/dist/client/use-file-sync-status.js.map +0 -1
  990. package/dist/client/use-file-watcher.d.ts +0 -23
  991. package/dist/client/use-file-watcher.d.ts.map +0 -1
  992. package/dist/client/use-file-watcher.js +0 -50
  993. package/dist/client/use-file-watcher.js.map +0 -1
  994. package/dist/server/default-watcher.d.ts +0 -17
  995. package/dist/server/default-watcher.d.ts.map +0 -1
  996. package/dist/server/default-watcher.js +0 -37
  997. package/dist/server/default-watcher.js.map +0 -1
  998. package/dist/server/file-sync-plugin.d.ts +0 -7
  999. package/dist/server/file-sync-plugin.d.ts.map +0 -1
  1000. package/dist/server/file-sync-plugin.js +0 -38
  1001. package/dist/server/file-sync-plugin.js.map +0 -1
  1002. package/dist/vite/dev-api-server.d.ts +0 -10
  1003. package/dist/vite/dev-api-server.d.ts.map +0 -1
  1004. package/dist/vite/dev-api-server.js +0 -160
  1005. package/dist/vite/dev-api-server.js.map +0 -1
  1006. package/src/templates/default/.agents/skills/scripts/SKILL.md +0 -121
  1007. package/src/templates/default/.agents/skills/sse-file-watcher/SKILL.md +0 -80
  1008. package/src/templates/default/server/plugins/agent-chat.ts +0 -1
  1009. package/src/templates/default/server/plugins/auth.ts +0 -1
  1010. package/src/templates/default/server/plugins/file-sync.ts +0 -1
  1011. package/src/templates/default/server/plugins/terminal.ts +0 -1
  1012. package/src/templates/default/server/routes/api/events.get.ts +0 -3
  1013. package/src/templates/default/server/routes/api/file-sync/status.get.ts +0 -4
  1014. /package/{src/templates/default/application-state/.gitkeep → dist/templates/default/.ignore} +0 -0
  1015. /package/{src/templates/default/scripts → dist/templates/default/actions}/run.ts +0 -0
@@ -0,0 +1,932 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useState, useRef, useEffect, useCallback, useMemo, } from "react";
3
+ import { useEditor, EditorContent } from "@tiptap/react";
4
+ import StarterKit from "@tiptap/starter-kit";
5
+ import Placeholder from "@tiptap/extension-placeholder";
6
+ import Link from "@tiptap/extension-link";
7
+ import { Markdown } from "tiptap-markdown";
8
+ import { cn } from "../utils.js";
9
+ const CONTROL_STYLE = { fontSize: 12, lineHeight: 1 };
10
+ const VIEW_PREF_KEY = "resource-editor-view";
11
+ function getViewPref() {
12
+ try {
13
+ const v = localStorage.getItem(VIEW_PREF_KEY);
14
+ if (v === "code")
15
+ return "code";
16
+ }
17
+ catch { }
18
+ return "visual";
19
+ }
20
+ function setViewPref(v) {
21
+ try {
22
+ localStorage.setItem(VIEW_PREF_KEY, v);
23
+ }
24
+ catch { }
25
+ }
26
+ function parseFrontmatter(content) {
27
+ const match = content.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?/);
28
+ if (!match)
29
+ return { frontmatter: null, body: content };
30
+ const raw = match[0];
31
+ const yamlBlock = match[1];
32
+ const body = content.slice(raw.length);
33
+ // Parse simple key: value pairs (handles multiline >- syntax)
34
+ const fields = [];
35
+ const lines = yamlBlock.split("\n");
36
+ let i = 0;
37
+ while (i < lines.length) {
38
+ const line = lines[i];
39
+ const kvMatch = line.match(/^(\w[\w-]*):\s*(.*)/);
40
+ if (kvMatch) {
41
+ let value = kvMatch[2].trim();
42
+ // Handle YAML multiline indicators (>- or |)
43
+ if (value === ">-" || value === ">" || value === "|" || value === "|-") {
44
+ const multiLines = [];
45
+ i++;
46
+ while (i < lines.length && /^\s+/.test(lines[i])) {
47
+ multiLines.push(lines[i].trim());
48
+ i++;
49
+ }
50
+ value = multiLines.join(" ");
51
+ }
52
+ else {
53
+ i++;
54
+ }
55
+ fields.push({ key: kvMatch[1], value });
56
+ }
57
+ else {
58
+ i++;
59
+ }
60
+ }
61
+ return { frontmatter: { raw, fields }, body };
62
+ }
63
+ function serializeFrontmatter(fields) {
64
+ const lines = fields.map(({ key, value }) => {
65
+ // Use multiline >- for long descriptions
66
+ if (key === "description" && value.length > 60) {
67
+ const words = value.split(" ");
68
+ const wrapped = [];
69
+ let line = "";
70
+ for (const w of words) {
71
+ if (line && line.length + w.length + 1 > 72) {
72
+ wrapped.push(" " + line);
73
+ line = w;
74
+ }
75
+ else {
76
+ line = line ? line + " " + w : w;
77
+ }
78
+ }
79
+ if (line)
80
+ wrapped.push(" " + line);
81
+ return `${key}: >-\n${wrapped.join("\n")}`;
82
+ }
83
+ return `${key}: ${value}`;
84
+ });
85
+ return "---\n" + lines.join("\n") + "\n---\n";
86
+ }
87
+ const FM_INPUT_STYLE = {
88
+ background: "transparent",
89
+ border: "none",
90
+ outline: "none",
91
+ color: "inherit",
92
+ fontSize: "inherit",
93
+ fontFamily: "inherit",
94
+ width: "100%",
95
+ padding: 0,
96
+ };
97
+ function FrontmatterBar({ frontmatter, onChange, }) {
98
+ const getField = (key) => frontmatter.fields.find((f) => f.key === key)?.value ?? "";
99
+ const updateField = (key, value) => {
100
+ const exists = frontmatter.fields.some((f) => f.key === key);
101
+ const newFields = exists
102
+ ? frontmatter.fields.map((f) => (f.key === key ? { ...f, value } : f))
103
+ : [...frontmatter.fields, { key, value }];
104
+ const updated = {
105
+ ...frontmatter,
106
+ raw: serializeFrontmatter(newFields),
107
+ fields: newFields,
108
+ };
109
+ onChange(updated);
110
+ };
111
+ const name = getField("name");
112
+ const description = getField("description");
113
+ const isUserInvocable = getField("user-invocable") === "true";
114
+ return (_jsxs("div", { style: {
115
+ padding: "8px 12px",
116
+ marginBottom: 8,
117
+ borderRadius: 6,
118
+ background: "hsl(var(--muted) / 0.5)",
119
+ border: "1px solid hsl(var(--border) / 0.5)",
120
+ fontSize: 12,
121
+ lineHeight: 1.5,
122
+ color: "hsl(var(--muted-foreground))",
123
+ }, children: [_jsxs("div", { style: { display: "flex", alignItems: "center", gap: 6 }, children: [_jsx("input", { value: name, onChange: (e) => updateField("name", e.target.value), placeholder: "Skill name", style: {
124
+ ...FM_INPUT_STYLE,
125
+ fontWeight: 600,
126
+ color: "hsl(var(--foreground))",
127
+ fontSize: 13,
128
+ flex: 1,
129
+ } }), _jsxs("label", { style: {
130
+ display: "flex",
131
+ alignItems: "center",
132
+ gap: 4,
133
+ fontSize: 10,
134
+ cursor: "pointer",
135
+ whiteSpace: "nowrap",
136
+ userSelect: "none",
137
+ padding: "1px 5px",
138
+ borderRadius: 3,
139
+ background: isUserInvocable
140
+ ? "hsl(var(--primary) / 0.15)"
141
+ : "transparent",
142
+ color: isUserInvocable
143
+ ? "hsl(var(--primary))"
144
+ : "hsl(var(--muted-foreground))",
145
+ border: isUserInvocable ? "none" : "1px dashed hsl(var(--border))",
146
+ fontWeight: 500,
147
+ }, children: [_jsx("input", { type: "checkbox", checked: isUserInvocable, onChange: (e) => updateField("user-invocable", e.target.checked ? "true" : "false"), style: { display: "none" } }), "/", name || "command"] })] }), _jsx("input", { value: description, onChange: (e) => updateField("description", e.target.value), placeholder: "Description \u2014 what this skill does", style: {
148
+ ...FM_INPUT_STYLE,
149
+ marginTop: 2,
150
+ opacity: 0.8,
151
+ color: "hsl(var(--muted-foreground))",
152
+ } })] }));
153
+ }
154
+ const slashCommands = [
155
+ {
156
+ title: "Text",
157
+ description: "Plain text",
158
+ icon: "T",
159
+ action: (editor) => editor.chain().focus().setParagraph().run(),
160
+ },
161
+ {
162
+ title: "Heading 1",
163
+ description: "Large heading",
164
+ icon: "H1",
165
+ action: (editor) => editor.chain().focus().toggleHeading({ level: 1 }).run(),
166
+ },
167
+ {
168
+ title: "Heading 2",
169
+ description: "Medium heading",
170
+ icon: "H2",
171
+ action: (editor) => editor.chain().focus().toggleHeading({ level: 2 }).run(),
172
+ },
173
+ {
174
+ title: "Heading 3",
175
+ description: "Small heading",
176
+ icon: "H3",
177
+ action: (editor) => editor.chain().focus().toggleHeading({ level: 3 }).run(),
178
+ },
179
+ {
180
+ title: "Bullet List",
181
+ description: "Unordered list",
182
+ icon: "•",
183
+ action: (editor) => editor.chain().focus().toggleBulletList().run(),
184
+ },
185
+ {
186
+ title: "Numbered List",
187
+ description: "Ordered list",
188
+ icon: "1.",
189
+ action: (editor) => editor.chain().focus().toggleOrderedList().run(),
190
+ },
191
+ {
192
+ title: "Code Block",
193
+ description: "Code snippet",
194
+ icon: "<>",
195
+ action: (editor) => editor.chain().focus().toggleCodeBlock().run(),
196
+ },
197
+ {
198
+ title: "Quote",
199
+ description: "Block quote",
200
+ icon: '"',
201
+ action: (editor) => editor.chain().focus().toggleBlockquote().run(),
202
+ },
203
+ {
204
+ title: "Divider",
205
+ description: "Horizontal rule",
206
+ icon: "—",
207
+ action: (editor) => editor.chain().focus().setHorizontalRule().run(),
208
+ },
209
+ ];
210
+ function SlashMenu({ editor }) {
211
+ const [isOpen, setIsOpen] = useState(false);
212
+ const [query, setQuery] = useState("");
213
+ const [selectedIndex, setSelectedIndex] = useState(0);
214
+ const [position, setPosition] = useState(null);
215
+ const slashPosRef = useRef(null);
216
+ const menuRef = useRef(null);
217
+ const filteredCommands = useMemo(() => slashCommands.filter((cmd) => cmd.title.toLowerCase().includes(query.toLowerCase()) ||
218
+ cmd.description.toLowerCase().includes(query.toLowerCase())), [query]);
219
+ const executeCommand = useCallback((cmd) => {
220
+ if (slashPosRef.current !== null) {
221
+ const { from } = editor.state.selection;
222
+ editor
223
+ .chain()
224
+ .focus()
225
+ .deleteRange({ from: slashPosRef.current, to: from })
226
+ .run();
227
+ }
228
+ cmd.action(editor);
229
+ setIsOpen(false);
230
+ setQuery("");
231
+ slashPosRef.current = null;
232
+ }, [editor]);
233
+ useEffect(() => {
234
+ if (!editor)
235
+ return;
236
+ const handleKeyDown = (e) => {
237
+ if (!isOpen)
238
+ return;
239
+ if (e.key === "ArrowDown") {
240
+ e.preventDefault();
241
+ setSelectedIndex((i) => (i + 1) % filteredCommands.length);
242
+ }
243
+ else if (e.key === "ArrowUp") {
244
+ e.preventDefault();
245
+ setSelectedIndex((i) => (i - 1 + filteredCommands.length) % filteredCommands.length);
246
+ }
247
+ else if (e.key === "Enter") {
248
+ e.preventDefault();
249
+ if (filteredCommands[selectedIndex]) {
250
+ executeCommand(filteredCommands[selectedIndex]);
251
+ }
252
+ }
253
+ else if (e.key === "Escape") {
254
+ setIsOpen(false);
255
+ setQuery("");
256
+ slashPosRef.current = null;
257
+ }
258
+ };
259
+ document.addEventListener("keydown", handleKeyDown, true);
260
+ return () => document.removeEventListener("keydown", handleKeyDown, true);
261
+ }, [isOpen, selectedIndex, filteredCommands, executeCommand, editor]);
262
+ useEffect(() => {
263
+ if (!editor)
264
+ return;
265
+ const handleTransaction = () => {
266
+ const { state } = editor;
267
+ const { from } = state.selection;
268
+ const textBefore = state.doc.textBetween(Math.max(0, from - 20), from, "\n");
269
+ const slashMatch = textBefore.match(/\/([a-zA-Z0-9]*)$/);
270
+ if (slashMatch) {
271
+ const slashStart = from - slashMatch[0].length;
272
+ slashPosRef.current = slashStart;
273
+ setQuery(slashMatch[1]);
274
+ setSelectedIndex(0);
275
+ const coords = editor.view.coordsAtPos(from);
276
+ // Estimate menu height (~320px max) and check if it fits below
277
+ const menuHeight = 320;
278
+ const spaceBelow = window.innerHeight - coords.bottom;
279
+ const flipUp = spaceBelow < menuHeight && coords.top > menuHeight;
280
+ setPosition({
281
+ top: flipUp ? coords.top : coords.bottom + 4,
282
+ left: Math.min(coords.left, window.innerWidth - 240),
283
+ flipUp,
284
+ });
285
+ setIsOpen(true);
286
+ }
287
+ else {
288
+ if (isOpen) {
289
+ setIsOpen(false);
290
+ setQuery("");
291
+ slashPosRef.current = null;
292
+ }
293
+ }
294
+ };
295
+ editor.on("transaction", handleTransaction);
296
+ return () => {
297
+ editor.off("transaction", handleTransaction);
298
+ };
299
+ }, [editor, isOpen]);
300
+ if (!isOpen || !position || filteredCommands.length === 0)
301
+ return null;
302
+ return (_jsx("div", { ref: menuRef, style: {
303
+ position: "fixed",
304
+ ...(position.flipUp
305
+ ? { bottom: window.innerHeight - position.top + 4 }
306
+ : { top: position.top }),
307
+ left: position.left,
308
+ zIndex: 9999,
309
+ }, className: "re-slash-menu", children: _jsxs("div", { className: "py-1", children: [_jsx("div", { style: {
310
+ padding: "4px 10px",
311
+ fontSize: 10,
312
+ fontWeight: 600,
313
+ textTransform: "uppercase",
314
+ letterSpacing: "0.06em",
315
+ opacity: 0.5,
316
+ }, children: "Blocks" }), filteredCommands.map((cmd, i) => (_jsxs("button", { onClick: () => executeCommand(cmd), onMouseEnter: () => setSelectedIndex(i), className: cn("re-slash-item", i === selectedIndex && "re-slash-item--active"), children: [_jsx("span", { className: "re-slash-icon", children: cmd.icon }), _jsxs("span", { children: [_jsx("span", { className: "re-slash-title", children: cmd.title }), _jsx("span", { className: "re-slash-desc", children: cmd.description })] })] }, cmd.title)))] }) }));
317
+ }
318
+ // --- Inline Bubble Toolbar ---
319
+ function InlineBubbleToolbar({ editor }) {
320
+ const [visible, setVisible] = useState(false);
321
+ const [coords, setCoords] = useState({ top: 0, left: 0 });
322
+ const [showLinkInput, setShowLinkInput] = useState(false);
323
+ const [linkUrl, setLinkUrl] = useState("");
324
+ const toolbarRef = useRef(null);
325
+ useEffect(() => {
326
+ if (!editor)
327
+ return;
328
+ const update = () => {
329
+ const { from, to } = editor.state.selection;
330
+ if (from === to || !editor.isFocused) {
331
+ setVisible(false);
332
+ return;
333
+ }
334
+ const domSelection = window.getSelection();
335
+ if (!domSelection || domSelection.rangeCount === 0) {
336
+ setVisible(false);
337
+ return;
338
+ }
339
+ const range = domSelection.getRangeAt(0);
340
+ const rect = range.getBoundingClientRect();
341
+ if (rect.width === 0) {
342
+ setVisible(false);
343
+ return;
344
+ }
345
+ // Use fixed positioning with viewport coordinates
346
+ setCoords({
347
+ top: rect.top - 8,
348
+ left: rect.left + rect.width / 2,
349
+ });
350
+ setVisible(true);
351
+ };
352
+ editor.on("selectionUpdate", update);
353
+ const onBlur = () => {
354
+ // Delay so clicks on toolbar buttons register before hiding
355
+ setTimeout(() => {
356
+ if (!editor.isFocused)
357
+ setVisible(false);
358
+ }, 150);
359
+ };
360
+ editor.on("blur", onBlur);
361
+ return () => {
362
+ editor.off("selectionUpdate", update);
363
+ editor.off("blur", onBlur);
364
+ };
365
+ }, [editor]);
366
+ const handleSetLink = () => {
367
+ if (linkUrl.trim()) {
368
+ editor
369
+ .chain()
370
+ .focus()
371
+ .extendMarkRange("link")
372
+ .setLink({ href: linkUrl.trim() })
373
+ .run();
374
+ }
375
+ else {
376
+ editor.chain().focus().extendMarkRange("link").unsetLink().run();
377
+ }
378
+ setShowLinkInput(false);
379
+ setLinkUrl("");
380
+ };
381
+ const toggleLink = () => {
382
+ if (editor.isActive("link")) {
383
+ editor.chain().focus().unsetLink().run();
384
+ return;
385
+ }
386
+ const previousUrl = editor.getAttributes("link").href || "";
387
+ setLinkUrl(previousUrl);
388
+ setShowLinkInput(true);
389
+ };
390
+ const items = [
391
+ {
392
+ label: "B",
393
+ title: "Bold",
394
+ action: () => editor.chain().focus().toggleBold().run(),
395
+ isActive: () => editor.isActive("bold"),
396
+ style: { fontWeight: 700 },
397
+ },
398
+ {
399
+ label: "I",
400
+ title: "Italic",
401
+ action: () => editor.chain().focus().toggleItalic().run(),
402
+ isActive: () => editor.isActive("italic"),
403
+ style: { fontStyle: "italic" },
404
+ },
405
+ {
406
+ label: "S",
407
+ title: "Strikethrough",
408
+ action: () => editor.chain().focus().toggleStrike().run(),
409
+ isActive: () => editor.isActive("strike"),
410
+ style: { textDecoration: "line-through" },
411
+ },
412
+ {
413
+ label: "<>",
414
+ title: "Code",
415
+ action: () => editor.chain().focus().toggleCode().run(),
416
+ isActive: () => editor.isActive("code"),
417
+ style: { fontFamily: "monospace", fontSize: 11 },
418
+ },
419
+ { type: "divider" },
420
+ {
421
+ label: "H1",
422
+ title: "Heading 1",
423
+ action: () => editor.chain().focus().toggleHeading({ level: 1 }).run(),
424
+ isActive: () => editor.isActive("heading", { level: 1 }),
425
+ },
426
+ {
427
+ label: "H2",
428
+ title: "Heading 2",
429
+ action: () => editor.chain().focus().toggleHeading({ level: 2 }).run(),
430
+ isActive: () => editor.isActive("heading", { level: 2 }),
431
+ },
432
+ {
433
+ label: "H3",
434
+ title: "Heading 3",
435
+ action: () => editor.chain().focus().toggleHeading({ level: 3 }).run(),
436
+ isActive: () => editor.isActive("heading", { level: 3 }),
437
+ },
438
+ { type: "divider" },
439
+ {
440
+ label: "🔗",
441
+ title: "Link",
442
+ action: toggleLink,
443
+ isActive: () => editor.isActive("link"),
444
+ },
445
+ ];
446
+ if (!visible)
447
+ return null;
448
+ return (_jsx("div", { ref: toolbarRef, className: "re-bubble-toolbar", onMouseDown: (e) => e.preventDefault(), style: {
449
+ position: "fixed",
450
+ top: coords.top,
451
+ left: coords.left,
452
+ transform: "translate(-50%, -100%)",
453
+ zIndex: 9999,
454
+ }, children: showLinkInput ? (_jsxs("div", { style: { display: "flex", alignItems: "center", gap: 4, padding: 4 }, onMouseDown: (e) => e.preventDefault(), children: [_jsx("input", { autoFocus: true, type: "url", placeholder: "Paste link...", value: linkUrl, onChange: (e) => setLinkUrl(e.target.value), onKeyDown: (e) => {
455
+ if (e.key === "Enter")
456
+ handleSetLink();
457
+ if (e.key === "Escape") {
458
+ setShowLinkInput(false);
459
+ setLinkUrl("");
460
+ }
461
+ }, style: {
462
+ background: "transparent",
463
+ border: "none",
464
+ outline: "none",
465
+ color: "white",
466
+ fontSize: 12,
467
+ width: 160,
468
+ padding: "2px 4px",
469
+ } }), _jsx("button", { onClick: handleSetLink, style: {
470
+ fontSize: 11,
471
+ color: "#60a5fa",
472
+ padding: "2px 6px",
473
+ fontWeight: 500,
474
+ background: "none",
475
+ border: "none",
476
+ cursor: "pointer",
477
+ }, children: "Apply" })] })) : (_jsx("div", { style: { display: "flex", alignItems: "center", gap: 2 }, onMouseDown: (e) => e.preventDefault(), children: items.map((item, i) => {
478
+ if ("type" in item && item.type === "divider") {
479
+ return (_jsx("div", { style: {
480
+ width: 1,
481
+ height: 16,
482
+ background: "rgba(255,255,255,0.2)",
483
+ margin: "0 2px",
484
+ } }, `d-${i}`));
485
+ }
486
+ const { label, title, action, isActive, style } = item;
487
+ return (_jsx("button", { onClick: action, title: title, className: cn("re-bubble-btn", isActive() && "re-bubble-btn--active"), style: style, children: label }, title));
488
+ }) })) }));
489
+ }
490
+ // --- Visual Markdown Editor ---
491
+ // --- Syntax-highlighted code editor (textarea + overlay) ---
492
+ function highlightJson(text) {
493
+ // Escape HTML first
494
+ const esc = text
495
+ .replace(/&/g, "&amp;")
496
+ .replace(/</g, "&lt;")
497
+ .replace(/>/g, "&gt;");
498
+ // Tokenize JSON with regex
499
+ return esc.replace(/("(?:\\.|[^"\\])*")\s*:|("(?:\\.|[^"\\])*")|((?:-?\d+)(?:\.\d+)?(?:[eE][+-]?\d+)?)|(\btrue\b|\bfalse\b|\bnull\b)/g, (match, key, str, num, lit) => {
500
+ if (key)
501
+ return `<span class="sh-key">${key}</span>:`;
502
+ if (str)
503
+ return `<span class="sh-str">${str}</span>`;
504
+ if (num)
505
+ return `<span class="sh-num">${num}</span>`;
506
+ if (lit)
507
+ return `<span class="sh-lit">${lit}</span>`;
508
+ return match;
509
+ });
510
+ }
511
+ const shStyles = `
512
+ .sh-key { color: #7dd3fc; }
513
+ .sh-str { color: #86efac; }
514
+ .sh-num { color: #fca5a5; }
515
+ .sh-lit { color: #c4b5fd; }
516
+ `;
517
+ function SyntaxHighlightEditor({ value, onChange, language: _language, }) {
518
+ const textareaRef = useRef(null);
519
+ const preRef = useRef(null);
520
+ const highlighted = useMemo(() => highlightJson(value), [value]);
521
+ const syncScroll = useCallback(() => {
522
+ if (textareaRef.current && preRef.current) {
523
+ preRef.current.scrollTop = textareaRef.current.scrollTop;
524
+ preRef.current.scrollLeft = textareaRef.current.scrollLeft;
525
+ }
526
+ }, []);
527
+ const monoFont = 'ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace';
528
+ const sharedStyle = {
529
+ fontFamily: monoFont,
530
+ fontSize: 13,
531
+ lineHeight: 1.6,
532
+ padding: 12,
533
+ margin: 0,
534
+ border: "none",
535
+ whiteSpace: "pre",
536
+ wordWrap: "normal",
537
+ overflowWrap: "normal",
538
+ tabSize: 2,
539
+ };
540
+ return (_jsxs(_Fragment, { children: [_jsx("style", { children: shStyles }), _jsxs("div", { className: "flex-1 min-h-0", style: { position: "relative", overflow: "hidden" }, children: [_jsx("pre", { ref: preRef, "aria-hidden": true, style: {
541
+ ...sharedStyle,
542
+ position: "absolute",
543
+ inset: 0,
544
+ overflow: "auto",
545
+ pointerEvents: "none",
546
+ color: "hsl(var(--muted-foreground))",
547
+ background: "transparent",
548
+ }, dangerouslySetInnerHTML: { __html: highlighted + "\n" } }), _jsx("textarea", { ref: textareaRef, value: value, onChange: (e) => onChange(e.target.value), onScroll: syncScroll, spellCheck: false, style: {
549
+ ...sharedStyle,
550
+ position: "absolute",
551
+ inset: 0,
552
+ width: "100%",
553
+ height: "100%",
554
+ overflow: "auto",
555
+ resize: "none",
556
+ background: "transparent",
557
+ color: "transparent",
558
+ caretColor: "hsl(var(--foreground))",
559
+ outline: "none",
560
+ WebkitTextFillColor: "transparent",
561
+ } })] })] }));
562
+ }
563
+ function VisualMarkdownEditor({ content, onChange, resourceId, }) {
564
+ const isSettingContent = useRef(false);
565
+ const onChangeRef = useRef(onChange);
566
+ onChangeRef.current = onChange;
567
+ // Parse frontmatter — strip it from tiptap content, re-prepend on save
568
+ const parsed = useMemo(() => parseFrontmatter(content), [content]);
569
+ const frontmatterRef = useRef(parsed.frontmatter);
570
+ frontmatterRef.current = parsed.frontmatter;
571
+ const editor = useEditor({
572
+ extensions: [
573
+ StarterKit.configure({
574
+ heading: { levels: [1, 2, 3] },
575
+ codeBlock: {},
576
+ dropcursor: { color: "hsl(var(--ring))", width: 2 },
577
+ }),
578
+ Placeholder.configure({
579
+ placeholder: ({ node }) => {
580
+ if (node.type.name === "heading") {
581
+ const level = node.attrs.level;
582
+ if (level === 1)
583
+ return "Heading 1";
584
+ if (level === 2)
585
+ return "Heading 2";
586
+ return "Heading 3";
587
+ }
588
+ return "Type '/' for commands...";
589
+ },
590
+ showOnlyWhenEditable: true,
591
+ showOnlyCurrent: true,
592
+ }),
593
+ Link.configure({
594
+ openOnClick: false,
595
+ HTMLAttributes: { class: "re-link" },
596
+ }),
597
+ Markdown.configure({
598
+ html: true,
599
+ transformPastedText: true,
600
+ transformCopiedText: true,
601
+ }),
602
+ ],
603
+ content: parsed.body,
604
+ editorProps: {
605
+ attributes: {
606
+ class: "re-prose",
607
+ },
608
+ },
609
+ onUpdate: ({ editor }) => {
610
+ if (isSettingContent.current)
611
+ return;
612
+ try {
613
+ const md = editor.storage.markdown.getMarkdown();
614
+ // Re-prepend frontmatter if it existed
615
+ const fm = frontmatterRef.current;
616
+ const full = fm ? fm.raw + md : md;
617
+ onChangeRef.current(full);
618
+ }
619
+ catch (err) {
620
+ console.error("Markdown serialization error:", err);
621
+ }
622
+ },
623
+ });
624
+ useEffect(() => {
625
+ if (!editor || editor.isDestroyed)
626
+ return;
627
+ const currentMd = editor.storage.markdown.getMarkdown();
628
+ if (currentMd !== parsed.body) {
629
+ if (editor.isFocused)
630
+ return;
631
+ isSettingContent.current = true;
632
+ editor.commands.setContent(parsed.body);
633
+ isSettingContent.current = false;
634
+ }
635
+ }, [parsed.body, editor]);
636
+ useEffect(() => {
637
+ return () => {
638
+ editor?.destroy();
639
+ };
640
+ }, [editor]);
641
+ if (!editor)
642
+ return null;
643
+ const handleWrapperClick = (e) => {
644
+ // If the click was on the wrapper (empty area), not on editor content, focus at end
645
+ const target = e.target;
646
+ if (target.classList.contains("re-editor-clickable") ||
647
+ target.classList.contains("re-editor-wrapper")) {
648
+ editor.chain().focus("end").run();
649
+ }
650
+ };
651
+ return (_jsxs("div", { className: "re-editor-wrapper re-editor-clickable", onClick: handleWrapperClick, style: { position: "relative", minHeight: "100%", cursor: "text" }, children: [parsed.frontmatter && (_jsx(FrontmatterBar, { frontmatter: parsed.frontmatter, onChange: (updated) => {
652
+ frontmatterRef.current = updated;
653
+ // Get current body and combine with updated frontmatter
654
+ try {
655
+ const md = editor.storage.markdown.getMarkdown();
656
+ onChangeRef.current(updated.raw + md);
657
+ }
658
+ catch {
659
+ // fallback
660
+ }
661
+ } })), _jsx(InlineBubbleToolbar, { editor: editor }), _jsx(SlashMenu, { editor: editor }), _jsx(EditorContent, { editor: editor })] }));
662
+ }
663
+ // --- Main ResourceEditor ---
664
+ export function ResourceEditor({ resource, onSave, view: controlledView, onViewChange, onSaveStatusChange, hideToolbar, }) {
665
+ const [content, setContent] = useState(resource.content);
666
+ const [internalView, setInternalView] = useState(getViewPref);
667
+ const view = controlledView ?? internalView;
668
+ const [saveStatus, setSaveStatus] = useState("idle");
669
+ const debounceRef = useRef(null);
670
+ const prevIdRef = useRef(resource.id);
671
+ // Reset content when resource changes
672
+ useEffect(() => {
673
+ if (prevIdRef.current !== resource.id) {
674
+ setContent(resource.content);
675
+ setSaveStatus("idle");
676
+ onSaveStatusChange?.("idle");
677
+ prevIdRef.current = resource.id;
678
+ }
679
+ }, [resource.id, resource.content, onSaveStatusChange]);
680
+ const handleChange = useCallback((newContent) => {
681
+ setContent(newContent);
682
+ setSaveStatus("idle");
683
+ onSaveStatusChange?.("idle");
684
+ if (debounceRef.current)
685
+ clearTimeout(debounceRef.current);
686
+ debounceRef.current = setTimeout(() => {
687
+ setSaveStatus("saving");
688
+ onSaveStatusChange?.("saving");
689
+ onSave(newContent);
690
+ setTimeout(() => {
691
+ setSaveStatus("saved");
692
+ onSaveStatusChange?.("saved");
693
+ }, 300);
694
+ }, 1000);
695
+ }, [onSave, onSaveStatusChange]);
696
+ const switchView = useCallback((v) => {
697
+ setInternalView(v);
698
+ setViewPref(v);
699
+ onViewChange?.(v);
700
+ }, [onViewChange]);
701
+ // Cleanup debounce on unmount
702
+ useEffect(() => {
703
+ return () => {
704
+ if (debounceRef.current)
705
+ clearTimeout(debounceRef.current);
706
+ };
707
+ }, []);
708
+ const isMarkdown = resource.mimeType === "text/markdown" || resource.path.endsWith(".md");
709
+ const isImage = resource.mimeType.startsWith("image/");
710
+ // Image preview
711
+ if (isImage) {
712
+ return (_jsx("div", { className: "flex h-full flex-col", children: _jsx("div", { className: "flex flex-1 items-center justify-center overflow-auto p-4", children: _jsx("img", { src: `/_agent-native/resources/${resource.id}?raw`, alt: resource.path, className: "max-h-full max-w-full object-contain" }) }) }));
713
+ }
714
+ // Markdown files get visual/code toggle
715
+ if (isMarkdown) {
716
+ return (_jsxs("div", { className: "flex h-full flex-col", children: [_jsx("style", { children: editorStyles }), !hideToolbar && (_jsxs("div", { className: "flex items-center justify-between border-b border-border px-3 py-2", children: [_jsxs("div", { className: "flex items-center gap-1", children: [_jsx("button", { onClick: () => switchView("visual"), className: cn("rounded-md px-2 py-1.5 text-[12px] leading-none", view === "visual"
717
+ ? "bg-accent text-foreground"
718
+ : "text-muted-foreground hover:bg-accent/50 hover:text-foreground"), style: CONTROL_STYLE, children: "Visual" }), _jsx("button", { onClick: () => switchView("code"), className: cn("rounded-md px-2 py-1.5 text-[12px] leading-none", view === "code"
719
+ ? "bg-accent text-foreground"
720
+ : "text-muted-foreground hover:bg-accent/50 hover:text-foreground"), style: CONTROL_STYLE, children: "Code" })] }), _jsx("span", { className: "text-[11px] text-muted-foreground/60", children: saveStatus === "saving"
721
+ ? "Saving..."
722
+ : saveStatus === "saved"
723
+ ? "Saved"
724
+ : "" })] })), view === "visual" ? (_jsx("div", { className: "flex-1 min-h-0 overflow-y-auto p-3", children: _jsx(VisualMarkdownEditor, { content: content, onChange: handleChange, resourceId: resource.id }) }, resource.id + "-visual")) : (_jsx("textarea", { value: content, onChange: (e) => handleChange(e.target.value), className: "flex-1 min-h-0 resize-none bg-transparent p-3 text-[13px] text-foreground outline-none placeholder:text-muted-foreground/50", style: {
725
+ fontFamily: 'ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace',
726
+ lineHeight: 1.6,
727
+ }, spellCheck: false }))] }));
728
+ }
729
+ // Non-markdown text files
730
+ const isJson = resource.mimeType === "application/json" || resource.path.endsWith(".json");
731
+ return (_jsx("div", { className: "flex h-full flex-col", children: isJson ? (_jsx(SyntaxHighlightEditor, { value: content, onChange: handleChange, language: "json" })) : (_jsx("textarea", { value: content, onChange: (e) => handleChange(e.target.value), className: "flex-1 min-h-0 resize-none bg-transparent p-3 text-[13px] text-foreground outline-none placeholder:text-muted-foreground/50", style: {
732
+ fontFamily: 'ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace',
733
+ lineHeight: 1.6,
734
+ }, spellCheck: false })) }));
735
+ }
736
+ // --- Scoped editor styles (injected inline so no external CSS needed) ---
737
+ const editorStyles = `
738
+ /* Prose styling for the visual editor */
739
+ .re-prose {
740
+ outline: none;
741
+ color: hsl(var(--foreground));
742
+ line-height: 1.65;
743
+ font-size: 13px;
744
+ min-height: 100%;
745
+ }
746
+ .re-prose > *:first-child { margin-top: 0; }
747
+
748
+ .re-prose h1 {
749
+ font-size: 1.5em;
750
+ font-weight: 700;
751
+ margin: 1em 0 0.25em;
752
+ line-height: 1.25;
753
+ }
754
+ .re-prose h2 {
755
+ font-size: 1.25em;
756
+ font-weight: 600;
757
+ margin: 0.8em 0 0.2em;
758
+ line-height: 1.3;
759
+ }
760
+ .re-prose h3 {
761
+ font-size: 1.1em;
762
+ font-weight: 600;
763
+ margin: 0.6em 0 0.15em;
764
+ line-height: 1.35;
765
+ }
766
+ .re-prose p {
767
+ margin: 0.35em 0;
768
+ min-height: 1.65em;
769
+ }
770
+ .re-prose ul {
771
+ list-style-type: disc;
772
+ padding-left: 1.4em;
773
+ margin: 0.2em 0;
774
+ }
775
+ .re-prose ol {
776
+ list-style-type: decimal;
777
+ padding-left: 1.4em;
778
+ margin: 0.2em 0;
779
+ }
780
+ .re-prose li { margin: 0.05em 0; }
781
+ .re-prose li p { margin: 0; }
782
+
783
+ .re-prose blockquote {
784
+ border-left: 2px solid hsl(var(--border));
785
+ padding-left: 0.8em;
786
+ margin: 0.3em 0;
787
+ color: hsl(var(--muted-foreground));
788
+ }
789
+ .re-prose code {
790
+ font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
791
+ font-size: 0.88em;
792
+ background: hsl(var(--muted));
793
+ padding: 0.1em 0.3em;
794
+ border-radius: 3px;
795
+ }
796
+ .re-prose pre {
797
+ font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
798
+ font-size: 12px;
799
+ background: hsl(var(--muted));
800
+ border-radius: 4px;
801
+ padding: 0.7em 0.9em;
802
+ margin: 0.3em 0;
803
+ overflow-x: auto;
804
+ line-height: 1.5;
805
+ }
806
+ .re-prose pre code {
807
+ background: none;
808
+ padding: 0;
809
+ border: none;
810
+ font-size: inherit;
811
+ }
812
+ .re-prose hr {
813
+ border: none;
814
+ border-top: 1px solid hsl(var(--border));
815
+ margin: 1em 0;
816
+ }
817
+ .re-prose strong { font-weight: 600; }
818
+ .re-prose em { font-style: italic; }
819
+ .re-prose s { text-decoration: line-through; }
820
+
821
+ .re-link {
822
+ color: hsl(var(--foreground));
823
+ text-decoration: underline;
824
+ text-underline-offset: 2px;
825
+ text-decoration-color: hsl(var(--muted-foreground));
826
+ cursor: pointer;
827
+ }
828
+ .re-link:hover {
829
+ text-decoration-color: hsl(var(--foreground));
830
+ }
831
+
832
+ /* Placeholder */
833
+ .re-prose p.is-editor-empty:first-child::before,
834
+ .re-prose p.is-empty::before,
835
+ .re-prose h1.is-empty::before,
836
+ .re-prose h2.is-empty::before,
837
+ .re-prose h3.is-empty::before {
838
+ content: attr(data-placeholder);
839
+ float: left;
840
+ color: hsl(var(--muted-foreground));
841
+ opacity: 0.5;
842
+ pointer-events: none;
843
+ height: 0;
844
+ }
845
+
846
+ /* Selection */
847
+ .re-prose ::selection {
848
+ background: hsl(210 100% 52% / 0.2);
849
+ }
850
+
851
+ /* Bubble toolbar */
852
+ .re-bubble-toolbar {
853
+ display: flex;
854
+ align-items: center;
855
+ background: hsl(0 0% 15%);
856
+ border-radius: 6px;
857
+ padding: 3px;
858
+ box-shadow: 0 4px 16px rgb(0 0 0 / 0.25), 0 0 0 1px rgb(255 255 255 / 0.06);
859
+ }
860
+ .re-bubble-btn {
861
+ padding: 3px 6px;
862
+ border-radius: 4px;
863
+ font-size: 12px;
864
+ color: rgba(255,255,255,0.75);
865
+ background: none;
866
+ border: none;
867
+ cursor: pointer;
868
+ line-height: 1;
869
+ }
870
+ .re-bubble-btn:hover {
871
+ background: rgba(255,255,255,0.12);
872
+ color: white;
873
+ }
874
+ .re-bubble-btn--active {
875
+ background: rgba(255,255,255,0.18);
876
+ color: white;
877
+ }
878
+
879
+ /* Slash command menu */
880
+ .re-slash-menu {
881
+ background: hsl(var(--popover));
882
+ border: 1px solid hsl(var(--border));
883
+ border-radius: 6px;
884
+ box-shadow: 0 4px 20px rgb(0 0 0 / 0.12), 0 0 0 1px rgb(0 0 0 / 0.04);
885
+ min-width: 220px;
886
+ max-height: 320px;
887
+ overflow-y: auto;
888
+ color: hsl(var(--foreground));
889
+ }
890
+ .re-slash-item {
891
+ width: 100%;
892
+ display: flex;
893
+ align-items: center;
894
+ gap: 8px;
895
+ padding: 6px 10px;
896
+ text-align: left;
897
+ background: none;
898
+ border: none;
899
+ cursor: pointer;
900
+ color: hsl(var(--foreground));
901
+ font-size: 13px;
902
+ }
903
+ .re-slash-item:hover,
904
+ .re-slash-item--active {
905
+ background: hsl(var(--accent));
906
+ }
907
+ .re-slash-icon {
908
+ display: flex;
909
+ align-items: center;
910
+ justify-content: center;
911
+ width: 28px;
912
+ height: 28px;
913
+ border-radius: 4px;
914
+ border: 1px solid hsl(var(--border));
915
+ background: hsl(var(--background));
916
+ font-size: 12px;
917
+ font-weight: 600;
918
+ color: hsl(var(--muted-foreground));
919
+ flex-shrink: 0;
920
+ }
921
+ .re-slash-title {
922
+ display: block;
923
+ font-weight: 500;
924
+ font-size: 13px;
925
+ }
926
+ .re-slash-desc {
927
+ display: block;
928
+ font-size: 11px;
929
+ color: hsl(var(--muted-foreground));
930
+ }
931
+ `;
932
+ //# sourceMappingURL=ResourceEditor.js.map