agnosticui-cli 2.0.0-alpha.2 → 2.0.0-alpha.21

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 (52) hide show
  1. package/README.md +124 -1170
  2. package/dist/cli.js +70 -28
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/add.d.ts.map +1 -1
  5. package/dist/commands/add.js +25 -34
  6. package/dist/commands/add.js.map +1 -1
  7. package/dist/commands/context.d.ts +3 -0
  8. package/dist/commands/context.d.ts.map +1 -0
  9. package/dist/commands/context.js +243 -0
  10. package/dist/commands/context.js.map +1 -0
  11. package/dist/commands/init.d.ts.map +1 -1
  12. package/dist/commands/init.js +145 -110
  13. package/dist/commands/init.js.map +1 -1
  14. package/dist/commands/list.js +4 -4
  15. package/dist/commands/list.js.map +1 -1
  16. package/dist/commands/playbook.d.ts +3 -0
  17. package/dist/commands/playbook.d.ts.map +1 -0
  18. package/dist/commands/playbook.js +189 -0
  19. package/dist/commands/playbook.js.map +1 -0
  20. package/dist/commands/remove.js +2 -2
  21. package/dist/commands/remove.js.map +1 -1
  22. package/dist/commands/storybook.d.ts +3 -0
  23. package/dist/commands/storybook.d.ts.map +1 -0
  24. package/dist/commands/storybook.js +144 -0
  25. package/dist/commands/storybook.js.map +1 -0
  26. package/dist/commands/sync.d.ts +1 -4
  27. package/dist/commands/sync.d.ts.map +1 -1
  28. package/dist/commands/sync.js +41 -33
  29. package/dist/commands/sync.js.map +1 -1
  30. package/dist/commands/view.d.ts +3 -0
  31. package/dist/commands/view.d.ts.map +1 -0
  32. package/dist/commands/view.js +109 -0
  33. package/dist/commands/view.js.map +1 -0
  34. package/dist/types/index.d.ts +24 -2
  35. package/dist/types/index.d.ts.map +1 -1
  36. package/dist/utils/logger.d.ts +1 -0
  37. package/dist/utils/logger.d.ts.map +1 -1
  38. package/dist/utils/logger.js +3 -0
  39. package/dist/utils/logger.js.map +1 -1
  40. package/dist/utils/npm.d.ts +13 -0
  41. package/dist/utils/npm.d.ts.map +1 -0
  42. package/dist/utils/npm.js +62 -0
  43. package/dist/utils/npm.js.map +1 -0
  44. package/dist/utils/stories.d.ts +11 -0
  45. package/dist/utils/stories.d.ts.map +1 -0
  46. package/dist/utils/stories.js +661 -0
  47. package/dist/utils/stories.js.map +1 -0
  48. package/dist/utils/viewer.d.ts +4 -0
  49. package/dist/utils/viewer.d.ts.map +1 -0
  50. package/dist/utils/viewer.js +1067 -0
  51. package/dist/utils/viewer.js.map +1 -0
  52. package/package.json +7 -5
package/dist/cli.js CHANGED
@@ -27,38 +27,45 @@
27
27
  *
28
28
  * See: v2/cli/README.md "Testing After NPM Publication" for verification steps.
29
29
  */
30
- import { Command } from 'commander';
31
- import { init } from './commands/init.js';
32
- import { add } from './commands/add.js';
33
- import { remove } from './commands/remove.js';
34
- import { list } from './commands/list.js';
35
- import { sync } from './commands/sync.js';
30
+ import { Command } from "commander";
31
+ import { init } from "./commands/init.js";
32
+ import { add } from "./commands/add.js";
33
+ import { remove } from "./commands/remove.js";
34
+ import { list } from "./commands/list.js";
35
+ import { sync } from "./commands/sync.js";
36
+ import { playbook } from "./commands/playbook.js";
37
+ import { context } from "./commands/context.js";
38
+ import { storybook } from "./commands/storybook.js";
36
39
  const program = new Command();
37
40
  program
38
- .name('ag')
39
- .description('AgnosticUI Local - The UI kit that lives in your codebase')
40
- .version('2.0.0-alpha.2');
41
+ .name("ag")
42
+ .description("AgnosticUI Local - The UI kit that lives in your codebase")
43
+ .version("2.0.0-alpha.21");
41
44
  // ag init command
42
45
  program
