@try-works/dsh-model-as-tool 0.1.3 → 0.3.6
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/bin/dsh-tool-mode-credentials.mjs +20 -0
- package/bin/dsh-tool-mode.mjs +202 -0
- package/catalog/desert-ant-models.json +693 -693
- package/client/client.model-tools.js +592 -0
- package/client/index.js +1679 -0
- package/lib/adapters/index.d.ts.map +1 -1
- package/lib/adapters/index.js +4 -4
- package/lib/bindings.d.ts.map +1 -1
- package/lib/bindings.js +26 -25
- package/lib/capability.d.ts.map +1 -1
- package/lib/capability.js +17 -0
- package/lib/capture-path.d.ts +97 -0
- package/lib/capture-path.d.ts.map +1 -0
- package/lib/capture-path.js +152 -0
- package/lib/diagnostics.d.ts +166 -0
- package/lib/diagnostics.d.ts.map +1 -0
- package/lib/diagnostics.js +135 -0
- package/lib/extension-dependencies.d.ts +197 -0
- package/lib/extension-dependencies.d.ts.map +1 -0
- package/lib/extension-dependencies.js +369 -0
- package/lib/extension-dispatch.d.ts +117 -0
- package/lib/extension-dispatch.d.ts.map +1 -0
- package/lib/extension-dispatch.js +124 -0
- package/lib/extension-registrar.d.ts +100 -0
- package/lib/extension-registrar.d.ts.map +1 -0
- package/lib/extension-registrar.js +134 -0
- package/lib/extensions-api.d.ts +217 -0
- package/lib/extensions-api.d.ts.map +1 -0
- package/lib/extensions-api.js +17 -0
- package/lib/extensions-remote.d.ts +54 -0
- package/lib/extensions-remote.d.ts.map +1 -0
- package/lib/extensions-remote.js +66 -0
- package/lib/extensions-service.d.ts +334 -0
- package/lib/extensions-service.d.ts.map +1 -0
- package/lib/extensions-service.js +1351 -0
- package/lib/harness-llm.d.ts +138 -0
- package/lib/harness-llm.d.ts.map +1 -0
- package/lib/harness-llm.js +218 -0
- package/lib/harness-serving.d.ts +95 -0
- package/lib/harness-serving.d.ts.map +1 -0
- package/lib/harness-serving.js +157 -0
- package/lib/headless.d.ts +97 -0
- package/lib/headless.d.ts.map +1 -0
- package/lib/headless.js +349 -0
- package/lib/http-acquisition.d.ts +27 -0
- package/lib/http-acquisition.d.ts.map +1 -0
- package/lib/http-acquisition.js +136 -0
- package/lib/index.d.ts +250 -7
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2625 -70
- package/lib/invocation-accounting.d.ts +169 -0
- package/lib/invocation-accounting.d.ts.map +1 -0
- package/lib/invocation-accounting.js +148 -0
- package/lib/legacy-migration.d.ts +95 -0
- package/lib/legacy-migration.d.ts.map +1 -0
- package/lib/legacy-migration.js +429 -0
- package/lib/managed-workers.d.ts +151 -0
- package/lib/managed-workers.d.ts.map +1 -0
- package/lib/managed-workers.js +249 -0
- package/lib/mcp/client-grant.d.ts +74 -0
- package/lib/mcp/client-grant.d.ts.map +1 -0
- package/lib/mcp/client-grant.js +60 -0
- package/lib/mcp/credential-cli.d.ts +38 -0
- package/lib/mcp/credential-cli.d.ts.map +1 -0
- package/lib/mcp/credential-cli.js +148 -0
- package/lib/mcp/credential-store.d.ts +143 -0
- package/lib/mcp/credential-store.d.ts.map +1 -0
- package/lib/mcp/credential-store.js +454 -0
- package/lib/mcp/host-binding.d.ts +25 -0
- package/lib/mcp/host-binding.d.ts.map +1 -1
- package/lib/mcp/host-binding.js +107 -14
- package/lib/mcp/http.d.ts +68 -18
- package/lib/mcp/http.d.ts.map +1 -1
- package/lib/mcp/http.js +390 -62
- package/lib/mcp/oauth.d.ts +149 -0
- package/lib/mcp/oauth.d.ts.map +1 -0
- package/lib/mcp/oauth.js +396 -0
- package/lib/mcp/protocol.d.ts +46 -7
- package/lib/mcp/protocol.d.ts.map +1 -1
- package/lib/mcp/protocol.js +63 -16
- package/lib/mcp/rate-limit.d.ts +68 -0
- package/lib/mcp/rate-limit.d.ts.map +1 -0
- package/lib/mcp/rate-limit.js +114 -0
- package/lib/mcp/sdk-v2.d.ts +17 -0
- package/lib/mcp/sdk-v2.d.ts.map +1 -0
- package/lib/mcp/sdk-v2.js +181 -0
- package/lib/mcp/server.d.ts +11 -1
- package/lib/mcp/server.d.ts.map +1 -1
- package/lib/mcp/server.js +80 -13
- package/lib/mcp/stdio.d.ts.map +1 -1
- package/lib/mcp/stdio.js +9 -1
- package/lib/mcp/subscriptions.d.ts +43 -1
- package/lib/mcp/subscriptions.d.ts.map +1 -1
- package/lib/mcp/subscriptions.js +90 -9
- package/lib/model-qualification.d.ts +192 -0
- package/lib/model-qualification.d.ts.map +1 -0
- package/lib/model-qualification.js +178 -0
- package/lib/planning.d.ts +246 -0
- package/lib/planning.d.ts.map +1 -0
- package/lib/planning.js +457 -0
- package/lib/prepared-assets.d.ts +178 -0
- package/lib/prepared-assets.d.ts.map +1 -0
- package/lib/prepared-assets.js +286 -0
- package/lib/provider-bridge.d.ts +37 -0
- package/lib/provider-bridge.d.ts.map +1 -1
- package/lib/provider-bridge.js +189 -12
- package/lib/ptc-authority.d.ts +140 -0
- package/lib/ptc-authority.d.ts.map +1 -0
- package/lib/ptc-authority.js +216 -0
- package/lib/ptc-runtime.d.ts +156 -0
- package/lib/ptc-runtime.d.ts.map +1 -0
- package/lib/ptc-runtime.js +191 -0
- package/lib/publication.d.ts +2 -1
- package/lib/publication.d.ts.map +1 -1
- package/lib/publication.js +13 -5
- package/lib/receipt.d.ts.map +1 -1
- package/lib/receipt.js +8 -0
- package/lib/title-proposal.d.ts +194 -0
- package/lib/title-proposal.d.ts.map +1 -0
- package/lib/title-proposal.js +244 -0
- package/lib/tool-mode-run.d.ts +235 -0
- package/lib/tool-mode-run.d.ts.map +1 -0
- package/lib/tool-mode-run.js +283 -0
- package/lib/types.d.ts +3 -1
- package/lib/types.d.ts.map +1 -1
- package/lib/update-surface.d.ts +79 -0
- package/lib/update-surface.d.ts.map +1 -0
- package/lib/update-surface.js +224 -0
- package/node_modules/@try-works/tool-mode-contracts/lib/contracts/standard.d.ts +38 -0
- package/node_modules/@try-works/tool-mode-contracts/lib/contracts/standard.d.ts.map +1 -0
- package/node_modules/@try-works/tool-mode-contracts/lib/contracts/standard.js +445 -0
- package/node_modules/@try-works/tool-mode-contracts/lib/contracts/text-embed.d.ts +14 -0
- package/node_modules/@try-works/tool-mode-contracts/lib/contracts/text-embed.d.ts.map +1 -0
- package/node_modules/@try-works/tool-mode-contracts/lib/contracts/text-embed.js +63 -0
- package/node_modules/@try-works/tool-mode-contracts/lib/contracts/text-rerank.d.ts +14 -0
- package/node_modules/@try-works/tool-mode-contracts/lib/contracts/text-rerank.d.ts.map +1 -0
- package/node_modules/@try-works/tool-mode-contracts/lib/contracts/text-rerank.js +76 -0
- package/node_modules/@try-works/tool-mode-contracts/lib/dsh.d.ts.map +1 -1
- package/node_modules/@try-works/tool-mode-contracts/lib/dsh.js +69 -55
- package/node_modules/@try-works/tool-mode-contracts/lib/index.d.ts +4 -1
- package/node_modules/@try-works/tool-mode-contracts/lib/index.d.ts.map +1 -1
- package/node_modules/@try-works/tool-mode-contracts/lib/index.js +26 -2
- package/node_modules/@try-works/tool-mode-contracts/lib/registry.d.ts +28 -2
- package/node_modules/@try-works/tool-mode-contracts/lib/registry.d.ts.map +1 -1
- package/node_modules/@try-works/tool-mode-contracts/lib/registry.js +93 -10
- package/node_modules/@try-works/tool-mode-contracts/package.json +0 -1
- package/node_modules/@try-works/tool-mode-extension-sdk/bin/dsh-tool-mode.mjs +20 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/cli.d.ts +80 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/cli.d.ts.map +1 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/cli.js +533 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/declarative-recipes.d.ts +83 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/declarative-recipes.d.ts.map +1 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/declarative-recipes.js +125 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/discovery.d.ts +70 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/discovery.d.ts.map +1 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/discovery.js +201 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/errors.d.ts +57 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/errors.d.ts.map +1 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/errors.js +83 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/index.d.ts +31 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/index.d.ts.map +1 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/index.js +31 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/install/archive.d.ts +86 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/install/archive.d.ts.map +1 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/install/archive.js +185 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/install/dependencies.d.ts +126 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/install/dependencies.d.ts.map +1 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/install/dependencies.js +297 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/install/lifecycle.d.ts +216 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/install/lifecycle.d.ts.map +1 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/install/lifecycle.js +800 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/install/migration.d.ts +210 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/install/migration.d.ts.map +1 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/install/migration.js +368 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/install/runtime-link.d.ts +63 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/install/runtime-link.d.ts.map +1 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/install/runtime-link.js +149 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/install/source-directory.d.ts +35 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/install/source-directory.d.ts.map +1 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/install/source-directory.js +179 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/install/staged.d.ts +179 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/install/staged.d.ts.map +1 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/install/staged.js +235 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/install/store.d.ts +367 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/install/store.d.ts.map +1 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/install/store.js +807 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/install/update-flow.d.ts +185 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/install/update-flow.d.ts.map +1 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/install/update-flow.js +504 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/install/zip-source.d.ts +17 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/install/zip-source.d.ts.map +1 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/install/zip-source.js +80 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/load.d.ts +52 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/load.d.ts.map +1 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/load.js +102 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/manifest.d.ts +171 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/manifest.d.ts.map +1 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/manifest.js +271 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/runtime.d.ts +242 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/runtime.d.ts.map +1 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/runtime.js +58 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/state.d.ts +118 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/state.d.ts.map +1 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/state.js +113 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/worker/worker-child.d.ts +2 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/worker/worker-child.d.ts.map +1 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/worker/worker-child.js +351 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/worker.d.ts +150 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/worker.d.ts.map +1 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/worker.js +670 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/package.json +53 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/schema/extension-manifest-1.1.0.schema.json +253 -0
- package/node_modules/@try-works/tool-mode-recipes/bin/tool-mode-recipe.mjs +15 -0
- package/node_modules/@try-works/tool-mode-recipes/lib/broker.d.ts +427 -0
- package/node_modules/@try-works/tool-mode-recipes/lib/broker.d.ts.map +1 -0
- package/node_modules/@try-works/tool-mode-recipes/lib/broker.js +592 -0
- package/node_modules/@try-works/tool-mode-recipes/lib/cli.d.ts +60 -0
- package/node_modules/@try-works/tool-mode-recipes/lib/cli.d.ts.map +1 -0
- package/node_modules/@try-works/tool-mode-recipes/lib/cli.js +936 -0
- package/node_modules/@try-works/tool-mode-recipes/lib/dsh-adapter.d.ts +237 -0
- package/node_modules/@try-works/tool-mode-recipes/lib/dsh-adapter.d.ts.map +1 -0
- package/node_modules/@try-works/tool-mode-recipes/lib/dsh-adapter.js +200 -0
- package/node_modules/@try-works/tool-mode-recipes/lib/fixture-provider.d.ts +85 -0
- package/node_modules/@try-works/tool-mode-recipes/lib/fixture-provider.d.ts.map +1 -0
- package/node_modules/@try-works/tool-mode-recipes/lib/fixture-provider.js +176 -0
- package/node_modules/@try-works/tool-mode-recipes/lib/images.d.ts +105 -0
- package/node_modules/@try-works/tool-mode-recipes/lib/images.d.ts.map +1 -0
- package/node_modules/@try-works/tool-mode-recipes/lib/images.js +129 -0
- package/node_modules/@try-works/tool-mode-recipes/lib/index.d.ts +25 -0
- package/node_modules/@try-works/tool-mode-recipes/lib/index.d.ts.map +1 -0
- package/node_modules/@try-works/tool-mode-recipes/lib/index.js +25 -0
- package/node_modules/@try-works/tool-mode-recipes/lib/recipe-format.d.ts +325 -0
- package/node_modules/@try-works/tool-mode-recipes/lib/recipe-format.d.ts.map +1 -0
- package/node_modules/@try-works/tool-mode-recipes/lib/recipe-format.js +1310 -0
- package/node_modules/@try-works/tool-mode-recipes/lib/templates.d.ts +51 -0
- package/node_modules/@try-works/tool-mode-recipes/lib/templates.d.ts.map +1 -0
- package/node_modules/@try-works/tool-mode-recipes/lib/templates.js +310 -0
- package/node_modules/@try-works/tool-mode-recipes/lib/titles.d.ts +227 -0
- package/node_modules/@try-works/tool-mode-recipes/lib/titles.d.ts.map +1 -0
- package/node_modules/@try-works/tool-mode-recipes/lib/titles.js +407 -0
- package/node_modules/@try-works/tool-mode-recipes/package.json +56 -0
- package/node_modules/@try-works/tool-mode-recipes/recipes/describe-image.json +38 -0
- package/node_modules/@try-works/tool-mode-recipes/recipes/text-title.json +45 -0
- package/node_modules/@try-works/tool-mode-recipes/schema/harness-model-recipe.schema.json +273 -0
- package/package.json +43 -15
- package/remote/spec.mjs +439 -0
- package/remote/typert.host.mjs +14 -0
- package/remote/typert.remote-client.mjs +16 -0
- package/lib/adapters/tongue.d.ts +0 -31
- package/lib/adapters/tongue.d.ts.map +0 -1
- package/lib/adapters/tongue.js +0 -93
- package/lib/adapters/voz.d.ts +0 -28
- package/lib/adapters/voz.d.ts.map +0 -1
- package/lib/adapters/voz.js +0 -102
- /package/{lib → node_modules/@try-works/tool-mode-extension-sdk/lib}/licensing.d.ts +0 -0
- /package/{lib → node_modules/@try-works/tool-mode-extension-sdk/lib}/licensing.d.ts.map +0 -0
- /package/{lib → node_modules/@try-works/tool-mode-extension-sdk/lib}/licensing.js +0 -0
|
@@ -0,0 +1,427 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The DSH LLM broker: one provider-neutral harness executor for declarative recipes
|
|
3
|
+
* (HLM-01, HLM-02, HLM-05, HLM-06, HLM-07, HLM-09, HLM-10, HLM-11).
|
|
4
|
+
*
|
|
5
|
+
* The broker's whole job is to build ONE request that contains nothing but the recipe's
|
|
6
|
+
* instructions and the validated bound inputs, and then to report honestly what came
|
|
7
|
+
* back. Every invariant here is a way the request could stop being that request, or the
|
|
8
|
+
* result stop being the result:
|
|
9
|
+
*
|
|
10
|
+
* - **The request is isolated by construction.** It is built from the recipe and the
|
|
11
|
+
* bound values alone. There is no parameter through which parent history, a parent
|
|
12
|
+
* system prompt, a tool catalog, skills, attachments or memory could arrive, and the
|
|
13
|
+
* shape is frozen so nothing can be added to it after validation (HLM-05, AT-68).
|
|
14
|
+
* - **Images are typed media, or the call is refused.** An image recipe on a provider
|
|
15
|
+
* whose capabilities do not cover images fails with `IMAGE_INPUT_UNAVAILABLE`. It does
|
|
16
|
+
* not quietly degrade to a text-only call that "describes" an image the model never
|
|
17
|
+
* received — that fallback produces a fluent invention, which is worse than an error
|
|
18
|
+
* (HLM-11).
|
|
19
|
+
* - **An unknown capability is not permission.** A provider that has not reported its
|
|
20
|
+
* image support fails with `EXECUTOR_CAPABILITY_UNKNOWN` rather than being assumed
|
|
21
|
+
* capable (MODEL-06's three-state rule, reused here).
|
|
22
|
+
* - **Remote is a policy decision, not an implementation detail.** `permitsDestination`
|
|
23
|
+
* is mirrored from RES-10 so a local-only profile refuses a remote provider however
|
|
24
|
+
* the tool was built.
|
|
25
|
+
* - **Cancellation is reported as cancellation.** An aborted signal can never produce a
|
|
26
|
+
* success, and never an empty one: an empty success is exactly what a caller writes
|
|
27
|
+
* into a document (HLM-10).
|
|
28
|
+
* - **Refusal, truncation, an empty completion and a stray tool call are errors, each
|
|
29
|
+
* with its own code.** HLM-07 requires them to be distinct failures, because a caller
|
|
30
|
+
* that cannot tell "the model refused" from "the model was cut off" cannot respond
|
|
31
|
+
* correctly to either (RCP-11).
|
|
32
|
+
* - **Recording is a precondition, not a side effect.** A recipe that declines recording
|
|
33
|
+
* under a host that requires it is refused with `CAPTURE_POLICY_CONFLICT` BEFORE the
|
|
34
|
+
* provider is called, because refusing after the call would report a refusal for work
|
|
35
|
+
* that has already been billed (HLM-09).
|
|
36
|
+
*
|
|
37
|
+
* @module @try-works/tool-mode-recipes/broker
|
|
38
|
+
*/
|
|
39
|
+
import { type RecipeManifest, type RecipeValue } from './recipe-format.ts';
|
|
40
|
+
/** Where a provider runs. RES-10's destination rule is stated in these terms. */
|
|
41
|
+
export type ProviderDestination = 'local' | 'remote';
|
|
42
|
+
/**
|
|
43
|
+
* What a provider knows about a capability (MODEL-06).
|
|
44
|
+
*
|
|
45
|
+
* Three states, not two. `unsupported` is a fact the provider reported; `unknown` is the
|
|
46
|
+
* ABSENCE of a fact, and treating it as `unsupported` reports an unevaluated capability
|
|
47
|
+
* as a known absence while treating it as `supported` dispatches work that may fail
|
|
48
|
+
* silently. Both collapse a state the requirement says to keep separate.
|
|
49
|
+
*/
|
|
50
|
+
export type CapabilityState = 'supported' | 'unsupported' | 'unknown';
|
|
51
|
+
/** What a provider reports about itself. */
|
|
52
|
+
export interface ProviderCapabilities {
|
|
53
|
+
/**
|
|
54
|
+
* Whether images are accepted. A plain boolean is accepted for convenience and
|
|
55
|
+
* normalised to `supported`/`unsupported`; `unknown` is the honest third state.
|
|
56
|
+
*/
|
|
57
|
+
readonly images: CapabilityState | boolean;
|
|
58
|
+
/** The provider's own output-token ceiling for one call. */
|
|
59
|
+
readonly maxOutputTokens: number;
|
|
60
|
+
}
|
|
61
|
+
/** One typed image, as the transport carries it. */
|
|
62
|
+
export interface BrokerImage {
|
|
63
|
+
/** The image's media type, e.g. `image/png`. */
|
|
64
|
+
readonly mediaType: string;
|
|
65
|
+
/** The image's actual bytes. */
|
|
66
|
+
readonly bytes: Uint8Array;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* The ONLY request a recipe execution can produce.
|
|
70
|
+
*
|
|
71
|
+
* The optional `system` member exists in the transport shape and is never populated by
|
|
72
|
+
* this broker: this slice's recipe format has no system field, and inheriting the parent
|
|
73
|
+
* agent's system prompt is forbidden (HLM-05). The tests assert its absence rather than
|
|
74
|
+
* trusting this comment.
|
|
75
|
+
*/
|
|
76
|
+
export interface BrokerRequest {
|
|
77
|
+
/** Never set by this broker. Present so a future authorized context input has a home. */
|
|
78
|
+
readonly system?: string;
|
|
79
|
+
/** The rendered recipe instructions plus the bound inputs. */
|
|
80
|
+
readonly prompt: string;
|
|
81
|
+
/** The typed image inputs, when the recipe declares them and the caller supplied them. */
|
|
82
|
+
readonly images?: readonly BrokerImage[];
|
|
83
|
+
/** The effective ceiling after the recipe, host and provider limits are intersected. */
|
|
84
|
+
readonly maxOutputTokens: number;
|
|
85
|
+
/** The caller's cancellation channel, passed through unchanged. */
|
|
86
|
+
readonly signal: AbortSignal;
|
|
87
|
+
}
|
|
88
|
+
/** What a provider reported about consumption. */
|
|
89
|
+
export type LlmUsage = {
|
|
90
|
+
readonly known: true;
|
|
91
|
+
readonly inputTokens: number;
|
|
92
|
+
readonly outputTokens: number;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* The provider reported no usage.
|
|
96
|
+
*
|
|
97
|
+
* Distinct from zero, for the same reason RES-10 keeps an unknown cost distinct from a
|
|
98
|
+
* free one: recording "0 tokens" for an unreported call invents a measurement.
|
|
99
|
+
*/
|
|
100
|
+
| {
|
|
101
|
+
readonly known: false;
|
|
102
|
+
readonly reason: string;
|
|
103
|
+
};
|
|
104
|
+
/** How one provider call ended. */
|
|
105
|
+
export type LlmCompletion =
|
|
106
|
+
/** Text was produced. */
|
|
107
|
+
{
|
|
108
|
+
readonly kind: 'text';
|
|
109
|
+
readonly text: string;
|
|
110
|
+
readonly usage?: LlmUsage;
|
|
111
|
+
}
|
|
112
|
+
/** The provider declined. An error, never an empty result. */
|
|
113
|
+
| {
|
|
114
|
+
readonly kind: 'refused';
|
|
115
|
+
readonly reason: string;
|
|
116
|
+
}
|
|
117
|
+
/** Generation was cut short. An error, never a short result. */
|
|
118
|
+
| {
|
|
119
|
+
readonly kind: 'truncated';
|
|
120
|
+
readonly text: string;
|
|
121
|
+
}
|
|
122
|
+
/** The provider emitted a tool call, which must not be executed (HLM-06). */
|
|
123
|
+
| {
|
|
124
|
+
readonly kind: 'tool_call';
|
|
125
|
+
readonly toolName: string;
|
|
126
|
+
};
|
|
127
|
+
/**
|
|
128
|
+
* A provider of harness model calls.
|
|
129
|
+
*
|
|
130
|
+
* Deliberately tiny and vendor-free: no HTTP, no credentials, no vendor types. A
|
|
131
|
+
* recipe cannot reach any of the things this interface does not express (HLM-01).
|
|
132
|
+
*/
|
|
133
|
+
export interface LlmProvider {
|
|
134
|
+
/** Stable provider identity, for receipts and the journal. */
|
|
135
|
+
readonly id: string;
|
|
136
|
+
/**
|
|
137
|
+
* The adapter generation.
|
|
138
|
+
*
|
|
139
|
+
* An authorization is issued for a generation, not for a name: a provider that has
|
|
140
|
+
* reloaded is a different endpoint, and combining the old capabilities with the new
|
|
141
|
+
* endpoint is what HLM-02 forbids.
|
|
142
|
+
*/
|
|
143
|
+
readonly generation: number;
|
|
144
|
+
/** Where this provider runs. Checked against RES-10's destination rule. */
|
|
145
|
+
readonly destination: ProviderDestination;
|
|
146
|
+
/** What it can do, read ONCE per invocation. */
|
|
147
|
+
capabilities(): ProviderCapabilities;
|
|
148
|
+
/** Perform one isolated call. */
|
|
149
|
+
complete(request: BrokerRequest): Promise<LlmCompletion>;
|
|
150
|
+
}
|
|
151
|
+
/** Codes carried by a failed invocation. RCP-11's vocabulary plus three local additions. */
|
|
152
|
+
export type BrokerErrorCode =
|
|
153
|
+
/** No authorized executor, or the authorization is for another generation. */
|
|
154
|
+
'EXECUTOR_NOT_CONFIGURED'
|
|
155
|
+
/** The provider has not reported whether it accepts images. */
|
|
156
|
+
| 'EXECUTOR_CAPABILITY_UNKNOWN'
|
|
157
|
+
/** A binding used a modality the recipe does not admit. */
|
|
158
|
+
| 'UNSUPPORTED_MODALITY'
|
|
159
|
+
/** The recipe needs images and the provider cannot accept them (HLM-11). */
|
|
160
|
+
| 'IMAGE_INPUT_UNAVAILABLE'
|
|
161
|
+
/** Mandatory recording conflicts with policy, so the call is refused (HLM-09). */
|
|
162
|
+
| 'CAPTURE_POLICY_CONFLICT'
|
|
163
|
+
/** The provider declined. */
|
|
164
|
+
| 'MODEL_REFUSED'
|
|
165
|
+
/** Generation was truncated. */
|
|
166
|
+
| 'MODEL_OUTPUT_TRUNCATED'
|
|
167
|
+
/** The output could not be used as a result, an empty one included. */
|
|
168
|
+
| 'INVALID_MODEL_OUTPUT'
|
|
169
|
+
/** The provider emitted a tool call, which is never executed (HLM-06). */
|
|
170
|
+
| 'UNEXPECTED_MODEL_TOOL_CALL'
|
|
171
|
+
/** A budget RES-10 states was exceeded. */
|
|
172
|
+
| 'MODEL_BUDGET_EXCEEDED'
|
|
173
|
+
/** The supplied arguments do not satisfy the recipe. */
|
|
174
|
+
| 'RECIPE_BINDING_ERROR'
|
|
175
|
+
/** The invocation was cancelled, by the caller or by its deadline. */
|
|
176
|
+
| 'CANCELLED'
|
|
177
|
+
/** The provider failed to complete. */
|
|
178
|
+
| 'PROVIDER_FAILED'
|
|
179
|
+
/** The mandatory recording could not be written, so the call did not run. */
|
|
180
|
+
| 'RECORDING_FAILED';
|
|
181
|
+
/** The host's invocation policy. Mirrors the parts of RES-10 this broker enforces. */
|
|
182
|
+
export interface BrokerHostPolicy {
|
|
183
|
+
/**
|
|
184
|
+
* Whether the host requires the prepared request to be journaled (HLM-09).
|
|
185
|
+
*
|
|
186
|
+
* When true, a recipe declaring `record: false` is refused rather than run unrecorded,
|
|
187
|
+
* and the broker refuses to be constructed without a journal sink.
|
|
188
|
+
*/
|
|
189
|
+
readonly requireRecording: boolean;
|
|
190
|
+
/** Whether a remote destination may be reached at all (RES-10). */
|
|
191
|
+
readonly remoteDestinations: boolean;
|
|
192
|
+
/** The host's output-token ceiling. */
|
|
193
|
+
readonly outputTokens: number;
|
|
194
|
+
/** The host's image-input ceiling. */
|
|
195
|
+
readonly imageInputs: number;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* The initial policy: RES-10's initial per-leaf maxima, with recording required.
|
|
199
|
+
*
|
|
200
|
+
* Recording defaults to REQUIRED because HLM-09 makes reconstructability a DSH
|
|
201
|
+
* requirement, and a default of "off" is how a harness call ends up unrecorded without
|
|
202
|
+
* anyone deciding that.
|
|
203
|
+
*/
|
|
204
|
+
export declare const INITIAL_HOST_POLICY: BrokerHostPolicy;
|
|
205
|
+
/** A local-only policy, which forbids remote destinations however the tool was built. */
|
|
206
|
+
export declare const LOCAL_ONLY_HOST_POLICY: BrokerHostPolicy;
|
|
207
|
+
/**
|
|
208
|
+
* Whether a policy permits reaching a destination (RES-10).
|
|
209
|
+
*
|
|
210
|
+
* Mirrored from the host's `harness-budgets.permitsDestination`: a local-only profile
|
|
211
|
+
* prohibits remote destinations INDEPENDENTLY of how the tool was implemented, so this
|
|
212
|
+
* asks the policy rather than the implementation. `local` is always permitted.
|
|
213
|
+
* @param policy - the policy in force.
|
|
214
|
+
* @param destination - the destination being considered.
|
|
215
|
+
* @returns whether it is permitted.
|
|
216
|
+
*/
|
|
217
|
+
export declare function permitsDestination(policy: BrokerHostPolicy, destination: ProviderDestination): boolean;
|
|
218
|
+
/**
|
|
219
|
+
* Narrow a policy by a requested reduction (RES-10, HLM-07).
|
|
220
|
+
*
|
|
221
|
+
* Every figure takes the MINIMUM, so a request can only lower a limit; that direction is
|
|
222
|
+
* the point, since a caller asking for more than the profile permits must get the
|
|
223
|
+
* profile's figure. `requireRecording` is an OR: a request can demand recording where
|
|
224
|
+
* the base was silent, and can never switch it off.
|
|
225
|
+
* @param base - the policy in force.
|
|
226
|
+
* @param requested - what the caller asked for.
|
|
227
|
+
* @returns the effective policy.
|
|
228
|
+
*/
|
|
229
|
+
export declare function narrowBrokerPolicy(base: BrokerHostPolicy, requested: Partial<BrokerHostPolicy>): BrokerHostPolicy;
|
|
230
|
+
/** The journal entry for one auxiliary call (HLM-09). */
|
|
231
|
+
export interface BrokerRecord {
|
|
232
|
+
/** The record kind, so a journal can hold more than one thing. */
|
|
233
|
+
readonly kind: 'harness-model-auxiliary-call';
|
|
234
|
+
/** The tool invocation this call belongs to. */
|
|
235
|
+
readonly toolName: string;
|
|
236
|
+
/** The contract identity, so the record ties to a versioned contract. */
|
|
237
|
+
readonly contractId: string;
|
|
238
|
+
/** The recipe identity and version, pinned for reconstructability. */
|
|
239
|
+
readonly recipeId: string;
|
|
240
|
+
/** The recipe version. */
|
|
241
|
+
readonly recipeVersion: string;
|
|
242
|
+
/** The provider that will run the call. */
|
|
243
|
+
readonly providerId: string;
|
|
244
|
+
/** The provider generation that was authorized. */
|
|
245
|
+
readonly providerGeneration: number;
|
|
246
|
+
/** Where the call goes. */
|
|
247
|
+
readonly destination: ProviderDestination;
|
|
248
|
+
/** The effective token ceiling. */
|
|
249
|
+
readonly maxOutputTokens: number;
|
|
250
|
+
/** How many image inputs the request carries. */
|
|
251
|
+
readonly imageCount: number;
|
|
252
|
+
/** The EXACT prepared prompt (HLM-09: the model-visible input must be reconstructable). */
|
|
253
|
+
readonly prompt: string;
|
|
254
|
+
/**
|
|
255
|
+
* What context the request carries.
|
|
256
|
+
*
|
|
257
|
+
* Recorded as a value rather than left implicit, so a journal entry states that the
|
|
258
|
+
* request was recipe-only instead of leaving a reader to infer it from the absence of
|
|
259
|
+
* fields.
|
|
260
|
+
*/
|
|
261
|
+
readonly context: 'recipe-only';
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Where journal entries go.
|
|
265
|
+
*
|
|
266
|
+
* The broker never writes a file itself: retention, access control and the operator's
|
|
267
|
+
* policy are the host's, and a broker that decided them would be deciding them outside
|
|
268
|
+
* the policy that governs them (HLM-09).
|
|
269
|
+
*/
|
|
270
|
+
export type BrokerRecordSink = (record: BrokerRecord) => void | Promise<void>;
|
|
271
|
+
/** Identity attached to a completed invocation. */
|
|
272
|
+
export interface ProviderIdentity {
|
|
273
|
+
/** The provider id. */
|
|
274
|
+
readonly id: string;
|
|
275
|
+
/** The generation the broker RESOLVED for this invocation. */
|
|
276
|
+
readonly generation: number;
|
|
277
|
+
/** Where it ran. */
|
|
278
|
+
readonly destination: ProviderDestination;
|
|
279
|
+
}
|
|
280
|
+
/** The recipe identity a completed invocation ran. */
|
|
281
|
+
export interface RecipeIdentity {
|
|
282
|
+
/** The recipe id. */
|
|
283
|
+
readonly id: string;
|
|
284
|
+
/** The recipe version. */
|
|
285
|
+
readonly version: string;
|
|
286
|
+
/** The tool the recipe implements. */
|
|
287
|
+
readonly toolName: string;
|
|
288
|
+
/** The contract the tool implements. */
|
|
289
|
+
readonly contractId: string;
|
|
290
|
+
}
|
|
291
|
+
/** What one recipe invocation produced. */
|
|
292
|
+
export type BrokerOutcome = {
|
|
293
|
+
readonly kind: 'completed';
|
|
294
|
+
/** The model's text. Never empty: an empty completion fails instead. */
|
|
295
|
+
readonly text: string;
|
|
296
|
+
/** What the provider reported, or an honest unknown. */
|
|
297
|
+
readonly usage: LlmUsage;
|
|
298
|
+
/** Whether the prepared request was journaled. */
|
|
299
|
+
readonly recorded: boolean;
|
|
300
|
+
/** Which provider generation served the call. */
|
|
301
|
+
readonly provider: ProviderIdentity;
|
|
302
|
+
/** Which recipe was run. */
|
|
303
|
+
readonly recipe: RecipeIdentity;
|
|
304
|
+
} | {
|
|
305
|
+
readonly kind: 'failed';
|
|
306
|
+
readonly code: BrokerErrorCode;
|
|
307
|
+
readonly reason: string;
|
|
308
|
+
} | {
|
|
309
|
+
readonly kind: 'cancelled';
|
|
310
|
+
readonly reason: string;
|
|
311
|
+
};
|
|
312
|
+
/** A completed invocation. */
|
|
313
|
+
export type BrokerCompletion = Extract<BrokerOutcome, {
|
|
314
|
+
kind: 'completed';
|
|
315
|
+
}>;
|
|
316
|
+
/** Raised by {@link HarnessBroker.runOrThrow}. */
|
|
317
|
+
export declare class BrokerError extends Error {
|
|
318
|
+
readonly name = "BrokerError";
|
|
319
|
+
/** The failure code. */
|
|
320
|
+
readonly code: BrokerErrorCode;
|
|
321
|
+
constructor(code: BrokerErrorCode, message: string);
|
|
322
|
+
}
|
|
323
|
+
/** An authorization for one tool, captured with the provider's generation. */
|
|
324
|
+
export interface ProviderGrant {
|
|
325
|
+
/** The tool the authorization covers. */
|
|
326
|
+
readonly toolName: string;
|
|
327
|
+
/** The authorized provider. */
|
|
328
|
+
readonly provider: LlmProvider;
|
|
329
|
+
/** The generation observed when the authorization was issued. */
|
|
330
|
+
readonly generation: number;
|
|
331
|
+
}
|
|
332
|
+
/** Options for a broker. */
|
|
333
|
+
export interface BrokerOptions {
|
|
334
|
+
/** The host policy. Defaults to {@link INITIAL_HOST_POLICY}. */
|
|
335
|
+
readonly policy?: BrokerHostPolicy;
|
|
336
|
+
/** The journal sink. Required when the policy requires recording (HLM-09). */
|
|
337
|
+
readonly record?: BrokerRecordSink;
|
|
338
|
+
}
|
|
339
|
+
/** Options for one invocation. */
|
|
340
|
+
export interface RunOptions {
|
|
341
|
+
/** The caller's cancellation channel. */
|
|
342
|
+
readonly signal?: AbortSignal;
|
|
343
|
+
/**
|
|
344
|
+
* A wall-clock deadline for this invocation, in milliseconds (RES-10's 60 s figure is
|
|
345
|
+
* the caller's to pass).
|
|
346
|
+
*
|
|
347
|
+
* Implemented by aborting the same internal controller the caller's signal aborts, so
|
|
348
|
+
* there is exactly one cancellation path and a deadline cannot report itself as a
|
|
349
|
+
* success.
|
|
350
|
+
*/
|
|
351
|
+
readonly deadlineMs?: number;
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* Build the ONE request a recipe can produce (HLM-05).
|
|
355
|
+
*
|
|
356
|
+
* Exported because the isolation property deserves to be checkable without a provider:
|
|
357
|
+
* the request object's key set IS the claim that nothing else is sent.
|
|
358
|
+
* @param recipe - the recipe being run.
|
|
359
|
+
* @param values - validated bindings.
|
|
360
|
+
* @param maxOutputTokens - the effective ceiling.
|
|
361
|
+
* @param signal - the cancellation channel.
|
|
362
|
+
* @returns the frozen request.
|
|
363
|
+
*/
|
|
364
|
+
export declare function buildIsolatedRequest(recipe: RecipeManifest, values: Readonly<Record<string, RecipeValue>>, maxOutputTokens: number, signal: AbortSignal): BrokerRequest;
|
|
365
|
+
/**
|
|
366
|
+
* The harness broker.
|
|
367
|
+
*
|
|
368
|
+
* One instance holds the authorizations (which tool may use which provider generation)
|
|
369
|
+
* and the host policy. It is deliberately not a registry of tools: nothing here switches
|
|
370
|
+
* on a tool name, which is what RCP-12 forbids and what the tests assert by running two
|
|
371
|
+
* different recipes through the same code path.
|
|
372
|
+
*/
|
|
373
|
+
export declare class HarnessBroker {
|
|
374
|
+
#private;
|
|
375
|
+
constructor(options?: BrokerOptions);
|
|
376
|
+
/** The host policy in force. */
|
|
377
|
+
get policy(): BrokerHostPolicy;
|
|
378
|
+
/**
|
|
379
|
+
* Authorize a provider generation for one tool (HLM-02).
|
|
380
|
+
*
|
|
381
|
+
* The generation is CAPTURED here rather than read at dispatch time, so a provider that
|
|
382
|
+
* reloads between authorization and dispatch stops being authorized instead of being
|
|
383
|
+
* silently used under the old decision.
|
|
384
|
+
* @param toolName - the tool this authorization covers.
|
|
385
|
+
* @param provider - the provider.
|
|
386
|
+
*/
|
|
387
|
+
authorize(toolName: string, provider: LlmProvider): ProviderGrant;
|
|
388
|
+
/**
|
|
389
|
+
* Revoke a tool's authorization.
|
|
390
|
+
* @param toolName - the tool to revoke.
|
|
391
|
+
* @returns whether an authorization existed.
|
|
392
|
+
*/
|
|
393
|
+
revoke(toolName: string): boolean;
|
|
394
|
+
/**
|
|
395
|
+
* The live authorization for a tool, or `undefined`.
|
|
396
|
+
*
|
|
397
|
+
* `undefined` covers both "never authorized" and "authorized for a generation this
|
|
398
|
+
* provider no longer is", because from a caller's point of view both mean the same
|
|
399
|
+
* thing: this invocation has no authorized executor. {@link resolveGrant} keeps the
|
|
400
|
+
* two apart for the error message.
|
|
401
|
+
* @param toolName - the tool to look up.
|
|
402
|
+
* @returns the grant, when it is still valid.
|
|
403
|
+
*/
|
|
404
|
+
grantFor(toolName: string): ProviderGrant | undefined;
|
|
405
|
+
/**
|
|
406
|
+
* Run one recipe invocation.
|
|
407
|
+
*
|
|
408
|
+
* Cancellation, policy refusals and provider failures all come back as outcomes rather
|
|
409
|
+
* than exceptions, so a caller that must report a result cannot lose one to an
|
|
410
|
+
* unhandled rejection. Use {@link runOrThrow} where an exception is the right shape.
|
|
411
|
+
* @param recipe - the recipe to run.
|
|
412
|
+
* @param args - the caller's arguments, validated against the recipe's inputs.
|
|
413
|
+
* @param options - the cancellation channel and deadline.
|
|
414
|
+
* @returns the outcome: never a success that carries no text.
|
|
415
|
+
*/
|
|
416
|
+
run(recipe: RecipeManifest, args: unknown, options?: RunOptions): Promise<BrokerOutcome>;
|
|
417
|
+
/**
|
|
418
|
+
* Run one recipe invocation, throwing on failure or cancellation.
|
|
419
|
+
* @param recipe - the recipe to run.
|
|
420
|
+
* @param args - the caller's arguments.
|
|
421
|
+
* @param options - the cancellation channel and deadline.
|
|
422
|
+
* @returns the completed outcome.
|
|
423
|
+
* @throws BrokerError on any failure, including cancellation.
|
|
424
|
+
*/
|
|
425
|
+
runOrThrow(recipe: RecipeManifest, args: unknown, options?: RunOptions): Promise<BrokerCompletion>;
|
|
426
|
+
}
|
|
427
|
+
//# sourceMappingURL=broker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"broker.d.ts","sourceRoot":"","sources":["../src/broker.ts"],"names":[],"mappings":"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"}
|