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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. package/README.md +65 -2
  2. package/dist/args.d.ts +10 -0
  3. package/dist/args.d.ts.map +1 -0
  4. package/dist/args.js +20 -0
  5. package/dist/args.js.map +1 -0
  6. package/dist/bin.js +103 -22
  7. package/dist/bin.js.map +1 -1
  8. package/dist/commands/add.d.ts +4 -0
  9. package/dist/commands/add.d.ts.map +1 -1
  10. package/dist/commands/add.js +28 -2
  11. package/dist/commands/add.js.map +1 -1
  12. package/dist/commands/create-flow.d.ts +8 -1
  13. package/dist/commands/create-flow.d.ts.map +1 -1
  14. package/dist/commands/create-flow.js +101 -34
  15. package/dist/commands/create-flow.js.map +1 -1
  16. package/dist/commands/create.d.ts +24 -4
  17. package/dist/commands/create.d.ts.map +1 -1
  18. package/dist/commands/create.js +57 -14
  19. package/dist/commands/create.js.map +1 -1
  20. package/dist/commands/doctor.d.ts +2 -0
  21. package/dist/commands/doctor.d.ts.map +1 -1
  22. package/dist/commands/doctor.js +123 -35
  23. package/dist/commands/doctor.js.map +1 -1
  24. package/dist/commands/migrate-check.d.ts +20 -1
  25. package/dist/commands/migrate-check.d.ts.map +1 -1
  26. package/dist/commands/migrate-check.js +35 -6
  27. package/dist/commands/migrate-check.js.map +1 -1
  28. package/dist/commands/migrate.d.ts.map +1 -1
  29. package/dist/commands/migrate.js +2 -8
  30. package/dist/commands/migrate.js.map +1 -1
  31. package/dist/commands/sync-messages.d.ts +37 -0
  32. package/dist/commands/sync-messages.d.ts.map +1 -0
  33. package/dist/commands/sync-messages.js +88 -0
  34. package/dist/commands/sync-messages.js.map +1 -0
  35. package/dist/commands/sync-scaffold.d.ts +36 -0
  36. package/dist/commands/sync-scaffold.d.ts.map +1 -0
  37. package/dist/commands/sync-scaffold.js +53 -0
  38. package/dist/commands/sync-scaffold.js.map +1 -0
  39. package/dist/commands/sync.d.ts +109 -0
  40. package/dist/commands/sync.d.ts.map +1 -0
  41. package/dist/commands/sync.js +392 -0
  42. package/dist/commands/sync.js.map +1 -0
  43. package/dist/commands/upgrade-check.d.ts.map +1 -1
  44. package/dist/commands/upgrade-check.js +4 -1
  45. package/dist/commands/upgrade-check.js.map +1 -1
  46. package/dist/env-files.d.ts +11 -0
  47. package/dist/env-files.d.ts.map +1 -1
  48. package/dist/env-files.js +28 -9
  49. package/dist/env-files.js.map +1 -1
  50. package/dist/manifest.d.ts +27 -0
  51. package/dist/manifest.d.ts.map +1 -1
  52. package/dist/manifest.js +30 -3
  53. package/dist/manifest.js.map +1 -1
  54. package/dist/module-exports.d.ts +63 -0
  55. package/dist/module-exports.d.ts.map +1 -0
  56. package/dist/module-exports.js +231 -0
  57. package/dist/module-exports.js.map +1 -0
  58. package/dist/registry-bundle.d.ts +43 -0
  59. package/dist/registry-bundle.d.ts.map +1 -0
  60. package/dist/registry-bundle.js +74 -0
  61. package/dist/registry-bundle.js.map +1 -0
  62. package/dist/registry-items.d.ts +41 -13
  63. package/dist/registry-items.d.ts.map +1 -1
  64. package/dist/registry-items.js +117 -33
  65. package/dist/registry-items.js.map +1 -1
  66. package/package.json +1 -1
  67. package/src/args.ts +25 -0
  68. package/src/bin.ts +124 -22
  69. package/src/commands/add.ts +39 -12
  70. package/src/commands/create-flow.ts +119 -29
  71. package/src/commands/create.ts +82 -14
  72. package/src/commands/doctor.ts +156 -47
  73. package/src/commands/migrate-check.ts +51 -10
  74. package/src/commands/migrate.ts +2 -8
  75. package/src/commands/sync-messages.ts +114 -0
  76. package/src/commands/sync-scaffold.ts +83 -0
  77. package/src/commands/sync.ts +574 -0
  78. package/src/commands/upgrade-check.ts +4 -1
  79. package/src/env-files.ts +28 -7
  80. package/src/manifest.ts +57 -3
  81. package/src/module-exports.ts +266 -0
  82. package/src/registry-bundle.ts +103 -0
  83. package/src/registry-items.ts +141 -36
  84. package/templates/admin-page/admin-page.tsx.tpl +96 -24
  85. package/templates/app-scaffold/gitignore.tpl +25 -0
  86. package/templates/app-scaffold/intelligo.ts.tpl +6 -47
  87. package/templates/app-scaffold/next.config.mjs.tpl +31 -2
  88. package/templates/app-scaffold/package.json.tpl +2 -2
  89. package/templates/manifest.json +40 -3
  90. package/templates/pnpm-standalone/npmrc.tpl +6 -0
  91. package/templates/pnpm-standalone/pnpm-workspace.yaml.tpl +10 -0
  92. package/templates/registry/ai-agent-activity.json +23 -0
  93. package/templates/registry/ai-agent-progress.json +21 -0
  94. package/templates/registry/ai-approval-card.json +27 -0
  95. package/templates/registry/ai-artifact.json +22 -0
  96. package/templates/registry/ai-branch.json +21 -0
  97. package/templates/registry/ai-citations.json +24 -0
  98. package/templates/registry/ai-code-block.json +23 -0
  99. package/templates/registry/ai-composer-menu.json +19 -0
  100. package/templates/registry/ai-file-diff.json +25 -0
  101. package/templates/registry/ai-image-generation.json +23 -0
  102. package/templates/registry/ai-markdown.json +23 -0
  103. package/templates/registry/ai-message-bubble.json +23 -0
  104. package/templates/registry/ai-message-scroller.json +22 -0
  105. package/templates/registry/ai-message.json +21 -0
  106. package/templates/registry/ai-motion.json +19 -0
  107. package/templates/registry/ai-prompt-input.json +28 -0
  108. package/templates/registry/ai-reasoning-text.json +22 -0
  109. package/templates/registry/ai-reasoning.json +22 -0
  110. package/templates/registry/ai-shimmer-text.json +19 -0
  111. package/templates/registry/ai-sidebar.json +25 -0
  112. package/templates/registry/ai-speech-input.json +21 -0
  113. package/templates/registry/ai-streaming-response.json +24 -0
  114. package/templates/registry/ai-suggestion.json +19 -0
  115. package/templates/registry/ai-todo-list.json +22 -0
  116. package/templates/registry/ai-tool-approval.json +26 -0
  117. package/templates/registry/ai-tool-result.json +25 -0
  118. package/templates/registry/alert-dialog.json +23 -0
  119. package/templates/registry/animated-list.json +21 -0
  120. package/templates/registry/app-shell.json +93 -0
  121. package/templates/registry/artifacts.json +82 -0
  122. package/templates/registry/attachment.json +22 -0
  123. package/templates/registry/auth-email-verification.json +39 -0
  124. package/templates/registry/auth-login.json +72 -0
  125. package/templates/registry/auth-password-reset.json +53 -0
  126. package/templates/registry/auth-signup.json +41 -0
  127. package/templates/registry/billing-settings.json +66 -0
  128. package/templates/registry/button.json +22 -0
  129. package/templates/registry/chat-eve.json +19 -0
  130. package/templates/registry/chat-panel.json +30 -0
  131. package/templates/registry/chat-share.json +42 -0
  132. package/templates/registry/chat-widget.json +34 -0
  133. package/templates/registry/chat.json +326 -0
  134. package/templates/registry/checkbox.json +22 -0
  135. package/templates/registry/checkout.json +40 -0
  136. package/templates/registry/collapsible.json +19 -0
  137. package/templates/registry/command.json +23 -0
  138. package/templates/registry/copy-button.json +21 -0
  139. package/templates/registry/dashboard.json +69 -0
  140. package/templates/registry/dialog.json +24 -0
  141. package/templates/registry/document-viewer.json +22 -0
  142. package/templates/registry/dropdown-menu.json +23 -0
  143. package/templates/registry/expandable-tabs.json +22 -0
  144. package/templates/registry/feature-gating.json +73 -0
  145. package/templates/registry/file-upload.json +24 -0
  146. package/templates/registry/hold-action-button.json +22 -0
  147. package/templates/registry/input-group.json +23 -0
  148. package/templates/registry/input.json +19 -0
  149. package/templates/registry/intelligo.json +187 -0
  150. package/templates/registry/invitation-accept.json +64 -0
  151. package/templates/registry/language-switcher.json +29 -0
  152. package/templates/registry/morphing-modal.json +24 -0
  153. package/templates/registry/notification-stack.json +24 -0
  154. package/templates/registry/notifications.json +87 -0
  155. package/templates/registry/onboarding.json +83 -0
  156. package/templates/registry/otp-input.json +22 -0
  157. package/templates/registry/page-header.json +15 -0
  158. package/templates/registry/payment-poll.json +58 -0
  159. package/templates/registry/popover-morph.json +22 -0
  160. package/templates/registry/popover.json +22 -0
  161. package/templates/registry/pricing.json +117 -0
  162. package/templates/registry/privacy-settings.json +65 -0
  163. package/templates/registry/profile-settings.json +68 -0
  164. package/templates/registry/progress.json +19 -0
  165. package/templates/registry/radio-group.json +22 -0
  166. package/templates/registry/registry.json +2960 -0
  167. package/templates/registry/route-error.json +65 -0
  168. package/templates/registry/select-morph.json +23 -0
  169. package/templates/registry/select.json +23 -0
  170. package/templates/registry/settings-shell.json +47 -0
  171. package/templates/registry/sheet.json +24 -0
  172. package/templates/registry/sidebar.json +28 -0
  173. package/templates/registry/smoke.json +34 -0
  174. package/templates/registry/spinner.json +16 -0
  175. package/templates/registry/stat-card.json +18 -0
  176. package/templates/registry/status-badge.json +18 -0
  177. package/templates/registry/switch.json +20 -0
  178. package/templates/registry/tabs.json +23 -0
  179. package/templates/registry/team-settings.json +97 -0
  180. package/templates/registry/textarea.json +16 -0
  181. package/templates/registry/tooltip.json +22 -0
  182. package/templates/registry/trial-banner.json +43 -0
  183. package/templates/registry/usage.json +84 -0
  184. package/templates/registry/workspace-settings.json +71 -0
  185. package/templates/registry-items.json +3 -3
  186. package/templates/registry-requires.json +30 -4
  187. package/templates/vitest/server-only.ts.tpl +7 -0
  188. package/templates/vitest/vitest.config.ts.tpl +37 -0
