@uluops/core 0.5.0

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 (167) hide show
  1. package/README.md +543 -0
  2. package/definitions/starter/code-validator.agent.yaml +134 -0
  3. package/definitions/starter/docs-validator.agent.yaml +142 -0
  4. package/definitions/starter/public-interface-validator.agent.yaml +138 -0
  5. package/definitions/starter/security-analyst.agent.yaml +144 -0
  6. package/definitions/starter/test-architect.agent.yaml +137 -0
  7. package/dist/ai/AIProvider.d.ts +198 -0
  8. package/dist/ai/AIProvider.d.ts.map +1 -0
  9. package/dist/ai/AIProvider.js +557 -0
  10. package/dist/ai/AIProvider.js.map +1 -0
  11. package/dist/ai/ModelCatalog.d.ts +78 -0
  12. package/dist/ai/ModelCatalog.d.ts.map +1 -0
  13. package/dist/ai/ModelCatalog.js +193 -0
  14. package/dist/ai/ModelCatalog.js.map +1 -0
  15. package/dist/ai/ShellExecutor.d.ts +42 -0
  16. package/dist/ai/ShellExecutor.d.ts.map +1 -0
  17. package/dist/ai/ShellExecutor.js +62 -0
  18. package/dist/ai/ShellExecutor.js.map +1 -0
  19. package/dist/ai/TokenBudgetTracker.d.ts +49 -0
  20. package/dist/ai/TokenBudgetTracker.d.ts.map +1 -0
  21. package/dist/ai/TokenBudgetTracker.js +61 -0
  22. package/dist/ai/TokenBudgetTracker.js.map +1 -0
  23. package/dist/ai/ToolAdapter.d.ts +25 -0
  24. package/dist/ai/ToolAdapter.d.ts.map +1 -0
  25. package/dist/ai/ToolAdapter.js +135 -0
  26. package/dist/ai/ToolAdapter.js.map +1 -0
  27. package/dist/ai/index.d.ts +6 -0
  28. package/dist/ai/index.d.ts.map +1 -0
  29. package/dist/ai/index.js +4 -0
  30. package/dist/ai/index.js.map +1 -0
  31. package/dist/client/UluOpsClient.d.ts +111 -0
  32. package/dist/client/UluOpsClient.d.ts.map +1 -0
  33. package/dist/client/UluOpsClient.js +329 -0
  34. package/dist/client/UluOpsClient.js.map +1 -0
  35. package/dist/constants.d.ts +6 -0
  36. package/dist/constants.d.ts.map +1 -0
  37. package/dist/constants.js +9 -0
  38. package/dist/constants.js.map +1 -0
  39. package/dist/errors/UluOpsError.d.ts +10 -0
  40. package/dist/errors/UluOpsError.d.ts.map +1 -0
  41. package/dist/errors/UluOpsError.js +13 -0
  42. package/dist/errors/UluOpsError.js.map +1 -0
  43. package/dist/errors/index.d.ts +64 -0
  44. package/dist/errors/index.d.ts.map +1 -0
  45. package/dist/errors/index.js +93 -0
  46. package/dist/errors/index.js.map +1 -0
  47. package/dist/executor/AgentExecutor.d.ts +57 -0
  48. package/dist/executor/AgentExecutor.d.ts.map +1 -0
  49. package/dist/executor/AgentExecutor.js +331 -0
  50. package/dist/executor/AgentExecutor.js.map +1 -0
  51. package/dist/executor/CommandExecutor.d.ts +33 -0
  52. package/dist/executor/CommandExecutor.d.ts.map +1 -0
  53. package/dist/executor/CommandExecutor.js +183 -0
  54. package/dist/executor/CommandExecutor.js.map +1 -0
  55. package/dist/executor/PipelineExecutor.d.ts +55 -0
  56. package/dist/executor/PipelineExecutor.d.ts.map +1 -0
  57. package/dist/executor/PipelineExecutor.js +273 -0
  58. package/dist/executor/PipelineExecutor.js.map +1 -0
  59. package/dist/executor/ToolHandler.d.ts +47 -0
  60. package/dist/executor/ToolHandler.d.ts.map +1 -0
  61. package/dist/executor/ToolHandler.js +615 -0
  62. package/dist/executor/ToolHandler.js.map +1 -0
  63. package/dist/executor/WorkflowExecutor.d.ts +55 -0
  64. package/dist/executor/WorkflowExecutor.d.ts.map +1 -0
  65. package/dist/executor/WorkflowExecutor.js +368 -0
  66. package/dist/executor/WorkflowExecutor.js.map +1 -0
  67. package/dist/executor/preflight.d.ts +8 -0
  68. package/dist/executor/preflight.d.ts.map +1 -0
  69. package/dist/executor/preflight.js +102 -0
  70. package/dist/executor/preflight.js.map +1 -0
  71. package/dist/executor/symbols.d.ts +13 -0
  72. package/dist/executor/symbols.d.ts.map +1 -0
  73. package/dist/executor/symbols.js +102 -0
  74. package/dist/executor/symbols.js.map +1 -0
  75. package/dist/index.d.ts +32 -0
  76. package/dist/index.d.ts.map +1 -0
  77. package/dist/index.js +25 -0
  78. package/dist/index.js.map +1 -0
  79. package/dist/parser/OutputExtractor.d.ts +52 -0
  80. package/dist/parser/OutputExtractor.d.ts.map +1 -0
  81. package/dist/parser/OutputExtractor.js +818 -0
  82. package/dist/parser/OutputExtractor.js.map +1 -0
  83. package/dist/parser/outputSchemas.d.ts +223 -0
  84. package/dist/parser/outputSchemas.d.ts.map +1 -0
  85. package/dist/parser/outputSchemas.js +73 -0
  86. package/dist/parser/outputSchemas.js.map +1 -0
  87. package/dist/registry/RegistryClient.d.ts +75 -0
  88. package/dist/registry/RegistryClient.d.ts.map +1 -0
  89. package/dist/registry/RegistryClient.js +419 -0
  90. package/dist/registry/RegistryClient.js.map +1 -0
  91. package/dist/registry/index.d.ts +2 -0
  92. package/dist/registry/index.d.ts.map +1 -0
  93. package/dist/registry/index.js +2 -0
  94. package/dist/registry/index.js.map +1 -0
  95. package/dist/types/agent.d.ts +406 -0
  96. package/dist/types/agent.d.ts.map +1 -0
  97. package/dist/types/agent.js +2 -0
  98. package/dist/types/agent.js.map +1 -0
  99. package/dist/types/ai.d.ts +14 -0
  100. package/dist/types/ai.d.ts.map +1 -0
  101. package/dist/types/ai.js +2 -0
  102. package/dist/types/ai.js.map +1 -0
  103. package/dist/types/command.d.ts +153 -0
  104. package/dist/types/command.d.ts.map +1 -0
  105. package/dist/types/command.js +2 -0
  106. package/dist/types/command.js.map +1 -0
  107. package/dist/types/config.d.ts +136 -0
  108. package/dist/types/config.d.ts.map +1 -0
  109. package/dist/types/config.js +2 -0
  110. package/dist/types/config.js.map +1 -0
  111. package/dist/types/execution.d.ts +172 -0
  112. package/dist/types/execution.d.ts.map +1 -0
  113. package/dist/types/execution.js +2 -0
  114. package/dist/types/execution.js.map +1 -0
  115. package/dist/types/index.d.ts +12 -0
  116. package/dist/types/index.d.ts.map +1 -0
  117. package/dist/types/index.js +2 -0
  118. package/dist/types/index.js.map +1 -0
  119. package/dist/types/parser.d.ts +75 -0
  120. package/dist/types/parser.d.ts.map +1 -0
  121. package/dist/types/parser.js +2 -0
  122. package/dist/types/parser.js.map +1 -0
  123. package/dist/types/pipeline.d.ts +155 -0
  124. package/dist/types/pipeline.d.ts.map +1 -0
  125. package/dist/types/pipeline.js +2 -0
  126. package/dist/types/pipeline.js.map +1 -0
  127. package/dist/types/registry.d.ts +232 -0
  128. package/dist/types/registry.d.ts.map +1 -0
  129. package/dist/types/registry.js +2 -0
  130. package/dist/types/registry.js.map +1 -0
  131. package/dist/types/tools.d.ts +29 -0
  132. package/dist/types/tools.d.ts.map +1 -0
  133. package/dist/types/tools.js +2 -0
  134. package/dist/types/tools.js.map +1 -0
  135. package/dist/types/validation.d.ts +237 -0
  136. package/dist/types/validation.d.ts.map +1 -0
  137. package/dist/types/validation.js +2 -0
  138. package/dist/types/validation.js.map +1 -0
  139. package/dist/types/workflow.d.ts +131 -0
  140. package/dist/types/workflow.d.ts.map +1 -0
  141. package/dist/types/workflow.js +2 -0
  142. package/dist/types/workflow.js.map +1 -0
  143. package/dist/utils/formatError.d.ts +6 -0
  144. package/dist/utils/formatError.d.ts.map +1 -0
  145. package/dist/utils/formatError.js +10 -0
  146. package/dist/utils/formatError.js.map +1 -0
  147. package/dist/utils/parseRef.d.ts +11 -0
  148. package/dist/utils/parseRef.d.ts.map +1 -0
  149. package/dist/utils/parseRef.js +16 -0
  150. package/dist/utils/parseRef.js.map +1 -0
  151. package/dist/utils/sumTokenMetrics.d.ts +9 -0
  152. package/dist/utils/sumTokenMetrics.d.ts.map +1 -0
  153. package/dist/utils/sumTokenMetrics.js +20 -0
  154. package/dist/utils/sumTokenMetrics.js.map +1 -0
  155. package/dist/utils/topoSort.d.ts +24 -0
  156. package/dist/utils/topoSort.d.ts.map +1 -0
  157. package/dist/utils/topoSort.js +60 -0
  158. package/dist/utils/topoSort.js.map +1 -0
  159. package/dist/validation/ValidationClient.d.ts +51 -0
  160. package/dist/validation/ValidationClient.d.ts.map +1 -0
  161. package/dist/validation/ValidationClient.js +179 -0
  162. package/dist/validation/ValidationClient.js.map +1 -0
  163. package/dist/validation/index.d.ts +2 -0
  164. package/dist/validation/index.d.ts.map +1 -0
  165. package/dist/validation/index.js +2 -0
  166. package/dist/validation/index.js.map +1 -0
  167. package/package.json +76 -0
