veryfront 0.1.1289-rc.25708 → 0.1.1289-rc.25721
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/docs/README.md +1 -1
- package/docs/config.json +1 -1
- package/docs/guides/tools.md +27 -2
- package/docs/manifest.json +6 -6
- package/esm/deno.js +1 -1
- package/esm/src/agent/ag-ui/connected-local-platform-tools.d.ts.map +1 -1
- package/esm/src/agent/ag-ui/connected-local-platform-tools.js +9 -2
- package/esm/src/agent/ag-ui/tool-shared.d.ts +2 -0
- package/esm/src/agent/ag-ui/tool-shared.d.ts.map +1 -1
- package/esm/src/agent/ag-ui/tool-shared.js +7 -0
- package/esm/src/agent/hosted/chat-runtime-tool-assembly.d.ts +2 -0
- package/esm/src/agent/hosted/chat-runtime-tool-assembly.d.ts.map +1 -1
- package/esm/src/agent/hosted/chat-runtime-tool-assembly.js +18 -2
- package/esm/src/agent/hosted/child-fork-tool-sources.d.ts +1 -0
- package/esm/src/agent/hosted/child-fork-tool-sources.d.ts.map +1 -1
- package/esm/src/agent/hosted/child-fork-tool-sources.js +49 -12
- package/esm/src/agent/hosted/default-chat-runtime.d.ts.map +1 -1
- package/esm/src/agent/hosted/default-chat-runtime.js +26 -1
- package/esm/src/agent/hosted/executor-runtime-facades.d.ts.map +1 -1
- package/esm/src/agent/hosted/executor-runtime-facades.js +3 -0
- package/esm/src/agent/hosted/executor-tool-schema.d.ts.map +1 -1
- package/esm/src/agent/hosted/executor-tool-schema.js +7 -1
- package/esm/src/agent/hosted/platform-dependency-credential.d.ts.map +1 -1
- package/esm/src/agent/hosted/platform-dependency-credential.js +26 -1
- package/esm/src/agent/hosted/project-remote-tool-source.d.ts.map +1 -1
- package/esm/src/agent/hosted/project-remote-tool-source.js +18 -0
- package/esm/src/agent/hosted/terminal-credential.d.ts.map +1 -1
- package/esm/src/agent/hosted/terminal-credential.js +9 -3
- package/esm/src/agent/platform-mcp-tool-source.d.ts.map +1 -1
- package/esm/src/agent/platform-mcp-tool-source.js +4 -0
- package/esm/src/agent/project/live-studio-mcp-tools.d.ts.map +1 -1
- package/esm/src/agent/project/live-studio-mcp-tools.js +14 -2
- package/esm/src/agent/runtime/index.d.ts.map +1 -1
- package/esm/src/agent/runtime/index.js +2269 -2191
- package/esm/src/agent/runtime/mcp-server-tool-sources.d.ts +2 -0
- package/esm/src/agent/runtime/mcp-server-tool-sources.d.ts.map +1 -1
- package/esm/src/agent/runtime/mcp-server-tool-sources.js +27 -0
- package/esm/src/agent/runtime/runtime-tool-config.d.ts +1 -0
- package/esm/src/agent/runtime/runtime-tool-config.d.ts.map +1 -1
- package/esm/src/agent/runtime/runtime-tool-config.js +4 -0
- package/esm/src/agent/runtime/tool-exposure.d.ts +4 -2
- package/esm/src/agent/runtime/tool-exposure.d.ts.map +1 -1
- package/esm/src/agent/runtime/tool-exposure.js +17 -4
- package/esm/src/html/hydration-script-builder/hydration-runtime.generated.js +1 -1
- package/esm/src/internal-agents/run-stream.d.ts.map +1 -1
- package/esm/src/internal-agents/run-stream.js +95 -23
- package/esm/src/platform/compat/http/pinned-fetch.d.ts +1 -1
- package/esm/src/server/handlers/request/agent-stream.handler.d.ts +2 -0
- package/esm/src/server/handlers/request/agent-stream.handler.d.ts.map +1 -1
- package/esm/src/server/handlers/request/agent-stream.handler.js +24 -3
- package/esm/src/server/handlers/request/run-terminal-tool-source.d.ts.map +1 -1
- package/esm/src/server/handlers/request/run-terminal-tool-source.js +12 -3
- package/esm/src/tool/factory.d.ts +2 -0
- package/esm/src/tool/factory.d.ts.map +1 -1
- package/esm/src/tool/factory.js +7 -0
- package/esm/src/tool/host-tools.d.ts +2 -0
- package/esm/src/tool/host-tools.d.ts.map +1 -1
- package/esm/src/tool/host-tools.js +14 -0
- package/esm/src/tool/project-scoped-remote-tools.d.ts.map +1 -1
- package/esm/src/tool/project-scoped-remote-tools.js +12 -0
- package/esm/src/tool/registry.d.ts.map +1 -1
- package/esm/src/tool/registry.js +3 -0
- package/esm/src/tool/remote-mcp.d.ts +11 -0
- package/esm/src/tool/remote-mcp.d.ts.map +1 -1
- package/esm/src/tool/remote-mcp.js +685 -85
- package/esm/src/tool/remote-source-tools.d.ts.map +1 -1
- package/esm/src/tool/remote-source-tools.js +1 -0
- package/esm/src/tool/remote-tool-source-owner.d.ts +14 -0
- package/esm/src/tool/remote-tool-source-owner.d.ts.map +1 -0
- package/esm/src/tool/remote-tool-source-owner.js +65 -0
- package/esm/src/tool/types.d.ts +4 -0
- package/esm/src/tool/types.d.ts.map +1 -1
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/package.json +9 -9
package/docs/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Veryfront Code documentation
|
|
2
2
|
|
|
3
|
-
These docs ship with veryfront 0.1.1289-rc.
|
|
3
|
+
These docs ship with veryfront 0.1.1289-rc.25721. Read the relevant guide before changing framework code in a consuming project. Start with [Local quickstart](./getting-started/quickstart.md), then use the task guides or generated API reference below.
|
|
4
4
|
|
|
5
5
|
Edit source comments and regenerate API reference; do not edit generated reference directly. Website docs may describe a newer version.
|
|
6
6
|
|
package/docs/config.json
CHANGED
package/docs/guides/tools.md
CHANGED
|
@@ -172,8 +172,9 @@ separate, and execution rechecks authorization.
|
|
|
172
172
|
`veryfront__tool_search` accepts exactly one of four mode fields. All arguments are
|
|
173
173
|
top-level strings or integers:
|
|
174
174
|
|
|
175
|
-
- `schema: "<exact name>"` returns one exact tool's input schema and
|
|
176
|
-
for the next model step.
|
|
175
|
+
- `schema: "<exact name>"` returns one exact tool's input schema and declared
|
|
176
|
+
output schema, then loads it for the next model step. A `null` output schema
|
|
177
|
+
means the tool source did not declare an output contract.
|
|
177
178
|
- `search: "<phrase>"` finds tools by a short capability phrase without loading
|
|
178
179
|
schemas.
|
|
179
180
|
- `inventory: "all" | "platform"` browses tool metadata pages. `platform` lists
|
|
@@ -336,6 +337,30 @@ export default agent({
|
|
|
336
337
|
});
|
|
337
338
|
```
|
|
338
339
|
|
|
340
|
+
### HTTP MCP compatibility
|
|
341
|
+
|
|
342
|
+
HTTP MCP sources send protocol version, client metadata and routing headers for
|
|
343
|
+
MCP 2026-07-28 tool discovery and calls. Schema-declared `x-mcp-header`
|
|
344
|
+
parameters are mirrored into request headers. Names and values that require
|
|
345
|
+
encoding use the protocol's Base64 format.
|
|
346
|
+
|
|
347
|
+
For a legacy server that rejects modern tool discovery with an unrecognized HTTP 400
|
|
348
|
+
response, the client initializes a session and reuses its negotiated protocol
|
|
349
|
+
version. Sessions are isolated by endpoint, credentials and run. A tool call for
|
|
350
|
+
a new run on such an endpoint initializes its session before the call is sent. An explicit
|
|
351
|
+
session-expiry HTTP 404 triggers one initialization and retry. Other failures
|
|
352
|
+
do not replay tool calls.
|
|
353
|
+
|
|
354
|
+
Agent runs release sessions for the MCP sources they create, including on
|
|
355
|
+
failure or cancellation. Hosts retain ownership of injected sources. If you
|
|
356
|
+
create a source with `createRemoteMCPToolSource`, call its optional `dispose()`
|
|
357
|
+
method when you finish using it. Session termination is best effort; a server
|
|
358
|
+
can reject termination with HTTP 405.
|
|
359
|
+
|
|
360
|
+
This transport supports remote tool discovery and execution. It does not
|
|
361
|
+
implement deprecated HTTP+SSE endpoint discovery, background subscriptions,
|
|
362
|
+
or server-initiated sampling and elicitation.
|
|
363
|
+
|
|
339
364
|
## Tool configuration
|
|
340
365
|
|
|
341
366
|
| Property | Type | Description |
|
package/docs/manifest.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.1.1289-rc.
|
|
2
|
+
"version": "0.1.1289-rc.25721",
|
|
3
3
|
"pages": [
|
|
4
4
|
{
|
|
5
5
|
"path": "api-reference/index.md",
|
|
@@ -711,8 +711,8 @@
|
|
|
711
711
|
"sources": [
|
|
712
712
|
{
|
|
713
713
|
"product": "code",
|
|
714
|
-
"version": "0.1.1289-rc.
|
|
715
|
-
"revision": "
|
|
714
|
+
"version": "0.1.1289-rc.25721",
|
|
715
|
+
"revision": "380e821ed0ebd2955c7d13e20cc8738fe540a690",
|
|
716
716
|
"dirty": false,
|
|
717
717
|
"repository": "https://github.com/veryfront/veryfront-code",
|
|
718
718
|
"versionPreparation": "ci-rc"
|
|
@@ -1009,7 +1009,7 @@
|
|
|
1009
1009
|
},
|
|
1010
1010
|
{
|
|
1011
1011
|
"path": "config.json",
|
|
1012
|
-
"sha256": "
|
|
1012
|
+
"sha256": "4cca2ee04115f91643aedeb40358246d52a9a37e8c2b54d6106f25ab8ad8fc52"
|
|
1013
1013
|
},
|
|
1014
1014
|
{
|
|
1015
1015
|
"path": "getting-started/add-to-existing-project.md",
|
|
@@ -1269,7 +1269,7 @@
|
|
|
1269
1269
|
},
|
|
1270
1270
|
{
|
|
1271
1271
|
"path": "guides/tools.md",
|
|
1272
|
-
"sha256": "
|
|
1272
|
+
"sha256": "c34ab5b2422587d2715c3151b756641cfc0fdc7fecf1fb6a504176dc0d0a1f42"
|
|
1273
1273
|
},
|
|
1274
1274
|
{
|
|
1275
1275
|
"path": "guides/ui-components.md",
|
|
@@ -1297,7 +1297,7 @@
|
|
|
1297
1297
|
},
|
|
1298
1298
|
{
|
|
1299
1299
|
"path": "README.md",
|
|
1300
|
-
"sha256": "
|
|
1300
|
+
"sha256": "24874e7b34431690f422232592b07b74c41f3c88d971d7d67ce3cc386b2c8701"
|
|
1301
1301
|
}
|
|
1302
1302
|
]
|
|
1303
1303
|
}
|
package/esm/deno.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connected-local-platform-tools.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/ag-ui/connected-local-platform-tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AAiBxE,OAAO,EAGL,KAAK,6BAA6B,EAInC,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAEL,KAAK,8BAA8B,EACpC,MAAM,2CAA2C,CAAC;AAmBnD,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,8CAA8C,CAAC;AAGrG,KAAK,KAAK,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAYnE,2FAA2F;AAC3F,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,OAAO,KAAK,EACvB,YAAY,GAAE;IACZ,kBAAkB,CAAC,EAAE,OAAO,8BAA8B,CAAC;IAC3D,cAAc,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CAC5D;;oBAkBuB,6BAA6B;oBA+B/C,6BAA6B,SAC7B,KAAK,cACA,MAAM,aACP,MAAM,qBACE,MAAM;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE;
|
|
1
|
+
{"version":3,"file":"connected-local-platform-tools.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/ag-ui/connected-local-platform-tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AAiBxE,OAAO,EAGL,KAAK,6BAA6B,EAInC,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAEL,KAAK,8BAA8B,EACpC,MAAM,2CAA2C,CAAC;AAmBnD,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,8CAA8C,CAAC;AAGrG,KAAK,KAAK,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAYnE,2FAA2F;AAC3F,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,OAAO,KAAK,EACvB,YAAY,GAAE;IACZ,kBAAkB,CAAC,EAAE,OAAO,8BAA8B,CAAC;IAC3D,cAAc,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CAC5D;;oBAkBuB,6BAA6B;oBA+B/C,6BAA6B,SAC7B,KAAK,cACA,MAAM,aACP,MAAM,qBACE,MAAM;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE;QA4ItE,CAAC,SAAS;QACZ,KAAK,EAAE,6BAA6B,CAAC;QACrC,KAAK,EAAE,KAAK,CAAC;QACb,MAAM,EAAE,8BAA8B,CAAC;QACvC,cAAc,EAAE,MAAM,CAAC;QACvB,MAAM,EAAE,WAAW,CAAC;QACpB,KAAK,EAAE,CACL,IAAI,EAAE;YAAE,YAAY,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,EAClD,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC1B,OAAO,CAAC,gCAAgC,CAAC,CAAC;KAChD,aAAa,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;EAqF9C"}
|
|
@@ -130,7 +130,7 @@ export function createConnectedLocalPlatformTools(apiUrl, transport, dependencie
|
|
|
130
130
|
});
|
|
131
131
|
credentials.set(childOwner, credential);
|
|
132
132
|
const factory = hostedTerminalToolSourceFactory(childOwner, endpoint, createSource);
|
|
133
|
-
|
|
133
|
+
const platformSource = factory({
|
|
134
134
|
id: VERYFRONT_API_MCP_SOURCE_ID,
|
|
135
135
|
endpoint,
|
|
136
136
|
headers: () => {
|
|
@@ -144,7 +144,13 @@ export function createConnectedLocalPlatformTools(apiUrl, transport, dependencie
|
|
|
144
144
|
: {}),
|
|
145
145
|
};
|
|
146
146
|
},
|
|
147
|
-
}, { id: VERYFRONT_API_MCP_SOURCE_ID, kind: "veryfront-api" })
|
|
147
|
+
}, { id: VERYFRONT_API_MCP_SOURCE_ID, kind: "veryfront-api" });
|
|
148
|
+
// The runtime receives this source as injected, so runtime cleanup
|
|
149
|
+
// never disposes it; revoking the owner terminates its sessions.
|
|
150
|
+
pushPrivateArray(ownerCleanup, async () => {
|
|
151
|
+
await platformSource.dispose?.();
|
|
152
|
+
});
|
|
153
|
+
let source = createLivePlatformMcpSource(platformSource);
|
|
148
154
|
// The API issues this scope only for this child's sealed sandbox selection.
|
|
149
155
|
let allowSandbox = false;
|
|
150
156
|
try {
|
|
@@ -174,6 +180,7 @@ export function createConnectedLocalPlatformTools(apiUrl, transport, dependencie
|
|
|
174
180
|
const mcp = source;
|
|
175
181
|
source = markTrustedPlatformSource({
|
|
176
182
|
id: mcp.id,
|
|
183
|
+
...(mcp.dispose ? { dispose: (context) => mcp.dispose(context) } : {}),
|
|
177
184
|
listTools: async (context) => [
|
|
178
185
|
...await mcp.listTools(context),
|
|
179
186
|
...mapPrivateArray(entries(native), ([name, tool]) => ({
|
|
@@ -10,6 +10,8 @@ export interface AgUiInjectedToolLike {
|
|
|
10
10
|
name: string;
|
|
11
11
|
description?: string;
|
|
12
12
|
parameters?: unknown;
|
|
13
|
+
/** Declared result contract; disclosure metadata only, without result validation. */
|
|
14
|
+
outputSchema?: unknown;
|
|
13
15
|
}
|
|
14
16
|
/** Resolve a source agent's authored selection to its current owner-visible catalog. */
|
|
15
17
|
export declare function buildExplicitAgUiSourceTools(agent: Agent): Exclude<Agent["config"]["tools"], true>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-shared.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/ag-ui/tool-shared.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tool-shared.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/ag-ui/tool-shared.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAIzC,kDAAkD;AAClD,MAAM,MAAM,eAAe,GAAG;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAIpE,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qFAAqF;IACrF,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wFAAwF;AACxF,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAWzC;AAOD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,oBAAoB,EAC1B,cAAc,EAAE,uBAAuB,CAAC,eAAe,CAAC,GACvD,IAAI,CA8BN;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,oBAAoB,EAAE,EAC7B,cAAc,EAAE,uBAAuB,CAAC,eAAe,CAAC,GACvD,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAgB1B"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { defineSchema } from "../../schemas/index.js";
|
|
2
2
|
import { AGENT_ERROR, INVALID_ARGUMENT } from "../../errors/index.js";
|
|
3
|
+
import { snapshotJsonSchemaObject } from "../../schemas/schema-input.js";
|
|
3
4
|
import { toolRegistry } from "../../tool/registry.js";
|
|
4
5
|
import { isToolVisibleTo } from "../../tool/executor.js";
|
|
5
6
|
import { createAgentKnowledgeTool } from "../runtime/knowledge-tools.js";
|
|
@@ -21,7 +22,12 @@ export function buildExplicitAgUiSourceTools(agent) {
|
|
|
21
22
|
tools[knowledgeTool.id] = knowledgeTool;
|
|
22
23
|
return tools;
|
|
23
24
|
}
|
|
25
|
+
/** Disclosure metadata only: an unusable declaration is omitted, never trusted or fatal. */
|
|
26
|
+
function snapshotInjectedOutputSchema(tool) {
|
|
27
|
+
return tool.outputSchema === undefined ? undefined : snapshotJsonSchemaObject(tool.outputSchema);
|
|
28
|
+
}
|
|
24
29
|
export function createInjectedAgUiTool(runId, tool, sessionManager) {
|
|
30
|
+
const outputSchemaJson = snapshotInjectedOutputSchema(tool);
|
|
25
31
|
return markRuntimeLocalTool({
|
|
26
32
|
id: tool.name,
|
|
27
33
|
type: "function",
|
|
@@ -29,6 +35,7 @@ export function createInjectedAgUiTool(runId, tool, sessionManager) {
|
|
|
29
35
|
inputSchema: getAnyObjectSchema(),
|
|
30
36
|
inputSchemaJson: (tool.parameters ??
|
|
31
37
|
{ type: "object", properties: {}, additionalProperties: true }),
|
|
38
|
+
...(outputSchemaJson ? { outputSchemaJson } : {}),
|
|
32
39
|
execute: async (_input, context) => {
|
|
33
40
|
const toolCallId = typeof context?.toolCallId === "string" ? context.toolCallId : null;
|
|
34
41
|
if (!toolCallId) {
|
|
@@ -36,6 +36,8 @@ export type HostedChatRuntimeToolAssemblyResult = {
|
|
|
36
36
|
readonly sourceIntegrationPolicy: SourceIntegrationPolicyManifest;
|
|
37
37
|
runtimeTools: ToolSet;
|
|
38
38
|
remoteToolSources: RemoteToolSource[];
|
|
39
|
+
/** Release only the remote sources created by this assembly. */
|
|
40
|
+
closeRemoteToolSources?: () => Promise<void>;
|
|
39
41
|
/** API-backed source used for framework research artifact mirroring. */
|
|
40
42
|
researchArtifactRemoteToolSource?: RemoteToolSource;
|
|
41
43
|
localToolNames: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-runtime-tool-assembly.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/hosted/chat-runtime-tool-assembly.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chat-runtime-tool-assembly.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/hosted/chat-runtime-tool-assembly.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ import { applySourceIntegrationPolicy } from "../../integrations/source-policy.j
|
|
|
7
7
|
import { isToolAllowedBySourcePolicy } from "../../tool/platform-tool-policy.js";
|
|
8
8
|
import { observePrivatePromise } from "../../security/private-promise.js";
|
|
9
9
|
import { createPrivateSet } from "../../security/private-set.js";
|
|
10
|
+
import { createRemoteToolSourceOwner } from "../../tool/remote-tool-source-owner.js";
|
|
10
11
|
import { defineOwnDataProperty } from "../../security/own-data-property.js";
|
|
11
12
|
import { createRemoteMCPToolSource, createToolsFromHostDefinitions, listProjectScopedRemoteToolNames, traceHostTools, } from "../../tool/index.js";
|
|
12
13
|
import { fetchLatestConversationUserText, updateDefaultResearchArtifacts, } from "../artifacts/default-research-artifact-support.js";
|
|
@@ -816,13 +817,28 @@ async function prepareHostedChatRuntimeToolAssemblyInternal(input, configDerived
|
|
|
816
817
|
objectSetPrototypeOf(result, null);
|
|
817
818
|
return result;
|
|
818
819
|
}
|
|
820
|
+
async function prepareOwnedHostedChatRuntimeToolAssembly(input, configDerivedSelector) {
|
|
821
|
+
const owner = createRemoteToolSourceOwner();
|
|
822
|
+
const createSource = input.createRemoteToolSource ?? createRemoteMCPToolSource;
|
|
823
|
+
try {
|
|
824
|
+
const result = await prepareHostedChatRuntimeToolAssemblyInternal({
|
|
825
|
+
...input,
|
|
826
|
+
createRemoteToolSource: (config, server) => owner.own(createSource(config, server)),
|
|
827
|
+
}, configDerivedSelector);
|
|
828
|
+
result.closeRemoteToolSources = owner.dispose;
|
|
829
|
+
return result;
|
|
830
|
+
}
|
|
831
|
+
catch (error) {
|
|
832
|
+
return await owner.fail(error);
|
|
833
|
+
}
|
|
834
|
+
}
|
|
819
835
|
/** Prepare hosted chat runtime tool assembly. */
|
|
820
836
|
export function prepareHostedChatRuntimeToolAssembly(input) {
|
|
821
|
-
return
|
|
837
|
+
return prepareOwnedHostedChatRuntimeToolAssembly(input, false);
|
|
822
838
|
}
|
|
823
839
|
/** @internal Prepare an assembly whose selector provenance was verified by the hosted runtime. */
|
|
824
840
|
export function prepareConfigDerivedHostedChatRuntimeToolAssembly(input) {
|
|
825
|
-
return
|
|
841
|
+
return prepareOwnedHostedChatRuntimeToolAssembly(input, input.includeRuntimeEssentialToolsWhenEmpty === true);
|
|
826
842
|
}
|
|
827
843
|
/** @internal Use prepared operation facades without constructing credentialed clients. */
|
|
828
844
|
export function prepareFacadedHostedChatRuntimeToolAssembly(input) {
|
|
@@ -34,6 +34,7 @@ export type PrepareDefaultHostedChildForkToolSourcesInput = {
|
|
|
34
34
|
export type DefaultHostedChildForkToolSourcesResult = {
|
|
35
35
|
ok: true;
|
|
36
36
|
forkTools: HostToolSet;
|
|
37
|
+
/** Closes the Studio tools and releases every MCP source created for the fork. */
|
|
37
38
|
closeStudioMcpTools?: () => Promise<void>;
|
|
38
39
|
} | {
|
|
39
40
|
ok: false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"child-fork-tool-sources.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/hosted/child-fork-tool-sources.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,gCAAgC,EAChC,KAAK,WAAW,EAChB,KAAK,yBAAyB,EAC9B,KAAK,gBAAgB,EACtB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"child-fork-tool-sources.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/hosted/child-fork-tool-sources.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,gCAAgC,EAChC,KAAK,WAAW,EAChB,KAAK,yBAAyB,EAC9B,KAAK,gBAAgB,EACtB,MAAM,qBAAqB,CAAC;AAe7B,OAAO,EACL,KAAK,2BAA2B,EAGjC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,KAAK,+BAA+B,EACpC,KAAK,8BAA8B,EAEpC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EACL,KAAK,+BAA+B,EAErC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAEL,KAAK,8CAA8C,EACpD,MAAM,4BAA4B,CAAC;AAWpC,qEAAqE;AACrE,MAAM,MAAM,gCAAgC,GAAG;IAC7C,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CACtE,CAAC;AAEF,wEAAwE;AACxE,MAAM,MAAM,6CAA6C,GAAG;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,SAAS,2BAA2B,EAAE,CAAC;IACpD,YAAY,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC9C,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC5C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,8BAA8B,CAAC,EAAE,+BAA+B,CAAC;IACjE,sBAAsB,CAAC,EAAE,CAAC,MAAM,EAAE,yBAAyB,KAAK,gBAAgB,CAAC;IACjF,gCAAgC,CAAC,EAAE,OAAO,gCAAgC,CAAC;IAC3E,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,OAAO,CAAC;QACpE,KAAK,EAAE,WAAW,CAAC;QACnB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;KAC5B,CAAC,CAAC;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IAC3C,MAAM,CAAC,EAAE,gCAAgC,CAAC;CAC3C,CAAC;AAEF,mEAAmE;AACnE,MAAM,MAAM,uCAAuC,GAC/C;IACA,EAAE,EAAE,IAAI,CAAC;IACT,SAAS,EAAE,WAAW,CAAC;IACvB,kFAAkF;IAClF,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C,GACC;IACA,EAAE,EAAE,KAAK,CAAC;IACV,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEJ,gFAAgF;AAChF,MAAM,MAAM,oDAAoD,GAC5D,6CAA6C,GAC7C;IACA,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,+BAA+B,CAAC,cAAc,CAAC,CAAC;IAC/D,cAAc,EAAE,+BAA+B,CAAC,gBAAgB,CAAC,CAAC;IAClE,8BAA8B,CAAC,EAAE,CAC/B,KAAK,EAAE,+BAA+B,KACnC,OAAO,CAAC,8BAA8B,CAAC,CAAC;CAC9C,CAAC;AAEJ,sDAAsD;AACtD,wBAAsB,wCAAwC,CAC5D,KAAK,EAAE,6CAA6C,GACnD,OAAO,CAAC,uCAAuC,CAAC,CAuKlD;AAED,8DAA8D;AAC9D,wBAAsB,+CAA+C,CACnE,KAAK,EAAE,oDAAoD,GAC1D,OAAO,CAAC,8CAA8C,CAAC,CAqDzD"}
|
|
@@ -2,6 +2,9 @@ import { canonicalPlatformHostTools, withPlatformHostToolAliases } from "../plat
|
|
|
2
2
|
import { createPlatformMcpCatalogSource, withPlatformMcpPolicyAliases, } from "../platform-mcp-tool-source.js";
|
|
3
3
|
import { createRemoteMCPToolSource, createToolsFromRemoteDefinitions, } from "../../tool/index.js";
|
|
4
4
|
import { markTrustedHostToolSet } from "../../tool/host-tool-provenance.js";
|
|
5
|
+
import { createRemoteToolSourceOwner } from "../../tool/remote-tool-source-owner.js";
|
|
6
|
+
import { allPrivatePromises, chainPrivatePromise, resolvePrivatePromise, } from "../../security/private-promise.js";
|
|
7
|
+
import { appendPrivateArray, mapPrivateArray, pushPrivateArray, } from "../../security/private-array.js";
|
|
5
8
|
import { AGENT_ERROR } from "../../errors/index.js";
|
|
6
9
|
import { isErrorAcrossRealms } from "../../platform/compat/error-introspection.js";
|
|
7
10
|
import { createAgentServiceRemoteMcpConfig, defaultAgentServiceMcpServers, } from "../service/mcp-server-config.js";
|
|
@@ -15,11 +18,37 @@ import { createHostedMcpToolPolicySource, throwExplicitStudioMcpUnavailable, } f
|
|
|
15
18
|
/** Prepare default hosted child fork tool sources. */
|
|
16
19
|
export async function prepareDefaultHostedChildForkToolSources(input) {
|
|
17
20
|
throwIfAborted(input.abortSignal);
|
|
18
|
-
|
|
21
|
+
// Every configured Studio entry negotiates its own session, so each closer is kept.
|
|
22
|
+
const studioClosers = [];
|
|
19
23
|
let studioMcpTools = {};
|
|
20
24
|
let remoteMcpTools = {};
|
|
21
25
|
const createLiveStudioTools = input.createLiveStudioTools ?? createLiveStudioMcpTools;
|
|
22
|
-
|
|
26
|
+
// Raw sources created here may negotiate sessions; the returned closer and
|
|
27
|
+
// every failure path release them together with the Studio tools.
|
|
28
|
+
const remoteSources = createRemoteToolSourceOwner();
|
|
29
|
+
const createSource = input.createRemoteToolSource ?? createRemoteMCPToolSource;
|
|
30
|
+
const createRemoteToolSource = (config) => remoteSources.own(createSource(config));
|
|
31
|
+
const closeMcpTools = async () => {
|
|
32
|
+
// Every closer starts before any is awaited; the first failure wins.
|
|
33
|
+
const closers = [];
|
|
34
|
+
appendPrivateArray(closers, studioClosers);
|
|
35
|
+
pushPrivateArray(closers, () => remoteSources.dispose());
|
|
36
|
+
const failures = await allPrivatePromises(mapPrivateArray(closers, (close) => chainPrivatePromise(chainPrivatePromise(resolvePrivatePromise(), close), () => undefined, (error) => ({ error }))));
|
|
37
|
+
for (const failure of failures) {
|
|
38
|
+
if (failure)
|
|
39
|
+
throw failure.error;
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
const releaseAfterFailure = async () => {
|
|
43
|
+
try {
|
|
44
|
+
await closeMcpTools();
|
|
45
|
+
}
|
|
46
|
+
catch (cleanupError) {
|
|
47
|
+
input.logger?.error("Failed to close MCP tool sources after child fork setup failed", {
|
|
48
|
+
errorName: cleanupError instanceof Error ? cleanupError.name : typeof cleanupError,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
};
|
|
23
52
|
const materializeRemoteTools = input.createToolsFromRemoteDefinitions ??
|
|
24
53
|
createToolsFromRemoteDefinitions;
|
|
25
54
|
try {
|
|
@@ -50,6 +79,8 @@ export async function prepareDefaultHostedChildForkToolSources(input) {
|
|
|
50
79
|
? { createRemoteToolSource: input.createRemoteToolSource }
|
|
51
80
|
: {}),
|
|
52
81
|
});
|
|
82
|
+
// Retained before anything else can throw, so a failure below still closes it.
|
|
83
|
+
pushPrivateArray(studioClosers, studioTools.close);
|
|
53
84
|
const policyTools = wrapHostToolSetWithMcpPolicy(studioTools.tools, withPlatformMcpPolicyAliases(server.toolPolicy), {
|
|
54
85
|
deniedDetail: (toolName) => `Tool "${toolName}" is not allowed for this MCP server`,
|
|
55
86
|
});
|
|
@@ -57,7 +88,6 @@ export async function prepareDefaultHostedChildForkToolSources(input) {
|
|
|
57
88
|
...studioMcpTools,
|
|
58
89
|
...canonicalPlatformHostTools(markTrustedHostToolSet(policyTools)),
|
|
59
90
|
};
|
|
60
|
-
closeStudioMcpTools = studioTools.close;
|
|
61
91
|
continue;
|
|
62
92
|
}
|
|
63
93
|
const remoteConfig = createAgentServiceRemoteMcpConfig({
|
|
@@ -98,6 +128,7 @@ export async function prepareDefaultHostedChildForkToolSources(input) {
|
|
|
98
128
|
}
|
|
99
129
|
}
|
|
100
130
|
catch (error) {
|
|
131
|
+
await releaseAfterFailure();
|
|
101
132
|
if (input.abortSignal?.aborted || input.isAbortError?.(error)) {
|
|
102
133
|
throw error;
|
|
103
134
|
}
|
|
@@ -109,19 +140,25 @@ export async function prepareDefaultHostedChildForkToolSources(input) {
|
|
|
109
140
|
errorMessage: `MCP tool setup failed: ${error instanceof Error ? error.message : "Unknown error"}`,
|
|
110
141
|
};
|
|
111
142
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
143
|
+
try {
|
|
144
|
+
throwIfAborted(input.abortSignal);
|
|
145
|
+
if (input.onConfirmedStudioProjectSwitch) {
|
|
146
|
+
wrapHostedChildProjectSwitchTool({
|
|
147
|
+
tools: studioMcpTools,
|
|
148
|
+
toolName: "veryfront__studio_open_project",
|
|
149
|
+
onConfirmedProjectSwitch: input.onConfirmedStudioProjectSwitch,
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
throwIfAborted(input.abortSignal);
|
|
153
|
+
}
|
|
154
|
+
catch (error) {
|
|
155
|
+
await releaseAfterFailure();
|
|
156
|
+
throw error;
|
|
119
157
|
}
|
|
120
|
-
throwIfAborted(input.abortSignal);
|
|
121
158
|
return {
|
|
122
159
|
ok: true,
|
|
123
160
|
forkTools: buildDefaultHostedChildForkToolSet(remoteMcpTools, studioMcpTools, input.globalTools ?? {}),
|
|
124
|
-
closeStudioMcpTools,
|
|
161
|
+
closeStudioMcpTools: closeMcpTools,
|
|
125
162
|
};
|
|
126
163
|
}
|
|
127
164
|
/** Prepare default hosted child fork sandbox tool sources. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-chat-runtime.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/hosted/default-chat-runtime.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"default-chat-runtime.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/hosted/default-chat-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -160,6 +160,7 @@ async function buildToolAssembly(input) {
|
|
|
160
160
|
}
|
|
161
161
|
},
|
|
162
162
|
});
|
|
163
|
+
input.retainRemoteToolSourceCleanup(toolAssembly.closeRemoteToolSources);
|
|
163
164
|
return {
|
|
164
165
|
...toolAssembly,
|
|
165
166
|
runtimeTools: scopeHostedRuntimeTools({
|
|
@@ -392,7 +393,28 @@ export async function createDefaultHostedChatRuntime(input, runtimeOptions = {})
|
|
|
392
393
|
const toolSchemaTarget = runWithVeryfrontCloudContext(cloudContext, () => resolveProviderToolSchemaTarget(modelId, {
|
|
393
394
|
catalogSettled: catalogLoaded && canVeryfrontCloudCatalogRefuse(),
|
|
394
395
|
}));
|
|
395
|
-
|
|
396
|
+
let closeRemoteToolSources;
|
|
397
|
+
let cleanupPromise;
|
|
398
|
+
const cleanup = () => {
|
|
399
|
+
cleanupPromise ??= (async () => {
|
|
400
|
+
let firstError;
|
|
401
|
+
try {
|
|
402
|
+
await closeRemoteToolSources?.();
|
|
403
|
+
}
|
|
404
|
+
catch (error) {
|
|
405
|
+
firstError = error;
|
|
406
|
+
}
|
|
407
|
+
try {
|
|
408
|
+
await input.cleanup?.();
|
|
409
|
+
}
|
|
410
|
+
catch (error) {
|
|
411
|
+
firstError ??= error;
|
|
412
|
+
}
|
|
413
|
+
if (firstError !== undefined)
|
|
414
|
+
throw firstError;
|
|
415
|
+
})();
|
|
416
|
+
return cleanupPromise;
|
|
417
|
+
};
|
|
396
418
|
try {
|
|
397
419
|
const toolAssembly = await runWithHostedRunEventWriterCapability(effectiveRunEventWriterCapability, () => buildToolAssembly({
|
|
398
420
|
...input,
|
|
@@ -400,6 +422,9 @@ export async function createDefaultHostedChatRuntime(input, runtimeOptions = {})
|
|
|
400
422
|
cloudContext,
|
|
401
423
|
providerNativeToolNames,
|
|
402
424
|
toolSchemaTarget,
|
|
425
|
+
retainRemoteToolSourceCleanup: (close) => {
|
|
426
|
+
closeRemoteToolSources = close;
|
|
427
|
+
},
|
|
403
428
|
}));
|
|
404
429
|
const selection = projectDefinitionSelection(taskContext);
|
|
405
430
|
const lookupToolName = "veryfront__lookup_project_definitions";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor-runtime-facades.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/hosted/executor-runtime-facades.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAQ9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAYnF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAIpE,gGAAgG;AAChG,wBAAsB,4BAA4B,CAAC,OAAO,EAAE;IAC1D,KAAK,EAAE,sBAAsB,CAAC;IAC9B,OAAO,EAAE,eAAe,CAAC;IACzB,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACzC,oFAAoF;IACpF,qBAAqB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC7C,GAAG,OAAO,CAAC,sBAAsB,CAAC,
|
|
1
|
+
{"version":3,"file":"executor-runtime-facades.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/hosted/executor-runtime-facades.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAQ9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAYnF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAIpE,gGAAgG;AAChG,wBAAsB,4BAA4B,CAAC,OAAO,EAAE;IAC1D,KAAK,EAAE,sBAAsB,CAAC;IAC9B,OAAO,EAAE,eAAe,CAAC;IACzB,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACzC,oFAAoF;IACpF,qBAAqB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC7C,GAAG,OAAO,CAAC,sBAAsB,CAAC,CA8JlC"}
|
|
@@ -64,6 +64,9 @@ export async function createExecutorRuntimeFacades(options) {
|
|
|
64
64
|
description: definition.description,
|
|
65
65
|
discovery: readToolDiscoveryMetadata(definition),
|
|
66
66
|
inputSchemaJson: definition.parameters,
|
|
67
|
+
...(definition.outputSchema === undefined
|
|
68
|
+
? {}
|
|
69
|
+
: { outputSchemaJson: definition.outputSchema }),
|
|
67
70
|
async execute(args, context) {
|
|
68
71
|
signal.throwIfAborted();
|
|
69
72
|
if (!args || typeof args !== "object" || Array.isArray(args)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor-tool-schema.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/hosted/executor-tool-schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAmB,MAAM,kCAAkC,CAAC;AAC7F,OAAO,EAAoC,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAQ1F,OAAO,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"executor-tool-schema.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/hosted/executor-tool-schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAmB,MAAM,kCAAkC,CAAC;AAC7F,OAAO,EAAoC,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAQ1F,OAAO,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AA2BlF,eAAO,MAAM,+BAA+B,QAAkC,CAAC;AAC/E,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;EAa/B,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG;IAAE,CAAC,UAAU,CAAC,IAAI,MAAM,OAAO,oBAAoB,GAAG,MAAM;CAAE,CAAC;AAEhG,oEAAoE;AACpE,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;GAiBtC,CAAC;AAEH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAKxE;AAED,yEAAyE;AACzE,wBAAgB,kBAAkB,CAChC,SAAS,GAAE,OAAO,CAAC,kBAAkB,CAAM,GAC1C,kBAAkB,CAQpB;AAED,0FAA0F;AAC1F,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,kBAAkB,EAC1B,KAAK,EAAE,MAAM,GACZ,kBAAkB,CAKpB;AAED,eAAO,MAAM,uBAAuB,sBAAkD,CAAC;AACvF,eAAO,MAAM,0BAA0B,oFAA6C,CAAC;AAOrF,eAAO,MAAM,yBAAyB;;;;GAErC,CAAC;AACF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;GASrC,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC,CAAC;AASzF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;GAStC,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,0BAA0B,CAAC,CAAC,CAAC;AAE3F,uFAAuF;AACvF,wBAAgB,uBAAuB,IAAI,IAAI,CAO9C;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAI1D;AAED,kGAAkG;AAClG,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,OAAO,EACd,QAAQ,SAAkC,GACzC,SAAS,CAMX;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,CAK7E;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,kBAAkB,GAAG,cAAc,CA2CjG;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,kBAAkB,GACzB,sBAAsB,CASxB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,CAcrE;AAED,oFAAoF;AACpF,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,KAAK,CAE3E;AAED,gGAAgG;AAChG,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,iBAAiB,EAAE,OAAO,UAAQ,GAAG,IAAI,CAQxF"}
|
|
@@ -22,6 +22,7 @@ const definitionKeys = createPrivateSet([
|
|
|
22
22
|
"name",
|
|
23
23
|
"description",
|
|
24
24
|
"parameters",
|
|
25
|
+
"outputSchema",
|
|
25
26
|
"title",
|
|
26
27
|
"annotations",
|
|
27
28
|
"discovery",
|
|
@@ -155,7 +156,8 @@ export function executorToolDefinition(value, limits) {
|
|
|
155
156
|
const record = {};
|
|
156
157
|
for (let index = 0; index < entries.length; index++) {
|
|
157
158
|
const key = entries[index][0], entry = entries[index][1];
|
|
158
|
-
if (entry !== undefined ||
|
|
159
|
+
if (entry !== undefined ||
|
|
160
|
+
(key !== "title" && key !== "annotations" && key !== "discovery" && key !== "outputSchema")) {
|
|
159
161
|
defineOwnDataProperty(record, key, entry, { enumerable: true });
|
|
160
162
|
}
|
|
161
163
|
}
|
|
@@ -165,6 +167,9 @@ export function executorToolDefinition(value, limits) {
|
|
|
165
167
|
typeof data.name !== "string" || !getExecutorToolIdSchema().safeParse(data.name).success ||
|
|
166
168
|
typeof data.description !== "string" ||
|
|
167
169
|
!data.parameters || typeof data.parameters !== "object" || isArray(data.parameters) ||
|
|
170
|
+
(data.outputSchema !== undefined &&
|
|
171
|
+
(!data.outputSchema || typeof data.outputSchema !== "object" ||
|
|
172
|
+
isArray(data.outputSchema))) ||
|
|
168
173
|
(data.title !== undefined && typeof data.title !== "string") ||
|
|
169
174
|
(data.annotations !== undefined && !isToolAnnotations(data.annotations)))
|
|
170
175
|
throw new TypeError("Invalid executor tool definition");
|
|
@@ -176,6 +181,7 @@ export function executorToolDefinition(value, limits) {
|
|
|
176
181
|
name: data.name,
|
|
177
182
|
description: data.description,
|
|
178
183
|
parameters: data.parameters,
|
|
184
|
+
...(data.outputSchema === undefined ? {} : { outputSchema: data.outputSchema }),
|
|
179
185
|
...(data.title === undefined ? {} : { title: data.title }),
|
|
180
186
|
...(data.annotations === undefined ? {} : { annotations: data.annotations }),
|
|
181
187
|
...(discovery === undefined ? {} : { discovery }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform-dependency-credential.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/hosted/platform-dependency-credential.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAE/E,MAAM,MAAM,6BAA6B,GACrC,uBAAuB,GACvB,IAAI,CAAC,yBAAyB,EAAE,OAAO,CAAC,GACxC;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAKpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"platform-dependency-credential.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/hosted/platform-dependency-credential.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { appendPrivateArray } from "../../security/private-array.js";
|
|
2
2
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
3
3
|
import { createPrivateWeakStore } from "../../security/private-weak-store.js";
|
|
4
|
+
import { serverLogger } from "../../utils/index.js";
|
|
4
5
|
import { createVerifiedPlatformToolDependencyRunner, getVerifiedPlatformToolDependencies, hasVerifiedHostedPlatformDependencyWriter, toRunEventAppendTokenResult, } from "../service/auth.js";
|
|
5
6
|
const owners = createPrivateWeakStore();
|
|
6
7
|
const runtimeOwners = createPrivateWeakStore();
|
|
@@ -40,7 +41,13 @@ export async function configureHostedPlatformDependencySource(owner, factory, pa
|
|
|
40
41
|
authority.sourceFactory = factory;
|
|
41
42
|
if (authority.scope.agentId) {
|
|
42
43
|
const source = await factory({ ...authority.scope, agentId: authority.scope.agentId }, authority.authToken, owner, parentOwner);
|
|
43
|
-
if (source)
|
|
44
|
+
if (!source)
|
|
45
|
+
return;
|
|
46
|
+
authority.source = source;
|
|
47
|
+
// Revocation during creation already ran, so release the late source here.
|
|
48
|
+
if (!authority.active)
|
|
49
|
+
releaseAuthoritySource(authority);
|
|
50
|
+
else
|
|
44
51
|
authority.runner?.captureSource(source);
|
|
45
52
|
}
|
|
46
53
|
}
|
|
@@ -113,8 +120,26 @@ export function captureHostedPlatformDependencyExecution() {
|
|
|
113
120
|
const authority = Apply(Get, execution, []);
|
|
114
121
|
return (operation) => runAuthority(authority, operation);
|
|
115
122
|
}
|
|
123
|
+
/**
|
|
124
|
+
* Start terminating the owner's MCP sessions. Revocation is synchronous and
|
|
125
|
+
* runs from abort listeners, so a cleanup failure is logged, never thrown.
|
|
126
|
+
*/
|
|
127
|
+
function releaseAuthoritySource(authority) {
|
|
128
|
+
const source = authority.source;
|
|
129
|
+
authority.source = undefined;
|
|
130
|
+
if (!source?.dispose)
|
|
131
|
+
return;
|
|
132
|
+
(async () => {
|
|
133
|
+
await source.dispose();
|
|
134
|
+
})().catch((error) => {
|
|
135
|
+
serverLogger.warn("Hosted platform MCP session cleanup failed", {
|
|
136
|
+
errorName: error instanceof Error ? error.name : typeof error,
|
|
137
|
+
});
|
|
138
|
+
});
|
|
139
|
+
}
|
|
116
140
|
function revokeAuthority(authority) {
|
|
117
141
|
authority.active = false;
|
|
142
|
+
releaseAuthoritySource(authority);
|
|
118
143
|
authority.runner?.revoke();
|
|
119
144
|
for (let index = 0; index < authority.children.length; index++) {
|
|
120
145
|
revokeAuthority(authority.children[index]);
|