@once-agent/sdk 0.1.10 → 0.1.12
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 +76 -1
- package/dist/cli.js +50 -1
- package/dist/cli.js.map +1 -1
- package/dist/connect/identity.d.ts +22 -0
- package/dist/connect/identity.d.ts.map +1 -0
- package/dist/connect/identity.js +159 -0
- package/dist/connect/identity.js.map +1 -0
- package/dist/connect/index.d.ts +17 -0
- package/dist/connect/index.d.ts.map +1 -0
- package/dist/connect/index.js +9 -0
- package/dist/connect/index.js.map +1 -0
- package/dist/connect/local-agent-tool.d.ts +62 -0
- package/dist/connect/local-agent-tool.d.ts.map +1 -0
- package/dist/connect/local-agent-tool.js +131 -0
- package/dist/connect/local-agent-tool.js.map +1 -0
- package/dist/connect/manifest.d.ts +55 -0
- package/dist/connect/manifest.d.ts.map +1 -0
- package/dist/connect/manifest.js +166 -0
- package/dist/connect/manifest.js.map +1 -0
- package/dist/connect/openai-function-tools.d.ts +66 -0
- package/dist/connect/openai-function-tools.d.ts.map +1 -0
- package/dist/connect/openai-function-tools.js +182 -0
- package/dist/connect/openai-function-tools.js.map +1 -0
- package/dist/connect/payload.d.ts +30 -0
- package/dist/connect/payload.d.ts.map +1 -0
- package/dist/connect/payload.js +122 -0
- package/dist/connect/payload.js.map +1 -0
- package/dist/connect/tool-classifier.d.ts +40 -0
- package/dist/connect/tool-classifier.d.ts.map +1 -0
- package/dist/connect/tool-classifier.js +271 -0
- package/dist/connect/tool-classifier.js.map +1 -0
- package/dist/connect/toolset.d.ts +42 -0
- package/dist/connect/toolset.d.ts.map +1 -0
- package/dist/connect/toolset.js +123 -0
- package/dist/connect/toolset.js.map +1 -0
- package/dist/discovery/index.d.ts +13 -0
- package/dist/discovery/index.d.ts.map +1 -0
- package/dist/discovery/index.js +8 -0
- package/dist/discovery/index.js.map +1 -0
- package/dist/execution-observation.d.ts +122 -0
- package/dist/execution-observation.d.ts.map +1 -0
- package/dist/execution-observation.js +324 -0
- package/dist/execution-observation.js.map +1 -0
- package/dist/gateway/index.d.ts +9 -0
- package/dist/gateway/index.d.ts.map +1 -0
- package/dist/gateway/index.js +5 -0
- package/dist/gateway/index.js.map +1 -0
- package/dist/gateway/local-toolset.d.ts +32 -0
- package/dist/gateway/local-toolset.d.ts.map +1 -0
- package/dist/gateway/local-toolset.js +79 -0
- package/dist/gateway/local-toolset.js.map +1 -0
- package/dist/gateway/openai-function-tools.d.ts +28 -0
- package/dist/gateway/openai-function-tools.d.ts.map +1 -0
- package/dist/gateway/openai-function-tools.js +117 -0
- package/dist/gateway/openai-function-tools.js.map +1 -0
- package/dist/gateway/planner.d.ts +53 -0
- package/dist/gateway/planner.d.ts.map +1 -0
- package/dist/gateway/planner.js +155 -0
- package/dist/gateway/planner.js.map +1 -0
- package/dist/gateway/tool-graph-binding.d.ts +51 -0
- package/dist/gateway/tool-graph-binding.d.ts.map +1 -0
- package/dist/gateway/tool-graph-binding.js +123 -0
- package/dist/gateway/tool-graph-binding.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/langchain-execution-observer.d.ts +22 -0
- package/dist/langchain-execution-observer.d.ts.map +1 -0
- package/dist/langchain-execution-observer.js +128 -0
- package/dist/langchain-execution-observer.js.map +1 -0
- package/dist/langchain-runtime-discovery.d.ts +33 -0
- package/dist/langchain-runtime-discovery.d.ts.map +1 -0
- package/dist/langchain-runtime-discovery.js +214 -0
- package/dist/langchain-runtime-discovery.js.map +1 -0
- package/dist/mcp-live-discovery.d.ts +71 -0
- package/dist/mcp-live-discovery.d.ts.map +1 -0
- package/dist/mcp-live-discovery.js +710 -0
- package/dist/mcp-live-discovery.js.map +1 -0
- package/dist/mcp-live-report.d.ts +3 -0
- package/dist/mcp-live-report.d.ts.map +1 -0
- package/dist/mcp-live-report.js +50 -0
- package/dist/mcp-live-report.js.map +1 -0
- package/dist/mcp-tool-refresh-report.d.ts +3 -0
- package/dist/mcp-tool-refresh-report.d.ts.map +1 -0
- package/dist/mcp-tool-refresh-report.js +44 -0
- package/dist/mcp-tool-refresh-report.js.map +1 -0
- package/dist/mcp-tool-refresh.d.ts +33 -0
- package/dist/mcp-tool-refresh.d.ts.map +1 -0
- package/dist/mcp-tool-refresh.js +489 -0
- package/dist/mcp-tool-refresh.js.map +1 -0
- package/dist/openai-agents-execution-observer.d.ts +24 -0
- package/dist/openai-agents-execution-observer.d.ts.map +1 -0
- package/dist/openai-agents-execution-observer.js +163 -0
- package/dist/openai-agents-execution-observer.js.map +1 -0
- package/dist/otel-execution-observer.d.ts +16 -0
- package/dist/otel-execution-observer.d.ts.map +1 -0
- package/dist/otel-execution-observer.js +129 -0
- package/dist/otel-execution-observer.js.map +1 -0
- package/dist/runtime-tool-discovery.d.ts +86 -0
- package/dist/runtime-tool-discovery.d.ts.map +1 -0
- package/dist/runtime-tool-discovery.js +429 -0
- package/dist/runtime-tool-discovery.js.map +1 -0
- package/dist/tool-discovery.d.ts +51 -0
- package/dist/tool-discovery.d.ts.map +1 -0
- package/dist/tool-discovery.js +487 -0
- package/dist/tool-discovery.js.map +1 -0
- package/dist/tool-importance.d.ts +34 -0
- package/dist/tool-importance.d.ts.map +1 -0
- package/dist/tool-importance.js +269 -0
- package/dist/tool-importance.js.map +1 -0
- package/dist/tool-report.d.ts +3 -0
- package/dist/tool-report.d.ts.map +1 -0
- package/dist/tool-report.js +75 -0
- package/dist/tool-report.js.map +1 -0
- package/dist/vercel-execution-observer.d.ts +12 -0
- package/dist/vercel-execution-observer.d.ts.map +1 -0
- package/dist/vercel-execution-observer.js +97 -0
- package/dist/vercel-execution-observer.js.map +1 -0
- package/dist-cjs/connect/identity.js +162 -0
- package/dist-cjs/connect/identity.js.map +1 -0
- package/dist-cjs/connect/index.js +26 -0
- package/dist-cjs/connect/index.js.map +1 -0
- package/dist-cjs/connect/local-agent-tool.js +137 -0
- package/dist-cjs/connect/local-agent-tool.js.map +1 -0
- package/dist-cjs/connect/manifest.js +171 -0
- package/dist-cjs/connect/manifest.js.map +1 -0
- package/dist-cjs/connect/openai-function-tools.js +187 -0
- package/dist-cjs/connect/openai-function-tools.js.map +1 -0
- package/dist-cjs/connect/payload.js +125 -0
- package/dist-cjs/connect/payload.js.map +1 -0
- package/dist-cjs/connect/tool-classifier.js +276 -0
- package/dist-cjs/connect/tool-classifier.js.map +1 -0
- package/dist-cjs/connect/toolset.js +126 -0
- package/dist-cjs/connect/toolset.js.map +1 -0
- package/dist-cjs/discovery/index.js +26 -0
- package/dist-cjs/discovery/index.js.map +1 -0
- package/dist-cjs/execution-observation.js +330 -0
- package/dist-cjs/execution-observation.js.map +1 -0
- package/dist-cjs/gateway/index.js +16 -0
- package/dist-cjs/gateway/index.js.map +1 -0
- package/dist-cjs/gateway/local-toolset.js +84 -0
- package/dist-cjs/gateway/local-toolset.js.map +1 -0
- package/dist-cjs/gateway/openai-function-tools.js +120 -0
- package/dist-cjs/gateway/openai-function-tools.js.map +1 -0
- package/dist-cjs/gateway/planner.js +160 -0
- package/dist-cjs/gateway/planner.js.map +1 -0
- package/dist-cjs/gateway/tool-graph-binding.js +126 -0
- package/dist-cjs/gateway/tool-graph-binding.js.map +1 -0
- package/dist-cjs/index.js +4 -1
- package/dist-cjs/index.js.map +1 -1
- package/dist-cjs/langchain-execution-observer.js +131 -0
- package/dist-cjs/langchain-execution-observer.js.map +1 -0
- package/dist-cjs/langchain-runtime-discovery.js +218 -0
- package/dist-cjs/langchain-runtime-discovery.js.map +1 -0
- package/dist-cjs/openai-agents-execution-observer.js +166 -0
- package/dist-cjs/openai-agents-execution-observer.js.map +1 -0
- package/dist-cjs/otel-execution-observer.js +132 -0
- package/dist-cjs/otel-execution-observer.js.map +1 -0
- package/dist-cjs/runtime-tool-discovery.js +436 -0
- package/dist-cjs/runtime-tool-discovery.js.map +1 -0
- package/dist-cjs/tool-importance.js +272 -0
- package/dist-cjs/tool-importance.js.map +1 -0
- package/dist-cjs/vercel-execution-observer.js +100 -0
- package/dist-cjs/vercel-execution-observer.js.map +1 -0
- package/package.json +25 -3
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { discoverOpenAIAgentRuntime, discoverOpenAIResponsesModelVisibleTools, discoverVercelAiSdkRegisteredTools, discoverVercelAiSdkModelVisibleTools, mergeRuntimeToolEvidence, } from "../runtime-tool-discovery.js";
|
|
2
|
+
export { discoverLangChainRegisteredTools, discoverLangChainModelVisibleTools, } from "../langchain-runtime-discovery.js";
|
|
3
|
+
export { observeToolExecution, aggregateToolExecutions, executionToolFingerprint, promoteToolExecution, } from "../execution-observation.js";
|
|
4
|
+
export { createOpenAIAgentsExecutionObserver, } from "../openai-agents-execution-observer.js";
|
|
5
|
+
export { observeVercelAiSdkStepExecutions, } from "../vercel-execution-observer.js";
|
|
6
|
+
export { createLangChainExecutionObserver, } from "../langchain-execution-observer.js";
|
|
7
|
+
export { observeOtelGenAiToolExecutions, } from "../otel-execution-observer.js";
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/discovery/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,wCAAwC,EACxC,kCAAkC,EAClC,oCAAoC,EACpC,wBAAwB,GACzB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,gCAAgC,EAChC,kCAAkC,GACnC,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,mCAAmC,GACpC,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EACL,gCAAgC,GACjC,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,gCAAgC,GACjC,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EACL,8BAA8B,GAC/B,MAAM,+BAA+B,CAAC"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { type ToolEvidenceLevel, type ToolImportanceAssessment } from "./tool-importance.js";
|
|
2
|
+
export type ToolExecutionStatus = "SUCCEEDED" | "FAILED" | "UNKNOWN";
|
|
3
|
+
export type ToolExecutionSource = "framework_callback" | "otel" | "adapter";
|
|
4
|
+
export type ToolExecutionObservationInput = {
|
|
5
|
+
eventId?: string;
|
|
6
|
+
toolId?: string;
|
|
7
|
+
namespacedName?: string;
|
|
8
|
+
descriptorFingerprint?: string;
|
|
9
|
+
canonicalName?: string;
|
|
10
|
+
framework?: string;
|
|
11
|
+
runtimeName?: string;
|
|
12
|
+
source: ToolExecutionSource;
|
|
13
|
+
status: ToolExecutionStatus;
|
|
14
|
+
observedAt?: string;
|
|
15
|
+
durationMs?: number;
|
|
16
|
+
};
|
|
17
|
+
export type ToolExecutionObservation = Readonly<{
|
|
18
|
+
eventId?: string;
|
|
19
|
+
toolId?: string;
|
|
20
|
+
namespacedName?: string;
|
|
21
|
+
descriptorFingerprint?: string;
|
|
22
|
+
canonicalName?: string;
|
|
23
|
+
framework?: string;
|
|
24
|
+
runtimeName?: string;
|
|
25
|
+
source: ToolExecutionSource;
|
|
26
|
+
status: ToolExecutionStatus;
|
|
27
|
+
observedAt: string;
|
|
28
|
+
durationMs?: number;
|
|
29
|
+
}>;
|
|
30
|
+
export type ToolExecutionObservationRejection = Readonly<{
|
|
31
|
+
accepted: false;
|
|
32
|
+
reason: "INVALID_EVENT" | "IDENTITY_REQUIRED" | "INVALID_STATUS" | "INVALID_SOURCE" | "INVALID_TIMESTAMP" | "INVALID_DURATION";
|
|
33
|
+
}>;
|
|
34
|
+
export type ToolExecutionObservationAcceptance = Readonly<{
|
|
35
|
+
accepted: true;
|
|
36
|
+
event: ToolExecutionObservation;
|
|
37
|
+
}>;
|
|
38
|
+
export type ToolExecutionObservationResult = ToolExecutionObservationAcceptance | ToolExecutionObservationRejection;
|
|
39
|
+
export type ToolExecutionSummary = Readonly<{
|
|
40
|
+
identityKey: string;
|
|
41
|
+
toolId?: string;
|
|
42
|
+
namespacedName?: string;
|
|
43
|
+
descriptorFingerprint?: string;
|
|
44
|
+
canonicalName?: string;
|
|
45
|
+
framework?: string;
|
|
46
|
+
runtimeName?: string;
|
|
47
|
+
callCount: number;
|
|
48
|
+
succeededCount: number;
|
|
49
|
+
failedCount: number;
|
|
50
|
+
unknownCount: number;
|
|
51
|
+
firstObservedAt: string;
|
|
52
|
+
lastObservedAt: string;
|
|
53
|
+
latestStatus: ToolExecutionStatus;
|
|
54
|
+
totalDurationMs?: number;
|
|
55
|
+
averageDurationMs?: number;
|
|
56
|
+
sources: readonly ToolExecutionSource[];
|
|
57
|
+
}>;
|
|
58
|
+
export type ToolExecutionAggregate = Readonly<{
|
|
59
|
+
summaries: readonly ToolExecutionSummary[];
|
|
60
|
+
acceptedEventCount: number;
|
|
61
|
+
rejectedEventCount: number;
|
|
62
|
+
duplicateEventCount: number;
|
|
63
|
+
}>;
|
|
64
|
+
export type ExecutionPromotableTool = {
|
|
65
|
+
toolId: string;
|
|
66
|
+
namespacedName: string;
|
|
67
|
+
canonicalName: string;
|
|
68
|
+
description?: string;
|
|
69
|
+
toolType?: string;
|
|
70
|
+
inputSchema?: unknown;
|
|
71
|
+
safeMetadata?: unknown;
|
|
72
|
+
evidence: {
|
|
73
|
+
level: ToolEvidenceLevel;
|
|
74
|
+
source: string;
|
|
75
|
+
};
|
|
76
|
+
visibility: {
|
|
77
|
+
configured: boolean;
|
|
78
|
+
runtimeRegistered: boolean;
|
|
79
|
+
modelVisible: boolean;
|
|
80
|
+
executed: boolean;
|
|
81
|
+
};
|
|
82
|
+
once: ToolImportanceAssessment;
|
|
83
|
+
};
|
|
84
|
+
export type ExecutedToolObservation<T extends ExecutionPromotableTool> = Omit<T, "evidence" | "visibility" | "once"> & {
|
|
85
|
+
evidence: {
|
|
86
|
+
level: "EXECUTED";
|
|
87
|
+
source: string;
|
|
88
|
+
};
|
|
89
|
+
visibility: T["visibility"] & {
|
|
90
|
+
executed: true;
|
|
91
|
+
};
|
|
92
|
+
execution: ToolExecutionSummary;
|
|
93
|
+
once: ToolImportanceAssessment;
|
|
94
|
+
};
|
|
95
|
+
/**
|
|
96
|
+
* Stable fingerprint of the safe descriptor already retained by discovery.
|
|
97
|
+
* This closes same-name/toolId collision risk without reading executable or
|
|
98
|
+
* getter-backed runtime state.
|
|
99
|
+
*/
|
|
100
|
+
export declare function executionToolFingerprint(tool: ExecutionPromotableTool): string;
|
|
101
|
+
/**
|
|
102
|
+
* Convert callback/telemetry metadata into a secret-minimal execution event.
|
|
103
|
+
*
|
|
104
|
+
* This function intentionally whitelists fields. Tool arguments, prompts,
|
|
105
|
+
* results, error messages, auth data, callbacks and runtime objects are never
|
|
106
|
+
* copied into the observation, even when present on the input object.
|
|
107
|
+
*/
|
|
108
|
+
export declare function observeToolExecution(input: unknown): ToolExecutionObservationResult;
|
|
109
|
+
/**
|
|
110
|
+
* Aggregate already-observed execution metadata without retaining raw call data.
|
|
111
|
+
* Duplicate event IDs are ignored so replayed telemetry batches do not inflate
|
|
112
|
+
* observed execution counts.
|
|
113
|
+
*/
|
|
114
|
+
export declare function aggregateToolExecutions(inputs: readonly unknown[]): ToolExecutionAggregate;
|
|
115
|
+
/**
|
|
116
|
+
* Promote a discovered tool to EXECUTED evidence only after exact identity
|
|
117
|
+
* correlation plus a safe-descriptor fingerprint match. Canonical/display
|
|
118
|
+
* names alone are never sufficient because same-named tools may exist in
|
|
119
|
+
* different agents, runtimes or servers and older discovery IDs may collide.
|
|
120
|
+
*/
|
|
121
|
+
export declare function promoteToolExecution<T extends ExecutionPromotableTool>(tool: T, summary: ToolExecutionSummary): ExecutedToolObservation<T> | undefined;
|
|
122
|
+
//# sourceMappingURL=execution-observation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution-observation.d.ts","sourceRoot":"","sources":["../src/execution-observation.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC9B,MAAM,sBAAsB,CAAC;AAE9B,MAAM,MAAM,mBAAmB,GAC3B,WAAW,GACX,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,MAAM,mBAAmB,GAC3B,oBAAoB,GACpB,MAAM,GACN,SAAS,CAAC;AAEd,MAAM,MAAM,6BAA6B,GAAG;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,QAAQ,CAAC;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC,CAAC;AAEH,MAAM,MAAM,iCAAiC,GAAG,QAAQ,CAAC;IACvD,QAAQ,EAAE,KAAK,CAAC;IAChB,MAAM,EACF,eAAe,GACf,mBAAmB,GACnB,gBAAgB,GAChB,gBAAgB,GAChB,mBAAmB,GACnB,kBAAkB,CAAC;CACxB,CAAC,CAAC;AAEH,MAAM,MAAM,kCAAkC,GAAG,QAAQ,CAAC;IACxD,QAAQ,EAAE,IAAI,CAAC;IACf,KAAK,EAAE,wBAAwB,CAAC;CACjC,CAAC,CAAC;AAEH,MAAM,MAAM,8BAA8B,GACtC,kCAAkC,GAClC,iCAAiC,CAAC;AAEtC,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,mBAAmB,CAAC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,SAAS,mBAAmB,EAAE,CAAC;CACzC,CAAC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC;IAC5C,SAAS,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC3C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAAC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE;QACR,KAAK,EAAE,iBAAiB,CAAC;QACzB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,UAAU,EAAE;QACV,UAAU,EAAE,OAAO,CAAC;QACpB,iBAAiB,EAAE,OAAO,CAAC;QAC3B,YAAY,EAAE,OAAO,CAAC;QACtB,QAAQ,EAAE,OAAO,CAAC;KACnB,CAAC;IACF,IAAI,EAAE,wBAAwB,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,uBAAuB,CAAC,CAAC,SAAS,uBAAuB,IACnE,IAAI,CAAC,CAAC,EAAE,UAAU,GAAG,YAAY,GAAG,MAAM,CAAC,GAAG;IAC5C,QAAQ,EAAE;QACR,KAAK,EAAE,UAAU,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,UAAU,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG;QAC5B,QAAQ,EAAE,IAAI,CAAC;KAChB,CAAC;IACF,SAAS,EAAE,oBAAoB,CAAC;IAChC,IAAI,EAAE,wBAAwB,CAAC;CAChC,CAAC;AAyGJ;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,uBAAuB,GAC5B,MAAM,CAaR;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,GACb,8BAA8B,CAyFhC;AAeD;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,OAAO,EAAE,GACzB,sBAAsB,CAwFxB;AAyBD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,CAAC,SAAS,uBAAuB,EAEjC,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,oBAAoB,GAC5B,uBAAuB,CAAC,CAAC,CAAC,GAAG,SAAS,CAiCxC"}
|
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { assessToolImportance, } from "./tool-importance.js";
|
|
3
|
+
const VALID_STATUS = new Set([
|
|
4
|
+
"SUCCEEDED",
|
|
5
|
+
"FAILED",
|
|
6
|
+
"UNKNOWN",
|
|
7
|
+
]);
|
|
8
|
+
const VALID_SOURCE = new Set([
|
|
9
|
+
"framework_callback",
|
|
10
|
+
"otel",
|
|
11
|
+
"adapter",
|
|
12
|
+
]);
|
|
13
|
+
function ownDataValue(value, key) {
|
|
14
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
const descriptor = Object.getOwnPropertyDescriptor(value, key);
|
|
18
|
+
return descriptor && "value" in descriptor
|
|
19
|
+
? descriptor.value
|
|
20
|
+
: undefined;
|
|
21
|
+
}
|
|
22
|
+
function optionalString(value) {
|
|
23
|
+
return typeof value === "string" && value.trim() !== ""
|
|
24
|
+
? value
|
|
25
|
+
: undefined;
|
|
26
|
+
}
|
|
27
|
+
function validTimestamp(value) {
|
|
28
|
+
if (value === undefined) {
|
|
29
|
+
return new Date().toISOString();
|
|
30
|
+
}
|
|
31
|
+
if (typeof value !== "string" || value.trim() === "") {
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
const time = Date.parse(value);
|
|
35
|
+
if (!Number.isFinite(time))
|
|
36
|
+
return undefined;
|
|
37
|
+
return new Date(time).toISOString();
|
|
38
|
+
}
|
|
39
|
+
function canonicalFingerprintValue(value, depth = 0, seen = new Set()) {
|
|
40
|
+
if (value === null || typeof value === "string" || typeof value === "boolean") {
|
|
41
|
+
return value;
|
|
42
|
+
}
|
|
43
|
+
if (typeof value === "number") {
|
|
44
|
+
return Number.isFinite(value) ? value : null;
|
|
45
|
+
}
|
|
46
|
+
if (typeof value !== "object" || depth > 12) {
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
const objectValue = value;
|
|
50
|
+
if (seen.has(objectValue))
|
|
51
|
+
return "<cycle>";
|
|
52
|
+
seen.add(objectValue);
|
|
53
|
+
try {
|
|
54
|
+
if (Array.isArray(value)) {
|
|
55
|
+
const output = [];
|
|
56
|
+
for (let index = 0; index < value.length; index++) {
|
|
57
|
+
const descriptor = Object.getOwnPropertyDescriptor(value, String(index));
|
|
58
|
+
output.push(descriptor && "value" in descriptor
|
|
59
|
+
? canonicalFingerprintValue(descriptor.value, depth + 1, seen)
|
|
60
|
+
: "<opaque>");
|
|
61
|
+
}
|
|
62
|
+
return output;
|
|
63
|
+
}
|
|
64
|
+
const prototype = Object.getPrototypeOf(value);
|
|
65
|
+
if (prototype !== Object.prototype && prototype !== null) {
|
|
66
|
+
return "<opaque>";
|
|
67
|
+
}
|
|
68
|
+
const output = {};
|
|
69
|
+
const descriptors = Object.getOwnPropertyDescriptors(value);
|
|
70
|
+
for (const key of Object.keys(descriptors).sort()) {
|
|
71
|
+
const descriptor = descriptors[key];
|
|
72
|
+
if (!("value" in descriptor))
|
|
73
|
+
continue;
|
|
74
|
+
const child = canonicalFingerprintValue(descriptor.value, depth + 1, seen);
|
|
75
|
+
if (child !== undefined)
|
|
76
|
+
output[key] = child;
|
|
77
|
+
}
|
|
78
|
+
return output;
|
|
79
|
+
}
|
|
80
|
+
finally {
|
|
81
|
+
seen.delete(objectValue);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Stable fingerprint of the safe descriptor already retained by discovery.
|
|
86
|
+
* This closes same-name/toolId collision risk without reading executable or
|
|
87
|
+
* getter-backed runtime state.
|
|
88
|
+
*/
|
|
89
|
+
export function executionToolFingerprint(tool) {
|
|
90
|
+
const canonical = canonicalFingerprintValue({
|
|
91
|
+
namespacedName: tool.namespacedName,
|
|
92
|
+
canonicalName: tool.canonicalName,
|
|
93
|
+
description: tool.description ?? "",
|
|
94
|
+
toolType: tool.toolType ?? "",
|
|
95
|
+
inputSchema: tool.inputSchema,
|
|
96
|
+
safeMetadata: tool.safeMetadata,
|
|
97
|
+
});
|
|
98
|
+
return createHash("sha256")
|
|
99
|
+
.update(JSON.stringify(canonical))
|
|
100
|
+
.digest("hex");
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Convert callback/telemetry metadata into a secret-minimal execution event.
|
|
104
|
+
*
|
|
105
|
+
* This function intentionally whitelists fields. Tool arguments, prompts,
|
|
106
|
+
* results, error messages, auth data, callbacks and runtime objects are never
|
|
107
|
+
* copied into the observation, even when present on the input object.
|
|
108
|
+
*/
|
|
109
|
+
export function observeToolExecution(input) {
|
|
110
|
+
if (!input || typeof input !== "object" || Array.isArray(input)) {
|
|
111
|
+
return Object.freeze({
|
|
112
|
+
accepted: false,
|
|
113
|
+
reason: "INVALID_EVENT",
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
const toolId = optionalString(ownDataValue(input, "toolId"));
|
|
117
|
+
const namespacedName = optionalString(ownDataValue(input, "namespacedName"));
|
|
118
|
+
if (!toolId && !namespacedName) {
|
|
119
|
+
return Object.freeze({
|
|
120
|
+
accepted: false,
|
|
121
|
+
reason: "IDENTITY_REQUIRED",
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
const status = ownDataValue(input, "status");
|
|
125
|
+
if (typeof status !== "string" || !VALID_STATUS.has(status)) {
|
|
126
|
+
return Object.freeze({
|
|
127
|
+
accepted: false,
|
|
128
|
+
reason: "INVALID_STATUS",
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
const source = ownDataValue(input, "source");
|
|
132
|
+
if (typeof source !== "string" || !VALID_SOURCE.has(source)) {
|
|
133
|
+
return Object.freeze({
|
|
134
|
+
accepted: false,
|
|
135
|
+
reason: "INVALID_SOURCE",
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
const observedAt = validTimestamp(ownDataValue(input, "observedAt"));
|
|
139
|
+
if (!observedAt) {
|
|
140
|
+
return Object.freeze({
|
|
141
|
+
accepted: false,
|
|
142
|
+
reason: "INVALID_TIMESTAMP",
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
const rawDuration = ownDataValue(input, "durationMs");
|
|
146
|
+
if (rawDuration !== undefined &&
|
|
147
|
+
(typeof rawDuration !== "number" ||
|
|
148
|
+
!Number.isFinite(rawDuration) ||
|
|
149
|
+
rawDuration < 0)) {
|
|
150
|
+
return Object.freeze({
|
|
151
|
+
accepted: false,
|
|
152
|
+
reason: "INVALID_DURATION",
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
const eventId = optionalString(ownDataValue(input, "eventId"));
|
|
156
|
+
const descriptorFingerprint = optionalString(ownDataValue(input, "descriptorFingerprint"));
|
|
157
|
+
const canonicalName = optionalString(ownDataValue(input, "canonicalName"));
|
|
158
|
+
const framework = optionalString(ownDataValue(input, "framework"));
|
|
159
|
+
const runtimeName = optionalString(ownDataValue(input, "runtimeName"));
|
|
160
|
+
const event = Object.freeze({
|
|
161
|
+
...(eventId ? { eventId } : {}),
|
|
162
|
+
...(toolId ? { toolId } : {}),
|
|
163
|
+
...(namespacedName ? { namespacedName } : {}),
|
|
164
|
+
...(descriptorFingerprint ? { descriptorFingerprint } : {}),
|
|
165
|
+
...(canonicalName ? { canonicalName } : {}),
|
|
166
|
+
...(framework ? { framework } : {}),
|
|
167
|
+
...(runtimeName ? { runtimeName } : {}),
|
|
168
|
+
source: source,
|
|
169
|
+
status: status,
|
|
170
|
+
observedAt,
|
|
171
|
+
...(typeof rawDuration === "number"
|
|
172
|
+
? { durationMs: rawDuration }
|
|
173
|
+
: {}),
|
|
174
|
+
});
|
|
175
|
+
return Object.freeze({
|
|
176
|
+
accepted: true,
|
|
177
|
+
event,
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
function identityKey(event) {
|
|
181
|
+
const identity = event.toolId
|
|
182
|
+
? `tool:${event.toolId}`
|
|
183
|
+
: `name:${event.namespacedName}`;
|
|
184
|
+
return event.descriptorFingerprint
|
|
185
|
+
? `${identity}:descriptor:${event.descriptorFingerprint}`
|
|
186
|
+
: identity;
|
|
187
|
+
}
|
|
188
|
+
function compareTimestamp(left, right) {
|
|
189
|
+
return Date.parse(left) - Date.parse(right);
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Aggregate already-observed execution metadata without retaining raw call data.
|
|
193
|
+
* Duplicate event IDs are ignored so replayed telemetry batches do not inflate
|
|
194
|
+
* observed execution counts.
|
|
195
|
+
*/
|
|
196
|
+
export function aggregateToolExecutions(inputs) {
|
|
197
|
+
const accepted = [];
|
|
198
|
+
let rejectedEventCount = 0;
|
|
199
|
+
let duplicateEventCount = 0;
|
|
200
|
+
const seenEventIds = new Set();
|
|
201
|
+
for (const input of inputs) {
|
|
202
|
+
const result = observeToolExecution(input);
|
|
203
|
+
if (!result.accepted) {
|
|
204
|
+
rejectedEventCount += 1;
|
|
205
|
+
continue;
|
|
206
|
+
}
|
|
207
|
+
if (result.event.eventId) {
|
|
208
|
+
if (seenEventIds.has(result.event.eventId)) {
|
|
209
|
+
duplicateEventCount += 1;
|
|
210
|
+
continue;
|
|
211
|
+
}
|
|
212
|
+
seenEventIds.add(result.event.eventId);
|
|
213
|
+
}
|
|
214
|
+
accepted.push(result.event);
|
|
215
|
+
}
|
|
216
|
+
const groups = new Map();
|
|
217
|
+
for (const event of accepted) {
|
|
218
|
+
const key = identityKey(event);
|
|
219
|
+
const existing = groups.get(key);
|
|
220
|
+
if (existing) {
|
|
221
|
+
existing.push(event);
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
groups.set(key, [event]);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
const summaries = [];
|
|
228
|
+
for (const [key, events] of groups.entries()) {
|
|
229
|
+
const ordered = [...events].sort((left, right) => compareTimestamp(left.observedAt, right.observedAt));
|
|
230
|
+
const first = ordered[0];
|
|
231
|
+
const last = ordered[ordered.length - 1];
|
|
232
|
+
const durations = ordered
|
|
233
|
+
.map(event => event.durationMs)
|
|
234
|
+
.filter((value) => typeof value === "number");
|
|
235
|
+
const totalDurationMs = durations.reduce((sum, value) => sum + value, 0);
|
|
236
|
+
const sources = Object.freeze([
|
|
237
|
+
...new Set(ordered.map(event => event.source)),
|
|
238
|
+
]);
|
|
239
|
+
summaries.push(Object.freeze({
|
|
240
|
+
identityKey: key,
|
|
241
|
+
...(last.toolId ? { toolId: last.toolId } : {}),
|
|
242
|
+
...(last.namespacedName ? { namespacedName: last.namespacedName } : {}),
|
|
243
|
+
...(last.descriptorFingerprint
|
|
244
|
+
? { descriptorFingerprint: last.descriptorFingerprint }
|
|
245
|
+
: {}),
|
|
246
|
+
...(last.canonicalName ? { canonicalName: last.canonicalName } : {}),
|
|
247
|
+
...(last.framework ? { framework: last.framework } : {}),
|
|
248
|
+
...(last.runtimeName ? { runtimeName: last.runtimeName } : {}),
|
|
249
|
+
callCount: ordered.length,
|
|
250
|
+
succeededCount: ordered.filter(event => event.status === "SUCCEEDED").length,
|
|
251
|
+
failedCount: ordered.filter(event => event.status === "FAILED").length,
|
|
252
|
+
unknownCount: ordered.filter(event => event.status === "UNKNOWN").length,
|
|
253
|
+
firstObservedAt: first.observedAt,
|
|
254
|
+
lastObservedAt: last.observedAt,
|
|
255
|
+
latestStatus: last.status,
|
|
256
|
+
...(durations.length > 0
|
|
257
|
+
? {
|
|
258
|
+
totalDurationMs,
|
|
259
|
+
averageDurationMs: totalDurationMs / durations.length,
|
|
260
|
+
}
|
|
261
|
+
: {}),
|
|
262
|
+
sources,
|
|
263
|
+
}));
|
|
264
|
+
}
|
|
265
|
+
summaries.sort((left, right) => left.identityKey.localeCompare(right.identityKey));
|
|
266
|
+
return Object.freeze({
|
|
267
|
+
summaries: Object.freeze(summaries),
|
|
268
|
+
acceptedEventCount: accepted.length,
|
|
269
|
+
rejectedEventCount,
|
|
270
|
+
duplicateEventCount,
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
function summaryMatchesTool(tool, summary) {
|
|
274
|
+
if (!summary.descriptorFingerprint)
|
|
275
|
+
return false;
|
|
276
|
+
if (summary.descriptorFingerprint !== executionToolFingerprint(tool)) {
|
|
277
|
+
return false;
|
|
278
|
+
}
|
|
279
|
+
if (summary.toolId && summary.toolId !== tool.toolId) {
|
|
280
|
+
return false;
|
|
281
|
+
}
|
|
282
|
+
if (summary.namespacedName &&
|
|
283
|
+
summary.namespacedName !== tool.namespacedName) {
|
|
284
|
+
return false;
|
|
285
|
+
}
|
|
286
|
+
return Boolean(summary.toolId || summary.namespacedName);
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Promote a discovered tool to EXECUTED evidence only after exact identity
|
|
290
|
+
* correlation plus a safe-descriptor fingerprint match. Canonical/display
|
|
291
|
+
* names alone are never sufficient because same-named tools may exist in
|
|
292
|
+
* different agents, runtimes or servers and older discovery IDs may collide.
|
|
293
|
+
*/
|
|
294
|
+
export function promoteToolExecution(tool, summary) {
|
|
295
|
+
if (!summaryMatchesTool(tool, summary)) {
|
|
296
|
+
return undefined;
|
|
297
|
+
}
|
|
298
|
+
const visibility = Object.freeze({
|
|
299
|
+
...tool.visibility,
|
|
300
|
+
executed: true,
|
|
301
|
+
});
|
|
302
|
+
const once = assessToolImportance({
|
|
303
|
+
name: tool.canonicalName,
|
|
304
|
+
description: tool.description,
|
|
305
|
+
sourceCategory: tool.toolType,
|
|
306
|
+
evidence: "EXECUTED",
|
|
307
|
+
qualification: tool.once.qualification,
|
|
308
|
+
protection: tool.once.protection,
|
|
309
|
+
readOnlyHint: tool.once.effectClass === "READ_ONLY"
|
|
310
|
+
? true
|
|
311
|
+
: undefined,
|
|
312
|
+
});
|
|
313
|
+
return Object.freeze({
|
|
314
|
+
...tool,
|
|
315
|
+
evidence: Object.freeze({
|
|
316
|
+
level: "EXECUTED",
|
|
317
|
+
source: `execution:${summary.sources.join(",")}`,
|
|
318
|
+
}),
|
|
319
|
+
visibility,
|
|
320
|
+
execution: summary,
|
|
321
|
+
once,
|
|
322
|
+
});
|
|
323
|
+
}
|
|
324
|
+
//# sourceMappingURL=execution-observation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution-observation.js","sourceRoot":"","sources":["../src/execution-observation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { GATEWAY_ROUTE, GATEWAY_PLAN_VERSION, gatewayDescriptorFingerprint, planGatewayToolset, } from "./planner.js";
|
|
2
|
+
export { GatewayConnectionError, connectLocalGatewayToolsetAuto, } from "./local-toolset.js";
|
|
3
|
+
export { bindGatewayPlanToToolGraph, } from "./tool-graph-binding.js";
|
|
4
|
+
export { connectOpenAIAgentsFunctionToolsGatewayAuto, } from "./openai-function-tools.js";
|
|
5
|
+
export type { GatewayRoute, GatewayPlanEntry, GatewayPlanSummary, GatewayPlan, } from "./planner.js";
|
|
6
|
+
export type { LocalGatewayToolsetOptions, ConnectedLocalGatewayToolset, } from "./local-toolset.js";
|
|
7
|
+
export type { GatewayToolGraphBinding, GatewayToolGraphBindingStatus, BoundGatewayPlanEntry, BoundGatewayPlanSummary, BoundGatewayPlan, } from "./tool-graph-binding.js";
|
|
8
|
+
export type { GatewayOpenAIAgentsFunctionToolsOptions, GatewayOpenAIAgentsFunctionTools, } from "./openai-function-tools.js";
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/gateway/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,4BAA4B,EAC5B,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,sBAAsB,EACtB,8BAA8B,GAC/B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,0BAA0B,GAC3B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,2CAA2C,GAC5C,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,WAAW,GACZ,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,uBAAuB,EACvB,6BAA6B,EAC7B,qBAAqB,EACrB,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AAEjC,YAAY,EACV,uCAAuC,EACvC,gCAAgC,GACjC,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { GATEWAY_ROUTE, GATEWAY_PLAN_VERSION, gatewayDescriptorFingerprint, planGatewayToolset, } from "./planner.js";
|
|
2
|
+
export { GatewayConnectionError, connectLocalGatewayToolsetAuto, } from "./local-toolset.js";
|
|
3
|
+
export { bindGatewayPlanToToolGraph, } from "./tool-graph-binding.js";
|
|
4
|
+
export { connectOpenAIAgentsFunctionToolsGatewayAuto, } from "./openai-function-tools.js";
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/gateway/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,4BAA4B,EAC5B,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,sBAAsB,EACtB,8BAA8B,GAC/B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,0BAA0B,GAC3B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,2CAA2C,GAC5C,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { type AutoLocalAgentToolsetOptions, type ConnectedLocalAgentToolRegistry, type LocalAgentToolRegistry } from "../connect/toolset.js";
|
|
2
|
+
import { type GatewayPlan } from "./planner.js";
|
|
3
|
+
import { type BoundGatewayPlan, type GatewayToolGraphBinding } from "./tool-graph-binding.js";
|
|
4
|
+
export interface LocalGatewayToolsetOptions extends AutoLocalAgentToolsetOptions {
|
|
5
|
+
/** Optional exact Tool Graph identities for the selected runtime subset. */
|
|
6
|
+
toolGraphBindings?: readonly GatewayToolGraphBinding[];
|
|
7
|
+
}
|
|
8
|
+
export interface ConnectedLocalGatewayToolset<T extends LocalAgentToolRegistry> {
|
|
9
|
+
/** Frozen gateway route plan for exactly the supplied runtime-selected subset. */
|
|
10
|
+
plan: Readonly<GatewayPlan>;
|
|
11
|
+
/** Exact Tool Graph binding result when bindings were supplied. */
|
|
12
|
+
binding?: BoundGatewayPlan;
|
|
13
|
+
/** Frozen registry. Expose this registry to the runtime instead of the originals. */
|
|
14
|
+
tools: Readonly<ConnectedLocalAgentToolRegistry<T>>;
|
|
15
|
+
}
|
|
16
|
+
export declare class GatewayConnectionError extends Error {
|
|
17
|
+
readonly code: string;
|
|
18
|
+
constructor(code: string, message: string);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Wire a complete runtime-selected local tool subset through the Once Gateway.
|
|
22
|
+
*
|
|
23
|
+
* This function intentionally contains no execution engine. It performs a
|
|
24
|
+
* gateway preflight, optionally binds exact Tool Graph identity, then delegates
|
|
25
|
+
* registry validation and wrapper creation to the existing Connect toolset.
|
|
26
|
+
*
|
|
27
|
+
* A selected subset containing BLOCK cannot be partially wired. Returning a
|
|
28
|
+
* mixed registry would leave an unprotected bypass surface for unresolved
|
|
29
|
+
* tools, so v1 fails the whole selected subset closed.
|
|
30
|
+
*/
|
|
31
|
+
export declare function connectLocalGatewayToolsetAuto<T extends LocalAgentToolRegistry>(tools: T, options: LocalGatewayToolsetOptions): Readonly<ConnectedLocalGatewayToolset<T>>;
|
|
32
|
+
//# sourceMappingURL=local-toolset.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-toolset.d.ts","sourceRoot":"","sources":["../../src/gateway/local-toolset.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,4BAA4B,EACjC,KAAK,+BAA+B,EACpC,KAAK,sBAAsB,EAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC7B,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,0BACf,SAAQ,4BAA4B;IACpC,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,SAAS,uBAAuB,EAAE,CAAC;CACxD;AAED,MAAM,WAAW,4BAA4B,CAC3C,CAAC,SAAS,sBAAsB;IAEhC,kFAAkF;IAClF,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC5B,mEAAmE;IACnE,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,qFAAqF;IACrF,KAAK,EAAE,QAAQ,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC,CAAC;CACrD;AAED,qBAAa,sBAAuB,SAAQ,KAAK;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAInD;AA+CD;;;;;;;;;;GAUG;AACH,wBAAgB,8BAA8B,CAC5C,CAAC,SAAS,sBAAsB,EAEhC,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,0BAA0B,GAClC,QAAQ,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAkD3C"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { connectLocalAgentToolsetAuto, } from "../connect/toolset.js";
|
|
2
|
+
import { GATEWAY_ROUTE, planGatewayToolset, } from "./planner.js";
|
|
3
|
+
import { bindGatewayPlanToToolGraph, } from "./tool-graph-binding.js";
|
|
4
|
+
export class GatewayConnectionError extends Error {
|
|
5
|
+
code;
|
|
6
|
+
constructor(code, message) {
|
|
7
|
+
super(message);
|
|
8
|
+
this.code = code;
|
|
9
|
+
this.name = "GatewayConnectionError";
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
function blockedSummary(plan) {
|
|
13
|
+
return plan.blocked
|
|
14
|
+
.map(entry => `${entry.name ?? `#${entry.index}`}:${entry.connectReason}`)
|
|
15
|
+
.join(", ");
|
|
16
|
+
}
|
|
17
|
+
function bindingBlockedSummary(plan) {
|
|
18
|
+
return plan.blocked
|
|
19
|
+
.map(entry => `${entry.name ?? `#${entry.index}`}:${entry.bindingStatus}`)
|
|
20
|
+
.join(", ");
|
|
21
|
+
}
|
|
22
|
+
function verifyConnectAgreement(gatewayPlan, connectPlan) {
|
|
23
|
+
if (gatewayPlan.entries.length !== connectPlan.entries.length) {
|
|
24
|
+
throw new GatewayConnectionError("GATEWAY_PLAN_MISMATCH", "Gateway and Connect disagree about the selected toolset length.");
|
|
25
|
+
}
|
|
26
|
+
for (let index = 0; index < gatewayPlan.entries.length; index += 1) {
|
|
27
|
+
const gateway = gatewayPlan.entries[index];
|
|
28
|
+
const connect = connectPlan.entries[index];
|
|
29
|
+
const expected = gateway.route === GATEWAY_ROUTE.DIRECT
|
|
30
|
+
? "BYPASS"
|
|
31
|
+
: gateway.route === GATEWAY_ROUTE.PROTECT
|
|
32
|
+
? "PROTECT"
|
|
33
|
+
: "UNKNOWN";
|
|
34
|
+
if (connect.decision !== expected) {
|
|
35
|
+
throw new GatewayConnectionError("GATEWAY_PLAN_MISMATCH", `Gateway and Connect disagree about route index ${index}.`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Wire a complete runtime-selected local tool subset through the Once Gateway.
|
|
41
|
+
*
|
|
42
|
+
* This function intentionally contains no execution engine. It performs a
|
|
43
|
+
* gateway preflight, optionally binds exact Tool Graph identity, then delegates
|
|
44
|
+
* registry validation and wrapper creation to the existing Connect toolset.
|
|
45
|
+
*
|
|
46
|
+
* A selected subset containing BLOCK cannot be partially wired. Returning a
|
|
47
|
+
* mixed registry would leave an unprotected bypass surface for unresolved
|
|
48
|
+
* tools, so v1 fails the whole selected subset closed.
|
|
49
|
+
*/
|
|
50
|
+
export function connectLocalGatewayToolsetAuto(tools, options) {
|
|
51
|
+
if (!options || !("manifest" in options)) {
|
|
52
|
+
throw new GatewayConnectionError("INVALID_GATEWAY_MANIFEST", "Once Gateway needs the complete runtime-selected tool manifest before wiring.");
|
|
53
|
+
}
|
|
54
|
+
const plan = planGatewayToolset(options.manifest);
|
|
55
|
+
if (!plan.valid) {
|
|
56
|
+
throw new GatewayConnectionError("INVALID_GATEWAY_MANIFEST", "Once Gateway could not parse the supplied runtime-selected tool manifest.");
|
|
57
|
+
}
|
|
58
|
+
if (!plan.ready) {
|
|
59
|
+
throw new GatewayConnectionError("GATEWAY_BLOCKED", `Once Gateway refuses partial wiring while selected-tool routing is unresolved: ${blockedSummary(plan)}.`);
|
|
60
|
+
}
|
|
61
|
+
let binding;
|
|
62
|
+
if (options.toolGraphBindings !== undefined) {
|
|
63
|
+
if (!Array.isArray(options.toolGraphBindings)) {
|
|
64
|
+
throw new GatewayConnectionError("INVALID_TOOL_GRAPH_BINDINGS", "Once Gateway Tool Graph bindings must be an array of safe identity records.");
|
|
65
|
+
}
|
|
66
|
+
binding = bindGatewayPlanToToolGraph(plan, options.toolGraphBindings);
|
|
67
|
+
if (!binding.ready) {
|
|
68
|
+
throw new GatewayConnectionError("GATEWAY_TOOL_GRAPH_BLOCKED", `Once Gateway refuses wiring because selected tools do not match exact Tool Graph identity: ${bindingBlockedSummary(binding)}.`);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
const connected = connectLocalAgentToolsetAuto(tools, options);
|
|
72
|
+
verifyConnectAgreement(plan, connected.plan);
|
|
73
|
+
return Object.freeze({
|
|
74
|
+
plan,
|
|
75
|
+
...(binding ? { binding } : {}),
|
|
76
|
+
tools: connected.tools,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=local-toolset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-toolset.js","sourceRoot":"","sources":["../../src/gateway/local-toolset.ts"],"names":[],"mappings":"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"}
|