alibabacloud-agentcore-sdk 0.1.3 → 0.1.4

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 (46) hide show
  1. package/README.md +15 -3
  2. package/dist/{chunk-HMKA537A.js → chunk-45S6S5WI.js} +4 -4
  3. package/dist/chunk-45S6S5WI.js.map +1 -0
  4. package/dist/{chunk-IJ4VJIQV.js → chunk-NI3U6RZL.js} +3 -3
  5. package/dist/{chunk-6EJFZSYH.js → chunk-PHVKSATD.js} +43 -3
  6. package/dist/chunk-PHVKSATD.js.map +1 -0
  7. package/dist/{chunk-5P5SJLNH.cjs → chunk-T26WN7TD.cjs} +5 -5
  8. package/dist/chunk-T26WN7TD.cjs.map +1 -0
  9. package/dist/{chunk-GOJ4Q4QW.cjs → chunk-WRRIPTJP.cjs} +7 -7
  10. package/dist/{chunk-GOJ4Q4QW.cjs.map → chunk-WRRIPTJP.cjs.map} +1 -1
  11. package/dist/{chunk-QT736X32.cjs → chunk-ZIXZWQSP.cjs} +45 -5
  12. package/dist/chunk-ZIXZWQSP.cjs.map +1 -0
  13. package/dist/index.cjs +2 -2
  14. package/dist/index.js +1 -1
  15. package/dist/integrations/google-adk.cjs +6 -6
  16. package/dist/integrations/google-adk.cjs.map +1 -1
  17. package/dist/integrations/google-adk.js +3 -3
  18. package/dist/integrations/google-adk.js.map +1 -1
  19. package/dist/integrations/langchain.cjs +9 -9
  20. package/dist/integrations/langchain.d.cts +3 -2
  21. package/dist/integrations/langchain.d.ts +3 -2
  22. package/dist/integrations/langchain.js +3 -3
  23. package/dist/integrations/langgraph.cjs +4 -4
  24. package/dist/integrations/langgraph.d.cts +3 -2
  25. package/dist/integrations/langgraph.d.ts +3 -2
  26. package/dist/integrations/langgraph.js +3 -3
  27. package/dist/integrations/mastra.cjs +6 -6
  28. package/dist/integrations/mastra.js +2 -2
  29. package/dist/{langchain-adapter-DJsyjm5V.d.ts → langchain-adapter-CaTCXaeo.d.ts} +4 -2
  30. package/dist/{langchain-adapter-DFJdEX04.d.cts → langchain-adapter-DtxU7oAi.d.cts} +4 -2
  31. package/dist/{langchain-provider-MWLP3I7S.js → langchain-provider-JFWLKOGL.js} +25 -1
  32. package/dist/langchain-provider-JFWLKOGL.js.map +1 -0
  33. package/dist/{langchain-provider-EBQPAP6O.cjs → langchain-provider-UKO27CQA.cjs} +29 -5
  34. package/dist/langchain-provider-UKO27CQA.cjs.map +1 -0
  35. package/dist/memory/index.cjs +2 -2
  36. package/dist/memory/index.d.cts +24 -2
  37. package/dist/memory/index.d.ts +24 -2
  38. package/dist/memory/index.js +1 -1
  39. package/package.json +1 -1
  40. package/dist/chunk-5P5SJLNH.cjs.map +0 -1
  41. package/dist/chunk-6EJFZSYH.js.map +0 -1
  42. package/dist/chunk-HMKA537A.js.map +0 -1
  43. package/dist/chunk-QT736X32.cjs.map +0 -1
  44. package/dist/langchain-provider-EBQPAP6O.cjs.map +0 -1
  45. package/dist/langchain-provider-MWLP3I7S.js.map +0 -1
  46. /package/dist/{chunk-IJ4VJIQV.js.map → chunk-NI3U6RZL.js.map} +0 -0
package/dist/index.js CHANGED
@@ -25,7 +25,7 @@ import {
25
25
  import "./chunk-NRYDUATX.js";
26
26
  import {
27
27
  MemoryStore
28
- } from "./chunk-6EJFZSYH.js";
28
+ } from "./chunk-PHVKSATD.js";
29
29
  import {
30
30
  Skills
31
31
  } from "./chunk-D45QSOR4.js";
@@ -1,11 +1,11 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }
2
2
 
3
3
 
4
- var _chunk5P5SJLNHcjs = require('../chunk-5P5SJLNH.cjs');
4
+ var _chunkT26WN7TDcjs = require('../chunk-T26WN7TD.cjs');
5
5
 
6
6
 
7
7
  var _chunk2TRT7RSVcjs = require('../chunk-2TRT7RSV.cjs');
8
- require('../chunk-QT736X32.cjs');
8
+ require('../chunk-ZIXZWQSP.cjs');
9
9
  require('../chunk-UMTUXOKE.cjs');
10
10
  require('../chunk-EGUKJE3Z.cjs');
11
11
  require('../chunk-25KH5XKG.cjs');
@@ -50,14 +50,14 @@ var AgentCoreMemoryService = class {
50
50
  this.store = store;
51
51
  this.options = options;
52
52
  this.topK = _nullishCoalesce(options.topK, () => ( 5));
53
- _chunk5P5SJLNHcjs.validateTopK.call(void 0, this.topK);
53
+ _chunkT26WN7TDcjs.validateTopK.call(void 0, this.topK);
54
54
  }
55
55
 
56
56
 
57
57
 
58
58
  async searchMemory({ appName, userId, query }) {
59
59
  const scope = { agentId: this.options.partitionResolver(appName, userId) };
60
- _chunk5P5SJLNHcjs.validateScope.call(void 0, scope);
60
+ _chunkT26WN7TDcjs.validateScope.call(void 0, scope);
61
61
  const result = await this.store.searchMemories(query, { scope, topK: this.topK });
62
62
  return { memories: result.memories.map(({ memory }) => ({ content: { parts: [{ text: memory.content.text }] }, timestamp: memory.createdAt })) };
63
63
  }