package/README.md CHANGED
@@ -23,13 +23,75 @@ to the new application, which is where `intelligo` comes from afterwards.
23
23
  ```bash
24
24
  pnpm dlx @intelligo-dev/cli@beta create my-app # a registry-ready Next.js app, plus the pages you pick
25
25
  pnpm dlx @intelligo-dev/cli@beta create my-app --items chat,billing-settings --yes # no questions
26
- intelligo add <feature> # generate consumer-owned source (admin-page, maintenance)
26
+ pnpm dlx @intelligo-dev/cli@beta create . --name "Acme Audit" # into the current, empty directory (a .git may be there)
27
+ intelligo add <feature> # generate consumer-owned source (admin-page, maintenance, vitest)
27
28
  intelligo doctor # what is misconfigured, and why it matters
28
29
  intelligo migrate # apply the framework chain
29
30
  intelligo migrate --check [--json] # compare the chain with the database, change nothing
30
31
  intelligo upgrade --check # what a template upgrade would change
32
+ intelligo sync [items…] # install registry pages from this release, seams kept
33
+ intelligo sync --check # exit 1 when an installed page drifted from the registry
31
34
  ```
32
35
 
36
+ ## `sync`: installed pages stay the registry's
37
+
38
+ A page arrives as source, through `shadcn add`, and nothing stops it drifting
39
+ afterwards — an edit here, a release skipped there. `intelligo sync` installs
40
+ items from the registry bundled with this CLI, so the pages match the
41
+ `@intelligo-dev/*` packages of the same version, in dependency order. Files an
42
+ item ships once for you to own (`lib/*-config`, `lib/nav-config.ts`… — the
43
+ `seams` in the registry's `requires.json`) are put back after the install, and
44
+ message files are merged key by key with your copy winning. The result is
45
+ recorded in `intelligo.manifest.json`.
46
+
47
+ Name the items once — `intelligo sync intelligo app-shell chat …` — and
48
+ afterwards a bare `intelligo sync` updates them. It refuses to overwrite a file
49
+ you edited by hand unless you pass `--force`: move the change into a seam
50
+ first. `intelligo sync --check` installs nothing, lists every file that is
51
+ `missing`, `edited`, `outdated`, `messages-behind` or `locale-behind`, and
52
+ exits 1 on any — the gate to run in CI.
53
+
54
+ ### Other locales
55
+
56
+ The registry ships English (`messages/en/<item>.json`). When the app's
57
+ `i18n/routing.ts` lists more `locales`, `sync --check` compares each other
58
+ locale's copy of every shipped namespace — `messages/<locale>/<item>.json` —
59
+ with the app's English file on disk (the merged copy, your own keys
60
+ included) and reports a missing file or missing keys as `locale-behind`,
61
+ with the keys. `sync` never writes another locale: after it adds English
62
+ keys, translate them, and the check passes again.
63
+
64
+ `create` installs the pages you pick the same way: the dependencies first
65
+ (from the root of a parent pnpm workspace when the new app is one of its
66
+ members, so the workspace keeps one lockfile), then `intelligo sync` of the
67
+ design-system base and every item, one `shadcn add` each. Scaffold files an
68
+ item replaces — `app/globals.css`, the theme provider, `lib/utils.ts` — move
69
+ from the `app-scaffold` record to the registry's (the feature's `handedOver`
70
+ list), so `upgrade --check` does not report them as yours forever.
71
+
72
+ The chosen items are recorded in `intelligo.manifest.json` before anything is
73
+ installed, and `sync` treats a file the scaffold wrote and nobody edited as the
74
+ registry's to replace, so when the install is declined or fails, a bare
75
+ `intelligo sync` picks up where `create` stopped. The project name is the
76
+ directory's unless `--name` says otherwise; its slug is the package name, the
77
+ billing product and the default page title. The scaffold carries its own
78
+ `.gitignore`. Under pnpm, an app outside any workspace also gets a
79
+ `pnpm-workspace.yaml` that declines the dependency build scripts pnpm 11 would
80
+ stop the install over and allows the shadcn CLI's `pnpm add` at the root (with
81
+ an `.npmrc` saying the same to pnpm 9). An app created inside a pnpm workspace
82
+ gets neither; its `next.config.mjs` reads the workspace root's `.env.local` and
83
+ `.env` instead, as `doctor` and `migrate` do.
84
+
85
+ ## Where `doctor`, `migrate` and `upgrade` read env from
86
+
87
+ They run outside Next, so they load the env files themselves, never
88
+ overriding a variable that is already set. Highest precedence first: the
89
+ shell, the app's `.env.local`, the app's `.env`, then — when the app is a
90
+ member of a pnpm workspace — the workspace root's `.env.local` and `.env`. An
91
+ app in a monorepo whose `next.config` falls back to the repository root's
92
+ `.env` is therefore checked and migrated against the same `DATABASE_URL` it
93
+ boots with.
94
+
33
95
  ## Why `migrate` is not `drizzle-kit migrate`
