@notis_ai/cli 0.2.6 → 0.2.8

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 (151) hide show
  1. package/README.md +17 -0
  2. package/dist/scaffolds/notis-database/app/page.tsx +38 -41
  3. package/dist/scaffolds/notis-database/lib/types.ts +5 -7
  4. package/dist/scaffolds/notis-database/metadata/screenshot-1.png +0 -0
  5. package/dist/scaffolds/notis-database/metadata/screenshot-2.png +0 -0
  6. package/dist/scaffolds/notis-database/metadata/screenshot-3.png +0 -0
  7. package/dist/scaffolds/notis-database/metadata/screenshot-4.png +0 -0
  8. package/dist/scaffolds/notis-database/metadata/screenshot-5.png +0 -0
  9. package/dist/scaffolds/notis-database/metadata/screenshot-fixtures.json +1839 -0
  10. package/dist/scaffolds/notis-database/notis.config.ts +48 -1
  11. package/dist/scaffolds/notis-database/package-lock.json +3935 -0
  12. package/dist/scaffolds/notis-database/package.json +2 -1
  13. package/dist/scaffolds/notis-database/packages/sdk/package.json +36 -0
  14. package/dist/scaffolds/notis-database/packages/sdk/src/components/DocumentEditor.tsx +93 -0
  15. package/dist/scaffolds/notis-database/packages/sdk/src/components/Markdown.tsx +60 -0
  16. package/dist/scaffolds/notis-database/packages/sdk/src/components/MultiSelectActionBar.tsx +278 -0
  17. package/dist/scaffolds/notis-database/packages/sdk/src/components/MultiSelectCheckbox.tsx +91 -0
  18. package/dist/scaffolds/notis-database/packages/sdk/src/components/MultiSelectDragOverlay.tsx +39 -0
  19. package/dist/scaffolds/notis-database/packages/sdk/src/config.ts +196 -0
  20. package/dist/scaffolds/notis-database/packages/sdk/src/documents.ts +229 -0
  21. package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useBackend.ts +41 -0
  22. package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useDatabaseSchema.ts +85 -0
  23. package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useDocument.ts +78 -0
  24. package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useDocuments.ts +121 -0
  25. package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useMultiSelect.ts +539 -0
  26. package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useNotis.ts +34 -0
  27. package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useNotisNavigation.ts +49 -0
  28. package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useTool.ts +64 -0
  29. package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useTools.ts +56 -0
  30. package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useTopBarSearch.ts +73 -0
  31. package/dist/scaffolds/notis-database/packages/sdk/src/hooks/useUpsertDocument.ts +95 -0
  32. package/dist/scaffolds/notis-database/packages/sdk/src/index.ts +83 -0
  33. package/dist/scaffolds/notis-database/packages/sdk/src/provider.tsx +43 -0
  34. package/dist/scaffolds/notis-database/packages/sdk/src/runtime.ts +220 -0
  35. package/dist/scaffolds/notis-database/packages/sdk/src/styles.css +186 -0
  36. package/dist/scaffolds/notis-database/packages/sdk/src/ui.ts +15 -0
  37. package/dist/scaffolds/notis-database/packages/sdk/src/vite.ts +56 -0
  38. package/dist/scaffolds/notis-database/packages/sdk/tsconfig.json +15 -0
  39. package/dist/scaffolds/notis-database/src/mock-runtime.ts +4 -1
  40. package/dist/scaffolds/notis-journal/CHANGELOG.md +4 -0
  41. package/dist/scaffolds/notis-journal/app/page.tsx +1 -0
  42. package/dist/scaffolds/notis-journal/package-lock.json +4615 -0
  43. package/dist/scaffolds/notis-journal/package.json +2 -2
  44. package/dist/scaffolds/notis-journal/packages/sdk/src/config.ts +52 -1
  45. package/dist/scaffolds/notis-notes/app/page.tsx +39 -46
  46. package/dist/scaffolds/notis-notes/app/phosphor-icons.ts +596 -0
  47. package/dist/scaffolds/notis-notes/lib/visible-properties.ts +144 -0
  48. package/dist/scaffolds/notis-notes/metadata/screenshot-1.png +0 -0
  49. package/dist/scaffolds/notis-notes/metadata/screenshot-2.png +0 -0
  50. package/dist/scaffolds/notis-notes/metadata/screenshot-3.png +0 -0
  51. package/dist/scaffolds/notis-notes/metadata/screenshot-4.png +0 -0
  52. package/dist/scaffolds/notis-notes/metadata/screenshot-5.png +0 -0
  53. package/dist/scaffolds/notis-notes/metadata/screenshot-fixtures.json +752 -0
  54. package/dist/scaffolds/notis-notes/notis.config.ts +48 -3
  55. package/dist/scaffolds/notis-notes/package-lock.json +4636 -0
  56. package/dist/scaffolds/notis-notes/package.json +7 -3
  57. package/dist/scaffolds/notis-notes/packages/sdk/package.json +36 -0
  58. package/dist/scaffolds/notis-notes/packages/sdk/src/components/DocumentEditor.tsx +93 -0
  59. package/dist/scaffolds/notis-notes/packages/sdk/src/components/Markdown.tsx +60 -0
  60. package/dist/scaffolds/notis-notes/packages/sdk/src/components/MultiSelectActionBar.tsx +278 -0
  61. package/dist/scaffolds/notis-notes/packages/sdk/src/components/MultiSelectCheckbox.tsx +91 -0
  62. package/dist/scaffolds/notis-notes/packages/sdk/src/components/MultiSelectDragOverlay.tsx +39 -0
  63. package/dist/scaffolds/notis-notes/packages/sdk/src/config.ts +196 -0
  64. package/dist/scaffolds/notis-notes/packages/sdk/src/documents.ts +229 -0
  65. package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useBackend.ts +41 -0
  66. package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useDatabaseSchema.ts +85 -0
  67. package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useDocument.ts +78 -0
  68. package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useDocuments.ts +121 -0
  69. package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useMultiSelect.ts +539 -0
  70. package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useNotis.ts +34 -0
  71. package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useNotisNavigation.ts +49 -0
  72. package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useTool.ts +64 -0
  73. package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useTools.ts +56 -0
  74. package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useTopBarSearch.ts +73 -0
  75. package/dist/scaffolds/notis-notes/packages/sdk/src/hooks/useUpsertDocument.ts +95 -0
  76. package/dist/scaffolds/notis-notes/packages/sdk/src/index.ts +83 -0
  77. package/dist/scaffolds/notis-notes/packages/sdk/src/provider.tsx +43 -0
  78. package/dist/scaffolds/notis-notes/packages/sdk/src/runtime.ts +220 -0
  79. package/dist/scaffolds/notis-notes/packages/sdk/src/styles.css +186 -0
  80. package/dist/scaffolds/notis-notes/packages/sdk/src/ui.ts +15 -0
  81. package/dist/scaffolds/notis-notes/packages/sdk/src/vite.ts +56 -0
  82. package/dist/scaffolds/notis-notes/packages/sdk/tsconfig.json +15 -0
  83. package/dist/scaffolds/notis-random/CHANGELOG.md +12 -2
  84. package/dist/scaffolds/notis-random/app/history/page.tsx +5 -4
  85. package/dist/scaffolds/notis-random/app/page.tsx +141 -74
  86. package/dist/scaffolds/notis-random/components/ui/button.tsx +50 -0
  87. package/dist/scaffolds/notis-random/components/ui/card.tsx +16 -0
  88. package/dist/scaffolds/notis-random/components/ui/input.tsx +23 -0
  89. package/dist/scaffolds/notis-random/components.json +20 -0
  90. package/dist/scaffolds/notis-random/lib/notis-tools.ts +26 -7
  91. package/dist/scaffolds/notis-random/lib/rng.ts +179 -19
  92. package/dist/scaffolds/notis-random/lib/roll-record.ts +103 -16
  93. package/dist/scaffolds/notis-random/metadata/screenshot-1.png +0 -0
  94. package/dist/scaffolds/notis-random/metadata/screenshot-2.png +0 -0
  95. package/dist/scaffolds/notis-random/metadata/screenshot-3.png +0 -0
  96. package/dist/scaffolds/notis-random/metadata/screenshot-4.png +0 -0
  97. package/dist/scaffolds/notis-random/metadata/screenshot-5.png +0 -0
  98. package/dist/scaffolds/notis-random/metadata/screenshot-fixtures.json +753 -0
  99. package/dist/scaffolds/notis-random/notis.config.ts +47 -3
  100. package/dist/scaffolds/notis-random/package-lock.json +4513 -0
  101. package/dist/scaffolds/notis-random/package.json +6 -2
  102. package/dist/scaffolds/notis-random/packages/sdk/package.json +36 -0
  103. package/dist/scaffolds/notis-random/packages/sdk/src/components/DocumentEditor.tsx +93 -0
  104. package/dist/scaffolds/notis-random/packages/sdk/src/components/Markdown.tsx +60 -0
  105. package/dist/scaffolds/notis-random/packages/sdk/src/components/MultiSelectActionBar.tsx +278 -0
  106. package/dist/scaffolds/notis-random/packages/sdk/src/components/MultiSelectCheckbox.tsx +91 -0
  107. package/dist/scaffolds/notis-random/packages/sdk/src/components/MultiSelectDragOverlay.tsx +39 -0
  108. package/dist/scaffolds/notis-random/packages/sdk/src/config.ts +196 -0
  109. package/dist/scaffolds/notis-random/packages/sdk/src/documents.ts +229 -0
  110. package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useBackend.ts +41 -0
  111. package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useDatabaseSchema.ts +85 -0
  112. package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useDocument.ts +78 -0
  113. package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useDocuments.ts +121 -0
  114. package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useMultiSelect.ts +539 -0
  115. package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useNotis.ts +34 -0
  116. package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useNotisNavigation.ts +49 -0
  117. package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useTool.ts +64 -0
  118. package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useTools.ts +56 -0
  119. package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useTopBarSearch.ts +73 -0
  120. package/dist/scaffolds/notis-random/packages/sdk/src/hooks/useUpsertDocument.ts +95 -0
  121. package/dist/scaffolds/notis-random/packages/sdk/src/index.ts +83 -0
  122. package/dist/scaffolds/notis-random/packages/sdk/src/provider.tsx +43 -0
  123. package/dist/scaffolds/notis-random/packages/sdk/src/runtime.ts +220 -0
  124. package/dist/scaffolds/notis-random/packages/sdk/src/styles.css +186 -0
  125. package/dist/scaffolds/notis-random/packages/sdk/src/ui.ts +15 -0
  126. package/dist/scaffolds/notis-random/packages/sdk/src/vite.ts +56 -0
  127. package/dist/scaffolds/notis-random/packages/sdk/tsconfig.json +15 -0
  128. package/dist/scaffolds/notis-random/tailwind.config.ts +8 -1
  129. package/dist/scaffolds.json +8 -6
  130. package/package.json +2 -1
  131. package/skills/notis-apps/SKILL.md +449 -144
  132. package/skills/notis-apps/cli.md +15 -0
  133. package/skills/notis-cli/SKILL.md +8 -4
  134. package/skills/notis-onboarding/BRIEF.md +93 -0
  135. package/src/cli.js +52 -7
  136. package/src/command-specs/apps.js +154 -21
  137. package/src/command-specs/diagnostics.js +674 -0
  138. package/src/command-specs/helpers.js +4 -1
  139. package/src/command-specs/index.js +8 -0
  140. package/src/command-specs/onboarding.js +216 -0
  141. package/src/command-specs/smoke.js +386 -0
  142. package/src/command-specs/tools.js +189 -5
  143. package/src/runtime/app-platform.js +65 -4
  144. package/src/runtime/desktop-auth.js +66 -17
  145. package/src/runtime/errors.js +1 -0
  146. package/src/runtime/output.js +21 -3
  147. package/src/runtime/profiles.js +214 -18
  148. package/src/runtime/telemetry.js +92 -0
  149. package/src/runtime/transport.js +29 -1
  150. package/template/.harness/index.html.tmpl +30 -2
  151. package/template/packages/sdk/src/config.ts +38 -1