@@ -67,7 +67,7 @@ var AgentCoreMemoryService = class {
67
67
  /** Explicit delta ingestion, avoiding repeated ingestion of the entire Session. */
68
68
  async addEventsToMemory(request) {
69
69
  const scope = { agentId: this.options.partitionResolver(request.appName, request.userId), sessionId: request.sessionId };
70
- _chunk5P5SJLNHcjs.validateScope.call(void 0, scope);
70
+ _chunkT26WN7TDcjs.validateScope.call(void 0, scope);
71
71
  const messages = [];
72
72
  for (const event of request.events) {
73
73
  if (!event.content || event.partial || event.errorCode) continue;
@@ -76,7 +76,7 @@ var AgentCoreMemoryService = class {
76
76
  const content = (_nullishCoalesce(event.content.parts, () => ( []))).filter((part) => part.text && !part.thought).map((part) => part.text).join("\n");
77
77
  if (content.trim()) messages.push({ role, content });
78
78
  }
79
- if (messages.length) await this.store.addMemories({ scope, messages, metadata: request.customMetadata });
79
+ if (messages.length) await this.store.addMemories({ scope, messages, metadata: request.customMetadata, sync: false });
80
80
  }
81
81
  };
82
82
 
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/agentcore-sdk-nodejs/agentcore-sdk-nodejs/dist/integrations/google-adk.cjs","../../src/integrations/google-adk.ts"],"names":["skillTools"],"mappings":"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","file":"/home/runner/work/agentcore-sdk-nodejs/agentcore-sdk-nodejs/dist/integrations/google-adk.cjs","sourcesContent":[null,"import { BaseTool, isFinalResponse, type BaseLlm, type BaseMemoryService, type Event,\n type RunAsyncToolRequest, type SearchMemoryRequest, type SearchMemoryResponse, type Session } from '@google/adk';\nimport type { ModelClient, ProviderModelClient } from '../model';\nimport type { MemoryStore, MemoryMessage } from '../memory';\nimport type { Tool } from './common';\nimport { skillTools as canonicalSkillTools, type Skill, type SkillToolsOptions } from '../skill';\nimport { validateScope, validateTopK } from './memory/common';\n\n/** Load model-provider dependencies only when a model is requested. */\nexport async function model(client: ModelClient | ProviderModelClient): Promise<BaseLlm> {\n const { AgentCoreLlm } = await import('./google-adk-model');\n return new AgentCoreLlm(client);\n}\n\nclass SchemaTool extends BaseTool {\n constructor(private readonly value: Tool) { super({ name: value.name, description: value.description }); }\n override _getDeclaration() {\n return { name: this.name, description: this.description, parametersJsonSchema: structuredClone(this.value.parameters) };\n }\n async runAsync({ args }: RunAsyncToolRequest): Promise<unknown> { return this.value.invoke(args); }\n}\nexport function tools(values: readonly Tool[]): BaseTool[] { return values.map(value => new SchemaTool(value)); }\nexport function skillTools(values: readonly Skill[], options: SkillToolsOptions = {}): BaseTool[] {\n return tools(canonicalSkillTools(values, options));\n}\n\nexport interface AgentCoreMemoryServiceOptions {\n /** Map the application's trusted ADK app/user pair to an AgentCore logical partition. */\n partitionResolver: (appName: string, userId: string) => string;\n topK?: number;\n}\nexport interface AddEventsToMemoryRequest {\n appName: string;\n userId: string;\n sessionId?: string;\n events: readonly Event[];\n customMetadata?: Readonly<Record<string, string>>;\n}\n\n/** Borrows the MemoryStore; ADK's SessionService continues to own conversation history. */\nexport class AgentCoreMemoryService implements BaseMemoryService {\n private readonly topK: number;\n constructor(private readonly store: MemoryStore, private readonly options: AgentCoreMemoryServiceOptions) {\n this.topK = options.topK ?? 5; validateTopK(this.topK);\n }\n async searchMemory({ appName, userId, query }: SearchMemoryRequest): Promise<SearchMemoryResponse> {\n const scope = { agentId: this.options.partitionResolver(appName, userId) }; validateScope(scope);\n const result = await this.store.searchMemories(query, { scope, topK: this.topK });\n return { memories: result.memories.map(({ memory }) => ({ content: { parts: [{ text: memory.content.text }] }, timestamp: memory.createdAt })) };\n }\n async addSessionToMemory(session: Session): Promise<void> {\n await this.addEventsToMemory({ appName: session.appName, userId: session.userId, sessionId: session.id, events: session.events });\n }\n /** Explicit delta ingestion, avoiding repeated ingestion of the entire Session. */\n async addEventsToMemory(request: AddEventsToMemoryRequest): Promise<void> {\n const scope = { agentId: this.options.partitionResolver(request.appName, request.userId), sessionId: request.sessionId }; validateScope(scope);\n const messages: MemoryMessage[] = [];\n for (const event of request.events) {\n if (!event.content || event.partial || event.errorCode) continue;\n const role = event.author === 'user' ? 'user' : event.content.role === 'model' && isFinalResponse(event) ? 'assistant' : undefined;\n if (!role) continue;\n const content = (event.content.parts ?? []).filter(part => part.text && !part.thought).map(part => part.text!).join('\\n');\n if (content.trim()) messages.push({ role, content });\n }\n if (messages.length) await this.store.addMemories({ scope, messages, metadata: request.customMetadata });\n }\n}\nexport { GoogleADKEventConverter as AgentCoreConverter } from './event-converters';\n"]}
1
+ {"version":3,"sources":["/home/runner/work/agentcore-sdk-nodejs/agentcore-sdk-nodejs/dist/integrations/google-adk.cjs","../../src/integrations/google-adk.ts"],"names":["skillTools"],"mappings":"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","file":"/home/runner/work/agentcore-sdk-nodejs/agentcore-sdk-nodejs/dist/integrations/google-adk.cjs","sourcesContent":[null,"import { BaseTool, isFinalResponse, type BaseLlm, type BaseMemoryService, type Event,\n type RunAsyncToolRequest, type SearchMemoryRequest, type SearchMemoryResponse, type Session } from '@google/adk';\nimport type { ModelClient, ProviderModelClient } from '../model';\nimport type { MemoryStore, MemoryMessage } from '../memory';\nimport type { Tool } from './common';\nimport { skillTools as canonicalSkillTools, type Skill, type SkillToolsOptions } from '../skill';\nimport { validateScope, validateTopK } from './memory/common';\n\n/** Load model-provider dependencies only when a model is requested. */\nexport async function model(client: ModelClient | ProviderModelClient): Promise<BaseLlm> {\n const { AgentCoreLlm } = await import('./google-adk-model');\n return new AgentCoreLlm(client);\n}\n\nclass SchemaTool extends BaseTool {\n constructor(private readonly value: Tool) { super({ name: value.name, description: value.description }); }\n override _getDeclaration() {\n return { name: this.name, description: this.description, parametersJsonSchema: structuredClone(this.value.parameters) };\n }\n async runAsync({ args }: RunAsyncToolRequest): Promise<unknown> { return this.value.invoke(args); }\n}\nexport function tools(values: readonly Tool[]): BaseTool[] { return values.map(value => new SchemaTool(value)); }\nexport function skillTools(values: readonly Skill[], options: SkillToolsOptions = {}): BaseTool[] {\n return tools(canonicalSkillTools(values, options));\n}\n\nexport interface AgentCoreMemoryServiceOptions {\n /** Map the application's trusted ADK app/user pair to an AgentCore logical partition. */\n partitionResolver: (appName: string, userId: string) => string;\n topK?: number;\n}\nexport interface AddEventsToMemoryRequest {\n appName: string;\n userId: string;\n sessionId?: string;\n events: readonly Event[];\n customMetadata?: Readonly<Record<string, string>>;\n}\n\n/** Borrows the MemoryStore; ADK's SessionService continues to own conversation history. */\nexport class AgentCoreMemoryService implements BaseMemoryService {\n private readonly topK: number;\n constructor(private readonly store: MemoryStore, private readonly options: AgentCoreMemoryServiceOptions) {\n this.topK = options.topK ?? 5; validateTopK(this.topK);\n }\n async searchMemory({ appName, userId, query }: SearchMemoryRequest): Promise<SearchMemoryResponse> {\n const scope = { agentId: this.options.partitionResolver(appName, userId) }; validateScope(scope);\n const result = await this.store.searchMemories(query, { scope, topK: this.topK });\n return { memories: result.memories.map(({ memory }) => ({ content: { parts: [{ text: memory.content.text }] }, timestamp: memory.createdAt })) };\n }\n async addSessionToMemory(session: Session): Promise<void> {\n await this.addEventsToMemory({ appName: session.appName, userId: session.userId, sessionId: session.id, events: session.events });\n }\n /** Explicit delta ingestion, avoiding repeated ingestion of the entire Session. */\n async addEventsToMemory(request: AddEventsToMemoryRequest): Promise<void> {\n const scope = { agentId: this.options.partitionResolver(request.appName, request.userId), sessionId: request.sessionId }; validateScope(scope);\n const messages: MemoryMessage[] = [];\n for (const event of request.events) {\n if (!event.content || event.partial || event.errorCode) continue;\n const role = event.author === 'user' ? 'user' : event.content.role === 'model' && isFinalResponse(event) ? 'assistant' : undefined;\n if (!role) continue;\n const content = (event.content.parts ?? []).filter(part => part.text && !part.thought).map(part => part.text!).join('\\n');\n if (content.trim()) messages.push({ role, content });\n }\n if (messages.length) await this.store.addMemories({ scope, messages, metadata: request.customMetadata, sync: false });\n }\n}\nexport { GoogleADKEventConverter as AgentCoreConverter } from './event-converters';\n"]}
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  validateScope,
3
3
  validateTopK
4
- } from "../chunk-HMKA537A.js";
4
+ } from "../chunk-45S6S5WI.js";
5
5
  import {
6
6
  skillTools
7
7
  } from "../chunk-KTKZCLYB.js";
8
- import "../chunk-6EJFZSYH.js";
8
+ import "../chunk-PHVKSATD.js";
9
9
  import "../chunk-D45QSOR4.js";
10
10
  import "../chunk-EKXZKKJJ.js";
11
11
  import "../chunk-76NTQYJB.js";
@@ -76,7 +76,7 @@ var AgentCoreMemoryService = class {
76
76
  const content = (event.content.parts ?? []).filter((part) => part.text && !part.thought).map((part) => part.text).join("\n");
77
77
  if (content.trim()) messages.push({ role, content });
78
78
  }
79
- if (messages.length) await this.store.addMemories({ scope, messages, metadata: request.customMetadata });
79
+ if (messages.length) await this.store.addMemories({ scope, messages, metadata: request.customMetadata, sync: false });
80
80
  }
81
81
  };
