@zackbart/connecta 0.37.1 → 0.39.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/CHANGELOG.md +94 -0
- package/README.md +5 -4
- package/bin/connecta.mjs +1 -39
- package/bin/version.mjs +1 -1
- package/dist/access-tokens.js +2 -4
- package/dist/agent-identity.js +1 -1
- package/dist/agent-routes.js +231 -0
- package/dist/auth/clerk-sdk/generated.js +2 -1
- package/dist/auth/downstream-oauth/consent.js +519 -0
- package/dist/auth/downstream-oauth/grant-store.js +439 -0
- package/dist/auth/downstream-oauth/refresh-coordinator.js +562 -0
- package/dist/auth/downstream-oauth/refresh-records.js +447 -0
- package/dist/auth/downstream-oauth/sdk-hooks.js +242 -0
- package/dist/auth/downstream-oauth.js +66 -2516
- package/dist/auth/downstream-revocation.js +1 -1
- package/dist/auth/native.js +27 -0
- package/dist/auth/oauth-grant.js +24 -0
- package/dist/auth/oauth-token-response.js +1 -1
- package/dist/auth/static-oauth.js +153 -131
- package/dist/auth/vercel-agent.js +2 -1
- package/dist/auth-elicitation.js +9 -3
- package/dist/authorization-handoff.js +11 -5
- package/dist/branding.d.ts +1 -15
- package/dist/branding.js +2 -2
- package/dist/bytes.js +42 -0
- package/dist/call-admission-context.js +2 -5
- package/dist/call-recovery.js +0 -3
- package/dist/catalog-cache.js +130 -43
- package/dist/catalog-fingerprint.js +2 -18
- package/dist/catalog-policy.js +18 -0
- package/dist/catalog-service.js +285 -48
- package/dist/catalog.js +18 -2
- package/dist/config-defaults.d.ts +1 -0
- package/dist/config-defaults.js +1 -0
- package/dist/config-schema.d.ts +1 -1
- package/dist/config-schema.js +6 -2
- package/dist/config.d.ts +57 -25
- package/dist/config.js +30 -77
- package/dist/connector-caller.d.ts +1 -1
- package/dist/connector-health.js +59 -0
- package/dist/connector-status.js +117 -0
- package/dist/connectors/api-connector.d.ts +7 -2
- package/dist/connectors/api-connector.js +11 -7
- package/dist/connectors/guarded-fetch.d.ts +0 -6
- package/dist/connectors/guarded-fetch.js +1 -11
- package/dist/connectors/negotiation-cache.js +22 -4
- package/dist/connectors/remote-mcp/call.js +164 -0
- package/dist/connectors/remote-mcp/catalog.js +278 -0
- package/dist/connectors/remote-mcp/config.js +263 -0
- package/dist/connectors/remote-mcp/connection.js +671 -0
- package/dist/connectors/remote-mcp/errors.js +488 -0
- package/dist/connectors/remote-mcp/oauth.js +469 -0
- package/dist/connectors/remote-mcp/resources.js +473 -0
- package/dist/connectors/remote-mcp/runtime.js +1 -0
- package/dist/connectors/remote-mcp/transport.js +544 -0
- package/dist/connectors/remote-mcp.js +61 -2898
- package/dist/connectors/resource-uri.js +0 -4
- package/dist/credential-contract.d.ts +23 -0
- package/dist/credential-reads.js +17 -0
- package/dist/credential-verification.js +53 -0
- package/dist/credentials.d.ts +7 -0
- package/dist/credentials.js +60 -25
- package/dist/d1.d.ts +0 -89
- package/dist/d1.js +0 -34
- package/dist/describe-config.d.ts +12 -2
- package/dist/describe-config.js +2 -0
- package/dist/discovery-health.js +199 -0
- package/dist/downstream-input.js +4 -2
- package/dist/errors.d.ts +55 -17
- package/dist/errors.js +95 -41
- package/dist/execute.js +172 -125
- package/dist/executor-result.js +5 -2
- package/dist/executors/quickjs-runtime.js +2 -25
- package/dist/executors/quickjs.js +1 -1
- package/dist/guest-functions.js +83 -0
- package/dist/guest-runtime.js +63 -20
- package/dist/guest-types.d.ts +24 -10
- package/dist/http/argument-problems.js +35 -0
- package/dist/http/client.js +1 -1
- package/dist/http/errors.js +7 -6
- package/dist/http/fields.js +192 -13
- package/dist/http/hatch-response.js +73 -0
- package/dist/http/hatch.js +88 -23
- package/dist/http/json-schema.js +1 -1
- package/dist/http/node-transport.js +0 -1
- package/dist/http/oauth.js +4 -3
- package/dist/http/paging.js +6 -9
- package/dist/http/provider.js +33 -5
- package/dist/http/safety.js +9 -1
- package/dist/http/services.js +1 -8
- package/dist/http/tools.js +45 -30
- package/dist/http/vendor.js +7 -7
- package/dist/identity.js +2 -6
- package/dist/index.d.ts +1 -1
- package/dist/index.js +9 -2
- package/dist/invocation-auth.js +2 -1
- package/dist/invocation.js +21 -6
- package/dist/membership.d.ts +13 -5
- package/dist/membership.js +34 -2
- package/dist/meta-tools.js +50 -35
- package/dist/native-recovery.js +4 -16
- package/dist/native-tools.js +6 -2
- package/dist/oauth-handoff.js +2 -2
- package/dist/oauth-sealing.js +10 -0
- package/dist/operation-vocabulary.js +136 -14
- package/dist/operator-record.d.ts +2 -2
- package/dist/operator-record.js +2 -49
- package/dist/operator-ui/contract.d.ts +12 -2
- package/dist/operator-ui/generated.js +3 -3
- package/dist/operator-ui/model.d.ts +22 -1
- package/dist/program-writes.js +3 -8
- package/dist/provider-call.js +0 -7
- package/dist/provider.d.ts +1 -1
- package/dist/providers/_shared/google/kit.js +1 -6
- package/dist/providers/_shared/google/service-account.js +1 -3
- package/dist/providers/_shared/google/workspace.d.ts +1 -1
- package/dist/providers/_shared/guide.js +3 -0
- package/dist/providers/_shared/json.js +12 -0
- package/dist/providers/_shared/rest/compact-index.js +1 -1
- package/dist/providers/_shared/rest/kit.js +1 -3
- package/dist/providers/_shared/rest/operation-index.js +49 -53
- package/dist/providers/_shared/rest/value-safety.js +106 -28
- package/dist/providers/breeze/api.js +9 -8
- package/dist/providers/breeze/index.js +4 -2
- package/dist/providers/breeze/skill.generated.js +1 -1
- package/dist/providers/breeze/tools.js +7 -7
- package/dist/providers/ccb/api.js +3 -7
- package/dist/providers/ccb/index.js +7 -1
- package/dist/providers/ccb/skill.generated.js +1 -1
- package/dist/providers/ccb/tools.js +1 -6
- package/dist/providers/cloudflare/api.js +10 -3
- package/dist/providers/cloudflare/index.js +2 -1
- package/dist/providers/cloudflare/safety.js +3 -3
- package/dist/providers/cloudflare/skill.generated.js +1 -1
- package/dist/providers/docs/lib/schemas.js +24 -22
- package/dist/providers/docs/safety.js +2 -0
- package/dist/providers/docs/skill.generated.js +1 -1
- package/dist/providers/docs/tools.js +4 -14
- package/dist/providers/drive/api.js +1 -0
- package/dist/providers/drive/lib/contracts.js +8 -5
- package/dist/providers/drive/skill.generated.js +1 -1
- package/dist/providers/drive/tools.js +23 -41
- package/dist/providers/forms/api.js +1 -0
- package/dist/providers/forms/skill.generated.js +1 -1
- package/dist/providers/forms/tools.js +11 -16
- package/dist/providers/github/api.js +1 -0
- package/dist/providers/github/lib/discovery.js +1 -1
- package/dist/providers/github/skill.generated.js +1 -1
- package/dist/providers/github/tools.js +61 -17
- package/dist/providers/gmail/lib/schemas.js +60 -50
- package/dist/providers/gmail/skill.generated.js +1 -1
- package/dist/providers/gmail/tools.js +12 -26
- package/dist/providers/granola/index.js +2 -0
- package/dist/providers/granola/skill.generated.js +1 -1
- package/dist/providers/overflow/api.js +8 -4
- package/dist/providers/overflow/index.js +2 -1
- package/dist/providers/overflow/skill.generated.js +1 -1
- package/dist/providers/overflow/tools.js +3 -7
- package/dist/providers/planning-center/api.js +5 -2
- package/dist/providers/planning-center/lib/constants.d.ts +1 -1
- package/dist/providers/planning-center/lib/json-api.js +1 -9
- package/dist/providers/planning-center/skill.generated.js +1 -1
- package/dist/providers/planning-center/tools.js +2 -1
- package/dist/providers/quickbooks/safety.js +80 -39
- package/dist/providers/quickbooks/skill.generated.js +1 -1
- package/dist/providers/sheets/api.js +1 -0
- package/dist/providers/sheets/skill.generated.js +1 -1
- package/dist/providers/sheets/tools.js +14 -23
- package/dist/providers/slides/skill.generated.js +1 -1
- package/dist/providers/slides/tools.js +19 -26
- package/dist/providers/stripe/index.js +2 -1
- package/dist/providers/stripe/safety.js +2 -2
- package/dist/providers/stripe/skill.generated.js +1 -1
- package/dist/providers/tithely/api.js +5 -8
- package/dist/providers/tithely/index.js +3 -2
- package/dist/providers/tithely/skill.generated.js +1 -1
- package/dist/providers/tithely/tools.js +7 -5
- package/dist/providers/vercel/api.js +2 -7
- package/dist/providers/vercel/lib/pin.js +1 -1
- package/dist/providers/vercel/safety.js +1 -1
- package/dist/providers/vercel/skill.generated.js +1 -1
- package/dist/providers/vercel/tools.js +6 -4
- package/dist/redaction-marker.js +2 -2
- package/dist/registry.d.ts +11 -5
- package/dist/registry.js +46 -20
- package/dist/request-principal.js +1 -1
- package/dist/request-state.js +2 -2
- package/dist/routes/access-tokens.js +1 -1
- package/dist/routes/activity-disclosure.js +1 -1
- package/dist/routes/connect.js +2 -2
- package/dist/routes/credentials.js +130 -61
- package/dist/routes/dispatch.js +5 -1
- package/dist/routes/mcp.js +34 -17
- package/dist/routes/oauth-management.js +1 -1
- package/dist/routes/operator.js +6 -5
- package/dist/routes/shared.d.ts +13 -8
- package/dist/routes/shared.js +15 -9
- package/dist/routes/ui-config.js +3 -3
- package/dist/routes/ui-data.js +126 -20
- package/dist/routes/ui.js +17 -1
- package/dist/runtime/call-admission.js +1 -1
- package/dist/runtime/call.js +8 -3
- package/dist/runtime/native-storage.js +9 -0
- package/dist/runtime/request-reads.js +182 -0
- package/dist/runtime/request-scope.js +16 -0
- package/dist/runtime/settlement.js +1 -1
- package/dist/runtime/shared-read.js +2 -15
- package/dist/runtime/storage.js +12 -0
- package/dist/sent-secrets.d.ts +1 -2
- package/dist/sent-secrets.js +3 -8
- package/dist/server.js +4 -4
- package/dist/skills.js +44 -54
- package/dist/sqlite.d.ts +0 -19
- package/dist/sqlite.js +2 -83
- package/dist/storage/keys.js +69 -128
- package/dist/storage/memory.js +8 -2
- package/dist/storage/sql-native.js +27 -101
- package/dist/storage/sql.d.ts +1 -24
- package/dist/storage/sql.js +13 -14
- package/dist/storage-digest.js +32 -0
- package/dist/timeout.js +8 -0
- package/dist/tool-error.js +4 -0
- package/dist/types.d.ts +33 -0
- package/dist/url-safety.js +0 -4
- package/dist/usage-guide.js +18 -37
- package/dist/validate.d.ts +3 -0
- package/dist/validate.js +220 -158
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/worker.js +1 -1
- package/dist/write-outcome.js +0 -3
- package/documentation/README.md +19 -55
- package/documentation/architecture.md +436 -515
- package/documentation/auth.md +229 -88
- package/documentation/code-mode.md +201 -94
- package/documentation/deploying.md +25 -43
- package/documentation/integrating.md +18 -19
- package/documentation/meta-tools.md +225 -51
- package/documentation/migration-0.33.md +10 -6
- package/documentation/migration-0.34.md +5 -5
- package/documentation/migration-retired-layouts.md +74 -0
- package/documentation/operator-tests.md +20 -120
- package/documentation/operator-ui.md +108 -16
- package/documentation/pool-membership-upgrade.md +44 -0
- package/documentation/provider-auth-migration.md +4 -10
- package/documentation/provider-migration-0.29.md +4 -15
- package/documentation/providers.md +105 -0
- package/examples/worker/AGENTS.md +14 -16
- package/examples/worker/README.md +24 -118
- package/examples/worker/src/connecta.config.ts +1 -0
- package/guides/connecting-agents.md +9 -31
- package/guides/how-it-works.md +6 -4
- package/guides/safety-and-trust.md +4 -1
- package/package.json +19 -19
- package/templates/node/AGENTS.md +13 -12
- package/templates/node/README.md +9 -26
- package/templates/node/package.json +1 -1
- package/templates/node/src/connecta.config.ts +1 -0
- package/dist/auth/oauth-v2-migration.js +0 -135
- package/dist/provider-call-facts.d.ts +0 -115
- package/dist/provider-call.d.ts +0 -112
- package/dist/storage/d1-copy.js +0 -255
- package/dist/storage/sql-schema.d.ts +0 -6
- package/examples/worker/kv-to-d1.wrangler.jsonc +0 -26
- package/examples/worker/scripts/copy-kv-to-d1.mjs +0 -162
package/dist/types.d.ts
CHANGED
|
@@ -193,6 +193,14 @@ export interface ConnectorCredentialConfig {
|
|
|
193
193
|
*/
|
|
194
194
|
fields?: ConnectorCredentialFieldConfig[];
|
|
195
195
|
}
|
|
196
|
+
/**
|
|
197
|
+
* Why a credential test did not pass, as a typed fact with no downstream text.
|
|
198
|
+
* `rejected`: the service refused the credential. `scope`: it accepted the
|
|
199
|
+
* credential but refused a permission the connection needs. `unreachable`: the
|
|
200
|
+
* service could not be reached or was unavailable. `timeout`: it did not
|
|
201
|
+
* answer within the test's deadline. `failed`: anything else.
|
|
202
|
+
*/
|
|
203
|
+
export type CredentialFailureClass = "rejected" | "scope" | "unreachable" | "timeout" | "failed";
|
|
196
204
|
export interface CredentialTestResult {
|
|
197
205
|
ok: boolean;
|
|
198
206
|
/**
|
|
@@ -201,6 +209,25 @@ export interface CredentialTestResult {
|
|
|
201
209
|
* `ok`, and the log records only that a test failed.
|
|
202
210
|
*/
|
|
203
211
|
message?: string;
|
|
212
|
+
/**
|
|
213
|
+
* Why a failed test failed. Optional: an unclassified failure is `failed`.
|
|
214
|
+
* Ignored when `ok` is true.
|
|
215
|
+
*/
|
|
216
|
+
failure?: CredentialFailureClass;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* How agent-facing text names Connecta's routes on the surface serving an
|
|
220
|
+
* operation: `call_tool`, `call_destructive_tool`, `search_tools`,
|
|
221
|
+
* `execute_code`, `authorize_connector` and `skills` on the six-tool surface,
|
|
222
|
+
* and other wording where those tools are not listed.
|
|
223
|
+
*/
|
|
224
|
+
export interface AgentRouteNames {
|
|
225
|
+
readonly search: string;
|
|
226
|
+
readonly read: string;
|
|
227
|
+
readonly write: string;
|
|
228
|
+
readonly program: string;
|
|
229
|
+
readonly authorize: string;
|
|
230
|
+
readonly skills: string;
|
|
204
231
|
}
|
|
205
232
|
export interface ConnectorContext {
|
|
206
233
|
/** Explicit downstream consent initiation, never set by status/catalog/calls. */
|
|
@@ -236,6 +263,12 @@ export interface ConnectorContext {
|
|
|
236
263
|
defer?: (promise: Promise<unknown>) => void;
|
|
237
264
|
/** Requested connector-operation deadline in milliseconds. */
|
|
238
265
|
timeoutMs?: number;
|
|
266
|
+
/**
|
|
267
|
+
* Route names for text this operation writes for the agent, such as "call
|
|
268
|
+
* authorize_connector" in an auth error. Connecta sets it on every context
|
|
269
|
+
* it builds; build such text from it rather than spelling a tool name.
|
|
270
|
+
*/
|
|
271
|
+
routes?: AgentRouteNames;
|
|
239
272
|
}
|
|
240
273
|
type ConnectorStatusState = "ok" | "per_caller" | "auth_required" | "credential_required" | "error";
|
|
241
274
|
/** The last agent-facing catalog read this runtime served for one connector. */
|
package/dist/url-safety.js
CHANGED
|
@@ -117,10 +117,6 @@ export function classifyHost(hostname) {
|
|
|
117
117
|
return "loopback";
|
|
118
118
|
return "public";
|
|
119
119
|
}
|
|
120
|
-
/** True for loopback and private hosts alike. */
|
|
121
|
-
export function isPrivateHost(hostname) {
|
|
122
|
-
return classifyHost(hostname) !== "public";
|
|
123
|
-
}
|
|
124
120
|
/**
|
|
125
121
|
* Why connecta must not fetch `target`, a URL the downstream advertised, for a
|
|
126
122
|
* connector configured at `configured` — or undefined when it may.
|
package/dist/usage-guide.js
CHANGED
|
@@ -1,43 +1,36 @@
|
|
|
1
|
+
import { META_ROUTES } from "./agent-routes.js";
|
|
2
|
+
import { UNCOUNTED_GUEST_FUNCTIONS } from "./guest-functions.js";
|
|
1
3
|
/** Self-contained content for the usage skill; independent of skill registration. */
|
|
2
4
|
export const USAGE_SKILL = `---
|
|
3
5
|
name: usage
|
|
4
|
-
description: How to route work between one
|
|
6
|
+
description: How to route work between one ${META_ROUTES.program} program and Connecta's explicit call, authorization, and result tools.
|
|
5
7
|
---
|
|
6
8
|
|
|
7
9
|
# Connecta usage
|
|
8
10
|
|
|
9
11
|
## Choose the route
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
Read one account with call_tool: \`{ "address": "crm.get_account", "args": { "id": "acct_42" } }\`.
|
|
18
|
-
Discover and call together when schemas suffice. search_tools covers catalog
|
|
19
|
-
inspection. On a read-only endpoint, as execute_code's description says, search
|
|
20
|
-
omits writes (guides may name them) and each fails read_only_endpoint; tell the
|
|
21
|
-
user. Unannotated tools fail closed to writes.
|
|
22
|
-
For a requested write, make the call through the write route; the host may ask
|
|
23
|
-
the user to confirm it. Connecta classifies and routes writes; the host owns approval.
|
|
13
|
+
Route as the server instructions and ${META_ROUTES.program}'s first sentence say.
|
|
14
|
+
Read one account with ${META_ROUTES.read}: \`{ "address": "crm.get_account", "args": { "id": "acct_42" } }\`.
|
|
15
|
+
On a read-only endpoint search omits writes (guides may name them) and each
|
|
16
|
+
fails read_only_endpoint; tell the user. Unannotated tools fail closed to writes.
|
|
17
|
+
Connecta classifies and routes a requested write; the host owns approval.
|
|
24
18
|
|
|
25
19
|
## The global and the envelopes
|
|
26
20
|
|
|
27
21
|
Pass JavaScript \`async () => { ... }\`, no arguments. Do not shadow \`connecta\`.
|
|
28
22
|
No imports, require, filesystem, fetch, or timers.
|
|
29
23
|
|
|
30
|
-
|
|
31
|
-
\`connecta.call({ address, args, timeoutMs })
|
|
32
|
-
\`format: "
|
|
33
|
-
when documented as JSON. Verify collection roots.
|
|
24
|
+
\`connecta.call(address, args, { timeoutMs })\` and
|
|
25
|
+
\`connecta.call({ address, args, timeoutMs })\` return \`{ data, format }\`.
|
|
26
|
+
Parse \`format: "text"\` only when documented as JSON. Verify collection roots.
|
|
34
27
|
|
|
35
28
|
\`connecta.read("resource://id/"+encodeURIComponent(uri))\` returns \`{ contents }\` for advertised URIs.
|
|
36
29
|
|
|
37
|
-
Search/describe return \`{ tools }\`, never an array.
|
|
38
|
-
\`catalogErrors
|
|
39
|
-
|
|
40
|
-
\`
|
|
30
|
+
Search/describe return \`{ tools }\`, never an array. Check search's
|
|
31
|
+
\`catalogErrors\` and \`absence\` before selecting a match. Search defaults to a
|
|
32
|
+
TypeScript \`signature\`; text schemas have \`schemaFormat: "text"\` and no .properties.
|
|
33
|
+
A \`readyCalls\` entry is a complete read: \`connecta.call(entry.address, entry.args)\`. Select the exact tool and
|
|
41
34
|
account/environment, inspect its schema, and supply its required keys and types.
|
|
42
35
|
|
|
43
36
|
Discover an unfamiliar read and reduce its result:
|
|
@@ -79,13 +72,13 @@ async () => {
|
|
|
79
72
|
|
|
80
73
|
Host-call budget exhaustion ends the run with budget_exceeded. Catch and
|
|
81
74
|
allSettled cannot recover it or return partial output. Bound batches before
|
|
82
|
-
starting them; every guest call except
|
|
75
|
+
starting them; every guest call except ${UNCOUNTED_GUEST_FUNCTIONS} spends host calls.
|
|
83
76
|
Split remaining reads. Never replay writes for their output.
|
|
84
77
|
|
|
85
78
|
## Per-connector guides
|
|
86
79
|
|
|
87
|
-
Fetch a listed guide
|
|
88
|
-
inside a program; it returns \`{ name, text, format: "text" }\`.
|
|
80
|
+
Fetch a listed guide by its exact name with the skills tool, or
|
|
81
|
+
\`connecta.skill(name)\` inside a program; it returns \`{ name, text, format: "text" }\`.
|
|
89
82
|
\`guideRequired: true\` is a hard stop. connector_required and approval_required
|
|
90
83
|
remain after schema expansion; schema_truncated clears after exact describe.
|
|
91
84
|
Otherwise fetch for units, pagination, aliases, or sequences.
|
|
@@ -134,15 +127,3 @@ base64 and PNG/JPEG/GIF/WebP MIME. Emit works without await, delivers on success
|
|
|
134
127
|
and obeys byte/block budgets; text shares the return cap. Return reduced JSON.
|
|
135
128
|
|
|
136
129
|
`;
|
|
137
|
-
/** Kept in sync with GuestApi by the declaration test. These are type notation, not runnable JS. */
|
|
138
|
-
export const GUEST_API_DECLARATION = `search(args?: CatalogSearchArgs): Promise<CatalogSearchResult>;
|
|
139
|
-
describe(args?: CatalogDescribeArgs): Promise<{ tools: CatalogDescription[] }>;
|
|
140
|
-
call(address: string, args?: unknown, options?: { timeoutMs?: number }): Promise<GuestResult>;
|
|
141
|
-
call(request: { address: string; args?: unknown; timeoutMs?: number }): Promise<GuestResult>;
|
|
142
|
-
read(uri: string): Promise<GuestResourceResult>;
|
|
143
|
-
result(
|
|
144
|
-
id: string | GuestResultHandle,
|
|
145
|
-
options?: { page?: number; offset?: number; maxBytes?: number },
|
|
146
|
-
): Promise<GuestResultPage>;
|
|
147
|
-
skill(name: string): Promise<{ name: string; text: string; format: "text" }>;
|
|
148
|
-
emit(block: GuestNativeBlock | GuestResult): PromiseLike<void>;`;
|
package/dist/validate.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ConnectorCallError } from "./errors.js";
|
|
2
|
+
import type { ArgumentValidationDetails } from "./errors.js";
|
|
2
3
|
import { type FailureSubject } from "./operator-record.js";
|
|
3
4
|
import type { JsonSchema, Logger } from "./types.js";
|
|
4
5
|
export interface ValidateToolInputOptions {
|
|
@@ -31,6 +32,8 @@ export interface CompileValidatorOptions {
|
|
|
31
32
|
}
|
|
32
33
|
/** Optional in-process properties have the same absence semantics as JSON input. Never mutate the caller. */
|
|
33
34
|
export declare function normalizeToolInput<A>(value: A): A;
|
|
35
|
+
/** One example synthesized from the published schema alone, checked by its validator; never caller values. */
|
|
36
|
+
export declare function schemaExample(schema: JsonSchema): Pick<ArgumentValidationDetails, "example" | "exampleUnavailable">;
|
|
34
37
|
/**
|
|
35
38
|
* Validate call arguments against a tool's JSON Schema.
|
|
36
39
|
*
|