@@ -0,0 +1,419 @@
1
+ import * as fs from 'node:fs/promises';
2
+ import * as path from 'node:path';
3
+ import * as yaml from 'yaml';
4
+ import { RegistryClient as RegistrySdk } from '@uluops/registry-sdk';
5
+ import { ConfigurationError } from '../errors/index.js';
6
+ import { formatErrorMessage } from '../utils/formatError.js';
7
+ /**
8
+ * Definition resolver with local development fallback.
9
+ *
10
+ * Delegates remote API calls to @uluops/registry-sdk (which handles retry,
11
+ * rate limiting, error mapping, auth). Local file resolution is handled
12
+ * in this class directly. Hash computation and verification are the
13
+ * responsibility of the registry API server.
14
+ */
15
+ export class RegistryClient {
16
+ config;
17
+ cache = new Map();
18
+ sdk;
19
+ logger;
20
+ /** Expose underlying registry SDK for direct access (e.g., model catalog) */
21
+ get registrySdk() {
22
+ return this.sdk;
23
+ }
24
+ constructor(config, logger) {
25
+ this.config = config;
26
+ this.logger = logger;
27
+ this.sdk = new RegistrySdk({
28
+ apiKey: config.apiKey,
29
+ baseUrl: config.registryUrl,
30
+ timeout: config.timeout,
31
+ });
32
+ }
33
+ /**
34
+ * Resolve a definition by name and optional type.
35
+ * Priority: cache → local files → remote API
36
+ */
37
+ async resolve(name, version, type) {
38
+ const cacheKey = `${type ?? 'any'}:${name}@${version ?? 'latest'}`;
39
+ const cached = this.cache.get(cacheKey);
40
+ if (cached) {
41
+ this.logger.debug(`Cache hit: ${cacheKey}`);
42
+ return cached;
43
+ }
44
+ // Try local resolution if configured
45
+ if (this.config.localDefinitions) {
46
+ const local = await this.resolveLocal(name, type);
47
+ if (local) {
48
+ this.cache.set(cacheKey, local);
49
+ return local;
50
+ }
51
+ }
52
+ // Fall back to remote
53
+ const remote = await this.resolveRemote(name, version, type);
54
+ this.cache.set(cacheKey, remote);
55
+ return remote;
56
+ }
57
+ /**
58
+ * List available definitions (local + remote, preferring local)
59
+ */
60
+ async list(filter) {
61
+ const results = [];
62
+ if (this.config.localDefinitions) {
63
+ const local = await this.listLocal(filter);
64
+ results.push(...local);
65
+ }
66
+ try {
67
+ const remote = await this.listRemote(filter);
68
+ // Merge, preferring local versions
69
+ const seen = new Set(results.map(r => r.name));
70
+ for (const r of remote) {
71
+ if (!seen.has(r.name)) {
72
+ results.push(r);
73
+ }
74
+ }
75
+ }
76
+ catch (error) {
77
+ this.logger.warn(`Registry unavailable for listing: ${formatErrorMessage(error)}`);
78
+ // Return local results only (if any)
79
+ if (results.length === 0) {
80
+ throw new ConfigurationError('No definitions found. Registry is unreachable and no local definitions are configured. ' +
81
+ 'Set localDefinitions in UluOpsClient config or ULUOPS_LOCAL_DEFINITIONS env var.');
82
+ }
83
+ }
84
+ return results;
85
+ }
86
+ /**
87
+ * Clear the definition cache
88
+ */
89
+ clearCache() {
90
+ this.cache.clear();
91
+ }
92
+ // ─────────────────────────────────────────────────────────────────────────────
93
+ // Private: Local Resolution
94
+ // ─────────────────────────────────────────────────────────────────────────────
95
+ async resolveLocal(name, type) {
96
+ const baseDir = this.config.localDefinitions;
97
+ const allCandidates = [
98
+ { path: path.join(baseDir, `${name}.agent.yaml`), type: 'agent' },
99
+ { path: path.join(baseDir, `${name}.command.yaml`), type: 'command' },
100
+ { path: path.join(baseDir, `${name}.workflow.yaml`), type: 'workflow' },
101
+ { path: path.join(baseDir, `${name}.pipeline.yaml`), type: 'pipeline' },
102
+ { path: path.join(baseDir, 'agents', `${name}.agent.yaml`), type: 'agent' },
103
+ { path: path.join(baseDir, 'commands', `${name}.command.yaml`), type: 'command' },
104
+ { path: path.join(baseDir, 'workflows', `${name}.workflow.yaml`), type: 'workflow' },
105
+ { path: path.join(baseDir, 'pipelines', `${name}.pipeline.yaml`), type: 'pipeline' },
106
+ ];
107
+ const candidates = type
108
+ ? allCandidates.filter(c => c.type === type)
109
+ : allCandidates;
110
+ for (const candidate of candidates) {
111
+ let yamlContent;
112
+ try {
113
+ yamlContent = await fs.readFile(candidate.path, 'utf-8');
114
+ }
115
+ catch (error) {
116
+ const code = error.code;
117
+ if (code === 'ENOENT')
118
+ continue; // File doesn't exist, try next candidate
119
+ if (code === 'ENOTDIR')
120
+ continue; // Path component isn't a directory
121
+ throw new ConfigurationError(`Cannot read ${candidate.path}: ${formatErrorMessage(error)}`);
122
+ }
123
+ let definition;
124
+ try {
125
+ definition = yaml.parse(yamlContent);
126
+ }
127
+ catch (parseError) {
128
+ throw new ConfigurationError(`Failed to parse YAML at ${candidate.path}: ${parseError instanceof Error ? parseError.message : String(parseError)}`);
129
+ }
130
+ this.logger.debug(`Resolved locally: ${name} @ ${candidate.path}`);
131
+ return {
132
+ type: candidate.type,
133
+ name,
134
+ version: this.extractVersion(definition, candidate.type),
135
+ hash: '',
136
+ yaml: yamlContent,
137
+ definition: this.castDefinition(definition),
138
+ runtime: await this.renderLocally(yamlContent, definition, candidate.type),
139
+ domain: this.extractDomain(definition, candidate.type),
140
+ agentType: this.extractAgentType(definition, candidate.type),
141
+ };
142
+ }
143
+ return null;
144
+ }
145
+ // ─────────────────────────────────────────────────────────────────────────────
146
+ // Private: Remote Resolution
147
+ // ─────────────────────────────────────────────────────────────────────────────
148
+ async resolveRemote(name, version, type) {
149
+ let resolvedType = type;
150
+ // If type not provided, search registry to find it
151
+ if (!resolvedType) {
152
+ const searchResult = await this.sdk.definitions.list({
153
+ search: name,
154
+ limit: 10,
155
+ status: 'published',
156
+ });
157
+ const matches = searchResult.definitions.filter(d => d.name === name);
158
+ if (matches.length === 0) {
159
+ throw new ConfigurationError(`Definition "${name}" not found in registry. ` +
160
+ `Verify the name is correct and the definition is published.`);
161
+ }
162
+ if (matches.length > 1) {
163
+ const types = matches.map(d => d.type).join(', ');
164
+ throw new ConfigurationError(`Multiple definitions named "${name}" found (${types}). ` +
165
+ `Specify type explicitly: resolve("${name}", version, "command")`);
166
+ }
167
+ const match = matches[0];
168
+ if (!match)
169
+ throw new ConfigurationError(`Definition "${name}" not found in registry`);
170
+ resolvedType = match.type;
171
+ }
172
+ // Fetch definition with YAML and runtime
173
+ const def = await this.sdk.definitions.get(resolvedType, name, version, {
174
+ includeYaml: true,
175
+ includeRuntime: true,
176
+ });
177
+ // Get rendered markdown
178
+ const rendered = await this.sdk.render.get(resolvedType, name, def.version);
179
+ return {
180
+ type: resolvedType,
181
+ name: def.name,
182
+ version: def.version,
183
+ hash: def.hash,
184
+ yaml: def.yaml ?? '',
185
+ definition: def.yaml
186
+ ? this.castDefinition(this.safeParseYaml(def.yaml, name))
187
+ : this.emptyDefinition(),
188
+ runtime: { prompt: rendered.markdown },
189
+ domain: (def.domain ?? 'general'),
190
+ agentType: (def.agentType ?? undefined),
191
+ };
192
+ }
193
+ // ─────────────────────────────────────────────────────────────────────────────
194
+ // Private: YAML Parsing
195
+ // ─────────────────────────────────────────────────────────────────────────────
196
+ safeParseYaml(yamlContent, context) {
197
+ try {
198
+ return yaml.parse(yamlContent);
199
+ }
200
+ catch (error) {
201
+ throw new ConfigurationError(`Failed to parse YAML for "${context}": ${formatErrorMessage(error)}`);
202
+ }
203
+ }
204
+ // ─────────────────────────────────────────────────────────────────────────────
205
+ // Private: Local Rendering
206
+ // ─────────────────────────────────────────────────────────────────────────────
207
+ /**
208
+ * Cast parsed YAML to typed definition with structural validation.
209
+ * Verifies a known top-level key exists and its value is a non-null object.
210
+ * Full schema validation is registry-side; this prevents totally wrong YAML.
211
+ */
212
+ castDefinition(parsed) {
213
+ const knownTopKeys = ['agent', 'command', 'workflow', 'pipeline'];
214
+ const topKey = knownTopKeys.find(k => k in parsed);
215
+ if (!topKey) {
216
+ throw new ConfigurationError(`Invalid definition: expected a top-level key of ${knownTopKeys.join(', ')}, ` +
217
+ `found: ${Object.keys(parsed).join(', ')}`);
218
+ }
219
+ const section = parsed[topKey];
220
+ if (typeof section !== 'object' || section === null) {
221
+ throw new ConfigurationError(`Invalid definition: "${topKey}" must be an object`);
222
+ }
223
+ // Structural guard confirms top-level key is a known definition type
224
+ // with a non-null object value. The intermediate `unknown` cast is
225
+ // unavoidable: Record<string, unknown> lacks the index signature
226
+ // required for direct assignment to the typed definition union.
227
+ return parsed;
228
+ }
229
+ /**
230
+ * Placeholder definition for render-only resolution (no YAML available).
231
+ * Downstream code reads definition fields via optional chaining.
232
+ */
233
+ emptyDefinition() {
234
+ return { agent: {} };
235
+ }
236
+ /**
237
+ * Build runtime from local YAML definition.
238
+ *
239
+ * Uses registry-sdk render.preview() to get the proper rendered markdown,
240
+ * falling back to YAML passthrough if the registry API is unavailable.
241
+ */
242
+ async renderLocally(yamlContent, definition, type) {
243
+ // Try registry API render first (proper template-based rendering)
244
+ const rendered = await this.tryRenderViaAPI(type, yamlContent);
245
+ if (type === 'agent') {
246
+ const agent = definition['agent'];
247
+ if (!agent)
248
+ return { prompt: '' };
249
+ return {
250
+ prompt: rendered ?? yamlContent,
251
+ defaults: {
252
+ model: agent.defaults?.model ?? 'sonnet',
253
+ timeout: agent.defaults?.timeout ?? 300_000,
254
+ maxTokens: agent.defaults?.max_tokens,
255
+ temperature: agent.defaults?.temperature,
256
+ },
257
+ config: this.buildAgentConfig(agent),
258
+ };
259
+ }
260
+ if (type === 'command') {
261
+ return {
262
+ prompt: rendered ?? yamlContent,
263
+ };
264
+ }
265
+ // Workflow/pipeline definitions ARE the runtime — the parsed YAML structure
266
+ // is used directly. Already validated by castDefinition() in resolveLocal().
267
+ return definition;
268
+ }
269
+ /**
270
+ * Try to render YAML via the registry API's render.preview() endpoint.
271
+ * Returns the rendered markdown, or null if the API is unavailable.
272
+ */
273
+ async tryRenderViaAPI(type, yamlContent) {
274
+ try {
275
+ const result = await this.sdk.render.preview(type, { yaml: yamlContent });
276
+ this.logger.debug(`Render via API: ${result.markdown.length} chars`);
277
+ return result.markdown;
278
+ }
279
+ catch (error) {
280
+ this.logger.warn(`Render API unavailable, falling back to raw YAML: ${formatErrorMessage(error)}`);
281
+ return null;
282
+ }
283
+ }
284
+ /**
285
+ * Build runtime config from ADL v1.6.0 scoring/decisions sections.
286
+ */
287
+ buildAgentConfig(agent) {
288
+ if (agent.interface.agentType === 'validator' && agent.scoring) {
289
+ const passThreshold = agent.decisions?.thresholds?.find(t => t.decision === 'positive');
290
+ return {
291
+ maxScore: agent.scoring.maxScore,
292
+ threshold: passThreshold?.min_score ?? 75,
293
+ categories: agent.scoring.categories.map(c => ({
294
+ name: c.name,
295
+ weight: c.weight,
296
+ criteria: c.criteria.map(cr => ({
297
+ name: cr.name,
298
+ points: cr.points,
299
+ description: cr.description,
300
+ })),
301
+ description: c.description,
302
+ })),
303
+ outputSchema: agent.output?.format ?? 'markdown',
304
+ };
305
+ }
306
+ if (agent.tasks) {
307
+ return {
308
+ mode: 'execute',
309
+ inputs: agent.tasks.inputs,
310
+ tasks: agent.tasks.operations,
311
+ outputs: agent.tasks.outputs,
312
+ completionCriteria: agent.completion?.criteria ?? [],
313
+ outputSchema: agent.output?.format ?? 'markdown',
314
+ };
315
+ }
316
+ return {};
317
+ }
318
+ // ─────────────────────────────────────────────────────────────────────────────
319
+ // Private: Extraction Helpers
320
+ // ─────────────────────────────────────────────────────────────────────────────
321
+ extractVersion(def, type) {
322
+ const section = def[type];
323
+ const iface = section?.interface;
324
+ return iface?.version ?? 'unknown';
325
+ }
326
+ extractDomain(def, type) {
327
+ const section = def[type];
328
+ const iface = section?.interface;
329
+ return iface?.domain ?? 'general';
330
+ }
331
+ extractAgentType(def, type) {
332
+ if (type !== 'agent')
333
+ return undefined;
334
+ const agent = def.agent;
335
+ const iface = agent?.interface;
336
+ return iface?.agentType;
337
+ }
338
+ // ─────────────────────────────────────────────────────────────────────────────
339
+ // Private: Listing
340
+ // ─────────────────────────────────────────────────────────────────────────────
341
+ async listLocal(filter) {
342
+ const results = [];
343
+ const baseDir = this.config.localDefinitions;
344
+ const seen = new Set();
345
+ const typeConfig = {
346
+ agent: { ext: '.agent.yaml', subdir: 'agents' },
347
+ command: { ext: '.command.yaml', subdir: 'commands' },
348
+ workflow: { ext: '.workflow.yaml', subdir: 'workflows' },
349
+ pipeline: { ext: '.pipeline.yaml', subdir: 'pipelines' },
350
+ };
351
+ for (const [type, { ext, subdir }] of Object.entries(typeConfig)) {
352
+ if (filter?.type && filter.type !== type)
353
+ continue;
354
+ // Scan both baseDir and baseDir/<subdir> (matching resolveLocal candidates)
355
+ const dirsToScan = [baseDir, path.join(baseDir, subdir)];
356
+ for (const dir of dirsToScan) {
357
+ try {
358
+ const files = await fs.readdir(dir);
359
+ for (const file of files) {
360
+ if (!file.endsWith(ext))
361
+ continue;
362
+ const name = file.replace(ext, '');
363
+ if (seen.has(`${type}:${name}`))
364
+ continue;
365
+ seen.add(`${type}:${name}`);
366
+ const content = await fs.readFile(path.join(dir, file), 'utf-8');
367
+ const def = this.safeParseYaml(content, file);
368
+ const summary = this.extractSummary(def, type, name);
369
+ if (!filter?.domain || summary.domain === filter.domain) {
370
+ results.push(summary);
371
+ }
372
+ }
373
+ }
374
+ catch (error) {
375
+ // ENOENT = directory doesn't exist — skip silently (expected for optional subdirs)
376
+ // Other errors (permissions, YAML parse) are logged to aid debugging
377
+ if (error.code !== 'ENOENT') {
378
+ this.logger.debug(`listLocal: skipping ${dir}: ${error instanceof Error ? error.message : String(error)}`);
379
+ }
380
+ }
381
+ }
382
+ }
383
+ return results;
384
+ }
385
+ async listRemote(filter) {
386
+ const result = await this.sdk.definitions.list({
387
+ status: 'published',
388
+ type: filter?.type,
389
+ domain: filter?.domain,
390
+ });
391
+ return result.definitions.map(d => ({
392
+ type: d.type,
393
+ name: d.name,
394
+ version: d.version,
395
+ displayName: d.displayName,
396
+ description: d.description,
397
+ domain: d.domain,
398
+ agentType: (d.agentType ?? undefined),
399
+ status: d.status,
400
+ }));
401
+ }
402
+ extractSummary(def, type, name) {
403
+ const section = def[type];
404
+ const iface = (section?.interface ?? {});
405
+ return {
406
+ type,
407
+ name: iface.name ?? name,
408
+ version: iface.version ?? 'unknown',
409
+ displayName: iface.displayName ?? name,
410
+ description: iface.description ?? '',
411
+ domain: (iface.domain ?? 'general'),
412
+ subdomain: iface.subdomain,
413
+ agentType: type === 'agent' ? iface.agentType : undefined,
414
+ status: 'draft',
415
+ tags: iface.tags,
416
+ };
417
+ }
418
+ }
419
+ //# sourceMappingURL=RegistryClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RegistryClient.js","sourceRoot":"","sources":["../../src/registry/RegistryClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { RegistryClient } from './RegistryClient.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/registry/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { RegistryClient } from './RegistryClient.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/registry/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}