@notis_ai/cli 0.2.0-beta.137.1 → 0.2.0-beta.144.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 (294) hide show
  1. package/README.md +82 -20
  2. package/dist/agent-hooks/notis-agent-hook.mjs +19750 -0
  3. package/{skills → dist/base-skills}/notis-apps/SKILL.md +84 -53
  4. package/{skills → dist/base-skills}/notis-cli/SKILL.md +9 -9
  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 +38 -17
  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 +871 -387
  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-roots.js +284 -0
  25. package/src/runtime/app-dev-server.js +212 -22
  26. package/src/runtime/app-dev-sessions.js +105 -145
  27. package/src/runtime/app-platform.js +1291 -165
  28. package/src/runtime/app-registry-scaffolds.js +367 -0
  29. package/src/runtime/base-skills.d.ts +20 -0
  30. package/src/runtime/base-skills.js +167 -0
  31. package/src/runtime/login-listener.js +15 -0
  32. package/src/runtime/oauth.js +1506 -141
  33. package/src/runtime/output.js +7 -0
  34. package/src/runtime/ports.js +16 -0
  35. package/src/runtime/profiles.js +0 -5
  36. package/src/runtime/skill-sync/cloud-client.ts +96 -0
  37. package/src/runtime/skill-sync/index.ts +644 -0
  38. package/src/runtime/skill-sync/local-scanner.ts +1046 -0
  39. package/src/runtime/skill-sync/symlink-manager.ts +383 -0
  40. package/src/runtime/skill-sync/sync-plan.ts +22 -0
  41. package/src/runtime/skill-sync/types.ts +103 -0
  42. package/src/runtime/skill-sync/write-cloud-skill.ts +50 -0
  43. package/src/runtime/store-screenshot.js +6 -1
  44. package/src/runtime/sync-skills.d.ts +37 -0
  45. package/src/runtime/sync-skills.js +215 -0
  46. package/template/app/layout.tsx +5 -1
  47. package/template/notis.config.ts +1 -0
  48. package/template/packages/sdk/package.json +2 -1
  49. package/template/packages/sdk/src/components/MarkdownEditor.tsx +121 -0
  50. package/template/packages/sdk/src/components/MultiSelectActionBar.tsx +37 -119
  51. package/template/packages/sdk/src/components/MultiSelectCheckbox.tsx +5 -1
  52. package/template/packages/sdk/src/components/MultiSelectDragOverlay.tsx +1 -1
  53. package/template/packages/sdk/src/components/NotisSelectionBoundary.tsx +55 -0
  54. package/template/packages/sdk/src/components/ShortcutHints.tsx +56 -0
  55. package/template/packages/sdk/src/config.ts +19 -0
  56. package/template/packages/sdk/src/hooks/useActiveResource.ts +19 -0
  57. package/template/packages/sdk/src/hooks/useCollectionInteractions.ts +709 -0
  58. package/template/packages/sdk/src/hooks/useHandover.ts +3 -0
  59. package/template/packages/sdk/src/hooks/useMultiSelect.ts +44 -482
  60. package/template/packages/sdk/src/hooks/useTool.ts +5 -4
  61. package/template/packages/sdk/src/index.ts +47 -2
  62. package/template/packages/sdk/src/interactions/actions.ts +46 -0
  63. package/template/packages/sdk/src/interactions/shortcuts.tsx +628 -0
  64. package/template/packages/sdk/src/interactions.ts +41 -0
  65. package/template/packages/sdk/src/provider.tsx +2 -1
  66. package/template/packages/sdk/src/runtime.ts +85 -3
  67. package/dist/scaffolds/notis-database/CHANGELOG.md +0 -5
  68. package/dist/scaffolds/notis-database/app/globals.css +0 -44
  69. package/dist/scaffolds/notis-database/app/layout.tsx +0 -6
  70. package/dist/scaffolds/notis-database/app/page.tsx +0 -1088
  71. package/dist/scaffolds/notis-database/components/ui/badge.tsx +0 -28
  72. package/dist/scaffolds/notis-database/components/ui/button.tsx +0 -53
  73. package/dist/scaffolds/notis-database/components/ui/card.tsx +0 -56
  74. package/dist/scaffolds/notis-database/components/ui/table.tsx +0 -120
  75. package/dist/scaffolds/notis-database/components.json +0 -20
  76. package/dist/scaffolds/notis-database/index.html +0 -12
  77. package/dist/scaffolds/notis-database/lib/types.ts +0 -132
  78. package/dist/scaffolds/notis-database/lib/utils.ts +0 -6
  79. package/dist/scaffolds/notis-database/metadata/screenshot-1.png +0 -0
  80. package/dist/scaffolds/notis-database/metadata/screenshot-2.png +0 -0
  81. package/dist/scaffolds/notis-database/metadata/screenshot-3.png +0 -0
  82. package/dist/scaffolds/notis-database/metadata/screenshot-4.png +0 -0
  83. package/dist/scaffolds/notis-database/metadata/screenshot-5.png +0 -0
  84. package/dist/scaffolds/notis-database/metadata/screenshot-fixtures.json +0 -1839
  85. package/dist/scaffolds/notis-database/notis.config.ts +0 -73
  86. package/dist/scaffolds/notis-database/package-lock.json +0 -3935
  87. package/dist/scaffolds/notis-database/package.json +0 -32
  88. package/dist/scaffolds/notis-database/packages/sdk/package.json +0 -36
  89. package/dist/scaffolds/notis-database/packages/sdk/src/components/DocumentEditor.tsx +0 -93
  90. package/dist/scaffolds/notis-database/packages/sdk/src/components/Markdown.tsx +0 -60
  91. package/dist/scaffolds/notis-database/packages/sdk/src/components/MultiSelectActionBar.tsx +0 -278
  92. package/dist/scaffolds/notis-database/packages/sdk/src/components/MultiSelectCheckbox.tsx +0 -91
  93. package/dist/scaffolds/notis-database/packages/sdk/src/components/MultiSelectDragOverlay.tsx +0 -39
  94. package/dist/scaffolds/notis-database/packages/sdk/src/config.ts +0 -234
  95. package/dist/scaffolds/notis-database/packages/sdk/src/documents.ts +0 -250
  96. package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useBackend.ts +0 -41
  97. package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useCloudComputer.ts +0 -97
  98. package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useDatabaseSchema.ts +0 -85
  99. package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useDatabaseSubscription.ts +0 -76
  100. package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useDocument.ts +0 -78
  101. package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useDocuments.ts +0 -121
  102. package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useHandover.ts +0 -75
  103. package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useMultiSelect.ts +0 -539
  104. package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useNotis.ts +0 -34
  105. package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useNotisNavigation.ts +0 -49
  106. package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useTool.ts +0 -64
  107. package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useTools.ts +0 -56
  108. package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useTopBarSearch.ts +0 -73
  109. package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useUpsertDocument.ts +0 -95
  110. package/dist/scaffolds/notis-database/packages/sdk/src/index.ts +0 -100
  111. package/dist/scaffolds/notis-database/packages/sdk/src/provider.tsx +0 -43
  112. package/dist/scaffolds/notis-database/packages/sdk/src/runtime.ts +0 -351
  113. package/dist/scaffolds/notis-database/packages/sdk/src/styles.css +0 -186
  114. package/dist/scaffolds/notis-database/packages/sdk/src/ui.ts +0 -15
  115. package/dist/scaffolds/notis-database/packages/sdk/src/vite.ts +0 -56
  116. package/dist/scaffolds/notis-database/packages/sdk/tsconfig.json +0 -15
  117. package/dist/scaffolds/notis-database/postcss.config.mjs +0 -8
  118. package/dist/scaffolds/notis-database/src/dev-main.tsx +0 -23
  119. package/dist/scaffolds/notis-database/src/mock-runtime.ts +0 -561
  120. package/dist/scaffolds/notis-database/tailwind.config.ts +0 -59
  121. package/dist/scaffolds/notis-database/tsconfig.json +0 -23
  122. package/dist/scaffolds/notis-database/vite.config.ts +0 -22
  123. package/dist/scaffolds/notis-journal/CHANGELOG.md +0 -29
  124. package/dist/scaffolds/notis-journal/app/globals.css +0 -37
  125. package/dist/scaffolds/notis-journal/app/insights/page.tsx +0 -513
  126. package/dist/scaffolds/notis-journal/app/journal-core.tsx +0 -362
  127. package/dist/scaffolds/notis-journal/app/journal-ui.tsx +0 -337
  128. package/dist/scaffolds/notis-journal/app/layout.tsx +0 -6
  129. package/dist/scaffolds/notis-journal/app/page.tsx +0 -486
  130. package/dist/scaffolds/notis-journal/components/ui/badge.tsx +0 -28
  131. package/dist/scaffolds/notis-journal/components/ui/button.tsx +0 -53
  132. package/dist/scaffolds/notis-journal/components/ui/card.tsx +0 -56
  133. package/dist/scaffolds/notis-journal/components.json +0 -20
  134. package/dist/scaffolds/notis-journal/index.html +0 -12
  135. package/dist/scaffolds/notis-journal/lib/utils.ts +0 -6
  136. package/dist/scaffolds/notis-journal/metadata/screenshot-1.png +0 -0
  137. package/dist/scaffolds/notis-journal/metadata/screenshot-2.png +0 -0
  138. package/dist/scaffolds/notis-journal/metadata/screenshot-3.png +0 -0
  139. package/dist/scaffolds/notis-journal/metadata/screenshot-4.png +0 -0
  140. package/dist/scaffolds/notis-journal/metadata/screenshot-5.png +0 -0
  141. package/dist/scaffolds/notis-journal/metadata/screenshot-6.png +0 -0
  142. package/dist/scaffolds/notis-journal/metadata/screenshot-fixtures.json +0 -132
  143. package/dist/scaffolds/notis-journal/notis.config.ts +0 -93
  144. package/dist/scaffolds/notis-journal/package-lock.json +0 -4615
  145. package/dist/scaffolds/notis-journal/package.json +0 -34
  146. package/dist/scaffolds/notis-journal/packages/sdk/package.json +0 -36
  147. package/dist/scaffolds/notis-journal/packages/sdk/src/components/DocumentEditor.tsx +0 -93
  148. package/dist/scaffolds/notis-journal/packages/sdk/src/components/Markdown.tsx +0 -60
  149. package/dist/scaffolds/notis-journal/packages/sdk/src/components/MultiSelectActionBar.tsx +0 -278
  150. package/dist/scaffolds/notis-journal/packages/sdk/src/components/MultiSelectCheckbox.tsx +0 -91
  151. package/dist/scaffolds/notis-journal/packages/sdk/src/components/MultiSelectDragOverlay.tsx +0 -39
  152. package/dist/scaffolds/notis-journal/packages/sdk/src/config.ts +0 -234
  153. package/dist/scaffolds/notis-journal/packages/sdk/src/documents.ts +0 -250
  154. package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useBackend.ts +0 -41
  155. package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useCloudComputer.ts +0 -97
  156. package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useDatabaseSchema.ts +0 -85
  157. package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useDatabaseSubscription.ts +0 -76
  158. package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useDocument.ts +0 -78
  159. package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useDocuments.ts +0 -121
  160. package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useHandover.ts +0 -75
  161. package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useMultiSelect.ts +0 -539
  162. package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useNotis.ts +0 -34
  163. package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useNotisNavigation.ts +0 -49
  164. package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useTool.ts +0 -64
  165. package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useTools.ts +0 -56
  166. package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useTopBarSearch.ts +0 -73
  167. package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useUpsertDocument.ts +0 -95
  168. package/dist/scaffolds/notis-journal/packages/sdk/src/index.ts +0 -100
  169. package/dist/scaffolds/notis-journal/packages/sdk/src/provider.tsx +0 -43
  170. package/dist/scaffolds/notis-journal/packages/sdk/src/runtime.ts +0 -351
  171. package/dist/scaffolds/notis-journal/packages/sdk/src/styles.css +0 -186
  172. package/dist/scaffolds/notis-journal/packages/sdk/src/ui.ts +0 -15
  173. package/dist/scaffolds/notis-journal/packages/sdk/src/vite.ts +0 -56
  174. package/dist/scaffolds/notis-journal/packages/sdk/tsconfig.json +0 -15
  175. package/dist/scaffolds/notis-journal/postcss.config.mjs +0 -8
  176. package/dist/scaffolds/notis-journal/skills/journal-onboarding/SKILL.md +0 -120
  177. package/dist/scaffolds/notis-journal/src/dev-main.tsx +0 -58
  178. package/dist/scaffolds/notis-journal/src/mock-runtime.ts +0 -199
  179. package/dist/scaffolds/notis-journal/tailwind.config.ts +0 -58
  180. package/dist/scaffolds/notis-journal/tsconfig.json +0 -23
  181. package/dist/scaffolds/notis-journal/vite.config.ts +0 -10
  182. package/dist/scaffolds/notis-notes/CHANGELOG.md +0 -5
  183. package/dist/scaffolds/notis-notes/app/globals.css +0 -3
  184. package/dist/scaffolds/notis-notes/app/layout.tsx +0 -6
  185. package/dist/scaffolds/notis-notes/app/page.tsx +0 -1943
  186. package/dist/scaffolds/notis-notes/app/phosphor-icons.ts +0 -596
  187. package/dist/scaffolds/notis-notes/components/ui/badge.tsx +0 -28
  188. package/dist/scaffolds/notis-notes/components/ui/button.tsx +0 -53
  189. package/dist/scaffolds/notis-notes/components/ui/card.tsx +0 -56
  190. package/dist/scaffolds/notis-notes/components.json +0 -20
  191. package/dist/scaffolds/notis-notes/lib/utils.ts +0 -6
  192. package/dist/scaffolds/notis-notes/lib/visible-properties.ts +0 -144
  193. package/dist/scaffolds/notis-notes/metadata/screenshot-1.png +0 -0
  194. package/dist/scaffolds/notis-notes/metadata/screenshot-2.png +0 -0
  195. package/dist/scaffolds/notis-notes/metadata/screenshot-3.png +0 -0
  196. package/dist/scaffolds/notis-notes/metadata/screenshot-4.png +0 -0
  197. package/dist/scaffolds/notis-notes/metadata/screenshot-5.png +0 -0
  198. package/dist/scaffolds/notis-notes/metadata/screenshot-fixtures.json +0 -752
  199. package/dist/scaffolds/notis-notes/notis.config.ts +0 -80
  200. package/dist/scaffolds/notis-notes/package-lock.json +0 -4636
  201. package/dist/scaffolds/notis-notes/package.json +0 -35
  202. package/dist/scaffolds/notis-notes/packages/sdk/package.json +0 -36
  203. package/dist/scaffolds/notis-notes/packages/sdk/src/components/DocumentEditor.tsx +0 -93
  204. package/dist/scaffolds/notis-notes/packages/sdk/src/components/Markdown.tsx +0 -60
  205. package/dist/scaffolds/notis-notes/packages/sdk/src/components/MultiSelectActionBar.tsx +0 -278
  206. package/dist/scaffolds/notis-notes/packages/sdk/src/components/MultiSelectCheckbox.tsx +0 -91
  207. package/dist/scaffolds/notis-notes/packages/sdk/src/components/MultiSelectDragOverlay.tsx +0 -39
  208. package/dist/scaffolds/notis-notes/packages/sdk/src/config.ts +0 -234
  209. package/dist/scaffolds/notis-notes/packages/sdk/src/documents.ts +0 -250
  210. package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useBackend.ts +0 -41
  211. package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useCloudComputer.ts +0 -97
  212. package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useDatabaseSchema.ts +0 -85
  213. package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useDatabaseSubscription.ts +0 -76
  214. package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useDocument.ts +0 -78
  215. package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useDocuments.ts +0 -121
  216. package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useHandover.ts +0 -75
  217. package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useMultiSelect.ts +0 -539
  218. package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useNotis.ts +0 -34
  219. package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useNotisNavigation.ts +0 -49
  220. package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useTool.ts +0 -64
  221. package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useTools.ts +0 -56
  222. package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useTopBarSearch.ts +0 -73
  223. package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useUpsertDocument.ts +0 -95
  224. package/dist/scaffolds/notis-notes/packages/sdk/src/index.ts +0 -100
  225. package/dist/scaffolds/notis-notes/packages/sdk/src/provider.tsx +0 -43
  226. package/dist/scaffolds/notis-notes/packages/sdk/src/runtime.ts +0 -351
  227. package/dist/scaffolds/notis-notes/packages/sdk/src/styles.css +0 -186
  228. package/dist/scaffolds/notis-notes/packages/sdk/src/ui.ts +0 -15
  229. package/dist/scaffolds/notis-notes/packages/sdk/src/vite.ts +0 -56
  230. package/dist/scaffolds/notis-notes/packages/sdk/tsconfig.json +0 -15
  231. package/dist/scaffolds/notis-notes/postcss.config.mjs +0 -8
  232. package/dist/scaffolds/notis-notes/tailwind.config.ts +0 -58
  233. package/dist/scaffolds/notis-notes/tsconfig.json +0 -23
  234. package/dist/scaffolds/notis-notes/vite.config.ts +0 -10
  235. package/dist/scaffolds/notis-random/CHANGELOG.md +0 -15
  236. package/dist/scaffolds/notis-random/README.md +0 -33
  237. package/dist/scaffolds/notis-random/app/globals.css +0 -11
  238. package/dist/scaffolds/notis-random/app/history/page.tsx +0 -67
  239. package/dist/scaffolds/notis-random/app/layout.tsx +0 -7
  240. package/dist/scaffolds/notis-random/app/page.tsx +0 -289
  241. package/dist/scaffolds/notis-random/components/ui/button.tsx +0 -50
  242. package/dist/scaffolds/notis-random/components/ui/card.tsx +0 -16
  243. package/dist/scaffolds/notis-random/components/ui/input.tsx +0 -23
  244. package/dist/scaffolds/notis-random/components.json +0 -20
  245. package/dist/scaffolds/notis-random/index.html +0 -12
  246. package/dist/scaffolds/notis-random/lib/notis-tools.ts +0 -128
  247. package/dist/scaffolds/notis-random/lib/rng.ts +0 -202
  248. package/dist/scaffolds/notis-random/lib/roll-record.ts +0 -189
  249. package/dist/scaffolds/notis-random/lib/utils.ts +0 -25
  250. package/dist/scaffolds/notis-random/metadata/screenshot-1.png +0 -0
  251. package/dist/scaffolds/notis-random/metadata/screenshot-2.png +0 -0
  252. package/dist/scaffolds/notis-random/metadata/screenshot-3.png +0 -0
  253. package/dist/scaffolds/notis-random/metadata/screenshot-4.png +0 -0
  254. package/dist/scaffolds/notis-random/metadata/screenshot-5.png +0 -0
  255. package/dist/scaffolds/notis-random/metadata/screenshot-fixtures.json +0 -753
  256. package/dist/scaffolds/notis-random/notis.config.ts +0 -86
  257. package/dist/scaffolds/notis-random/package-lock.json +0 -4513
  258. package/dist/scaffolds/notis-random/package.json +0 -36
  259. package/dist/scaffolds/notis-random/packages/sdk/package.json +0 -36
  260. package/dist/scaffolds/notis-random/packages/sdk/src/components/DocumentEditor.tsx +0 -93
  261. package/dist/scaffolds/notis-random/packages/sdk/src/components/Markdown.tsx +0 -60
  262. package/dist/scaffolds/notis-random/packages/sdk/src/components/MultiSelectActionBar.tsx +0 -278
  263. package/dist/scaffolds/notis-random/packages/sdk/src/components/MultiSelectCheckbox.tsx +0 -91
  264. package/dist/scaffolds/notis-random/packages/sdk/src/components/MultiSelectDragOverlay.tsx +0 -39
  265. package/dist/scaffolds/notis-random/packages/sdk/src/config.ts +0 -234
  266. package/dist/scaffolds/notis-random/packages/sdk/src/documents.ts +0 -250
  267. package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useBackend.ts +0 -41
  268. package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useCloudComputer.ts +0 -97
  269. package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useDatabaseSchema.ts +0 -85
  270. package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useDatabaseSubscription.ts +0 -76
  271. package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useDocument.ts +0 -78
  272. package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useDocuments.ts +0 -121
  273. package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useHandover.ts +0 -75
  274. package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useMultiSelect.ts +0 -539
  275. package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useNotis.ts +0 -34
  276. package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useNotisNavigation.ts +0 -49
  277. package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useTool.ts +0 -64
  278. package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useTools.ts +0 -56
  279. package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useTopBarSearch.ts +0 -73
  280. package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useUpsertDocument.ts +0 -95
  281. package/dist/scaffolds/notis-random/packages/sdk/src/index.ts +0 -100
  282. package/dist/scaffolds/notis-random/packages/sdk/src/provider.tsx +0 -43
  283. package/dist/scaffolds/notis-random/packages/sdk/src/runtime.ts +0 -351
  284. package/dist/scaffolds/notis-random/packages/sdk/src/styles.css +0 -186
  285. package/dist/scaffolds/notis-random/packages/sdk/src/ui.ts +0 -15
  286. package/dist/scaffolds/notis-random/packages/sdk/src/vite.ts +0 -56
  287. package/dist/scaffolds/notis-random/packages/sdk/tsconfig.json +0 -15
  288. package/dist/scaffolds/notis-random/postcss.config.mjs +0 -6
  289. package/dist/scaffolds/notis-random/src/dev-main.tsx +0 -70
  290. package/dist/scaffolds/notis-random/src/mock-runtime.ts +0 -129
  291. package/dist/scaffolds/notis-random/tailwind.config.ts +0 -50
  292. package/dist/scaffolds/notis-random/tsconfig.json +0 -23
  293. package/dist/scaffolds/notis-random/vite.config.ts +0 -11
  294. 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
- }