34
96
 
35
97
  Drizzle applies migrations in journal-timestamp order and skips anything
@@ -47,7 +109,8 @@ baselined first.
47
109
  which an empty database and a stale one share. A deploy gate that must tell them
48
110
  apart reads `--json`: one object on stdout whose `state` is `up_to_date`,
49
111
  `pending`, `fresh` (empty database), `unmanaged`, `ahead` or `legacy`, beside
50
- `exitCode`, `chain`, `applied`, `pending`, `unknown`, `legacy` and `adoptable`.
112
+ `exitCode`, `chain`, `applied`, `pending`, `unknown`, `legacy`, `legacyMissing`
113
+ and `adoptable`.
51
114
 
52
115
  ## `add maintenance` and its schedule
53
116
 
package/dist/args.d.ts ADDED
@@ -0,0 +1,10 @@
1
+ /**
2
+ * The flags a command accepts. A flag it does not know is an error
3
+ * rather than ignored: `sync --chek` must not apply, and `add --all`
4
+ * must not look as if it did something.
5
+ */
6
+ export declare function unknownFlags(args: readonly string[], allowed: readonly string[]): string[];
7
+ export declare function wantsHelp(args: readonly string[]): boolean;
8
+ /** `a,b c` → `["a", "b", "c"]`: items as `create --items` takes them, or space-separated. */
9
+ export declare function itemNames(args: readonly string[]): string[];
10
+ //# sourceMappingURL=args.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,EAAE,SAAS,MAAM,EAAE,GACzB,MAAM,EAAE,CAEV;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAE1D;AAED,6FAA6F;AAC7F,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAM3D"}
package/dist/args.js ADDED
@@ -0,0 +1,20 @@
1
+ /**
2
+ * The flags a command accepts. A flag it does not know is an error
3
+ * rather than ignored: `sync --chek` must not apply, and `add --all`
4
+ * must not look as if it did something.
5
+ */
6
+ export function unknownFlags(args, allowed) {
7
+ return args.filter((arg) => arg.startsWith("-") && !allowed.includes(arg));
8
+ }
9
+ export function wantsHelp(args) {
10
+ return args.includes("--help") || args.includes("-h");
11
+ }
12
+ /** `a,b c` → `["a", "b", "c"]`: items as `create --items` takes them, or space-separated. */
13
+ export function itemNames(args) {
14
+ return args
15
+ .filter((arg) => !arg.startsWith("-"))
16
+ .flatMap((arg) => arg.split(","))
17
+ .map((name) => name.trim())
18
+ .filter(Boolean);
19
+ }
20
+ //# sourceMappingURL=args.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"args.js","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,UAAU,YAAY,CAC1B,IAAuB,EACvB,OAA0B;IAE1B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAuB;IAC/C,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxD,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,SAAS,CAAC,IAAuB;IAC/C,OAAO,IAAI;SACR,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SACrC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAChC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC"}
package/dist/bin.js CHANGED
@@ -17,8 +17,13 @@ import { addFeature, formatAddResult, addExitCode, readCatalogue, } from "./comm
17
17
  import { exitCodeFor, formatResults, runChecks } from "./commands/doctor.js";
