@moldea.ai/adapter-openai-agents-sdk 3.0.2 → 4.0.0

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 CHANGED
@@ -8,10 +8,10 @@ The package implements the official `openai-agents-sdk` runtime adapter for `@mo
8
8
 
9
9
  ## Supported target
10
10
 
11
- Version `3.0.2` supports:
11
+ Version `4.0.0` supports:
12
12
 
13
13
  - Repository Format version `1`
14
- - `@moldea.ai/core ^4.0.0`
14
+ - `@moldea.ai/core ^5.0.0`
15
15
  - TypeScript ESM source
16
16
  - npm `@openai/agents >=0.16.1`
17
17
  - directly exported `const` agents constructed through `new Agent({ ... })` or `Agent.create({ ... })`
@@ -50,6 +50,8 @@ Agent-definition evidence uses a supported static Agent name only when it satisf
50
50
 
51
51
  ## Diagnostics
52
52
 
53
+ `OPENAI_AGENTS_SDK_RUNTIME_RELATIONSHIP_UNVERIFIED` has severity `warning` only when the adapter identifies a declared relationship affected by a recognized but unresolved source candidate. Its safe details identify the relationship and reason; known version-behavior boundaries additionally carry normalized dependency context. Missing local evidence or a newer eligible dependency version alone does not produce this warning. Confirmed diagnostic codes remain errors.
54
+
53
55
  | Code | Stable message |
54
56
  | --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
55
57
  | `OPENAI_AGENTS_SDK_PACKAGE_MANIFEST_INVALID` | The owning package manifest is invalid for OpenAI Agents SDK dependency detection. |
@@ -73,6 +75,7 @@ Agent-definition evidence uses a supported static Agent name only when it satisf
73
75
  | `OPENAI_AGENTS_SDK_HANDOFF_TARGET_AMBIGUOUS` | The detected OpenAI Agents SDK handoff target matches more than one registered moldea agent. |
74
76
  | `OPENAI_AGENTS_SDK_HANDOFF_ROUTING_DESCRIPTION_MISSING` | The detected OpenAI Agents SDK handoff registration is missing its effective routing description. |
75
77
  | `OPENAI_AGENTS_SDK_HANDOFF_ROUTING_DESCRIPTION_NOT_WIRED` | The detected OpenAI Agents SDK handoff registration does not use the target agent's effective routing description. |
78
+ | `OPENAI_AGENTS_SDK_RUNTIME_RELATIONSHIP_UNVERIFIED` | The declared runtime relationship could not be verified. |
76
79
 
77
80
  Missing local runtime evidence is not a diagnostic. Dynamic or unsupported forms produce partial or no evidence rather than guessed failures.
78
81
 
@@ -1,8 +1,8 @@
1
1
  import type ts from 'typescript';
2
2
  import type { ISourceRange } from '@moldea.ai/core';
3
- import type { IAdapterDiagnostic } from '@moldea.ai/core/adapter';
3
+ import type { IAdapterErrorDiagnostic, IAdapterWarningDiagnostic } from '@moldea.ai/core/adapter';
4
4
  import type { IRepositoryEntry, IRepositoryPath } from '@moldea.ai/repository';
5
- export type IOpenAiAgentsSdkAdapterDiagnosticCode = 'OPENAI_AGENTS_SDK_PACKAGE_MANIFEST_INVALID' | 'OPENAI_AGENTS_SDK_VERSION_UNSUPPORTED' | 'OPENAI_AGENTS_SDK_SOURCE_TEXT_INVALID' | 'OPENAI_AGENTS_SDK_SOURCE_SYNTAX_INVALID' | 'OPENAI_AGENTS_SDK_RUNTIME_AGENT_SYMBOL_NOT_FOUND' | 'OPENAI_AGENTS_SDK_INSTRUCTION_LOADER_SYMBOL_NOT_FOUND' | 'OPENAI_AGENTS_SDK_AGENT_OUTPUT_SCHEMA_SYMBOL_NOT_FOUND' | 'OPENAI_AGENTS_SDK_TOOL_IMPLEMENTATION_SYMBOL_NOT_FOUND' | 'OPENAI_AGENTS_SDK_TOOL_REGISTRATION_SYMBOL_NOT_FOUND' | 'OPENAI_AGENTS_SDK_TOOL_INPUT_SCHEMA_SYMBOL_NOT_FOUND' | 'OPENAI_AGENTS_SDK_TOOL_OUTPUT_SCHEMA_SYMBOL_NOT_FOUND' | 'OPENAI_AGENTS_SDK_INSTRUCTION_LOADER_NOT_WIRED' | 'OPENAI_AGENTS_SDK_AGENT_OUTPUT_SCHEMA_NOT_WIRED' | 'OPENAI_AGENTS_SDK_TOOL_IMPLEMENTATION_NOT_WIRED' | 'OPENAI_AGENTS_SDK_TOOL_REGISTRATION_NOT_WIRED' | 'OPENAI_AGENTS_SDK_TOOL_NAME_MISMATCH' | 'OPENAI_AGENTS_SDK_TOOL_INPUT_SCHEMA_NOT_WIRED' | 'OPENAI_AGENTS_SDK_TOOL_OUTPUT_SCHEMA_NOT_WIRED' | 'OPENAI_AGENTS_SDK_HANDOFF_TARGET_AMBIGUOUS' | 'OPENAI_AGENTS_SDK_HANDOFF_ROUTING_DESCRIPTION_MISSING' | 'OPENAI_AGENTS_SDK_HANDOFF_ROUTING_DESCRIPTION_NOT_WIRED';
5
+ export type IOpenAiAgentsSdkAdapterDiagnosticCode = 'OPENAI_AGENTS_SDK_PACKAGE_MANIFEST_INVALID' | 'OPENAI_AGENTS_SDK_VERSION_UNSUPPORTED' | 'OPENAI_AGENTS_SDK_SOURCE_TEXT_INVALID' | 'OPENAI_AGENTS_SDK_SOURCE_SYNTAX_INVALID' | 'OPENAI_AGENTS_SDK_RUNTIME_AGENT_SYMBOL_NOT_FOUND' | 'OPENAI_AGENTS_SDK_INSTRUCTION_LOADER_SYMBOL_NOT_FOUND' | 'OPENAI_AGENTS_SDK_AGENT_OUTPUT_SCHEMA_SYMBOL_NOT_FOUND' | 'OPENAI_AGENTS_SDK_TOOL_IMPLEMENTATION_SYMBOL_NOT_FOUND' | 'OPENAI_AGENTS_SDK_TOOL_REGISTRATION_SYMBOL_NOT_FOUND' | 'OPENAI_AGENTS_SDK_TOOL_INPUT_SCHEMA_SYMBOL_NOT_FOUND' | 'OPENAI_AGENTS_SDK_TOOL_OUTPUT_SCHEMA_SYMBOL_NOT_FOUND' | 'OPENAI_AGENTS_SDK_INSTRUCTION_LOADER_NOT_WIRED' | 'OPENAI_AGENTS_SDK_AGENT_OUTPUT_SCHEMA_NOT_WIRED' | 'OPENAI_AGENTS_SDK_TOOL_IMPLEMENTATION_NOT_WIRED' | 'OPENAI_AGENTS_SDK_TOOL_REGISTRATION_NOT_WIRED' | 'OPENAI_AGENTS_SDK_TOOL_NAME_MISMATCH' | 'OPENAI_AGENTS_SDK_TOOL_INPUT_SCHEMA_NOT_WIRED' | 'OPENAI_AGENTS_SDK_TOOL_OUTPUT_SCHEMA_NOT_WIRED' | 'OPENAI_AGENTS_SDK_HANDOFF_TARGET_AMBIGUOUS' | 'OPENAI_AGENTS_SDK_HANDOFF_ROUTING_DESCRIPTION_MISSING' | 'OPENAI_AGENTS_SDK_HANDOFF_ROUTING_DESCRIPTION_NOT_WIRED' | 'OPENAI_AGENTS_SDK_RUNTIME_RELATIONSHIP_UNVERIFIED';
6
6
  export type IOpenAiAgentsSdkPackageCompatibility = 'ambiguous' | 'supported' | 'unsupported';
7
7
  export type IOpenAiAgentsSdkPackageDependencyKind = 'dependencies' | 'optionalDependencies' | 'peerDependencies' | 'devDependencies';
8
8
  export interface IOpenAiAgentsSdkPackageDeclaration {
@@ -154,9 +154,11 @@ export interface IOpenAiAgentsSdkInspectionSession {
154
154
  discoverPackage(path: IRepositoryPath): Promise<IOpenAiAgentsSdkPackageDiscoveryResult>;
155
155
  getEntry(path: IRepositoryPath): Promise<IRepositoryEntry | null>;
156
156
  }
157
- export type IOpenAiAgentsSdkDiagnosticInput = Omit<IAdapterDiagnostic, 'message' | 'source'> & {
158
- readonly code: IOpenAiAgentsSdkAdapterDiagnosticCode;
159
- };
157
+ export type IOpenAiAgentsSdkDiagnosticInput = (Omit<IAdapterErrorDiagnostic, 'message' | 'source' | 'severity' | 'code'> & {
158
+ readonly code: Exclude<IOpenAiAgentsSdkAdapterDiagnosticCode, 'OPENAI_AGENTS_SDK_RUNTIME_RELATIONSHIP_UNVERIFIED'>;
159
+ }) | (Omit<IAdapterWarningDiagnostic, 'message' | 'source' | 'severity' | 'code'> & {
160
+ readonly code: 'OPENAI_AGENTS_SDK_RUNTIME_RELATIONSHIP_UNVERIFIED';
161
+ });
160
162
  export interface IOpenAiAgentsSdkLocatedExpression {
161
163
  readonly expression: ts.Expression;
162
164
  readonly range: ISourceRange;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"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"}
@@ -1,27 +1,94 @@
1
1
  import type { IAdapterDiagnostic } from '@moldea.ai/core/adapter';
2
2
  import type { IOpenAiAgentsSdkDiagnosticInput } from '../contracts/index.js';
3
3
  export declare const OPENAI_AGENTS_SDK_ADAPTER_DIAGNOSTICS: Readonly<{
4
- readonly OPENAI_AGENTS_SDK_AGENT_OUTPUT_SCHEMA_NOT_WIRED: "The declared agent output schema is not wired to the detected OpenAI Agents SDK agent output type.";
5
- readonly OPENAI_AGENTS_SDK_AGENT_OUTPUT_SCHEMA_SYMBOL_NOT_FOUND: "The declared agent output-schema symbol was not found.";
6
- readonly OPENAI_AGENTS_SDK_HANDOFF_ROUTING_DESCRIPTION_MISSING: "The detected OpenAI Agents SDK handoff registration is missing its effective routing description.";
7
- readonly OPENAI_AGENTS_SDK_HANDOFF_ROUTING_DESCRIPTION_NOT_WIRED: "The detected OpenAI Agents SDK handoff registration does not use the target agent's effective routing description.";
8
- readonly OPENAI_AGENTS_SDK_HANDOFF_TARGET_AMBIGUOUS: "The detected OpenAI Agents SDK handoff target matches more than one registered moldea agent.";
9
- readonly OPENAI_AGENTS_SDK_INSTRUCTION_LOADER_NOT_WIRED: "The declared instruction loader is not wired to the detected OpenAI Agents SDK agent.";
10
- readonly OPENAI_AGENTS_SDK_INSTRUCTION_LOADER_SYMBOL_NOT_FOUND: "The declared instruction-loader symbol was not found.";
11
- readonly OPENAI_AGENTS_SDK_PACKAGE_MANIFEST_INVALID: "The owning package manifest is invalid for OpenAI Agents SDK dependency detection.";
12
- readonly OPENAI_AGENTS_SDK_RUNTIME_AGENT_SYMBOL_NOT_FOUND: "The declared runtime-agent symbol was not found.";
13
- readonly OPENAI_AGENTS_SDK_SOURCE_SYNTAX_INVALID: "The referenced OpenAI Agents SDK source file contains invalid TypeScript syntax.";
14
- readonly OPENAI_AGENTS_SDK_SOURCE_TEXT_INVALID: "The referenced OpenAI Agents SDK source file is not valid normalized text.";
15
- readonly OPENAI_AGENTS_SDK_TOOL_IMPLEMENTATION_NOT_WIRED: "The declared tool implementation is not wired to the detected OpenAI Agents SDK function tool.";
16
- readonly OPENAI_AGENTS_SDK_TOOL_IMPLEMENTATION_SYMBOL_NOT_FOUND: "The declared tool-implementation symbol was not found.";
17
- readonly OPENAI_AGENTS_SDK_TOOL_INPUT_SCHEMA_NOT_WIRED: "The declared tool input schema is not wired to the detected OpenAI Agents SDK function tool.";
18
- readonly OPENAI_AGENTS_SDK_TOOL_INPUT_SCHEMA_SYMBOL_NOT_FOUND: "The declared tool input-schema symbol was not found.";
19
- readonly OPENAI_AGENTS_SDK_TOOL_NAME_MISMATCH: "The declared tool name does not match the detected OpenAI Agents SDK function-tool name.";
20
- readonly OPENAI_AGENTS_SDK_TOOL_OUTPUT_SCHEMA_NOT_WIRED: "The declared tool output schema is not wired to the detected OpenAI Agents SDK function tool.";
21
- readonly OPENAI_AGENTS_SDK_TOOL_OUTPUT_SCHEMA_SYMBOL_NOT_FOUND: "The declared tool output-schema symbol was not found.";
22
- readonly OPENAI_AGENTS_SDK_TOOL_REGISTRATION_NOT_WIRED: "The declared tool registration is not wired to the detected OpenAI Agents SDK agent.";
23
- readonly OPENAI_AGENTS_SDK_TOOL_REGISTRATION_SYMBOL_NOT_FOUND: "The declared tool-registration symbol was not found.";
24
- readonly OPENAI_AGENTS_SDK_VERSION_UNSUPPORTED: "The observed OpenAI Agents SDK dependency range is disjoint from the supported range.";
4
+ readonly OPENAI_AGENTS_SDK_AGENT_OUTPUT_SCHEMA_NOT_WIRED: {
5
+ readonly message: "The declared agent output schema is not wired to the detected OpenAI Agents SDK agent output type.";
6
+ readonly severity: "error";
7
+ };
8
+ readonly OPENAI_AGENTS_SDK_AGENT_OUTPUT_SCHEMA_SYMBOL_NOT_FOUND: {
9
+ readonly message: "The declared agent output-schema symbol was not found.";
10
+ readonly severity: "error";
11
+ };
12
+ readonly OPENAI_AGENTS_SDK_HANDOFF_ROUTING_DESCRIPTION_MISSING: {
13
+ readonly message: "The detected OpenAI Agents SDK handoff registration is missing its effective routing description.";
14
+ readonly severity: "error";
15
+ };
16
+ readonly OPENAI_AGENTS_SDK_HANDOFF_ROUTING_DESCRIPTION_NOT_WIRED: {
17
+ readonly message: "The detected OpenAI Agents SDK handoff registration does not use the target agent's effective routing description.";
18
+ readonly severity: "error";
19
+ };
20
+ readonly OPENAI_AGENTS_SDK_HANDOFF_TARGET_AMBIGUOUS: {
21
+ readonly message: "The detected OpenAI Agents SDK handoff target matches more than one registered moldea agent.";
22
+ readonly severity: "error";
23
+ };
24
+ readonly OPENAI_AGENTS_SDK_INSTRUCTION_LOADER_NOT_WIRED: {
25
+ readonly message: "The declared instruction loader is not wired to the detected OpenAI Agents SDK agent.";
26
+ readonly severity: "error";
27
+ };
28
+ readonly OPENAI_AGENTS_SDK_INSTRUCTION_LOADER_SYMBOL_NOT_FOUND: {
29
+ readonly message: "The declared instruction-loader symbol was not found.";
30
+ readonly severity: "error";
31
+ };
32
+ readonly OPENAI_AGENTS_SDK_PACKAGE_MANIFEST_INVALID: {
33
+ readonly message: "The owning package manifest is invalid for OpenAI Agents SDK dependency detection.";
34
+ readonly severity: "error";
35
+ };
36
+ readonly OPENAI_AGENTS_SDK_RUNTIME_AGENT_SYMBOL_NOT_FOUND: {
37
+ readonly message: "The declared runtime-agent symbol was not found.";
38
+ readonly severity: "error";
39
+ };
40
+ readonly OPENAI_AGENTS_SDK_SOURCE_SYNTAX_INVALID: {
41
+ readonly message: "The referenced OpenAI Agents SDK source file contains invalid TypeScript syntax.";
42
+ readonly severity: "error";
43
+ };
44
+ readonly OPENAI_AGENTS_SDK_SOURCE_TEXT_INVALID: {
45
+ readonly message: "The referenced OpenAI Agents SDK source file is not valid normalized text.";
46
+ readonly severity: "error";
47
+ };
48
+ readonly OPENAI_AGENTS_SDK_TOOL_IMPLEMENTATION_NOT_WIRED: {
49
+ readonly message: "The declared tool implementation is not wired to the detected OpenAI Agents SDK function tool.";
50
+ readonly severity: "error";
51
+ };
52
+ readonly OPENAI_AGENTS_SDK_TOOL_IMPLEMENTATION_SYMBOL_NOT_FOUND: {
53
+ readonly message: "The declared tool-implementation symbol was not found.";
54
+ readonly severity: "error";
55
+ };
56
+ readonly OPENAI_AGENTS_SDK_TOOL_INPUT_SCHEMA_NOT_WIRED: {
57
+ readonly message: "The declared tool input schema is not wired to the detected OpenAI Agents SDK function tool.";
58
+ readonly severity: "error";
59
+ };
60
+ readonly OPENAI_AGENTS_SDK_TOOL_INPUT_SCHEMA_SYMBOL_NOT_FOUND: {
61
+ readonly message: "The declared tool input-schema symbol was not found.";
62
+ readonly severity: "error";
63
+ };
64
+ readonly OPENAI_AGENTS_SDK_TOOL_NAME_MISMATCH: {
65
+ readonly message: "The declared tool name does not match the detected OpenAI Agents SDK function-tool name.";
66
+ readonly severity: "error";
67
+ };
68
+ readonly OPENAI_AGENTS_SDK_TOOL_OUTPUT_SCHEMA_NOT_WIRED: {
69
+ readonly message: "The declared tool output schema is not wired to the detected OpenAI Agents SDK function tool.";
70
+ readonly severity: "error";
71
+ };
72
+ readonly OPENAI_AGENTS_SDK_TOOL_OUTPUT_SCHEMA_SYMBOL_NOT_FOUND: {
73
+ readonly message: "The declared tool output-schema symbol was not found.";
74
+ readonly severity: "error";
75
+ };
76
+ readonly OPENAI_AGENTS_SDK_TOOL_REGISTRATION_NOT_WIRED: {
77
+ readonly message: "The declared tool registration is not wired to the detected OpenAI Agents SDK agent.";
78
+ readonly severity: "error";
79
+ };
80
+ readonly OPENAI_AGENTS_SDK_TOOL_REGISTRATION_SYMBOL_NOT_FOUND: {
81
+ readonly message: "The declared tool-registration symbol was not found.";
82
+ readonly severity: "error";
83
+ };
84
+ readonly OPENAI_AGENTS_SDK_VERSION_UNSUPPORTED: {
85
+ readonly message: "The observed OpenAI Agents SDK dependency range is disjoint from the supported range.";
86
+ readonly severity: "error";
87
+ };
88
+ readonly OPENAI_AGENTS_SDK_RUNTIME_RELATIONSHIP_UNVERIFIED: {
89
+ readonly message: "The declared runtime relationship could not be verified.";
90
+ readonly severity: "warning";
91
+ };
25
92
  }>;
26
93
  /**
27
94
  * Creates one frozen, safely namespaced OpenAI Agents SDK adapter diagnostic.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/diagnostics/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAGlE,OAAO,KAAK,EAEV,+BAA+B,EAChC,MAAM,uBAAuB,CAAC;AAG/B,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;EA2CmC,CAAC;AAEtF;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,GAC1C,OAAO,+BAA+B,KACrC,kBAOC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/diagnostics/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAGlE,OAAO,KAAK,EAEV,+BAA+B,EAChC,MAAM,uBAAuB,CAAC;AAG/B,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwGhD,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,GAC1C,OAAO,+BAA+B,KACrC,kBA4BF,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
+ import ts from "typescript";
1
2
  import { posix } from "node:path";
2
3
  import { intersects, subset, validRange } from "semver";
3
- import ts from "typescript";
4
4
  import { parseRepositoryPath } from "@moldea.ai/repository";
5
5
  import { readRuntimeAdapterFile } from "@moldea.ai/core/adapter";
6
6
  //#region src/constants/index.ts
@@ -59,204 +59,6 @@ var createInspectionSession = (options) => {
59
59
  ...options.signal === void 0 ? {} : { signal: options.signal }
60
60
  });
61
61
  };
62
- var decoder = new TextDecoder("utf-8", {
63
- fatal: true,
64
- ignoreBOM: true
65
- });
66
- var findLineIndex = (lineStarts, offset) => {
67
- let lower = 0;
68
- let upper = lineStarts.length - 1;
69
- while (lower < upper) {
70
- const middle = Math.ceil((lower + upper) / 2);
71
- if ((lineStarts[middle] ?? 0) <= offset) lower = middle;
72
- else upper = middle - 1;
73
- }
74
- return lower;
75
- };
76
- /**
77
- * Creates a TypeScript UTF-16-offset to Unicode-scalar source locator.
78
- * @param value The normalized valid Unicode-scalar text.
79
- * @returns The scalar-aware source locator.
80
- */
81
- var createSourceLocator = (value) => {
82
- const scalarOffsets = new Uint32Array(value.length + 1);
83
- const lineStarts = [0];
84
- let scalarOffset = 0;
85
- for (let codeUnitOffset = 0; codeUnitOffset < value.length;) {
86
- const codePoint = value.codePointAt(codeUnitOffset);
87
- const width = codePoint !== void 0 && codePoint > 65535 ? 2 : 1;
88
- scalarOffsets[codeUnitOffset] = scalarOffset;
89
- for (let interiorOffset = 1; interiorOffset < width; interiorOffset += 1) scalarOffsets[codeUnitOffset + interiorOffset] = scalarOffset;
90
- codeUnitOffset += width;
91
- scalarOffset += 1;
92
- scalarOffsets[codeUnitOffset] = scalarOffset;
93
- if (codePoint === 10) lineStarts.push(codeUnitOffset);
94
- }
95
- const locatePosition = (candidateOffset) => {
96
- const codeUnitOffset = Math.max(0, Math.min(value.length, candidateOffset));
97
- const lineIndex = findLineIndex(lineStarts, codeUnitOffset);
98
- const lineStart = lineStarts[lineIndex] ?? 0;
99
- const positionScalarOffset = scalarOffsets[codeUnitOffset] ?? 0;
100
- return {
101
- column: positionScalarOffset - (scalarOffsets[lineStart] ?? 0) + 1,
102
- line: lineIndex + 1,
103
- offset: positionScalarOffset
104
- };
105
- };
106
- return Object.freeze({ locateRange: (startOffset, endOffset) => ({
107
- end: locatePosition(endOffset),
108
- start: locatePosition(startOffset)
109
- }) });
110
- };
111
- /**
112
- * Decodes and normalizes source bytes through the runtime-adapter text contract.
113
- * @param bytes The exact reader-owned source bytes.
114
- * @returns The normalized text and locator or an invalid-text result.
115
- */
116
- var normalizeText = (bytes) => {
117
- let decoded;
118
- try {
119
- decoded = decoder.decode(bytes);
120
- } catch {
121
- return Object.freeze({ valid: false });
122
- }
123
- const value = (decoded.startsWith("") ? decoded.slice(1) : decoded).replace(/\r\n?/gu, "\n");
124
- if (value.includes("\0")) return Object.freeze({ valid: false });
125
- return Object.freeze({
126
- locator: createSourceLocator(value),
127
- valid: true,
128
- value
129
- });
130
- };
131
- var PACKAGE_DEPENDENCY_FIELDS = Object.freeze([
132
- "dependencies",
133
- "optionalDependencies",
134
- "peerDependencies",
135
- "devDependencies"
136
- ]);
137
- var isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
138
- /**
139
- * Creates nearest-to-root package-manifest candidates for one source path.
140
- * @param sourcePath The normalized source path.
141
- * @returns Deterministically ordered manifest paths.
142
- */
143
- var createPackageManifestCandidatePaths = (sourcePath) => {
144
- const candidates = [];
145
- let directory = posix.dirname(sourcePath);
146
- while (true) {
147
- candidates.push(posix.join(directory, "package.json"));
148
- if (directory === "/") break;
149
- directory = posix.dirname(directory);
150
- }
151
- return Object.freeze(candidates);
152
- };
153
- var extractPackageDeclarations = (manifest, packageName) => {
154
- const declarations = [];
155
- for (const field of PACKAGE_DEPENDENCY_FIELDS) {
156
- const dependencies = manifest[field];
157
- if (dependencies === void 0) continue;
158
- if (!isRecord(dependencies)) return null;
159
- const declaration = dependencies[packageName];
160
- if (declaration === void 0) continue;
161
- if (typeof declaration !== "string" || declaration.trim().length === 0) return null;
162
- declarations.push(Object.freeze({
163
- declaredRange: declaration,
164
- dependencyKind: field
165
- }));
166
- }
167
- return declarations;
168
- };
169
- var classifyPackageDeclarations = (declarations, supportedRange) => {
170
- const classifications = declarations.map(({ declaredRange }) => {
171
- const normalizedRange = validRange(declaredRange, {
172
- loose: false,
173
- includePrerelease: false
174
- });
175
- if (normalizedRange === null) return "ambiguous";
176
- if (subset(normalizedRange, supportedRange, {
177
- loose: false,
178
- includePrerelease: false
179
- })) return "supported";
180
- if (!intersects(normalizedRange, supportedRange, {
181
- loose: false,
182
- includePrerelease: false
183
- })) return "unsupported";
184
- return "ambiguous";
185
- });
186
- if (classifications.every((classification) => classification === "supported")) return "supported";
187
- if (classifications.every((classification) => classification === "unsupported")) return "unsupported";
188
- return "ambiguous";
189
- };
190
- var readOwningManifest = async (options) => {
191
- const { reader, signal, sourcePath } = options;
192
- for (const manifestPath of createPackageManifestCandidatePaths(sourcePath)) {
193
- signal?.throwIfAborted();
194
- const entry = await reader.getEntry(manifestPath);
195
- signal?.throwIfAborted();
196
- if (entry === null) continue;
197
- if (entry.type !== "file") return Object.freeze({
198
- kind: "invalid",
199
- path: manifestPath
200
- });
201
- const bytes = await reader.readFile(manifestPath);
202
- signal?.throwIfAborted();
203
- const text = normalizeText(bytes);
204
- signal?.throwIfAborted();
205
- if (!text.valid) return Object.freeze({
206
- kind: "invalid",
207
- path: manifestPath
208
- });
209
- let parsed;
210
- try {
211
- parsed = JSON.parse(text.value);
212
- } catch {
213
- return Object.freeze({
214
- kind: "invalid",
215
- path: manifestPath
216
- });
217
- }
218
- signal?.throwIfAborted();
219
- return isRecord(parsed) ? Object.freeze({
220
- kind: "present",
221
- manifest: parsed,
222
- path: manifestPath
223
- }) : Object.freeze({
224
- kind: "invalid",
225
- path: manifestPath
226
- });
227
- }
228
- return Object.freeze({ kind: "absent" });
229
- };
230
- /**
231
- * Discovers the nearest package declaration without repository enumeration.
232
- * @param options The package target, repository callbacks, path, range, and signal.
233
- * @returns The first observed declaration, invalid manifest, or absence result.
234
- * @throws If repository reading or the active inspection is aborted.
235
- */
236
- var discoverPackage = async (options) => {
237
- const { includeManifestPackageName, packageName, reader, signal, sourcePath, supportedRange } = options;
238
- const owningManifest = await readOwningManifest({
239
- reader,
240
- ...signal === void 0 ? {} : { signal },
241
- sourcePath
242
- });
243
- if (owningManifest.kind !== "present") return owningManifest;
244
- const declarations = extractPackageDeclarations(owningManifest.manifest, packageName);
245
- if (declarations === null) return Object.freeze({
246
- kind: "invalid",
247
- path: owningManifest.path
248
- });
249
- if (declarations.length === 0) return Object.freeze({ kind: "absent" });
250
- return Object.freeze({
251
- kind: "observed",
252
- observation: Object.freeze({
253
- compatibility: classifyPackageDeclarations(declarations, supportedRange),
254
- declarations: Object.freeze(declarations),
255
- ...includeManifestPackageName === true ? { manifestPackageName: typeof owningManifest.manifest["name"] === "string" ? owningManifest.manifest["name"] : null } : {},
256
- path: owningManifest.path
257
- })
258
- });
259
- };
260
62
  /**
261
63
  * Removes the transparent expression wrappers supported by runtime adapters.
262
64
  * @param expression The expression to normalize.
@@ -309,7 +111,7 @@ var indexImports = (sourceFile, config) => {
309
111
  const importedName = element.propertyName?.text ?? element.name.text;
310
112
  if (!element.isTypeOnly && supportedNamedImports.has(importedName)) constructorNames.add(element.name.text);
311
113
  }
312
- if (!moduleSpecifier.startsWith(".") || importClause?.namedBindings === void 0 || !ts.isNamedImports(importClause.namedBindings)) continue;
114
+ if (!moduleSpecifier.startsWith(".") && !config.namedHelperModuleSpecifiers?.includes(moduleSpecifier) || importClause?.namedBindings === void 0 || !ts.isNamedImports(importClause.namedBindings)) continue;
313
115
  for (const element of importClause.namedBindings.elements) {
314
116
  if (element.isTypeOnly) continue;
315
117
  namedImports.set(element.name.text, Object.freeze({
@@ -720,6 +522,75 @@ var analyzeModuleValueMutations = (analysis, declaration, allowedReferences, saf
720
522
  mutatedMembers: new Set(mutatedMembers)
721
523
  });
722
524
  };
525
+ var decoder = new TextDecoder("utf-8", {
526
+ fatal: true,
527
+ ignoreBOM: true
528
+ });
529
+ var findLineIndex = (lineStarts, offset) => {
530
+ let lower = 0;
531
+ let upper = lineStarts.length - 1;
532
+ while (lower < upper) {
533
+ const middle = Math.ceil((lower + upper) / 2);
534
+ if ((lineStarts[middle] ?? 0) <= offset) lower = middle;
535
+ else upper = middle - 1;
536
+ }
537
+ return lower;
538
+ };
539
+ /**
540
+ * Creates a TypeScript UTF-16-offset to Unicode-scalar source locator.
541
+ * @param value The normalized valid Unicode-scalar text.
542
+ * @returns The scalar-aware source locator.
543
+ */
544
+ var createSourceLocator = (value) => {
545
+ const scalarOffsets = new Uint32Array(value.length + 1);
546
+ const lineStarts = [0];
547
+ let scalarOffset = 0;
548
+ for (let codeUnitOffset = 0; codeUnitOffset < value.length;) {
549
+ const codePoint = value.codePointAt(codeUnitOffset);
550
+ const width = codePoint !== void 0 && codePoint > 65535 ? 2 : 1;
551
+ scalarOffsets[codeUnitOffset] = scalarOffset;
552
+ for (let interiorOffset = 1; interiorOffset < width; interiorOffset += 1) scalarOffsets[codeUnitOffset + interiorOffset] = scalarOffset;
553
+ codeUnitOffset += width;
554
+ scalarOffset += 1;
555
+ scalarOffsets[codeUnitOffset] = scalarOffset;
556
+ if (codePoint === 10) lineStarts.push(codeUnitOffset);
557
+ }
558
+ const locatePosition = (candidateOffset) => {
559
+ const codeUnitOffset = Math.max(0, Math.min(value.length, candidateOffset));
560
+ const lineIndex = findLineIndex(lineStarts, codeUnitOffset);
561
+ const lineStart = lineStarts[lineIndex] ?? 0;
562
+ const positionScalarOffset = scalarOffsets[codeUnitOffset] ?? 0;
563
+ return {
564
+ column: positionScalarOffset - (scalarOffsets[lineStart] ?? 0) + 1,
565
+ line: lineIndex + 1,
566
+ offset: positionScalarOffset
567
+ };
568
+ };
569
+ return Object.freeze({ locateRange: (startOffset, endOffset) => ({
570
+ end: locatePosition(endOffset),
571
+ start: locatePosition(startOffset)
572
+ }) });
573
+ };
574
+ /**
575
+ * Decodes and normalizes source bytes through the runtime-adapter text contract.
576
+ * @param bytes The exact reader-owned source bytes.
577
+ * @returns The normalized text and locator or an invalid-text result.
578
+ */
579
+ var normalizeText = (bytes) => {
580
+ let decoded;
581
+ try {
582
+ decoded = decoder.decode(bytes);
583
+ } catch {
584
+ return Object.freeze({ valid: false });
585
+ }
586
+ const value = (decoded.startsWith("") ? decoded.slice(1) : decoded).replace(/\r\n?/gu, "\n");
587
+ if (value.includes("\0")) return Object.freeze({ valid: false });
588
+ return Object.freeze({
589
+ locator: createSourceLocator(value),
590
+ valid: true,
591
+ value
592
+ });
593
+ };
723
594
  var TYPESCRIPT_DECLARATION_EXTENSIONS = [
724
595
  ".d.ts",
725
596
  ".d.tsx",
@@ -930,6 +801,135 @@ var resolveStaticStringExpression = async (options, analysis, expression, visite
930
801
  * @returns The exact compiler-parsed string or an unsupported state.
931
802
  */
932
803
  var resolveStaticString = (options) => resolveStaticStringExpression(options, options.analysis, options.expression, /* @__PURE__ */ new Set());
804
+ var PACKAGE_DEPENDENCY_FIELDS = Object.freeze([
805
+ "dependencies",
806
+ "optionalDependencies",
807
+ "peerDependencies",
808
+ "devDependencies"
809
+ ]);
810
+ var isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
811
+ /**
812
+ * Creates nearest-to-root package-manifest candidates for one source path.
813
+ * @param sourcePath The normalized source path.
814
+ * @returns Deterministically ordered manifest paths.
815
+ */
816
+ var createPackageManifestCandidatePaths = (sourcePath) => {
817
+ const candidates = [];
818
+ let directory = posix.dirname(sourcePath);
819
+ while (true) {
820
+ candidates.push(posix.join(directory, "package.json"));
821
+ if (directory === "/") break;
822
+ directory = posix.dirname(directory);
823
+ }
824
+ return Object.freeze(candidates);
825
+ };
826
+ var extractPackageDeclarations = (manifest, packageName) => {
827
+ const declarations = [];
828
+ for (const field of PACKAGE_DEPENDENCY_FIELDS) {
829
+ const dependencies = manifest[field];
830
+ if (dependencies === void 0) continue;
831
+ if (!isRecord(dependencies)) return null;
832
+ const declaration = dependencies[packageName];
833
+ if (declaration === void 0) continue;
834
+ if (typeof declaration !== "string" || declaration.trim().length === 0) return null;
835
+ declarations.push(Object.freeze({
836
+ declaredRange: declaration,
837
+ dependencyKind: field
838
+ }));
839
+ }
840
+ return declarations;
841
+ };
842
+ var classifyPackageDeclarations = (declarations, supportedRange) => {
843
+ const classifications = declarations.map(({ declaredRange }) => {
844
+ const normalizedRange = validRange(declaredRange, {
845
+ loose: false,
846
+ includePrerelease: false
847
+ });
848
+ if (normalizedRange === null) return "ambiguous";
849
+ if (subset(normalizedRange, supportedRange, {
850
+ loose: false,
851
+ includePrerelease: false
852
+ })) return "supported";
853
+ if (!intersects(normalizedRange, supportedRange, {
854
+ loose: false,
855
+ includePrerelease: false
856
+ })) return "unsupported";
857
+ return "ambiguous";
858
+ });
859
+ if (classifications.every((classification) => classification === "supported")) return "supported";
860
+ if (classifications.every((classification) => classification === "unsupported")) return "unsupported";
861
+ return "ambiguous";
862
+ };
863
+ var readOwningManifest = async (options) => {
864
+ const { reader, signal, sourcePath } = options;
865
+ for (const manifestPath of createPackageManifestCandidatePaths(sourcePath)) {
866
+ signal?.throwIfAborted();
867
+ const entry = await reader.getEntry(manifestPath);
868
+ signal?.throwIfAborted();
869
+ if (entry === null) continue;
870
+ if (entry.type !== "file") return Object.freeze({
871
+ kind: "invalid",
872
+ path: manifestPath
873
+ });
874
+ const bytes = await reader.readFile(manifestPath);
875
+ signal?.throwIfAborted();
876
+ const text = normalizeText(bytes);
877
+ signal?.throwIfAborted();
878
+ if (!text.valid) return Object.freeze({
879
+ kind: "invalid",
880
+ path: manifestPath
881
+ });
882
+ let parsed;
883
+ try {
884
+ parsed = JSON.parse(text.value);
885
+ } catch {
886
+ return Object.freeze({
887
+ kind: "invalid",
888
+ path: manifestPath
889
+ });
890
+ }
891
+ signal?.throwIfAborted();
892
+ return isRecord(parsed) ? Object.freeze({
893
+ kind: "present",
894
+ manifest: parsed,
895
+ path: manifestPath
896
+ }) : Object.freeze({
897
+ kind: "invalid",
898
+ path: manifestPath
899
+ });
900
+ }
901
+ return Object.freeze({ kind: "absent" });
902
+ };
903
+ /**
904
+ * Discovers the nearest package declaration without repository enumeration.
905
+ * @param options The package target, repository callbacks, path, range, and signal.
906
+ * @returns The first observed declaration, invalid manifest, or absence result.
907
+ * @throws If repository reading or the active inspection is aborted.
908
+ */
909
+ var discoverPackage = async (options) => {
910
+ const { includeManifestPackageName, packageName, reader, signal, sourcePath, supportedRange } = options;
911
+ const owningManifest = await readOwningManifest({
912
+ reader,
913
+ ...signal === void 0 ? {} : { signal },
914
+ sourcePath
915
+ });
916
+ if (owningManifest.kind !== "present") return owningManifest;
917
+ const declarations = extractPackageDeclarations(owningManifest.manifest, packageName);
918
+ if (declarations === null) return Object.freeze({
919
+ kind: "invalid",
920
+ path: owningManifest.path
921
+ });
922
+ if (declarations.length === 0) return Object.freeze({ kind: "absent" });
923
+ return Object.freeze({
924
+ kind: "observed",
925
+ observation: Object.freeze({
926
+ compatibility: classifyPackageDeclarations(declarations, supportedRange),
927
+ declarations: Object.freeze(declarations),
928
+ ...includeManifestPackageName === true ? { manifestPackageName: typeof owningManifest.manifest["name"] === "string" ? owningManifest.manifest["name"] : null } : {},
929
+ path: owningManifest.path
930
+ })
931
+ });
932
+ };
933
933
  //#endregion
934
934
  //#region src/source-analysis/mutations.ts
935
935
  /**
@@ -1465,40 +1465,126 @@ var getOpenAiAgentsSdkToolElements = (relationship, analysis, allowedCollectionR
1465
1465
  //#endregion
1466
1466
  //#region src/diagnostics/index.ts
1467
1467
  var OPENAI_AGENTS_SDK_ADAPTER_DIAGNOSTICS = Object.freeze({
1468
- OPENAI_AGENTS_SDK_AGENT_OUTPUT_SCHEMA_NOT_WIRED: "The declared agent output schema is not wired to the detected OpenAI Agents SDK agent output type.",
1469
- OPENAI_AGENTS_SDK_AGENT_OUTPUT_SCHEMA_SYMBOL_NOT_FOUND: "The declared agent output-schema symbol was not found.",
1470
- OPENAI_AGENTS_SDK_HANDOFF_ROUTING_DESCRIPTION_MISSING: "The detected OpenAI Agents SDK handoff registration is missing its effective routing description.",
1471
- OPENAI_AGENTS_SDK_HANDOFF_ROUTING_DESCRIPTION_NOT_WIRED: "The detected OpenAI Agents SDK handoff registration does not use the target agent's effective routing description.",
1472
- OPENAI_AGENTS_SDK_HANDOFF_TARGET_AMBIGUOUS: "The detected OpenAI Agents SDK handoff target matches more than one registered moldea agent.",
1473
- OPENAI_AGENTS_SDK_INSTRUCTION_LOADER_NOT_WIRED: "The declared instruction loader is not wired to the detected OpenAI Agents SDK agent.",
1474
- OPENAI_AGENTS_SDK_INSTRUCTION_LOADER_SYMBOL_NOT_FOUND: "The declared instruction-loader symbol was not found.",
1475
- OPENAI_AGENTS_SDK_PACKAGE_MANIFEST_INVALID: "The owning package manifest is invalid for OpenAI Agents SDK dependency detection.",
1476
- OPENAI_AGENTS_SDK_RUNTIME_AGENT_SYMBOL_NOT_FOUND: "The declared runtime-agent symbol was not found.",
1477
- OPENAI_AGENTS_SDK_SOURCE_SYNTAX_INVALID: "The referenced OpenAI Agents SDK source file contains invalid TypeScript syntax.",
1478
- OPENAI_AGENTS_SDK_SOURCE_TEXT_INVALID: "The referenced OpenAI Agents SDK source file is not valid normalized text.",
1479
- OPENAI_AGENTS_SDK_TOOL_IMPLEMENTATION_NOT_WIRED: "The declared tool implementation is not wired to the detected OpenAI Agents SDK function tool.",
1480
- OPENAI_AGENTS_SDK_TOOL_IMPLEMENTATION_SYMBOL_NOT_FOUND: "The declared tool-implementation symbol was not found.",
1481
- OPENAI_AGENTS_SDK_TOOL_INPUT_SCHEMA_NOT_WIRED: "The declared tool input schema is not wired to the detected OpenAI Agents SDK function tool.",
1482
- OPENAI_AGENTS_SDK_TOOL_INPUT_SCHEMA_SYMBOL_NOT_FOUND: "The declared tool input-schema symbol was not found.",
1483
- OPENAI_AGENTS_SDK_TOOL_NAME_MISMATCH: "The declared tool name does not match the detected OpenAI Agents SDK function-tool name.",
1484
- OPENAI_AGENTS_SDK_TOOL_OUTPUT_SCHEMA_NOT_WIRED: "The declared tool output schema is not wired to the detected OpenAI Agents SDK function tool.",
1485
- OPENAI_AGENTS_SDK_TOOL_OUTPUT_SCHEMA_SYMBOL_NOT_FOUND: "The declared tool output-schema symbol was not found.",
1486
- OPENAI_AGENTS_SDK_TOOL_REGISTRATION_NOT_WIRED: "The declared tool registration is not wired to the detected OpenAI Agents SDK agent.",
1487
- OPENAI_AGENTS_SDK_TOOL_REGISTRATION_SYMBOL_NOT_FOUND: "The declared tool-registration symbol was not found.",
1488
- OPENAI_AGENTS_SDK_VERSION_UNSUPPORTED: "The observed OpenAI Agents SDK dependency range is disjoint from the supported range."
1468
+ OPENAI_AGENTS_SDK_AGENT_OUTPUT_SCHEMA_NOT_WIRED: {
1469
+ message: "The declared agent output schema is not wired to the detected OpenAI Agents SDK agent output type.",
1470
+ severity: "error"
1471
+ },
1472
+ OPENAI_AGENTS_SDK_AGENT_OUTPUT_SCHEMA_SYMBOL_NOT_FOUND: {
1473
+ message: "The declared agent output-schema symbol was not found.",
1474
+ severity: "error"
1475
+ },
1476
+ OPENAI_AGENTS_SDK_HANDOFF_ROUTING_DESCRIPTION_MISSING: {
1477
+ message: "The detected OpenAI Agents SDK handoff registration is missing its effective routing description.",
1478
+ severity: "error"
1479
+ },
1480
+ OPENAI_AGENTS_SDK_HANDOFF_ROUTING_DESCRIPTION_NOT_WIRED: {
1481
+ message: "The detected OpenAI Agents SDK handoff registration does not use the target agent's effective routing description.",
1482
+ severity: "error"
1483
+ },
1484
+ OPENAI_AGENTS_SDK_HANDOFF_TARGET_AMBIGUOUS: {
1485
+ message: "The detected OpenAI Agents SDK handoff target matches more than one registered moldea agent.",
1486
+ severity: "error"
1487
+ },
1488
+ OPENAI_AGENTS_SDK_INSTRUCTION_LOADER_NOT_WIRED: {
1489
+ message: "The declared instruction loader is not wired to the detected OpenAI Agents SDK agent.",
1490
+ severity: "error"
1491
+ },
1492
+ OPENAI_AGENTS_SDK_INSTRUCTION_LOADER_SYMBOL_NOT_FOUND: {
1493
+ message: "The declared instruction-loader symbol was not found.",
1494
+ severity: "error"
1495
+ },
1496
+ OPENAI_AGENTS_SDK_PACKAGE_MANIFEST_INVALID: {
1497
+ message: "The owning package manifest is invalid for OpenAI Agents SDK dependency detection.",
1498
+ severity: "error"
1499
+ },
1500
+ OPENAI_AGENTS_SDK_RUNTIME_AGENT_SYMBOL_NOT_FOUND: {
1501
+ message: "The declared runtime-agent symbol was not found.",
1502
+ severity: "error"
1503
+ },
1504
+ OPENAI_AGENTS_SDK_SOURCE_SYNTAX_INVALID: {
1505
+ message: "The referenced OpenAI Agents SDK source file contains invalid TypeScript syntax.",
1506
+ severity: "error"
1507
+ },
1508
+ OPENAI_AGENTS_SDK_SOURCE_TEXT_INVALID: {
1509
+ message: "The referenced OpenAI Agents SDK source file is not valid normalized text.",
1510
+ severity: "error"
1511
+ },
1512
+ OPENAI_AGENTS_SDK_TOOL_IMPLEMENTATION_NOT_WIRED: {
1513
+ message: "The declared tool implementation is not wired to the detected OpenAI Agents SDK function tool.",
1514
+ severity: "error"
1515
+ },
1516
+ OPENAI_AGENTS_SDK_TOOL_IMPLEMENTATION_SYMBOL_NOT_FOUND: {
1517
+ message: "The declared tool-implementation symbol was not found.",
1518
+ severity: "error"
1519
+ },
1520
+ OPENAI_AGENTS_SDK_TOOL_INPUT_SCHEMA_NOT_WIRED: {
1521
+ message: "The declared tool input schema is not wired to the detected OpenAI Agents SDK function tool.",
1522
+ severity: "error"
1523
+ },
1524
+ OPENAI_AGENTS_SDK_TOOL_INPUT_SCHEMA_SYMBOL_NOT_FOUND: {
1525
+ message: "The declared tool input-schema symbol was not found.",
1526
+ severity: "error"
1527
+ },
1528
+ OPENAI_AGENTS_SDK_TOOL_NAME_MISMATCH: {
1529
+ message: "The declared tool name does not match the detected OpenAI Agents SDK function-tool name.",
1530
+ severity: "error"
1531
+ },
1532
+ OPENAI_AGENTS_SDK_TOOL_OUTPUT_SCHEMA_NOT_WIRED: {
1533
+ message: "The declared tool output schema is not wired to the detected OpenAI Agents SDK function tool.",
1534
+ severity: "error"
1535
+ },
1536
+ OPENAI_AGENTS_SDK_TOOL_OUTPUT_SCHEMA_SYMBOL_NOT_FOUND: {
1537
+ message: "The declared tool output-schema symbol was not found.",
1538
+ severity: "error"
1539
+ },
1540
+ OPENAI_AGENTS_SDK_TOOL_REGISTRATION_NOT_WIRED: {
1541
+ message: "The declared tool registration is not wired to the detected OpenAI Agents SDK agent.",
1542
+ severity: "error"
1543
+ },
1544
+ OPENAI_AGENTS_SDK_TOOL_REGISTRATION_SYMBOL_NOT_FOUND: {
1545
+ message: "The declared tool-registration symbol was not found.",
1546
+ severity: "error"
1547
+ },
1548
+ OPENAI_AGENTS_SDK_VERSION_UNSUPPORTED: {
1549
+ message: "The observed OpenAI Agents SDK dependency range is disjoint from the supported range.",
1550
+ severity: "error"
1551
+ },
1552
+ OPENAI_AGENTS_SDK_RUNTIME_RELATIONSHIP_UNVERIFIED: {
1553
+ message: "The declared runtime relationship could not be verified.",
1554
+ severity: "warning"
1555
+ }
1489
1556
  });
1490
1557
  /**
1491
1558
  * Creates one frozen, safely namespaced OpenAI Agents SDK adapter diagnostic.
1492
1559
  * @param input The complete code, location, entity, and safe scalar details.
1493
1560
  * @returns The immutable adapter diagnostic.
1494
1561
  */
1495
- var createOpenAiAgentsSdkDiagnostic = (input) => Object.freeze({
1496
- ...input,
1497
- details: Object.freeze({ ...input.details }),
1498
- entity: input.entity === null ? null : Object.freeze({ ...input.entity }),
1499
- message: OPENAI_AGENTS_SDK_ADAPTER_DIAGNOSTICS[input.code],
1500
- source: OPENAI_AGENTS_SDK_ADAPTER_ID
1501
- });
1562
+ var createOpenAiAgentsSdkDiagnostic = (input) => {
1563
+ if (input.code === "OPENAI_AGENTS_SDK_RUNTIME_RELATIONSHIP_UNVERIFIED") {
1564
+ const definition = OPENAI_AGENTS_SDK_ADAPTER_DIAGNOSTICS[input.code];
1565
+ const details = Object.freeze({ ...input.details });
1566
+ const entity = input.entity === null ? null : Object.freeze({ ...input.entity });
1567
+ return Object.freeze({
1568
+ ...input,
1569
+ details,
1570
+ entity,
1571
+ message: definition.message,
1572
+ severity: definition.severity,
1573
+ source: OPENAI_AGENTS_SDK_ADAPTER_ID
1574
+ });
1575
+ }
1576
+ const definition = OPENAI_AGENTS_SDK_ADAPTER_DIAGNOSTICS[input.code];
1577
+ const details = Object.freeze({ ...input.details });
1578
+ const entity = input.entity === null ? null : Object.freeze({ ...input.entity });
1579
+ return Object.freeze({
1580
+ ...input,
1581
+ details,
1582
+ entity,
1583
+ message: definition.message,
1584
+ severity: definition.severity,
1585
+ source: OPENAI_AGENTS_SDK_ADAPTER_ID
1586
+ });
1587
+ };
1502
1588
  //#endregion
1503
1589
  //#region src/inspection/common.ts
1504
1590
  var LINE_BREAK_CODE_POINTS = /* @__PURE__ */ new Set([
@@ -1554,6 +1640,20 @@ var addOpenAiAgentsSdkDiagnostic = (diagnostics, code, path, agentId, range = nu
1554
1640
  range
1555
1641
  }));
1556
1642
  };
1643
+ /** Reports one declared relationship obscured by a recognized source candidate. */
1644
+ var addOpenAiAgentsSdkUnverifiedRelationship = (diagnostics, relationship, path, range, agentId) => {
1645
+ diagnostics.push(createOpenAiAgentsSdkDiagnostic({
1646
+ code: "OPENAI_AGENTS_SDK_RUNTIME_RELATIONSHIP_UNVERIFIED",
1647
+ details: {
1648
+ reason: "dynamic-source-pattern",
1649
+ relationship
1650
+ },
1651
+ entity: createEntity(agentId),
1652
+ path,
1653
+ pointer: null,
1654
+ range
1655
+ }));
1656
+ };
1557
1657
  /** Returns the Core scalar range for one node in its analyzed source. */
1558
1658
  var locateOpenAiAgentsSdkNode = (analysis, node) => analysis.text.locator.locateRange(node.getStart(analysis.sourceFile), node.getEnd());
1559
1659
  /**
@@ -1666,7 +1766,10 @@ var inspectOpenAiAgentsSdkHandoffs = async (context, session, agent, analysis, d
1666
1766
  const runtimeName = await getRuntimeName(session, analysis, registration);
1667
1767
  let routingDescriptionSource = "unresolved";
1668
1768
  if (resolution.kind === "ambiguous") addOpenAiAgentsSdkDiagnostic(diagnostics, "OPENAI_AGENTS_SDK_HANDOFF_TARGET_AMBIGUOUS", analysis.path, agent.id, locateOpenAiAgentsSdkNode(analysis, registration.target), void 0, getAmbiguousTargetDetails(registration, target));
1669
- else if (mappedAgent !== void 0) routingDescriptionSource = await inspectRoutingDescription(session, agent, analysis, registration, target, mappedAgent, diagnostics);
1769
+ else if (mappedAgent !== void 0) {
1770
+ routingDescriptionSource = await inspectRoutingDescription(session, agent, analysis, registration, target, mappedAgent, diagnostics);
1771
+ if (routingDescriptionSource === "unresolved") addOpenAiAgentsSdkUnverifiedRelationship(diagnostics, "routing-description", analysis.path, locateOpenAiAgentsSdkNode(analysis, registration.target), mappedAgent.id);
1772
+ }
1670
1773
  evidence.push(createOpenAiAgentsSdkEvidence({
1671
1774
  agentId: agent.id,
1672
1775
  capabilityId: null,
@@ -1,5 +1,5 @@
1
1
  import type ts from 'typescript';
2
- import type { IRuntimeAdapterEvidence, ISourceRange } from '@moldea.ai/core';
2
+ import type { IRuntimeAdapterEvidence, ISourceRange, IUnverifiedRelationship } from '@moldea.ai/core';
3
3
  import type { IAdapterDiagnostic } from '@moldea.ai/core/adapter';
4
4
  import type { IRepositoryReference } from '@moldea.ai/core/format';
5
5
  import type { IRepositoryPath } from '@moldea.ai/repository';
@@ -20,7 +20,9 @@ export declare const createOpenAiAgentsSdkEvidence: (evidence: IRuntimeAdapterEv
20
20
  * @param capabilityId The optional owning tool capability.
21
21
  * @param details Safe scalar diagnostic details.
22
22
  */
23
- export declare const addOpenAiAgentsSdkDiagnostic: (diagnostics: IAdapterDiagnostic[], code: IOpenAiAgentsSdkAdapterDiagnosticCode, path: IRepositoryPath | null, agentId: string, range?: ISourceRange | null, capabilityId?: string, details?: IAdapterDiagnostic["details"]) => void;
23
+ export declare const addOpenAiAgentsSdkDiagnostic: (diagnostics: IAdapterDiagnostic[], code: Exclude<IOpenAiAgentsSdkAdapterDiagnosticCode, "OPENAI_AGENTS_SDK_RUNTIME_RELATIONSHIP_UNVERIFIED">, path: IRepositoryPath | null, agentId: string, range?: ISourceRange | null, capabilityId?: string, details?: IAdapterDiagnostic["details"]) => void;
24
+ /** Reports one declared relationship obscured by a recognized source candidate. */
25
+ export declare const addOpenAiAgentsSdkUnverifiedRelationship: (diagnostics: IAdapterDiagnostic[], relationship: IUnverifiedRelationship, path: IRepositoryPath, range: ISourceRange, agentId: string) => void;
24
26
  /** Returns the Core scalar range for one node in its analyzed source. */
25
27
  export declare const locateOpenAiAgentsSdkNode: (analysis: IOpenAiAgentsSdkSourceAnalysis, node: ts.Node) => ISourceRange;
26
28
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/inspection/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAGjC,OAAO,KAAK,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D,OAAO,KAAK,EACV,qCAAqC,EACrC,iCAAiC,EACjC,8BAA8B,EAC/B,MAAM,uBAAuB,CAAC;AAiB/B,gEAAgE;AAChE,eAAO,MAAM,6BAA6B,GAAI,MAAM,MAAM,EAAE,OAAO,MAAM,KAAG,MAClC,CAAC;AAE3C,2FAA2F;AAC3F,eAAO,MAAM,8BAA8B,GAAI,OAAO,MAAM,KAAG,OAW9D,CAAC;AAQF,sEAAsE;AACtE,eAAO,MAAM,6BAA6B,GACxC,UAAU,uBAAuB,KAChC,uBAKC,CAAC;AASL;;;;;;;;;GASG;AACH,eAAO,MAAM,4BAA4B,GACvC,aAAa,kBAAkB,EAAE,EACjC,MAAM,qCAAqC,EAC3C,MAAM,eAAe,GAAG,IAAI,EAC5B,SAAS,MAAM,EACf,QAAO,YAAY,GAAG,IAAW,EACjC,eAAe,MAAM,EACrB,UAAS,kBAAkB,CAAC,SAAS,CAAM,KAC1C,IAWF,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,yBAAyB,GACpC,UAAU,8BAA8B,EACxC,MAAM,EAAE,CAAC,IAAI,KACZ,YACmF,CAAC;AAEvF;;;;;;;;GAQG;AACH,eAAO,MAAM,oCAAoC,GAC/C,SAAS,iCAAiC,EAC1C,WAAW,oBAAoB,EAC/B,aAAa,kBAAkB,EAAE,EACjC,SAAS,MAAM,EACf,eAAe,MAAM,KACpB,OAAO,CAAC,8BAA8B,GAAG,IAAI,CAgC/C,CAAC"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/inspection/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAGjC,OAAO,KAAK,EACV,uBAAuB,EACvB,YAAY,EACZ,uBAAuB,EACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D,OAAO,KAAK,EACV,qCAAqC,EACrC,iCAAiC,EACjC,8BAA8B,EAC/B,MAAM,uBAAuB,CAAC;AAiB/B,gEAAgE;AAChE,eAAO,MAAM,6BAA6B,GAAI,MAAM,MAAM,EAAE,OAAO,MAAM,KAAG,MAClC,CAAC;AAE3C,2FAA2F;AAC3F,eAAO,MAAM,8BAA8B,GAAI,OAAO,MAAM,KAAG,OAW9D,CAAC;AAQF,sEAAsE;AACtE,eAAO,MAAM,6BAA6B,GACxC,UAAU,uBAAuB,KAChC,uBAKC,CAAC;AASL;;;;;;;;;GASG;AACH,eAAO,MAAM,4BAA4B,GACvC,aAAa,kBAAkB,EAAE,EACjC,MAAM,OAAO,CACX,qCAAqC,EACrC,mDAAmD,CACpD,EACD,MAAM,eAAe,GAAG,IAAI,EAC5B,SAAS,MAAM,EACf,QAAO,YAAY,GAAG,IAAW,EACjC,eAAe,MAAM,EACrB,UAAS,kBAAkB,CAAC,SAAS,CAAM,KAC1C,IAWF,CAAC;AAEF,mFAAmF;AACnF,eAAO,MAAM,wCAAwC,GACnD,aAAa,kBAAkB,EAAE,EACjC,cAAc,uBAAuB,EACrC,MAAM,eAAe,EACrB,OAAO,YAAY,EACnB,SAAS,MAAM,KACd,IAWF,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,yBAAyB,GACpC,UAAU,8BAA8B,EACxC,MAAM,EAAE,CAAC,IAAI,KACZ,YACmF,CAAC;AAEvF;;;;;;;;GAQG;AACH,eAAO,MAAM,oCAAoC,GAC/C,SAAS,iCAAiC,EAC1C,WAAW,oBAAoB,EAC/B,aAAa,kBAAkB,EAAE,EACjC,SAAS,MAAM,EACf,eAAe,MAAM,KACpB,OAAO,CAAC,8BAA8B,GAAG,IAAI,CAgC/C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"handoffs.d.ts","sourceRoot":"","sources":["../../src/inspection/handoffs.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACtF,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EAEvB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,KAAK,EACV,+BAA+B,EAE/B,iCAAiC,EAEjC,8BAA8B,EAC/B,MAAM,uBAAuB,CAAC;AAiP/B,oFAAoF;AACpF,eAAO,MAAM,8BAA8B,GACzC,SAAS,sBAAsB,EAC/B,SAAS,iCAAiC,EAC1C,OAAO,aAAa,EACpB,UAAU,8BAA8B,EACxC,YAAY,+BAA+B,EAC3C,UAAU,uBAAuB,EAAE,EACnC,aAAa,kBAAkB,EAAE,KAChC,OAAO,CAAC,IAAI,CAgFd,CAAC"}
1
+ {"version":3,"file":"handoffs.d.ts","sourceRoot":"","sources":["../../src/inspection/handoffs.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACtF,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EAEvB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,KAAK,EACV,+BAA+B,EAE/B,iCAAiC,EAEjC,8BAA8B,EAC/B,MAAM,uBAAuB,CAAC;AAkP/B,oFAAoF;AACpF,eAAO,MAAM,8BAA8B,GACzC,SAAS,sBAAsB,EAC/B,SAAS,iCAAiC,EAC1C,OAAO,aAAa,EACpB,UAAU,8BAA8B,EACxC,YAAY,+BAA+B,EAC3C,UAAU,uBAAuB,EAAE,EACnC,aAAa,kBAAkB,EAAE,KAChC,OAAO,CAAC,IAAI,CAyFd,CAAC"}
@@ -41,9 +41,12 @@ Evidence contains no repository content, instructions, descriptions, credentials
41
41
  | `OPENAI_AGENTS_SDK_HANDOFF_TARGET_AMBIGUOUS` | A target runtime binding maps to multiple registered agents. |
42
42
  | `OPENAI_AGENTS_SDK_HANDOFF_ROUTING_DESCRIPTION_MISSING` | A proved handoff registration has no effective canonical routing description. |
43
43
  | `OPENAI_AGENTS_SDK_HANDOFF_ROUTING_DESCRIPTION_NOT_WIRED` | A proved handoff uses routing text that differs from its target's effective description. |
44
+ | `OPENAI_AGENTS_SDK_RUNTIME_RELATIONSHIP_UNVERIFIED` | The declared runtime relationship could not be verified. |
44
45
 
45
46
  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
 
47
48
  ## Package detection
48
49
 
49
50
  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.
51
+
52
+ `OPENAI_AGENTS_SDK_RUNTIME_RELATIONSHIP_UNVERIFIED` has severity `warning` only when the adapter identifies a declared relationship affected by a recognized but unresolved source candidate. Its safe details identify the relationship and reason; known version-behavior boundaries additionally carry normalized dependency context. Missing local evidence or a newer eligible dependency version alone does not produce this warning. Confirmed diagnostic codes remain errors.
@@ -20,6 +20,8 @@ The current verified target does not claim support for:
20
20
 
21
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
22
 
23
+ A dynamic handoff routing description for a registered target produces a scoped warning. The registration remains observable, but the adapter does not claim that its routing description matches the canonical target description.
24
+
23
25
  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
26
 
25
27
  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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moldea.ai/adapter-openai-agents-sdk",
3
- "version": "3.0.2",
3
+ "version": "4.0.0",
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": {
@@ -34,7 +34,7 @@
34
34
  "node": ">=22.11.0"
35
35
  },
36
36
  "dependencies": {
37
- "@moldea.ai/core": "^4.0.0",
37
+ "@moldea.ai/core": "^5.0.0",
38
38
  "@moldea.ai/repository": "^2.0.0",
39
39
  "semver": "7.8.5",
40
40
  "typescript": "6.0.3"