@n8n/agents 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/dist/build.tsbuildinfo +1 -1
  2. package/dist/index.d.ts +10 -7
  3. package/dist/index.js +30 -10
  4. package/dist/index.js.map +1 -1
  5. package/dist/runtime/agent-runtime.d.ts +24 -12
  6. package/dist/runtime/agent-runtime.js +241 -91
  7. package/dist/runtime/agent-runtime.js.map +1 -1
  8. package/dist/runtime/background-task-tracker.d.ts +6 -0
  9. package/dist/runtime/background-task-tracker.js +26 -0
  10. package/dist/runtime/background-task-tracker.js.map +1 -0
  11. package/dist/runtime/deferred-tool-manager.d.ts +28 -0
  12. package/dist/runtime/deferred-tool-manager.js +205 -0
  13. package/dist/runtime/deferred-tool-manager.js.map +1 -0
  14. package/dist/runtime/memory-store.d.ts +21 -36
  15. package/dist/runtime/memory-store.js +118 -51
  16. package/dist/runtime/memory-store.js.map +1 -1
  17. package/dist/runtime/message-list.d.ts +1 -7
  18. package/dist/runtime/message-list.js +3 -6
  19. package/dist/runtime/message-list.js.map +1 -1
  20. package/dist/runtime/observation-log-defaults.d.ts +20 -0
  21. package/dist/runtime/observation-log-defaults.js +523 -0
  22. package/dist/runtime/observation-log-defaults.js.map +1 -0
  23. package/dist/runtime/observation-log-observer.d.ts +64 -0
  24. package/dist/runtime/observation-log-observer.js +235 -0
  25. package/dist/runtime/observation-log-observer.js.map +1 -0
  26. package/dist/runtime/observation-log-reflector.d.ts +36 -0
  27. package/dist/runtime/observation-log-reflector.js +292 -0
  28. package/dist/runtime/observation-log-reflector.js.map +1 -0
  29. package/dist/runtime/observation-log-renderer.d.ts +6 -0
  30. package/dist/runtime/observation-log-renderer.js +73 -0
  31. package/dist/runtime/observation-log-renderer.js.map +1 -0
  32. package/dist/runtime/observation-log-store.d.ts +3 -0
  33. package/dist/runtime/observation-log-store.js +26 -0
  34. package/dist/runtime/observation-log-store.js.map +1 -0
  35. package/dist/runtime/scoped-memory-task-runner.d.ts +79 -0
  36. package/dist/runtime/scoped-memory-task-runner.js +134 -0
  37. package/dist/runtime/scoped-memory-task-runner.js.map +1 -0
  38. package/dist/sdk/agent.d.ts +13 -1
  39. package/dist/sdk/agent.js +58 -9
  40. package/dist/sdk/agent.js.map +1 -1
  41. package/dist/sdk/catalog.d.ts +1 -0
  42. package/dist/sdk/catalog.js +1 -0
  43. package/dist/sdk/catalog.js.map +1 -1
  44. package/dist/sdk/memory.d.ts +12 -12
  45. package/dist/sdk/memory.js +71 -51
  46. package/dist/sdk/memory.js.map +1 -1
  47. package/dist/storage/base-memory.d.ts +0 -10
  48. package/dist/storage/base-memory.js +0 -6
  49. package/dist/storage/base-memory.js.map +1 -1
  50. package/dist/types/index.d.ts +5 -4
  51. package/dist/types/index.js +7 -3
  52. package/dist/types/index.js.map +1 -1
  53. package/dist/types/runtime/event.d.ts +1 -0
  54. package/dist/types/sdk/agent-builder.d.ts +5 -0
  55. package/dist/types/sdk/agent.d.ts +6 -0
  56. package/dist/types/sdk/memory.d.ts +16 -24
  57. package/dist/types/sdk/observation-log.d.ts +99 -0
  58. package/dist/types/sdk/observation-log.js +17 -0
  59. package/dist/types/sdk/observation-log.js.map +1 -0
  60. package/dist/types/sdk/observation.d.ts +3 -94
  61. package/dist/types/sdk/observation.js +0 -2
  62. package/dist/types/sdk/observation.js.map +1 -1
  63. package/dist/types/sdk/provider.d.ts +5 -2
  64. package/package.json +3 -7
  65. package/dist/runtime/working-memory.d.ts +0 -14
  66. package/dist/runtime/working-memory.js +0 -69
  67. package/dist/runtime/working-memory.js.map +0 -1
  68. package/dist/storage/postgres-memory.d.ts +0 -96
  69. package/dist/storage/postgres-memory.js +0 -431
  70. package/dist/storage/postgres-memory.js.map +0 -1
  71. package/dist/storage/sqlite-memory.d.ts +0 -70
  72. package/dist/storage/sqlite-memory.js +0 -354
  73. package/dist/storage/sqlite-memory.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/sdk/catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/sdk/catalog.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,24 @@
