@a1st/aix-core 0.0.3 → 0.0.4

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 (53) hide show
  1. package/README.md +39 -0
  2. package/dist/cache/index.d.ts +1 -1
  3. package/dist/cache/index.d.ts.map +1 -1
  4. package/dist/cache/index.js +1 -1
  5. package/dist/cache/index.js.map +1 -1
  6. package/dist/cache/paths.d.ts +4 -8
  7. package/dist/cache/paths.d.ts.map +1 -1
  8. package/dist/cache/paths.js +6 -12
  9. package/dist/cache/paths.js.map +1 -1
  10. package/dist/editors/adapters/base.d.ts +4 -1
  11. package/dist/editors/adapters/base.d.ts.map +1 -1
  12. package/dist/editors/adapters/base.js +6 -4
  13. package/dist/editors/adapters/base.js.map +1 -1
  14. package/dist/editors/adapters/claude-code.d.ts.map +1 -1
  15. package/dist/editors/adapters/claude-code.js +2 -1
  16. package/dist/editors/adapters/claude-code.js.map +1 -1
  17. package/dist/editors/adapters/codex.d.ts.map +1 -1
  18. package/dist/editors/adapters/codex.js +2 -1
  19. package/dist/editors/adapters/codex.js.map +1 -1
  20. package/dist/editors/adapters/cursor.d.ts.map +1 -1
  21. package/dist/editors/adapters/cursor.js +2 -1
  22. package/dist/editors/adapters/cursor.js.map +1 -1
  23. package/dist/editors/adapters/vscode.d.ts.map +1 -1
  24. package/dist/editors/adapters/vscode.js +2 -1
  25. package/dist/editors/adapters/vscode.js.map +1 -1
  26. package/dist/editors/adapters/windsurf.d.ts.map +1 -1
  27. package/dist/editors/adapters/windsurf.js +2 -1
  28. package/dist/editors/adapters/windsurf.js.map +1 -1
  29. package/dist/editors/adapters/zed.d.ts.map +1 -1
  30. package/dist/editors/adapters/zed.js +2 -1
  31. package/dist/editors/adapters/zed.js.map +1 -1
  32. package/dist/editors/types.d.ts +7 -0
  33. package/dist/editors/types.d.ts.map +1 -1
  34. package/dist/import-writer.d.ts +48 -9
  35. package/dist/import-writer.d.ts.map +1 -1
  36. package/dist/import-writer.js +298 -40
  37. package/dist/import-writer.js.map +1 -1
  38. package/dist/loader.d.ts +13 -0
  39. package/dist/loader.d.ts.map +1 -1
  40. package/dist/loader.js +3 -0
  41. package/dist/loader.js.map +1 -1
  42. package/dist/remote-loader.d.ts +17 -1
  43. package/dist/remote-loader.d.ts.map +1 -1
  44. package/dist/remote-loader.js +60 -3
  45. package/dist/remote-loader.js.map +1 -1
  46. package/dist/skills/resolvers/git.d.ts.map +1 -1
  47. package/dist/skills/resolvers/git.js +10 -2
  48. package/dist/skills/resolvers/git.js.map +1 -1
  49. package/dist/url-parsing.d.ts +4 -1
  50. package/dist/url-parsing.d.ts.map +1 -1
  51. package/dist/url-parsing.js +15 -2
  52. package/dist/url-parsing.js.map +1 -1
  53. package/package.json +4 -1
