@dahura/super-agent-runtime 0.1.1

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 (98) hide show
  1. package/LICENSE +21 -0
  2. package/dist/ask.d.ts +75 -0
  3. package/dist/ask.d.ts.map +1 -0
  4. package/dist/ask.js +140 -0
  5. package/dist/ask.js.map +1 -0
  6. package/dist/builder.d.ts +73 -0
  7. package/dist/builder.d.ts.map +1 -0
  8. package/dist/builder.js +477 -0
  9. package/dist/builder.js.map +1 -0
  10. package/dist/env.d.ts +36 -0
  11. package/dist/env.d.ts.map +1 -0
  12. package/dist/env.js +63 -0
  13. package/dist/env.js.map +1 -0
  14. package/dist/errors.d.ts +40 -0
  15. package/dist/errors.d.ts.map +1 -0
  16. package/dist/errors.js +43 -0
  17. package/dist/errors.js.map +1 -0
  18. package/dist/index.d.ts +30 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +21 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/loaders.d.ts +39 -0
  23. package/dist/loaders.d.ts.map +1 -0
  24. package/dist/loaders.js +113 -0
  25. package/dist/loaders.js.map +1 -0
  26. package/dist/model.d.ts +64 -0
  27. package/dist/model.d.ts.map +1 -0
  28. package/dist/model.js +2 -0
  29. package/dist/model.js.map +1 -0
  30. package/dist/providers/anthropic.d.ts +14 -0
  31. package/dist/providers/anthropic.d.ts.map +1 -0
  32. package/dist/providers/anthropic.js +19 -0
  33. package/dist/providers/anthropic.js.map +1 -0
  34. package/dist/providers/anthropic.provider.d.ts +22 -0
  35. package/dist/providers/anthropic.provider.d.ts.map +1 -0
  36. package/dist/providers/anthropic.provider.js +62 -0
  37. package/dist/providers/anthropic.provider.js.map +1 -0
  38. package/dist/providers/audio-local.d.ts +21 -0
  39. package/dist/providers/audio-local.d.ts.map +1 -0
  40. package/dist/providers/audio-local.js +451 -0
  41. package/dist/providers/audio-local.js.map +1 -0
  42. package/dist/providers/audio-local.provider.d.ts +15 -0
  43. package/dist/providers/audio-local.provider.d.ts.map +1 -0
  44. package/dist/providers/audio-local.provider.js +137 -0
  45. package/dist/providers/audio-local.provider.js.map +1 -0
  46. package/dist/providers/index.d.ts +30 -0
  47. package/dist/providers/index.d.ts.map +1 -0
  48. package/dist/providers/index.js +56 -0
  49. package/dist/providers/index.js.map +1 -0
  50. package/dist/providers/llama-server.d.ts +57 -0
  51. package/dist/providers/llama-server.d.ts.map +1 -0
  52. package/dist/providers/llama-server.js +231 -0
  53. package/dist/providers/llama-server.js.map +1 -0
  54. package/dist/providers/llama-server.provider.d.ts +34 -0
  55. package/dist/providers/llama-server.provider.d.ts.map +1 -0
  56. package/dist/providers/llama-server.provider.js +147 -0
  57. package/dist/providers/llama-server.provider.js.map +1 -0
  58. package/dist/providers/openai-compatible.d.ts +32 -0
  59. package/dist/providers/openai-compatible.d.ts.map +1 -0
  60. package/dist/providers/openai-compatible.js +53 -0
  61. package/dist/providers/openai-compatible.js.map +1 -0
  62. package/dist/providers/openai-compatible.provider.d.ts +24 -0
  63. package/dist/providers/openai-compatible.provider.d.ts.map +1 -0
  64. package/dist/providers/openai-compatible.provider.js +76 -0
  65. package/dist/providers/openai-compatible.provider.js.map +1 -0
  66. package/dist/providers/openai.d.ts +14 -0
  67. package/dist/providers/openai.d.ts.map +1 -0
  68. package/dist/providers/openai.js +24 -0
  69. package/dist/providers/openai.js.map +1 -0
  70. package/dist/providers/openai.provider.d.ts +23 -0
  71. package/dist/providers/openai.provider.d.ts.map +1 -0
  72. package/dist/providers/openai.provider.js +68 -0
  73. package/dist/providers/openai.provider.js.map +1 -0
  74. package/dist/providers/whisper-cpp.d.ts +23 -0
  75. package/dist/providers/whisper-cpp.d.ts.map +1 -0
  76. package/dist/providers/whisper-cpp.js +110 -0
  77. package/dist/providers/whisper-cpp.js.map +1 -0
  78. package/dist/providers/whisper-cpp.provider.d.ts +27 -0
  79. package/dist/providers/whisper-cpp.provider.d.ts.map +1 -0
  80. package/dist/providers/whisper-cpp.provider.js +139 -0
  81. package/dist/providers/whisper-cpp.provider.js.map +1 -0
  82. package/dist/proxy.d.ts +11 -0
  83. package/dist/proxy.d.ts.map +1 -0
  84. package/dist/proxy.js +12 -0
  85. package/dist/proxy.js.map +1 -0
  86. package/dist/registry.d.ts +111 -0
  87. package/dist/registry.d.ts.map +1 -0
  88. package/dist/registry.js +328 -0
  89. package/dist/registry.js.map +1 -0
  90. package/dist/resolver.d.ts +47 -0
  91. package/dist/resolver.d.ts.map +1 -0
  92. package/dist/resolver.js +365 -0
  93. package/dist/resolver.js.map +1 -0
  94. package/dist/workflow.d.ts +86 -0
  95. package/dist/workflow.d.ts.map +1 -0
  96. package/dist/workflow.js +343 -0
  97. package/dist/workflow.js.map +1 -0
  98. package/package.json +57 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,WAAW,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAEjE;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,SAAS,YAAY,EAC5D,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,EAC3B,IAAI,EAAE,kBAAkB,GACvB,WAAW,CAAC,OAAO,CAAC,CAEtB"}
