@moldea.ai/adapter-openai-agents-sdk 3.0.0 → 3.0.2
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/README.md +12 -1
- package/docs/binding-example.md +218 -0
- package/docs/evidence-and-diagnostics.md +49 -0
- package/docs/index.md +31 -0
- package/docs/limitations.md +25 -0
- package/docs/verified-target.md +37 -0
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -8,7 +8,7 @@ The package implements the official `openai-agents-sdk` runtime adapter for `@mo
|
|
|
8
8
|
|
|
9
9
|
## Supported target
|
|
10
10
|
|
|
11
|
-
Version `3.0.
|
|
11
|
+
Version `3.0.2` supports:
|
|
12
12
|
|
|
13
13
|
- Repository Format version `1`
|
|
14
14
|
- `@moldea.ai/core ^4.0.0`
|
|
@@ -88,3 +88,14 @@ pnpm --filter @moldea.ai/adapter-openai-agents-sdk build
|
|
|
88
88
|
```
|
|
89
89
|
|
|
90
90
|
Unit and integration tests are colocated with their implementation modules. Adapter-specific conformance fixtures live under `/fixtures/adapter-openai-agents-sdk`.
|
|
91
|
+
|
|
92
|
+
## Documentation
|
|
93
|
+
|
|
94
|
+
- [Complete binding example](docs/binding-example.md): manifest, canonical instructions, runtime source, and supported schema or routing relationships.
|
|
95
|
+
|
|
96
|
+
These guides are included in the installed package. Open only the page relevant to your task.
|
|
97
|
+
|
|
98
|
+
- [Package overview](docs/index.md)
|
|
99
|
+
- [Verified target](docs/verified-target.md)
|
|
100
|
+
- [Evidence and diagnostics](docs/evidence-and-diagnostics.md)
|
|
101
|
+
- [Limitations](docs/limitations.md)
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Binding example
|
|
3
|
+
description: Complete manifest and source files for inspecting openai-agents-sdk bindings locally.
|
|
4
|
+
order: 5
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Binding example
|
|
8
|
+
|
|
9
|
+
Read this example before searching adapter implementation for binding syntax. It is a complete **static inspection** file set, not a deployment starter or a live provider test. The files are checked together through this adapter and Core without installing or executing the target SDK. Keep application setup, credentials, provider model access, tool execution, and deployment configuration separate.
|
|
10
|
+
|
|
11
|
+
## How the bindings connect
|
|
12
|
+
|
|
13
|
+
Bind each exported `Agent` instance. `instructions` calls its canonical loader and `outputType` names the agent output schema. Tool implementation, registration, input, and output are separate bindings. A handoff links the registered target agent; its static routing description must match that target's `handoff-description.md`. Do not put a handoff into the manifest's ordinary `tools` map.
|
|
14
|
+
|
|
15
|
+
Paths below are repository-root-relative logical paths. Keep the canonical instructions as the policy source. General manifest semantics belong to the [Repository Format specification](https://packages.moldea.ai/repository-format/). Use the other local guides for the full supported boundary and limitations; this example does not expand them.
|
|
16
|
+
|
|
17
|
+
## Files
|
|
18
|
+
|
|
19
|
+
<!-- example:start -->
|
|
20
|
+
|
|
21
|
+
### /moldea/moldea.yaml
|
|
22
|
+
|
|
23
|
+
```yaml
|
|
24
|
+
version: 1
|
|
25
|
+
agents:
|
|
26
|
+
billing:
|
|
27
|
+
runtime:
|
|
28
|
+
id: 'openai-agents-sdk'
|
|
29
|
+
bindings:
|
|
30
|
+
runtimeAgent:
|
|
31
|
+
path: '/src/agents.ts'
|
|
32
|
+
symbol: 'billingAgent'
|
|
33
|
+
instructionLoader:
|
|
34
|
+
path: '/src/instructions.ts'
|
|
35
|
+
symbol: 'loadBillingInstruction'
|
|
36
|
+
triage:
|
|
37
|
+
runtime:
|
|
38
|
+
id: 'openai-agents-sdk'
|
|
39
|
+
bindings:
|
|
40
|
+
runtimeAgent:
|
|
41
|
+
path: '/src/agents.ts'
|
|
42
|
+
symbol: 'triageAgent'
|
|
43
|
+
instructionLoader:
|
|
44
|
+
path: '/src/instructions.ts'
|
|
45
|
+
symbol: 'loadTriageInstruction'
|
|
46
|
+
outputSchema:
|
|
47
|
+
path: '/src/contracts.ts'
|
|
48
|
+
symbol: 'TriageOutputSchema'
|
|
49
|
+
tools:
|
|
50
|
+
find-order:
|
|
51
|
+
name: 'find_order'
|
|
52
|
+
description: 'Retrieves one order by its identifier.'
|
|
53
|
+
implementation:
|
|
54
|
+
path: '/src/find-order.ts'
|
|
55
|
+
symbol: 'findOrder'
|
|
56
|
+
registration:
|
|
57
|
+
path: '/src/tools.ts'
|
|
58
|
+
symbol: 'findOrderTool'
|
|
59
|
+
inputSchema:
|
|
60
|
+
path: '/src/contracts.ts'
|
|
61
|
+
symbol: 'FindOrderInputSchema'
|
|
62
|
+
outputSchema:
|
|
63
|
+
path: '/src/contracts.ts'
|
|
64
|
+
symbol: 'FindOrderOutputSchema'
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### /moldea/project.md
|
|
68
|
+
|
|
69
|
+
```markdown
|
|
70
|
+
# OpenAI Agents SDK adapter fixture
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### /moldea/agents/billing/description.md
|
|
74
|
+
|
|
75
|
+
```markdown
|
|
76
|
+
Handles customer billing requests.
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### /moldea/agents/billing/handoff-description.md
|
|
80
|
+
|
|
81
|
+
```markdown
|
|
82
|
+
Route billing questions and payment issues here.
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### /moldea/agents/billing/instruction.md
|
|
86
|
+
|
|
87
|
+
```markdown
|
|
88
|
+
You are the `billing` agent.
|
|
89
|
+
|
|
90
|
+
Resolve billing requests from the supplied facts. Ask when essential details are missing.
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### /moldea/agents/triage/description.md
|
|
94
|
+
|
|
95
|
+
```markdown
|
|
96
|
+
Routes customer support requests.
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### /moldea/agents/triage/instruction.md
|
|
100
|
+
|
|
101
|
+
```markdown
|
|
102
|
+
You are the `triage` agent.
|
|
103
|
+
|
|
104
|
+
Route billing requests to billing. Do not invent account facts.
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### /package.json
|
|
108
|
+
|
|
109
|
+
```json
|
|
110
|
+
{
|
|
111
|
+
"dependencies": {
|
|
112
|
+
"@openai/agents": "^0.16.1",
|
|
113
|
+
"zod": "4.6.4"
|
|
114
|
+
},
|
|
115
|
+
"name": "binding-example",
|
|
116
|
+
"private": true,
|
|
117
|
+
"type": "module"
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### /src/agents.ts
|
|
122
|
+
|
|
123
|
+
```typescript
|
|
124
|
+
import { Agent, handoff } from '@openai/agents';
|
|
125
|
+
|
|
126
|
+
import { TriageOutputSchema } from './contracts.js';
|
|
127
|
+
import { loadTriageInstruction, loadBillingInstruction } from './instructions.js';
|
|
128
|
+
import { billingRoutingDescription } from './metadata.js';
|
|
129
|
+
import { findOrderTool } from './tools.js';
|
|
130
|
+
|
|
131
|
+
export const billingAgent = new Agent({
|
|
132
|
+
name: 'billing',
|
|
133
|
+
instructions: loadBillingInstruction(),
|
|
134
|
+
handoffDescription: billingRoutingDescription,
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
const configuredBillingHandoff = handoff(billingAgent, {
|
|
138
|
+
toolNameOverride: 'route_billing',
|
|
139
|
+
toolDescriptionOverride: billingRoutingDescription,
|
|
140
|
+
});
|
|
141
|
+
const triageTools = [findOrderTool];
|
|
142
|
+
const triageHandoffs = [billingAgent, configuredBillingHandoff];
|
|
143
|
+
|
|
144
|
+
export const triageAgent = Agent.create({
|
|
145
|
+
name: 'triage',
|
|
146
|
+
instructions: loadTriageInstruction(),
|
|
147
|
+
outputType: TriageOutputSchema,
|
|
148
|
+
tools: triageTools,
|
|
149
|
+
handoffs: triageHandoffs,
|
|
150
|
+
});
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### /src/contracts.ts
|
|
154
|
+
|
|
155
|
+
```typescript
|
|
156
|
+
import { z } from 'zod';
|
|
157
|
+
|
|
158
|
+
// response and tool contracts
|
|
159
|
+
export const TriageOutputSchema = z.object({ summary: z.string() });
|
|
160
|
+
export const FindOrderInputSchema = z.object({ orderId: z.string() });
|
|
161
|
+
export const FindOrderOutputSchema = z.object({
|
|
162
|
+
orderId: z.string(),
|
|
163
|
+
status: z.enum(['shipped', 'not_found']),
|
|
164
|
+
});
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### /src/find-order.ts
|
|
168
|
+
|
|
169
|
+
```typescript
|
|
170
|
+
/** Looks up an order in the example's fixed catalog. */
|
|
171
|
+
export const findOrder = async ({ orderId }: { orderId: string }) => ({
|
|
172
|
+
orderId,
|
|
173
|
+
status: orderId === 'order-1042' ? ('shipped' as const) : ('not_found' as const),
|
|
174
|
+
});
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### /src/instructions.ts
|
|
178
|
+
|
|
179
|
+
```typescript
|
|
180
|
+
import { readFileSync } from 'node:fs';
|
|
181
|
+
|
|
182
|
+
/** Reads the canonical triage instruction. */
|
|
183
|
+
export const loadTriageInstruction = (): string =>
|
|
184
|
+
readFileSync(new URL('../moldea/agents/triage/instruction.md', import.meta.url), 'utf8');
|
|
185
|
+
|
|
186
|
+
/** Reads the canonical billing instruction. */
|
|
187
|
+
export const loadBillingInstruction = (): string =>
|
|
188
|
+
readFileSync(new URL('../moldea/agents/billing/instruction.md', import.meta.url), 'utf8');
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### /src/metadata.ts
|
|
192
|
+
|
|
193
|
+
```typescript
|
|
194
|
+
export const billingRoutingDescription = 'Route billing questions and payment issues here.';
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### /src/tools.ts
|
|
198
|
+
|
|
199
|
+
```typescript
|
|
200
|
+
import { tool } from '@openai/agents';
|
|
201
|
+
|
|
202
|
+
import { FindOrderInputSchema, FindOrderOutputSchema } from './contracts.js';
|
|
203
|
+
import { findOrder } from './find-order.js';
|
|
204
|
+
|
|
205
|
+
export const findOrderTool = tool({
|
|
206
|
+
name: 'find_order',
|
|
207
|
+
description: 'Retrieves one order by its identifier.',
|
|
208
|
+
parameters: FindOrderInputSchema,
|
|
209
|
+
outputSchema: FindOrderOutputSchema,
|
|
210
|
+
execute: findOrder,
|
|
211
|
+
});
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
<!-- example:end -->
|
|
215
|
+
|
|
216
|
+
## What the check establishes
|
|
217
|
+
|
|
218
|
+
The integration check reads these exact file blocks, requires positive adapter evidence for the documented relationships, and rejects a broken runtime binding. It does not prove that instructions are followed, that every SDK version accepts these forms, or that the application is ready for production. Continue using the installed adapter diagnostics for your actual source.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Evidence and diagnostics
|
|
3
|
+
description: Emitted evidence, stable diagnostic contracts, ambiguity, and all-or-nothing Core integration.
|
|
4
|
+
order: 20
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Evidence and diagnostics
|
|
8
|
+
|
|
9
|
+
## Evidence
|
|
10
|
+
|
|
11
|
+
The verified target may emit `agent-definition`, `handoff-registration`, `instruction-loader`, `language`, `runtime-package`, `schema`, and `tool-registration` evidence. Records are grounded in existing logical source references and may identify the relevant agent, capability, target agent, configuration property, schema role, or routing-description source.
|
|
12
|
+
|
|
13
|
+
Agent-definition evidence uses the exact supported static Agent name only when it satisfies Core's non-empty, single-line, NUL-free, Unicode-scalar machine-string contract without surrounding Repository Format whitespace. Otherwise it uses the bound runtime-agent symbol. A target Agent name that cannot satisfy the same contract is omitted from handoff details.
|
|
14
|
+
|
|
15
|
+
Handoff evidence maps a target only when exactly one registered `moldea` agent has the detected runtime binding. It reports a runtime name only for a supported static, non-empty `toolNameOverride` representable as a Core machine string. The adapter does not invent a manifest handoff graph or SDK-generated default name.
|
|
16
|
+
|
|
17
|
+
Evidence contains no repository content, instructions, descriptions, credentials, API keys, tool arguments, provider payloads, or model responses. Missing local evidence is not itself a diagnostic.
|
|
18
|
+
|
|
19
|
+
## Diagnostic catalog
|
|
20
|
+
|
|
21
|
+
| Code | Meaning |
|
|
22
|
+
| --------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
|
|
23
|
+
| `OPENAI_AGENTS_SDK_PACKAGE_MANIFEST_INVALID` | The owning manifest cannot establish valid dependency data. |
|
|
24
|
+
| `OPENAI_AGENTS_SDK_VERSION_UNSUPPORTED` | The observed SDK range is disjoint from the eligible versions. |
|
|
25
|
+
| `OPENAI_AGENTS_SDK_SOURCE_TEXT_INVALID` | Referenced source is not valid normalized text. |
|
|
26
|
+
| `OPENAI_AGENTS_SDK_SOURCE_SYNTAX_INVALID` | Referenced source contains invalid TypeScript syntax. |
|
|
27
|
+
| `OPENAI_AGENTS_SDK_RUNTIME_AGENT_SYMBOL_NOT_FOUND` | The bound runtime-agent symbol is absent. |
|
|
28
|
+
| `OPENAI_AGENTS_SDK_INSTRUCTION_LOADER_SYMBOL_NOT_FOUND` | The bound instruction-loader symbol is absent. |
|
|
29
|
+
| `OPENAI_AGENTS_SDK_AGENT_OUTPUT_SCHEMA_SYMBOL_NOT_FOUND` | The bound agent output-schema symbol is absent. |
|
|
30
|
+
| `OPENAI_AGENTS_SDK_TOOL_IMPLEMENTATION_SYMBOL_NOT_FOUND` | The bound tool-implementation symbol is absent. |
|
|
31
|
+
| `OPENAI_AGENTS_SDK_TOOL_REGISTRATION_SYMBOL_NOT_FOUND` | The bound tool-registration symbol is absent. |
|
|
32
|
+
| `OPENAI_AGENTS_SDK_TOOL_INPUT_SCHEMA_SYMBOL_NOT_FOUND` | The bound tool input-schema symbol is absent. |
|
|
33
|
+
| `OPENAI_AGENTS_SDK_TOOL_OUTPUT_SCHEMA_SYMBOL_NOT_FOUND` | The bound tool output-schema symbol is absent. |
|
|
34
|
+
| `OPENAI_AGENTS_SDK_INSTRUCTION_LOADER_NOT_WIRED` | Closed source proves that the declared loader is not used. |
|
|
35
|
+
| `OPENAI_AGENTS_SDK_AGENT_OUTPUT_SCHEMA_NOT_WIRED` | Closed source proves that the declared agent output schema is not used. |
|
|
36
|
+
| `OPENAI_AGENTS_SDK_TOOL_IMPLEMENTATION_NOT_WIRED` | Closed source proves that the declared tool implementation is not used. |
|
|
37
|
+
| `OPENAI_AGENTS_SDK_TOOL_REGISTRATION_NOT_WIRED` | Closed source proves that the declared function tool is not registered on the agent. |
|
|
38
|
+
| `OPENAI_AGENTS_SDK_TOOL_NAME_MISMATCH` | A static function-tool name contradicts the declared capability name. |
|
|
39
|
+
| `OPENAI_AGENTS_SDK_TOOL_INPUT_SCHEMA_NOT_WIRED` | Closed source proves that the declared tool input schema is not used. |
|
|
40
|
+
| `OPENAI_AGENTS_SDK_TOOL_OUTPUT_SCHEMA_NOT_WIRED` | Closed source proves that the declared tool output schema is not used. |
|
|
41
|
+
| `OPENAI_AGENTS_SDK_HANDOFF_TARGET_AMBIGUOUS` | A target runtime binding maps to multiple registered agents. |
|
|
42
|
+
| `OPENAI_AGENTS_SDK_HANDOFF_ROUTING_DESCRIPTION_MISSING` | A proved handoff registration has no effective canonical routing description. |
|
|
43
|
+
| `OPENAI_AGENTS_SDK_HANDOFF_ROUTING_DESCRIPTION_NOT_WIRED` | A proved handoff uses routing text that differs from its target's effective description. |
|
|
44
|
+
|
|
45
|
+
Diagnostics use Core's shared adapter shape, preserve logical source locations, and remain deterministically ordered. Dynamic or indirect patterns yield partial or no evidence rather than guessed failures. Core validates adapter output and applies all-or-nothing inspection semantics.
|
|
46
|
+
|
|
47
|
+
## Package detection
|
|
48
|
+
|
|
49
|
+
Detection stops at the nearest existing `package.json` owning each runtime-agent source. Supported dependency fields are considered collectively. A collectively disjoint range produces the unsupported-version diagnostic without package evidence; an ambiguous range remains evidence rather than being promoted to verified support. Invalid UTF-8 or NUL in the owning manifest produces only `OPENAI_AGENTS_SDK_PACKAGE_MANIFEST_INVALID`; source text failures remain source diagnostics.
|
package/docs/index.md
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: OpenAI Agents SDK runtime adapter
|
|
3
|
+
navigationTitle: Overview
|
|
4
|
+
description: Deterministic evidence and diagnostics for the verified OpenAI Agents SDK TypeScript target.
|
|
5
|
+
order: 0
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# OpenAI Agents SDK runtime adapter
|
|
9
|
+
|
|
10
|
+
`@moldea.ai/adapter-openai-agents-sdk` implements the official `openai-agents-sdk` runtime adapter for Core. It statically inspects explicitly bound TypeScript source through Core's source-neutral repository reader and produces deterministic evidence and diagnostics for one verified SDK target.
|
|
11
|
+
|
|
12
|
+
```typescript
|
|
13
|
+
import { openAiAgentsSdkAdapter } from '@moldea.ai/adapter-openai-agents-sdk';
|
|
14
|
+
import { createCore } from '@moldea.ai/core';
|
|
15
|
+
|
|
16
|
+
const core = createCore({ adapters: [openAiAgentsSdkAdapter] });
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
The local CLI registers the adapter automatically. Applications composing Core directly register the immutable singleton explicitly.
|
|
20
|
+
|
|
21
|
+
## Current state
|
|
22
|
+
|
|
23
|
+
The package is available. Its current technical compatibility target covers TypeScript ESM using direct OpenAI Agents SDK agent, instruction, function-tool, schema, handoff, and routing-description patterns with npm `@openai/agents >=0.16.1`, Repository Format version `1`, and compatible Core `^4.0.0`.
|
|
24
|
+
|
|
25
|
+
The adapter never imports or calls the SDK, requires no API key, executes no repository code, and makes no network request. It proves supported static relationships in source; it does not verify credentials, provider behavior, runtime handoff decisions, model availability, prompts, tool execution, or schema semantics.
|
|
26
|
+
|
|
27
|
+
## Public surface
|
|
28
|
+
|
|
29
|
+
The package exports only `openAiAgentsSdkAdapter`. It has no default export, configuration factory, SDK facade, parser export, public diagnostic registry, or mutable runtime state. The generated [API reference](https://packages.moldea.ai/adapters/openai-agents-sdk/api/) derives that surface from the package export.
|
|
30
|
+
|
|
31
|
+
Start with the [complete binding example](https://packages.moldea.ai/adapters/openai-agents-sdk/binding-example/) when connecting runtime source to canonical instructions, schemas, tools, or routing metadata. The same example ships locally as `docs/binding-example.md` in the installed package.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Boundaries and limitations
|
|
3
|
+
description: Unsupported SDK surfaces, source forms, dynamic behavior, and the adapter security boundary.
|
|
4
|
+
order: 30
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Boundaries and limitations
|
|
8
|
+
|
|
9
|
+
The current verified target does not claim support for:
|
|
10
|
+
|
|
11
|
+
- JavaScript, Python, CommonJS, or source outside the verified TypeScript ESM boundary
|
|
12
|
+
- `@openai/agents-core`, `@openai/agents-realtime`, sandbox agents, or subpath imports
|
|
13
|
+
- custom `Handoff` construction, dynamically assembled agent graphs, or manager-style agents as tools
|
|
14
|
+
- hosted, MCP-generated, namespaced, or tool-search tools
|
|
15
|
+
- arbitrary compiler resolution, `tsconfig` path aliases, directory indexes, package exports, or re-export graphs
|
|
16
|
+
- runtime-generated or transformed routing descriptions
|
|
17
|
+
- omitted function-tool names or names requiring SDK normalization
|
|
18
|
+
- schema-content validation
|
|
19
|
+
- handoff input schemas, callbacks, filters, enablement, runtime variables, guardrails, prompt templates, sessions, tracing, approvals, models, or provider behavior
|
|
20
|
+
|
|
21
|
+
Package detection uses nearest manifests, not lockfiles or installed `node_modules`. Static dependency ranges are observations; the adapter does not prove which package build executes at runtime.
|
|
22
|
+
|
|
23
|
+
Each invocation sees one declared agent, exact same-runtime binding resolution, and only the bounded operations Core supplies through `IRuntimeAdapterRepository`. It receives no complete agent collection, project body index, host path, OpenAI credential, environment variable, network client, or runtime process. It does not execute TypeScript, dynamically import source, load the inspected SDK, or follow source symlinks. These constraints preserve deterministic, source-grounded behavior while deliberately leaving dynamic runtime semantics unresolved.
|
|
24
|
+
|
|
25
|
+
The [Runtime Compatibility Matrix](https://packages.moldea.ai/compatibility/) remains authoritative. A focused specification or future design does not broaden this page until the canonical matrix and released implementation do.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Verified target
|
|
3
|
+
description: Exact source, package, agent, tool, schema, handoff, and routing-description support.
|
|
4
|
+
order: 10
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Verified target
|
|
8
|
+
|
|
9
|
+
The canonical Runtime Compatibility Matrix defines the technical target `typescript-agent-handoffs-0-16`.
|
|
10
|
+
|
|
11
|
+
## Supported boundary
|
|
12
|
+
|
|
13
|
+
- TypeScript ESM `.ts`, `.tsx`, and `.mts` files
|
|
14
|
+
- a nearest owning package manifest declaring npm `@openai/agents >=0.16.1`
|
|
15
|
+
- named value imports from the `@openai/agents` package root, including aliases
|
|
16
|
+
- a directly exported module-local `const` initialized through `new Agent({ ... })` or `Agent.create({ ... })`
|
|
17
|
+
- direct, awaited, referenced, or supported single-return-wrapper instruction-loader wiring
|
|
18
|
+
- direct agent output schemas through `outputType`
|
|
19
|
+
- directly exported function tools created through `tool({ ... })`
|
|
20
|
+
- direct tool implementations through `execute`, input schemas through `parameters`, and output schemas through `outputSchema`
|
|
21
|
+
- closed inline or immutable module-local arrays for agent tools and handoffs
|
|
22
|
+
- direct target-agent handoffs and closed `handoff(target, { ... })` registrations
|
|
23
|
+
- effective routing descriptions from a non-empty static `toolDescriptionOverride`, target `handoffDescription`, or the canonical agent-description fallback
|
|
24
|
+
|
|
25
|
+
Bindings must remain lexically visible at each matched use. Supported relative named imports resolve an exact TypeScript path, `.js` to `.ts` or `.tsx`, and `.mjs` to `.mts`. Re-exports, directory indexes, path aliases, CommonJS, and package-export resolution are outside the target.
|
|
26
|
+
|
|
27
|
+
## Relationship closure
|
|
28
|
+
|
|
29
|
+
Agent configurations, function tools, and configured handoffs are analyzed independently by relationship. Unrelated dynamic properties do not erase a proved relationship. A computed or duplicate relationship property, object spread, unsupported value, or relevant post-construction mutation leaves only the relationships it could obscure unresolved.
|
|
30
|
+
|
|
31
|
+
Negative wiring diagnostics require supported closed source to prove the declared relationship absent or contradictory. Dynamic and unsupported candidates remain unestablished rather than becoming definite failures.
|
|
32
|
+
|
|
33
|
+
## Static strings and routing
|
|
34
|
+
|
|
35
|
+
Agent names, tool names, `handoffDescription`, `toolNameOverride`, and `toolDescriptionOverride` support string literals, no-substitution templates, immutable module-local constants, and directly imported immutable string constants. Values are compiler-parsed and are not trimmed or normalized.
|
|
36
|
+
|
|
37
|
+
A non-empty static `toolDescriptionOverride` is authoritative for one configured registration. A static empty override falls back to target metadata. Without an authoritative override, the target's canonical handoff description is preferred and its canonical agent description is the fallback.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@moldea.ai/adapter-openai-agents-sdk",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.2",
|
|
4
4
|
"description": "Deterministic runtime evidence and diagnostics for direct OpenAI Agents SDK integrations.",
|
|
5
5
|
"homepage": "https://github.com/moldea-ai/packages/tree/main/projects/adapter-openai-agents-sdk#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
"files": [
|
|
19
19
|
"cover.png",
|
|
20
20
|
"dist",
|
|
21
|
+
"docs",
|
|
21
22
|
"LICENSE",
|
|
22
23
|
"README.md"
|
|
23
24
|
],
|