@notis_ai/cli 0.2.14 → 0.2.15
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.
- package/README.md +82 -20
- package/dist/agent-hooks/notis-agent-hook.mjs +19750 -0
- package/{skills → dist/base-skills}/notis-apps/SKILL.md +84 -53
- package/{skills → dist/base-skills}/notis-cli/SKILL.md +9 -9
- package/dist/base-skills/notis-query/SKILL.md +705 -0
- package/dist/skill-sync/index.js +1528 -0
- package/dist/skill-sync/index.js.map +7 -0
- package/package.json +5 -2
- package/skills/notis-apps/cli.md +38 -17
- package/skills/notis-cli/AGENT_INSTRUCTIONS.md +39 -0
- package/skills/notis-onboarding/BRIEF.md +16 -0
- package/src/agent-hook-entry.js +5 -0
- package/src/cli.js +23 -14
- package/src/command-specs/agents.js +392 -0
- package/src/command-specs/apps.js +871 -387
- package/src/command-specs/auth.js +63 -10
- package/src/command-specs/index.js +6 -0
- package/src/command-specs/onboarding.js +69 -5
- package/src/command-specs/skills.js +56 -0
- package/src/runtime/agent-memory-state.js +126 -0
- package/src/runtime/agent-setup.js +383 -0
- package/src/runtime/app-dev-consumers.js +154 -0
- package/src/runtime/app-dev-host-lock.js +80 -0
- package/src/runtime/app-dev-roots.js +284 -0
- package/src/runtime/app-dev-server.js +212 -22
- package/src/runtime/app-dev-sessions.js +105 -145
- package/src/runtime/app-platform.js +1291 -165
- package/src/runtime/app-registry-scaffolds.js +367 -0
- package/src/runtime/base-skills.d.ts +20 -0
- package/src/runtime/base-skills.js +167 -0
- package/src/runtime/login-listener.js +15 -0
- package/src/runtime/oauth.js +1506 -141
- package/src/runtime/output.js +7 -0
- package/src/runtime/ports.js +16 -0
- package/src/runtime/profiles.js +0 -5
- package/src/runtime/skill-sync/cloud-client.ts +96 -0
- package/src/runtime/skill-sync/index.ts +644 -0
- package/src/runtime/skill-sync/local-scanner.ts +1046 -0
- package/src/runtime/skill-sync/symlink-manager.ts +383 -0
- package/src/runtime/skill-sync/sync-plan.ts +22 -0
- package/src/runtime/skill-sync/types.ts +103 -0
- package/src/runtime/skill-sync/write-cloud-skill.ts +50 -0
- package/src/runtime/store-screenshot.js +6 -1
- package/src/runtime/sync-skills.d.ts +37 -0
- package/src/runtime/sync-skills.js +215 -0
- package/template/app/layout.tsx +5 -1
- package/template/notis.config.ts +1 -0
- package/template/packages/sdk/package.json +2 -1
- package/template/packages/sdk/src/components/DocumentEditor.tsx +13 -3
- package/template/packages/sdk/src/components/MarkdownEditor.tsx +121 -0
- package/template/packages/sdk/src/components/MultiSelectActionBar.tsx +37 -119
- package/template/packages/sdk/src/components/MultiSelectCheckbox.tsx +5 -1
- package/template/packages/sdk/src/components/MultiSelectDragOverlay.tsx +1 -1
- package/template/packages/sdk/src/components/NotisSelectionBoundary.tsx +55 -0
- package/template/packages/sdk/src/components/ShortcutHints.tsx +56 -0
- package/template/packages/sdk/src/config.ts +19 -0
- package/template/packages/sdk/src/documents.ts +7 -1
- package/template/packages/sdk/src/hooks/useActiveResource.ts +19 -0
- package/template/packages/sdk/src/hooks/useCollectionInteractions.ts +709 -0
- package/template/packages/sdk/src/hooks/useHandover.ts +3 -0
- package/template/packages/sdk/src/hooks/useMultiSelect.ts +44 -482
- package/template/packages/sdk/src/hooks/useTool.ts +5 -4
- package/template/packages/sdk/src/index.ts +47 -2
- package/template/packages/sdk/src/interactions/actions.ts +46 -0
- package/template/packages/sdk/src/interactions/shortcuts.tsx +628 -0
- package/template/packages/sdk/src/interactions.ts +41 -0
- package/template/packages/sdk/src/provider.tsx +2 -1
- package/template/packages/sdk/src/runtime.ts +89 -4
- package/dist/scaffolds/notis-database/CHANGELOG.md +0 -5
- package/dist/scaffolds/notis-database/app/globals.css +0 -44
- package/dist/scaffolds/notis-database/app/layout.tsx +0 -6
- package/dist/scaffolds/notis-database/app/page.tsx +0 -1088
- package/dist/scaffolds/notis-database/components/ui/badge.tsx +0 -28
- package/dist/scaffolds/notis-database/components/ui/button.tsx +0 -53
- package/dist/scaffolds/notis-database/components/ui/card.tsx +0 -56
- package/dist/scaffolds/notis-database/components/ui/table.tsx +0 -120
- package/dist/scaffolds/notis-database/components.json +0 -20
- package/dist/scaffolds/notis-database/index.html +0 -12
- package/dist/scaffolds/notis-database/lib/types.ts +0 -132
- package/dist/scaffolds/notis-database/lib/utils.ts +0 -6
- package/dist/scaffolds/notis-database/metadata/screenshot-1.png +0 -0
- package/dist/scaffolds/notis-database/metadata/screenshot-2.png +0 -0
- package/dist/scaffolds/notis-database/metadata/screenshot-3.png +0 -0
- package/dist/scaffolds/notis-database/metadata/screenshot-4.png +0 -0
- package/dist/scaffolds/notis-database/metadata/screenshot-5.png +0 -0
- package/dist/scaffolds/notis-database/metadata/screenshot-fixtures.json +0 -1839
- package/dist/scaffolds/notis-database/notis.config.ts +0 -73
- package/dist/scaffolds/notis-database/package-lock.json +0 -3935
- package/dist/scaffolds/notis-database/package.json +0 -32
- package/dist/scaffolds/notis-database/packages/sdk/package.json +0 -36
- package/dist/scaffolds/notis-database/packages/sdk/src/components/DocumentEditor.tsx +0 -93
- package/dist/scaffolds/notis-database/packages/sdk/src/components/Markdown.tsx +0 -60
- package/dist/scaffolds/notis-database/packages/sdk/src/components/MultiSelectActionBar.tsx +0 -278
- package/dist/scaffolds/notis-database/packages/sdk/src/components/MultiSelectCheckbox.tsx +0 -91
- package/dist/scaffolds/notis-database/packages/sdk/src/components/MultiSelectDragOverlay.tsx +0 -39
- package/dist/scaffolds/notis-database/packages/sdk/src/config.ts +0 -234
- package/dist/scaffolds/notis-database/packages/sdk/src/documents.ts +0 -250
- package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useBackend.ts +0 -41
- package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useCloudComputer.ts +0 -97
- package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useDatabaseSchema.ts +0 -85
- package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useDatabaseSubscription.ts +0 -76
- package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useDocument.ts +0 -78
- package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useDocuments.ts +0 -121
- package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useHandover.ts +0 -75
- package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useMultiSelect.ts +0 -539
- package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useNotis.ts +0 -34
- package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useNotisNavigation.ts +0 -49
- package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useTool.ts +0 -64
- package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useTools.ts +0 -56
- package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useTopBarSearch.ts +0 -73
- package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useUpsertDocument.ts +0 -95
- package/dist/scaffolds/notis-database/packages/sdk/src/index.ts +0 -100
- package/dist/scaffolds/notis-database/packages/sdk/src/provider.tsx +0 -43
- package/dist/scaffolds/notis-database/packages/sdk/src/runtime.ts +0 -351
- package/dist/scaffolds/notis-database/packages/sdk/src/styles.css +0 -186
- package/dist/scaffolds/notis-database/packages/sdk/src/ui.ts +0 -15
- package/dist/scaffolds/notis-database/packages/sdk/src/vite.ts +0 -56
- package/dist/scaffolds/notis-database/packages/sdk/tsconfig.json +0 -15
- package/dist/scaffolds/notis-database/postcss.config.mjs +0 -8
- package/dist/scaffolds/notis-database/src/dev-main.tsx +0 -23
- package/dist/scaffolds/notis-database/src/mock-runtime.ts +0 -561
- package/dist/scaffolds/notis-database/tailwind.config.ts +0 -59
- package/dist/scaffolds/notis-database/tsconfig.json +0 -23
- package/dist/scaffolds/notis-database/vite.config.ts +0 -22
- package/dist/scaffolds/notis-journal/CHANGELOG.md +0 -29
- package/dist/scaffolds/notis-journal/app/globals.css +0 -37
- package/dist/scaffolds/notis-journal/app/insights/page.tsx +0 -513
- package/dist/scaffolds/notis-journal/app/journal-core.tsx +0 -362
- package/dist/scaffolds/notis-journal/app/journal-ui.tsx +0 -337
- package/dist/scaffolds/notis-journal/app/layout.tsx +0 -6
- package/dist/scaffolds/notis-journal/app/page.tsx +0 -486
- package/dist/scaffolds/notis-journal/components/ui/badge.tsx +0 -28
- package/dist/scaffolds/notis-journal/components/ui/button.tsx +0 -53
- package/dist/scaffolds/notis-journal/components/ui/card.tsx +0 -56
- package/dist/scaffolds/notis-journal/components.json +0 -20
- package/dist/scaffolds/notis-journal/index.html +0 -12
- package/dist/scaffolds/notis-journal/lib/utils.ts +0 -6
- package/dist/scaffolds/notis-journal/metadata/screenshot-1.png +0 -0
- package/dist/scaffolds/notis-journal/metadata/screenshot-2.png +0 -0
- package/dist/scaffolds/notis-journal/metadata/screenshot-3.png +0 -0
- package/dist/scaffolds/notis-journal/metadata/screenshot-4.png +0 -0
- package/dist/scaffolds/notis-journal/metadata/screenshot-5.png +0 -0
- package/dist/scaffolds/notis-journal/metadata/screenshot-6.png +0 -0
- package/dist/scaffolds/notis-journal/metadata/screenshot-fixtures.json +0 -132
- package/dist/scaffolds/notis-journal/notis.config.ts +0 -93
- package/dist/scaffolds/notis-journal/package-lock.json +0 -4615
- package/dist/scaffolds/notis-journal/package.json +0 -34
- package/dist/scaffolds/notis-journal/packages/sdk/package.json +0 -36
- package/dist/scaffolds/notis-journal/packages/sdk/src/components/DocumentEditor.tsx +0 -93
- package/dist/scaffolds/notis-journal/packages/sdk/src/components/Markdown.tsx +0 -60
- package/dist/scaffolds/notis-journal/packages/sdk/src/components/MultiSelectActionBar.tsx +0 -278
- package/dist/scaffolds/notis-journal/packages/sdk/src/components/MultiSelectCheckbox.tsx +0 -91
- package/dist/scaffolds/notis-journal/packages/sdk/src/components/MultiSelectDragOverlay.tsx +0 -39
- package/dist/scaffolds/notis-journal/packages/sdk/src/config.ts +0 -234
- package/dist/scaffolds/notis-journal/packages/sdk/src/documents.ts +0 -250
- package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useBackend.ts +0 -41
- package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useCloudComputer.ts +0 -97
- package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useDatabaseSchema.ts +0 -85
- package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useDatabaseSubscription.ts +0 -76
- package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useDocument.ts +0 -78
- package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useDocuments.ts +0 -121
- package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useHandover.ts +0 -75
- package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useMultiSelect.ts +0 -539
- package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useNotis.ts +0 -34
- package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useNotisNavigation.ts +0 -49
- package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useTool.ts +0 -64
- package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useTools.ts +0 -56
- package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useTopBarSearch.ts +0 -73
- package/dist/scaffolds/notis-journal/packages/sdk/src/hooks/useUpsertDocument.ts +0 -95
- package/dist/scaffolds/notis-journal/packages/sdk/src/index.ts +0 -100
- package/dist/scaffolds/notis-journal/packages/sdk/src/provider.tsx +0 -43
- package/dist/scaffolds/notis-journal/packages/sdk/src/runtime.ts +0 -351
- package/dist/scaffolds/notis-journal/packages/sdk/src/styles.css +0 -186
- package/dist/scaffolds/notis-journal/packages/sdk/src/ui.ts +0 -15
- package/dist/scaffolds/notis-journal/packages/sdk/src/vite.ts +0 -56
- package/dist/scaffolds/notis-journal/packages/sdk/tsconfig.json +0 -15
- package/dist/scaffolds/notis-journal/postcss.config.mjs +0 -8
- package/dist/scaffolds/notis-journal/skills/journal-onboarding/SKILL.md +0 -120
- package/dist/scaffolds/notis-journal/src/dev-main.tsx +0 -58
- package/dist/scaffolds/notis-journal/src/mock-runtime.ts +0 -199
- package/dist/scaffolds/notis-journal/tailwind.config.ts +0 -58
- package/dist/scaffolds/notis-journal/tsconfig.json +0 -23
- package/dist/scaffolds/notis-journal/vite.config.ts +0 -10
- package/dist/scaffolds/notis-notes/CHANGELOG.md +0 -5
- package/dist/scaffolds/notis-notes/app/globals.css +0 -3
- package/dist/scaffolds/notis-notes/app/layout.tsx +0 -6
- package/dist/scaffolds/notis-notes/app/page.tsx +0 -1943
- package/dist/scaffolds/notis-notes/app/phosphor-icons.ts +0 -596
- package/dist/scaffolds/notis-notes/components/ui/badge.tsx +0 -28
- package/dist/scaffolds/notis-notes/components/ui/button.tsx +0 -53
- package/dist/scaffolds/notis-notes/components/ui/card.tsx +0 -56
- package/dist/scaffolds/notis-notes/components.json +0 -20
- package/dist/scaffolds/notis-notes/lib/utils.ts +0 -6
- package/dist/scaffolds/notis-notes/lib/visible-properties.ts +0 -144
- package/dist/scaffolds/notis-notes/metadata/screenshot-1.png +0 -0
- package/dist/scaffolds/notis-notes/metadata/screenshot-2.png +0 -0
- package/dist/scaffolds/notis-notes/metadata/screenshot-3.png +0 -0
- package/dist/scaffolds/notis-notes/metadata/screenshot-4.png +0 -0
- package/dist/scaffolds/notis-notes/metadata/screenshot-5.png +0 -0
- package/dist/scaffolds/notis-notes/metadata/screenshot-fixtures.json +0 -752
- package/dist/scaffolds/notis-notes/notis.config.ts +0 -80
- package/dist/scaffolds/notis-notes/package-lock.json +0 -4636
- package/dist/scaffolds/notis-notes/package.json +0 -35
- package/dist/scaffolds/notis-notes/packages/sdk/package.json +0 -36
- package/dist/scaffolds/notis-notes/packages/sdk/src/components/DocumentEditor.tsx +0 -93
- package/dist/scaffolds/notis-notes/packages/sdk/src/components/Markdown.tsx +0 -60
- package/dist/scaffolds/notis-notes/packages/sdk/src/components/MultiSelectActionBar.tsx +0 -278
- package/dist/scaffolds/notis-notes/packages/sdk/src/components/MultiSelectCheckbox.tsx +0 -91
- package/dist/scaffolds/notis-notes/packages/sdk/src/components/MultiSelectDragOverlay.tsx +0 -39
- package/dist/scaffolds/notis-notes/packages/sdk/src/config.ts +0 -234
- package/dist/scaffolds/notis-notes/packages/sdk/src/documents.ts +0 -250
- package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useBackend.ts +0 -41
- package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useCloudComputer.ts +0 -97
- package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useDatabaseSchema.ts +0 -85
- package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useDatabaseSubscription.ts +0 -76
- package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useDocument.ts +0 -78
- package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useDocuments.ts +0 -121
- package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useHandover.ts +0 -75
- package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useMultiSelect.ts +0 -539
- package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useNotis.ts +0 -34
- package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useNotisNavigation.ts +0 -49
- package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useTool.ts +0 -64
- package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useTools.ts +0 -56
- package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useTopBarSearch.ts +0 -73
- package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useUpsertDocument.ts +0 -95
- package/dist/scaffolds/notis-notes/packages/sdk/src/index.ts +0 -100
- package/dist/scaffolds/notis-notes/packages/sdk/src/provider.tsx +0 -43
- package/dist/scaffolds/notis-notes/packages/sdk/src/runtime.ts +0 -351
- package/dist/scaffolds/notis-notes/packages/sdk/src/styles.css +0 -186
- package/dist/scaffolds/notis-notes/packages/sdk/src/ui.ts +0 -15
- package/dist/scaffolds/notis-notes/packages/sdk/src/vite.ts +0 -56
- package/dist/scaffolds/notis-notes/packages/sdk/tsconfig.json +0 -15
- package/dist/scaffolds/notis-notes/postcss.config.mjs +0 -8
- package/dist/scaffolds/notis-notes/tailwind.config.ts +0 -58
- package/dist/scaffolds/notis-notes/tsconfig.json +0 -23
- package/dist/scaffolds/notis-notes/vite.config.ts +0 -10
- package/dist/scaffolds/notis-random/CHANGELOG.md +0 -15
- package/dist/scaffolds/notis-random/README.md +0 -33
- package/dist/scaffolds/notis-random/app/globals.css +0 -11
- package/dist/scaffolds/notis-random/app/history/page.tsx +0 -67
- package/dist/scaffolds/notis-random/app/layout.tsx +0 -7
- package/dist/scaffolds/notis-random/app/page.tsx +0 -289
- package/dist/scaffolds/notis-random/components/ui/button.tsx +0 -50
- package/dist/scaffolds/notis-random/components/ui/card.tsx +0 -16
- package/dist/scaffolds/notis-random/components/ui/input.tsx +0 -23
- package/dist/scaffolds/notis-random/components.json +0 -20
- package/dist/scaffolds/notis-random/index.html +0 -12
- package/dist/scaffolds/notis-random/lib/notis-tools.ts +0 -128
- package/dist/scaffolds/notis-random/lib/rng.ts +0 -202
- package/dist/scaffolds/notis-random/lib/roll-record.ts +0 -189
- package/dist/scaffolds/notis-random/lib/utils.ts +0 -25
- package/dist/scaffolds/notis-random/metadata/screenshot-1.png +0 -0
- package/dist/scaffolds/notis-random/metadata/screenshot-2.png +0 -0
- package/dist/scaffolds/notis-random/metadata/screenshot-3.png +0 -0
- package/dist/scaffolds/notis-random/metadata/screenshot-4.png +0 -0
- package/dist/scaffolds/notis-random/metadata/screenshot-5.png +0 -0
- package/dist/scaffolds/notis-random/metadata/screenshot-fixtures.json +0 -753
- package/dist/scaffolds/notis-random/notis.config.ts +0 -86
- package/dist/scaffolds/notis-random/package-lock.json +0 -4513
- package/dist/scaffolds/notis-random/package.json +0 -36
- package/dist/scaffolds/notis-random/packages/sdk/package.json +0 -36
- package/dist/scaffolds/notis-random/packages/sdk/src/components/DocumentEditor.tsx +0 -93
- package/dist/scaffolds/notis-random/packages/sdk/src/components/Markdown.tsx +0 -60
- package/dist/scaffolds/notis-random/packages/sdk/src/components/MultiSelectActionBar.tsx +0 -278
- package/dist/scaffolds/notis-random/packages/sdk/src/components/MultiSelectCheckbox.tsx +0 -91
- package/dist/scaffolds/notis-random/packages/sdk/src/components/MultiSelectDragOverlay.tsx +0 -39
- package/dist/scaffolds/notis-random/packages/sdk/src/config.ts +0 -234
- package/dist/scaffolds/notis-random/packages/sdk/src/documents.ts +0 -250
- package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useBackend.ts +0 -41
- package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useCloudComputer.ts +0 -97
- package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useDatabaseSchema.ts +0 -85
- package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useDatabaseSubscription.ts +0 -76
- package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useDocument.ts +0 -78
- package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useDocuments.ts +0 -121
- package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useHandover.ts +0 -75
- package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useMultiSelect.ts +0 -539
- package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useNotis.ts +0 -34
- package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useNotisNavigation.ts +0 -49
- package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useTool.ts +0 -64
- package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useTools.ts +0 -56
- package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useTopBarSearch.ts +0 -73
- package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useUpsertDocument.ts +0 -95
- package/dist/scaffolds/notis-random/packages/sdk/src/index.ts +0 -100
- package/dist/scaffolds/notis-random/packages/sdk/src/provider.tsx +0 -43
- package/dist/scaffolds/notis-random/packages/sdk/src/runtime.ts +0 -351
- package/dist/scaffolds/notis-random/packages/sdk/src/styles.css +0 -186
- package/dist/scaffolds/notis-random/packages/sdk/src/ui.ts +0 -15
- package/dist/scaffolds/notis-random/packages/sdk/src/vite.ts +0 -56
- package/dist/scaffolds/notis-random/packages/sdk/tsconfig.json +0 -15
- package/dist/scaffolds/notis-random/postcss.config.mjs +0 -6
- package/dist/scaffolds/notis-random/src/dev-main.tsx +0 -70
- package/dist/scaffolds/notis-random/src/mock-runtime.ts +0 -129
- package/dist/scaffolds/notis-random/tailwind.config.ts +0 -50
- package/dist/scaffolds/notis-random/tsconfig.json +0 -23
- package/dist/scaffolds/notis-random/vite.config.ts +0 -11
- 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
|
-
}
|