@framers/agentos 0.1.158 → 0.1.160

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 (65) hide show
  1. package/README.md +79 -0
  2. package/dist/api/agent.d.ts +26 -3
  3. package/dist/api/agent.d.ts.map +1 -1
  4. package/dist/api/agent.js +87 -5
  5. package/dist/api/agent.js.map +1 -1
  6. package/dist/api/agentExport.d.ts +5 -76
  7. package/dist/api/agentExport.d.ts.map +1 -1
  8. package/dist/api/agentExport.js +2 -96
  9. package/dist/api/agentExport.js.map +1 -1
  10. package/dist/api/agentExportCore.d.ts +52 -0
  11. package/dist/api/agentExportCore.d.ts.map +1 -0
  12. package/dist/api/agentExportCore.js +62 -0
  13. package/dist/api/agentExportCore.js.map +1 -0
  14. package/dist/api/generateText.d.ts +80 -1
  15. package/dist/api/generateText.d.ts.map +1 -1
  16. package/dist/api/generateText.js +115 -5
  17. package/dist/api/generateText.js.map +1 -1
  18. package/dist/api/index.d.ts +8 -1
  19. package/dist/api/index.d.ts.map +1 -1
  20. package/dist/api/index.js +4 -0
  21. package/dist/api/index.js.map +1 -1
  22. package/dist/api/streamText.d.ts.map +1 -1
  23. package/dist/api/streamText.js +124 -6
  24. package/dist/api/streamText.js.map +1 -1
  25. package/dist/api/types.d.ts +2 -1
  26. package/dist/api/types.d.ts.map +1 -1
  27. package/dist/api/types.js.map +1 -1
  28. package/dist/extensions/types.d.ts +1 -1
  29. package/dist/extensions/types.d.ts.map +1 -1
  30. package/dist/extensions/types.js.map +1 -1
  31. package/dist/index.d.ts +3 -1
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +1 -0
  34. package/dist/index.js.map +1 -1
  35. package/dist/memory/AgentMemory.d.ts.map +1 -1
  36. package/dist/memory/AgentMemory.js +1 -0
  37. package/dist/memory/AgentMemory.js.map +1 -1
  38. package/dist/memory/core/types.d.ts +1 -1
  39. package/dist/memory/core/types.d.ts.map +1 -1
  40. package/dist/memory/io/extension/CognitiveMemoryExtension.js +1 -1
  41. package/dist/memory/io/extension/CognitiveMemoryExtension.js.map +1 -1
  42. package/dist/memory/io/extension/StandaloneMemoryExtension.js +1 -1
  43. package/dist/memory/io/extension/StandaloneMemoryExtension.js.map +1 -1
  44. package/dist/memory/io/facade/Memory.d.ts +1 -0
  45. package/dist/memory/io/facade/Memory.d.ts.map +1 -1
  46. package/dist/memory/io/facade/Memory.js +62 -4
  47. package/dist/memory/io/facade/Memory.js.map +1 -1
  48. package/dist/memory/io/tools/MemoryAddTool.d.ts +1 -1
  49. package/dist/memory/io/tools/MemoryAddTool.js +1 -1
  50. package/dist/memory/io/tools/MemoryAddTool.js.map +1 -1
  51. package/dist/memory/io/tools/MemorySearchTool.js +1 -1
  52. package/dist/memory/io/tools/MemorySearchTool.js.map +1 -1
  53. package/dist/memory/pipeline/observation/MemoryReflector.js +1 -1
  54. package/dist/memory/pipeline/observation/MemoryReflector.js.map +1 -1
  55. package/dist/memory/retrieval/store/SqliteBrain.d.ts +3 -3
  56. package/dist/memory/retrieval/store/SqliteBrain.d.ts.map +1 -1
  57. package/dist/memory/retrieval/store/SqliteBrain.js +35 -23
  58. package/dist/memory/retrieval/store/SqliteBrain.js.map +1 -1
  59. package/dist/orchestration/ir/types.d.ts +2 -1
  60. package/dist/orchestration/ir/types.d.ts.map +1 -1
  61. package/dist/rag/unified/types.d.ts +1 -1
  62. package/dist/rag/unified/types.d.ts.map +1 -1
  63. package/dist/rag/unified/types.js +1 -1
  64. package/dist/rag/unified/types.js.map +1 -1
  65. package/package.json +21 -1