43
- .command('init')
44
- .description('Initialize AgnosticUI Local in your project')
45
- .option('-f, --framework <framework>', 'Framework to use (react, vue, lit, svelte)')
46
- .option('-p, --components-path <path>', 'Path where components will be generated')
47
- .option('-t, --tarball <path>', 'Path to local tarball (for development)')
48
- .option('-v, --version <version>', 'NPM version to download (e.g., alpha, latest, 2.0.0)', 'alpha')
46
+ .command("init")
47
+ .description("Initialize AgnosticUI Local in your project")
48
+ .option("-f, --framework <framework>", "Framework to use (react, vue, lit, svelte)")
49
+ .option("-p, --components-path <path>", "Path where components will be generated")
50
+ .option("-t, --tarball <path>", "Path to local tarball (for development)")
51
+ .option("--tag <tag>", "NPM dist-tag or version to download (e.g., alpha, latest, 2.0.0-alpha.21)", "alpha")
52
+ .option("--skip-prompts", "Skip all interactive prompts (non-interactive mode)")
53
+ .option("--force", "Re-initialize even if already initialized (reuses existing framework and path)")
49
54
  .action(async (options) => {
50
55
  await init({
51
56
  framework: options.framework,
52
57
  componentsPath: options.componentsPath,
53
58
  tarball: options.tarball,
54
- version: options.version,
59
+ tag: options.tag,
60
+ skipPrompts: options.skipPrompts,
61
+ force: options.force,
55
62
  });
56
63
  });
57
64
  // ag add command
58
65
  program
