@osva-ai/contracts 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/README.md +5 -0
- package/dist/agent-manifest.d.ts +142 -0
- package/dist/agent-manifest.d.ts.map +1 -0
- package/dist/agent-manifest.js +13 -0
- package/dist/agent-manifest.js.map +1 -0
- package/dist/agent-registry.d.ts +34 -0
- package/dist/agent-registry.d.ts.map +1 -0
- package/dist/agent-registry.js +2 -0
- package/dist/agent-registry.js.map +1 -0
- package/dist/approval.d.ts +9 -0
- package/dist/approval.d.ts.map +1 -0
- package/dist/approval.js +13 -0
- package/dist/approval.js.map +1 -0
- package/dist/artifact-gateway.d.ts +12 -0
- package/dist/artifact-gateway.d.ts.map +1 -0
- package/dist/artifact-gateway.js +13 -0
- package/dist/artifact-gateway.js.map +1 -0
- package/dist/artifact.d.ts +11 -0
- package/dist/artifact.d.ts.map +1 -0
- package/dist/artifact.js +6 -0
- package/dist/artifact.js.map +1 -0
- package/dist/connector-public.d.ts +36 -0
- package/dist/connector-public.d.ts.map +1 -0
- package/dist/connector-public.js +48 -0
- package/dist/connector-public.js.map +1 -0
- package/dist/connector-registry.d.ts +73 -0
- package/dist/connector-registry.d.ts.map +1 -0
- package/dist/connector-registry.js +2 -0
- package/dist/connector-registry.js.map +1 -0
- package/dist/connector.d.ts +31 -0
- package/dist/connector.d.ts.map +1 -0
- package/dist/connector.js +15 -0
- package/dist/connector.js.map +1 -0
- package/dist/container-runtime.d.ts +17 -0
- package/dist/container-runtime.d.ts.map +1 -0
- package/dist/container-runtime.js +42 -0
- package/dist/container-runtime.js.map +1 -0
- package/dist/evaluation-suite.d.ts +107 -0
- package/dist/evaluation-suite.d.ts.map +1 -0
- package/dist/evaluation-suite.js +13 -0
- package/dist/evaluation-suite.js.map +1 -0
- package/dist/evaluation.d.ts +10 -0
- package/dist/evaluation.d.ts.map +1 -0
- package/dist/evaluation.js +5 -0
- package/dist/evaluation.js.map +1 -0
- package/dist/event-envelope.d.ts +20 -0
- package/dist/event-envelope.d.ts.map +1 -0
- package/dist/event-envelope.js +2 -0
- package/dist/event-envelope.js.map +1 -0
- package/dist/ids.d.ts +45 -0
- package/dist/ids.d.ts.map +1 -0
- package/dist/ids.js +2 -0
- package/dist/ids.js.map +1 -0
- package/dist/index.d.ts +73 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +31 -0
- package/dist/index.js.map +1 -0
- package/dist/job-queue.d.ts +17 -0
- package/dist/job-queue.d.ts.map +1 -0
- package/dist/job-queue.js +2 -0
- package/dist/job-queue.js.map +1 -0
- package/dist/json-pointer.d.ts +13 -0
- package/dist/json-pointer.d.ts.map +1 -0
- package/dist/json-pointer.js +68 -0
- package/dist/json-pointer.js.map +1 -0
- package/dist/json-schema.d.ts +6 -0
- package/dist/json-schema.d.ts.map +1 -0
- package/dist/json-schema.js +2 -0
- package/dist/json-schema.js.map +1 -0
- package/dist/json-value.d.ts +12 -0
- package/dist/json-value.d.ts.map +1 -0
- package/dist/json-value.js +35 -0
- package/dist/json-value.js.map +1 -0
- package/dist/knowledge-registry.d.ts +37 -0
- package/dist/knowledge-registry.d.ts.map +1 -0
- package/dist/knowledge-registry.js +2 -0
- package/dist/knowledge-registry.js.map +1 -0
- package/dist/knowledge-retrieval.d.ts +14 -0
- package/dist/knowledge-retrieval.d.ts.map +1 -0
- package/dist/knowledge-retrieval.js +2 -0
- package/dist/knowledge-retrieval.js.map +1 -0
- package/dist/knowledge-runtime.d.ts +16 -0
- package/dist/knowledge-runtime.d.ts.map +1 -0
- package/dist/knowledge-runtime.js +8 -0
- package/dist/knowledge-runtime.js.map +1 -0
- package/dist/knowledge.d.ts +106 -0
- package/dist/knowledge.d.ts.map +1 -0
- package/dist/knowledge.js +56 -0
- package/dist/knowledge.js.map +1 -0
- package/dist/mcp-client.d.ts +39 -0
- package/dist/mcp-client.d.ts.map +1 -0
- package/dist/mcp-client.js +2 -0
- package/dist/mcp-client.js.map +1 -0
- package/dist/mcp-connector-execution.d.ts +10 -0
- package/dist/mcp-connector-execution.d.ts.map +1 -0
- package/dist/mcp-connector-execution.js +2 -0
- package/dist/mcp-connector-execution.js.map +1 -0
- package/dist/mcp-server.d.ts +87 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +57 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/memory-gateway.d.ts +65 -0
- package/dist/memory-gateway.d.ts.map +1 -0
- package/dist/memory-gateway.js +22 -0
- package/dist/memory-gateway.js.map +1 -0
- package/dist/memory-registry.d.ts +37 -0
- package/dist/memory-registry.d.ts.map +1 -0
- package/dist/memory-registry.js +2 -0
- package/dist/memory-registry.js.map +1 -0
- package/dist/model-gateway.d.ts +92 -0
- package/dist/model-gateway.d.ts.map +1 -0
- package/dist/model-gateway.js +37 -0
- package/dist/model-gateway.js.map +1 -0
- package/dist/model-pricing.d.ts +11 -0
- package/dist/model-pricing.d.ts.map +1 -0
- package/dist/model-pricing.js +7 -0
- package/dist/model-pricing.js.map +1 -0
- package/dist/model-profile-registry.d.ts +36 -0
- package/dist/model-profile-registry.d.ts.map +1 -0
- package/dist/model-profile-registry.js +2 -0
- package/dist/model-profile-registry.js.map +1 -0
- package/dist/office-registry.d.ts +144 -0
- package/dist/office-registry.d.ts.map +1 -0
- package/dist/office-registry.js +2 -0
- package/dist/office-registry.js.map +1 -0
- package/dist/office-state.d.ts +7 -0
- package/dist/office-state.d.ts.map +1 -0
- package/dist/office-state.js +18 -0
- package/dist/office-state.js.map +1 -0
- package/dist/remote-runtime.d.ts +7 -0
- package/dist/remote-runtime.d.ts.map +1 -0
- package/dist/remote-runtime.js +30 -0
- package/dist/remote-runtime.js.map +1 -0
- package/dist/run-lifecycle.d.ts +55 -0
- package/dist/run-lifecycle.d.ts.map +1 -0
- package/dist/run-lifecycle.js +2 -0
- package/dist/run-lifecycle.js.map +1 -0
- package/dist/run-state.d.ts +7 -0
- package/dist/run-state.d.ts.map +1 -0
- package/dist/run-state.js +24 -0
- package/dist/run-state.js.map +1 -0
- package/dist/run-step.d.ts +7 -0
- package/dist/run-step.d.ts.map +1 -0
- package/dist/run-step.js +9 -0
- package/dist/run-step.js.map +1 -0
- package/dist/runtime-protocol.d.ts +49 -0
- package/dist/runtime-protocol.d.ts.map +1 -0
- package/dist/runtime-protocol.js +2 -0
- package/dist/runtime-protocol.js.map +1 -0
- package/dist/schemas/agent-manifest.d.ts +89 -0
- package/dist/schemas/agent-manifest.d.ts.map +1 -0
- package/dist/schemas/agent-manifest.js +122 -0
- package/dist/schemas/agent-manifest.js.map +1 -0
- package/dist/schemas/agent-registry.d.ts +224 -0
- package/dist/schemas/agent-registry.d.ts.map +1 -0
- package/dist/schemas/agent-registry.js +35 -0
- package/dist/schemas/agent-registry.js.map +1 -0
- package/dist/schemas/api-key-registry.d.ts +77 -0
- package/dist/schemas/api-key-registry.d.ts.map +1 -0
- package/dist/schemas/api-key-registry.js +34 -0
- package/dist/schemas/api-key-registry.js.map +1 -0
- package/dist/schemas/artifact.d.ts +67 -0
- package/dist/schemas/artifact.d.ts.map +1 -0
- package/dist/schemas/artifact.js +65 -0
- package/dist/schemas/artifact.js.map +1 -0
- package/dist/schemas/connector-registry.d.ts +211 -0
- package/dist/schemas/connector-registry.d.ts.map +1 -0
- package/dist/schemas/connector-registry.js +101 -0
- package/dist/schemas/connector-registry.js.map +1 -0
- package/dist/schemas/connector.d.ts +57 -0
- package/dist/schemas/connector.d.ts.map +1 -0
- package/dist/schemas/connector.js +46 -0
- package/dist/schemas/connector.js.map +1 -0
- package/dist/schemas/evaluation-suite.d.ts +212 -0
- package/dist/schemas/evaluation-suite.d.ts.map +1 -0
- package/dist/schemas/evaluation-suite.js +101 -0
- package/dist/schemas/evaluation-suite.js.map +1 -0
- package/dist/schemas/evaluation.d.ts +45 -0
- package/dist/schemas/evaluation.d.ts.map +1 -0
- package/dist/schemas/evaluation.js +28 -0
- package/dist/schemas/evaluation.js.map +1 -0
- package/dist/schemas/event-envelope.d.ts +14 -0
- package/dist/schemas/event-envelope.d.ts.map +1 -0
- package/dist/schemas/event-envelope.js +17 -0
- package/dist/schemas/event-envelope.js.map +1 -0
- package/dist/schemas/ids.d.ts +42 -0
- package/dist/schemas/ids.d.ts.map +1 -0
- package/dist/schemas/ids.js +44 -0
- package/dist/schemas/ids.js.map +1 -0
- package/dist/schemas/index.d.ts +33 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +33 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/job-queue.d.ts +5 -0
- package/dist/schemas/job-queue.d.ts.map +1 -0
- package/dist/schemas/job-queue.js +6 -0
- package/dist/schemas/job-queue.js.map +1 -0
- package/dist/schemas/json-schema.d.ts +4 -0
- package/dist/schemas/json-schema.d.ts.map +1 -0
- package/dist/schemas/json-schema.js +3 -0
- package/dist/schemas/json-schema.js.map +1 -0
- package/dist/schemas/json-value.d.ts +4 -0
- package/dist/schemas/json-value.d.ts.map +1 -0
- package/dist/schemas/json-value.js +4 -0
- package/dist/schemas/json-value.js.map +1 -0
- package/dist/schemas/knowledge.d.ts +112 -0
- package/dist/schemas/knowledge.d.ts.map +1 -0
- package/dist/schemas/knowledge.js +109 -0
- package/dist/schemas/knowledge.js.map +1 -0
- package/dist/schemas/mcp-server.d.ts +18 -0
- package/dist/schemas/mcp-server.d.ts.map +1 -0
- package/dist/schemas/mcp-server.js +35 -0
- package/dist/schemas/mcp-server.js.map +1 -0
- package/dist/schemas/memory-registry.d.ts +49 -0
- package/dist/schemas/memory-registry.d.ts.map +1 -0
- package/dist/schemas/memory-registry.js +37 -0
- package/dist/schemas/memory-registry.js.map +1 -0
- package/dist/schemas/model-gateway.d.ts +61 -0
- package/dist/schemas/model-gateway.d.ts.map +1 -0
- package/dist/schemas/model-gateway.js +54 -0
- package/dist/schemas/model-gateway.js.map +1 -0
- package/dist/schemas/model-pricing.d.ts +12 -0
- package/dist/schemas/model-pricing.d.ts.map +1 -0
- package/dist/schemas/model-pricing.js +15 -0
- package/dist/schemas/model-pricing.js.map +1 -0
- package/dist/schemas/model-profile-registry.d.ts +80 -0
- package/dist/schemas/model-profile-registry.d.ts.map +1 -0
- package/dist/schemas/model-profile-registry.js +40 -0
- package/dist/schemas/model-profile-registry.js.map +1 -0
- package/dist/schemas/office-registry.d.ts +246 -0
- package/dist/schemas/office-registry.d.ts.map +1 -0
- package/dist/schemas/office-registry.js +177 -0
- package/dist/schemas/office-registry.js.map +1 -0
- package/dist/schemas/run-lifecycle.d.ts +166 -0
- package/dist/schemas/run-lifecycle.d.ts.map +1 -0
- package/dist/schemas/run-lifecycle.js +70 -0
- package/dist/schemas/run-lifecycle.js.map +1 -0
- package/dist/schemas/run-step.d.ts +89 -0
- package/dist/schemas/run-step.d.ts.map +1 -0
- package/dist/schemas/run-step.js +48 -0
- package/dist/schemas/run-step.js.map +1 -0
- package/dist/schemas/runtime-protocol.d.ts +77 -0
- package/dist/schemas/runtime-protocol.d.ts.map +1 -0
- package/dist/schemas/runtime-protocol.js +50 -0
- package/dist/schemas/runtime-protocol.js.map +1 -0
- package/dist/schemas/schedule-registry.d.ts +82 -0
- package/dist/schemas/schedule-registry.d.ts.map +1 -0
- package/dist/schemas/schedule-registry.js +63 -0
- package/dist/schemas/schedule-registry.js.map +1 -0
- package/dist/schemas/secret-reference.d.ts +6 -0
- package/dist/schemas/secret-reference.d.ts.map +1 -0
- package/dist/schemas/secret-reference.js +6 -0
- package/dist/schemas/secret-reference.js.map +1 -0
- package/dist/schemas/tool-gateway.d.ts +17 -0
- package/dist/schemas/tool-gateway.d.ts.map +1 -0
- package/dist/schemas/tool-gateway.js +18 -0
- package/dist/schemas/tool-gateway.js.map +1 -0
- package/dist/schemas/tool-registry.d.ts +110 -0
- package/dist/schemas/tool-registry.d.ts.map +1 -0
- package/dist/schemas/tool-registry.js +50 -0
- package/dist/schemas/tool-registry.js.map +1 -0
- package/dist/schemas/tool.d.ts +15 -0
- package/dist/schemas/tool.d.ts.map +1 -0
- package/dist/schemas/tool.js +16 -0
- package/dist/schemas/tool.js.map +1 -0
- package/dist/schemas/utc-instant.d.ts +9 -0
- package/dist/schemas/utc-instant.d.ts.map +1 -0
- package/dist/schemas/utc-instant.js +13 -0
- package/dist/schemas/utc-instant.js.map +1 -0
- package/dist/schemas/workflow-definition.d.ts +394 -0
- package/dist/schemas/workflow-definition.d.ts.map +1 -0
- package/dist/schemas/workflow-definition.js +138 -0
- package/dist/schemas/workflow-definition.js.map +1 -0
- package/dist/schemas/workflow-event.d.ts +21 -0
- package/dist/schemas/workflow-event.d.ts.map +1 -0
- package/dist/schemas/workflow-event.js +26 -0
- package/dist/schemas/workflow-event.js.map +1 -0
- package/dist/schemas/workflow-registry.d.ts +490 -0
- package/dist/schemas/workflow-registry.d.ts.map +1 -0
- package/dist/schemas/workflow-registry.js +125 -0
- package/dist/schemas/workflow-registry.js.map +1 -0
- package/dist/secret-reference.d.ts +8 -0
- package/dist/secret-reference.d.ts.map +1 -0
- package/dist/secret-reference.js +2 -0
- package/dist/secret-reference.js.map +1 -0
- package/dist/secret-resolver.d.ts +6 -0
- package/dist/secret-resolver.d.ts.map +1 -0
- package/dist/secret-resolver.js +2 -0
- package/dist/secret-resolver.js.map +1 -0
- package/dist/security.d.ts +50 -0
- package/dist/security.d.ts.map +1 -0
- package/dist/security.js +33 -0
- package/dist/security.js.map +1 -0
- package/dist/stdio-transport.d.ts +5 -0
- package/dist/stdio-transport.d.ts.map +1 -0
- package/dist/stdio-transport.js +25 -0
- package/dist/stdio-transport.js.map +1 -0
- package/dist/telemetry.d.ts +24 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +2 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/tool-gateway.d.ts +67 -0
- package/dist/tool-gateway.d.ts.map +1 -0
- package/dist/tool-gateway.js +40 -0
- package/dist/tool-gateway.js.map +1 -0
- package/dist/tool-registry.d.ts +46 -0
- package/dist/tool-registry.d.ts.map +1 -0
- package/dist/tool-registry.js +2 -0
- package/dist/tool-registry.js.map +1 -0
- package/dist/tool.d.ts +60 -0
- package/dist/tool.d.ts.map +1 -0
- package/dist/tool.js +2 -0
- package/dist/tool.js.map +1 -0
- package/dist/trusted-runtime.d.ts +10 -0
- package/dist/trusted-runtime.d.ts.map +1 -0
- package/dist/trusted-runtime.js +47 -0
- package/dist/trusted-runtime.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/workflow-definition.d.ts +152 -0
- package/dist/workflow-definition.d.ts.map +1 -0
- package/dist/workflow-definition.js +86 -0
- package/dist/workflow-definition.js.map +1 -0
- package/dist/workflow-event.d.ts +8 -0
- package/dist/workflow-event.d.ts.map +1 -0
- package/dist/workflow-event.js +8 -0
- package/dist/workflow-event.js.map +1 -0
- package/dist/workflow-registry.d.ts +96 -0
- package/dist/workflow-registry.d.ts.map +1 -0
- package/dist/workflow-registry.js +2 -0
- package/dist/workflow-registry.js.map +1 -0
- package/dist/workflow-state.d.ts +10 -0
- package/dist/workflow-state.d.ts.map +1 -0
- package/dist/workflow-state.js +30 -0
- package/dist/workflow-state.js.map +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secret-resolver.js","sourceRoot":"","sources":["../src/secret-resolver.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { ApiKeyId, WorkspaceId } from "./ids.js";
|
|
2
|
+
export declare const AUTHENTICATION_METHODS: {
|
|
3
|
+
readonly API_KEY: "API_KEY";
|
|
4
|
+
};
|
|
5
|
+
export type AuthenticationMethod = (typeof AUTHENTICATION_METHODS)[keyof typeof AUTHENTICATION_METHODS];
|
|
6
|
+
export declare const COMMUNITY_EDITION_ROLES: {
|
|
7
|
+
readonly VIEWER: "VIEWER";
|
|
8
|
+
readonly OPERATOR: "OPERATOR";
|
|
9
|
+
readonly EDITOR: "EDITOR";
|
|
10
|
+
readonly ADMIN: "ADMIN";
|
|
11
|
+
};
|
|
12
|
+
export type CommunityEditionRole = (typeof COMMUNITY_EDITION_ROLES)[keyof typeof COMMUNITY_EDITION_ROLES];
|
|
13
|
+
export declare const AUTHORIZATION_ACTIONS: {
|
|
14
|
+
readonly READ: "READ";
|
|
15
|
+
readonly EXECUTE: "EXECUTE";
|
|
16
|
+
readonly WRITE: "WRITE";
|
|
17
|
+
readonly ADMIN: "ADMIN";
|
|
18
|
+
};
|
|
19
|
+
export type AuthorizationAction = (typeof AUTHORIZATION_ACTIONS)[keyof typeof AUTHORIZATION_ACTIONS];
|
|
20
|
+
export declare const PUBLIC_API_ERROR_CODES: {
|
|
21
|
+
readonly AUTHENTICATION_REQUIRED: "AUTHENTICATION_REQUIRED";
|
|
22
|
+
readonly PERMISSION_DENIED: "PERMISSION_DENIED";
|
|
23
|
+
readonly RESOURCE_NOT_FOUND: "RESOURCE_NOT_FOUND";
|
|
24
|
+
readonly REQUEST_TOO_LARGE: "REQUEST_TOO_LARGE";
|
|
25
|
+
};
|
|
26
|
+
/** Default maximum JSON request body size for ordinary REST handlers (1 MiB). */
|
|
27
|
+
export declare const OSVA_DEFAULT_JSON_BODY_MAX_BYTES = 1048576;
|
|
28
|
+
export type PublicApiErrorCode = (typeof PUBLIC_API_ERROR_CODES)[keyof typeof PUBLIC_API_ERROR_CODES];
|
|
29
|
+
export declare const AUTHENTICATION_FAILURE_REASONS: {
|
|
30
|
+
readonly MALFORMED_TOKEN: "malformed_token";
|
|
31
|
+
readonly UNKNOWN_KEY: "unknown_key";
|
|
32
|
+
readonly REVOKED_KEY: "revoked_key";
|
|
33
|
+
readonly EXPIRED_KEY: "expired_key";
|
|
34
|
+
readonly INVALID_SECRET: "invalid_secret";
|
|
35
|
+
};
|
|
36
|
+
export type AuthenticationFailureReason = (typeof AUTHENTICATION_FAILURE_REASONS)[keyof typeof AUTHENTICATION_FAILURE_REASONS];
|
|
37
|
+
export interface RequestPrincipal {
|
|
38
|
+
readonly subjectId: ApiKeyId;
|
|
39
|
+
readonly workspaceId: WorkspaceId;
|
|
40
|
+
readonly role: CommunityEditionRole;
|
|
41
|
+
readonly authenticationMethod: AuthenticationMethod;
|
|
42
|
+
}
|
|
43
|
+
export interface AuthContextResourceV1 {
|
|
44
|
+
readonly subjectId: ApiKeyId;
|
|
45
|
+
readonly workspaceId: WorkspaceId;
|
|
46
|
+
readonly role: CommunityEditionRole;
|
|
47
|
+
}
|
|
48
|
+
export declare const API_KEY_NAME_MAX_LENGTH = 128;
|
|
49
|
+
export declare const OSVA_REQUEST_ID_HEADER = "x-osva-request-id";
|
|
50
|
+
//# sourceMappingURL=security.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../src/security.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEtD,eAAO,MAAM,sBAAsB;;CAEzB,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAC9B,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,OAAO,sBAAsB,CAAC,CAAC;AAEvE,eAAO,MAAM,uBAAuB;;;;;CAK1B,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAC9B,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,OAAO,uBAAuB,CAAC,CAAC;AAEzE,eAAO,MAAM,qBAAqB;;;;;CAKxB,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAC7B,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,OAAO,qBAAqB,CAAC,CAAC;AAErE,eAAO,MAAM,sBAAsB;;;;;CAKzB,CAAC;AAEX,iFAAiF;AACjF,eAAO,MAAM,gCAAgC,UAAY,CAAC;AAE1D,MAAM,MAAM,kBAAkB,GAC5B,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,OAAO,sBAAsB,CAAC,CAAC;AAEvE,eAAO,MAAM,8BAA8B;;;;;;CAMjC,CAAC;AAEX,MAAM,MAAM,2BAA2B,GACrC,CAAC,OAAO,8BAA8B,CAAC,CAAC,MAAM,OAAO,8BAA8B,CAAC,CAAC;AAEvF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;CACrD;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;CACrC;AAED,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAE3C,eAAO,MAAM,sBAAsB,sBAAsB,CAAC"}
|
package/dist/security.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export const AUTHENTICATION_METHODS = {
|
|
2
|
+
API_KEY: "API_KEY",
|
|
3
|
+
};
|
|
4
|
+
export const COMMUNITY_EDITION_ROLES = {
|
|
5
|
+
VIEWER: "VIEWER",
|
|
6
|
+
OPERATOR: "OPERATOR",
|
|
7
|
+
EDITOR: "EDITOR",
|
|
8
|
+
ADMIN: "ADMIN",
|
|
9
|
+
};
|
|
10
|
+
export const AUTHORIZATION_ACTIONS = {
|
|
11
|
+
READ: "READ",
|
|
12
|
+
EXECUTE: "EXECUTE",
|
|
13
|
+
WRITE: "WRITE",
|
|
14
|
+
ADMIN: "ADMIN",
|
|
15
|
+
};
|
|
16
|
+
export const PUBLIC_API_ERROR_CODES = {
|
|
17
|
+
AUTHENTICATION_REQUIRED: "AUTHENTICATION_REQUIRED",
|
|
18
|
+
PERMISSION_DENIED: "PERMISSION_DENIED",
|
|
19
|
+
RESOURCE_NOT_FOUND: "RESOURCE_NOT_FOUND",
|
|
20
|
+
REQUEST_TOO_LARGE: "REQUEST_TOO_LARGE",
|
|
21
|
+
};
|
|
22
|
+
/** Default maximum JSON request body size for ordinary REST handlers (1 MiB). */
|
|
23
|
+
export const OSVA_DEFAULT_JSON_BODY_MAX_BYTES = 1_048_576;
|
|
24
|
+
export const AUTHENTICATION_FAILURE_REASONS = {
|
|
25
|
+
MALFORMED_TOKEN: "malformed_token",
|
|
26
|
+
UNKNOWN_KEY: "unknown_key",
|
|
27
|
+
REVOKED_KEY: "revoked_key",
|
|
28
|
+
EXPIRED_KEY: "expired_key",
|
|
29
|
+
INVALID_SECRET: "invalid_secret",
|
|
30
|
+
};
|
|
31
|
+
export const API_KEY_NAME_MAX_LENGTH = 128;
|
|
32
|
+
export const OSVA_REQUEST_ID_HEADER = "x-osva-request-id";
|
|
33
|
+
//# sourceMappingURL=security.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security.js","sourceRoot":"","sources":["../src/security.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,OAAO,EAAE,SAAS;CACV,CAAC;AAKX,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;CACN,CAAC;AAKX,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;CACN,CAAC;AAKX,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,uBAAuB,EAAE,yBAAyB;IAClD,iBAAiB,EAAE,mBAAmB;IACtC,kBAAkB,EAAE,oBAAoB;IACxC,iBAAiB,EAAE,mBAAmB;CAC9B,CAAC;AAEX,iFAAiF;AACjF,MAAM,CAAC,MAAM,gCAAgC,GAAG,SAAS,CAAC;AAK1D,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,eAAe,EAAE,iBAAiB;IAClC,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,aAAa;IAC1B,cAAc,EAAE,gBAAgB;CACxB,CAAC;AAkBX,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAE3C,MAAM,CAAC,MAAM,sBAAsB,GAAG,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { StdioTransportConfig } from "./connector.js";
|
|
2
|
+
export declare function isValidProcessEnvironmentVariableName(name: string): boolean;
|
|
3
|
+
export declare function listStdioEnvironmentConflicts(config: Pick<StdioTransportConfig, "environment" | "secretEnvironment">): readonly string[];
|
|
4
|
+
export declare function validateStdioTransportEnvironment(config: Pick<StdioTransportConfig, "environment" | "secretEnvironment">): void;
|
|
5
|
+
//# sourceMappingURL=stdio-transport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stdio-transport.d.ts","sourceRoot":"","sources":["../src/stdio-transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAI3D,wBAAgB,qCAAqC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE3E;AAED,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE,aAAa,GAAG,mBAAmB,CAAC,GACtE,SAAS,MAAM,EAAE,CAInB;AAED,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE,aAAa,GAAG,mBAAmB,CAAC,GACtE,IAAI,CAmBN"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
const ENV_VAR_NAME_PATTERN = /^[A-Za-z_][A-Za-z0-9_]*$/;
|
|
2
|
+
export function isValidProcessEnvironmentVariableName(name) {
|
|
3
|
+
return ENV_VAR_NAME_PATTERN.test(name);
|
|
4
|
+
}
|
|
5
|
+
export function listStdioEnvironmentConflicts(config) {
|
|
6
|
+
const plain = config.environment ?? {};
|
|
7
|
+
const secret = config.secretEnvironment ?? {};
|
|
8
|
+
return Object.keys(secret).filter((key) => key in plain);
|
|
9
|
+
}
|
|
10
|
+
export function validateStdioTransportEnvironment(config) {
|
|
11
|
+
const names = [
|
|
12
|
+
...Object.keys(config.environment ?? {}),
|
|
13
|
+
...Object.keys(config.secretEnvironment ?? {}),
|
|
14
|
+
];
|
|
15
|
+
for (const name of names) {
|
|
16
|
+
if (!isValidProcessEnvironmentVariableName(name)) {
|
|
17
|
+
throw new Error(`Invalid process environment variable name '${name}' in stdio transport configuration.`);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
const conflicts = listStdioEnvironmentConflicts(config);
|
|
21
|
+
if (conflicts.length > 0) {
|
|
22
|
+
throw new Error(`Stdio transport environment and secretEnvironment both define: ${conflicts.join(", ")}.`);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=stdio-transport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stdio-transport.js","sourceRoot":"","sources":["../src/stdio-transport.ts"],"names":[],"mappings":"AAEA,MAAM,oBAAoB,GAAG,0BAA0B,CAAC;AAExD,MAAM,UAAU,qCAAqC,CAAC,IAAY;IAChE,OAAO,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,MAAuE;IAEvE,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;IACvC,MAAM,MAAM,GAAG,MAAM,CAAC,iBAAiB,IAAI,EAAE,CAAC;IAC9C,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,MAAuE;IAEvE,MAAM,KAAK,GAAG;QACZ,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;QACxC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,IAAI,EAAE,CAAC;KAC/C,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,qCAAqC,CAAC,IAAI,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CACb,8CAA8C,IAAI,qCAAqC,CACxF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,6BAA6B,CAAC,MAAM,CAAC,CAAC;IACxD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,kEAAkE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC1F,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { AgentId, AgentVersionId, RunAttemptId, RunId, RunStepId, WorkflowRunId, WorkspaceId } from "./ids.js";
|
|
2
|
+
export interface TelemetryCorrelation {
|
|
3
|
+
readonly workspaceId?: WorkspaceId;
|
|
4
|
+
readonly agentId?: AgentId;
|
|
5
|
+
readonly agentVersionId?: AgentVersionId;
|
|
6
|
+
readonly workflowRunId?: WorkflowRunId;
|
|
7
|
+
readonly runId?: RunId;
|
|
8
|
+
readonly runAttemptId?: RunAttemptId;
|
|
9
|
+
readonly runStepId?: RunStepId;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Normalized telemetry for external exporters.
|
|
13
|
+
* Exporters are not canonical storage; dropping them must not destroy Run state.
|
|
14
|
+
*/
|
|
15
|
+
export interface TelemetryEvent {
|
|
16
|
+
readonly name: string;
|
|
17
|
+
readonly occurredAt: string;
|
|
18
|
+
readonly correlation: TelemetryCorrelation;
|
|
19
|
+
readonly attributes?: Readonly<Record<string, unknown>>;
|
|
20
|
+
}
|
|
21
|
+
export interface TelemetrySink {
|
|
22
|
+
emit(event: TelemetryEvent): Promise<void>;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=telemetry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,cAAc,EACd,YAAY,EACZ,KAAK,EACL,SAAS,EACT,aAAa,EACb,WAAW,EACZ,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IACzC,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { AgentId, ConnectorVersionId, RunAttemptId, RunId, ToolVersionId, WorkspaceId } from "./ids.js";
|
|
2
|
+
import type { JsonSchemaRecord } from "./json-schema.js";
|
|
3
|
+
import type { JsonValue } from "./json-value.js";
|
|
4
|
+
export declare const TOOL_BINDING_NAME_PATTERN: RegExp;
|
|
5
|
+
export declare const INTERNAL_TOOL_IMPLEMENTATIONS: readonly ["OSVA_ECHO_V1", "OSVA_CLOCK_NOW_V1"];
|
|
6
|
+
export type InternalToolImplementationId = (typeof INTERNAL_TOOL_IMPLEMENTATIONS)[number];
|
|
7
|
+
export declare const TOOL_TYPES: readonly ["INTERNAL", "MCP"];
|
|
8
|
+
export type ToolType = (typeof TOOL_TYPES)[number];
|
|
9
|
+
export declare const MCP_TOOL_IMPLEMENTATION: "MCP_V1";
|
|
10
|
+
export type McpToolImplementationId = typeof MCP_TOOL_IMPLEMENTATION;
|
|
11
|
+
export interface McpToolVersionConfig {
|
|
12
|
+
readonly connectorVersionId: ConnectorVersionId;
|
|
13
|
+
readonly remoteToolName: string;
|
|
14
|
+
readonly description?: string;
|
|
15
|
+
readonly inputSchema: JsonSchemaRecord;
|
|
16
|
+
}
|
|
17
|
+
export declare const TOOL_EFFECT_CLASSIFICATIONS: readonly ["READ_ONLY"];
|
|
18
|
+
export type ToolEffectClassification = (typeof TOOL_EFFECT_CLASSIFICATIONS)[number];
|
|
19
|
+
export declare const TOOL_ERROR_CODES: {
|
|
20
|
+
readonly TOOL_BINDING_NOT_FOUND: "TOOL_BINDING_NOT_FOUND";
|
|
21
|
+
readonly TOOL_VERSION_NOT_FOUND: "TOOL_VERSION_NOT_FOUND";
|
|
22
|
+
readonly TOOL_NOT_AUTHORIZED: "TOOL_NOT_AUTHORIZED";
|
|
23
|
+
readonly TOOL_IMPLEMENTATION_NOT_FOUND: "TOOL_IMPLEMENTATION_NOT_FOUND";
|
|
24
|
+
readonly INVALID_TOOL_INPUT: "INVALID_TOOL_INPUT";
|
|
25
|
+
readonly TOOL_EXECUTION_ERROR: "TOOL_EXECUTION_ERROR";
|
|
26
|
+
readonly INVALID_TOOL_OUTPUT: "INVALID_TOOL_OUTPUT";
|
|
27
|
+
readonly CONNECTOR_UNAVAILABLE: "CONNECTOR_UNAVAILABLE";
|
|
28
|
+
readonly CONNECTOR_AUTHENTICATION_FAILED: "CONNECTOR_AUTHENTICATION_FAILED";
|
|
29
|
+
readonly CONNECTOR_TIMEOUT: "CONNECTOR_TIMEOUT";
|
|
30
|
+
readonly CONNECTOR_CANCELLED: "CONNECTOR_CANCELLED";
|
|
31
|
+
readonly MCP_PROTOCOL_ERROR: "MCP_PROTOCOL_ERROR";
|
|
32
|
+
readonly MCP_TOOL_NOT_FOUND: "MCP_TOOL_NOT_FOUND";
|
|
33
|
+
readonly MCP_INVALID_ARGUMENTS: "MCP_INVALID_ARGUMENTS";
|
|
34
|
+
readonly MCP_TOOL_ERROR: "MCP_TOOL_ERROR";
|
|
35
|
+
readonly MCP_INVALID_RESPONSE: "MCP_INVALID_RESPONSE";
|
|
36
|
+
readonly MCP_UNSUPPORTED_INTERACTION: "MCP_UNSUPPORTED_INTERACTION";
|
|
37
|
+
};
|
|
38
|
+
export type ToolErrorCode = (typeof TOOL_ERROR_CODES)[keyof typeof TOOL_ERROR_CODES];
|
|
39
|
+
export declare function isToolBindingName(value: string): boolean;
|
|
40
|
+
export declare function isToolType(value: string): value is ToolType;
|
|
41
|
+
export declare function isInternalToolImplementationId(value: string): value is InternalToolImplementationId;
|
|
42
|
+
export declare function isToolErrorCode(value: string): value is ToolErrorCode;
|
|
43
|
+
export interface ToolAuthorizationContext {
|
|
44
|
+
readonly workspaceId: WorkspaceId;
|
|
45
|
+
readonly agentId: AgentId;
|
|
46
|
+
readonly runId: RunId;
|
|
47
|
+
readonly runAttemptId: RunAttemptId;
|
|
48
|
+
readonly bindingName: string;
|
|
49
|
+
readonly toolVersionId: ToolVersionId;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Stage 1 ToolGateway request. Authorization context is required for every
|
|
53
|
+
* invocation. The gateway does not derive permissions from prompt text.
|
|
54
|
+
*/
|
|
55
|
+
export interface ToolInvokeRequest {
|
|
56
|
+
readonly toolVersionId: ToolVersionId;
|
|
57
|
+
readonly input: unknown;
|
|
58
|
+
readonly idempotencyKey?: string;
|
|
59
|
+
readonly authorization: ToolAuthorizationContext;
|
|
60
|
+
}
|
|
61
|
+
export interface ToolPolicy {
|
|
62
|
+
authorizeToolInvocation(context: ToolAuthorizationContext): Promise<void> | void;
|
|
63
|
+
}
|
|
64
|
+
export interface ToolGateway {
|
|
65
|
+
invoke(request: ToolInvokeRequest): Promise<JsonValue>;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=tool-gateway.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-gateway.d.ts","sourceRoot":"","sources":["../src/tool-gateway.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,kBAAkB,EAClB,YAAY,EACZ,KAAK,EACL,aAAa,EACb,WAAW,EACZ,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,eAAO,MAAM,yBAAyB,QAAkC,CAAC;AAEzE,eAAO,MAAM,6BAA6B,gDAGhC,CAAC;AAEX,MAAM,MAAM,4BAA4B,GACtC,CAAC,OAAO,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjD,eAAO,MAAM,UAAU,8BAA+B,CAAC;AAEvD,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnD,eAAO,MAAM,uBAAuB,EAAG,QAAiB,CAAC;AAEzD,MAAM,MAAM,uBAAuB,GAAG,OAAO,uBAAuB,CAAC;AAErE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAChD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;CACxC;AAED,eAAO,MAAM,2BAA2B,wBAAyB,CAAC;AAElE,MAAM,MAAM,wBAAwB,GAClC,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/C,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;CAkBnB,CAAC;AAEX,MAAM,MAAM,aAAa,GACvB,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,OAAO,gBAAgB,CAAC,CAAC;AAE3D,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,QAAQ,CAE3D;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,MAAM,GACZ,KAAK,IAAI,4BAA4B,CAEvC;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,aAAa,CAErE;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;CACvC;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,wBAAwB,CAAC;CAClD;AAED,MAAM,WAAW,UAAU;IACzB,uBAAuB,CACrB,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;CACxD"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export const TOOL_BINDING_NAME_PATTERN = /^[A-Za-z][A-Za-z0-9_-]{0,63}$/;
|
|
2
|
+
export const INTERNAL_TOOL_IMPLEMENTATIONS = [
|
|
3
|
+
"OSVA_ECHO_V1",
|
|
4
|
+
"OSVA_CLOCK_NOW_V1",
|
|
5
|
+
];
|
|
6
|
+
export const TOOL_TYPES = ["INTERNAL", "MCP"];
|
|
7
|
+
export const MCP_TOOL_IMPLEMENTATION = "MCP_V1";
|
|
8
|
+
export const TOOL_EFFECT_CLASSIFICATIONS = ["READ_ONLY"];
|
|
9
|
+
export const TOOL_ERROR_CODES = {
|
|
10
|
+
TOOL_BINDING_NOT_FOUND: "TOOL_BINDING_NOT_FOUND",
|
|
11
|
+
TOOL_VERSION_NOT_FOUND: "TOOL_VERSION_NOT_FOUND",
|
|
12
|
+
TOOL_NOT_AUTHORIZED: "TOOL_NOT_AUTHORIZED",
|
|
13
|
+
TOOL_IMPLEMENTATION_NOT_FOUND: "TOOL_IMPLEMENTATION_NOT_FOUND",
|
|
14
|
+
INVALID_TOOL_INPUT: "INVALID_TOOL_INPUT",
|
|
15
|
+
TOOL_EXECUTION_ERROR: "TOOL_EXECUTION_ERROR",
|
|
16
|
+
INVALID_TOOL_OUTPUT: "INVALID_TOOL_OUTPUT",
|
|
17
|
+
CONNECTOR_UNAVAILABLE: "CONNECTOR_UNAVAILABLE",
|
|
18
|
+
CONNECTOR_AUTHENTICATION_FAILED: "CONNECTOR_AUTHENTICATION_FAILED",
|
|
19
|
+
CONNECTOR_TIMEOUT: "CONNECTOR_TIMEOUT",
|
|
20
|
+
CONNECTOR_CANCELLED: "CONNECTOR_CANCELLED",
|
|
21
|
+
MCP_PROTOCOL_ERROR: "MCP_PROTOCOL_ERROR",
|
|
22
|
+
MCP_TOOL_NOT_FOUND: "MCP_TOOL_NOT_FOUND",
|
|
23
|
+
MCP_INVALID_ARGUMENTS: "MCP_INVALID_ARGUMENTS",
|
|
24
|
+
MCP_TOOL_ERROR: "MCP_TOOL_ERROR",
|
|
25
|
+
MCP_INVALID_RESPONSE: "MCP_INVALID_RESPONSE",
|
|
26
|
+
MCP_UNSUPPORTED_INTERACTION: "MCP_UNSUPPORTED_INTERACTION",
|
|
27
|
+
};
|
|
28
|
+
export function isToolBindingName(value) {
|
|
29
|
+
return TOOL_BINDING_NAME_PATTERN.test(value);
|
|
30
|
+
}
|
|
31
|
+
export function isToolType(value) {
|
|
32
|
+
return TOOL_TYPES.includes(value);
|
|
33
|
+
}
|
|
34
|
+
export function isInternalToolImplementationId(value) {
|
|
35
|
+
return INTERNAL_TOOL_IMPLEMENTATIONS.includes(value);
|
|
36
|
+
}
|
|
37
|
+
export function isToolErrorCode(value) {
|
|
38
|
+
return Object.values(TOOL_ERROR_CODES).includes(value);
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=tool-gateway.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-gateway.js","sourceRoot":"","sources":["../src/tool-gateway.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,yBAAyB,GAAG,+BAA+B,CAAC;AAEzE,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,cAAc;IACd,mBAAmB;CACX,CAAC;AAKX,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,UAAU,EAAE,KAAK,CAAU,CAAC;AAIvD,MAAM,CAAC,MAAM,uBAAuB,GAAG,QAAiB,CAAC;AAWzD,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,WAAW,CAAU,CAAC;AAKlE,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,sBAAsB,EAAE,wBAAwB;IAChD,sBAAsB,EAAE,wBAAwB;IAChD,mBAAmB,EAAE,qBAAqB;IAC1C,6BAA6B,EAAE,+BAA+B;IAC9D,kBAAkB,EAAE,oBAAoB;IACxC,oBAAoB,EAAE,sBAAsB;IAC5C,mBAAmB,EAAE,qBAAqB;IAC1C,qBAAqB,EAAE,uBAAuB;IAC9C,+BAA+B,EAAE,iCAAiC;IAClE,iBAAiB,EAAE,mBAAmB;IACtC,mBAAmB,EAAE,qBAAqB;IAC1C,kBAAkB,EAAE,oBAAoB;IACxC,kBAAkB,EAAE,oBAAoB;IACxC,qBAAqB,EAAE,uBAAuB;IAC9C,cAAc,EAAE,gBAAgB;IAChC,oBAAoB,EAAE,sBAAsB;IAC5C,2BAA2B,EAAE,6BAA6B;CAClD,CAAC;AAKX,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,OAAO,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,OAAQ,UAAgC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,KAAa;IAEb,OAAQ,6BAAmD,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,OAAQ,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAuB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChF,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { ToolId, ToolVersionId, WorkspaceId } from "./ids.js";
|
|
2
|
+
import type { InternalToolImplementationId, McpToolVersionConfig, ToolType } from "./tool-gateway.js";
|
|
3
|
+
export interface CreateToolRequestV1 {
|
|
4
|
+
readonly workspaceId: WorkspaceId;
|
|
5
|
+
readonly key: string;
|
|
6
|
+
readonly name: string;
|
|
7
|
+
}
|
|
8
|
+
export interface UpdateToolRequestV1 {
|
|
9
|
+
readonly name: string;
|
|
10
|
+
}
|
|
11
|
+
export interface CreateToolVersionRequestV1 {
|
|
12
|
+
readonly type: ToolType;
|
|
13
|
+
readonly implementation: InternalToolImplementationId;
|
|
14
|
+
}
|
|
15
|
+
export interface ToolResourceV1 {
|
|
16
|
+
readonly id: ToolId;
|
|
17
|
+
readonly workspaceId: WorkspaceId;
|
|
18
|
+
readonly key: string;
|
|
19
|
+
readonly name: string;
|
|
20
|
+
readonly createdAt: string;
|
|
21
|
+
}
|
|
22
|
+
export interface ToolListResourceV1 {
|
|
23
|
+
readonly tools: readonly ToolResourceV1[];
|
|
24
|
+
}
|
|
25
|
+
export interface InternalToolVersionResourceV1 {
|
|
26
|
+
readonly id: ToolVersionId;
|
|
27
|
+
readonly toolId: ToolId;
|
|
28
|
+
readonly version: number;
|
|
29
|
+
readonly type: "INTERNAL";
|
|
30
|
+
readonly implementation: InternalToolImplementationId;
|
|
31
|
+
readonly createdAt: string;
|
|
32
|
+
}
|
|
33
|
+
export interface McpToolVersionResourceV1 {
|
|
34
|
+
readonly id: ToolVersionId;
|
|
35
|
+
readonly toolId: ToolId;
|
|
36
|
+
readonly version: number;
|
|
37
|
+
readonly type: "MCP";
|
|
38
|
+
readonly implementation: "MCP_V1";
|
|
39
|
+
readonly mcp: McpToolVersionConfig;
|
|
40
|
+
readonly createdAt: string;
|
|
41
|
+
}
|
|
42
|
+
export type ToolVersionResourceV1 = InternalToolVersionResourceV1 | McpToolVersionResourceV1;
|
|
43
|
+
export interface ToolVersionListResourceV1 {
|
|
44
|
+
readonly versions: readonly ToolVersionResourceV1[];
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=tool-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../src/tool-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,KAAK,EACV,4BAA4B,EAC5B,oBAAoB,EACpB,QAAQ,EACT,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,4BAA4B,CAAC;CACvD;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,CAAC;CAC3C;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,cAAc,EAAE,4BAA4B,CAAC;IACtD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;IAClC,QAAQ,CAAC,GAAG,EAAE,oBAAoB,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,MAAM,qBAAqB,GAC/B,6BAA6B,GAAG,wBAAwB,CAAC;AAE3D,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,QAAQ,EAAE,SAAS,qBAAqB,EAAE,CAAC;CACrD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../src/tool-registry.ts"],"names":[],"mappings":""}
|
package/dist/tool.d.ts
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { RunId, RunStepId, ToolId, ToolVersionId, WorkflowNodeRunId, WorkflowRunId } from "./ids.js";
|
|
2
|
+
import type { JsonSchemaRecord } from "./json-schema.js";
|
|
3
|
+
import type { SecretReference } from "./secret-reference.js";
|
|
4
|
+
export interface ToolDefinition {
|
|
5
|
+
readonly toolId: ToolId;
|
|
6
|
+
}
|
|
7
|
+
export interface ToolImplementationRef {
|
|
8
|
+
readonly type: string;
|
|
9
|
+
readonly key: string;
|
|
10
|
+
}
|
|
11
|
+
export interface ToolVersionDefinition {
|
|
12
|
+
readonly toolId: ToolId;
|
|
13
|
+
readonly toolVersionId: ToolVersionId;
|
|
14
|
+
readonly inputSchema: JsonSchemaRecord;
|
|
15
|
+
readonly outputSchema: JsonSchemaRecord;
|
|
16
|
+
readonly riskClassification: string;
|
|
17
|
+
readonly timeoutMs: number;
|
|
18
|
+
readonly idempotencyBehavior: string;
|
|
19
|
+
readonly implementationRef: ToolImplementationRef;
|
|
20
|
+
readonly credentialRequirements: readonly SecretReference[];
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Authorization to use a logical Tool.
|
|
24
|
+
* Version pinning is not part of the Stage 0 grant.
|
|
25
|
+
*/
|
|
26
|
+
export interface ToolGrant {
|
|
27
|
+
readonly toolId: ToolId;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* One Tool operation bound to an immutable ToolVersion.
|
|
31
|
+
* `operationId` identifies the logical operation. `runAttemptId` is not part of
|
|
32
|
+
* this contract and must not be used as operation or idempotency identity.
|
|
33
|
+
*/
|
|
34
|
+
export interface ToolInvocation {
|
|
35
|
+
readonly toolVersionId: ToolVersionId;
|
|
36
|
+
readonly input: unknown;
|
|
37
|
+
readonly operationId: string;
|
|
38
|
+
readonly idempotencyKey?: string;
|
|
39
|
+
readonly runId?: RunId;
|
|
40
|
+
readonly runStepId?: RunStepId;
|
|
41
|
+
readonly workflowRunId?: WorkflowRunId;
|
|
42
|
+
readonly workflowNodeRunId?: WorkflowNodeRunId;
|
|
43
|
+
}
|
|
44
|
+
export interface ToolError {
|
|
45
|
+
readonly code: string;
|
|
46
|
+
readonly message: string;
|
|
47
|
+
}
|
|
48
|
+
export interface ToolSuccess {
|
|
49
|
+
readonly status: "succeeded";
|
|
50
|
+
readonly output: unknown;
|
|
51
|
+
}
|
|
52
|
+
export interface ToolFailure {
|
|
53
|
+
readonly status: "failed";
|
|
54
|
+
readonly error: ToolError;
|
|
55
|
+
}
|
|
56
|
+
export type ToolResult = ToolSuccess | ToolFailure;
|
|
57
|
+
export interface ToolExecutor {
|
|
58
|
+
execute(invocation: ToolInvocation): Promise<ToolResult>;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,SAAS,EACT,MAAM,EACN,aAAa,EACb,iBAAiB,EACjB,aAAa,EACd,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAAC;IACxC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,iBAAiB,EAAE,qBAAqB,CAAC;IAClD,QAAQ,CAAC,sBAAsB,EAAE,SAAS,eAAe,EAAE,CAAC;CAC7D;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACvC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CAChD;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;CAC3B;AAED,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC;AAEnD,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CAC1D"}
|
package/dist/tool.js
ADDED
package/dist/tool.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const SHA256_INTEGRITY_PREFIX: "sha256:";
|
|
2
|
+
/**
|
|
3
|
+
* Relative POSIX path to a trusted TypeScript entrypoint beneath the operator
|
|
4
|
+
* runtime root. Absolute paths, Windows prefixes, NUL bytes, backslashes, empty
|
|
5
|
+
* segments, and `..` traversal are rejected at the contract boundary.
|
|
6
|
+
*/
|
|
7
|
+
export declare function isRelativeTrustedEntrypoint(entrypoint: string): boolean;
|
|
8
|
+
export declare function isSha256IntegrityDigest(value: string): boolean;
|
|
9
|
+
export declare function sha256IntegrityHex(value: string): string | undefined;
|
|
10
|
+
//# sourceMappingURL=trusted-runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trusted-runtime.d.ts","sourceRoot":"","sources":["../src/trusted-runtime.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,EAAG,SAAkB,CAAC;AAK1D;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAgCvE;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAM9D;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAMpE"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export const SHA256_INTEGRITY_PREFIX = "sha256:";
|
|
2
|
+
const SHA256_HEX_PATTERN = /^[0-9a-fA-F]{64}$/;
|
|
3
|
+
const WINDOWS_DRIVE_PATTERN = /^[A-Za-z]:/;
|
|
4
|
+
/**
|
|
5
|
+
* Relative POSIX path to a trusted TypeScript entrypoint beneath the operator
|
|
6
|
+
* runtime root. Absolute paths, Windows prefixes, NUL bytes, backslashes, empty
|
|
7
|
+
* segments, and `..` traversal are rejected at the contract boundary.
|
|
8
|
+
*/
|
|
9
|
+
export function isRelativeTrustedEntrypoint(entrypoint) {
|
|
10
|
+
if (typeof entrypoint !== "string" || entrypoint.length === 0) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
if (entrypoint.includes("\0") ||
|
|
14
|
+
entrypoint.includes("\\") ||
|
|
15
|
+
entrypoint.startsWith("/") ||
|
|
16
|
+
entrypoint.startsWith("//") ||
|
|
17
|
+
WINDOWS_DRIVE_PATTERN.test(entrypoint)) {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
const segments = entrypoint.split("/");
|
|
21
|
+
if (segments.length === 0) {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
let hasFileSegment = false;
|
|
25
|
+
for (const segment of segments) {
|
|
26
|
+
if (segment.length === 0 || segment === "..") {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
if (segment !== ".") {
|
|
30
|
+
hasFileSegment = true;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return hasFileSegment;
|
|
34
|
+
}
|
|
35
|
+
export function isSha256IntegrityDigest(value) {
|
|
36
|
+
if (typeof value !== "string" || !value.startsWith(SHA256_INTEGRITY_PREFIX)) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
return SHA256_HEX_PATTERN.test(value.slice(SHA256_INTEGRITY_PREFIX.length));
|
|
40
|
+
}
|
|
41
|
+
export function sha256IntegrityHex(value) {
|
|
42
|
+
if (!isSha256IntegrityDigest(value)) {
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
return value.slice(SHA256_INTEGRITY_PREFIX.length).toLowerCase();
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=trusted-runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trusted-runtime.js","sourceRoot":"","sources":["../src/trusted-runtime.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,uBAAuB,GAAG,SAAkB,CAAC;AAE1D,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AAC/C,MAAM,qBAAqB,GAAG,YAAY,CAAC;AAE3C;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CAAC,UAAkB;IAC5D,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IACE,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;QACzB,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;QACzB,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC;QAC1B,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC;QAC3B,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,EACtC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YAC7C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;YACpB,cAAc,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACnD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,uBAAuB,CAAC,EAAE,CAAC;QAC5E,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC;QACpC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,KAAK,CAAC,KAAK,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;AACnE,CAAC"}
|