82
82
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/integrations/google-adk.ts"],"sourcesContent":["import { BaseTool, isFinalResponse, type BaseLlm, type BaseMemoryService, type Event,\n type RunAsyncToolRequest, type SearchMemoryRequest, type SearchMemoryResponse, type Session } from '@google/adk';\nimport type { ModelClient, ProviderModelClient } from '../model';\nimport type { MemoryStore, MemoryMessage } from '../memory';\nimport type { Tool } from './common';\nimport { skillTools as canonicalSkillTools, type Skill, type SkillToolsOptions } from '../skill';\nimport { validateScope, validateTopK } from './memory/common';\n\n/** Load model-provider dependencies only when a model is requested. */\nexport async function model(client: ModelClient | ProviderModelClient): Promise<BaseLlm> {\n const { AgentCoreLlm } = await import('./google-adk-model');\n return new AgentCoreLlm(client);\n}\n\nclass SchemaTool extends BaseTool {\n constructor(private readonly value: Tool) { super({ name: value.name, description: value.description }); }\n override _getDeclaration() {\n return { name: this.name, description: this.description, parametersJsonSchema: structuredClone(this.value.parameters) };\n }\n async runAsync({ args }: RunAsyncToolRequest): Promise<unknown> { return this.value.invoke(args); }\n}\nexport function tools(values: readonly Tool[]): BaseTool[] { return values.map(value => new SchemaTool(value)); }\nexport function skillTools(values: readonly Skill[], options: SkillToolsOptions = {}): BaseTool[] {\n return tools(canonicalSkillTools(values, options));\n}\n\nexport interface AgentCoreMemoryServiceOptions {\n /** Map the application's trusted ADK app/user pair to an AgentCore logical partition. */\n partitionResolver: (appName: string, userId: string) => string;\n topK?: number;\n}\nexport interface AddEventsToMemoryRequest {\n appName: string;\n userId: string;\n sessionId?: string;\n events: readonly Event[];\n customMetadata?: Readonly<Record<string, string>>;\n}\n\n/** Borrows the MemoryStore; ADK's SessionService continues to own conversation history. */\nexport class AgentCoreMemoryService implements BaseMemoryService {\n private readonly topK: number;\n constructor(private readonly store: MemoryStore, private readonly options: AgentCoreMemoryServiceOptions) {\n this.topK = options.topK ?? 5; validateTopK(this.topK);\n }\n async searchMemory({ appName, userId, query }: SearchMemoryRequest): Promise<SearchMemoryResponse> {\n const scope = { agentId: this.options.partitionResolver(appName, userId) }; validateScope(scope);\n const result = await this.store.searchMemories(query, { scope, topK: this.topK });\n return { memories: result.memories.map(({ memory }) => ({ content: { parts: [{ text: memory.content.text }] }, timestamp: memory.createdAt })) };\n }\n async addSessionToMemory(session: Session): Promise<void> {\n await this.addEventsToMemory({ appName: session.appName, userId: session.userId, sessionId: session.id, events: session.events });\n }\n /** Explicit delta ingestion, avoiding repeated ingestion of the entire Session. */\n async addEventsToMemory(request: AddEventsToMemoryRequest): Promise<void> {\n const scope = { agentId: this.options.partitionResolver(request.appName, request.userId), sessionId: request.sessionId }; validateScope(scope);\n const messages: MemoryMessage[] = [];\n for (const event of request.events) {\n if (!event.content || event.partial || event.errorCode) continue;\n const role = event.author === 'user' ? 'user' : event.content.role === 'model' && isFinalResponse(event) ? 'assistant' : undefined;\n if (!role) continue;\n const content = (event.content.parts ?? []).filter(part => part.text && !part.thought).map(part => part.text!).join('\\n');\n if (content.trim()) messages.push({ role, content });\n }\n if (messages.length) await this.store.addMemories({ scope, messages, metadata: request.customMetadata });\n }\n}\nexport { GoogleADKEventConverter as AgentCoreConverter } from './event-converters';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA,EAAS;AAAA,EAAU;AAAA,OACkF;AAQrG,eAAsB,MAAM,QAA6D;AACvF,QAAM,EAAE,aAAa,IAAI,MAAM,OAAO,iCAAoB;AAC1D,SAAO,IAAI,aAAa,MAAM;AAChC;AAEA,IAAM,aAAN,cAAyB,SAAS;AAAA,EAChC,YAA6B,OAAa;AAAE,UAAM,EAAE,MAAM,MAAM,MAAM,aAAa,MAAM,YAAY,CAAC;AAAzE;AAAA,EAA4E;AAAA,EAA5E;AAAA,EACpB,kBAAkB;AACzB,WAAO,EAAE,MAAM,KAAK,MAAM,aAAa,KAAK,aAAa,sBAAsB,gBAAgB,KAAK,MAAM,UAAU,EAAE;AAAA,EACxH;AAAA,EACA,MAAM,SAAS,EAAE,KAAK,GAA0C;AAAE,WAAO,KAAK,MAAM,OAAO,IAAI;AAAA,EAAG;AACpG;AACO,SAAS,MAAM,QAAqC;AAAE,SAAO,OAAO,IAAI,WAAS,IAAI,WAAW,KAAK,CAAC;AAAG;AACzG,SAASA,YAAW,QAA0B,UAA6B,CAAC,GAAe;AAChG,SAAO,MAAM,WAAoB,QAAQ,OAAO,CAAC;AACnD;AAgBO,IAAM,yBAAN,MAA0D;AAAA,EAE/D,YAA6B,OAAqC,SAAwC;AAA7E;AAAqC;AAChE,SAAK,OAAO,QAAQ,QAAQ;AAAG,iBAAa,KAAK,IAAI;AAAA,EACvD;AAAA,EAF6B;AAAA,EAAqC;AAAA,EADjD;AAAA,EAIjB,MAAM,aAAa,EAAE,SAAS,QAAQ,MAAM,GAAuD;AACjG,UAAM,QAAQ,EAAE,SAAS,KAAK,QAAQ,kBAAkB,SAAS,MAAM,EAAE;AAAG,kBAAc,KAAK;AAC/F,UAAM,SAAS,MAAM,KAAK,MAAM,eAAe,OAAO,EAAE,OAAO,MAAM,KAAK,KAAK,CAAC;AAChF,WAAO,EAAE,UAAU,OAAO,SAAS,IAAI,CAAC,EAAE,OAAO,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,OAAO,QAAQ,KAAK,CAAC,EAAE,GAAG,WAAW,OAAO,UAAU,EAAE,EAAE;AAAA,EACjJ;AAAA,EACA,MAAM,mBAAmB,SAAiC;AACxD,UAAM,KAAK,kBAAkB,EAAE,SAAS,QAAQ,SAAS,QAAQ,QAAQ,QAAQ,WAAW,QAAQ,IAAI,QAAQ,QAAQ,OAAO,CAAC;AAAA,EAClI;AAAA;AAAA,EAEA,MAAM,kBAAkB,SAAkD;AACxE,UAAM,QAAQ,EAAE,SAAS,KAAK,QAAQ,kBAAkB,QAAQ,SAAS,QAAQ,MAAM,GAAG,WAAW,QAAQ,UAAU;AAAG,kBAAc,KAAK;AAC7I,UAAM,WAA4B,CAAC;AACnC,eAAW,SAAS,QAAQ,QAAQ;AAClC,UAAI,CAAC,MAAM,WAAW,MAAM,WAAW,MAAM,UAAW;AACxD,YAAM,OAAO,MAAM,WAAW,SAAS,SAAS,MAAM,QAAQ,SAAS,WAAW,gBAAgB,KAAK,IAAI,cAAc;AACzH,UAAI,CAAC,KAAM;AACX,YAAM,WAAW,MAAM,QAAQ,SAAS,CAAC,GAAG,OAAO,UAAQ,KAAK,QAAQ,CAAC,KAAK,OAAO,EAAE,IAAI,UAAQ,KAAK,IAAK,EAAE,KAAK,IAAI;AACxH,UAAI,QAAQ,KAAK,EAAG,UAAS,KAAK,EAAE,MAAM,QAAQ,CAAC;AAAA,IACrD;AACA,QAAI,SAAS,OAAQ,OAAM,KAAK,MAAM,YAAY,EAAE,OAAO,UAAU,UAAU,QAAQ,eAAe,CAAC;AAAA,EACzG;AACF;","names":["skillTools"]}
1
+ {"version":3,"sources":["../../src/integrations/google-adk.ts"],"sourcesContent":["import { BaseTool, isFinalResponse, type BaseLlm, type BaseMemoryService, type Event,\n type RunAsyncToolRequest, type SearchMemoryRequest, type SearchMemoryResponse, type Session } from '@google/adk';\nimport type { ModelClient, ProviderModelClient } from '../model';\nimport type { MemoryStore, MemoryMessage } from '../memory';\nimport type { Tool } from './common';\nimport { skillTools as canonicalSkillTools, type Skill, type SkillToolsOptions } from '../skill';\nimport { validateScope, validateTopK } from './memory/common';\n\n/** Load model-provider dependencies only when a model is requested. */\nexport async function model(client: ModelClient | ProviderModelClient): Promise<BaseLlm> {\n const { AgentCoreLlm } = await import('./google-adk-model');\n return new AgentCoreLlm(client);\n}\n\nclass SchemaTool extends BaseTool {\n constructor(private readonly value: Tool) { super({ name: value.name, description: value.description }); }\n override _getDeclaration() {\n return { name: this.name, description: this.description, parametersJsonSchema: structuredClone(this.value.parameters) };\n }\n async runAsync({ args }: RunAsyncToolRequest): Promise<unknown> { return this.value.invoke(args); }\n}\nexport function tools(values: readonly Tool[]): BaseTool[] { return values.map(value => new SchemaTool(value)); }\nexport function skillTools(values: readonly Skill[], options: SkillToolsOptions = {}): BaseTool[] {\n return tools(canonicalSkillTools(values, options));\n}\n\nexport interface AgentCoreMemoryServiceOptions {\n /** Map the application's trusted ADK app/user pair to an AgentCore logical partition. */\n partitionResolver: (appName: string, userId: string) => string;\n topK?: number;\n}\nexport interface AddEventsToMemoryRequest {\n appName: string;\n userId: string;\n sessionId?: string;\n events: readonly Event[];\n customMetadata?: Readonly<Record<string, string>>;\n}\n\n/** Borrows the MemoryStore; ADK's SessionService continues to own conversation history. */\nexport class AgentCoreMemoryService implements BaseMemoryService {\n private readonly topK: number;\n constructor(private readonly store: MemoryStore, private readonly options: AgentCoreMemoryServiceOptions) {\n this.topK = options.topK ?? 5; validateTopK(this.topK);\n }\n async searchMemory({ appName, userId, query }: SearchMemoryRequest): Promise<SearchMemoryResponse> {\n const scope = { agentId: this.options.partitionResolver(appName, userId) }; validateScope(scope);\n const result = await this.store.searchMemories(query, { scope, topK: this.topK });\n return { memories: result.memories.map(({ memory }) => ({ content: { parts: [{ text: memory.content.text }] }, timestamp: memory.createdAt })) };\n }\n async addSessionToMemory(session: Session): Promise<void> {\n await this.addEventsToMemory({ appName: session.appName, userId: session.userId, sessionId: session.id, events: session.events });\n }\n /** Explicit delta ingestion, avoiding repeated ingestion of the entire Session. */\n async addEventsToMemory(request: AddEventsToMemoryRequest): Promise<void> {\n const scope = { agentId: this.options.partitionResolver(request.appName, request.userId), sessionId: request.sessionId }; validateScope(scope);\n const messages: MemoryMessage[] = [];\n for (const event of request.events) {\n if (!event.content || event.partial || event.errorCode) continue;\n const role = event.author === 'user' ? 'user' : event.content.role === 'model' && isFinalResponse(event) ? 'assistant' : undefined;\n if (!role) continue;\n const content = (event.content.parts ?? []).filter(part => part.text && !part.thought).map(part => part.text!).join('\\n');\n if (content.trim()) messages.push({ role, content });\n }\n if (messages.length) await this.store.addMemories({ scope, messages, metadata: request.customMetadata, sync: false });\n }\n}\nexport { GoogleADKEventConverter as AgentCoreConverter } from './event-converters';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA,EAAS;AAAA,EAAU;AAAA,OACkF;AAQrG,eAAsB,MAAM,QAA6D;AACvF,QAAM,EAAE,aAAa,IAAI,MAAM,OAAO,iCAAoB;AAC1D,SAAO,IAAI,aAAa,MAAM;AAChC;AAEA,IAAM,aAAN,cAAyB,SAAS;AAAA,EAChC,YAA6B,OAAa;AAAE,UAAM,EAAE,MAAM,MAAM,MAAM,aAAa,MAAM,YAAY,CAAC;AAAzE;AAAA,EAA4E;AAAA,EAA5E;AAAA,EACpB,kBAAkB;AACzB,WAAO,EAAE,MAAM,KAAK,MAAM,aAAa,KAAK,aAAa,sBAAsB,gBAAgB,KAAK,MAAM,UAAU,EAAE;AAAA,EACxH;AAAA,EACA,MAAM,SAAS,EAAE,KAAK,GAA0C;AAAE,WAAO,KAAK,MAAM,OAAO,IAAI;AAAA,EAAG;AACpG;AACO,SAAS,MAAM,QAAqC;AAAE,SAAO,OAAO,IAAI,WAAS,IAAI,WAAW,KAAK,CAAC;AAAG;AACzG,SAASA,YAAW,QAA0B,UAA6B,CAAC,GAAe;AAChG,SAAO,MAAM,WAAoB,QAAQ,OAAO,CAAC;AACnD;AAgBO,IAAM,yBAAN,MAA0D;AAAA,EAE/D,YAA6B,OAAqC,SAAwC;AAA7E;AAAqC;AAChE,SAAK,OAAO,QAAQ,QAAQ;AAAG,iBAAa,KAAK,IAAI;AAAA,EACvD;AAAA,EAF6B;AAAA,EAAqC;AAAA,EADjD;AAAA,EAIjB,MAAM,aAAa,EAAE,SAAS,QAAQ,MAAM,GAAuD;AACjG,UAAM,QAAQ,EAAE,SAAS,KAAK,QAAQ,kBAAkB,SAAS,MAAM,EAAE;AAAG,kBAAc,KAAK;AAC/F,UAAM,SAAS,MAAM,KAAK,MAAM,eAAe,OAAO,EAAE,OAAO,MAAM,KAAK,KAAK,CAAC;AAChF,WAAO,EAAE,UAAU,OAAO,SAAS,IAAI,CAAC,EAAE,OAAO,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,OAAO,QAAQ,KAAK,CAAC,EAAE,GAAG,WAAW,OAAO,UAAU,EAAE,EAAE;AAAA,EACjJ;AAAA,EACA,MAAM,mBAAmB,SAAiC;AACxD,UAAM,KAAK,kBAAkB,EAAE,SAAS,QAAQ,SAAS,QAAQ,QAAQ,QAAQ,WAAW,QAAQ,IAAI,QAAQ,QAAQ,OAAO,CAAC;AAAA,EAClI;AAAA;AAAA,EAEA,MAAM,kBAAkB,SAAkD;AACxE,UAAM,QAAQ,EAAE,SAAS,KAAK,QAAQ,kBAAkB,QAAQ,SAAS,QAAQ,MAAM,GAAG,WAAW,QAAQ,UAAU;AAAG,kBAAc,KAAK;AAC7I,UAAM,WAA4B,CAAC;AACnC,eAAW,SAAS,QAAQ,QAAQ;AAClC,UAAI,CAAC,MAAM,WAAW,MAAM,WAAW,MAAM,UAAW;AACxD,YAAM,OAAO,MAAM,WAAW,SAAS,SAAS,MAAM,QAAQ,SAAS,WAAW,gBAAgB,KAAK,IAAI,cAAc;AACzH,UAAI,CAAC,KAAM;AACX,YAAM,WAAW,MAAM,QAAQ,SAAS,CAAC,GAAG,OAAO,UAAQ,KAAK,QAAQ,CAAC,KAAK,OAAO,EAAE,IAAI,UAAQ,KAAK,IAAK,EAAE,KAAK,IAAI;AACxH,UAAI,QAAQ,KAAK,EAAG,UAAS,KAAK,EAAE,MAAM,QAAQ,CAAC;AAAA,IACrD;AACA,QAAI,SAAS,OAAQ,OAAM,KAAK,MAAM,YAAY,EAAE,OAAO,UAAU,UAAU,QAAQ,gBAAgB,MAAM,MAAM,CAAC;AAAA,EACtH;AACF;","names":["skillTools"]}
@@ -3,15 +3,15 @@
3
3
 
4
4
 
5
5
 
6
- var _chunkGOJ4Q4QWcjs = require('../chunk-GOJ4Q4QW.cjs');
6
+ var _chunkWRRIPTJPcjs = require('../chunk-WRRIPTJP.cjs');
7
7
 
8
8
 
9
9
 
10
10
 
11
11
 
12
- var _chunk5P5SJLNHcjs = require('../chunk-5P5SJLNH.cjs');
12
+ var _chunkT26WN7TDcjs = require('../chunk-T26WN7TD.cjs');
13
13
  require('../chunk-2TRT7RSV.cjs');
14
- require('../chunk-QT736X32.cjs');
14
+ require('../chunk-ZIXZWQSP.cjs');
15
15
  require('../chunk-UMTUXOKE.cjs');
16
16
  require('../chunk-EGUKJE3Z.cjs');
17
17
  require('../chunk-25KH5XKG.cjs');
@@ -36,7 +36,7 @@ var memoryState = _zod.z.object({
36
36
  });
37
37
  function agentCoreMemoryMiddleware(store, options) {
38
38
  const topK = _nullishCoalesce(options.topK, () => ( 5));
39
- _chunk5P5SJLNHcjs.validateTopK.call(void 0, topK);
39
+ _chunkT26WN7TDcjs.validateTopK.call(void 0, topK);
40
40
  const logger = _nullishCoalesce(options.logger, () => ( _chunkV4A6MJ42cjs.nullLogger));
41
41
  return _langchain.createMiddleware.call(void 0, {
42
42
  name: "AgentCoreMemory",
@@ -44,10 +44,10 @@ function agentCoreMemoryMiddleware(store, options) {
44
44
  contextSchema: options.contextSchema,
45
45
  async beforeAgent(state, runtime) {
46
46
  const scopes = options.scopeResolver(runtime.context);
47
- if (options.writeBack) _chunk5P5SJLNHcjs.validateScope.call(void 0, scopes.write);
47
+ if (options.writeBack) _chunkT26WN7TDcjs.validateScope.call(void 0, scopes.write);
48
48
  const writeScope = options.writeBack ? { ...scopes.write } : null;
49
49
  const incoming = incomingMessages(state.messages);
50
- const text = await _chunk5P5SJLNHcjs.recallMemory.call(void 0, store, incoming.map((m) => m.content).join("\n"), scopes.read, { topK, logger, bestEffort: true });
50
+ const text = await _chunkT26WN7TDcjs.recallMemory.call(void 0, store, incoming.map((m) => m.content).join("\n"), scopes.read, { topK, logger, bestEffort: true });
51
51
  return {
52
52
  agentcoreMemoryText: text,
53
53
  agentcoreMemoryInput: incoming,
@@ -57,7 +57,7 @@ function agentCoreMemoryMiddleware(store, options) {
57
57
  async wrapModelCall(request, handler) {
58
58
  if (!request.state.agentcoreMemoryText) return handler(request);
59
59
  logger.info("agentcore.memory.adapter.injected", { framework: "langchain" });
60
- return handler({ ...request, systemMessage: _chunkGOJ4Q4QWcjs.withMemory.call(void 0, [request.systemMessage], request.state.agentcoreMemoryText)[0] });
60
+ return handler({ ...request, systemMessage: _chunkWRRIPTJPcjs.withMemory.call(void 0, [request.systemMessage], request.state.agentcoreMemoryText)[0] });
61
61
  },
62
62
  async afterAgent(state) {
63
63
  const incoming = _nullishCoalesce(state.agentcoreMemoryInput, () => ( []));
@@ -65,7 +65,7 @@ function agentCoreMemoryMiddleware(store, options) {
65
65
  const final = state.messages.at(-1);
66
66
  if (incoming.length && scope && _messages.AIMessage.isInstance(final) && !_optionalChain([final, 'access', _ => _.tool_calls, 'optionalAccess', _2 => _2.length]) && !["length", "max_tokens"].includes(String(final.response_metadata.finish_reason))) {
67
67
  const text = messageText(final);
68
- if (text.trim()) await _chunk5P5SJLNHcjs.recordMemory.call(void 0, store, [...incoming, { role: "assistant", content: text }], scope, { logger, bestEffort: true });
68
+ if (text.trim()) await _chunkT26WN7TDcjs.recordMemory.call(void 0, store, [...incoming, { role: "assistant", content: text }], scope, { logger, bestEffort: true });
69
69
  }
70
70
  return { agentcoreMemoryText: "", agentcoreMemoryInput: [], agentcoreMemoryWriteScope: null };
71
71
  }
@@ -90,5 +90,5 @@ function incomingMessages(messages) {
90
90
 
91
91
 
92
92
 
93
- exports.AgentCoreConverter = _chunkPC4FM2RPcjs.LangChainEventConverter; exports.agentCoreMemoryMiddleware = agentCoreMemoryMiddleware; exports.model = _chunkGOJ4Q4QWcjs.model; exports.skillTools = _chunkGOJ4Q4QWcjs.skillTools; exports.tools = _chunkGOJ4Q4QWcjs.tools;
93
+ exports.AgentCoreConverter = _chunkPC4FM2RPcjs.LangChainEventConverter; exports.agentCoreMemoryMiddleware = agentCoreMemoryMiddleware; exports.model = _chunkWRRIPTJPcjs.model; exports.skillTools = _chunkWRRIPTJPcjs.skillTools; exports.tools = _chunkWRRIPTJPcjs.tools;
94
94
  //# sourceMappingURL=langchain.cjs.map
@@ -5,7 +5,7 @@ import { z } from 'zod';
5
5
  import { MemoryStore } from '../memory/index.cjs';
6
6
  import { L as Logger } from '../logging-C8GLLg1f.cjs';
7
7
  import { M as MemoryScopes } from '../common-_vxreiEW.cjs';
8
- export { L as LangChainModelOptions, a as LangChainProviderOptions, m as model, s as skillTools, t as tools } from '../langchain-adapter-DFJdEX04.cjs';
8
+ export { L as LangChainModelOptions, a as LangChainProviderOptions, m as model, s as skillTools, t as tools } from '../langchain-adapter-DtxU7oAi.cjs';
9
9
  export { L as AgentCoreConverter } from '../event-converters-Cn_NeGyQ.cjs';
10
10
  import '../access-key-CkoHq3S8.cjs';
11
11
  import 'node:util';
@@ -19,10 +19,11 @@ import '@ai-sdk/provider';
19
19
  import 'ai';
20
20
  import '@langchain/core/runnables';
21
21
  import '@langchain/core/messages';
22
- import '@langchain/core/language_models/base';
23
22
  import '@langchain/core/language_models/chat_models';
24
23
  import '@langchain/core/outputs';
25
24
  import '@langchain/core/callbacks/manager';
25
+ import '@langchain/core/language_models/base';
26
+ import '@langchain/core/utils/stream';
26
27
  import '../common-BSXkQfxI.cjs';
27
28
  import '../loader-eWuJ2GSL.cjs';
28
29
  import '../skill/index.cjs';
@@ -5,7 +5,7 @@ import { z } from 'zod';
5
5
  import { MemoryStore } from '../memory/index.js';
6
6
  import { L as Logger } from '../logging-C8GLLg1f.js';
7
7
  import { M as MemoryScopes } from '../common-DRdI-75k.js';
8
- export { L as LangChainModelOptions, a as LangChainProviderOptions, m as model, s as skillTools, t as tools } from '../langchain-adapter-DJsyjm5V.js';
8
+ export { L as LangChainModelOptions, a as LangChainProviderOptions, m as model, s as skillTools, t as tools } from '../langchain-adapter-CaTCXaeo.js';
9
9
  export { L as AgentCoreConverter } from '../event-converters-BIn8odqo.js';
10
10
  import '../access-key-CkoHq3S8.js';
11
11
  import 'node:util';
@@ -19,10 +19,11 @@ import '@ai-sdk/provider';
19
19
  import 'ai';
20
20
  import '@langchain/core/runnables';
21
21
  import '@langchain/core/messages';
22
- import '@langchain/core/language_models/base';
23
22
  import '@langchain/core/language_models/chat_models';
24
23
  import '@langchain/core/outputs';
25
24
  import '@langchain/core/callbacks/manager';
25
+ import '@langchain/core/language_models/base';
26
+ import '@langchain/core/utils/stream';
26
27
  import '../common-BSXkQfxI.js';
27
28
  import '../loader-DrIQ37nm.js';
28
29
  import '../skill/index.js';
@@ -3,15 +3,15 @@ import {
3
3
  skillTools,
4
4
  tools,
5
5
  withMemory
6
- } from "../chunk-IJ4VJIQV.js";
6
+ } from "../chunk-NI3U6RZL.js";
7
7
  import {
8
8
  recallMemory,
9
9
  recordMemory,
10
10
  validateScope,
11
11
  validateTopK
12
- } from "../chunk-HMKA537A.js";
12
+ } from "../chunk-45S6S5WI.js";
13
13
  import "../chunk-KTKZCLYB.js";
14
- import "../chunk-6EJFZSYH.js";
14
+ import "../chunk-PHVKSATD.js";
15
15
  import "../chunk-D45QSOR4.js";
16
16
  import "../chunk-EKXZKKJJ.js";
17
17
  import "../chunk-76NTQYJB.js";
@@ -4,10 +4,10 @@
4
4
 
5
5
 
6
6
 
7
- var _chunkGOJ4Q4QWcjs = require('../chunk-GOJ4Q4QW.cjs');
8
- require('../chunk-5P5SJLNH.cjs');
7
+ var _chunkWRRIPTJPcjs = require('../chunk-WRRIPTJP.cjs');
8
+ require('../chunk-T26WN7TD.cjs');
9
9
  require('../chunk-2TRT7RSV.cjs');
10
- require('../chunk-QT736X32.cjs');
10
+ require('../chunk-ZIXZWQSP.cjs');
11
11
  require('../chunk-UMTUXOKE.cjs');
12
12
  require('../chunk-EGUKJE3Z.cjs');
13
13
  require('../chunk-25KH5XKG.cjs');
@@ -25,5 +25,5 @@ require('../chunk-V4A6MJ42.cjs');
25
25
 
26
26
 
27
27
 
28
- exports.AgentCoreConverter = _chunkPC4FM2RPcjs.LangChainEventConverter; exports.AgentCoreMemoryNodes = _chunkGOJ4Q4QWcjs.AgentCoreMemoryNodes; exports.model = _chunkGOJ4Q4QWcjs.model; exports.skillTools = _chunkGOJ4Q4QWcjs.skillTools; exports.tools = _chunkGOJ4Q4QWcjs.tools; exports.withMemory = _chunkGOJ4Q4QWcjs.withMemory;
28
+ exports.AgentCoreConverter = _chunkPC4FM2RPcjs.LangChainEventConverter; exports.AgentCoreMemoryNodes = _chunkWRRIPTJPcjs.AgentCoreMemoryNodes; exports.model = _chunkWRRIPTJPcjs.model; exports.skillTools = _chunkWRRIPTJPcjs.skillTools; exports.tools = _chunkWRRIPTJPcjs.tools; exports.withMemory = _chunkWRRIPTJPcjs.withMemory;
29
29
  //# sourceMappingURL=langgraph.cjs.map
@@ -1,7 +1,7 @@
1
1
  import { BaseMessage } from '@langchain/core/messages';
2
2
  import { MemoryStore, MemoryScope, MemoryMessage } from '../memory/index.cjs';
3
3
  import { L as Logger } from '../logging-C8GLLg1f.cjs';
4
- export { L as LangChainModelOptions, a as LangChainProviderOptions, m as model, s as skillTools, t as tools } from '../langchain-adapter-DFJdEX04.cjs';
4
+ export { L as LangChainModelOptions, a as LangChainProviderOptions, m as model, s as skillTools, t as tools } from '../langchain-adapter-DtxU7oAi.cjs';
5
5
  export { L as AgentCoreConverter } from '../event-converters-Cn_NeGyQ.cjs';
6
6
  import '../access-key-CkoHq3S8.cjs';
7
7
  import 'node:util';
@@ -15,10 +15,11 @@ import '../model/index.cjs';
15
15
  import '@ai-sdk/provider';
16
16
  import 'ai';
17
17
  import '@langchain/core/runnables';
18
- import '@langchain/core/language_models/base';
19
18
  import '@langchain/core/language_models/chat_models';
20
19
  import '@langchain/core/outputs';
21
20
  import '@langchain/core/callbacks/manager';
21
+ import '@langchain/core/language_models/base';
22
+ import '@langchain/core/utils/stream';
22
23
  import '../common-BSXkQfxI.cjs';
23
24
  import '../loader-eWuJ2GSL.cjs';
24
25
  import '../skill/index.cjs';
@@ -1,7 +1,7 @@
1
1
  import { BaseMessage } from '@langchain/core/messages';
2
2
  import { MemoryStore, MemoryScope, MemoryMessage } from '../memory/index.js';
3
3
  import { L as Logger } from '../logging-C8GLLg1f.js';
4
- export { L as LangChainModelOptions, a as LangChainProviderOptions, m as model, s as skillTools, t as tools } from '../langchain-adapter-DJsyjm5V.js';
4
+ export { L as LangChainModelOptions, a as LangChainProviderOptions, m as model, s as skillTools, t as tools } from '../langchain-adapter-CaTCXaeo.js';
5
5
  export { L as AgentCoreConverter } from '../event-converters-BIn8odqo.js';
6
6
  import '../access-key-CkoHq3S8.js';
7
7
  import 'node:util';
@@ -15,10 +15,11 @@ import '../model/index.js';
15
15
  import '@ai-sdk/provider';
16
16
  import 'ai';
17
17
  import '@langchain/core/runnables';
18
- import '@langchain/core/language_models/base';
19
18
  import '@langchain/core/language_models/chat_models';
20
19
  import '@langchain/core/outputs';
21
20
  import '@langchain/core/callbacks/manager';
21
+ import '@langchain/core/language_models/base';
22
+ import '@langchain/core/utils/stream';
22
23
  import '../common-BSXkQfxI.js';
23
24
  import '../loader-DrIQ37nm.js';
24
25
  import '../skill/index.js';
@@ -4,10 +4,10 @@ import {
4
4
  skillTools,
5
5
  tools,
6
6
  withMemory
7
- } from "../chunk-IJ4VJIQV.js";
8
- import "../chunk-HMKA537A.js";
7
+ } from "../chunk-NI3U6RZL.js";
8
+ import "../chunk-45S6S5WI.js";
9
9
  import "../chunk-KTKZCLYB.js";
10
- import "../chunk-6EJFZSYH.js";
10
+ import "../chunk-PHVKSATD.js";
11
11
  import "../chunk-D45QSOR4.js";
12
12
  import "../chunk-EKXZKKJJ.js";
13
13
  import "../chunk-76NTQYJB.js";
@@ -4,11 +4,11 @@
4
4
 
5
5
 
6
6
 
7
- var _chunk5P5SJLNHcjs = require('../chunk-5P5SJLNH.cjs');
7
+ var _chunkT26WN7TDcjs = require('../chunk-T26WN7TD.cjs');
8
8
 
9
9
 
10
10
  var _chunk2TRT7RSVcjs = require('../chunk-2TRT7RSV.cjs');
11
- require('../chunk-QT736X32.cjs');
11
+ require('../chunk-ZIXZWQSP.cjs');
12
12
  require('../chunk-UMTUXOKE.cjs');
13
13
  require('../chunk-EGUKJE3Z.cjs');
14
14
  require('../chunk-25KH5XKG.cjs');
@@ -48,7 +48,7 @@ var AgentCoreMemoryProcessor = (_class = class {
48
48
  this.store = store;
49
49
  this.options = options;
50
50
  this.topK = _nullishCoalesce(options.topK, () => ( 5));
51
- _chunk5P5SJLNHcjs.validateTopK.call(void 0, this.topK);
51
+ _chunkT26WN7TDcjs.validateTopK.call(void 0, this.topK);
52
52
  }
53
53
 
54
54
 
@@ -56,9 +56,9 @@ var AgentCoreMemoryProcessor = (_class = class {
56
56
 
57
57
  async processInput({ messages, state, requestContext }) {
58
58
  const scopes = this.options.scopeResolver(requestContext);
59
- if (this.options.writeBack) _chunk5P5SJLNHcjs.validateScope.call(void 0, scopes.write);
59
+ if (this.options.writeBack) _chunkT26WN7TDcjs.validateScope.call(void 0, scopes.write);
60
60
  const input = incomingMessages(messages);
61
- const reference = _chunk5P5SJLNHcjs.referenceText.call(void 0, await _chunk5P5SJLNHcjs.recallMemory.call(void 0,
61
+ const reference = _chunkT26WN7TDcjs.referenceText.call(void 0, await _chunkT26WN7TDcjs.recallMemory.call(void 0,
62
62
  this.store,
63
63
  input.map((m) => m.content).join("\n"),
64
64
  scopes.read,
@@ -77,7 +77,7 @@ var AgentCoreMemoryProcessor = (_class = class {
77
77
  const turn = state.turnMemory;
78
78
  const final = result.steps.at(-1);
79
79
  if (!_optionalChain([abortSignal, 'optionalAccess', _6 => _6.aborted]) && _optionalChain([turn, 'optionalAccess', _7 => _7.writeScope]) && turn.input.length && result.finishReason === "stop" && _optionalChain([final, 'optionalAccess', _8 => _8.text, 'access', _9 => _9.trim, 'call', _10 => _10()]) && !final.toolCalls.length) {
80
- await _chunk5P5SJLNHcjs.recordMemory.call(void 0,
80
+ await _chunkT26WN7TDcjs.recordMemory.call(void 0,
81
81
  this.store,
82
82
  [...turn.input, { role: "assistant", content: final.text }],
83
83
  turn.writeScope,
@@ -4,11 +4,11 @@ import {
4
4
  referenceText,
5
5
  validateScope,
6
6
  validateTopK
7
- } from "../chunk-HMKA537A.js";
7
+ } from "../chunk-45S6S5WI.js";
8
8
  import {
9
9
  skillTools
10
10
  } from "../chunk-KTKZCLYB.js";
11
- import "../chunk-6EJFZSYH.js";
11
+ import "../chunk-PHVKSATD.js";
12
12
  import "../chunk-D45QSOR4.js";
13
13
  import "../chunk-EKXZKKJJ.js";
14
14
  import "../chunk-76NTQYJB.js";
@@ -8,10 +8,11 @@ import { ProviderModelClient } from './model/index.js';
8
8
  import * as _langchain_core_runnables from '@langchain/core/runnables';
9
9
  import * as _langchain_core_messages from '@langchain/core/messages';
10
10
  import { AIMessageChunk, BaseMessage } from '@langchain/core/messages';
11
- import * as _langchain_core_language_models_base from '@langchain/core/language_models/base';
12
11
  import { BaseChatModel, BaseChatModelCallOptions, BindToolsInput } from '@langchain/core/language_models/chat_models';
13
12
  import { ChatResult, ChatGenerationChunk } from '@langchain/core/outputs';
14
13
  import { CallbackManagerForLLMRun } from '@langchain/core/callbacks/manager';
14
+ import { BaseLanguageModelInput } from '@langchain/core/language_models/base';
15
+ import { IterableReadableStream } from '@langchain/core/utils/stream';
15
16
  import { LanguageModelV3CallOptions } from '@ai-sdk/provider';
16
17
  import { T as Tool } from './common-BSXkQfxI.js';
17
18
  import { S as Skill } from './loader-DrIQ37nm.js';
@@ -28,7 +29,8 @@ declare class ProviderChatModel extends BaseChatModel<ProviderChatCallOptions> {
28
29
  constructor(client: ProviderModelClient, defaults?: LangChainProviderOptions);
29
30
  _llmType(): string;
30
31
  get callKeys(): string[];
31
- bindTools(tools: BindToolsInput[], kwargs?: Partial<ProviderChatCallOptions>): _langchain_core_runnables.Runnable<_langchain_core_language_models_base.BaseLanguageModelInput, AIMessageChunk<_langchain_core_messages.MessageStructure<_langchain_core_messages.MessageToolSet>>, ProviderChatCallOptions>;
32
+ bindTools(tools: BindToolsInput[], kwargs?: Partial<ProviderChatCallOptions>): _langchain_core_runnables.Runnable<BaseLanguageModelInput, AIMessageChunk<_langchain_core_messages.MessageStructure<_langchain_core_messages.MessageToolSet>>, ProviderChatCallOptions>;
33
+ stream(input: BaseLanguageModelInput, options?: Partial<ProviderChatCallOptions>): Promise<IterableReadableStream<AIMessageChunk>>;
32
34
  _generate(messages: BaseMessage[], options: this['ParsedCallOptions']): Promise<ChatResult>;
33
35
  _streamResponseChunks(messages: BaseMessage[], options: this['ParsedCallOptions'], runManager?: CallbackManagerForLLMRun): AsyncGenerator<ChatGenerationChunk>;
34
36
  private request;
@@ -8,10 +8,11 @@ import { ProviderModelClient } from './model/index.cjs';
8
8
  import * as _langchain_core_runnables from '@langchain/core/runnables';
9
9
  import * as _langchain_core_messages from '@langchain/core/messages';
10
10
  import { AIMessageChunk, BaseMessage } from '@langchain/core/messages';
11
- import * as _langchain_core_language_models_base from '@langchain/core/language_models/base';
12
11
  import { BaseChatModel, BaseChatModelCallOptions, BindToolsInput } from '@langchain/core/language_models/chat_models';
13
12
  import { ChatResult, ChatGenerationChunk } from '@langchain/core/outputs';
14
13
  import { CallbackManagerForLLMRun } from '@langchain/core/callbacks/manager';
14
+ import { BaseLanguageModelInput } from '@langchain/core/language_models/base';
15
+ import { IterableReadableStream } from '@langchain/core/utils/stream';
15
16
  import { LanguageModelV3CallOptions } from '@ai-sdk/provider';
16
17
  import { T as Tool } from './common-BSXkQfxI.cjs';
17
18
  import { S as Skill } from './loader-eWuJ2GSL.cjs';
@@ -28,7 +29,8 @@ declare class ProviderChatModel extends BaseChatModel<ProviderChatCallOptions> {
28
29
  constructor(client: ProviderModelClient, defaults?: LangChainProviderOptions);
29
30
  _llmType(): string;
30
31
  get callKeys(): string[];
31
- bindTools(tools: BindToolsInput[], kwargs?: Partial<ProviderChatCallOptions>): _langchain_core_runnables.Runnable<_langchain_core_language_models_base.BaseLanguageModelInput, AIMessageChunk<_langchain_core_messages.MessageStructure<_langchain_core_messages.MessageToolSet>>, ProviderChatCallOptions>;
32
+ bindTools(tools: BindToolsInput[], kwargs?: Partial<ProviderChatCallOptions>): _langchain_core_runnables.Runnable<BaseLanguageModelInput, AIMessageChunk<_langchain_core_messages.MessageStructure<_langchain_core_messages.MessageToolSet>>, ProviderChatCallOptions>;
33
+ stream(input: BaseLanguageModelInput, options?: Partial<ProviderChatCallOptions>): Promise<IterableReadableStream<AIMessageChunk>>;
32
34
  _generate(messages: BaseMessage[], options: this['ParsedCallOptions']): Promise<ChatResult>;
33
35
  _streamResponseChunks(messages: BaseMessage[], options: this['ParsedCallOptions'], runManager?: CallbackManagerForLLMRun): AsyncGenerator<ChatGenerationChunk>;
34
36
  private request;
@@ -8,6 +8,7 @@ import { BaseChatModel } from "@langchain/core/language_models/chat_models";
8
8
  import { AIMessageChunk } from "@langchain/core/messages";
9
9
  import { ChatGenerationChunk } from "@langchain/core/outputs";
10
10
  import { convertToOpenAITool } from "@langchain/core/utils/function_calling";
11
+ import { IterableReadableStream } from "@langchain/core/utils/stream";
11
12
  var ProviderChatModel = class extends BaseChatModel {
12
13
  constructor(client, defaults = {}) {
13
14
  super({ maxRetries: 0 });
@@ -25,6 +26,29 @@ var ProviderChatModel = class extends BaseChatModel {
25
26
  bindTools(tools, kwargs) {
26
27
  return this.withConfig({ ...kwargs, tools });
27
28
  }
29
+ async stream(input, options) {
30
+ const controller = new AbortController();
31
+ const signal = AbortSignal.any([controller.signal, ...options?.signal ? [options.signal] : []]);
32
+ const stream = await super.stream(input, { ...options, signal });
33
+ const reader = stream.getReader();
34
+ return new IterableReadableStream({
35
+ async pull(output) {
36
+ const next = await reader.read();
37
+ if (next.done) {
38
+ reader.releaseLock();
39
+ output.close();
40
+ } else output.enqueue(next.value);
41
+ },
42
+ async cancel(reason) {
43
+ controller.abort(reason);
44
+ try {
45
+ await reader.cancel(reason);
46
+ } finally {
47
+ reader.releaseLock();
48
+ }
49
+ }
50
+ });
51
+ }
28
52
  async _generate(messages, options) {
29
53
  const result = await this.client.languageModel.doGenerate(this.request(messages, options));
30
54
  const content = result.content.filter((p) => p.type === "text" || p.type === "reasoning" || p.type === "file").map(outputPart);
@@ -224,4 +248,4 @@ function toolChoice(value) {
224
248
  export {
225
249
  ProviderChatModel
226
250
  };
227
- //# sourceMappingURL=langchain-provider-MWLP3I7S.js.map
251
+ //# sourceMappingURL=langchain-provider-JFWLKOGL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/integrations/langchain-provider.ts"],"sourcesContent":["import { BaseChatModel, type BaseChatModelCallOptions, type BindToolsInput } from '@langchain/core/language_models/chat_models';\nimport { AIMessage, AIMessageChunk, type BaseMessage, type UsageMetadata } from '@langchain/core/messages';\nimport { ChatGenerationChunk, type ChatResult } from '@langchain/core/outputs';\nimport type { CallbackManagerForLLMRun } from '@langchain/core/callbacks/manager';\nimport type { BaseLanguageModelInput } from '@langchain/core/language_models/base';\nimport { convertToOpenAITool } from '@langchain/core/utils/function_calling';\nimport { IterableReadableStream } from '@langchain/core/utils/stream';\nimport type { LanguageModelV3CallOptions, LanguageModelV3Content, LanguageModelV3Message, LanguageModelV3Prompt,\n LanguageModelV3ToolChoice, LanguageModelV3Usage, LanguageModelV3FunctionTool, SharedV3ProviderOptions } from '@ai-sdk/provider';\nimport type { ProviderModelClient } from '../model/provider';\nimport { ConfigError, InvocationError } from '../errors';\n\nexport type LangChainProviderOptions = Pick<LanguageModelV3CallOptions,\n 'maxOutputTokens' | 'temperature' | 'topP' | 'topK' | 'presencePenalty' | 'frequencyPenalty' | 'seed' | 'responseFormat' | 'providerOptions' | 'headers'>;\nexport interface ProviderChatCallOptions extends BaseChatModelCallOptions, LangChainProviderOptions { tools?: BindToolsInput[]; }\n\n/** LangChain owns tool execution; this bridge performs one provider call per model step. */\nexport class ProviderChatModel extends BaseChatModel<ProviderChatCallOptions> {\n constructor(private readonly client: ProviderModelClient, private readonly defaults: LangChainProviderOptions = {}) { super({ maxRetries: 0 }); }\n _llmType(): string { return 'agentcore-provider'; }\n get callKeys(): string[] { return [...super.callKeys, 'tools', 'tool_choice', 'maxOutputTokens', 'temperature', 'topP', 'topK', 'presencePenalty', 'frequencyPenalty', 'seed', 'responseFormat', 'providerOptions', 'headers']; }\n bindTools(tools: BindToolsInput[], kwargs?: Partial<ProviderChatCallOptions>) { return this.withConfig({ ...kwargs, tools }); }\n\n async stream(input: BaseLanguageModelInput, options?: Partial<ProviderChatCallOptions>): Promise<IterableReadableStream<AIMessageChunk>> {\n const controller = new AbortController();\n const signal = AbortSignal.any([controller.signal, ...(options?.signal ? [options.signal] : [])]);\n const stream = await super.stream(input, { ...options, signal });\n const reader = stream.getReader();\n return new IterableReadableStream<AIMessageChunk>({\n async pull(output) {\n const next = await reader.read();\n if (next.done) { reader.releaseLock(); output.close(); }\n else output.enqueue(next.value);\n },\n async cancel(reason) {\n // Abort before waiting for LangChain's generator, which may be prefetching.\n controller.abort(reason);\n try { await reader.cancel(reason); }\n finally { reader.releaseLock(); }\n },\n });\n }\n\n async _generate(messages: BaseMessage[], options: this['ParsedCallOptions']): Promise<ChatResult> {\n const result = await this.client.languageModel.doGenerate(this.request(messages, options));\n const content = result.content.filter(p => p.type === 'text' || p.type === 'reasoning' || p.type === 'file').map(outputPart);\n const calls = result.content.filter(p => p.type === 'tool-call');\n const message = new AIMessageChunk({ content, tool_calls: calls.map(call => ({ type: 'tool_call', id: call.toolCallId, name: call.toolName, args: JSON.parse(call.input) })),\n additional_kwargs: { agentcore_tool_metadata: Object.fromEntries(calls.map(call => [call.toolCallId, call.providerMetadata])) },\n usage_metadata: usage(result.usage), response_metadata: { finish_reason: result.finishReason.unified, providerMetadata: result.providerMetadata,\n sources: result.content.filter(p => p.type === 'source') },\n });\n return { generations: [{ text: message.text, message }] };\n }\n async *_streamResponseChunks(messages: BaseMessage[], options: this['ParsedCallOptions'], runManager?: CallbackManagerForLLMRun): AsyncGenerator<ChatGenerationChunk> {\n const controller = new AbortController();\n const signal = AbortSignal.any([controller.signal, ...(options.signal ? [options.signal] : [])]);\n try {\n const result = await this.client.languageModel.doStream(this.request(messages, { ...options, signal }));\n const reader = result.stream.getReader();\n const blocks = new Map<string, number>(); const calls = new Map<string, number>(); let finished = false;\n try {\n while (true) {\n const next = await reader.read(); if (next.done) break;\n const part = next.value; let message: AIMessageChunk | undefined; let text = '';\n if (part.type === 'error') throw part.error;\n if (part.type === 'text-delta' || part.type === 'reasoning-delta') {\n const key = `${part.type}:${part.id}`;\n if (!blocks.has(key)) blocks.set(key, blocks.size);\n const index = blocks.get(key)!;\n text = part.type === 'text-delta' ? part.delta : '';\n message = new AIMessageChunk({ content: [part.type === 'text-delta'\n ? { type: 'text', text, index, providerOptions: part.providerMetadata }\n : { type: 'reasoning', reasoning: part.delta, index, providerOptions: part.providerMetadata }] });\n } else if (part.type === 'text-end' || part.type === 'reasoning-end') {\n const index = blocks.get(`${part.type === 'text-end' ? 'text' : 'reasoning'}-delta:${part.id}`);\n if (index !== undefined && part.providerMetadata) message = new AIMessageChunk({ content: [{\n type: part.type === 'text-end' ? 'text' : 'reasoning', index, providerOptions: part.providerMetadata,\n }] });\n } else if (part.type === 'tool-input-start') {\n const index = calls.size; calls.set(part.id, index);\n message = new AIMessageChunk({ content: [], tool_call_chunks: [{ type: 'tool_call_chunk', index, id: part.id, name: part.toolName, args: '' }] });\n } else if (part.type === 'tool-input-delta') {\n message = new AIMessageChunk({ content: [], tool_call_chunks: [{ type: 'tool_call_chunk', index: calls.get(part.id), args: part.delta }] });\n } else if (part.type === 'tool-call') {\n const metadata = { agentcore_tool_metadata: { [part.toolCallId]: part.providerMetadata } };\n message = new AIMessageChunk({ content: [], additional_kwargs: metadata,\n tool_call_chunks: calls.has(part.toolCallId) ? [] : [{ type: 'tool_call_chunk', index: calls.size, id: part.toolCallId, name: part.toolName, args: part.input }],\n });\n if (!calls.has(part.toolCallId)) calls.set(part.toolCallId, calls.size);\n } else if (part.type === 'file') {\n const index = blocks.size; blocks.set(`file:${index}`, index);\n message = new AIMessageChunk({ content: [{ ...outputPart(part), index }] });\n } else if (part.type === 'source') {\n message = new AIMessageChunk({ content: [], response_metadata: { sources: [part] } });\n } else if (part.type === 'finish') {\n finished = true;\n message = new AIMessageChunk({ content: [], usage_metadata: usage(part.usage),\n response_metadata: { finish_reason: part.finishReason.unified, providerMetadata: part.providerMetadata } });\n }\n if (message) {\n const chunk = new ChatGenerationChunk({ text, message }); yield chunk;\n await runManager?.handleLLMNewToken(text, undefined, undefined, undefined, undefined, { chunk });\n }\n }\n if (!finished) throw new InvocationError('model stream ended without a completion event');\n } finally { reader.releaseLock(); }\n } finally { controller.abort(); }\n }\n private request(messages: BaseMessage[], options: this['ParsedCallOptions']): LanguageModelV3CallOptions {\n const settings = { ...this.defaults, ...options };\n return { prompt: prompt(messages), abortSignal: options.signal, stopSequences: options.stop,\n maxOutputTokens: settings.maxOutputTokens, temperature: settings.temperature, topP: settings.topP, topK: settings.topK,\n presencePenalty: settings.presencePenalty, frequencyPenalty: settings.frequencyPenalty, seed: settings.seed,\n responseFormat: settings.responseFormat, providerOptions: settings.providerOptions, headers: settings.headers,\n tools: options.tools?.map(item => {\n const value = convertToOpenAITool(item).function;\n return { type: 'function', name: value.name, description: value.description, inputSchema: value.parameters as LanguageModelV3FunctionTool['inputSchema'] };\n }), toolChoice: toolChoice(options.tool_choice),\n };\n }\n}\n\ntype ChatPart = Extract<LanguageModelV3Message, { role: 'assistant' }>['content'][number];\ntype UserPart = Extract<LanguageModelV3Message, { role: 'user' }>['content'][number];\nfunction prompt(messages: BaseMessage[]): LanguageModelV3Prompt {\n const names = new Map<string, string>(); const result: LanguageModelV3Prompt = [];\n for (const message of messages) {\n const role = message.type;\n if (role === 'system') { result.push({ role: 'system', content: message.text }); continue; }\n if (role === 'tool') {\n const id = (message as BaseMessage & { tool_call_id: string }).tool_call_id;\n const name = message.name ?? names.get(id);\n if (!name) throw new ConfigError('LangChain ToolMessage requires a matching tool call or name');\n result.push({ role: 'tool', content: [{ type: 'tool-result', toolCallId: id, toolName: name,\n output: { type: 'text', value: typeof message.content === 'string' ? message.content : JSON.stringify(message.content) } }] });\n continue;\n }\n if (role !== 'human' && role !== 'ai') throw new ConfigError(`unsupported LangChain message role: ${role}`);\n const content: ChatPart[] = typeof message.content === 'string' ? [{ type: 'text', text: message.content }] : message.content.map(inputPart);\n if (role === 'ai') {\n const metadata = message.additional_kwargs.agentcore_tool_metadata as Record<string, SharedV3ProviderOptions> | undefined;\n for (const call of (message as AIMessage).tool_calls ?? []) {\n if (!call.id) throw new ConfigError('LangChain tool call requires an id');\n names.set(call.id, call.name);\n content.push({ type: 'tool-call', toolCallId: call.id, toolName: call.name, input: call.args, providerOptions: metadata?.[call.id] });\n }\n result.push({ role: 'assistant', content });\n } else result.push({ role: 'user', content: content as UserPart[] });\n }\n return result;\n}\nfunction inputPart(part: Record<string, any>): ChatPart {\n const providerOptions = part.providerOptions as SharedV3ProviderOptions | undefined;\n if (part.type === 'text') return { type: 'text', text: part.text, providerOptions };\n if (part.type === 'reasoning') return { type: 'reasoning', text: part.reasoning, providerOptions };\n if (part.type === 'image_url') {\n const url = typeof part.image_url === 'string' ? part.image_url : part.image_url.url;\n return filePart(url, 'image/*', providerOptions);\n }\n if (['image', 'audio', 'video', 'file'].includes(part.type)) {\n const data = part.url ?? part.data;\n const mediaType = part.mimeType ?? part.mime_type ?? (part.type === 'file' ? undefined : `${part.type}/*`);\n if (data !== undefined) return filePart(data, mediaType, providerOptions);\n }\n throw new ConfigError(`unsupported LangChain provider content block: ${part.type}`);\n}\nfunction filePart(data: string | Uint8Array, mediaType?: string, providerOptions?: SharedV3ProviderOptions): ChatPart {\n if (typeof data === 'string' && data.startsWith('data:')) {\n const match = /^data:([^;,]+);base64,(.*)$/s.exec(data);\n if (!match) throw new ConfigError('data URL must contain base64 data and a media type');\n return { type: 'file', mediaType: match[1]!, data: match[2]!, providerOptions };\n }\n const url = typeof data === 'string' && /^(https?:|gs:)/.test(data) ? new URL(data) : undefined;\n if (!mediaType) throw new ConfigError('file content requires a media type');\n return { type: 'file', mediaType, data: url ?? data, providerOptions };\n}\nfunction outputPart(part: Extract<LanguageModelV3Content, { type: 'text' | 'reasoning' | 'file' }>): { type: string; [key: string]: unknown } {\n if (part.type === 'text') return { type: 'text', text: part.text, providerOptions: part.providerMetadata };\n if (part.type === 'reasoning') return { type: 'reasoning', reasoning: part.text, providerOptions: part.providerMetadata };\n return { type: 'file', mimeType: part.mediaType,\n data: typeof part.data === 'string' ? part.data : Buffer.from(part.data).toString('base64'), providerOptions: part.providerMetadata };\n}\nfunction usage(value: LanguageModelV3Usage): UsageMetadata {\n const input = value.inputTokens.total ?? 0; const output = value.outputTokens.total ?? 0;\n return { input_tokens: input, output_tokens: output, total_tokens: input + output };\n}\nfunction toolChoice(value: ProviderChatCallOptions['tool_choice']): LanguageModelV3ToolChoice | undefined {\n if (value === undefined) return undefined;\n if (value === 'auto' || value === 'none' || value === 'required') return { type: value };\n if (value === 'any') return { type: 'required' };\n if (typeof value === 'string') return { type: 'tool', toolName: value };\n if (value.type === 'function' && typeof value.function?.name === 'string') return { type: 'tool', toolName: value.function.name };\n throw new ConfigError('unsupported LangChain tool_choice');\n}\n"],"mappings":"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","names":[]}