package/README.md CHANGED
@@ -179,6 +179,44 @@ console.log(followUp.text);
179
179
  const config = tutor.exportJSON();
180
180
  ```
181
181
 
182
+ The lightweight API also supports per-call model routing and lifecycle middleware without booting the full `AgentOS` runtime:
183
+
184
+ ```typescript
185
+ import type { IModelRouter } from '@framers/agentos';
186
+
187
+ const router: IModelRouter = {
188
+ routerId: 'fast-vs-quality',
189
+ async initialize() {},
190
+ async selectModel(params) {
191
+ if (params.optimizationPreference === 'speed') {
192
+ return null; // fall back to the caller's provider/model
193
+ }
194
+ return null;
195
+ },
196
+ };
197
+
198
+ const reviewer = agent({
199
+ instructions: 'Review drafts for policy and tone.',
200
+ router,
201
+ skills: [{
202
+ skill: {
203
+ name: 'policy-review',
204
+ description: 'Review output before it is shown to users.',
205
+ content: 'Flag unsafe content and keep the tone concise.',
206
+ },
207
+ frontmatter: {} as any,
208
+ }],
209
+ onBeforeGeneration: async (ctx) => ({
210
+ ...ctx,
211
+ messages: [{ role: 'system', content: 'User is on the free plan.' }, ...ctx.messages],
212
+ }),
213
+ onAfterGeneration: async (result) => ({
214
+ ...result,
215
+ text: result.text.trim(),
216
+ }),
217
+ });
218
+ ```
219
+
182
220
  ### 5. Multimodal (Image, Video, Audio, OCR, Embeddings)
183
221
 
184
222
  ```typescript