@@ -1,6 +1,7 @@
1
- import { mkdir, writeFile, rm, rename, access, constants } from 'node:fs/promises';
2
- import { join } from 'pathe';
3
- import { getImportedEditorDir, getImportStagingDir, getImportBackupDir, } from './cache/paths.js';
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,29 @@ 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/<editor>/` and path references
30
- * point to the final location `.aix/imported/<editor>/`.
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, editor, content) {
38
- const stagingDir = join(getImportStagingDir(projectRoot), editor), stagingRulesDir = join(stagingDir, 'rules'), stagingPromptsDir = join(stagingDir, 'prompts'), result = { rules: {}, prompts: {} };
39
- // Clean any existing staging for this editor
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
44
  // Build rule write operations
45
45
  const ruleWrites = content.rules.map((ruleContent, i) => {
46
- const name = `imported-rule-${i + 1}`, fileName = `${sanitizeFileName(name)}.md`, stagingPath = join(stagingRulesDir, fileName), relativePath = `./.aix/imported/${editor}/rules/${fileName}`;
46
+ const name = `imported-rule-${i + 1}`, fileName = `${sanitizeFileName(name)}.md`, stagingPath = join(stagingRulesDir, fileName), relativePath = `./.aix/imported/rules/${fileName}`;
47
47
  result.rules[name] = relativePath;
48
48
  return writeFile(stagingPath, ruleContent, 'utf-8');
49
49
  });
50
50
  // Build prompt write operations
51
51
  const promptWrites = Object.entries(content.prompts).map(([name, promptContent]) => {
52
- const fileName = `${sanitizeFileName(name)}.md`, stagingPath = join(stagingPromptsDir, fileName), relativePath = `./.aix/imported/${editor}/prompts/${fileName}`;
52
+ const fileName = `${sanitizeFileName(name)}.md`, stagingPath = join(stagingPromptsDir, fileName), relativePath = `./.aix/imported/prompts/${fileName}`;
53
53
  result.prompts[name] = relativePath;
54
54
  return writeFile(stagingPath, promptContent, 'utf-8');
55
55
  });
@@ -62,44 +62,34 @@ export async function writeImportedContent(projectRoot, editor, content) {
62
62
  * This should be called after ai.json has been successfully written.
63
63
  *
64
64
  * @param projectRoot - The project root directory
65
- * @param editor - The source editor name
66
65
  */
67
- export async function commitImport(projectRoot, editor) {
68
- const stagingDir = join(getImportStagingDir(projectRoot), editor), finalDir = getImportedEditorDir(projectRoot, editor), backupDir = join(getImportBackupDir(projectRoot), editor);
66
+ export async function commitImport(projectRoot) {
67
+ const stagingDir = getImportStagingDir(projectRoot), finalDir = getImportedDir(projectRoot), backupDir = getImportBackupDir(projectRoot);
69
68
  // If staging directory doesn't exist, nothing was staged - skip commit
70
69
  if (!(await dirExists(stagingDir))) {
71
70
  return;
72
71
  }
73
- // Clean any existing backup for this editor
72
+ // Clean any existing backup
74
73
  await safeRm(backupDir, { force: true });
75
74
  // If final directory exists, move it to backup
76
75
  if (await dirExists(finalDir)) {
77
- await mkdir(getImportBackupDir(projectRoot), { recursive: true });
76
+ await mkdir(dirname(backupDir), { recursive: true });
78
77
  await rename(finalDir, backupDir);
79
78
  }
80
79
  // Move staging to final location
81
- await mkdir(join(projectRoot, '.aix', 'imported'), { recursive: true });
80
+ await mkdir(join(projectRoot, '.aix'), { recursive: true });
82
81
  await rename(stagingDir, finalDir);
83
82
  // Clean up backup (success path)
84
83
  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
84
  }
94
85
  /**
95
86
  * Rollback import: delete staging, restore backup if exists.
96
87
  * This should be called if ai.json write or any subsequent step fails.
97
88
  *
98
89
  * @param projectRoot - The project root directory
99
- * @param editor - The source editor name
100
90
  */
101
- export async function rollbackImport(projectRoot, editor) {
102
- const stagingDir = join(getImportStagingDir(projectRoot), editor), finalDir = getImportedEditorDir(projectRoot, editor), backupDir = join(getImportBackupDir(projectRoot), editor);
91
+ export async function rollbackImport(projectRoot) {
92
+ const stagingDir = getImportStagingDir(projectRoot), finalDir = getImportedDir(projectRoot), backupDir = getImportBackupDir(projectRoot);
103
93
  // Delete staging directory
104
94
  await safeRm(stagingDir, { force: true });
105
95
  // If backup exists, restore it
@@ -109,21 +99,289 @@ export async function rollbackImport(projectRoot, editor) {
109
99
  // Restore backup
110
100
  await rename(backupDir, finalDir);
111
101
  }
112
- // Clean up empty staging parent
113
- const stagingParent = getImportStagingDir(projectRoot);
114
- try {
115
- await rm(stagingParent, { recursive: false });
102
+ }
103
+ /**
104
+ * Check if a path is a relative local path (starts with ./ or ../).
105
+ */
106
+ function isRelativePath(path) {
107
+ return path.startsWith('./') || path.startsWith('../');
108
+ }
109
+ /**
110
+ * Copy a file from source to destination, creating directories as needed.
111
+ */
112
+ async function copyFileWithDirs(src, dest) {
113
+ await mkdir(join(dest, '..'), { recursive: true });
114
+ await copyFile(src, dest);
115
+ }
116
+ /**
117
+ * Extract relative path from a config item if it has one.
118
+ * Handles both string shorthand ("./path.md") and object form ({ path: "./path.md" }).
119
+ */
120
+ function getRelativePath(item) {
121
+ // String shorthand: "./rules/general.md"
122
+ if (typeof item === 'string') {
123
+ return isRelativePath(item) ? item : undefined;
116
124
  }
117
- catch {
118
- // Directory not empty or doesn't exist, that's fine
125
+ // Object form: { path: "./rules/general.md" }
126
+ if (typeof item !== 'object' || item === null || !('path' in item)) {
127
+ return undefined;
119
128
  }
120
- // Clean up empty backup parent
121
- const backupParent = getImportBackupDir(projectRoot);
122
- try {
123
- await rm(backupParent, { recursive: false });
129
+ const path = item.path;
130
+ return typeof path === 'string' && isRelativePath(path) ? path : undefined;
131
+ }
132
+ /**
133
+ * Build copy tasks for rules, prompts, and skills with relative paths.
134
+ */
135
+ function buildCopyTasks(config, configBaseDir, stagingDir) {
136
+ const tasks = [], warnings = [], stagingRulesDir = join(stagingDir, 'rules'), stagingPromptsDir = join(stagingDir, 'prompts'), stagingSkillsDir = join(stagingDir, 'skills');
137
+ // Process rules
138
+ if (config.rules && typeof config.rules === 'object') {
139
+ for (const [name, rule] of Object.entries(config.rules)) {
140
+ const relativePath = getRelativePath(rule);
141
+ if (!relativePath) {
142
+ continue;
143
+ }
144
+ const srcPath = resolve(configBaseDir, relativePath), fileName = basename(srcPath);
145
+ if (!existsSync(srcPath)) {
146
+ warnings.push(`Rule "${name}": source file not found: ${relativePath}`);
147
+ continue;
148
+ }
149
+ // Convert string shorthand to object form if needed
150
+ if (typeof rule === 'string') {
151
+ config.rules[name] = { path: rule };
152
+ }
153
+ tasks.push({
154
+ type: 'file',
155
+ src: srcPath,
156
+ dest: join(stagingRulesDir, fileName),
157
+ name,
158
+ newPath: `./.aix/imported/rules/${fileName}`,
159
+ itemRef: config.rules[name],
160
+ });
161
+ }
124
162
  }
125
- catch {
126
- // Directory not empty or doesn't exist, that's fine
163
+ // Process prompts
164
+ if (config.prompts && typeof config.prompts === 'object') {
165
+ for (const [name, prompt] of Object.entries(config.prompts)) {
166
+ const relativePath = getRelativePath(prompt);
167
+ if (!relativePath) {
168
+ continue;
169
+ }
170
+ const srcPath = resolve(configBaseDir, relativePath), fileName = basename(srcPath);
171
+ if (!existsSync(srcPath)) {
172
+ warnings.push(`Prompt "${name}": source file not found: ${relativePath}`);
173
+ continue;
174
+ }
175
+ // Convert string shorthand to object form if needed
176
+ if (typeof prompt === 'string') {
177
+ config.prompts[name] = { path: prompt };
178
+ }
179
+ tasks.push({
180
+ type: 'file',
181
+ src: srcPath,
182
+ dest: join(stagingPromptsDir, fileName),
183
+ name,
184
+ newPath: `./.aix/imported/prompts/${fileName}`,
185
+ itemRef: config.prompts[name],
186
+ });
187
+ }
188
+ }
189
+ // Process skills
190
+ if (config.skills && typeof config.skills === 'object') {
191
+ for (const [name, skill] of Object.entries(config.skills)) {
192
+ const relativePath = getRelativePath(skill);
193
+ if (!relativePath) {
194
+ continue;
195
+ }
196
+ const srcPath = resolve(configBaseDir, relativePath);
197
+ if (!existsSync(srcPath)) {
198
+ warnings.push(`Skill "${name}": source directory not found: ${relativePath}`);
199
+ continue;
200
+ }
201
+ tasks.push({
202
+ type: 'directory',
203
+ src: srcPath,
204
+ dest: join(stagingSkillsDir, name),
205
+ name,
206
+ newPath: `./.aix/imported/skills/${name}`,
207
+ itemRef: skill,
208
+ });
209
+ }
210
+ }
211
+ return { tasks, warnings };
212
+ }
213
+ /**
214
+ * Localize a remote config by copying referenced files to .aix/imported/ and updating paths.
215
+ * This handles rules, prompts, and skills that have relative path references.
216
+ *
217
+ * @param config - The remote config to localize
218
+ * @param configBaseDir - The base directory where the remote config's files are located
219
+ * @param projectRoot - The local project root where files should be copied to
220
+ * @returns The localized config with updated paths
221
+ */
222
+ export async function localizeRemoteConfig(config, configBaseDir, projectRoot) {
223
+ const stagingDir = getImportStagingDir(projectRoot);
224
+ // Clean any existing staging
225
+ await safeRm(stagingDir, { force: true });
226
+ // Create staging directories
227
+ await mkdir(join(stagingDir, 'rules'), { recursive: true });
228
+ await mkdir(join(stagingDir, 'prompts'), { recursive: true });
229
+ await mkdir(join(stagingDir, 'skills'), { recursive: true });
230
+ // Deep clone the config to avoid mutating the original
231
+ const localizedConfig = JSON.parse(JSON.stringify(config));
232
+ // Build copy tasks
233
+ const { tasks, warnings } = buildCopyTasks(localizedConfig, configBaseDir, stagingDir);
234
+ // Execute copy tasks in parallel (files) or sequentially (directories)
235
+ const fileTasks = tasks.filter((t) => t.type === 'file'), dirTasks = tasks.filter((t) => t.type === 'directory');
236
+ // Copy files in parallel
237
+ await Promise.all(fileTasks.map((task) => copyFileWithDirs(task.src, task.dest)));
238
+ // Copy directories sequentially (recursive operations)
239
+ for (const task of dirTasks) {
240
+ await copyDirectory(task.src, task.dest); // eslint-disable-line no-await-in-loop -- Recursive dir copy
241
+ }
242
+ // Update paths in the cloned config
243
+ for (const task of tasks) {
244
+ task.itemRef.path = task.newPath;
245
+ }
246
+ return { config: localizedConfig, filesCopied: tasks.length, warnings };
247
+ }
248
+ /**
249
+ * Recursively copy a directory.
250
+ */
251
+ async function copyDirectory(src, dest) {
252
+ const { readdir } = await import('node:fs/promises');
253
+ await mkdir(dest, { recursive: true });
254
+ const entries = await readdir(src, { withFileTypes: true });
255
+ // Separate files and directories
256
+ const files = entries.filter((e) => !e.isDirectory()), dirs = entries.filter((e) => e.isDirectory());
257
+ // Copy files in parallel
258
+ await Promise.all(files.map((entry) => copyFile(join(src, entry.name), join(dest, entry.name))));
259
+ // Copy directories sequentially
260
+ for (const entry of dirs) {
261
+ await copyDirectory(join(src, entry.name), join(dest, entry.name)); // eslint-disable-line no-await-in-loop -- Recursive
262
+ }
263
+ }
264
+ /**
265
+ * Build a git shorthand URL from GitSourceInfo.
266
+ * e.g., "github:owner/repo"
267
+ */
268
+ function buildGitShorthand(gitSource) {
269
+ return `${gitSource.provider}:${gitSource.owner}/${gitSource.repo}`;
270
+ }
271
+ /**
272
+ * Compute the full path from repo root for a relative path in the config.
273
+ * If configPath is "configs/ai.json" and relativePath is "./rules/style.md",
274
+ * the result is "configs/rules/style.md".
275
+ */
276
+ function computeRepoRootPath(configPath, relativePath) {
277
+ // Remove leading ./ from relative path
278
+ const cleanRelative = relativePath.replace(/^\.\//, '');
279
+ if (!configPath) {
280
+ return cleanRelative;
281
+ }
282
+ // Get the directory containing the config file
283
+ const configDir = dirname(configPath);
284
+ // If config is at root (e.g., "ai.json"), just use the relative path
285
+ if (configDir === '.' || configDir === '') {
286
+ return cleanRelative;
287
+ }
288
+ // Join the config directory with the relative path
289
+ return join(configDir, cleanRelative);
290
+ }
291
+ /**
292
+ * Convert a config with relative paths to use git references instead.
293
+ * This is used when saving a remote git config with --save to preserve
294
+ * the git source rather than copying files locally.
295
+ *
296
+ * @param config - The config with relative paths
297
+ * @param gitSource - Git source metadata from the remote loader
298
+ * @returns The config with git references and conversion details
299
+ */
300
+ export function convertToGitReferences(config, gitSource) {
301
+ // Deep clone to avoid mutating the original
302
+ const result = JSON.parse(JSON.stringify(config)), converted = [], gitUrl = buildGitShorthand(gitSource);
303
+ // Process rules
304
+ if (result.rules && typeof result.rules === 'object') {
305
+ for (const [name, rule] of Object.entries(result.rules)) {
306
+ const relativePath = getRelativePath(rule);
307
+ if (!relativePath) {
308
+ continue;
309
+ }
310
+ const repoPath = computeRepoRootPath(gitSource.configPath, relativePath), gitRef = {
311
+ url: gitUrl,
312
+ ...(gitSource.ref && { ref: gitSource.ref }),
313
+ path: repoPath,
314
+ };
315
+ // Preserve other properties from object form (description, activation, globs)
316
+ if (typeof rule === 'object' && rule !== null) {
317
+ const { path: _path, content: _content, git: _git, npm: _npm, ...rest } = rule;
318
+ result.rules[name] = { ...rest, git: gitRef };
319
+ }
320
+ else {
321
+ result.rules[name] = { git: gitRef };
322
+ }
323
+ converted.push({
324
+ name,
325
+ type: 'rule',
326
+ gitRef: `${gitUrl}${gitSource.ref ? `#${gitSource.ref}` : ''}:${repoPath}`,
327
+ });
328
+ }
329
+ }
330
+ // Process prompts
331
+ if (result.prompts && typeof result.prompts === 'object') {
332
+ for (const [name, prompt] of Object.entries(result.prompts)) {
333
+ const relativePath = getRelativePath(prompt);
334
+ if (!relativePath) {
335
+ continue;
336
+ }
337
+ const repoPath = computeRepoRootPath(gitSource.configPath, relativePath), gitRef = {
338
+ url: gitUrl,
339
+ ...(gitSource.ref && { ref: gitSource.ref }),
340
+ path: repoPath,
341
+ };
342
+ // Preserve other properties from object form (description, argumentHint)
343
+ if (typeof prompt === 'object' && prompt !== null) {
344
+ const { path: _path, content: _content, git: _git, npm: _npm, ...rest } = prompt;
345
+ result.prompts[name] = { ...rest, git: gitRef };
346
+ }
347
+ else {
348
+ result.prompts[name] = { git: gitRef };
349
+ }
350
+ converted.push({
351
+ name,
352
+ type: 'prompt',
353
+ gitRef: `${gitUrl}${gitSource.ref ? `#${gitSource.ref}` : ''}:${repoPath}`,
354
+ });
355
+ }
356
+ }
357
+ // Process skills
358
+ if (result.skills && typeof result.skills === 'object') {
359
+ for (const [name, skill] of Object.entries(result.skills)) {
360
+ const relativePath = getRelativePath(skill);
361
+ if (!relativePath) {
362
+ continue;
363
+ }
364
+ // Strip trailing slash from skill paths (giget doesn't handle them well)
365
+ const repoPath = computeRepoRootPath(gitSource.configPath, relativePath).replace(/\/$/, ''), gitRef = {
366
+ git: gitUrl,
367
+ ...(gitSource.ref && { ref: gitSource.ref }),
368
+ path: repoPath,
369
+ };
370
+ // Skills use a different schema - check if it's the extended form with enabled/config
371
+ if (typeof skill === 'object' && skill !== null && ('enabled' in skill || 'config' in skill)) {
372
+ const { path: _path, source: _source, git: _git, ...rest } = skill;
373
+ result.skills[name] = { ...rest, ...gitRef };
374
+ }
375
+ else {
376
+ result.skills[name] = gitRef;
377
+ }
378
+ converted.push({
379
+ name,
380
+ type: 'skill',
381
+ gitRef: `${gitUrl}${gitSource.ref ? `#${gitSource.ref}` : ''}:${repoPath}`,
382
+ });
383
+ }
127
384
  }
385
+ return { config: result, convertedCount: converted.length, converted };
128
386
  }
129
387
  //# 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/loader.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { type AiJsonConfig } from '@a1st/aix-schema';
2
+ import { type GitSourceInfo } from './remote-loader.js';
2
3
  export interface LoadedConfig {
3
4
  path: string;
4
5
  config: AiJsonConfig;
@@ -9,6 +10,18 @@ export interface LoadedConfig {
9
10
  localPath?: string;
10
11
  /** Whether local overrides were applied */
11
12
  hasLocalOverrides?: boolean;
13
+ /**
14
+ * Base directory/URL for resolving relative paths in the config (skills, rules, etc.). For local
15
+ * configs, this is the directory containing the config file. For remote URL configs, this is the
16
+ * remote URL directory. For git shorthand configs, this is the local temp directory where the
17
+ * repo was downloaded.
18
+ */
19
+ configBaseDir?: string;
20
+ /**
21
+ * Git source metadata when the config was loaded from a git source. Used for creating git
22
+ * references when saving configs with --save.
23
+ */
24
+ gitSource?: GitSourceInfo;
12
25
  }
13
26
  export interface LoadConfigOptions {
14
27
  /** Explicit path to local config file (existing behavior) */
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AACA,OAAO,EAAiC,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AASpF,MAAM,WAAW,YAAY;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,cAAc,GAAG,QAAQ,CAAC;IAC3C,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAC/B,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAC7B,OAAO,CAAC,EAAE,iBAAiB,GAAG,MAAM,EACpC,QAAQ,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CA4BnC;AAkID;;;;;GAKG;AACH,wBAAsB,aAAa,CAChC,OAAO,CAAC,EAAE,iBAAiB,GAAG,MAAM,EACpC,QAAQ,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,CAAC,CAWvB"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AACA,OAAO,EAAiC,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAMpF,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxE,MAAM,WAAW,YAAY;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,cAAc,GAAG,QAAQ,CAAC;IAC3C,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,SAAS,CAAC,EAAE,aAAa,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAC/B,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAC7B,OAAO,CAAC,EAAE,iBAAiB,GAAG,MAAM,EACpC,QAAQ,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CA4BnC;AAqID;;;;;GAKG;AACH,wBAAsB,aAAa,CAChC,OAAO,CAAC,EAAE,iBAAiB,GAAG,MAAM,EACpC,QAAQ,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,CAAC,CAWvB"}
package/dist/loader.js CHANGED
@@ -61,6 +61,8 @@ async function loadFromRemoteSource(source, cwd) {
61
61
  path: source,
62
62
  config: validated,
63
63
  source: sourceType,
64
+ configBaseDir: remote.baseUrl,
65
+ gitSource: remote.gitSource,
64
66
  };
65
67
  }
66
68
  /**
@@ -111,6 +113,7 @@ async function loadFromDiscovered(discovered) {
111
113
  path: discovered.path,
112
114
  config: validated,
113
115
  source: discovered.source,
116
+ configBaseDir: baseDir,
114
117
  ...(warnings.length > 0 && { warnings }),
115
118
  ...(localPath && { localPath }),
116
119
  ...(hasLocalOverrides && { hasLocalOverrides }),
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,17 @@
1
1
  export type RemoteSourceType = 'url' | 'git' | 'local';
2
+ /** Git source metadata for creating git references when saving configs */
3
+ export interface GitSourceInfo {
4
+ /** Git provider */
5
+ provider: 'github' | 'gitlab' | 'bitbucket';
6
+ /** Repository owner/user */
7
+ owner: string;
8
+ /** Repository name */
9
+ repo: string;
10
+ /** Git ref (branch, tag, commit) */
11
+ ref?: string;
12
+ /** Path to the config file within the repo (e.g., "ai.json" or "configs/ai.json") */
13
+ configPath?: string;
14
+ }
2
15
  export interface RemoteLoadResult {
3
16
  /** Parsed config content */
4
17
  content: Record<string, unknown>;
@@ -8,9 +21,12 @@ export interface RemoteLoadResult {
8
21
  source: RemoteSourceType;
9
22
  /** Whether the base is a remote URL (for extends resolution) */
10
23
  isRemote: boolean;
24
+ /** Git source metadata (present when source is 'git') */
25
+ gitSource?: GitSourceInfo;
11
26
  }
12
27
  /**
13
- * Load config from a remote URL (direct or blob URL).
28
+ * Load config from a remote URL (direct or blob URL). For blob URLs from GitHub/GitLab/Bitbucket,
29
+ * downloads the entire repo so relative paths can be resolved.
14
30
  */
15
31
  export declare function loadFromUrl(url: string): Promise<RemoteLoadResult>;
16
32
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"remote-loader.d.ts","sourceRoot":"","sources":["../src/remote-loader.ts"],"names":[],"mappings":"AAuBA,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,CAAC;AAEvD,MAAM,WAAW,gBAAgB;IAC9B,4BAA4B;IAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB;IAClB,MAAM,EAAE,gBAAgB,CAAC;IACzB,gEAAgE;IAChE,QAAQ,EAAE,OAAO,CAAC;CACpB;AA4BD;;GAEG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA4BxE;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAwDnF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,GAAE,MAAsB,GAAG,gBAAgB,CAoB7F;AA+DD;;GAEG;AACH,wBAAsB,cAAc,CACjC,MAAM,EAAE,MAAM,EACd,GAAG,GAAE,MAAsB,GAC3B,OAAO,CAAC,gBAAgB,CAAC,CAiC3B"}
1
+ {"version":3,"file":"remote-loader.d.ts","sourceRoot":"","sources":["../src/remote-loader.ts"],"names":[],"mappings":"AAwBA,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,CAAC;AAEvD,0EAA0E;AAC1E,MAAM,WAAW,aAAa;IAC3B,mBAAmB;IACnB,QAAQ,EAAE,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;IAC5C,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qFAAqF;IACrF,UAAU,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC9B,4BAA4B;IAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB;IAClB,MAAM,EAAE,gBAAgB,CAAC;IACzB,gEAAgE;IAChE,QAAQ,EAAE,OAAO,CAAC;IAClB,yDAAyD;IACzD,SAAS,CAAC,EAAE,aAAa,CAAC;CAC5B;AAqFD;;;GAGG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAoCxE;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAkEnF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,GAAE,MAAsB,GAAG,gBAAgB,CAoB7F;AA+DD;;GAEG;AACH,wBAAsB,cAAc,CACjC,MAAM,EAAE,MAAM,EACd,GAAG,GAAE,MAAsB,GAC3B,OAAO,CAAC,gBAAgB,CAAC,CAiC3B"}