@once-agent/sdk 0.1.11 → 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.
Files changed (160) hide show
  1. package/README.md +76 -1
  2. package/dist/cli.js +50 -1
  3. package/dist/cli.js.map +1 -1
  4. package/dist/connect/identity.d.ts +22 -0
  5. package/dist/connect/identity.d.ts.map +1 -0
  6. package/dist/connect/identity.js +159 -0
  7. package/dist/connect/identity.js.map +1 -0
  8. package/dist/connect/index.d.ts +17 -0
  9. package/dist/connect/index.d.ts.map +1 -0
  10. package/dist/connect/index.js +9 -0
  11. package/dist/connect/index.js.map +1 -0
  12. package/dist/connect/local-agent-tool.d.ts +30 -7
  13. package/dist/connect/local-agent-tool.d.ts.map +1 -1
  14. package/dist/connect/local-agent-tool.js +81 -9
  15. package/dist/connect/local-agent-tool.js.map +1 -1
  16. package/dist/connect/manifest.d.ts +55 -0
  17. package/dist/connect/manifest.d.ts.map +1 -0
  18. package/dist/connect/manifest.js +166 -0
  19. package/dist/connect/manifest.js.map +1 -0
  20. package/dist/connect/openai-function-tools.d.ts +66 -0
  21. package/dist/connect/openai-function-tools.d.ts.map +1 -0
  22. package/dist/connect/openai-function-tools.js +182 -0
  23. package/dist/connect/openai-function-tools.js.map +1 -0
  24. package/dist/connect/payload.d.ts +30 -0
  25. package/dist/connect/payload.d.ts.map +1 -0
  26. package/dist/connect/payload.js +122 -0
  27. package/dist/connect/payload.js.map +1 -0
  28. package/dist/connect/tool-classifier.d.ts +40 -0
  29. package/dist/connect/tool-classifier.d.ts.map +1 -0
  30. package/dist/connect/tool-classifier.js +271 -0
  31. package/dist/connect/tool-classifier.js.map +1 -0
  32. package/dist/connect/toolset.d.ts +42 -0
  33. package/dist/connect/toolset.d.ts.map +1 -0
  34. package/dist/connect/toolset.js +123 -0
  35. package/dist/connect/toolset.js.map +1 -0
  36. package/dist/discovery/index.d.ts +13 -0
  37. package/dist/discovery/index.d.ts.map +1 -0
  38. package/dist/discovery/index.js +8 -0
  39. package/dist/discovery/index.js.map +1 -0
  40. package/dist/execution-observation.d.ts +122 -0
  41. package/dist/execution-observation.d.ts.map +1 -0
  42. package/dist/execution-observation.js +324 -0
  43. package/dist/execution-observation.js.map +1 -0
  44. package/dist/gateway/index.d.ts +9 -0
  45. package/dist/gateway/index.d.ts.map +1 -0
  46. package/dist/gateway/index.js +5 -0
  47. package/dist/gateway/index.js.map +1 -0
  48. package/dist/gateway/local-toolset.d.ts +32 -0
  49. package/dist/gateway/local-toolset.d.ts.map +1 -0
  50. package/dist/gateway/local-toolset.js +79 -0
  51. package/dist/gateway/local-toolset.js.map +1 -0
  52. package/dist/gateway/openai-function-tools.d.ts +28 -0
  53. package/dist/gateway/openai-function-tools.d.ts.map +1 -0
  54. package/dist/gateway/openai-function-tools.js +117 -0
  55. package/dist/gateway/openai-function-tools.js.map +1 -0
  56. package/dist/gateway/planner.d.ts +53 -0
  57. package/dist/gateway/planner.d.ts.map +1 -0
  58. package/dist/gateway/planner.js +155 -0
  59. package/dist/gateway/planner.js.map +1 -0
  60. package/dist/gateway/tool-graph-binding.d.ts +51 -0
  61. package/dist/gateway/tool-graph-binding.d.ts.map +1 -0
  62. package/dist/gateway/tool-graph-binding.js +123 -0
  63. package/dist/gateway/tool-graph-binding.js.map +1 -0
  64. package/dist/langchain-execution-observer.d.ts +22 -0
  65. package/dist/langchain-execution-observer.d.ts.map +1 -0
  66. package/dist/langchain-execution-observer.js +128 -0
  67. package/dist/langchain-execution-observer.js.map +1 -0
  68. package/dist/langchain-runtime-discovery.d.ts +33 -0
  69. package/dist/langchain-runtime-discovery.d.ts.map +1 -0
  70. package/dist/langchain-runtime-discovery.js +214 -0
  71. package/dist/langchain-runtime-discovery.js.map +1 -0
  72. package/dist/mcp-live-discovery.d.ts +71 -0
  73. package/dist/mcp-live-discovery.d.ts.map +1 -0
  74. package/dist/mcp-live-discovery.js +710 -0
  75. package/dist/mcp-live-discovery.js.map +1 -0
  76. package/dist/mcp-live-report.d.ts +3 -0
  77. package/dist/mcp-live-report.d.ts.map +1 -0
  78. package/dist/mcp-live-report.js +50 -0
  79. package/dist/mcp-live-report.js.map +1 -0
  80. package/dist/mcp-tool-refresh-report.d.ts +3 -0
  81. package/dist/mcp-tool-refresh-report.d.ts.map +1 -0
  82. package/dist/mcp-tool-refresh-report.js +44 -0
  83. package/dist/mcp-tool-refresh-report.js.map +1 -0
  84. package/dist/mcp-tool-refresh.d.ts +33 -0
  85. package/dist/mcp-tool-refresh.d.ts.map +1 -0
  86. package/dist/mcp-tool-refresh.js +489 -0
  87. package/dist/mcp-tool-refresh.js.map +1 -0
  88. package/dist/openai-agents-execution-observer.d.ts +24 -0
  89. package/dist/openai-agents-execution-observer.d.ts.map +1 -0
  90. package/dist/openai-agents-execution-observer.js +163 -0
  91. package/dist/openai-agents-execution-observer.js.map +1 -0
  92. package/dist/otel-execution-observer.d.ts +16 -0
  93. package/dist/otel-execution-observer.d.ts.map +1 -0
  94. package/dist/otel-execution-observer.js +129 -0
  95. package/dist/otel-execution-observer.js.map +1 -0
  96. package/dist/runtime-tool-discovery.d.ts +86 -0
  97. package/dist/runtime-tool-discovery.d.ts.map +1 -0
  98. package/dist/runtime-tool-discovery.js +429 -0
  99. package/dist/runtime-tool-discovery.js.map +1 -0
  100. package/dist/tool-discovery.d.ts +51 -0
  101. package/dist/tool-discovery.d.ts.map +1 -0
  102. package/dist/tool-discovery.js +487 -0
  103. package/dist/tool-discovery.js.map +1 -0
  104. package/dist/tool-importance.d.ts +34 -0
  105. package/dist/tool-importance.d.ts.map +1 -0
  106. package/dist/tool-importance.js +269 -0
  107. package/dist/tool-importance.js.map +1 -0
  108. package/dist/tool-report.d.ts +3 -0
  109. package/dist/tool-report.d.ts.map +1 -0
  110. package/dist/tool-report.js +75 -0
  111. package/dist/tool-report.js.map +1 -0
  112. package/dist/vercel-execution-observer.d.ts +12 -0
  113. package/dist/vercel-execution-observer.d.ts.map +1 -0
  114. package/dist/vercel-execution-observer.js +97 -0
  115. package/dist/vercel-execution-observer.js.map +1 -0
  116. package/dist-cjs/connect/identity.js +162 -0
  117. package/dist-cjs/connect/identity.js.map +1 -0
  118. package/dist-cjs/connect/index.js +26 -0
  119. package/dist-cjs/connect/index.js.map +1 -0
  120. package/dist-cjs/connect/local-agent-tool.js +82 -9
  121. package/dist-cjs/connect/local-agent-tool.js.map +1 -1
  122. package/dist-cjs/connect/manifest.js +171 -0
  123. package/dist-cjs/connect/manifest.js.map +1 -0
  124. package/dist-cjs/connect/openai-function-tools.js +187 -0
  125. package/dist-cjs/connect/openai-function-tools.js.map +1 -0
  126. package/dist-cjs/connect/payload.js +125 -0
  127. package/dist-cjs/connect/payload.js.map +1 -0
  128. package/dist-cjs/connect/tool-classifier.js +276 -0
  129. package/dist-cjs/connect/tool-classifier.js.map +1 -0
  130. package/dist-cjs/connect/toolset.js +126 -0
  131. package/dist-cjs/connect/toolset.js.map +1 -0
  132. package/dist-cjs/discovery/index.js +26 -0
  133. package/dist-cjs/discovery/index.js.map +1 -0
  134. package/dist-cjs/execution-observation.js +330 -0
  135. package/dist-cjs/execution-observation.js.map +1 -0
  136. package/dist-cjs/gateway/index.js +16 -0
  137. package/dist-cjs/gateway/index.js.map +1 -0
  138. package/dist-cjs/gateway/local-toolset.js +84 -0
  139. package/dist-cjs/gateway/local-toolset.js.map +1 -0
  140. package/dist-cjs/gateway/openai-function-tools.js +120 -0
  141. package/dist-cjs/gateway/openai-function-tools.js.map +1 -0
  142. package/dist-cjs/gateway/planner.js +160 -0
  143. package/dist-cjs/gateway/planner.js.map +1 -0
  144. package/dist-cjs/gateway/tool-graph-binding.js +126 -0
  145. package/dist-cjs/gateway/tool-graph-binding.js.map +1 -0
  146. package/dist-cjs/langchain-execution-observer.js +131 -0
  147. package/dist-cjs/langchain-execution-observer.js.map +1 -0
  148. package/dist-cjs/langchain-runtime-discovery.js +218 -0
  149. package/dist-cjs/langchain-runtime-discovery.js.map +1 -0
  150. package/dist-cjs/openai-agents-execution-observer.js +166 -0
  151. package/dist-cjs/openai-agents-execution-observer.js.map +1 -0
  152. package/dist-cjs/otel-execution-observer.js +132 -0
  153. package/dist-cjs/otel-execution-observer.js.map +1 -0
  154. package/dist-cjs/runtime-tool-discovery.js +436 -0
  155. package/dist-cjs/runtime-tool-discovery.js.map +1 -0
  156. package/dist-cjs/tool-importance.js +272 -0
  157. package/dist-cjs/tool-importance.js.map +1 -0
  158. package/dist-cjs/vercel-execution-observer.js +100 -0
  159. package/dist-cjs/vercel-execution-observer.js.map +1 -0
  160. package/package.json +25 -3
