@a1st/aix-core 0.0.3 → 0.0.6
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 +39 -0
- package/dist/cache/index.d.ts +1 -1
- package/dist/cache/index.d.ts.map +1 -1
- package/dist/cache/index.js +1 -1
- package/dist/cache/index.js.map +1 -1
- package/dist/cache/paths.d.ts +13 -8
- package/dist/cache/paths.d.ts.map +1 -1
- package/dist/cache/paths.js +19 -12
- package/dist/cache/paths.js.map +1 -1
- package/dist/editors/adapters/base.d.ts +9 -1
- package/dist/editors/adapters/base.d.ts.map +1 -1
- package/dist/editors/adapters/base.js +7 -5
- package/dist/editors/adapters/base.js.map +1 -1
- package/dist/editors/adapters/claude-code.d.ts +2 -1
- package/dist/editors/adapters/claude-code.d.ts.map +1 -1
- package/dist/editors/adapters/claude-code.js +13 -5
- package/dist/editors/adapters/claude-code.js.map +1 -1
- package/dist/editors/adapters/codex.d.ts +1 -0
- package/dist/editors/adapters/codex.d.ts.map +1 -1
- package/dist/editors/adapters/codex.js +9 -1
- package/dist/editors/adapters/codex.js.map +1 -1
- package/dist/editors/adapters/cursor.d.ts +1 -0
- package/dist/editors/adapters/cursor.d.ts.map +1 -1
- package/dist/editors/adapters/cursor.js +9 -1
- package/dist/editors/adapters/cursor.js.map +1 -1
- package/dist/editors/adapters/vscode.d.ts +1 -0
- package/dist/editors/adapters/vscode.d.ts.map +1 -1
- package/dist/editors/adapters/vscode.js +9 -1
- package/dist/editors/adapters/vscode.js.map +1 -1
- package/dist/editors/adapters/windsurf.d.ts +1 -0
- package/dist/editors/adapters/windsurf.d.ts.map +1 -1
- package/dist/editors/adapters/windsurf.js +9 -1
- package/dist/editors/adapters/windsurf.js.map +1 -1
- package/dist/editors/adapters/zed.d.ts +1 -0
- package/dist/editors/adapters/zed.d.ts.map +1 -1
- package/dist/editors/adapters/zed.js +9 -1
- package/dist/editors/adapters/zed.js.map +1 -1
- package/dist/editors/import.d.ts +2 -1
- package/dist/editors/import.d.ts.map +1 -1
- package/dist/editors/import.js +12 -9
- package/dist/editors/import.js.map +1 -1
- package/dist/editors/install.d.ts.map +1 -1
- package/dist/editors/install.js +1 -36
- package/dist/editors/install.js.map +1 -1
- package/dist/editors/strategies/claude-code/mcp.d.ts +6 -2
- package/dist/editors/strategies/claude-code/mcp.d.ts.map +1 -1
- package/dist/editors/strategies/claude-code/mcp.js +40 -2
- package/dist/editors/strategies/claude-code/mcp.js.map +1 -1
- package/dist/editors/strategies/claude-code/prompts.d.ts +11 -1
- package/dist/editors/strategies/claude-code/prompts.d.ts.map +1 -1
- package/dist/editors/strategies/claude-code/prompts.js +29 -0
- package/dist/editors/strategies/claude-code/prompts.js.map +1 -1
- package/dist/editors/strategies/claude-code/rules.d.ts +12 -1
- package/dist/editors/strategies/claude-code/rules.d.ts.map +1 -1
- package/dist/editors/strategies/claude-code/rules.js +49 -5
- package/dist/editors/strategies/claude-code/rules.js.map +1 -1
- package/dist/editors/strategies/codex/prompts.d.ts +11 -1
- package/dist/editors/strategies/codex/prompts.d.ts.map +1 -1
- package/dist/editors/strategies/codex/prompts.js +34 -0
- package/dist/editors/strategies/codex/prompts.js.map +1 -1
- package/dist/editors/strategies/cursor/rules.d.ts +14 -1
- package/dist/editors/strategies/cursor/rules.d.ts.map +1 -1
- package/dist/editors/strategies/cursor/rules.js +51 -5
- package/dist/editors/strategies/cursor/rules.js.map +1 -1
- package/dist/editors/strategies/shared/standard-mcp.d.ts +3 -1
- package/dist/editors/strategies/shared/standard-mcp.d.ts.map +1 -1
- package/dist/editors/strategies/shared/standard-mcp.js +5 -1
- package/dist/editors/strategies/shared/standard-mcp.js.map +1 -1
- package/dist/editors/strategies/types.d.ts +48 -2
- package/dist/editors/strategies/types.d.ts.map +1 -1
- package/dist/editors/strategies/vscode/prompts.d.ts +11 -1
- package/dist/editors/strategies/vscode/prompts.d.ts.map +1 -1
- package/dist/editors/strategies/vscode/prompts.js +29 -0
- package/dist/editors/strategies/vscode/prompts.js.map +1 -1
- package/dist/editors/strategies/windsurf/prompts.d.ts +11 -1
- package/dist/editors/strategies/windsurf/prompts.d.ts.map +1 -1
- package/dist/editors/strategies/windsurf/prompts.js +29 -0
- package/dist/editors/strategies/windsurf/prompts.js.map +1 -1
- package/dist/editors/strategies/windsurf/rules.d.ts +14 -1
- package/dist/editors/strategies/windsurf/rules.d.ts.map +1 -1
- package/dist/editors/strategies/windsurf/rules.js +43 -5
- package/dist/editors/strategies/windsurf/rules.js.map +1 -1
- package/dist/editors/types.d.ts +12 -0
- package/dist/editors/types.d.ts.map +1 -1
- package/dist/frontmatter-parser.d.ts +24 -0
- package/dist/frontmatter-parser.d.ts.map +1 -0
- package/dist/frontmatter-parser.js +137 -0
- package/dist/frontmatter-parser.js.map +1 -0
- package/dist/frontmatter-utils.d.ts +36 -0
- package/dist/frontmatter-utils.d.ts.map +1 -0
- package/dist/frontmatter-utils.js +109 -0
- package/dist/frontmatter-utils.js.map +1 -0
- package/dist/git-download.d.ts +18 -0
- package/dist/git-download.d.ts.map +1 -0
- package/dist/git-download.js +49 -0
- package/dist/git-download.js.map +1 -0
- package/dist/import-writer.d.ts +54 -10
- package/dist/import-writer.d.ts.map +1 -1
- package/dist/import-writer.js +305 -44
- package/dist/import-writer.js.map +1 -1
- package/dist/inheritance.d.ts +2 -0
- package/dist/inheritance.d.ts.map +1 -1
- package/dist/inheritance.js +172 -41
- package/dist/inheritance.js.map +1 -1
- package/dist/loader.d.ts +13 -0
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +5 -1
- package/dist/loader.js.map +1 -1
- package/dist/prompts/loader.d.ts.map +1 -1
- package/dist/prompts/loader.js +11 -39
- package/dist/prompts/loader.js.map +1 -1
- package/dist/remote-loader.d.ts +17 -1
- package/dist/remote-loader.d.ts.map +1 -1
- package/dist/remote-loader.js +76 -44
- package/dist/remote-loader.js.map +1 -1
- package/dist/rules/loader.d.ts.map +1 -1
- package/dist/rules/loader.js +23 -13
- package/dist/rules/loader.js.map +1 -1
- package/dist/skills/parser.d.ts +3 -1
- package/dist/skills/parser.d.ts.map +1 -1
- package/dist/skills/parser.js +22 -10
- package/dist/skills/parser.js.map +1 -1
- package/dist/skills/resolvers/git.d.ts.map +1 -1
- package/dist/skills/resolvers/git.js +10 -2
- package/dist/skills/resolvers/git.js.map +1 -1
- package/dist/skills/validate.js +1 -1
- package/dist/skills/validate.js.map +1 -1
- package/dist/updater.d.ts.map +1 -1
- package/dist/updater.js +5 -12
- package/dist/updater.js.map +1 -1
- package/dist/url-parsing.d.ts +1 -4
- package/dist/url-parsing.d.ts.map +1 -1
- package/dist/url-parsing.js +2 -6
- package/dist/url-parsing.js.map +1 -1
- package/package.json +11 -1
package/dist/import-writer.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { mkdir, writeFile,
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { mkdir, writeFile, rename, access, constants, copyFile } from 'node:fs/promises';
|
|
2
|
+
import { existsSync } from 'node:fs';
|
|
3
|
+
import { join, basename, resolve, dirname } from 'pathe';
|
|
4
|
+
import { getImportedDir, getImportStagingDir, getImportBackupDir, } from './cache/paths.js';
|
|
4
5
|
import { safeRm } from './fs/safe-rm.js';
|
|
5
6
|
/**
|
|
6
7
|
* Sanitize a string for use as a filename.
|
|
@@ -26,30 +27,32 @@ async function dirExists(path) {
|
|
|
26
27
|
}
|
|
27
28
|
/**
|
|
28
29
|
* Write imported content to staging directory and return path references.
|
|
29
|
-
* Files are written to `.aix/.tmp/import-staging
|
|
30
|
-
* point to the final location `.aix/imported
|
|
30
|
+
* Files are written to `.aix/.tmp/import-staging/` and path references
|
|
31
|
+
* point to the final location `.aix/imported/`.
|
|
31
32
|
*
|
|
32
33
|
* @param projectRoot - The project root directory
|
|
33
|
-
* @param editor - The source editor name
|
|
34
34
|
* @param content - The imported content (rules and prompts)
|
|
35
35
|
* @returns Path references for rules and prompts (relative to project root)
|
|
36
36
|
*/
|
|
37
|
-
export async function writeImportedContent(projectRoot,
|
|
38
|
-
const stagingDir =
|
|
39
|
-
// Clean any existing staging
|
|
37
|
+
export async function writeImportedContent(projectRoot, content) {
|
|
38
|
+
const stagingDir = getImportStagingDir(projectRoot), stagingRulesDir = join(stagingDir, 'rules'), stagingPromptsDir = join(stagingDir, 'prompts'), result = { rules: {}, prompts: {} };
|
|
39
|
+
// Clean any existing staging
|
|
40
40
|
await safeRm(stagingDir, { force: true });
|
|
41
41
|
// Create staging directories
|
|
42
42
|
await mkdir(stagingRulesDir, { recursive: true });
|
|
43
43
|
await mkdir(stagingPromptsDir, { recursive: true });
|
|
44
|
-
//
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
44
|
+
// Deduplicate rule names: if multiple rules share a name, append -1, -2, etc.
|
|
45
|
+
const nameCount = new Map();
|
|
46
|
+
const ruleWrites = content.rules.map((rule) => {
|
|
47
|
+
const baseName = sanitizeFileName(rule.name) || 'imported-rule', count = nameCount.get(baseName) ?? 0;
|
|
48
|
+
nameCount.set(baseName, count + 1);
|
|
49
|
+
const dedupedName = count === 0 ? baseName : `${baseName}-${count}`, fileName = `${dedupedName}.md`, stagingPath = join(stagingRulesDir, fileName), relativePath = `./.aix/imported/rules/${fileName}`;
|
|
50
|
+
result.rules[dedupedName] = relativePath;
|
|
51
|
+
return writeFile(stagingPath, rule.content, 'utf-8');
|
|
49
52
|
});
|
|
50
53
|
// Build prompt write operations
|
|
51
54
|
const promptWrites = Object.entries(content.prompts).map(([name, promptContent]) => {
|
|
52
|
-
const fileName = `${sanitizeFileName(name)}.md`, stagingPath = join(stagingPromptsDir, fileName), relativePath = `./.aix/imported
|
|
55
|
+
const fileName = `${sanitizeFileName(name)}.md`, stagingPath = join(stagingPromptsDir, fileName), relativePath = `./.aix/imported/prompts/${fileName}`;
|
|
53
56
|
result.prompts[name] = relativePath;
|
|
54
57
|
return writeFile(stagingPath, promptContent, 'utf-8');
|
|
55
58
|
});
|
|
@@ -62,44 +65,34 @@ export async function writeImportedContent(projectRoot, editor, content) {
|
|
|
62
65
|
* This should be called after ai.json has been successfully written.
|
|
63
66
|
*
|
|
64
67
|
* @param projectRoot - The project root directory
|
|
65
|
-
* @param editor - The source editor name
|
|
66
68
|
*/
|
|
67
|
-
export async function commitImport(projectRoot
|
|
68
|
-
const stagingDir =
|
|
69
|
+
export async function commitImport(projectRoot) {
|
|
70
|
+
const stagingDir = getImportStagingDir(projectRoot), finalDir = getImportedDir(projectRoot), backupDir = getImportBackupDir(projectRoot);
|
|
69
71
|
// If staging directory doesn't exist, nothing was staged - skip commit
|
|
70
72
|
if (!(await dirExists(stagingDir))) {
|
|
71
73
|
return;
|
|
72
74
|
}
|
|
73
|
-
// Clean any existing backup
|
|
75
|
+
// Clean any existing backup
|
|
74
76
|
await safeRm(backupDir, { force: true });
|
|
75
77
|
// If final directory exists, move it to backup
|
|
76
78
|
if (await dirExists(finalDir)) {
|
|
77
|
-
await mkdir(
|
|
79
|
+
await mkdir(dirname(backupDir), { recursive: true });
|
|
78
80
|
await rename(finalDir, backupDir);
|
|
79
81
|
}
|
|
80
82
|
// Move staging to final location
|
|
81
|
-
await mkdir(join(projectRoot, '.aix'
|
|
83
|
+
await mkdir(join(projectRoot, '.aix'), { recursive: true });
|
|
82
84
|
await rename(stagingDir, finalDir);
|
|
83
85
|
// Clean up backup (success path)
|
|
84
86
|
await safeRm(backupDir, { force: true });
|
|
85
|
-
// Clean up empty staging parent if no other editors are staged
|
|
86
|
-
const stagingParent = getImportStagingDir(projectRoot);
|
|
87
|
-
try {
|
|
88
|
-
await rm(stagingParent, { recursive: false });
|
|
89
|
-
}
|
|
90
|
-
catch {
|
|
91
|
-
// Directory not empty or doesn't exist, that's fine
|
|
92
|
-
}
|
|
93
87
|
}
|
|
94
88
|
/**
|
|
95
89
|
* Rollback import: delete staging, restore backup if exists.
|
|
96
90
|
* This should be called if ai.json write or any subsequent step fails.
|
|
97
91
|
*
|
|
98
92
|
* @param projectRoot - The project root directory
|
|
99
|
-
* @param editor - The source editor name
|
|
100
93
|
*/
|
|
101
|
-
export async function rollbackImport(projectRoot
|
|
102
|
-
const stagingDir =
|
|
94
|
+
export async function rollbackImport(projectRoot) {
|
|
95
|
+
const stagingDir = getImportStagingDir(projectRoot), finalDir = getImportedDir(projectRoot), backupDir = getImportBackupDir(projectRoot);
|
|
103
96
|
// Delete staging directory
|
|
104
97
|
await safeRm(stagingDir, { force: true });
|
|
105
98
|
// If backup exists, restore it
|
|
@@ -109,21 +102,289 @@ export async function rollbackImport(projectRoot, editor) {
|
|
|
109
102
|
// Restore backup
|
|
110
103
|
await rename(backupDir, finalDir);
|
|
111
104
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Check if a path is a relative local path (starts with ./ or ../).
|
|
108
|
+
*/
|
|
109
|
+
function isRelativePath(path) {
|
|
110
|
+
return path.startsWith('./') || path.startsWith('../');
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Copy a file from source to destination, creating directories as needed.
|
|
114
|
+
*/
|
|
115
|
+
async function copyFileWithDirs(src, dest) {
|
|
116
|
+
await mkdir(join(dest, '..'), { recursive: true });
|
|
117
|
+
await copyFile(src, dest);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Extract relative path from a config item if it has one.
|
|
121
|
+
* Handles both string shorthand ("./path.md") and object form ({ path: "./path.md" }).
|
|
122
|
+
*/
|
|
123
|
+
function getRelativePath(item) {
|
|
124
|
+
// String shorthand: "./rules/general.md"
|
|
125
|
+
if (typeof item === 'string') {
|
|
126
|
+
return isRelativePath(item) ? item : undefined;
|
|
116
127
|
}
|
|
117
|
-
|
|
118
|
-
|
|
128
|
+
// Object form: { path: "./rules/general.md" }
|
|
129
|
+
if (typeof item !== 'object' || item === null || !('path' in item)) {
|
|
130
|
+
return undefined;
|
|
119
131
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
132
|
+
const path = item.path;
|
|
133
|
+
return typeof path === 'string' && isRelativePath(path) ? path : undefined;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Build copy tasks for rules, prompts, and skills with relative paths.
|
|
137
|
+
*/
|
|
138
|
+
function buildCopyTasks(config, configBaseDir, stagingDir) {
|
|
139
|
+
const tasks = [], warnings = [], stagingRulesDir = join(stagingDir, 'rules'), stagingPromptsDir = join(stagingDir, 'prompts'), stagingSkillsDir = join(stagingDir, 'skills');
|
|
140
|
+
// Process rules
|
|
141
|
+
if (config.rules && typeof config.rules === 'object') {
|
|
142
|
+
for (const [name, rule] of Object.entries(config.rules)) {
|
|
143
|
+
const relativePath = getRelativePath(rule);
|
|
144
|
+
if (!relativePath) {
|
|
145
|
+
continue;
|
|
146
|
+
}
|
|
147
|
+
const srcPath = resolve(configBaseDir, relativePath), fileName = basename(srcPath);
|
|
148
|
+
if (!existsSync(srcPath)) {
|
|
149
|
+
warnings.push(`Rule "${name}": source file not found: ${relativePath}`);
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
// Convert string shorthand to object form if needed
|
|
153
|
+
if (typeof rule === 'string') {
|
|
154
|
+
config.rules[name] = { path: rule };
|
|
155
|
+
}
|
|
156
|
+
tasks.push({
|
|
157
|
+
type: 'file',
|
|
158
|
+
src: srcPath,
|
|
159
|
+
dest: join(stagingRulesDir, fileName),
|
|
160
|
+
name,
|
|
161
|
+
newPath: `./.aix/imported/rules/${fileName}`,
|
|
162
|
+
itemRef: config.rules[name],
|
|
163
|
+
});
|
|
164
|
+
}
|
|
124
165
|
}
|
|
125
|
-
|
|
126
|
-
|
|
166
|
+
// Process prompts
|
|
167
|
+
if (config.prompts && typeof config.prompts === 'object') {
|
|
168
|
+
for (const [name, prompt] of Object.entries(config.prompts)) {
|
|
169
|
+
const relativePath = getRelativePath(prompt);
|
|
170
|
+
if (!relativePath) {
|
|
171
|
+
continue;
|
|
172
|
+
}
|
|
173
|
+
const srcPath = resolve(configBaseDir, relativePath), fileName = basename(srcPath);
|
|
174
|
+
if (!existsSync(srcPath)) {
|
|
175
|
+
warnings.push(`Prompt "${name}": source file not found: ${relativePath}`);
|
|
176
|
+
continue;
|
|
177
|
+
}
|
|
178
|
+
// Convert string shorthand to object form if needed
|
|
179
|
+
if (typeof prompt === 'string') {
|
|
180
|
+
config.prompts[name] = { path: prompt };
|
|
181
|
+
}
|
|
182
|
+
tasks.push({
|
|
183
|
+
type: 'file',
|
|
184
|
+
src: srcPath,
|
|
185
|
+
dest: join(stagingPromptsDir, fileName),
|
|
186
|
+
name,
|
|
187
|
+
newPath: `./.aix/imported/prompts/${fileName}`,
|
|
188
|
+
itemRef: config.prompts[name],
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
// Process skills
|
|
193
|
+
if (config.skills && typeof config.skills === 'object') {
|
|
194
|
+
for (const [name, skill] of Object.entries(config.skills)) {
|
|
195
|
+
const relativePath = getRelativePath(skill);
|
|
196
|
+
if (!relativePath) {
|
|
197
|
+
continue;
|
|
198
|
+
}
|
|
199
|
+
const srcPath = resolve(configBaseDir, relativePath);
|
|
200
|
+
if (!existsSync(srcPath)) {
|
|
201
|
+
warnings.push(`Skill "${name}": source directory not found: ${relativePath}`);
|
|
202
|
+
continue;
|
|
203
|
+
}
|
|
204
|
+
tasks.push({
|
|
205
|
+
type: 'directory',
|
|
206
|
+
src: srcPath,
|
|
207
|
+
dest: join(stagingSkillsDir, name),
|
|
208
|
+
name,
|
|
209
|
+
newPath: `./.aix/imported/skills/${name}`,
|
|
210
|
+
itemRef: skill,
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
return { tasks, warnings };
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Localize a remote config by copying referenced files to .aix/imported/ and updating paths.
|
|
218
|
+
* This handles rules, prompts, and skills that have relative path references.
|
|
219
|
+
*
|
|
220
|
+
* @param config - The remote config to localize
|
|
221
|
+
* @param configBaseDir - The base directory where the remote config's files are located
|
|
222
|
+
* @param projectRoot - The local project root where files should be copied to
|
|
223
|
+
* @returns The localized config with updated paths
|
|
224
|
+
*/
|
|
225
|
+
export async function localizeRemoteConfig(config, configBaseDir, projectRoot) {
|
|
226
|
+
const stagingDir = getImportStagingDir(projectRoot);
|
|
227
|
+
// Clean any existing staging
|
|
228
|
+
await safeRm(stagingDir, { force: true });
|
|
229
|
+
// Create staging directories
|
|
230
|
+
await mkdir(join(stagingDir, 'rules'), { recursive: true });
|
|
231
|
+
await mkdir(join(stagingDir, 'prompts'), { recursive: true });
|
|
232
|
+
await mkdir(join(stagingDir, 'skills'), { recursive: true });
|
|
233
|
+
// Deep clone the config to avoid mutating the original
|
|
234
|
+
const localizedConfig = JSON.parse(JSON.stringify(config));
|
|
235
|
+
// Build copy tasks
|
|
236
|
+
const { tasks, warnings } = buildCopyTasks(localizedConfig, configBaseDir, stagingDir);
|
|
237
|
+
// Execute copy tasks in parallel (files) or sequentially (directories)
|
|
238
|
+
const fileTasks = tasks.filter((t) => t.type === 'file'), dirTasks = tasks.filter((t) => t.type === 'directory');
|
|
239
|
+
// Copy files in parallel
|
|
240
|
+
await Promise.all(fileTasks.map((task) => copyFileWithDirs(task.src, task.dest)));
|
|
241
|
+
// Copy directories sequentially (recursive operations)
|
|
242
|
+
for (const task of dirTasks) {
|
|
243
|
+
await copyDirectory(task.src, task.dest); // eslint-disable-line no-await-in-loop -- Recursive dir copy
|
|
244
|
+
}
|
|
245
|
+
// Update paths in the cloned config
|
|
246
|
+
for (const task of tasks) {
|
|
247
|
+
task.itemRef.path = task.newPath;
|
|
248
|
+
}
|
|
249
|
+
return { config: localizedConfig, filesCopied: tasks.length, warnings };
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Recursively copy a directory.
|
|
253
|
+
*/
|
|
254
|
+
async function copyDirectory(src, dest) {
|
|
255
|
+
const { readdir } = await import('node:fs/promises');
|
|
256
|
+
await mkdir(dest, { recursive: true });
|
|
257
|
+
const entries = await readdir(src, { withFileTypes: true });
|
|
258
|
+
// Separate files and directories
|
|
259
|
+
const files = entries.filter((e) => !e.isDirectory()), dirs = entries.filter((e) => e.isDirectory());
|
|
260
|
+
// Copy files in parallel
|
|
261
|
+
await Promise.all(files.map((entry) => copyFile(join(src, entry.name), join(dest, entry.name))));
|
|
262
|
+
// Copy directories sequentially
|
|
263
|
+
for (const entry of dirs) {
|
|
264
|
+
await copyDirectory(join(src, entry.name), join(dest, entry.name)); // eslint-disable-line no-await-in-loop -- Recursive
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Build a git shorthand URL from GitSourceInfo.
|
|
269
|
+
* e.g., "github:owner/repo"
|
|
270
|
+
*/
|
|
271
|
+
function buildGitShorthand(gitSource) {
|
|
272
|
+
return `${gitSource.provider}:${gitSource.owner}/${gitSource.repo}`;
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Compute the full path from repo root for a relative path in the config.
|
|
276
|
+
* If configPath is "configs/ai.json" and relativePath is "./rules/style.md",
|
|
277
|
+
* the result is "configs/rules/style.md".
|
|
278
|
+
*/
|
|
279
|
+
function computeRepoRootPath(configPath, relativePath) {
|
|
280
|
+
// Remove leading ./ from relative path
|
|
281
|
+
const cleanRelative = relativePath.replace(/^\.\//, '');
|
|
282
|
+
if (!configPath) {
|
|
283
|
+
return cleanRelative;
|
|
284
|
+
}
|
|
285
|
+
// Get the directory containing the config file
|
|
286
|
+
const configDir = dirname(configPath);
|
|
287
|
+
// If config is at root (e.g., "ai.json"), just use the relative path
|
|
288
|
+
if (configDir === '.' || configDir === '') {
|
|
289
|
+
return cleanRelative;
|
|
290
|
+
}
|
|
291
|
+
// Join the config directory with the relative path
|
|
292
|
+
return join(configDir, cleanRelative);
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* Convert a config with relative paths to use git references instead.
|
|
296
|
+
* This is used when saving a remote git config with --save to preserve
|
|
297
|
+
* the git source rather than copying files locally.
|
|
298
|
+
*
|
|
299
|
+
* @param config - The config with relative paths
|
|
300
|
+
* @param gitSource - Git source metadata from the remote loader
|
|
301
|
+
* @returns The config with git references and conversion details
|
|
302
|
+
*/
|
|
303
|
+
export function convertToGitReferences(config, gitSource) {
|
|
304
|
+
// Deep clone to avoid mutating the original
|
|
305
|
+
const result = JSON.parse(JSON.stringify(config)), converted = [], gitUrl = buildGitShorthand(gitSource);
|
|
306
|
+
// Process rules
|
|
307
|
+
if (result.rules && typeof result.rules === 'object') {
|
|
308
|
+
for (const [name, rule] of Object.entries(result.rules)) {
|
|
309
|
+
const relativePath = getRelativePath(rule);
|
|
310
|
+
if (!relativePath) {
|
|
311
|
+
continue;
|
|
312
|
+
}
|
|
313
|
+
const repoPath = computeRepoRootPath(gitSource.configPath, relativePath), gitRef = {
|
|
314
|
+
url: gitUrl,
|
|
315
|
+
...(gitSource.ref && { ref: gitSource.ref }),
|
|
316
|
+
path: repoPath,
|
|
317
|
+
};
|
|
318
|
+
// Preserve other properties from object form (description, activation, globs)
|
|
319
|
+
if (typeof rule === 'object' && rule !== null) {
|
|
320
|
+
const { path: _path, content: _content, git: _git, npm: _npm, ...rest } = rule;
|
|
321
|
+
result.rules[name] = { ...rest, git: gitRef };
|
|
322
|
+
}
|
|
323
|
+
else {
|
|
324
|
+
result.rules[name] = { git: gitRef };
|
|
325
|
+
}
|
|
326
|
+
converted.push({
|
|
327
|
+
name,
|
|
328
|
+
type: 'rule',
|
|
329
|
+
gitRef: `${gitUrl}${gitSource.ref ? `#${gitSource.ref}` : ''}:${repoPath}`,
|
|
330
|
+
});
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
// Process prompts
|
|
334
|
+
if (result.prompts && typeof result.prompts === 'object') {
|
|
335
|
+
for (const [name, prompt] of Object.entries(result.prompts)) {
|
|
336
|
+
const relativePath = getRelativePath(prompt);
|
|
337
|
+
if (!relativePath) {
|
|
338
|
+
continue;
|
|
339
|
+
}
|
|
340
|
+
const repoPath = computeRepoRootPath(gitSource.configPath, relativePath), gitRef = {
|
|
341
|
+
url: gitUrl,
|
|
342
|
+
...(gitSource.ref && { ref: gitSource.ref }),
|
|
343
|
+
path: repoPath,
|
|
344
|
+
};
|
|
345
|
+
// Preserve other properties from object form (description, argumentHint)
|
|
346
|
+
if (typeof prompt === 'object' && prompt !== null) {
|
|
347
|
+
const { path: _path, content: _content, git: _git, npm: _npm, ...rest } = prompt;
|
|
348
|
+
result.prompts[name] = { ...rest, git: gitRef };
|
|
349
|
+
}
|
|
350
|
+
else {
|
|
351
|
+
result.prompts[name] = { git: gitRef };
|
|
352
|
+
}
|
|
353
|
+
converted.push({
|
|
354
|
+
name,
|
|
355
|
+
type: 'prompt',
|
|
356
|
+
gitRef: `${gitUrl}${gitSource.ref ? `#${gitSource.ref}` : ''}:${repoPath}`,
|
|
357
|
+
});
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
// Process skills
|
|
361
|
+
if (result.skills && typeof result.skills === 'object') {
|
|
362
|
+
for (const [name, skill] of Object.entries(result.skills)) {
|
|
363
|
+
const relativePath = getRelativePath(skill);
|
|
364
|
+
if (!relativePath) {
|
|
365
|
+
continue;
|
|
366
|
+
}
|
|
367
|
+
// Strip trailing slash from skill paths (giget doesn't handle them well)
|
|
368
|
+
const repoPath = computeRepoRootPath(gitSource.configPath, relativePath).replace(/\/$/, ''), gitRef = {
|
|
369
|
+
git: gitUrl,
|
|
370
|
+
...(gitSource.ref && { ref: gitSource.ref }),
|
|
371
|
+
path: repoPath,
|
|
372
|
+
};
|
|
373
|
+
// Skills use a different schema - check if it's the extended form with enabled/config
|
|
374
|
+
if (typeof skill === 'object' && skill !== null && ('enabled' in skill || 'config' in skill)) {
|
|
375
|
+
const { path: _path, source: _source, git: _git, ...rest } = skill;
|
|
376
|
+
result.skills[name] = { ...rest, ...gitRef };
|
|
377
|
+
}
|
|
378
|
+
else {
|
|
379
|
+
result.skills[name] = gitRef;
|
|
380
|
+
}
|
|
381
|
+
converted.push({
|
|
382
|
+
name,
|
|
383
|
+
type: 'skill',
|
|
384
|
+
gitRef: `${gitUrl}${gitSource.ref ? `#${gitSource.ref}` : ''}:${repoPath}`,
|
|
385
|
+
});
|
|
386
|
+
}
|
|
127
387
|
}
|
|
388
|
+
return { config: result, convertedCount: converted.length, converted };
|
|
128
389
|
}
|
|
129
390
|
//# sourceMappingURL=import-writer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-writer.js","sourceRoot":"","sources":["../src/import-writer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"import-writer.js","sourceRoot":"","sources":["../src/import-writer.ts"],"names":[],"mappings":"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"}
|
package/dist/inheritance.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { AiJsonConfig } from '@a1st/aix-schema';
|
|
2
2
|
export interface ResolveOptions {
|
|
3
3
|
baseDir: string;
|
|
4
|
+
/** Project root for determining temp directory location */
|
|
5
|
+
projectRoot: string;
|
|
4
6
|
visited?: Set<string>;
|
|
5
7
|
/** Whether the baseDir is a remote URL (for resolving relative extends) */
|
|
6
8
|
isRemote?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inheritance.d.ts","sourceRoot":"","sources":["../src/inheritance.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"inheritance.d.ts","sourceRoot":"","sources":["../src/inheritance.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,WAAW,cAAc;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,2DAA2D;IAC3D,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAsB,cAAc,CACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,cAAc,GACvB,OAAO,CAAC,YAAY,CAAC,CA6CvB"}
|