18
18
  import { formatMigrateCheck, formatMigrateCheckJson, migrateCheck, migrateCheckExitCode, } from "./commands/migrate-check.js";
19
19
  import { MIGRATIONS_TABLE_SQL, SCHEMA_PROBE_SQL, applyExitCode, applyMigrations, formatApplyResult, } from "./commands/migrate.js";
20
+ import { formatSyncReport, installedFrameworkVersion, selectItems, syncApply, syncCheck, syncCheckExitCode, } from "./commands/sync.js";
20
21
  import { formatUpgradeReport, upgradeCheck, upgradeCheckExitCode, } from "./commands/upgrade-check.js";
22
+ import { itemNames, unknownFlags, wantsHelp } from "./args.js";
21
23
  import { loadAppEnv } from "./env-files.js";
24
+ import { workspaceRootVariable } from "./commands/create.js";
25
+ import { resolveRegistryDir } from "./registry-bundle.js";
26
+ import { findWorkspaceRoot, readRegistryCatalogue } from "./registry-items.js";
22
27
  import { MIGRATION_LOCATIONS, resolveMigrationsDir } from "./migrations-dir.js";
23
28
  /**
24
29
  * Templates ship with the CLI package.
@@ -42,7 +47,7 @@ function usage() {
42
47
  "intelligo <command>",
43
48
  "",
44
49
  " create [dir] Scaffold an app, then install the registry pages you pick",
45
- " (--items a,b | --all, --yes, --no-install)",
50
+ " (--items a,b | --all, --yes, --no-install, --name <name>)",
46
51
  " doctor Report configuration and migration-chain problems",
47
52
  " migrate Apply the framework's migration chain to DATABASE_URL",
48
53
  " migrate --check Compare the framework's migrations to a database",
@@ -50,6 +55,10 @@ function usage() {
50
55
  " fresh | ahead | unmanaged | legacy)",
51
56
  " add <feature> Generate consumer-owned source (--force to overwrite)",
52
57
  " upgrade --check Show what a template upgrade would change",
58
+ " sync [items…] Install registry pages from this release's registry",
59
+ " (names space- or comma-separated),",
60
+ " keeping seams and merging messages (--force replaces",
61
+ " hand-edited files; --check only reports, exit 1 on drift)",
53
62
  "",
54
63
  ].join("\n");
55
64
  }
@@ -112,15 +121,61 @@ async function runMigrate(mode, json = false) {
112
121
  await client.end();
113
122
  }
114
123
  }
124
+ function flagsOk(command, args, allowed) {
125
+ const unknown = unknownFlags(args, allowed);
126
+ if (unknown.length === 0)
127
+ return true;
128
+ console.error(`intelligo ${command}: unknown argument ${unknown.join(" ")}` +
129
+ (allowed.length ? ` (it takes ${allowed.join(", ")}).` : "."));
130
+ return false;
131
+ }
132
+ function runAdd(rest) {
133
+ if (!flagsOk("add", rest, ["--force"]))
134
+ return 2;
135
+ const feature = rest.find((a) => !a.startsWith("--"));
136
+ if (!feature) {
137
+ const catalogue = readCatalogue(TEMPLATES_DIR);
138
+ console.error("Usage: intelligo add <feature>\n");
139
+ for (const [name, spec] of Object.entries(catalogue)) {
140
+ console.error(` ${name.padEnd(16)} ${spec.description}`);
141
+ }
142
+ return 1;
143
+ }
144
+ if (feature === "pnpm-standalone" && findWorkspaceRoot(process.cwd())) {
145
+ console.error("intelligo add pnpm-standalone: this app is a member of a pnpm workspace, and a " +
146
+ "workspace file of its own would take it out; the workspace root's settings apply.");
147
+ return 1;
148
+ }
149
+ const result = addFeature(feature, {
150
+ appRoot: process.cwd(),
151
+ templatesDir: TEMPLATES_DIR,
152
+ frameworkVersion: FRAMEWORK_VERSION,
153
+ force: rest.includes("--force"),
154
+ // Computed, not recorded: an app made before the variable existed
155
+ // has no value for it.
156
+ variables: feature === "app-scaffold"
157
+ ? workspaceRootVariable(process.cwd())
158
+ : undefined,
159
+ });
160
+ console.log(formatAddResult(result));
161
+ return addExitCode(result);
162
+ }
115
163
  async function main() {
116
164
  const [, , command = "help", ...rest] = process.argv;
165
+ if (wantsHelp(rest)) {
166
+ console.log(usage());
167
+ return 0;
168
+ }
117
169
  // The commands that read the app's configuration see what the app
118
- // itself would: its .env.local and .env, under anything the shell set.
170
+ // itself would: its .env.local and .env, then the pnpm workspace
171
+ // root's, under anything the shell set.
119
172
  if (command === "doctor" || command === "migrate" || command === "upgrade") {
120
173
  loadAppEnv(process.cwd());
121
174
  }
122
175
  switch (command) {
123
176
  case "doctor": {
177
+ if (!flagsOk("doctor", rest, []))
178
+ return 2;
124
179
  const results = runChecks();
125
180
  console.log(formatResults(results));
126
181
  return exitCodeFor(results);
@@ -141,32 +196,23 @@ async function main() {
141
196
  // Imported lazily so the prompts library loads only for the one
142
197
  // command that converses.
143
198
  const { parseCreateFlags, runCreate } = await import("./commands/create-flow.js");
144
- return runCreate(parseCreateFlags(rest), {
145
- templatesDir: TEMPLATES_DIR,
146
- frameworkVersion: FRAMEWORK_VERSION,
147
- interactive: Boolean(process.stdin.isTTY && process.stdout.isTTY),
148
- });
149
- }
150
- case "add": {
151
- const feature = rest.find((a) => !a.startsWith("--"));
152
- if (!feature) {
153
- const catalogue = readCatalogue(TEMPLATES_DIR);
154
- console.error("Usage: intelligo add <feature>\n");
155
- for (const [name, spec] of Object.entries(catalogue)) {
156
- console.error(` ${name.padEnd(16)} ${spec.description}`);
157
- }
158
- return 1;
199
+ const flags = parseCreateFlags(rest);
200
+ if (flags.unknown.length > 0) {
201
+ console.error(`intelligo create: unknown argument ${flags.unknown.join(" ")}.\n`);
202
+ console.error(usage());
203
+ return 2;
159
204
  }
160
- const result = addFeature(feature, {
161
- appRoot: process.cwd(),
205
+ return runCreate(flags, {
162
206
  templatesDir: TEMPLATES_DIR,
163
207
  frameworkVersion: FRAMEWORK_VERSION,
164
- force: rest.includes("--force"),
208
+ interactive: Boolean(process.stdin.isTTY && process.stdout.isTTY),
165
209
  });
166
- console.log(formatAddResult(result));
167
- return addExitCode(result);
168
210
  }
211
+ case "add":
212
+ return runAdd(rest);
169
213
  case "upgrade": {
214
+ if (!flagsOk("upgrade", rest, ["--check"]))
215
+ return 2;
170
216
  if (!rest.includes("--check")) {
171
217
  console.error("Only `upgrade --check` is implemented.");
172
218
  console.error("Applying an upgrade means re-running `intelligo add` for the " +
@@ -181,7 +227,42 @@ async function main() {
181
227
  console.log(formatUpgradeReport(report));
182
228
  return upgradeCheckExitCode(report);
183
229
  }
230
+ case "sync": {
231
+ if (!flagsOk("sync", rest, ["--check", "--force"]))
232
+ return 2;
233
+ const registryDir = resolveRegistryDir(TEMPLATES_DIR);
234
+ if (!registryDir) {
235
+ console.error("This CLI has no bundled registry — in the framework repository, run `pnpm registry:build` first.");
236
+ return 1;
237
+ }
238
+ const context = {
239
+ appRoot: process.cwd(),
240
+ registryDir,
241
+ requires: readRegistryCatalogue(TEMPLATES_DIR).requires,
242
+ frameworkVersion: FRAMEWORK_VERSION,
243
+ };
244
+ const installed = installedFrameworkVersion(context.appRoot);
245
+ if (installed && installed !== FRAMEWORK_VERSION) {
246
+ console.error(`! @intelligo-dev/core is ${installed} but this CLI carries the ${FRAMEWORK_VERSION} registry — ` +
247
+ "run the CLI of the same version (`pnpm exec intelligo`), or pages and packages will disagree.");
248
+ }
249
+ const selection = selectItems(itemNames(rest), context);
250
+ if (!selection.ok) {
251
+ console.error(selection.message);
252
+ return 1;
253
+ }
254
+ if (rest.includes("--check")) {
255
+ const report = syncCheck(selection.items, context);
256
+ console.log(formatSyncReport(report));
257
+ return syncCheckExitCode(report);
258
+ }
259
+ return syncApply(selection.items, context, {
260
+ force: rest.includes("--force"),
261
+ });
262
+ }
184
263
  case "help":
264
+ case "--help":
265
+ case "-h":
185
266
  console.log(usage());
186
267
  return 0;
187
268
  default:
package/dist/bin.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,8 @@ export type TemplateFeature = {
23
23
  deprecated?: string;
24
24
  files: TemplateFile[];
25
25
  cron?: TemplateCron;
26
+ /** What the developer still does by hand once the files are written. */
27
+ nextSteps?: string[];
26
28
  };
