@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,477 @@
1
+ import { DEFAULT_AUDIO_FORMATS, DEFAULT_IMAGE_FORMATS } from "@dahura/super-agent-kit";
2
+ import { Ask } from "./ask";
3
+ import { AgentValidationError } from "./errors";
4
+ import { normalizeAudio, normalizeFile, normalizeImage, normalizeText, stripPathArtifacts, } from "./loaders";
5
+ /**
6
+ * Optional dispatcher for "run" output. Adapts whatever the agent's `run`
7
+ * returns into the `AskProduction` shape consumed by `Ask`. The default
8
+ * dispatcher handles strings, async-iterables, ReadableStreams, and arbitrary
9
+ * JSON-serializable values.
10
+ */
11
+ function adaptRunOutput(value) {
12
+ if (typeof value === "string")
13
+ return { text: value };
14
+ if (value && typeof value === "object" && Symbol.asyncIterator in value) {
15
+ return { stream: textChunks(value) };
16
+ }
17
+ if (value instanceof ReadableStream) {
18
+ return { stream: bytesStreamToTextIter(value) };
19
+ }
20
+ // arbitrary value -> JSON
21
+ return { text: JSON.stringify(value) };
22
+ }
23
+ async function* textChunks(source) {
24
+ for await (const chunk of source) {
25
+ if (typeof chunk === "string") {
26
+ yield chunk;
27
+ }
28
+ else if (chunk instanceof Uint8Array) {
29
+ yield new TextDecoder().decode(chunk);
30
+ }
31
+ else {
32
+ yield typeof chunk === "object" ? JSON.stringify(chunk) : String(chunk);
33
+ }
34
+ }
35
+ }
36
+ async function* bytesStreamToTextIter(stream) {
37
+ const reader = stream.getReader();
38
+ const decoder = new TextDecoder();
39
+ try {
40
+ while (true) {
41
+ const { value, done } = await reader.read();
42
+ if (done)
43
+ break;
44
+ if (value)
45
+ yield decoder.decode(value, { stream: true });
46
+ }
47
+ const tail = decoder.decode();
48
+ if (tail)
49
+ yield tail;
50
+ }
51
+ finally {
52
+ reader.releaseLock();
53
+ }
54
+ }
55
+ const noopLogger = {
56
+ info: () => { },
57
+ warn: () => { },
58
+ error: () => { },
59
+ };
60
+ /**
61
+ * The agent client surface that consumer code holds:
62
+ * client.loadAudio(...).loadImage(...).ask(query).text()
63
+ * client.withModel('local/qwen2.5-vl').ask(query).text()
64
+ * client.ask(query).json(schema)
65
+ *
66
+ * Designed to be immutable: every loadXxx / withModel returns a NEW instance.
67
+ */
68
+ export class AgentClient {
69
+ definition;
70
+ opts;
71
+ accumulated;
72
+ constructor(definition, opts, accumulated = emptyInputs()) {
73
+ this.definition = definition;
74
+ this.opts = opts;
75
+ this.accumulated = accumulated;
76
+ }
77
+ // --- loaders (accept single OR array; manifest decides max) ---
78
+ loadImage(input) {
79
+ if (!this.definition.inputs.image) {
80
+ throw new AgentValidationError(`Agent "${this.definition.meta.exportName}" does not accept image inputs`);
81
+ }
82
+ return this.cloneWithLoader("image", input);
83
+ }
84
+ loadAudio(input) {
85
+ if (!this.definition.inputs.audio) {
86
+ throw new AgentValidationError(`Agent "${this.definition.meta.exportName}" does not accept audio inputs`);
87
+ }
88
+ return this.cloneWithLoader("audio", input);
89
+ }
90
+ loadText(input) {
91
+ if (!this.definition.inputs.text) {
92
+ throw new AgentValidationError(`Agent "${this.definition.meta.exportName}" does not accept text inputs`);
93
+ }
94
+ return this.cloneWithLoader("text", input);
95
+ }
96
+ loadFile(input) {
97
+ if (!this.definition.inputs.file) {
98
+ throw new AgentValidationError(`Agent "${this.definition.meta.exportName}" does not accept file inputs`);
99
+ }
100
+ return this.cloneWithLoader("file", input);
101
+ }
102
+ /**
103
+ * Override the model for this and downstream calls without mutating the
104
+ * agent definition. Useful for the Playground UI selector and for
105
+ * per-call overrides like `agent.withModel('local/qwen2.5-vl').ask(q)`.
106
+ */
107
+ withModel(modelId) {
108
+ return new AgentClient(this.definition, { ...this.opts, modelOverride: modelId }, this.accumulated);
109
+ }
110
+ /**
111
+ * Override which processors are active for this and downstream calls without
112
+ * mutating the underlying client.
113
+ */
114
+ withProcessors(selection) {
115
+ validateProcessorSelection(this.definition, selection);
116
+ return new AgentClient(this.definition, { ...this.opts, processorSelection: normalizeProcessorSelection(selection) }, this.accumulated);
117
+ }
118
+ /**
119
+ * Override which subagents are active for this and downstream calls without
120
+ * mutating the underlying client.
121
+ */
122
+ withSubagents(selection) {
123
+ validateSubagentSelection(this.definition, selection);
124
+ return new AgentClient(this.definition, { ...this.opts, subagentSelection: normalizeSubagentSelection(selection) }, this.accumulated);
125
+ }
126
+ /** Fire the ask and return the smart Ask result. */
127
+ ask(query) {
128
+ if (typeof query !== "string" || query.length === 0) {
129
+ throw new AgentValidationError("ask(query) requires a non-empty string");
130
+ }
131
+ return new Ask(async () => {
132
+ const inputs = await materializeInputs(this.accumulated, this.definition.inputs);
133
+ const log = this.opts.logger ?? noopLogger;
134
+ log.info("env_resolved", { exportName: this.definition.meta.exportName });
135
+ const model = await this.opts.resolver({
136
+ exportName: this.definition.meta.exportName,
137
+ policy: this.definition.model,
138
+ override: this.opts.modelOverride,
139
+ });
140
+ log.info("model_selected", {
141
+ provider: model.provider,
142
+ resolvedId: model.resolvedId,
143
+ });
144
+ const ctx = {
145
+ inputs,
146
+ query,
147
+ model,
148
+ signal: new AbortController().signal,
149
+ log,
150
+ processors: resolveProcessorRuntime(this.definition, this.opts.processorSelection, log),
151
+ subagents: resolveSubagentRuntime(this.definition, this.opts.subagentSelection, log),
152
+ require: createRequireRuntime(model, this.definition.meta.exportName),
153
+ };
154
+ log.info("processors_resolved", {
155
+ enabled: ctx.processors.enabled,
156
+ });
157
+ log.info("subagents_resolved", {
158
+ enabled: ctx.subagents.enabled,
159
+ });
160
+ log.info("inference_started", {});
161
+ const startedAt = performance.now();
162
+ const value = await this.definition.run(ctx);
163
+ const production = adaptRunOutput(value);
164
+ log.info("output_validated", {
165
+ durationMs: Math.round(performance.now() - startedAt),
166
+ });
167
+ return {
168
+ ...production,
169
+ meta: {
170
+ ...(production.meta ?? {}),
171
+ durationMs: Math.round(performance.now() - startedAt),
172
+ trace: ctx.subagents.trace(),
173
+ },
174
+ };
175
+ });
176
+ }
177
+ // --- internal ---
178
+ cloneWithLoader(kind, input) {
179
+ const next = {
180
+ image: [...this.accumulated.image],
181
+ audio: [...this.accumulated.audio],
182
+ text: [...this.accumulated.text],
183
+ file: [...this.accumulated.file],
184
+ };
185
+ const items = Array.isArray(input) ? input : [input];
186
+ next[kind].push(...items);
187
+ return new AgentClient(this.definition, this.opts, next);
188
+ }
189
+ }
190
+ function normalizeProcessorSelection(selection) {
191
+ return {
192
+ mode: selection.mode,
193
+ enable: selection.enable ? [...selection.enable] : undefined,
194
+ disable: selection.disable ? [...selection.disable] : undefined,
195
+ };
196
+ }
197
+ function normalizeSubagentSelection(selection) {
198
+ return {
199
+ mode: selection.mode,
200
+ enable: selection.enable ? [...selection.enable] : undefined,
201
+ disable: selection.disable ? [...selection.disable] : undefined,
202
+ };
203
+ }
204
+ function validateProcessorSelection(definition, selection) {
205
+ const knownIds = new Set((definition.processors ?? []).map((processor) => processor.id));
206
+ for (const id of selection.enable ?? []) {
207
+ if (!knownIds.has(id)) {
208
+ throw new AgentValidationError(`Unknown processor "${id}" for agent "${definition.meta.exportName}"`);
209
+ }
210
+ }
211
+ for (const id of selection.disable ?? []) {
212
+ if (!knownIds.has(id)) {
213
+ throw new AgentValidationError(`Unknown processor "${id}" for agent "${definition.meta.exportName}"`);
214
+ }
215
+ }
216
+ }
217
+ function validateSubagentSelection(definition, selection) {
218
+ const knownIds = new Set((definition.subagents ?? []).map((subagent) => subagent.id));
219
+ for (const id of selection.enable ?? []) {
220
+ if (!knownIds.has(id)) {
221
+ throw new AgentValidationError(`Unknown subagent "${id}" for agent "${definition.meta.exportName}"`);
222
+ }
223
+ }
224
+ for (const id of selection.disable ?? []) {
225
+ if (!knownIds.has(id)) {
226
+ throw new AgentValidationError(`Unknown subagent "${id}" for agent "${definition.meta.exportName}"`);
227
+ }
228
+ }
229
+ }
230
+ function resolveProcessorRuntime(definition, selection, log = noopLogger) {
231
+ const processors = definition.processors ?? [];
232
+ const enabled = new Set();
233
+ if (selection?.mode === "all") {
234
+ for (const processor of processors)
235
+ enabled.add(processor.id);
236
+ }
237
+ else if (selection?.mode === "none") {
238
+ // leave empty
239
+ }
240
+ else {
241
+ for (const processor of processors) {
242
+ if (processor.defaultEnabled !== false) {
243
+ enabled.add(processor.id);
244
+ }
245
+ }
246
+ }
247
+ for (const id of selection?.enable ?? [])
248
+ enabled.add(id);
249
+ for (const id of selection?.disable ?? [])
250
+ enabled.delete(id);
251
+ const ordered = processors
252
+ .map((processor) => processor.id)
253
+ .filter((id) => enabled.has(id));
254
+ const definitionsById = new Map(processors.map((processor) => [processor.id, processor]));
255
+ return {
256
+ enabled: ordered,
257
+ isEnabled: (id) => enabled.has(id),
258
+ before: (initial, steps) => runProcessorPhase({
259
+ initial,
260
+ steps,
261
+ phase: "before",
262
+ enabled,
263
+ definitionsById,
264
+ log,
265
+ }),
266
+ after: (initial, steps) => runProcessorPhase({
267
+ initial,
268
+ steps,
269
+ phase: "after",
270
+ enabled,
271
+ definitionsById,
272
+ log,
273
+ }),
274
+ };
275
+ }
276
+ function resolveSubagentRuntime(definition, selection, log = noopLogger) {
277
+ const subagents = definition.subagents ?? [];
278
+ const enabled = new Set();
279
+ if (selection?.mode === "all") {
280
+ for (const subagent of subagents)
281
+ enabled.add(subagent.id);
282
+ }
283
+ else if (selection?.mode === "none") {
284
+ // leave empty
285
+ }
286
+ else {
287
+ for (const subagent of subagents) {
288
+ if (subagent.defaultEnabled !== false) {
289
+ enabled.add(subagent.id);
290
+ }
291
+ }
292
+ }
293
+ for (const id of selection?.enable ?? [])
294
+ enabled.add(id);
295
+ for (const id of selection?.disable ?? [])
296
+ enabled.delete(id);
297
+ const ordered = subagents
298
+ .map((subagent) => subagent.id)
299
+ .filter((id) => enabled.has(id));
300
+ const definitionsById = new Map(subagents.map((subagent) => [subagent.id, subagent]));
301
+ const trace = [];
302
+ return {
303
+ enabled: ordered,
304
+ isEnabled: (id) => enabled.has(id),
305
+ run: async (initial, steps, options) => {
306
+ const execute = async (step) => {
307
+ const definition = definitionsById.get(step.id);
308
+ if (!definition) {
309
+ throw new AgentValidationError(`Unknown subagent step "${step.id}"`);
310
+ }
311
+ const startedAt = performance.now();
312
+ try {
313
+ const result = await step.run(initial);
314
+ const durationMs = Math.round(performance.now() - startedAt);
315
+ trace.push({
316
+ kind: "subagent",
317
+ id: step.id,
318
+ label: definition.description,
319
+ durationMs,
320
+ modelUsed: result.modelUsed,
321
+ usage: result.usage,
322
+ output: result.output,
323
+ rawText: result.rawText,
324
+ });
325
+ log.info("subagent_completed", { id: step.id, durationMs });
326
+ return { id: step.id, durationMs, ...result };
327
+ }
328
+ catch (error) {
329
+ const durationMs = Math.round(performance.now() - startedAt);
330
+ trace.push({
331
+ kind: "subagent",
332
+ id: step.id,
333
+ label: definition.description,
334
+ durationMs,
335
+ error: error instanceof Error ? error.message : String(error),
336
+ });
337
+ log.error("subagent_failed", {
338
+ id: step.id,
339
+ durationMs,
340
+ error: error instanceof Error ? error.message : String(error),
341
+ });
342
+ throw error;
343
+ }
344
+ };
345
+ const activeSteps = steps.filter((step) => {
346
+ if (!definitionsById.has(step.id)) {
347
+ throw new AgentValidationError(`Unknown subagent step "${step.id}"`);
348
+ }
349
+ return enabled.has(step.id);
350
+ });
351
+ if (options?.parallel) {
352
+ return Promise.all(activeSteps.map((step) => execute(step)));
353
+ }
354
+ const results = [];
355
+ for (const step of activeSteps) {
356
+ results.push(await execute(step));
357
+ }
358
+ return results;
359
+ },
360
+ recordTrace: (entry) => {
361
+ trace.push(entry);
362
+ },
363
+ trace: () => [...trace],
364
+ };
365
+ }
366
+ function runProcessorPhase(args) {
367
+ let state = args.initial;
368
+ for (const step of args.steps) {
369
+ const definition = args.definitionsById.get(step.id);
370
+ if (!definition) {
371
+ throw new AgentValidationError(`Unknown processor step "${step.id}"`);
372
+ }
373
+ if (definition.phase !== args.phase) {
374
+ throw new AgentValidationError(`Processor "${step.id}" is declared for phase "${definition.phase}" but was used in "${args.phase}"`);
375
+ }
376
+ if (!args.enabled.has(step.id))
377
+ continue;
378
+ state = step.run(state);
379
+ args.log.info("processor_applied", { id: step.id, phase: args.phase });
380
+ }
381
+ return state;
382
+ }
383
+ function createRequireRuntime(model, exportName) {
384
+ return {
385
+ aiSdkModel() {
386
+ if (model.kind !== "ai-sdk") {
387
+ throw new AgentValidationError(`${exportName} requires an AI-SDK compatible model`);
388
+ }
389
+ return model;
390
+ },
391
+ customModel() {
392
+ if (model.kind !== "custom") {
393
+ throw new AgentValidationError(`${exportName} requires a custom provider model`);
394
+ }
395
+ return {
396
+ kind: model.kind,
397
+ provider: model.provider,
398
+ invoke: async (input) => model.invoke(input),
399
+ };
400
+ },
401
+ customProvider(provider) {
402
+ if (model.kind !== "custom" || model.provider !== provider) {
403
+ throw new AgentValidationError(`${exportName} requires the custom provider "${provider}"`);
404
+ }
405
+ return {
406
+ kind: model.kind,
407
+ provider: model.provider,
408
+ invoke: async (input) => model.invoke(input),
409
+ };
410
+ },
411
+ };
412
+ }
413
+ function emptyInputs() {
414
+ return { image: [], audio: [], text: [], file: [] };
415
+ }
416
+ /**
417
+ * Validate accumulated inputs against the inputs schema (max, formats),
418
+ * then normalize each item into an InputItem. Returns the strongly-typed
419
+ * RuntimeInputs object passed into agent.run().
420
+ */
421
+ async function materializeInputs(acc, schema) {
422
+ const image = [];
423
+ if (acc.image.length > 0) {
424
+ const decl = schema.image;
425
+ const max = decl.max ?? 1;
426
+ if (acc.image.length > max) {
427
+ throw new AgentValidationError(`Too many image inputs: ${acc.image.length} > max ${max}`);
428
+ }
429
+ const allowed = (decl.formats ?? DEFAULT_IMAGE_FORMATS);
430
+ for (const item of acc.image) {
431
+ const normalized = await normalizeImage(item);
432
+ const ext = stripPathArtifacts(normalized.source)
433
+ .toLowerCase()
434
+ .match(/\.([a-z0-9]+)$/)?.[1];
435
+ if (ext && !allowed.includes(ext) && !(ext === "jpg" && allowed.includes("jpeg"))) {
436
+ throw new AgentValidationError(`Image format "${ext}" not allowed (allowed: ${allowed.join(", ")})`);
437
+ }
438
+ image.push(normalized);
439
+ }
440
+ }
441
+ const audio = [];
442
+ if (acc.audio.length > 0) {
443
+ const decl = schema.audio;
444
+ const max = decl.max ?? 1;
445
+ if (acc.audio.length > max) {
446
+ throw new AgentValidationError(`Too many audio inputs: ${acc.audio.length} > max ${max}`);
447
+ }
448
+ const allowed = (decl.formats ?? DEFAULT_AUDIO_FORMATS);
449
+ for (const item of acc.audio) {
450
+ const normalized = await normalizeAudio(item);
451
+ const ext = stripPathArtifacts(normalized.source)
452
+ .toLowerCase()
453
+ .match(/\.([a-z0-9]+)$/)?.[1];
454
+ if (ext && !allowed.includes(ext)) {
455
+ throw new AgentValidationError(`Audio format "${ext}" not allowed (allowed: ${allowed.join(", ")})`);
456
+ }
457
+ audio.push(normalized);
458
+ }
459
+ }
460
+ const text = [];
461
+ if (acc.text.length > 0) {
462
+ for (const item of acc.text)
463
+ text.push(normalizeText(item));
464
+ }
465
+ const file = [];
466
+ if (acc.file.length > 0) {
467
+ const decl = schema.file;
468
+ const max = decl.max ?? 1;
469
+ if (acc.file.length > max) {
470
+ throw new AgentValidationError(`Too many file inputs: ${acc.file.length} > max ${max}`);
471
+ }
472
+ for (const item of acc.file)
473
+ file.push(await normalizeFile(item));
474
+ }
475
+ return { image, audio, text, file };
476
+ }
477
+ //# sourceMappingURL=builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
package/dist/env.d.ts ADDED
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Convention-driven environment reader. Encapsulates the local-first
3
+ * priority order documented in the design doc:
4
+ *
5
+ * 1. Per-agent override: SUPERAGENT_<EXPORT_NAME_SCREAMING_SNAKE>_<KEY>
6
+ * 2. Global default: SUPERAGENT_<KEY>
7
+ * 3. Provider-specific: OPENAI_API_KEY, ANTHROPIC_API_KEY, etc.
8
+ */
9
+ export type EnvSource = (key: string) => string | undefined;
10
+ /**
11
+ * Convert "screenshotAnalyzerAgent" → "SCREENSHOT_ANALYZER_AGENT". The
12
+ * resolver uses this to build per-agent env keys.
13
+ */
14
+ export declare function exportNameToScreaming(exportName: string): string;
15
+ /**
16
+ * Look up a value following the per-agent → global priority order.
17
+ * Returns the first defined non-empty string, or undefined.
18
+ */
19
+ export declare function readScopedEnv(exportName: string, key: string, source?: EnvSource): string | undefined;
20
+ /**
21
+ * Read a model alias mapping. Aliases let agents use stable names like
22
+ * `local/qwen3.5-2b` while the consumer's `.env` maps them to whatever
23
+ * concrete name their local server reports (e.g. `Qwen3.5-2B-Q4_K_M`).
24
+ *
25
+ * SUPERAGENT_MODEL_ALIAS_LOCAL_QWEN3_5_2B=Qwen3.5-2B-Q4_K_M
26
+ *
27
+ * The key is the model id with `/` and `.` replaced by `_` and uppercased.
28
+ */
29
+ export declare function readModelAlias(modelId: string, source?: EnvSource): string | undefined;
30
+ /** Mask a sensitive value for safe display (`sk-abc…3f4a`). */
31
+ export declare function maskSecret(value: string | undefined): string;
32
+ /**
33
+ * Re-export for tests so they can substitute a fake env.
34
+ */
35
+ export declare const __defaultEnvSource: EnvSource;
36
+ //# sourceMappingURL=env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;AAI5D;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAKhE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,EACX,MAAM,GAAE,SAAyB,GAChC,MAAM,GAAG,SAAS,CAUpB;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,SAAyB,GAChC,MAAM,GAAG,SAAS,CAIpB;AAED,+DAA+D;AAC/D,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAI5D;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,WAAgB,CAAC"}
package/dist/env.js ADDED
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Convention-driven environment reader. Encapsulates the local-first
3
+ * priority order documented in the design doc:
4
+ *
5
+ * 1. Per-agent override: SUPERAGENT_<EXPORT_NAME_SCREAMING_SNAKE>_<KEY>
6
+ * 2. Global default: SUPERAGENT_<KEY>
7
+ * 3. Provider-specific: OPENAI_API_KEY, ANTHROPIC_API_KEY, etc.
8
+ */
9
+ const SUPERAGENT_PREFIX = "SUPERAGENT_";
10
+ const defaultSource = (key) => process.env[key];
11
+ /**
12
+ * Convert "screenshotAnalyzerAgent" → "SCREENSHOT_ANALYZER_AGENT". The
13
+ * resolver uses this to build per-agent env keys.
14
+ */
15
+ export function exportNameToScreaming(exportName) {
16
+ return exportName
17
+ .replace(/([A-Z])/g, "_$1")
18
+ .replace(/^_/, "")
19
+ .toUpperCase();
20
+ }
21
+ /**
22
+ * Look up a value following the per-agent → global priority order.
23
+ * Returns the first defined non-empty string, or undefined.
24
+ */
25
+ export function readScopedEnv(exportName, key, source = defaultSource) {
26
+ const screamingExport = exportNameToScreaming(exportName);
27
+ const perAgentKey = `${SUPERAGENT_PREFIX}${screamingExport}_${key}`;
28
+ const globalKey = `${SUPERAGENT_PREFIX}${key}`;
29
+ const perAgent = source(perAgentKey);
30
+ if (perAgent && perAgent.trim().length > 0)
31
+ return perAgent.trim();
32
+ const global = source(globalKey);
33
+ if (global && global.trim().length > 0)
34
+ return global.trim();
35
+ return undefined;
36
+ }
37
+ /**
38
+ * Read a model alias mapping. Aliases let agents use stable names like
39
+ * `local/qwen3.5-2b` while the consumer's `.env` maps them to whatever
40
+ * concrete name their local server reports (e.g. `Qwen3.5-2B-Q4_K_M`).
41
+ *
42
+ * SUPERAGENT_MODEL_ALIAS_LOCAL_QWEN3_5_2B=Qwen3.5-2B-Q4_K_M
43
+ *
44
+ * The key is the model id with `/` and `.` replaced by `_` and uppercased.
45
+ */
46
+ export function readModelAlias(modelId, source = defaultSource) {
47
+ const sanitized = modelId.replace(/[/.\-]/g, "_").toUpperCase();
48
+ const value = source(`${SUPERAGENT_PREFIX}MODEL_ALIAS_${sanitized}`);
49
+ return value && value.trim().length > 0 ? value.trim() : undefined;
50
+ }
51
+ /** Mask a sensitive value for safe display (`sk-abc…3f4a`). */
52
+ export function maskSecret(value) {
53
+ if (!value)
54
+ return "";
55
+ if (value.length <= 8)
56
+ return "●●●●";
57
+ return `${value.slice(0, 3)}…${value.slice(-4)}`;
58
+ }
59
+ /**
60
+ * Re-export for tests so they can substitute a fake env.
61
+ */
62
+ export const __defaultEnvSource = defaultSource;
63
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,iBAAiB,GAAG,aAAa,CAAC;AAIxC,MAAM,aAAa,GAAc,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE3D;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,UAAkB;IACtD,OAAO,UAAU;SACd,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC;SAC1B,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;SACjB,WAAW,EAAE,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC3B,UAAkB,EAClB,GAAW,EACX,SAAoB,aAAa;IAEjC,MAAM,eAAe,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAG,GAAG,iBAAiB,GAAG,eAAe,IAAI,GAAG,EAAE,CAAC;IACpE,MAAM,SAAS,GAAG,GAAG,iBAAiB,GAAG,GAAG,EAAE,CAAC;IAE/C,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IACrC,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnE,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IACjC,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IAC7D,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAe,EACf,SAAoB,aAAa;IAEjC,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAChE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,iBAAiB,eAAe,SAAS,EAAE,CAAC,CAAC;IACrE,OAAO,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACrE,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,UAAU,CAAC,KAAyB;IAClD,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IACrC,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,aAAa,CAAC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Typed errors thrown at the runtime boundary. Consumers can `instanceof`
3
+ * them to render targeted UI / take corrective action.
4
+ */
5
+ export declare class AgentError extends Error {
6
+ name: string;
7
+ readonly cause?: unknown;
8
+ constructor(message: string, cause?: unknown);
9
+ }
10
+ /**
11
+ * Input failed schema validation BEFORE the agent's `run` is invoked.
12
+ * Indicates the consumer passed an unsupported file type, exceeded the
13
+ * declared `max`, etc.
14
+ */
15
+ export declare class AgentValidationError extends AgentError {
16
+ name: string;
17
+ }
18
+ /**
19
+ * The model resolver could not find a usable model. Usually one of:
20
+ * - `model.allow` blocks the requested override
21
+ * - all configured providers are unreachable
22
+ * - required env vars (e.g. `WHISPER_CPP_BIN`) are missing
23
+ */
24
+ export declare class ProviderError extends AgentError {
25
+ name: string;
26
+ }
27
+ /**
28
+ * The model returned a response, but it failed output validation against
29
+ * the agent's declared `output.schema`.
30
+ */
31
+ export declare class OutputValidationError extends AgentError {
32
+ name: string;
33
+ }
34
+ /**
35
+ * Catch-all for failures inside the model call (HTTP error, timeout, etc).
36
+ */
37
+ export declare class ModelError extends AgentError {
38
+ name: string;
39
+ }
40
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,qBAAa,UAAW,SAAQ,KAAK;IAC1B,IAAI,SAAgB;IAC7B,SAAkB,KAAK,CAAC,EAAE,OAAO,CAAC;gBACtB,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAI7C;AAED;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,UAAU;IACzC,IAAI,SAA0B;CACxC;AAED;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,UAAU;IAClC,IAAI,SAAmB;CACjC;AAED;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,UAAU;IAC1C,IAAI,SAA2B;CACzC;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,UAAU;IAC/B,IAAI,SAAgB;CAC9B"}