@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.
Files changed (135) 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 +13 -8
  7. package/dist/cache/paths.d.ts.map +1 -1
  8. package/dist/cache/paths.js +19 -12
  9. package/dist/cache/paths.js.map +1 -1
  10. package/dist/editors/adapters/base.d.ts +9 -1
  11. package/dist/editors/adapters/base.d.ts.map +1 -1
  12. package/dist/editors/adapters/base.js +7 -5
  13. package/dist/editors/adapters/base.js.map +1 -1
  14. package/dist/editors/adapters/claude-code.d.ts +2 -1
  15. package/dist/editors/adapters/claude-code.d.ts.map +1 -1
  16. package/dist/editors/adapters/claude-code.js +13 -5
  17. package/dist/editors/adapters/claude-code.js.map +1 -1
  18. package/dist/editors/adapters/codex.d.ts +1 -0
  19. package/dist/editors/adapters/codex.d.ts.map +1 -1
  20. package/dist/editors/adapters/codex.js +9 -1
  21. package/dist/editors/adapters/codex.js.map +1 -1
  22. package/dist/editors/adapters/cursor.d.ts +1 -0
  23. package/dist/editors/adapters/cursor.d.ts.map +1 -1
  24. package/dist/editors/adapters/cursor.js +9 -1
  25. package/dist/editors/adapters/cursor.js.map +1 -1
  26. package/dist/editors/adapters/vscode.d.ts +1 -0
  27. package/dist/editors/adapters/vscode.d.ts.map +1 -1
  28. package/dist/editors/adapters/vscode.js +9 -1
  29. package/dist/editors/adapters/vscode.js.map +1 -1
  30. package/dist/editors/adapters/windsurf.d.ts +1 -0
  31. package/dist/editors/adapters/windsurf.d.ts.map +1 -1
  32. package/dist/editors/adapters/windsurf.js +9 -1
  33. package/dist/editors/adapters/windsurf.js.map +1 -1
  34. package/dist/editors/adapters/zed.d.ts +1 -0
  35. package/dist/editors/adapters/zed.d.ts.map +1 -1
  36. package/dist/editors/adapters/zed.js +9 -1
  37. package/dist/editors/adapters/zed.js.map +1 -1
  38. package/dist/editors/import.d.ts +2 -1
  39. package/dist/editors/import.d.ts.map +1 -1
  40. package/dist/editors/import.js +12 -9
  41. package/dist/editors/import.js.map +1 -1
  42. package/dist/editors/install.d.ts.map +1 -1
  43. package/dist/editors/install.js +1 -36
  44. package/dist/editors/install.js.map +1 -1
  45. package/dist/editors/strategies/claude-code/mcp.d.ts +6 -2
  46. package/dist/editors/strategies/claude-code/mcp.d.ts.map +1 -1
  47. package/dist/editors/strategies/claude-code/mcp.js +40 -2
  48. package/dist/editors/strategies/claude-code/mcp.js.map +1 -1
  49. package/dist/editors/strategies/claude-code/prompts.d.ts +11 -1
  50. package/dist/editors/strategies/claude-code/prompts.d.ts.map +1 -1
  51. package/dist/editors/strategies/claude-code/prompts.js +29 -0
  52. package/dist/editors/strategies/claude-code/prompts.js.map +1 -1
  53. package/dist/editors/strategies/claude-code/rules.d.ts +12 -1
  54. package/dist/editors/strategies/claude-code/rules.d.ts.map +1 -1
  55. package/dist/editors/strategies/claude-code/rules.js +49 -5
  56. package/dist/editors/strategies/claude-code/rules.js.map +1 -1
  57. package/dist/editors/strategies/codex/prompts.d.ts +11 -1
  58. package/dist/editors/strategies/codex/prompts.d.ts.map +1 -1
  59. package/dist/editors/strategies/codex/prompts.js +34 -0
  60. package/dist/editors/strategies/codex/prompts.js.map +1 -1
  61. package/dist/editors/strategies/cursor/rules.d.ts +14 -1
  62. package/dist/editors/strategies/cursor/rules.d.ts.map +1 -1
  63. package/dist/editors/strategies/cursor/rules.js +51 -5
  64. package/dist/editors/strategies/cursor/rules.js.map +1 -1
  65. package/dist/editors/strategies/shared/standard-mcp.d.ts +3 -1
  66. package/dist/editors/strategies/shared/standard-mcp.d.ts.map +1 -1
  67. package/dist/editors/strategies/shared/standard-mcp.js +5 -1
  68. package/dist/editors/strategies/shared/standard-mcp.js.map +1 -1
  69. package/dist/editors/strategies/types.d.ts +48 -2
  70. package/dist/editors/strategies/types.d.ts.map +1 -1
  71. package/dist/editors/strategies/vscode/prompts.d.ts +11 -1
  72. package/dist/editors/strategies/vscode/prompts.d.ts.map +1 -1
  73. package/dist/editors/strategies/vscode/prompts.js +29 -0
  74. package/dist/editors/strategies/vscode/prompts.js.map +1 -1
  75. package/dist/editors/strategies/windsurf/prompts.d.ts +11 -1
  76. package/dist/editors/strategies/windsurf/prompts.d.ts.map +1 -1
  77. package/dist/editors/strategies/windsurf/prompts.js +29 -0
  78. package/dist/editors/strategies/windsurf/prompts.js.map +1 -1
  79. package/dist/editors/strategies/windsurf/rules.d.ts +14 -1
  80. package/dist/editors/strategies/windsurf/rules.d.ts.map +1 -1
  81. package/dist/editors/strategies/windsurf/rules.js +43 -5
  82. package/dist/editors/strategies/windsurf/rules.js.map +1 -1
  83. package/dist/editors/types.d.ts +12 -0
  84. package/dist/editors/types.d.ts.map +1 -1
  85. package/dist/frontmatter-parser.d.ts +24 -0
  86. package/dist/frontmatter-parser.d.ts.map +1 -0
  87. package/dist/frontmatter-parser.js +137 -0
  88. package/dist/frontmatter-parser.js.map +1 -0
  89. package/dist/frontmatter-utils.d.ts +36 -0
  90. package/dist/frontmatter-utils.d.ts.map +1 -0
  91. package/dist/frontmatter-utils.js +109 -0
  92. package/dist/frontmatter-utils.js.map +1 -0
  93. package/dist/git-download.d.ts +18 -0
  94. package/dist/git-download.d.ts.map +1 -0
  95. package/dist/git-download.js +49 -0
  96. package/dist/git-download.js.map +1 -0
  97. package/dist/import-writer.d.ts +54 -10
  98. package/dist/import-writer.d.ts.map +1 -1
  99. package/dist/import-writer.js +305 -44
  100. package/dist/import-writer.js.map +1 -1
  101. package/dist/inheritance.d.ts +2 -0
  102. package/dist/inheritance.d.ts.map +1 -1
  103. package/dist/inheritance.js +172 -41
  104. package/dist/inheritance.js.map +1 -1
  105. package/dist/loader.d.ts +13 -0
  106. package/dist/loader.d.ts.map +1 -1
  107. package/dist/loader.js +5 -1
  108. package/dist/loader.js.map +1 -1
  109. package/dist/prompts/loader.d.ts.map +1 -1
  110. package/dist/prompts/loader.js +11 -39
  111. package/dist/prompts/loader.js.map +1 -1
  112. package/dist/remote-loader.d.ts +17 -1
  113. package/dist/remote-loader.d.ts.map +1 -1
  114. package/dist/remote-loader.js +76 -44
  115. package/dist/remote-loader.js.map +1 -1
  116. package/dist/rules/loader.d.ts.map +1 -1
  117. package/dist/rules/loader.js +23 -13
  118. package/dist/rules/loader.js.map +1 -1
  119. package/dist/skills/parser.d.ts +3 -1
  120. package/dist/skills/parser.d.ts.map +1 -1
  121. package/dist/skills/parser.js +22 -10
  122. package/dist/skills/parser.js.map +1 -1
  123. package/dist/skills/resolvers/git.d.ts.map +1 -1
  124. package/dist/skills/resolvers/git.js +10 -2
  125. package/dist/skills/resolvers/git.js.map +1 -1
  126. package/dist/skills/validate.js +1 -1
  127. package/dist/skills/validate.js.map +1 -1
  128. package/dist/updater.d.ts.map +1 -1
  129. package/dist/updater.js +5 -12
  130. package/dist/updater.js.map +1 -1
  131. package/dist/url-parsing.d.ts +1 -4
  132. package/dist/url-parsing.d.ts.map +1 -1
  133. package/dist/url-parsing.js +2 -6
  134. package/dist/url-parsing.js.map +1 -1
  135. package/package.json +11 -1
