@kadi.build/core 0.0.1-alpha.13 → 0.0.1-alpha.14
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/dist/abilities/AbilityLoader.d.ts +136 -12
- package/dist/abilities/AbilityLoader.d.ts.map +1 -1
- package/dist/abilities/AbilityLoader.js +432 -64
- package/dist/abilities/AbilityLoader.js.map +1 -1
- package/dist/abilities/types.d.ts +119 -4
- package/dist/abilities/types.d.ts.map +1 -1
- package/dist/api/index.d.ts +1 -40
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +0 -57
- package/dist/api/index.js.map +1 -1
- package/dist/client/KadiClient.d.ts.map +1 -1
- package/dist/client/KadiClient.js +65 -4
- package/dist/client/KadiClient.js.map +1 -1
- package/dist/config/ConfigLoader.d.ts.map +1 -1
- package/dist/config/ConfigLoader.js +1 -0
- package/dist/config/ConfigLoader.js.map +1 -1
- package/dist/config/ConfigResolver.d.ts.map +1 -1
- package/dist/config/ConfigResolver.js +1 -0
- package/dist/config/ConfigResolver.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/transports/NativeTransport.d.ts.map +1 -1
- package/dist/transports/NativeTransport.js +22 -0
- package/dist/transports/NativeTransport.js.map +1 -1
- package/dist/transports/StdioTransport.d.ts +17 -2
- package/dist/transports/StdioTransport.d.ts.map +1 -1
- package/dist/transports/StdioTransport.js +45 -10
- package/dist/transports/StdioTransport.js.map +1 -1
- package/dist/types/config.d.ts +48 -33
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/utils/LockfileResolver.d.ts +169 -28
- package/dist/utils/LockfileResolver.d.ts.map +1 -1
- package/dist/utils/LockfileResolver.js +325 -71
- package/dist/utils/LockfileResolver.js.map +1 -1
- package/dist/utils/legacyHelpers.d.ts +82 -0
- package/dist/utils/legacyHelpers.d.ts.map +1 -0
- package/dist/utils/legacyHelpers.js +226 -0
- package/dist/utils/legacyHelpers.js.map +1 -0
- package/package.json +1 -1
|
@@ -49,34 +49,190 @@ export function findInGlobalCache(abilityName) {
|
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
/**
|
|
52
|
-
* Find
|
|
52
|
+
* Find sibling abilities directory
|
|
53
53
|
*
|
|
54
|
-
*
|
|
54
|
+
* TEMPORARY: This function detects if we're running inside an ability
|
|
55
|
+
* (e.g., kadi-secret) and finds its sibling abilities.
|
|
55
56
|
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
57
|
+
* When kadi-secret loads secret-ability, both are installed in the same
|
|
58
|
+
* parent abilities/ directory. This function walks up the directory tree
|
|
59
|
+
* to find the abilities/ folder we're running from.
|
|
60
|
+
*
|
|
61
|
+
* Example: If running from:
|
|
62
|
+
* /opt/homebrew/.../cli/abilities/kadi-secret/0.0.1/dist/index.js
|
|
63
|
+
* Returns:
|
|
64
|
+
* /opt/homebrew/.../cli/abilities/
|
|
65
|
+
*
|
|
66
|
+
* TODO: Replace with config.json approach (see CLI-REVAMP-PLAN.md)
|
|
67
|
+
* Future: abilities will reference ~/.kadi/config.json for discovery
|
|
68
|
+
*
|
|
69
|
+
* @returns Sibling abilities directory path, or null if not running from an ability
|
|
70
|
+
*/
|
|
71
|
+
export function findSiblingAbilitiesDir() {
|
|
72
|
+
try {
|
|
73
|
+
// Start from the current file location
|
|
74
|
+
// This works whether we're in src/ or dist/
|
|
75
|
+
const currentFile = new URL(import.meta.url).pathname;
|
|
76
|
+
const pathParts = currentFile.split(path.sep);
|
|
77
|
+
// Look for 'abilities' in the path
|
|
78
|
+
// Example path: [..., 'abilities', 'kadi-secret', '0.0.1', 'dist', 'utils', 'LockfileResolver.js']
|
|
79
|
+
const abilitiesIndex = pathParts.lastIndexOf('abilities');
|
|
80
|
+
if (abilitiesIndex === -1) {
|
|
81
|
+
// Not running from an ability context
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
// Reconstruct path up to 'abilities' directory
|
|
85
|
+
const abilitiesPath = pathParts.slice(0, abilitiesIndex + 1).join(path.sep);
|
|
86
|
+
// Verify it's actually a directory
|
|
87
|
+
if (fs.existsSync(abilitiesPath) && fs.statSync(abilitiesPath).isDirectory()) {
|
|
88
|
+
return abilitiesPath;
|
|
89
|
+
}
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
// Error determining sibling directory
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Find ability in a specific abilities directory
|
|
99
|
+
*
|
|
100
|
+
* Generic function to search for an ability in any abilities folder.
|
|
101
|
+
* Scans {baseDir}/{abilityName}/ for version directories and returns the highest version.
|
|
102
|
+
*
|
|
103
|
+
* @param abilityName - Name of the ability to find
|
|
104
|
+
* @param baseDir - Base abilities directory to search in
|
|
105
|
+
* @returns Object with path and version, or null if not found
|
|
106
|
+
*/
|
|
107
|
+
export function findInAbilitiesDir(abilityName, baseDir) {
|
|
108
|
+
const abilityBaseDir = path.join(baseDir, abilityName);
|
|
109
|
+
if (!fs.existsSync(abilityBaseDir)) {
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
try {
|
|
113
|
+
// Read all version directories
|
|
114
|
+
const entries = fs.readdirSync(abilityBaseDir, { withFileTypes: true });
|
|
115
|
+
const versions = entries
|
|
116
|
+
.filter(entry => entry.isDirectory())
|
|
117
|
+
.map(entry => entry.name)
|
|
118
|
+
.sort((a, b) =>
|
|
119
|
+
// Sort in descending order (highest version first)
|
|
120
|
+
b.localeCompare(a, undefined, { numeric: true, sensitivity: 'base' }));
|
|
121
|
+
if (versions.length === 0) {
|
|
122
|
+
return null;
|
|
123
|
+
}
|
|
124
|
+
const highestVersion = versions[0];
|
|
125
|
+
const abilityPath = path.join(abilityBaseDir, highestVersion);
|
|
126
|
+
return {
|
|
127
|
+
path: abilityPath,
|
|
128
|
+
version: highestVersion
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
// Error reading directory
|
|
133
|
+
return null;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Find the true project root by intelligently searching for agent.json
|
|
138
|
+
*
|
|
139
|
+
* This function distinguishes between:
|
|
140
|
+
* - **Ability manifests**: agent.json files inside abilities/name/version/
|
|
141
|
+
* - **Project roots**: agent.json files that represent actual projects (CLI or user projects)
|
|
142
|
+
*
|
|
143
|
+
* **Algorithm:**
|
|
144
|
+
* 1. Walk up directory tree from startPath
|
|
145
|
+
* 2. For each agent.json found, check if it's inside an abilities/ structure
|
|
146
|
+
* 3. If inside abilities/ → skip (it's an ability manifest, not a project root)
|
|
147
|
+
* 4. If NOT inside abilities/ → return (it's a true project root)
|
|
148
|
+
*
|
|
149
|
+
* **Example paths:**
|
|
150
|
+
* - `/opt/homebrew/.../cli/abilities/kadi-secret/0.0.1/agent.json` → SKIP (ability manifest)
|
|
151
|
+
* - `/opt/homebrew/.../cli/agent.json` → RETURN (CLI root)
|
|
152
|
+
* - `/Users/alice/my-project/agent.json` → RETURN (user project root)
|
|
153
|
+
*
|
|
154
|
+
* @param startPath - File or directory path to start searching from (defaults to cwd)
|
|
155
|
+
* @returns Absolute path to the true project root
|
|
58
156
|
* @throws {KadiError} If no project root found
|
|
59
157
|
*/
|
|
60
|
-
export function findProjectRoot(
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
158
|
+
export function findProjectRoot(startPath) {
|
|
159
|
+
// Step 1: Determine starting point
|
|
160
|
+
// If startPath is a file, start from its directory
|
|
161
|
+
// If startPath is a directory or undefined, use it directly (or cwd)
|
|
162
|
+
let current;
|
|
163
|
+
if (process.env.KADI_DEBUG) {
|
|
164
|
+
console.log(`[DEBUG] findProjectRoot called with: ${startPath || 'undefined'}`);
|
|
165
|
+
}
|
|
166
|
+
if (startPath) {
|
|
167
|
+
const resolvedPath = path.resolve(startPath);
|
|
168
|
+
try {
|
|
169
|
+
const stats = fs.statSync(resolvedPath);
|
|
170
|
+
current = stats.isFile() ? path.dirname(resolvedPath) : resolvedPath;
|
|
171
|
+
}
|
|
172
|
+
catch {
|
|
173
|
+
// Path doesn't exist, use as-is and let it fail naturally
|
|
174
|
+
current = resolvedPath;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
current = process.cwd();
|
|
179
|
+
}
|
|
180
|
+
if (process.env.KADI_DEBUG) {
|
|
181
|
+
console.log(`[DEBUG] Starting search from: ${current}`);
|
|
182
|
+
}
|
|
183
|
+
// Step 2: Get filesystem root for boundary checking
|
|
184
|
+
const filesystemRoot = path.parse(current).root;
|
|
185
|
+
// Step 3: Walk up directory tree looking for agent.json
|
|
186
|
+
while (current !== filesystemRoot) {
|
|
64
187
|
const agentJsonPath = path.join(current, 'agent.json');
|
|
188
|
+
if (process.env.KADI_DEBUG) {
|
|
189
|
+
console.log(`[DEBUG] Checking for agent.json at: ${current}`);
|
|
190
|
+
}
|
|
191
|
+
// Step 4: Check if agent.json exists at this level
|
|
65
192
|
if (fs.existsSync(agentJsonPath)) {
|
|
193
|
+
if (process.env.KADI_DEBUG) {
|
|
194
|
+
console.log(`[DEBUG] Found agent.json at: ${agentJsonPath}`);
|
|
195
|
+
}
|
|
196
|
+
// Step 5: Determine if this agent.json is an ability manifest or project root
|
|
197
|
+
// Split the current path into parts for analysis
|
|
198
|
+
const pathParts = current.split(path.sep);
|
|
199
|
+
// Look for 'abilities' in the path
|
|
200
|
+
const abilitiesIndex = pathParts.lastIndexOf('abilities');
|
|
201
|
+
// Step 6: Check if we're INSIDE an abilities/ directory structure
|
|
202
|
+
if (abilitiesIndex !== -1 && abilitiesIndex < pathParts.length - 1) {
|
|
203
|
+
// We found 'abilities' in the path AND there are directories after it
|
|
204
|
+
// This means we're inside: .../abilities/name/version/
|
|
205
|
+
// This agent.json is an ability manifest, not a project root - SKIP IT
|
|
206
|
+
// Continue walking up to find the parent project
|
|
207
|
+
if (process.env.KADI_DEBUG) {
|
|
208
|
+
console.log(`[DEBUG] Skipping ability manifest at: ${current} (inside abilities/)`);
|
|
209
|
+
}
|
|
210
|
+
current = path.dirname(current);
|
|
211
|
+
continue;
|
|
212
|
+
}
|
|
213
|
+
// Step 7: This is a true project root
|
|
214
|
+
// - No 'abilities' in path, OR
|
|
215
|
+
// - 'abilities' is the last part (we're AT the abilities dir, not inside it)
|
|
216
|
+
// Either way, this agent.json represents a project root
|
|
217
|
+
if (process.env.KADI_DEBUG) {
|
|
218
|
+
console.log(`[DEBUG] Accepting as project root: ${current}`);
|
|
219
|
+
}
|
|
66
220
|
return current;
|
|
67
221
|
}
|
|
68
|
-
//
|
|
222
|
+
// Step 8: No agent.json at this level, move up one directory
|
|
69
223
|
current = path.dirname(current);
|
|
70
224
|
}
|
|
225
|
+
// Step 9: Reached filesystem root without finding a project
|
|
71
226
|
throw new KadiError('No KADI project found - could not locate agent.json', ErrorCode.INVALID_CONFIG, 404, {
|
|
72
|
-
searchedFrom:
|
|
227
|
+
searchedFrom: startPath || process.cwd(),
|
|
73
228
|
reason: 'No agent.json found in current directory or parent directories',
|
|
74
229
|
suggestion: 'Make sure you are running from within a KADI project',
|
|
75
230
|
alternatives: [
|
|
76
231
|
'Run from a directory containing agent.json',
|
|
77
232
|
'Initialize a new KADI project: kadi init',
|
|
78
233
|
'Provide explicit path when loading ability'
|
|
79
|
-
]
|
|
234
|
+
],
|
|
235
|
+
hint: 'KADI projects must have an agent.json file in their root directory'
|
|
80
236
|
});
|
|
81
237
|
}
|
|
82
238
|
/**
|
|
@@ -229,89 +385,187 @@ export function readAbilityManifest(abilityPath) {
|
|
|
229
385
|
}
|
|
230
386
|
}
|
|
231
387
|
/**
|
|
232
|
-
*
|
|
388
|
+
* Resolve ability configuration from project root
|
|
389
|
+
*
|
|
390
|
+
* **New Explicit Strategy:**
|
|
391
|
+
* Uses explicit project root instead of inferring from stack traces:
|
|
392
|
+
* 1. Use provided projectRoot directly (no inference needed)
|
|
393
|
+
* 2. Look in `{projectRoot}/abilities/{abilityName}/`
|
|
394
|
+
* 3. If not found → clear error with exact path searched
|
|
395
|
+
*
|
|
396
|
+
* **Why This Works:**
|
|
397
|
+
* - CLI plugins: Get projectRoot from `ctx.core.getKadiInstallPath()`
|
|
398
|
+
* - projectRoot: `/opt/homebrew/.../cli/`
|
|
399
|
+
* - Searches: `/opt/homebrew/.../cli/abilities/secret-ability/`
|
|
400
|
+
*
|
|
401
|
+
* - User projects: Get projectRoot from `process.cwd()` (default)
|
|
402
|
+
* - projectRoot: `/Users/alice/my-project/`
|
|
403
|
+
* - Searches: `/Users/alice/my-project/abilities/my-ability/`
|
|
233
404
|
*
|
|
234
|
-
*
|
|
235
|
-
*
|
|
405
|
+
* **Resolution Strategy:**
|
|
406
|
+
* 1. Check agent-lock.json (if exists) for exact version
|
|
407
|
+
* 2. Fall back to scanning abilities/ folder if no lockfile
|
|
408
|
+
* 3. Return highest version if multiple exist
|
|
236
409
|
*
|
|
237
|
-
* @param abilityName - Name of ability
|
|
238
|
-
* @param projectRoot - Project root directory (
|
|
239
|
-
* @returns Resolved ability configuration
|
|
410
|
+
* @param abilityName - Name of ability to resolve
|
|
411
|
+
* @param projectRoot - Project root directory (from detectProjectRoot or explicit config)
|
|
412
|
+
* @returns Resolved ability configuration with path, version, entry point, and manifest
|
|
413
|
+
*
|
|
414
|
+
* @throws {KadiError} If ability not found
|
|
240
415
|
*
|
|
241
416
|
* @example
|
|
242
417
|
* ```typescript
|
|
243
|
-
*
|
|
244
|
-
*
|
|
245
|
-
*
|
|
246
|
-
* //
|
|
247
|
-
*
|
|
248
|
-
* //
|
|
249
|
-
*
|
|
250
|
-
*
|
|
418
|
+
* // Called from CLI plugin (with explicit project root):
|
|
419
|
+
* const projectRoot = '/opt/homebrew/.../cli';
|
|
420
|
+
* const config = resolveAbilityConfig('secret-ability', projectRoot);
|
|
421
|
+
* // Searches: /opt/homebrew/.../cli/abilities/secret-ability/
|
|
422
|
+
*
|
|
423
|
+
* // Called from user project (with default project root):
|
|
424
|
+
* const projectRoot = process.cwd();
|
|
425
|
+
* const config = resolveAbilityConfig('my-ability', projectRoot);
|
|
426
|
+
* // Searches: {cwd}/abilities/my-ability/
|
|
251
427
|
* ```
|
|
252
428
|
*/
|
|
253
429
|
export function resolveAbilityConfig(abilityName, projectRoot) {
|
|
254
|
-
//
|
|
430
|
+
// ========================================================================
|
|
431
|
+
// STEP 1: Use Explicit Project Root
|
|
432
|
+
// ========================================================================
|
|
433
|
+
// The projectRoot is provided explicitly by AbilityLoader.detectProjectRoot()
|
|
434
|
+
// - CLI plugins: projectRoot comes from ctx.core.getKadiInstallPath()
|
|
435
|
+
// - User projects: projectRoot comes from process.cwd()
|
|
436
|
+
//
|
|
437
|
+
// This is explicit and reliable - no stack parsing needed!
|
|
438
|
+
if (process.env.KADI_DEBUG) {
|
|
439
|
+
console.log(`[DEBUG] resolveAbilityConfig called:`, {
|
|
440
|
+
abilityName,
|
|
441
|
+
projectRoot
|
|
442
|
+
});
|
|
443
|
+
}
|
|
444
|
+
// ========================================================================
|
|
445
|
+
// STEP 2: Try Agent Lockfile (if exists)
|
|
446
|
+
// ========================================================================
|
|
447
|
+
// Check if agent-lock.json exists and has this ability
|
|
448
|
+
// If found, use the exact version and path from lockfile
|
|
255
449
|
try {
|
|
256
|
-
const
|
|
257
|
-
|
|
258
|
-
|
|
450
|
+
const lockfile = readLockfile(projectRoot);
|
|
451
|
+
// Look for ability in lockfile using name@version key format
|
|
452
|
+
// Try both with and without version suffix for compatibility
|
|
453
|
+
let lockfileEntry;
|
|
454
|
+
// First, try to find exact match with any version
|
|
455
|
+
for (const [key, entry] of Object.entries(lockfile.abilities)) {
|
|
456
|
+
// Key format: "name@version" or just "name"
|
|
457
|
+
const entryName = key.includes('@') ? key.substring(0, key.lastIndexOf('@')) : key;
|
|
458
|
+
if (entryName === abilityName) {
|
|
459
|
+
lockfileEntry = entry;
|
|
460
|
+
break;
|
|
461
|
+
}
|
|
462
|
+
}
|
|
259
463
|
if (lockfileEntry) {
|
|
260
|
-
//
|
|
261
|
-
const
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
const
|
|
464
|
+
// Found in lockfile - resolve the path
|
|
465
|
+
const resolvedPath = path.isAbsolute(lockfileEntry.resolved)
|
|
466
|
+
? lockfileEntry.resolved
|
|
467
|
+
: path.resolve(projectRoot, lockfileEntry.resolved);
|
|
468
|
+
// Verify the path exists on disk
|
|
469
|
+
if (fs.existsSync(resolvedPath)) {
|
|
470
|
+
// Read manifest to get entry point
|
|
471
|
+
const manifest = readAbilityManifest(resolvedPath);
|
|
472
|
+
const entryPoint = manifest.entry || manifest.entrypoint || 'index.js';
|
|
473
|
+
// Success! Return the resolved configuration
|
|
268
474
|
return {
|
|
269
|
-
path:
|
|
270
|
-
version:
|
|
475
|
+
path: resolvedPath,
|
|
476
|
+
version: lockfileEntry.version,
|
|
271
477
|
entry: entryPoint,
|
|
272
478
|
manifest
|
|
273
479
|
};
|
|
274
480
|
}
|
|
275
|
-
//
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
481
|
+
// Path in lockfile doesn't exist - ability was deleted
|
|
482
|
+
throw new KadiError(`Ability '${abilityName}@${lockfileEntry.version}' is in lockfile but not found at: ${resolvedPath}`, ErrorCode.ABILITY_NOT_FOUND, 404, {
|
|
483
|
+
abilityName,
|
|
484
|
+
version: lockfileEntry.version,
|
|
485
|
+
expectedPath: resolvedPath,
|
|
486
|
+
projectRoot,
|
|
487
|
+
reason: 'Directory listed in lockfile does not exist',
|
|
488
|
+
suggestion: `Run: kadi install ${abilityName}`,
|
|
489
|
+
alternatives: [
|
|
490
|
+
`Reinstall ability: kadi install ${abilityName}`,
|
|
491
|
+
'Run `kadi install` to restore all abilities',
|
|
492
|
+
'Delete agent-lock.json and reinstall'
|
|
493
|
+
]
|
|
494
|
+
});
|
|
284
495
|
}
|
|
285
496
|
}
|
|
286
497
|
catch (error) {
|
|
287
|
-
//
|
|
288
|
-
// This is
|
|
498
|
+
// Lockfile doesn't exist or couldn't be read
|
|
499
|
+
// This is okay - we'll fall through to scanning the abilities folder
|
|
500
|
+
// Ignore the error and continue
|
|
501
|
+
}
|
|
502
|
+
// ========================================================================
|
|
503
|
+
// STEP 3: Scan Abilities Folder (no lockfile or ability not in lockfile)
|
|
504
|
+
// ========================================================================
|
|
505
|
+
// Look for ability in the project's abilities folder
|
|
506
|
+
// Scan for all versions and pick the highest one
|
|
507
|
+
const abilitiesDir = path.join(projectRoot, 'abilities');
|
|
508
|
+
const abilityBaseDir = path.join(abilitiesDir, abilityName);
|
|
509
|
+
// Check if ability directory exists
|
|
510
|
+
if (!fs.existsSync(abilityBaseDir)) {
|
|
511
|
+
// Ability not found in this project
|
|
512
|
+
throw new KadiError(`Ability '${abilityName}' not found - searched at: ${abilityBaseDir}`, ErrorCode.ABILITY_NOT_FOUND, 404, {
|
|
513
|
+
abilityName,
|
|
514
|
+
projectRoot,
|
|
515
|
+
searchedPath: abilityBaseDir,
|
|
516
|
+
reason: `No directory found at ${abilityBaseDir}`,
|
|
517
|
+
suggestion: `Install the ability: kadi install ${abilityName}`,
|
|
518
|
+
alternatives: [
|
|
519
|
+
`Run: kadi install ${abilityName}`,
|
|
520
|
+
'Check if ability name is correct',
|
|
521
|
+
'Verify abilities/ folder exists in project root'
|
|
522
|
+
],
|
|
523
|
+
hint: `Project root is: ${projectRoot}`
|
|
524
|
+
});
|
|
289
525
|
}
|
|
290
|
-
//
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
526
|
+
// Scan for version directories
|
|
527
|
+
try {
|
|
528
|
+
const entries = fs.readdirSync(abilityBaseDir, { withFileTypes: true });
|
|
529
|
+
const versions = entries
|
|
530
|
+
.filter(entry => entry.isDirectory())
|
|
531
|
+
.map(entry => entry.name)
|
|
532
|
+
.sort((a, b) =>
|
|
533
|
+
// Sort in descending order (highest version first)
|
|
534
|
+
b.localeCompare(a, undefined, { numeric: true, sensitivity: 'base' }));
|
|
535
|
+
if (versions.length === 0) {
|
|
536
|
+
// Directory exists but no versions inside
|
|
537
|
+
throw new KadiError(`Ability '${abilityName}' directory exists but contains no versions`, ErrorCode.ABILITY_NOT_FOUND, 404, {
|
|
538
|
+
abilityName,
|
|
539
|
+
abilityDirectory: abilityBaseDir,
|
|
540
|
+
reason: 'No version subdirectories found',
|
|
541
|
+
suggestion: `Reinstall the ability: kadi install ${abilityName}`,
|
|
542
|
+
hint: 'Expected format: abilities/name/version/'
|
|
543
|
+
});
|
|
544
|
+
}
|
|
545
|
+
// Use the highest version
|
|
546
|
+
const highestVersion = versions[0];
|
|
547
|
+
const abilityPath = path.join(abilityBaseDir, highestVersion);
|
|
548
|
+
// Read manifest
|
|
549
|
+
const manifest = readAbilityManifest(abilityPath);
|
|
550
|
+
const entryPoint = manifest.entry || manifest.entrypoint || 'index.js';
|
|
551
|
+
// Success! Return the resolved configuration
|
|
297
552
|
return {
|
|
298
|
-
path:
|
|
299
|
-
version:
|
|
553
|
+
path: abilityPath,
|
|
554
|
+
version: highestVersion,
|
|
300
555
|
entry: entryPoint,
|
|
301
556
|
manifest
|
|
302
557
|
};
|
|
303
558
|
}
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
});
|
|
559
|
+
catch (error) {
|
|
560
|
+
// Error reading abilities directory
|
|
561
|
+
if (error instanceof KadiError) {
|
|
562
|
+
throw error;
|
|
563
|
+
}
|
|
564
|
+
throw new KadiError(`Error scanning abilities directory for '${abilityName}'`, ErrorCode.INTERNAL_ERROR, 500, {
|
|
565
|
+
abilityName,
|
|
566
|
+
abilityDirectory: abilityBaseDir,
|
|
567
|
+
error: error instanceof Error ? error.message : String(error)
|
|
568
|
+
});
|
|
569
|
+
}
|
|
316
570
|
}
|
|
317
571
|
//# sourceMappingURL=LockfileResolver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LockfileResolver.js","sourceRoot":"","sources":["../../src/utils/LockfileResolver.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LockfileResolver.js","sourceRoot":"","sources":["../../src/utils/LockfileResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Legacy Helper Functions from kadi-core alpha.2
|
|
3
|
+
*
|
|
4
|
+
* TODO: These functions are temporary and will be replaced by the config.json
|
|
5
|
+
* approach described in CLI-REVAMP-PLAN.md
|
|
6
|
+
*
|
|
7
|
+
* The new architecture will use:
|
|
8
|
+
* - ~/.kadi/config.json for configuration
|
|
9
|
+
* - Environment variables: KADI_HOME, KADI_CONFIG, KADI_BROKER_URL
|
|
10
|
+
* - Simple discovery functions implemented in CLI itself
|
|
11
|
+
*
|
|
12
|
+
* These functions are copied here ONLY to unblock development and testing.
|
|
13
|
+
* DO NOT rely on these for new features - they will be removed.
|
|
14
|
+
*
|
|
15
|
+
* @deprecated Will be removed once config.json approach is implemented
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Get KADI CLI installation path
|
|
19
|
+
*
|
|
20
|
+
* TODO: Replace with KADI_HOME environment variable or ~/.kadi/config.json
|
|
21
|
+
*
|
|
22
|
+
* @deprecated Use config.json approach instead
|
|
23
|
+
* @returns The KADI CLI installation directory
|
|
24
|
+
*/
|
|
25
|
+
export declare function getKadiInstallPath(): string;
|
|
26
|
+
/**
|
|
27
|
+
* Get broker URL by name
|
|
28
|
+
*
|
|
29
|
+
* TODO: Replace with ~/.kadi/config.json brokers section
|
|
30
|
+
*
|
|
31
|
+
* @deprecated Use config.json approach instead
|
|
32
|
+
* @param brokerName - Name of the broker
|
|
33
|
+
* @returns Broker URL or null if not found
|
|
34
|
+
*/
|
|
35
|
+
export declare function getBrokerUrl(brokerName: string): string | null;
|
|
36
|
+
/**
|
|
37
|
+
* Get all broker names
|
|
38
|
+
*
|
|
39
|
+
* TODO: Replace with ~/.kadi/config.json brokers section
|
|
40
|
+
*
|
|
41
|
+
* @deprecated Use config.json approach instead
|
|
42
|
+
* @returns Array of broker names
|
|
43
|
+
*/
|
|
44
|
+
export declare function getBrokerNames(): string[];
|
|
45
|
+
/**
|
|
46
|
+
* Get default broker name
|
|
47
|
+
*
|
|
48
|
+
* TODO: Replace with ~/.kadi/config.json default broker setting
|
|
49
|
+
*
|
|
50
|
+
* @deprecated Use config.json approach instead
|
|
51
|
+
* @returns Default broker name or null
|
|
52
|
+
*/
|
|
53
|
+
export declare function getDefaultBrokerName(): string | null;
|
|
54
|
+
/**
|
|
55
|
+
* Set active broker
|
|
56
|
+
*
|
|
57
|
+
* TODO: Replace with ~/.kadi/config.json active broker setting
|
|
58
|
+
*
|
|
59
|
+
* @deprecated Use config.json approach instead
|
|
60
|
+
* @param brokerName - Name of the broker to set as active
|
|
61
|
+
* @returns True if broker exists and was set, false otherwise
|
|
62
|
+
*/
|
|
63
|
+
export declare function setActiveBroker(brokerName: string): boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Get active broker name
|
|
66
|
+
*
|
|
67
|
+
* TODO: Replace with ~/.kadi/config.json active broker setting
|
|
68
|
+
*
|
|
69
|
+
* @deprecated Use config.json approach instead
|
|
70
|
+
* @returns Active broker name or null
|
|
71
|
+
*/
|
|
72
|
+
export declare function getActiveBrokerName(): string | null;
|
|
73
|
+
/**
|
|
74
|
+
* Get active broker URL
|
|
75
|
+
*
|
|
76
|
+
* TODO: Replace with ~/.kadi/config.json active broker setting
|
|
77
|
+
*
|
|
78
|
+
* @deprecated Use config.json approach instead
|
|
79
|
+
* @returns Active broker URL or null
|
|
80
|
+
*/
|
|
81
|
+
export declare function getActiveBrokerUrl(): string | null;
|
|
82
|
+
//# sourceMappingURL=legacyHelpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacyHelpers.d.ts","sourceRoot":"","sources":["../../src/utils/legacyHelpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AA8IH;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAK3C;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG9D;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,IAAI,MAAM,EAAE,CAGzC;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,GAAG,IAAI,CAGpD;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAO3D;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,IAAI,CAGnD;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,GAAG,IAAI,CAGlD"}
|