package/README.md CHANGED
@@ -1,10 +1,86 @@
1
1
  # @once-agent/sdk
2
2
 
3
+ > **Automatic Connect in 0.1.12:** this SDK version includes the
4
+ > `@once-agent/sdk/connect` public surface for automatic tool classification,
5
+ > whole-toolset wiring, trusted intent identity, conservative effect binding,
6
+ > and OpenAI Agents FunctionTool wrapping. It has passed source, packed-package,
7
+ > ESM/CommonJS, and Node.js 24.15 protected-execution gates.
8
+ >
9
+ > Full guide: https://github.com/stringsofthemind-oss/once/blob/main/docs/CONNECT_AUTO.md
10
+
3
11
  > **Local protection:** `protectLocal` wraps an existing async function using a
4
12
  > durable same-machine SQLite file. This feature requires Node.js 24.15 or
5
13
  > later. See the local function guide:
6
14
  > https://github.com/stringsofthemind-oss/once/blob/main/examples/local-function/README.md
7
15
 
16
+ ## Automatic Connect
17
+
18
+ Automatic Connect is designed for the integration path where an application
19
+ already has a registry or framework list of agent tools.
20
+
21
+ ```ts
22
+ import {
23
+ connectLocalAgentToolsetAuto
24
+ } from "@once-agent/sdk/connect";
25
+
26
+ const connected = connectLocalAgentToolsetAuto(
27
+ {
28
+ search_web: {
29
+ async execute(input: { query: string }) {
30
+ return search(input.query);
31
+ }
32
+ },
33
+ send_email: {
34
+ async execute(input: {
35
+ intentId: string;
36
+ destination: string;
37
+ body: string;
38
+ }) {
39
+ return mailer.send({
40
+ to: input.destination,
41
+ body: input.body
42
+ });
43
+ }
44
+ }
45
+ },
46
+ {
47
+ manifest: [
48
+ {
49
+ name: "search_web",
50
+ description: "Search the public web."
51
+ },
52
+ {
53
+ name: "send_email",
54
+ description: "Send an email to a recipient.",
55
+ _meta: {
56
+ once: {
57
+ identityFields: ["intentId"],
58
+ effectFields: ["destination", "body"]
59
+ }
60
+ }
61
+ }
62
+ ],
63
+ statePath: ".once/agent-tools.sqlite"
64
+ }
65
+ );
66
+
67
+ // Give the agent only the connected tools.
68
+ const toolsForAgent = connected.tools;
69
+ ```
70
+
71
+ Automatic Connect classifies tools as `BYPASS`, `PROTECT`, or `UNKNOWN`.
72
+ `UNKNOWN` fails closed. Whole-toolset connection is all-or-nothing: duplicate,
73
+ missing, undeclared, invalid, or unresolved tools block connection rather than
74
+ silently exposing a partially protected registry.
75
+
76
+ Protected automatic local execution still requires a trustworthy logical action
77
+ identity and a payload that represents the consequential effect. Explicit
78
+ `identityFields` and `effectFields` are preferred when available. Framework or
79
+ transport attempt IDs are not automatically treated as business intent.
80
+
81
+ The automatic local path requires Node.js 24.15+ and shared durable SQLite state
82
+ on one machine. It is not a universal exactly-once or multi-host guarantee.
83
+
8
84
 