package/dist/proxy.js ADDED
@@ -0,0 +1,12 @@
1
+ import { AgentClient } from "./builder";
2
+ /**
3
+ * Materialize an agent module into a runnable client. This is what consumers
4
+ * (Playground, codegen wrappers) use as the actual `transcriptAgent` etc.
5
+ *
6
+ * The agent module itself stays a passive descriptor — runtime decisions
7
+ * (model resolution, logging, caching) all live in this layer.
8
+ */
9
+ export function createAgentClient(agent, opts) {
10
+ return new AgentClient(agent.definition, opts);
11
+ }
12
+ //# sourceMappingURL=proxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAA2B,MAAM,WAAW,CAAC;AAEjE;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,KAA2B,EAC3B,IAAwB;IAExB,OAAO,IAAI,WAAW,CAAU,KAAK,CAAC,UAAsC,EAAE,IAAI,CAAC,CAAC;AACtF,CAAC"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Provider Registry — central registration and discovery for providers.
3
+ *
4
+ * The registry allows:
5
+ * - Registering provider definitions (from defineProvider)
6
+ * - Discovering available models from filesystem paths
7
+ * - Probing all providers for availability
8
+ * - Resolving providers for model IDs
9
+ */
10
+ import type { ProviderModule, ProviderConfig, ProviderProbeResult, ProviderEnvSchema } from "@dahura/super-agent-kit";
11
+ import type { EnvSource } from "./env";
12
+ /**
13
+ * Discovered model from filesystem scanning.
14
+ */
15
+ export type DiscoveredModel = {
16
+ /** Human-readable model ID extracted by provider's extractModelId. */
17
+ id: string;
18
+ /** Full absolute path to the model file. */
19
+ path: string;
20
+ /** File size in bytes. */
21
+ sizeBytes: number;
22
+ /** Provider that discovered this model. */
23
+ providerId: string;
24
+ };
25
+ /**
26
+ * Result of probing a provider, including discovered models.
27
+ */
28
+ export type ProviderProbeEntry = {
29
+ provider: ProviderModule;
30
+ config: ProviderConfig;
31
+ probe: ProviderProbeResult;
32
+ discoveredModels?: DiscoveredModel[];
33
+ };
34
+ /**
35
+ * Options for building provider configuration.
36
+ */
37
+ export type BuildConfigOptions = {
38
+ /** Agent export name for per-agent env lookups. */
39
+ exportName?: string;
40
+ /** Environment source function. */
41
+ env?: EnvSource;
42
+ };
43
+ /**
44
+ * Build configuration object from environment variables.
45
+ */
46
+ export declare function buildProviderConfig(envSchema: ProviderEnvSchema, providerId: string, options?: BuildConfigOptions): ProviderConfig;
47
+ /**
48
+ * Check if a provider is configured (all required env vars are set).
49
+ */
50
+ export declare function isProviderConfigured(envSchema: ProviderEnvSchema, config: ProviderConfig): {
51
+ ok: boolean;
52
+ missing: string[];
53
+ };
54
+ /**
55
+ * Provider Registry — manages provider registration and discovery.
56
+ */
57
+ export declare class ProviderRegistry {
58
+ private providers;
59
+ /**
60
+ * Register a provider module.
61
+ */
62
+ register(provider: ProviderModule): void;
63
+ /**
64
+ * Get a provider by ID.
65
+ */
66
+ get(id: string): ProviderModule | undefined;
67
+ /**
68
+ * List all registered providers.
69
+ */
70
+ list(): ProviderModule[];
71
+ /**
72
+ * List provider IDs.
73
+ */
74
+ ids(): string[];
75
+ /**
76
+ * Discover models for a specific provider.
77
+ */
78
+ discoverModels(providerId: string): Promise<DiscoveredModel[]>;
79
+ /**
80
+ * Discover models for all providers that support model discovery.
81
+ */
82
+ discoverAllModels(): Promise<Map<string, DiscoveredModel[]>>;
83
+ /**
84
+ * Probe a single provider for availability.
85
+ */
86
+ probe(providerId: string, options?: BuildConfigOptions): Promise<ProviderProbeEntry | null>;
87
+ /**
88
+ * Probe all registered providers.
89
+ */
90
+ probeAll(options?: BuildConfigOptions): Promise<ProviderProbeEntry[]>;
91
+ /**
92
+ * Find providers that support a specific capability.
93
+ */
94
+ findByCapability(capability: string): ProviderModule[];
95
+ /**
96
+ * Resolve which provider should handle a model ID.
97
+ * Returns the provider ID or undefined if no match.
98
+ *
99
+ * Resolution order:
100
+ * 1. Explicit SUPERAGENT_<EXPORT>_PROVIDER env var
101
+ * 2. Model ID prefix match (e.g., "local/" → openai-compatible or llama-server)
102
+ * 3. Capability-based fallback
103
+ */
104
+ resolveProviderForModel(modelId: string, options?: BuildConfigOptions): string | undefined;
105
+ }
106
+ /**
107
+ * Default global registry instance.
108
+ * Providers are registered here at module load time.
109
+ */
110
+ export declare const defaultRegistry: ProviderRegistry;
111
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EAElB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,sEAAsE;IACtE,EAAE,EAAE,MAAM,CAAC;IACX,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,mBAAmB,CAAC;IAC3B,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;CACtC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,GAAG,CAAC,EAAE,SAAS,CAAC;CACjB,CAAC;AA2EF;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,iBAAiB,EAC5B,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,kBAAuB,GAC/B,cAAc,CAgChB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,cAAc,GACrB;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAapC;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAAqC;IAEtD;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAQxC;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAI3C;;OAEG;IACH,IAAI,IAAI,cAAc,EAAE;IAIxB;;OAEG;IACH,GAAG,IAAI,MAAM,EAAE;IAIf;;OAEG;IACG,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IA0CpE;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;IAelE;;OAEG;IACG,KAAK,CACT,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAqErC;;OAEG;IACG,QAAQ,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAa/E;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,EAAE;IAMtD;;;;;;;;OAQG;IACH,uBAAuB,CACrB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,kBAAuB,GAC/B,MAAM,GAAG,SAAS;CA+BtB;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,kBAAyB,CAAC"}
@@ -0,0 +1,328 @@
1
+ /**
2
+ * Provider Registry — central registration and discovery for providers.
3
+ *
4
+ * The registry allows:
5
+ * - Registering provider definitions (from defineProvider)
6
+ * - Discovering available models from filesystem paths
7
+ * - Probing all providers for availability
8
+ * - Resolving providers for model IDs
9
+ */
10
+ import { readdir, access, stat } from "node:fs/promises";
11
+ import { join } from "node:path";
12
+ import { homedir } from "node:os";
13
+ import { readScopedEnv } from "./env";
14
+ /**
15
+ * Expand ~ to home directory.
16
+ */
17
+ function expandPath(p) {
18
+ if (p.startsWith("~/")) {
19
+ return join(homedir(), p.slice(2));
20
+ }
21
+ if (p.startsWith("~")) {
22
+ return join(homedir(), p.slice(1));
23
+ }
24
+ return p;
25
+ }
26
+ /**
27
+ * Check if a path exists.
28
+ */
29
+ async function pathExists(p) {
30
+ try {
31
+ await access(p);
32
+ return true;
33
+ }
34
+ catch {
35
+ return false;
36
+ }
37
+ }
38
+ /**
39
+ * Recursively scan a directory for files matching a pattern.
40
+ * Simplified glob: supports ** for recursive and * for wildcard.
41
+ */
42
+ async function scanDirectory(dir, pattern) {
43
+ const results = [];
44
+ const expandedDir = expandPath(dir);
45
+ if (!(await pathExists(expandedDir))) {
46
+ return results;
47
+ }
48
+ const patternParts = pattern.split("/");
49
+ const isRecursive = patternParts.includes("**");
50
+ const filePattern = patternParts[patternParts.length - 1];
51
+ const fileRegex = new RegExp("^" + filePattern.replace(/\./g, "\\.").replace(/\*/g, ".*") + "$");
52
+ async function scan(currentDir, depth) {
53
+ try {
54
+ const entries = await readdir(currentDir, { withFileTypes: true });
55
+ for (const entry of entries) {
56
+ const fullPath = join(currentDir, entry.name);
57
+ if (entry.isDirectory()) {
58
+ if (isRecursive || depth < patternParts.length - 1) {
59
+ await scan(fullPath, depth + 1);
60
+ }
61
+ }
62
+ else if (entry.isFile()) {
63
+ if (fileRegex.test(entry.name)) {
64
+ results.push(fullPath);
65
+ }
66
+ }
67
+ }
68
+ }
69
+ catch {
70
+ // Directory not readable, skip
71
+ }
72
+ }
73
+ await scan(expandedDir, 0);
74
+ return results;
75
+ }
76
+ /**
77
+ * Build configuration object from environment variables.
78
+ */
79
+ export function buildProviderConfig(envSchema, providerId, options = {}) {
80
+ const { exportName, env = (k) => process.env[k] } = options;
81
+ const config = {};
82
+ for (const [key, spec] of Object.entries(envSchema)) {
83
+ let value;
84
+ // Try per-agent override if exportName provided
85
+ if (exportName) {
86
+ value = readScopedEnv(exportName, spec.env, env);
87
+ }
88
+ // Try provider-specific
89
+ if (!value) {
90
+ const providerKey = `SUPERAGENT_${providerId.replace(/-/g, "_").toUpperCase()}_${spec.env}`;
91
+ value = env(providerKey);
92
+ }
93
+ // Try global SUPERAGENT_ prefix
94
+ if (!value) {
95
+ value = env(`SUPERAGENT_${spec.env}`);
96
+ }
97
+ // Use default
98
+ if (!value && spec.default !== undefined) {
99
+ value = spec.default;
100
+ }
101
+ config[key] = value;
102
+ }
103
+ return config;
104
+ }
105
+ /**
106
+ * Check if a provider is configured (all required env vars are set).
107
+ */
108
+ export function isProviderConfigured(envSchema, config) {
109
+ const missing = [];
110
+ for (const [key, spec] of Object.entries(envSchema)) {
111
+ if (spec.required && !config[key]) {
112
+ missing.push(spec.env);
113
+ }
114
+ }
115
+ return {
116
+ ok: missing.length === 0,
117
+ missing,
118
+ };
119
+ }
120
+ /**
121
+ * Provider Registry — manages provider registration and discovery.
122
+ */
123
+ export class ProviderRegistry {
124
+ providers = new Map();
125
+ /**
126
+ * Register a provider module.
127
+ */
128
+ register(provider) {
129
+ const id = provider.definition.meta.id;
130
+ if (this.providers.has(id)) {
131
+ throw new Error(`Provider "${id}" is already registered`);
132
+ }
133
+ this.providers.set(id, provider);
134
+ }
135
+ /**
136
+ * Get a provider by ID.
137
+ */
138
+ get(id) {
139
+ return this.providers.get(id);
140
+ }
141
+ /**
142
+ * List all registered providers.
143
+ */
144
+ list() {
145
+ return Array.from(this.providers.values());
146
+ }
147
+ /**
148
+ * List provider IDs.
149
+ */
150
+ ids() {
151
+ return Array.from(this.providers.keys());
152
+ }
153
+ /**
154
+ * Discover models for a specific provider.
155
+ */
156
+ async discoverModels(providerId) {
157
+ const provider = this.providers.get(providerId);
158
+ if (!provider) {
159
+ return [];
160
+ }
161
+ const discovery = provider.definition.modelDiscovery;
162
+ if (!discovery) {
163
+ return [];
164
+ }
165
+ const models = [];
166
+ for (const basePath of discovery.paths) {
167
+ const files = await scanDirectory(basePath, discovery.pattern);
168
+ for (const filePath of files) {
169
+ if (discovery.filter && !discovery.filter(filePath)) {
170
+ continue;
171
+ }
172
+ try {
173
+ const stats = await stat(filePath);
174
+ const modelId = discovery.extractModelId(filePath);
175
+ models.push({
176
+ id: modelId,
177
+ path: filePath,
178
+ sizeBytes: stats.size,
179
+ providerId,
180
+ });
181
+ }
182
+ catch {
183
+ // Skip files we can't stat
184
+ }
185
+ }
186
+ }
187
+ // Sort by model ID
188
+ models.sort((a, b) => a.id.localeCompare(b.id));
189
+ return models;
190
+ }
191
+ /**
192
+ * Discover models for all providers that support model discovery.
193
+ */
194
+ async discoverAllModels() {
195
+ const results = new Map();
196
+ for (const [id, provider] of this.providers) {
197
+ if (provider.definition.modelDiscovery) {
198
+ const models = await this.discoverModels(id);
199
+ if (models.length > 0) {
200
+ results.set(id, models);
201
+ }
202
+ }
203
+ }
204
+ return results;
205
+ }
206
+ /**
207
+ * Probe a single provider for availability.
208
+ */
209
+ async probe(providerId, options = {}) {
210
+ const provider = this.providers.get(providerId);
211
+ if (!provider) {
212
+ return null;
213
+ }
214
+ const config = buildProviderConfig(provider.definition.env, providerId, options);
215
+ const { ok, missing } = isProviderConfigured(provider.definition.env, config);
216
+ // If provider has no probe function, just check if configured
217
+ if (!provider.definition.probe) {
218
+ return {
219
+ provider,
220
+ config,
221
+ probe: {
222
+ ok,
223
+ error: ok ? undefined : `Missing required env vars: ${missing.join(", ")}`,
224
+ },
225
+ };
226
+ }
227
+ // If not configured, don't try to probe
228
+ if (!ok) {
229
+ return {
230
+ provider,
231
+ config,
232
+ probe: {
233
+ ok: false,
234
+ error: `Missing required env vars: ${missing.join(", ")}`,
235
+ },
236
+ };
237
+ }
238
+ // Run the probe
239
+ try {
240
+ const probeResult = await provider.definition.probe(config);
241
+ // Include discovered models if available
242
+ let discoveredModels;
243
+ if (probeResult.ok && provider.definition.modelDiscovery) {
244
+ discoveredModels = await this.discoverModels(providerId);
245
+ }
246
+ return {
247
+ provider,
248
+ config,
249
+ probe: probeResult,
250
+ discoveredModels,
251
+ };
252
+ }
253
+ catch (error) {
254
+ return {
255
+ provider,
256
+ config,
257
+ probe: {
258
+ ok: false,
259
+ error: error instanceof Error ? error.message : String(error),
260
+ },
261
+ };
262
+ }
263
+ }
264
+ /**
265
+ * Probe all registered providers.
266
+ */
267
+ async probeAll(options = {}) {
268
+ const results = [];
269
+ for (const id of this.providers.keys()) {
270
+ const entry = await this.probe(id, options);
271
+ if (entry) {
272
+ results.push(entry);
273
+ }
274
+ }
275
+ return results;
276
+ }
277
+ /**
278
+ * Find providers that support a specific capability.
279
+ */
280
+ findByCapability(capability) {
281
+ return this.list().filter((p) => p.definition.meta.capabilities.includes(capability));
282
+ }
283
+ /**
284
+ * Resolve which provider should handle a model ID.
285
+ * Returns the provider ID or undefined if no match.
286
+ *
287
+ * Resolution order:
288
+ * 1. Explicit SUPERAGENT_<EXPORT>_PROVIDER env var
289
+ * 2. Model ID prefix match (e.g., "local/" → openai-compatible or llama-server)
290
+ * 3. Capability-based fallback
291
+ */
292
+ resolveProviderForModel(modelId, options = {}) {
293
+ const { exportName, env = (k) => process.env[k] } = options;
294
+ // Check explicit provider override
295
+ if (exportName) {
296
+ const providerHint = readScopedEnv(exportName, "PROVIDER", env);
297
+ if (providerHint && this.providers.has(providerHint)) {
298
+ return providerHint;
299
+ }
300
+ }
301
+ // Check model ID prefix
302
+ const slashIndex = modelId.indexOf("/");
303
+ if (slashIndex > 0) {
304
+ const prefix = modelId.slice(0, slashIndex);
305
+ // Known prefixes
306
+ if (prefix === "openai")
307
+ return "openai";
308
+ if (prefix === "anthropic")
309
+ return "anthropic";
310
+ if (prefix === "local") {
311
+ // Check if llama-server is configured
312
+ if (exportName) {
313
+ const bin = readScopedEnv(exportName, "BIN", env);
314
+ if (bin)
315
+ return "llama-server";
316
+ }
317
+ return "openai-compatible";
318
+ }
319
+ }
320
+ return undefined;
321
+ }
322
+ }
323
+ /**
324
+ * Default global registry instance.
325
+ * Providers are registered here at module load time.
326
+ */
327
+ export const defaultRegistry = new ProviderRegistry();
328
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import type { ModelResolver } from "./builder";
2
+ import { type EnvSource } from "./env";
3
+ import { type ProviderRegistry } from "./registry";
4
+ export type LocalBackend = "openai-compatible" | "llama-server" | "audio-local";
5
+ export type ResolverOptions = {
6
+ envSource?: EnvSource;
7
+ /** Optional custom registry. Defaults to the global defaultRegistry. */
8
+ registry?: ProviderRegistry;
9
+ /** Override which local backend to use for `local/*` models. */
10
+ localBackend?: LocalBackend;
11
+ };
12
+ export declare function __findMmprojForModel(modelId: string, modelPath?: string, searchPaths?: readonly string[]): Promise<string | null>;
13
+ /**
14
+ * Build a `ModelResolver` ready to plug into `createAgentClient`. The same
15
+ * function powers both consumer code and the Playground.
16
+ *
17
+ * Local-first priority order applied each time the resolver runs:
18
+ *
19
+ * 1. Honor `override` if given (UI selector / test). Validate against
20
+ * `policy.allow` regardless of where it came from.
21
+ * 2. Otherwise use `policy.default`.
22
+ * 3. Resolve aliases (e.g. local/qwen3.5-2b → Qwen3.5-2B-Q4_K_M).
23
+ * 4. Pick provider:
24
+ * audio-local/* → audio-local custom provider
25
+ * local/* → openai-compatible (or audio-local/whisper by per-agent env)
26
+ * openai/* → openai (cloud, opt-in)
27
+ * anthropic/* → anthropic (cloud, opt-in)
28
+ * Custom per-agent provider override via SUPERAGENT_<EXPORT>_PROVIDER
29
+ * always wins (used by transcriptAgent → audio-local or whisper-cpp).
30
+ * 5. Build the provider config from env and return ResolvedModel.
31
+ */
32
+ export declare function createResolver(options?: ResolverOptions): ModelResolver;
33
+ export declare const RESOLVER_LOCAL_DEFAULTS: {
34
+ /** Ollama default endpoint when nothing else is configured. */
35
+ readonly ollama: "http://localhost:11434/v1";
36
+ /** llama.cpp's llama-server default endpoint. */
37
+ readonly llamaServer: "http://localhost:8080/v1";
38
+ };
39
+ /**
40
+ * Re-export the default registry for consumers who want to:
41
+ * - Register custom providers
42
+ * - Discover models from filesystem
43
+ * - Probe providers for availability (Playground)
44
+ */
45
+ export { defaultRegistry } from "./registry";
46
+ export type { ProviderRegistry, DiscoveredModel, ProviderProbeEntry } from "./registry";
47
+ //# sourceMappingURL=resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG/C,OAAO,EAAiC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAgBtE,OAAO,EAAmB,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEpE,MAAM,MAAM,YAAY,GAAG,mBAAmB,GAAG,cAAc,GAAG,aAAa,CAAC;AAEhF,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,gEAAgE;IAChE,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,CAAC;AAiHF,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,GAAE,SAAS,MAAM,EAAuC,GAClE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA0BxB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE,eAAoB,GAAG,aAAa,CA8C3E;AA0ND,eAAO,MAAM,uBAAuB;IAzalC,+DAA+D;;IAE/D,iDAAiD;;CAuaE,CAAC;AAEtD;;;;;GAKG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}