@calibrate-ds/cli 0.1.0

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 (201) hide show
  1. package/dist/__tests__/component-slug.test.d.ts +2 -0
  2. package/dist/__tests__/component-slug.test.d.ts.map +1 -0
  3. package/dist/__tests__/component-slug.test.js +54 -0
  4. package/dist/__tests__/component-slug.test.js.map +1 -0
  5. package/dist/__tests__/lock-changes.test.d.ts +2 -0
  6. package/dist/__tests__/lock-changes.test.d.ts.map +1 -0
  7. package/dist/__tests__/lock-changes.test.js +81 -0
  8. package/dist/__tests__/lock-changes.test.js.map +1 -0
  9. package/dist/__tests__/permissions.test.d.ts +2 -0
  10. package/dist/__tests__/permissions.test.d.ts.map +1 -0
  11. package/dist/__tests__/permissions.test.js +67 -0
  12. package/dist/__tests__/permissions.test.js.map +1 -0
  13. package/dist/__tests__/stamp-in-lock.test.d.ts +2 -0
  14. package/dist/__tests__/stamp-in-lock.test.d.ts.map +1 -0
  15. package/dist/__tests__/stamp-in-lock.test.js +102 -0
  16. package/dist/__tests__/stamp-in-lock.test.js.map +1 -0
  17. package/dist/__tests__/status-logic.test.d.ts +2 -0
  18. package/dist/__tests__/status-logic.test.d.ts.map +1 -0
  19. package/dist/__tests__/status-logic.test.js +74 -0
  20. package/dist/__tests__/status-logic.test.js.map +1 -0
  21. package/dist/__tests__/team-roster.test.d.ts +2 -0
  22. package/dist/__tests__/team-roster.test.d.ts.map +1 -0
  23. package/dist/__tests__/team-roster.test.js +97 -0
  24. package/dist/__tests__/team-roster.test.js.map +1 -0
  25. package/dist/ai/claude-provider.d.ts +13 -0
  26. package/dist/ai/claude-provider.d.ts.map +1 -0
  27. package/dist/ai/claude-provider.js +335 -0
  28. package/dist/ai/claude-provider.js.map +1 -0
  29. package/dist/ai/enhance-doc.d.ts +24 -0
  30. package/dist/ai/enhance-doc.d.ts.map +1 -0
  31. package/dist/ai/enhance-doc.js +272 -0
  32. package/dist/ai/enhance-doc.js.map +1 -0
  33. package/dist/ai/openai-provider.d.ts +13 -0
  34. package/dist/ai/openai-provider.d.ts.map +1 -0
  35. package/dist/ai/openai-provider.js +345 -0
  36. package/dist/ai/openai-provider.js.map +1 -0
  37. package/dist/ai/prompt-utils.d.ts +23 -0
  38. package/dist/ai/prompt-utils.d.ts.map +1 -0
  39. package/dist/ai/prompt-utils.js +67 -0
  40. package/dist/ai/prompt-utils.js.map +1 -0
  41. package/dist/commands/ai.d.ts +8 -0
  42. package/dist/commands/ai.d.ts.map +1 -0
  43. package/dist/commands/ai.js +576 -0
  44. package/dist/commands/ai.js.map +1 -0
  45. package/dist/commands/apply.d.ts +4 -0
  46. package/dist/commands/apply.d.ts.map +1 -0
  47. package/dist/commands/apply.js +98 -0
  48. package/dist/commands/apply.js.map +1 -0
  49. package/dist/commands/assign.d.ts +5 -0
  50. package/dist/commands/assign.d.ts.map +1 -0
  51. package/dist/commands/assign.js +180 -0
  52. package/dist/commands/assign.js.map +1 -0
  53. package/dist/commands/ci.d.ts +4 -0
  54. package/dist/commands/ci.d.ts.map +1 -0
  55. package/dist/commands/ci.js +84 -0
  56. package/dist/commands/ci.js.map +1 -0
  57. package/dist/commands/context.d.ts +19 -0
  58. package/dist/commands/context.d.ts.map +1 -0
  59. package/dist/commands/context.js +297 -0
  60. package/dist/commands/context.js.map +1 -0
  61. package/dist/commands/diff.d.ts +2 -0
  62. package/dist/commands/diff.d.ts.map +1 -0
  63. package/dist/commands/diff.js +119 -0
  64. package/dist/commands/diff.js.map +1 -0
  65. package/dist/commands/doctor.d.ts +5 -0
  66. package/dist/commands/doctor.d.ts.map +1 -0
  67. package/dist/commands/doctor.js +348 -0
  68. package/dist/commands/doctor.js.map +1 -0
  69. package/dist/commands/document-system.d.ts +5 -0
  70. package/dist/commands/document-system.d.ts.map +1 -0
  71. package/dist/commands/document-system.js +84 -0
  72. package/dist/commands/document-system.js.map +1 -0
  73. package/dist/commands/document.d.ts +6 -0
  74. package/dist/commands/document.d.ts.map +1 -0
  75. package/dist/commands/document.js +276 -0
  76. package/dist/commands/document.js.map +1 -0
  77. package/dist/commands/export.d.ts +11 -0
  78. package/dist/commands/export.d.ts.map +1 -0
  79. package/dist/commands/export.js +74 -0
  80. package/dist/commands/export.js.map +1 -0
  81. package/dist/commands/generate-components.d.ts +4 -0
  82. package/dist/commands/generate-components.d.ts.map +1 -0
  83. package/dist/commands/generate-components.js +62 -0
  84. package/dist/commands/generate-components.js.map +1 -0
  85. package/dist/commands/generate-composites.d.ts +2 -0
  86. package/dist/commands/generate-composites.d.ts.map +1 -0
  87. package/dist/commands/generate-composites.js +31 -0
  88. package/dist/commands/generate-composites.js.map +1 -0
  89. package/dist/commands/generate-tokens.d.ts +2 -0
  90. package/dist/commands/generate-tokens.d.ts.map +1 -0
  91. package/dist/commands/generate-tokens.js +48 -0
  92. package/dist/commands/generate-tokens.js.map +1 -0
  93. package/dist/commands/help-topics.d.ts +2 -0
  94. package/dist/commands/help-topics.d.ts.map +1 -0
  95. package/dist/commands/help-topics.js +324 -0
  96. package/dist/commands/help-topics.js.map +1 -0
  97. package/dist/commands/implement.d.ts +5 -0
  98. package/dist/commands/implement.d.ts.map +1 -0
  99. package/dist/commands/implement.js +595 -0
  100. package/dist/commands/implement.js.map +1 -0
  101. package/dist/commands/import-tokens.d.ts +2 -0
  102. package/dist/commands/import-tokens.d.ts.map +1 -0
  103. package/dist/commands/import-tokens.js +42 -0
  104. package/dist/commands/import-tokens.js.map +1 -0
  105. package/dist/commands/init.d.ts +6 -0
  106. package/dist/commands/init.d.ts.map +1 -0
  107. package/dist/commands/init.js +410 -0
  108. package/dist/commands/init.js.map +1 -0
  109. package/dist/commands/inspect-component.d.ts +2 -0
  110. package/dist/commands/inspect-component.d.ts.map +1 -0
  111. package/dist/commands/inspect-component.js +146 -0
  112. package/dist/commands/inspect-component.js.map +1 -0
  113. package/dist/commands/log.d.ts +4 -0
  114. package/dist/commands/log.d.ts.map +1 -0
  115. package/dist/commands/log.js +109 -0
  116. package/dist/commands/log.js.map +1 -0
  117. package/dist/commands/onboarding.d.ts +9 -0
  118. package/dist/commands/onboarding.d.ts.map +1 -0
  119. package/dist/commands/onboarding.js +63 -0
  120. package/dist/commands/onboarding.js.map +1 -0
  121. package/dist/commands/plan.d.ts +3 -0
  122. package/dist/commands/plan.d.ts.map +1 -0
  123. package/dist/commands/plan.js +108 -0
  124. package/dist/commands/plan.js.map +1 -0
  125. package/dist/commands/prompt.d.ts +5 -0
  126. package/dist/commands/prompt.d.ts.map +1 -0
  127. package/dist/commands/prompt.js +77 -0
  128. package/dist/commands/prompt.js.map +1 -0
  129. package/dist/commands/prune.d.ts +2 -0
  130. package/dist/commands/prune.d.ts.map +1 -0
  131. package/dist/commands/prune.js +95 -0
  132. package/dist/commands/prune.js.map +1 -0
  133. package/dist/commands/remove.d.ts +2 -0
  134. package/dist/commands/remove.d.ts.map +1 -0
  135. package/dist/commands/remove.js +76 -0
  136. package/dist/commands/remove.js.map +1 -0
  137. package/dist/commands/scaffold.d.ts +2 -0
  138. package/dist/commands/scaffold.d.ts.map +1 -0
  139. package/dist/commands/scaffold.js +47 -0
  140. package/dist/commands/scaffold.js.map +1 -0
  141. package/dist/commands/scan.d.ts +2 -0
  142. package/dist/commands/scan.d.ts.map +1 -0
  143. package/dist/commands/scan.js +91 -0
  144. package/dist/commands/scan.js.map +1 -0
  145. package/dist/commands/stamp.d.ts +11 -0
  146. package/dist/commands/stamp.d.ts.map +1 -0
  147. package/dist/commands/stamp.js +147 -0
  148. package/dist/commands/stamp.js.map +1 -0
  149. package/dist/commands/status.d.ts +7 -0
  150. package/dist/commands/status.d.ts.map +1 -0
  151. package/dist/commands/status.js +219 -0
  152. package/dist/commands/status.js.map +1 -0
  153. package/dist/commands/team.d.ts +7 -0
  154. package/dist/commands/team.d.ts.map +1 -0
  155. package/dist/commands/team.js +173 -0
  156. package/dist/commands/team.js.map +1 -0
  157. package/dist/index.d.ts +3 -0
  158. package/dist/index.d.ts.map +1 -0
  159. package/dist/index.js +303 -0
  160. package/dist/index.js.map +1 -0
  161. package/dist/onboarding/content.d.ts +39 -0
  162. package/dist/onboarding/content.d.ts.map +1 -0
  163. package/dist/onboarding/content.js +82 -0
  164. package/dist/onboarding/content.js.map +1 -0
  165. package/dist/utils/component-slug.d.ts +10 -0
  166. package/dist/utils/component-slug.d.ts.map +1 -0
  167. package/dist/utils/component-slug.js +13 -0
  168. package/dist/utils/component-slug.js.map +1 -0
  169. package/dist/utils/framework-registry.d.ts +41 -0
  170. package/dist/utils/framework-registry.d.ts.map +1 -0
  171. package/dist/utils/framework-registry.js +82 -0
  172. package/dist/utils/framework-registry.js.map +1 -0
  173. package/dist/utils/gitignore.d.ts +4 -0
  174. package/dist/utils/gitignore.d.ts.map +1 -0
  175. package/dist/utils/gitignore.js +67 -0
  176. package/dist/utils/gitignore.js.map +1 -0
  177. package/dist/utils/lock-changes.d.ts +14 -0
  178. package/dist/utils/lock-changes.d.ts.map +1 -0
  179. package/dist/utils/lock-changes.js +26 -0
  180. package/dist/utils/lock-changes.js.map +1 -0
  181. package/dist/utils/logger.d.ts +9 -0
  182. package/dist/utils/logger.d.ts.map +1 -0
  183. package/dist/utils/logger.js +32 -0
  184. package/dist/utils/logger.js.map +1 -0
  185. package/dist/utils/permissions.d.ts +17 -0
  186. package/dist/utils/permissions.d.ts.map +1 -0
  187. package/dist/utils/permissions.js +37 -0
  188. package/dist/utils/permissions.js.map +1 -0
  189. package/dist/utils/status-logic.d.ts +16 -0
  190. package/dist/utils/status-logic.d.ts.map +1 -0
  191. package/dist/utils/status-logic.js +32 -0
  192. package/dist/utils/status-logic.js.map +1 -0
  193. package/dist/utils/storybook-setup.d.ts +5 -0
  194. package/dist/utils/storybook-setup.d.ts.map +1 -0
  195. package/dist/utils/storybook-setup.js +104 -0
  196. package/dist/utils/storybook-setup.js.map +1 -0
  197. package/dist/utils/team-roster.d.ts +35 -0
  198. package/dist/utils/team-roster.d.ts.map +1 -0
  199. package/dist/utils/team-roster.js +99 -0
  200. package/dist/utils/team-roster.js.map +1 -0
  201. package/package.json +44 -0
