@lapis-notes/api 0.1.0

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 (400) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/LICENSE.md +4 -0
  3. package/README.md +43 -0
  4. package/dist/__tests__/data-adapter-conformance.js +205 -0
  5. package/dist/__tests__/lapis-runtime-manifest.js +32 -0
  6. package/dist/__tests__/svelte-internal-client.d.ts +3 -0
  7. package/dist/agent-result-views.d.ts +52 -0
  8. package/dist/agent-result-views.js +89 -0
  9. package/dist/agent-skills.d.ts +99 -0
  10. package/dist/agent-skills.js +182 -0
  11. package/dist/agent-tools.d.ts +92 -0
  12. package/dist/agent-tools.js +139 -0
  13. package/dist/app-database-host.d.ts +4 -0
  14. package/dist/app-database-host.js +4 -0
  15. package/dist/app-shell-plugin-persistence.d.ts +15 -0
  16. package/dist/app-shell-plugin-persistence.js +34 -0
  17. package/dist/app-url.d.ts +54 -0
  18. package/dist/app-url.js +269 -0
  19. package/dist/application-compatibility.d.ts +31 -0
  20. package/dist/application-compatibility.js +64 -0
  21. package/dist/application-state.svelte.d.ts +14 -0
  22. package/dist/application-state.svelte.js +30 -0
  23. package/dist/assets/lapis-logo.svg +471 -0
  24. package/dist/bases.d.ts +281 -0
  25. package/dist/bases.js +475 -0
  26. package/dist/cache.svelte.d.ts +569 -0
  27. package/dist/cache.svelte.js +1433 -0
  28. package/dist/command.svelte.d.ts +337 -0
  29. package/dist/command.svelte.js +571 -0
  30. package/dist/compat.d.ts +29 -0
  31. package/dist/compat.js +30 -0
  32. package/dist/components/configuration/configuration.css +199 -0
  33. package/dist/components/configuration/date-setting.svelte +71 -0
  34. package/dist/components/configuration/date-setting.svelte.d.ts +8 -0
  35. package/dist/components/configuration/list-setting.svelte +128 -0
  36. package/dist/components/configuration/list-setting.svelte.d.ts +13 -0
  37. package/dist/components/configuration/object-array-row-grip.svelte +78 -0
  38. package/dist/components/configuration/object-array-row-grip.svelte.d.ts +9 -0
  39. package/dist/components/configuration/object-array-row.svelte +163 -0
  40. package/dist/components/configuration/object-array-row.svelte.d.ts +19 -0
  41. package/dist/components/configuration/object-array-setting.svelte +196 -0
  42. package/dist/components/configuration/object-array-setting.svelte.d.ts +15 -0
  43. package/dist/components/configuration/object-array-table-dnd.d.ts +8 -0
  44. package/dist/components/configuration/object-array-table-dnd.js +10 -0
  45. package/dist/components/configuration/object-array-utils.d.ts +11 -0
  46. package/dist/components/configuration/object-array-utils.js +103 -0
  47. package/dist/components/configuration/object-grid-setting.svelte +79 -0
  48. package/dist/components/configuration/object-grid-setting.svelte.d.ts +10 -0
  49. package/dist/components/configuration/object-map-row.svelte +147 -0
  50. package/dist/components/configuration/object-map-row.svelte.d.ts +15 -0
  51. package/dist/components/configuration/object-map-setting.svelte +137 -0
  52. package/dist/components/configuration/object-map-setting.svelte.d.ts +14 -0
  53. package/dist/components/configuration/object-map-types.d.ts +5 -0
  54. package/dist/components/configuration/object-map-types.js +1 -0
  55. package/dist/components/configuration/options-combobox-setting.svelte +129 -0
  56. package/dist/components/configuration/options-combobox-setting.svelte.d.ts +12 -0
  57. package/dist/components/copy-button/button.svelte +93 -0
  58. package/dist/components/copy-button/button.svelte.d.ts +13 -0
  59. package/dist/components/copy-button/index.d.ts +2 -0
  60. package/dist/components/copy-button/index.js +2 -0
  61. package/dist/components/editor/editor.css +565 -0
  62. package/dist/components/editor/editor.d.ts +33 -0
  63. package/dist/components/editor/editor.js +132 -0
  64. package/dist/components/editor/editor.svelte +176 -0
  65. package/dist/components/editor/editor.svelte.d.ts +15 -0
  66. package/dist/components/editor/embedded-editor-surface.d.ts +12 -0
  67. package/dist/components/editor/embedded-editor-surface.js +22 -0
  68. package/dist/components/editor/embedded-editor-surface.svelte +115 -0
  69. package/dist/components/editor/embedded-editor-surface.svelte.d.ts +17 -0
  70. package/dist/components/editor/extensions/autocomplete/index.d.ts +2 -0
  71. package/dist/components/editor/extensions/autocomplete/index.js +2 -0
  72. package/dist/components/editor/extensions/autocomplete/lapis-code-mirror-autocomplete.d.ts +16 -0
  73. package/dist/components/editor/extensions/autocomplete/lapis-code-mirror-autocomplete.js +34 -0
  74. package/dist/components/editor/extensions/autocomplete/vault-completion-sources.d.ts +27 -0
  75. package/dist/components/editor/extensions/autocomplete/vault-completion-sources.js +55 -0
  76. package/dist/components/editor/extensions/class-highlighter/index.d.ts +1 -0
  77. package/dist/components/editor/extensions/class-highlighter/index.js +47 -0
  78. package/dist/components/editor/extensions/fold-gutter/index.d.ts +8 -0
  79. package/dist/components/editor/extensions/fold-gutter/index.js +40 -0
  80. package/dist/components/editor/extensions/gutter-line-style-sync/index.d.ts +2 -0
  81. package/dist/components/editor/extensions/gutter-line-style-sync/index.js +118 -0
  82. package/dist/components/editor/extensions/lint/index.d.ts +4 -0
  83. package/dist/components/editor/extensions/lint/index.js +4 -0
  84. package/dist/components/editor/extensions/lint/lapis-code-mirror-lint.d.ts +26 -0
  85. package/dist/components/editor/extensions/lint/lapis-code-mirror-lint.js +101 -0
  86. package/dist/components/editor/extensions/lint/lapis-lint-diagnostic-helpers.d.ts +8 -0
  87. package/dist/components/editor/extensions/lint/lapis-lint-diagnostic-helpers.js +7 -0
  88. package/dist/components/editor/extensions/lint/lapis-lint-diagnostic.d.ts +20 -0
  89. package/dist/components/editor/extensions/lint/lapis-lint-diagnostic.js +47 -0
  90. package/dist/components/editor/extensions/lint/lapis-lint-hover-tooltip.d.ts +9 -0
  91. package/dist/components/editor/extensions/lint/lapis-lint-hover-tooltip.js +373 -0
  92. package/dist/components/editor/extensions/lint/lapis-lint-inline-widget.d.ts +31 -0
  93. package/dist/components/editor/extensions/lint/lapis-lint-inline-widget.js +191 -0
  94. package/dist/components/editor/extensions/lint/lapis-lint-tooltip.svelte +176 -0
  95. package/dist/components/editor/extensions/lint/lapis-lint-tooltip.svelte.d.ts +15 -0
  96. package/dist/components/editor/extensions/lint/lint-tooltip-actions.d.ts +11 -0
  97. package/dist/components/editor/extensions/lint/lint-tooltip-actions.js +21 -0
  98. package/dist/components/editor/extensions/lint/mount-lint-tooltip.d.ts +16 -0
  99. package/dist/components/editor/extensions/lint/mount-lint-tooltip.js +60 -0
  100. package/dist/components/editor/extensions/search/dom.d.ts +2 -0
  101. package/dist/components/editor/extensions/search/dom.js +6 -0
  102. package/dist/components/editor/extensions/search/index.d.ts +35 -0
  103. package/dist/components/editor/extensions/search/index.js +44 -0
  104. package/dist/components/editor/extensions/search/search.svelte +335 -0
  105. package/dist/components/editor/extensions/search/search.svelte.d.ts +8 -0
  106. package/dist/components/editor/index.d.ts +9 -0
  107. package/dist/components/editor/index.js +9 -0
  108. package/dist/components/editor/language-service/dom.d.ts +1 -0
  109. package/dist/components/editor/language-service/dom.js +6 -0
  110. package/dist/components/editor/language-service/index.d.ts +28 -0
  111. package/dist/components/editor/language-service/index.js +342 -0
  112. package/dist/components/empty-view/empty-view.css +39 -0
  113. package/dist/components/empty-view/empty-view.svelte +26 -0
  114. package/dist/components/empty-view/empty-view.svelte.d.ts +9 -0
  115. package/dist/components/empty-view/index.d.ts +2 -0
  116. package/dist/components/empty-view/index.js +2 -0
  117. package/dist/components/icon/icon-list.css +74 -0
  118. package/dist/components/icon/icon-list.svelte +213 -0
  119. package/dist/components/icon/icon-list.svelte.d.ts +11 -0
  120. package/dist/components/icon/icon.svelte +15 -0
  121. package/dist/components/icon/icon.svelte.d.ts +7 -0
  122. package/dist/components/icon/index.d.ts +3 -0
  123. package/dist/components/icon/index.js +3 -0
  124. package/dist/components/menu/context-menu.svelte +89 -0
  125. package/dist/components/menu/context-menu.svelte.d.ts +11 -0
  126. package/dist/components/menu/drawer-menu.svelte +83 -0
  127. package/dist/components/menu/drawer-menu.svelte.d.ts +8 -0
  128. package/dist/components/menu/dropdown-menu.svelte +89 -0
  129. package/dist/components/menu/dropdown-menu.svelte.d.ts +11 -0
  130. package/dist/components/menu/index.d.ts +6 -0
  131. package/dist/components/menu/index.js +6 -0
  132. package/dist/components/menu/menu.css +139 -0
  133. package/dist/components/menu/menu.svelte +37 -0
  134. package/dist/components/menu/menu.svelte.d.ts +11 -0
  135. package/dist/components/menu/mobile-menu-query.svelte.d.ts +3 -0
  136. package/dist/components/menu/mobile-menu-query.svelte.js +21 -0
  137. package/dist/components/menu/popover-menu.svelte +90 -0
  138. package/dist/components/menu/popover-menu.svelte.d.ts +10 -0
  139. package/dist/components/select/index.d.ts +2 -0
  140. package/dist/components/select/index.js +2 -0
  141. package/dist/components/select/select.svelte +72 -0
  142. package/dist/components/select/select.svelte.d.ts +25 -0
  143. package/dist/configuration-option-source-providers.d.ts +17 -0
  144. package/dist/configuration-option-source-providers.js +59 -0
  145. package/dist/configuration-option-source-registry.d.ts +59 -0
  146. package/dist/configuration-option-source-registry.js +123 -0
  147. package/dist/configuration.svelte.d.ts +258 -0
  148. package/dist/configuration.svelte.js +887 -0
  149. package/dist/context-keys.svelte.d.ts +42 -0
  150. package/dist/context-keys.svelte.js +278 -0
  151. package/dist/context.svelte.d.ts +247 -0
  152. package/dist/context.svelte.js +540 -0
  153. package/dist/daily-document-provider.d.ts +38 -0
  154. package/dist/daily-document-provider.js +176 -0
  155. package/dist/design-core-button-types.d.ts +7 -0
  156. package/dist/design-core-button-types.js +1 -0
  157. package/dist/diagnostics.d.ts +93 -0
  158. package/dist/diagnostics.js +84 -0
  159. package/dist/dialog-portal.d.ts +3 -0
  160. package/dist/dialog-portal.js +3 -0
  161. package/dist/docs-api.d.ts +44 -0
  162. package/dist/docs-api.js +29 -0
  163. package/dist/editor-view-registry.d.ts +35 -0
  164. package/dist/editor-view-registry.js +112 -0
  165. package/dist/editor.svelte.d.ts +126 -0
  166. package/dist/editor.svelte.js +454 -0
  167. package/dist/embed-registry.d.ts +15 -0
  168. package/dist/embed-registry.js +16 -0
  169. package/dist/enhance.d.ts +111 -0
  170. package/dist/enhance.js +309 -0
  171. package/dist/events.d.ts +28 -0
  172. package/dist/events.js +49 -0
  173. package/dist/file-manager.d.ts +90 -0
  174. package/dist/file-manager.js +289 -0
  175. package/dist/file-tools/app-tools.d.ts +3 -0
  176. package/dist/file-tools/app-tools.js +242 -0
  177. package/dist/file-tools/index.d.ts +3 -0
  178. package/dist/file-tools/index.js +3 -0
  179. package/dist/file-tools/paths.d.ts +14 -0
  180. package/dist/file-tools/paths.js +33 -0
  181. package/dist/file-tools/vault-operations.d.ts +3 -0
  182. package/dist/file-tools/vault-operations.js +60 -0
  183. package/dist/generated/plugin-host-modules.schema.generated.d.ts +371 -0
  184. package/dist/generated/plugin-host-modules.schema.generated.js +374 -0
  185. package/dist/glob.d.ts +15 -0
  186. package/dist/glob.js +68 -0
  187. package/dist/history.svelte.d.ts +24 -0
  188. package/dist/history.svelte.js +74 -0
  189. package/dist/hooks/createVirtualizer.svelte.d.ts +7 -0
  190. package/dist/hooks/createVirtualizer.svelte.js +70 -0
  191. package/dist/hooks/index.d.ts +5 -0
  192. package/dist/hooks/index.js +5 -0
  193. package/dist/hooks/is-mobile.svelte.d.ts +5 -0
  194. package/dist/hooks/is-mobile.svelte.js +23 -0
  195. package/dist/hooks/mountComponent.svelte.d.ts +7 -0
  196. package/dist/hooks/mountComponent.svelte.js +16 -0
  197. package/dist/hooks/use-text-highlight.d.ts +17 -0
  198. package/dist/hooks/use-text-highlight.js +82 -0
  199. package/dist/hooks/useBoundingRect.svelte.d.ts +11 -0
  200. package/dist/hooks/useBoundingRect.svelte.js +46 -0
  201. package/dist/icons/index.d.ts +57 -0
  202. package/dist/icons/index.js +288 -0
  203. package/dist/index.d.ts +87 -0
  204. package/dist/index.js +87 -0
  205. package/dist/language-service/index.d.ts +9 -0
  206. package/dist/language-service/index.js +7 -0
  207. package/dist/language-service/manager.d.ts +47 -0
  208. package/dist/language-service/manager.js +404 -0
  209. package/dist/language-service/types.d.ts +92 -0
  210. package/dist/language-service/types.js +1 -0
  211. package/dist/language-service/virtual-document.d.ts +11 -0
  212. package/dist/language-service/virtual-document.js +45 -0
  213. package/dist/language-service/worker-protocol.d.ts +63 -0
  214. package/dist/language-service/worker-protocol.js +1 -0
  215. package/dist/language-service/worker-provider.d.ts +9 -0
  216. package/dist/language-service/worker-provider.js +38 -0
  217. package/dist/lapis-extension.d.ts +244 -0
  218. package/dist/lapis-extension.js +591 -0
  219. package/dist/links.d.ts +34 -0
  220. package/dist/links.js +191 -0
  221. package/dist/loaders.d.ts +9 -0
  222. package/dist/loaders.js +59 -0
  223. package/dist/localization-manager.svelte.d.ts +56 -0
  224. package/dist/localization-manager.svelte.js +157 -0
  225. package/dist/logging.d.ts +172 -0
  226. package/dist/logging.js +352 -0
  227. package/dist/markdown-extension-registry.d.ts +31 -0
  228. package/dist/markdown-extension-registry.js +31 -0
  229. package/dist/markdown-file-surface-registry.d.ts +25 -0
  230. package/dist/markdown-file-surface-registry.js +23 -0
  231. package/dist/markdown.d.ts +205 -0
  232. package/dist/markdown.js +147 -0
  233. package/dist/menu-utils.d.ts +1 -0
  234. package/dist/menu-utils.js +47 -0
  235. package/dist/menu.svelte.d.ts +121 -0
  236. package/dist/menu.svelte.js +295 -0
  237. package/dist/metadata-value.d.ts +10 -0
  238. package/dist/metadata-value.js +173 -0
  239. package/dist/metadata.svelte.d.ts +106 -0
  240. package/dist/metadata.svelte.js +608 -0
  241. package/dist/notifications.d.ts +209 -0
  242. package/dist/notifications.js +338 -0
  243. package/dist/open-file.d.ts +23 -0
  244. package/dist/open-file.js +102 -0
  245. package/dist/platform.d.ts +86 -0
  246. package/dist/platform.js +86 -0
  247. package/dist/plugin-asset-server.d.ts +60 -0
  248. package/dist/plugin-asset-server.js +222 -0
  249. package/dist/plugin-assets.d.ts +4 -0
  250. package/dist/plugin-assets.js +3 -0
  251. package/dist/plugin-capability-facade.d.ts +104 -0
  252. package/dist/plugin-capability-facade.js +61 -0
  253. package/dist/plugin-dependency-resolver.d.ts +36 -0
  254. package/dist/plugin-dependency-resolver.js +54 -0
  255. package/dist/plugin-dependency-scanner.d.ts +9 -0
  256. package/dist/plugin-dependency-scanner.js +274 -0
  257. package/dist/plugin-distribution/canonical-json.d.ts +1 -0
  258. package/dist/plugin-distribution/canonical-json.js +40 -0
  259. package/dist/plugin-distribution/compatibility.d.ts +5 -0
  260. package/dist/plugin-distribution/compatibility.js +38 -0
  261. package/dist/plugin-distribution/errors.d.ts +11 -0
  262. package/dist/plugin-distribution/errors.js +13 -0
  263. package/dist/plugin-distribution/hashes.d.ts +2 -0
  264. package/dist/plugin-distribution/hashes.js +17 -0
  265. package/dist/plugin-distribution/index.d.ts +18 -0
  266. package/dist/plugin-distribution/index.js +18 -0
  267. package/dist/plugin-distribution/installed-plugin-state.d.ts +20 -0
  268. package/dist/plugin-distribution/installed-plugin-state.js +73 -0
  269. package/dist/plugin-distribution/installer.d.ts +89 -0
  270. package/dist/plugin-distribution/installer.js +395 -0
  271. package/dist/plugin-distribution/manager.d.ts +128 -0
  272. package/dist/plugin-distribution/manager.js +358 -0
  273. package/dist/plugin-distribution/path-safety.d.ts +2 -0
  274. package/dist/plugin-distribution/path-safety.js +20 -0
  275. package/dist/plugin-distribution/plugin-bundle-verifier.d.ts +28 -0
  276. package/dist/plugin-distribution/plugin-bundle-verifier.js +96 -0
  277. package/dist/plugin-distribution/plugin-bundle-worker.d.ts +34 -0
  278. package/dist/plugin-distribution/plugin-bundle-worker.js +99 -0
  279. package/dist/plugin-distribution/plugin-bundle.d.ts +16 -0
  280. package/dist/plugin-distribution/plugin-bundle.js +244 -0
  281. package/dist/plugin-distribution/plugin-bundle.worker.d.ts +1 -0
  282. package/dist/plugin-distribution/plugin-bundle.worker.js +38 -0
  283. package/dist/plugin-distribution/registry-cache.d.ts +26 -0
  284. package/dist/plugin-distribution/registry-cache.js +85 -0
  285. package/dist/plugin-distribution/registry-client.d.ts +36 -0
  286. package/dist/plugin-distribution/registry-client.js +115 -0
  287. package/dist/plugin-distribution/reserved-ids.d.ts +4 -0
  288. package/dist/plugin-distribution/reserved-ids.js +10 -0
  289. package/dist/plugin-distribution/runtime-validation.d.ts +14 -0
  290. package/dist/plugin-distribution/runtime-validation.js +388 -0
  291. package/dist/plugin-distribution/schemas.d.ts +4895 -0
  292. package/dist/plugin-distribution/schemas.js +299 -0
  293. package/dist/plugin-distribution/signing.d.ts +5 -0
  294. package/dist/plugin-distribution/signing.js +38 -0
  295. package/dist/plugin-distribution/types.d.ts +217 -0
  296. package/dist/plugin-distribution/types.js +1 -0
  297. package/dist/plugin-install-progress.d.ts +15 -0
  298. package/dist/plugin-install-progress.js +86 -0
  299. package/dist/plugin-manager.d.ts +306 -0
  300. package/dist/plugin-manager.js +2848 -0
  301. package/dist/plugin-runtime-entry.d.ts +19 -0
  302. package/dist/plugin-runtime-entry.js +135 -0
  303. package/dist/plugin.d.ts +350 -0
  304. package/dist/plugin.js +754 -0
  305. package/dist/popover.d.ts +20 -0
  306. package/dist/popover.js +32 -0
  307. package/dist/promise-worker.d.ts +22 -0
  308. package/dist/promise-worker.js +65 -0
  309. package/dist/prompt-confirm.d.ts +9 -0
  310. package/dist/prompt-confirm.js +33 -0
  311. package/dist/search-document-provider.d.ts +45 -0
  312. package/dist/search-document-provider.js +54 -0
  313. package/dist/search-query/index.d.ts +78 -0
  314. package/dist/search-query/index.js +426 -0
  315. package/dist/search-query/parser.d.ts +3 -0
  316. package/dist/search-query/parser.js +16 -0
  317. package/dist/search-query/parser.terms.js +26 -0
  318. package/dist/search-query/search-query.grammar +128 -0
  319. package/dist/search.d.ts +19 -0
  320. package/dist/search.js +104 -0
  321. package/dist/setting-section-layout.d.ts +19 -0
  322. package/dist/setting-section-layout.js +194 -0
  323. package/dist/settings.svelte.d.ts +474 -0
  324. package/dist/settings.svelte.js +1421 -0
  325. package/dist/source-text-file-view.d.ts +25 -0
  326. package/dist/source-text-file-view.js +78 -0
  327. package/dist/status-bar.svelte.d.ts +29 -0
  328. package/dist/status-bar.svelte.js +72 -0
  329. package/dist/storage/app-database.d.ts +860 -0
  330. package/dist/storage/app-database.js +2372 -0
  331. package/dist/storage/blob-store.d.ts +12 -0
  332. package/dist/storage/blob-store.js +1 -0
  333. package/dist/storage/browser-app-database-coordination.d.ts +35 -0
  334. package/dist/storage/browser-app-database-coordination.js +207 -0
  335. package/dist/storage/browser-coordinated-app-database.d.ts +109 -0
  336. package/dist/storage/browser-coordinated-app-database.js +704 -0
  337. package/dist/storage/browser.d.ts +153 -0
  338. package/dist/storage/browser.js +794 -0
  339. package/dist/storage/desktop-native.d.ts +184 -0
  340. package/dist/storage/desktop-native.js +415 -0
  341. package/dist/storage/fs.d.ts +188 -0
  342. package/dist/storage/fs.js +307 -0
  343. package/dist/storage/index-projection.d.ts +236 -0
  344. package/dist/storage/index-projection.js +402 -0
  345. package/dist/storage/index.d.ts +17 -0
  346. package/dist/storage/index.js +17 -0
  347. package/dist/storage/keyval.d.ts +94 -0
  348. package/dist/storage/keyval.js +199 -0
  349. package/dist/storage/memory-vault-adapter.d.ts +44 -0
  350. package/dist/storage/memory-vault-adapter.js +351 -0
  351. package/dist/storage/native-vault-bootstrap-kv.d.ts +22 -0
  352. package/dist/storage/native-vault-bootstrap-kv.js +96 -0
  353. package/dist/storage/path.d.ts +22 -0
  354. package/dist/storage/path.js +110 -0
  355. package/dist/storage/search-embedding-provider.d.ts +75 -0
  356. package/dist/storage/search-embedding-provider.js +446 -0
  357. package/dist/storage/search-embedding-worker.d.ts +1 -0
  358. package/dist/storage/search-embedding-worker.js +63 -0
  359. package/dist/storage/search-query-evaluator.d.ts +14 -0
  360. package/dist/storage/search-query-evaluator.js +678 -0
  361. package/dist/storage/task-projection.d.ts +152 -0
  362. package/dist/storage/task-projection.js +154 -0
  363. package/dist/storage/turso-app-database.d.ts +150 -0
  364. package/dist/storage/turso-app-database.js +2671 -0
  365. package/dist/storage/vault-session.d.ts +37 -0
  366. package/dist/storage/vault-session.js +196 -0
  367. package/dist/storage/vault-state.d.ts +74 -0
  368. package/dist/storage/vault-state.js +181 -0
  369. package/dist/storage/vault.svelte.d.ts +257 -0
  370. package/dist/storage/vault.svelte.js +661 -0
  371. package/dist/suggest.d.ts +193 -0
  372. package/dist/suggest.js +391 -0
  373. package/dist/tasks.d.ts +7 -0
  374. package/dist/tasks.js +18 -0
  375. package/dist/telemetry.d.ts +116 -0
  376. package/dist/telemetry.js +103 -0
  377. package/dist/utils.d.ts +55 -0
  378. package/dist/utils.js +314 -0
  379. package/dist/vault-api.d.ts +5 -0
  380. package/dist/vault-api.js +3 -0
  381. package/dist/vault-maintenance-commands.d.ts +5 -0
  382. package/dist/vault-maintenance-commands.js +32 -0
  383. package/dist/view.svelte.d.ts +215 -0
  384. package/dist/view.svelte.js +381 -0
  385. package/dist/vite-env.d.ts +2 -0
  386. package/dist/workspace-host-internal.d.ts +7 -0
  387. package/dist/workspace-host-internal.js +7 -0
  388. package/dist/workspace-host.d.ts +10 -0
  389. package/dist/workspace-host.js +14 -0
  390. package/dist/workspace-layout-commands.d.ts +3 -0
  391. package/dist/workspace-layout-commands.js +72 -0
  392. package/dist/workspace-layout-normalizer.d.ts +92 -0
  393. package/dist/workspace-layout-normalizer.js +301 -0
  394. package/dist/workspace-layouts.d.ts +7 -0
  395. package/dist/workspace-layouts.js +23 -0
  396. package/dist/workspace-trust.d.ts +32 -0
  397. package/dist/workspace-trust.js +72 -0
  398. package/dist/workspace.svelte.d.ts +796 -0
  399. package/dist/workspace.svelte.js +4380 -0
  400. package/package.json +240 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,9 @@