27
29
  export type TemplateCatalogue = Record<string, TemplateFeature>;
28
30
  export declare function readCatalogue(templatesDir: string): TemplateCatalogue;
@@ -43,6 +45,8 @@ export type AddResult = {
43
45
  cron?: TemplateCron & {
44
46
  status: "written" | "present" | "manual";
45
47
  };
48
+ /** The catalogue's steps left to the developer, printed after the files. */
49
+ nextSteps?: string[];
46
50
  };
47
51
  export type AddOptions = {
48
52
  appRoot: string;
@@ -1 +1 @@
1
- {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAcH,MAAM,MAAM,YAAY,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAChE,wEAAwE;AACxE,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAC9D,MAAM,MAAM,eAAe,GAAG;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,YAAY,CAAC;CACrB,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAEhE,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,iBAAiB,CAIrE;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,6DAA6D;IAC7D,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,kEAAkE;IAClE,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB;;;;OAIG;IACH,IAAI,CAAC,EAAE,YAAY,GAAG;QAAE,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAA;KAAE,CAAC;CACpE,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kEAAkE;IAClE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC,CAAC;AAEF,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GAC5C,MAAM,CAMR;AAmCD,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,CA8E1E;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,CAmBpD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,CAEhD"}
1
+ {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAcH,MAAM,MAAM,YAAY,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAChE,wEAAwE;AACxE,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAC9D,MAAM,MAAM,eAAe,GAAG;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAEhE,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,iBAAiB,CAIrE;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,6DAA6D;IAC7D,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,kEAAkE;IAClE,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB;;;;OAIG;IACH,IAAI,CAAC,EAAE,YAAY,GAAG;QAAE,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAA;KAAE,CAAC;IACnE,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kEAAkE;IAClE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC,CAAC;AAEF,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GAC5C,MAAM,CAMR;AAsCD,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,CA+F1E;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,CAsBpD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,CAEhD"}
@@ -18,6 +18,8 @@ export function substitute(contents, variables) {
18
18
  return contents;
19
19
  return Object.entries(variables).reduce((out, [key, value]) => out.split(key).join(value), contents);
20
20
  }
21
+ /** A `__NAME__` placeholder the variables did not fill. */
22
+ const PLACEHOLDER = /__[A-Z][A-Z0-9_]*__/;
21
23
  const VERCEL_CONFIG = "vercel.json";
22
24
  /**
23
25
  * Schedule the cron in vercel.json when the app has none. An existing
@@ -62,11 +64,32 @@ export function addFeature(feature, options) {
62
64
  };
63
65
  if (spec.deprecated)
64
66
  result.deprecated = spec.deprecated;
67
+ if (spec.nextSteps?.length)
68
+ result.nextSteps = spec.nextSteps;
65
69
  const recorded = [];
70
+ const handedOver = new Set(previous?.handedOver ?? []);
71
+ // Re-generating a feature substitutes what it was generated with, so
72
+ // `add app-scaffold` in an app `create` made takes the app's own name;
73
+ // values passed now fill in or replace them.
74
+ const variables = previous?.variables || options.variables
75
+ ? { ...previous?.variables, ...options.variables }
76
+ : undefined;
77
+ // Checked before anything is written, so a refusal leaves no half-made
78
+ // feature behind.
66
79
  for (const file of spec.files) {
80
+ const unfilled = substitute(readFileSync(path.join(options.templatesDir, file.template), "utf8"), variables).match(PLACEHOLDER);
81
+ if (unfilled) {
82
+ throw new Error(`${feature} needs a value for ${unfilled[0]} that only \`intelligo create\` supplies — ` +
83
+ "run `intelligo create <directory>`, or `intelligo create .` in an empty one.");
84
+ }
85
+ }
86
+ for (const file of spec.files) {
87
+ // A registry item replaced it; `intelligo sync` keeps it now.
88
+ if (handedOver.has(file.target))
89
+ continue;
67
90
  const source = path.join(options.templatesDir, file.template);
68
91
  const target = path.join(options.appRoot, file.target);
69
- const contents = substitute(readFileSync(source, "utf8"), options.variables);
92
+ const contents = substitute(readFileSync(source, "utf8"), variables);
70
93
  if (existsSync(target) && !options.force) {
71
94
  const current = hashContents(readFileSync(target, "utf8"));
72
95
  const known = previousByPath.get(file.target);
@@ -96,7 +119,7 @@ export function addFeature(feature, options) {
96
119
  status: scheduleCron(options.appRoot, spec.cron),
97
120
  };
98
121
  }
99
- writeManifest(options.appRoot, recordFeature(manifest, feature, spec.templateVersion, recorded, options.variables));
122
+ writeManifest(options.appRoot, recordFeature(manifest, feature, spec.templateVersion, recorded, variables));
100
123
  return result;
101
124
  }
102
125
  export function formatAddResult(r) {
@@ -118,6 +141,9 @@ export function formatAddResult(r) {
118
141
  lines.push(" nothing to do");
119
142
  if (r.cron)
120
143
  lines.push(...cronNextSteps(r.cron));
144
+ if (r.nextSteps?.length) {
145
+ lines.push("", " Next:", ...r.nextSteps.map((step) => ` - ${step}`));
146
+ }
121
147
  return lines.join("\n");
122
148
  }
123
149
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,10 @@
1
1
  /**
2
2
  * The conversation around `createApp`: ask what the flags did not say,
3
3
  * scaffold, and install the chosen registry items once the developer
4
- * has approved the commands that do it.
4
+ * has approved the commands that do it. The items go in through
5
+ * `intelligo sync` — one `shadcn add` per item from the registry this
6
+ * CLI carries, recorded in the manifest — exactly as a later sync
7
+ * would put them back.
5
8
  *
6
9
  * Nothing runs on the developer's machine without their say-so. In a
7
10
  * terminal the commands are shown and confirmed; without one (CI, a
@@ -23,6 +26,10 @@ export type CreateFlags = {
23
26
  * range, because that is what works everywhere else.
24
27
  */
25
28
  linkWorkspace: boolean;
29
+ /** `--name <name>` — the project name, when it is not the directory's. */
30
+ name?: string;
31
+ /** Flags `create` does not know. */
32
+ unknown: string[];
26
33
  };
27
34
  export declare function parseCreateFlags(args: readonly string[]): CreateFlags;
28
35
  export declare function runCreate(flags: CreateFlags, context: {
@@ -1 +1 @@
1
- {"version":3,"file":"create-flow.d.ts","sourceRoot":"","sources":["../../src/commands/create-flow.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA0BH,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,iCAAiC;IACjC,GAAG,EAAE,OAAO,CAAC;IACb,6DAA6D;IAC7D,GAAG,EAAE,OAAO,CAAC;IACb,kEAAkE;IAClE,OAAO,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,aAAa,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,WAAW,CAuBrE;AAwBD,wBAAsB,SAAS,CAC7B,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE;IACP,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,4DAA4D;IAC5D,WAAW,EAAE,OAAO,CAAC;CACtB,GACA,OAAO,CAAC,MAAM,CAAC,CAwHjB"}
1
+ {"version":3,"file":"create-flow.d.ts","sourceRoot":"","sources":["../../src/commands/create-flow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AA6BH,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,iCAAiC;IACjC,GAAG,EAAE,OAAO,CAAC;IACb,6DAA6D;IAC7D,GAAG,EAAE,OAAO,CAAC;IACb,kEAAkE;IAClE,OAAO,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,aAAa,EAAE,OAAO,CAAC;IACvB,0EAA0E;IAC1E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAUF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,WAAW,CAmCrE;AAiED,wBAAsB,SAAS,CAC7B,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE;IACP,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,4DAA4D;IAC5D,WAAW,EAAE,OAAO,CAAC;CACtB,GACA,OAAO,CAAC,MAAM,CAAC,CA2IjB"}