@notis_ai/cli 0.2.14 → 0.2.16

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 (299) hide show
  1. package/README.md +83 -21
  2. package/dist/agent-hooks/notis-agent-hook.mjs +20168 -0
  3. package/{skills → dist/base-skills}/notis-apps/SKILL.md +167 -72
  4. package/{skills → dist/base-skills}/notis-cli/SKILL.md +86 -28
  5. package/dist/base-skills/notis-query/SKILL.md +705 -0
  6. package/dist/skill-sync/index.js +1528 -0
  7. package/dist/skill-sync/index.js.map +7 -0
  8. package/package.json +5 -2
  9. package/skills/notis-apps/cli.md +39 -18
  10. package/skills/notis-cli/AGENT_INSTRUCTIONS.md +39 -0
  11. package/skills/notis-onboarding/BRIEF.md +16 -0
  12. package/src/agent-hook-entry.js +5 -0
  13. package/src/cli.js +23 -14
  14. package/src/command-specs/agents.js +392 -0
  15. package/src/command-specs/apps.js +1021 -424
  16. package/src/command-specs/auth.js +63 -10
  17. package/src/command-specs/index.js +6 -0
  18. package/src/command-specs/onboarding.js +69 -5
  19. package/src/command-specs/skills.js +56 -0
  20. package/src/runtime/agent-memory-state.js +126 -0
  21. package/src/runtime/agent-setup.js +383 -0
  22. package/src/runtime/app-dev-consumers.js +154 -0
  23. package/src/runtime/app-dev-host-lock.js +80 -0
  24. package/src/runtime/app-dev-process-identity.js +111 -0
  25. package/src/runtime/app-dev-roots.js +284 -0
  26. package/src/runtime/app-dev-server.js +447 -29
  27. package/src/runtime/app-dev-sessions.js +105 -145
  28. package/src/runtime/app-platform.js +1314 -166
  29. package/src/runtime/app-registry-scaffolds.js +367 -0
  30. package/src/runtime/base-skills.d.ts +20 -0
  31. package/src/runtime/base-skills.js +167 -0
  32. package/src/runtime/login-listener.js +15 -0
  33. package/src/runtime/oauth.js +1506 -141
  34. package/src/runtime/output.js +7 -0
  35. package/src/runtime/ports.js +16 -0
  36. package/src/runtime/profiles.js +19 -16
  37. package/src/runtime/skill-sync/cloud-client.ts +96 -0
  38. package/src/runtime/skill-sync/index.ts +644 -0
  39. package/src/runtime/skill-sync/local-scanner.ts +1046 -0
  40. package/src/runtime/skill-sync/symlink-manager.ts +383 -0
  41. package/src/runtime/skill-sync/sync-plan.ts +22 -0
  42. package/src/runtime/skill-sync/types.ts +103 -0
  43. package/src/runtime/skill-sync/write-cloud-skill.ts +50 -0
  44. package/src/runtime/store-screenshot.js +6 -1
  45. package/src/runtime/sync-skills.d.ts +37 -0
  46. package/src/runtime/sync-skills.js +231 -0
  47. package/template/app/layout.tsx +5 -1
  48. package/template/notis.config.ts +1 -0
  49. package/template/packages/sdk/package.json +2 -1
  50. package/template/packages/sdk/src/components/DocumentEditor.tsx +13 -3
  51. package/template/packages/sdk/src/components/MarkdownEditor.tsx +121 -0
  52. package/template/packages/sdk/src/components/MultiSelectActionBar.tsx +43 -119
  53. package/template/packages/sdk/src/components/MultiSelectCheckbox.tsx +5 -1
  54. package/template/packages/sdk/src/components/MultiSelectDragOverlay.tsx +1 -1
  55. package/template/packages/sdk/src/components/NotisSelectionBoundary.tsx +55 -0
  56. package/template/packages/sdk/src/components/ShortcutHints.tsx +56 -0
  57. package/template/packages/sdk/src/config.ts +25 -0
  58. package/template/packages/sdk/src/documents.ts +7 -1
  59. package/template/packages/sdk/src/hooks/useActiveResource.ts +19 -0
  60. package/template/packages/sdk/src/hooks/useCollectionInteractions.ts +726 -0
  61. package/template/packages/sdk/src/hooks/useHandover.ts +3 -0
  62. package/template/packages/sdk/src/hooks/useMultiSelect.ts +44 -482
  63. package/template/packages/sdk/src/hooks/useNotis.ts +3 -0
  64. package/template/packages/sdk/src/hooks/useNotisNavigation.ts +7 -4
  65. package/template/packages/sdk/src/hooks/useTool.ts +5 -4
  66. package/template/packages/sdk/src/index.ts +47 -2
  67. package/template/packages/sdk/src/interactions/actions.ts +46 -0
  68. package/template/packages/sdk/src/interactions/shortcuts.tsx +634 -0
  69. package/template/packages/sdk/src/interactions.ts +41 -0
  70. package/template/packages/sdk/src/provider.tsx +2 -1
  71. package/template/packages/sdk/src/runtime.ts +92 -4
  72. package/dist/scaffolds/notis-database/CHANGELOG.md +0 -5
  73. package/dist/scaffolds/notis-database/app/globals.css +0 -44
  74. package/dist/scaffolds/notis-database/app/layout.tsx +0 -6
  75. package/dist/scaffolds/notis-database/app/page.tsx +0 -1088
  76. package/dist/scaffolds/notis-database/components/ui/badge.tsx +0 -28
  77. package/dist/scaffolds/notis-database/components/ui/button.tsx +0 -53
  78. package/dist/scaffolds/notis-database/components/ui/card.tsx +0 -56
  79. package/dist/scaffolds/notis-database/components/ui/table.tsx +0 -120
  80. package/dist/scaffolds/notis-database/components.json +0 -20
  81. package/dist/scaffolds/notis-database/index.html +0 -12
  82. package/dist/scaffolds/notis-database/lib/types.ts +0 -132
  83. package/dist/scaffolds/notis-database/lib/utils.ts +0 -6
  84. package/dist/scaffolds/notis-database/metadata/screenshot-1.png +0 -0
  85. package/dist/scaffolds/notis-database/metadata/screenshot-2.png +0 -0
  86. package/dist/scaffolds/notis-database/metadata/screenshot-3.png +0 -0
  87. package/dist/scaffolds/notis-database/metadata/screenshot-4.png +0 -0
  88. package/dist/scaffolds/notis-database/metadata/screenshot-5.png +0 -0
  89. package/dist/scaffolds/notis-database/metadata/screenshot-fixtures.json +0 -1839
  90. package/dist/scaffolds/notis-database/notis.config.ts +0 -73
  91. package/dist/scaffolds/notis-database/package-lock.json +0 -3935
  92. package/dist/scaffolds/notis-database/package.json +0 -32
  93. package/dist/scaffolds/notis-database/packages/sdk/package.json +0 -36
  94. package/dist/scaffolds/notis-database/packages/sdk/src/components/DocumentEditor.tsx +0 -93
  95. package/dist/scaffolds/notis-database/packages/sdk/src/components/Markdown.tsx +0 -60
  96. package/dist/scaffolds/notis-database/packages/sdk/src/components/MultiSelectActionBar.tsx +0 -278
  97. package/dist/scaffolds/notis-database/packages/sdk/src/components/MultiSelectCheckbox.tsx +0 -91
  98. package/dist/scaffolds/notis-database/packages/sdk/src/components/MultiSelectDragOverlay.tsx +0 -39
  99. package/dist/scaffolds/notis-database/packages/sdk/src/config.ts +0 -234
  100. package/dist/scaffolds/notis-database/packages/sdk/src/documents.ts +0 -250
  101. package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useBackend.ts +0 -41
  102. package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useCloudComputer.ts +0 -97
  103. package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useDatabaseSchema.ts +0 -85
  104. package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useDatabaseSubscription.ts +0 -76
  105. package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useDocument.ts +0 -78
  106. package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useDocuments.ts +0 -121
  107. package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useHandover.ts +0 -75
  108. package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useMultiSelect.ts +0 -539
  109. package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useNotis.ts +0 -34
  110. package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useNotisNavigation.ts +0 -49
  111. package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useTool.ts +0 -64
  112. package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useTools.ts +0 -56
  113. package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useTopBarSearch.ts +0 -73
  114. package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useUpsertDocument.ts +0 -95
  115. package/dist/scaffolds/notis-database/packages/sdk/src/index.ts +0 -100
  116. package/dist/scaffolds/notis-database/packages/sdk/src/provider.tsx +0 -43
  117. package/dist/scaffolds/notis-database/packages/sdk/src/runtime.ts +0 -351
  118. package/dist/scaffolds/notis-database/packages/sdk/src/styles.css +0 -186
  119. package/dist/scaffolds/notis-database/packages/sdk/src/ui.ts +0 -15
  120. package/dist/scaffolds/notis-database/packages/sdk/src/vite.ts +0 -56
  121. package/dist/scaffolds/notis-database/packages/sdk/tsconfig.json +0 -15
  122. package/dist/scaffolds/notis-database/postcss.config.mjs +0 -8
  123. package/dist/scaffolds/notis-database/src/dev-main.tsx +0 -23
  124. package/dist/scaffolds/notis-database/src/mock-runtime.ts +0 -561
  125. package/dist/scaffolds/notis-database/tailwind.config.ts +0 -59
  126. package/dist/scaffolds/notis-database/tsconfig.json +0 -23
  127. package/dist/scaffolds/notis-database/vite.config.ts +0 -22
  128. package/dist/scaffolds/notis-journal/CHANGELOG.md +0 -29
  129. package/dist/scaffolds/notis-journal/app/globals.css +0 -37
  130. package/dist/scaffolds/notis-journal/app/insights/page.tsx +0 -513
  131. package/dist/scaffolds/notis-journal/app/journal-core.tsx +0 -362
  132. package/dist/scaffolds/notis-journal/app/journal-ui.tsx +0 -337
  133. package/dist/scaffolds/notis-journal/app/layout.tsx +0 -6
  134. package/dist/scaffolds/notis-journal/app/page.tsx +0 -486
  135. package/dist/scaffolds/notis-journal/components/ui/badge.tsx +0 -28
  136. package/dist/scaffolds/notis-journal/components/ui/button.tsx +0 -53
  137. package/dist/scaffolds/notis-journal/components/ui/card.tsx +0 -56
  138. package/dist/scaffolds/notis-journal/components.json +0 -20
  139. package/dist/scaffolds/notis-journal/index.html +0 -12
  140. package/dist/scaffolds/notis-journal/lib/utils.ts +0 -6
  141. package/dist/scaffolds/notis-journal/metadata/screenshot-1.png +0 -0
  142. package/dist/scaffolds/notis-journal/metadata/screenshot-2.png +0 -0
  143. package/dist/scaffolds/notis-journal/metadata/screenshot-3.png +0 -0
  144. package/dist/scaffolds/notis-journal/metadata/screenshot-4.png +0 -0
  145. package/dist/scaffolds/notis-journal/metadata/screenshot-5.png +0 -0
  146. package/dist/scaffolds/notis-journal/metadata/screenshot-6.png +0 -0
  147. package/dist/scaffolds/notis-journal/metadata/screenshot-fixtures.json +0 -132
  148. package/dist/scaffolds/notis-journal/notis.config.ts +0 -93
  149. package/dist/scaffolds/notis-journal/package-lock.json +0 -4615
  150. package/dist/scaffolds/notis-journal/package.json +0 -34
  151. package/dist/scaffolds/notis-journal/packages/sdk/package.json +0 -36
  152. package/dist/scaffolds/notis-journal/packages/sdk/src/components/DocumentEditor.tsx +0 -93
  153. package/dist/scaffolds/notis-journal/packages/sdk/src/components/Markdown.tsx +0 -60
  154. package/dist/scaffolds/notis-journal/packages/sdk/src/components/MultiSelectActionBar.tsx +0 -278
  155. package/dist/scaffolds/notis-journal/packages/sdk/src/components/MultiSelectCheckbox.tsx +0 -91
  156. package/dist/scaffolds/notis-journal/packages/sdk/src/components/MultiSelectDragOverlay.tsx +0 -39
  157. package/dist/scaffolds/notis-journal/packages/sdk/src/config.ts +0 -234
  158. package/dist/scaffolds/notis-journal/packages/sdk/src/documents.ts +0 -250
  159. package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useBackend.ts +0 -41
  160. package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useCloudComputer.ts +0 -97
  161. package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useDatabaseSchema.ts +0 -85
  162. package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useDatabaseSubscription.ts +0 -76
  163. package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useDocument.ts +0 -78
  164. package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useDocuments.ts +0 -121
  165. package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useHandover.ts +0 -75
  166. package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useMultiSelect.ts +0 -539
  167. package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useNotis.ts +0 -34
  168. package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useNotisNavigation.ts +0 -49
  169. package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useTool.ts +0 -64
  170. package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useTools.ts +0 -56
  171. package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useTopBarSearch.ts +0 -73
  172. package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useUpsertDocument.ts +0 -95
  173. package/dist/scaffolds/notis-journal/packages/sdk/src/index.ts +0 -100
  174. package/dist/scaffolds/notis-journal/packages/sdk/src/provider.tsx +0 -43
  175. package/dist/scaffolds/notis-journal/packages/sdk/src/runtime.ts +0 -351
  176. package/dist/scaffolds/notis-journal/packages/sdk/src/styles.css +0 -186
  177. package/dist/scaffolds/notis-journal/packages/sdk/src/ui.ts +0 -15
  178. package/dist/scaffolds/notis-journal/packages/sdk/src/vite.ts +0 -56
  179. package/dist/scaffolds/notis-journal/packages/sdk/tsconfig.json +0 -15
  180. package/dist/scaffolds/notis-journal/postcss.config.mjs +0 -8
  181. package/dist/scaffolds/notis-journal/skills/journal-onboarding/SKILL.md +0 -120
  182. package/dist/scaffolds/notis-journal/src/dev-main.tsx +0 -58
  183. package/dist/scaffolds/notis-journal/src/mock-runtime.ts +0 -199
  184. package/dist/scaffolds/notis-journal/tailwind.config.ts +0 -58
  185. package/dist/scaffolds/notis-journal/tsconfig.json +0 -23
  186. package/dist/scaffolds/notis-journal/vite.config.ts +0 -10
  187. package/dist/scaffolds/notis-notes/CHANGELOG.md +0 -5
  188. package/dist/scaffolds/notis-notes/app/globals.css +0 -3
  189. package/dist/scaffolds/notis-notes/app/layout.tsx +0 -6
  190. package/dist/scaffolds/notis-notes/app/page.tsx +0 -1943
  191. package/dist/scaffolds/notis-notes/app/phosphor-icons.ts +0 -596
  192. package/dist/scaffolds/notis-notes/components/ui/badge.tsx +0 -28
  193. package/dist/scaffolds/notis-notes/components/ui/button.tsx +0 -53
  194. package/dist/scaffolds/notis-notes/components/ui/card.tsx +0 -56
  195. package/dist/scaffolds/notis-notes/components.json +0 -20
  196. package/dist/scaffolds/notis-notes/lib/utils.ts +0 -6
  197. package/dist/scaffolds/notis-notes/lib/visible-properties.ts +0 -144
  198. package/dist/scaffolds/notis-notes/metadata/screenshot-1.png +0 -0
  199. package/dist/scaffolds/notis-notes/metadata/screenshot-2.png +0 -0
  200. package/dist/scaffolds/notis-notes/metadata/screenshot-3.png +0 -0
  201. package/dist/scaffolds/notis-notes/metadata/screenshot-4.png +0 -0
  202. package/dist/scaffolds/notis-notes/metadata/screenshot-5.png +0 -0
  203. package/dist/scaffolds/notis-notes/metadata/screenshot-fixtures.json +0 -752
  204. package/dist/scaffolds/notis-notes/notis.config.ts +0 -80
  205. package/dist/scaffolds/notis-notes/package-lock.json +0 -4636
  206. package/dist/scaffolds/notis-notes/package.json +0 -35
  207. package/dist/scaffolds/notis-notes/packages/sdk/package.json +0 -36
  208. package/dist/scaffolds/notis-notes/packages/sdk/src/components/DocumentEditor.tsx +0 -93
  209. package/dist/scaffolds/notis-notes/packages/sdk/src/components/Markdown.tsx +0 -60
  210. package/dist/scaffolds/notis-notes/packages/sdk/src/components/MultiSelectActionBar.tsx +0 -278
  211. package/dist/scaffolds/notis-notes/packages/sdk/src/components/MultiSelectCheckbox.tsx +0 -91
  212. package/dist/scaffolds/notis-notes/packages/sdk/src/components/MultiSelectDragOverlay.tsx +0 -39
  213. package/dist/scaffolds/notis-notes/packages/sdk/src/config.ts +0 -234
  214. package/dist/scaffolds/notis-notes/packages/sdk/src/documents.ts +0 -250
  215. package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useBackend.ts +0 -41
  216. package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useCloudComputer.ts +0 -97
  217. package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useDatabaseSchema.ts +0 -85
  218. package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useDatabaseSubscription.ts +0 -76
  219. package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useDocument.ts +0 -78
  220. package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useDocuments.ts +0 -121
  221. package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useHandover.ts +0 -75
  222. package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useMultiSelect.ts +0 -539
  223. package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useNotis.ts +0 -34
  224. package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useNotisNavigation.ts +0 -49
  225. package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useTool.ts +0 -64
  226. package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useTools.ts +0 -56
  227. package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useTopBarSearch.ts +0 -73
  228. package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useUpsertDocument.ts +0 -95
  229. package/dist/scaffolds/notis-notes/packages/sdk/src/index.ts +0 -100
  230. package/dist/scaffolds/notis-notes/packages/sdk/src/provider.tsx +0 -43
  231. package/dist/scaffolds/notis-notes/packages/sdk/src/runtime.ts +0 -351
  232. package/dist/scaffolds/notis-notes/packages/sdk/src/styles.css +0 -186
  233. package/dist/scaffolds/notis-notes/packages/sdk/src/ui.ts +0 -15
  234. package/dist/scaffolds/notis-notes/packages/sdk/src/vite.ts +0 -56
  235. package/dist/scaffolds/notis-notes/packages/sdk/tsconfig.json +0 -15
  236. package/dist/scaffolds/notis-notes/postcss.config.mjs +0 -8
  237. package/dist/scaffolds/notis-notes/tailwind.config.ts +0 -58
  238. package/dist/scaffolds/notis-notes/tsconfig.json +0 -23
  239. package/dist/scaffolds/notis-notes/vite.config.ts +0 -10
  240. package/dist/scaffolds/notis-random/CHANGELOG.md +0 -15
  241. package/dist/scaffolds/notis-random/README.md +0 -33
  242. package/dist/scaffolds/notis-random/app/globals.css +0 -11
  243. package/dist/scaffolds/notis-random/app/history/page.tsx +0 -67
  244. package/dist/scaffolds/notis-random/app/layout.tsx +0 -7
  245. package/dist/scaffolds/notis-random/app/page.tsx +0 -289
  246. package/dist/scaffolds/notis-random/components/ui/button.tsx +0 -50
  247. package/dist/scaffolds/notis-random/components/ui/card.tsx +0 -16
  248. package/dist/scaffolds/notis-random/components/ui/input.tsx +0 -23
  249. package/dist/scaffolds/notis-random/components.json +0 -20
  250. package/dist/scaffolds/notis-random/index.html +0 -12
  251. package/dist/scaffolds/notis-random/lib/notis-tools.ts +0 -128
  252. package/dist/scaffolds/notis-random/lib/rng.ts +0 -202
  253. package/dist/scaffolds/notis-random/lib/roll-record.ts +0 -189
  254. package/dist/scaffolds/notis-random/lib/utils.ts +0 -25
  255. package/dist/scaffolds/notis-random/metadata/screenshot-1.png +0 -0
  256. package/dist/scaffolds/notis-random/metadata/screenshot-2.png +0 -0
  257. package/dist/scaffolds/notis-random/metadata/screenshot-3.png +0 -0
  258. package/dist/scaffolds/notis-random/metadata/screenshot-4.png +0 -0
  259. package/dist/scaffolds/notis-random/metadata/screenshot-5.png +0 -0
  260. package/dist/scaffolds/notis-random/metadata/screenshot-fixtures.json +0 -753
  261. package/dist/scaffolds/notis-random/notis.config.ts +0 -86
  262. package/dist/scaffolds/notis-random/package-lock.json +0 -4513
  263. package/dist/scaffolds/notis-random/package.json +0 -36
  264. package/dist/scaffolds/notis-random/packages/sdk/package.json +0 -36
  265. package/dist/scaffolds/notis-random/packages/sdk/src/components/DocumentEditor.tsx +0 -93
  266. package/dist/scaffolds/notis-random/packages/sdk/src/components/Markdown.tsx +0 -60
  267. package/dist/scaffolds/notis-random/packages/sdk/src/components/MultiSelectActionBar.tsx +0 -278
  268. package/dist/scaffolds/notis-random/packages/sdk/src/components/MultiSelectCheckbox.tsx +0 -91
  269. package/dist/scaffolds/notis-random/packages/sdk/src/components/MultiSelectDragOverlay.tsx +0 -39
  270. package/dist/scaffolds/notis-random/packages/sdk/src/config.ts +0 -234
  271. package/dist/scaffolds/notis-random/packages/sdk/src/documents.ts +0 -250
  272. package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useBackend.ts +0 -41
  273. package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useCloudComputer.ts +0 -97
  274. package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useDatabaseSchema.ts +0 -85
  275. package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useDatabaseSubscription.ts +0 -76
  276. package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useDocument.ts +0 -78
  277. package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useDocuments.ts +0 -121
  278. package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useHandover.ts +0 -75
  279. package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useMultiSelect.ts +0 -539
  280. package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useNotis.ts +0 -34
  281. package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useNotisNavigation.ts +0 -49
  282. package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useTool.ts +0 -64
  283. package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useTools.ts +0 -56
  284. package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useTopBarSearch.ts +0 -73
  285. package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useUpsertDocument.ts +0 -95
  286. package/dist/scaffolds/notis-random/packages/sdk/src/index.ts +0 -100
  287. package/dist/scaffolds/notis-random/packages/sdk/src/provider.tsx +0 -43
  288. package/dist/scaffolds/notis-random/packages/sdk/src/runtime.ts +0 -351
  289. package/dist/scaffolds/notis-random/packages/sdk/src/styles.css +0 -186
  290. package/dist/scaffolds/notis-random/packages/sdk/src/ui.ts +0 -15
  291. package/dist/scaffolds/notis-random/packages/sdk/src/vite.ts +0 -56
  292. package/dist/scaffolds/notis-random/packages/sdk/tsconfig.json +0 -15
  293. package/dist/scaffolds/notis-random/postcss.config.mjs +0 -6
  294. package/dist/scaffolds/notis-random/src/dev-main.tsx +0 -70
  295. package/dist/scaffolds/notis-random/src/mock-runtime.ts +0 -129
  296. package/dist/scaffolds/notis-random/tailwind.config.ts +0 -50
  297. package/dist/scaffolds/notis-random/tsconfig.json +0 -23
  298. package/dist/scaffolds/notis-random/vite.config.ts +0 -11
  299. package/dist/scaffolds.json +0 -49