9
85
  <!-- ONCE_STRIPE_SANDBOX_NOTICE -->
10
86
 
@@ -533,4 +609,3 @@ That is the failure mode Once is built to address.
533
609
  ## License
534
610
 
535
611
  MIT
536
-
package/dist/cli.js CHANGED
@@ -6,16 +6,26 @@ import { runProtect } from "./protect.js";
6
6
  import { applyProtectionPlan } from "./apply.js";
7
7
  import { runBenchmark } from "./benchmark.js";
8
8
  import { runTraceFetch } from "./trace.js";
9
+ import { discoverToolGraph } from "./tool-discovery.js";
10
+ import { printToolDiscoveryReport } from "./tool-report.js";
11
+ import { discoverLiveMcpTools } from "./mcp-live-discovery.js";
12
+ import { printMcpLiveDiscoveryReport } from "./mcp-live-report.js";
13
+ import { watchMcpToolListOnce } from "./mcp-tool-refresh.js";
14
+ import { printMcpToolRefreshReport } from "./mcp-tool-refresh-report.js";
9
15
  function printHelp() {
10
16
  console.log("");
11
17
  console.log("Once");
12
18
  console.log("----");
13
19
  console.log("");
14
20
  console.log("Commands:");
15
- console.log(" once doctor [directory] [--protect] [--connection]");
21
+ console.log(" once doctor [directory] [--protect] [--connection] [--tools] [--tools-live=<host/name>] [--tools-watch-ms=<ms>]");
16
22
  console.log(" Run the low-friction local safety check. No API key required.");
17
23
  console.log(" Use --protect to generate a review plan and snippets without changing source.");
18
24
  console.log(" Use --connection to also verify the hosted Once API connection.");
25
+ console.log(" Use --tools to inventory local/configured tool surfaces and rank source-discovered capabilities.");
26
+ console.log(" Use --tools-live=<host/name> with --tools to explicitly enumerate one configured remote HTTP MCP server. Repeat to select more than one.");
27
+ console.log(" Use --tools-watch-ms=<50..60000> with exactly one --tools-live target to wait for one modern MCP tool-list change, refresh tools/list, report the diff, then exit.");
28
+ console.log(" Live tool enumeration/watch never launches configured stdio servers and does not follow redirects.");
19
29
  console.log("");
20
30
  console.log(" once protect [directory]");
21
31
  console.log(" Review candidate operations for Once protection.");
@@ -40,6 +50,9 @@ function printHelp() {
40
50
  console.log("");
41
51
  console.log("Examples:");
42
52
  console.log(" once doctor .");
53
+ console.log(" once doctor . --tools");
54
+ console.log(" once doctor . --tools --tools-live=cursor/docs");
55
+ console.log(" once doctor . --tools --tools-live=cursor/docs --tools-watch-ms=5000");
43
56
  console.log(" once doctor . --protect");
44
57
  console.log(" once doctor . --connection");
45
58
  console.log(" once protect .");
@@ -58,10 +71,46 @@ async function main() {
58
71
  switch (command) {
59
72
  case "doctor": {
60
73
  const requestedPath = args.find(value => !value.startsWith("--")) ?? ".";
74
+ const liveSelectors = args
75
+ .filter(value => value.startsWith("--tools-live="))
76
+ .map(value => value.substring("--tools-live=".length).trim())
77
+ .filter(Boolean);
78
+ const watchArgument = args.find(value => value.startsWith("--tools-watch-ms="));
79
+ const watchMs = watchArgument
80
+ ? Number(watchArgument.substring("--tools-watch-ms=".length))
81
+ : undefined;
82
+ if (args.includes("--tools-live")) {
83
+ throw new Error("--tools-live requires an explicit configured server selector. Example: --tools-live=cursor/docs");
84
+ }
85
+ if (args.includes("--tools-watch-ms")) {
86
+ throw new Error("--tools-watch-ms requires a bounded millisecond value. Example: --tools-watch-ms=5000");
87
+ }
88
+ if (liveSelectors.length > 0 &&
89
+ !args.includes("--tools")) {
90
+ throw new Error("--tools-live must be used with --tools so the configured server inventory is reviewed before live enumeration.");
91
+ }
92
+ if (watchArgument && liveSelectors.length !== 1) {
93
+ throw new Error("--tools-watch-ms requires exactly one --tools-live=<host/name> target.");
94
+ }
95
+ if (watchArgument && !Number.isFinite(watchMs)) {
96
+ throw new Error("--tools-watch-ms must be a finite millisecond value.");
97
+ }
61
98
  await runDoctor(requestedPath, {
62
99
  protect: args.includes("--protect"),
63
100
  connection: args.includes("--connection")
64
101
  });
102
+ if (args.includes("--tools")) {
103
+ const discovery = await discoverToolGraph(requestedPath);
104
+ printToolDiscoveryReport(discovery);
105
+ if (liveSelectors.length > 0) {
106
+ const live = await discoverLiveMcpTools(requestedPath, discovery.configuredSources, liveSelectors);
107
+ printMcpLiveDiscoveryReport(live);
108
+ if (watchArgument && watchMs !== undefined) {
109
+ const refresh = await watchMcpToolListOnce(requestedPath, discovery.configuredSources, liveSelectors[0], live, { watchMs });
110
+ printMcpToolRefreshReport(refresh);
111
+ }
112
+ }
113
+ }
65
114
  return;
66
115
  }
67
116
  case "trace": {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { ConnectToolDescriptor } from "./tool-classifier.js";
2
+ export type ConnectIdentitySource = "explicit" | "input:once_operation_id" | "input:onceOperationId" | "input:operation_id" | "input:operationId" | "input:idempotency_key" | "input:idempotencyKey" | "input:intent_id" | "input:intentId" | "input:intent_key" | "input:intentKey" | "meta:identity_fields";
3
+ export type ConnectIdentityResult = Readonly<{
4
+ status: "FOUND";
5
+ operationId: string;
6
+ source: ConnectIdentitySource;
7
+ reason: string;
8
+ }> | Readonly<{
9
+ status: "REQUIRED";
10
+ reason: string;
11
+ }> | Readonly<{
12
+ status: "CONFLICT";
13
+ sources: readonly ConnectIdentitySource[];
14
+ reason: string;
15
+ }>;
16
+ export interface ResolveConnectIdentityInput {
17
+ tool: Pick<ConnectToolDescriptor, "name" | "_meta">;
18
+ input: unknown;
19
+ explicitIdentity?: string;
20
+ }
21
+ export declare function resolveConnectToolOperationIdentity(request: ResolveConnectIdentityInput): ConnectIdentityResult;
22
+ //# sourceMappingURL=identity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/connect/identity.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,qBAAqB,EACtB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,MAAM,qBAAqB,GAC7B,UAAU,GACV,yBAAyB,GACzB,uBAAuB,GACvB,oBAAoB,GACpB,mBAAmB,GACnB,uBAAuB,GACvB,sBAAsB,GACtB,iBAAiB,GACjB,gBAAgB,GAChB,kBAAkB,GAClB,iBAAiB,GACjB,sBAAsB,CAAC;AAE3B,MAAM,MAAM,qBAAqB,GAC7B,QAAQ,CAAC;IACP,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,qBAAqB,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,GACF,QAAQ,CAAC;IACP,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,GACF,QAAQ,CAAC;IACP,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAC1C,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,CAAC;AAEP,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,IAAI,CAAC,qBAAqB,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;IACpD,KAAK,EAAE,OAAO,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAsID,wBAAgB,mCAAmC,CACjD,OAAO,EAAE,2BAA2B,GACnC,qBAAqB,CA+EvB"}
@@ -0,0 +1,159 @@
1
+ import { createHash } from "node:crypto";
2
+ import { canonicalizeConnectPayload, } from "./binding.js";
3
+ const INPUT_FIELDS = [
4
+ { key: "once_operation_id", source: "input:once_operation_id" },
5
+ { key: "onceOperationId", source: "input:onceOperationId" },
6
+ { key: "operation_id", source: "input:operation_id" },
7
+ { key: "operationId", source: "input:operationId" },
8
+ { key: "idempotency_key", source: "input:idempotency_key" },
9
+ { key: "idempotencyKey", source: "input:idempotencyKey" },
10
+ { key: "intent_id", source: "input:intent_id" },
11
+ { key: "intentId", source: "input:intentId" },
12
+ { key: "intent_key", source: "input:intent_key" },
13
+ { key: "intentKey", source: "input:intentKey" },
14
+ ];
15
+ function cleanString(value) {
16
+ if (typeof value !== "string") {
17
+ return null;
18
+ }
19
+ const cleaned = value.trim();
20
+ return cleaned.length > 0 ? cleaned : null;
21
+ }
22
+ function plainObject(value) {
23
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
24
+ return null;
25
+ }
26
+ const objectValue = value;
27
+ const prototype = Object.getPrototypeOf(objectValue);
28
+ if (prototype !== Object.prototype && prototype !== null) {
29
+ return null;
30
+ }
31
+ return objectValue;
32
+ }
33
+ function metadataIdentityFields(tool) {
34
+ const meta = plainObject(tool._meta);
35
+ if (!meta) {
36
+ return null;
37
+ }
38
+ const once = plainObject(meta.once);
39
+ if (!once || !Array.isArray(once.identityFields)) {
40
+ return null;
41
+ }
42
+ const fields = once.identityFields;
43
+ if (fields.length === 0 ||
44
+ fields.some(field => typeof field !== "string" ||
45
+ field.trim().length === 0 ||
46
+ field.includes("."))) {
47
+ return null;
48
+ }
49
+ return Object.freeze(fields.map(field => field.trim()));
50
+ }
51
+ function metadataIdentityCandidate(tool, input) {
52
+ const fields = metadataIdentityFields(tool);
53
+ if (!fields) {
54
+ return null;
55
+ }
56
+ const identity = {};
57
+ for (const field of fields) {
58
+ if (!(field in input)) {
59
+ return null;
60
+ }
61
+ const value = input[field];
62
+ if (value === undefined) {
63
+ return null;
64
+ }
65
+ identity[field] = value;
66
+ }
67
+ try {
68
+ return {
69
+ source: "meta:identity_fields",
70
+ value: canonicalizeConnectPayload(identity),
71
+ };
72
+ }
73
+ catch {
74
+ return null;
75
+ }
76
+ }
77
+ function buildOperationId(toolName, identity) {
78
+ const hash = createHash("sha256");
79
+ hash.update("once-connect-id-v1\u0000", "utf8");
80
+ for (const value of [toolName, identity]) {
81
+ const bytes = Buffer.from(value, "utf8");
82
+ const length = Buffer.allocUnsafe(4);
83
+ length.writeUInt32BE(bytes.length, 0);
84
+ hash.update(length);
85
+ hash.update(bytes);
86
+ }
87
+ const prefix = toolName
88
+ .toLowerCase()
89
+ .replace(/[^a-z0-9._:-]+/g, "-")
90
+ .replace(/^[^a-z0-9]+/, "")
91
+ .replace(/-+$/g, "")
92
+ .slice(0, 48) || "tool";
93
+ return `${prefix}:${hash.digest("hex").slice(0, 32)}`;
94
+ }
95
+ export function resolveConnectToolOperationIdentity(request) {
96
+ if (!request ||
97
+ !request.tool ||
98
+ typeof request.tool.name !== "string" ||
99
+ request.tool.name.trim().length === 0) {
100
+ return Object.freeze({
101
+ status: "REQUIRED",
102
+ reason: "A stable tool name is required before operation identity can be resolved.",
103
+ });
104
+ }
105
+ const input = plainObject(request.input);
106
+ if (!input) {
107
+ return Object.freeze({
108
+ status: "REQUIRED",
109
+ reason: "Parsed plain-object tool input is required before operation identity can be resolved.",
110
+ });
111
+ }
112
+ const candidates = [];
113
+ const explicit = cleanString(request.explicitIdentity);
114
+ if (explicit) {
115
+ candidates.push({
116
+ source: "explicit",
117
+ value: explicit,
118
+ });
119
+ }
120
+ for (const field of INPUT_FIELDS) {
121
+ const value = cleanString(input[field.key]);
122
+ if (value) {
123
+ candidates.push({
124
+ source: field.source,
125
+ value,
126
+ });
127
+ }
128
+ }
129
+ if (candidates.length > 0) {
130
+ const values = Array.from(new Set(candidates.map(candidate => candidate.value)));
131
+ if (values.length !== 1) {
132
+ return Object.freeze({
133
+ status: "CONFLICT",
134
+ sources: Object.freeze(candidates.map(candidate => candidate.source)),
135
+ reason: "Stable identity carriers disagree. Once Connect refuses ambiguous logical-operation identity.",
136
+ });
137
+ }
138
+ return Object.freeze({
139
+ status: "FOUND",
140
+ operationId: buildOperationId(request.tool.name.trim(), values[0]),
141
+ source: candidates[0].source,
142
+ reason: "Stable logical-operation identity found and deterministically scoped to this tool.",
143
+ });
144
+ }
145
+ const metadataCandidate = metadataIdentityCandidate(request.tool, input);
146
+ if (metadataCandidate) {
147
+ return Object.freeze({
148
+ status: "FOUND",
149
+ operationId: buildOperationId(request.tool.name.trim(), metadataCandidate.value),
150
+ source: metadataCandidate.source,
151
+ reason: "Tool metadata declared the input fields that define stable logical-operation identity.",
152
+ });
153
+ }
154
+ return Object.freeze({
155
+ status: "REQUIRED",
156
+ reason: "No trustworthy stable identity carrier was found. Once Connect refuses to guess from the full payload.",
157
+ });
158
+ }
159
+ //# sourceMappingURL=identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/connect/identity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export { CONNECT_DECISION, classifyConnectOperation, } from "./classifier.js";
2
+ export type { ConnectDecision, ConnectSafetyDeclaration, ConnectClassification, } from "./classifier.js";
3
+ export { CONNECT_TOOL_DECISION, classifyConnectTool, classifyConnectTools, } from "./tool-classifier.js";
4
+ export type { ConnectToolDecision, ConnectToolAnnotations, ConnectToolDescriptor, ConnectToolClassificationReason, ConnectToolClassification, } from "./tool-classifier.js";
5
+ export { CONNECT_MANIFEST_VERSION, planConnectToolManifest, } from "./manifest.js";
6
+ export type { ConnectManifestToolSource, ConnectManifestPlanEntry, ConnectManifestPlanSummary, ConnectManifestPlan, } from "./manifest.js";
7
+ export { resolveConnectToolOperationIdentity, } from "./identity.js";
8
+ export type { ConnectIdentitySource, ConnectIdentityResult, ResolveConnectIdentityInput, } from "./identity.js";
9
+ export { resolveConnectToolEffectPayload, } from "./payload.js";
10
+ export type { ConnectPayloadSource, ConnectEffectPayloadResult, ResolveConnectEffectPayloadInput, } from "./payload.js";
11
+ export { connectLocalAgentToolAuto, AgentToolConnectionError, } from "./local-agent-tool.js";
12
+ export type { AgentTool, AutoLocalAgentToolContract, } from "./local-agent-tool.js";
13
+ export { connectLocalAgentToolsetAuto, } from "./toolset.js";
14
+ export type { LocalAgentToolRegistry, ConnectedLocalAgentToolRegistry, AutoLocalAgentToolsetOverride, AutoLocalAgentToolsetOptions, ConnectedLocalAgentToolset, } from "./toolset.js";
15
+ export { connectOpenAIAgentsFunctionToolsAuto, OpenAIAgentsConnectError, } from "./openai-function-tools.js";
16
+ export type { OpenAIAgentsParsedToolInput, OpenAIAgentsFunctionToolLike, OpenAIAgentsFunctionToolOverride, ConnectOpenAIAgentsFunctionToolsOptions, ConnectedOpenAIAgentsFunctionTools, } from "./openai-function-tools.js";
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/connect/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,eAAe,EACf,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACV,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,+BAA+B,EAC/B,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,eAAe,CAAC;AAEvB,YAAY,EACV,yBAAyB,EACzB,wBAAwB,EACxB,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,mCAAmC,GACpC,MAAM,eAAe,CAAC;AAEvB,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,+BAA+B,GAChC,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,oBAAoB,EACpB,0BAA0B,EAC1B,gCAAgC,GACjC,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EACV,SAAS,EACT,0BAA0B,GAC3B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,4BAA4B,GAC7B,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,sBAAsB,EACtB,+BAA+B,EAC/B,6BAA6B,EAC7B,4BAA4B,EAC5B,0BAA0B,GAC3B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,oCAAoC,EACpC,wBAAwB,GACzB,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EACV,2BAA2B,EAC3B,4BAA4B,EAC5B,gCAAgC,EAChC,uCAAuC,EACvC,kCAAkC,GACnC,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,9 @@
1
+ export { CONNECT_DECISION, classifyConnectOperation, } from "./classifier.js";
2
+ export { CONNECT_TOOL_DECISION, classifyConnectTool, classifyConnectTools, } from "./tool-classifier.js";
3
+ export { CONNECT_MANIFEST_VERSION, planConnectToolManifest, } from "./manifest.js";
4
+ export { resolveConnectToolOperationIdentity, } from "./identity.js";
5
+ export { resolveConnectToolEffectPayload, } from "./payload.js";
6
+ export { connectLocalAgentToolAuto, AgentToolConnectionError, } from "./local-agent-tool.js";
7
+ export { connectLocalAgentToolsetAuto, } from "./toolset.js";
8
+ export { connectOpenAIAgentsFunctionToolsAuto, OpenAIAgentsConnectError, } from "./openai-function-tools.js";
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/connect/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,iBAAiB,CAAC;AAQzB,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAU9B,OAAO,EACL,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,eAAe,CAAC;AASvB,OAAO,EACL,mCAAmC,GACpC,MAAM,eAAe,CAAC;AAQvB,OAAO,EACL,+BAA+B,GAChC,MAAM,cAAc,CAAC;AAQtB,OAAO,EACL,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EACL,4BAA4B,GAC7B,MAAM,cAAc,CAAC;AAUtB,OAAO,EACL,oCAAoC,EACpC,wBAAwB,GACzB,MAAM,4BAA4B,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { type ConnectSafetyDeclaration } from "./classifier.js";
2
+ import { type ConnectToolDescriptor } from "./tool-classifier.js";
2
3
  import { type LocalObservation } from "../local.js";
3
4
  type EffectPayload = Record<string, unknown>;
4
5
  export interface AgentTool<Input, Result> {
@@ -21,19 +22,41 @@ export interface LocalAgentToolContract<Input, Result> {
21
22
  payload: EffectPayload;
22
23
  }) => Promise<LocalObservation<Result>> | LocalObservation<Result>;
23
24
  }
25
+ export interface AutoLocalAgentToolContract<Input, Result> {
26
+ /** Tool metadata used by Once Connect to infer PROTECT/BYPASS/UNKNOWN. */
27
+ descriptor: ConnectToolDescriptor;
28
+ /** Optional explicit stable intent identity. When omitted, Once may resolve a trustworthy identity carrier from input. */
29
+ id?: (input: Input) => string;
30
+ /** Optional effect selector. When omitted, Once conservatively binds the full plain-object input or descriptor-declared effectFields. */
31
+ payload?: (input: Input) => EffectPayload;
32
+ /** Durable same-machine SQLite file, shared by all callers of this tool. */
33
+ statePath?: string;
34
+ /** Read-only, authoritative provider lookup for an uncertain outcome. */
35
+ reconcile?: (context: {
36
+ id: string;
37
+ payload: EffectPayload;
38
+ }) => Promise<LocalObservation<Result>> | LocalObservation<Result>;
39
+ }
24
40
  export declare class AgentToolConnectionError extends Error {
25
41
  readonly code: string;
26
42
  constructor(code: string, message: string);
27
43
  }
44
+ export declare function connectLocalAgentTool<Input, Result>(tool: AgentTool<Input, Result>, contract: LocalAgentToolContract<Input, Result>): AgentTool<Input, Result>;
28
45
  /**
29
- * Connect one registered agent tool to Once. The agent calls execute normally;
30
- * classification happens for every invocation without a model-side Once call.
46
+ * Connect a local agent tool using its descriptor instead of hand-authored
47
+ * routing declarations.
48
+ *
49
+ * Automatic routing is intentionally conservative:
50
+ * - PROTECT -> delegate to the existing protected local connector;
51
+ * - BYPASS -> delegate to the existing bypass path;
52
+ * - UNKNOWN -> refuse connection until the tool is clarified.
31
53
  *
32
- * The tool owner must review the safety declaration, identity and effect
33
- * payload. This same-machine path never auto-discovers arbitrary tools and
34
- * cannot coordinate hosts with separate SQLite files. Supply only the
35
- * returned tool to the agent; an exposed original tool remains a bypass.
54
+ * For protected tools, stable identity may be supplied by `id()` or resolved
55
+ * from trustworthy operation/idempotency/intent carriers. Effect payload may
56
+ * be supplied by `payload()` or conservatively bound from the full plain-object
57
+ * input. `_meta.once.effectFields` can explicitly narrow that binding.
58
+ * Missing/invalid identity or payload fails before the side effect.
36
59
  */
37
- export declare function connectLocalAgentTool<Input, Result>(tool: AgentTool<Input, Result>, contract: LocalAgentToolContract<Input, Result>): AgentTool<Input, Result>;
60
+ export declare function connectLocalAgentToolAuto<Input, Result>(tool: AgentTool<Input, Result>, contract: AutoLocalAgentToolContract<Input, Result>): AgentTool<Input, Result>;
38
61
  export {};
39
62
  //# sourceMappingURL=local-agent-tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"local-agent-tool.d.ts","sourceRoot":"","sources":["../../src/connect/local-agent-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,wBAAwB,EAC9B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,aAAa,CAAC;AAErB,KAAK,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE7C,MAAM,WAAW,SAAS,CAAC,KAAK,EAAE,MAAM;IACtC,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,sBAAsB,CAAC,KAAK,EAAE,MAAM;IACnD,kFAAkF;IAClF,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,MAAM,EAAE,wBAAwB,CAAC;IACjC,8EAA8E;IAC9E,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC;IAC9B,gFAAgF;IAChF,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,aAAa,CAAC;IAC1C,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE;QACpB,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,aAAa,CAAC;KACxB,KAAK,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;CACpE;AAED,qBAAa,wBAAyB,SAAQ,KAAK;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAInD;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EACjD,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,EAC9B,QAAQ,EAAE,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,GAC9C,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CA8D1B"}
1
+ {"version":3,"file":"local-agent-tool.d.ts","sourceRoot":"","sources":["../../src/connect/local-agent-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,wBAAwB,EAC9B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,sBAAsB,CAAC;AAO9B,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,aAAa,CAAC;AAErB,KAAK,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE7C,MAAM,WAAW,SAAS,CAAC,KAAK,EAAE,MAAM;IACtC,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,sBAAsB,CAAC,KAAK,EAAE,MAAM;IACnD,kFAAkF;IAClF,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,MAAM,EAAE,wBAAwB,CAAC;IACjC,8EAA8E;IAC9E,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC;IAC9B,gFAAgF;IAChF,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,aAAa,CAAC;IAC1C,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE;QACpB,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,aAAa,CAAC;KACxB,KAAK,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;CACpE;AAED,MAAM,WAAW,0BAA0B,CAAC,KAAK,EAAE,MAAM;IACvD,0EAA0E;IAC1E,UAAU,EAAE,qBAAqB,CAAC;IAClC,0HAA0H;IAC1H,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC;IAC9B,yIAAyI;IACzI,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,aAAa,CAAC;IAC1C,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE;QACpB,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,aAAa,CAAC;KACxB,KAAK,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;CACpE;AAED,qBAAa,wBAAyB,SAAQ,KAAK;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAInD;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EACjD,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,EAC9B,QAAQ,EAAE,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,GAC9C,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CA8D1B;AAgBD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EACrD,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,EAC9B,QAAQ,EAAE,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,GAClD,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CA4E1B"}
@@ -1,4 +1,7 @@
1
1
  import { CONNECT_DECISION, classifyConnectOperation, } from "./classifier.js";
2
+ import { CONNECT_TOOL_DECISION, classifyConnectTool, } from "./tool-classifier.js";
3
+ import { resolveConnectToolOperationIdentity, } from "./identity.js";
4
+ import { resolveConnectToolEffectPayload, } from "./payload.js";
2
5
  import { protectLocal, } from "../local.js";
3
6
  export class AgentToolConnectionError extends Error {
4
7
  code;
@@ -8,15 +11,6 @@ export class AgentToolConnectionError extends Error {
8
11
  this.name = "AgentToolConnectionError";
9
12
  }
10
13
  }
11
- /**
12
- * Connect one registered agent tool to Once. The agent calls execute normally;
13
- * classification happens for every invocation without a model-side Once call.
14
- *
15
- * The tool owner must review the safety declaration, identity and effect
16
- * payload. This same-machine path never auto-discovers arbitrary tools and
17
- * cannot coordinate hosts with separate SQLite files. Supply only the
18
- * returned tool to the agent; an exposed original tool remains a bypass.
19
- */
20
14
  export function connectLocalAgentTool(tool, contract) {
21
15
  if (!tool || typeof tool.execute !== "function") {
22
16
  throw new AgentToolConnectionError("INVALID_TOOL", "Once needs a tool with an execute(input) function.");
@@ -56,4 +50,82 @@ export function connectLocalAgentTool(tool, contract) {
56
50
  execute: (input) => protectedExecute(input),
57
51
  };
58
52
  }
53
+ const AUTO_PROTECTED_SAFETY = Object.freeze({
54
+ changesExternalState: true,
55
+ retryPossible: true,
56
+ ambiguousOutcomePossible: true,
57
+ duplicateUndesirable: true,
58
+ });
59
+ const AUTO_BYPASS_SAFETY = Object.freeze({
60
+ changesExternalState: false,
61
+ retryPossible: false,
62
+ ambiguousOutcomePossible: false,
63
+ duplicateUndesirable: false,
64
+ });
65
+ /**
66
+ * Connect a local agent tool using its descriptor instead of hand-authored
67
+ * routing declarations.
68
+ *
69
+ * Automatic routing is intentionally conservative:
70
+ * - PROTECT -> delegate to the existing protected local connector;
71
+ * - BYPASS -> delegate to the existing bypass path;
72
+ * - UNKNOWN -> refuse connection until the tool is clarified.
73
+ *
74
+ * For protected tools, stable identity may be supplied by `id()` or resolved
75
+ * from trustworthy operation/idempotency/intent carriers. Effect payload may
76
+ * be supplied by `payload()` or conservatively bound from the full plain-object
77
+ * input. `_meta.once.effectFields` can explicitly narrow that binding.
78
+ * Missing/invalid identity or payload fails before the side effect.
79
+ */
80
+ export function connectLocalAgentToolAuto(tool, contract) {
81
+ if (!contract || !contract.descriptor) {
82
+ throw new AgentToolConnectionError("UNKNOWN_TOOL_SAFETY", "Once Connect needs a tool descriptor before automatic routing can be established.");
83
+ }
84
+ const classification = classifyConnectTool(contract.descriptor);
85
+ if (classification.decision === CONNECT_TOOL_DECISION.UNKNOWN) {
86
+ throw new AgentToolConnectionError("UNKNOWN_TOOL_SAFETY", `Once Connect cannot safely auto-route ${contract.descriptor.name || "this tool"}: ${classification.reason}.`);
87
+ }
88
+ if (classification.decision === CONNECT_TOOL_DECISION.BYPASS) {
89
+ return connectLocalAgentTool(tool, {
90
+ name: contract.descriptor.name,
91
+ safety: AUTO_BYPASS_SAFETY,
92
+ statePath: contract.statePath,
93
+ });
94
+ }
95
+ const identity = typeof contract.id === "function"
96
+ ? contract.id
97
+ : (input) => {
98
+ const result = resolveConnectToolOperationIdentity({
99
+ tool: contract.descriptor,
100
+ input,
101
+ });
102
+ if (result.status === "FOUND") {
103
+ return result.operationId;
104
+ }
105
+ if (result.status === "CONFLICT") {
106
+ throw new AgentToolConnectionError("IDENTITY_CONFLICT", result.reason);
107
+ }
108
+ throw new AgentToolConnectionError("IDENTITY_REQUIRED", result.reason);
109
+ };
110
+ const payload = typeof contract.payload === "function"
111
+ ? contract.payload
112
+ : (input) => {
113
+ const result = resolveConnectToolEffectPayload({
114
+ tool: contract.descriptor,
115
+ input,
116
+ });
117
+ if (result.status === "FOUND") {
118
+ return { ...result.payload };
119
+ }
120
+ throw new AgentToolConnectionError("PAYLOAD_REQUIRED", result.reason);
121
+ };
122
+ return connectLocalAgentTool(tool, {
123
+ name: contract.descriptor.name,
124
+ safety: AUTO_PROTECTED_SAFETY,
125
+ id: identity,
126
+ payload,
127
+ statePath: contract.statePath,
128
+ reconcile: contract.reconcile,
129
+ });
130
+ }
59
131
  //# sourceMappingURL=local-agent-tool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"local-agent-tool.js","sourceRoot":"","sources":["../../src/connect/local-agent-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,wBAAwB,GAEzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,YAAY,GAEb,MAAM,aAAa,CAAC;AA0BrB,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IAC5B;IAArB,YAAqB,IAAY,EAAE,OAAe;QAChD,KAAK,CAAC,OAAO,CAAC,CAAC;QADI,SAAI,GAAJ,IAAI,CAAQ;QAE/B,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAA8B,EAC9B,QAA+C;IAE/C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QAChD,MAAM,IAAI,wBAAwB,CAChC,cAAc,EACd,oDAAoD,CACrD,CAAC;IACJ,CAAC;IAED,IACE,CAAC,QAAQ;QACT,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ;QACjC,CAAC,wBAAwB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAC7C,CAAC;QACD,MAAM,IAAI,wBAAwB,CAChC,mBAAmB,EACnB,4CAA4C,CAC7C,CAAC;IACJ,CAAC;IAED,MAAM,cAAc,GAAG,wBAAwB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjE,IAAI,cAAc,CAAC,QAAQ,KAAK,gBAAgB,CAAC,MAAM,EAAE,CAAC;QACxD,MAAM,IAAI,wBAAwB,CAChC,4BAA4B,EAC5B,oEAAoE,CACrE,CAAC;IACJ,CAAC;IAED,IAAI,cAAc,CAAC,QAAQ,KAAK,gBAAgB,CAAC,MAAM,EAAE,CAAC;QACxD,OAAO;YACL,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;SACnD,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,QAAQ,CAAC,EAAE,KAAK,UAAU,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QAChF,MAAM,IAAI,wBAAwB,CAChC,qBAAqB,EACrB,8GAA8G,CAC/G,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;IACvB,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;IACjC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAE3B,MAAM,gBAAgB,GAAG,YAAY,CACnC,KAAK,EAAE,KAAY,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EACtD;QACE,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE;YACZ,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;YACzB,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE;gBACvD,CAAC,CAAC,GAAG,IAAI,IAAI,MAAM,EAAE;gBACrB,CAAC,CAAC,EAAE,CAAC;QACT,CAAC;QACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5D,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,SAAS,EAAE,QAAQ,CAAC,SAAS;KAC9B,CACF,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC;KAC5C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"local-agent-tool.js","sourceRoot":"","sources":["../../src/connect/local-agent-tool.ts"],"names":[],"mappings":"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"}