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.
- package/README.md +124 -1170
- package/dist/cli.js +70 -28
- package/dist/cli.js.map +1 -1
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +25 -34
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/context.d.ts +3 -0
- package/dist/commands/context.d.ts.map +1 -0
- package/dist/commands/context.js +243 -0
- package/dist/commands/context.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +145 -110
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/list.js +4 -4
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/playbook.d.ts +3 -0
- package/dist/commands/playbook.d.ts.map +1 -0
- package/dist/commands/playbook.js +189 -0
- package/dist/commands/playbook.js.map +1 -0
- package/dist/commands/remove.js +2 -2
- package/dist/commands/remove.js.map +1 -1
- package/dist/commands/storybook.d.ts +3 -0
- package/dist/commands/storybook.d.ts.map +1 -0
- package/dist/commands/storybook.js +144 -0
- package/dist/commands/storybook.js.map +1 -0
- package/dist/commands/sync.d.ts +1 -4
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +41 -33
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/view.d.ts +3 -0
- package/dist/commands/view.d.ts.map +1 -0
- package/dist/commands/view.js +109 -0
- package/dist/commands/view.js.map +1 -0
- package/dist/types/index.d.ts +24 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/logger.d.ts +1 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +3 -0
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/npm.d.ts +13 -0
- package/dist/utils/npm.d.ts.map +1 -0
- package/dist/utils/npm.js +62 -0
- package/dist/utils/npm.js.map +1 -0
- package/dist/utils/stories.d.ts +11 -0
- package/dist/utils/stories.d.ts.map +1 -0
- package/dist/utils/stories.js +661 -0
- package/dist/utils/stories.js.map +1 -0
- package/dist/utils/viewer.d.ts +4 -0
- package/dist/utils/viewer.d.ts.map +1 -0
- package/dist/utils/viewer.js +1067 -0
- package/dist/utils/viewer.js.map +1 -0
- 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
|
|
31
|
-
import { init } from
|
|
32
|
-
import { add } from
|
|
33
|
-
import { remove } from
|
|
34
|
-
import { list } from
|
|
35
|
-
import { sync } from
|
|
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(
|
|
39
|
-
.description(
|
|
40
|
-
.version(
|
|
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(
|
|
44
|
-
.description(
|
|
45
|
-
.option(
|
|
46
|
-
.option(
|
|
47
|
-
.option(
|
|
48
|
-
.option(
|
|
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
|
-
|
|
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(
|
|
60
|
-
.description(
|
|
61
|
-
.option(
|
|
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(
|
|
70
|
-
.description(
|
|
71
|
-
.option(
|
|
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(
|
|
80
|
-
.description(
|
|
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(
|
|
87
|
-
.description(
|
|
88
|
-
.option(
|
|
89
|
-
.option(
|
|
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;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"
|
|
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"}
|
package/dist/commands/add.js
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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'
|
|
142
|
-
// React
|
|
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
|
-
//
|
|
200
|
-
|
|
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 {
|
package/dist/commands/add.js.map
CHANGED
|
@@ -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 @@
|
|
|
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
|