@@ -0,0 +1,186 @@
1
+ /**
2
+ * Notis theme CSS variables.
3
+ *
4
+ * Import this in your app layout:
5
+ *
6
+ * import '@notis/sdk/styles.css';
7
+ *
8
+ * The portal injects the live Notis theme variables at render time.
9
+ */
10
+
11
+ @tailwind base;
12
+ @tailwind components;
13
+ @tailwind utilities;
14
+
15
+ @layer base {
16
+ * {
17
+ @apply border-border;
18
+ }
19
+ [data-notis-app-root] {
20
+ color: hsl(var(--foreground));
21
+ display: block;
22
+ min-height: 100%;
23
+ }
24
+ }
25
+
26
+ @layer components {
27
+ .notis-app-shell {
28
+ @apply mx-auto w-full max-w-[var(--portal-page-max-width)] px-4 py-6 md:px-4 md:py-8;
29
+ }
30
+
31
+ .notis-app-surface {
32
+ @apply rounded-2xl border border-border bg-card text-card-foreground shadow-sm;
33
+ }
34
+
35
+ .notis-app-section {
36
+ @apply p-5 md:p-6;
37
+ }
38
+ }
39
+
40
+ /*
41
+ * Markdown value-type rendering (see the `Markdown` component). Plain CSS on
42
+ * theme variables so it works inside the portal shadow root and the dev
43
+ * harness without depending on the app's Tailwind content scan.
44
+ */
45
+ .notis-markdown {
46
+ font-size: 14px;
47
+ line-height: 1.65;
48
+ color: hsl(var(--foreground));
49
+ overflow-wrap: break-word;
50
+ }
51
+
52
+ .notis-markdown--sm {
53
+ font-size: 13px;
54
+ line-height: 1.55;
55
+ }
56
+
57
+ .notis-markdown > :first-child {
58
+ margin-top: 0;
59
+ }
60
+
61
+ .notis-markdown > :last-child {
62
+ margin-bottom: 0;
63
+ }
64
+
65
+ .notis-markdown p {
66
+ margin: 0.625em 0;
67
+ }
68
+
69
+ .notis-markdown h1,
70
+ .notis-markdown h2,
71
+ .notis-markdown h3,
72
+ .notis-markdown h4,
73
+ .notis-markdown h5,
74
+ .notis-markdown h6 {
75
+ margin: 1.25em 0 0.5em;
76
+ font-weight: 650;
77
+ letter-spacing: -0.01em;
78
+ line-height: 1.3;
79
+ color: hsl(var(--foreground));
80
+ }
81
+
82
+ .notis-markdown h1 { font-size: 1.5em; }
83
+ .notis-markdown h2 { font-size: 1.25em; }
84
+ .notis-markdown h3 { font-size: 1.1em; }
85
+ .notis-markdown h4,
86
+ .notis-markdown h5,
87
+ .notis-markdown h6 { font-size: 1em; }
88
+
89
+ .notis-markdown ul,
90
+ .notis-markdown ol {
91
+ margin: 0.625em 0;
92
+ padding-left: 1.5em;
93
+ }
94
+
95
+ .notis-markdown ul { list-style-type: disc; }
96
+ .notis-markdown ol { list-style-type: decimal; }
97
+
98
+ .notis-markdown li {
99
+ margin: 0.25em 0;
100
+ }
101
+
102
+ .notis-markdown li > ul,
103
+ .notis-markdown li > ol {
104
+ margin: 0.25em 0;
105
+ }
106
+
107
+ .notis-markdown ul.contains-task-list {
108
+ list-style: none;
109
+ padding-left: 0.375em;
110
+ }
111
+
112
+ .notis-markdown li.task-list-item input[type='checkbox'] {
113
+ margin-right: 0.5em;
114
+ accent-color: hsl(var(--primary));
115
+ }
116
+
117
+ .notis-markdown blockquote {
118
+ margin: 0.75em 0;
119
+ padding: 0.125em 0 0.125em 0.875em;
120
+ border-left: 3px solid hsl(var(--border));
121
+ color: hsl(var(--muted-foreground));
122
+ }
123
+
124
+ .notis-markdown a {
125
+ color: hsl(var(--primary));
126
+ text-decoration: underline;
127
+ text-decoration-color: hsl(var(--primary) / 0.35);
128
+ text-underline-offset: 2px;
129
+ }
130
+
131
+ .notis-markdown a:hover {
132
+ text-decoration-color: hsl(var(--primary));
133
+ }
134
+
135
+ .notis-markdown code {
136
+ font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
137
+ font-size: 0.875em;
138
+ padding: 0.125em 0.375em;
139
+ border-radius: 0.25rem;
140
+ background: hsl(var(--muted));
141
+ color: hsl(var(--foreground));
142
+ }
143
+
144
+ .notis-markdown pre {
145
+ margin: 0.75em 0;
146
+ padding: 0.75em 1em;
147
+ border-radius: 0.5rem;
148
+ background: hsl(var(--muted));
149
+ overflow-x: auto;
150
+ }
151
+
152
+ .notis-markdown pre code {
153
+ padding: 0;
154
+ background: transparent;
155
+ font-size: 0.875em;
156
+ }
157
+
158
+ .notis-markdown hr {
159
+ margin: 1.25em 0;
160
+ border: 0;
161
+ border-top: 1px solid hsl(var(--border));
162
+ }
163
+
164
+ .notis-markdown img {
165
+ max-width: 100%;
166
+ border-radius: 0.5rem;
167
+ }
168
+
169
+ .notis-markdown table {
170
+ margin: 0.75em 0;
171
+ width: 100%;
172
+ border-collapse: collapse;
173
+ font-size: 0.95em;
174
+ }
175
+
176
+ .notis-markdown th,
177
+ .notis-markdown td {
178
+ padding: 0.375em 0.75em;
179
+ border: 1px solid hsl(var(--border));
180
+ text-align: left;
181
+ }
182
+
183
+ .notis-markdown th {
184
+ background: hsl(var(--muted));
185
+ font-weight: 600;
186
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @notis/sdk/ui - Re-exported shadcn components for Notis apps.
3
+ *
4
+ * Apps include shadcn via their own `components.json` and `@/components/ui/*`
5
+ * imports. This entrypoint is provided as a convenience for apps that want to
6
+ * import directly from the SDK without setting up shadcn locally.
7
+ *
8
+ * For now, this is a placeholder. The scaffold template sets up shadcn
9
+ * directly in the app project, so components come from `@/components/ui/*`.
10
+ * This file can be expanded later to re-export a curated set of components
11
+ * pre-themed for Notis.
12
+ */
13
+
14
+ // Placeholder -- apps use shadcn directly via their project's components/ui/
15
+ export {};
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Vite config builder for Notis apps.
3
+ *
4
+ * Usage:
5
+ * ```ts
6
+ * // vite.config.ts
7
+ * import { notisViteConfig } from '@notis/sdk/vite';
8
+ * import appConfig from './notis.config';
9
+ * export default notisViteConfig(appConfig);
10
+ * ```
11
+ *
12
+ * Produces a library-mode ES module bundle with React externalized.
13
+ * Output: .notis/output/bundle/app.js + app.css
14
+ */
15
+
16
+ import type { NotisAppConfig } from './config';
17
+
18
+ export function notisViteConfig(appConfig: NotisAppConfig) {
19
+ return {
20
+ plugins: [
21
+ // @vitejs/plugin-react is added by the consumer's vite.config.ts
22
+ // or auto-detected. We provide the config shape only.
23
+ ],
24
+ build: {
25
+ lib: {
26
+ entry: '.notis/_entry.tsx',
27
+ formats: ['es'] as const,
28
+ fileName: () => 'app.js',
29
+ },
30
+ rollupOptions: {
31
+ external: ['react', 'react-dom', 'react-dom/client', 'react/jsx-runtime', 'react/jsx-dev-runtime'],
32
+ output: {
33
+ globals: {
34
+ react: 'window.React',
35
+ 'react-dom': 'window.ReactDOM',
36
+ 'react-dom/client': 'window.ReactDOMClient',
37
+ 'react/jsx-runtime': 'window.React',
38
+ },
39
+ assetFileNames: 'app[extname]',
40
+ inlineDynamicImports: true,
41
+ },
42
+ },
43
+ outDir: '.notis/output/bundle',
44
+ emptyOutDir: true,
45
+ cssCodeSplit: false,
46
+ },
47
+ resolve: {
48
+ alias: {
49
+ '@': process.cwd(),
50
+ },
51
+ },
52
+ define: {
53
+ 'process.env.NODE_ENV': JSON.stringify('production'),
54
+ },
55
+ };
56
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "module": "ESNext",
5
+ "moduleResolution": "bundler",
6
+ "jsx": "react-jsx",
7
+ "strict": true,
8
+ "esModuleInterop": true,
9
+ "skipLibCheck": true,
10
+ "declaration": true,
11
+ "outDir": "dist",
12
+ "rootDir": "src"
13
+ },
14
+ "include": ["src"]
15
+ }
@@ -534,8 +534,11 @@ export function installMockRuntime(): NotisRuntime {
534
534
  }