1
+ # @lapis-notes/api
2
+
3
+ ## 0.1.0
4
+
5
+ ### Minor Changes
6
+
7
+ - First public npm release of the Lapis Notes runtime kernel, including the app
8
+ container, vault contracts, workspace model, plugin lifecycle, commands,
9
+ settings, metadata, editor, telemetry, and agent-tool public subpaths.
package/LICENSE.md ADDED
@@ -0,0 +1,4 @@
1
+ Apache-2.0
2
+
3
+ This package is licensed under the Apache License 2.0.
4
+ See <https://www.apache.org/licenses/LICENSE-2.0>.
package/README.md ADDED
@@ -0,0 +1,43 @@
1
+ # @lapis-notes/api
2
+
3
+ Shared runtime kernel for Lapis Notes.
4
+
5
+ This package defines the transport-neutral contracts used by Lapis hosts and
6
+ plugins: the app container, vault/storage interfaces, workspace model, commands,
7
+ settings, metadata, events, editor abstractions, plugin lifecycle, telemetry,
8
+ and portable agent-tool helpers. It intentionally does not own desktop or web
9
+ boot policy, vault selection, persistence transport, bundled plugin enablement,
10
+ or product routing.
11
+
12
+ ## Public surface
13
+
14
+ - Root runtime exports for app, workspace, commands, plugins, settings, and
15
+ shared models.
16
+ - Narrow subpaths for `app-database`, `vault`, `desktop-native`, `agent-tools`,
17
+ `agent-skills`, `telemetry`, path helpers, workspace host integration, and the
18
+ editor core/language-service surfaces.
19
+ - Peer dependencies for UI, Svelte, CodeMirror, Mira, and Design Core so hosts
20
+ retain singleton control over their runtime stack.
21
+
22
+ ## Usage
23
+
24
+ ```ts
25
+ import "@lapis-notes/api";
26
+ import { App } from "@lapis-notes/api";
27
+ import { MemoryVaultAdapter } from "@lapis-notes/api/vault";
28
+ import type { AppDatabase } from "@lapis-notes/api/app-database";
29
+ ```
30
+
31
+ ## Common Scripts
32
+
33
+ ```sh
34
+ pnpm --filter @lapis-notes/api build
35
+ pnpm --filter @lapis-notes/api check
36
+ pnpm --filter @lapis-notes/api test
37
+ ```
38
+
39
+ ## References
40
+
41
+ - [Package spec](spec.md)
42
+ - [Canonical spec](../../spec/src/20-packages/api/index.md)
43
+ - [App state model](../../spec/src/20-packages/api/app-state-and-workspace-model.md)
@@ -0,0 +1,205 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { dirname, joinPath, } from "../storage";
3
+ export class InMemoryDataAdapter {
4
+ files = new Map();
5
+ folders = new Map([
6
+ ["/", { type: "folder", ctime: 1, mtime: 1, size: 0 }],
7
+ ]);
8
+ clock = 10;
9
+ getName() {
10
+ return "memory";
11
+ }
12
+ nextTime() {
13
+ this.clock += 1;
14
+ return this.clock;
15
+ }
16
+ path(path) {
17
+ path = path.replace(/\/+$/, "") || "/";
18
+ return path === "/" ? "/" : path.replace(/^\/+/, "");
19
+ }
20
+ byteLength(data) {
21
+ return typeof data === "string"
22
+ ? new TextEncoder().encode(data).byteLength
23
+ : data.byteLength;
24
+ }
25
+ async exists(path) {
26
+ path = this.path(path);
27
+ return this.files.has(path) || this.folders.has(path);
28
+ }
29
+ async stat(path) {
30
+ path = this.path(path);
31
+ return this.files.get(path)?.stat ?? this.folders.get(path) ?? null;
32
+ }
33
+ async list(path) {
34
+ path = this.path(path);
35
+ const prefix = path === "/" ? "" : `${path}/`;
36
+ const data = { files: [], folders: [] };
37
+ for (const file of this.files.keys()) {
38
+ if (!file.startsWith(prefix))
39
+ continue;
40
+ const rest = file.slice(prefix.length);
41
+ if (rest && !rest.includes("/"))
42
+ data.files.push(rest);
43
+ }
44
+ for (const folder of this.folders.keys()) {
45
+ if (folder === path || !folder.startsWith(prefix))
46
+ continue;
47
+ const rest = folder.slice(prefix.length);
48
+ if (rest && !rest.includes("/"))
49
+ data.folders.push(rest);
50
+ }
51
+ data.files.sort();
52
+ data.folders.sort();
53
+ return data;
54
+ }
55
+ async read(path) {
56
+ const value = this.files.get(this.path(path))?.data;
57
+ if (value === undefined)
58
+ throw Object.assign(new Error(path), { code: "ENOENT" });
59
+ return typeof value === "string" ? value : new TextDecoder().decode(value);
60
+ }
61
+ async readBinary(path) {
62
+ const value = this.files.get(this.path(path))?.data;
63
+ if (value === undefined)
64
+ throw Object.assign(new Error(path), { code: "ENOENT" });
65
+ return typeof value === "string"
66
+ ? new TextEncoder().encode(value).buffer
67
+ : value;
68
+ }
69
+ async write(path, data, options) {
70
+ await this.writeValue(path, data, options);
71
+ }
72
+ async writeBinary(path, data, options) {
73
+ await this.writeValue(path, data, options);
74
+ }
75
+ async writeValue(path, data, options) {
76
+ path = this.path(path);
77
+ const existing = this.files.get(path)?.stat;
78
+ const now = this.nextTime();
79
+ this.files.set(path, {
80
+ data,
81
+ stat: {
82
+ type: "file",
83
+ ctime: options?.ctime ?? existing?.ctime ?? now,
84
+ mtime: options?.mtime ?? now,
85
+ size: this.byteLength(data),
86
+ },
87
+ });
88
+ }
89
+ async append(path, data) {
90
+ await this.write(path, (await this.read(path).catch(() => "")) + data);
91
+ }
92
+ async appendBinary(path, data) {
93
+ const current = new Uint8Array(await this.readBinary(path).catch(() => new ArrayBuffer(0)));
94
+ const next = new Uint8Array(current.byteLength + data.byteLength);
95
+ next.set(current);
96
+ next.set(new Uint8Array(data), current.byteLength);
97
+ await this.writeBinary(path, next.buffer);
98
+ }
99
+ async process(path, fn) {
100
+ const next = fn(await this.read(path));
101
+ await this.write(path, next);
102
+ return next;
103
+ }
104
+ async mkdir(path) {
105
+ path = this.path(path);
106
+ const now = this.nextTime();
107
+ this.folders.set(path, { type: "folder", ctime: now, mtime: now, size: 0 });
108
+ }
109
+ async rmdir(path, recursive = true) {
110
+ path = this.path(path);
111
+ this.folders.delete(path);
112
+ for (const child of [...this.files.keys()]) {
113
+ if (child.startsWith(`${path}/`))
114
+ this.files.delete(child);
115
+ }
116
+ for (const child of [...this.folders.keys()]) {
117
+ if (child.startsWith(`${path}/`))
118
+ this.folders.delete(child);
119
+ }
120
+ }
121
+ async remove(path) {
122
+ this.files.delete(this.path(path));
123
+ }
124
+ async rename(path, newPath) {
125
+ await this.copy(path, newPath);
126
+ const stat = await this.stat(path);
127
+ if (stat?.type === "folder") {
128
+ await this.rmdir(path, true);
129
+ }
130
+ else {
131
+ await this.remove(path);
132
+ }
133
+ }
134
+ async copy(path, newPath) {
135
+ path = this.path(path);
136
+ newPath = this.path(newPath);
137
+ const file = this.files.get(path);
138
+ if (file) {
139
+ await this.writeValue(newPath, file.data);
140
+ return;
141
+ }
142
+ if (this.folders.has(path)) {
143
+ await this.mkdir(newPath);
144
+ const { files, folders } = await this.list(path);
145
+ for (const folder of folders) {
146
+ await this.copy(joinPath(path, folder), joinPath(newPath, folder));
147
+ }
148
+ for (const child of files) {
149
+ await this.copy(joinPath(path, child), joinPath(newPath, child));
150
+ }
151
+ }
152
+ }
153
+ getResourcePath(path) {
154
+ return `memory://${this.path(path)}`;
155
+ }
156
+ async trashSystem() {
157
+ return false;
158
+ }
159
+ async trashLocal(path) {
160
+ await this.mkdir(dirname(joinPath(".trash", path)));
161
+ await this.rename(path, joinPath(".trash", path));
162
+ }
163
+ }
164
+ export function runDataAdapterConformance(name, createAdapter) {
165
+ describe(name, () => {
166
+ it("handles text files, folders, stats, and lists", async () => {
167
+ const adapter = await createAdapter();
168
+ await adapter.mkdir("notes");
169
+ await adapter.write("notes/a.md", "hello");
170
+ expect(await adapter.read("notes/a.md")).toBe("hello");
171
+ expect(await adapter.exists("notes/a.md")).toBe(true);
172
+ expect(await adapter.stat("notes/a.md")).toMatchObject({
173
+ type: "file",
174
+ size: 5,
175
+ });
176
+ expect((await adapter.list("/")).folders).toContain("notes");
177
+ expect((await adapter.list("notes")).files).toContain("a.md");
178
+ });
179
+ it("handles binary writes, appends, and process updates", async () => {
180
+ const adapter = await createAdapter();
181
+ await adapter.write("note.md", "a");
182
+ await adapter.append("note.md", "b");
183
+ expect(await adapter.process("note.md", (data) => data + "c")).toBe("abc");
184
+ expect(await adapter.read("note.md")).toBe("abc");
185
+ await adapter.writeBinary("file.bin", new Uint8Array([1]).buffer);
186
+ await adapter.appendBinary("file.bin", new Uint8Array([2, 3]).buffer);
187
+ expect([...new Uint8Array(await adapter.readBinary("file.bin"))]).toEqual([1, 2, 3]);
188
+ });
189
+ it("handles copy, rename, delete, and local trash", async () => {
190
+ const adapter = await createAdapter();
191
+ await adapter.mkdir("folder");
192
+ await adapter.write("folder/source.md", "data");
193
+ await adapter.copy("folder/source.md", "folder/copy.md");
194
+ expect(await adapter.read("folder/copy.md")).toBe("data");
195
+ await adapter.rename("folder/copy.md", "renamed.md");
196
+ expect(await adapter.exists("folder/copy.md")).toBe(false);
197
+ expect(await adapter.read("renamed.md")).toBe("data");
198
+ await adapter.trashLocal("renamed.md");
199
+ expect(await adapter.exists("renamed.md")).toBe(false);
200
+ expect(await adapter.read(".trash/renamed.md")).toBe("data");
201
+ await adapter.remove("folder/source.md");
202
+ expect(await adapter.exists("folder/source.md")).toBe(false);
203
+ });
204
+ });
205
+ }
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Synthetic Lapis ESM workspace runtime manifest for api-local tests.
3
+ * Not tied to any first-party plugin package.
4
+ */
5
+ export function createEsmWorkspaceRuntimeManifest(overrides = {}) {
6
+ const id = overrides.id ?? "fixture-esm-workspace";
7
+ const { lapis: lapisOverrides, ...rest } = overrides;
8
+ return {
9
+ id,
10
+ name: rest.name ?? id,
11
+ author: rest.author ?? "test",
12
+ version: rest.version ?? "1.0.0",
13
+ minAppVersion: rest.minAppVersion ?? "0.0.0",
14
+ description: rest.description ?? "",
15
+ ...rest,
16
+ lapis: {
17
+ manifestVersion: 1,
18
+ ...lapisOverrides,
19
+ runtime: {
20
+ entries: {
21
+ workspace: {
22
+ path: "main.mjs",
23
+ format: "esm",
24
+ sharedDependencies: ["@lapis-notes/api", "svelte", "clsx"],
25
+ requiresReloadOnUpdate: false,
26
+ },
27
+ },
28
+ ...lapisOverrides?.runtime,
29
+ },
30
+ },
31
+ };
32
+ }
@@ -0,0 +1,3 @@
1
+ declare module "svelte/internal/client" {
2
+ export function effect_root(fn: () => void): () => void;
3
+ }
@@ -0,0 +1,52 @@
1
+ import type { Component } from "svelte";
2
+ import { EventDispatcher } from "./events";
3
+ export type AgentResultViewState = "running" | "completed" | "error";
4
+ export interface AgentResultViewConversation {
5
+ conversationId?: string;
6
+ scopeDirectory?: string;
7
+ launchNotePath?: string;
8
+ metadata?: Record<string, unknown>;
9
+ }
10
+ export interface AgentResultViewProps<TApp = object> {
11
+ app: TApp;
12
+ conversation?: AgentResultViewConversation;
13
+ name: string;
14
+ input?: unknown;
15
+ output?: unknown;
16
+ state?: AgentResultViewState;
17
+ }
18
+ export interface AgentResultViewDefinition<TApp = object> {
19
+ tool?: string;
20
+ command?: string;
21
+ component: Component<AgentResultViewProps<TApp>>;
22
+ }
23
+ export interface RegisteredAgentResultView<TApp = object> {
24
+ registrationId: string;
25
+ ownerPluginId: string;
26
+ key: string;
27
+ kind: "tool" | "command";
28
+ name: string;
29
+ component: Component<AgentResultViewProps<TApp>>;
30
+ }
31
+ export interface AgentResultViewRegistration {
32
+ readonly id: string;
33
+ readonly key: string;
34
+ dispose(): void;
35
+ }
36
+ export type AgentResultViewRegistryChange = {
37
+ registrationId: string;
38
+ key: string;
39
+ ownerPluginId: string;
40
+ reason: "registered" | "unregistered";
41
+ };
42
+ export declare function agentResultViewKey(kind: "tool" | "command", name: string): string;
43
+ /** Registry for plugin-owned transcript result views. */
44
+ export declare class AppResultViewRegistry extends EventDispatcher<{
45
+ changed: [change: AgentResultViewRegistryChange];
46
+ }> {
47
+ private readonly views;
48
+ register<TApp>(ownerPluginId: string, view: AgentResultViewDefinition<TApp>): AgentResultViewRegistration;
49
+ getByTool(name: string): RegisteredAgentResultView | undefined;
50
+ getByCommand(name: string): RegisteredAgentResultView | undefined;
51
+ list(): RegisteredAgentResultView[];
52
+ }
@@ -0,0 +1,89 @@
1
+ import { EventDispatcher } from "./events";
2
+ const NAME_PATTERN = /^[a-z][a-z0-9_-]{0,63}$/;
3
+ let registrationSequence = 0;
4
+ export function agentResultViewKey(kind, name) {
5
+ return `${kind}:${name}`;
6
+ }
7
+ function normalizeName(value, label) {
8
+ const name = value?.trim() ?? "";
9
+ if (!NAME_PATTERN.test(name)) {
10
+ throw new Error(`Invalid result view ${label}: ${value ?? ""}. Expected pattern ${NAME_PATTERN.source}.`);
11
+ }
12
+ return name;
13
+ }
14
+ function normalizeDefinition(view) {
15
+ const hasTool = Boolean(view.tool?.trim());
16
+ const hasCommand = Boolean(view.command?.trim());
17
+ if (hasTool === hasCommand) {
18
+ throw new Error("A result view must name exactly one of tool or command.");
19
+ }
20
+ if (view.component == null) {
21
+ throw new Error("A result view must provide a component.");
22
+ }
23
+ const kind = hasTool ? "tool" : "command";
24
+ const name = normalizeName(hasTool ? view.tool : view.command, kind);
25
+ return {
26
+ kind,
27
+ name,
28
+ key: agentResultViewKey(kind, name),
29
+ component: view.component,
30
+ };
31
+ }
32
+ /** Registry for plugin-owned transcript result views. */
33
+ export class AppResultViewRegistry extends EventDispatcher {
34
+ views = new Map();
35
+ register(ownerPluginId, view) {
36
+ const pluginId = ownerPluginId.trim();
37
+ if (!pluginId) {
38
+ throw new Error("Result view owner plugin id must not be empty.");
39
+ }
40
+ const normalized = normalizeDefinition(view);
41
+ if (this.views.has(normalized.key)) {
42
+ throw new Error(`Result view already registered: ${normalized.key}`);
43
+ }
44
+ const registrationId = `app-result-view-${++registrationSequence}`;
45
+ const registered = {
46
+ registrationId,
47
+ ownerPluginId: pluginId,
48
+ key: normalized.key,
49
+ kind: normalized.kind,
50
+ name: normalized.name,
51
+ component: normalized.component,
52
+ };
53
+ this.views.set(normalized.key, registered);
54
+ this.emit("changed", {
55
+ registrationId,
56
+ key: normalized.key,
57
+ ownerPluginId: pluginId,
58
+ reason: "registered",
59
+ });
60
+ let disposed = false;
61
+ return {
62
+ id: registrationId,
63
+ key: normalized.key,
64
+ dispose: () => {
65
+ if (disposed)
66
+ return;
67
+ disposed = true;
68
+ if (this.views.get(normalized.key) !== registered)
69
+ return;
70
+ this.views.delete(normalized.key);
71
+ this.emit("changed", {
72
+ registrationId,
73
+ key: normalized.key,
74
+ ownerPluginId: pluginId,
75
+ reason: "unregistered",
76
+ });
77
+ },
78
+ };
79
+ }
80
+ getByTool(name) {
81
+ return this.views.get(agentResultViewKey("tool", name.trim()));
82
+ }
83
+ getByCommand(name) {
84
+ return this.views.get(agentResultViewKey("command", name.trim()));
85
+ }
86
+ list() {
87
+ return [...this.views.values()].sort((left, right) => left.key.localeCompare(right.key));
88
+ }
89
+ }
@@ -0,0 +1,99 @@
1
+ import { EventDispatcher } from "./events";
2
+ export declare const SKILL_NAME_PATTERN: RegExp;
3
+ export declare const SLASH_COMMAND_NAME_PATTERN: RegExp;
4
+ export type SkillSourceKind = "folder" | "vault" | "user" | "extension" | "bundled" | "programmatic";
5
+ export interface ProgrammaticAppSkill {
6
+ name: string;
7
+ description: string;
8
+ instructions: string;
9
+ userInvocable?: boolean;
10
+ disableModelInvocation?: boolean;
11
+ argumentHint?: string;
12
+ command?: {
13
+ kind: "tool";
14
+ tool: string;
15
+ argMode?: "raw";
16
+ };
17
+ }
18
+ export interface AppSkillOwner {
19
+ pluginId: string;
20
+ }
21
+ export interface RegisteredAppSkillSource {
22
+ registrationId: string;
23
+ ownerPluginId: string;
24
+ kind: "root" | "directory" | "programmatic";
25
+ path?: string;
26
+ skill?: ProgrammaticAppSkill;
27
+ }
28
+ export interface AppSkillSourceRegistration {
29
+ readonly id: string;
30
+ readonly kind: RegisteredAppSkillSource["kind"];
31
+ dispose(): void;
32
+ }
33
+ export type AppSkillRegistryChange = {
34
+ registrationId: string;
35
+ ownerPluginId: string;
36
+ reason: "registered" | "unregistered";
37
+ };
38
+ export interface AppSlashCommandContext {
39
+ arguments: string;
40
+ conversationId?: string;
41
+ }
42
+ export type AppSlashCommandDispatch = {
43
+ kind: "host";
44
+ execute: (context: AppSlashCommandContext) => Promise<void> | void;
45
+ } | {
46
+ kind: "tool";
47
+ tool: string;
48
+ argMode?: "raw" | "parsed";
49
+ } | {
50
+ kind: "skill";
51
+ skill: string;
52
+ } | {
53
+ kind: "prompt";
54
+ template: string;
55
+ };
56
+ export interface AppSlashCommandDefinition {
57
+ name: string;
58
+ description: string;
59
+ aliases?: string[];
60
+ argumentHint?: string;
61
+ dispatch: AppSlashCommandDispatch;
62
+ }
63
+ export interface RegisteredAppSlashCommand {
64
+ registrationId: string;
65
+ ownerPluginId: string;
66
+ command: AppSlashCommandDefinition;
67
+ }
68
+ export interface AppSlashCommandRegistration {
69
+ readonly id: string;
70
+ readonly name: string;
71
+ dispose(): void;
72
+ }
73
+ export type AppSlashCommandRegistryChange = {
74
+ registrationId: string;
75
+ name: string;
76
+ ownerPluginId: string;
77
+ reason: "registered" | "unregistered";
78
+ };
79
+ export declare function assertSkillRelativePath(path: string, label: string): string;
80
+ /** Transport-neutral registry for plugin-owned skill sources. */
81
+ export declare class AppSkillRegistry extends EventDispatcher<{
82
+ changed: [change: AppSkillRegistryChange];
83
+ }> {
84
+ #private;
85
+ private readonly sources;
86
+ registerRoot(owner: AppSkillOwner, path: string): AppSkillSourceRegistration;
87
+ registerDirectory(owner: AppSkillOwner, path: string): AppSkillSourceRegistration;
88
+ registerSkill(owner: AppSkillOwner, skill: ProgrammaticAppSkill): AppSkillSourceRegistration;
89
+ list(): RegisteredAppSkillSource[];
90
+ }
91
+ /** Transport-neutral registry for plugin-owned composer slash commands. */
92
+ export declare class AppSlashCommandRegistry extends EventDispatcher<{
93
+ changed: [change: AppSlashCommandRegistryChange];
94
+ }> {
95
+ private readonly commands;
96
+ register(owner: AppSkillOwner, command: AppSlashCommandDefinition): AppSlashCommandRegistration;
97
+ get(name: string): RegisteredAppSlashCommand | undefined;
98
+ list(): RegisteredAppSlashCommand[];
99
+ }