@aexhq/sdk 0.46.4-canary → 0.50.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/LICENSE +201 -0
- package/NOTICE +38 -0
- package/README.md +23 -31
- package/dist/client/aex.d.ts +33 -0
- package/dist/client/aex.js +98 -0
- package/dist/client/aex.js.map +1 -0
- package/dist/client/credentials.d.ts +25 -0
- package/dist/client/credentials.js +97 -0
- package/dist/client/credentials.js.map +1 -0
- package/dist/client/routing.d.ts +7 -0
- package/dist/client/routing.js +29 -0
- package/dist/client/routing.js.map +1 -0
- package/dist/downloads/download.d.ts +25 -0
- package/dist/downloads/download.js +53 -0
- package/dist/downloads/download.js.map +1 -0
- package/dist/generated/errors.d.ts +12 -0
- package/dist/generated/errors.js +81 -0
- package/dist/generated/errors.js.map +1 -0
- package/dist/generated/resources.d.ts +730 -0
- package/dist/generated/resources.js +606 -0
- package/dist/generated/resources.js.map +1 -0
- package/dist/generated/routes.d.ts +42 -0
- package/dist/generated/routes.js +2101 -0
- package/dist/generated/routes.js.map +1 -0
- package/dist/index.d.ts +20 -50
- package/dist/index.js +11 -62
- package/dist/index.js.map +1 -1
- package/dist/observations/stream.d.ts +1 -0
- package/dist/observations/stream.js +18 -0
- package/dist/observations/stream.js.map +1 -0
- package/dist/transport/errors.d.ts +60 -0
- package/dist/transport/errors.js +107 -0
- package/dist/transport/errors.js.map +1 -0
- package/dist/transport/pagination.d.ts +8 -0
- package/dist/transport/pagination.js +34 -0
- package/dist/transport/pagination.js.map +1 -0
- package/dist/transport/retry.d.ts +21 -0
- package/dist/transport/retry.js +37 -0
- package/dist/transport/retry.js.map +1 -0
- package/dist/transport/transport.d.ts +25 -0
- package/dist/transport/transport.js +28 -0
- package/dist/transport/transport.js.map +1 -0
- package/package.json +63 -30
- package/dist/_contracts/account-operations.d.ts +0 -101
- package/dist/_contracts/account-operations.js +0 -242
- package/dist/_contracts/account-types.d.ts +0 -461
- package/dist/_contracts/account-types.js +0 -1
- package/dist/_contracts/api-key.d.ts +0 -61
- package/dist/_contracts/api-key.js +0 -101
- package/dist/_contracts/api-routes.d.ts +0 -20
- package/dist/_contracts/api-routes.js +0 -109
- package/dist/_contracts/archive-limits.d.ts +0 -3
- package/dist/_contracts/archive-limits.js +0 -23
- package/dist/_contracts/asset-authoring.d.ts +0 -22
- package/dist/_contracts/asset-authoring.js +0 -106
- package/dist/_contracts/asset-bundle.d.ts +0 -64
- package/dist/_contracts/asset-bundle.js +0 -263
- package/dist/_contracts/asset-upload-helper.d.ts +0 -31
- package/dist/_contracts/asset-upload-helper.js +0 -84
- package/dist/_contracts/billing-admission.d.ts +0 -29
- package/dist/_contracts/billing-admission.js +0 -28
- package/dist/_contracts/bundle-manifest.d.ts +0 -89
- package/dist/_contracts/bundle-manifest.js +0 -158
- package/dist/_contracts/canonical-sha256.d.ts +0 -8
- package/dist/_contracts/canonical-sha256.js +0 -8
- package/dist/_contracts/connection-ticket.d.ts +0 -22
- package/dist/_contracts/connection-ticket.js +0 -54
- package/dist/_contracts/continuation-event.d.ts +0 -31
- package/dist/_contracts/continuation-event.js +0 -6
- package/dist/_contracts/contract-parse-error.d.ts +0 -12
- package/dist/_contracts/contract-parse-error.js +0 -51
- package/dist/_contracts/error-codes.d.ts +0 -26
- package/dist/_contracts/error-codes.js +0 -116
- package/dist/_contracts/error-factory.d.ts +0 -32
- package/dist/_contracts/error-factory.js +0 -174
- package/dist/_contracts/event-envelope.d.ts +0 -471
- package/dist/_contracts/event-envelope.js +0 -501
- package/dist/_contracts/event-stream-client.d.ts +0 -122
- package/dist/_contracts/event-stream-client.js +0 -445
- package/dist/_contracts/event-view.d.ts +0 -44
- package/dist/_contracts/event-view.js +0 -69
- package/dist/_contracts/failure-class.d.ts +0 -29
- package/dist/_contracts/failure-class.js +0 -73
- package/dist/_contracts/http.d.ts +0 -135
- package/dist/_contracts/http.js +0 -434
- package/dist/_contracts/ids.d.ts +0 -66
- package/dist/_contracts/ids.js +0 -119
- package/dist/_contracts/index.d.ts +0 -42
- package/dist/_contracts/index.js +0 -52
- package/dist/_contracts/internal.d.ts +0 -55
- package/dist/_contracts/internal.js +0 -113
- package/dist/_contracts/models.d.ts +0 -30
- package/dist/_contracts/models.js +0 -28
- package/dist/_contracts/operation-core.d.ts +0 -36
- package/dist/_contracts/operation-core.js +0 -70
- package/dist/_contracts/operations.d.ts +0 -218
- package/dist/_contracts/operations.js +0 -1496
- package/dist/_contracts/otlp-projection.d.ts +0 -78
- package/dist/_contracts/otlp-projection.js +0 -171
- package/dist/_contracts/post-hook.d.ts +0 -31
- package/dist/_contracts/post-hook.js +0 -61
- package/dist/_contracts/provider-fault.d.ts +0 -34
- package/dist/_contracts/provider-fault.js +0 -68
- package/dist/_contracts/retry-core.d.ts +0 -29
- package/dist/_contracts/retry-core.js +0 -79
- package/dist/_contracts/runner-event.d.ts +0 -117
- package/dist/_contracts/runner-event.js +0 -172
- package/dist/_contracts/runtime-kind.d.ts +0 -60
- package/dist/_contracts/runtime-kind.js +0 -70
- package/dist/_contracts/runtime-manifest.d.ts +0 -121
- package/dist/_contracts/runtime-manifest.js +0 -83
- package/dist/_contracts/runtime-security-profile.d.ts +0 -26
- package/dist/_contracts/runtime-security-profile.js +0 -73
- package/dist/_contracts/runtime-sizes.d.ts +0 -104
- package/dist/_contracts/runtime-sizes.js +0 -111
- package/dist/_contracts/runtime-types.d.ts +0 -618
- package/dist/_contracts/runtime-types.js +0 -58
- package/dist/_contracts/schemas/asset-bundle.d.ts +0 -70
- package/dist/_contracts/schemas/asset-bundle.js +0 -107
- package/dist/_contracts/schemas/asset-ref.d.ts +0 -61
- package/dist/_contracts/schemas/asset-ref.js +0 -118
- package/dist/_contracts/schemas/bundle-manifest.d.ts +0 -66
- package/dist/_contracts/schemas/bundle-manifest.js +0 -77
- package/dist/_contracts/schemas/index.d.ts +0 -32
- package/dist/_contracts/schemas/index.js +0 -30
- package/dist/_contracts/schemas/mcp-server.d.ts +0 -99
- package/dist/_contracts/schemas/mcp-server.js +0 -209
- package/dist/_contracts/schemas/models.d.ts +0 -29
- package/dist/_contracts/schemas/models.js +0 -51
- package/dist/_contracts/schemas/numeric.d.ts +0 -18
- package/dist/_contracts/schemas/numeric.js +0 -28
- package/dist/_contracts/schemas/post-hook.d.ts +0 -45
- package/dist/_contracts/schemas/post-hook.js +0 -68
- package/dist/_contracts/schemas/response-assets.d.ts +0 -75
- package/dist/_contracts/schemas/response-assets.js +0 -81
- package/dist/_contracts/schemas/response-billing.d.ts +0 -208
- package/dist/_contracts/schemas/response-billing.js +0 -139
- package/dist/_contracts/schemas/response-common.d.ts +0 -132
- package/dist/_contracts/schemas/response-common.js +0 -162
- package/dist/_contracts/schemas/response-identity.d.ts +0 -648
- package/dist/_contracts/schemas/response-identity.js +0 -131
- package/dist/_contracts/schemas/response-mcp-servers.d.ts +0 -51
- package/dist/_contracts/schemas/response-mcp-servers.js +0 -32
- package/dist/_contracts/schemas/response-secrets.d.ts +0 -50
- package/dist/_contracts/schemas/response-secrets.js +0 -32
- package/dist/_contracts/schemas/response-sessions-internal.d.ts +0 -200
- package/dist/_contracts/schemas/response-sessions-internal.js +0 -142
- package/dist/_contracts/schemas/response-sessions.d.ts +0 -1598
- package/dist/_contracts/schemas/response-sessions.js +0 -377
- package/dist/_contracts/schemas/response-webhooks.d.ts +0 -76
- package/dist/_contracts/schemas/response-webhooks.js +0 -42
- package/dist/_contracts/schemas/response-workspace.d.ts +0 -225
- package/dist/_contracts/schemas/response-workspace.js +0 -99
- package/dist/_contracts/schemas/runtime-kind.d.ts +0 -31
- package/dist/_contracts/schemas/runtime-kind.js +0 -29
- package/dist/_contracts/schemas/runtime-security-profile.d.ts +0 -28
- package/dist/_contracts/schemas/runtime-security-profile.js +0 -26
- package/dist/_contracts/schemas/runtime-sizes.d.ts +0 -70
- package/dist/_contracts/schemas/runtime-sizes.js +0 -127
- package/dist/_contracts/schemas/session-limits.d.ts +0 -34
- package/dist/_contracts/schemas/session-limits.js +0 -39
- package/dist/_contracts/schemas/session-machine.d.ts +0 -23
- package/dist/_contracts/schemas/session-machine.js +0 -24
- package/dist/_contracts/schemas/session-request-config.d.ts +0 -58
- package/dist/_contracts/schemas/session-request-config.js +0 -134
- package/dist/_contracts/schemas/session-webhook.d.ts +0 -11
- package/dist/_contracts/schemas/session-webhook.js +0 -38
- package/dist/_contracts/schemas/side-effect-audit.d.ts +0 -98
- package/dist/_contracts/schemas/side-effect-audit.js +0 -102
- package/dist/_contracts/schemas/submission-assets.d.ts +0 -117
- package/dist/_contracts/schemas/submission-assets.js +0 -147
- package/dist/_contracts/schemas/submission-body.d.ts +0 -251
- package/dist/_contracts/schemas/submission-body.js +0 -378
- package/dist/_contracts/schemas/submission-environment.d.ts +0 -79
- package/dist/_contracts/schemas/submission-environment.js +0 -179
- package/dist/_contracts/schemas/submission-request.d.ts +0 -158
- package/dist/_contracts/schemas/submission-request.js +0 -49
- package/dist/_contracts/schemas/submission-secrets.d.ts +0 -47
- package/dist/_contracts/schemas/submission-secrets.js +0 -108
- package/dist/_contracts/schemas/wire.d.ts +0 -118
- package/dist/_contracts/schemas/wire.js +0 -171
- package/dist/_contracts/schemas/workspace-resources.d.ts +0 -50
- package/dist/_contracts/schemas/workspace-resources.js +0 -87
- package/dist/_contracts/sdk-errors.d.ts +0 -212
- package/dist/_contracts/sdk-errors.js +0 -313
- package/dist/_contracts/sdk-secrets.d.ts +0 -67
- package/dist/_contracts/sdk-secrets.js +0 -427
- package/dist/_contracts/session-archive.d.ts +0 -16
- package/dist/_contracts/session-archive.js +0 -92
- package/dist/_contracts/session-artifacts.d.ts +0 -189
- package/dist/_contracts/session-artifacts.js +0 -264
- package/dist/_contracts/session-config.d.ts +0 -373
- package/dist/_contracts/session-config.js +0 -562
- package/dist/_contracts/session-cost-types.d.ts +0 -211
- package/dist/_contracts/session-cost-types.js +0 -69
- package/dist/_contracts/session-cost.d.ts +0 -8
- package/dist/_contracts/session-cost.js +0 -582
- package/dist/_contracts/session-custody.d.ts +0 -165
- package/dist/_contracts/session-custody.js +0 -345
- package/dist/_contracts/session-file-query.d.ts +0 -14
- package/dist/_contracts/session-file-query.js +0 -178
- package/dist/_contracts/session-record.d.ts +0 -112
- package/dist/_contracts/session-record.js +0 -165
- package/dist/_contracts/session-retention.d.ts +0 -201
- package/dist/_contracts/session-retention.js +0 -450
- package/dist/_contracts/side-effect-audit.d.ts +0 -126
- package/dist/_contracts/side-effect-audit.js +0 -520
- package/dist/_contracts/sse.d.ts +0 -74
- package/dist/_contracts/sse.js +0 -227
- package/dist/_contracts/stable.d.ts +0 -45
- package/dist/_contracts/stable.js +0 -62
- package/dist/_contracts/status.d.ts +0 -25
- package/dist/_contracts/status.js +0 -57
- package/dist/_contracts/submission-limits.d.ts +0 -61
- package/dist/_contracts/submission-limits.js +0 -60
- package/dist/_contracts/submission.d.ts +0 -547
- package/dist/_contracts/submission.js +0 -812
- package/dist/_contracts/suggest.d.ts +0 -15
- package/dist/_contracts/suggest.js +0 -53
- package/dist/_contracts/testing/response-bindings.d.ts +0 -45
- package/dist/_contracts/testing/response-bindings.js +0 -256
- package/dist/_contracts/testing/wire-conformance-entry.d.ts +0 -10
- package/dist/_contracts/testing/wire-conformance-entry.js +0 -8
- package/dist/_contracts/testing/wire-conformance.d.ts +0 -169
- package/dist/_contracts/testing/wire-conformance.js +0 -276
- package/dist/_contracts/turn-trace.d.ts +0 -28
- package/dist/_contracts/turn-trace.js +0 -1
- package/dist/_contracts/unknown-field-error.d.ts +0 -13
- package/dist/_contracts/unknown-field-error.js +0 -21
- package/dist/_contracts/value-guards.d.ts +0 -20
- package/dist/_contracts/value-guards.js +0 -34
- package/dist/_contracts/webhook-verify.d.ts +0 -34
- package/dist/_contracts/webhook-verify.js +0 -93
- package/dist/_contracts/wire-observer.d.ts +0 -49
- package/dist/_contracts/wire-observer.js +0 -34
- package/dist/_contracts/workflow-status.d.ts +0 -7
- package/dist/_contracts/workflow-status.js +0 -43
- package/dist/_contracts/workspace-resources.d.ts +0 -98
- package/dist/_contracts/workspace-resources.js +0 -39
- package/dist/archive-limits.d.ts +0 -1
- package/dist/archive-limits.js +0 -2
- package/dist/archive-limits.js.map +0 -1
- package/dist/asset-upload.d.ts +0 -47
- package/dist/asset-upload.js +0 -269
- package/dist/asset-upload.js.map +0 -1
- package/dist/bundle.d.ts +0 -9
- package/dist/bundle.js +0 -20
- package/dist/bundle.js.map +0 -1
- package/dist/canonical-zip.d.ts +0 -68
- package/dist/canonical-zip.js +0 -355
- package/dist/canonical-zip.js.map +0 -1
- package/dist/cli.mjs +0 -12048
- package/dist/cli.mjs.sha256 +0 -1
- package/dist/client-types.d.ts +0 -192
- package/dist/client-types.js +0 -2
- package/dist/client-types.js.map +0 -1
- package/dist/client.d.ts +0 -464
- package/dist/client.js +0 -1207
- package/dist/client.js.map +0 -1
- package/dist/event-projection.d.ts +0 -22
- package/dist/event-projection.js +0 -380
- package/dist/event-projection.js.map +0 -1
- package/dist/fetch-archive.d.ts +0 -16
- package/dist/fetch-archive.js +0 -252
- package/dist/fetch-archive.js.map +0 -1
- package/dist/file.d.ts +0 -96
- package/dist/file.js +0 -272
- package/dist/file.js.map +0 -1
- package/dist/instructions.d.ts +0 -20
- package/dist/instructions.js +0 -40
- package/dist/instructions.js.map +0 -1
- package/dist/legacy-session-provider-fault.d.ts +0 -7
- package/dist/legacy-session-provider-fault.js +0 -38
- package/dist/legacy-session-provider-fault.js.map +0 -1
- package/dist/mcp-server.d.ts +0 -84
- package/dist/mcp-server.js +0 -117
- package/dist/mcp-server.js.map +0 -1
- package/dist/node-fs.d.ts +0 -29
- package/dist/node-fs.js +0 -19
- package/dist/node-fs.js.map +0 -1
- package/dist/node-walk.d.ts +0 -69
- package/dist/node-walk.js +0 -151
- package/dist/node-walk.js.map +0 -1
- package/dist/path-basename.d.ts +0 -5
- package/dist/path-basename.js +0 -9
- package/dist/path-basename.js.map +0 -1
- package/dist/retry.d.ts +0 -70
- package/dist/retry.js +0 -155
- package/dist/retry.js.map +0 -1
- package/dist/secret.d.ts +0 -65
- package/dist/secret.js +0 -110
- package/dist/secret.js.map +0 -1
- package/dist/session-validate.d.ts +0 -100
- package/dist/session-validate.js +0 -303
- package/dist/session-validate.js.map +0 -1
- package/dist/skill.d.ts +0 -99
- package/dist/skill.js +0 -169
- package/dist/skill.js.map +0 -1
- package/dist/submission-wire.d.ts +0 -13
- package/dist/submission-wire.js +0 -69
- package/dist/submission-wire.js.map +0 -1
- package/dist/tool.d.ts +0 -41
- package/dist/tool.js +0 -76
- package/dist/tool.js.map +0 -1
- package/dist/version.d.ts +0 -9
- package/dist/version.js +0 -10
- package/dist/version.js.map +0 -1
- package/docs/authentication.md +0 -125
- package/docs/billing.md +0 -164
- package/docs/cleanup.md +0 -27
- package/docs/concepts/agent-tools.md +0 -47
- package/docs/concepts/composition.md +0 -60
- package/docs/concepts/providers-and-runtimes.md +0 -121
- package/docs/concepts/sessions.md +0 -51
- package/docs/concepts/subagents.md +0 -35
- package/docs/credentials.md +0 -116
- package/docs/defaults.md +0 -51
- package/docs/errors.md +0 -258
- package/docs/events.md +0 -143
- package/docs/files.md +0 -130
- package/docs/limits-and-quotas.md +0 -114
- package/docs/limits.md +0 -51
- package/docs/mcp.md +0 -47
- package/docs/networking.md +0 -114
- package/docs/provider-runtime-capabilities.md +0 -32
- package/docs/public-surface.json +0 -73
- package/docs/quickstart.md +0 -135
- package/docs/release.md +0 -44
- package/docs/retries.md +0 -108
- package/docs/secrets.md +0 -141
- package/docs/session-config.md +0 -51
- package/docs/session-record.md +0 -58
- package/docs/skills.md +0 -65
- package/docs/telemetry.md +0 -66
- package/docs/testing.md +0 -35
- package/docs/vision-skills.md +0 -94
- package/docs/webhooks.md +0 -143
|
@@ -1,547 +0,0 @@
|
|
|
1
|
-
import type { McpServerRef } from "./session-config.js";
|
|
2
|
-
import { type RuntimeSize } from "./runtime-sizes.js";
|
|
3
|
-
import type { RuntimeKind } from "./runtime-kind.js";
|
|
4
|
-
import type { ModelName } from "./models.js";
|
|
5
|
-
import type { RuntimeSecurityProfileName } from "./runtime-security-profile.js";
|
|
6
|
-
import type { SubmissionAssets } from "./workspace-resources.js";
|
|
7
|
-
import { OUTPUT_MODES, RESPONSE_FORMAT_KINDS } from "./schemas/submission-body.js";
|
|
8
|
-
import { type JsonValue } from "./value-guards.js";
|
|
9
|
-
export type { JsonPrimitive, JsonValue } from "./value-guards.js";
|
|
10
|
-
/**
|
|
11
|
-
* Networking + runtime-package snapshot carried inside a flat submission
|
|
12
|
-
* so the hosted API can deep-clone and mutate it per session (e.g. injecting the
|
|
13
|
-
* proxy hostname into `allowed_hosts`) without sharing state across
|
|
14
|
-
* concurrent sessions.
|
|
15
|
-
*
|
|
16
|
-
* `envVars` is the customer-controlled key/value bag delivered into the
|
|
17
|
-
* managed container process and mirrored in the mounted `RUNTIME.env` /
|
|
18
|
-
* `RUNTIME.json` files. The same keys become `__KEY__` substitution targets
|
|
19
|
-
* in agent-facing markdown inside skill / instruction / file bundles. Aex-set
|
|
20
|
-
* runtime keys use the reserved `AEX_*` prefix; customer keys MUST NOT
|
|
21
|
-
* collide with that prefix.
|
|
22
|
-
*/
|
|
23
|
-
export interface PlatformEnvironment {
|
|
24
|
-
readonly networking?: PlatformNetworking;
|
|
25
|
-
readonly packages?: readonly PlatformPackage[];
|
|
26
|
-
readonly envVars?: Readonly<Record<string, string>>;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Wire/input form of {@link PlatformEnvironment}, i.e. what a customer hands
|
|
30
|
-
* to the SDK / sends to the submission endpoint BEFORE parsing. Identical to
|
|
31
|
-
* the parsed shape except `packages` use the customer-supplied
|
|
32
|
-
* {@link PlatformPackageInput} (prefixed name, no `ecosystem`). The shared
|
|
33
|
-
* parser resolves it into a {@link PlatformEnvironment}.
|
|
34
|
-
*/
|
|
35
|
-
export type PlatformEnvironmentInput = Omit<PlatformEnvironment, "packages"> & {
|
|
36
|
-
readonly packages?: readonly PlatformPackageInput[];
|
|
37
|
-
};
|
|
38
|
-
export { AEX_RESERVED_ENV_PREFIX, ENV_VARS_MAX_ENTRIES, ENV_VARS_MAX_VALUE_BYTES, ENV_VARS_MAX_TOTAL_BYTES, PLATFORM_PACKAGE_ECOSYSTEMS } from "./submission-limits.js";
|
|
39
|
-
export type { PlatformPackageEcosystem } from "./submission-limits.js";
|
|
40
|
-
import type { PlatformPackageEcosystem } from "./submission-limits.js";
|
|
41
|
-
export interface PlatformNetworking {
|
|
42
|
-
readonly mode: "limited" | "open";
|
|
43
|
-
/** Lowercase host names. The hosted API always appends the proxy host. */
|
|
44
|
-
readonly allowedHosts?: readonly string[];
|
|
45
|
-
}
|
|
46
|
-
export interface PlatformPackage {
|
|
47
|
-
readonly name: string;
|
|
48
|
-
readonly version?: string;
|
|
49
|
-
readonly ecosystem: PlatformPackageEcosystem;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Submission package as the CUSTOMER supplies it on the wire: the target
|
|
53
|
-
* ecosystem is encoded as an optional `name` prefix (`"pip:pandas"`,
|
|
54
|
-
* `"npm:express"`, `"apt:ffmpeg"`; an unprefixed name defaults to `apt`).
|
|
55
|
-
* Customers never set `ecosystem` directly — `parsePackages` resolves it and
|
|
56
|
-
* the submission schema rejects `ecosystem` as an unknown field. The parsed
|
|
57
|
-
* result is a {@link PlatformPackage} (bare `name` + explicit `ecosystem`).
|
|
58
|
-
*/
|
|
59
|
-
export interface PlatformPackageInput {
|
|
60
|
-
readonly name: string;
|
|
61
|
-
readonly version?: string;
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Render a parsed {@link PlatformPackage} as the version-embedded install
|
|
65
|
-
* string used by runtime materialization. The join differs per manager:
|
|
66
|
-
* - pip → `name==version`
|
|
67
|
-
* - npm → `name@version`
|
|
68
|
-
* - apt → `name=version`
|
|
69
|
-
* With no `version`, just the bare `name`. Pure; used by the managed runner
|
|
70
|
-
* package installer.
|
|
71
|
-
*/
|
|
72
|
-
export declare function packageInstallString(pkg: PlatformPackage): string;
|
|
73
|
-
/**
|
|
74
|
-
* A serving-provider label. Under the managed Vercel AI Gateway there is NO
|
|
75
|
-
* public provider selector and no closed provider set — routing is the
|
|
76
|
-
* gateway's job. This thin alias survives only because telemetry / cost /
|
|
77
|
-
* custody records still carry the *serving provider string* reported by the
|
|
78
|
-
* gateway's generation info (e.g. `"anthropic"`, `"deepseek"`); it is an open
|
|
79
|
-
* string, never a customer input.
|
|
80
|
-
*/
|
|
81
|
-
export type ProviderName = string;
|
|
82
|
-
export interface PlatformMcpServerSecret {
|
|
83
|
-
readonly name: string;
|
|
84
|
-
readonly url: string;
|
|
85
|
-
readonly headers?: Record<string, string>;
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Per-session inline secrets bundle. Under managed gateway keys the customer
|
|
89
|
-
* supplies NO provider API keys — the platform's single managed gateway key
|
|
90
|
-
* routes all model traffic. This bundle carries only non-LLM secret material:
|
|
91
|
-
* `mcpServers` credentials (an MCP credential is the same secret whichever
|
|
92
|
-
* model is driving the MCP client) and per-session `envSecrets`.
|
|
93
|
-
*/
|
|
94
|
-
export interface PlatformInlineSecrets {
|
|
95
|
-
readonly mcpServers?: readonly PlatformMcpServerSecret[];
|
|
96
|
-
/**
|
|
97
|
-
* Per-session env-var secret VALUES, keyed by env name. Each entry pairs with a
|
|
98
|
-
* `submission.secretEnv[<envName>] = { ephemeral: true }` declaration. Lives
|
|
99
|
-
* in the secrets channel so it is vaulted and excluded from the idempotency
|
|
100
|
-
* hash; the runtime injects it as the named env var and it is deleted at the
|
|
101
|
-
* session's terminal. Workspace `{ ref }` bindings resolve server-side and never
|
|
102
|
-
* appear here.
|
|
103
|
-
*/
|
|
104
|
-
readonly envSecrets?: Readonly<Record<string, string>>;
|
|
105
|
-
}
|
|
106
|
-
export declare const SECRETS_KEY = "secrets";
|
|
107
|
-
/**
|
|
108
|
-
* The `secretEnv` grammars, declared in the leaf bounds module so
|
|
109
|
-
* `schemas/submission-body.ts` can enforce them without importing this file
|
|
110
|
-
* back, and re-exported here so the published surface is unchanged.
|
|
111
|
-
*/
|
|
112
|
-
export { SECRET_ENV_NAME_PATTERN, SECRET_HANDLE_PATTERN } from "./submission-limits.js";
|
|
113
|
-
/**
|
|
114
|
-
* One `submission.secretEnv` entry — VALUE-FREE, so it rides the (hashed)
|
|
115
|
-
* submission safely. `{ ref }` resolves a workspace secret server-side;
|
|
116
|
-
* `{ ephemeral: true }` pairs with a `secrets.envSecrets[<envName>]` value
|
|
117
|
-
* (per-session, vaulted, deleted at the session's terminal).
|
|
118
|
-
*/
|
|
119
|
-
export type PlatformSecretEnvEntry = {
|
|
120
|
-
readonly ref: string;
|
|
121
|
-
} | {
|
|
122
|
-
readonly ephemeral: true;
|
|
123
|
-
};
|
|
124
|
-
export declare const deniedSecretFields: Set<string>;
|
|
125
|
-
/**
|
|
126
|
-
* Cross-check `submission.secretEnv` declarations against `secrets.envSecrets`
|
|
127
|
-
* values:
|
|
128
|
-
*
|
|
129
|
-
* - `{ ephemeral: true }` MUST have a matching `secrets.envSecrets` value.
|
|
130
|
-
* - `{ ref }` MUST NOT supply a value (the value lives in the workspace store).
|
|
131
|
-
* - every `secrets.envSecrets` value MUST have a matching `{ ephemeral: true }`
|
|
132
|
-
* declaration (no orphan values that would never be injected).
|
|
133
|
-
*/
|
|
134
|
-
export declare function crossValidateSecretEnvAndValues(secretEnv: Readonly<Record<string, PlatformSecretEnvEntry>> | undefined, envSecrets: Readonly<Record<string, string>> | undefined): void;
|
|
135
|
-
export declare function parseInlineSecrets(input: unknown): PlatformInlineSecrets;
|
|
136
|
-
export declare function assertNoSecretBearingFields(input: unknown, path: readonly string[]): void;
|
|
137
|
-
export declare function requireRecord(input: unknown, field: string): Record<string, unknown>;
|
|
138
|
-
export declare function requireString(input: unknown, field: string): string;
|
|
139
|
-
export declare function optionalString(input: unknown, field: string): string | undefined;
|
|
140
|
-
export declare function optionalEnum<const T extends readonly string[]>(input: unknown, field: string, allowed: T): T[number] | undefined;
|
|
141
|
-
export declare function optionalPositiveInt(input: unknown, field: string): number | undefined;
|
|
142
|
-
/**
|
|
143
|
-
* A finite positive NUMBER (fractional allowed — e.g. a USD amount like `2.5`), or
|
|
144
|
-
* undefined when absent. Rejects non-numbers, NaN/Infinity, and `<= 0`.
|
|
145
|
-
*/
|
|
146
|
-
export declare function optionalPositiveNumber(input: unknown, field: string): number | undefined;
|
|
147
|
-
/**
|
|
148
|
-
* Wire-level submission posted to /api/sessions in the flat surface. The
|
|
149
|
-
* `prompt` is always an array internally so the hosted API, the audit log,
|
|
150
|
-
* and the BFF idempotency hash all see one shape. `mcpServers` carries
|
|
151
|
-
* only the non-secret half; bearer headers travel in
|
|
152
|
-
* `secrets.mcpServers` keyed by `name`.
|
|
153
|
-
*
|
|
154
|
-
* Reusable resources are immutable, version-pinned refs grouped under `assets`.
|
|
155
|
-
* Builtin capabilities and MCP servers remain separate submission fields.
|
|
156
|
-
*/
|
|
157
|
-
export interface PlatformSubmission {
|
|
158
|
-
readonly model: ModelName;
|
|
159
|
-
readonly system?: string;
|
|
160
|
-
readonly prompt: readonly string[];
|
|
161
|
-
/** Immutable, version-pinned workspace resources materialized for this run. */
|
|
162
|
-
readonly assets: SubmissionAssets;
|
|
163
|
-
readonly mcpServers: readonly McpServerRef[];
|
|
164
|
-
/**
|
|
165
|
-
* Env-var secret bindings — VALUE-FREE declarations keyed by env name. Each
|
|
166
|
-
* value is `{ ref }` (resolve a workspace secret server-side) or
|
|
167
|
-
* `{ ephemeral: true }` (value supplied in `secrets.envSecrets`, vaulted and
|
|
168
|
-
* deleted at terminal). The runtime injects the resolved value as the named
|
|
169
|
-
* env var. Lifecycle parity with skills/files: per-session by default, persisted
|
|
170
|
-
* only when promoted to the workspace store.
|
|
171
|
-
*/
|
|
172
|
-
readonly secretEnv?: Readonly<Record<string, PlatformSecretEnvEntry>>;
|
|
173
|
-
readonly environment?: PlatformEnvironment;
|
|
174
|
-
readonly securityProfile?: RuntimeSecurityProfileName;
|
|
175
|
-
readonly metadata?: Record<string, JsonValue>;
|
|
176
|
-
/**
|
|
177
|
-
* File capture policy. Omit `fileCapture.allowedDirs` to expose regular
|
|
178
|
-
* workspace files from the latest complete checkpoint; provide it to narrow
|
|
179
|
-
* capture to the listed roots. `fileCapture.deniedDirs` subtracts denied
|
|
180
|
-
* roots/patterns from the allowed set.
|
|
181
|
-
*/
|
|
182
|
-
readonly fileCapture?: PlatformFileCaptureConfig;
|
|
183
|
-
/** Builtin capabilities are separate from uploaded custom-tool assets. */
|
|
184
|
-
readonly builtinTools: BuiltinToolsSelection;
|
|
185
|
-
/**
|
|
186
|
-
* Assistant-output granularity. `buffered` (the default) emits one event per
|
|
187
|
-
* assistant message; `stream` emits the agent's per-token text deltas as they
|
|
188
|
-
* arrive, THEN a final coalesced block. Every model streams through the
|
|
189
|
-
* managed gateway, so `stream` is honored for ALL models.
|
|
190
|
-
*/
|
|
191
|
-
readonly outputMode?: OutputMode;
|
|
192
|
-
/**
|
|
193
|
-
* Structured-output policy. `{ kind: 'text' }` (default) is free-form; a
|
|
194
|
-
* `{ kind: 'json_schema', … }` requests provider-native constrained decode.
|
|
195
|
-
* The session's typed outcome is then `decoded | refused` — no untyped path yields
|
|
196
|
-
* a hallucinated object. Fail-closed for a provider lacking the capability.
|
|
197
|
-
*/
|
|
198
|
-
readonly responseFormat?: ResponseFormat;
|
|
199
|
-
/**
|
|
200
|
-
* Declarative HITL write-gate: the platform parks the session
|
|
201
|
-
* `awaiting_approval` BEFORE dispatching any listed tool, holding for an
|
|
202
|
-
* `approve()`/`deny()`. Structural — independent of model prose. Empty/absent
|
|
203
|
-
* ⇒ no gate.
|
|
204
|
-
*/
|
|
205
|
-
readonly approvalGate?: ApprovalGate;
|
|
206
|
-
/**
|
|
207
|
-
* Platform-injection controls. The platform prepends a small system
|
|
208
|
-
* prompt (see `platformSystemPrompt`) ahead of `system` to explain
|
|
209
|
-
* managed-session expectations such as durable file capture. Set
|
|
210
|
-
* `systemPrompt: "off"` to suppress that injection and have the runtime
|
|
211
|
-
* see only the customer's own `system`. Omitting the field (or
|
|
212
|
-
* `systemPrompt: "default"`) keeps the injection on.
|
|
213
|
-
*
|
|
214
|
-
* This does not change file capture scope. Omitted
|
|
215
|
-
* `fileCapture.allowedDirs` means expose regular workspace files from the
|
|
216
|
-
* latest complete checkpoint; explicit `fileCapture.allowedDirs` narrows it.
|
|
217
|
-
*/
|
|
218
|
-
readonly platform?: PlatformInjectionConfig;
|
|
219
|
-
}
|
|
220
|
-
export interface PlatformFileCaptureConfig {
|
|
221
|
-
/**
|
|
222
|
-
* Allowed capture roots. Omit or pass an empty list to expose regular
|
|
223
|
-
* workspace files from the latest complete checkpoint. Entries are absolute
|
|
224
|
-
* UNIX paths.
|
|
225
|
-
*/
|
|
226
|
-
readonly allowedDirs?: readonly string[];
|
|
227
|
-
/**
|
|
228
|
-
* Denied capture roots/patterns. These are subtracted from the allowed roots;
|
|
229
|
-
* platform-mandatory denies always apply and cannot be re-included.
|
|
230
|
-
*/
|
|
231
|
-
readonly deniedDirs?: readonly string[];
|
|
232
|
-
/**
|
|
233
|
-
* Maximum time the platform may spend capturing files after the agent exits.
|
|
234
|
-
* Positive integer milliseconds; values above the platform maximum are clamped.
|
|
235
|
-
*/
|
|
236
|
-
readonly captureTimeoutMs?: number;
|
|
237
|
-
/** Maximum size of a single captured file in bytes. Positive integer. */
|
|
238
|
-
readonly maxFileBytes?: number;
|
|
239
|
-
/** Maximum total captured file bytes for the session. Positive integer. */
|
|
240
|
-
readonly maxTotalBytes?: number;
|
|
241
|
-
/** Maximum number of captured files for the session. Positive integer. */
|
|
242
|
-
readonly maxFiles?: number;
|
|
243
|
-
}
|
|
244
|
-
export interface PlatformInjectionConfig {
|
|
245
|
-
readonly systemPrompt?: "default" | "off";
|
|
246
|
-
}
|
|
247
|
-
export interface PlatformSessionSubmissionRequest {
|
|
248
|
-
readonly workspaceId: string;
|
|
249
|
-
readonly idempotencyKey: string;
|
|
250
|
-
readonly submission: PlatformSubmission;
|
|
251
|
-
readonly secrets: PlatformInlineSecrets;
|
|
252
|
-
/**
|
|
253
|
-
* Managed runtime size. One of the closed {@link RuntimeSize} preset tokens
|
|
254
|
-
* or absent (downstream applies the default).
|
|
255
|
-
*/
|
|
256
|
-
readonly runtimeSize?: RuntimeSize;
|
|
257
|
-
/**
|
|
258
|
-
* Execution-runtime selector — which backend runs the session
|
|
259
|
-
* ({@link RuntimeKind}: `container` | `spot_container` | `lambda`). Distinct
|
|
260
|
-
* from {@link runtimeSize} (the box preset). Absent ⇒ downstream applies
|
|
261
|
-
* {@link import("./runtime-kind.js").DEFAULT_RUNTIME_KIND} (`spot_container`).
|
|
262
|
-
* `spot_container` implies interruptible capacity (reconciled with
|
|
263
|
-
* {@link machine}); `lambda` is availability-gated server-side.
|
|
264
|
-
*/
|
|
265
|
-
readonly runtimeKind?: RuntimeKind;
|
|
266
|
-
/**
|
|
267
|
-
* Session deadline in milliseconds, normalised by the parser from the wire
|
|
268
|
-
* `timeout` duration string (bounded to [1m, 8h]). Absent ⇒
|
|
269
|
-
* {@link DEFAULT_SESSION_TIMEOUT_MS} (8h). Applies to the managed runner's
|
|
270
|
-
* terminal wait window and self-kill deadline.
|
|
271
|
-
*/
|
|
272
|
-
readonly timeoutMs?: number;
|
|
273
|
-
/**
|
|
274
|
-
* Optional callback URL registered on this session. The platform delivers one
|
|
275
|
-
* run-scoped `run.finished` or `run.error` event after each run finalizes,
|
|
276
|
-
* signed Standard-Webhooks style. It is a sibling of {@link idempotencyKey} — an
|
|
277
|
-
* operational/delivery concern, NOT part of the hashed submission brief, so
|
|
278
|
-
* the same idempotency key with a different callback URL never 409s and the
|
|
279
|
-
* field never enters `request_hash`.
|
|
280
|
-
*/
|
|
281
|
-
readonly webhook?: SessionWebhookSpec;
|
|
282
|
-
/**
|
|
283
|
-
* Optional per-session override of the lineage limits (max concurrent child sessions,
|
|
284
|
-
* max subagent depth, per-session spend cap). These are dials the client may
|
|
285
|
-
* *request*; the server resolves them against the per-workspace ceiling and
|
|
286
|
-
* the hard platform ceiling (clamping happens in the resolver, NOT this
|
|
287
|
-
* parser). Absent fields fall back to the platform defaults. Only shape +
|
|
288
|
-
* positivity are validated here.
|
|
289
|
-
*/
|
|
290
|
-
readonly limits?: SessionLimits;
|
|
291
|
-
/**
|
|
292
|
-
* Optional capacity intent for the session's managed machine. `spot: true` opts
|
|
293
|
-
* the session into interruptible capacity; absent / `spot: false` requests
|
|
294
|
-
* standard capacity (the default). Intent only — the managed runtime selects
|
|
295
|
-
* capacity from it.
|
|
296
|
-
*/
|
|
297
|
-
readonly machine?: SessionMachine;
|
|
298
|
-
}
|
|
299
|
-
/** Per-session registration for finalized run callbacks; the URL must be https. */
|
|
300
|
-
export interface SessionWebhookSpec {
|
|
301
|
-
readonly url: string;
|
|
302
|
-
}
|
|
303
|
-
/**
|
|
304
|
-
* Per-session override of the lineage limits. Both fields are optional; an absent
|
|
305
|
-
* field means "use the platform default". The parser ({@link parseSessionLimits})
|
|
306
|
-
* only validates positivity/shape — clamping to the workspace + platform
|
|
307
|
-
* ceilings is the resolver's job (see `resolveSessionLimits` in `@aexhq/shared`).
|
|
308
|
-
*/
|
|
309
|
-
export interface SessionLimits {
|
|
310
|
-
readonly maxConcurrentChildSessions?: number;
|
|
311
|
-
readonly maxSubagentDepth?: number;
|
|
312
|
-
/**
|
|
313
|
-
* Per-session spend cap in USD (defense-in-depth). The platform kills the session once
|
|
314
|
-
* it would out-spend the cap. A positive number; omitted ⇒ unbounded per-session
|
|
315
|
-
* (only the session's wall-clock `timeout` + the per-workspace spend cap apply).
|
|
316
|
-
* Only shape/positivity are validated here.
|
|
317
|
-
*
|
|
318
|
-
* The frozen boot session config the managed runtime folds the loop against
|
|
319
|
-
* names this same USD value `budgetUsd`; {@link sessionBudgetLimits} is the
|
|
320
|
-
* single source of truth for that wire→boot name mapping.
|
|
321
|
-
*/
|
|
322
|
-
readonly maxSpendUsd?: number;
|
|
323
|
-
/**
|
|
324
|
-
* Maximum number of agent ITERATIONS (turns) the session may take before the
|
|
325
|
-
* platform parks it terminal. A positive integer; omitted ⇒ the platform
|
|
326
|
-
* default (`SESSION_DEFAULT_MAX_TURNS`). Previously a bare server literal absent
|
|
327
|
-
* from both the public contract and the limits SSoT — now a settable dial.
|
|
328
|
-
* Only shape/positivity are validated here; clamping to the ceiling is the
|
|
329
|
-
* resolver's job.
|
|
330
|
-
*/
|
|
331
|
-
readonly maxTurns?: number;
|
|
332
|
-
/**
|
|
333
|
-
* Maximum number of agent STEPS (LLM+tool cycles) a single turn may take before
|
|
334
|
-
* the platform terminalizes it — the per-turn runaway-loop backstop (doc 13 G2),
|
|
335
|
-
* one level below {@link maxTurns}. A positive integer; omitted ⇒ the platform
|
|
336
|
-
* default (`SESSION_DEFAULT_MAX_STEPS_PER_TURN`). Only shape/positivity are
|
|
337
|
-
* validated here; clamping to the ceiling is the resolver's job.
|
|
338
|
-
*/
|
|
339
|
-
readonly maxStepsPerTurn?: number;
|
|
340
|
-
}
|
|
341
|
-
/**
|
|
342
|
-
* Per-session machine/capacity intent. v1 exposes only `spot`: opt the session into
|
|
343
|
-
* interruptible capacity (`spot: true`) vs standard capacity (absent /
|
|
344
|
-
* `spot: false`, the default). Only the boolean intent is public — capacity
|
|
345
|
-
* selection is a runtime concern.
|
|
346
|
-
*/
|
|
347
|
-
export interface SessionMachine {
|
|
348
|
-
readonly spot?: boolean;
|
|
349
|
-
}
|
|
350
|
-
/**
|
|
351
|
-
* Internal pre-parser input used by authenticated platform adapters. The public
|
|
352
|
-
* SDK and CLI post {@link SessionCreateRequest}; adapters derive `workspaceId`
|
|
353
|
-
* and inject header idempotency before calling the platform parser.
|
|
354
|
-
*
|
|
355
|
-
* This type remains available from `@aexhq/contracts/internal` for platform
|
|
356
|
-
* consumers and is intentionally absent from the public contracts barrel.
|
|
357
|
-
*/
|
|
358
|
-
export type PlatformSessionSubmissionInput = Omit<PlatformSessionSubmissionRequest, "workspaceId" | "timeoutMs"> & {
|
|
359
|
-
readonly workspaceId?: string;
|
|
360
|
-
/**
|
|
361
|
-
* Session deadline as a human duration string (`"1h"`, `"90m"`, `"30s"`).
|
|
362
|
-
* Parsed + bounded to [1m, 8h] server-side into
|
|
363
|
-
* {@link PlatformSessionSubmissionRequest.timeoutMs}. Absent ⇒ 8h default.
|
|
364
|
-
*/
|
|
365
|
-
readonly timeout?: string;
|
|
366
|
-
};
|
|
367
|
-
export declare function parseSessionSubmissionRequest(input: unknown): PlatformSessionSubmissionRequest;
|
|
368
|
-
/**
|
|
369
|
-
* Parse + SSRF-shape-validate the optional per-session `webhook`. The URL must be
|
|
370
|
-
* https with no userinfo (a `user:pass@host` URL is rejected — credentials must
|
|
371
|
-
* not ride in a callback URL). Unknown subfields are rejected so the strict
|
|
372
|
-
* top-level allow-list extends to the nested object. Returns `undefined` when
|
|
373
|
-
* absent. Delivery-time re-resolution + IP-deny checks live server-side; this
|
|
374
|
-
* is the submit-time shape gate.
|
|
375
|
-
*/
|
|
376
|
-
export declare function parseSessionWebhook(input: unknown): SessionWebhookSpec | undefined;
|
|
377
|
-
/**
|
|
378
|
-
* Parse the optional per-session `limits` override. Mirrors {@link parseSessionWebhook}:
|
|
379
|
-
* absent ⇒ `undefined`; a non-object or any unknown subfield is rejected so the
|
|
380
|
-
* strict top-level allow-list extends to the nested object. Each present field
|
|
381
|
-
* is validated as a positive safe integer via {@link optionalPositiveInt}.
|
|
382
|
-
*
|
|
383
|
-
* This is a SHAPE/positivity gate only — it does NOT clamp to the workspace or
|
|
384
|
-
* platform ceilings (that precedence lives in the resolver, `resolveSessionLimits`).
|
|
385
|
-
* Only the present fields are returned; an all-absent override (e.g. `{}`)
|
|
386
|
-
* collapses to `undefined` so it carries no signal onto the request.
|
|
387
|
-
*/
|
|
388
|
-
export declare function parseSessionLimits(input: unknown): SessionLimits | undefined;
|
|
389
|
-
/**
|
|
390
|
-
* Boot-session budget fragment. The public submit surface names a session's spend
|
|
391
|
-
* cap `limits.maxSpendUsd`; the frozen boot session config the managed runtime
|
|
392
|
-
* folds the loop against names the SAME USD value `budgetUsd` — the field the
|
|
393
|
-
* session planner reads to enforce/terminate a session that would out-spend its cap.
|
|
394
|
-
* This is the single source of truth for that wire→boot name mapping so the two
|
|
395
|
-
* layers can never drift.
|
|
396
|
-
*
|
|
397
|
-
* Returns a fragment safe to spread into `sessionConfig.limits`: `{ budgetUsd }`
|
|
398
|
-
* when a cap is set, `{}` when none is (an absent cap stays absent — the session is
|
|
399
|
-
* unbounded per-session, subject only to the session timeout + the per-workspace cap).
|
|
400
|
-
* Pure: same input ⇒ same output.
|
|
401
|
-
*/
|
|
402
|
-
export declare function sessionBudgetLimits(limits: SessionLimits | undefined): {
|
|
403
|
-
budgetUsd?: number;
|
|
404
|
-
};
|
|
405
|
-
/**
|
|
406
|
-
* Parse the optional per-session `machine` capacity intent. Mirrors
|
|
407
|
-
* {@link parseSessionWebhook}: absent ⇒ `undefined`; a non-object or any unknown
|
|
408
|
-
* subfield is rejected so the strict top-level allow-list extends to the nested
|
|
409
|
-
* object. `spot` must be a boolean when present. A no-signal object (e.g.
|
|
410
|
-
* `machine: {}`) collapses to `undefined` so it never lands an empty object on
|
|
411
|
-
* the request. An explicit `spot` (true or false) is preserved verbatim. Only
|
|
412
|
-
* shape is validated here — capacity selection is a runtime concern.
|
|
413
|
-
*/
|
|
414
|
-
export declare function parseSessionMachine(input: unknown): SessionMachine | undefined;
|
|
415
|
-
export declare function parseSubmission(input: unknown): PlatformSubmission;
|
|
416
|
-
/**
|
|
417
|
-
* Assistant-output granularity values and the structured-output kinds, declared
|
|
418
|
-
* with the schemas that enforce them and re-exported here so the published
|
|
419
|
-
* surface is unchanged — see the sibling note on the `secretEnv` grammars.
|
|
420
|
-
*/
|
|
421
|
-
export { OUTPUT_MODES, RESPONSE_FORMAT_KINDS } from "./schemas/submission-body.js";
|
|
422
|
-
export type OutputMode = (typeof OUTPUT_MODES)[number];
|
|
423
|
-
export declare const DEFAULT_OUTPUT_MODE: OutputMode;
|
|
424
|
-
export type ResponseFormatKind = (typeof RESPONSE_FORMAT_KINDS)[number];
|
|
425
|
-
/**
|
|
426
|
-
* Structured-output policy. `{ kind: 'text' }` is free-form; `{ kind:
|
|
427
|
-
* 'json_schema', schema, strict?, name? }` requests provider-native constrained
|
|
428
|
-
* decode against `schema` (a JSON Schema object).
|
|
429
|
-
*/
|
|
430
|
-
export type ResponseFormat = {
|
|
431
|
-
readonly kind: "text";
|
|
432
|
-
} | {
|
|
433
|
-
readonly kind: "json_schema";
|
|
434
|
-
readonly schema: JsonValue;
|
|
435
|
-
readonly strict?: boolean;
|
|
436
|
-
readonly name?: string;
|
|
437
|
-
};
|
|
438
|
-
/**
|
|
439
|
-
* Parse the optional `submission.responseFormat`. Absent ⇒ undefined; a bad
|
|
440
|
-
* `kind` or unknown subfield is rejected (fail-fast). `json_schema` requires a
|
|
441
|
-
* JSON-object `schema`.
|
|
442
|
-
*/
|
|
443
|
-
export declare function parseResponseFormat(input: unknown): ResponseFormat | undefined;
|
|
444
|
-
/** Declarative HITL write-gate: park `awaiting_approval` before any listed tool. */
|
|
445
|
-
export interface ApprovalGate {
|
|
446
|
-
readonly tools: readonly string[];
|
|
447
|
-
}
|
|
448
|
-
/**
|
|
449
|
-
* Parse the optional `submission.approvalGate`. Absent / empty tool list ⇒
|
|
450
|
-
* undefined (no gate). Tool names are deduped; the strict allow-list mirrors the
|
|
451
|
-
* sibling parsers.
|
|
452
|
-
*/
|
|
453
|
-
export declare function parseApprovalGate(input: unknown): ApprovalGate | undefined;
|
|
454
|
-
/**
|
|
455
|
-
* The CLOSED set of builtin tool NAMES the managed runtime can inject — one per
|
|
456
|
-
* machine tool the hands implement. This list is the single source of truth for
|
|
457
|
-
* validating builtin tool references; the platform's `HANDS_TOOLS` (the execute
|
|
458
|
-
* vocabulary) is pinned EQUAL to it at module load (`platform-runtime-agent`
|
|
459
|
-
* `assertNamesMatch`), so a rename on either side fails loudly rather than
|
|
460
|
-
* silently shipping a name the executors do not speak.
|
|
461
|
-
*
|
|
462
|
-
* Order mirrors `HANDS_TOOLS`. A builtin tool reference (a bare string in
|
|
463
|
-
* `submission.tools`) must be a member of this set.
|
|
464
|
-
*/
|
|
465
|
-
export declare const BUILTIN_TOOL_NAMES: readonly ["bash", "read_file", "write_file", "edit_file", "grep", "glob", "head", "tail", "todo_write", "subagent", "subagent_result", "web_fetch", "web_search", "bash_output", "bash_kill", "code_execution", "wait", "git", "ls", "stat", "wc"];
|
|
466
|
-
export type BuiltinToolName = (typeof BUILTIN_TOOL_NAMES)[number];
|
|
467
|
-
/**
|
|
468
|
-
* Typo-safe accessors for the closed builtin tool set: each key maps to the
|
|
469
|
-
* real tool NAME string. Reference a builtin in `submission.tools` via
|
|
470
|
-
* `BuiltinTools.web_search` rather than the bare string so a rename is a
|
|
471
|
-
* compile error, not a runtime 400.
|
|
472
|
-
*
|
|
473
|
-
* Keys are the real tool names; a unit test asserts `Object.values(BuiltinTools)`
|
|
474
|
-
* deep-equals `BUILTIN_TOOL_NAMES` so the two can never drift.
|
|
475
|
-
*/
|
|
476
|
-
export declare const BuiltinTools: {
|
|
477
|
-
readonly bash: "bash";
|
|
478
|
-
readonly read_file: "read_file";
|
|
479
|
-
readonly write_file: "write_file";
|
|
480
|
-
readonly edit_file: "edit_file";
|
|
481
|
-
readonly grep: "grep";
|
|
482
|
-
readonly glob: "glob";
|
|
483
|
-
readonly head: "head";
|
|
484
|
-
readonly tail: "tail";
|
|
485
|
-
readonly todo_write: "todo_write";
|
|
486
|
-
readonly subagent: "subagent";
|
|
487
|
-
readonly subagent_result: "subagent_result";
|
|
488
|
-
readonly web_fetch: "web_fetch";
|
|
489
|
-
readonly web_search: "web_search";
|
|
490
|
-
readonly bash_output: "bash_output";
|
|
491
|
-
readonly bash_kill: "bash_kill";
|
|
492
|
-
readonly code_execution: "code_execution";
|
|
493
|
-
readonly wait: "wait";
|
|
494
|
-
readonly git: "git";
|
|
495
|
-
readonly ls: "ls";
|
|
496
|
-
readonly stat: "stat";
|
|
497
|
-
readonly wc: "wc";
|
|
498
|
-
};
|
|
499
|
-
/**
|
|
500
|
-
* The complete builtin set selected by `builtinTools: "default"`.
|
|
501
|
-
*/
|
|
502
|
-
export declare const DEFAULT_BUILTIN_TOOLS: readonly BuiltinToolName[];
|
|
503
|
-
/**
|
|
504
|
-
* Fixed name of the single skills meta-tool. Deliberately NOT a member of
|
|
505
|
-
* {@link BUILTIN_TOOL_NAMES} (that closed set is the customer-cherry-pickable
|
|
506
|
-
* toggle surface, pinned equal to `HANDS_TOOLS`) — the skills tool is IMPLIED by
|
|
507
|
-
* a session having ≥1 skill, not chosen, and is injected platform-side. Kept in
|
|
508
|
-
* lockstep with {@link SKILL_RESERVED_NAMES} so it can never be shadowed by a
|
|
509
|
-
* custom tool or skill of the same name.
|
|
510
|
-
*/
|
|
511
|
-
export declare const SKILLS_TOOL_NAME = "skills";
|
|
512
|
-
/**
|
|
513
|
-
* The single default `skills` meta-tool (list/load) the platform injects when a
|
|
514
|
-
* session references ≥1 workspace skill. Shared by the platform tool composer and
|
|
515
|
-
* kept adjacent to the reserved-name guard so the model-visible contract and the
|
|
516
|
-
* name reservation stay in one place. It replaces the former N per-skill no-arg
|
|
517
|
-
* load-tools with one arg-taking dispatcher.
|
|
518
|
-
*/
|
|
519
|
-
export declare const SKILLS_TOOL_DEFINITION: {
|
|
520
|
-
readonly name: "skills";
|
|
521
|
-
readonly description: string;
|
|
522
|
-
readonly input_schema: {
|
|
523
|
-
readonly type: "object";
|
|
524
|
-
readonly properties: {
|
|
525
|
-
readonly action: {
|
|
526
|
-
readonly type: "string";
|
|
527
|
-
readonly enum: readonly ["list", "load"];
|
|
528
|
-
readonly description: "'list' all skills, or 'load' one by name.";
|
|
529
|
-
};
|
|
530
|
-
readonly name: {
|
|
531
|
-
readonly type: "string";
|
|
532
|
-
readonly description: "Skill name to load (required when action='load').";
|
|
533
|
-
};
|
|
534
|
-
};
|
|
535
|
-
readonly required: readonly ["action"];
|
|
536
|
-
readonly additionalProperties: false;
|
|
537
|
-
};
|
|
538
|
-
};
|
|
539
|
-
/**
|
|
540
|
-
* Resolve the set of builtin tool NAMES a submission injects, deduplicated and
|
|
541
|
-
* in {@link BUILTIN_TOOL_NAMES} order.
|
|
542
|
-
*
|
|
543
|
-
* `"default"` selects the standard set, `"none"` selects none, and an array
|
|
544
|
-
* selects a validated subset in canonical order.
|
|
545
|
-
*/
|
|
546
|
-
export type BuiltinToolsSelection = "default" | "none" | readonly BuiltinToolName[];
|
|
547
|
-
export declare function resolveBuiltinToolNames(selection?: BuiltinToolsSelection): readonly BuiltinToolName[];
|