@intelligo-dev/cli 1.0.0-beta.13 → 1.0.0-beta.14

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 (171) hide show
  1. package/README.md +41 -2
  2. package/dist/bin.js +37 -0
  3. package/dist/bin.js.map +1 -1
  4. package/dist/commands/add.d.ts +4 -0
  5. package/dist/commands/add.d.ts.map +1 -1
  6. package/dist/commands/add.js +9 -0
  7. package/dist/commands/add.js.map +1 -1
  8. package/dist/commands/create-flow.d.ts +4 -1
  9. package/dist/commands/create-flow.d.ts.map +1 -1
  10. package/dist/commands/create-flow.js +63 -31
  11. package/dist/commands/create-flow.js.map +1 -1
  12. package/dist/commands/create.d.ts +8 -4
  13. package/dist/commands/create.d.ts.map +1 -1
  14. package/dist/commands/create.js +15 -7
  15. package/dist/commands/create.js.map +1 -1
  16. package/dist/commands/doctor.d.ts.map +1 -1
  17. package/dist/commands/doctor.js +21 -19
  18. package/dist/commands/doctor.js.map +1 -1
  19. package/dist/commands/migrate-check.d.ts +20 -1
  20. package/dist/commands/migrate-check.d.ts.map +1 -1
  21. package/dist/commands/migrate-check.js +35 -6
  22. package/dist/commands/migrate-check.js.map +1 -1
  23. package/dist/commands/migrate.d.ts.map +1 -1
  24. package/dist/commands/migrate.js +2 -8
  25. package/dist/commands/migrate.js.map +1 -1
  26. package/dist/commands/sync-messages.d.ts +37 -0
  27. package/dist/commands/sync-messages.d.ts.map +1 -0
  28. package/dist/commands/sync-messages.js +88 -0
  29. package/dist/commands/sync-messages.js.map +1 -0
  30. package/dist/commands/sync-scaffold.d.ts +36 -0
  31. package/dist/commands/sync-scaffold.d.ts.map +1 -0
  32. package/dist/commands/sync-scaffold.js +53 -0
  33. package/dist/commands/sync-scaffold.js.map +1 -0
  34. package/dist/commands/sync.d.ts +103 -0
  35. package/dist/commands/sync.d.ts.map +1 -0
  36. package/dist/commands/sync.js +361 -0
  37. package/dist/commands/sync.js.map +1 -0
  38. package/dist/commands/upgrade-check.d.ts.map +1 -1
  39. package/dist/commands/upgrade-check.js +4 -1
  40. package/dist/commands/upgrade-check.js.map +1 -1
  41. package/dist/manifest.d.ts +27 -0
  42. package/dist/manifest.d.ts.map +1 -1
  43. package/dist/manifest.js +30 -3
  44. package/dist/manifest.js.map +1 -1
  45. package/dist/module-exports.d.ts +63 -0
  46. package/dist/module-exports.d.ts.map +1 -0
  47. package/dist/module-exports.js +231 -0
  48. package/dist/module-exports.js.map +1 -0
  49. package/dist/registry-bundle.d.ts +43 -0
  50. package/dist/registry-bundle.d.ts.map +1 -0
  51. package/dist/registry-bundle.js +74 -0
  52. package/dist/registry-bundle.js.map +1 -0
  53. package/dist/registry-items.d.ts +41 -13
  54. package/dist/registry-items.d.ts.map +1 -1
  55. package/dist/registry-items.js +117 -33
  56. package/dist/registry-items.js.map +1 -1
  57. package/package.json +1 -1
  58. package/src/bin.ts +52 -0
  59. package/src/commands/add.ts +11 -0
  60. package/src/commands/create-flow.ts +82 -26
  61. package/src/commands/create.ts +17 -7
  62. package/src/commands/doctor.ts +27 -27
  63. package/src/commands/migrate-check.ts +51 -10
  64. package/src/commands/migrate.ts +2 -8
  65. package/src/commands/sync-messages.ts +114 -0
  66. package/src/commands/sync-scaffold.ts +83 -0
  67. package/src/commands/sync.ts +534 -0
  68. package/src/commands/upgrade-check.ts +4 -1
  69. package/src/manifest.ts +57 -3
  70. package/src/module-exports.ts +266 -0
  71. package/src/registry-bundle.ts +103 -0
  72. package/src/registry-items.ts +141 -36
  73. package/templates/app-scaffold/intelligo.ts.tpl +6 -47
  74. package/templates/manifest.json +19 -0
  75. package/templates/registry/ai-agent-activity.json +23 -0
  76. package/templates/registry/ai-agent-progress.json +21 -0
  77. package/templates/registry/ai-approval-card.json +27 -0
  78. package/templates/registry/ai-artifact.json +22 -0
  79. package/templates/registry/ai-branch.json +21 -0
  80. package/templates/registry/ai-citations.json +24 -0
  81. package/templates/registry/ai-code-block.json +23 -0
  82. package/templates/registry/ai-composer-menu.json +19 -0
  83. package/templates/registry/ai-file-diff.json +25 -0
  84. package/templates/registry/ai-image-generation.json +23 -0
  85. package/templates/registry/ai-markdown.json +23 -0
  86. package/templates/registry/ai-message-bubble.json +23 -0
  87. package/templates/registry/ai-message-scroller.json +22 -0
  88. package/templates/registry/ai-message.json +21 -0
  89. package/templates/registry/ai-motion.json +19 -0
  90. package/templates/registry/ai-prompt-input.json +28 -0
  91. package/templates/registry/ai-reasoning-text.json +22 -0
  92. package/templates/registry/ai-reasoning.json +22 -0
  93. package/templates/registry/ai-shimmer-text.json +19 -0
  94. package/templates/registry/ai-sidebar.json +25 -0
  95. package/templates/registry/ai-speech-input.json +21 -0
  96. package/templates/registry/ai-streaming-response.json +24 -0
  97. package/templates/registry/ai-suggestion.json +19 -0
  98. package/templates/registry/ai-todo-list.json +22 -0
  99. package/templates/registry/ai-tool-approval.json +26 -0
  100. package/templates/registry/ai-tool-result.json +25 -0
  101. package/templates/registry/alert-dialog.json +23 -0
  102. package/templates/registry/animated-list.json +21 -0
  103. package/templates/registry/app-shell.json +93 -0
  104. package/templates/registry/artifacts.json +82 -0
  105. package/templates/registry/attachment.json +22 -0
  106. package/templates/registry/auth-email-verification.json +39 -0
  107. package/templates/registry/auth-login.json +72 -0
  108. package/templates/registry/auth-password-reset.json +53 -0
  109. package/templates/registry/auth-signup.json +41 -0
  110. package/templates/registry/billing-settings.json +60 -0
  111. package/templates/registry/button.json +22 -0
  112. package/templates/registry/chat-eve.json +19 -0
  113. package/templates/registry/chat-panel.json +30 -0
  114. package/templates/registry/chat-share.json +42 -0
  115. package/templates/registry/chat-widget.json +34 -0
  116. package/templates/registry/chat.json +326 -0
  117. package/templates/registry/checkbox.json +22 -0
  118. package/templates/registry/checkout.json +40 -0
  119. package/templates/registry/collapsible.json +19 -0
  120. package/templates/registry/command.json +23 -0
  121. package/templates/registry/copy-button.json +21 -0
  122. package/templates/registry/dashboard.json +69 -0
  123. package/templates/registry/dialog.json +24 -0
  124. package/templates/registry/document-viewer.json +22 -0
  125. package/templates/registry/dropdown-menu.json +23 -0
  126. package/templates/registry/expandable-tabs.json +22 -0
  127. package/templates/registry/feature-gating.json +73 -0
  128. package/templates/registry/file-upload.json +24 -0
  129. package/templates/registry/hold-action-button.json +22 -0
  130. package/templates/registry/input-group.json +23 -0
  131. package/templates/registry/input.json +19 -0
  132. package/templates/registry/intelligo.json +187 -0
  133. package/templates/registry/invitation-accept.json +64 -0
  134. package/templates/registry/language-switcher.json +29 -0
  135. package/templates/registry/morphing-modal.json +24 -0
  136. package/templates/registry/notification-stack.json +24 -0
  137. package/templates/registry/notifications.json +87 -0
  138. package/templates/registry/onboarding.json +83 -0
  139. package/templates/registry/otp-input.json +22 -0
  140. package/templates/registry/page-header.json +15 -0
  141. package/templates/registry/payment-poll.json +52 -0
  142. package/templates/registry/popover-morph.json +22 -0
  143. package/templates/registry/popover.json +22 -0
  144. package/templates/registry/pricing.json +111 -0
  145. package/templates/registry/privacy-settings.json +65 -0
  146. package/templates/registry/profile-settings.json +68 -0
  147. package/templates/registry/progress.json +19 -0
  148. package/templates/registry/radio-group.json +22 -0
  149. package/templates/registry/registry.json +2945 -0
  150. package/templates/registry/route-error.json +65 -0
  151. package/templates/registry/select-morph.json +23 -0
  152. package/templates/registry/select.json +23 -0
  153. package/templates/registry/settings-shell.json +47 -0
  154. package/templates/registry/sheet.json +24 -0
  155. package/templates/registry/sidebar.json +28 -0
  156. package/templates/registry/smoke.json +34 -0
  157. package/templates/registry/spinner.json +16 -0
  158. package/templates/registry/stat-card.json +18 -0
  159. package/templates/registry/status-badge.json +18 -0
  160. package/templates/registry/switch.json +20 -0
  161. package/templates/registry/tabs.json +23 -0
  162. package/templates/registry/team-settings.json +97 -0
  163. package/templates/registry/textarea.json +16 -0
  164. package/templates/registry/tooltip.json +22 -0
  165. package/templates/registry/trial-banner.json +43 -0
  166. package/templates/registry/usage.json +84 -0
  167. package/templates/registry/workspace-settings.json +71 -0
  168. package/templates/registry-items.json +1 -1
  169. package/templates/registry-requires.json +26 -2
  170. package/templates/vitest/server-only.ts.tpl +7 -0
  171. package/templates/vitest/vitest.config.ts.tpl +37 -0