@@ -1,17 +1,27 @@
1
- import { resolve, dirname } from 'pathe';
1
+ import { resolve, dirname, join, isAbsolute } from 'pathe';
2
2
  import { existsSync, readFileSync } from 'node:fs';
3
+ import { cp, mkdir, rm } from 'node:fs/promises';
3
4
  import { fileURLToPath } from 'node:url';
4
- import { downloadTemplate } from 'giget';
5
- import { parseJsonc } from '@a1st/aix-schema';
5
+ import { parseJsonc, detectSourceType, isLocalPath } from '@a1st/aix-schema';
6
+ import { withGitDownload, createDownloadKey } from './git-download.js';
7
+ import { getExtendsDir } from './cache/paths.js';
6
8
  import { parseConfigContent } from './discovery.js';
7
9
  import { CircularDependencyError, ConfigParseError, RemoteFetchError } from './errors.js';
8
- import { convertBlobToRawUrl, isLocalPath } from './url-parsing.js';
10
+ import { convertBlobToRawUrl } from './url-parsing.js';
9
11
  import { deepMergeJson } from './json.js';
10
12
  export async function resolveExtends(config, options) {
11
- const { baseDir, visited = new Set(), isRemote = false } = options;
13
+ const { baseDir, projectRoot, visited = new Set(), isRemote = false } = options, isTopLevel = !options.visited;
12
14
  if (!config.extends) {
13
15
  return config;
14
16
  }
17
+ // On the top-level call, wipe the extends directory so it exactly reflects the current config.
18
+ // This prevents orphaned directories from accumulating when the extends URL changes.
19
+ if (isTopLevel) {
20
+ const extendsDir = getExtendsDir(projectRoot);
21
+ if (existsSync(extendsDir)) {
22
+ await rm(extendsDir, { recursive: true, force: true });
23
+ }
24
+ }
15
25
  const extendsValue = config.extends, extendsList = Array.isArray(extendsValue) ? extendsValue : [extendsValue];
16
26
  let merged = {};
17
27
  // Process extends sequentially - order matters for proper inheritance chain
@@ -20,39 +30,46 @@ export async function resolveExtends(config, options) {
20
30
  continue;
21
31
  }
22
32
  // eslint-disable-next-line no-await-in-loop -- Sequential: inheritance chain order matters
23
- const resolvedConfig = await resolveExtendsPath(extendPath, baseDir, visited, isRemote);
33
+ const resolvedConfig = await resolveExtendsPath(extendPath, {
34
+ baseDir,
35
+ projectRoot,
36
+ visited,
37
+ isRemote,
38
+ });
24
39
  merged = deepMergeJson(merged, resolvedConfig, { resolver: aiJsonMergeResolver });
25
40
  }
