@try-works/dsh-model-as-tool 0.1.3 → 0.4.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/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 +614 -0
- package/client/index.js +1717 -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 +325 -0
- package/lib/extension-dependencies.d.ts.map +1 -0
- package/lib/extension-dependencies.js +858 -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 +221 -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 +367 -0
- package/lib/extensions-service.d.ts.map +1 -0
- package/lib/extensions-service.js +1527 -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 +271 -7
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2644 -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 +32 -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 +32 -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 +191 -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/tar-gzip-source.d.ts +44 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/install/tar-gzip-source.d.ts.map +1 -0
- package/node_modules/@try-works/tool-mode-extension-sdk/lib/install/tar-gzip-source.js +243 -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 +462 -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,367 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The HOST half of the extension-management surface (Settings → Model as Tool).
|
|
3
|
+
*
|
|
4
|
+
* This module implements {@link ModelToolsRemote} from `extensions-api.ts` and is
|
|
5
|
+
* deliberately WIRE-AGNOSTIC: it imports `node:*` and the published SDK, never DSH,
|
|
6
|
+
* never the client page, and never the generated Typert artifact. That boundary is
|
|
7
|
+
* what lets the same implementation be exercised by unit tests without a Context,
|
|
8
|
+
* by the plugin at `apply`, and by whatever transports the browser half uses.
|
|
9
|
+
*
|
|
10
|
+
* The governing rule is TRUTHFULNESS over convenience, because every field here is
|
|
11
|
+
* shown to an operator who is about to change what code their host runs:
|
|
12
|
+
*
|
|
13
|
+
* - `store` is `null` when no extension store is configured, rather than an empty
|
|
14
|
+
* string that a caller could mistake for a mounted store.
|
|
15
|
+
* - `writable` is derived from a real access check on the store path and from the
|
|
16
|
+
* store lock being readable, not assumed from "the config mentions a directory".
|
|
17
|
+
* - `installed` means a record exists in the store lock; `active` means the
|
|
18
|
+
* persisted observation was made by THIS process; `integrity` is `unknown` when
|
|
19
|
+
* the installed bytes could not be digested, never `unchanged` by default.
|
|
20
|
+
* - `reason` names the FIRST condition that prevents install/activation, so a UI
|
|
21
|
+
* can show why an extension is not usable instead of guessing.
|
|
22
|
+
*
|
|
23
|
+
* INSTALLATION IS NOT ACTIVATION (EXT-07): `install` returns `active: false` and
|
|
24
|
+
* never calls the lifecycle. `enable`/`disable` are the only activation paths.
|
|
25
|
+
*
|
|
26
|
+
* FIRST-PARTY DEPENDENCIES (EXT-09): a source-directory install also supplies the
|
|
27
|
+
* SDK's dependency graph (`extension-dependencies.ts`), which resolves every
|
|
28
|
+
* declared runtime dependency from the host's own installed tree and refuses the
|
|
29
|
+
* install by name when one is missing. With the operator's preinstalled-content
|
|
30
|
+
* gate on, the resolved directory is copied by the SDK and recorded with
|
|
31
|
+
* `provenance: 'preinstalled'`; with it off (the default), the dependency is served
|
|
32
|
+
* as verified archive bytes and EXT-10's lifecycle-script refusal applies.
|
|
33
|
+
*
|
|
34
|
+
* PERSISTENCE, STATED HONESTLY:
|
|
35
|
+
*
|
|
36
|
+
* - Activation intent is durable through the SDK: `ExtensionLifecycle.activate`
|
|
37
|
+
* writes `desiredActivation: 'active'` and `deactivate` writes `'inactive'` into
|
|
38
|
+
* the profile state document, so a restart follows the operator's last toggle
|
|
39
|
+
* even when nothing else persists.
|
|
40
|
+
* - The operator's `disabledExtensions` list is a CONFIG value (Settings form). This
|
|
41
|
+
* service cannot write plugin config from the host: no config writer is injected.
|
|
42
|
+
* It therefore keeps this process's toggles as an in-memory override, seeded from
|
|
43
|
+
* `disabledExtensions`, and exposes `persistDisabledExtensions` as the seam a host
|
|
44
|
+
* with a config writer supplies. Without that seam, a toggle is truthfully
|
|
45
|
+
* reported as affecting this process only, and a `disable` survives restart via
|
|
46
|
+
* the SDK's durable `desiredActivation: 'inactive'` while an `enable` of an id
|
|
47
|
+
* still listed in config will be filtered by the restore gate on the next load.
|
|
48
|
+
*
|
|
49
|
+
* @module @try-works/dsh-model-as-tool/extensions-service
|
|
50
|
+
*/
|
|
51
|
+
import { stagedInstallFromDirectory, type ExtensionLifecycle, type InstallDependencyGraph } from '@try-works/tool-mode-extension-sdk';
|
|
52
|
+
import type { ExtensionInstallResult, ExtensionPrepareResult, ExtensionToggleResult, ExtensionsDescribeResult, ModelToolsRemote } from './extensions-api.ts';
|
|
53
|
+
import type { AcquisitionSource } from './asset-acquisition.ts';
|
|
54
|
+
import type { PrepareAssetsSurface } from './prepared-assets.ts';
|
|
55
|
+
/** What the host can report about the shared harness model provider (declarative extensions). */
|
|
56
|
+
export interface HarnessProviderStatus {
|
|
57
|
+
/** Whether a provider is composed and able to serve declarative extensions. */
|
|
58
|
+
readonly available: boolean;
|
|
59
|
+
/** Provider identity when available, for the satisfied reason. */
|
|
60
|
+
readonly provider?: string;
|
|
61
|
+
/** Model identity the provider serves, when known. */
|
|
62
|
+
readonly model?: string;
|
|
63
|
+
/**
|
|
64
|
+
* REQUIRED when `available` is false: why not, and the exact remediation.
|
|
65
|
+
*
|
|
66
|
+
* Used VERBATIM as the harness-model requirement reason (and the enable preflight
|
|
67
|
+
* message), so it must be operator-facing and name the configuration that fixes it.
|
|
68
|
+
*/
|
|
69
|
+
readonly reason?: string;
|
|
70
|
+
/** What clears it; defaults to `config`. */
|
|
71
|
+
readonly action?: 'config' | 'none';
|
|
72
|
+
}
|
|
73
|
+
/** The lifecycle surface this service needs. Narrower than the class, so a test can double it. */
|
|
74
|
+
export type ExtensionActivation = Pick<ExtensionLifecycle, 'stateOf' | 'activate' | 'deactivate'>;
|
|
75
|
+
/** The directory installer signature the service delegates to. */
|
|
76
|
+
export type DirectoryInstaller = (options: Parameters<typeof stagedInstallFromDirectory>[0]) => ReturnType<typeof stagedInstallFromDirectory>;
|
|
77
|
+
/** Every named refusal this service raises. */
|
|
78
|
+
export type ExtensionsServiceErrorCode =
|
|
79
|
+
/** `install`/`enable`/`disable` need `config.extensionStore`; it is not configured. */
|
|
80
|
+
'extension-store-unconfigured'
|
|
81
|
+
/** `install` had no explicit source and `config.extensionSourceDir` is not configured. */
|
|
82
|
+
| 'extension-source-unconfigured'
|
|
83
|
+
/** The resolved source directory does not exist, or is not a directory. */
|
|
84
|
+
| 'extension-source-missing'
|
|
85
|
+
/** The requested id is not a usable package identity (a path could escape the source root). */
|
|
86
|
+
| 'extension-id-invalid'
|
|
87
|
+
/** The source package's own name is not the id that was requested. */
|
|
88
|
+
| 'extension-source-mismatch'
|
|
89
|
+
/** The source directory does not contain a discoverable extension package. */
|
|
90
|
+
| 'extension-source-invalid'
|
|
91
|
+
/** Source-directory installs are developer mode and must be allowed by configuration. */
|
|
92
|
+
| 'extension-source-directories-not-allowed'
|
|
93
|
+
/** The integrity digest of the source or the installed copy could not be computed. */
|
|
94
|
+
| 'extension-digest-unavailable'
|
|
95
|
+
/** The SDK installer refused or failed; its own named error is carried in the message. */
|
|
96
|
+
| 'extension-install-failed'
|
|
97
|
+
/** A declared runtime dependency could not be resolved, verified or materialized. */
|
|
98
|
+
| 'extension-dependency-unsatisfied'
|
|
99
|
+
/** The extension has no installed record in the store, so it cannot be activated. */
|
|
100
|
+
| 'extension-not-installed'
|
|
101
|
+
/** The store lock or the profile state document is unreadable, so activation state cannot be trusted. */
|
|
102
|
+
| 'extension-store-unreadable'
|
|
103
|
+
/** The host mounted no lifecycle (no store at load), so activation state cannot change. */
|
|
104
|
+
| 'extension-activation-unavailable'
|
|
105
|
+
/** `activate` refused or failed; the SDK's named error is carried in the message. */
|
|
106
|
+
| 'extension-activation-failed'
|
|
107
|
+
/** Activation is refused because a declared model's assets were never prepared. */
|
|
108
|
+
| 'extension-preparation-required'
|
|
109
|
+
/** The host mounted no prepared-assets surface, so assets cannot be prepared here. */
|
|
110
|
+
| 'extension-preparation-unavailable'
|
|
111
|
+
/** The preparation plan could not be resolved or its readiness could not be recorded. */
|
|
112
|
+
| 'extension-preparation-failed'
|
|
113
|
+
/** A prerequisite the deployment cannot satisfy blocks activation before any lifecycle call. */
|
|
114
|
+
| 'extension-requirement-unmet'
|
|
115
|
+
/** Registry mode was selected but no registry URL is configured. */
|
|
116
|
+
| 'extension-registry-unconfigured'
|
|
117
|
+
/** The registry has no such package, version, or dist-tag (HTTP 404 / no matching version). */
|
|
118
|
+
| 'extension-registry-not-found'
|
|
119
|
+
/** The registry metadata has no sha512 `dist.integrity`; unverified bytes are never installed. */
|
|
120
|
+
| 'extension-registry-integrity-missing'
|
|
121
|
+
/** The registry metadata or tarball URL does not have the shape this host can verify. */
|
|
122
|
+
| 'extension-registry-invalid-metadata'
|
|
123
|
+
/** The tarball could not be downloaded, or exceeds the configured byte cap. */
|
|
124
|
+
| 'extension-registry-fetch-failed'
|
|
125
|
+
/** Transport failure or 5xx: the registry did not answer usefully. */
|
|
126
|
+
| 'extension-registry-unavailable'
|
|
127
|
+
/** The fetched tarball does not hash to the registry-declared sha512. */
|
|
128
|
+
| 'extension-registry-integrity-mismatch'
|
|
129
|
+
/** `deactivate` refused or failed; the SDK's named error is carried in the message. */
|
|
130
|
+
| 'extension-deactivation-failed'
|
|
131
|
+
/** The host's disabled-list writer rejected the new list after the action landed. */
|
|
132
|
+
| 'extension-override-persist-failed';
|
|
133
|
+
/**
|
|
134
|
+
* A named refusal from the extension-management surface.
|
|
135
|
+
*
|
|
136
|
+
* The `code` is stable and machine-readable; the message is operator-facing and
|
|
137
|
+
* names the concrete condition (path, SDK code, or identity) rather than a generic
|
|
138
|
+
* "failed", because the Settings page shows it verbatim.
|
|
139
|
+
*/
|
|
140
|
+
export declare class ExtensionsServiceError extends Error {
|
|
141
|
+
readonly name = "ExtensionsServiceError";
|
|
142
|
+
readonly code: ExtensionsServiceErrorCode;
|
|
143
|
+
constructor(code: ExtensionsServiceErrorCode, message: string, options?: ErrorOptions);
|
|
144
|
+
}
|
|
145
|
+
/** The host's disabled-list store. `list` is read live; `set` is called after a toggle. */
|
|
146
|
+
export interface ExtensionsServiceOptions {
|
|
147
|
+
/** `config.extensionStore`; empty means no extension store is configured. */
|
|
148
|
+
readonly storeDir?: string;
|
|
149
|
+
/**
|
|
150
|
+
* `config.extensionSourceDir`: the directory that holds first-party package
|
|
151
|
+
* checkouts, one directory per package. Empty means no source directory.
|
|
152
|
+
*/
|
|
153
|
+
readonly sourceDir?: string;
|
|
154
|
+
/**
|
|
155
|
+
* `config.extensions.allowSourceDirectories`: the explicit developer-mode gate.
|
|
156
|
+
* Absent/false refuses every directory install with a named error.
|
|
157
|
+
*/
|
|
158
|
+
readonly allowSourceDirectories?: boolean;
|
|
159
|
+
/** The lifecycle profile; defaults to `default`, the profile the host restores. */
|
|
160
|
+
readonly profile?: string;
|
|
161
|
+
/** Read `config.disabledExtensions` live. */
|
|
162
|
+
readonly disabledExtensions?: () => readonly string[];
|
|
163
|
+
/**
|
|
164
|
+
* Persist the effective disabled list. The host's implementation must arrange for
|
|
165
|
+
* `disabledExtensions()` to return the same list afterwards; a rejection is
|
|
166
|
+
* surfaced as `extension-override-persist-failed`.
|
|
167
|
+
*/
|
|
168
|
+
readonly persistDisabledExtensions?: (ids: readonly string[]) => void | Promise<void>;
|
|
169
|
+
/**
|
|
170
|
+
* The mounted lifecycle, read lazily. Absent means the host mounted none, and
|
|
171
|
+
* `enable`/`disable` refuse with `extension-activation-unavailable` instead of
|
|
172
|
+
* pretending the durable state changed.
|
|
173
|
+
*/
|
|
174
|
+
readonly lifecycle?: () => ExtensionActivation | undefined;
|
|
175
|
+
/** Declare that this host cannot write the store (read-only mount). */
|
|
176
|
+
readonly readOnly?: boolean;
|
|
177
|
+
/**
|
|
178
|
+
* How an install without an explicit source directory is sourced.
|
|
179
|
+
*
|
|
180
|
+
* - `registry` (and `auto`, the default) resolve the package from the npm registry.
|
|
181
|
+
* - `directory` keeps the developer-mode source-directory path.
|
|
182
|
+
* - `auto` additionally falls back to the directory ONLY for a TRANSPORT-level
|
|
183
|
+
* registry failure (unreachable/timeout/5xx) and only when
|
|
184
|
+
* `allowSourceDirectories` is on; a package-level refusal (404, missing
|
|
185
|
+
* integrity, bad tarball, digest mismatch) is always named and never retried
|
|
186
|
+
* against a local directory.
|
|
187
|
+
*/
|
|
188
|
+
readonly installSource?: 'registry' | 'directory' | 'auto';
|
|
189
|
+
/** The npm registry base URL; defaults to the public npm registry. */
|
|
190
|
+
readonly registryUrl?: string;
|
|
191
|
+
/** Hard cap on one registry package tarball; defaults to the SDK archive bound (256 MiB). */
|
|
192
|
+
readonly registryTarballMaxBytes?: number;
|
|
193
|
+
/** INTERNAL TEST SEAM: the directory installer, defaulting to the SDK's staged path. */
|
|
194
|
+
readonly installDirectory?: DirectoryInstaller;
|
|
195
|
+
/** INTERNAL TEST SEAM: the content digest, defaulting to the SDK's installed-content digest. */
|
|
196
|
+
readonly digestContent?: (directory: string) => string;
|
|
197
|
+
/**
|
|
198
|
+
* INTERNAL TEST SEAM: the dependency graph for a first-party source checkout.
|
|
199
|
+
*
|
|
200
|
+
* The default resolves each declared dependency from the host's own installed
|
|
201
|
+
* tree (`extension-dependencies.ts`) and refuses the install, by name, when one
|
|
202
|
+
* is not installed or is inadmissible. The graph is part of the same
|
|
203
|
+
* developer-mode source-directory gate; it is never consulted for anything else.
|
|
204
|
+
*/
|
|
205
|
+
readonly dependencyGraph?: (sourcePackageDir: string) => InstallDependencyGraph;
|
|
206
|
+
/**
|
|
207
|
+
* Operator gate for PREINSTALLED dependency content (task-84); DEFAULT OFF.
|
|
208
|
+
*
|
|
209
|
+
* When on, a dependency resolved from the host's installed tree is copied by the
|
|
210
|
+
* SDK into the extension's own install directory and recorded with
|
|
211
|
+
* `provenance: 'preinstalled'` — the content arrived from an operator-completed
|
|
212
|
+
* install and this installer ran no lifecycle script. When off, the bytes arm
|
|
213
|
+
* applies and EXT-10's script refusal is unchanged. Requires
|
|
214
|
+
* {@link ExtensionsServiceOptions.preinstalledDependenciesRoot}.
|
|
215
|
+
*/
|
|
216
|
+
readonly allowPreinstalledDependencies?: boolean;
|
|
217
|
+
/** The operator-configured root preinstalled dependency directories must live under. */
|
|
218
|
+
readonly preinstalledDependenciesRoot?: string;
|
|
219
|
+
/**
|
|
220
|
+
* The mounted prepared-assets surface, read lazily (the plugin constructs it in
|
|
221
|
+
* `apply` after this service). Absent means the host mounted no asset surface,
|
|
222
|
+
* and `prepare` refuses with `extension-preparation-unavailable`.
|
|
223
|
+
*/
|
|
224
|
+
readonly prepareSurface?: () => PrepareAssetsSurface | undefined;
|
|
225
|
+
/**
|
|
226
|
+
* The acquisition source a preparation uses. Defaults to the real ranged HTTP
|
|
227
|
+
* source; a test injects a local source and the suite therefore performs no
|
|
228
|
+
* network.
|
|
229
|
+
*/
|
|
230
|
+
readonly preparationSource?: () => AcquisitionSource;
|
|
231
|
+
/**
|
|
232
|
+
* Read the operator's STANDING RES-02 approval for executable assets.
|
|
233
|
+
*
|
|
234
|
+
* DEFAULT FALSE. When false, `prepare` passes `allowExecutable: false` and the
|
|
235
|
+
* prepared-assets registry returns its exact refusal without acquiring anything.
|
|
236
|
+
* When the operator explicitly configured the approval, that is the standing
|
|
237
|
+
* consent for the digest-pinned plans this host resolves; the management channel
|
|
238
|
+
* (`extensions-prepare`) still takes its own PER-CALL flag and is unaffected.
|
|
239
|
+
*/
|
|
240
|
+
readonly allowExecutablePreparation?: () => boolean;
|
|
241
|
+
/**
|
|
242
|
+
* Read the host's harness-model provider status (task-93 seam).
|
|
243
|
+
*
|
|
244
|
+
* Consulted only for `execution.kind === 'declarative'` extensions, which are
|
|
245
|
+
* served by the host's harness broker and therefore need a composed LlmProvider.
|
|
246
|
+
* Absent means the host cannot answer; the harness-model requirement is then
|
|
247
|
+
* reported unsatisfied with an honest "provider status unknown" reason.
|
|
248
|
+
*/
|
|
249
|
+
readonly harnessProviderStatus?: () => HarnessProviderStatus | undefined;
|
|
250
|
+
/**
|
|
251
|
+
* Notified when this service changes an extension's activation intent.
|
|
252
|
+
*
|
|
253
|
+
* The host's contribution registrar refuses to publish a tool for an extension
|
|
254
|
+
* absent from its activated set, so a runtime `enable` must admit the id BEFORE
|
|
255
|
+
* the lifecycle publishes and revoke it when activation fails or the extension is
|
|
256
|
+
* disabled. The host implementations may reconcile against the lifecycle state.
|
|
257
|
+
*/
|
|
258
|
+
readonly onActivationChange?: (extensionId: string, active: boolean) => void;
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* The directory a first-party checkout for one package identity occupies.
|
|
262
|
+
*
|
|
263
|
+
* A source directory holds PACKAGE DIRECTORIES, not scoped directories: the
|
|
264
|
+
* workspace layout is `packages/extension-laya`, whose package name is
|
|
265
|
+
* `@try-works/extension-laya`. The scope is therefore dropped and the final path
|
|
266
|
+
* segment is used, which is the only mapping that requires no registry lookup.
|
|
267
|
+
* @param extensionId - the extension identity, which equals its package name.
|
|
268
|
+
* @returns the directory name under the configured source directory.
|
|
269
|
+
*/
|
|
270
|
+
export declare function packageDirFor(extensionId: string): string;
|
|
271
|
+
/**
|
|
272
|
+
* The extension-management service: describe, install, enable, disable.
|
|
273
|
+
*
|
|
274
|
+
* Construct one per host and share it between the wire transport and any local
|
|
275
|
+
* surface; it owns the in-process override list and must not be duplicated, or two
|
|
276
|
+
* instances would report different disabled sets.
|
|
277
|
+
*/
|
|
278
|
+
export declare class ExtensionsService implements ModelToolsRemote {
|
|
279
|
+
#private;
|
|
280
|
+
constructor(options?: ExtensionsServiceOptions);
|
|
281
|
+
/**
|
|
282
|
+
* Read the current state of the extension surface.
|
|
283
|
+
*
|
|
284
|
+
* Every row is derived from the store, the profile state and the source
|
|
285
|
+
* directory; nothing is cached between calls, so a page that re-reads after an
|
|
286
|
+
* action sees the committed result.
|
|
287
|
+
* @param signal - cancellation.
|
|
288
|
+
* @returns the store/source configuration and one row per known extension.
|
|
289
|
+
*/
|
|
290
|
+
describe(signal?: AbortSignal): Promise<ExtensionsDescribeResult>;
|
|
291
|
+
/**
|
|
292
|
+
* Install one extension, choosing the route from the operator configuration.
|
|
293
|
+
*
|
|
294
|
+
* - An EXPLICIT `source` path is always a developer-mode directory install (the
|
|
295
|
+
* existing source-directory gate and refusals apply).
|
|
296
|
+
* - Otherwise `installSource` decides. `registry` resolves `id@latest` from the
|
|
297
|
+
* npm registry. `directory` uses the configured source directory. `auto` (the
|
|
298
|
+
* default) prefers the registry and falls back to the directory ONLY for a
|
|
299
|
+
* transport-level registry failure (unreachable/timeout/5xx) when directory
|
|
300
|
+
* installs are allowed — a package-level refusal (404, missing integrity, bad
|
|
301
|
+
* tarball, digest mismatch) is always named and never retried locally.
|
|
302
|
+
*
|
|
303
|
+
* INSTALLATION IS NOT ACTIVATION: the result is always `active: false`, and it
|
|
304
|
+
* names the route that actually supplied the bytes.
|
|
305
|
+
* @param extensionId - the package identity to install.
|
|
306
|
+
* @param source - an explicit source directory (developer override), or absent.
|
|
307
|
+
* @param signal - cancellation.
|
|
308
|
+
* @returns the installed identity, version and route.
|
|
309
|
+
* @throws ExtensionsServiceError for every refusal and failure.
|
|
310
|
+
*/
|
|
311
|
+
install(extensionId: string, source?: string, signal?: AbortSignal): Promise<ExtensionInstallResult>;
|
|
312
|
+
/**
|
|
313
|
+
* Activate an installed extension and clear its disabled override.
|
|
314
|
+
*
|
|
315
|
+
* Activation runs through the mounted lifecycle, which verifies the installed
|
|
316
|
+
* bytes, publishes the contributions and persists `desiredActivation: 'active'`.
|
|
317
|
+
* The disabled list is updated only after activation succeeds, so a refused
|
|
318
|
+
* activation does not leave the operator's override claiming a state change that
|
|
319
|
+
* did not happen.
|
|
320
|
+
* @param extensionId - the installed extension.
|
|
321
|
+
* @param signal - cancellation.
|
|
322
|
+
* @returns the id with the observed active/disabled state.
|
|
323
|
+
* @throws ExtensionsServiceError for every refusal.
|
|
324
|
+
*/
|
|
325
|
+
enable(extensionId: string, signal?: AbortSignal): Promise<ExtensionToggleResult>;
|
|
326
|
+
/**
|
|
327
|
+
* Acquire and verify an installed extension's model assets, then record the
|
|
328
|
+
* resulting readiness.
|
|
329
|
+
*
|
|
330
|
+
* This is the management-channel `extensions-prepare-plan` + `extensions-prepare`
|
|
331
|
+
* pair behind one call, over the SAME host surface: the plan is resolved from the
|
|
332
|
+
* installed manifest's asset lock, the acquisition runs through the injectable
|
|
333
|
+
* source (the real ranged HTTP source unless the host injects one), and a
|
|
334
|
+
* successful acquisition records `prepared-cold` through the lifecycle — which is
|
|
335
|
+
* what lets a following `enable` activate the extension.
|
|
336
|
+
*
|
|
337
|
+
* The RES-02 executable gate is deliberately CLOSED here: the Remote call carries
|
|
338
|
+
* no executable-approval argument, so a plan containing an executable asset is
|
|
339
|
+
* returned as `prepared: false` with the registry's own reason rather than
|
|
340
|
+
* acquired. The pinned EmbeddingGemma assets are not executable.
|
|
341
|
+
* @param extensionId - the installed extension to prepare.
|
|
342
|
+
* @param signal - cancellation.
|
|
343
|
+
* @returns the disclosure that was executed and the resulting readiness.
|
|
344
|
+
* @throws ExtensionsServiceError for every precondition and plan failure.
|
|
345
|
+
*/
|
|
346
|
+
prepare(extensionId: string, signal?: AbortSignal): Promise<ExtensionPrepareResult>;
|
|
347
|
+
/**
|
|
348
|
+
* Deactivate an installed extension and record it as disabled.
|
|
349
|
+
*
|
|
350
|
+
* The SDK's deactivation persists `desiredActivation: 'inactive'` BEFORE it
|
|
351
|
+
* withdraws anything, so the durable answer survives a crash mid-withdrawal. The
|
|
352
|
+
* disabled override is recorded only after the lifecycle call settles; a
|
|
353
|
+
* deactivation that throws leaves the operator's list unchanged.
|
|
354
|
+
* @param extensionId - the installed extension.
|
|
355
|
+
* @param signal - cancellation.
|
|
356
|
+
* @returns the id with the observed active/disabled state.
|
|
357
|
+
* @throws ExtensionsServiceError for every refusal.
|
|
358
|
+
*/
|
|
359
|
+
disable(extensionId: string, signal?: AbortSignal): Promise<ExtensionToggleResult>;
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* Construct the extension-management service.
|
|
363
|
+
* @param options - store/source configuration and the host's seams.
|
|
364
|
+
* @returns a service satisfying {@link ModelToolsRemote}.
|
|
365
|
+
*/
|
|
366
|
+
export declare function createExtensionsService(options?: ExtensionsServiceOptions): ExtensionsService;
|
|
367
|
+
//# sourceMappingURL=extensions-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extensions-service.d.ts","sourceRoot":"","sources":["../src/extensions-service.ts"],"names":[],"mappings":"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"}
|