@n8n/agents 0.6.0 → 0.7.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 (114) hide show
  1. package/dist/build.tsbuildinfo +1 -1
  2. package/dist/index.d.ts +12 -8
  3. package/dist/index.js +10 -3
  4. package/dist/index.js.map +1 -1
  5. package/dist/integrations/langsmith.d.ts +2 -0
  6. package/dist/integrations/langsmith.js +117 -2
  7. package/dist/integrations/langsmith.js.map +1 -1
  8. package/dist/runtime/agent-runtime.d.ts +6 -7
  9. package/dist/runtime/agent-runtime.js +390 -204
  10. package/dist/runtime/agent-runtime.js.map +1 -1
  11. package/dist/runtime/event-bus.d.ts +1 -0
  12. package/dist/runtime/event-bus.js +3 -0
  13. package/dist/runtime/event-bus.js.map +1 -1
  14. package/dist/runtime/json-value.d.ts +2 -0
  15. package/dist/runtime/json-value.js +43 -0
  16. package/dist/runtime/json-value.js.map +1 -0
  17. package/dist/runtime/memory-store.d.ts +40 -2
  18. package/dist/runtime/memory-store.js +138 -3
  19. package/dist/runtime/memory-store.js.map +1 -1
  20. package/dist/runtime/message-list.d.ts +5 -0
  21. package/dist/runtime/message-list.js +47 -0
  22. package/dist/runtime/message-list.js.map +1 -1
  23. package/dist/runtime/messages.d.ts +0 -2
  24. package/dist/runtime/messages.js +127 -101
  25. package/dist/runtime/messages.js.map +1 -1
  26. package/dist/runtime/model-factory.js +117 -34
  27. package/dist/runtime/model-factory.js.map +1 -1
  28. package/dist/runtime/provider-credentials.d.ts +167 -0
  29. package/dist/runtime/provider-credentials.js +34 -0
  30. package/dist/runtime/provider-credentials.js.map +1 -0
  31. package/dist/runtime/runtime-helpers.d.ts +3 -4
  32. package/dist/runtime/runtime-helpers.js +6 -32
  33. package/dist/runtime/runtime-helpers.js.map +1 -1
  34. package/dist/runtime/stream.js +25 -43
  35. package/dist/runtime/stream.js.map +1 -1
  36. package/dist/runtime/strip-orphaned-tool-messages.js +1 -25
  37. package/dist/runtime/strip-orphaned-tool-messages.js.map +1 -1
  38. package/dist/runtime/title-generation.d.ts +12 -3
  39. package/dist/runtime/title-generation.js +72 -3
  40. package/dist/runtime/title-generation.js.map +1 -1
  41. package/dist/runtime/tool-adapter.d.ts +1 -1
  42. package/dist/runtime/tool-adapter.js +3 -2
  43. package/dist/runtime/tool-adapter.js.map +1 -1
  44. package/dist/runtime/working-memory.d.ts +1 -1
  45. package/dist/runtime/working-memory.js +1 -1
  46. package/dist/runtime/working-memory.js.map +1 -1
  47. package/dist/sdk/agent.d.ts +24 -23
  48. package/dist/sdk/agent.js +50 -324
  49. package/dist/sdk/agent.js.map +1 -1
  50. package/dist/sdk/eval.d.ts +0 -3
  51. package/dist/sdk/eval.js +4 -9
  52. package/dist/sdk/eval.js.map +1 -1
  53. package/dist/sdk/provider-capabilities.js +4 -2
  54. package/dist/sdk/provider-capabilities.js.map +1 -1
  55. package/dist/sdk/provider-tools.d.ts +17 -2
  56. package/dist/sdk/provider-tools.js +19 -0
  57. package/dist/sdk/provider-tools.js.map +1 -1
  58. package/dist/sdk/telemetry.d.ts +2 -0
  59. package/dist/sdk/telemetry.js +6 -0
  60. package/dist/sdk/telemetry.js.map +1 -1
  61. package/dist/sdk/tool.d.ts +17 -10
  62. package/dist/sdk/tool.js +34 -0
  63. package/dist/sdk/tool.js.map +1 -1
  64. package/dist/sdk/verify.js +1 -4
  65. package/dist/sdk/verify.js.map +1 -1
  66. package/dist/storage/base-memory.d.ts +64 -0
  67. package/dist/storage/base-memory.js +54 -0
  68. package/dist/storage/base-memory.js.map +1 -0
  69. package/dist/storage/postgres-memory.d.ts +33 -16
  70. package/dist/storage/postgres-memory.js +46 -25
  71. package/dist/storage/postgres-memory.js.map +1 -1
  72. package/dist/storage/sqlite-memory.d.ts +16 -6
  73. package/dist/storage/sqlite-memory.js +16 -10
  74. package/dist/storage/sqlite-memory.js.map +1 -1
  75. package/dist/types/index.d.ts +4 -2
  76. package/dist/types/index.js +3 -1
  77. package/dist/types/index.js.map +1 -1
  78. package/dist/types/runtime/event.d.ts +3 -9
  79. package/dist/types/runtime/event.js.map +1 -1
  80. package/dist/types/sdk/agent-builder.d.ts +0 -3
  81. package/dist/types/sdk/agent.d.ts +64 -27
  82. package/dist/types/sdk/credential-provider.d.ts +2 -3
  83. package/dist/types/sdk/memory.d.ts +23 -2
  84. package/dist/types/sdk/message.d.ts +11 -10
  85. package/dist/types/sdk/observation.d.ts +100 -0
  86. package/dist/types/sdk/observation.js +5 -0
  87. package/dist/types/sdk/observation.js.map +1 -0
  88. package/dist/types/sdk/tool-descriptor.d.ts +13 -0
  89. package/dist/types/sdk/{schema.js → tool-descriptor.js} +1 -1
  90. package/dist/types/sdk/tool-descriptor.js.map +1 -0
  91. package/dist/types/sdk/tool.d.ts +8 -3
  92. package/dist/types/telemetry.d.ts +1 -0
  93. package/dist/utils/parse.d.ts +10 -0
  94. package/dist/utils/parse.js +26 -0
  95. package/dist/utils/parse.js.map +1 -0
  96. package/dist/utils/zod.d.ts +1 -1
  97. package/dist/utils/zod.js.map +1 -1
  98. package/dist/workspace/tools/batch-str-replace-file.d.ts +3 -0
  99. package/dist/workspace/tools/batch-str-replace-file.js +67 -0
  100. package/dist/workspace/tools/batch-str-replace-file.js.map +1 -0
  101. package/dist/workspace/tools/str-replace-file.d.ts +3 -0
  102. package/dist/workspace/tools/str-replace-file.js +51 -0
  103. package/dist/workspace/tools/str-replace-file.js.map +1 -0
  104. package/dist/workspace/tools/workspace-tools.js +4 -0
  105. package/dist/workspace/tools/workspace-tools.js.map +1 -1
  106. package/package.json +17 -8
  107. package/dist/codegen/generate-agent-code.d.ts +0 -2
  108. package/dist/codegen/generate-agent-code.js +0 -197
  109. package/dist/codegen/generate-agent-code.js.map +0 -1
  110. package/dist/sdk/from-schema.d.ts +0 -15
  111. package/dist/sdk/from-schema.js +0 -218
  112. package/dist/sdk/from-schema.js.map +0 -1
  113. package/dist/types/sdk/schema.d.ts +0 -99
  114. package/dist/types/sdk/schema.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"tool-adapter.js","sourceRoot":"","sources":["../../src/runtime/tool-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-adapter.js","sourceRoot":"","sources":["../../src/runtime/tool-adapter.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  import type { BuiltTool } from '../types';
3
3
  type ZodObjectSchema = z.ZodObject<z.ZodRawShape>;
4
- export declare const UPDATE_WORKING_MEMORY_TOOL_NAME = "updateWorkingMemory";
4
+ export declare const UPDATE_WORKING_MEMORY_TOOL_NAME = "update_working_memory";
5
5
  export declare const WORKING_MEMORY_DEFAULT_INSTRUCTION: string;
6
6
  export declare function buildWorkingMemoryInstruction(template: string, structured: boolean, instruction?: string): string;
7
7
  export declare function templateFromSchema(schema: ZodObjectSchema): string;
@@ -5,7 +5,7 @@ exports.buildWorkingMemoryInstruction = buildWorkingMemoryInstruction;
5
5
  exports.templateFromSchema = templateFromSchema;
6
6
  exports.buildWorkingMemoryTool = buildWorkingMemoryTool;
7
7
  const zod_1 = require("zod");
8
- exports.UPDATE_WORKING_MEMORY_TOOL_NAME = 'updateWorkingMemory';
8
+ exports.UPDATE_WORKING_MEMORY_TOOL_NAME = 'update_working_memory';
9
9
  exports.WORKING_MEMORY_DEFAULT_INSTRUCTION = [
10
10
  'You have persistent working memory that survives across conversations.',
11
11
  'Your current working memory state is shown below.',
@@ -1 +1 @@
1
- {"version":3,"file":"working-memory.js","sourceRoot":"","sources":["../../src/runtime/working-memory.ts"],"names":[],"mappings":";;;AA4BA,sEAuBC;AAKD,gDAOC;AAkBD,wDA+BC;AAhHD,6BAAwB;AAMX,QAAA,+BAA+B,GAAG,qBAAqB,CAAC;AAMxD,QAAA,kCAAkC,GAAG;IACjD,wEAAwE;IACxE,mDAAmD;IACnD,uGAAuG,uCAA+B,UAAU;IAChJ,+FAA+F;CAC/F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAWb,SAAgB,6BAA6B,CAC5C,QAAgB,EAChB,UAAmB,EACnB,WAAoB;IAEpB,MAAM,MAAM,GAAG,UAAU;QACxB,CAAC,CAAC,4DAA4D;QAC9D,CAAC,CAAC,sDAAsD,CAAC;IAE1D,MAAM,IAAI,GAAG,WAAW,IAAI,0CAAkC,CAAC;IAE/D,OAAO;QACN,EAAE;QACF,mBAAmB;QACnB,EAAE;QACF,IAAI;QACJ,GAAG,MAAM,GAAG;QACZ,EAAE;QACF,mBAAmB;QACnB,KAAK;QACL,QAAQ;QACR,KAAK;KACL,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,CAAC;AAKD,SAAgB,kBAAkB,CAAC,MAAuB;IACzD,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC;QAC/B,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACrC,CAAC;AAkBD,SAAgB,sBAAsB,CAAC,MAA+B;IACrE,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC7B,OAAO;YACN,IAAI,EAAE,uCAA+B;YACrC,WAAW,EACV,gJAAgJ;YACjJ,WAAW,EAAE,MAAM;YACnB,OAAO,EAAE,KAAK,EAAE,KAAc,EAAE,EAAE;gBACjC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC/C,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC9B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC;YAC9D,CAAC;SACD,CAAC;IACH,CAAC;IAED,MAAM,cAAc,GAAG,OAAC,CAAC,MAAM,CAAC;QAC/B,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;KAClE,CAAC,CAAC;IAEH,OAAO;QACN,IAAI,EAAE,uCAA+B;QACrC,WAAW,EACV,gJAAgJ;QACjJ,WAAW,EAAE,cAAc;QAC3B,OAAO,EAAE,KAAK,EAAE,KAAc,EAAE,EAAE;YACjC,MAAM,EAAE,MAAM,EAAE,GAAG,KAAuC,CAAC;YAC3D,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC7B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC;QAC9D,CAAC;KACD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"working-memory.js","sourceRoot":"","sources":["../../src/runtime/working-memory.ts"],"names":[],"mappings":";;;AA4BA,sEAuBC;AAKD,gDAOC;AAkBD,wDA+BC;AAhHD,6BAAwB;AAMX,QAAA,+BAA+B,GAAG,uBAAuB,CAAC;AAM1D,QAAA,kCAAkC,GAAG;IACjD,wEAAwE;IACxE,mDAAmD;IACnD,uGAAuG,uCAA+B,UAAU;IAChJ,+FAA+F;CAC/F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAWb,SAAgB,6BAA6B,CAC5C,QAAgB,EAChB,UAAmB,EACnB,WAAoB;IAEpB,MAAM,MAAM,GAAG,UAAU;QACxB,CAAC,CAAC,4DAA4D;QAC9D,CAAC,CAAC,sDAAsD,CAAC;IAE1D,MAAM,IAAI,GAAG,WAAW,IAAI,0CAAkC,CAAC;IAE/D,OAAO;QACN,EAAE;QACF,mBAAmB;QACnB,EAAE;QACF,IAAI;QACJ,GAAG,MAAM,GAAG;QACZ,EAAE;QACF,mBAAmB;QACnB,KAAK;QACL,QAAQ;QACR,KAAK;KACL,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,CAAC;AAKD,SAAgB,kBAAkB,CAAC,MAAuB;IACzD,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC;QAC/B,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACrC,CAAC;AAkBD,SAAgB,sBAAsB,CAAC,MAA+B;IACrE,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC7B,OAAO;YACN,IAAI,EAAE,uCAA+B;YACrC,WAAW,EACV,gJAAgJ;YACjJ,WAAW,EAAE,MAAM;YACnB,OAAO,EAAE,KAAK,EAAE,KAAc,EAAE,EAAE;gBACjC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC/C,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC9B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC;YAC9D,CAAC;SACD,CAAC;IACH,CAAC;IAED,MAAM,cAAc,GAAG,OAAC,CAAC,MAAM,CAAC;QAC/B,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;KAClE,CAAC,CAAC;IAEH,OAAO;QACN,IAAI,EAAE,uCAA+B;QACrC,WAAW,EACV,gJAAgJ;QACjJ,WAAW,EAAE,cAAc;QAC3B,OAAO,EAAE,KAAK,EAAE,KAAc,EAAE,EAAE;YACjC,MAAM,EAAE,MAAM,EAAE,GAAG,KAAuC,CAAC;YAC3D,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC7B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC;QAC9D,CAAC;KACD,CAAC;AACH,CAAC"}
@@ -1,24 +1,36 @@
1
1
  import type { ProviderOptions } from '@ai-sdk/provider-utils';
2
2
  import { z } from 'zod';
3
- import type { AgentRuntimeConfig } from '../runtime/agent-runtime';
4
- import type { AgentEvent, AgentEventHandler, AgentMiddleware, BuiltAgent, BuiltEval, BuiltGuardrail, BuiltMemory, BuiltProviderTool, BuiltTelemetry, BuiltTool, CheckpointStore, ExecutionOptions, GenerateResult, MemoryConfig, ModelConfig, Provider, ResumeOptions, RunOptions, StreamResult, ThinkingConfigFor } from '../types';
5
3
  import type { Eval } from './eval';
6
- import { type FromSchemaOptions } from './from-schema';
7
4
  import type { McpClient } from './mcp-client';
8
5
  import { Memory } from './memory';
9
6
  import { Telemetry } from './telemetry';
7
+ import { AgentRuntime } from '../runtime/agent-runtime';
8
+ import type { AgentEvent, AgentEventHandler, AgentMiddleware, BuiltAgent, BuiltEval, BuiltGuardrail, BuiltMemory, BuiltProviderTool, BuiltTool, BuiltTelemetry, CheckpointStore, ExecutionOptions, GenerateResult, MemoryConfig, ModelConfig, Provider, RunOptions, SerializableAgentState, StreamResult, ThinkingConfig, ThinkingConfigFor, ResumeOptions } from '../types';
10
9
  import type { AgentBuilder } from '../types/sdk/agent-builder';
11
- import type { CredentialProvider } from '../types/sdk/credential-provider';
12
10
  import type { AgentMessage } from '../types/sdk/message';
13
- import type { AgentSchema } from '../types/sdk/schema';
14
11
  import type { Workspace } from '../workspace/workspace';
15
12
  type ToolParameter = BuiltTool | {
16
13
  build(): BuiltTool;
17
14
  };
15
+ export interface AgentSnapshot {
16
+ name: string;
17
+ model: {
18
+ provider: string | null;
19
+ name: string | null;
20
+ };
21
+ instructions: string | null;
22
+ tools: ReadonlyArray<{
23
+ name: string;
24
+ description: string | undefined;
25
+ }>;
26
+ hasMemory: boolean;
27
+ thinking: ThinkingConfig | null;
28
+ toolCallConcurrency: number | null;
29
+ requireToolApproval: boolean;
30
+ }
18
31
  export declare class Agent implements BuiltAgent, AgentBuilder {
19
32
  readonly name: string;
20
- private modelId?;
21
- private modelConfigObj?;
33
+ private modelConfig?;
22
34
  private instructionProviderOpts?;
23
35
  private instructionsText?;
24
36
  private tools;
@@ -30,9 +42,7 @@ export declare class Agent implements BuiltAgent, AgentBuilder {
30
42
  private outputSchema?;
31
43
  private checkpointStore?;
32
44
  private thinkingConfig?;
33
- private credentialName?;
34
- private credProvider?;
35
- private resolvedKey?;
45
+ private runtime?;
36
46
  private concurrencyValue?;
37
47
  private telemetryBuilder?;
38
48
  private telemetryConfig?;
@@ -40,11 +50,9 @@ export declare class Agent implements BuiltAgent, AgentBuilder {
40
50
  private requireToolApprovalValue;
41
51
  private mcpClients;
42
52
  private buildPromise;
43
- private agentHandlers;
44
- private activeEventBuses;
53
+ private eventBus;
45
54
  private workspaceInstance?;
46
55
  constructor(name: string);
47
- static fromSchema(schema: AgentSchema, name: string, options: FromSchemaOptions): Promise<Agent>;
48
56
  hasCheckpointStorage(): boolean;
49
57
  hasMemory(): boolean;
50
58
  model(providerOrIdOrConfig: string | ModelConfig, modelName?: string): this;
@@ -66,10 +74,6 @@ export declare class Agent implements BuiltAgent, AgentBuilder {
66
74
  ensureBuilt(): BuiltEval;
67
75
  }): this;
68
76
  checkpoint(storage: 'memory' | CheckpointStore): this;
69
- credential(name: string): this;
70
- credentialProvider(provider: CredentialProvider): this;
71
- protected get declaredCredential(): string | undefined;
72
- protected set resolvedApiKey(key: string);
73
77
  structuredOutput(schema: z.ZodType): this;
74
78
  thinking<P extends Provider>(_provider: P, config?: ThinkingConfigFor<P>): this;
75
79
  telemetry(t: Telemetry | BuiltTelemetry): this;
@@ -80,9 +84,9 @@ export declare class Agent implements BuiltAgent, AgentBuilder {
80
84
  mcp(client: McpClient): this;
81
85
  get evaluations(): BuiltEval[];
82
86
  on(event: AgentEvent, handler: AgentEventHandler): void;
83
- off(event: AgentEvent, handler: AgentEventHandler): void;
84
87
  asTool(description: string): BuiltTool;
85
- describe(): AgentSchema;
88
+ get snapshot(): AgentSnapshot;
89
+ getState(): SerializableAgentState;
86
90
  abort(): void;
87
91
  generate(input: AgentMessage[] | string, options?: RunOptions & ExecutionOptions): Promise<GenerateResult>;
88
92
  stream(input: AgentMessage[] | string, options?: RunOptions & ExecutionOptions): Promise<StreamResult>;
@@ -93,10 +97,7 @@ export declare class Agent implements BuiltAgent, AgentBuilder {
93
97
  deny(method: 'generate', options: ResumeOptions & ExecutionOptions): Promise<GenerateResult>;
94
98
  deny(method: 'stream', options: ResumeOptions & ExecutionOptions): Promise<StreamResult>;
95
99
  private ensureBuilt;
96
- private createRuntime;
97
- private trackStreamBus;
98
- private cleanupBus;
99
100
  private toMessages;
100
- protected build(): Promise<AgentRuntimeConfig>;
101
+ protected build(): Promise<AgentRuntime>;
101
102
  }
102
103
  export {};
package/dist/sdk/agent.js CHANGED
@@ -2,17 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Agent = void 0;
4
4
  const zod_1 = require("zod");
5
- const agent_runtime_1 = require("../runtime/agent-runtime");
6
- const event_bus_1 = require("../runtime/event-bus");
7
- const memory_store_1 = require("../runtime/memory-store");
8
- const run_state_1 = require("../runtime/run-state");
9
- const tool_adapter_1 = require("../runtime/tool-adapter");
10
- const catalog_1 = require("./catalog");
11
- const from_schema_1 = require("./from-schema");
12
5
  const memory_1 = require("./memory");
13
6
  const telemetry_1 = require("./telemetry");
14
7
  const tool_1 = require("./tool");
15
- const zod_2 = require("../utils/zod");
8
+ const agent_runtime_1 = require("../runtime/agent-runtime");
9
+ const event_bus_1 = require("../runtime/event-bus");
10
+ const tool_adapter_1 = require("../runtime/tool-adapter");
16
11
  const DEFAULT_LAST_MESSAGES = 10;
17
12
  class Agent {
18
13
  constructor(name) {
@@ -24,15 +19,9 @@ class Agent {
24
19
  this.middlewares = [];
25
20
  this.requireToolApprovalValue = false;
26
21
  this.mcpClients = [];
27
- this.agentHandlers = new Map();
28
- this.activeEventBuses = new Set();
22
+ this.eventBus = new event_bus_1.AgentEventBus();
29
23
  this.name = name;
30
24
  }
31
- static async fromSchema(schema, name, options) {
32
- const agent = new Agent(name);
33
- await (0, from_schema_1.fromSchema)(agent, schema, options);
34
- return agent;
35
- }
36
25
  hasCheckpointStorage() {
37
26
  return this.checkpointStore !== undefined;
38
27
  }
@@ -41,12 +30,10 @@ class Agent {
41
30
  }
42
31
  model(providerOrIdOrConfig, modelName) {
43
32
  if (typeof providerOrIdOrConfig === 'string') {
44
- this.modelId = modelName ? `${providerOrIdOrConfig}/${modelName}` : providerOrIdOrConfig;
45
- this.modelConfigObj = undefined;
33
+ this.modelConfig = modelName ? `${providerOrIdOrConfig}/${modelName}` : providerOrIdOrConfig;
46
34
  }
47
35
  else {
48
- this.modelConfigObj = providerOrIdOrConfig;
49
- this.modelId = undefined;
36
+ this.modelConfig = providerOrIdOrConfig;
50
37
  }
51
38
  return this;
52
39
  }
@@ -88,7 +75,7 @@ class Agent {
88
75
  }
89
76
  else {
90
77
  throw new Error('Invalid memory configuration. Use: new Memory().lastMessages(N) for in-process memory, ' +
91
- 'or new Memory().storage(new SqliteMemory(path)).lastMessages(N) for persistent storage. ' +
78
+ 'or new Memory().storage(myBuiltMemoryBackend).lastMessages(N) for a persistent backend. ' +
92
79
  'See the Memory class documentation for all options.');
93
80
  }
94
81
  return this;
@@ -114,20 +101,6 @@ class Agent {
114
101
  this.checkpointStore = storage;
115
102
  return this;
116
103
  }
117
- credential(name) {
118
- this.credentialName = name;
119
- return this;
120
- }
121
- credentialProvider(provider) {
122
- this.credProvider = provider;
123
- return this;
124
- }
125
- get declaredCredential() {
126
- return this.credentialName;
127
- }
128
- set resolvedApiKey(key) {
129
- this.resolvedKey = key;
130
- }
131
104
  structuredOutput(schema) {
132
105
  this.outputSchema = schema;
133
106
  return this;
@@ -173,21 +146,7 @@ class Agent {
173
146
  return [...this.agentEvals];
174
147
  }
175
148
  on(event, handler) {
176
- let set = this.agentHandlers.get(event);
177
- if (!set) {
178
- set = new Set();
179
- this.agentHandlers.set(event, set);
180
- }
181
- set.add(handler);
182
- }
183
- off(event, handler) {
184
- const set = this.agentHandlers.get(event);
185
- if (!set)
186
- return;
187
- set.delete(handler);
188
- if (set.size === 0) {
189
- this.agentHandlers.delete(event);
190
- }
149
+ this.eventBus.on(event, handler);
191
150
  }
192
151
  asTool(description) {
193
152
  const agent = this;
@@ -224,220 +183,67 @@ class Agent {
224
183
  });
225
184
  return tool.build();
226
185
  }
227
- describe() {
186
+ get snapshot() {
228
187
  let model;
229
- if (this.modelConfigObj) {
230
- model = { provider: null, name: null, raw: 'object' };
231
- }
232
- else if (this.modelId) {
233
- const slashIdx = this.modelId.indexOf('/');
188
+ const rawModelId = typeof this.modelConfig === 'string'
189
+ ? this.modelConfig
190
+ : this.modelConfig && typeof this.modelConfig === 'object' && 'id' in this.modelConfig
191
+ ? this.modelConfig.id
192
+ : undefined;
193
+ if (rawModelId) {
194
+ const slashIdx = rawModelId.indexOf('/');
234
195
  if (slashIdx === -1) {
235
- model = { provider: null, name: this.modelId };
196
+ model = { provider: null, name: rawModelId };
236
197
  }
237
198
  else {
238
199
  model = {
239
- provider: this.modelId.slice(0, slashIdx),
240
- name: this.modelId.slice(slashIdx + 1),
200
+ provider: rawModelId.slice(0, slashIdx),
201
+ name: rawModelId.slice(slashIdx + 1),
241
202
  };
242
203
  }
243
204
  }
244
205
  else {
245
206
  model = { provider: null, name: null };
246
207
  }
247
- const toolSchemas = this.tools.map((tool) => {
248
- const isWorkflow = '__workflowTool' in tool && Boolean(tool.__workflowTool);
249
- return {
250
- name: tool.name,
251
- description: tool.description,
252
- type: isWorkflow ? 'workflow' : 'custom',
253
- editable: !isWorkflow,
254
- inputSchemaSource: null,
255
- outputSchemaSource: null,
256
- handlerSource: tool.handler?.toString() ?? null,
257
- suspendSchemaSource: null,
258
- resumeSchemaSource: null,
259
- toMessageSource: null,
260
- requireApproval: tool.withDefaultApproval ?? false,
261
- needsApprovalFnSource: null,
262
- providerOptions: tool.providerOptions ?? null,
263
- inputSchema: (0, zod_2.zodToJsonSchema)(tool.inputSchema),
264
- outputSchema: (0, zod_2.zodToJsonSchema)(tool.outputSchema),
265
- hasSuspend: Boolean(tool.suspendSchema),
266
- hasResume: Boolean(tool.resumeSchema),
267
- hasToMessage: Boolean(tool.toMessage),
268
- };
269
- });
270
- const providerToolSchemas = this.providerTools.map((pt) => ({
271
- name: pt.name,
272
- source: '',
273
- }));
274
- const guardrails = [
275
- ...this.inputGuardrails.map((g) => ({
276
- name: g.name,
277
- guardType: g.guardType,
278
- strategy: g.strategy,
279
- position: 'input',
280
- config: g._config,
281
- source: '',
282
- })),
283
- ...this.outputGuardrails.map((g) => ({
284
- name: g.name,
285
- guardType: g.guardType,
286
- strategy: g.strategy,
287
- position: 'output',
288
- config: g._config,
289
- source: '',
290
- })),
291
- ];
292
- let mcp = null;
293
- if (this.mcpClients.length > 0) {
294
- mcp = [];
295
- for (const client of this.mcpClients) {
296
- for (const serverName of client.serverNames) {
297
- mcp.push({
298
- name: serverName,
299
- configSource: '',
300
- });
301
- }
302
- }
303
- }
304
- const telemetry = this.telemetryBuilder || this.telemetryConfig ? { source: '' } : null;
305
- const checkpoint = this.checkpointStore === 'memory' ? 'memory' : null;
306
- let memory = null;
307
- if (this.memoryConfig) {
308
- const mc = this.memoryConfig;
309
- let semanticRecall = null;
310
- if (mc.semanticRecall) {
311
- semanticRecall = {
312
- topK: mc.semanticRecall.topK,
313
- messageRange: mc.semanticRecall.messageRange
314
- ? {
315
- before: mc.semanticRecall.messageRange.before,
316
- after: mc.semanticRecall.messageRange.after,
317
- }
318
- : null,
319
- embedder: mc.semanticRecall.embedder ?? null,
320
- };
321
- }
322
- let workingMemory = null;
323
- if (mc.workingMemory) {
324
- workingMemory = {
325
- type: mc.workingMemory.structured ? 'structured' : 'freeform',
326
- ...(mc.workingMemory.schema
327
- ? { schema: (0, zod_2.zodToJsonSchema)(mc.workingMemory.schema) ?? undefined }
328
- : {}),
329
- ...(mc.workingMemory.template ? { template: mc.workingMemory.template } : {}),
330
- };
331
- }
332
- memory = {
333
- source: null,
334
- storage: mc.memory instanceof memory_store_1.InMemoryMemory ? 'memory' : 'custom',
335
- lastMessages: mc.lastMessages ?? null,
336
- semanticRecall,
337
- workingMemory,
338
- };
339
- }
340
- const evaluations = this.agentEvals.map((e) => ({
341
- name: e.name,
342
- description: e.description ?? null,
343
- type: e.evalType,
344
- modelId: e.modelId ?? null,
345
- hasCredential: e.credentialName !== null,
346
- credentialName: e.credentialName,
347
- handlerSource: null,
348
- }));
349
- const structuredOutput = {
350
- enabled: Boolean(this.outputSchema),
351
- schemaSource: null,
352
- };
353
- let thinking = null;
354
- if (this.thinkingConfig) {
355
- const provider = this.modelId?.split('/')[0];
356
- if (provider === 'anthropic') {
357
- thinking = {
358
- provider: 'anthropic',
359
- budgetTokens: 'budgetTokens' in this.thinkingConfig
360
- ? this.thinkingConfig.budgetTokens
361
- : undefined,
362
- };
363
- }
364
- else if (provider === 'openai') {
365
- thinking = {
366
- provider: 'openai',
367
- reasoningEffort: 'reasoningEffort' in this.thinkingConfig
368
- ? String(this.thinkingConfig.reasoningEffort)
369
- : undefined,
370
- };
371
- }
372
- }
373
208
  return {
209
+ name: this.name,
374
210
  model,
375
- credential: this.credentialName ?? null,
376
211
  instructions: this.instructionsText ?? null,
377
- description: null,
378
- tools: toolSchemas,
379
- providerTools: providerToolSchemas,
380
- memory,
381
- evaluations,
382
- guardrails,
383
- mcp,
384
- telemetry,
385
- checkpoint,
386
- config: {
387
- structuredOutput,
388
- thinking,
389
- toolCallConcurrency: this.concurrencyValue ?? null,
390
- requireToolApproval: this.requireToolApprovalValue,
391
- },
212
+ tools: this.tools.map((t) => ({ name: t.name, description: t.description })),
213
+ hasMemory: this.memoryConfig !== undefined,
214
+ thinking: this.thinkingConfig ?? null,
215
+ toolCallConcurrency: this.concurrencyValue ?? null,
216
+ requireToolApproval: this.requireToolApprovalValue,
392
217
  };
393
218
  }
394
- abort() {
395
- for (const bus of this.activeEventBuses) {
396
- bus.abort();
219
+ getState() {
220
+ if (!this.runtime) {
221
+ return {
222
+ persistence: undefined,
223
+ status: 'idle',
224
+ messageList: { messages: [], historyIds: [], inputIds: [], responseIds: [] },
225
+ pendingToolCalls: {},
226
+ };
397
227
  }
228
+ return this.runtime.getState();
229
+ }
230
+ abort() {
231
+ this.eventBus.abort();
398
232
  }
399
233
  async generate(input, options) {
400
- const config = await this.ensureBuilt();
401
- const { runtime, bus } = this.createRuntime(config);
402
- try {
403
- return await runtime.generate(this.toMessages(input), options);
404
- }
405
- finally {
406
- this.cleanupBus(bus);
407
- }
234
+ const runtime = await this.ensureBuilt();
235
+ return await runtime.generate(this.toMessages(input), options);
408
236
  }
409
237
  async stream(input, options) {
410
- const config = await this.ensureBuilt();
411
- const { runtime, bus } = this.createRuntime(config);
412
- try {
413
- const result = await runtime.stream(this.toMessages(input), options);
414
- return { ...result, stream: this.trackStreamBus(result.stream, bus) };
415
- }
416
- catch (error) {
417
- this.cleanupBus(bus);
418
- throw error;
419
- }
238
+ const runtime = await this.ensureBuilt();
239
+ return await runtime.stream(this.toMessages(input), options);
420
240
  }
421
241
  async resume(method, data, options) {
422
- const config = await this.ensureBuilt();
242
+ const runtime = await this.ensureBuilt();
423
243
  if (method === 'generate') {
424
- const { runtime, bus } = this.createRuntime(config);
425
- try {
426
- return await runtime.resume('generate', data, options);
427
- }
428
- finally {
429
- this.cleanupBus(bus);
430
- }
431
- }
432
- const { runtime, bus } = this.createRuntime(config);
433
- try {
434
- const result = await runtime.resume('stream', data, options);
435
- return { ...result, stream: this.trackStreamBus(result.stream, bus) };
436
- }
437
- catch (error) {
438
- this.cleanupBus(bus);
439
- throw error;
244
+ return await runtime.resume('generate', data, options);
440
245
  }
246
+ return await runtime.resume('stream', data, options);
441
247
  }
442
248
  async approve(method, options) {
443
249
  if (method === 'generate') {
@@ -462,61 +268,13 @@ class Agent {
462
268
  }
463
269
  return await this.buildPromise;
464
270
  }
465
- createRuntime(config) {
466
- const bus = new event_bus_1.AgentEventBus();
467
- for (const [event, handlers] of this.agentHandlers) {
468
- for (const handler of handlers) {
469
- bus.on(event, handler);
470
- }
471
- }
472
- this.activeEventBuses.add(bus);
473
- const runtime = new agent_runtime_1.AgentRuntime({ ...config, eventBus: bus });
474
- return { runtime, bus };
475
- }
476
- trackStreamBus(stream, bus) {
477
- let cleanedUp = false;
478
- const cleanup = () => {
479
- if (!cleanedUp) {
480
- cleanedUp = true;
481
- this.cleanupBus(bus);
482
- }
483
- };
484
- const reader = stream.getReader();
485
- return new ReadableStream({
486
- async pull(controller) {
487
- try {
488
- const { done, value } = await reader.read();
489
- if (done) {
490
- controller.close();
491
- cleanup();
492
- }
493
- else {
494
- controller.enqueue(value);
495
- }
496
- }
497
- catch (error) {
498
- controller.error(error);
499
- cleanup();
500
- }
501
- },
502
- cancel() {
503
- reader.cancel().catch(() => { });
504
- cleanup();
505
- },
506
- });
507
- }
508
- cleanupBus(bus) {
509
- this.activeEventBuses.delete(bus);
510
- bus.dispose();
511
- }
512
271
  toMessages(input) {
513
272
  if (Array.isArray(input))
514
273
  return input;
515
274
  return [{ role: 'user', content: [{ type: 'text', text: input }] }];
516
275
  }
517
276
  async build() {
518
- const hasModel = this.modelId ?? this.modelConfigObj;
519
- if (!hasModel) {
277
+ if (!this.modelConfig) {
520
278
  throw new Error(`Agent "${this.name}" requires a model`);
521
279
  }
522
280
  if (!this.instructionsText) {
@@ -556,27 +314,7 @@ class Agent {
556
314
  "Add .checkpoint('memory') for in-process storage, " +
557
315
  'or pass a persistent store (e.g. LibSQLStore, PgStore).');
558
316
  }
559
- if (this.credProvider && this.credentialName) {
560
- const resolved = await this.credProvider.resolve(this.credentialName);
561
- this.resolvedKey = resolved.apiKey;
562
- }
563
- let modelConfig;
564
- if (this.modelConfigObj) {
565
- if (this.resolvedKey &&
566
- typeof this.modelConfigObj === 'object' &&
567
- 'id' in this.modelConfigObj) {
568
- modelConfig = { ...this.modelConfigObj, apiKey: this.resolvedKey };
569
- }
570
- else {
571
- modelConfig = this.modelConfigObj;
572
- }
573
- }
574
- else if (this.resolvedKey) {
575
- modelConfig = { id: this.modelId, apiKey: this.resolvedKey };
576
- }
577
- else {
578
- modelConfig = this.modelId;
579
- }
317
+ const modelConfig = this.modelConfig;
580
318
  let instructions = this.instructionsText;
581
319
  if (this.workspaceInstance) {
582
320
  const wsInstructions = this.workspaceInstance.getInstructions();
@@ -584,19 +322,7 @@ class Agent {
584
322
  instructions = `${instructions}\n\n${wsInstructions}`;
585
323
  }
586
324
  }
587
- let modelCost;
588
- try {
589
- const modelId = typeof modelConfig === 'string'
590
- ? modelConfig
591
- : 'id' in modelConfig
592
- ? modelConfig.id
593
- : undefined;
594
- modelCost = modelId ? await (0, catalog_1.getModelCost)(modelId) : undefined;
595
- }
596
- catch {
597
- }
598
- const runState = new run_state_1.RunStateManager(this.checkpointStore);
599
- return {
325
+ this.runtime = new agent_runtime_1.AgentRuntime({
600
326
  name: this.name,
601
327
  model: modelConfig,
602
328
  instructions,
@@ -610,12 +336,12 @@ class Agent {
610
336
  structuredOutput: this.outputSchema,
611
337
  checkpointStorage: this.checkpointStore,
612
338
  thinking: this.thinkingConfig,
339
+ eventBus: this.eventBus,
613
340
  toolCallConcurrency: this.concurrencyValue,
614
341
  titleGeneration: this.memoryConfig?.titleGeneration,
615
342
  telemetry: this.telemetryConfig ?? (await this.telemetryBuilder?.build()),
616
- modelCost,
617
- runState,
618
- };
343
+ });
344
+ return this.runtime;
619
345
  }
620
346
  }
621
347
  exports.Agent = Agent;