59
- .command('add <components...>')
60
- .description('Add component(s) to your project')
61
- .option('--force', 'Overwrite existing components')
66
+ .command("add <components...>")
67
+ .description("Add component(s) to your project")
68
+ .option("--force", "Overwrite existing components")
62
69
  .action(async (components, options) => {
63
70
  await add(components, {
64
71
  force: options.force,
@@ -66,9 +73,9 @@ program
66
73
  });
67
74
  // ag remove command
68
75
  program
69
- .command('remove <components...>')
70
- .description('Remove component(s) from your project')
71
- .option('--force', 'Skip confirmation prompt')
76
+ .command("remove <components...>")
77
+ .description("Remove component(s) from your project")
78
+ .option("--force", "Skip confirmation prompt")
72
79
  .action(async (components, options) => {
73
80
  await remove(components, {
74
81
  force: options.force,
@@ -76,23 +83,58 @@ program
76
83
  });
77
84
  // ag list command
78
85
  program
79
- .command('list')
80
- .description('List available components')
86
+ .command("list")
87
+ .description("List available components")
81
88
  .action(async () => {
82
89
  await list();
83
90
  });
84
91
  // ag sync command
85
92
  program
86
- .command('sync')
87
- .description('Update reference library from tarball')
88
- .option('-t, --tarball <path>', 'Path to tarball (overrides config)')
89
- .option('--force', 'Bypass confirmation prompt')
93
+ .command("sync")
94
+ .description("Update reference library from NPM or a local tarball")
95
+ .option("-t, --tarball <path>", "Path to local tarball (skips NPM download)")
96
+ .option("--tag <tag>", "NPM dist-tag or version to download (e.g., alpha, latest, 2.0.0-alpha.21)", "alpha")
97
+ .option("--force", "Bypass confirmation prompt")
90
98
  .action(async (options) => {
91
99
  await sync({
92
100
  tarball: options.tarball,
101
+ tag: options.tag,
102
+ force: options.force,
103
+ });
104
+ });
105
+ // ag playbook command
106
+ program
107
+ .command("playbook [slug]")
108
+ .description("Install a playbook (pre-built page template) into your project")
109
+ .option("-f, --framework <framework>", "Framework to use (react, vue, lit)")
110
+ .option("-p, --path <path>", `Destination path (default: src/playbooks/<slug>)`)
111
+ .option("--list", "List all available playbooks")
112
+ .option("--force", "Overwrite existing destination without prompting")
113
+ .action(async (slug, options) => {
114
+ await playbook(slug, {
115
+ framework: options.framework,
116
+ path: options.path,
117
+ list: options.list,
93
118
  force: options.force,
94
119
  });
95
120
  });
121
+ // ag context command
122
+ program
123
+ .command("context")
124
+ .description("Generate an AI context file from your installed components")
125
+ .option("-o, --output <path>", "Explicit output file path (overrides --format and auto-detect)")
126
+ .option("-f, --format <tool>", "AI tool to target: claude, cursor, copilot, windsurf, openai, gemini, generic")
127
+ .action(async (options) => {
128
+ await context({ output: options.output, format: options.format });
129
+ });
130
+ // ag storybook command
131
+ program
132
+ .command('storybook')
133
+ .description('Set up Storybook for your installed components')
134
+ .option('--skip-install', 'Skip npm install (assume packages already installed)')
135
+ .action(async (options) => {
136
+ await storybook({ skipInstall: options.skipInstall });
137
+ });
96
138
  // Parse arguments
97
139
  program.parse();
98
140
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAG1C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,IAAI,CAAC;KACV,WAAW,CAAC,2DAA2D,CAAC;KACxE,OAAO,CAAC,eAAe,CAAC,CAAC;AAE5B,kBAAkB;AAClB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,6CAA6C,CAAC;KAC1D,MAAM,CAAC,6BAA6B,EAAE,4CAA4C,CAAC;KACnF,MAAM,CAAC,8BAA8B,EAAE,yCAAyC,CAAC;KACjF,MAAM,CAAC,sBAAsB,EAAE,yCAAyC,CAAC;KACzE,MAAM,CAAC,yBAAyB,EAAE,sDAAsD,EAAE,OAAO,CAAC;KAClG,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,IAAI,CAAC;QACT,SAAS,EAAE,OAAO,CAAC,SAAkC;QACrD,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,iBAAiB;AACjB,OAAO;KACJ,OAAO,CAAC,qBAAqB,CAAC;KAC9B,WAAW,CAAC,kCAAkC,CAAC;KAC/C,MAAM,CAAC,SAAS,EAAE,+BAA+B,CAAC;KAClD,MAAM,CAAC,KAAK,EAAE,UAAoB,EAAE,OAAO,EAAE,EAAE;IAC9C,MAAM,GAAG,CAAC,UAAU,EAAE;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,oBAAoB;AACpB,OAAO;KACJ,OAAO,CAAC,wBAAwB,CAAC;KACjC,WAAW,CAAC,uCAAuC,CAAC;KACpD,MAAM,CAAC,SAAS,EAAE,0BAA0B,CAAC;KAC7C,MAAM,CAAC,KAAK,EAAE,UAAoB,EAAE,OAAO,EAAE,EAAE;IAC9C,MAAM,MAAM,CAAC,UAAU,EAAE;QACvB,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,kBAAkB;AAClB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,2BAA2B,CAAC;KACxC,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,IAAI,EAAE,CAAC;AACf,CAAC,CAAC,CAAC;AAEL,kBAAkB;AAClB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,uCAAuC,CAAC;KACpD,MAAM,CAAC,sBAAsB,EAAE,oCAAoC,CAAC;KACpE,MAAM,CAAC,SAAS,EAAE,4BAA4B,CAAC;KAC/C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,IAAI,CAAC;QACT,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,kBAAkB;AAClB,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGpD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,IAAI,CAAC;KACV,WAAW,CAAC,2DAA2D,CAAC;KACxE,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAE7B,kBAAkB;AAClB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,6CAA6C,CAAC;KAC1D,MAAM,CACL,6BAA6B,EAC7B,4CAA4C,CAC7C;KACA,MAAM,CACL,8BAA8B,EAC9B,yCAAyC,CAC1C;KACA,MAAM,CAAC,sBAAsB,EAAE,yCAAyC,CAAC;KACzE,MAAM,CACL,aAAa,EACb,2EAA2E,EAC3E,OAAO,CACR;KACA,MAAM,CACL,gBAAgB,EAChB,qDAAqD,CACtD;KACA,MAAM,CACL,SAAS,EACT,gFAAgF,CACjF;KACA,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,IAAI,CAAC;QACT,SAAS,EAAE,OAAO,CAAC,SAAkC;QACrD,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,iBAAiB;AACjB,OAAO;KACJ,OAAO,CAAC,qBAAqB,CAAC;KAC9B,WAAW,CAAC,kCAAkC,CAAC;KAC/C,MAAM,CAAC,SAAS,EAAE,+BAA+B,CAAC;KAClD,MAAM,CAAC,KAAK,EAAE,UAAoB,EAAE,OAAO,EAAE,EAAE;IAC9C,MAAM,GAAG,CAAC,UAAU,EAAE;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,oBAAoB;AACpB,OAAO;KACJ,OAAO,CAAC,wBAAwB,CAAC;KACjC,WAAW,CAAC,uCAAuC,CAAC;KACpD,MAAM,CAAC,SAAS,EAAE,0BAA0B,CAAC;KAC7C,MAAM,CAAC,KAAK,EAAE,UAAoB,EAAE,OAAO,EAAE,EAAE;IAC9C,MAAM,MAAM,CAAC,UAAU,EAAE;QACvB,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,kBAAkB;AAClB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,2BAA2B,CAAC;KACxC,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,IAAI,EAAE,CAAC;AACf,CAAC,CAAC,CAAC;AAEL,kBAAkB;AAClB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,sDAAsD,CAAC;KACnE,MAAM,CAAC,sBAAsB,EAAE,4CAA4C,CAAC;KAC5E,MAAM,CACL,aAAa,EACb,2EAA2E,EAC3E,OAAO,CACR;KACA,MAAM,CAAC,SAAS,EAAE,4BAA4B,CAAC;KAC/C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,IAAI,CAAC;QACT,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK,EAAE,OAAO,CAAC,KAAK;KACN,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC;AAEL,sBAAsB;AACtB,OAAO;KACJ,OAAO,CAAC,iBAAiB,CAAC;KAC1B,WAAW,CAAC,gEAAgE,CAAC;KAC7E,MAAM,CAAC,6BAA6B,EAAE,oCAAoC,CAAC;KAC3E,MAAM,CACL,mBAAmB,EACnB,kDAAkD,CACnD;KACA,MAAM,CAAC,QAAQ,EAAE,8BAA8B,CAAC;KAChD,MAAM,CAAC,SAAS,EAAE,kDAAkD,CAAC;KACrE,MAAM,CAAC,KAAK,EAAE,IAAwB,EAAE,OAAO,EAAE,EAAE;IAClD,MAAM,QAAQ,CAAC,IAAI,EAAE;QACnB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,qBAAqB;AACrB,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,4DAA4D,CAAC;KACzE,MAAM,CACL,qBAAqB,EACrB,gEAAgE,CACjE;KACA,MAAM,CACL,qBAAqB,EACrB,+EAA+E,CAChF;KACA,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;AACpE,CAAC,CAAC,CAAC;AAEL,uBAAuB;AACvB,OAAO;KACJ,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CAAC,gDAAgD,CAAC;KAC7D,MAAM,CAAC,gBAAgB,EAAE,sDAAsD,CAAC;KAChF,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,SAAS,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAsB,CAAC,CAAC;AAC5E,CAAC,CAAC,CAAC;AAEL,kBAAkB;AAClB,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,mBAAmB,CAAC;AAe/D,wBAAsB,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA8M3F"}
1
+ {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,mBAAmB,CAAC;AAgB/D,wBAAsB,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA6N3F"}
@@ -4,9 +4,11 @@
4
4
  import * as p from '@clack/prompts';
5
5
  import path from 'node:path';
6
6
  import { stat, readdir, readFile, writeFile } from 'node:fs/promises';
7
+ import { existsSync } from 'node:fs';
7
8
  import { logger } from '../utils/logger.js';
8
9
  import { loadConfig, saveConfig, addComponentToConfig, hasComponent } from '../utils/config.js';
9
10
  import { ensureDir, pathExists } from '../utils/files.js';
11
+ import { generateReactStory } from '../utils/stories.js';
10
12
  import { getAvailableComponents, componentExists, getComponentSourcePaths, normalizeComponentName, scanForSharedDependencies, scanForComponentDependencies, getSharedComponentSourcePaths, } from '../utils/components.js';
11
13
  import pc from 'picocolors';
12
14
  export async function add(componentNames, options = {}) {
@@ -25,7 +27,7 @@ export async function add(componentNames, options = {}) {
25
27
  const config = await loadConfig();
26
28
  if (!config) {
27
29
  logger.error('AgnosticUI is not initialized in this project.');
28
- logger.info('Run ' + pc.cyan('npx ag init') + ' to get started.');
30
+ logger.info('Run ' + pc.cyan('npx agnosticui-cli init') + ' to get started.');
29
31
  process.exit(1);
30
32
  }
31
33
  const referencePath = path.resolve(config.paths.reference);
@@ -33,7 +35,7 @@ export async function add(componentNames, options = {}) {
33
35
  // Validate reference library exists
34
36
  if (!pathExists(referencePath)) {
35
37
  logger.error(`Reference library not found at: ${referencePath}`);
36
- logger.info('Please run ' + pc.cyan('npx ag init') + ' again.');
38
+ logger.info('Please run ' + pc.cyan('npx agnosticui-cli init') + ' again.');
37
39
  process.exit(1);
38
40
  }
39
41
  // Get available components
@@ -43,7 +45,7 @@ export async function add(componentNames, options = {}) {
43
45
  const invalidComponents = normalizedNames.filter(name => !availableComponents.includes(name));
44
46
  if (invalidComponents.length > 0) {
45
47
  logger.error(`Invalid component(s): ${invalidComponents.join(', ')}`);
46
- logger.info('Run ' + pc.cyan('npx ag list') + ' to see available components.');
48
+ logger.info('Run ' + pc.cyan('npx agnosticui-cli list') + ' to see available components.');
47
49
  process.exit(1);
48
50
  }
49
51
  // Check for already added components (unless --force)
@@ -90,6 +92,16 @@ export async function add(componentNames, options = {}) {
90
92
  // Note: utils, styles, types, and shared files are now copied during 'npx ag init'
91
93
  // so we don't need to scan for them here
92
94
  results.push({ name: componentName, success: true, files });
95
+ // Emit story file if Storybook is configured and framework is React
96
+ if (config.framework === 'react') {
97
+ const storybookConfigured = existsSync(path.join(process.cwd(), '.storybook', 'main.ts'));
98
+ if (storybookConfigured) {
99
+ const storyPath = path.join(componentsPath, componentName, 'react', `${componentName}.stories.tsx`);
100
+ if (!existsSync(storyPath)) {
101
+ await writeFile(storyPath, generateReactStory(componentName), 'utf-8');
102
+ }
103
+ }
104
+ }
93
105
  spinner.message(`${progress} Added ${componentName}`);
94
106
  }
95
107
  catch (error) {
@@ -138,12 +150,16 @@ export async function add(componentNames, options = {}) {
138
150
  }
139
151
  let importStatement = '';
140
152
  const componentExportName = getComponentExportName(result.name, config.framework);
141
- if (config.framework === 'react' || config.framework === 'vue') {
142
- // React and Vue have framework-specific wrapper components
153
+ if (config.framework === 'react') {
154
+ // React uses named exports
143
155
  importStatement = `import { ${componentExportName} } from './${importPath}/${config.framework}/${componentExportName}'`;
144
156
  }
157
+ else if (config.framework === 'vue') {
158
+ // Vue uses default exports and requires .vue extension
159
+ importStatement = `import ${componentExportName} from './${importPath}/${config.framework}/${componentExportName}.vue'`;
160
+ }
145
161
  else {
146
- // Lit, Svelte, etc. use web components from core directory (side-effect import)
162
+ // Lit, Svelte, and Other (Angular, Solid, etc.) use web components from core directory (side-effect import)
147
163
  importStatement = `import './${importPath}/core/${result.name}'`;
148
164
  }
149
165
  logger.box(`${result.name}:`, [
@@ -196,8 +212,9 @@ async function addComponent(componentName, referencePath, componentsPath, framew
196
212
  copiedFiles.push(path.join(destPath, framework));
197
213
  }
198
214
  else {
199
- // For Lit, we use the core component directly, so it's okay if a specific 'lit' folder doesn't exist
200
- if (framework !== 'lit') {
215
+ // Only React and Vue require framework-specific implementations
216
+ // Other frameworks (Lit, Svelte, or 'other' for Angular/Solid/etc.) use the core web component directly
217
+ if (framework === 'react' || framework === 'vue') {
201
218
  throw new Error(`${framework} implementation not found for ${componentName}`);
202
219
  }
203
220
  }
@@ -378,37 +395,12 @@ async function processComponentDependencies(files, referencePath, componentsPath
378
395
  }
379
396
  return newFiles;
380
397
  }
381
- /**
382
- * Calculate the number of '../' needed based on components path depth
383
- * Reference library: src/components/BadgeFx/core/_File.ts uses ../../../ to reach src/
384
- * User's project: src/components/ag/BadgeFx/core/_File.ts should use ../../../../ to reach src/
385
- */
386
- function calculatePathDepth(componentsPath) {
387
- // Normalize the path and remove leading './'
388
- const normalized = componentsPath.replace(/^\.\//, '');
389
- // Find the position of 'src' in the path
390
- const parts = normalized.split('/').filter(s => s.length > 0);
391
- const srcIndex = parts.indexOf('src');
392
- if (srcIndex === -1) {
393
- // No 'src' directory, assume styles/types/utils are at project root
394
- // Count all segments + ComponentName + core
395
- return parts.length + 2;
396
- }
397
- // Count segments after 'src' (e.g., for 'src/components/ag' -> ['components', 'ag'] = 2)
398
- const segmentsAfterSrc = parts.slice(srcIndex + 1);
399
- // Add 2 for ComponentName/core/
400
- return segmentsAfterSrc.length + 2;
401
- }
402
398
  /**
403
399
  * Copy directory and transform extension from .js to empty in imports
404
400
  */
405
401
  async function copyAndTransform(src, dest, componentsPath) {
406
402
  await ensureDir(dest);
407
403
  const entries = await readdir(src, { withFileTypes: true });
408
- // Calculate how many '../' we need for the user's project structure
409
- const userDepth = calculatePathDepth(componentsPath);
410
- const referenceDepth = 3; // Reference library uses ../../../ for src/components/Component/core/
411
- const extraLevels = userDepth - referenceDepth;
412
404
  for (const entry of entries) {
413
405
  const srcPath = path.join(src, entry.name);
414
406
  const destPath = path.join(dest, entry.name);
@@ -450,7 +442,6 @@ async function copyAndTransform(src, dest, componentsPath) {
450
442
  const regex = new RegExp(`(from\\s+['"]|import\\s+['"])(?:\\.\\.\\/){3}(${dir}\\/)`, 'g');
451
443
  content = content.replace(regex, `$1../../$2`);
452
444
  }
453
- // If extraLevels === 0, no transformation needed (same depth as reference)
454
445
  await writeFile(destPath, content, 'utf-8');
455
446
  }
456
447
  else {
@@ -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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"}
@@ -0,0 +1,3 @@
1
+ import type { ContextOptions } from '../types/index.js';
2
+ export declare function context(options?: ContextOptions): Promise<void>;
3
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAsJxD,wBAAsB,OAAO,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsHzE"}
@@ -0,0 +1,243 @@
1
+ /**
2
+ * ag context command - Generate an AI context file from installed components
3
+ */
4
+ import * as p from '@clack/prompts';
5
+ import path from 'node:path';
6
+ import { existsSync } from 'node:fs';
7
+ import { readFile, writeFile, mkdir } from 'node:fs/promises';
8
+ import { loadConfig, saveConfig } from '../utils/config.js';
9
+ import { logger } from '../utils/logger.js';
10
+ import pc from 'picocolors';
11
+ const SECTION_START = '<!-- agnosticui:context:start -->';
12
+ const SECTION_END = '<!-- agnosticui:context:end -->';
13
+ // Known AI tool formats and their default output paths.
14
+ // Detection signals are files/dirs that indicate the tool is configured in this project.
15
+ const AI_TOOLS = {
16
+ claude: { label: 'Claude Code', file: 'CLAUDE.md', detect: ['.claude', 'CLAUDE.md'] },
17
+ cursor: { label: 'Cursor', file: '.cursor/rules/agnosticui.mdc', detect: ['.cursor', '.cursorrules'] },
18
+ copilot: { label: 'GitHub Copilot', file: '.github/copilot-instructions.md', detect: ['.github/copilot-instructions.md'] },
19
+ windsurf: { label: 'Windsurf', file: '.windsurfrules', detect: ['.windsurfrules', '.windsurf'] },
20
+ openai: { label: 'OpenAI / Codex', file: 'AGENTS.md', detect: ['AGENTS.md'] },
21
+ gemini: { label: 'Gemini CLI', file: 'GEMINI.md', detect: ['GEMINI.md'] },
22
+ generic: { label: 'Generic (llms.txt)', file: 'llms.txt', detect: [] },
23
+ };
24
+ /** Detect which AI tools appear to be configured in the project */
25
+ function detectTools(cwd) {
26
+ return Object.keys(AI_TOOLS).filter(tool => AI_TOOLS[tool].detect.some(signal => existsSync(path.join(cwd, signal))));
27
+ }
28
+ /** Wrap section content with Cursor MDC frontmatter when needed */
29
+ function wrapForTool(tool, content) {
30
+ if (tool === 'cursor') {
31
+ return `---\napplyTo: '**'\n---\n\n${content}`;
32
+ }
33
+ return content;
34
+ }
35
+ /** Convert PascalCase component name to ag-kebab-case web component tag */
36
+ function toAgTag(name) {
37
+ return 'ag-' + name.replace(/([A-Z])/g, (m, l, i) => (i === 0 ? '' : '-') + l.toLowerCase());
38
+ }
39
+ /** Build the framework-specific import statement */
40
+ function buildImport(componentName, framework, componentsPath) {
41
+ const base = componentsPath.replace(/^\.\//, '').replace(/\/$/, '');
42
+ switch (framework) {
43
+ case 'react':
44
+ return `import { React${componentName} } from './${base}/${componentName}/react/React${componentName}';`;
45
+ case 'vue':
46
+ return `import Vue${componentName} from './${base}/${componentName}/vue/Vue${componentName}.vue';`;
47
+ default:
48
+ // Lit, Svelte, other — import the core web component
49
+ return `import './${base}/${componentName}/core/${componentName}';`;
50
+ }
51
+ }
52
+ /**
53
+ * Extract the Props interface block from a TypeScript source file.
54
+ * Returns the raw property lines (trimmed, comments stripped) or null if not found.
55
+ */
56
+ async function extractProps(filePath) {
57
+ try {
58
+ const content = await readFile(filePath, 'utf-8');
59
+ const match = content.match(/export interface \w+Props \{([\s\S]*?)\n\}/);
60
+ if (!match)
61
+ return null;
62
+ return match[1]
63
+ .split('\n')
64
+ .filter(line => line.trim() && !line.trim().startsWith('//') && !line.trim().startsWith('*'))
65
+ .map(line => line.trim())
66
+ .join('\n');
67
+ }
68
+ catch {
69
+ return null;
70
+ }
71
+ }
72
+ /**
73
+ * Find the canonical _Component.ts props file in the component's core directory.
74
+ * Tries PascalCase first (_Button.ts), then lowercase (_dialog.ts).
75
+ */
76
+ function findPropsFile(cwd, componentsPath, componentName) {
77
+ const coreDir = path.join(cwd, componentsPath, componentName, 'core');
78
+ const pascal = path.join(coreDir, `_${componentName}.ts`);
79
+ if (existsSync(pascal))
80
+ return pascal;
81
+ const lower = path.join(coreDir, `_${componentName.toLowerCase()}.ts`);
82
+ if (existsSync(lower))
83
+ return lower;
84
+ return null;
85
+ }
86
+ /** Generate the AgnosticUI markdown body (shared across all tool formats) */
87
+ async function generateBody(config, cwd) {
88
+ const { framework, version, paths, components } = config;
89
+ const componentNames = Object.keys(components).sort();
90
+ const usesWebComponentTag = framework === 'lit' || framework === 'svelte' || framework === 'other';
91
+ const lines = [
92
+ SECTION_START,
93
+ '## AgnosticUI Components',
94
+ '',
95
+ `This project uses AgnosticUI Local (v${version}, ${framework} framework).`,
96
+ `Components are installed at \`${paths.components}\`.`,
97
+ '',
98
+ `> Re-run \`npx agnosticui-cli context\` after adding or updating components.`,
99
+ '',
100
+ ];
101
+ for (const name of componentNames) {
102
+ const importLine = buildImport(name, framework, paths.components);
103
+ const propsFile = findPropsFile(cwd, paths.components, name);
104
+ const propsBlock = propsFile ? await extractProps(propsFile) : null;
105
+ lines.push(`### ${name}`, '');
106
+ lines.push(`**Import:** \`${importLine}\``);
107
+ if (usesWebComponentTag) {
108
+ lines.push(`**Tag:** \`<${toAgTag(name)}>\``);
109
+ }
110
+ lines.push('');
111
+ if (propsBlock) {
112
+ lines.push('**Props:**');
113
+ lines.push('```typescript');
114
+ lines.push(propsBlock);
115
+ lines.push('```');
116
+ lines.push('');
117
+ }
118
+ }
119
+ lines.push(SECTION_END);
120
+ return lines.join('\n');
121
+ }
122
+ /** Insert or replace the AgnosticUI section in an existing file using sentinel markers */
123
+ function spliceSection(existing, newSection) {
124
+ const startIdx = existing.indexOf(SECTION_START);
125
+ const endIdx = existing.indexOf(SECTION_END);
126
+ if (startIdx !== -1 && endIdx !== -1) {
127
+ return (existing.slice(0, startIdx) +
128
+ newSection +
129
+ existing.slice(endIdx + SECTION_END.length));
130
+ }
131
+ // Section not found — append
132
+ return existing.trimEnd() + '\n\n' + newSection + '\n';
133
+ }
134
+ export async function context(options = {}) {
135
+ console.log('');
136
+ p.intro(pc.bold(pc.cyan('AgnosticUI Context Generator')));
137
+ const config = await loadConfig();
138
+ if (!config) {
139
+ logger.error('No agnosticui.config.json found. Run npx agnosticui-cli init first.');
140
+ process.exit(1);
141
+ }
142
+ const componentCount = Object.keys(config.components).length;
143
+ if (componentCount === 0) {
144
+ logger.warn('No components installed yet. Run npx agnosticui-cli add <component> first.');
145
+ process.exit(0);
146
+ }
147
+ const cwd = process.cwd();
148
+ // Resolve the output path in priority order:
149
+ // 1. --output flag (explicit user override)
150
+ // 2. --format flag (use that tool's default file)
151
+ // 3. Previously persisted contextPath (set by a prior ag context run — identified by file extension)
152
+ // 4. Auto-detect configured AI tools in the project
153
+ // 5. Fall back to CLAUDE.md
154
+ let outputPath;
155
+ if (options.output) {
156
+ outputPath = options.output;
157
+ }
158
+ else if (options.format) {
159
+ const tool = options.format;
160
+ if (!AI_TOOLS[tool]) {
161
+ logger.error(`Unknown format "${options.format}". Valid formats: ${Object.keys(AI_TOOLS).join(', ')}`);
162
+ process.exit(1);
163
+ }
164
+ outputPath = AI_TOOLS[tool].file;
165
+ }
166
+ else {
167
+ const storedPath = config.ai?.contextPath;
168
+ const storedIsFile = storedPath ? path.extname(storedPath) !== '' : false;
169
+ if (storedIsFile) {
170
+ outputPath = storedPath;
171
+ }
172
+ else {
173
+ const detected = detectTools(cwd);
174
+ if (detected.length === 1) {
175
+ outputPath = AI_TOOLS[detected[0]].file;
176
+ console.log(pc.dim(` Detected ${AI_TOOLS[detected[0]].label} — writing to ${outputPath}`));
177
+ }
178
+ else if (detected.length > 1) {
179
+ const choice = await p.select({
180
+ message: 'Multiple AI tools detected. Which should receive the context file?',
181
+ options: detected.map(tool => ({
182
+ value: tool,
183
+ label: `${AI_TOOLS[tool].label} ${pc.dim(AI_TOOLS[tool].file)}`,
184
+ })),
185
+ });
186
+ if (p.isCancel(choice)) {
187
+ p.cancel('Operation cancelled.');
188
+ process.exit(0);
189
+ }
190
+ outputPath = AI_TOOLS[choice].file;
191
+ }
192
+ else {
193
+ // No tool detected — default to CLAUDE.md
194
+ outputPath = AI_TOOLS.claude.file;
195
+ console.log(pc.dim(` No AI tool detected — defaulting to ${outputPath}`));
196
+ }
197
+ }
198
+ }
199
+ const absOutputPath = path.resolve(cwd, outputPath);
200
+ const relOutputPath = path.relative(cwd, absOutputPath);
201
+ // Determine which tool this output file belongs to (for format-specific wrapping)
202
+ const matchedTool = Object.keys(AI_TOOLS).find(t => AI_TOOLS[t].file === outputPath || AI_TOOLS[t].file === relOutputPath) ?? 'claude';
203
+ const spinner = p.spinner();
204
+ spinner.start(`Generating context for ${componentCount} component(s)...`);
205
+ try {
206
+ const body = await generateBody(config, cwd);
207
+ // Ensure parent directory exists (e.g. .cursor/rules/)
208
+ await mkdir(path.dirname(absOutputPath), { recursive: true });
209
+ let finalContent;
210
+ if (existsSync(absOutputPath)) {
211
+ const existing = await readFile(absOutputPath, 'utf-8');
212
+ finalContent = spliceSection(existing, body);
213
+ }
214
+ else {
215
+ finalContent = wrapForTool(matchedTool, body) + '\n';
216
+ }
217
+ await writeFile(absOutputPath, finalContent, 'utf-8');
218
+ spinner.stop(pc.green('✓') + ` Context written to ${pc.cyan(relOutputPath)}`);
219
+ }
220
+ catch (err) {
221
+ spinner.stop(pc.red('✖') + ' Failed to generate context');
222
+ logger.error(err instanceof Error ? err.message : 'Unknown error');
223
+ process.exit(1);
224
+ }
225
+ // Persist the output path so subsequent runs use the same file automatically
226
+ const persistPath = `./${relOutputPath}`;
227
+ if (config.ai?.contextPath !== persistPath) {
228
+ config.ai = { ...config.ai, contextPath: persistPath };
229
+ await saveConfig(config);
230
+ }
231
+ logger.newline();
232
+ logger.box('Context generated!', [
233
+ pc.dim('File: ') + pc.cyan(relOutputPath),
234
+ pc.dim('Components: ') + pc.white(String(componentCount)),
235
+ pc.dim('Framework: ') + pc.white(config.framework),
236
+ '',
237
+ pc.dim('AI coding tools (Claude Code, Cursor, Windsurf) will now'),
238
+ pc.dim('automatically know about your installed components.'),
239
+ '',
240
+ pc.dim('Re-run after adding components: ') + pc.cyan('npx agnosticui-cli context'),
241
+ ]);
242
+ }
243
+ //# sourceMappingURL=context.js.map