1
- import type { z } from 'zod';
2
- import type { BuiltMemory, MemoryConfig, SemanticRecallConfig, TitleGenerationConfig } from '../types';
3
- type ZodObjectSchema = z.ZodObject<z.ZodRawShape>;
1
+ import { DEFAULT_OBSERVATION_LOG_LOCK_TTL_MS, DEFAULT_OBSERVATION_LOG_RENDER_TOKEN_BUDGET } from '../runtime/observation-log-defaults';
2
+ import type { BuiltMemory, MemoryConfig, ObservationalMemoryConfig, SemanticRecallConfig, TitleGenerationConfig } from '../types';
3
+ import type { ModelConfig } from '../types/sdk/agent';
4
+ export { DEFAULT_OBSERVATION_LOG_LOCK_TTL_MS, DEFAULT_OBSERVATION_LOG_RENDER_TOKEN_BUDGET };
5
+ export interface ResolveObservationalMemoryConfigOptions {
6
+ defaultModel: ModelConfig;
7
+ }
8
+ export declare function resolveObservationalMemoryConfig(config: ObservationalMemoryConfig, options: ResolveObservationalMemoryConfigOptions): ObservationalMemoryConfig;
9
+ export declare function resolveMemoryConfigDefaults(config: MemoryConfig, options: ResolveObservationalMemoryConfigOptions): MemoryConfig;
10
+ export declare function normalizeMemoryConfig(config: MemoryConfig): MemoryConfig;
4
11
  export declare class Memory {
5
12
  private lastMessagesValue;
6
13
  private semanticRecallConfig?;
7
- private workingMemorySchema?;
8
- private workingMemoryTemplate?;
9
- private workingMemoryScope;
10
- private workingMemoryInstruction?;
11
14
  private memoryBackend?;
12
15
  private titleGenerationConfig?;
16
+ private observationalMemoryConfig?;
13
17
  get lastMessageCount(): number;
14
18
  storage(backend: 'memory' | BuiltMemory): this;
15
19
  lastMessages(count: number): this;
16
20
  semanticRecall(config: SemanticRecallConfig): this;
17
- structured(schema: ZodObjectSchema): this;
18
- freeform(template: string): this;
19
- scope(s: 'resource' | 'thread'): this;
20
- instruction(text: string): this;
21
21
  titleGeneration(config: boolean | TitleGenerationConfig): this;
22
+ observationalMemory(config?: ObservationalMemoryConfig): this;
22
23
  build(): MemoryConfig;
23
24
  }
24
- export {};
@@ -1,13 +1,65 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Memory = void 0;
3
+ exports.Memory = exports.DEFAULT_OBSERVATION_LOG_RENDER_TOKEN_BUDGET = exports.DEFAULT_OBSERVATION_LOG_LOCK_TTL_MS = void 0;
4
+ exports.resolveObservationalMemoryConfig = resolveObservationalMemoryConfig;
5
+ exports.resolveMemoryConfigDefaults = resolveMemoryConfigDefaults;
6
+ exports.normalizeMemoryConfig = normalizeMemoryConfig;
4
7
  const memory_store_1 = require("../runtime/memory-store");
5
- const working_memory_1 = require("../runtime/working-memory");
8
+ const observation_log_defaults_1 = require("../runtime/observation-log-defaults");
9
+ Object.defineProperty(exports, "DEFAULT_OBSERVATION_LOG_LOCK_TTL_MS", { enumerable: true, get: function () { return observation_log_defaults_1.DEFAULT_OBSERVATION_LOG_LOCK_TTL_MS; } });
10
+ Object.defineProperty(exports, "DEFAULT_OBSERVATION_LOG_RENDER_TOKEN_BUDGET", { enumerable: true, get: function () { return observation_log_defaults_1.DEFAULT_OBSERVATION_LOG_RENDER_TOKEN_BUDGET; } });
11
+ const observation_log_store_1 = require("../runtime/observation-log-store");
6
12
  const DEFAULT_LAST_MESSAGES = 10;