@@ -0,0 +1,2945 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema/registry.json",
3
+ "name": "intelligo",
4
+ "homepage": "https://intelligo.dev",
5
+ "items": [
6
+ {
7
+ "name": "intelligo",
8
+ "type": "registry:base",
9
+ "extends": "none",
10
+ "title": "Intelligo design system",
11
+ "description": "The base every Intelligo page is built on: shadcn base-nova on Base UI, the neutral theme with its focus ring, muted text and destructive raised to WCAG AA, and additive tokens for status (success, warning, info, destructive-foreground), layers and motion. Initialise an app from it before installing any other item.",
12
+ "dependencies": [
13
+ "class-variance-authority",
14
+ "cn",
15
+ "tw-animate-css",
16
+ "@base-ui/react",
17
+ "lucide-react"
18
+ ],
19
+ "registryDependencies": ["utils", "font-geist"],
20
+ "config": {
21
+ "style": "base-nova",
22
+ "tailwind": {
23
+ "baseColor": "neutral"
24
+ },
25
+ "iconLibrary": "lucide",
26
+ "rtl": false,
27
+ "menuColor": "default",
28
+ "menuAccent": "subtle"
29
+ },
30
+ "cssVars": {
31
+ "theme": {
32
+ "font-heading": "var(--font-sans)",
33
+ "color-destructive-foreground": "var(--destructive-foreground)",
34
+ "color-success": "var(--success)",
35
+ "color-success-foreground": "var(--success-foreground)",
36
+ "color-warning": "var(--warning)",
37
+ "color-warning-foreground": "var(--warning-foreground)",
38
+ "color-info": "var(--info)",
39
+ "color-info-foreground": "var(--info-foreground)",
40
+ "ease-standard": "cubic-bezier(0.16, 1, 0.3, 1)",
41
+ "ease-emphasized": "cubic-bezier(0.32, 0.72, 0, 1)",
42
+ "ease-exit": "cubic-bezier(0.77, 0, 0.175, 1)"
43
+ },
44
+ "light": {
45
+ "font-sans": "\"Geist\", \"Geist Fallback\", -apple-system, \"Segoe UI\", sans-serif",
46
+ "background": "oklch(0.99 0 0)",
47
+ "foreground": "oklch(0.15 0 0)",
48
+ "card": "oklch(0.97 0 0)",
49
+ "card-foreground": "oklch(0.15 0 0)",
50
+ "popover": "oklch(0.99 0 0)",
51
+ "popover-foreground": "oklch(0.15 0 0)",
52
+ "primary": "oklch(0.15 0 0)",
53
+ "primary-foreground": "oklch(0.99 0 0)",
54
+ "secondary": "oklch(0.955 0 0)",
55
+ "secondary-foreground": "oklch(0.15 0 0)",
56
+ "muted": "oklch(0.97 0 0)",
57
+ "muted-foreground": "oklch(0.5 0 0)",
58
+ "accent": "oklch(0.95 0 0)",
59
+ "accent-foreground": "oklch(0.15 0 0)",
60
+ "destructive": "oklch(0.52 0.2 25)",
61
+ "border": "oklch(0.15 0 0 / 8%)",
62
+ "input": "oklch(0.15 0 0 / 14%)",
63
+ "ring": "oklch(0.55 0 0)",
64
+ "chart-1": "oklch(0.87 0 0)",
65
+ "chart-2": "oklch(0.556 0 0)",
66
+ "chart-3": "oklch(0.439 0 0)",
67
+ "chart-4": "oklch(0.371 0 0)",
68
+ "chart-5": "oklch(0.269 0 0)",
69
+ "radius": "0.5rem",
70
+ "sidebar": "oklch(0.975 0 0)",
71
+ "sidebar-foreground": "oklch(0.15 0 0)",
72
+ "sidebar-primary": "oklch(0.15 0 0)",
73
+ "sidebar-primary-foreground": "oklch(0.99 0 0)",
74
+ "sidebar-accent": "oklch(0.94 0 0)",
75
+ "sidebar-accent-foreground": "oklch(0.15 0 0)",
76
+ "sidebar-border": "oklch(0.15 0 0 / 8%)",
77
+ "sidebar-ring": "oklch(0.55 0 0)",
78
+ "destructive-foreground": "oklch(0.99 0 0)",
79
+ "success": "oklch(0.49 0.12 155)",
80
+ "success-foreground": "oklch(0.99 0 0)",
81
+ "warning": "oklch(0.5 0.105 75)",
82
+ "warning-foreground": "oklch(0.99 0 0)",
83
+ "info": "oklch(0.5 0.135 245)",
84
+ "info-foreground": "oklch(0.99 0 0)"
85
+ },
86
+ "dark": {
87
+ "background": "oklch(0.196 0 0)",
88
+ "foreground": "oklch(0.96 0 0)",
89
+ "card": "oklch(0.227 0 0)",
90
+ "card-foreground": "oklch(0.96 0 0)",
91
+ "popover": "oklch(0.227 0 0)",
92
+ "popover-foreground": "oklch(0.96 0 0)",
93
+ "primary": "oklch(0.96 0 0)",
94
+ "primary-foreground": "oklch(0.196 0 0)",
95
+ "secondary": "oklch(0.27 0 0)",
96
+ "secondary-foreground": "oklch(0.96 0 0)",
97
+ "muted": "oklch(0.227 0 0)",
98
+ "muted-foreground": "oklch(0.68 0 0)",
99
+ "accent": "oklch(0.28 0 0)",
100
+ "accent-foreground": "oklch(0.96 0 0)",
101
+ "destructive": "oklch(0.7 0.18 25)",
102
+ "border": "oklch(1 0 0 / 7%)",
103
+ "input": "oklch(1 0 0 / 12%)",
104
+ "ring": "oklch(0.58 0 0)",
105
+ "chart-1": "oklch(0.87 0 0)",
106
+ "chart-2": "oklch(0.556 0 0)",
107
+ "chart-3": "oklch(0.439 0 0)",
108
+ "chart-4": "oklch(0.371 0 0)",
109
+ "chart-5": "oklch(0.269 0 0)",
110
+ "sidebar": "oklch(0.175 0 0)",
111
+ "sidebar-foreground": "oklch(0.96 0 0)",
112
+ "sidebar-primary": "oklch(0.96 0 0)",
113
+ "sidebar-primary-foreground": "oklch(0.196 0 0)",
114
+ "sidebar-accent": "oklch(0.26 0 0)",
115
+ "sidebar-accent-foreground": "oklch(0.96 0 0)",
116
+ "sidebar-border": "oklch(1 0 0 / 7%)",
117
+ "sidebar-ring": "oklch(0.58 0 0)",
118
+ "destructive-foreground": "oklch(0.196 0 0)",
119
+ "success": "oklch(0.72 0.16 155)",
120
+ "success-foreground": "oklch(0.196 0 0)",
121
+ "warning": "oklch(0.78 0.15 75)",
122
+ "warning-foreground": "oklch(0.196 0 0)",
123
+ "info": "oklch(0.72 0.13 245)",
124
+ "info-foreground": "oklch(0.196 0 0)"
125
+ }
126
+ },
127
+ "css": {
128
+ "@import \"tw-animate-css\"": {},
129
+ "@import \"shadcn/tailwind.css\"": {},
130
+ "@layer base": {
131
+ "*": {
132
+ "@apply border-border outline-ring/50": {}
133
+ },
134
+ "body": {
135
+ "@apply bg-background text-foreground": {}
136
+ },
137
+ ":root": {
138
+ "--z-sticky": "10",
139
+ "--z-dropdown": "20",
140
+ "--z-overlay": "40",
141
+ "--z-modal": "50",
142
+ "--z-popover": "60",
143
+ "--z-toast": "70",
144
+ "--duration-fast": "120ms",
145
+ "--duration-normal": "200ms",
146
+ "--duration-slow": "320ms"
147
+ }
148
+ },
149
+ "@utility z-sticky": {
150
+ "z-index": "var(--z-sticky)"
151
+ },
152
+ "@utility z-dropdown": {
153
+ "z-index": "var(--z-dropdown)"
154
+ },
155
+ "@utility z-overlay": {
156
+ "z-index": "var(--z-overlay)"
157
+ },
158
+ "@utility z-modal": {
159
+ "z-index": "var(--z-modal)"
160
+ },
161
+ "@utility z-popover": {
162
+ "z-index": "var(--z-popover)"
163
+ },
164
+ "@utility z-toast": {
165
+ "z-index": "var(--z-toast)"
166
+ },
167
+ "@utility duration-fast": {
168
+ "transition-duration": "var(--duration-fast)",
169
+ "animation-duration": "var(--duration-fast)"
170
+ },
171
+ "@utility duration-normal": {
172
+ "transition-duration": "var(--duration-normal)",
173
+ "animation-duration": "var(--duration-normal)"
174
+ },
175
+ "@utility duration-slow": {
176
+ "transition-duration": "var(--duration-slow)",
177
+ "animation-duration": "var(--duration-slow)"
178
+ },
179
+ "@media (prefers-reduced-motion: reduce)": {
180
+ "*, ::before, ::after": {
181
+ "animation-duration": "0.01ms !important",
182
+ "animation-iteration-count": "1 !important",
183
+ "transition-duration": "0.01ms !important",
184
+ "scroll-behavior": "auto !important"
185
+ }
186
+ }
187
+ }
188
+ },
189
+ {
190
+ "name": "button",
191
+ "type": "registry:ui",
192
+ "title": "Button",
193
+ "description": "The action primitive: presses in and settles back — six variants, eight sizes, composes through render.",
194
+ "dependencies": ["@base-ui/react", "class-variance-authority"],
195
+ "registryDependencies": ["@intelligo/ai-motion"],
196
+ "files": [
197
+ {
198
+ "path": "base/ui/button/button.tsx",
199
+ "type": "registry:ui",
200
+ "target": "components/ui/button.tsx"
201
+ }
202
+ ]
203
+ },
204
+ {
205
+ "name": "checkbox",
206
+ "type": "registry:ui",
207
+ "title": "Checkbox",
208
+ "description": "A checkbox whose check draws itself in, with an indeterminate state.",
209
+ "dependencies": ["@base-ui/react", "motion"],
210
+ "registryDependencies": ["@intelligo/ai-motion"],
211
+ "files": [
212
+ {
213
+ "path": "base/ui/checkbox/checkbox.tsx",
214
+ "type": "registry:ui",
215
+ "target": "components/ui/checkbox.tsx"
216
+ }
217
+ ]
218
+ },
219
+ {
220
+ "name": "radio-group",
221
+ "type": "registry:ui",
222
+ "title": "Radio Group",
223
+ "description": "One choice from a set; the dot springs out from the centre.",
224
+ "dependencies": ["@base-ui/react", "motion"],
225
+ "registryDependencies": ["@intelligo/ai-motion"],
226
+ "files": [
227
+ {
228
+ "path": "base/ui/radio-group/radio-group.tsx",
229
+ "type": "registry:ui",
230
+ "target": "components/ui/radio-group.tsx"
231
+ }
232
+ ]
233
+ },
234
+ {
235
+ "name": "switch",
236
+ "type": "registry:ui",
237
+ "title": "Switch",
238
+ "description": "An on/off control with a weighted thumb that squeezes while pressed.",
239
+ "dependencies": ["@base-ui/react", "motion"],
240
+ "registryDependencies": [],
241
+ "files": [
242
+ {
243
+ "path": "base/ui/switch/switch.tsx",
244
+ "type": "registry:ui",
245
+ "target": "components/ui/switch.tsx"
246
+ }
247
+ ]
248
+ },
249
+ {
250
+ "name": "input",
251
+ "type": "registry:ui",
252
+ "title": "Input",
253
+ "description": "A single-line text field whose border and soft ring ease in on focus.",
254
+ "dependencies": ["@base-ui/react"],
255
+ "registryDependencies": [],
256
+ "files": [
257
+ {
258
+ "path": "base/ui/input/input.tsx",
259
+ "type": "registry:ui",
260
+ "target": "components/ui/input.tsx"
261
+ }
262
+ ]
263
+ },
264
+ {
265
+ "name": "textarea",
266
+ "type": "registry:ui",
267
+ "title": "Textarea",
268
+ "description": "A multi-line text field that grows with its content.",
269
+ "registryDependencies": [],
270
+ "files": [
271
+ {
272
+ "path": "base/ui/textarea/textarea.tsx",
273
+ "type": "registry:ui",
274
+ "target": "components/ui/textarea.tsx"
275
+ }
276
+ ]
277
+ },
278
+ {
279
+ "name": "tooltip",
280
+ "type": "registry:ui",
281
+ "title": "Tooltip",
282
+ "description": "A short hint on hover or focus that grows out of its trigger; neighbours open instantly.",
283
+ "dependencies": ["@base-ui/react", "motion"],
284
+ "registryDependencies": ["@intelligo/ai-motion"],
285
+ "files": [
286
+ {
287
+ "path": "base/ui/tooltip/tooltip.tsx",
288
+ "type": "registry:ui",
289
+ "target": "components/ui/tooltip.tsx"
290
+ }
291
+ ]
292
+ },
293
+ {
294
+ "name": "popover",
295
+ "type": "registry:ui",
296
+ "title": "Popover",
297
+ "description": "Floating content in a rounded panel that scales out of its trigger.",
298
+ "dependencies": ["@base-ui/react", "motion"],
299
+ "registryDependencies": ["@intelligo/ai-motion"],
300
+ "files": [
301
+ {
302
+ "path": "base/ui/popover/popover.tsx",
303
+ "type": "registry:ui",
304
+ "target": "components/ui/popover.tsx"
305
+ }
306
+ ]
307
+ },
308
+ {
309
+ "name": "dropdown-menu",
310
+ "type": "registry:ui",
311
+ "title": "Dropdown Menu",
312
+ "description": "Actions, checkboxes and radio groups with submenus, in a panel that scales out of its trigger.",
313
+ "dependencies": ["@base-ui/react", "lucide-react", "motion"],
314
+ "registryDependencies": ["@intelligo/ai-motion"],
315
+ "files": [
316
+ {
317
+ "path": "base/ui/dropdown-menu/dropdown-menu.tsx",
318
+ "type": "registry:ui",
319
+ "target": "components/ui/dropdown-menu.tsx"
320
+ }
321
+ ]
322
+ },
323
+ {
324
+ "name": "select",
325
+ "type": "registry:ui",
326
+ "title": "Select",
327
+ "description": "A picker for one value from a list, on the input's field and the menu's panel.",
328
+ "dependencies": ["@base-ui/react", "lucide-react", "motion"],
329
+ "registryDependencies": ["@intelligo/ai-motion"],
330
+ "files": [
331
+ {
332
+ "path": "base/ui/select/select.tsx",
333
+ "type": "registry:ui",
334
+ "target": "components/ui/select.tsx"
335
+ }
336
+ ]
337
+ },
338
+ {
339
+ "name": "dialog",
340
+ "type": "registry:ui",
341
+ "title": "Dialog",
342
+ "description": "A modal window over a blurred backdrop that springs up into place.",
343
+ "dependencies": ["@base-ui/react", "lucide-react", "motion"],
344
+ "registryDependencies": ["@intelligo/button", "@intelligo/ai-motion"],
345
+ "files": [
346
+ {
347
+ "path": "base/ui/dialog/dialog.tsx",
348
+ "type": "registry:ui",
349
+ "target": "components/ui/dialog.tsx"
350
+ }
351
+ ]
352
+ },
353
+ {
354
+ "name": "alert-dialog",
355
+ "type": "registry:ui",
356
+ "title": "Alert Dialog",
357
+ "description": "A modal that confirms a destructive or irreversible action, with the dialog's backdrop and spring.",
358
+ "dependencies": ["@base-ui/react", "motion"],
359
+ "registryDependencies": ["@intelligo/button", "@intelligo/ai-motion"],
360
+ "files": [
361
+ {
362
+ "path": "base/ui/alert-dialog/alert-dialog.tsx",
363
+ "type": "registry:ui",
364
+ "target": "components/ui/alert-dialog.tsx"
365
+ }
366
+ ]
367
+ },
368
+ {
369
+ "name": "sheet",
370
+ "type": "registry:ui",
371
+ "title": "Sheet",
372
+ "description": "A panel that slides in from any edge on the drawer curve.",
373
+ "dependencies": ["@base-ui/react", "lucide-react", "motion"],
374
+ "registryDependencies": ["@intelligo/button", "@intelligo/ai-motion"],
375
+ "files": [
376
+ {
377
+ "path": "base/ui/sheet/sheet.tsx",
378
+ "type": "registry:ui",
379
+ "target": "components/ui/sheet.tsx"
380
+ }
381
+ ]
382
+ },
383
+ {
384
+ "name": "tabs",
385
+ "type": "registry:ui",
386
+ "title": "Tabs",
387
+ "description": "Switches between views with one indicator that glides from tab to tab — raised and line variants.",
388
+ "dependencies": ["@base-ui/react", "class-variance-authority", "motion"],
389
+ "registryDependencies": ["@intelligo/ai-motion"],
390
+ "files": [
391
+ {
392
+ "path": "base/ui/tabs/tabs.tsx",
393
+ "type": "registry:ui",
394
+ "target": "components/ui/tabs.tsx"
395
+ }
396
+ ]
397
+ },
398
+ {
399
+ "name": "collapsible",
400
+ "type": "registry:ui",
401
+ "title": "Collapsible",
402
+ "description": "Content that eases open and closed from its measured height.",
403
+ "dependencies": ["@base-ui/react"],
404
+ "registryDependencies": [],
405
+ "files": [
406
+ {
407
+ "path": "base/ui/collapsible/collapsible.tsx",
408
+ "type": "registry:ui",
409
+ "target": "components/ui/collapsible.tsx"
410
+ }
411
+ ]
412
+ },
413
+ {
414
+ "name": "progress",
415
+ "type": "registry:ui",
416
+ "title": "Progress",
417
+ "description": "A rounded bar whose fill glides to each new value.",
418
+ "dependencies": ["@base-ui/react"],
419
+ "registryDependencies": [],
420
+ "files": [
421
+ {
422
+ "path": "base/ui/progress/progress.tsx",
423
+ "type": "registry:ui",
424
+ "target": "components/ui/progress.tsx"
425
+ }
426
+ ]
427
+ },
428
+ {
429
+ "name": "spinner",
430
+ "type": "registry:ui",
431
+ "title": "Spinner",
432
+ "description": "Pending state: a faint ring with a running arc. Pair with disabled and aria-busy.",
433
+ "registryDependencies": [],
434
+ "files": [
435
+ {
436
+ "path": "base/ui/spinner/spinner.tsx",
437
+ "type": "registry:ui",
438
+ "target": "components/ui/spinner.tsx"
439
+ }
440
+ ]
441
+ },
442
+ {
443
+ "name": "attachment",
444
+ "type": "registry:ui",
445
+ "title": "Attachment",
446
+ "description": "A file attached to a message or a prompt.",
447
+ "dependencies": ["@base-ui/react", "class-variance-authority"],
448
+ "registryDependencies": ["@intelligo/button"],
449
+ "files": [
450
+ {
451
+ "path": "base/ui/attachment/attachment.tsx",
452
+ "type": "registry:ui",
453
+ "target": "components/ui/attachment.tsx"
454
+ }
455
+ ]
456
+ },
457
+ {
458
+ "name": "input-group",
459
+ "type": "registry:ui",
460
+ "title": "Input Group",
461
+ "description": "An input or textarea with inline addons, buttons and text.",
462
+ "dependencies": ["class-variance-authority"],
463
+ "registryDependencies": [
464
+ "@intelligo/button",
465
+ "@intelligo/input",
466
+ "@intelligo/textarea"
467
+ ],
468
+ "files": [
469
+ {
470
+ "path": "base/ui/input-group/input-group.tsx",
471
+ "type": "registry:ui",
472
+ "target": "components/ui/input-group.tsx"
473
+ }
474
+ ]
475
+ },
476
+ {
477
+ "name": "command",
478
+ "type": "registry:ui",
479
+ "title": "Command",
480
+ "description": "A searchable list of actions, inline or in a dialog.",
481
+ "dependencies": ["cmdk", "lucide-react"],
482
+ "registryDependencies": ["@intelligo/dialog", "@intelligo/input-group"],
483
+ "files": [
484
+ {
485
+ "path": "base/ui/command/command.tsx",
486
+ "type": "registry:ui",
487
+ "target": "components/ui/command.tsx"
488
+ }
489
+ ]
490
+ },
491
+ {
492
+ "name": "sidebar",
493
+ "type": "registry:ui",
494
+ "title": "Sidebar",
495
+ "description": "The app sidebar — collapsible to icons, keyboard-toggled, a sheet on mobile.",
496
+ "dependencies": [
497
+ "@base-ui/react",
498
+ "class-variance-authority",
499
+ "lucide-react"
500
+ ],
501
+ "registryDependencies": [
502
+ "@intelligo/button",
503
+ "@intelligo/input",
504
+ "separator",
505
+ "@intelligo/sheet",
506
+ "skeleton",
507
+ "@intelligo/tooltip"
508
+ ],
509
+ "files": [
510
+ {
511
+ "path": "base/ui/sidebar/sidebar.tsx",
512
+ "type": "registry:ui",
513
+ "target": "components/ui/sidebar.tsx"
514
+ }
515
+ ]
516
+ },
517
+ {
518
+ "name": "page-header",
519
+ "type": "registry:ui",
520
+ "title": "Page Header",
521
+ "description": "The one page title every Intelligo page renders: heading, description and actions.",
522
+ "files": [
523
+ {
524
+ "path": "base/ui/page-header/page-header.tsx",
525
+ "type": "registry:ui",
526
+ "target": "components/ui/page-header.tsx"
527
+ }
528
+ ]
529
+ },
530
+ {
531
+ "name": "stat-card",
532
+ "type": "registry:ui",
533
+ "title": "Stat Card",
534
+ "description": "A metric on a card — label, value, an action such as a status badge, and a footer.",
535
+ "registryDependencies": ["card"],
536
+ "files": [
537
+ {
538
+ "path": "base/ui/stat-card/stat-card.tsx",
539
+ "type": "registry:ui",
540
+ "target": "components/ui/stat-card.tsx"
541
+ }
542
+ ]
543
+ },
544
+ {
545
+ "name": "status-badge",
546
+ "type": "registry:ui",
547
+ "title": "Status Badge",
548
+ "description": "A status shown in a status token — neutral, info, success, warning or destructive — never a palette colour.",
549
+ "dependencies": ["class-variance-authority"],
550
+ "files": [
551
+ {
552
+ "path": "base/ui/status-badge/status-badge.tsx",
553
+ "type": "registry:ui",
554
+ "target": "components/ui/status-badge.tsx"
555
+ }
556
+ ]
557
+ },
558
+ {
559
+ "name": "copy-button",
560
+ "type": "registry:ui",
561
+ "title": "Copy Button",
562
+ "description": "Copy to the clipboard with confirmation and a live announcement; labels are passed in, so it carries no copy of its own.",
563
+ "dependencies": ["lucide-react"],
564
+ "registryDependencies": ["@intelligo/button"],
565
+ "files": [
566
+ {
567
+ "path": "base/ui/copy-button/copy-button.tsx",
568
+ "type": "registry:ui",
569
+ "target": "components/ui/copy-button.tsx"
570
+ }
571
+ ]
572
+ },
573
+ {
574
+ "name": "ai-code-block",
575
+ "type": "registry:ui",
576
+ "title": "AI Code Block",
577
+ "description": "Highlighted code that streams without layout shift: header with filename, language, status and copy action, line numbers, focused lines, light and dark.",
578
+ "dependencies": ["shiki", "lucide-react"],
579
+ "registryDependencies": ["@intelligo/copy-button", "@intelligo/spinner"],
580
+ "files": [
581
+ {
582
+ "path": "base/ui/ai-code-block/ai-code-block.tsx",
583
+ "type": "registry:ui",
584
+ "target": "components/ui/ai-code-block.tsx"
585
+ }
586
+ ]
587
+ },
588
+ {
589
+ "name": "ai-markdown",
590
+ "type": "registry:ui",
591
+ "title": "AI Markdown",
592
+ "description": "Markdown as a model writes it — GFM, highlighted code, CJK emphasis — with maths and diagrams fetched only when the text contains them.",
593
+ "dependencies": [
594
+ "streamdown",
595
+ "@streamdown/code",
596
+ "@streamdown/math",
597
+ "@streamdown/mermaid",
598
+ "@streamdown/cjk",
599
+ "katex"
600
+ ],
601
+ "files": [
602
+ {
603
+ "path": "base/ui/ai-markdown/ai-markdown.tsx",
604
+ "type": "registry:ui",
605
+ "target": "components/ui/ai-markdown.tsx"
606
+ }
607
+ ]
608
+ },
609
+ {
610
+ "name": "ai-reasoning",
611
+ "type": "registry:ui",
612
+ "title": "AI Reasoning",
613
+ "description": "Streamed reasoning, collapsible, with the time it took.",
614
+ "dependencies": ["lucide-react", "streamdown"],
615
+ "registryDependencies": ["@intelligo/collapsible"],
616
+ "files": [
617
+ {
618
+ "path": "base/ui/ai-reasoning/ai-reasoning.tsx",
619
+ "type": "registry:ui",
620
+ "target": "components/ui/ai-reasoning.tsx"
621
+ }
622
+ ]
623
+ },
624
+ {
625
+ "name": "ai-suggestion",
626
+ "type": "registry:ui",
627
+ "title": "AI Suggestion",
628
+ "description": "Conversation starters and follow-ups in a scrollable row.",
629
+ "registryDependencies": ["@intelligo/button", "scroll-area"],
630
+ "files": [
631
+ {
632
+ "path": "base/ui/ai-suggestion/ai-suggestion.tsx",
633
+ "type": "registry:ui",
634
+ "target": "components/ui/ai-suggestion.tsx"
635
+ }
636
+ ]
637
+ },
638
+ {
639
+ "name": "ai-artifact",
640
+ "type": "registry:ui",
641
+ "title": "AI Artifact",
642
+ "description": "A generated document's frame: header, actions and content.",
643
+ "dependencies": ["lucide-react"],
644
+ "registryDependencies": ["@intelligo/button", "@intelligo/tooltip"],
645
+ "files": [
646
+ {
647
+ "path": "base/ui/ai-artifact/ai-artifact.tsx",
648
+ "type": "registry:ui",
649
+ "target": "components/ui/ai-artifact.tsx"
650
+ }
651
+ ]
652
+ },
653
+ {
654
+ "name": "ai-prompt-input",
655
+ "type": "registry:ui",
656
+ "title": "AI Prompt Input",
657
+ "description": "The chat composer: autosizing textarea that sends on Enter, attachments by picker, drop and paste, an action menu, selects, and a submit that stops a streaming reply.",
658
+ "dependencies": ["ai@^7.0.103", "lucide-react", "motion"],
659
+ "registryDependencies": [
660
+ "@intelligo/attachment",
661
+ "@intelligo/button",
662
+ "@intelligo/dropdown-menu",
663
+ "@intelligo/select",
664
+ "@intelligo/spinner",
665
+ "@intelligo/ai-motion"
666
+ ],
667
+ "files": [
668
+ {
669
+ "path": "base/ui/ai-prompt-input/ai-prompt-input.tsx",
670
+ "type": "registry:ui",
671
+ "target": "components/ui/ai-prompt-input.tsx"
672
+ }
673
+ ]
674
+ },
675
+ {
676
+ "name": "ai-branch",
677
+ "type": "registry:ui",
678
+ "title": "AI Branch",
679
+ "description": "A pager over the versions of a reply or an edited message — previous, next, `2 / 3`.",
680
+ "dependencies": ["lucide-react"],
681
+ "registryDependencies": ["@intelligo/button"],
682
+ "files": [
683
+ {
684
+ "path": "base/ui/ai-branch/ai-branch.tsx",
685
+ "type": "registry:ui",
686
+ "target": "components/ui/ai-branch.tsx"
687
+ }
688
+ ]
689
+ },
690
+ {
691
+ "name": "ai-speech-input",
692
+ "type": "registry:ui",
693
+ "title": "AI Speech Input",
694
+ "description": "Voice into the composer on the browser's speech recognition; renders nothing where it is absent.",
695
+ "dependencies": ["lucide-react"],
696
+ "registryDependencies": ["@intelligo/button"],
697
+ "files": [
698
+ {
699
+ "path": "base/ui/ai-speech-input/ai-speech-input.tsx",
700
+ "type": "registry:ui",
701
+ "target": "components/ui/ai-speech-input.tsx"
702
+ }
703
+ ]
704
+ },
705
+ {
706
+ "name": "ai-composer-menu",
707
+ "type": "registry:ui",
708
+ "title": "AI Composer Menu",
709
+ "description": "The picker a composer opens for slash commands and @ mentions, anchored above the textarea.",
710
+ "dependencies": [],
711
+ "registryDependencies": ["@intelligo/command"],
712
+ "files": [
713
+ {
714
+ "path": "base/ui/ai-composer-menu/ai-composer-menu.tsx",
715
+ "type": "registry:ui",
716
+ "target": "components/ui/ai-composer-menu.tsx"
717
+ }
718
+ ]
719
+ },
720
+ {
721
+ "name": "ai-motion",
722
+ "type": "registry:ui",
723
+ "title": "AI Motion",
724
+ "description": "The motion vocabulary every tier shares: easing curves, spring presets, a transform-only disclosure, a text swap, the popup and backdrop presets the primitives open with, the button press and list staggers, all gated on reduced motion.",
725
+ "dependencies": ["motion"],
726
+ "registryDependencies": [],
727
+ "files": [
728
+ {
729
+ "path": "base/ui/ai-motion/ai-motion.tsx",
730
+ "type": "registry:ui",
731
+ "target": "components/ui/ai-motion.tsx"
732
+ }
733
+ ]
734
+ },
735
+ {
736
+ "name": "ai-shimmer-text",
737
+ "type": "registry:ui",
738
+ "title": "AI Shimmer Text",
739
+ "description": "A status line that reads as alive while the agent works; a token gradient sweeps the text and the words swap with motion, honouring reduced motion.",
740
+ "dependencies": ["motion"],
741
+ "registryDependencies": [],
742
+ "files": [
743
+ {
744
+ "path": "base/ui/ai-shimmer-text/ai-shimmer-text.tsx",
745
+ "type": "registry:ui",
746
+ "target": "components/ui/ai-shimmer-text.tsx"
747
+ }
748
+ ]
749
+ },
750
+ {
751
+ "name": "ai-agent-activity",
752
+ "type": "registry:ui",
753
+ "title": "AI Agent Activity",
754
+ "description": "One adaptive stream of what the agent is doing: reasoning text, plan steps, web searches with results, tool calls and structured traces, gliding while it works and folding into a summary when done.",
755
+ "dependencies": ["motion", "lucide-react"],
756
+ "registryDependencies": [
757
+ "@intelligo/ai-motion",
758
+ "@intelligo/ai-shimmer-text"
759
+ ],
760
+ "files": [
761
+ {
762
+ "path": "base/ui/ai-agent-activity/ai-agent-activity.tsx",
763
+ "type": "registry:ui",
764
+ "target": "components/ui/ai-agent-activity.tsx"
765
+ }
766
+ ]
767
+ },
768
+ {
769
+ "name": "ai-approval-card",
770
+ "type": "registry:ui",
771
+ "title": "AI Approval Card",
772
+ "description": "A decision surface: approve, reject or request changes, or step through single-choice, multiple-choice and freeform questions and submit the answers.",
773
+ "dependencies": ["lucide-react", "motion"],
774
+ "registryDependencies": [
775
+ "@intelligo/ai-motion",
776
+ "@intelligo/button",
777
+ "@intelligo/checkbox",
778
+ "@intelligo/input",
779
+ "@intelligo/radio-group",
780
+ "@intelligo/spinner"
781
+ ],
782
+ "files": [
783
+ {
784
+ "path": "base/ui/ai-approval-card/ai-approval-card.tsx",
785
+ "type": "registry:ui",
786
+ "target": "components/ui/ai-approval-card.tsx"
787
+ }
788
+ ]
789
+ },
790
+ {
791
+ "name": "ai-file-diff",
792
+ "type": "registry:ui",
793
+ "title": "AI File Diff",
794
+ "description": "A file the agent is changing: the path with live added and removed counts, opening onto a unified diff whose highlighted rows arrive while the change streams.",
795
+ "dependencies": ["motion", "lucide-react"],
796
+ "registryDependencies": [
797
+ "@intelligo/ai-code-block",
798
+ "@intelligo/ai-motion",
799
+ "@intelligo/button",
800
+ "@intelligo/spinner"
801
+ ],
802
+ "files": [
803
+ {
804
+ "path": "base/ui/ai-file-diff/ai-file-diff.tsx",
805
+ "type": "registry:ui",
806
+ "target": "components/ui/ai-file-diff.tsx"
807
+ }
808
+ ]
809
+ },
810
+ {
811
+ "name": "ai-message-bubble",
812
+ "type": "registry:ui",
813
+ "title": "AI Message Bubble",
814
+ "description": "The speech bubble inside a message row: six surface variants that pop into place, grouped bubbles and a collapsible long body.",
815
+ "dependencies": ["motion", "lucide-react"],
816
+ "registryDependencies": ["@intelligo/ai-motion", "@intelligo/ai-message"],
817
+ "files": [
818
+ {
819
+ "path": "base/ui/ai-message-bubble/ai-message-bubble.tsx",
820
+ "type": "registry:ui",
821
+ "target": "components/ui/ai-message-bubble.tsx"
822
+ }
823
+ ]
824
+ },
825
+ {
826
+ "name": "ai-message-scroller",
827
+ "type": "registry:ui",
828
+ "title": "AI Message Scroller",
829
+ "description": "The scrolling transcript: follows streamed output while the reader stays at the live edge, lets go when they scroll up, with an optional preview rail for jumping between messages.",
830
+ "dependencies": ["motion", "lucide-react"],
831
+ "registryDependencies": ["@intelligo/ai-motion"],
832
+ "files": [
833
+ {
834
+ "path": "base/ui/ai-message-scroller/ai-message-scroller.tsx",
835
+ "type": "registry:ui",
836
+ "target": "components/ui/ai-message-scroller.tsx"
837
+ }
838
+ ]
839
+ },
840
+ {
841
+ "name": "ai-message",
842
+ "type": "registry:ui",
843
+ "title": "AI Message",
844
+ "description": "One turn of a conversation: the row with its side, optional avatar, content column, header, footer, a centred marker and the typing indicator.",
845
+ "dependencies": ["motion"],
846
+ "registryDependencies": ["@intelligo/ai-motion"],
847
+ "files": [
848
+ {
849
+ "path": "base/ui/ai-message/ai-message.tsx",
850
+ "type": "registry:ui",
851
+ "target": "components/ui/ai-message.tsx"
852
+ }
853
+ ]
854
+ },
855
+ {
856
+ "name": "ai-todo-list",
857
+ "type": "registry:ui",
858
+ "title": "AI Todo List",
859
+ "description": "The agent's to-do list: a collapsible plan whose status marks morph between pending, in progress, completed and cancelled, with a rolling completion count.",
860
+ "dependencies": ["motion", "lucide-react"],
861
+ "registryDependencies": ["@intelligo/ai-motion"],
862
+ "files": [
863
+ {
864
+ "path": "base/ui/ai-todo-list/ai-todo-list.tsx",
865
+ "type": "registry:ui",
866
+ "target": "components/ui/ai-todo-list.tsx"
867
+ }
868
+ ]
869
+ },
870
+ {
871
+ "name": "ai-tool-approval",
872
+ "type": "registry:ui",
873
+ "title": "AI Tool Approval",
874
+ "description": "A permission card for a tool call: name, parameters behind a disclosure, allow once / always allow / deny, and the outcome as a status.",
875
+ "dependencies": ["lucide-react", "motion"],
876
+ "registryDependencies": [
877
+ "@intelligo/ai-code-block",
878
+ "@intelligo/ai-motion",
879
+ "@intelligo/button",
880
+ "@intelligo/input",
881
+ "@intelligo/spinner"
882
+ ],
883
+ "files": [
884
+ {
885
+ "path": "base/ui/ai-tool-approval/ai-tool-approval.tsx",
886
+ "type": "registry:ui",
887
+ "target": "components/ui/ai-tool-approval.tsx"
888
+ }
889
+ ]
890
+ },
891
+ {
892
+ "name": "ai-tool-result",
893
+ "type": "registry:ui",
894
+ "title": "AI Tool Result",
895
+ "description": "The result of a tool the agent ran: a summary line that opens onto highlighted output, status rolling from running to done, copy and run-again actions.",
896
+ "dependencies": ["motion", "lucide-react"],
897
+ "registryDependencies": [
898
+ "@intelligo/ai-code-block",
899
+ "@intelligo/ai-motion",
900
+ "@intelligo/button",
901
+ "@intelligo/spinner"
902
+ ],
903
+ "files": [
904
+ {
905
+ "path": "base/ui/ai-tool-result/ai-tool-result.tsx",
906
+ "type": "registry:ui",
907
+ "target": "components/ui/ai-tool-result.tsx"
908
+ }
909
+ ]
910
+ },
911
+ {
912
+ "name": "ai-agent-progress",
913
+ "type": "registry:ui",
914
+ "title": "AI Agent Progress",
915
+ "description": "A long-running step: a pulsing grid beside the verb and an elapsed-time counter.",
916
+ "dependencies": ["motion"],
917
+ "registryDependencies": ["@intelligo/ai-motion"],
918
+ "files": [
919
+ {
920
+ "path": "base/ui/ai-agent-progress/ai-agent-progress.tsx",
921
+ "type": "registry:ui",
922
+ "target": "components/ui/ai-agent-progress.tsx"
923
+ }
924
+ ]
925
+ },
926
+ {
927
+ "name": "ai-citations",
928
+ "type": "registry:ui",
929
+ "title": "AI Citations",
930
+ "description": "The sources an answer leans on: inline source pills with a hover preview, favicon stacks, a sources sheet and a collapsible reference list.",
931
+ "dependencies": ["lucide-react", "motion"],
932
+ "registryDependencies": [
933
+ "@intelligo/ai-motion",
934
+ "hover-card",
935
+ "@intelligo/sheet"
936
+ ],
937
+ "files": [
938
+ {
939
+ "path": "base/ui/ai-citations/ai-citations.tsx",
940
+ "type": "registry:ui",
941
+ "target": "components/ui/ai-citations.tsx"
942
+ }
943
+ ]
944
+ },
945
+ {
946
+ "name": "ai-image-generation",
947
+ "type": "registry:ui",
948
+ "title": "AI Image Generation",
949
+ "description": "An image the agent is making: reserved frame, dither field while queued and generating, media sharpening in as it refines and completes.",
950
+ "dependencies": ["lucide-react", "motion"],
951
+ "registryDependencies": ["@intelligo/ai-motion", "@intelligo/button"],
952
+ "files": [
953
+ {
954
+ "path": "base/ui/ai-image-generation/ai-image-generation.tsx",
955
+ "type": "registry:ui",
956
+ "target": "components/ui/ai-image-generation.tsx"
957
+ }
958
+ ]
959
+ },
960
+ {
961
+ "name": "ai-reasoning-text",
962
+ "type": "registry:ui",
963
+ "title": "AI Reasoning Text",
964
+ "description": "What the agent is doing while it reasons: phrases cycle with a cascade, swap or scramble behind an ASCII loader.",
965
+ "dependencies": ["motion"],
966
+ "registryDependencies": [
967
+ "@intelligo/ai-motion",
968
+ "@intelligo/ai-shimmer-text"
969
+ ],
970
+ "files": [
971
+ {
972
+ "path": "base/ui/ai-reasoning-text/ai-reasoning-text.tsx",
973
+ "type": "registry:ui",
974
+ "target": "components/ui/ai-reasoning-text.tsx"
975
+ }
976
+ ]
977
+ },
978
+ {
979
+ "name": "ai-streaming-response",
980
+ "type": "registry:ui",
981
+ "title": "AI Streaming Response",
982
+ "description": "An assistant reply as it streams and once it lands: content, copy, retry and feedback actions, and a sources disclosure.",
983
+ "dependencies": ["lucide-react", "motion"],
984
+ "registryDependencies": [
985
+ "@intelligo/ai-citations",
986
+ "@intelligo/ai-motion",
987
+ "@intelligo/button"
988
+ ],
989
+ "files": [
990
+ {
991
+ "path": "base/ui/ai-streaming-response/ai-streaming-response.tsx",
992
+ "type": "registry:ui",
993
+ "target": "components/ui/ai-streaming-response.tsx"
994
+ }
995
+ ]
996
+ },
997
+ {
998
+ "name": "ai-sidebar",
999
+ "type": "registry:ui",
1000
+ "title": "AI Sidebar",
1001
+ "description": "The AI product's sidebar: a shell that morphs between a panel and an icon rail with tooltips, slides in as a sheet on mobile, holds menus with a gliding hover and active pill and staggered submenus, and a resource tree of folders, projects, conversations, files and bookmarks with keyboard and drag-and-drop moves, rename and a row menu.",
1002
+ "dependencies": ["motion", "lucide-react"],
1003
+ "registryDependencies": [
1004
+ "@intelligo/ai-motion",
1005
+ "@intelligo/button",
1006
+ "@intelligo/popover",
1007
+ "@intelligo/tooltip"
1008
+ ],
1009
+ "files": [
1010
+ {
1011
+ "path": "base/ui/ai-sidebar/ai-sidebar.tsx",
1012
+ "type": "registry:ui",
1013
+ "target": "components/ui/ai-sidebar.tsx"
1014
+ }
1015
+ ]
1016
+ },
1017
+ {
1018
+ "name": "document-viewer",
1019
+ "type": "registry:ui",
1020
+ "title": "Document Viewer",
1021
+ "description": "How a saved document reads when nobody is editing it: markdown with maths and diagrams, highlighted code, a sheet's rows, an image, and a sandboxed HTML preview — plus the title-to-language and kind-glyph helpers the chat canvas and the artifacts library share.",
1022
+ "dependencies": ["lucide-react"],
1023
+ "registryDependencies": [
1024
+ "@intelligo/ai-code-block",
1025
+ "@intelligo/ai-markdown"
1026
+ ],
1027
+ "files": [
1028
+ {
1029
+ "path": "base/ui/document-viewer/document-viewer.tsx",
1030
+ "type": "registry:ui",
1031
+ "target": "components/ui/document-viewer.tsx"
1032
+ }
1033
+ ]
1034
+ },
1035
+ {
1036
+ "name": "popover-morph",
1037
+ "type": "registry:ui",
1038
+ "title": "Popover Morph",
1039
+ "description": "A non-modal popover whose trigger surface grows into the panel through a shared layout and folds back on close.",
1040
+ "dependencies": ["@base-ui/react", "motion"],
1041
+ "registryDependencies": ["@intelligo/ai-motion"],
1042
+ "files": [
1043
+ {
1044
+ "path": "base/ui/popover-morph/popover-morph.tsx",
1045
+ "type": "registry:ui",
1046
+ "target": "components/ui/popover-morph.tsx"
1047
+ }
1048
+ ]
1049
+ },
1050
+ {
1051
+ "name": "select-morph",
1052
+ "type": "registry:ui",
1053
+ "title": "Select Morph",
1054
+ "description": "A select whose trigger continues into its list: the list unclips down from the trigger's edge as one surface while its options stagger in.",
1055
+ "dependencies": ["@base-ui/react", "motion", "lucide-react"],
1056
+ "registryDependencies": ["@intelligo/ai-motion"],
1057
+ "files": [
1058
+ {
1059
+ "path": "base/ui/select-morph/select-morph.tsx",
1060
+ "type": "registry:ui",
1061
+ "target": "components/ui/select-morph.tsx"
1062
+ }
1063
+ ]
1064
+ },
1065
+ {
1066
+ "name": "morphing-modal",
1067
+ "type": "registry:ui",
1068
+ "title": "Morphing Modal",
1069
+ "description": "A card or button that grows into a centred or bottom dialog through a shared layout, cross-fading between views while the panel resizes.",
1070
+ "dependencies": ["@base-ui/react", "motion", "lucide-react"],
1071
+ "registryDependencies": ["@intelligo/ai-motion", "@intelligo/button"],
1072
+ "files": [
1073
+ {
1074
+ "path": "base/ui/morphing-modal/morphing-modal.tsx",
1075
+ "type": "registry:ui",
1076
+ "target": "components/ui/morphing-modal.tsx"
1077
+ }
1078
+ ]
1079
+ },
1080
+ {
1081
+ "name": "notification-stack",
1082
+ "type": "registry:ui",
1083
+ "title": "Notification Stack",
1084
+ "description": "Notifications fanned into a stack — the newest in front, the rest peeking out scaled back — that springs apart into a list of openable, dismissable cards on hover or click.",
1085
+ "dependencies": ["@base-ui/react", "motion", "lucide-react"],
1086
+ "registryDependencies": ["@intelligo/ai-motion", "@intelligo/button"],
1087
+ "files": [
1088
+ {
1089
+ "path": "base/ui/notification-stack/notification-stack.tsx",
1090
+ "type": "registry:ui",
1091
+ "target": "components/ui/notification-stack.tsx"
1092
+ }
1093
+ ]
1094
+ },
1095
+ {
1096
+ "name": "animated-list",
1097
+ "type": "registry:ui",
1098
+ "title": "Animated List",
1099
+ "description": "A list container that staggers its rows in on mount, rows that rise in, fall out and glide on reorder (ul, ol, div or tbody/tr), and a block that reveals once as it scrolls into view.",
1100
+ "dependencies": ["motion"],
1101
+ "registryDependencies": ["@intelligo/ai-motion"],
1102
+ "files": [
1103
+ {
1104
+ "path": "base/ui/animated-list/animated-list.tsx",
1105
+ "type": "registry:ui",
1106
+ "target": "components/ui/animated-list.tsx"
1107
+ }
1108
+ ]
1109
+ },
1110
+ {
1111
+ "name": "otp-input",
1112
+ "type": "registry:ui",
1113
+ "title": "OTP Input",
1114
+ "description": "A one-time-code input on Base UI's OTP Field whose characters roll into their slots under a blinking caret, shaking on a rejected code and drawing a check on an accepted one.",
1115
+ "dependencies": ["@base-ui/react", "motion"],
1116
+ "registryDependencies": ["@intelligo/ai-motion"],
1117
+ "files": [
1118
+ {
1119
+ "path": "base/ui/otp-input/otp-input.tsx",
1120
+ "type": "registry:ui",
1121
+ "target": "components/ui/otp-input.tsx"
1122
+ }
1123
+ ]
1124
+ },
1125
+ {
1126
+ "name": "file-upload",
1127
+ "type": "registry:ui",
1128
+ "title": "File Upload",
1129
+ "description": "A controlled file upload — a drop zone with a queue of rows that slide in, fill a progress bar and settle on done or error, or a compact chat-composer wrapper with a drop overlay and chips.",
1130
+ "dependencies": ["motion", "lucide-react"],
1131
+ "registryDependencies": [
1132
+ "@intelligo/ai-motion",
1133
+ "@intelligo/button",
1134
+ "@intelligo/spinner"
1135
+ ],
1136
+ "files": [
1137
+ {
1138
+ "path": "base/ui/file-upload/file-upload.tsx",
1139
+ "type": "registry:ui",
1140
+ "target": "components/ui/file-upload.tsx"
1141
+ }
1142
+ ]
1143
+ },
1144
+ {
1145
+ "name": "expandable-tabs",
1146
+ "type": "registry:ui",
1147
+ "title": "Expandable Tabs",
1148
+ "description": "A bar of icon tabs on Base UI's Tabs where the active tab widens to unfurl its label, the pill glides to it and its panel rises in.",
1149
+ "dependencies": ["@base-ui/react", "motion"],
1150
+ "registryDependencies": ["@intelligo/ai-motion"],
1151
+ "files": [
1152
+ {
1153
+ "path": "base/ui/expandable-tabs/expandable-tabs.tsx",
1154
+ "type": "registry:ui",
1155
+ "target": "components/ui/expandable-tabs.tsx"
1156
+ }
1157
+ ]
1158
+ },
1159
+ {
1160
+ "name": "hold-action-button",
1161
+ "type": "registry:ui",
1162
+ "title": "Hold Action Button",
1163
+ "description": "A press-and-hold confirmation for a destructive action, by pointer or held Space/Enter, whose fill sweeps across while held and drains on an early release.",
1164
+ "dependencies": ["motion"],
1165
+ "registryDependencies": ["@intelligo/ai-motion", "@intelligo/button"],
1166
+ "files": [
1167
+ {
1168
+ "path": "base/ui/hold-action-button/hold-action-button.tsx",
1169
+ "type": "registry:ui",
1170
+ "target": "components/ui/hold-action-button.tsx"
1171
+ }
1172
+ ]
1173
+ },
1174
+ {
1175
+ "name": "smoke",
1176
+ "type": "registry:block",
1177
+ "title": "Registry Smoke Test",
1178
+ "description": "Permanent canary item that proves the registry build and install pipeline end to end.",
1179
+ "registryDependencies": ["@intelligo/button", "card"],
1180
+ "files": [
1181
+ {
1182
+ "path": "base/smoke/page.tsx",
1183
+ "type": "registry:page",
1184
+ "target": "app/[locale]/registry-smoke/page.tsx"
1185
+ },
1186
+ {
1187
+ "path": "base/smoke/components/smoke-card.tsx",
1188
+ "type": "registry:component",
1189
+ "target": "components/smoke/smoke-card.tsx"
1190
+ },
1191
+ {
1192
+ "path": "base/smoke/messages/en.json",
1193
+ "type": "registry:file",
1194
+ "target": "messages/en/smoke.json"
1195
+ }
1196
+ ],
1197
+ "dependencies": ["next-intl"]
1198
+ },
1199
+ {
1200
+ "name": "route-error",
1201
+ "type": "registry:block",
1202
+ "title": "Route Error States",
1203
+ "description": "The app's error surfaces: a shared RouteError component every error.tsx renders, message-based error classification, an (app) group boundary, a translated 404, and a dependency-free global-error. Error reporting goes through the lib/error-reporting.ts seam (a no-op until you bind a reporter), so no SDK enters the registry. Items that ship an error.tsx depend on this one - install it first.",
1204
+ "registryDependencies": ["alert", "@intelligo/button"],
1205
+ "dependencies": ["lucide-react", "next-intl"],
1206
+ "files": [
1207
+ {
1208
+ "path": "base/route-error/components/route-error.tsx",
1209
+ "type": "registry:component",
1210
+ "target": "components/shared/route-error.tsx"
1211
+ },
1212
+ {
1213
+ "path": "base/route-error/lib/get-error-type.ts",
1214
+ "type": "registry:file",
1215
+ "target": "lib/errors/get-error-type.ts"
1216
+ },
1217
+ {
1218
+ "path": "base/route-error/lib/error-reporting.ts",
1219
+ "type": "registry:file",
1220
+ "target": "lib/error-reporting.ts"
1221
+ },
1222
+ {
1223
+ "path": "base/route-error/app-error.tsx",
1224
+ "type": "registry:page",
1225
+ "target": "app/[locale]/(app)/error.tsx"
1226
+ },
1227
+ {
1228
+ "path": "base/route-error/not-found.tsx",
1229
+ "type": "registry:page",
1230
+ "target": "app/[locale]/not-found.tsx"
1231
+ },
1232
+ {
1233
+ "path": "base/route-error/root-not-found.tsx",
1234
+ "type": "registry:page",
1235
+ "target": "app/not-found.tsx"
1236
+ },
1237
+ {
1238
+ "path": "base/route-error/global-error.tsx",
1239
+ "type": "registry:page",
1240
+ "target": "app/global-error.tsx"
1241
+ },
1242
+ {
1243
+ "path": "base/route-error/messages/en.json",
1244
+ "type": "registry:file",
1245
+ "target": "messages/en/route-error.json"
1246
+ }
1247
+ ]
1248
+ },
1249
+ {
1250
+ "name": "team-settings",
1251
+ "type": "registry:block",
1252
+ "title": "Team Settings",
1253
+ "description": "Workspace team management: invite members, change roles, remove members, and manage pending invitations, backed by the framework's team service.",
1254
+ "registryDependencies": [
1255
+ "@intelligo/alert-dialog",
1256
+ "badge",
1257
+ "@intelligo/button",
1258
+ "card",
1259
+ "@intelligo/dialog",
1260
+ "@intelligo/input",
1261
+ "label",
1262
+ "@intelligo/select",
1263
+ "skeleton",
1264
+ "table",
1265
+ "@intelligo/page-header"
1266
+ ],
1267
+ "dependencies": [
1268
+ "@intelligo-dev/auth",
1269
+ "@intelligo-dev/core",
1270
+ "@intelligo-dev/billing",
1271
+ "@intelligo-dev/next",
1272
+ "sonner",
1273
+ "server-only",
1274
+ "next-intl"
1275
+ ],
1276
+ "files": [
1277
+ {
1278
+ "path": "base/team-settings/page.tsx",
1279
+ "type": "registry:page",
1280
+ "target": "app/[locale]/(app)/settings/team/page.tsx"
1281
+ },
1282
+ {
1283
+ "path": "base/team-settings/loading.tsx",
1284
+ "type": "registry:page",
1285
+ "target": "app/[locale]/(app)/settings/team/loading.tsx"
1286
+ },
1287
+ {
1288
+ "path": "base/team-settings/components/member-list.tsx",
1289
+ "type": "registry:component",
1290
+ "target": "components/team/member-list.tsx"
1291
+ },
1292
+ {
1293
+ "path": "base/team-settings/components/invite-member-form.tsx",
1294
+ "type": "registry:component",
1295
+ "target": "components/team/invite-member-form.tsx"
1296
+ },
1297
+ {
1298
+ "path": "base/team-settings/components/pending-invitations.tsx",
1299
+ "type": "registry:component",
1300
+ "target": "components/team/pending-invitations.tsx"
1301
+ },
1302
+ {
1303
+ "path": "base/team-settings/components/role-badge.tsx",
1304
+ "type": "registry:component",
1305
+ "target": "components/team/role-badge.tsx"
1306
+ },
1307
+ {
1308
+ "path": "base/team-settings/components/leave-workspace.tsx",
1309
+ "type": "registry:component",
1310
+ "target": "components/team/leave-workspace.tsx"
1311
+ },
1312
+ {
1313
+ "path": "base/team-settings/actions.ts",
1314
+ "type": "registry:file",
1315
+ "target": "actions/team.ts"
1316
+ },
1317
+ {
1318
+ "path": "base/team-settings/lib/team.ts",
1319
+ "type": "registry:file",
1320
+ "target": "lib/team.ts"
1321
+ },
1322
+ {
1323
+ "path": "base/team-settings/messages/en.json",
1324
+ "type": "registry:file",
1325
+ "target": "messages/en/team-settings.json"
1326
+ },
1327
+ {
1328
+ "path": "base/team-settings/error.tsx",
1329
+ "type": "registry:page",
1330
+ "target": "app/[locale]/(app)/settings/team/error.tsx"
1331
+ }
1332
+ ]
1333
+ },
1334
+ {
1335
+ "name": "usage",
1336
+ "type": "registry:block",
1337
+ "title": "Usage",
1338
+ "description": "Workspace usage dashboard: current-period summary tiles, a period selector, and a table of recent AI execution records.",
1339
+ "registryDependencies": [
1340
+ "card",
1341
+ "@intelligo/progress",
1342
+ "skeleton",
1343
+ "table",
1344
+ "@intelligo/tabs",
1345
+ "@intelligo/button",
1346
+ "@intelligo/page-header",
1347
+ "@intelligo/stat-card",
1348
+ "@intelligo/status-badge",
1349
+ "@intelligo/animated-list"
1350
+ ],
1351
+ "dependencies": [
1352
+ "@intelligo-dev/auth",
1353
+ "@intelligo-dev/billing",
1354
+ "@intelligo-dev/core",
1355
+ "@intelligo-dev/executions",
1356
+ "@intelligo-dev/next",
1357
+ "lucide-react",
1358
+ "next-intl"
1359
+ ],
1360
+ "files": [
1361
+ {
1362
+ "path": "base/usage/page.tsx",
1363
+ "type": "registry:page",
1364
+ "target": "app/[locale]/(app)/usage/page.tsx"
1365
+ },
1366
+ {
1367
+ "path": "base/usage/loading.tsx",
1368
+ "type": "registry:page",
1369
+ "target": "app/[locale]/(app)/usage/loading.tsx"
1370
+ },
1371
+ {
1372
+ "path": "base/usage/actions.ts",
1373
+ "type": "registry:file",
1374
+ "target": "actions/usage.ts"
1375
+ },
1376
+ {
1377
+ "path": "base/usage/components/usage-summary-cards.tsx",
1378
+ "type": "registry:component",
1379
+ "target": "components/usage/usage-summary-cards.tsx"
1380
+ },
1381
+ {
1382
+ "path": "base/usage/components/usage-chart.tsx",
1383
+ "type": "registry:component",
1384
+ "target": "components/usage/usage-chart.tsx"
1385
+ },
1386
+ {
1387
+ "path": "base/usage/components/usage-records-table.tsx",
1388
+ "type": "registry:component",
1389
+ "target": "components/usage/usage-records-table.tsx"
1390
+ },
1391
+ {
1392
+ "path": "base/usage/components/usage-empty-state.tsx",
1393
+ "type": "registry:component",
1394
+ "target": "components/usage/usage-empty-state.tsx"
1395
+ },
1396
+ {
1397
+ "path": "base/usage/messages/en.json",
1398
+ "type": "registry:file",
1399
+ "target": "messages/en/usage.json"
1400
+ },
1401
+ {
1402
+ "path": "base/usage/error.tsx",
1403
+ "type": "registry:page",
1404
+ "target": "app/[locale]/(app)/usage/error.tsx"
1405
+ }
1406
+ ]
1407
+ },
1408
+ {
1409
+ "name": "invitation-accept",
1410
+ "type": "registry:block",
1411
+ "title": "Invitation Accept",
1412
+ "description": "Accept or decline a workspace invitation via the team service. Requires the team-settings item (provides lib/team.ts and the role badge); install it first.",
1413
+ "registryDependencies": [
1414
+ "alert",
1415
+ "card",
1416
+ "skeleton",
1417
+ "@intelligo/button"
1418
+ ],
1419
+ "dependencies": [
1420
+ "@intelligo-dev/auth",
1421
+ "@intelligo-dev/core",
1422
+ "@intelligo-dev/next",
1423
+ "sonner",
1424
+ "next-intl"
1425
+ ],
1426
+ "files": [
1427
+ {
1428
+ "path": "base/invitation-accept/page.tsx",
1429
+ "type": "registry:page",
1430
+ "target": "app/[locale]/accept-invitation/[id]/page.tsx"
1431
+ },
1432
+ {
1433
+ "path": "base/invitation-accept/layout.tsx",
1434
+ "type": "registry:page",
1435
+ "target": "app/[locale]/accept-invitation/[id]/layout.tsx"
1436
+ },
1437
+ {
1438
+ "path": "base/invitation-accept/loading.tsx",
1439
+ "type": "registry:page",
1440
+ "target": "app/[locale]/accept-invitation/[id]/loading.tsx"
1441
+ },
1442
+ {
1443
+ "path": "base/invitation-accept/error.tsx",
1444
+ "type": "registry:page",
1445
+ "target": "app/[locale]/accept-invitation/[id]/error.tsx"
1446
+ },
1447
+ {
1448
+ "path": "base/invitation-accept/components/invitation-actions.tsx",
1449
+ "type": "registry:component",
1450
+ "target": "components/invitation/invitation-actions.tsx"
1451
+ },
1452
+ {
1453
+ "path": "base/invitation-accept/actions.ts",
1454
+ "type": "registry:file",
1455
+ "target": "actions/invitation.ts"
1456
+ },
1457
+ {
1458
+ "path": "base/invitation-accept/messages/en.json",
1459
+ "type": "registry:file",
1460
+ "target": "messages/en/invitation-accept.json"
1461
+ }
1462
+ ]
1463
+ },
1464
+ {
1465
+ "name": "app-shell",
1466
+ "type": "registry:block",
1467
+ "title": "App Shell",
1468
+ "description": "Authenticated application shell: session and onboarding gate, workspace bootstrap, a sidebar that morphs into an icon rail with a gliding active pill, workspace switcher, configurable nav and user menu, and a page region that lifts each section in.",
1469
+ "registryDependencies": [
1470
+ "avatar",
1471
+ "@intelligo/dropdown-menu",
1472
+ "separator",
1473
+ "@intelligo/ai-sidebar",
1474
+ "@intelligo/ai-motion"
1475
+ ],
1476
+ "dependencies": [
1477
+ "@intelligo-dev/auth",
1478
+ "@intelligo-dev/core",
1479
+ "next-themes",
1480
+ "drizzle-orm",
1481
+ "lucide-react",
1482
+ "sonner",
1483
+ "motion",
1484
+ "server-only",
1485
+ "next-intl"
1486
+ ],
1487
+ "files": [
1488
+ {
1489
+ "path": "base/app-shell/layout.tsx",
1490
+ "type": "registry:page",
1491
+ "target": "app/[locale]/(app)/layout.tsx"
1492
+ },
1493
+ {
1494
+ "path": "base/app-shell/components/app-sidebar.tsx",
1495
+ "type": "registry:component",
1496
+ "target": "components/shell/app-sidebar.tsx"
1497
+ },
1498
+ {
1499
+ "path": "base/app-shell/components/workspace-switcher.tsx",
1500
+ "type": "registry:component",
1501
+ "target": "components/shell/workspace-switcher.tsx"
1502
+ },
1503
+ {
1504
+ "path": "base/app-shell/components/user-menu.tsx",
1505
+ "type": "registry:component",
1506
+ "target": "components/shell/user-menu.tsx"
1507
+ },
1508
+ {
1509
+ "path": "base/app-shell/components/shell-header.tsx",
1510
+ "type": "registry:component",
1511
+ "target": "components/shell/shell-header.tsx"
1512
+ },
1513
+ {
1514
+ "path": "base/app-shell/components/theme-provider.tsx",
1515
+ "type": "registry:component",
1516
+ "target": "components/shell/theme-provider.tsx"
1517
+ },
1518
+ {
1519
+ "path": "base/app-shell/components/page-transition.tsx",
1520
+ "type": "registry:component",
1521
+ "target": "components/shell/page-transition.tsx"
1522
+ },
1523
+ {
1524
+ "path": "base/app-shell/components/time-zone-cookie.tsx",
1525
+ "type": "registry:component",
1526
+ "target": "components/shell/time-zone-cookie.tsx"
1527
+ },
1528
+ {
1529
+ "path": "base/app-shell/lib/shell-config.tsx",
1530
+ "type": "registry:file",
1531
+ "target": "lib/shell-config.tsx"
1532
+ },
1533
+ {
1534
+ "path": "base/app-shell/messages/en.json",
1535
+ "type": "registry:file",
1536
+ "target": "messages/en/app-shell.json"
1537
+ },
1538
+ {
1539
+ "path": "base/app-shell/lib/nav-config.ts",
1540
+ "type": "registry:file",
1541
+ "target": "lib/nav-config.ts"
1542
+ }
1543
+ ]
1544
+ },
1545
+ {
1546
+ "name": "settings-shell",
1547
+ "type": "registry:block",
1548
+ "title": "Settings Shell",
1549
+ "description": "The shared frame around every /settings page: layout with heading and width constraint, a configurable tab bar (lib/settings-nav.ts), and a /settings index that redirects to the first tab. Install alongside the settings items - without it they render unframed and plain /settings links 404.",
1550
+ "registryDependencies": ["@intelligo/tabs", "@intelligo/page-header"],
1551
+ "dependencies": ["lucide-react", "next-intl"],
1552
+ "files": [
1553
+ {
1554
+ "path": "base/settings-shell/layout.tsx",
1555
+ "type": "registry:page",
1556
+ "target": "app/[locale]/(app)/settings/layout.tsx"
1557
+ },
1558
+ {
1559
+ "path": "base/settings-shell/page.tsx",
1560
+ "type": "registry:page",
1561
+ "target": "app/[locale]/(app)/settings/page.tsx"
1562
+ },
1563
+ {
1564
+ "path": "base/settings-shell/components/settings-tabs.tsx",
1565
+ "type": "registry:component",
1566
+ "target": "components/settings/settings-tabs.tsx"
1567
+ },
1568
+ {
1569
+ "path": "base/settings-shell/lib/settings-nav.ts",
1570
+ "type": "registry:file",
1571
+ "target": "lib/settings-nav.ts"
1572
+ },
1573
+ {
1574
+ "path": "base/settings-shell/messages/en.json",
1575
+ "type": "registry:file",
1576
+ "target": "messages/en/settings-shell.json"
1577
+ }
1578
+ ]
1579
+ },
1580
+ {
1581
+ "name": "workspace-settings",
1582
+ "type": "registry:block",
1583
+ "title": "Workspace Settings",
1584
+ "description": "Workspace name/URL editing and owner-only deletion, backed by the framework's workspace service.",
1585
+ "registryDependencies": [
1586
+ "@intelligo/button",
1587
+ "card",
1588
+ "@intelligo/dialog",
1589
+ "@intelligo/input",
1590
+ "label",
1591
+ "skeleton",
1592
+ "@intelligo/page-header",
1593
+ "@intelligo/hold-action-button"
1594
+ ],
1595
+ "dependencies": [
1596
+ "@intelligo-dev/auth",
1597
+ "@intelligo-dev/core",
1598
+ "@intelligo-dev/billing",
1599
+ "@intelligo-dev/next",
1600
+ "drizzle-orm",
1601
+ "sonner",
1602
+ "server-only",
1603
+ "next-intl"
1604
+ ],
1605
+ "files": [
1606
+ {
1607
+ "path": "base/workspace-settings/page.tsx",
1608
+ "type": "registry:page",
1609
+ "target": "app/[locale]/(app)/settings/workspace/page.tsx"
1610
+ },
1611
+ {
1612
+ "path": "base/workspace-settings/loading.tsx",
1613
+ "type": "registry:page",
1614
+ "target": "app/[locale]/(app)/settings/workspace/loading.tsx"
1615
+ },
1616
+ {
1617
+ "path": "base/workspace-settings/components/workspace-settings-form.tsx",
1618
+ "type": "registry:component",
1619
+ "target": "components/workspace/workspace-settings-form.tsx"
1620
+ },
1621
+ {
1622
+ "path": "base/workspace-settings/actions.ts",
1623
+ "type": "registry:file",
1624
+ "target": "actions/workspace.ts"
1625
+ },
1626
+ {
1627
+ "path": "base/workspace-settings/lib/workspace.ts",
1628
+ "type": "registry:file",
1629
+ "target": "lib/workspace.ts"
1630
+ },
1631
+ {
1632
+ "path": "base/workspace-settings/messages/en.json",
1633
+ "type": "registry:file",
1634
+ "target": "messages/en/workspace-settings.json"
1635
+ },
1636
+ {
1637
+ "path": "base/workspace-settings/error.tsx",
1638
+ "type": "registry:page",
1639
+ "target": "app/[locale]/(app)/settings/workspace/error.tsx"
1640
+ }
1641
+ ]
1642
+ },
1643
+ {
1644
+ "name": "auth-login",
1645
+ "type": "registry:block",
1646
+ "title": "Auth: Login",
1647
+ "description": "Email/password and OAuth login. Ships the shared auth route layout, the de-branded AuthCard shell, and the auth-validation.ts zod schemas reused by auth-signup, auth-password-reset, and auth-email-verification - install this item first.",
1648
+ "registryDependencies": [
1649
+ "alert",
1650
+ "@intelligo/button",
1651
+ "@intelligo/input",
1652
+ "@intelligo/spinner",
1653
+ "field"
1654
+ ],
1655
+ "dependencies": [
1656
+ "@intelligo-dev/auth",
1657
+ "react-hook-form@^7.71.1",
1658
+ "@hookform/resolvers@^5.2.2",
1659
+ "zod@^4.6.5",
1660
+ "lucide-react",
1661
+ "next-intl"
1662
+ ],
1663
+ "files": [
1664
+ {
1665
+ "path": "base/auth-login/layout.tsx",
1666
+ "type": "registry:page",
1667
+ "target": "app/[locale]/(auth)/layout.tsx"
1668
+ },
1669
+ {
1670
+ "path": "base/auth-login/page.tsx",
1671
+ "type": "registry:page",
1672
+ "target": "app/[locale]/(auth)/login/page.tsx"
1673
+ },
1674
+ {
1675
+ "path": "base/auth-login/components/auth-card.tsx",
1676
+ "type": "registry:component",
1677
+ "target": "components/auth/auth-card.tsx"
1678
+ },
1679
+ {
1680
+ "path": "base/auth-login/components/login-form.tsx",
1681
+ "type": "registry:component",
1682
+ "target": "components/auth/login-form.tsx"
1683
+ },
1684
+ {
1685
+ "path": "base/auth-login/components/social-login-buttons.tsx",
1686
+ "type": "registry:component",
1687
+ "target": "components/auth/social-login-buttons.tsx"
1688
+ },
1689
+ {
1690
+ "path": "base/auth-login/lib/auth-validation.ts",
1691
+ "type": "registry:file",
1692
+ "target": "lib/auth-validation.ts"
1693
+ },
1694
+ {
1695
+ "path": "base/auth-login/messages/en.json",
1696
+ "type": "registry:file",
1697
+ "target": "messages/en/auth-login.json"
1698
+ },
1699
+ {
1700
+ "path": "base/auth-login/auth-error.tsx",
1701
+ "type": "registry:page",
1702
+ "target": "app/[locale]/(auth)/error.tsx"
1703
+ }
1704
+ ]
1705
+ },
1706
+ {
1707
+ "name": "auth-signup",
1708
+ "type": "registry:block",
1709
+ "title": "Auth: Signup",
1710
+ "description": "Email/password and OAuth account creation. Requires the auth-login item (provides the shared AuthCard shell, SocialLoginButtons, and lib/auth-validation.ts schemas); install it first. Redirects to auth-email-verification's /verify-email route when the server requires email verification.",
1711
+ "registryDependencies": [
1712
+ "alert",
1713
+ "@intelligo/button",
1714
+ "@intelligo/input",
1715
+ "@intelligo/spinner",
1716
+ "field"
1717
+ ],
1718
+ "dependencies": [
1719
+ "@intelligo-dev/auth",
1720
+ "react-hook-form@^7.71.1",
1721
+ "@hookform/resolvers@^5.2.2",
1722
+ "lucide-react",
1723
+ "next-intl"
1724
+ ],
1725
+ "files": [
1726
+ {
1727
+ "path": "base/auth-signup/page.tsx",
1728
+ "type": "registry:page",
1729
+ "target": "app/[locale]/(auth)/signup/page.tsx"
1730
+ },
1731
+ {
1732
+ "path": "base/auth-signup/components/signup-form.tsx",
1733
+ "type": "registry:component",
1734
+ "target": "components/auth/signup-form.tsx"
1735
+ },
1736
+ {
1737
+ "path": "base/auth-signup/messages/en.json",
1738
+ "type": "registry:file",
1739
+ "target": "messages/en/auth-signup.json"
1740
+ }
1741
+ ]
1742
+ },
1743
+ {
1744
+ "name": "auth-password-reset",
1745
+ "type": "registry:block",
1746
+ "title": "Auth: Password Reset",
1747
+ "description": "Forgot-password and reset-password pages, backed by the Better-Auth client SDK's requestPasswordReset/resetPassword actions. Requires the auth-login item (provides the shared AuthCard shell and lib/auth-validation.ts schemas); install it first.",
1748
+ "registryDependencies": [
1749
+ "alert",
1750
+ "@intelligo/button",
1751
+ "@intelligo/input",
1752
+ "@intelligo/spinner",
1753
+ "field"
1754
+ ],
1755
+ "dependencies": [
1756
+ "@intelligo-dev/auth",
1757
+ "react-hook-form@^7.71.1",
1758
+ "@hookform/resolvers@^5.2.2",
1759
+ "lucide-react",
1760
+ "next-intl"
1761
+ ],
1762
+ "files": [
1763
+ {
1764
+ "path": "base/auth-password-reset/forgot-page.tsx",
1765
+ "type": "registry:page",
1766
+ "target": "app/[locale]/(auth)/forgot-password/page.tsx"
1767
+ },
1768
+ {
1769
+ "path": "base/auth-password-reset/reset-page.tsx",
1770
+ "type": "registry:page",
1771
+ "target": "app/[locale]/(auth)/reset-password/page.tsx"
1772
+ },
1773
+ {
1774
+ "path": "base/auth-password-reset/components/forgot-password-form.tsx",
1775
+ "type": "registry:component",
1776
+ "target": "components/auth/forgot-password-form.tsx"
1777
+ },
1778
+ {
1779
+ "path": "base/auth-password-reset/components/reset-password-form.tsx",
1780
+ "type": "registry:component",
1781
+ "target": "components/auth/reset-password-form.tsx"
1782
+ },
1783
+ {
1784
+ "path": "base/auth-password-reset/messages/en.json",
1785
+ "type": "registry:file",
1786
+ "target": "messages/en/auth-password-reset.json"
1787
+ }
1788
+ ]
1789
+ },
1790
+ {
1791
+ "name": "auth-email-verification",
1792
+ "type": "registry:block",
1793
+ "title": "Auth: Email Verification",
1794
+ "description": "Post-signup email verification status page with a resend control, backed by the Better-Auth client SDK's sendVerificationEmail action. Reads the ?error=/?email= search params Better-Auth's own /verify-email link handler redirects back with. Requires the auth-login item (provides the shared AuthCard shell); install it first.",
1795
+ "registryDependencies": [
1796
+ "alert",
1797
+ "@intelligo/button",
1798
+ "@intelligo/input",
1799
+ "@intelligo/spinner",
1800
+ "field"
1801
+ ],
1802
+ "dependencies": ["@intelligo-dev/auth", "lucide-react", "next-intl"],
1803
+ "files": [
1804
+ {
1805
+ "path": "base/auth-email-verification/page.tsx",
1806
+ "type": "registry:page",
1807
+ "target": "app/[locale]/(auth)/verify-email/page.tsx"
1808
+ },
1809
+ {
1810
+ "path": "base/auth-email-verification/components/resend-verification-button.tsx",
1811
+ "type": "registry:component",
1812
+ "target": "components/auth/resend-verification-button.tsx"
1813
+ },
1814
+ {
1815
+ "path": "base/auth-email-verification/messages/en.json",
1816
+ "type": "registry:file",
1817
+ "target": "messages/en/auth-email-verification.json"
1818
+ }
1819
+ ]
1820
+ },
1821
+ {
1822
+ "name": "language-switcher",
1823
+ "type": "registry:block",
1824
+ "title": "Language Switcher",
1825
+ "description": "Locale dropdown over the locales i18n/routing.ts declares, labeled with each language's own name. Renders nothing in a single-locale deployment, so it is safe to mount unconditionally (e.g. in shellConfig.headerRight). Adding a locale to routing.ts plus a messages directory is the whole job.",
1826
+ "registryDependencies": ["@intelligo/button", "@intelligo/dropdown-menu"],
1827
+ "dependencies": ["lucide-react", "next-intl"],
1828
+ "files": [
1829
+ {
1830
+ "path": "base/language-switcher/components/language-switcher.tsx",
1831
+ "type": "registry:component",
1832
+ "target": "components/layout/language-switcher.tsx"
1833
+ },
1834
+ {
1835
+ "path": "base/language-switcher/messages/en.json",
1836
+ "type": "registry:file",
1837
+ "target": "messages/en/language-switcher.json"
1838
+ }
1839
+ ]
1840
+ },
1841
+ {
1842
+ "name": "trial-banner",
1843
+ "type": "registry:block",
1844
+ "title": "Trial Banner",
1845
+ "description": "Dismissable trial-status strip for the app shell's bannerTop seam: days and credits remaining with an upgrade CTA, urgency-ramped visuals, dismiss-for-today, and a consumer config (lib/trial-banner-config.ts) for the CTA target and route suppression (hidden on /chat by default). Bind TrialBannerContainer as shellConfig.bannerTop.",
1846
+ "registryDependencies": ["@intelligo/button"],
1847
+ "dependencies": [
1848
+ "@intelligo-dev/auth",
1849
+ "@intelligo-dev/billing",
1850
+ "@intelligo-dev/core",
1851
+ "lucide-react",
1852
+ "next-intl"
1853
+ ],
1854
+ "files": [
1855
+ {
1856
+ "path": "base/trial-banner/components/trial-banner-container.tsx",
1857
+ "type": "registry:component",
1858
+ "target": "components/trial/trial-banner-container.tsx"
1859
+ },
1860
+ {
1861
+ "path": "base/trial-banner/components/trial-banner.tsx",
1862
+ "type": "registry:component",
1863
+ "target": "components/trial/trial-banner.tsx"
1864
+ },
1865
+ {
1866
+ "path": "base/trial-banner/lib/trial-banner-config.ts",
1867
+ "type": "registry:file",
1868
+ "target": "lib/trial-banner-config.ts"
1869
+ },
1870
+ {
1871
+ "path": "base/trial-banner/messages/en.json",
1872
+ "type": "registry:file",
1873
+ "target": "messages/en/trial-banner.json"
1874
+ }
1875
+ ]
1876
+ },
1877
+ {
1878
+ "name": "notifications",
1879
+ "type": "registry:block",
1880
+ "title": "Notifications",
1881
+ "description": "Notification bell with an unread badge and dropdown, plus a full notifications page with mark-as-read and load-more, backed by the framework's notification records.",
1882
+ "registryDependencies": [
1883
+ "@intelligo/button",
1884
+ "@intelligo/popover",
1885
+ "scroll-area",
1886
+ "separator",
1887
+ "skeleton",
1888
+ "@intelligo/page-header",
1889
+ "@intelligo/ai-motion",
1890
+ "@intelligo/animated-list",
1891
+ "@intelligo/notification-stack"
1892
+ ],
1893
+ "dependencies": [
1894
+ "@intelligo-dev/auth",
1895
+ "@intelligo-dev/core",
1896
+ "@intelligo-dev/next",
1897
+ "lucide-react",
1898
+ "next-intl"
1899
+ ],
1900
+ "files": [
1901
+ {
1902
+ "path": "base/notifications/page.tsx",
1903
+ "type": "registry:page",
1904
+ "target": "app/[locale]/(app)/notifications/page.tsx"
1905
+ },
1906
+ {
1907
+ "path": "base/notifications/loading.tsx",
1908
+ "type": "registry:page",
1909
+ "target": "app/[locale]/(app)/notifications/loading.tsx"
1910
+ },
1911
+ {
1912
+ "path": "base/notifications/components/notification-bell.tsx",
1913
+ "type": "registry:component",
1914
+ "target": "components/notifications/notification-bell.tsx"
1915
+ },
1916
+ {
1917
+ "path": "base/notifications/components/notification-list.tsx",
1918
+ "type": "registry:component",
1919
+ "target": "components/notifications/notification-list.tsx"
1920
+ },
1921
+ {
1922
+ "path": "base/notifications/components/notification-item.tsx",
1923
+ "type": "registry:component",
1924
+ "target": "components/notifications/notification-item.tsx"
1925
+ },
1926
+ {
1927
+ "path": "base/notifications/hooks/use-notifications.ts",
1928
+ "type": "registry:hook",
1929
+ "target": "hooks/use-notifications.ts"
1930
+ },
1931
+ {
1932
+ "path": "base/notifications/actions.ts",
1933
+ "type": "registry:file",
1934
+ "target": "actions/notifications.ts"
1935
+ },
1936
+ {
1937
+ "path": "base/notifications/lib/notification-types.tsx",
1938
+ "type": "registry:file",
1939
+ "target": "lib/notification-types.tsx"
1940
+ },
1941
+ {
1942
+ "path": "base/notifications/messages/en.json",
1943
+ "type": "registry:file",
1944
+ "target": "messages/en/notifications.json"
1945
+ },
1946
+ {
1947
+ "path": "base/notifications/error.tsx",
1948
+ "type": "registry:page",
1949
+ "target": "app/[locale]/(app)/notifications/error.tsx"
1950
+ }
1951
+ ]
1952
+ },
1953
+ {
1954
+ "name": "pricing",
1955
+ "type": "registry:block",
1956
+ "title": "Pricing",
1957
+ "description": "Plan comparison and upgrade page with a monthly/yearly toggle, backed by the framework's checkout service and the product's registered plan catalogue. Ships the lib/billing.ts product binding and actions/billing.ts checkout actions that the checkout and billing-settings items also depend on — install this item first.",
1958
+ "registryDependencies": [
1959
+ "alert",
1960
+ "badge",
1961
+ "@intelligo/button",
1962
+ "card",
1963
+ "skeleton",
1964
+ "@intelligo/animated-list"
1965
+ ],
1966
+ "dependencies": [
1967
+ "@intelligo-dev/core",
1968
+ "@intelligo-dev/auth",
1969
+ "@intelligo-dev/billing",
1970
+ "@intelligo-dev/next",
1971
+ "zod@^4.6.5",
1972
+ "lucide-react",
1973
+ "server-only",
1974
+ "next-intl"
1975
+ ],
1976
+ "files": [
1977
+ {
1978
+ "path": "base/pricing/page.tsx",
1979
+ "type": "registry:page",
1980
+ "target": "app/[locale]/(app)/pricing/page.tsx"
1981
+ },
1982
+ {
1983
+ "path": "base/pricing/loading.tsx",
1984
+ "type": "registry:page",
1985
+ "target": "app/[locale]/(app)/pricing/loading.tsx"
1986
+ },
1987
+ {
1988
+ "path": "base/pricing/error.tsx",
1989
+ "type": "registry:page",
1990
+ "target": "app/[locale]/(app)/pricing/error.tsx"
1991
+ },
1992
+ {
1993
+ "path": "base/pricing/components/pricing-content.tsx",
1994
+ "type": "registry:component",
1995
+ "target": "components/billing/pricing-content.tsx"
1996
+ },
1997
+ {
1998
+ "path": "base/pricing/components/plan-card.tsx",
1999
+ "type": "registry:component",
2000
+ "target": "components/billing/plan-card.tsx"
2001
+ },
2002
+ {
2003
+ "path": "base/pricing/components/interval-toggle.tsx",
2004
+ "type": "registry:component",
2005
+ "target": "components/billing/interval-toggle.tsx"
2006
+ },
2007
+ {
2008
+ "path": "base/pricing/components/checkout-button.tsx",
2009
+ "type": "registry:component",
2010
+ "target": "components/billing/checkout-button.tsx"
2011
+ },
2012
+ {
2013
+ "path": "base/pricing/actions.ts",
2014
+ "type": "registry:file",
2015
+ "target": "actions/billing.ts"
2016
+ },
2017
+ {
2018
+ "path": "base/pricing/lib/billing.ts",
2019
+ "type": "registry:file",
2020
+ "target": "lib/billing.ts"
2021
+ },
2022
+ {
2023
+ "path": "base/pricing/lib/billing-config.ts",
2024
+ "type": "registry:file",
2025
+ "target": "lib/billing-config.ts"
2026
+ },
2027
+ {
2028
+ "path": "base/pricing/lib/format-money.ts",
2029
+ "type": "registry:file",
2030
+ "target": "lib/format-money.ts"
2031
+ },
2032
+ {
2033
+ "path": "base/pricing/lib/plan-copy.ts",
2034
+ "type": "registry:file",
2035
+ "target": "lib/plan-copy.ts"
2036
+ },
2037
+ {
2038
+ "path": "base/pricing/messages/en.json",
2039
+ "type": "registry:file",
2040
+ "target": "messages/en/pricing.json"
2041
+ },
2042
+ {
2043
+ "path": "base/pricing/messages/plans/en.json",
2044
+ "type": "registry:file",
2045
+ "target": "messages/en/plans.json"
2046
+ }
2047
+ ]
2048
+ },
2049
+ {
2050
+ "name": "checkout",
2051
+ "type": "registry:block",
2052
+ "title": "Checkout",
2053
+ "description": "Checkout-success page that verifies the Stripe session directly through the framework's checkout service, covering the webhook-race window between the browser redirect and Stripe's webhook delivery.",
2054
+ "registryDependencies": [
2055
+ "alert",
2056
+ "@intelligo/button",
2057
+ "card",
2058
+ "@intelligo/spinner",
2059
+ "@intelligo/status-badge"
2060
+ ],
2061
+ "dependencies": [
2062
+ "@intelligo-dev/auth",
2063
+ "@intelligo-dev/billing",
2064
+ "lucide-react",
2065
+ "next-intl"
2066
+ ],
2067
+ "files": [
2068
+ {
2069
+ "path": "base/checkout/success-page.tsx",
2070
+ "type": "registry:page",
2071
+ "target": "app/[locale]/(app)/checkout/success/page.tsx"
2072
+ },
2073
+ {
2074
+ "path": "base/checkout/error.tsx",
2075
+ "type": "registry:page",
2076
+ "target": "app/[locale]/(app)/checkout/success/error.tsx"
2077
+ },
2078
+ {
2079
+ "path": "base/checkout/messages/en.json",
2080
+ "type": "registry:file",
2081
+ "target": "messages/en/checkout.json"
2082
+ }
2083
+ ]
2084
+ },
2085
+ {
2086
+ "name": "billing-settings",
2087
+ "type": "registry:block",
2088
+ "title": "Billing Settings",
2089
+ "description": "Workspace billing management: current plan, credit balance, credit bundle purchase, and the Stripe billing portal, shaped server-side by role (member/admin/owner). Requires the pricing item (provides lib/billing.ts and actions/billing.ts); install it first.",
2090
+ "registryDependencies": [
2091
+ "alert",
2092
+ "@intelligo/button",
2093
+ "card",
2094
+ "skeleton",
2095
+ "@intelligo/page-header",
2096
+ "@intelligo/stat-card",
2097
+ "@intelligo/animated-list"
2098
+ ],
2099
+ "dependencies": [
2100
+ "@intelligo-dev/auth",
2101
+ "@intelligo-dev/billing",
2102
+ "lucide-react",
2103
+ "next-intl"
2104
+ ],
2105
+ "files": [
2106
+ {
2107
+ "path": "base/billing-settings/page.tsx",
2108
+ "type": "registry:page",
2109
+ "target": "app/[locale]/(app)/settings/billing/page.tsx"
2110
+ },
2111
+ {
2112
+ "path": "base/billing-settings/loading.tsx",
2113
+ "type": "registry:page",
2114
+ "target": "app/[locale]/(app)/settings/billing/loading.tsx"
2115
+ },
2116
+ {
2117
+ "path": "base/billing-settings/components/portal-button.tsx",
2118
+ "type": "registry:component",
2119
+ "target": "components/billing/portal-button.tsx"
2120
+ },
2121
+ {
2122
+ "path": "base/billing-settings/components/credit-bundles.tsx",
2123
+ "type": "registry:component",
2124
+ "target": "components/billing/credit-bundles.tsx"
2125
+ },
2126
+ {
2127
+ "path": "base/billing-settings/messages/en.json",
2128
+ "type": "registry:file",
2129
+ "target": "messages/en/billing-settings.json"
2130
+ },
2131
+ {
2132
+ "path": "base/billing-settings/error.tsx",
2133
+ "type": "registry:page",
2134
+ "target": "app/[locale]/(app)/settings/billing/error.tsx"
2135
+ }
2136
+ ]
2137
+ },
2138
+ {
2139
+ "name": "feature-gating",
2140
+ "type": "registry:block",
2141
+ "title": "Feature Gating",
2142
+ "description": "The vocabulary for selling a plan: a server-side FeatureGate that renders gated content only to entitled workspaces, three densities of upgrade prompt (full, compact, inline), a quota warning that escalates as a limit approaches, and a preview paywall that blurs content instead of hiding it. Which features exist and which plan unlocks them is consumer config (lib/feature-catalog.ts). Install pricing or billing-settings for somewhere to send the user.",
2143
+ "registryDependencies": [
2144
+ "@intelligo/button",
2145
+ "card",
2146
+ "@intelligo/dialog"
2147
+ ],
2148
+ "dependencies": ["@intelligo-dev/billing", "lucide-react", "next-intl"],
2149
+ "files": [
2150
+ {
2151
+ "path": "base/feature-gating/components/feature-gate.tsx",
2152
+ "type": "registry:component",
2153
+ "target": "components/billing/feature-gate.tsx"
2154
+ },
2155
+ {
2156
+ "path": "base/feature-gating/components/upgrade-prompt.tsx",
2157
+ "type": "registry:component",
2158
+ "target": "components/billing/upgrade-prompt.tsx"
2159
+ },
2160
+ {
2161
+ "path": "base/feature-gating/components/inline-upgrade-banner.tsx",
2162
+ "type": "registry:component",
2163
+ "target": "components/billing/inline-upgrade-banner.tsx"
2164
+ },
2165
+ {
2166
+ "path": "base/feature-gating/components/quota-warning.tsx",
2167
+ "type": "registry:component",
2168
+ "target": "components/billing/quota-warning.tsx"
2169
+ },
2170
+ {
2171
+ "path": "base/feature-gating/components/quota-limit-dialog.tsx",
2172
+ "type": "registry:component",
2173
+ "target": "components/billing/quota-limit-dialog.tsx"
2174
+ },
2175
+ {
2176
+ "path": "base/feature-gating/components/paywall-blur.tsx",
2177
+ "type": "registry:component",
2178
+ "target": "components/billing/paywall-blur.tsx"
2179
+ },
2180
+ {
2181
+ "path": "base/feature-gating/lib/feature-catalog.ts",
2182
+ "type": "registry:file",
2183
+ "target": "lib/feature-catalog.ts"
2184
+ },
2185
+ {
2186
+ "path": "base/feature-gating/lib/feature-gating-config.ts",
2187
+ "type": "registry:file",
2188
+ "target": "lib/feature-gating-config.ts"
2189
+ },
2190
+ {
2191
+ "path": "base/feature-gating/messages/en.json",
2192
+ "type": "registry:file",
2193
+ "target": "messages/en/feature-gating.json"
2194
+ }
2195
+ ]
2196
+ },
2197
+ {
2198
+ "name": "payment-poll",
2199
+ "type": "registry:block",
2200
+ "title": "QR Payment (poll)",
2201
+ "description": "The non-card checkout the catalogue was missing: issue an invoice, show a QR the user scans in their banking app, poll until the provider confirms. Provider-agnostic — QPay, SocialPay, PIX, UPI, PromptPay all fit — with the invoice recorded and a paid one granted on the server; lib/local-payment.ts says what each reference costs and grants. Requires the pricing item for lib/billing-config.ts's CURRENCY.",
2202
+ "registryDependencies": [
2203
+ "@intelligo/button",
2204
+ "@intelligo/dialog",
2205
+ "@intelligo/spinner"
2206
+ ],
2207
+ "dependencies": [
2208
+ "@intelligo-dev/auth",
2209
+ "@intelligo-dev/billing",
2210
+ "@intelligo-dev/next",
2211
+ "lucide-react",
2212
+ "server-only",
2213
+ "next-intl"
2214
+ ],
2215
+ "files": [
2216
+ {
2217
+ "path": "base/payment-poll/components/local-payment-modal.tsx",
2218
+ "type": "registry:component",
2219
+ "target": "components/billing/local-payment-modal.tsx"
2220
+ },
2221
+ {
2222
+ "path": "base/payment-poll/actions.ts",
2223
+ "type": "registry:file",
2224
+ "target": "actions/payment.ts"
2225
+ },
2226
+ {
2227
+ "path": "base/payment-poll/lib/local-payment.ts",
2228
+ "type": "registry:file",
2229
+ "target": "lib/local-payment.ts"
2230
+ },
2231
+ {
2232
+ "path": "base/payment-poll/lib/payment-poll-config.ts",
2233
+ "type": "registry:file",
2234
+ "target": "lib/payment-poll-config.ts"
2235
+ },
2236
+ {
2237
+ "path": "base/payment-poll/messages/en.json",
2238
+ "type": "registry:file",
2239
+ "target": "messages/en/payment-poll.json"
2240
+ }
2241
+ ]
2242
+ },
2243
+ {
2244
+ "name": "profile-settings",
2245
+ "type": "registry:block",
2246
+ "title": "Profile Settings",
2247
+ "description": "User profile name editing, read-only email, and account deletion with typed confirmation, backed by the framework's profile service.",
2248
+ "registryDependencies": [
2249
+ "@intelligo/button",
2250
+ "card",
2251
+ "@intelligo/dialog",
2252
+ "@intelligo/input",
2253
+ "label",
2254
+ "skeleton",
2255
+ "@intelligo/page-header"
2256
+ ],
2257
+ "dependencies": [
2258
+ "@intelligo-dev/auth",
2259
+ "@intelligo-dev/core",
2260
+ "@intelligo-dev/next",
2261
+ "sonner",
2262
+ "server-only",
2263
+ "next-intl"
2264
+ ],
2265
+ "files": [
2266
+ {
2267
+ "path": "base/profile-settings/page.tsx",
2268
+ "type": "registry:page",
2269
+ "target": "app/[locale]/(app)/settings/profile/page.tsx"
2270
+ },
2271
+ {
2272
+ "path": "base/profile-settings/loading.tsx",
2273
+ "type": "registry:page",
2274
+ "target": "app/[locale]/(app)/settings/profile/loading.tsx"
2275
+ },
2276
+ {
2277
+ "path": "base/profile-settings/components/profile-settings-form.tsx",
2278
+ "type": "registry:component",
2279
+ "target": "components/profile/profile-settings-form.tsx"
2280
+ },
2281
+ {
2282
+ "path": "base/profile-settings/actions.ts",
2283
+ "type": "registry:file",
2284
+ "target": "actions/profile.ts"
2285
+ },
2286
+ {
2287
+ "path": "base/profile-settings/lib/profile.ts",
2288
+ "type": "registry:file",
2289
+ "target": "lib/profile.ts"
2290
+ },
2291
+ {
2292
+ "path": "base/profile-settings/messages/en.json",
2293
+ "type": "registry:file",
2294
+ "target": "messages/en/profile-settings.json"
2295
+ },
2296
+ {
2297
+ "path": "base/profile-settings/error.tsx",
2298
+ "type": "registry:page",
2299
+ "target": "app/[locale]/(app)/settings/profile/error.tsx"
2300
+ }
2301
+ ]
2302
+ },
2303
+ {
2304
+ "name": "onboarding",
2305
+ "type": "registry:block",
2306
+ "title": "Onboarding",
2307
+ "description": "A generic multi-step onboarding wizard driven by a consumer-owned steps config: text and single-select-card fields, a completion screen, skip, and back/next - backed by the framework's onboarding service (durable step progress, no vertical-specific UI).",
2308
+ "registryDependencies": [
2309
+ "@intelligo/button",
2310
+ "@intelligo/input",
2311
+ "label",
2312
+ "@intelligo/ai-motion"
2313
+ ],
2314
+ "dependencies": [
2315
+ "@intelligo-dev/auth",
2316
+ "@intelligo-dev/next",
2317
+ "lucide-react",
2318
+ "server-only",
2319
+ "next-intl",
2320
+ "motion"
2321
+ ],
2322
+ "files": [
2323
+ {
2324
+ "path": "base/onboarding/layout.tsx",
2325
+ "type": "registry:page",
2326
+ "target": "app/[locale]/onboarding/layout.tsx"
2327
+ },
2328
+ {
2329
+ "path": "base/onboarding/page.tsx",
2330
+ "type": "registry:page",
2331
+ "target": "app/[locale]/onboarding/page.tsx"
2332
+ },
2333
+ {
2334
+ "path": "base/onboarding/components/onboarding-wizard.tsx",
2335
+ "type": "registry:component",
2336
+ "target": "components/onboarding/onboarding-wizard.tsx"
2337
+ },
2338
+ {
2339
+ "path": "base/onboarding/components/onboarding-step.tsx",
2340
+ "type": "registry:component",
2341
+ "target": "components/onboarding/onboarding-step.tsx"
2342
+ },
2343
+ {
2344
+ "path": "base/onboarding/actions.ts",
2345
+ "type": "registry:file",
2346
+ "target": "actions/onboarding.ts"
2347
+ },
2348
+ {
2349
+ "path": "base/onboarding/lib/onboarding.ts",
2350
+ "type": "registry:file",
2351
+ "target": "lib/onboarding.ts"
2352
+ },
2353
+ {
2354
+ "path": "base/onboarding/lib/onboarding-steps.ts",
2355
+ "type": "registry:file",
2356
+ "target": "lib/onboarding-steps.ts"
2357
+ },
2358
+ {
2359
+ "path": "base/onboarding/messages/en.json",
2360
+ "type": "registry:file",
2361
+ "target": "messages/en/onboarding.json"
2362
+ },
2363
+ {
2364
+ "path": "base/onboarding/error.tsx",
2365
+ "type": "registry:page",
2366
+ "target": "app/[locale]/onboarding/error.tsx"
2367
+ },
2368
+ {
2369
+ "path": "base/onboarding/lib/onboarding-profile.ts",
2370
+ "type": "registry:file",
2371
+ "target": "lib/onboarding-profile.ts"
2372
+ }
2373
+ ]
2374
+ },
2375
+ {
2376
+ "name": "dashboard",
2377
+ "type": "registry:block",
2378
+ "title": "Dashboard",
2379
+ "description": "An AI-first workspace home: a hero and a real composer centred as one unit, starter chips that fill it, and a resume affordance for unfinished work — and nothing else, because history belongs to the sidebar and spend to /usage. Configurable through lib/dashboard-config.tsx (copy, starters, chat base path) and lib/dashboard-data.ts (what \"resume\" means). Pairs with the chat item for its /chat routes; install it first.",
2380
+ "registryDependencies": [
2381
+ "skeleton",
2382
+ "@intelligo/ai-prompt-input",
2383
+ "@intelligo/ai-speech-input"
2384
+ ],
2385
+ "dependencies": [
2386
+ "@intelligo-dev/auth",
2387
+ "@intelligo-dev/core",
2388
+ "lucide-react",
2389
+ "server-only",
2390
+ "next-intl"
2391
+ ],
2392
+ "files": [
2393
+ {
2394
+ "path": "base/dashboard/page.tsx",
2395
+ "type": "registry:page",
2396
+ "target": "app/[locale]/(app)/dashboard/page.tsx"
2397
+ },
2398
+ {
2399
+ "path": "base/dashboard/loading.tsx",
2400
+ "type": "registry:page",
2401
+ "target": "app/[locale]/(app)/dashboard/loading.tsx"
2402
+ },
2403
+ {
2404
+ "path": "base/dashboard/messages/en.json",
2405
+ "type": "registry:file",
2406
+ "target": "messages/en/dashboard.json"
2407
+ },
2408
+ {
2409
+ "path": "base/dashboard/error.tsx",
2410
+ "type": "registry:page",
2411
+ "target": "app/[locale]/(app)/dashboard/error.tsx"
2412
+ },
2413
+ {
2414
+ "path": "base/dashboard/components/dashboard-hero.tsx",
2415
+ "type": "registry:component",
2416
+ "target": "components/dashboard/dashboard-hero.tsx"
2417
+ },
2418
+ {
2419
+ "path": "base/dashboard/components/prompt-bar.tsx",
2420
+ "type": "registry:component",
2421
+ "target": "components/dashboard/prompt-bar.tsx"
2422
+ },
2423
+ {
2424
+ "path": "base/dashboard/lib/dashboard-config.tsx",
2425
+ "type": "registry:file",
2426
+ "target": "lib/dashboard-config.tsx"
2427
+ },
2428
+ {
2429
+ "path": "base/dashboard/lib/dashboard-data.ts",
2430
+ "type": "registry:file",
2431
+ "target": "lib/dashboard-data.ts"
2432
+ }
2433
+ ]
2434
+ },
2435
+ {
2436
+ "name": "artifacts",
2437
+ "type": "registry:block",
2438
+ "title": "Artifacts",
2439
+ "description": "Browse and manage AI-generated document artifacts: filterable list, full-content preview, copy-to-clipboard, and version delete, backed by the framework's document persistence service.",
2440
+ "registryDependencies": [
2441
+ "alert",
2442
+ "badge",
2443
+ "@intelligo/button",
2444
+ "card",
2445
+ "@intelligo/dialog",
2446
+ "scroll-area",
2447
+ "skeleton",
2448
+ "@intelligo/spinner",
2449
+ "@intelligo/page-header",
2450
+ "@intelligo/document-viewer",
2451
+ "@intelligo/animated-list"
2452
+ ],
2453
+ "dependencies": [
2454
+ "@intelligo-dev/auth",
2455
+ "@intelligo-dev/core",
2456
+ "@intelligo-dev/next",
2457
+ "lucide-react",
2458
+ "sonner",
2459
+ "server-only",
2460
+ "next-intl"
2461
+ ],
2462
+ "files": [
2463
+ {
2464
+ "path": "base/artifacts/page.tsx",
2465
+ "type": "registry:page",
2466
+ "target": "app/[locale]/(app)/artifacts/page.tsx"
2467
+ },
2468
+ {
2469
+ "path": "base/artifacts/loading.tsx",
2470
+ "type": "registry:page",
2471
+ "target": "app/[locale]/(app)/artifacts/loading.tsx"
2472
+ },
2473
+ {
2474
+ "path": "base/artifacts/error.tsx",
2475
+ "type": "registry:page",
2476
+ "target": "app/[locale]/(app)/artifacts/error.tsx"
2477
+ },
2478
+ {
2479
+ "path": "base/artifacts/actions.ts",
2480
+ "type": "registry:file",
2481
+ "target": "actions/documents.ts"
2482
+ },
2483
+ {
2484
+ "path": "base/artifacts/lib/document-patterns.ts",
2485
+ "type": "registry:file",
2486
+ "target": "lib/document-patterns.ts"
2487
+ },
2488
+ {
2489
+ "path": "base/artifacts/components/document-list.tsx",
2490
+ "type": "registry:component",
2491
+ "target": "components/artifacts/document-list.tsx"
2492
+ },
2493
+ {
2494
+ "path": "base/artifacts/components/document-actions.tsx",
2495
+ "type": "registry:component",
2496
+ "target": "components/artifacts/document-actions.tsx"
2497
+ },
2498
+ {
2499
+ "path": "base/artifacts/messages/en.json",
2500
+ "type": "registry:file",
2501
+ "target": "messages/en/artifacts.json"
2502
+ }
2503
+ ],
2504
+ "css": {
2505
+ "@source \"../node_modules/streamdown/dist/*.js\"": {}
2506
+ }
2507
+ },
2508
+ {
2509
+ "name": "privacy-settings",
2510
+ "type": "registry:block",
2511
+ "title": "Privacy Settings",
2512
+ "description": "GDPR-style data export, a read-only memory-audit trail, and per-category fact listing with delete, backed by the framework's identity service.",
2513
+ "registryDependencies": [
2514
+ "@intelligo/button",
2515
+ "card",
2516
+ "skeleton",
2517
+ "@intelligo/page-header"
2518
+ ],
2519
+ "dependencies": [
2520
+ "@intelligo-dev/auth",
2521
+ "@intelligo-dev/core",
2522
+ "@intelligo-dev/next",
2523
+ "lucide-react",
2524
+ "sonner",
2525
+ "next-intl"
2526
+ ],
2527
+ "files": [
2528
+ {
2529
+ "path": "base/privacy-settings/page.tsx",
2530
+ "type": "registry:page",
2531
+ "target": "app/[locale]/(app)/settings/privacy/page.tsx"
2532
+ },
2533
+ {
2534
+ "path": "base/privacy-settings/loading.tsx",
2535
+ "type": "registry:page",
2536
+ "target": "app/[locale]/(app)/settings/privacy/loading.tsx"
2537
+ },
2538
+ {
2539
+ "path": "base/privacy-settings/actions.ts",
2540
+ "type": "registry:file",
2541
+ "target": "actions/privacy.ts"
2542
+ },
2543
+ {
2544
+ "path": "base/privacy-settings/components/export-data-button.tsx",
2545
+ "type": "registry:component",
2546
+ "target": "components/privacy/export-data-button.tsx"
2547
+ },
2548
+ {
2549
+ "path": "base/privacy-settings/components/fact-list.tsx",
2550
+ "type": "registry:component",
2551
+ "target": "components/privacy/fact-list.tsx"
2552
+ },
2553
+ {
2554
+ "path": "base/privacy-settings/messages/en.json",
2555
+ "type": "registry:file",
2556
+ "target": "messages/en/privacy-settings.json"
2557
+ },
2558
+ {
2559
+ "path": "base/privacy-settings/error.tsx",
2560
+ "type": "registry:page",
2561
+ "target": "app/[locale]/(app)/settings/privacy/error.tsx"
2562
+ }
2563
+ ]
2564
+ },
2565
+ {
2566
+ "name": "chat",
2567
+ "type": "registry:block",
2568
+ "title": "Chat",
2569
+ "description": "A ChatGPT-level AI chat surface: a streaming thread with edit, regenerate and response versions, attachments, a model picker, reasoning, sources, tool cards and human-in-the-loop approvals, agent activity for Mastra and eve turns, a canvas beside the chat for documents a tool streams, a sidebar with pinned and dated groups, share links and feedback — on a two-line Route Handler that binds @intelligo-dev/chat's transport (auth, rate limit, feature gate, persistence, the execution boundary) to consumer-owned config (lib/chat-server-config.ts). Every tool renders through one entry in lib/chat-renderers.tsx, inline and in the canvas. Ships with a deterministic stub model so a clean install streams with no API keys. The config imports lib/intelligo.ts (the composition root) and lib/plans.ts, which are provided by the `intelligo create` scaffold, not by any registry item - in a hand-rolled app, create both before installing (see the CLI's app-scaffold templates).",
2570
+ "registryDependencies": [
2571
+ "alert",
2572
+ "@intelligo/alert-dialog",
2573
+ "@intelligo/attachment",
2574
+ "@intelligo/button",
2575
+ "@intelligo/dialog",
2576
+ "@intelligo/dropdown-menu",
2577
+ "@intelligo/input",
2578
+ "item",
2579
+ "@intelligo/sheet",
2580
+ "skeleton",
2581
+ "@intelligo/spinner",
2582
+ "@intelligo/textarea",
2583
+ "@intelligo/tooltip",
2584
+ "@intelligo/ai-agent-activity",
2585
+ "@intelligo/ai-approval-card",
2586
+ "@intelligo/ai-artifact",
2587
+ "@intelligo/ai-branch",
2588
+ "@intelligo/ai-citations",
2589
+ "@intelligo/ai-code-block",
2590
+ "@intelligo/ai-composer-menu",
2591
+ "@intelligo/ai-markdown",
2592
+ "@intelligo/ai-message",
2593
+ "@intelligo/ai-message-bubble",
2594
+ "@intelligo/ai-message-scroller",
2595
+ "@intelligo/ai-prompt-input",
2596
+ "@intelligo/ai-reasoning",
2597
+ "@intelligo/ai-shimmer-text",
2598
+ "@intelligo/ai-speech-input",
2599
+ "@intelligo/ai-suggestion",
2600
+ "@intelligo/ai-todo-list",
2601
+ "@intelligo/ai-tool-approval",
2602
+ "@intelligo/ai-tool-result",
2603
+ "@intelligo/copy-button",
2604
+ "@intelligo/document-viewer",
2605
+ "@intelligo/status-badge",
2606
+ "@intelligo/ai-motion",
2607
+ "@intelligo/ai-sidebar",
2608
+ "@intelligo/ai-file-diff",
2609
+ "@intelligo/ai-image-generation",
2610
+ "@intelligo/ai-reasoning-text",
2611
+ "@intelligo/ai-streaming-response",
2612
+ "@intelligo/ai-agent-progress"
2613
+ ],
2614
+ "dependencies": [
2615
+ "ai@^7.0.103",
2616
+ "@ai-sdk/react@^4.0.106",
2617
+ "streamdown",
2618
+ "lucide-react",
2619
+ "sonner",
2620
+ "server-only",
2621
+ "@intelligo-dev/auth",
2622
+ "@intelligo-dev/billing",
2623
+ "@intelligo-dev/chat",
2624
+ "@intelligo-dev/core",
2625
+ "@intelligo-dev/next",
2626
+ "next-intl",
2627
+ "next-themes",
2628
+ "prosemirror-state",
2629
+ "prosemirror-view",
2630
+ "prosemirror-markdown",
2631
+ "prosemirror-example-setup",
2632
+ "prosemirror-inputrules",
2633
+ "codemirror",
2634
+ "@codemirror/state",
2635
+ "@codemirror/view",
2636
+ "@codemirror/lang-javascript",
2637
+ "@codemirror/lang-python",
2638
+ "@codemirror/theme-one-dark",
2639
+ "react-data-grid@7.0.0-beta.61",
2640
+ "papaparse",
2641
+ "@types/papaparse",
2642
+ "motion"
2643
+ ],
2644
+ "files": [
2645
+ {
2646
+ "path": "base/chat/page.tsx",
2647
+ "type": "registry:page",
2648
+ "target": "app/[locale]/(app)/chat/page.tsx"
2649
+ },
2650
+ {
2651
+ "path": "base/chat/conversation-page.tsx",
2652
+ "type": "registry:page",
2653
+ "target": "app/[locale]/(app)/chat/[id]/page.tsx"
2654
+ },
2655
+ {
2656
+ "path": "base/chat/conversation-loading.tsx",
2657
+ "type": "registry:page",
2658
+ "target": "app/[locale]/(app)/chat/[id]/loading.tsx"
2659
+ },
2660
+ {
2661
+ "path": "base/chat/conversation-error.tsx",
2662
+ "type": "registry:page",
2663
+ "target": "app/[locale]/(app)/chat/[id]/error.tsx"
2664
+ },
2665
+ {
2666
+ "path": "base/chat/route.ts",
2667
+ "type": "registry:file",
2668
+ "target": "app/api/chat/route.ts"
2669
+ },
2670
+ {
2671
+ "path": "base/chat/actions.ts",
2672
+ "type": "registry:file",
2673
+ "target": "actions/chat.ts"
2674
+ },
2675
+ {
2676
+ "path": "base/chat/lib/chat-model.ts",
2677
+ "type": "registry:file",
2678
+ "target": "lib/chat-model.ts"
2679
+ },
2680
+ {
2681
+ "path": "base/chat/lib/chat-models.ts",
2682
+ "type": "registry:file",
2683
+ "target": "lib/chat-models.ts"
2684
+ },
2685
+ {
2686
+ "path": "base/chat/lib/chat-renderers.tsx",
2687
+ "type": "registry:file",
2688
+ "target": "lib/chat-renderers.tsx"
2689
+ },
2690
+ {
2691
+ "path": "base/chat/lib/chat-canvas-config.tsx",
2692
+ "type": "registry:file",
2693
+ "target": "lib/chat-canvas-config.tsx"
2694
+ },
2695
+ {
2696
+ "path": "base/chat/lib/message-parts.ts",
2697
+ "type": "registry:file",
2698
+ "target": "lib/message-parts.ts"
2699
+ },
2700
+ {
2701
+ "path": "base/chat/lib/chat-config.tsx",
2702
+ "type": "registry:file",
2703
+ "target": "lib/chat-config.tsx"
2704
+ },
2705
+ {
2706
+ "path": "base/chat/lib/chat-server-config.ts",
2707
+ "type": "registry:file",
2708
+ "target": "lib/chat-server-config.ts"
2709
+ },
2710
+ {
2711
+ "path": "base/chat/lib/chat-quota.ts",
2712
+ "type": "registry:file",
2713
+ "target": "lib/chat-quota.ts"
2714
+ },
2715
+ {
2716
+ "path": "base/chat/hooks/use-chat-versions.ts",
2717
+ "type": "registry:hook",
2718
+ "target": "hooks/use-chat-versions.ts"
2719
+ },
2720
+ {
2721
+ "path": "base/chat/hooks/use-chat-draft.ts",
2722
+ "type": "registry:hook",
2723
+ "target": "hooks/use-chat-draft.ts"
2724
+ },
2725
+ {
2726
+ "path": "base/chat/hooks/use-chat-shortcuts.ts",
2727
+ "type": "registry:hook",
2728
+ "target": "hooks/use-chat-shortcuts.ts"
2729
+ },
2730
+ {
2731
+ "path": "base/chat/hooks/use-composer-menu.ts",
2732
+ "type": "registry:hook",
2733
+ "target": "hooks/use-composer-menu.ts"
2734
+ },
2735
+ {
2736
+ "path": "base/chat/components/chat-workspace.tsx",
2737
+ "type": "registry:component",
2738
+ "target": "components/chat/chat-workspace.tsx"
2739
+ },
2740
+ {
2741
+ "path": "base/chat/components/chat-thread.tsx",
2742
+ "type": "registry:component",
2743
+ "target": "components/chat/chat-thread.tsx"
2744
+ },
2745
+ {
2746
+ "path": "base/chat/components/chat-canvas.tsx",
2747
+ "type": "registry:component",
2748
+ "target": "components/chat/chat-canvas.tsx"
2749
+ },
2750
+ {
2751
+ "path": "base/chat/components/canvas/text-editor.tsx",
2752
+ "type": "registry:component",
2753
+ "target": "components/chat/canvas/text-editor.tsx"
2754
+ },
2755
+ {
2756
+ "path": "base/chat/components/canvas/code-editor.tsx",
2757
+ "type": "registry:component",
2758
+ "target": "components/chat/canvas/code-editor.tsx"
2759
+ },
2760
+ {
2761
+ "path": "base/chat/components/canvas/sheet-editor.tsx",
2762
+ "type": "registry:component",
2763
+ "target": "components/chat/canvas/sheet-editor.tsx"
2764
+ },
2765
+ {
2766
+ "path": "base/chat/components/chat-empty.tsx",
2767
+ "type": "registry:component",
2768
+ "target": "components/chat/chat-empty.tsx"
2769
+ },
2770
+ {
2771
+ "path": "base/chat/components/chat-error-strip.tsx",
2772
+ "type": "registry:component",
2773
+ "target": "components/chat/chat-error-strip.tsx"
2774
+ },
2775
+ {
2776
+ "path": "base/chat/components/message-list.tsx",
2777
+ "type": "registry:component",
2778
+ "target": "components/chat/message-list.tsx"
2779
+ },
2780
+ {
2781
+ "path": "base/chat/components/message.tsx",
2782
+ "type": "registry:component",
2783
+ "target": "components/chat/message.tsx"
2784
+ },
2785
+ {
2786
+ "path": "base/chat/components/message-actions.tsx",
2787
+ "type": "registry:component",
2788
+ "target": "components/chat/message-actions.tsx"
2789
+ },
2790
+ {
2791
+ "path": "base/chat/components/data-parts.tsx",
2792
+ "type": "registry:component",
2793
+ "target": "components/chat/data-parts.tsx"
2794
+ },
2795
+ {
2796
+ "path": "base/chat/components/agent-activity.tsx",
2797
+ "type": "registry:component",
2798
+ "target": "components/chat/agent-activity.tsx"
2799
+ },
2800
+ {
2801
+ "path": "base/chat/components/tool-activity.tsx",
2802
+ "type": "registry:component",
2803
+ "target": "components/chat/tool-activity.tsx"
2804
+ },
2805
+ {
2806
+ "path": "base/chat/components/artifact-card.tsx",
2807
+ "type": "registry:component",
2808
+ "target": "components/chat/artifact-card.tsx"
2809
+ },
2810
+ {
2811
+ "path": "base/chat/components/chat-input.tsx",
2812
+ "type": "registry:component",
2813
+ "target": "components/chat/chat-input.tsx"
2814
+ },
2815
+ {
2816
+ "path": "base/chat/components/conversation-header.tsx",
2817
+ "type": "registry:component",
2818
+ "target": "components/chat/conversation-header.tsx"
2819
+ },
2820
+ {
2821
+ "path": "base/chat/components/chat-history.tsx",
2822
+ "type": "registry:component",
2823
+ "target": "components/chat/chat-history.tsx"
2824
+ },
2825
+ {
2826
+ "path": "base/chat/components/chat-history-nav.tsx",
2827
+ "type": "registry:component",
2828
+ "target": "components/chat/chat-history-nav.tsx"
2829
+ },
2830
+ {
2831
+ "path": "base/chat/components/share-dialog.tsx",
2832
+ "type": "registry:component",
2833
+ "target": "components/chat/share-dialog.tsx"
2834
+ },
2835
+ {
2836
+ "path": "base/chat/components/credit-status-banner.tsx",
2837
+ "type": "registry:component",
2838
+ "target": "components/chat/credit-status-banner.tsx"
2839
+ },
2840
+ {
2841
+ "path": "base/chat/messages/en.json",
2842
+ "type": "registry:file",
2843
+ "target": "messages/en/chat.json"
2844
+ }
2845
+ ],
2846
+ "css": {
2847
+ "@source \"../node_modules/streamdown/dist/*.js\"": {}
2848
+ }
2849
+ },
2850
+ {
2851
+ "name": "chat-panel",
2852
+ "type": "registry:block",
2853
+ "title": "Chat Panel",
2854
+ "description": "The chat as a side panel on any page: a sheet that opens the same thread the chat page runs, with the page's context on every turn. Requires the chat item.",
2855
+ "registryDependencies": ["@intelligo/button", "@intelligo/sheet"],
2856
+ "dependencies": ["ai@^7.0.103", "lucide-react", "next-intl"],
2857
+ "files": [
2858
+ {
2859
+ "path": "base/chat-panel/components/chat-panel.tsx",
2860
+ "type": "registry:component",
2861
+ "target": "components/chat/chat-panel.tsx"
2862
+ },
2863
+ {
2864
+ "path": "base/chat-panel/messages/en.json",
2865
+ "type": "registry:file",
2866
+ "target": "messages/en/chat-panel.json"
2867
+ }
2868
+ ]
2869
+ },
2870
+ {
2871
+ "name": "chat-widget",
2872
+ "type": "registry:block",
2873
+ "title": "Chat Widget",
2874
+ "description": "The floating assistant: a launcher in a corner of every page and a compact chat over it, configured in lib/chat-widget-config.tsx. Requires the chat item.",
2875
+ "registryDependencies": ["@intelligo/button"],
2876
+ "dependencies": ["lucide-react", "next-intl"],
2877
+ "files": [
2878
+ {
2879
+ "path": "base/chat-widget/components/chat-widget.tsx",
2880
+ "type": "registry:component",
2881
+ "target": "components/chat/chat-widget.tsx"
2882
+ },
2883
+ {
2884
+ "path": "base/chat-widget/lib/chat-widget-config.tsx",
2885
+ "type": "registry:file",
2886
+ "target": "lib/chat-widget-config.tsx"
2887
+ },
2888
+ {
2889
+ "path": "base/chat-widget/messages/en.json",
2890
+ "type": "registry:file",
2891
+ "target": "messages/en/chat-widget.json"
2892
+ }
2893
+ ]
2894
+ },
2895
+ {
2896
+ "name": "chat-share",
2897
+ "type": "registry:block",
2898
+ "title": "Chat Share",
2899
+ "description": "A conversation its owner published, readable by anyone with the link at /share/[id]: the same transcript, read-only, minus reasoning, tool details and attachments. Requires the chat item.",
2900
+ "registryDependencies": ["@intelligo/button"],
2901
+ "dependencies": [
2902
+ "ai@^7.0.103",
2903
+ "next-intl",
2904
+ "@intelligo-dev/chat",
2905
+ "@intelligo-dev/core"
2906
+ ],
2907
+ "files": [
2908
+ {
2909
+ "path": "base/chat-share/page.tsx",
2910
+ "type": "registry:page",
2911
+ "target": "app/[locale]/share/[id]/page.tsx"
2912
+ },
2913
+ {
2914
+ "path": "base/chat-share/actions.ts",
2915
+ "type": "registry:file",
2916
+ "target": "actions/chat-share.ts"
2917
+ },
2918
+ {
2919
+ "path": "base/chat-share/components/shared-conversation.tsx",
2920
+ "type": "registry:component",
2921
+ "target": "components/chat/shared-conversation.tsx"
2922
+ },
2923
+ {
2924
+ "path": "base/chat-share/messages/en.json",
2925
+ "type": "registry:file",
2926
+ "target": "messages/en/chat-share.json"
2927
+ }
2928
+ ]
2929
+ },
2930
+ {
2931
+ "name": "chat-eve",
2932
+ "type": "registry:lib",
2933
+ "title": "Chat: eve binding",
2934
+ "description": "eve through the chat transport: a streamTurn for lib/chat-server-config.ts that runs a turn as an eve session over HTTP and NDJSON and maps its events to the AI SDK's chunks — text, reasoning, tool calls, approvals, questions, subagents, authorization — so an eve agent renders through the same tool renderers as any other. Consumer-owned; imports nothing from eve. Requires the chat item.",
2935
+ "dependencies": ["ai@^7.0.103", "@intelligo-dev/chat"],
2936
+ "files": [
2937
+ {
2938
+ "path": "base/chat-eve/lib/chat-eve.ts",
2939
+ "type": "registry:lib",
2940
+ "target": "lib/chat-eve.ts"
2941
+ }
2942
+ ]
2943
+ }
2944
+ ]
2945
+ }