26
41
  const { extends: _, ...currentConfig } = config;
27
42
  merged = deepMergeJson(merged, currentConfig, { resolver: aiJsonMergeResolver });
28
43
  return merged;
29
44
  }
30
- async function resolveExtendsPath(extendPath, baseDir, visited, isRemote) {
45
+ async function resolveExtendsPath(extendPath, options) {
46
+ const { baseDir, projectRoot, visited, isRemote } = options;
31
47
  // If base is a remote URL and extend is a relative path, resolve as remote URL
32
48
  if (isRemote && isRelativePath(extendPath)) {
33
- return resolveRemoteExtends(new URL(extendPath, baseDir).href, visited);
34
- }
35
- if (isLocalPath(extendPath)) {
36
- return resolveLocalExtends(extendPath, baseDir, visited);
49
+ return resolveRemoteExtends(new URL(extendPath, baseDir).href, projectRoot, visited);
37
50
  }
38
- if (isGitPath(extendPath)) {
39
- return resolveGitExtends(extendPath, visited);
51
+ const sourceType = detectSourceType(extendPath);
52
+ switch (sourceType) {
53
+ case 'local':
54
+ return resolveLocalExtends(extendPath, baseDir, projectRoot, visited);
55
+ case 'https-file':
56
+ return resolveRemoteExtends(extendPath, projectRoot, visited);
57
+ case 'git-shorthand':
58
+ case 'https-repo':
59
+ return resolveGitExtends(extendPath, projectRoot, visited);
60
+ case 'npm':
61
+ return resolveNpmExtends(extendPath, projectRoot, visited);
62
+ case 'http-unsupported':
63
+ throw new ConfigParseError('HTTP URLs are not supported (use HTTPS)', extendPath);
40
64
  }
41
- return resolveNpmExtends(extendPath, visited);
42
65
  }
43
66
  function isRelativePath(path) {
44
67
  return path.startsWith('./') || path.startsWith('../');
45
68
  }
46
- function isGitPath(path) {
47
- return (path.startsWith('github:') ||
48
- path.startsWith('gitlab:') ||
49
- path.startsWith('bitbucket:') ||
50
- path.startsWith('https://'));
51
- }
52
69
  /**
53
70
  * Resolve extends from a remote URL (fetch the file directly).
54
71
  */
55
- async function resolveRemoteExtends(url, visited) {
72
+ async function resolveRemoteExtends(url, projectRoot, visited) {
56
73
  if (visited.has(url)) {
57
74
  throw new CircularDependencyError([...visited, url]);
58
75
  }
@@ -75,9 +92,9 @@ async function resolveRemoteExtends(url, visited) {
75
92
  throw new ConfigParseError(`Parse error: ${result.errors[0]?.message}`, url);
76
93
  }
77
94
  const parsed = result.data, newBaseUrl = rawUrl.substring(0, rawUrl.lastIndexOf('/') + 1);
78
- return resolveExtends(parsed, { baseDir: newBaseUrl, visited, isRemote: true });
95
+ return resolveExtends(parsed, { baseDir: newBaseUrl, projectRoot, visited, isRemote: true });
79
96
  }
80
- async function resolveLocalExtends(extendPath, baseDir, visited) {
97
+ async function resolveLocalExtends(extendPath, baseDir, projectRoot, visited) {
81
98
  const absolutePath = resolve(baseDir, extendPath);
82
99
  if (visited.has(absolutePath)) {
83
100
  throw new CircularDependencyError([...visited, absolutePath]);
@@ -86,38 +103,46 @@ async function resolveLocalExtends(extendPath, baseDir, visited) {
86
103
  throw new ConfigParseError(`Extended config not found: ${extendPath}`, absolutePath);
87
104
  }
88
105
  visited.add(absolutePath);
89
- const content = readFileSync(absolutePath, 'utf-8'), parsed = parseConfigContent(content), newBaseDir = dirname(absolutePath);
90
- return resolveExtends(parsed, { baseDir: newBaseDir, visited });
106
+ const content = readFileSync(absolutePath, 'utf-8'), parsed = parseConfigContent(content), newBaseDir = dirname(absolutePath), resolved = await resolveExtends(parsed, { baseDir: newBaseDir, projectRoot, visited });
107
+ // Normalize local paths to absolute so they remain valid after merging into the parent config,
108
+ // which may be in a different directory.
109
+ return normalizeLocalPaths(resolved, newBaseDir);
91
110
  }
92
- async function resolveGitExtends(extendPath, visited) {
111
+ async function resolveGitExtends(extendPath, projectRoot, visited) {
93
112
  if (visited.has(extendPath)) {
94
113
  throw new CircularDependencyError([...visited, extendPath]);
95
114
  }
96
115
  visited.add(extendPath);
97
- const { dir } = await downloadTemplate(extendPath, {
98
- force: false,
99
- cwd: process.cwd(),
116
+ return withGitDownload(extendPath, projectRoot, async (dir) => {
117
+ const configPath = resolve(dir, 'ai.json');
118
+ if (!existsSync(configPath)) {
119
+ throw new ConfigParseError(`No ai.json found in git repository: ${extendPath}`, configPath);
120
+ }
121
+ const content = readFileSync(configPath, 'utf-8'), parsed = parseConfigContent(content), resolved = await resolveExtends(parsed, { baseDir: dir, projectRoot, visited });
122
+ // Copy the downloaded content to a permanent location under .aix/extends/ so that skill,
123
+ // rule, and prompt paths remain resolvable after the ephemeral temp dir is cleaned up.
124
+ const extendsKey = createDownloadKey(extendPath), permanentDir = join(getExtendsDir(projectRoot), extendsKey);
125
+ await mkdir(dirname(permanentDir), { recursive: true });
126
+ await cp(dir, permanentDir, { recursive: true, force: true });
127
+ // Normalize local paths to point at the permanent copy
128
+ return normalizeLocalPaths(resolved, permanentDir);
100
129
  });
101
- const configPath = resolve(dir, 'ai.json');
102
- if (!existsSync(configPath)) {
103
- throw new ConfigParseError(`No ai.json found in git repository: ${extendPath}`, configPath);
104
- }
105
- const content = readFileSync(configPath, 'utf-8'), parsed = parseConfigContent(content);
106
- return resolveExtends(parsed, { baseDir: dir, visited });
107
130
  }
108
- async function resolveNpmExtends(packageName, visited) {
131
+ async function resolveNpmExtends(packageName, projectRoot, visited) {
109
132
  if (visited.has(packageName)) {
110
133
  throw new CircularDependencyError([...visited, packageName]);
111
134
  }
112
135
  visited.add(packageName);
113
136
  try {
114
137
  // Use ESM-compatible import.meta.resolve to find the package
115
- const resolvedUrl = import.meta.resolve(`${packageName}/ai.json`, `file://${process.cwd()}/`);
116
- const packagePath = fileURLToPath(resolvedUrl);
117
- const content = readFileSync(packagePath, 'utf-8'), parsed = parseConfigContent(content), baseDir = dirname(packagePath);
118
- return resolveExtends(parsed, { baseDir, visited });
138
+ const resolvedUrl = import.meta.resolve(`${packageName}/ai.json`, `file://${process.cwd()}/`), packagePath = fileURLToPath(resolvedUrl), content = readFileSync(packagePath, 'utf-8'), parsed = parseConfigContent(content), baseDir = dirname(packagePath), resolved = await resolveExtends(parsed, { baseDir, projectRoot, visited });
139
+ // Normalize local paths to absolute so they remain valid after merging into the parent config
140
+ return normalizeLocalPaths(resolved, baseDir);
119
141
  }
120
- catch (_error) {
142
+ catch (error) {
143
+ if (error instanceof ConfigParseError || error instanceof CircularDependencyError) {
144
+ throw error;
145
+ }
121
146
  throw new ConfigParseError(`Failed to resolve npm package: ${packageName}. Make sure it's installed.`, packageName);
122
147
  }
123
148
  }
@@ -130,4 +155,110 @@ function aiJsonMergeResolver({ key }) {
130
155
  }
131
156
  return undefined;
132
157
  }
158
+ /**
159
+ * Normalize local paths in a config to absolute paths. This ensures that skills, rules, and prompts
160
+ * from extended configs (git, npm) remain resolvable after merging into the parent config.
161
+ */
162
+ function normalizeLocalPaths(config, baseDir) {
163
+ const result = { ...config };
164
+ // Normalize skills
165
+ if (result.skills && typeof result.skills === 'object') {
166
+ result.skills = normalizeSkillPaths(result.skills, baseDir);
167
+ }
168
+ // Normalize rules
169
+ if (result.rules && typeof result.rules === 'object') {
170
+ result.rules = normalizeRulePaths(result.rules, baseDir);
171
+ }
172
+ // Normalize prompts
173
+ if (result.prompts && typeof result.prompts === 'object') {
174
+ result.prompts = normalizePromptPaths(result.prompts, baseDir);
175
+ }
176
+ return result;
177
+ }
178
+ /**
179
+ * Normalize skill reference paths to absolute paths.
180
+ */
181
+ function normalizeSkillPaths(skills, baseDir) {
182
+ const result = {};
183
+ for (const [name, ref] of Object.entries(skills)) {
184
+ result[name] = normalizeSourceRef(ref, baseDir);
185
+ }
186
+ return result;
187
+ }
188
+ /**
189
+ * Normalize a source reference (skill, rule, prompt) to use absolute paths for local refs.
190
+ */
191
+ function normalizeSourceRef(ref, baseDir) {
192
+ if (ref === false || ref === null || ref === undefined) {
193
+ return ref;
194
+ }
195
+ // String shorthand (version range, local path, or git shorthand)
196
+ if (typeof ref === 'string') {
197
+ return normalizePathString(ref, baseDir);
198
+ }
199
+ // Object with path property (local ref)
200
+ if (typeof ref === 'object' && ref !== null) {
201
+ const obj = ref;
202
+ // { path: "./skills/foo" } → { path: "/abs/path/skills/foo" }
203
+ if ('path' in obj && typeof obj.path === 'string') {
204
+ return { ...obj, path: normalizePathString(obj.path, baseDir) };
205
+ }
206
+ // { source: "./skills/foo" } or { source: { path: "..." } }
207
+ if ('source' in obj) {
208
+ return { ...obj, source: normalizeSourceRef(obj.source, baseDir) };
209
+ }
210
+ }
211
+ return ref;
212
+ }
213
+ /**
214
+ * Normalize a path string to absolute if it's a local path.
215
+ */
216
+ function normalizePathString(value, baseDir) {
217
+ // Skip if already absolute
218
+ if (isAbsolute(value)) {
219
+ return value;
220
+ }
221
+ // Only normalize local paths (not git refs, npm packages, URLs, etc.)
222
+ if (!isLocalPath(value)) {
223
+ return value;
224
+ }
225
+ return resolve(baseDir, value);
226
+ }
227
+ /**
228
+ * Normalize rule paths to absolute paths.
229
+ */
230
+ function normalizeRulePaths(rules, baseDir) {
231
+ const result = {};
232
+ for (const [key, value] of Object.entries(rules)) {
233
+ if (Array.isArray(value)) {
234
+ // Array of rule strings or paths
235
+ result[key] = value.map((item) => typeof item === 'string' ? normalizePathString(item, baseDir) : item);
236
+ }
237
+ else if (typeof value === 'string') {
238
+ result[key] = normalizePathString(value, baseDir);
239
+ }
240
+ else {
241
+ result[key] = value;
242
+ }
243
+ }
244
+ return result;
245
+ }
246
+ /**
247
+ * Normalize prompt paths to absolute paths.
248
+ */
249
+ function normalizePromptPaths(prompts, baseDir) {
250
+ const result = {};
251
+ for (const [key, value] of Object.entries(prompts)) {
252
+ if (Array.isArray(value)) {
253
+ result[key] = value.map((item) => typeof item === 'string' ? normalizePathString(item, baseDir) : item);
254
+ }
255
+ else if (typeof value === 'string') {
256
+ result[key] = normalizePathString(value, baseDir);
257
+ }
258
+ else {
259
+ result[key] = value;
260
+ }
261
+ }
262
+ return result;
263
+ }
133
264
  //# sourceMappingURL=inheritance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inheritance.js","sourceRoot":"","sources":["../src/inheritance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inheritance.js","sourceRoot":"","sources":["../src/inheritance.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;AAsID;;;;;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
@@ -42,6 +42,7 @@ export async function loadConfig(options, startDir) {
42
42
  async function loadFromRemoteSource(source, cwd) {
43
43
  const remote = await loadFromSource(source, cwd), resolved = await resolveExtends(remote.content, {
44
44
  baseDir: remote.baseUrl,
45
+ projectRoot: cwd,
45
46
  isRemote: remote.isRemote,
46
47
  });
47
48
  let validated;
@@ -61,6 +62,8 @@ async function loadFromRemoteSource(source, cwd) {
61
62
  path: source,
62
63
  config: validated,
63
64
  source: sourceType,
65
+ configBaseDir: remote.baseUrl,
66
+ gitSource: remote.gitSource,
64
67
  };
65
68
  }
66
69
  /**
@@ -92,7 +95,7 @@ function mergeLocalOverrides(baseConfig, localContent, localPath) {
92
95
  */
93
96
  async function loadFromDiscovered(discovered) {
94
97
  try {
95
- const parsed = parseConfigContent(discovered.content), baseDir = dirname(discovered.path), resolved = await resolveExtends(parsed, { baseDir });
98
+ const parsed = parseConfigContent(discovered.content), baseDir = dirname(discovered.path), resolved = await resolveExtends(parsed, { baseDir, projectRoot: baseDir });
96
99
  let validated = parseConfig(resolved);
97
100
  const warnings = [];
98
101
  if (discovered.packageJsonAlsoHasAi) {
@@ -111,6 +114,7 @@ async function loadFromDiscovered(discovered) {
111
114
  path: discovered.path,
112
115
  config: validated,
113
116
  source: discovered.source,
117
+ configBaseDir: baseDir,
114
118
  ...(warnings.length > 0 && { warnings }),
115
119
  ...(localPath && { localPath }),
116
120
  ...(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 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/prompts/loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAgB,WAAW,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAkCjF,MAAM,WAAW,YAAY;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAC7B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,MAAM,GAChB,OAAO,CAAC,YAAY,CAAC,CAuEvB;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAC9B,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAavC"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/prompts/loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAgB,WAAW,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAOjF,MAAM,WAAW,YAAY;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAC7B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,MAAM,GAChB,OAAO,CAAC,YAAY,CAAC,CAqEvB;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAC9B,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAavC"}
@@ -5,27 +5,7 @@ import { normalizeSourceRef } from '@a1st/aix-schema';
5
5
  import { getPromptsCacheDir } from '../cache/paths.js';
6
6
  import { loadFromGit } from '../git-loader.js';
7
7
  import { resolveNpmPath } from '../npm/resolve.js';
8
- /**
9
- * Strip YAML frontmatter from markdown content and optionally extract metadata.
10
- * Returns the content without frontmatter and any extracted metadata.
11
- */
12
- function stripFrontmatter(content) {
13
- const frontmatterMatch = content.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n/);
14
- if (!frontmatterMatch) {
15
- return { content };
16
- }
17
- const frontmatterContent = frontmatterMatch[1];
18
- const contentWithoutFrontmatter = content.slice(frontmatterMatch[0].length);
19
- // Parse simple key: value pairs from frontmatter
20
- const metadata = {};
21
- for (const line of frontmatterContent.split('\n')) {
22
- const match = line.match(/^([\w-]+):\s*["']?([^"']*)["']?\s*$/);
23
- if (match) {
24
- metadata[match[1]] = match[2];
25
- }
26
- }
27
- return { content: contentWithoutFrontmatter.trim(), metadata };
28
- }
8
+ import { parsePromptFrontmatter } from '../frontmatter-parser.js';
29
9
  /**
30
10
  * Load a single prompt from any source.
31
11
  * @param name - The prompt name (key from the prompts object)
@@ -49,31 +29,25 @@ export async function loadPrompt(name, value, basePath) {
49
29
  }
50
30
  // Local file
51
31
  if (promptObj.path) {
52
- const fullPath = resolve(dirname(basePath), promptObj.path);
53
- const rawContent = await readFile(fullPath, 'utf-8');
54
- const { content, metadata } = stripFrontmatter(rawContent.trim());
32
+ const fullPath = resolve(dirname(basePath), promptObj.path), rawContent = await readFile(fullPath, 'utf-8'), parsed = parsePromptFrontmatter(rawContent.trim());
55
33
  return {
56
34
  ...base,
57
- // Use frontmatter description if not explicitly provided
58
- description: base.description ?? metadata?.description,
59
- content,
35
+ description: base.description ?? parsed.description,
36
+ content: parsed.content,
60
37
  sourcePath: fullPath,
61
38
  };
62
39
  }
63
40
  // Git repository
64
41
  if (promptObj.git) {
65
- const baseDir = dirname(basePath) || tmpdir();
66
- const result = await loadFromGit({
42
+ const baseDir = dirname(basePath) || tmpdir(), result = await loadFromGit({
67
43
  git: promptObj.git,
68
44
  cacheDir: getPromptsCacheDir(baseDir),
69
45
  defaultFilePath: 'prompt.md',
70
- });
71
- const { content, metadata } = stripFrontmatter(result.content);
46
+ }), parsed = parsePromptFrontmatter(result.content);
72
47
  return {
73
48
  ...base,
74
- // Use frontmatter description if not explicitly provided
75
- description: base.description ?? metadata?.description,
76
- content,
49
+ description: base.description ?? parsed.description,
50
+ content: parsed.content,
77
51
  sourcePath: result.sourcePath,
78
52
  };
79
53
  }
@@ -84,13 +58,11 @@ export async function loadPrompt(name, value, basePath) {
84
58
  subpath: promptObj.npm.path,
85
59
  version: promptObj.npm.version,
86
60
  projectRoot: dirname(basePath),
87
- });
88
- const rawContent = await readFile(filePath, 'utf-8');
89
- const { content, metadata } = stripFrontmatter(rawContent.trim());
61
+ }), rawContent = await readFile(filePath, 'utf-8'), parsed = parsePromptFrontmatter(rawContent.trim());
90
62
  return {
91
63
  ...base,
92
- description: base.description ?? metadata?.description,
93
- content,
64
+ description: base.description ?? parsed.description,
65
+ content: parsed.content,
94
66
  sourcePath: filePath,
95
67
  };
96
68
  }
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/prompts/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/prompts/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":"AAqBA,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;AAiDD;;GAEG;AACH,wBAAsB,cAAc,CACjC,MAAM,EAAE,MAAM,EACd,GAAG,GAAE,MAAsB,GAC3B,OAAO,CAAC,gBAAgB,CAAC,CAuB3B"}