@openai/agents-openai 0.4.7 → 0.4.9

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/dist/metadata.js CHANGED
@@ -4,9 +4,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.METADATA = void 0;
5
5
  exports.METADATA = {
6
6
  "name": "@openai/agents-openai",
7
- "version": "0.4.7",
7
+ "version": "0.4.9",
8
8
  "versions": {
9
- "@openai/agents-openai": "0.4.7",
9
+ "@openai/agents-openai": "0.4.9",
10
10
  "@openai/agents-core": "workspace:*",
11
11
  "openai": "^6.20.0"
12
12
  }
package/dist/metadata.mjs CHANGED
@@ -1,9 +1,9 @@
1
1
  // This file is automatically generated
2
2
  export const METADATA = {
3
3
  "name": "@openai/agents-openai",
4
- "version": "0.4.7",
4
+ "version": "0.4.9",
5
5
  "versions": {
6
- "@openai/agents-openai": "0.4.7",
6
+ "@openai/agents-openai": "0.4.9",
7
7
  "@openai/agents-core": "workspace:*",
8
8
  "openai": "^6.20.0"
9
9
  }
@@ -1,6 +1,4 @@
1
- import { TracingExporter } from '@openai/agents-core';
2
- import type { Span } from '@openai/agents-core/dist/tracing/spans';
3
- import type { Trace } from '@openai/agents-core/dist/tracing/traces';
1
+ import { TracingExporter, type Span, type Trace } from '@openai/agents-core';
4
2
  /**
5
3
  * Options for OpenAITracingExporter.
6
4
  */
@@ -8,6 +8,73 @@ exports.setDefaultOpenAITracingExporter = setDefaultOpenAITracingExporter;
8
8
  const agents_core_1 = require("@openai/agents-core");
9
9
  const defaults_1 = require("./defaults.js");
10
10
  const logger_1 = __importDefault(require("./logger.js"));
11
+ function isRecord(value) {
12
+ return typeof value === 'object' && value !== null;
13
+ }
14
+ function isGenerationSpanData(spanData) {
15
+ return spanData.type === 'generation';
16
+ }
17
+ function isGenerationUsageData(usage) {
18
+ return isRecord(usage);
19
+ }
20
+ function sanitizeGenerationUsageForTracesIngest(usage) {
21
+ const inputTokens = usage.input_tokens;
22
+ const outputTokens = usage.output_tokens;
23
+ if (typeof inputTokens !== 'number' ||
24
+ Number.isNaN(inputTokens) ||
25
+ typeof outputTokens !== 'number' ||
26
+ Number.isNaN(outputTokens)) {
27
+ return undefined;
28
+ }
29
+ const details = {};
30
+ if (isRecord(usage.details)) {
31
+ Object.assign(details, usage.details);
32
+ }
33
+ for (const [key, value] of Object.entries(usage)) {
34
+ if (key === 'input_tokens' ||
35
+ key === 'output_tokens' ||
36
+ key === 'details' ||
37
+ value === undefined) {
38
+ continue;
39
+ }
40
+ details[key] = value;
41
+ }
42
+ return {
43
+ input_tokens: inputTokens,
44
+ output_tokens: outputTokens,
45
+ ...(Object.keys(details).length > 0 ? { details } : {}),
46
+ };
47
+ }
48
+ /**
49
+ * OpenAI traces ingest currently accepts only input/output token counts at the top-level
50
+ * generation usage object. Keep those fields and move other usage data under `usage.details`
51
+ * to avoid non-fatal 400 client errors.
52
+ */
53
+ function sanitizeSpanDataForTracesIngest(spanData) {
54
+ if (!isGenerationSpanData(spanData) ||
55
+ !isGenerationUsageData(spanData.usage)) {
56
+ return spanData;
57
+ }
58
+ const sanitizedUsage = sanitizeGenerationUsageForTracesIngest(spanData.usage);
59
+ if (!sanitizedUsage) {
60
+ const { usage, ...rest } = spanData;
61
+ void usage;
62
+ return rest;
63
+ }
64
+ return {
65
+ ...spanData,
66
+ usage: sanitizedUsage,
67
+ };
68
+ }
69
+ function sanitizePayloadItemForTracesIngest(payloadItem) {
70
+ if (payloadItem.object !== 'trace.span' || !isRecord(payloadItem.span_data)) {
71
+ return payloadItem;
72
+ }
73
+ return {
74
+ ...payloadItem,
75
+ span_data: sanitizeSpanDataForTracesIngest(payloadItem.span_data),
76
+ };
77
+ }
11
78
  /**
12
79
  * A tracing exporter that exports traces to OpenAI's tracing API.
13
80
  */
@@ -42,7 +109,8 @@ class OpenAITracingExporter {
42
109
  }
43
110
  const payloadItems = groupedItems
44
111
  .map((entry) => entry.toJSON())
45
- .filter((item) => !!item);
112
+ .filter((item) => !!item)
113
+ .map((item) => isRecord(item) ? sanitizePayloadItemForTracesIngest(item) : item);
46
114
  const payload = { data: payloadItems };
47
115
  let attempts = 0;
48
116
  let delay = this.#options.baseDelay;
@@ -1 +1 @@
1
- {"version":3,"file":"openaiTracingExporter.js","sourceRoot":"","sources":["../src/openaiTracingExporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openaiTracingExporter.js","sourceRoot":"","sources":["../src/openaiTracingExporter.ts"],"names":[],"mappings":";;;;;;AAyOA,0EAIC;AA7OD,qDAO6B;AAC7B,4CAA6D;AAC7D,yDAA8B;AAiB9B,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,SAAS,oBAAoB,CAC3B,QAAiC;IAEjC,OAAO,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC;AACxC,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc;IAC3C,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,sCAAsC,CAC7C,KAA0B;IAE1B,MAAM,WAAW,GAAG,KAAK,CAAC,YAAY,CAAC;IACvC,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC;IAEzC,IACE,OAAO,WAAW,KAAK,QAAQ;QAC/B,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;QACzB,OAAO,YAAY,KAAK,QAAQ;QAChC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,EAC1B,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAA4B,EAAE,CAAC;IAC5C,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IACE,GAAG,KAAK,cAAc;YACtB,GAAG,KAAK,eAAe;YACvB,GAAG,KAAK,SAAS;YACjB,KAAK,KAAK,SAAS,EACnB,CAAC;YACD,SAAS;QACX,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,OAAO;QACL,YAAY,EAAE,WAAW;QACzB,aAAa,EAAE,YAAY;QAC3B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxD,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,+BAA+B,CACtC,QAAiC;IAEjC,IACE,CAAC,oBAAoB,CAAC,QAAQ,CAAC;QAC/B,CAAC,qBAAqB,CAAC,QAAQ,CAAC,KAAK,CAAC,EACtC,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,cAAc,GAAG,sCAAsC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9E,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC;QACpC,KAAK,KAAK,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,GAAG,QAAQ;QACX,KAAK,EAAE,cAAc;KACtB,CAAC;AACJ,CAAC;AAED,SAAS,kCAAkC,CACzC,WAAoC;IAEpC,IAAI,WAAW,CAAC,MAAM,KAAK,YAAY,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5E,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,OAAO;QACL,GAAG,WAAW;QACd,SAAS,EAAE,+BAA+B,CAAC,WAAW,CAAC,SAAS,CAAC;KAClE,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAa,qBAAqB;IAChC,QAAQ,CAA+B;IAEvC,YAAY,UAAiD,EAAE;QAC7D,IAAI,CAAC,QAAQ,GAAG;YACd,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,SAAS;YACnC,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,EAAE;YACxC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;YAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,yCAAyC;YACvE,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,CAAC;YACnC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;YACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,KAAK;SACpC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CACV,KAA4B,EAC5B,MAAoB;QAEpB,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAA,iCAAsB,GAAE,CAAC;QACvE,MAAM,UAAU,GAAG,IAAI,GAAG,EAA6C,CAAC;QAExE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,MAAM,GAAI,IAA2C,CAAC,aAAa,CAAC;YAC1E,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC1C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;QAED,KAAK,MAAM,CAAC,GAAG,EAAE,YAAY,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;YACvD,oEAAoE;YACpE,MAAM,MAAM,GAAG,GAAG,IAAI,aAAa,CAAC;YACpC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,gBAAM,CAAC,KAAK,CACV,0EAA0E,CAC3E,CAAC;gBACF,SAAS;YACX,CAAC;YAED,MAAM,YAAY,GAAG,YAAY;iBAC9B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;iBAC9B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;iBACxB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACZ,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,kCAAkC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CACjE,CAAC;YACJ,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;YAEvC,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;YAEpC,OAAO,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;gBAC3C,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;wBACnD,MAAM,EAAE,MAAM;wBACd,OAAO,EAAE;4BACP,cAAc,EAAE,kBAAkB;4BAClC,aAAa,EAAE,UAAU,MAAM,EAAE;4BACjC,aAAa,EAAE,WAAW;4BAC1B,GAAG,kBAAO;yBACX;wBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;wBAC7B,MAAM;qBACP,CAAC,CAAC;oBAEH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;wBAChB,gBAAM,CAAC,KAAK,CAAC,YAAY,OAAO,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,CAAC;wBACtD,MAAM;oBACR,CAAC;oBAED,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;wBACpD,gBAAM,CAAC,KAAK,CACV,oCACE,QAAQ,CAAC,MACX,KAAK,MAAM,QAAQ,CAAC,IAAI,EAAE,EAAE,CAC7B,CAAC;wBACF,MAAM;oBACR,CAAC;oBAED,gBAAM,CAAC,IAAI,CACT,qCAAqC,QAAQ,CAAC,MAAM,aAAa,CAClE,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAU,EAAE,CAAC;oBACpB,gBAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC;gBAC/D,CAAC;gBAED,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;oBACpB,gBAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;oBACzC,MAAM;gBACR,CAAC;gBAED,MAAM,SAAS,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,aAAa;gBACpE,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC/D,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACpD,QAAQ,EAAE,CAAC;YACb,CAAC;YAED,IAAI,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACzC,gBAAM,CAAC,KAAK,CACV,0CACE,IAAI,CAAC,QAAQ,CAAC,UAChB,WAAW,CACZ,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAzGD,sDAyGC;AAED;;;GAGG;AACH,SAAgB,+BAA+B;IAC7C,MAAM,QAAQ,GAAG,IAAI,qBAAqB,EAAE,CAAC;IAC7C,MAAM,SAAS,GAAG,IAAI,iCAAmB,CAAC,QAAQ,CAAC,CAAC;IACpD,IAAA,gCAAkB,EAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AAClC,CAAC"}
@@ -1,6 +1,73 @@
1
1
  import { BatchTraceProcessor, setTraceProcessors, } from '@openai/agents-core';
2
2
  import { getTracingExportApiKey, HEADERS } from "./defaults.mjs";
3
3
  import logger from "./logger.mjs";
4
+ function isRecord(value) {
5
+ return typeof value === 'object' && value !== null;
6
+ }
7
+ function isGenerationSpanData(spanData) {
8
+ return spanData.type === 'generation';
9
+ }
10
+ function isGenerationUsageData(usage) {
11
+ return isRecord(usage);
12
+ }
13
+ function sanitizeGenerationUsageForTracesIngest(usage) {
14
+ const inputTokens = usage.input_tokens;
15
+ const outputTokens = usage.output_tokens;
16
+ if (typeof inputTokens !== 'number' ||
17
+ Number.isNaN(inputTokens) ||
18
+ typeof outputTokens !== 'number' ||
19
+ Number.isNaN(outputTokens)) {
20
+ return undefined;
21
+ }
22
+ const details = {};
23
+ if (isRecord(usage.details)) {
24
+ Object.assign(details, usage.details);
25
+ }
26
+ for (const [key, value] of Object.entries(usage)) {
27
+ if (key === 'input_tokens' ||
28
+ key === 'output_tokens' ||
29
+ key === 'details' ||
30
+ value === undefined) {
31
+ continue;
32
+ }
33
+ details[key] = value;
34
+ }
35
+ return {
36
+ input_tokens: inputTokens,
37
+ output_tokens: outputTokens,
38
+ ...(Object.keys(details).length > 0 ? { details } : {}),
39
+ };
40
+ }
41
+ /**
42
+ * OpenAI traces ingest currently accepts only input/output token counts at the top-level
43
+ * generation usage object. Keep those fields and move other usage data under `usage.details`
44
+ * to avoid non-fatal 400 client errors.
45
+ */
46
+ function sanitizeSpanDataForTracesIngest(spanData) {
47
+ if (!isGenerationSpanData(spanData) ||
48
+ !isGenerationUsageData(spanData.usage)) {
49
+ return spanData;
50
+ }
51
+ const sanitizedUsage = sanitizeGenerationUsageForTracesIngest(spanData.usage);
52
+ if (!sanitizedUsage) {
53
+ const { usage, ...rest } = spanData;
54
+ void usage;
55
+ return rest;
56
+ }
57
+ return {
58
+ ...spanData,
59
+ usage: sanitizedUsage,
60
+ };
61
+ }
62
+ function sanitizePayloadItemForTracesIngest(payloadItem) {
63
+ if (payloadItem.object !== 'trace.span' || !isRecord(payloadItem.span_data)) {
64
+ return payloadItem;
65
+ }
66
+ return {
67
+ ...payloadItem,
68
+ span_data: sanitizeSpanDataForTracesIngest(payloadItem.span_data),
69
+ };
70
+ }
4
71
  /**
5
72
  * A tracing exporter that exports traces to OpenAI's tracing API.
6
73
  */
@@ -35,7 +102,8 @@ export class OpenAITracingExporter {
35
102
  }
36
103
  const payloadItems = groupedItems
37
104
  .map((entry) => entry.toJSON())
38
- .filter((item) => !!item);
105
+ .filter((item) => !!item)
106
+ .map((item) => isRecord(item) ? sanitizePayloadItemForTracesIngest(item) : item);
39
107
  const payload = { data: payloadItems };
40
108
  let attempts = 0;
41
109
  let delay = this.#options.baseDelay;
@@ -1 +1 @@
1
- {"version":3,"file":"openaiTracingExporter.mjs","sourceRoot":"","sources":["../src/openaiTracingExporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openaiTracingExporter.mjs","sourceRoot":"","sources":["../src/openaiTracingExporter.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@openai/agents-openai",
3
3
  "repository": "https://github.com/openai/openai-agents-js",
4
4
  "homepage": "https://openai.github.io/openai-agents-js/",
5
- "version": "0.4.7",
5
+ "version": "0.4.9",
6
6
  "description": "The OpenAI Agents SDK is a lightweight yet powerful framework for building multi-agent workflows.",
7
7
  "author": "OpenAI <support@openai.com>",
8
8
  "main": "dist/index.js",
@@ -17,7 +17,7 @@
17
17
  "dependencies": {
18
18
  "debug": "^4.4.0",
19
19
  "openai": "^6.20.0",
20
- "@openai/agents-core": "0.4.7"
20
+ "@openai/agents-core": "0.4.9"
21
21
  },
22
22
  "keywords": [
23
23
  "openai",