13
+ function resolveObservationalMemoryConfig(config, options) {
14
+ const observerModel = options.defaultModel;
15
+ const reflectorModel = options.defaultModel;
16
+ return {
17
+ observerThresholdTokens: config.observerThresholdTokens ?? observation_log_defaults_1.DEFAULT_OBSERVATION_LOG_OBSERVER_THRESHOLD_TOKENS,
18
+ reflectorThresholdTokens: config.reflectorThresholdTokens ?? observation_log_defaults_1.DEFAULT_OBSERVATION_LOG_REFLECTOR_THRESHOLD_TOKENS,
19
+ renderTokenBudget: config.renderTokenBudget ?? observation_log_defaults_1.DEFAULT_OBSERVATION_LOG_RENDER_TOKEN_BUDGET,
20
+ observationLogTailLimit: config.observationLogTailLimit ?? observation_log_defaults_1.DEFAULT_OBSERVATION_LOG_TAIL_LIMIT,
21
+ lockTtlMs: config.lockTtlMs ?? observation_log_defaults_1.DEFAULT_OBSERVATION_LOG_LOCK_TTL_MS,
22
+ observe: config.observe ?? (0, observation_log_defaults_1.createObservationLogObserveFn)(observerModel),
23
+ reflect: config.reflect ?? (0, observation_log_defaults_1.createObservationLogReflectFn)(reflectorModel),
24
+ };
25
+ }
26
+ function resolveMemoryConfigDefaults(config, options) {
27
+ if (!config.observationalMemory) {
28
+ return config;
29
+ }
30
+ const observationalMemoryConfig = config.observationLog?.renderTokenBudget !== undefined &&
31
+ config.observationalMemory.renderTokenBudget === undefined
32
+ ? {
33
+ ...config.observationalMemory,
34
+ renderTokenBudget: config.observationLog.renderTokenBudget,
35
+ }
36
+ : config.observationalMemory;
37
+ const observationalMemory = resolveObservationalMemoryConfig(observationalMemoryConfig, options);
38
+ return normalizeMemoryConfig({
39
+ ...config,
40
+ observationalMemory,
41
+ });
42
+ }
43
+ function normalizeMemoryConfig(config) {
44
+ if (!config.observationalMemory) {
45
+ return config;
46
+ }
47
+ if (!(0, observation_log_store_1.hasObservationLogStore)(config.memory)) {
48
+ throw new Error("Observational memory requires a storage backend that implements BuiltObservationLogStore (e.g. n8n's N8nMemory).");
49
+ }
50
+ return {
51
+ ...config,
52
+ observationLog: {
53
+ ...config.observationLog,
54
+ ...(config.observationalMemory.renderTokenBudget !== undefined && {
55
+ renderTokenBudget: config.observationalMemory.renderTokenBudget,
56
+ }),
57
+ },
58
+ };
59
+ }
7
60
  class Memory {
8
61
  constructor() {
9
62
  this.lastMessagesValue = DEFAULT_LAST_MESSAGES;
10
- this.workingMemoryScope = 'resource';
11
63
  }
12
64
  get lastMessageCount() {
13
65
  return this.lastMessagesValue;
@@ -29,22 +81,6 @@ class Memory {
29
81
  this.semanticRecallConfig = config;
30
82
  return this;
31
83
  }
32
- structured(schema) {
33
- this.workingMemorySchema = schema;
34
- return this;
35
- }
36
- freeform(template) {
37
- this.workingMemoryTemplate = template;
38
- return this;
39
- }
40
- scope(s) {
41
- this.workingMemoryScope = s;
42
- return this;
43
- }
44
- instruction(text) {
45
- this.workingMemoryInstruction = text;
46
- return this;
47
- }
48
84
  titleGeneration(config) {
49
85
  if (config === true) {
50
86
  this.titleGenerationConfig = {};
@@ -57,15 +93,11 @@ class Memory {
57
93
  }
58
94
  return this;
59
95
  }
96
+ observationalMemory(config = {}) {
97
+ this.observationalMemoryConfig = config;
98
+ return this;
99
+ }
60
100
  build() {
61
- if (this.workingMemorySchema && this.workingMemoryTemplate !== undefined) {
62
- throw new Error('Working memory cannot use both .structured() and .freeform(). ' +
63
- 'Choose one: .structured(zodSchema) for typed state, or .freeform(template) for free-form text.');
64
- }
65
- if (this.workingMemoryTemplate !== undefined && this.workingMemoryTemplate.trim() === '') {
66
- throw new Error('Free-form working memory template cannot be empty. ' +
67
- 'Provide a markdown template with slots for the agent to fill.');
68
- }
69
101
  const memory = this.memoryBackend ?? new memory_store_1.InMemoryMemory();
70
102
  if (this.semanticRecallConfig) {
71
103
  if (!memory.queryEmbeddings && !memory.search) {
@@ -76,35 +108,23 @@ class Memory {
76
108
  ".semanticRecall({ topK: 5, embedder: 'openai/text-embedding-3-small' })");
77
109
  }
78
110
  }
79
- let workingMemory;
80
- if (this.workingMemorySchema) {
81
- workingMemory = {
82
- template: (0, working_memory_1.templateFromSchema)(this.workingMemorySchema),
83
- structured: true,
84
- schema: this.workingMemorySchema,
85
- scope: this.workingMemoryScope,
86
- ...(this.workingMemoryInstruction !== undefined && {
87
- instruction: this.workingMemoryInstruction,
88
- }),
89
- };
90
- }
91
- else if (this.workingMemoryTemplate !== undefined) {
92
- workingMemory = {
93
- template: this.workingMemoryTemplate,
94
- structured: false,
95
- scope: this.workingMemoryScope,
96
- ...(this.workingMemoryInstruction !== undefined && {
97
- instruction: this.workingMemoryInstruction,
98
- }),
99
- };
100
- }
101
- return {
111
+ const baseConfig = {
102
112
  memory,
103
113
  lastMessages: this.lastMessagesValue,
104
- workingMemory,
105
114
  semanticRecall: this.semanticRecallConfig,
106
115
  titleGeneration: this.titleGenerationConfig,
107
116
  };
117
+ if (!this.observationalMemoryConfig) {
118
+ return normalizeMemoryConfig(baseConfig);
119
+ }
120
+ if (!(0, observation_log_store_1.hasObservationLogStore)(memory)) {
121
+ throw new Error("Observational memory requires a storage backend that implements BuiltObservationLogStore (e.g. n8n's N8nMemory).");
122
+ }
123
+ return normalizeMemoryConfig({
124
+ ...baseConfig,
125
+ memory,
126
+ observationalMemory: this.observationalMemoryConfig,
127
+ });
108
128
  }
109
129
  }
110
130
  exports.Memory = Memory;
@@ -1 +1 @@
1
- {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/sdk/memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/sdk/memory.ts"],"names":[],"mappings":"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"}
@@ -28,16 +28,6 @@ export declare abstract class BaseMemory<TConstructorOptions extends JSONObject
28
28
  after: number;
29
29
  };
30
30
  }): Promise<AgentDbMessage[]>;
31
- getWorkingMemory?(_params: {
32
- threadId: string;
33
- resourceId: string;
34
- scope: 'resource' | 'thread';
35
- }): Promise<string | null>;
36
- saveWorkingMemory?(_params: {
37
- threadId: string;
38
- resourceId: string;
39
- scope: 'resource' | 'thread';
40
- }, _content: string): Promise<void>;
41
31
  saveEmbeddings?(_opts: {
42
32
  scope?: 'thread' | 'resource';
43
33
  threadId?: string;
@@ -27,12 +27,6 @@ class BaseMemory {
27
27
  search(_query, _opts) {
28
28
  throw new Error('Method not implemented.');
29
29
  }
30
- getWorkingMemory(_params) {
31
- throw new Error('Method not implemented.');
32
- }
33
- saveWorkingMemory(_params, _content) {
34
- throw new Error('Method not implemented.');
35
- }
36
30
  saveEmbeddings(_opts) {
37
31
  throw new Error('Method not implemented.');
38
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"base-memory.js","sourceRoot":"","sources":["../../src/storage/base-memory.ts"],"names":[],"mappings":";;;AAKA,MAAsB,UAAU;IAG/B,YACoB,IAAY,EACZ,kBAAuC;QADvC,SAAI,GAAJ,IAAI,CAAQ;QACZ,uBAAkB,GAAlB,kBAAkB,CAAqB;IACxD,CAAC;IAEJ,SAAS,CAAC,SAAiB;QAC1B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC5C,CAAC;IACD,UAAU,CAAC,OAAgD;QAC1D,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC5C,CAAC;IACD,YAAY,CAAC,SAAiB;QAC7B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC5C,CAAC;IACD,WAAW,CACV,SAAiB,EACjB,KAAyC;QAEzC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC5C,CAAC;IACD,YAAY,CAAC,KAIZ;QACA,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC5C,CAAC;IACD,cAAc,CAAC,WAAqB;QACnC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC5C,CAAC;IACD,MAAM,CACL,MAAc,EACd,KAMC;QAED,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC5C,CAAC;IACD,gBAAgB,CAAE,OAIjB;QACA,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC5C,CAAC;IACD,iBAAiB,CAChB,OAA+E,EAC/E,QAAgB;QAEhB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC5C,CAAC;IACD,cAAc,CAAE,KAKf;QACA,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC5C,CAAC;IACD,eAAe,CAAE,KAMhB;QACA,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK;QACJ,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC5C,CAAC;IAED,QAAQ;QACP,OAAO;YACN,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI;YACtC,gBAAgB,EAAE,IAAI,CAAC,kBAAkB;SACzC,CAAC;IACH,CAAC;CACD;AAvFD,gCAuFC"}
1
+ {"version":3,"file":"base-memory.js","sourceRoot":"","sources":["../../src/storage/base-memory.ts"],"names":[],"mappings":";;;AAKA,MAAsB,UAAU;IAG/B,YACoB,IAAY,EACZ,kBAAuC;QADvC,SAAI,GAAJ,IAAI,CAAQ;QACZ,uBAAkB,GAAlB,kBAAkB,CAAqB;IACxD,CAAC;IAEJ,SAAS,CAAC,SAAiB;QAC1B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC5C,CAAC;IACD,UAAU,CAAC,OAAgD;QAC1D,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC5C,CAAC;IACD,YAAY,CAAC,SAAiB;QAC7B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC5C,CAAC;IACD,WAAW,CACV,SAAiB,EACjB,KAAyC;QAEzC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC5C,CAAC;IACD,YAAY,CAAC,KAIZ;QACA,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC5C,CAAC;IACD,cAAc,CAAC,WAAqB;QACnC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC5C,CAAC;IACD,MAAM,CACL,MAAc,EACd,KAMC;QAED,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC5C,CAAC;IACD,cAAc,CAAE,KAKf;QACA,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC5C,CAAC;IACD,eAAe,CAAE,KAMhB;QACA,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK;QACJ,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC5C,CAAC;IAED,QAAQ;QACP,OAAO;YACN,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI;YACtC,gBAAgB,EAAE,IAAI,CAAC,kBAAkB;SACzC,CAAC;IACH,CAAC;CACD;AA1ED,gCA0EC"}
@@ -1,12 +1,13 @@
1
1
  export type { JSONValue, JSONObject, JSONArray } from './utils/json';
2
2
  export type { MessageRole, MessageContent, ContentMetadata, ContentCitation, ContentText, ContentReasoning, ContentFile, ContentToolCall, ContentInvalidToolCall, ContentProvider, Message, AgentMessageBase, CustomAgentMessages, AgentMessage, AgentDbMessage, } from './sdk/message';
3
3
  export type { Provider, AnthropicThinkingConfig, OpenAIThinkingConfig, GoogleThinkingConfig, XaiThinkingConfig, ThinkingConfigFor, ThinkingConfig, } from './sdk/provider';
4
- export type { AgentResult, StreamChunk, FinishReason, TokenUsage, ModelConfig, RunOptions, ExecutionOptions, PersistedExecutionOptions, ResumeOptions, GenerateResult, StreamResult, SubAgentUsage, BuiltAgent, AgentRunState, AgentResumeData, PendingToolCall, SerializableAgentState, } from './sdk/agent';
4
+ export type { AgentResult, StreamChunk, FinishReason, TokenUsage, ModelConfig, RunOptions, ExecutionOptions, AgentExecutionCounter, PersistedExecutionOptions, ResumeOptions, GenerateResult, StreamResult, SubAgentUsage, BuiltAgent, AgentRunState, AgentResumeData, PendingToolCall, SerializableAgentState, } from './sdk/agent';
5
5
  export type { SerializedMessageList } from './runtime/message-list';
6
6
  export type { ToolContext, InterruptibleToolContext, BuiltTool, BuiltProviderTool, } from './sdk/tool';
7
- export type { Thread, BuiltMemory, ObservationCapableMemory, MemoryDescriptor, SemanticRecallConfig, MemoryConfig, CheckpointStore, TitleGenerationConfig, } from './sdk/memory';
8
- export type { BuiltObservationStore, CompactFn, NewObservation, Observation, ObservationCursor, ObservationLockHandle, ObservationalMemoryConfig, ObserveFn, ScopeKind, } from './sdk/observation';
9
- export { OBSERVATION_SCHEMA_VERSION } from './sdk/observation';
7
+ export type { Thread, BuiltMemory, ObservationCapableMemory, MemoryDescriptor, SemanticRecallConfig, MemoryConfig, ObservationLogMemoryConfig, ObservationalMemoryConfig, CheckpointStore, TitleGenerationConfig, } from './sdk/memory';
8
+ export type { ObservationCursor, ScopeKind, } from './sdk/observation';
9
+ export type { BuiltObservationLogStore, BuiltObservationLogTaskLockStore, NewObservationLogEntry, ObservationLogEntry, ObservationLogMarker, ObservationLogMerge, ObservationLogObserveFn, ObservationLogObserverInput, ObservationLogReadOptions, ObservationLogReflectFn, ObservationLogReflectorInput, ObservationLogReflection, ObservationLogReflectionResult, ObservationLogScope, ObservationLogScopeKind, ObservationLogStatus, ObservationLogTaskKind, ObservationLogTaskLockHandle, TokenCounter, } from './sdk/observation-log';
10
+ export { createObservationLogThreadScopeId, createObservationLogThreadScopePrefix, estimateObservationTokens, OBSERVATION_LOG_MARKERS, OBSERVATION_LOG_STATUSES, } from './sdk/observation-log';
10
11
  export type { EvalInput, EvalScore, JudgeFn, JudgeInput, CheckFn, JudgeHandlerFn, BuiltEval, EvalRunResult, EvalResults, } from './sdk/eval';
11
12
  export type { GuardrailType, GuardrailStrategy, PiiDetectionType, BuiltGuardrail, } from './sdk/guardrail';
12
13
  export type { BuiltTelemetry, AttributeValue, OpaqueTracer, OpaqueTracerProvider, } from './telemetry';
@@ -1,8 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AgentEvent = exports.OBSERVATION_SCHEMA_VERSION = void 0;
4
- var observation_1 = require("./sdk/observation");
5
- Object.defineProperty(exports, "OBSERVATION_SCHEMA_VERSION", { enumerable: true, get: function () { return observation_1.OBSERVATION_SCHEMA_VERSION; } });
3
+ exports.AgentEvent = exports.OBSERVATION_LOG_STATUSES = exports.OBSERVATION_LOG_MARKERS = exports.estimateObservationTokens = exports.createObservationLogThreadScopePrefix = exports.createObservationLogThreadScopeId = void 0;
4
+ var observation_log_1 = require("./sdk/observation-log");
5
+ Object.defineProperty(exports, "createObservationLogThreadScopeId", { enumerable: true, get: function () { return observation_log_1.createObservationLogThreadScopeId; } });
6
+ Object.defineProperty(exports, "createObservationLogThreadScopePrefix", { enumerable: true, get: function () { return observation_log_1.createObservationLogThreadScopePrefix; } });
7
+ Object.defineProperty(exports, "estimateObservationTokens", { enumerable: true, get: function () { return observation_log_1.estimateObservationTokens; } });
8
+ Object.defineProperty(exports, "OBSERVATION_LOG_MARKERS", { enumerable: true, get: function () { return observation_log_1.OBSERVATION_LOG_MARKERS; } });
9
+ Object.defineProperty(exports, "OBSERVATION_LOG_STATUSES", { enumerable: true, get: function () { return observation_log_1.OBSERVATION_LOG_STATUSES; } });
6
10
  var event_1 = require("./runtime/event");
7
11
  Object.defineProperty(exports, "AgentEvent", { enumerable: true, get: function () { return event_1.AgentEvent; } });
8
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;AAiFA,iDAA+D;AAAtD,yHAAA,0BAA0B,OAAA;AA4BnC,yCAA6C;AAApC,mGAAA,UAAU,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;AAmGA,yDAM+B;AAL9B,oIAAA,iCAAiC,OAAA;AACjC,wIAAA,qCAAqC,OAAA;AACrC,4HAAA,yBAAyB,OAAA;AACzB,0HAAA,uBAAuB,OAAA;AACvB,2HAAA,wBAAwB,OAAA;AA6BzB,yCAA6C;AAApC,mGAAA,UAAU,OAAA"}
@@ -34,6 +34,7 @@ export type AgentEventData = {
34
34
  type: AgentEvent.Error;
35
35
  message: string;
36
36
  error: unknown;
37
+ source?: 'observer' | 'reflector';
37
38
  };
38
39
  export type AgentEventHandler = (data: AgentEventData) => void;
39
40
  export interface AgentMiddleware {
@@ -7,6 +7,11 @@ export interface AgentBuilder {
7
7
  model(providerOrIdOrConfig: string | ModelConfig, modelName?: string): this;
8
8
  instructions(text: string): this;
9
9
  tool(t: BuiltTool | BuiltTool[]): this;
10
+ deferredTool(t: BuiltTool | BuiltTool[], options?: {
11
+ search?: {
12
+ topK?: number;
13
+ };
14
+ }): this;
10
15
  providerTool(t: BuiltProviderTool): this;
11
16
  thinking(provider: string, config?: Record<string, unknown>): this;
12
17
  toolCallConcurrency(n: number): this;
@@ -114,11 +114,17 @@ export type StreamChunk = ContentMetadata & ({
114
114
  export interface RunOptions {
115
115
  persistence?: AgentPersistenceOptions;
116
116
  }
117
+ export interface AgentExecutionCounter {
118
+ incrementMessageCount(): void;
119
+ incrementToolCallCount(): void;
120
+ incrementTokenCount(tokenCount: number): void;
121
+ }
117
122
  export interface ExecutionOptions {
118
123
  maxIterations?: number;
119
124
  abortSignal?: AbortSignal;
120
125
  providerOptions?: ProviderOptions;
121
126
  telemetry?: BuiltTelemetry;
127
+ executionCounter?: AgentExecutionCounter;
122
128
  }
123
129
  export interface PersistedExecutionOptions {
124
130
  maxIterations?: number;
@@ -1,7 +1,6 @@
1
- import type { z } from 'zod';
2
1
  import type { ModelConfig, SerializableAgentState } from './agent';
3
2
  import type { AgentDbMessage } from './message';
4
- import type { BuiltObservationStore, ObservationalMemoryConfig } from './observation';
3
+ import type { BuiltObservationLogStore, ObservationLogObserveFn, ObservationLogReflectFn } from './observation-log';
5
4
  import type { JSONObject } from '../utils/json';
6
5
  export interface MemoryDescriptor<TParams extends JSONObject = JSONObject> {
7
6
  name: string;
@@ -23,10 +22,7 @@ export interface BuiltMemory {
23
22
  getMessages(threadId: string, opts?: {
24
23
  limit?: number;
25
24
  before?: Date;
26
- since?: {
27
- sinceCreatedAt: Date;
28
- sinceMessageId: string;
29
- };
25
+ resourceId?: string;
30
26
  }): Promise<AgentDbMessage[]>;
31
27
  saveMessages(args: {
32
28
  threadId: string;
@@ -44,16 +40,6 @@ export interface BuiltMemory {
44
40
  after: number;
45
41
  };
46
42
  }): Promise<AgentDbMessage[]>;
47
- getWorkingMemory?(params: {
48
- threadId: string;
49
- resourceId: string;
50
- scope: 'resource' | 'thread';
51
- }): Promise<string | null>;
52
- saveWorkingMemory?(params: {
53
- threadId: string;
54
- resourceId: string;
55
- scope: 'resource' | 'thread';
56
- }, content: string): Promise<void>;
57
43
  saveEmbeddings?(opts: {
58
44
  scope?: 'thread' | 'resource';
59
45
  threadId?: string;
@@ -93,16 +79,22 @@ export interface TitleGenerationConfig {
93
79
  instructions?: string;
94
80
  sync?: boolean;
95
81
  }
96
- export type ObservationCapableMemory = BuiltMemory & BuiltObservationStore;
82
+ export type ObservationCapableMemory = BuiltMemory & BuiltObservationLogStore;
83
+ export interface ObservationLogMemoryConfig {
84
+ renderTokenBudget?: number;
85
+ }
86
+ export interface ObservationalMemoryConfig {
87
+ observerThresholdTokens?: number;
88
+ reflectorThresholdTokens?: number;
89
+ renderTokenBudget?: number;
90
+ observationLogTailLimit?: number;
91
+ lockTtlMs?: number;
92
+ observe?: ObservationLogObserveFn;
93
+ reflect?: ObservationLogReflectFn;
94
+ }
97
95
  interface MemoryConfigBase {
98
96
  lastMessages: number;
99
- workingMemory?: {
100
- template: string;
101
- structured: boolean;
102
- schema?: z.ZodObject<z.ZodRawShape>;
103
- scope: 'resource' | 'thread';
104
- instruction?: string;
105
- };
97
+ observationLog?: ObservationLogMemoryConfig;
106
98
  semanticRecall?: SemanticRecallConfig;
107
99
  titleGeneration?: TitleGenerationConfig;
108
100
  }
@@ -0,0 +1,99 @@
1
+ import type { AgentDbMessage } from './message';
2
+ export declare const OBSERVATION_LOG_MARKERS: readonly ["critical", "important", "info", "completion"];
3
+ export type ObservationLogMarker = (typeof OBSERVATION_LOG_MARKERS)[number];
4
+ export declare const OBSERVATION_LOG_STATUSES: readonly ["active", "superseded", "dropped"];
5
+ export type ObservationLogStatus = (typeof OBSERVATION_LOG_STATUSES)[number];
6
+ export type ObservationLogScopeKind = 'thread' | 'resource';
7
+ export type ObservationLogTaskKind = 'observer' | 'reflector';
8
+ export declare function createObservationLogThreadScopeId(threadId: string, resourceId: string): string;
9
+ export declare function createObservationLogThreadScopePrefix(threadId: string): string;
10
+ export interface ObservationLogScope {
11
+ scopeKind: ObservationLogScopeKind;
12
+ scopeId: string;
13
+ }
14
+ export interface ObservationLogTaskLockHandle extends ObservationLogScope {
15
+ taskKind: ObservationLogTaskKind;
16
+ holderId: string;
17
+ heldUntil: Date;
18
+ }
19
+ export interface ObservationLogEntry extends ObservationLogScope {
20
+ id: string;
21
+ marker: ObservationLogMarker;
22
+ text: string;
23
+ parentId: string | null;
24
+ tokenCount: number;
25
+ status: ObservationLogStatus;
26
+ supersededBy: string | null;
27
+ createdAt: Date;
28
+ }
29
+ export interface NewObservationLogEntry extends ObservationLogScope {
30
+ marker: ObservationLogMarker;
31
+ text: string;
32
+ parentId?: string | null;
33
+ tokenCount?: number;
34
+ createdAt?: Date;
35
+ }
36
+ export interface ObservationLogReadOptions extends ObservationLogScope {
37
+ status?: ObservationLogStatus;
38
+ parentId?: string | null;
39
+ limit?: number;
40
+ order?: 'asc' | 'desc';
41
+ }
42
+ export interface ObservationLogMerge {
43
+ supersedes: string[];
44
+ marker: ObservationLogMarker;
45
+ text: string;
46
+ parentId?: string | null;
47
+ tokenCount?: number;
48
+ createdAt?: Date;
49
+ }
50
+ export interface ObservationLogReflection {
51
+ drop: string[];
52
+ merge: ObservationLogMerge[];
53
+ }
54
+ export interface ObservationLogReflectionResult {
55
+ droppedIds: string[];
56
+ supersededIds: string[];
57
+ inserted: ObservationLogEntry[];
58
+ }
59
+ export type TokenCounter = (text: string) => number;
60
+ export declare const estimateObservationTokens: TokenCounter;
61
+ export interface ObservationLogObserverInput {
62
+ scopeKind: ObservationLogScopeKind;
63
+ scopeId: string;
64
+ now: Date;
65
+ deltaMessages: AgentDbMessage[];
66
+ transcript: string;
67
+ transcriptTokenCount: number;
68
+ observationLogTail: ObservationLogEntry[];
69
+ renderedObservationLogTail: string | null;
70
+ }
71
+ export type ObservationLogObserveFn = (input: ObservationLogObserverInput) => Promise<string>;
72
+ export interface ObservationLogReflectorInput {
73
+ scopeKind: ObservationLogScopeKind;
74
+ scopeId: string;
75
+ now: Date;
76
+ activeObservationLog: ObservationLogEntry[];
77
+ renderedObservationLog: string;
78
+ tokenCount: number;
79
+ tokenBudget: number;
80
+ }
81
+ export type ObservationLogReflectFn = (input: ObservationLogReflectorInput) => Promise<string>;
82
+ export interface BuiltObservationLogStore {
83
+ appendObservationLogEntries(rows: NewObservationLogEntry[]): Promise<ObservationLogEntry[]>;
84
+ getActiveObservationLog(scope: ObservationLogScope & {
85
+ limit?: number;
86
+ order?: 'asc' | 'desc';
87
+ }): Promise<ObservationLogEntry[]>;
88
+ getObservationLog(opts: ObservationLogReadOptions): Promise<ObservationLogEntry[]>;
89
+ dropObservationLogEntries(ids: string[]): Promise<void>;
90
+ supersedeObservationLogEntries(ids: string[], supersededBy: string): Promise<void>;
91
+ applyObservationLogReflection(scope: ObservationLogScope, reflection: ObservationLogReflection): Promise<ObservationLogReflectionResult>;
92
+ }
93
+ export interface BuiltObservationLogTaskLockStore {
94
+ acquireObservationLogTaskLock(scopeKind: ObservationLogScopeKind, scopeId: string, taskKind: ObservationLogTaskKind, opts: {
95
+ ttlMs: number;
96
+ holderId: string;
97
+ }): Promise<ObservationLogTaskLockHandle | null>;
98
+ releaseObservationLogTaskLock(handle: ObservationLogTaskLockHandle): Promise<void>;
99
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.estimateObservationTokens = exports.OBSERVATION_LOG_STATUSES = exports.OBSERVATION_LOG_MARKERS = void 0;
4
+ exports.createObservationLogThreadScopeId = createObservationLogThreadScopeId;
5
+ exports.createObservationLogThreadScopePrefix = createObservationLogThreadScopePrefix;
6
+ exports.OBSERVATION_LOG_MARKERS = ['critical', 'important', 'info', 'completion'];
7
+ exports.OBSERVATION_LOG_STATUSES = ['active', 'superseded', 'dropped'];
8
+ const OBSERVATION_LOG_THREAD_SCOPE_PREFIX = 'thread';
9
+ function createObservationLogThreadScopeId(threadId, resourceId) {
10
+ return `${OBSERVATION_LOG_THREAD_SCOPE_PREFIX}:${encodeURIComponent(threadId)}:resource:${encodeURIComponent(resourceId)}`;
11
+ }
12
+ function createObservationLogThreadScopePrefix(threadId) {
13
+ return `${OBSERVATION_LOG_THREAD_SCOPE_PREFIX}:${encodeURIComponent(threadId)}:resource:`;
14
+ }
15
+ const estimateObservationTokens = (text) => Math.ceil(text.length / 4);
16
+ exports.estimateObservationTokens = estimateObservationTokens;
17
+ //# sourceMappingURL=observation-log.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observation-log.js","sourceRoot":"","sources":["../../../src/types/sdk/observation-log.ts"],"names":[],"mappings":";;;AAgBA,8EAEC;AAED,sFAEC;AApBY,QAAA,uBAAuB,GAAG,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,CAAU,CAAC;AAInF,QAAA,wBAAwB,GAAG,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,CAAU,CAAC;AAQrF,MAAM,mCAAmC,GAAG,QAAQ,CAAC;AAErD,SAAgB,iCAAiC,CAAC,QAAgB,EAAE,UAAkB;IACrF,OAAO,GAAG,mCAAmC,IAAI,kBAAkB,CAAC,QAAQ,CAAC,aAAa,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC;AAC5H,CAAC;AAED,SAAgB,qCAAqC,CAAC,QAAgB;IACrE,OAAO,GAAG,mCAAmC,IAAI,kBAAkB,CAAC,QAAQ,CAAC,YAAY,CAAC;AAC3F,CAAC;AA6DM,MAAM,yBAAyB,GAAiB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAA/E,QAAA,yBAAyB,6BAAsD"}