diff --git a/package-lock.json b/package-lock.json index d8032a8..60bdce7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -94,6 +94,152 @@ "anthropic-ai-sdk": "bin/cli" } }, + "node_modules/@arizeai/openinference-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@arizeai/openinference-core/-/openinference-core-2.0.0.tgz", + "integrity": "sha512-H0INw5Yy0zHUe0HG0ZMVoexrBX/B1W6FJODmnIP7vbXHXOzzMtlBdjg0evxFY2HTSk+MRpVpDP05Ty+OSqfd0w==", + "license": "Apache-2.0", + "dependencies": { + "@arizeai/openinference-semantic-conventions": "2.1.2", + "@opentelemetry/api": "^1.9.0", + "@opentelemetry/core": "^1.25.1" + } + }, + "node_modules/@arizeai/openinference-core/node_modules/@opentelemetry/core": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.30.1.tgz", + "integrity": "sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.28.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@arizeai/openinference-core/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz", + "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==", + "license": "Apache-2.0", + "engines": { + "node": ">=14" + } + }, + "node_modules/@arizeai/openinference-instrumentation-langchain": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@arizeai/openinference-instrumentation-langchain/-/openinference-instrumentation-langchain-4.0.0.tgz", + "integrity": "sha512-M5mgPQeQsFy1A55XlJoDRaoYSwpoj8bNPK2SleN9pAHyC9qWQwIm9RKXcxrz3yr5cWGJ+4c+1TE8OM2esVg3/A==", + "license": "Apache-2.0", + "dependencies": { + "@arizeai/openinference-core": "2.0.0", + "@arizeai/openinference-semantic-conventions": "2.1.2", + "@opentelemetry/api": "^1.9.0", + "@opentelemetry/core": "^1.25.1", + "@opentelemetry/instrumentation": "^0.46.0" + }, + "peerDependencies": { + "@langchain/core": "^1.0.0 || ^0.3.0 || ^0.2.0" + } + }, + "node_modules/@arizeai/openinference-instrumentation-langchain/node_modules/@opentelemetry/core": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.30.1.tgz", + "integrity": "sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.28.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@arizeai/openinference-instrumentation-langchain/node_modules/@opentelemetry/instrumentation": { + "version": "0.46.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.46.0.tgz", + "integrity": "sha512-a9TijXZZbk0vI5TGLZl+0kxyFfrXHhX6Svtz7Pp2/VBlCSKrazuULEyoJQrOknJyFWNMEmbbJgOciHCCpQcisw==", + "license": "Apache-2.0", + "dependencies": { + "@types/shimmer": "^1.0.2", + "import-in-the-middle": "1.7.1", + "require-in-the-middle": "^7.1.1", + "semver": "^7.5.2", + "shimmer": "^1.2.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@arizeai/openinference-instrumentation-langchain/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz", + "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==", + "license": "Apache-2.0", + "engines": { + "node": ">=14" + } + }, + "node_modules/@arizeai/openinference-instrumentation-langchain/node_modules/import-in-the-middle": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.7.1.tgz", + "integrity": "sha512-1LrZPDtW+atAxH42S6288qyDFNQ2YCty+2mxEPRtfazH6Z5QwkaBSTS2ods7hnVJioF6rkRfNoA6A/MstpFXLg==", + "license": "Apache-2.0", + "dependencies": { + "acorn": "^8.8.2", + "acorn-import-assertions": "^1.9.0", + "cjs-module-lexer": "^1.2.2", + "module-details-from-path": "^1.0.3" + } + }, + "node_modules/@arizeai/openinference-instrumentation-langchain/node_modules/require-in-the-middle": { + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.5.2.tgz", + "integrity": "sha512-gAZ+kLqBdHarXB64XpAe2VCjB7rIRv+mU8tfRWziHRJ5umKsIHN2tLLv6EtMw7WCdP19S0ERVMldNvxYCHnhSQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.3.5", + "module-details-from-path": "^1.0.3", + "resolve": "^1.22.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/@arizeai/openinference-instrumentation-langchain/node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/@arizeai/openinference-semantic-conventions": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@arizeai/openinference-semantic-conventions/-/openinference-semantic-conventions-2.1.2.tgz", + "integrity": "sha512-u7UeuU9bJ1LxzHk0MPWb+1ZcotCcJwPnKDXi7Rl2cPs1pWMFg9Ogq7zzYZX+sDcibD2AEa1U+ElyOD8DwZc9gw==", + "license": "Apache-2.0" + }, "node_modules/@aws-crypto/crc32": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-5.2.0.tgz", @@ -1364,7 +1510,6 @@ "integrity": "sha512-KnkvoLXGszXNV7IMLdUH2Smo+tr4MiHUp2zkkrhl+6uXdSWpEAhlARSA8OPIxgVMabUW1AWDumN7Km7z0GvnWg==", "devOptional": true, "license": "Apache-2.0", - "peer": true, "dependencies": { "@aws-sdk/client-cognito-identity": "3.913.0", "@aws-sdk/core": "3.911.0", @@ -5770,7 +5915,6 @@ "resolved": "https://registry.npmjs.org/@langchain/core/-/core-1.0.1.tgz", "integrity": "sha512-hVM3EkojYOk4ISJQKjLuWYSH6kyyOFlZIrLFETDA1L0Z2/Iu0q32aJawZ0FDn6rlXE8QZjBt/9OaOL36rXc05w==", "license": "MIT", - "peer": true, "dependencies": { "@cfworker/json-schema": "^4.0.2", "ansi-styles": "^5.0.0", @@ -5818,7 +5962,6 @@ "resolved": "https://registry.npmjs.org/@langchain/langgraph/-/langgraph-1.0.0.tgz", "integrity": "sha512-2k7Thk5qH0zMhP+sbNKwQZl6zSwxKtrsFmHGOEvUUMjH6Rb9n5IMxoF5WTJlP/CGMO9ulI+5UefNz3rOfjuPBg==", "license": "MIT", - "peer": true, "dependencies": { "@langchain/langgraph-checkpoint": "^1.0.0", "@langchain/langgraph-sdk": "~1.0.0", @@ -5949,13 +6092,13 @@ } }, "node_modules/@langchain/openai": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@langchain/openai/-/openai-1.0.0.tgz", - "integrity": "sha512-olKEUIjb3HBOiD/NR056iGJz4wiN6HhQ/u65YmGWYadWWoKOcGwheBw/FE0x6SH4zDlI3QmP+vMhuQoaww19BQ==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@langchain/openai/-/openai-1.1.2.tgz", + "integrity": "sha512-o642toyaRfx7Cej10jK6eK561gkIGTCQrN42fqAU9OhmTBkUflmRNKhqbcHj/RU+NOJfFM//hgwNU2gHespEkw==", "license": "MIT", "dependencies": { "js-tiktoken": "^1.0.12", - "openai": "^6.3.0", + "openai": "^6.9.0", "zod": "^3.25.76 || ^4" }, "engines": { @@ -5966,9 +6109,9 @@ } }, "node_modules/@langchain/openai/node_modules/openai": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/openai/-/openai-6.6.0.tgz", - "integrity": "sha512-1yWk4cBsHF5Bq9TreHYOHY7pbqdlT74COnm8vPx7WKn36StS+Hyk8DdAitnLaw67a5Cudkz5EmlFQjSrNnrA2w==", + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/openai/-/openai-6.9.1.tgz", + "integrity": "sha512-vQ5Rlt0ZgB3/BNmTa7bIijYFhz3YBceAA3Z4JuoMSBftBF9YqFHIEhZakSs+O/Ad7EaoEimZvHxD5ylRjN11Lg==", "license": "Apache-2.0", "bin": { "openai": "bin/cli" @@ -6451,7 +6594,6 @@ "integrity": "sha512-t54CUOsFMappY1Jbzb7fetWeO0n6K0k/4+/ZpkS+3Joz8I4VcvY9OiEBFRYISqaI2fq5sCiPtAjRDOzVYG8m+Q==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@octokit/auth-token": "^6.0.0", "@octokit/graphql": "^9.0.2", @@ -6733,7 +6875,6 @@ "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", "license": "Apache-2.0", - "peer": true, "engines": { "node": ">=8.0.0" } @@ -7219,7 +7360,6 @@ "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-proto/-/exporter-trace-otlp-proto-0.204.0.tgz", "integrity": "sha512-lqoHMT+NgqdjGp+jeRKsdm3fxBayGVUPOMWXFndSE9Q4Ph6LoG5W3o/a4s9df3MAUHLpFsJPUT5ktI0C/mwETg==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@opentelemetry/core": "2.1.0", "@opentelemetry/otlp-exporter-base": "0.204.0", @@ -11061,7 +11201,6 @@ "integrity": "sha512-BnOroVl1SgrPLywqxyqdJ4l3S2MsKVLDVxZvjI1Eoe8ev2r3kGDo+PcMihNmDE+6/KjkTubSJnmqGZZjQSBq/g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.46.2", "@typescript-eslint/types": "8.46.2", @@ -11605,7 +11744,6 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -11613,6 +11751,16 @@ "node": ">=0.4.0" } }, + "node_modules/acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "deprecated": "package has been renamed to acorn-import-attributes", + "license": "MIT", + "peerDependencies": { + "acorn": "^8" + } + }, "node_modules/acorn-import-attributes": { "version": "1.9.5", "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", @@ -13441,7 +13589,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "baseline-browser-mapping": "^2.8.9", "caniuse-lite": "^1.0.30001746", @@ -14805,7 +14952,6 @@ "integrity": "sha512-r2HV5qFkUICyoaKlBEpLKHjxMXATUf/l+h8UZPGBHGLy4DDiY2sOLcIctax4eRnTw5wH2jTMExLntGPJ8eOJxw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "semver": "^7.5.3" } @@ -15528,7 +15674,6 @@ "integrity": "sha512-t5aPOpmtJcZcz5UJyY2GbvpDlsK5E8JqRqoKtfiKE3cNh437KIqfJr3A3AKf5k64NPx6d0G3dno6XDY05PqPtw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -15605,7 +15750,6 @@ "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", "dev": true, "license": "MIT", - "peer": true, "bin": { "eslint-config-prettier": "bin/cli.js" }, @@ -16454,7 +16598,6 @@ "resolved": "https://registry.npmjs.org/express/-/express-5.1.0.tgz", "integrity": "sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==", "license": "MIT", - "peer": true, "dependencies": { "accepts": "^2.0.0", "body-parser": "^2.2.0", @@ -21301,7 +21444,6 @@ "integrity": "sha512-+AuTc5pVjlnTuA9zvn8rA/k+1RluPIx9AD4eDcnutv6JNwHHZxIhkFy+tmMKCvmMFDQzfA/r1ujvPWB19DQkYg==", "devOptional": true, "license": "Apache-2.0", - "peer": true, "bin": { "openai": "bin/cli" }, @@ -21865,7 +22007,6 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -22107,7 +22248,6 @@ "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", "dev": true, "license": "MIT", - "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -23568,7 +23708,6 @@ "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", "devOptional": true, "license": "MIT", - "peer": true, "dependencies": { "ip-address": "^10.0.1", "smart-buffer": "^4.2.0" @@ -24928,7 +25067,6 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -25167,7 +25305,6 @@ "dev": true, "hasInstallScript": true, "license": "MIT", - "peer": true, "dependencies": { "napi-postinstall": "^0.3.0" }, @@ -25748,7 +25885,6 @@ "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", "devOptional": true, "license": "MIT", - "peer": true, "engines": { "node": ">=10.0.0" }, @@ -26053,7 +26189,6 @@ "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", "license": "MIT", - "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" } @@ -26063,7 +26198,6 @@ "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.24.6.tgz", "integrity": "sha512-h/z3PKvcTcTetyjl1fkj79MHNEjm+HpD6NXheWjzOekY7kV+lwDYnHw+ivHkijnCSMz1yJaWBD9vu/Fcmk+vEg==", "license": "ISC", - "peer": true, "peerDependencies": { "zod": "^3.24.1" } @@ -26083,6 +26217,7 @@ "version": "1.0.0", "license": "MIT", "dependencies": { + "@arizeai/openinference-instrumentation-langchain": "^4.0.0", "@azure/cosmos": "^4.6.0", "@azure/functions": "^4.0.0", "@azure/identity": "^4.2.0", @@ -26092,7 +26227,7 @@ "@langchain/core": "^1.0.0", "@langchain/langgraph": "^1.0.0", "@langchain/mcp-adapters": "^1.0.0", - "@langchain/openai": "^1.0.0", + "@langchain/openai": "^1.1.2", "@modelcontextprotocol/sdk": "^1.20.0", "@opentelemetry/exporter-trace-otlp-http": "^0.206.0", "@opentelemetry/instrumentation": "^0.206.0", diff --git a/packages/agent-api/package.json b/packages/agent-api/package.json index 7ff53f7..8eeb698 100644 --- a/packages/agent-api/package.json +++ b/packages/agent-api/package.json @@ -16,6 +16,7 @@ "author": "Microsoft", "license": "MIT", "dependencies": { + "@arizeai/openinference-instrumentation-langchain": "^4.0.0", "@azure/cosmos": "^4.6.0", "@azure/functions": "^4.0.0", "@azure/identity": "^4.2.0", @@ -25,7 +26,7 @@ "@langchain/core": "^1.0.0", "@langchain/langgraph": "^1.0.0", "@langchain/mcp-adapters": "^1.0.0", - "@langchain/openai": "^1.0.0", + "@langchain/openai": "^1.1.2", "@modelcontextprotocol/sdk": "^1.20.0", "@opentelemetry/exporter-trace-otlp-http": "^0.206.0", "@opentelemetry/instrumentation": "^0.206.0", diff --git a/packages/agent-api/src/functions/chats-get.ts b/packages/agent-api/src/functions/chats-get.ts index cf0bcf1..b906d98 100644 --- a/packages/agent-api/src/functions/chats-get.ts +++ b/packages/agent-api/src/functions/chats-get.ts @@ -41,7 +41,7 @@ async function getChats(request: HttpRequest, context: InvocationContext): Promi if (sessionId) { const messages = await chatHistory.getMessages(); const chatMessages = messages.map((message) => ({ - role: message.getType() === 'human' ? 'user' : 'assistant', + role: message.type === 'human' ? 'user' : 'assistant', content: message.content, })); return { jsonBody: chatMessages }; diff --git a/packages/agent-api/src/functions/chats-post.ts b/packages/agent-api/src/functions/chats-post.ts index 9e057f8..171e59e 100644 --- a/packages/agent-api/src/functions/chats-post.ts +++ b/packages/agent-api/src/functions/chats-post.ts @@ -5,7 +5,7 @@ import { createAgent, AIMessage, HumanMessage } from 'langchain'; import { ChatOpenAI } from '@langchain/openai'; import { AzureCosmsosDBNoSQLChatMessageHistory } from '@langchain/azure-cosmosdb'; import { loadMcpTools } from '@langchain/mcp-adapters'; -import { StreamEvent } from '@langchain/core/dist/tracers/log_stream.js'; +import { StreamEvent } from '@langchain/core/tracers/log_stream'; import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js'; import { Client } from '@modelcontextprotocol/sdk/client/index.js'; import { getAzureOpenAiTokenProvider, getCredentials, getInternalUserId } from '../auth.js'; @@ -83,19 +83,11 @@ export async function postChats(request: HttpRequest, context: InvocationContext } const model = new ChatOpenAI({ - configuration: { - baseURL: azureOpenAiEndpoint, - async fetch(url, init = {}) { - const token = await getAzureOpenAiTokenProvider()(); - const headers = new Headers(init.headers); - headers.set('Authorization', `Bearer ${token}`); - return fetch(url, { ...init, headers }); - }, - }, + configuration: { baseURL: azureOpenAiEndpoint }, modelName: process.env.AZURE_OPENAI_MODEL ?? 'gpt-5-mini', streaming: true, useResponsesApi: true, - apiKey: 'not_used', + apiKey: getAzureOpenAiTokenProvider(), }); const chatHistory = new AzureCosmsosDBNoSQLChatMessageHistory({ sessionId, diff --git a/packages/agent-api/src/tracing.ts b/packages/agent-api/src/tracing.ts index b228158..322416b 100644 --- a/packages/agent-api/src/tracing.ts +++ b/packages/agent-api/src/tracing.ts @@ -6,8 +6,8 @@ import { useAzureMonitor } from '@azure/monitor-opentelemetry'; import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http'; import { NodeTracerProvider } from '@opentelemetry/sdk-trace-node'; import { SimpleSpanProcessor } from '@opentelemetry/sdk-trace-base'; -// import { LangChainInstrumentation } from '@arizeai/openinference-instrumentation-langchain'; -// import * as CallbackManagerModule from 'langchain'; +import { LangChainInstrumentation } from '@arizeai/openinference-instrumentation-langchain'; +import * as CallbackManagerModule from '@langchain/core/callbacks/manager'; let isTracingInitialized = false; if (!isTracingInitialized) { @@ -35,9 +35,8 @@ if (!isTracingInitialized) { } // Manually instrument LangChain's CallbackManager to capture traces - // TODO: temporarily disabled due to compatibility issues with LangChain v1 (PR in progress) - // const langchainInstrumentation = new LangChainInstrumentation(); - // langchainInstrumentation.manuallyInstrument(CallbackManagerModule); + const langchainInstrumentation = new LangChainInstrumentation(); + langchainInstrumentation.manuallyInstrument(CallbackManagerModule); isTracingInitialized = true; } diff --git a/packages/agent-api/tsconfig.json b/packages/agent-api/tsconfig.json index b430f27..9dcde24 100644 --- a/packages/agent-api/tsconfig.json +++ b/packages/agent-api/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "module": "CommonJS", + "module": "nodenext", "target": "ESNext", "incremental": true, "composite": true, @@ -14,7 +14,7 @@ "noUnusedParameters": true, "noImplicitReturns": true, "noImplicitOverride": true, - "moduleResolution": "node", + "moduleResolution": "nodenext", "esModuleInterop": true, "lib": ["ESNext"] },