535
535
  if (name === 'LOCAL_NOTIS_DATABASE_QUERY') {
536
536
  const request = args ?? {};
537
+ const id = typeof request.database_id === 'string' ? request.database_id : null;
537
538
  const slug = typeof request.database_slug === 'string' ? request.database_slug : null;
538
- const match = SEED.find((s) => slug && s.detail.slug === slug);
539
+ const match = SEED.find(
540
+ (s) => (id && s.detail.id === id) || (slug && s.detail.slug === slug),
541
+ );
539
542
  if (!match) {
540
543
  return { status: 'error', message: 'Database not found' } as TResult;
541
544
  }
@@ -1,5 +1,9 @@
1
1
  # 5 Minutes Journal Changelog
2
2
 
3
+ ## [Accessible Timeline Selection] - 2026-07-29
4
+
5
+ - Announces the selected journal day to assistive technology while preserving the visual timeline.
6
+
3
7
  ## [Package Details and History] - 2026-07-17
4
8
 
5
9
  - Added complete package release history to App Details.
@@ -251,6 +251,7 @@ function RailRow({
251
251
  <button
252
252
  type="button"
253
253
  onClick={onSelect}
254
+ aria-current={selected ? 'date' : undefined}
254
255
  data-rail-row={dayKey(entry.date) ?? entry.id}
255
256
  className={cn(
256
257
  'flex w-full items-center gap-3 rounded-lg px-2 py-1.5 text-left transition-colors',