@agent-vm/agent-portal-sdk 0.0.113 → 0.0.115
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/contract-fixtures/portable-contracts/artifacts/artifact-read-result-authority-field-rejected.fixture.json +21 -0
- package/contract-fixtures/portable-contracts/artifacts/artifact-read-result-default-truncated.fixture.json +35 -0
- package/contract-fixtures/portable-contracts/artifacts/artifact-reference-path-rejected.fixture.json +17 -0
- package/contract-fixtures/portable-contracts/artifacts/artifact-reference-valid.fixture.json +24 -0
- package/contract-fixtures/portable-contracts/bounds/artifact-read-maximum-bytes.fixture.json +29 -0
- package/contract-fixtures/portable-contracts/bounds/artifact-read-over-maximum-bytes.fixture.json +19 -0
- package/contract-fixtures/portable-contracts/bounds/json-object-over-maximum-entries.fixture.json +1013 -0
- package/contract-fixtures/portable-contracts/bounds/list-request-maximum-limit.fixture.json +30 -0
- package/contract-fixtures/portable-contracts/bounds/list-request-over-maximum-limit.fixture.json +22 -0
- package/contract-fixtures/portable-contracts/bounds/progress-maximum-percent.fixture.json +22 -0
- package/contract-fixtures/portable-contracts/bounds/progress-minimum-percent.fixture.json +22 -0
- package/contract-fixtures/portable-contracts/bounds/progress-over-maximum-percent.fixture.json +16 -0
- package/contract-fixtures/portable-contracts/bounds/unsafe-integer.fixture.json +11 -0
- package/contract-fixtures/portable-contracts/canonical-json/nested-key-order-and-negative-zero.fixture.json +24 -0
- package/contract-fixtures/portable-contracts/coverage/gateway-trusted-invocation-context.fixture.json +53 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-environment-close-request.fixture.json +29 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-environment-close-result.fixture.json +31 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-environment-open-request.fixture.json +17 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-environment-open-result.fixture.json +33 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-environment-status-request.fixture.json +29 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-environment-status-result.fixture.json +33 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-exec-cancel-request.fixture.json +25 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-exec-cancel-result.fixture.json +27 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-exec-start-request.fixture.json +51 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-exec-start-result.fixture.json +31 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-exec-wait-request.fixture.json +27 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-exec-wait-result.fixture.json +37 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-fs-list-request.fixture.json +33 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-fs-list-result.fixture.json +21 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-fs-mkdir-request.fixture.json +31 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-fs-mkdir-result.fixture.json +23 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-fs-read-request.fixture.json +35 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-fs-read-result.fixture.json +37 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-fs-remove-request.fixture.json +31 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-fs-remove-result.fixture.json +23 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-fs-rename-request.fixture.json +33 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-fs-rename-result.fixture.json +23 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-fs-stat-request.fixture.json +29 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-fs-stat-result.fixture.json +21 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-fs-write-request.fixture.json +43 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-fs-write-result.fixture.json +27 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-operation-identity.fixture.json +21 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-process-cancel-request.fixture.json +27 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-process-cancel-result.fixture.json +27 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-process-logs-request.fixture.json +37 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-process-logs-result.fixture.json +35 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-process-start-request.fixture.json +35 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-process-start-result.fixture.json +39 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-process-status-request.fixture.json +27 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-process-status-result.fixture.json +37 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-process-wait-request.fixture.json +29 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-process-wait-result.fixture.json +37 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-retained-result-lookup-request.fixture.json +25 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-stream-close-request.fixture.json +29 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-stream-close-result.fixture.json +31 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-stream-read-request.fixture.json +33 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-stream-read-result.fixture.json +47 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-stream-write-request.fixture.json +45 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-stream-write-result.fixture.json +37 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-terminal-attach-request.fixture.json +33 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-terminal-attach-result.fixture.json +53 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-terminal-resize-request.fixture.json +35 -0
- package/contract-fixtures/portable-contracts/coverage/sandbox-terminal-resize-result.fixture.json +37 -0
- package/contract-fixtures/portable-contracts/defaults/describe-request-defaults.fixture.json +44 -0
- package/contract-fixtures/portable-contracts/defaults/list-request-default-limit.fixture.json +29 -0
- package/contract-fixtures/portable-contracts/defaults/search-request-defaults.fixture.json +33 -0
- package/contract-fixtures/portable-contracts/discovery/describe-result.fixture.json +18 -0
- package/contract-fixtures/portable-contracts/discovery/list-result.fixture.json +18 -0
- package/contract-fixtures/portable-contracts/discovery/search-result.fixture.json +18 -0
- package/contract-fixtures/portable-contracts/gateway/attachment-duplicate-agent.fixture.json +21 -0
- package/contract-fixtures/portable-contracts/gateway/attachment-valid.fixture.json +32 -0
- package/contract-fixtures/portable-contracts/gateway/managed-agent-projection-hermes-valid.fixture.json +28 -0
- package/contract-fixtures/portable-contracts/gateway/managed-agent-projection-old-authority-rejected.fixture.json +20 -0
- package/contract-fixtures/portable-contracts/gateway/managed-agent-projection-openclaw-valid.fixture.json +28 -0
- package/contract-fixtures/portable-contracts/gateway/managed-agent-projection-self-root-rejected.fixture.json +20 -0
- package/contract-fixtures/portable-contracts/gateway/managed-agent-projection-work-root-rejected.fixture.json +20 -0
- package/contract-fixtures/portable-contracts/operations/cancellation-pending.fixture.json +18 -0
- package/contract-fixtures/portable-contracts/operations/retained-ambiguous.fixture.json +28 -0
- package/contract-fixtures/portable-contracts/outcomes/ambiguous.fixture.json +40 -0
- package/contract-fixtures/portable-contracts/outcomes/call-result-aggregate-status-invalid.fixture.json +35 -0
- package/contract-fixtures/portable-contracts/outcomes/call-result-aggregate-status-valid.fixture.json +54 -0
- package/contract-fixtures/portable-contracts/outcomes/cancelled-proven.fixture.json +40 -0
- package/contract-fixtures/portable-contracts/outcomes/completed-failed.fixture.json +42 -0
- package/contract-fixtures/portable-contracts/outcomes/completed-succeeded.fixture.json +40 -0
- package/contract-fixtures/portable-contracts/outcomes/invalid-ambiguous-retry-class.fixture.json +25 -0
- package/contract-fixtures/portable-contracts/outcomes/invalid-error-completed-succeeded.fixture.json +26 -0
- package/contract-fixtures/portable-contracts/outcomes/invalid-error-result-with-value.fixture.json +19 -0
- package/contract-fixtures/portable-contracts/outcomes/invalid-not-dispatched-certainty.fixture.json +25 -0
- package/contract-fixtures/portable-contracts/outcomes/invalid-ok-completed-failed.fixture.json +23 -0
- package/contract-fixtures/portable-contracts/outcomes/invalid-ok-result-with-error.fixture.json +19 -0
- package/contract-fixtures/portable-contracts/outcomes/invalid-replaced-missing-prior-side-effects.fixture.json +25 -0
- package/contract-fixtures/portable-contracts/outcomes/missing-operation-identity-outcome.fixture.json +26 -0
- package/contract-fixtures/portable-contracts/outcomes/not-dispatched.fixture.json +40 -0
- package/contract-fixtures/portable-contracts/outcomes/replaced-proven.fixture.json +42 -0
- package/contract-fixtures/portable-contracts/outcomes/timed-out-proven.fixture.json +40 -0
- package/contract-fixtures/portable-contracts/requests/call-request-canonical.fixture.json +42 -0
- package/contract-fixtures/portable-contracts/requests/call-request-duplicate-id.fixture.json +26 -0
- package/contract-fixtures/portable-contracts/requests/call-request-reserved-id.fixture.json +20 -0
- package/contract-fixtures/portable-contracts/requests/call-request-unknown-field.fixture.json +21 -0
- package/contract-fixtures/portable-contracts/sandbox/exec-start-duplicate-environment-name.fixture.json +32 -0
- package/contract-fixtures/portable-contracts/sandbox/fs-stat-parent-path.fixture.json +26 -0
- package/contract-fixtures/portable-contracts/sandbox/stream-write-byte-length.fixture.json +21 -0
- package/dist/adapter-boundary/index.d.ts +2 -41
- package/dist/adapter-boundary/index.js +1 -28
- package/dist/adapter-boundary-BIagsTUH.js +29 -0
- package/dist/adapter-boundary-BIagsTUH.js.map +1 -0
- package/dist/approval-surface/index.d.ts +2 -48
- package/dist/approval-surface/index.js +2 -22
- package/dist/approval-surface-en5VAY5h.js +20 -0
- package/dist/approval-surface-en5VAY5h.js.map +1 -0
- package/dist/{artifact-reference-schema-XiJ280uV.js → artifact-reference-schema-CiEjxYPd.js} +4 -3
- package/dist/artifact-reference-schema-CiEjxYPd.js.map +1 -0
- package/dist/artifact-surface/index.d.ts +2 -49
- package/dist/artifact-surface/index.js +3 -27
- package/dist/artifact-surface-BstQxq6b.js +65 -0
- package/dist/artifact-surface-BstQxq6b.js.map +1 -0
- package/dist/capability-description-surface/index.d.ts +2 -142
- package/dist/capability-description-surface/index.js +2 -1
- package/dist/capability-description-surface-BdzknTKT.js +2 -0
- package/dist/{capability-descriptor-schema-wgtHF0Ic.js → capability-descriptor-schema-zRnfGjBc.js} +2 -2
- package/dist/{capability-descriptor-schema-wgtHF0Ic.js.map → capability-descriptor-schema-zRnfGjBc.js.map} +1 -1
- package/dist/cli/tool-portal.d.ts +1 -0
- package/dist/cli/tool-portal.js +207 -0
- package/dist/cli/tool-portal.js.map +1 -0
- package/dist/contracts/index.d.ts +2 -0
- package/dist/contracts/index.js +2 -0
- package/dist/contracts-RgGW0RX2.js +611 -0
- package/dist/contracts-RgGW0RX2.js.map +1 -0
- package/dist/gateway-runtime-client/index.d.ts +385 -0
- package/dist/gateway-runtime-client/index.d.ts.map +1 -0
- package/dist/gateway-runtime-client/index.js +1439 -0
- package/dist/gateway-runtime-client/index.js.map +1 -0
- package/dist/gateway-runtime-local-exec/gateway-runtime-local-exec-helper.d.ts +1 -0
- package/dist/gateway-runtime-local-exec/gateway-runtime-local-exec-helper.js +125 -0
- package/dist/gateway-runtime-local-exec/gateway-runtime-local-exec-helper.js.map +1 -0
- package/dist/gateway-runtime-local-exec/index.d.ts +54 -0
- package/dist/gateway-runtime-local-exec/index.d.ts.map +1 -0
- package/dist/gateway-runtime-local-exec/index.js +2 -0
- package/dist/gateway-runtime-local-exec-transport-B1hy2A3Q.js +427 -0
- package/dist/gateway-runtime-local-exec-transport-B1hy2A3Q.js.map +1 -0
- package/dist/index-B5hgm1KH.d.ts +84 -0
- package/dist/index-B5hgm1KH.d.ts.map +1 -0
- package/dist/index-BWE2_BcN.d.ts +64 -0
- package/dist/index-BWE2_BcN.d.ts.map +1 -0
- package/dist/index-Bdnvj5j3.d.ts +142 -0
- package/dist/index-Bdnvj5j3.d.ts.map +1 -0
- package/dist/index-BmH68K78.d.ts +41 -0
- package/dist/index-BmH68K78.d.ts.map +1 -0
- package/dist/index-C-NPMMvc.d.ts +2396 -0
- package/dist/index-C-NPMMvc.d.ts.map +1 -0
- package/dist/index-DKBSYuxW.d.ts +239 -0
- package/dist/index-DKBSYuxW.d.ts.map +1 -0
- package/dist/{index-DJiaGYF_.d.ts → index-Dj4galCJ.d.ts} +1 -1
- package/dist/{index-DJiaGYF_.d.ts.map → index-Dj4galCJ.d.ts.map} +1 -1
- package/dist/index-Dxoz-ORl.d.ts +229 -0
- package/dist/index-Dxoz-ORl.d.ts.map +1 -0
- package/dist/index-v8suC0qe.d.ts +69 -0
- package/dist/index-v8suC0qe.d.ts.map +1 -0
- package/dist/index-yeFGRMdv.d.ts +152 -0
- package/dist/index-yeFGRMdv.d.ts.map +1 -0
- package/dist/index.d.ts +12 -10
- package/dist/index.js +16 -12
- package/dist/{json-value-schema-Bj42URkc.d.ts → json-value-schema-M87sjwWL.d.ts} +1 -1
- package/dist/{json-value-schema-Bj42URkc.d.ts.map → json-value-schema-M87sjwWL.d.ts.map} +1 -1
- package/dist/{json-value-schema-D-3hfAyL.js → json-value-schema-hdPkabRZ.js} +12 -2
- package/dist/json-value-schema-hdPkabRZ.js.map +1 -0
- package/dist/node-tool-portal-mcp-transport-Cl2VKbLY.js +156 -0
- package/dist/node-tool-portal-mcp-transport-Cl2VKbLY.js.map +1 -0
- package/dist/portable-contracts/index.d.ts +2 -0
- package/dist/portable-contracts/index.js +3 -0
- package/dist/portable-contracts-Bca33zVa.js +326 -0
- package/dist/portable-contracts-Bca33zVa.js.map +1 -0
- package/dist/portable-refinement-authoring-ZSmR-amG.js +196 -0
- package/dist/portable-refinement-authoring-ZSmR-amG.js.map +1 -0
- package/dist/portal-call-request-schema-Cp6CMGs9.js +41 -0
- package/dist/portal-call-request-schema-Cp6CMGs9.js.map +1 -0
- package/dist/portal-call-result-schema-ByxHRCEN.js +158 -0
- package/dist/portal-call-result-schema-ByxHRCEN.js.map +1 -0
- package/dist/{portal-call-result-schema-DjpKPcE_.d.ts → portal-call-result-schema-wSCaz3mC.d.ts} +235 -21
- package/dist/portal-call-result-schema-wSCaz3mC.d.ts.map +1 -0
- package/dist/portal-call-surface/index.d.ts +3 -153
- package/dist/portal-call-surface/index.js +5 -69
- package/dist/portal-call-surface-DjZVquFt.js +83 -0
- package/dist/portal-call-surface-DjZVquFt.js.map +1 -0
- package/dist/{portal-error-schema-D58onG2t.js → portal-error-schema-CQHgoFq4.js} +12 -2
- package/dist/portal-error-schema-CQHgoFq4.js.map +1 -0
- package/dist/portal-event-surface/index.d.ts +2 -229
- package/dist/portal-event-surface/index.js +2 -50
- package/dist/portal-event-surface-CdScrgoN.js +51 -0
- package/dist/portal-event-surface-CdScrgoN.js.map +1 -0
- package/dist/testing/index.d.ts +2 -3
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +10 -1
- package/dist/testing/index.js.map +1 -1
- package/dist/tool-portal-mcp-client/index.d.ts +2 -0
- package/dist/tool-portal-mcp-client/index.js +2 -0
- package/dist/tool-portal-mcp-client/node-tool-portal-mcp-transport.d.ts +17 -0
- package/dist/tool-portal-mcp-client/node-tool-portal-mcp-transport.d.ts.map +1 -0
- package/dist/tool-portal-mcp-client/node-tool-portal-mcp-transport.js +2 -0
- package/dist/tool-portal-mcp-client-DwJF-48Y.js +90 -0
- package/dist/tool-portal-mcp-client-DwJF-48Y.js.map +1 -0
- package/package.json +32 -2
- package/portable-contract-schema-manifest.json +7960 -0
- package/dist/adapter-boundary/index.d.ts.map +0 -1
- package/dist/adapter-boundary/index.js.map +0 -1
- package/dist/approval-surface/index.d.ts.map +0 -1
- package/dist/approval-surface/index.js.map +0 -1
- package/dist/artifact-reference-schema-XiJ280uV.js.map +0 -1
- package/dist/artifact-surface/index.d.ts.map +0 -1
- package/dist/artifact-surface/index.js.map +0 -1
- package/dist/capability-description-surface/index.d.ts.map +0 -1
- package/dist/json-value-schema-D-3hfAyL.js.map +0 -1
- package/dist/portal-call-result-schema-BIqFTFK8.js +0 -102
- package/dist/portal-call-result-schema-BIqFTFK8.js.map +0 -1
- package/dist/portal-call-result-schema-DjpKPcE_.d.ts.map +0 -1
- package/dist/portal-call-surface/index.d.ts.map +0 -1
- package/dist/portal-call-surface/index.js.map +0 -1
- package/dist/portal-error-schema-D58onG2t.js.map +0 -1
- package/dist/portal-event-surface/index.d.ts.map +0 -1
- package/dist/portal-event-surface/index.js.map +0 -1
|
@@ -1,51 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
//#region src/portal-event-surface/models/portal-event-schema.ts
|
|
4
|
-
const PortalProgressEventSchema = z.object({
|
|
5
|
-
id: ItemIdSchema,
|
|
6
|
-
kind: z.literal("progress"),
|
|
7
|
-
message: z.string().max(500),
|
|
8
|
-
percent: z.number().min(0).max(100).optional()
|
|
9
|
-
}).strict();
|
|
10
|
-
const PortalPartialOutputEventSchema = z.object({
|
|
11
|
-
id: ItemIdSchema,
|
|
12
|
-
kind: z.literal("partial_output"),
|
|
13
|
-
stream: z.enum([
|
|
14
|
-
"stdout",
|
|
15
|
-
"stderr",
|
|
16
|
-
"result"
|
|
17
|
-
]),
|
|
18
|
-
text: z.string().max(16384),
|
|
19
|
-
truncated: z.boolean().default(false)
|
|
20
|
-
}).strict();
|
|
21
|
-
const PortalDiagnosticEventSchema = z.object({
|
|
22
|
-
diagnostic: SafeDiagnosticSchema,
|
|
23
|
-
id: ItemIdSchema,
|
|
24
|
-
kind: z.literal("diagnostic")
|
|
25
|
-
}).strict();
|
|
26
|
-
const PortalCancellationRequestEventSchema = z.object({
|
|
27
|
-
id: ItemIdSchema,
|
|
28
|
-
kind: z.literal("cancellation_requested"),
|
|
29
|
-
reason: z.string().max(500).optional()
|
|
30
|
-
}).strict();
|
|
31
|
-
const PortalCancellationResultEventSchema = z.object({
|
|
32
|
-
error: PortalErrorSchema.optional(),
|
|
33
|
-
id: ItemIdSchema,
|
|
34
|
-
kind: z.literal("cancellation_result"),
|
|
35
|
-
status: z.enum([
|
|
36
|
-
"cancelled",
|
|
37
|
-
"not_found",
|
|
38
|
-
"already_finished"
|
|
39
|
-
])
|
|
40
|
-
}).strict();
|
|
41
|
-
const PortalEventSchema = z.discriminatedUnion("kind", [
|
|
42
|
-
PortalProgressEventSchema,
|
|
43
|
-
PortalPartialOutputEventSchema,
|
|
44
|
-
PortalDiagnosticEventSchema,
|
|
45
|
-
PortalCancellationRequestEventSchema,
|
|
46
|
-
PortalCancellationResultEventSchema
|
|
47
|
-
]);
|
|
48
|
-
//#endregion
|
|
1
|
+
import { i as SafeDiagnosticSchema, r as SafeDiagnosticCodeSchema } from "../portal-error-schema-CQHgoFq4.js";
|
|
2
|
+
import { a as PortalPartialOutputEventSchema, i as PortalEventSchema, n as PortalCancellationResultEventSchema, o as PortalProgressEventSchema, r as PortalDiagnosticEventSchema, t as PortalCancellationRequestEventSchema } from "../portal-event-surface-CdScrgoN.js";
|
|
49
3
|
export { PortalCancellationRequestEventSchema, PortalCancellationResultEventSchema, PortalDiagnosticEventSchema, PortalEventSchema, PortalPartialOutputEventSchema, PortalProgressEventSchema, SafeDiagnosticCodeSchema, SafeDiagnosticSchema };
|
|
50
|
-
|
|
51
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { a as ItemIdSchema, i as SafeDiagnosticSchema, n as PortalErrorSchema } from "./portal-error-schema-CQHgoFq4.js";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
//#region src/portal-event-surface/models/portal-event-schema.ts
|
|
4
|
+
const PortalProgressEventSchema = z.object({
|
|
5
|
+
id: ItemIdSchema,
|
|
6
|
+
kind: z.literal("progress"),
|
|
7
|
+
message: z.string().max(500),
|
|
8
|
+
percent: z.number().min(0).max(100).optional()
|
|
9
|
+
}).strict();
|
|
10
|
+
const PortalPartialOutputEventSchema = z.object({
|
|
11
|
+
id: ItemIdSchema,
|
|
12
|
+
kind: z.literal("partial_output"),
|
|
13
|
+
stream: z.enum([
|
|
14
|
+
"stdout",
|
|
15
|
+
"stderr",
|
|
16
|
+
"result"
|
|
17
|
+
]),
|
|
18
|
+
text: z.string().max(16384),
|
|
19
|
+
truncated: z.boolean().default(false)
|
|
20
|
+
}).strict();
|
|
21
|
+
const PortalDiagnosticEventSchema = z.object({
|
|
22
|
+
diagnostic: SafeDiagnosticSchema,
|
|
23
|
+
id: ItemIdSchema,
|
|
24
|
+
kind: z.literal("diagnostic")
|
|
25
|
+
}).strict();
|
|
26
|
+
const PortalCancellationRequestEventSchema = z.object({
|
|
27
|
+
id: ItemIdSchema,
|
|
28
|
+
kind: z.literal("cancellation_requested"),
|
|
29
|
+
reason: z.string().max(500).optional()
|
|
30
|
+
}).strict();
|
|
31
|
+
const PortalCancellationResultEventSchema = z.object({
|
|
32
|
+
error: PortalErrorSchema.optional(),
|
|
33
|
+
id: ItemIdSchema,
|
|
34
|
+
kind: z.literal("cancellation_result"),
|
|
35
|
+
status: z.enum([
|
|
36
|
+
"cancelled",
|
|
37
|
+
"not_found",
|
|
38
|
+
"already_finished"
|
|
39
|
+
])
|
|
40
|
+
}).strict();
|
|
41
|
+
const PortalEventSchema = z.discriminatedUnion("kind", [
|
|
42
|
+
PortalProgressEventSchema,
|
|
43
|
+
PortalPartialOutputEventSchema,
|
|
44
|
+
PortalDiagnosticEventSchema,
|
|
45
|
+
PortalCancellationRequestEventSchema,
|
|
46
|
+
PortalCancellationResultEventSchema
|
|
47
|
+
]);
|
|
48
|
+
//#endregion
|
|
49
|
+
export { PortalPartialOutputEventSchema as a, PortalEventSchema as i, PortalCancellationResultEventSchema as n, PortalProgressEventSchema as o, PortalDiagnosticEventSchema as r, PortalCancellationRequestEventSchema as t };
|
|
50
|
+
|
|
51
|
+
//# sourceMappingURL=portal-event-surface-CdScrgoN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portal-event-surface-CdScrgoN.js","names":[],"sources":["../src/portal-event-surface/models/portal-event-schema.ts"],"sourcesContent":["import { z } from 'zod';\n\nimport { ItemIdSchema } from '../../contract-primitives/models/request-id-schema.js';\nimport { PortalErrorSchema } from '../../portal-call-surface/models/portal-error-schema.js';\nimport { SafeDiagnosticSchema } from './safe-diagnostic-schema.js';\n\nexport const PortalProgressEventSchema = z\n\t.object({\n\t\tid: ItemIdSchema,\n\t\tkind: z.literal('progress'),\n\t\tmessage: z.string().max(500),\n\t\tpercent: z.number().min(0).max(100).optional(),\n\t})\n\t.strict();\n\nexport type PortalProgressEvent = z.infer<typeof PortalProgressEventSchema>;\n\nexport const PortalPartialOutputEventSchema = z\n\t.object({\n\t\tid: ItemIdSchema,\n\t\tkind: z.literal('partial_output'),\n\t\tstream: z.enum(['stdout', 'stderr', 'result']),\n\t\ttext: z.string().max(16_384),\n\t\ttruncated: z.boolean().default(false),\n\t})\n\t.strict();\n\nexport type PortalPartialOutputEvent = z.infer<typeof PortalPartialOutputEventSchema>;\n\nexport const PortalDiagnosticEventSchema = z\n\t.object({\n\t\tdiagnostic: SafeDiagnosticSchema,\n\t\tid: ItemIdSchema,\n\t\tkind: z.literal('diagnostic'),\n\t})\n\t.strict();\n\nexport type PortalDiagnosticEvent = z.infer<typeof PortalDiagnosticEventSchema>;\n\nexport const PortalCancellationRequestEventSchema = z\n\t.object({\n\t\tid: ItemIdSchema,\n\t\tkind: z.literal('cancellation_requested'),\n\t\treason: z.string().max(500).optional(),\n\t})\n\t.strict();\n\nexport type PortalCancellationRequestEvent = z.infer<typeof PortalCancellationRequestEventSchema>;\n\nexport const PortalCancellationResultEventSchema = z\n\t.object({\n\t\terror: PortalErrorSchema.optional(),\n\t\tid: ItemIdSchema,\n\t\tkind: z.literal('cancellation_result'),\n\t\tstatus: z.enum(['cancelled', 'not_found', 'already_finished']),\n\t})\n\t.strict();\n\nexport type PortalCancellationResultEvent = z.infer<typeof PortalCancellationResultEventSchema>;\n\nexport const PortalEventSchema = z.discriminatedUnion('kind', [\n\tPortalProgressEventSchema,\n\tPortalPartialOutputEventSchema,\n\tPortalDiagnosticEventSchema,\n\tPortalCancellationRequestEventSchema,\n\tPortalCancellationResultEventSchema,\n]);\n\nexport type PortalEvent = z.infer<typeof PortalEventSchema>;\n"],"mappings":";;;AAMA,MAAa,4BAA4B,EACvC,OAAO;CACP,IAAI;CACJ,MAAM,EAAE,QAAQ,WAAW;CAC3B,SAAS,EAAE,QAAQ,CAAC,IAAI,IAAI;CAC5B,SAAS,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,UAAU;CAC9C,CAAC,CACD,QAAQ;AAIV,MAAa,iCAAiC,EAC5C,OAAO;CACP,IAAI;CACJ,MAAM,EAAE,QAAQ,iBAAiB;CACjC,QAAQ,EAAE,KAAK;EAAC;EAAU;EAAU;EAAS,CAAC;CAC9C,MAAM,EAAE,QAAQ,CAAC,IAAI,MAAO;CAC5B,WAAW,EAAE,SAAS,CAAC,QAAQ,MAAM;CACrC,CAAC,CACD,QAAQ;AAIV,MAAa,8BAA8B,EACzC,OAAO;CACP,YAAY;CACZ,IAAI;CACJ,MAAM,EAAE,QAAQ,aAAa;CAC7B,CAAC,CACD,QAAQ;AAIV,MAAa,uCAAuC,EAClD,OAAO;CACP,IAAI;CACJ,MAAM,EAAE,QAAQ,yBAAyB;CACzC,QAAQ,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,UAAU;CACtC,CAAC,CACD,QAAQ;AAIV,MAAa,sCAAsC,EACjD,OAAO;CACP,OAAO,kBAAkB,UAAU;CACnC,IAAI;CACJ,MAAM,EAAE,QAAQ,sBAAsB;CACtC,QAAQ,EAAE,KAAK;EAAC;EAAa;EAAa;EAAmB,CAAC;CAC9D,CAAC,CACD,QAAQ;AAIV,MAAa,oBAAoB,EAAE,mBAAmB,QAAQ;CAC7D;CACA;CACA;CACA;CACA;CACA,CAAC"}
|
package/dist/testing/index.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { l as JsonValue, r as JsonObject } from "../json-value-schema-
|
|
2
|
-
import {
|
|
3
|
-
|
|
1
|
+
import { l as JsonValue, r as JsonObject } from "../json-value-schema-M87sjwWL.js";
|
|
2
|
+
import { S as PortalCallRequest, i as PortalCallResult } from "../portal-call-result-schema-wSCaz3mC.js";
|
|
4
3
|
//#region src/testing/index.d.ts
|
|
5
4
|
interface CreatePortalCallRequestFixtureProps {
|
|
6
5
|
readonly arguments?: JsonObject;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../../src/testing/index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../src/testing/index.ts"],"mappings":";;;UAUiB,mCAAA;EAAA,SACP,SAAA,GAAY,UAAA;EAAA,SACZ,EAAA;EAAA,SACA,SAAA;EAAA,SACA,SAAA;EAAA,SACA,IAAA;AAAA;AAAA,UAGO,kCAAA;EAAA,SACP,EAAA;EAAA,SACA,KAAA,GAAQ,SAAA;AAAA;AAAA,iBAGF,8BAAA,CACf,KAAA,GAAO,mCAAA,GACL,iBAAA;AAAA,iBAca,6BAAA,CACf,KAAA,GAAO,kCAAA,GACL,gBAAA"}
|
package/dist/testing/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { i as PortalCallResultSchema } from "../portal-call-result-schema-ByxHRCEN.js";
|
|
2
|
+
import { r as PortalCallRequestSchema } from "../portal-call-request-schema-Cp6CMGs9.js";
|
|
2
3
|
//#region src/testing/index.ts
|
|
3
4
|
function createPortalCallRequestFixture(props = {}) {
|
|
4
5
|
return PortalCallRequestSchema.parse({
|
|
@@ -15,6 +16,14 @@ function createPortalCallResultFixture(props = {}) {
|
|
|
15
16
|
return PortalCallResultSchema.parse({
|
|
16
17
|
items: [{
|
|
17
18
|
id: props.id ?? "call-1",
|
|
19
|
+
operationId: "operation-1",
|
|
20
|
+
outcome: {
|
|
21
|
+
certainty: "proven",
|
|
22
|
+
completion: "succeeded",
|
|
23
|
+
kind: "completed",
|
|
24
|
+
retryClass: "forbidden"
|
|
25
|
+
},
|
|
26
|
+
owningGeneration: "tool-vm-generation-1",
|
|
18
27
|
status: "ok",
|
|
19
28
|
value: props.value ?? {}
|
|
20
29
|
}],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/testing/index.ts"],"sourcesContent":["import type { JsonObject, JsonValue } from '../contract-primitives/index.js';\nimport {\n\tPortalCallRequestSchema,\n\ttype PortalCallRequest,\n} from '../portal-call-surface/models/portal-call-request-schema.js';\nimport {\n\tPortalCallResultSchema,\n\ttype PortalCallResult,\n} from '../portal-call-surface/models/portal-call-result-schema.js';\n\nexport interface CreatePortalCallRequestFixtureProps {\n\treadonly arguments?: JsonObject;\n\treadonly id?: string;\n\treadonly namespace?: string;\n\treadonly requestId?: string;\n\treadonly name?: string;\n}\n\nexport interface CreatePortalCallResultFixtureProps {\n\treadonly id?: string;\n\treadonly value?: JsonValue;\n}\n\nexport function createPortalCallRequestFixture(\n\tprops: CreatePortalCallRequestFixtureProps = {},\n): PortalCallRequest {\n\treturn PortalCallRequestSchema.parse({\n\t\tcalls: [\n\t\t\t{\n\t\t\t\targuments: props.arguments ?? {},\n\t\t\t\tid: props.id ?? 'call-1',\n\t\t\t\tnamespace: props.namespace ?? 'github',\n\t\t\t\tname: props.name ?? 'get_issue',\n\t\t\t},\n\t\t],\n\t\trequestId: props.requestId,\n\t});\n}\n\nexport function createPortalCallResultFixture(\n\tprops: CreatePortalCallResultFixtureProps = {},\n): PortalCallResult {\n\treturn PortalCallResultSchema.parse({\n\t\titems: [\n\t\t\t{\n\t\t\t\tid: props.id ?? 'call-1',\n\t\t\t\tstatus: 'ok',\n\t\t\t\tvalue: props.value ?? {},\n\t\t\t},\n\t\t],\n\t\tok: true,\n\t});\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/testing/index.ts"],"sourcesContent":["import type { JsonObject, JsonValue } from '../contract-primitives/index.js';\nimport {\n\tPortalCallRequestSchema,\n\ttype PortalCallRequest,\n} from '../portal-call-surface/models/portal-call-request-schema.js';\nimport {\n\tPortalCallResultSchema,\n\ttype PortalCallResult,\n} from '../portal-call-surface/models/portal-call-result-schema.js';\n\nexport interface CreatePortalCallRequestFixtureProps {\n\treadonly arguments?: JsonObject;\n\treadonly id?: string;\n\treadonly namespace?: string;\n\treadonly requestId?: string;\n\treadonly name?: string;\n}\n\nexport interface CreatePortalCallResultFixtureProps {\n\treadonly id?: string;\n\treadonly value?: JsonValue;\n}\n\nexport function createPortalCallRequestFixture(\n\tprops: CreatePortalCallRequestFixtureProps = {},\n): PortalCallRequest {\n\treturn PortalCallRequestSchema.parse({\n\t\tcalls: [\n\t\t\t{\n\t\t\t\targuments: props.arguments ?? {},\n\t\t\t\tid: props.id ?? 'call-1',\n\t\t\t\tnamespace: props.namespace ?? 'github',\n\t\t\t\tname: props.name ?? 'get_issue',\n\t\t\t},\n\t\t],\n\t\trequestId: props.requestId,\n\t});\n}\n\nexport function createPortalCallResultFixture(\n\tprops: CreatePortalCallResultFixtureProps = {},\n): PortalCallResult {\n\treturn PortalCallResultSchema.parse({\n\t\titems: [\n\t\t\t{\n\t\t\t\tid: props.id ?? 'call-1',\n\t\t\t\toperationId: 'operation-1',\n\t\t\t\toutcome: {\n\t\t\t\t\tcertainty: 'proven',\n\t\t\t\t\tcompletion: 'succeeded',\n\t\t\t\t\tkind: 'completed',\n\t\t\t\t\tretryClass: 'forbidden',\n\t\t\t\t},\n\t\t\t\towningGeneration: 'tool-vm-generation-1',\n\t\t\t\tstatus: 'ok',\n\t\t\t\tvalue: props.value ?? {},\n\t\t\t},\n\t\t],\n\t\tok: true,\n\t});\n}\n"],"mappings":";;;AAuBA,SAAgB,+BACf,QAA6C,EAAE,EAC3B;CACpB,OAAO,wBAAwB,MAAM;EACpC,OAAO,CACN;GACC,WAAW,MAAM,aAAa,EAAE;GAChC,IAAI,MAAM,MAAM;GAChB,WAAW,MAAM,aAAa;GAC9B,MAAM,MAAM,QAAQ;GACpB,CACD;EACD,WAAW,MAAM;EACjB,CAAC;;AAGH,SAAgB,8BACf,QAA4C,EAAE,EAC3B;CACnB,OAAO,uBAAuB,MAAM;EACnC,OAAO,CACN;GACC,IAAI,MAAM,MAAM;GAChB,aAAa;GACb,SAAS;IACR,WAAW;IACX,YAAY;IACZ,MAAM;IACN,YAAY;IACZ;GACD,kBAAkB;GAClB,QAAQ;GACR,OAAO,MAAM,SAAS,EAAE;GACxB,CACD;EACD,IAAI;EACJ,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { a as ToolPortalMcpTransport, i as ToolPortalMcpResourceContent, n as ToolPortalMcpClient, r as ToolPortalMcpClientOptions, t as ToolPortalClientRequestOptions } from "../index-v8suC0qe.js";
|
|
2
|
+
export { ToolPortalClientRequestOptions, ToolPortalMcpClient, ToolPortalMcpClientOptions, ToolPortalMcpResourceContent, ToolPortalMcpTransport };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { a as ToolPortalMcpTransport } from "../index-v8suC0qe.js";
|
|
2
|
+
|
|
3
|
+
//#region src/tool-portal-mcp-client/node-tool-portal-mcp-transport.d.ts
|
|
4
|
+
type CreateNodeToolPortalMcpTransportProps = {
|
|
5
|
+
readonly authorization: string;
|
|
6
|
+
readonly endpoint: URL;
|
|
7
|
+
readonly kind: 'http';
|
|
8
|
+
} | {
|
|
9
|
+
readonly argv: readonly string[];
|
|
10
|
+
readonly executable: string;
|
|
11
|
+
readonly kind: 'scoped-stdio';
|
|
12
|
+
};
|
|
13
|
+
/** Standard MCP transport adapter for the portable Tool Portal client. */
|
|
14
|
+
declare function createNodeToolPortalMcpTransport(props: CreateNodeToolPortalMcpTransportProps): ToolPortalMcpTransport;
|
|
15
|
+
//#endregion
|
|
16
|
+
export { CreateNodeToolPortalMcpTransportProps, createNodeToolPortalMcpTransport };
|
|
17
|
+
//# sourceMappingURL=node-tool-portal-mcp-transport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-tool-portal-mcp-transport.d.ts","names":[],"sources":["../../src/tool-portal-mcp-client/node-tool-portal-mcp-transport.ts"],"mappings":";;;KASY,qCAAA;EAAA,SAEA,aAAA;EAAA,SACA,QAAA,EAAU,GAAA;EAAA,SACV,IAAA;AAAA;EAAA,SAGA,IAAA;EAAA,SACA,UAAA;EAAA,SACA,IAAA;AAAA;;iBA8FI,gCAAA,CACf,KAAA,EAAO,qCAAA,GACL,sBAAA"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { d as PortalListResultSchema, i as PortalCallResultSchema, m as PortalSearchResultSchema, s as PortalDescribeResultSchema } from "./portal-call-result-schema-ByxHRCEN.js";
|
|
2
|
+
import { a as PortalArtifactReadRequestSchema, o as PortalArtifactReadResultSchema, r as createPortalArtifactReadResourceRequest } from "./artifact-surface-BstQxq6b.js";
|
|
3
|
+
import { r as PortalCallRequestSchema } from "./portal-call-request-schema-Cp6CMGs9.js";
|
|
4
|
+
import { a as PortalListRequestSchema, r as PortalSearchRequestSchema, s as PortalDescribeRequestSchema } from "./portal-call-surface-DjZVquFt.js";
|
|
5
|
+
//#region src/tool-portal-mcp-client/index.ts
|
|
6
|
+
const canonicalBase64Pattern = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u;
|
|
7
|
+
function decodedBase64ByteLength(contentBase64) {
|
|
8
|
+
if (!canonicalBase64Pattern.test(contentBase64)) throw new TypeError("Tool Portal MCP artifact content is not canonical base64.");
|
|
9
|
+
const paddingBytes = contentBase64.endsWith("==") ? 2 : contentBase64.endsWith("=") ? 1 : 0;
|
|
10
|
+
return contentBase64.length / 4 * 3 - paddingBytes;
|
|
11
|
+
}
|
|
12
|
+
var ToolPortalMcpArtifactOperations = class {
|
|
13
|
+
#transport;
|
|
14
|
+
constructor(transport) {
|
|
15
|
+
this.#transport = transport;
|
|
16
|
+
}
|
|
17
|
+
async read(request, options = {}) {
|
|
18
|
+
const validatedRequest = PortalArtifactReadRequestSchema.parse(request);
|
|
19
|
+
const resourceRequest = createPortalArtifactReadResourceRequest(validatedRequest);
|
|
20
|
+
const response = await this.#transport.readResource(resourceRequest, options);
|
|
21
|
+
const content = response.contents.length === 1 ? response.contents[0] : void 0;
|
|
22
|
+
if (content === void 0 || content.kind !== "blob" || content.uri !== resourceRequest.uri || content.mediaType === void 0) throw new TypeError("Tool Portal MCP artifact read returned an invalid resource.");
|
|
23
|
+
const returnedBytes = decodedBase64ByteLength(content.blob);
|
|
24
|
+
if (returnedBytes > validatedRequest.maxBytes) throw new TypeError("Tool Portal MCP artifact read exceeded the requested byte range.");
|
|
25
|
+
return PortalArtifactReadResultSchema.parse({
|
|
26
|
+
contentBase64: content.blob,
|
|
27
|
+
mediaType: content.mediaType,
|
|
28
|
+
offsetBytes: validatedRequest.offsetBytes,
|
|
29
|
+
reference: validatedRequest.reference,
|
|
30
|
+
truncated: validatedRequest.offsetBytes + returnedBytes < validatedRequest.reference.byteLength
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Standard-MCP projection of the bounded Tool Portal surface.
|
|
36
|
+
*
|
|
37
|
+
* The transport is injected so this subpath remains independent from the
|
|
38
|
+
* Gateway-runtime UDS client and its Node-specific dependencies.
|
|
39
|
+
*/
|
|
40
|
+
var ToolPortalMcpClient = class {
|
|
41
|
+
#transport;
|
|
42
|
+
artifacts;
|
|
43
|
+
constructor(options) {
|
|
44
|
+
this.#transport = options.transport;
|
|
45
|
+
this.artifacts = new ToolPortalMcpArtifactOperations(this.#transport);
|
|
46
|
+
}
|
|
47
|
+
async connect() {
|
|
48
|
+
await this.#transport.connect();
|
|
49
|
+
}
|
|
50
|
+
async close() {
|
|
51
|
+
await this.#transport.close();
|
|
52
|
+
}
|
|
53
|
+
async list(request, options = {}) {
|
|
54
|
+
const validatedRequest = PortalListRequestSchema.parse(request);
|
|
55
|
+
const response = await this.#transport.callTool({
|
|
56
|
+
arguments: validatedRequest,
|
|
57
|
+
name: "tool_portal_list"
|
|
58
|
+
}, options);
|
|
59
|
+
return PortalListResultSchema.parse(response.structuredContent);
|
|
60
|
+
}
|
|
61
|
+
async search(request, options = {}) {
|
|
62
|
+
const validatedRequest = PortalSearchRequestSchema.parse(request);
|
|
63
|
+
const response = await this.#transport.callTool({
|
|
64
|
+
arguments: validatedRequest,
|
|
65
|
+
name: "tool_portal_search"
|
|
66
|
+
}, options);
|
|
67
|
+
return PortalSearchResultSchema.parse(response.structuredContent);
|
|
68
|
+
}
|
|
69
|
+
async describe(request, options = {}) {
|
|
70
|
+
const validatedRequest = PortalDescribeRequestSchema.parse(request);
|
|
71
|
+
const response = await this.#transport.callTool({
|
|
72
|
+
arguments: validatedRequest,
|
|
73
|
+
name: "tool_portal_describe"
|
|
74
|
+
}, options);
|
|
75
|
+
return PortalDescribeResultSchema.parse(response.structuredContent);
|
|
76
|
+
}
|
|
77
|
+
async call(request, options = {}) {
|
|
78
|
+
const validatedRequest = PortalCallRequestSchema.parse(request);
|
|
79
|
+
const response = await this.#transport.callTool({
|
|
80
|
+
...options.approvalToken === void 0 ? {} : { approvalToken: options.approvalToken },
|
|
81
|
+
arguments: validatedRequest,
|
|
82
|
+
name: "tool_portal_call"
|
|
83
|
+
}, options);
|
|
84
|
+
return PortalCallResultSchema.parse(response.structuredContent);
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
//#endregion
|
|
88
|
+
export { ToolPortalMcpClient as t };
|
|
89
|
+
|
|
90
|
+
//# sourceMappingURL=tool-portal-mcp-client-DwJF-48Y.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-portal-mcp-client-DwJF-48Y.js","names":["#transport"],"sources":["../src/tool-portal-mcp-client/index.ts"],"sourcesContent":["import {\n\tcreatePortalArtifactReadResourceRequest,\n\tPortalArtifactReadRequestSchema,\n\tPortalArtifactReadResultSchema,\n\ttype PortalArtifactReadRequest,\n\ttype PortalArtifactReadResourceRequest,\n\ttype PortalArtifactReadResult,\n} from '../artifact-surface/index.js';\nimport {\n\tPortalCallRequestSchema,\n\tPortalCallResultSchema,\n\tPortalDescribeRequestSchema,\n\tPortalDescribeResultSchema,\n\tPortalListRequestSchema,\n\tPortalListResultSchema,\n\tPortalSearchRequestSchema,\n\tPortalSearchResultSchema,\n\ttype PortalCallRequest,\n\ttype PortalCallResult,\n\ttype PortalDescribeRequest,\n\ttype PortalDescribeResult,\n\ttype PortalListRequest,\n\ttype PortalListResult,\n\ttype PortalSearchRequest,\n\ttype PortalSearchResult,\n} from '../portal-call-surface/index.js';\n\nexport type ToolPortalMcpResourceContent =\n\t| {\n\t\t\treadonly blob: string;\n\t\t\treadonly kind: 'blob';\n\t\t\treadonly mediaType?: string;\n\t\t\treadonly uri: string;\n\t }\n\t| {\n\t\t\treadonly kind: 'text';\n\t\t\treadonly mediaType?: string;\n\t\t\treadonly text: string;\n\t\t\treadonly uri: string;\n\t };\n\nexport interface ToolPortalMcpTransport {\n\treadonly callTool: (\n\t\tcall: {\n\t\t\treadonly approvalToken?: string;\n\t\t\treadonly arguments: unknown;\n\t\t\treadonly name: string;\n\t\t},\n\t\toptions?: {\n\t\t\treadonly resultGraceAfterAbortMs?: number;\n\t\t\treadonly signal?: AbortSignal;\n\t\t},\n\t) => Promise<{ readonly structuredContent?: unknown }>;\n\treadonly close: () => Promise<void>;\n\treadonly connect: () => Promise<void>;\n\treadonly readResource: (\n\t\trequest: PortalArtifactReadResourceRequest,\n\t\toptions?: {\n\t\t\treadonly resultGraceAfterAbortMs?: number;\n\t\t\treadonly signal?: AbortSignal;\n\t\t},\n\t) => Promise<{ readonly contents: readonly ToolPortalMcpResourceContent[] }>;\n}\n\nexport interface ToolPortalMcpClientOptions {\n\treadonly transport: ToolPortalMcpTransport;\n}\n\nexport interface ToolPortalClientRequestOptions {\n\treadonly approvalToken?: string;\n\treadonly resultGraceAfterAbortMs?: number;\n\treadonly signal?: AbortSignal;\n}\n\nconst canonicalBase64Pattern = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u;\n\nfunction decodedBase64ByteLength(contentBase64: string): number {\n\tif (!canonicalBase64Pattern.test(contentBase64)) {\n\t\tthrow new TypeError('Tool Portal MCP artifact content is not canonical base64.');\n\t}\n\tconst paddingBytes = contentBase64.endsWith('==') ? 2 : contentBase64.endsWith('=') ? 1 : 0;\n\treturn (contentBase64.length / 4) * 3 - paddingBytes;\n}\n\nclass ToolPortalMcpArtifactOperations {\n\treadonly #transport: ToolPortalMcpTransport;\n\n\tconstructor(transport: ToolPortalMcpTransport) {\n\t\tthis.#transport = transport;\n\t}\n\n\tasync read(\n\t\trequest: PortalArtifactReadRequest,\n\t\toptions: ToolPortalClientRequestOptions = {},\n\t): Promise<PortalArtifactReadResult> {\n\t\tconst validatedRequest = PortalArtifactReadRequestSchema.parse(request);\n\t\tconst resourceRequest = createPortalArtifactReadResourceRequest(validatedRequest);\n\t\tconst response = await this.#transport.readResource(resourceRequest, options);\n\t\tconst content = response.contents.length === 1 ? response.contents[0] : undefined;\n\t\tif (\n\t\t\tcontent === undefined ||\n\t\t\tcontent.kind !== 'blob' ||\n\t\t\tcontent.uri !== resourceRequest.uri ||\n\t\t\tcontent.mediaType === undefined\n\t\t) {\n\t\t\tthrow new TypeError('Tool Portal MCP artifact read returned an invalid resource.');\n\t\t}\n\t\tconst returnedBytes = decodedBase64ByteLength(content.blob);\n\t\tif (returnedBytes > validatedRequest.maxBytes) {\n\t\t\tthrow new TypeError('Tool Portal MCP artifact read exceeded the requested byte range.');\n\t\t}\n\t\treturn PortalArtifactReadResultSchema.parse({\n\t\t\tcontentBase64: content.blob,\n\t\t\tmediaType: content.mediaType,\n\t\t\toffsetBytes: validatedRequest.offsetBytes,\n\t\t\treference: validatedRequest.reference,\n\t\t\ttruncated:\n\t\t\t\tvalidatedRequest.offsetBytes + returnedBytes < validatedRequest.reference.byteLength,\n\t\t});\n\t}\n}\n\n/**\n * Standard-MCP projection of the bounded Tool Portal surface.\n *\n * The transport is injected so this subpath remains independent from the\n * Gateway-runtime UDS client and its Node-specific dependencies.\n */\nexport class ToolPortalMcpClient {\n\treadonly #transport: ToolPortalMcpTransport;\n\treadonly artifacts: ToolPortalMcpArtifactOperations;\n\n\tconstructor(options: ToolPortalMcpClientOptions) {\n\t\tthis.#transport = options.transport;\n\t\tthis.artifacts = new ToolPortalMcpArtifactOperations(this.#transport);\n\t}\n\n\tasync connect(): Promise<void> {\n\t\tawait this.#transport.connect();\n\t}\n\n\tasync close(): Promise<void> {\n\t\tawait this.#transport.close();\n\t}\n\n\tasync list(\n\t\trequest: PortalListRequest,\n\t\toptions: ToolPortalClientRequestOptions = {},\n\t): Promise<PortalListResult> {\n\t\tconst validatedRequest = PortalListRequestSchema.parse(request);\n\t\tconst response = await this.#transport.callTool(\n\t\t\t{\n\t\t\t\targuments: validatedRequest,\n\t\t\t\tname: 'tool_portal_list',\n\t\t\t},\n\t\t\toptions,\n\t\t);\n\t\treturn PortalListResultSchema.parse(response.structuredContent);\n\t}\n\n\tasync search(\n\t\trequest: PortalSearchRequest,\n\t\toptions: ToolPortalClientRequestOptions = {},\n\t): Promise<PortalSearchResult> {\n\t\tconst validatedRequest = PortalSearchRequestSchema.parse(request);\n\t\tconst response = await this.#transport.callTool(\n\t\t\t{\n\t\t\t\targuments: validatedRequest,\n\t\t\t\tname: 'tool_portal_search',\n\t\t\t},\n\t\t\toptions,\n\t\t);\n\t\treturn PortalSearchResultSchema.parse(response.structuredContent);\n\t}\n\n\tasync describe(\n\t\trequest: PortalDescribeRequest,\n\t\toptions: ToolPortalClientRequestOptions = {},\n\t): Promise<PortalDescribeResult> {\n\t\tconst validatedRequest = PortalDescribeRequestSchema.parse(request);\n\t\tconst response = await this.#transport.callTool(\n\t\t\t{\n\t\t\t\targuments: validatedRequest,\n\t\t\t\tname: 'tool_portal_describe',\n\t\t\t},\n\t\t\toptions,\n\t\t);\n\t\treturn PortalDescribeResultSchema.parse(response.structuredContent);\n\t}\n\n\tasync call(\n\t\trequest: PortalCallRequest,\n\t\toptions: ToolPortalClientRequestOptions = {},\n\t): Promise<PortalCallResult> {\n\t\tconst validatedRequest = PortalCallRequestSchema.parse(request);\n\t\tconst response = await this.#transport.callTool(\n\t\t\t{\n\t\t\t\t...(options.approvalToken === undefined ? {} : { approvalToken: options.approvalToken }),\n\t\t\t\targuments: validatedRequest,\n\t\t\t\tname: 'tool_portal_call',\n\t\t\t},\n\t\t\toptions,\n\t\t);\n\t\treturn PortalCallResultSchema.parse(response.structuredContent);\n\t}\n}\n"],"mappings":";;;;;AA0EA,MAAM,yBAAyB;AAE/B,SAAS,wBAAwB,eAA+B;CAC/D,IAAI,CAAC,uBAAuB,KAAK,cAAc,EAC9C,MAAM,IAAI,UAAU,4DAA4D;CAEjF,MAAM,eAAe,cAAc,SAAS,KAAK,GAAG,IAAI,cAAc,SAAS,IAAI,GAAG,IAAI;CAC1F,OAAQ,cAAc,SAAS,IAAK,IAAI;;AAGzC,IAAM,kCAAN,MAAsC;CACrC;CAEA,YAAY,WAAmC;EAC9C,KAAKA,aAAa;;CAGnB,MAAM,KACL,SACA,UAA0C,EAAE,EACR;EACpC,MAAM,mBAAmB,gCAAgC,MAAM,QAAQ;EACvE,MAAM,kBAAkB,wCAAwC,iBAAiB;EACjF,MAAM,WAAW,MAAM,KAAKA,WAAW,aAAa,iBAAiB,QAAQ;EAC7E,MAAM,UAAU,SAAS,SAAS,WAAW,IAAI,SAAS,SAAS,KAAK,KAAA;EACxE,IACC,YAAY,KAAA,KACZ,QAAQ,SAAS,UACjB,QAAQ,QAAQ,gBAAgB,OAChC,QAAQ,cAAc,KAAA,GAEtB,MAAM,IAAI,UAAU,8DAA8D;EAEnF,MAAM,gBAAgB,wBAAwB,QAAQ,KAAK;EAC3D,IAAI,gBAAgB,iBAAiB,UACpC,MAAM,IAAI,UAAU,mEAAmE;EAExF,OAAO,+BAA+B,MAAM;GAC3C,eAAe,QAAQ;GACvB,WAAW,QAAQ;GACnB,aAAa,iBAAiB;GAC9B,WAAW,iBAAiB;GAC5B,WACC,iBAAiB,cAAc,gBAAgB,iBAAiB,UAAU;GAC3E,CAAC;;;;;;;;;AAUJ,IAAa,sBAAb,MAAiC;CAChC;CACA;CAEA,YAAY,SAAqC;EAChD,KAAKA,aAAa,QAAQ;EAC1B,KAAK,YAAY,IAAI,gCAAgC,KAAKA,WAAW;;CAGtE,MAAM,UAAyB;EAC9B,MAAM,KAAKA,WAAW,SAAS;;CAGhC,MAAM,QAAuB;EAC5B,MAAM,KAAKA,WAAW,OAAO;;CAG9B,MAAM,KACL,SACA,UAA0C,EAAE,EAChB;EAC5B,MAAM,mBAAmB,wBAAwB,MAAM,QAAQ;EAC/D,MAAM,WAAW,MAAM,KAAKA,WAAW,SACtC;GACC,WAAW;GACX,MAAM;GACN,EACD,QACA;EACD,OAAO,uBAAuB,MAAM,SAAS,kBAAkB;;CAGhE,MAAM,OACL,SACA,UAA0C,EAAE,EACd;EAC9B,MAAM,mBAAmB,0BAA0B,MAAM,QAAQ;EACjE,MAAM,WAAW,MAAM,KAAKA,WAAW,SACtC;GACC,WAAW;GACX,MAAM;GACN,EACD,QACA;EACD,OAAO,yBAAyB,MAAM,SAAS,kBAAkB;;CAGlE,MAAM,SACL,SACA,UAA0C,EAAE,EACZ;EAChC,MAAM,mBAAmB,4BAA4B,MAAM,QAAQ;EACnE,MAAM,WAAW,MAAM,KAAKA,WAAW,SACtC;GACC,WAAW;GACX,MAAM;GACN,EACD,QACA;EACD,OAAO,2BAA2B,MAAM,SAAS,kBAAkB;;CAGpE,MAAM,KACL,SACA,UAA0C,EAAE,EAChB;EAC5B,MAAM,mBAAmB,wBAAwB,MAAM,QAAQ;EAC/D,MAAM,WAAW,MAAM,KAAKA,WAAW,SACtC;GACC,GAAI,QAAQ,kBAAkB,KAAA,IAAY,EAAE,GAAG,EAAE,eAAe,QAAQ,eAAe;GACvF,WAAW;GACX,MAAM;GACN,EACD,QACA;EACD,OAAO,uBAAuB,MAAM,SAAS,kBAAkB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-vm/agent-portal-sdk",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.115",
|
|
4
4
|
"description": "Portal-neutral Zod contracts and helpers for agent-facing capability surfaces.",
|
|
5
5
|
"homepage": "https://github.com/ShravanSunder/agent-vm#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -13,8 +13,13 @@
|
|
|
13
13
|
"url": "git+https://github.com/ShravanSunder/agent-vm.git",
|
|
14
14
|
"directory": "packages/agent-portal-sdk"
|
|
15
15
|
},
|
|
16
|
+
"bin": {
|
|
17
|
+
"tool-portal": "dist/cli/tool-portal.js"
|
|
18
|
+
},
|
|
16
19
|
"files": [
|
|
17
|
-
"
|
|
20
|
+
"contract-fixtures",
|
|
21
|
+
"dist",
|
|
22
|
+
"portable-contract-schema-manifest.json"
|
|
18
23
|
],
|
|
19
24
|
"type": "module",
|
|
20
25
|
"main": "./dist/index.js",
|
|
@@ -40,6 +45,18 @@
|
|
|
40
45
|
"types": "./dist/capability-description-surface/index.d.ts",
|
|
41
46
|
"import": "./dist/capability-description-surface/index.js"
|
|
42
47
|
},
|
|
48
|
+
"./contracts": {
|
|
49
|
+
"types": "./dist/contracts/index.d.ts",
|
|
50
|
+
"import": "./dist/contracts/index.js"
|
|
51
|
+
},
|
|
52
|
+
"./gateway-runtime-client": {
|
|
53
|
+
"types": "./dist/gateway-runtime-client/index.d.ts",
|
|
54
|
+
"import": "./dist/gateway-runtime-client/index.js"
|
|
55
|
+
},
|
|
56
|
+
"./gateway-runtime-local-exec": {
|
|
57
|
+
"types": "./dist/gateway-runtime-local-exec/index.d.ts",
|
|
58
|
+
"import": "./dist/gateway-runtime-local-exec/index.js"
|
|
59
|
+
},
|
|
43
60
|
"./portal-call-surface": {
|
|
44
61
|
"types": "./dist/portal-call-surface/index.d.ts",
|
|
45
62
|
"import": "./dist/portal-call-surface/index.js"
|
|
@@ -48,15 +65,28 @@
|
|
|
48
65
|
"types": "./dist/portal-event-surface/index.d.ts",
|
|
49
66
|
"import": "./dist/portal-event-surface/index.js"
|
|
50
67
|
},
|
|
68
|
+
"./portable-contracts": {
|
|
69
|
+
"types": "./dist/portable-contracts/index.d.ts",
|
|
70
|
+
"import": "./dist/portable-contracts/index.js"
|
|
71
|
+
},
|
|
51
72
|
"./testing": {
|
|
52
73
|
"types": "./dist/testing/index.d.ts",
|
|
53
74
|
"import": "./dist/testing/index.js"
|
|
75
|
+
},
|
|
76
|
+
"./tool-portal-mcp-client": {
|
|
77
|
+
"types": "./dist/tool-portal-mcp-client/index.d.ts",
|
|
78
|
+
"import": "./dist/tool-portal-mcp-client/index.js"
|
|
79
|
+
},
|
|
80
|
+
"./tool-portal-mcp-client/node-transport": {
|
|
81
|
+
"types": "./dist/tool-portal-mcp-client/node-tool-portal-mcp-transport.d.ts",
|
|
82
|
+
"import": "./dist/tool-portal-mcp-client/node-tool-portal-mcp-transport.js"
|
|
54
83
|
}
|
|
55
84
|
},
|
|
56
85
|
"publishConfig": {
|
|
57
86
|
"access": "public"
|
|
58
87
|
},
|
|
59
88
|
"dependencies": {
|
|
89
|
+
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
60
90
|
"zod": "^4.4.3"
|
|
61
91
|
},
|
|
62
92
|
"devDependencies": {
|