@@ -1,56 +0,0 @@
1
- 'use client';
2
-
3
- import { useEffect, useState } from 'react';
4
- import { useNotisRuntime } from '../provider';
5
- import type { ToolDescriptor } from '../runtime';
6
-
7
- interface UseToolsResult {
8
- tools: ToolDescriptor[];
9
- loading: boolean;
10
- error: Error | null;
11
- }
12
-
13
- /**
14
- * List all tools available to this app.
15
- *
16
- * ```tsx
17
- * const { tools, loading } = useTools();
18
- * ```
19
- */
20
- export function useTools(): UseToolsResult {
21
- const runtime = useNotisRuntime();
22
- const [tools, setTools] = useState<ToolDescriptor[]>([]);
23
- const [loading, setLoading] = useState(true);
24
- const [error, setError] = useState<Error | null>(null);
25
-
26
- useEffect(() => {
27
- if (!runtime) {
28
- setLoading(false);
29
- return;
30
- }
31
-
32
- let cancelled = false;
33
- setLoading(true);
34
-
35
- runtime
36
- .listTools()
37
- .then((result) => {
38
- if (!cancelled) {
39
- setTools(result);
40
- setLoading(false);
41
- }
42
- })
43
- .catch((err) => {
44
- if (!cancelled) {
45
- setError(err instanceof Error ? err : new Error(String(err)));
46
- setLoading(false);
47
- }
48
- });
49
-
50
- return () => {
51
- cancelled = true;
52
- };
53
- }, [runtime]);
54
-
55
- return { tools, loading, error };
56
- }
@@ -1,73 +0,0 @@
1
- 'use client';
2
-
3
- import { useCallback, useEffect } from 'react';
4
- import { useNotisRuntime } from '../provider';
5
-
6
- interface TopBarSearchOptions {
7
- /** Current value shown in the top bar search input. */
8
- value: string;
9
- /** Called when the user types in the top bar. */
10
- onChange: (value: string) => void;
11
- /** Placeholder text for the input. Defaults to 'Search…'. */
12
- placeholder?: string;
13
- /** Called when the user presses Enter. May return a Promise. */
14
- onSubmit?: () => void | Promise<void>;
15
- }
16
-
17
- interface TopBarSearchActions {
18
- /** Toggle the loader that replaces the search icon in the top bar. */
19
- setLoading: (loading: boolean) => void;
20
- }
21
-
22
- /**
23
- * Registers this view's search binding with the portal's top bar search input.
24
- * While the component is mounted, typing in the top bar calls `onChange`,
25
- * pressing Enter calls `onSubmit`, and the `value` prop drives the input.
26
- *
27
- * Call `setLoading(true)` to show the standard spinner in the top bar while a
28
- * query is running; `setLoading(false)` restores the search icon.
29
- *
30
- * Without a portal runtime, this hook is a safe no-op.
31
- *
32
- * ```tsx
33
- * const [q, setQ] = useState('');
34
- * const { setLoading } = useTopBarSearch({
35
- * value: q,
36
- * onChange: setQ,
37
- * placeholder: 'Search notes…',
38
- * onSubmit: async () => {
39
- * setLoading(true);
40
- * try { await runSearch(q); } finally { setLoading(false); }
41
- * },
42
- * });
43
- * ```
44
- *
45
- * Stabilize `onChange` and `onSubmit` with `useCallback` to avoid re-registering
46
- * on every render.
47
- */
48
- export function useTopBarSearch(opts: TopBarSearchOptions): TopBarSearchActions {
49
- const runtime = useNotisRuntime();
50
- const { value, onChange, placeholder, onSubmit } = opts;
51
-
52
- useEffect(() => {
53
- const register = runtime?.registerTopBarSearch;
54
- if (!register) return;
55
- register({ onChange, placeholder, onSubmit });
56
- return () => {
57
- register(null);
58
- };
59
- }, [runtime, onChange, placeholder, onSubmit]);
60
-
61
- useEffect(() => {
62
- runtime?.setTopBarSearchValue?.(value);
63
- }, [runtime, value]);
64
-
65
- const setLoading = useCallback(
66
- (loading: boolean) => {
67
- runtime?.setTopBarSearchLoading?.(loading);
68
- },
69
- [runtime],
70
- );
71
-
72
- return { setLoading };
73
- }
@@ -1,95 +0,0 @@
1
- 'use client';
2
-
3
- import { useCallback, useState } from 'react';
4
- import { useNotisRuntime } from '../provider';
5
- import { normalizeDocumentRecord } from '../documents';
6
- import type { DocumentRecord } from '../runtime';
7
-
8
- export interface UpsertDocumentArgs {
9
- documentId?: string;
10
- title?: string;
11
- /** Property values keyed by property name (already-plain values). */
12
- properties?: Record<string, unknown>;
13
- /** Markdown content; converted server-side to BlockNote. Exclusive with contentBlocknote. */
14
- contentMarkdown?: string | null;
15
- /** BlockNote block JSON. Exclusive with contentMarkdown. */
16
- contentBlocknote?: Array<Record<string, unknown>> | null;
17
- /** 'archive' soft-deletes the document (sets archived_at); 'restore' undoes it. */
18
- operation?: 'create' | 'update' | 'archive' | 'restore';
19
- }
20
-
21
- interface UpsertToolResult {
22
- status?: string;
23
- document?: unknown;
24
- message?: string;
25
- error?: string;
26
- }
27
-
28
- export interface UseUpsertDocumentResult {
29
- upsert: (args: UpsertDocumentArgs) => Promise<DocumentRecord>;
30
- loading: boolean;
31
- error: Error | null;
32
- }
33
-
34
- function upsertToolName(databaseSlug: string): string {
35
- return `LOCAL_NOTIS_DATABASE_UPSERT_${databaseSlug.replace(/-/g, '_').toUpperCase()}`;
36
- }
37
-
38
- function buildToolArgs(args: UpsertDocumentArgs): Record<string, unknown> {
39
- const payload: Record<string, unknown> = {};
40
- if (args.documentId) payload.document_id = args.documentId;
41
- if (typeof args.title === 'string') payload.title = args.title;
42
- if (args.properties) Object.assign(payload, args.properties);
43
- if ('contentMarkdown' in args) payload.content_markdown = args.contentMarkdown ?? '';
44
- if ('contentBlocknote' in args) payload.content_blocknote = args.contentBlocknote ?? null;
45
- if (args.operation) payload.operation = args.operation;
46
- return payload;
47
- }
48
-
49
- /**
50
- * Create/update/archive documents in a Notis database.
51
- *
52
- * ```tsx
53
- * const { upsert } = useUpsertDocument('journal_entries');
54
- * await upsert({ documentId, properties: { Mood: 'Great' }, contentMarkdown: reflection });
55
- * ```
56
- */
57
- export function useUpsertDocument(databaseSlug: string): UseUpsertDocumentResult {
58
- const runtime = useNotisRuntime();
59
- const [loading, setLoading] = useState(false);
60
- const [error, setError] = useState<Error | null>(null);
61
-
62
- const upsert = useCallback(
63
- async (args: UpsertDocumentArgs): Promise<DocumentRecord> => {
64
- if (!runtime) {
65
- throw new Error('Notis runtime not available. Ensure NotisProvider is mounted.');
66
- }
67
- if ('contentMarkdown' in args && 'contentBlocknote' in args) {
68
- throw new Error('Provide contentMarkdown or contentBlocknote, not both.');
69
- }
70
-
71
- setLoading(true);
72
- setError(null);
73
-
74
- try {
75
- const result = await runtime.callTool<UpsertToolResult>(
76
- upsertToolName(databaseSlug),
77
- buildToolArgs(args),
78
- );
79
- if (!result.document) {
80
- throw new Error(result.error ?? result.message ?? 'Failed to save document');
81
- }
82
- return normalizeDocumentRecord(result.document);
83
- } catch (err) {
84
- const e = err instanceof Error ? err : new Error(String(err));
85
- setError(e);
86
- throw e;
87
- } finally {
88
- setLoading(false);
89
- }
90
- },
91
- [runtime, databaseSlug],
92
- );
93
-
94
- return { upsert, loading, error };
95
- }
@@ -1,100 +0,0 @@
1
- /**
2
- * @notis/sdk - The Notis App SDK
3
- *
4
- * Public API for building Notis apps. Import hooks and the provider from
5
- * this entrypoint. For configuration, use `@notis/sdk/config`. For the
6
- * Vite config builder, use `@notis/sdk/vite`.
7
- */
8
-
9
- // Provider
10
- export { NotisProvider, useNotisRuntime } from './provider';
11
-
12
- // Hooks
13
- export { useNotis } from './hooks/useNotis';
14
- export { useDocuments } from './hooks/useDocuments';
15
- export type { UseDocumentsOptions, UseDocumentsResult } from './hooks/useDocuments';
16
- export { useDatabaseSubscription } from './hooks/useDatabaseSubscription';
17
- export type {
18
- UseDatabaseSubscriptionOptions,
19
- UseDatabaseSubscriptionResult,
20
- } from './hooks/useDatabaseSubscription';
21
- export { useDocument } from './hooks/useDocument';
22
- export type { UseDocumentOptions, UseDocumentResult } from './hooks/useDocument';
23
- export { useUpsertDocument } from './hooks/useUpsertDocument';
24
- export type { UpsertDocumentArgs, UseUpsertDocumentResult } from './hooks/useUpsertDocument';
25
- export { useDatabaseSchema } from './hooks/useDatabaseSchema';
26
- export type { UseDatabaseSchemaResult } from './hooks/useDatabaseSchema';
27
- export { useTool } from './hooks/useTool';
28
- export type { ToolCallState, UseToolResult } from './hooks/useTool';
29
- export { useTools } from './hooks/useTools';
30
- export { useHandover } from './hooks/useHandover';
31
- export type { UseHandoverResult } from './hooks/useHandover';
32
- export { useCloudComputer } from './hooks/useCloudComputer';
33
- export type { UseCloudComputerResult } from './hooks/useCloudComputer';
34
- export { useNotisNavigation } from './hooks/useNotisNavigation';
35
- export { useTopBarSearch } from './hooks/useTopBarSearch';
36
- export { useBackend } from './hooks/useBackend';
37
- export { useMultiSelect } from './hooks/useMultiSelect';
38
-
39
- // Documents & markdown
40
- export { Markdown } from './components/Markdown';
41
- export type { MarkdownProps } from './components/Markdown';
42
- export { DocumentEditor } from './components/DocumentEditor';
43
- export {
44
- asRecord,
45
- blockNoteToPlainText,
46
- extractRichText,
47
- getDocumentPreview,
48
- getRelationIds,
49
- getSecretValue,
50
- isPresentString,
51
- markdownToPlainText,
52
- normalizeDatabaseProperty,
53
- normalizeDocumentRecord,
54
- normalizePropertyValue,
55
- optionalString,
56
- } from './documents';
57
-
58
- // Multi-select components
59
- export { MultiSelectActionBar } from './components/MultiSelectActionBar';
60
- export { MultiSelectCheckbox } from './components/MultiSelectCheckbox';
61
- export { MultiSelectDragOverlay } from './components/MultiSelectDragOverlay';
62
- export type {
63
- DragRect,
64
- MultiSelectController,
65
- UseMultiSelectOptions,
66
- } from './hooks/useMultiSelect';
67
- export type {
68
- MultiSelectAction,
69
- MultiSelectActionBarProps,
70
- } from './components/MultiSelectActionBar';
71
- export type { MultiSelectCheckboxProps } from './components/MultiSelectCheckbox';
72
- export type { MultiSelectDragOverlayProps } from './components/MultiSelectDragOverlay';
73
-
74
- // Types (re-exported for convenience)
75
- export type {
76
- AppDescriptor,
77
- CloudComputerCliAuthFacts,
78
- CloudComputerFacts,
79
- CloudComputerSandboxFacts,
80
- CollectionItem,
81
- CollectionItemDetail,
82
- DatabaseDescriptor,
83
- DatabaseProperty,
84
- DatabasePropertyOption,
85
- DatabasePropertyType,
86
- DocumentContentType,
87
- DocumentRecord,
88
- HandoverPayload,
89
- HandoverResult,
90
- NotisDocumentEditorProps,
91
- NotisRuntime,
92
- NotisRuntimeContext,
93
- NotisRuntimeUI,
94
- QueryFilter,
95
- RouteDescriptor,
96
- SecretPropertyValue,
97
- SubscribeDatabaseOptions,
98
- ToolDescriptor,
99
- ToolInputSchema,
100
- } from './runtime';
@@ -1,43 +0,0 @@
1
- 'use client';
2
-
3
- import React, { createContext, useContext, type Context, type ReactNode } from 'react';
4
- import type { NotisRuntime } from './runtime';
5
-
6
- const NOTIS_CONTEXT_SYMBOL = Symbol.for('notis.sdk.runtime_context');
7
-
8
- type NotisContextGlobal = typeof globalThis & {
9
- [NOTIS_CONTEXT_SYMBOL]?: Context<NotisRuntime | null>;
10
- };
11
-
12
- function getNotisContext(): Context<NotisRuntime | null> {
13
- const scope = globalThis as NotisContextGlobal;
14
- if (!scope[NOTIS_CONTEXT_SYMBOL]) {
15
- scope[NOTIS_CONTEXT_SYMBOL] = createContext<NotisRuntime | null>(null);
16
- }
17
- return scope[NOTIS_CONTEXT_SYMBOL]!;
18
- }
19
-
20
- const NotisContext = getNotisContext();
21
-
22
- /**
23
- * Provides the Notis runtime context to all child components. The portal owns
24
- * the runtime and injects it into the rendered app tree.
25
- */
26
- export function NotisProvider({ children, runtime }: { children: ReactNode; runtime: NotisRuntime | null }) {
27
- if (runtime === undefined) {
28
- throw new Error('NotisProvider requires an explicit runtime prop.');
29
- }
30
- return (
31
- <NotisContext.Provider value={runtime}>
32
- {children}
33
- </NotisContext.Provider>
34
- );
35
- }
36
-
37
- /**
38
- * Returns the raw NotisRuntime or null if not yet available.
39
- * Prefer the typed hooks (useTool, useNotis, etc.) over this.
40
- */
41
- export function useNotisRuntime(): NotisRuntime | null {
42
- return useContext(NotisContext);
43
- }