@@ -369,6 +407,47 @@ const secureBot = agent({
369
407
  - **Grounding Guard** -- RAG-source claim verification and hallucination detection
370
408
  - **Content Policy Rewriter** -- 8 categories, LLM rewrite/block, 4 presets
371
409
 
410
+ ### 10. Citation Verification
411
+
412
+ Verify claims in agent responses against sources using cosine similarity:
413
+
414
+ ```typescript
415
+ import { CitationVerifier } from '@framers/agentos';
416
+
417
+ const verifier = new CitationVerifier({
418
+ embedFn: async (texts) => embeddingManager.embedBatch(texts),
419
+ });
420
+
421
+ const result = await verifier.verify(
422
+ "Tokyo has a population of 14 million. It is the capital of Japan.",
423
+ [
424
+ { content: "Tokyo proper has a population of approximately 14 million.", url: "https://example.com" },
425
+ { content: "Tokyo is the capital and largest city of Japan.", url: "https://example.com/japan" },
426
+ ]
427
+ );
428
+
429
+ console.log(result.summary);
430
+ // "2/2 claims verified (100%)"
431
+ console.log(result.claims[0]);
432
+ // { text: "Tokyo has a population of 14 million.", verdict: "supported", confidence: 0.87 }
433
+ ```
434
+
435
+ On-demand tool for agents:
436
+
437
+ ```typescript
438
+ // Agent can call verify_citations to check its own output
439
+ verify_citations({
440
+ text: "The speed of light is 300,000 km/s.",
441
+ webFallback: true, // search web if sources don't match
442
+ })
443
+ ```
444
+
445
+ Automatic during deep research — set `verifyCitations: true` in config:
446
+
447
+ ```json
448
+ { "queryRouter": { "verifyCitations": true } }
449
+ ```
450
+
372
451
  ### Default Models Per Provider
373
452
 
374
453
  When you specify `provider` without `model`, these defaults are used:
@@ -8,11 +8,13 @@
8
8
  * are not actively enforced in this lightweight layer — use the full AgentOS
9
9
  * runtime (`AgentOSOrchestrator`) or `agency()` for guardrail enforcement.
10
10
  */
11
- import { type FallbackProviderEntry, type GenerateTextOptions, type GenerateTextResult, type Message } from './generateText.js';
11
+ import { type FallbackProviderEntry, type GenerateTextOptions, type GenerateTextResult, type GenerationHookContext, type GenerationHookResult, type Message, type ToolCallHookInfo } from './generateText.js';
12
12
  import { type StreamTextResult } from './streamText.js';
13
- import { type AgentOSUsageAggregate, type AgentOSUsageLedgerOptions } from './runtime/usageLedger.js';
13
+ import type { IModelRouter } from '../core/llm/routing/IModelRouter.js';
14
+ import type { SkillEntry } from '../skills/types.js';
15
+ import type { AgentOSUsageAggregate, AgentOSUsageLedgerOptions } from './runtime/usageLedger.js';
14
16
  import type { BaseAgentConfig } from './types.js';
15
- import { type AgentExportConfig } from './agentExport.js';
17
+ import { type AgentExportConfig } from './agentExportCore.js';
16
18
  /**
17
19
  * Configuration options for the {@link agent} factory function.
18
20
  *
@@ -51,6 +53,27 @@ export interface AgentOptions extends BaseAgentConfig {
51
53
  * @param fallbackProvider - The provider identifier being tried next.
52
54
  */
53
55
  onFallback?: (error: Error, fallbackProvider: string) => void;
56
+ /** Model router for intelligent provider selection per-call. */
57
+ router?: IModelRouter;
58
+ /** Pre-generation hook, called before each LLM step. */
59
+ onBeforeGeneration?: (context: GenerationHookContext) => Promise<GenerationHookContext | void>;
60
+ /** Post-generation hook, called after each LLM step. */
61
+ onAfterGeneration?: (result: GenerationHookResult) => Promise<GenerationHookResult | void>;
62
+ /** Pre-tool-execution hook. */
63
+ onBeforeToolExecution?: (info: ToolCallHookInfo) => Promise<ToolCallHookInfo | null>;
64
+ /**
65
+ * Optional memory provider. When provided:
66
+ * - `session.send()`/`stream()` calls `memory.getContext()` before each turn
67
+ * and prepends results to the system prompt.
68
+ * - `session.send()`/`stream()` calls `memory.observe()` after each turn
69
+ * to encode the exchange into long-term memory.
70
+ */
71
+ memoryProvider?: any;
72
+ /**
73
+ * Optional skill entries to inject into the system prompt.
74
+ * Skill content is appended to the system prompt as markdown sections.
75
+ */
76
+ skills?: SkillEntry[];
54
77
  }
55
78
  /**
56
79
  * A named conversation session returned by `Agent.session()`.
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/api/agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,OAAO,EACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAc,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC/B,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAA4C,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEpG;;;;;;;GAOG;AACH,MAAM,WAAW,YAAa,SAAQ,eAAe;IACnD;;;OAGG;IACH,WAAW,CAAC,EAAE,yBAAyB,CAAC;IACxC;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAClC;;;;;;;;OAQG;IACH,iBAAiB,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAC5C;;;;;OAKG;IACH,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/D;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,oFAAoF;IACpF,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAChD;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IACvC,+EAA+E;IAC/E,QAAQ,IAAI,OAAO,EAAE,CAAC;IACtB,wFAAwF;IACxF,KAAK,IAAI,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACxC,uDAAuD;IACvD,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC3F;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,gBAAgB,CAAC;IAC9E;;;;;OAKG;IACH,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IACnC,8EAA8E;IAC9E,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC1D,+DAA+D;IAC/D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAC,UAAU,CAAC,GAAG,iBAAiB,CAAC;IACpE;;;;OAIG;IACH,UAAU,CAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC;CAC9D;AAgCD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,YAAY,GAAG,KAAK,CA+K/C"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/api/agent.ts"],"names":[],"mappings":"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"}
package/dist/api/agent.js CHANGED
@@ -10,12 +10,17 @@
10
10
  */
11
11
  import { generateText, } from './generateText.js';
12
12
  import { streamText } from './streamText.js';
13
- import { getRecordedAgentOSUsage, } from './runtime/usageLedger.js';
14
- import { exportAgentConfig, exportAgentConfigJSON } from './agentExport.js';
13
+ import { exportAgentConfig, exportAgentConfigJSON } from './agentExportCore.js';
15
14
  function mergeUsageLedgerOptions(...parts) {
16
15
  const merged = Object.assign({}, ...parts.filter(Boolean));
17
16
  return Object.keys(merged).length > 0 ? merged : undefined;
18
17
  }
18
+ async function loadRecordedAgentOSUsage(options) {
19
+ const { getRecordedAgentOSUsage } = await import('./runtime/usageLedger.js');
20
+ return getRecordedAgentOSUsage(options);
21
+ }
22
+ /** Timeout for memory operations to prevent blocking generation. */
23
+ const MEMORY_TIMEOUT_MS = 5000;
19
24
  function buildSystemPrompt(opts) {
20
25
  const sections = [];
21
26
  if (opts.instructions?.trim()) {
@@ -32,6 +37,14 @@ function buildSystemPrompt(opts) {
32
37
  sections.push(`Behavior traits: ${traits.join(', ')}.`);
33
38
  }
34
39
  }
40
+ // Append skill content as markdown sections
41
+ if (opts.skills?.length) {
42
+ for (const entry of opts.skills) {
43
+ if (entry.skill.content?.trim()) {
44
+ sections.push(entry.skill.content.trim());
45
+ }
46
+ }
47
+ }
35
48
  return sections.length > 0 ? sections.join('\n\n') : undefined;
36
49
  }
37
50
  /**
@@ -88,6 +101,10 @@ export function agent(opts) {
88
101
  usageLedger: effectiveLedger,
89
102
  fallbackProviders: opts.fallbackProviders,
90
103
  onFallback: opts.onFallback,
104
+ router: opts.router,
105
+ onBeforeGeneration: opts.onBeforeGeneration,
106
+ onAfterGeneration: opts.onAfterGeneration,
107
+ onBeforeToolExecution: opts.onBeforeToolExecution,
91
108
  };
92
109
  const agentInstance = {
93
110
  async generate(prompt, extra) {
@@ -118,11 +135,33 @@ export function agent(opts) {
118
135
  return {
119
136
  id: sessionId,
120
137
  async send(text) {
138
+ // Memory recall before generation
139
+ let memorySystemMsg;
140
+ if (opts.memoryProvider?.getContext) {
141
+ try {
142
+ const ctx = await Promise.race([
143
+ opts.memoryProvider.getContext(text, { tokenBudget: 2000 }),
144
+ new Promise((resolve) => setTimeout(() => resolve(null), MEMORY_TIMEOUT_MS)),
145
+ ]);
146
+ if (ctx?.contextText) {
147
+ memorySystemMsg = ctx.contextText;
148
+ }
149
+ }
150
+ catch {
151
+ // Memory recall failure is non-fatal
152
+ }
153
+ }
154
+ // Prepend memory context to system prompt
155
+ let system = baseOpts.system;
156
+ if (memorySystemMsg) {
157
+ system = [memorySystemMsg, system].filter(Boolean).join('\n\n') || undefined;
158
+ }
121
159
  const requestMessages = useMemory
122
160
  ? [...history, { role: 'user', content: text }]
123
161
  : [{ role: 'user', content: text }];
124
162
  const result = await generateText({
125
163
  ...baseOpts,
164
+ system,
126
165
  messages: requestMessages,
127
166
  usageLedger: mergeUsageLedgerOptions(baseOpts.usageLedger, {
128
167
  sessionId,
@@ -133,14 +172,50 @@ export function agent(opts) {
133
172
  history.push({ role: 'user', content: text });
134
173
  history.push({ role: 'assistant', content: result.text });
135
174
  }
175
+ // Memory observe after generation (fire-and-forget)
176
+ if (opts.memoryProvider?.observe) {
177
+ opts.memoryProvider.observe('user', text).catch(() => { });
178
+ if (result.text) {
179
+ opts.memoryProvider.observe('assistant', result.text).catch(() => { });
180
+ }
181
+ }
136
182
  return result;
137
183
  },
138
184
  stream(text) {
185
+ // For streaming, use onBeforeGeneration hook to inject memory context
186
+ const originalBeforeHook = baseOpts.onBeforeGeneration;
139
187
  const result = streamText({
140
188
  ...baseOpts,
141
189
  messages: useMemory
142
190
  ? [...history, { role: 'user', content: text }]
143
191
  : [{ role: 'user', content: text }],
192
+ onBeforeGeneration: opts.memoryProvider?.getContext
193
+ ? async (ctx) => {
194
+ // Inject memory context
195
+ try {
196
+ const memCtx = await Promise.race([
197
+ opts.memoryProvider.getContext(text, { tokenBudget: 2000 }),
198
+ new Promise((resolve) => setTimeout(() => resolve(null), MEMORY_TIMEOUT_MS)),
199
+ ]);
200
+ if (memCtx?.contextText) {
201
+ ctx = {
202
+ ...ctx,
203
+ messages: [
204
+ { role: 'system', content: memCtx.contextText },
205
+ ...ctx.messages,
206
+ ],
207
+ };
208
+ }
209
+ }
210
+ catch { /* non-fatal */ }
211
+ // Chain with user's hook if present
212
+ if (originalBeforeHook) {
213
+ const userResult = await originalBeforeHook(ctx);
214
+ return userResult ?? ctx;
215
+ }
216
+ return ctx;
217
+ }
218
+ : originalBeforeHook,
144
219
  usageLedger: mergeUsageLedgerOptions(baseOpts.usageLedger, {
145
220
  sessionId,
146
221
  source: 'agent.session.stream',
@@ -150,7 +225,14 @@ export function agent(opts) {
150
225
  if (useMemory) {
151
226
  history.push({ role: 'user', content: text });
152
227
  void result.text
153
- .then((replyText) => history.push({ role: 'assistant', content: replyText }))
228
+ .then((replyText) => {
229
+ history.push({ role: 'assistant', content: replyText });
230
+ // Memory observe after stream completes
231
+ if (opts.memoryProvider?.observe) {
232
+ opts.memoryProvider.observe('user', text).catch(() => { });
233
+ opts.memoryProvider.observe('assistant', replyText).catch(() => { });
234
+ }
235
+ })
154
236
  .catch(() => {
155
237
  /* history update failed, non-critical */
156
238
  });
@@ -161,7 +243,7 @@ export function agent(opts) {
161
243
  return [...history];
162
244
  },
163
245
  async usage() {
164
- return getRecordedAgentOSUsage({
246
+ return loadRecordedAgentOSUsage({
165
247
  enabled: baseOpts.usageLedger?.enabled,
166
248
  path: baseOpts.usageLedger?.path,
167
249
  sessionId,
@@ -173,7 +255,7 @@ export function agent(opts) {
173
255
  };
174
256
  },
175
257
  async usage(sessionId) {
176
- return getRecordedAgentOSUsage({
258
+ return loadRecordedAgentOSUsage({
177
259
  enabled: baseOpts.usageLedger?.enabled,
178
260
  path: baseOpts.usageLedger?.path,
179
261
  sessionId,
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/api/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/api/agent.ts"],"names":[],"mappings":"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"}
@@ -28,82 +28,11 @@
28
28
  * const reply = await restored.generate('Hello!');
29
29
  * ```
30
30
  */
31
- import type { BaseAgentConfig, AgencyStrategy, Agent } from './types.js';
32
- /**
33
- * Portable agent configuration envelope.
34
- *
35
- * Wraps a `BaseAgentConfig` with version metadata, export timestamp,
36
- * and type discriminator so import logic can reconstruct the correct agent
37
- * variant (single agent vs. multi-agent agency).
38
- */
39
- export interface AgentExportConfig {
40
- /** Schema version for forward-compatible deserialization. */
41
- version: '1.0.0';
42
- /** ISO 8601 timestamp of when the export was created. */
43
- exportedAt: string;
44
- /**
45
- * Discriminator: `'agent'` for a single-agent export, `'agency'` for
46
- * a multi-agent export that includes a sub-agent roster.
47
- */
48
- type: 'agent' | 'agency';
49
- /** The full agent configuration. */
50
- config: BaseAgentConfig;
51
- /** Sub-agent roster keyed by agent name. Present for agency exports. */
52
- agents?: Record<string, BaseAgentConfig>;
53
- /** Orchestration strategy. Present for agency exports. */
54
- strategy?: AgencyStrategy;
55
- /** Whether runtime strategy adaptation is enabled. */
56
- adaptive?: boolean;
57
- /** Maximum orchestration rounds for iterative strategies. */
58
- maxRounds?: number;
59
- /** Human-readable metadata about the export (name, author, tags, etc.). */
60
- metadata?: {
61
- /** Display name for the exported agent. */
62
- name?: string;
63
- /** Free-text description of what this agent does. */
64
- description?: string;
65
- /** Author identifier (person or system). */
66
- author?: string;
67
- /** Searchable tags for categorization. */
68
- tags?: string[];
69
- };
70
- }
71
- /**
72
- * Exports an agent's configuration as a portable {@link AgentExportConfig} object.
73
- *
74
- * Captures the full `BaseAgentConfig` including model, instructions,
75
- * personality, tools, guardrails, memory, RAG, voice, channels, and all
76
- * other configuration surfaces. For agency instances, the sub-agent roster,
77
- * strategy, and round limits are also included.
78
- *
79
- * @param agentInstance - The agent (or agency) instance to export.
80
- * @param metadata - Optional human-readable metadata to attach to the export.
81
- * @returns A portable config object that can be serialized to JSON or YAML.
82
- *
83
- * @example
84
- * ```ts
85
- * const config = exportAgentConfig(myAgent, {
86
- * name: 'Research Assistant',
87
- * author: 'team-alpha',
88
- * tags: ['research', 'summarization'],
89
- * });
90
- * ```
91
- */
92
- export declare function exportAgentConfig(agentInstance: Agent, metadata?: AgentExportConfig['metadata']): AgentExportConfig;
93
- /**
94
- * Exports an agent's configuration as a pretty-printed JSON string.
95
- *
96
- * @param agentInstance - The agent (or agency) instance to export.
97
- * @param metadata - Optional human-readable metadata to attach.
98
- * @returns JSON string with 2-space indentation.
99
- *
100
- * @example
101
- * ```ts
102
- * const json = exportAgentConfigJSON(myAgent);
103
- * fs.writeFileSync('agent.json', json);
104
- * ```
105
- */
106
- export declare function exportAgentConfigJSON(agentInstance: Agent, metadata?: AgentExportConfig['metadata']): string;
31
+ import type { Agent } from './types.js';
32
+ import { exportAgentConfig, exportAgentConfigJSON } from './agentExportCore.js';
33
+ export { exportAgentConfig, exportAgentConfigJSON };
34
+ export type { AgentExportConfig } from './agentExportCore.js';
35
+ import type { AgentExportConfig } from './agentExportCore.js';
107
36
  /**
108
37
  * Exports an agent's configuration as a YAML string.
109
38
  *
@@ -1 +1 @@
1
- {"version":3,"file":"agentExport.d.ts","sourceRoot":"","sources":["../../src/api/agentExport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAiB,cAAc,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAMxF;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,6DAA6D;IAC7D,OAAO,EAAE,OAAO,CAAC;IAEjB,yDAAyD;IACzD,UAAU,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;IAEzB,oCAAoC;IACpC,MAAM,EAAE,eAAe,CAAC;IAIxB,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAEzC,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B,sDAAsD;IACtD,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IAInB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE;QACT,2CAA2C;QAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,qDAAqD;QACrD,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,4CAA4C;QAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,0CAA0C;QAC1C,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;CACH;AAsDD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,iBAAiB,CAC/B,aAAa,EAAE,KAAK,EACpB,QAAQ,CAAC,EAAE,iBAAiB,CAAC,UAAU,CAAC,GACvC,iBAAiB,CA0BnB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,KAAK,EACpB,QAAQ,CAAC,EAAE,iBAAiB,CAAC,UAAU,CAAC,GACvC,MAAM,CAER;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,KAAK,EACpB,QAAQ,CAAC,EAAE,iBAAiB,CAAC,UAAU,CAAC,GACvC,MAAM,CAER;AAMD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,WAAW,CAAC,YAAY,EAAE,iBAAiB,GAAG,KAAK,CAiDlE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAGvD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAG1D;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAyDzF"}
1
+ {"version":3,"file":"agentExport.d.ts","sourceRoot":"","sources":["../../src/api/agentExport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAMH,OAAO,KAAK,EAAkD,KAAK,EAAE,MAAM,YAAY,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,CAAC;AACpD,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,KAAK,EACpB,QAAQ,CAAC,EAAE,iBAAiB,CAAC,UAAU,CAAC,GACvC,MAAM,CAER;AAMD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,WAAW,CAAC,YAAY,EAAE,iBAAiB,GAAG,KAAK,CAiDlE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAGvD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAG1D;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAyDzF"}
@@ -31,102 +31,8 @@
31
31
  import YAML from 'yaml';
32
32
  import { agent as createAgent } from './agent.js';
33
33
  import { agency as createAgency } from './agency.js';
34
- // ============================================================================
35
- // EXPORT FUNCTIONS
36
- // ============================================================================
37
- /**
38
- * Extracts the stored configuration from an Agent instance.
39
- *
40
- * The agent's config is captured at creation time by the `agent()` and
41
- * `agency()` factories and attached as a non-enumerable `__config` property.
42
- * If the property is absent (e.g. the agent was created by external code),
43
- * we return an empty config.
44
- *
45
- * @param agentInstance - The agent to extract config from.
46
- * @returns The stored BaseAgentConfig or an empty object.
47
- */
48
- function extractConfig(agentInstance) {
49
- // The __config property is set by our patched agent/agency factories
50
- const config = agentInstance.__config;
51
- if (config && typeof config === 'object') {
52
- return config;
53
- }
54
- // Fallback: no stored config — return empty
55
- return {};
56
- }
57
- /**
58
- * Extracts agency-specific fields from an Agent instance that was created
59
- * by the `agency()` factory.
60
- *
61
- * @param agentInstance - The agent/agency to extract from.
62
- * @returns Agency fields if present, or undefined for plain agents.
63
- */
64
- function extractAgencyFields(agentInstance) {
65
- const raw = agentInstance.__agencyConfig;
66
- if (raw && typeof raw === 'object') {
67
- return raw;
68
- }
69
- return undefined;
70
- }
71
- /**
72
- * Exports an agent's configuration as a portable {@link AgentExportConfig} object.
73
- *
74
- * Captures the full `BaseAgentConfig` including model, instructions,
75
- * personality, tools, guardrails, memory, RAG, voice, channels, and all
76
- * other configuration surfaces. For agency instances, the sub-agent roster,
77
- * strategy, and round limits are also included.
78
- *
79
- * @param agentInstance - The agent (or agency) instance to export.
80
- * @param metadata - Optional human-readable metadata to attach to the export.
81
- * @returns A portable config object that can be serialized to JSON or YAML.
82
- *
83
- * @example
84
- * ```ts
85
- * const config = exportAgentConfig(myAgent, {
86
- * name: 'Research Assistant',
87
- * author: 'team-alpha',
88
- * tags: ['research', 'summarization'],
89
- * });
90
- * ```
91
- */
92
- export function exportAgentConfig(agentInstance, metadata) {
93
- const config = extractConfig(agentInstance);
94
- const agencyFields = extractAgencyFields(agentInstance);
95
- const isAgency = !!agencyFields?.agents;
96
- const exportConfig = {
97
- version: '1.0.0',
98
- exportedAt: new Date().toISOString(),
99
- type: isAgency ? 'agency' : 'agent',
100
- config,
101
- };
102
- // Attach agency-specific fields when present
103
- if (isAgency && agencyFields) {
104
- exportConfig.agents = agencyFields.agents;
105
- exportConfig.strategy = agencyFields.strategy;
106
- exportConfig.adaptive = agencyFields.adaptive;
107
- exportConfig.maxRounds = agencyFields.maxRounds;
108
- }
109
- if (metadata) {
110
- exportConfig.metadata = metadata;
111
- }
112
- return exportConfig;
113
- }
114
- /**
115
- * Exports an agent's configuration as a pretty-printed JSON string.
116
- *
117
- * @param agentInstance - The agent (or agency) instance to export.
118
- * @param metadata - Optional human-readable metadata to attach.
119
- * @returns JSON string with 2-space indentation.
120
- *
121
- * @example
122
- * ```ts
123
- * const json = exportAgentConfigJSON(myAgent);
124
- * fs.writeFileSync('agent.json', json);
125
- * ```
126
- */
127
- export function exportAgentConfigJSON(agentInstance, metadata) {
128
- return JSON.stringify(exportAgentConfig(agentInstance, metadata), null, 2);
129
- }
34
+ import { exportAgentConfig, exportAgentConfigJSON } from './agentExportCore.js';
35
+ export { exportAgentConfig, exportAgentConfigJSON };
130
36
  /**
131
37
  * Exports an agent's configuration as a YAML string.
132
38
  *
@@ -1 +1 @@
1
- {"version":3,"file":"agentExport.js","sourceRoot":"","sources":["../../src/api/agentExport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agentExport.js","sourceRoot":"","sources":["../../src/api/agentExport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Shared export-only helpers for lightweight agents and agencies.
3
+ *
4
+ * Kept separate from `agentExport.ts` so the lightweight `agent()` entrypoint
5
+ * can expose config export methods without pulling in agency import/runtime
6
+ * code and optional channel adapters.
7
+ */
8
+ import type { BaseAgentConfig, AgencyStrategy, Agent } from './types.js';
9
+ /**
10
+ * Portable agent configuration envelope.
11
+ *
12
+ * Wraps a `BaseAgentConfig` with version metadata, export timestamp,
13
+ * and type discriminator so import logic can reconstruct the correct agent
14
+ * variant (single agent vs. multi-agent agency).
15
+ */
16
+ export interface AgentExportConfig {
17
+ /** Schema version for forward-compatible deserialization. */
18
+ version: '1.0.0';
19
+ /** ISO 8601 timestamp of when the export was created. */
20
+ exportedAt: string;
21
+ /**
22
+ * Discriminator: `'agent'` for a single-agent export, `'agency'` for
23
+ * a multi-agent export that includes a sub-agent roster.
24
+ */
25
+ type: 'agent' | 'agency';
26
+ /** The full agent configuration. */
27
+ config: BaseAgentConfig;
28
+ /** Sub-agent roster keyed by agent name. Present for agency exports. */
29
+ agents?: Record<string, BaseAgentConfig>;
30
+ /** Orchestration strategy. Present for agency exports. */
31
+ strategy?: AgencyStrategy;
32
+ /** Whether runtime strategy adaptation is enabled. */
33
+ adaptive?: boolean;
34
+ /** Maximum orchestration rounds for iterative strategies. */
35
+ maxRounds?: number;
36
+ /** Human-readable metadata about the export (name, author, tags, etc.). */
37
+ metadata?: {
38
+ name?: string;
39
+ description?: string;
40
+ author?: string;
41
+ tags?: string[];
42
+ };
43
+ }
44
+ /**
45
+ * Exports an agent's configuration as a portable object.
46
+ */
47
+ export declare function exportAgentConfig(agentInstance: Agent, metadata?: AgentExportConfig['metadata']): AgentExportConfig;
48
+ /**
49
+ * Exports an agent's configuration as pretty-printed JSON.
50
+ */
51
+ export declare function exportAgentConfigJSON(agentInstance: Agent, metadata?: AgentExportConfig['metadata']): string;
52
+ //# sourceMappingURL=agentExportCore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentExportCore.d.ts","sourceRoot":"","sources":["../../src/api/agentExportCore.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEzE;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,6DAA6D;IAC7D,OAAO,EAAE,OAAO,CAAC;IAEjB,yDAAyD;IACzD,UAAU,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;IAEzB,oCAAoC;IACpC,MAAM,EAAE,eAAe,CAAC;IAExB,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAEzC,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B,sDAAsD;IACtD,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;CACH;AAwCD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,aAAa,EAAE,KAAK,EACpB,QAAQ,CAAC,EAAE,iBAAiB,CAAC,UAAU,CAAC,GACvC,iBAAiB,CAwBnB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,KAAK,EACpB,QAAQ,CAAC,EAAE,iBAAiB,CAAC,UAAU,CAAC,GACvC,MAAM,CAER"}