@@ -0,0 +1,42 @@
1
+ import { loadConfig, importTokenFile, saveImportedTokens } from "@calibrate-ds/core";
2
+ import { logger } from "../utils/logger.js";
3
+ export async function importTokensCommand(filePath) {
4
+ if (!filePath) {
5
+ logger.error("Please provide a path to the token JSON file.");
6
+ process.exit(1);
7
+ }
8
+ try {
9
+ logger.info(`Validating token export file at ${filePath}...`);
10
+ const result = await importTokenFile(filePath);
11
+ if (!result.success) {
12
+ if (result.errorType === "not_found") {
13
+ logger.error(`Token export file not found: ${filePath}`);
14
+ }
15
+ else if (result.errorType === "invalid_json") {
16
+ logger.error("Invalid JSON in token export file.");
17
+ }
18
+ else if (result.errorType === "unknown_format") {
19
+ logger.error("Unsupported token import format. Supported formats: PTB Token Exporter, Generic collection-based token JSON.");
20
+ }
21
+ else if (result.errorType === "schema_mismatch") {
22
+ logger.error("Token export file does not match the inferred schema.");
23
+ }
24
+ process.exit(1);
25
+ }
26
+ logger.info(`Detected format: ${result.format === "ptb" ? "PTB Token Exporter" : "Generic Token JSON"}`);
27
+ const data = result.data;
28
+ let tokenCount = 0;
29
+ for (const collection of data.collections) {
30
+ tokenCount += collection.tokens.length;
31
+ }
32
+ const config = await loadConfig();
33
+ logger.info(`Saving validated tokens...`);
34
+ await saveImportedTokens(data, config);
35
+ logger.success(`Imported ${data.collections.length} collections and ${tokenCount} tokens into ${config.output.metadataDir}/imported-tokens.json`);
36
+ }
37
+ catch (error) {
38
+ logger.error(error.message || String(error));
39
+ process.exit(1);
40
+ }
41
+ }
42
+ //# sourceMappingURL=import-tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-tokens.js","sourceRoot":"","sources":["../../src/commands/import-tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,QAAgB;IACtD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,MAAM,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,IAAI,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,mCAAmC,QAAQ,KAAK,CAAC,CAAC;QAE9D,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;QAE/C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,MAAM,CAAC,SAAS,KAAK,WAAW,EAAE,CAAC;gBACnC,MAAM,CAAC,KAAK,CAAC,gCAAgC,QAAQ,EAAE,CAAC,CAAC;YAC7D,CAAC;iBAAM,IAAI,MAAM,CAAC,SAAS,KAAK,cAAc,EAAE,CAAC;gBAC7C,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;YACvD,CAAC;iBAAM,IAAI,MAAM,CAAC,SAAS,KAAK,gBAAgB,EAAE,CAAC;gBAC/C,MAAM,CAAC,KAAK,CAAC,8GAA8G,CAAC,CAAC;YACjI,CAAC;iBAAM,IAAI,MAAM,CAAC,SAAS,KAAK,iBAAiB,EAAE,CAAC;gBAChD,MAAM,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;YAC1E,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,oBAAoB,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,oBAAoB,EAAE,CAAC,CAAC;QAEzG,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QAEzB,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACxC,UAAU,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;QAC3C,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;QAElC,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC1C,MAAM,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAEvC,MAAM,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,WAAW,CAAC,MAAM,oBAAoB,UAAU,gBAAgB,MAAM,CAAC,MAAM,CAAC,WAAW,uBAAuB,CAAC,CAAC;IAEtJ,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { Command } from "commander";
2
+ export interface InitCommandOptions {
3
+ withLibrary?: boolean;
4
+ }
5
+ export declare function createInitCommand(): Command;
6
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsMpC,MAAM,WAAW,kBAAkB;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAyQ3C"}
@@ -0,0 +1,410 @@
1
+ import * as fs from "node:fs/promises";
2
+ import * as path from "node:path";
3
+ import * as readline from "node:readline";
4
+ import { spawnSync } from "node:child_process";
5
+ import { Command } from "commander";
6
+ import { logger } from "../utils/logger.js";
7
+ import { generateLibraryFiles, writeLibraryBootstrap, loadConfig, detectPackageManager } from "@calibrate-ds/core";
8
+ import { getGitUser, toHandle, readRoster, writeRoster } from "../utils/team-roster.js";
9
+ import { ensureStorybookSetup } from "../utils/storybook-setup.js";
10
+ import { ensureGitignore } from "../utils/gitignore.js";
11
+ import { FRAMEWORK_LIST, detectFrameworkFromDeps, } from "../utils/framework-registry.js";
12
+ // ── Helpers ───────────────────────────────────────────────────────────────────
13
+ function ask(question) {
14
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
15
+ return new Promise(resolve => rl.question(question, ans => { rl.close(); resolve(ans.trim()); }));
16
+ }
17
+ async function registerCurrentUser(cwd) {
18
+ const user = getGitUser();
19
+ if (!user)
20
+ return undefined;
21
+ const roster = await readRoster(cwd);
22
+ const handle = toHandle(user.name);
23
+ const members = Object.values(roster.members);
24
+ const exists = roster.members[user.email] !== undefined || members.some(m => m.handle === handle);
25
+ if (!exists) {
26
+ const isFirstMember = members.length === 0;
27
+ roster.members[user.email] = {
28
+ name: user.name,
29
+ email: user.email,
30
+ handle,
31
+ joinedAt: new Date().toISOString(),
32
+ role: isFirstMember ? "lead" : "member",
33
+ };
34
+ await writeRoster(cwd, roster);
35
+ logger.success(`Registered you in ptb-team.json as @${handle} ${isFirstMember ? "(lead)" : "(member)"}`);
36
+ }
37
+ return handle;
38
+ }
39
+ async function readDepsFromFile(pkgPath) {
40
+ try {
41
+ const pkg = JSON.parse(await fs.readFile(pkgPath, "utf-8"));
42
+ return { ...pkg.dependencies, ...pkg.devDependencies, ...pkg.peerDependencies };
43
+ }
44
+ catch {
45
+ return {};
46
+ }
47
+ }
48
+ async function detectProjectState(cwd) {
49
+ // Collect deps from root and one level of packages/*/
50
+ const allDeps = {};
51
+ Object.assign(allDeps, await readDepsFromFile(path.join(cwd, "package.json")));
52
+ const packagesDir = path.join(cwd, "packages");
53
+ const subdirs = await fs.readdir(packagesDir).catch(() => []);
54
+ for (const sub of subdirs) {
55
+ Object.assign(allDeps, await readDepsFromFile(path.join(packagesDir, sub, "package.json")));
56
+ }
57
+ const detectedFramework = detectFrameworkFromDeps(allDeps);
58
+ // Fresh = no framework found AND no meaningful src/ or packages/ with code
59
+ const hasSrc = await fs.access(path.join(cwd, "src")).then(() => true).catch(() => false);
60
+ const hasPackagesWithCode = subdirs.some(s => s !== "node_modules");
61
+ const isFresh = !detectedFramework && !hasSrc && !hasPackagesWithCode;
62
+ return {
63
+ state: isFresh ? "fresh" : "existing",
64
+ detectedFramework,
65
+ };
66
+ }
67
+ // ── Framework selection ───────────────────────────────────────────────────────
68
+ async function promptFramework(detected) {
69
+ console.log("\n Framework:");
70
+ FRAMEWORK_LIST.forEach((fw, i) => {
71
+ const hint = !fw.hasGenerator ? " \x1b[2m(scan & track only — generator coming soon)\x1b[0m" : "";
72
+ const def = detected?.id === fw.id ? " \x1b[2m← detected\x1b[0m" : "";
73
+ console.log(` \x1b[2m${i + 1}\x1b[0m) ${fw.displayName}${hint}${def}`);
74
+ });
75
+ const defaultIdx = detected ? FRAMEWORK_LIST.findIndex(f => f.id === detected.id) : 0;
76
+ const raw = await ask(` Choose (1–${FRAMEWORK_LIST.length}, default: ${defaultIdx + 1}): `);
77
+ const idx = raw ? parseInt(raw, 10) - 1 : defaultIdx;
78
+ return FRAMEWORK_LIST[idx] ?? FRAMEWORK_LIST[0];
79
+ }
80
+ // ── Scaffolding for fresh repos ───────────────────────────────────────────────
81
+ function uiPackageJson(fw, pkgName) {
82
+ const deps = {};
83
+ const devDeps = {};
84
+ const peerDeps = {};
85
+ for (const d of fw.runtimeDeps)
86
+ deps[d] = "*";
87
+ for (const d of fw.devDeps)
88
+ devDeps[d] = "*";
89
+ for (const d of fw.peerDeps)
90
+ peerDeps[d] = ">=1.0.0";
91
+ return {
92
+ name: pkgName,
93
+ version: "0.0.1",
94
+ private: true,
95
+ main: "./dist/index.js",
96
+ types: "./dist/index.d.ts",
97
+ scripts: {
98
+ build: "tsc",
99
+ dev: "tsc --watch",
100
+ storybook: "storybook dev -p 6006",
101
+ "build-storybook": "storybook build",
102
+ },
103
+ dependencies: deps,
104
+ devDependencies: devDeps,
105
+ peerDependencies: peerDeps,
106
+ };
107
+ }
108
+ function uiTsconfig(fw) {
109
+ const jsx = fw.tsconfigJsx;
110
+ return {
111
+ compilerOptions: {
112
+ target: "ES2020",
113
+ lib: ["ES2020", "DOM"],
114
+ ...(jsx ? { jsx } : {}),
115
+ module: "ESNext",
116
+ moduleResolution: "bundler",
117
+ declaration: true,
118
+ declarationDir: "./dist",
119
+ outDir: "./dist",
120
+ strict: true,
121
+ esModuleInterop: true,
122
+ skipLibCheck: true,
123
+ },
124
+ include: ["src"],
125
+ exclude: ["dist", "node_modules"],
126
+ };
127
+ }
128
+ async function scaffoldFreshProject(cwd, fw, pm) {
129
+ const uiRoot = path.join(cwd, "packages", "ui");
130
+ await fs.mkdir(path.join(uiRoot, "src", "components"), { recursive: true });
131
+ await fs.mkdir(path.join(uiRoot, "src", "tokens"), { recursive: true });
132
+ // packages/ui/package.json
133
+ await fs.writeFile(path.join(uiRoot, "package.json"), JSON.stringify(uiPackageJson(fw, "@workspace/ui"), null, 2) + "\n", "utf-8");
134
+ // packages/ui/tsconfig.json
135
+ await fs.writeFile(path.join(uiRoot, "tsconfig.json"), JSON.stringify(uiTsconfig(fw), null, 2) + "\n", "utf-8");
136
+ // Root workspace config
137
+ const rootPkgPath = path.join(cwd, "package.json");
138
+ const rootPkgExists = await fs.access(rootPkgPath).then(() => true).catch(() => false);
139
+ if (!rootPkgExists) {
140
+ const rootPkg = {
141
+ name: path.basename(cwd),
142
+ private: true,
143
+ ...(pm !== "pnpm" ? { workspaces: ["packages/*"] } : {}),
144
+ };
145
+ await fs.writeFile(rootPkgPath, JSON.stringify(rootPkg, null, 2) + "\n", "utf-8");
146
+ logger.success("Created root package.json");
147
+ }
148
+ // pnpm workspace config
149
+ if (pm === "pnpm") {
150
+ const wsPath = path.join(cwd, "pnpm-workspace.yaml");
151
+ const wsExists = await fs.access(wsPath).then(() => true).catch(() => false);
152
+ if (!wsExists) {
153
+ await fs.writeFile(wsPath, `packages:\n - 'packages/*'\n`, "utf-8");
154
+ logger.success("Created pnpm-workspace.yaml");
155
+ }
156
+ }
157
+ logger.success("Scaffolded packages/ui/ (package.json, tsconfig.json, src/)");
158
+ return { uiPackageRoot: uiRoot };
159
+ }
160
+ export function createInitCommand() {
161
+ return new Command("init")
162
+ .description("Initialize PTB in the current directory")
163
+ .option("-w, --with-library", "bootstrap a design system package (auto-selected for fresh repos)")
164
+ .action(async (options) => {
165
+ const cwd = process.cwd();
166
+ const configPath = path.join(cwd, "ptb.config.json");
167
+ const isTTY = process.stdout.isTTY;
168
+ // ── Guard: re-initialize? ─────────────────────────────────────────
169
+ let isReinit = false;
170
+ const configExists = await fs.stat(configPath).then(() => true).catch(() => false);
171
+ if (configExists) {
172
+ const shouldReinit = isTTY
173
+ ? (await ask("\x1b[33m ptb.config.json already exists. Re-initialize? (y/N, default: N — just updates .gitignore) \x1b[0m")).toLowerCase() === "y"
174
+ : false;
175
+ if (!shouldReinit) {
176
+ // Still run the lightweight idempotent updates even without full re-init
177
+ const gitExists = await fs.access(path.join(cwd, ".git")).then(() => true).catch(() => false);
178
+ if (!gitExists) {
179
+ spawnSync("git init", { cwd, stdio: "inherit", shell: true });
180
+ logger.success(`Initialized git repository`);
181
+ }
182
+ await fs.mkdir(path.join(cwd, ".ptb"), { recursive: true });
183
+ await ensureGitignore(cwd).catch((e) => logger.warn(`Could not update .gitignore: ${e.message}`));
184
+ logger.info("Keeping existing config. .gitignore updated.");
185
+ return;
186
+ }
187
+ // Full re-init: clear generated .ptb/ metadata so next ptb scan starts fresh.
188
+ // imported-tokens.json is preserved — user may have placed it there intentionally.
189
+ // ptb.config.json is read now so figma + ai sections survive the rewrite below.
190
+ isReinit = true;
191
+ logger.dim(" Clearing .ptb/ metadata (ptb.lock and ptb-team.json preserved)...");
192
+ const ptbDir = path.join(cwd, ".ptb");
193
+ for (const entry of ["latest.json", "history", "context", "manifest.json"]) {
194
+ await fs.rm(path.join(ptbDir, entry), { recursive: true, force: true });
195
+ }
196
+ }
197
+ // Read existing config before overwriting — preserves figma.fileKey, ai config, etc.
198
+ // so re-init doesn't reset secrets that came from the team's committed ptb.config.json.
199
+ let existingConfig = {};
200
+ if (isReinit) {
201
+ try {
202
+ existingConfig = JSON.parse(await fs.readFile(configPath, "utf-8"));
203
+ }
204
+ catch { /* fresh */ }
205
+ }
206
+ // ── Detect project state ─────────────────────────────────────────
207
+ const { state, detectedFramework } = await detectProjectState(cwd);
208
+ const isFresh = state === "fresh";
209
+ if (isFresh) {
210
+ logger.info("\n Fresh project detected — PTB will scaffold the component library.\n");
211
+ }
212
+ // ── Framework ────────────────────────────────────────────────────
213
+ let framework;
214
+ if (isTTY) {
215
+ framework = await promptFramework(detectedFramework);
216
+ }
217
+ else {
218
+ framework = detectedFramework ?? FRAMEWORK_LIST[0];
219
+ logger.dim(` Non-interactive: framework = ${framework.displayName}`);
220
+ }
221
+ logger.info(` Framework: \x1b[36m${framework.displayName}\x1b[0m`);
222
+ if (!framework.hasGenerator) {
223
+ logger.dim(` Note: PTB can scan and track ${framework.displayName} components. Code generation for this framework is on the roadmap.`);
224
+ }
225
+ // ── Solo / team ───────────────────────────────────────────────────
226
+ let isTeam = false;
227
+ if (isTTY) {
228
+ console.log("\n Project type:");
229
+ console.log(" 1) Solo");
230
+ console.log(" 2) Team — assigns components, tracks contributors, enables CI checks");
231
+ const mode = await ask(" Choose (1/2, default: 1): ");
232
+ isTeam = mode.trim() === "2";
233
+ }
234
+ else {
235
+ logger.dim(" Non-interactive: project type = solo");
236
+ }
237
+ // ── Figma plan ────────────────────────────────────────────────────
238
+ let isEnterprise = false;
239
+ if (isTTY) {
240
+ console.log("\n Figma plan:");
241
+ console.log(" \x1b[2m1) Organization / Enterprise — scan tokens directly via REST API\x1b[0m");
242
+ console.log(" \x1b[2m2) Pro / Starter / Free — export tokens via Figma plugin first\x1b[0m");
243
+ const plan = await ask(" Choose (1/2, default: 2): ");
244
+ isEnterprise = plan === "1";
245
+ }
246
+ else {
247
+ logger.dim(" Non-interactive: Figma plan = plugin export (default)");
248
+ }
249
+ // ── Docs tool ─────────────────────────────────────────────────────
250
+ let docsTool = "storybook";
251
+ const supportsStorybook = framework.storybookVite !== null || framework.storybookWebpack !== null;
252
+ if (isTTY) {
253
+ console.log("\n Documentation tool:");
254
+ if (supportsStorybook) {
255
+ console.log(" \x1b[2m1) Storybook — .stories files + live preview (recommended)\x1b[0m");
256
+ console.log(" \x1b[2m2) Docusaurus — standalone MDX\x1b[0m");
257
+ console.log(" \x1b[2m3) None — plain MDX\x1b[0m");
258
+ const choice = await ask(" Choose (1/2/3, default: 1): ");
259
+ if (choice === "2")
260
+ docsTool = "docusaurus";
261
+ else if (choice === "3")
262
+ docsTool = "none";
263
+ }
264
+ else {
265
+ console.log(` \x1b[2mStorybook is not supported for ${framework.displayName} yet — defaulting to MDX.\x1b[0m`);
266
+ docsTool = "none";
267
+ }
268
+ }
269
+ // ── Scaffold (fresh repos only) ───────────────────────────────────
270
+ const pm = await detectPackageManager(cwd);
271
+ let uiPackageRoot;
272
+ if (isFresh || options.withLibrary) {
273
+ try {
274
+ const result = await scaffoldFreshProject(cwd, framework, pm);
275
+ uiPackageRoot = result.uiPackageRoot;
276
+ }
277
+ catch (err) {
278
+ logger.error(`Scaffold failed: ${err.message}`);
279
+ process.exit(1);
280
+ }
281
+ }
282
+ // ── ptb.config.json ───────────────────────────────────────────────
283
+ const componentsDir = uiPackageRoot
284
+ ? "packages/ui/src/components"
285
+ : "src/components/ui";
286
+ const tokensDir = uiPackageRoot
287
+ ? "packages/ui/src/tokens"
288
+ : "src/tokens";
289
+ const existingDesignTool = existingConfig.designTool
290
+ ?? (existingConfig.figma
291
+ ? { provider: "figma", ...existingConfig.figma }
292
+ : { provider: "figma", fileKey: "YOUR_FIGMA_FILE_KEY", accessTokenEnv: "FIGMA_ACCESS_TOKEN" });
293
+ const config = {
294
+ designTool: existingDesignTool,
295
+ ai: existingConfig.ai ?? {
296
+ active: "claude",
297
+ providers: { claude: { model: "claude-sonnet-4-6", accessTokenEnv: "ANTHROPIC_API_KEY" } },
298
+ },
299
+ project: { rootDir: "." },
300
+ output: { componentsDir, tokensDir, metadataDir: ".ptb" },
301
+ framework: { name: framework.id, typescript: true, styling: "css-modules" },
302
+ generation: { stories: supportsStorybook, tests: false, types: true, indexFiles: true, cssFiles: true },
303
+ naming: { componentCase: "PascalCase", folderCase: "kebab-case", tokenCase: "camelCase" },
304
+ classification: {
305
+ treatComponentSetsAsCanonical: true,
306
+ treatStandaloneComponentsAsCanonical: true,
307
+ treatNestedInstancesAsReferences: true,
308
+ },
309
+ docs: { tool: docsTool },
310
+ };
311
+ await fs.writeFile(configPath, JSON.stringify(config, null, 2) + "\n", "utf-8");
312
+ logger.success(`Created ptb.config.json`);
313
+ logger.dim(` AI pre-configured for Claude (claude-sonnet-4-6). Run 'ptb ai setup' to change provider or model.`);
314
+ // ── --with-library bootstrap (existing repos) ─────────────────────
315
+ if (options.withLibrary && !isFresh) {
316
+ logger.info("Bootstrapping library foundation...");
317
+ try {
318
+ const plan = generateLibraryFiles();
319
+ const report = await writeLibraryBootstrap(cwd, plan);
320
+ logger.success("Library foundation ready.");
321
+ logger.dim(`- Directories: ${report.createdDirectories.length}, Files: ${report.createdFiles.length}`);
322
+ }
323
+ catch (err) {
324
+ logger.error(`Library bootstrap failed: ${err.message}`);
325
+ }
326
+ }
327
+ // ── Team setup ────────────────────────────────────────────────────
328
+ if (isTeam) {
329
+ const handle = await registerCurrentUser(cwd);
330
+ if (!handle)
331
+ logger.warn("Could not detect git user. Run 'ptb join' to register.");
332
+ }
333
+ // ── git init ─────────────────────────────────────────────────────
334
+ const gitExists = await fs.access(path.join(cwd, ".git")).then(() => true).catch(() => false);
335
+ if (!gitExists) {
336
+ spawnSync("git init", { cwd, stdio: "inherit", shell: true });
337
+ logger.success(`Initialized git repository`);
338
+ }
339
+ // ── .ptb/ directory ───────────────────────────────────────────────
340
+ // Create early so the user can drop imported-tokens.json in before ptb scan runs
341
+ await fs.mkdir(path.join(cwd, ".ptb"), { recursive: true });
342
+ // ── .gitignore ────────────────────────────────────────────────────
343
+ await ensureGitignore(cwd).catch((e) => logger.warn(`Could not update .gitignore: ${e.message}`));
344
+ // ── Install deps (fresh repos) ────────────────────────────────────
345
+ if (isFresh && uiPackageRoot) {
346
+ console.log(`\n Installing dependencies with ${pm}...`);
347
+ const install = spawnSync(pm === "pnpm" ? "pnpm install" : `${pm} install`, {
348
+ cwd,
349
+ stdio: "inherit",
350
+ shell: true,
351
+ });
352
+ if (install.status !== 0) {
353
+ logger.warn("Dependency install failed. Run it manually, then re-run 'ptb init'.");
354
+ }
355
+ }
356
+ // ── Storybook setup ───────────────────────────────────────────────
357
+ if (docsTool === "storybook") {
358
+ try {
359
+ const resolvedConfig = await loadConfig(cwd);
360
+ await ensureStorybookSetup(resolvedConfig, { force: isReinit });
361
+ }
362
+ catch (err) {
363
+ logger.warn(`Storybook setup skipped: ${err.message}`);
364
+ }
365
+ }
366
+ // ── Next steps ────────────────────────────────────────────────────
367
+ console.log("\n\x1b[1m Next steps:\x1b[0m\n");
368
+ let step = 1;
369
+ console.log(` ${step++}. Open \x1b[36mptb.config.json\x1b[0m and replace \x1b[33m"YOUR_FIGMA_FILE_KEY"\x1b[0m with your Figma file key.`);
370
+ console.log(` \x1b[2mFind it in the Figma URL: figma.com/file/<FILE_KEY>/...\x1b[0m\n`);
371
+ if (isEnterprise) {
372
+ console.log(` ${step++}. Get your Figma token: Figma → Account Settings → Security → Generate New Token.`);
373
+ console.log(` Then set it in your terminal:`);
374
+ console.log(` \x1b[36mexport FIGMA_ACCESS_TOKEN=<your_token>\x1b[0m`);
375
+ console.log(` \x1b[2m(Add to ~/.zshrc or ~/.bashrc to persist, and add to CI as a repo secret)\x1b[0m`);
376
+ console.log(` Then run: \x1b[36mptb scan\x1b[0m\n`);
377
+ }
378
+ else {
379
+ console.log(` ${step++}. In Figma, run the \x1b[36mCalibrate\x1b[0m plugin → Export.`);
380
+ console.log(` Save the file as \x1b[33mimported-tokens.json\x1b[0m inside the \x1b[33m.ptb/\x1b[0m folder at your project root.`);
381
+ console.log(` \x1b[2m(Press Cmd+Shift+. in Finder/save dialog to show hidden folders)\x1b[0m`);
382
+ console.log(` Or copy it anywhere and run: \x1b[36mptb import-tokens <path/to/file.json>\x1b[0m\n`);
383
+ console.log(` ${step++}. Get your Figma token: Figma → Account Settings → Security → Generate New Token.`);
384
+ console.log(` Then set it in your terminal:`);
385
+ console.log(` \x1b[36mexport FIGMA_ACCESS_TOKEN=<your_token>\x1b[0m`);
386
+ console.log(` \x1b[2m(Add to ~/.zshrc or ~/.bashrc to persist across sessions)\x1b[0m`);
387
+ console.log(` Then run: \x1b[36mptb scan\x1b[0m\n`);
388
+ }
389
+ if (isTeam) {
390
+ console.log(` ${step++}. Commit \x1b[36mptb.lock\x1b[0m and \x1b[36mptb-team.json\x1b[0m — shared state, not build artifacts.`);
391
+ console.log(` \x1b[2mgit add ptb.lock ptb-team.json && git commit -m "chore: init ptb"\x1b[0m\n`);
392
+ console.log(` ${step++}. Teammates run \x1b[36mptb join\x1b[0m to register, then \x1b[36mptb assign\x1b[0m to claim components.\n`);
393
+ console.log(` ${step++}. Add a CI check: \x1b[36mptb ci setup\x1b[0m\n`);
394
+ }
395
+ else {
396
+ console.log(` ${step++}. Commit \x1b[36mptb.lock\x1b[0m to track design history.\n`);
397
+ }
398
+ console.log(` ${step++}. After scanning, generate typed component shells and export context for AI IDEs:`);
399
+ console.log(` \x1b[36mptb generate-components\x1b[0m \x1b[2m— scaffold typed React shells from your design\x1b[0m`);
400
+ console.log(` \x1b[36mptb generate-tokens\x1b[0m \x1b[2m— generate CSS design tokens\x1b[0m`);
401
+ console.log(` \x1b[36mptb export context\x1b[0m \x1b[2m— write .ptb/context/ files for AI IDEs (commit these)\x1b[0m\n`);
402
+ console.log(` ${step++}. \x1b[2m(Optional)\x1b[0m Connect an AI provider to implement components, generate Storybook stories, and document your design system.`);
403
+ console.log(` \x1b[36mptb ai setup\x1b[0m \x1b[2m(choose Claude or OpenAI, set your API key)\x1b[0m`);
404
+ console.log(` \x1b[36mptb implement component <name>\x1b[0m \x1b[2m— AI-write a component from design context\x1b[0m\n`);
405
+ console.log(` ${step++}. Run \x1b[36mptb doctor\x1b[0m if anything looks wrong.\n`);
406
+ console.log(` ${step++}. Run \x1b[36mptb learn\x1b[0m for a guided walkthrough.\n`);
407
+ console.log(` ${step}. Run \x1b[36mptb help\x1b[0m to see all commands.\n`);
408
+ });
409
+ }
410
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function inspectComponentCommand(name: string): Promise<void>;
2
+ //# sourceMappingURL=inspect-component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspect-component.d.ts","sourceRoot":"","sources":["../../src/commands/inspect-component.ts"],"names":[],"mappings":"AAIA,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,MAAM,iBAkJzD"}