@copilotkit/runtime 1.50.0-beta.2 → 1.50.0-beta.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.
- package/CHANGELOG.md +23 -0
- package/dist/chunk-27JKTS6P.mjs +1704 -0
- package/dist/chunk-27JKTS6P.mjs.map +1 -0
- package/dist/chunk-2GPTVDTO.mjs +25 -0
- package/dist/chunk-2GPTVDTO.mjs.map +1 -0
- package/dist/chunk-2OZAGFV3.mjs +43 -0
- package/dist/chunk-2OZAGFV3.mjs.map +1 -0
- package/dist/chunk-3AJVKDZX.mjs +3097 -0
- package/dist/chunk-3AJVKDZX.mjs.map +1 -0
- package/dist/chunk-45RCC3ZS.mjs +25 -0
- package/dist/chunk-45RCC3ZS.mjs.map +1 -0
- package/dist/chunk-4EHJ4XFJ.mjs +25 -0
- package/dist/chunk-4EHJ4XFJ.mjs.map +1 -0
- package/dist/chunk-4IANB4TC.mjs +25 -0
- package/dist/chunk-4IANB4TC.mjs.map +1 -0
- package/dist/chunk-4KES76K3.mjs +74 -0
- package/dist/chunk-4KES76K3.mjs.map +1 -0
- package/dist/chunk-4OGE3SLW.mjs +3100 -0
- package/dist/chunk-4OGE3SLW.mjs.map +1 -0
- package/dist/chunk-54YJBMCP.mjs +3097 -0
- package/dist/chunk-54YJBMCP.mjs.map +1 -0
- package/dist/chunk-62NE5S6M.mjs +226 -0
- package/dist/chunk-62NE5S6M.mjs.map +1 -0
- package/dist/chunk-6ER4SZYH.mjs +74 -0
- package/dist/chunk-6ER4SZYH.mjs.map +1 -0
- package/dist/chunk-6TNSLHVR.mjs +74 -0
- package/dist/chunk-6TNSLHVR.mjs.map +1 -0
- package/dist/chunk-6XRUR5UK.mjs +1 -0
- package/dist/chunk-6XRUR5UK.mjs.map +1 -0
- package/dist/chunk-7V4BK7TZ.mjs +25 -0
- package/dist/chunk-7V4BK7TZ.mjs.map +1 -0
- package/dist/chunk-7YZIEXD2.mjs +74 -0
- package/dist/chunk-7YZIEXD2.mjs.map +1 -0
- package/dist/chunk-A4XHOAFU.mjs +25 -0
- package/dist/chunk-A4XHOAFU.mjs.map +1 -0
- package/dist/chunk-A555KEAD.mjs +6020 -0
- package/dist/chunk-A555KEAD.mjs.map +1 -0
- package/dist/chunk-AF73TFTX.mjs +74 -0
- package/dist/chunk-AF73TFTX.mjs.map +1 -0
- package/dist/chunk-AMUJQ6IR.mjs +50 -0
- package/dist/chunk-AMUJQ6IR.mjs.map +1 -0
- package/dist/chunk-AQG2SVCA.mjs +25 -0
- package/dist/chunk-AQG2SVCA.mjs.map +1 -0
- package/dist/chunk-BJZHMXND.mjs +74 -0
- package/dist/chunk-BJZHMXND.mjs.map +1 -0
- package/dist/chunk-CB2OJXF6.mjs +25 -0
- package/dist/chunk-CB2OJXF6.mjs.map +1 -0
- package/dist/chunk-CEOMFPJU.mjs +6020 -0
- package/dist/chunk-CEOMFPJU.mjs.map +1 -0
- package/dist/chunk-CZVLR7CC.mjs +175 -0
- package/dist/chunk-CZVLR7CC.mjs.map +1 -0
- package/dist/chunk-DCEEHMLJ.mjs +1127 -0
- package/dist/chunk-DCEEHMLJ.mjs.map +1 -0
- package/dist/chunk-DE3CLKUG.mjs +25 -0
- package/dist/chunk-DE3CLKUG.mjs.map +1 -0
- package/dist/chunk-DTPRUTNV.mjs +25 -0
- package/dist/chunk-DTPRUTNV.mjs.map +1 -0
- package/dist/chunk-ERUOA47O.mjs +626 -0
- package/dist/chunk-ERUOA47O.mjs.map +1 -0
- package/dist/chunk-ESSRC64W.mjs +74 -0
- package/dist/chunk-ESSRC64W.mjs.map +1 -0
- package/dist/chunk-FHD4JECV.mjs +33 -0
- package/dist/chunk-FHD4JECV.mjs.map +1 -0
- package/dist/chunk-GRAN6K6N.mjs +25 -0
- package/dist/chunk-GRAN6K6N.mjs.map +1 -0
- package/dist/chunk-I27F2UPA.mjs +175 -0
- package/dist/chunk-I27F2UPA.mjs.map +1 -0
- package/dist/chunk-IAZKTOQW.mjs +25 -0
- package/dist/chunk-IAZKTOQW.mjs.map +1 -0
- package/dist/chunk-J6XZ5MFB.mjs +25 -0
- package/dist/chunk-J6XZ5MFB.mjs.map +1 -0
- package/dist/chunk-JJ32MA4C.mjs +73 -0
- package/dist/chunk-JJ32MA4C.mjs.map +1 -0
- package/dist/chunk-JJY4ZTHQ.mjs +25 -0
- package/dist/chunk-JJY4ZTHQ.mjs.map +1 -0
- package/dist/chunk-KEYLBFU2.mjs +3117 -0
- package/dist/chunk-KEYLBFU2.mjs.map +1 -0
- package/dist/chunk-KQ53L4WZ.mjs +3094 -0
- package/dist/chunk-KQ53L4WZ.mjs.map +1 -0
- package/dist/chunk-KTELVQ67.mjs +3098 -0
- package/dist/chunk-KTELVQ67.mjs.map +1 -0
- package/dist/chunk-LPEPX6NH.mjs +25 -0
- package/dist/chunk-LPEPX6NH.mjs.map +1 -0
- package/dist/chunk-MDXE55DK.mjs +3117 -0
- package/dist/chunk-MDXE55DK.mjs.map +1 -0
- package/dist/chunk-MMFUVOXH.mjs +73 -0
- package/dist/chunk-MMFUVOXH.mjs.map +1 -0
- package/dist/chunk-N3Y4U66N.mjs +253 -0
- package/dist/chunk-N3Y4U66N.mjs.map +1 -0
- package/dist/chunk-O7UYB4MH.mjs +25 -0
- package/dist/chunk-O7UYB4MH.mjs.map +1 -0
- package/dist/chunk-OFNVQHNM.mjs +3089 -0
- package/dist/chunk-OFNVQHNM.mjs.map +1 -0
- package/dist/chunk-OFSV5GET.mjs +3074 -0
- package/dist/chunk-OFSV5GET.mjs.map +1 -0
- package/dist/chunk-OMRST67R.mjs +25 -0
- package/dist/chunk-OMRST67R.mjs.map +1 -0
- package/dist/chunk-OWIGJONH.mjs +275 -0
- package/dist/chunk-OWIGJONH.mjs.map +1 -0
- package/dist/chunk-PRZHE74A.mjs +25 -0
- package/dist/chunk-PRZHE74A.mjs.map +1 -0
- package/dist/chunk-PTYRVXXP.mjs +80 -0
- package/dist/chunk-PTYRVXXP.mjs.map +1 -0
- package/dist/chunk-R22B5CCO.mjs +25 -0
- package/dist/chunk-R22B5CCO.mjs.map +1 -0
- package/dist/chunk-SHBDMA63.mjs +141 -0
- package/dist/chunk-SHBDMA63.mjs.map +1 -0
- package/dist/chunk-SPVXBPRA.mjs +74 -0
- package/dist/chunk-SPVXBPRA.mjs.map +1 -0
- package/dist/chunk-T72G46ME.mjs +25 -0
- package/dist/chunk-T72G46ME.mjs.map +1 -0
- package/dist/chunk-TGELROPU.mjs +25 -0
- package/dist/chunk-TGELROPU.mjs.map +1 -0
- package/dist/chunk-UNX4IAAD.mjs +25 -0
- package/dist/chunk-UNX4IAAD.mjs.map +1 -0
- package/dist/chunk-V4DHVC7M.mjs +3085 -0
- package/dist/chunk-V4DHVC7M.mjs.map +1 -0
- package/dist/chunk-VVRFOB66.mjs +25 -0
- package/dist/chunk-VVRFOB66.mjs.map +1 -0
- package/dist/chunk-W6NVBYM6.mjs +80 -0
- package/dist/chunk-W6NVBYM6.mjs.map +1 -0
- package/dist/chunk-W7MBACGC.mjs +74 -0
- package/dist/chunk-W7MBACGC.mjs.map +1 -0
- package/dist/chunk-WMD4XZZS.mjs +25 -0
- package/dist/chunk-WMD4XZZS.mjs.map +1 -0
- package/dist/chunk-WX2ZNCRT.mjs +74 -0
- package/dist/chunk-WX2ZNCRT.mjs.map +1 -0
- package/dist/chunk-XWBDEXDA.mjs +153 -0
- package/dist/chunk-XWBDEXDA.mjs.map +1 -0
- package/dist/chunk-Y2Z62E2T.mjs +74 -0
- package/dist/chunk-Y2Z62E2T.mjs.map +1 -0
- package/dist/chunk-YO4I6RVI.mjs +25 -0
- package/dist/chunk-YO4I6RVI.mjs.map +1 -0
- package/dist/chunk-Z6Q5IW6I.mjs +3098 -0
- package/dist/chunk-Z6Q5IW6I.mjs.map +1 -0
- package/dist/chunk-Z726O3G2.mjs +25 -0
- package/dist/chunk-Z726O3G2.mjs.map +1 -0
- package/dist/chunk-ZE4SMZZR.mjs +3097 -0
- package/dist/chunk-ZE4SMZZR.mjs.map +1 -0
- package/dist/chunk-ZULZB33C.mjs +73 -0
- package/dist/chunk-ZULZB33C.mjs.map +1 -0
- package/dist/chunk-ZVRGXMY7.mjs +25 -0
- package/dist/chunk-ZVRGXMY7.mjs.map +1 -0
- package/dist/chunk-ZZ35WBYQ.mjs +25 -0
- package/dist/chunk-ZZ35WBYQ.mjs.map +1 -0
- package/dist/graphql/message-conversion/index.d.ts +18 -0
- package/dist/graphql/message-conversion/index.js +725 -0
- package/dist/graphql/message-conversion/index.js.map +1 -0
- package/dist/graphql/message-conversion/index.mjs +245 -0
- package/dist/graphql/message-conversion/index.mjs.map +1 -0
- package/dist/graphql/types/base/index.d.ts +6 -0
- package/dist/graphql/types/base/index.js +63 -0
- package/dist/graphql/types/base/index.js.map +1 -0
- package/dist/graphql/types/base/index.mjs +8 -0
- package/dist/graphql/types/base/index.mjs.map +1 -0
- package/dist/graphql/types/converted/index.d.ts +2 -0
- package/dist/graphql/types/converted/index.js +200 -0
- package/dist/graphql/types/converted/index.js.map +1 -0
- package/dist/graphql/types/converted/index.mjs +19 -0
- package/dist/graphql/types/converted/index.mjs.map +1 -0
- package/dist/groq-adapter-540da9c3.d.ts +331 -0
- package/dist/groq-adapter-a6f5e9d2.d.ts +331 -0
- package/dist/groq-adapter-c8aec5c5.d.ts +321 -0
- package/dist/index-96b330da.d.ts +119 -0
- package/dist/index-adbd78f1.d.ts +154 -0
- package/dist/index.d.ts +71 -281
- package/dist/index.js +294 -277
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +287 -266
- package/dist/index.mjs.map +1 -1
- package/dist/langgraph.d.ts +284 -0
- package/dist/langgraph.js +211 -0
- package/dist/langgraph.js.map +1 -0
- package/dist/langgraph.mjs +206 -0
- package/dist/langgraph.mjs.map +1 -0
- package/dist/langserve-0c6100e3.d.ts +257 -0
- package/dist/langserve-978d5790.d.ts +243 -0
- package/dist/langserve-9fc76ce5.d.ts +243 -0
- package/dist/lib/cloud/index.d.ts +6 -0
- package/dist/lib/cloud/index.js +18 -0
- package/dist/lib/cloud/index.js.map +1 -0
- package/dist/lib/cloud/index.mjs +1 -0
- package/dist/lib/cloud/index.mjs.map +1 -0
- package/dist/lib/index.d.ts +212 -0
- package/dist/lib/index.js +7843 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/index.mjs +76 -0
- package/dist/lib/index.mjs.map +1 -0
- package/dist/lib/integrations/index.d.ts +34 -0
- package/dist/lib/integrations/index.js +3052 -0
- package/dist/lib/integrations/index.js.map +1 -0
- package/dist/lib/integrations/index.mjs +37 -0
- package/dist/lib/integrations/index.mjs.map +1 -0
- package/dist/lib/integrations/nest/index.d.ts +15 -0
- package/dist/lib/integrations/nest/index.js +2959 -0
- package/dist/lib/integrations/nest/index.js.map +1 -0
- package/dist/lib/integrations/nest/index.mjs +14 -0
- package/dist/lib/integrations/nest/index.mjs.map +1 -0
- package/dist/lib/integrations/node-express/index.d.ts +15 -0
- package/dist/lib/integrations/node-express/index.js +2959 -0
- package/dist/lib/integrations/node-express/index.js.map +1 -0
- package/dist/lib/integrations/node-express/index.mjs +14 -0
- package/dist/lib/integrations/node-express/index.mjs.map +1 -0
- package/dist/lib/integrations/node-http/index.d.ts +15 -0
- package/dist/lib/integrations/node-http/index.js +2945 -0
- package/dist/lib/integrations/node-http/index.js.map +1 -0
- package/dist/lib/integrations/node-http/index.mjs +13 -0
- package/dist/lib/integrations/node-http/index.mjs.map +1 -0
- package/dist/service-adapters/index.d.ts +162 -0
- package/dist/service-adapters/index.js +1787 -0
- package/dist/service-adapters/index.js.map +1 -0
- package/dist/service-adapters/index.mjs +34 -0
- package/dist/service-adapters/index.mjs.map +1 -0
- package/dist/service-adapters/shared/index.d.ts +9 -0
- package/dist/service-adapters/shared/index.js +72 -0
- package/dist/service-adapters/shared/index.js.map +1 -0
- package/dist/service-adapters/shared/index.mjs +8 -0
- package/dist/service-adapters/shared/index.mjs.map +1 -0
- package/dist/shared-0a7346ce.d.ts +466 -0
- package/dist/shared-35c6eb04.d.ts +448 -0
- package/dist/shared-9ed1dc31.d.ts +414 -0
- package/dist/shared-da5708fe.d.ts +449 -0
- package/dist/utils/index.d.ts +65 -0
- package/dist/utils/index.js +175 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/index.mjs +12 -0
- package/dist/utils/index.mjs.map +1 -0
- package/dist/v2/index.d.ts +1 -0
- package/dist/v2/index.js +7 -0
- package/dist/v2/index.js.map +1 -1
- package/dist/v2/index.mjs +1 -0
- package/dist/v2/index.mjs.map +1 -1
- package/package.json +50 -17
- package/src/langgraph.ts +1 -0
- package/src/lib/index.ts +41 -1
- package/src/lib/integrations/node-http/index.ts +129 -10
- package/src/lib/runtime/agent-integrations/{langgraph.agent.ts → langgraph/agent.ts} +5 -30
- package/src/lib/runtime/agent-integrations/langgraph/consts.ts +34 -0
- package/src/lib/runtime/agent-integrations/langgraph/index.ts +2 -0
- package/src/lib/runtime/copilot-runtime.ts +17 -40
- package/src/service-adapters/anthropic/anthropic-adapter.ts +16 -3
- package/src/service-adapters/bedrock/bedrock-adapter.ts +4 -1
- package/src/service-adapters/experimental/ollama/ollama-adapter.ts +2 -1
- package/src/service-adapters/google/google-genai-adapter.ts +9 -4
- package/src/service-adapters/groq/groq-adapter.ts +16 -3
- package/src/service-adapters/langchain/langchain-adapter.ts +5 -3
- package/src/service-adapters/langchain/langserve.ts +2 -1
- package/src/service-adapters/openai/openai-adapter.ts +17 -3
- package/src/service-adapters/openai/openai-assistant-adapter.ts +26 -11
- package/src/service-adapters/unify/unify-adapter.ts +3 -1
- package/src/v2/index.ts +1 -0
- package/tsup.config.ts +5 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/index.ts","../../src/graphql/types/response-status.type.ts","../../src/utils/failed-response-status-reasons.ts"],"sourcesContent":["export * from \"./failed-response-status-reasons\";\n","import { GraphQLJSON } from \"graphql-scalars\";\nimport { Field, InterfaceType, ObjectType, createUnionType, registerEnumType } from \"type-graphql\";\n\nexport enum ResponseStatusCode {\n Pending = \"pending\",\n Success = \"success\",\n Failed = \"failed\",\n}\n\nregisterEnumType(ResponseStatusCode, {\n name: \"ResponseStatusCode\",\n});\n\n@InterfaceType({\n resolveType(value) {\n if (value.code === ResponseStatusCode.Success) {\n return SuccessResponseStatus;\n } else if (value.code === ResponseStatusCode.Failed) {\n return FailedResponseStatus;\n } else if (value.code === ResponseStatusCode.Pending) {\n return PendingResponseStatus;\n }\n return undefined;\n },\n})\n@ObjectType()\nabstract class BaseResponseStatus {\n @Field(() => ResponseStatusCode)\n code: ResponseStatusCode;\n}\n\n@ObjectType({ implements: BaseResponseStatus })\nexport class PendingResponseStatus extends BaseResponseStatus {\n code: ResponseStatusCode = ResponseStatusCode.Pending;\n}\n\n@ObjectType({ implements: BaseResponseStatus })\nexport class SuccessResponseStatus extends BaseResponseStatus {\n code: ResponseStatusCode = ResponseStatusCode.Success;\n}\n\nexport enum FailedResponseStatusReason {\n GUARDRAILS_VALIDATION_FAILED = \"GUARDRAILS_VALIDATION_FAILED\",\n MESSAGE_STREAM_INTERRUPTED = \"MESSAGE_STREAM_INTERRUPTED\",\n UNKNOWN_ERROR = \"UNKNOWN_ERROR\",\n}\n\nregisterEnumType(FailedResponseStatusReason, {\n name: \"FailedResponseStatusReason\",\n});\n\n@ObjectType({ implements: BaseResponseStatus })\nexport class FailedResponseStatus extends BaseResponseStatus {\n code: ResponseStatusCode = ResponseStatusCode.Failed;\n\n @Field(() => FailedResponseStatusReason)\n reason: FailedResponseStatusReason;\n\n @Field(() => GraphQLJSON, { nullable: true })\n details?: Record<string, any> = null;\n}\n\nexport const ResponseStatusUnion = createUnionType({\n name: \"ResponseStatus\",\n types: () => [PendingResponseStatus, SuccessResponseStatus, FailedResponseStatus] as const,\n});\n","import {\n FailedResponseStatus,\n FailedResponseStatusReason,\n} from \"../graphql/types/response-status.type\";\n\nexport class GuardrailsValidationFailureResponse extends FailedResponseStatus {\n reason = FailedResponseStatusReason.GUARDRAILS_VALIDATION_FAILED;\n declare details: {\n guardrailsReason: string;\n };\n\n constructor({ guardrailsReason }) {\n super();\n this.details = {\n guardrailsReason,\n };\n }\n}\n\nexport class MessageStreamInterruptedResponse extends FailedResponseStatus {\n reason = FailedResponseStatusReason.MESSAGE_STREAM_INTERRUPTED;\n declare details: {\n messageId: string;\n description: string;\n };\n\n constructor({ messageId }: { messageId: string }) {\n super();\n this.details = {\n messageId,\n description: \"Check the message for mode details\",\n };\n }\n}\n\nexport class UnknownErrorResponse extends FailedResponseStatus {\n reason = FailedResponseStatusReason.UNKNOWN_ERROR;\n declare details: {\n description?: string;\n originalError?: {\n code?: string;\n statusCode?: number;\n severity?: string;\n visibility?: string;\n originalErrorType?: string;\n extensions?: any;\n };\n };\n\n constructor({\n description,\n originalError,\n }: {\n description?: string;\n originalError?: {\n code?: string;\n statusCode?: number;\n severity?: string;\n visibility?: string;\n originalErrorType?: string;\n extensions?: any;\n };\n }) {\n super();\n this.details = {\n description,\n originalError,\n };\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;ACAA,6BAA4B;AAC5B,0BAAoF;;;;;;;;;;;;;;;;;;UAExEA,qBAAAA;;;;GAAAA,uBAAAA,qBAAAA,CAAAA,EAAAA;IAMZC,sCAAiBD,oBAAoB;EACnCE,MAAM;AACR,CAAA;AAeA,IAAeC,qBAAf,6BAAeA,oBAAAA;EAEbC;AACF,GAHA;;MACGC,2BAAM,MAAML,kBAAAA;;GADAG,mBAAAA,WAAAA,QAAAA,MAAAA;AAAAA,qBAAAA,aAAAA;MAbdG,mCAAc;IACbC,YAAYC,OAAK;AACf,UAAIA,MAAMJ,SAAI,WAAiC;AAC7C,eAAOK;MACT,WAAWD,MAAMJ,SAAI,UAAgC;AACnD,eAAOM;MACT,WAAWF,MAAMJ,SAAI,WAAiC;AACpD,eAAOO;MACT;AACA,aAAOC;IACT;EACF,CAAA;MACCC,gCAAAA;GACcV,kBAAAA;AAMR,IAAMQ,wBAAN,cAAoCR,mBAAAA;EACzCC,OAAAA;AACF;AAFaO;AAAAA,wBAAAA,aAAAA;MADZE,gCAAW;IAAEC,YAAYX;EAAmB,CAAA;GAChCQ,qBAAAA;AAKN,IAAMF,wBAAN,cAAoCN,mBAAAA;EACzCC,OAAAA;AACF;AAFaK;AAAAA,wBAAAA,aAAAA;MADZI,gCAAW;IAAEC,YAAYX;EAAmB,CAAA;GAChCM,qBAAAA;;UAIDM,6BAAAA;;;;GAAAA,+BAAAA,6BAAAA,CAAAA,EAAAA;IAMZd,sCAAiBc,4BAA4B;EAC3Cb,MAAM;AACR,CAAA;AAGO,IAAMQ,uBAAN,cAAmCP,mBAAAA;EACxCC,OAAAA;EAGAY;EAGAC,UAAgC;AAClC;AARaP;;MAGVL,2BAAM,MAAMU,0BAAAA;;GAHFL,qBAAAA,WAAAA,UAAAA,MAAAA;;MAMVL,2BAAM,MAAMa,oCAAa;IAAEC,UAAU;EAAK,CAAA;qCACjC,WAAA,cAAA,SAAA,MAAA;GAPCT,qBAAAA,WAAAA,WAAAA,MAAAA;AAAAA,uBAAAA,aAAAA;MADZG,gCAAW;IAAEC,YAAYX;EAAmB,CAAA;GAChCO,oBAAAA;AAUN,IAAMU,0BAAsBC,qCAAgB;EACjDnB,MAAM;EACNoB,OAAO,MAAM;IAACX;IAAuBF;IAAuBC;;AAC9D,CAAA;;;AC5DO,IAAMa,sCAAN,cAAkDC,qBAAAA;EACvDC,SAASC,2BAA2BC;EAKpCC,YAAY,EAAEC,iBAAgB,GAAI;AAChC,UAAK;AACL,SAAKC,UAAU;MACbD;IACF;EACF;AACF;AAZaN;AAcN,IAAMQ,mCAAN,cAA+CP,qBAAAA;EACpDC,SAASC,2BAA2BM;EAMpCJ,YAAY,EAAEK,UAAS,GAA2B;AAChD,UAAK;AACL,SAAKH,UAAU;MACbG;MACAC,aAAa;IACf;EACF;AACF;AAdaH;AAgBN,IAAMI,uBAAN,cAAmCX,qBAAAA;EACxCC,SAASC,2BAA2BU;EAapCR,YAAY,EACVM,aACAG,cAAa,GAWZ;AACD,UAAK;AACL,SAAKP,UAAU;MACbI;MACAG;IACF;EACF;AACF;AAlCaF;","names":["ResponseStatusCode","registerEnumType","name","BaseResponseStatus","code","Field","InterfaceType","resolveType","value","SuccessResponseStatus","FailedResponseStatus","PendingResponseStatus","undefined","ObjectType","implements","FailedResponseStatusReason","reason","details","GraphQLJSON","nullable","ResponseStatusUnion","createUnionType","types","GuardrailsValidationFailureResponse","FailedResponseStatus","reason","FailedResponseStatusReason","GUARDRAILS_VALIDATION_FAILED","constructor","guardrailsReason","details","MessageStreamInterruptedResponse","MESSAGE_STREAM_INTERRUPTED","messageId","description","UnknownErrorResponse","UNKNOWN_ERROR","originalError"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import {
|
|
2
|
+
GuardrailsValidationFailureResponse,
|
|
3
|
+
MessageStreamInterruptedResponse,
|
|
4
|
+
UnknownErrorResponse
|
|
5
|
+
} from "../chunk-XWBDEXDA.mjs";
|
|
6
|
+
import "../chunk-FHD4JECV.mjs";
|
|
7
|
+
export {
|
|
8
|
+
GuardrailsValidationFailureResponse,
|
|
9
|
+
MessageStreamInterruptedResponse,
|
|
10
|
+
UnknownErrorResponse
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/dist/v2/index.d.ts
CHANGED
package/dist/v2/index.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
require('reflect-metadata');
|
|
4
4
|
var runtime = require('@copilotkitnext/runtime');
|
|
5
|
+
var agent = require('@copilotkitnext/agent');
|
|
5
6
|
|
|
6
7
|
|
|
7
8
|
|
|
@@ -11,5 +12,11 @@ Object.keys(runtime).forEach(function (k) {
|
|
|
11
12
|
get: function () { return runtime[k]; }
|
|
12
13
|
});
|
|
13
14
|
});
|
|
15
|
+
Object.keys(agent).forEach(function (k) {
|
|
16
|
+
if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
|
|
17
|
+
enumerable: true,
|
|
18
|
+
get: function () { return agent[k]; }
|
|
19
|
+
});
|
|
20
|
+
});
|
|
14
21
|
//# sourceMappingURL=out.js.map
|
|
15
22
|
//# sourceMappingURL=index.js.map
|
package/dist/v2/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/v2/index.ts"],"names":[],"mappings":";AAAA,OAAO;AACP,cAAc","sourcesContent":["import \"reflect-metadata\";\nexport * from \"@copilotkitnext/runtime\";\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/v2/index.ts"],"names":[],"mappings":";AAAA,OAAO;AACP,cAAc;AACd,cAAc","sourcesContent":["import \"reflect-metadata\";\nexport * from \"@copilotkitnext/runtime\";\nexport * from \"@copilotkitnext/agent\";\n"]}
|
package/dist/v2/index.mjs
CHANGED
package/dist/v2/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/v2/index.ts"],"names":[],"mappings":";AAAA,OAAO;AACP,cAAc","sourcesContent":["import \"reflect-metadata\";\nexport * from \"@copilotkitnext/runtime\";\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/v2/index.ts"],"names":[],"mappings":";AAAA,OAAO;AACP,cAAc;AACd,cAAc","sourcesContent":["import \"reflect-metadata\";\nexport * from \"@copilotkitnext/runtime\";\nexport * from \"@copilotkitnext/agent\";\n"]}
|
package/package.json
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"publishConfig": {
|
|
10
10
|
"access": "public"
|
|
11
11
|
},
|
|
12
|
-
"version": "1.50.0-beta.
|
|
12
|
+
"version": "1.50.0-beta.4",
|
|
13
13
|
"sideEffects": false,
|
|
14
14
|
"main": "./dist/index.js",
|
|
15
15
|
"module": "./dist/index.mjs",
|
|
@@ -23,6 +23,11 @@
|
|
|
23
23
|
"import": "./dist/v2/index.mjs",
|
|
24
24
|
"require": "./dist/v2/index.js",
|
|
25
25
|
"types": "./dist/v2/index.d.ts"
|
|
26
|
+
},
|
|
27
|
+
"./langgraph": {
|
|
28
|
+
"import": "./dist/langgraph.mjs",
|
|
29
|
+
"require": "./dist/langgraph.js",
|
|
30
|
+
"types": "./dist/langgraph.d.ts"
|
|
26
31
|
}
|
|
27
32
|
},
|
|
28
33
|
"types": "./dist/index.d.ts",
|
|
@@ -41,29 +46,21 @@
|
|
|
41
46
|
"tsup": "^6.7.0",
|
|
42
47
|
"typescript": "^5.2.3",
|
|
43
48
|
"vitest": "^3.2.4",
|
|
44
|
-
"
|
|
45
|
-
"eslint-config-custom": "1.4.6"
|
|
46
|
-
"tsconfig": "1.4.6"
|
|
49
|
+
"tsconfig": "1.4.6",
|
|
50
|
+
"eslint-config-custom": "1.4.6"
|
|
47
51
|
},
|
|
48
52
|
"dependencies": {
|
|
49
|
-
"@
|
|
50
|
-
"@copilotkitnext/
|
|
51
|
-
"@copilotkitnext/runtime": "0.0.23",
|
|
53
|
+
"@copilotkitnext/agent": "0.0.24",
|
|
54
|
+
"@copilotkitnext/runtime": "0.0.24",
|
|
52
55
|
"@graphql-yoga/plugin-defer-stream": "^3.3.1",
|
|
53
|
-
"@
|
|
54
|
-
"@langchain/community": "^0.3.29",
|
|
56
|
+
"@hono/node-server": "^1.13.5",
|
|
55
57
|
"@langchain/core": "^0.3.38",
|
|
56
|
-
"@langchain/google-gauth": "^0.1.0",
|
|
57
|
-
"@langchain/langgraph-sdk": "^0.0.70",
|
|
58
|
-
"@langchain/openai": "^0.4.2",
|
|
59
58
|
"@scarf/scarf": "^1.3.0",
|
|
60
59
|
"class-transformer": "^0.5.1",
|
|
61
60
|
"class-validator": "^0.14.1",
|
|
62
61
|
"graphql": "^16.8.1",
|
|
63
62
|
"graphql-scalars": "^1.23.0",
|
|
64
63
|
"graphql-yoga": "^5.3.1",
|
|
65
|
-
"groq-sdk": "^0.5.0",
|
|
66
|
-
"@hono/node-server": "^1.13.5",
|
|
67
64
|
"hono": "^4.10.3",
|
|
68
65
|
"langchain": "^0.3.3",
|
|
69
66
|
"openai": "^4.85.1",
|
|
@@ -74,18 +71,54 @@
|
|
|
74
71
|
"rxjs": "7.8.1",
|
|
75
72
|
"type-graphql": "2.0.0-rc.1",
|
|
76
73
|
"zod": "^3.23.3",
|
|
77
|
-
"@copilotkit/shared": "1.50.0-beta.
|
|
74
|
+
"@copilotkit/shared": "1.50.0-beta.4"
|
|
78
75
|
},
|
|
79
76
|
"peerDependencies": {
|
|
80
|
-
"@
|
|
77
|
+
"@anthropic-ai/sdk": "^0.57.0",
|
|
78
|
+
"@ag-ui/client": "^0.0.41",
|
|
81
79
|
"@ag-ui/core": ">=0.0.39",
|
|
82
80
|
"@ag-ui/encoder": ">=0.0.39",
|
|
83
81
|
"@ag-ui/langgraph": ">=0.0.18",
|
|
84
|
-
"@ag-ui/proto": ">=0.0.39"
|
|
82
|
+
"@ag-ui/proto": ">=0.0.39",
|
|
83
|
+
"@langchain/aws": "^0.1.9",
|
|
84
|
+
"@langchain/community": "^0.3.58",
|
|
85
|
+
"@langchain/google-gauth": "^0.1.0",
|
|
86
|
+
"@langchain/langgraph-sdk": "^0.0.70",
|
|
87
|
+
"@langchain/openai": "^0.4.2",
|
|
88
|
+
"groq-sdk": "^0.5.0",
|
|
89
|
+
"langchain": "^0.3.3",
|
|
90
|
+
"openai": "^4.85.1"
|
|
85
91
|
},
|
|
86
92
|
"peerDependenciesMeta": {
|
|
93
|
+
"@anthropic-ai/sdk": {
|
|
94
|
+
"optional": true
|
|
95
|
+
},
|
|
87
96
|
"@ag-ui/langgraph": {
|
|
88
97
|
"optional": true
|
|
98
|
+
},
|
|
99
|
+
"@langchain/aws": {
|
|
100
|
+
"optional": true
|
|
101
|
+
},
|
|
102
|
+
"@langchain/community": {
|
|
103
|
+
"optional": true
|
|
104
|
+
},
|
|
105
|
+
"@langchain/google-gauth": {
|
|
106
|
+
"optional": true
|
|
107
|
+
},
|
|
108
|
+
"@langchain/langgraph-sdk": {
|
|
109
|
+
"optional": true
|
|
110
|
+
},
|
|
111
|
+
"@langchain/openai": {
|
|
112
|
+
"optional": true
|
|
113
|
+
},
|
|
114
|
+
"groq-sdk": {
|
|
115
|
+
"optional": true
|
|
116
|
+
},
|
|
117
|
+
"langchain": {
|
|
118
|
+
"optional": true
|
|
119
|
+
},
|
|
120
|
+
"openai": {
|
|
121
|
+
"optional": true
|
|
89
122
|
}
|
|
90
123
|
},
|
|
91
124
|
"keywords": [
|
package/src/langgraph.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./lib/runtime/agent-integrations/langgraph";
|
package/src/lib/index.ts
CHANGED
|
@@ -8,4 +8,44 @@ export * from "./integrations";
|
|
|
8
8
|
export * from "./logger";
|
|
9
9
|
export * from "./runtime/copilot-runtime";
|
|
10
10
|
export * from "./runtime/mcp-tools-utils";
|
|
11
|
-
|
|
11
|
+
|
|
12
|
+
// The below re-exports "dummy" classes and types, to get a deprecation warning redirecting the users to import these from the correct, new route
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @deprecated LangGraphAgent import from @copilotkit/runtime is deprecated. Please import it from @copilotkit/runtime/langgraph instead
|
|
16
|
+
*/
|
|
17
|
+
export class LangGraphAgent {
|
|
18
|
+
constructor() {
|
|
19
|
+
throw new Error(
|
|
20
|
+
"LangGraphAgent import from @copilotkit/runtime is deprecated. Please import it from @copilotkit/runtime/langgraph instead",
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* @deprecated LangGraphHttpAgent import from @copilotkit/runtime is deprecated. Please import it from @copilotkit/runtime/langgraph instead
|
|
27
|
+
*/
|
|
28
|
+
export class LangGraphHttpAgent {
|
|
29
|
+
constructor() {
|
|
30
|
+
throw new Error(
|
|
31
|
+
"LangGraphHttpAgent import from @copilotkit/runtime is deprecated. Please import it from @copilotkit/runtime/langgraph instead",
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* @deprecated TextMessageEvents import from @copilotkit/runtime is deprecated. Please import it from @copilotkit/runtime/langgraph instead
|
|
38
|
+
*/
|
|
39
|
+
export type TextMessageEvents = any;
|
|
40
|
+
/**
|
|
41
|
+
* @deprecated ToolCallEvents import from @copilotkit/runtime is deprecated. Please import it from @copilotkit/runtime/langgraph instead
|
|
42
|
+
*/
|
|
43
|
+
export type ToolCallEvents = any;
|
|
44
|
+
/**
|
|
45
|
+
* @deprecated CustomEventNames import from @copilotkit/runtime is deprecated. Please import it from @copilotkit/runtime/langgraph instead
|
|
46
|
+
*/
|
|
47
|
+
export type CustomEventNames = any;
|
|
48
|
+
/**
|
|
49
|
+
* @deprecated PredictStateTool import from @copilotkit/runtime is deprecated. Please import it from @copilotkit/runtime/langgraph instead
|
|
50
|
+
*/
|
|
51
|
+
export type PredictStateTool = any;
|
|
@@ -4,6 +4,8 @@ import { createCopilotEndpointSingleRoute } from "@copilotkitnext/runtime";
|
|
|
4
4
|
import { IncomingMessage, ServerResponse } from "http";
|
|
5
5
|
import { Readable } from "node:stream";
|
|
6
6
|
|
|
7
|
+
type IncomingWithBody = IncomingMessage & { body?: unknown; complete?: boolean };
|
|
8
|
+
|
|
7
9
|
export function readableStreamToNodeStream(webStream: ReadableStream): Readable {
|
|
8
10
|
const reader = webStream.getReader();
|
|
9
11
|
|
|
@@ -24,7 +26,10 @@ export function readableStreamToNodeStream(webStream: ReadableStream): Readable
|
|
|
24
26
|
}
|
|
25
27
|
|
|
26
28
|
function getFullUrl(req: IncomingMessage): string {
|
|
27
|
-
const
|
|
29
|
+
const expressPath =
|
|
30
|
+
(req as any).originalUrl ??
|
|
31
|
+
((req as any).baseUrl ? `${(req as any).baseUrl}${req.url ?? ""}` : undefined);
|
|
32
|
+
const path = expressPath || req.url || "/";
|
|
28
33
|
const host =
|
|
29
34
|
(req.headers["x-forwarded-host"] as string) || (req.headers.host as string) || "localhost";
|
|
30
35
|
const proto =
|
|
@@ -34,6 +39,61 @@ function getFullUrl(req: IncomingMessage): string {
|
|
|
34
39
|
return `${proto}://${host}${path}`;
|
|
35
40
|
}
|
|
36
41
|
|
|
42
|
+
function toHeaders(rawHeaders: IncomingMessage["headers"]): Headers {
|
|
43
|
+
const headers = new Headers();
|
|
44
|
+
|
|
45
|
+
for (const [key, value] of Object.entries(rawHeaders)) {
|
|
46
|
+
if (value === undefined) continue;
|
|
47
|
+
|
|
48
|
+
if (Array.isArray(value)) {
|
|
49
|
+
value.forEach((entry) => headers.append(key, entry));
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
headers.append(key, value);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return headers;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
function isStreamConsumed(req: IncomingWithBody): boolean {
|
|
60
|
+
const readableState = (req as any)._readableState;
|
|
61
|
+
|
|
62
|
+
return Boolean(
|
|
63
|
+
req.readableEnded || req.complete || readableState?.ended || readableState?.endEmitted,
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
function synthesizeBodyFromParsedBody(
|
|
68
|
+
parsedBody: unknown,
|
|
69
|
+
headers: Headers,
|
|
70
|
+
): { body: BodyInit | null; contentType?: string } {
|
|
71
|
+
if (parsedBody === null || parsedBody === undefined) {
|
|
72
|
+
return { body: null };
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
if (parsedBody instanceof Buffer || parsedBody instanceof Uint8Array) {
|
|
76
|
+
return { body: parsedBody };
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
if (typeof parsedBody === "string") {
|
|
80
|
+
return { body: parsedBody, contentType: headers.get("content-type") ?? "text/plain" };
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
return {
|
|
84
|
+
body: JSON.stringify(parsedBody),
|
|
85
|
+
contentType: "application/json",
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
function isDisturbedOrLockedError(error: unknown): boolean {
|
|
90
|
+
return (
|
|
91
|
+
error instanceof TypeError &&
|
|
92
|
+
typeof error.message === "string" &&
|
|
93
|
+
(error.message.includes("disturbed") || error.message.includes("locked"))
|
|
94
|
+
);
|
|
95
|
+
}
|
|
96
|
+
|
|
37
97
|
export function copilotRuntimeNodeHttpEndpoint(options: CreateCopilotRuntimeServerOptions) {
|
|
38
98
|
const commonConfig = getCommonConfig(options);
|
|
39
99
|
|
|
@@ -64,19 +124,78 @@ export function copilotRuntimeNodeHttpEndpoint(options: CreateCopilotRuntimeServ
|
|
|
64
124
|
basePath: options.baseUrl ?? options.endpoint,
|
|
65
125
|
});
|
|
66
126
|
|
|
67
|
-
return async function handler(req:
|
|
127
|
+
return async function handler(req: IncomingWithBody, res: ServerResponse) {
|
|
68
128
|
const url = getFullUrl(req);
|
|
69
129
|
const hasBody = req.method !== "GET" && req.method !== "HEAD";
|
|
70
130
|
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
duplex: hasBody ? "half" : undefined,
|
|
77
|
-
} as any);
|
|
131
|
+
const baseHeaders = toHeaders(req.headers);
|
|
132
|
+
const parsedBody = req.body;
|
|
133
|
+
|
|
134
|
+
const streamConsumed = isStreamConsumed(req) || parsedBody !== undefined;
|
|
135
|
+
const canStream = hasBody && !streamConsumed;
|
|
78
136
|
|
|
79
|
-
|
|
137
|
+
let requestBody: BodyInit | null | undefined = undefined;
|
|
138
|
+
let useDuplex = false;
|
|
139
|
+
|
|
140
|
+
if (hasBody && canStream) {
|
|
141
|
+
requestBody = req as unknown as BodyInit;
|
|
142
|
+
useDuplex = true;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
if (hasBody && streamConsumed) {
|
|
146
|
+
if (parsedBody !== undefined) {
|
|
147
|
+
const synthesized = synthesizeBodyFromParsedBody(parsedBody, baseHeaders);
|
|
148
|
+
requestBody = synthesized.body ?? undefined;
|
|
149
|
+
baseHeaders.delete("content-length");
|
|
150
|
+
|
|
151
|
+
if (synthesized.contentType) {
|
|
152
|
+
baseHeaders.set("content-type", synthesized.contentType);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
logger.debug("Request stream already consumed; using parsed req.body to rebuild request.");
|
|
156
|
+
} else {
|
|
157
|
+
logger.warn("Request stream consumed with no available body; sending empty payload.");
|
|
158
|
+
requestBody = undefined;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
const buildRequest = (body: BodyInit | null | undefined, headers: Headers, duplex: boolean) =>
|
|
163
|
+
new Request(url, {
|
|
164
|
+
method: req.method,
|
|
165
|
+
headers,
|
|
166
|
+
body,
|
|
167
|
+
duplex: duplex ? "half" : undefined,
|
|
168
|
+
} as RequestInit);
|
|
169
|
+
|
|
170
|
+
let response: Response;
|
|
171
|
+
try {
|
|
172
|
+
response = await honoApp.fetch(buildRequest(requestBody, baseHeaders, useDuplex));
|
|
173
|
+
} catch (error) {
|
|
174
|
+
if (isDisturbedOrLockedError(error) && hasBody) {
|
|
175
|
+
logger.warn(
|
|
176
|
+
"Encountered disturbed/locked request body; rebuilding request using parsed body or empty payload.",
|
|
177
|
+
);
|
|
178
|
+
|
|
179
|
+
const fallbackHeaders = new Headers(baseHeaders);
|
|
180
|
+
let fallbackBody: BodyInit | null | undefined;
|
|
181
|
+
|
|
182
|
+
if (parsedBody !== undefined) {
|
|
183
|
+
const synthesized = synthesizeBodyFromParsedBody(parsedBody, fallbackHeaders);
|
|
184
|
+
fallbackBody = synthesized.body ?? undefined;
|
|
185
|
+
fallbackHeaders.delete("content-length");
|
|
186
|
+
|
|
187
|
+
if (synthesized.contentType) {
|
|
188
|
+
fallbackHeaders.set("content-type", synthesized.contentType);
|
|
189
|
+
}
|
|
190
|
+
} else {
|
|
191
|
+
fallbackBody = undefined;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
response = await honoApp.fetch(buildRequest(fallbackBody, fallbackHeaders, false));
|
|
195
|
+
} else {
|
|
196
|
+
throw error;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
80
199
|
|
|
81
200
|
res.statusCode = response.status;
|
|
82
201
|
response.headers.forEach((value, key) => {
|
|
@@ -1,16 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
RunAgentInput,
|
|
3
|
-
EventType,
|
|
4
|
-
CustomEvent,
|
|
5
|
-
TextMessageStartEvent,
|
|
6
|
-
TextMessageContentEvent,
|
|
7
|
-
TextMessageEndEvent,
|
|
8
|
-
ToolCallStartEvent,
|
|
9
|
-
ToolCallArgsEvent,
|
|
10
|
-
ToolCallEndEvent,
|
|
11
|
-
} from "@ag-ui/client";
|
|
12
1
|
import { map } from "rxjs";
|
|
13
|
-
import { LangGraphEventTypes } from "
|
|
2
|
+
import { LangGraphEventTypes } from "../../../../agents/langgraph/events";
|
|
14
3
|
import { RawEvent } from "@ag-ui/core";
|
|
15
4
|
import {
|
|
16
5
|
LangGraphAgent as AGUILangGraphAgent,
|
|
@@ -31,25 +20,11 @@ interface CopilotKitStateEnrichment {
|
|
|
31
20
|
};
|
|
32
21
|
}
|
|
33
22
|
|
|
34
|
-
|
|
35
|
-
tool: string;
|
|
36
|
-
state_key: string;
|
|
37
|
-
tool_argument: string;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export type TextMessageEvents =
|
|
41
|
-
| TextMessageStartEvent
|
|
42
|
-
| TextMessageContentEvent
|
|
43
|
-
| TextMessageEndEvent;
|
|
23
|
+
import { RunAgentInput, EventType, CustomEvent } from "@ag-ui/client";
|
|
44
24
|
|
|
45
|
-
export
|
|
46
|
-
|
|
47
|
-
export
|
|
48
|
-
CopilotKitManuallyEmitMessage = "copilotkit_manually_emit_message",
|
|
49
|
-
CopilotKitManuallyEmitToolCall = "copilotkit_manually_emit_tool_call",
|
|
50
|
-
CopilotKitManuallyEmitIntermediateState = "copilotkit_manually_emit_intermediate_state",
|
|
51
|
-
CopilotKitExit = "copilotkit_exit",
|
|
52
|
-
}
|
|
25
|
+
// Import and re-export from separate file to maintain API compatibility
|
|
26
|
+
import { CustomEventNames, TextMessageEvents, ToolCallEvents, PredictStateTool } from "./consts";
|
|
27
|
+
export { CustomEventNames };
|
|
53
28
|
|
|
54
29
|
export class LangGraphAgent extends AGUILangGraphAgent {
|
|
55
30
|
constructor(config: LangGraphAgentConfig) {
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Constants for LangGraph integration.
|
|
3
|
+
* This file is separate from langgraph.agent.ts to avoid pulling in @ag-ui/langgraph
|
|
4
|
+
* when only these constants are needed.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import {
|
|
8
|
+
TextMessageStartEvent,
|
|
9
|
+
TextMessageContentEvent,
|
|
10
|
+
TextMessageEndEvent,
|
|
11
|
+
ToolCallStartEvent,
|
|
12
|
+
ToolCallArgsEvent,
|
|
13
|
+
ToolCallEndEvent,
|
|
14
|
+
} from "@ag-ui/client";
|
|
15
|
+
|
|
16
|
+
export type TextMessageEvents =
|
|
17
|
+
| TextMessageStartEvent
|
|
18
|
+
| TextMessageContentEvent
|
|
19
|
+
| TextMessageEndEvent;
|
|
20
|
+
|
|
21
|
+
export type ToolCallEvents = ToolCallStartEvent | ToolCallArgsEvent | ToolCallEndEvent;
|
|
22
|
+
|
|
23
|
+
export enum CustomEventNames {
|
|
24
|
+
CopilotKitManuallyEmitMessage = "copilotkit_manually_emit_message",
|
|
25
|
+
CopilotKitManuallyEmitToolCall = "copilotkit_manually_emit_tool_call",
|
|
26
|
+
CopilotKitManuallyEmitIntermediateState = "copilotkit_manually_emit_intermediate_state",
|
|
27
|
+
CopilotKitExit = "copilotkit_exit",
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export interface PredictStateTool {
|
|
31
|
+
tool: string;
|
|
32
|
+
state_key: string;
|
|
33
|
+
tool_argument: string;
|
|
34
|
+
}
|
|
@@ -34,10 +34,7 @@ import {
|
|
|
34
34
|
} from "@copilotkitnext/runtime";
|
|
35
35
|
|
|
36
36
|
import { MessageInput } from "../../graphql/inputs/message.input";
|
|
37
|
-
import { ActionInput } from "../../graphql/inputs/action.input";
|
|
38
|
-
import { RuntimeEventSource } from "../../service-adapters/events";
|
|
39
37
|
import { Message } from "../../graphql/types/converted";
|
|
40
|
-
import { ForwardedParametersInput } from "../../graphql/inputs/forwarded-parameters.input";
|
|
41
38
|
|
|
42
39
|
import {
|
|
43
40
|
EndpointType,
|
|
@@ -46,19 +43,7 @@ import {
|
|
|
46
43
|
LangGraphPlatformEndpoint,
|
|
47
44
|
} from "./types";
|
|
48
45
|
|
|
49
|
-
import {
|
|
50
|
-
import { AgentSessionInput } from "../../graphql/inputs/agent-session.input";
|
|
51
|
-
import { AgentStateInput } from "../../graphql/inputs/agent-state.input";
|
|
52
|
-
import { Agent } from "../../graphql/types/agents-response.type";
|
|
53
|
-
import { ExtensionsInput } from "../../graphql/inputs/extensions.input";
|
|
54
|
-
import { ExtensionsResponse } from "../../graphql/types/extensions-response.type";
|
|
55
|
-
import { MetaEventInput } from "../../graphql/inputs/meta-event.input";
|
|
56
|
-
import {
|
|
57
|
-
CopilotObservabilityConfig,
|
|
58
|
-
LLMRequestData,
|
|
59
|
-
LLMResponseData,
|
|
60
|
-
LLMErrorData,
|
|
61
|
-
} from "../observability";
|
|
46
|
+
import { CopilotObservabilityConfig, LLMRequestData, LLMResponseData } from "../observability";
|
|
62
47
|
import { AbstractAgent } from "@ag-ui/client";
|
|
63
48
|
|
|
64
49
|
// +++ MCP Imports +++
|
|
@@ -67,10 +52,7 @@ import {
|
|
|
67
52
|
MCPEndpointConfig,
|
|
68
53
|
MCPTool,
|
|
69
54
|
extractParametersFromSchema,
|
|
70
|
-
convertMCPToolsToActions,
|
|
71
|
-
generateMcpToolInstructions,
|
|
72
55
|
} from "./mcp-tools-utils";
|
|
73
|
-
import { LangGraphAgent } from "./agent-integrations/langgraph.agent";
|
|
74
56
|
import { BasicAgent, BasicAgentConfiguration } from "@copilotkitnext/agent";
|
|
75
57
|
// Define the function type alias here or import if defined elsewhere
|
|
76
58
|
type CreateMCPClientFunction = (config: MCPEndpointConfig) => Promise<MCPClient>;
|
|
@@ -324,8 +306,10 @@ export class CopilotRuntime<const T extends Parameter[] | [] = []> {
|
|
|
324
306
|
params?: CopilotRuntimeConstructorParams<T> & PartialBy<CopilotRuntimeOptions, "agents">,
|
|
325
307
|
) {
|
|
326
308
|
const agents = params?.agents ?? {};
|
|
309
|
+
const endpointAgents = this.assignEndpointsToAgents(params?.remoteEndpoints ?? []);
|
|
310
|
+
|
|
327
311
|
this.runtimeArgs = {
|
|
328
|
-
agents: { ...
|
|
312
|
+
agents: { ...endpointAgents, ...agents },
|
|
329
313
|
runner: params?.runner ?? new InMemoryAgentRunnerVNext(),
|
|
330
314
|
// TODO: add support for transcriptionService from CopilotRuntimeOptionsVNext once it is ready
|
|
331
315
|
// transcriptionService: params?.transcriptionService,
|
|
@@ -347,28 +331,21 @@ export class CopilotRuntime<const T extends Parameter[] | [] = []> {
|
|
|
347
331
|
|
|
348
332
|
private assignEndpointsToAgents(
|
|
349
333
|
endpoints: CopilotRuntimeConstructorParams<T>["remoteEndpoints"],
|
|
350
|
-
) {
|
|
351
|
-
|
|
352
|
-
if (resolveEndpointType(endpoint) == EndpointType.LangGraphPlatform) {
|
|
353
|
-
let lgAgents = {};
|
|
354
|
-
const lgEndpoint = endpoint as LangGraphPlatformEndpoint;
|
|
355
|
-
lgEndpoint.agents.forEach((agent) => {
|
|
356
|
-
const graphId = agent.assistantId ?? agent.name;
|
|
357
|
-
lgAgents[graphId] = new LangGraphAgent({
|
|
358
|
-
deploymentUrl: lgEndpoint.deploymentUrl,
|
|
359
|
-
langsmithApiKey: lgEndpoint.langsmithApiKey,
|
|
360
|
-
graphId,
|
|
361
|
-
});
|
|
362
|
-
});
|
|
334
|
+
): Record<string, AbstractAgent> {
|
|
335
|
+
let result: Record<string, AbstractAgent> = {};
|
|
363
336
|
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
337
|
+
if (
|
|
338
|
+
endpoints.some((endpoint) => resolveEndpointType(endpoint) == EndpointType.LangGraphPlatform)
|
|
339
|
+
) {
|
|
340
|
+
throw new CopilotKitMisuseError({
|
|
341
|
+
message:
|
|
342
|
+
"LangGraphPlatformEndpoint in remoteEndpoints is deprecated. " +
|
|
343
|
+
'Please use the "agents" option instead with LangGraphAgent from "@copilotkit/runtime/langgraph". ' +
|
|
344
|
+
'Example: agents: { myAgent: new LangGraphAgent({ deploymentUrl: "...", graphId: "..." }) }',
|
|
345
|
+
});
|
|
346
|
+
}
|
|
369
347
|
|
|
370
|
-
|
|
371
|
-
}, {});
|
|
348
|
+
return result;
|
|
372
349
|
}
|
|
373
350
|
|
|
374
351
|
handleServiceAdapter(serviceAdapter: CopilotServiceAdapter) {
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
* });
|
|
23
23
|
* ```
|
|
24
24
|
*/
|
|
25
|
-
import Anthropic from "@anthropic-ai/sdk";
|
|
25
|
+
import type Anthropic from "@anthropic-ai/sdk";
|
|
26
26
|
import {
|
|
27
27
|
CopilotServiceAdapter,
|
|
28
28
|
CopilotRuntimeChatCompletionRequest,
|
|
@@ -84,13 +84,25 @@ export class AnthropicAdapter implements CopilotServiceAdapter {
|
|
|
84
84
|
}
|
|
85
85
|
|
|
86
86
|
constructor(params?: AnthropicAdapterParams) {
|
|
87
|
-
|
|
87
|
+
if (params?.anthropic) {
|
|
88
|
+
this._anthropic = params.anthropic;
|
|
89
|
+
}
|
|
90
|
+
// If no instance provided, we'll lazy-load in ensureAnthropic()
|
|
88
91
|
if (params?.model) {
|
|
89
92
|
this.model = params.model;
|
|
90
93
|
}
|
|
91
94
|
this.promptCaching = params?.promptCaching || { enabled: false };
|
|
92
95
|
}
|
|
93
96
|
|
|
97
|
+
private ensureAnthropic(): Anthropic {
|
|
98
|
+
if (!this._anthropic) {
|
|
99
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
100
|
+
const Anthropic = require("@anthropic-ai/sdk").default;
|
|
101
|
+
this._anthropic = new Anthropic({});
|
|
102
|
+
}
|
|
103
|
+
return this._anthropic;
|
|
104
|
+
}
|
|
105
|
+
|
|
94
106
|
/**
|
|
95
107
|
* Adds cache control to system prompt
|
|
96
108
|
*/
|
|
@@ -306,7 +318,8 @@ export class AnthropicAdapter implements CopilotServiceAdapter {
|
|
|
306
318
|
stream: true,
|
|
307
319
|
};
|
|
308
320
|
|
|
309
|
-
const
|
|
321
|
+
const anthropic = this.ensureAnthropic();
|
|
322
|
+
const stream = await anthropic.messages.create(createParams);
|
|
310
323
|
|
|
311
324
|
eventSource.stream(async (eventStream$) => {
|
|
312
325
|
let mode: "function" | "message" | null = null;
|
|
@@ -19,7 +19,6 @@
|
|
|
19
19
|
* ```
|
|
20
20
|
*/
|
|
21
21
|
|
|
22
|
-
import { ChatBedrockConverse } from "@langchain/aws";
|
|
23
22
|
import { LangChainAdapter } from "../langchain/langchain-adapter";
|
|
24
23
|
|
|
25
24
|
export interface BedrockAdapterParams {
|
|
@@ -52,6 +51,10 @@ export class BedrockAdapter extends LangChainAdapter {
|
|
|
52
51
|
constructor(options?: BedrockAdapterParams) {
|
|
53
52
|
super({
|
|
54
53
|
chainFn: async ({ messages, tools, threadId }) => {
|
|
54
|
+
// Lazy require for optional peer dependency
|
|
55
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
56
|
+
const { ChatBedrockConverse } = require("@langchain/aws");
|
|
57
|
+
|
|
55
58
|
this.model = options?.model ?? "amazon.nova-lite-v1:0";
|
|
56
59
|
const model = new ChatBedrockConverse({
|
|
57
60
|
model: this.model,
|