@vm0/cli 9.238.1 → 9.238.3
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/{agent-6OA2V3OO.js → agent-CTMIX4TA.js} +5 -5
- package/agent-CTMIX4TA.js.map +1 -0
- package/{banking-WWVG2CP7.js → banking-7EIKU7WX.js} +3 -3
- package/{chat-D475VWGE.js → chat-5MN7N3LD.js} +4 -4
- package/{chunk-VBI53K3Q.js → chunk-22VWTDX6.js} +4 -4
- package/chunk-22VWTDX6.js.map +1 -0
- package/{chunk-I76SZJXM.js → chunk-3LJFZEZ5.js} +234 -271
- package/chunk-3LJFZEZ5.js.map +1 -0
- package/{chunk-FKRO4PMB.js → chunk-3SWR53IF.js} +7 -5
- package/chunk-3SWR53IF.js.map +1 -0
- package/{chunk-L6RCBAZE.js → chunk-3SZJPIMX.js} +2 -2
- package/{chunk-ROLHZ5OO.js → chunk-4ODVSQ6H.js} +2 -2
- package/{chunk-4ZHQYU4E.js → chunk-65ZW3GHG.js} +4 -4
- package/{chunk-SZJIY7B5.js → chunk-ADBNTM34.js} +2 -2
- package/{chunk-OJDPK7NK.js → chunk-GU4IPLKQ.js} +2 -2
- package/{chunk-OJDPK7NK.js.map → chunk-GU4IPLKQ.js.map} +1 -1
- package/{chunk-JSHFBBDU.js → chunk-NAFRQSTL.js} +3 -3
- package/{chunk-YCG6O3ZK.js → chunk-NBAZLPV3.js} +2 -2
- package/chunk-WPUM3KGN.js +133 -0
- package/chunk-WPUM3KGN.js.map +1 -0
- package/{chunk-37U2ZGBH.js → chunk-XX3HVOWG.js} +33 -41
- package/chunk-XX3HVOWG.js.map +1 -0
- package/{computer-use-ALMIBYF4.js → computer-use-JW6NHZFY.js} +3 -3
- package/{connector-R524H5MQ.js → connector-II52GGER.js} +4 -4
- package/{credit-24OGXS2M.js → credit-SDMLLER2.js} +4 -4
- package/{developer-support-JHHS2QGT.js → developer-support-7OGYYIJ2.js} +3 -3
- package/{doctor-WZ3VB4FR.js → doctor-UJIIOA33.js} +1118 -11
- package/doctor-UJIIOA33.js.map +1 -0
- package/{generate-DYP65QJ5.js → generate-DPGQKZTH.js} +5 -5
- package/{github-UEL4IJ3N.js → github-DA62AJIQ.js} +3 -3
- package/{goal-QAV2T6MM.js → goal-WWM7OYBQ.js} +3 -3
- package/{host-SXD5YBTX.js → host-YMKJGV6R.js} +3 -3
- package/index.js +17 -17
- package/index.js.map +1 -1
- package/{logs-NPH6LNKC.js → logs-FKXVE6QD.js} +8 -8
- package/{maps-S6CRPCRM.js → maps-MWMFHA72.js} +3 -3
- package/{memory-N7QS7HLX.js → memory-KAGWT3GE.js} +3 -3
- package/{model-45AKVBWH.js → model-67UDE3IM.js} +4 -4
- package/{model-provider-EQWIHKDL.js → model-provider-YGNGMT6S.js} +4 -4
- package/{org-4B4XMULZ.js → org-L52CQ6HJ.js} +3 -3
- package/package.json +1 -1
- package/{phone-FT2BBNYB.js → phone-VYQKHTRX.js} +3 -3
- package/{preference-TGWW3TGU.js → preference-7ULJO7RD.js} +3 -3
- package/{relationship-K4X2EMG6.js → relationship-TNCKBWUW.js} +3 -3
- package/{resource-Z3Y4LKFV.js → resource-V4AXTBFL.js} +4 -4
- package/{search-2WYLKHGZ.js → search-ABCFRK5K.js} +8 -8
- package/{secret-ZBRGELVV.js → secret-6C53IEKW.js} +4 -4
- package/{slack-YHQCPNIL.js → slack-H4OQPL4A.js} +3 -3
- package/{teams-XQVJ6FCA.js → teams-RLQBP3SK.js} +3 -3
- package/{telegram-IBWT2FZR.js → telegram-TKQOVOWL.js} +3 -3
- package/{variable-3VLG2R3E.js → variable-5PRGXPQX.js} +3 -3
- package/{video-GXRYJ6A5.js → video-CVM7TXWW.js} +2 -2
- package/{web-6DYQEUTW.js → web-E3KRU54R.js} +3 -3
- package/{whoami-O22ANAJS.js → whoami-7JOZNZEZ.js} +5 -5
- package/whoami-7JOZNZEZ.js.map +1 -0
- package/{workflow-INK3CNLQ.js → workflow-RAR37LR4.js} +3 -3
- package/zero.js +34 -34
- package/agent-6OA2V3OO.js.map +0 -1
- package/chunk-37U2ZGBH.js.map +0 -1
- package/chunk-FKRO4PMB.js.map +0 -1
- package/chunk-GU2OYDJY.js +0 -1258
- package/chunk-GU2OYDJY.js.map +0 -1
- package/chunk-I76SZJXM.js.map +0 -1
- package/chunk-VBI53K3Q.js.map +0 -1
- package/doctor-WZ3VB4FR.js.map +0 -1
- package/whoami-O22ANAJS.js.map +0 -1
- /package/{banking-WWVG2CP7.js.map → banking-7EIKU7WX.js.map} +0 -0
- /package/{chat-D475VWGE.js.map → chat-5MN7N3LD.js.map} +0 -0
- /package/{chunk-L6RCBAZE.js.map → chunk-3SZJPIMX.js.map} +0 -0
- /package/{chunk-ROLHZ5OO.js.map → chunk-4ODVSQ6H.js.map} +0 -0
- /package/{chunk-4ZHQYU4E.js.map → chunk-65ZW3GHG.js.map} +0 -0
- /package/{chunk-SZJIY7B5.js.map → chunk-ADBNTM34.js.map} +0 -0
- /package/{chunk-JSHFBBDU.js.map → chunk-NAFRQSTL.js.map} +0 -0
- /package/{chunk-YCG6O3ZK.js.map → chunk-NBAZLPV3.js.map} +0 -0
- /package/{computer-use-ALMIBYF4.js.map → computer-use-JW6NHZFY.js.map} +0 -0
- /package/{connector-R524H5MQ.js.map → connector-II52GGER.js.map} +0 -0
- /package/{credit-24OGXS2M.js.map → credit-SDMLLER2.js.map} +0 -0
- /package/{developer-support-JHHS2QGT.js.map → developer-support-7OGYYIJ2.js.map} +0 -0
- /package/{generate-DYP65QJ5.js.map → generate-DPGQKZTH.js.map} +0 -0
- /package/{github-UEL4IJ3N.js.map → github-DA62AJIQ.js.map} +0 -0
- /package/{goal-QAV2T6MM.js.map → goal-WWM7OYBQ.js.map} +0 -0
- /package/{host-SXD5YBTX.js.map → host-YMKJGV6R.js.map} +0 -0
- /package/{logs-NPH6LNKC.js.map → logs-FKXVE6QD.js.map} +0 -0
- /package/{maps-S6CRPCRM.js.map → maps-MWMFHA72.js.map} +0 -0
- /package/{memory-N7QS7HLX.js.map → memory-KAGWT3GE.js.map} +0 -0
- /package/{model-45AKVBWH.js.map → model-67UDE3IM.js.map} +0 -0
- /package/{model-provider-EQWIHKDL.js.map → model-provider-YGNGMT6S.js.map} +0 -0
- /package/{org-4B4XMULZ.js.map → org-L52CQ6HJ.js.map} +0 -0
- /package/{phone-FT2BBNYB.js.map → phone-VYQKHTRX.js.map} +0 -0
- /package/{preference-TGWW3TGU.js.map → preference-7ULJO7RD.js.map} +0 -0
- /package/{relationship-K4X2EMG6.js.map → relationship-TNCKBWUW.js.map} +0 -0
- /package/{resource-Z3Y4LKFV.js.map → resource-V4AXTBFL.js.map} +0 -0
- /package/{search-2WYLKHGZ.js.map → search-ABCFRK5K.js.map} +0 -0
- /package/{secret-ZBRGELVV.js.map → secret-6C53IEKW.js.map} +0 -0
- /package/{slack-YHQCPNIL.js.map → slack-H4OQPL4A.js.map} +0 -0
- /package/{teams-XQVJ6FCA.js.map → teams-RLQBP3SK.js.map} +0 -0
- /package/{telegram-IBWT2FZR.js.map → telegram-TKQOVOWL.js.map} +0 -0
- /package/{variable-3VLG2R3E.js.map → variable-5PRGXPQX.js.map} +0 -0
- /package/{video-GXRYJ6A5.js.map → video-CVM7TXWW.js.map} +0 -0
- /package/{web-6DYQEUTW.js.map → web-E3KRU54R.js.map} +0 -0
- /package/{workflow-INK3CNLQ.js.map → workflow-RAR37LR4.js.map} +0 -0
|
@@ -50,7 +50,7 @@ if (DSN) {
|
|
|
50
50
|
Sentry.init({
|
|
51
51
|
dsn: DSN,
|
|
52
52
|
environment: process.env.SENTRY_ENVIRONMENT ?? "production",
|
|
53
|
-
release: "9.238.
|
|
53
|
+
release: "9.238.3",
|
|
54
54
|
sendDefaultPii: false,
|
|
55
55
|
tracesSampleRate: 0,
|
|
56
56
|
shutdownTimeout: 500,
|
|
@@ -69,7 +69,7 @@ if (DSN) {
|
|
|
69
69
|
}
|
|
70
70
|
});
|
|
71
71
|
Sentry.setContext("cli", {
|
|
72
|
-
version: "9.238.
|
|
72
|
+
version: "9.238.3",
|
|
73
73
|
command: process.argv.slice(2).join(" ")
|
|
74
74
|
});
|
|
75
75
|
Sentry.setContext("runtime", {
|
|
@@ -146,4 +146,4 @@ async function configureGlobalProxyFromEnv() {
|
|
|
146
146
|
export {
|
|
147
147
|
configureGlobalProxyFromEnv
|
|
148
148
|
};
|
|
149
|
-
//# sourceMappingURL=chunk-
|
|
149
|
+
//# sourceMappingURL=chunk-NAFRQSTL.js.map
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
splitPathSegments,
|
|
11
11
|
validateAuthBaseUrl,
|
|
12
12
|
validateBaseUrl
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-XX3HVOWG.js";
|
|
14
14
|
import {
|
|
15
15
|
init_esm_shims
|
|
16
16
|
} from "./chunk-DIRAZ3YX.js";
|
|
@@ -1298,4 +1298,4 @@ export {
|
|
|
1298
1298
|
matchFirewallBaseUrl,
|
|
1299
1299
|
matchFirewallRequestDecision
|
|
1300
1300
|
};
|
|
1301
|
-
//# sourceMappingURL=chunk-
|
|
1301
|
+
//# sourceMappingURL=chunk-NBAZLPV3.js.map
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { createRequire as __createRequire } from "node:module";
|
|
3
|
+
const require = __createRequire(import.meta.url);
|
|
4
|
+
import {
|
|
5
|
+
UNKNOWN_PERMISSION_GRANT
|
|
6
|
+
} from "./chunk-XX3HVOWG.js";
|
|
7
|
+
import {
|
|
8
|
+
init_esm_shims
|
|
9
|
+
} from "./chunk-DIRAZ3YX.js";
|
|
10
|
+
|
|
11
|
+
// ../../packages/connectors/src/firewall-metadata/policy.ts
|
|
12
|
+
init_esm_shims();
|
|
13
|
+
|
|
14
|
+
// ../../packages/connectors/src/firewall-metadata/policy-resolver.ts
|
|
15
|
+
init_esm_shims();
|
|
16
|
+
function buildMetadataOverrideLookup(metadata) {
|
|
17
|
+
const overrides = metadata.defaultPolicy.permissionOverrides;
|
|
18
|
+
const lookup = /* @__PURE__ */ new Map();
|
|
19
|
+
if (!overrides) {
|
|
20
|
+
return lookup;
|
|
21
|
+
}
|
|
22
|
+
for (const permission of overrides.allow ?? []) {
|
|
23
|
+
lookup.set(permission, "allow");
|
|
24
|
+
}
|
|
25
|
+
for (const permission of overrides.deny ?? []) {
|
|
26
|
+
lookup.set(permission, "deny");
|
|
27
|
+
}
|
|
28
|
+
for (const permission of overrides.ask ?? []) {
|
|
29
|
+
lookup.set(permission, "ask");
|
|
30
|
+
}
|
|
31
|
+
return lookup;
|
|
32
|
+
}
|
|
33
|
+
function getOwnPermissionOverride(overrides, name) {
|
|
34
|
+
if (!overrides || !Object.prototype.hasOwnProperty.call(overrides, name)) {
|
|
35
|
+
return void 0;
|
|
36
|
+
}
|
|
37
|
+
return overrides[name];
|
|
38
|
+
}
|
|
39
|
+
function createFirewallMetadataPolicyResolver(metadata, overlay) {
|
|
40
|
+
const metadataOverrides = buildMetadataOverrideLookup(metadata);
|
|
41
|
+
function metadataPermission(name) {
|
|
42
|
+
return metadataOverrides.get(name) ?? metadata.defaultPolicy.permissionDefault;
|
|
43
|
+
}
|
|
44
|
+
function permission(name) {
|
|
45
|
+
return getOwnPermissionOverride(overlay?.permissionOverrides, name) ?? overlay?.permissionDefault ?? metadataPermission(name);
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
permission,
|
|
49
|
+
unknown: () => {
|
|
50
|
+
return overlay?.unknownPolicy ?? metadata.defaultPolicy.unknownPolicy;
|
|
51
|
+
},
|
|
52
|
+
list: (permissionNames) => {
|
|
53
|
+
let first = null;
|
|
54
|
+
for (const name of permissionNames) {
|
|
55
|
+
const current = permission(name);
|
|
56
|
+
if (first === null) {
|
|
57
|
+
first = current;
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
if (first !== current) {
|
|
61
|
+
return "mixed";
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return first ?? "mixed";
|
|
65
|
+
},
|
|
66
|
+
isPermissionOverridden: (name) => {
|
|
67
|
+
return permission(name) !== metadataPermission(name);
|
|
68
|
+
},
|
|
69
|
+
isUnknownOverridden: () => {
|
|
70
|
+
return (overlay?.unknownPolicy ?? metadata.defaultPolicy.unknownPolicy) !== metadata.defaultPolicy.unknownPolicy;
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// ../../packages/connectors/src/firewall-metadata/policy.ts
|
|
76
|
+
function metadataConnectorRef(metadata) {
|
|
77
|
+
return metadata.connectorRef ?? metadata.type;
|
|
78
|
+
}
|
|
79
|
+
function expandFirewallMetadataDefaultPolicy(metadata) {
|
|
80
|
+
const resolver = createFirewallMetadataPolicyResolver(metadata);
|
|
81
|
+
const policies = {};
|
|
82
|
+
for (const permission of metadata.permissions) {
|
|
83
|
+
policies[permission.name] = resolver.permission(permission.name);
|
|
84
|
+
}
|
|
85
|
+
return {
|
|
86
|
+
policies,
|
|
87
|
+
unknownPolicy: resolver.unknown()
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
function findFirewallMetadataPermission(metadata, name) {
|
|
91
|
+
return metadata.permissions.find((permission) => {
|
|
92
|
+
return permission.name === name;
|
|
93
|
+
}) ?? null;
|
|
94
|
+
}
|
|
95
|
+
function resolveFirewallMetadataPolicies(stored, metadata) {
|
|
96
|
+
let resolved = stored;
|
|
97
|
+
for (const detail of metadata) {
|
|
98
|
+
const connectorRef = metadataConnectorRef(detail);
|
|
99
|
+
const defaults = expandFirewallMetadataDefaultPolicy(detail);
|
|
100
|
+
const existing = resolved?.[connectorRef];
|
|
101
|
+
resolved = {
|
|
102
|
+
...resolved,
|
|
103
|
+
[connectorRef]: {
|
|
104
|
+
policies: { ...defaults.policies, ...existing?.policies },
|
|
105
|
+
...existing?.unknownPolicy !== void 0 ? { unknownPolicy: existing.unknownPolicy } : { unknownPolicy: defaults.unknownPolicy }
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
return resolved;
|
|
110
|
+
}
|
|
111
|
+
function permissionGrantsToFirewallPolicies(grants) {
|
|
112
|
+
const policies = {};
|
|
113
|
+
for (const grant of grants) {
|
|
114
|
+
const current = policies[grant.connectorRef] ?? { policies: {} };
|
|
115
|
+
if (grant.permission === UNKNOWN_PERMISSION_GRANT) {
|
|
116
|
+
policies[grant.connectorRef] = {
|
|
117
|
+
...current,
|
|
118
|
+
unknownPolicy: grant.action
|
|
119
|
+
};
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
122
|
+
current.policies[grant.permission] = grant.action;
|
|
123
|
+
policies[grant.connectorRef] = current;
|
|
124
|
+
}
|
|
125
|
+
return Object.keys(policies).length > 0 ? policies : null;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
export {
|
|
129
|
+
findFirewallMetadataPermission,
|
|
130
|
+
resolveFirewallMetadataPolicies,
|
|
131
|
+
permissionGrantsToFirewallPolicies
|
|
132
|
+
};
|
|
133
|
+
//# sourceMappingURL=chunk-WPUM3KGN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../packages/connectors/src/firewall-metadata/policy.ts","../../../packages/connectors/src/firewall-metadata/policy-resolver.ts"],"sourcesContent":["import {\n UNKNOWN_PERMISSION_GRANT,\n type FirewallPolicies,\n type FirewallPolicy,\n type FirewallPolicyValue,\n} from \"../firewall-types\";\nimport { createFirewallMetadataPolicyResolver } from \"./policy-resolver\";\n\nexport type {\n FirewallMetadataPolicyListState,\n FirewallMetadataPolicyOverlay,\n FirewallMetadataPolicyResolver,\n} from \"./policy-resolver\";\n\nexport interface FirewallPermissionPolicyMetadataPermission {\n readonly name: string;\n readonly description?: string;\n}\n\nexport interface FirewallPermissionPolicyCategoryMetadata {\n readonly categories: Readonly<Record<string, string>>;\n readonly displayOrder: readonly string[];\n}\n\nexport type FirewallPermissionPolicyDefaultOverrides = Readonly<\n Partial<Record<FirewallPolicyValue, readonly string[]>>\n>;\n\nexport interface FirewallPermissionPolicyDefaultMetadata {\n readonly permissionDefault: FirewallPolicyValue;\n readonly permissionOverrides?: FirewallPermissionPolicyDefaultOverrides;\n readonly unknownPolicy: FirewallPolicyValue;\n}\n\ninterface FirewallPermissionPolicyMetadataBase {\n readonly label: string;\n readonly permissionCount: number;\n readonly permissions: readonly FirewallPermissionPolicyMetadataPermission[];\n readonly categories?: FirewallPermissionPolicyCategoryMetadata | null;\n readonly defaultPolicy: FirewallPermissionPolicyDefaultMetadata;\n}\n\nexport type FirewallPermissionPolicyMetadata =\n FirewallPermissionPolicyMetadataBase &\n (\n | { readonly connectorRef: string; readonly type?: string }\n | { readonly connectorRef?: undefined; readonly type: string }\n );\n\nexport interface FirewallMetadataPermissionGroup<T extends { name: string }> {\n readonly category: string;\n readonly permissions: T[];\n}\n\nexport type FirewallPermissionGrantAction = Extract<\n FirewallPolicyValue,\n \"allow\" | \"deny\"\n>;\n\nexport interface FirewallPermissionGrant {\n readonly connectorRef: string;\n readonly permission: string;\n readonly action: FirewallPermissionGrantAction;\n}\n\nfunction metadataConnectorRef(\n metadata: FirewallPermissionPolicyMetadata,\n): string {\n return metadata.connectorRef ?? metadata.type;\n}\n\nexport { createFirewallMetadataPolicyResolver };\n\nexport function expandFirewallMetadataDefaultPolicy(\n metadata: FirewallPermissionPolicyMetadata,\n): FirewallPolicy {\n const resolver = createFirewallMetadataPolicyResolver(metadata);\n const policies: Record<string, FirewallPolicyValue> = {};\n\n for (const permission of metadata.permissions) {\n policies[permission.name] = resolver.permission(permission.name);\n }\n\n return {\n policies,\n unknownPolicy: resolver.unknown(),\n };\n}\n\nexport function findFirewallMetadataPermission(\n metadata: FirewallPermissionPolicyMetadata,\n name: string,\n): FirewallPermissionPolicyMetadata[\"permissions\"][number] | null {\n return (\n metadata.permissions.find((permission) => {\n return permission.name === name;\n }) ?? null\n );\n}\n\nexport function groupFirewallMetadataPermissionsByCategory<\n T extends { name: string },\n>(\n permissions: readonly T[],\n metadata: FirewallPermissionPolicyMetadata,\n): FirewallMetadataPermissionGroup<T>[] | null {\n if (!metadata.categories) {\n return null;\n }\n\n const grouped = new Map<string, T[]>();\n for (const category of metadata.categories.displayOrder) {\n grouped.set(category, []);\n }\n\n for (const permission of permissions) {\n const category = metadata.categories.categories[permission.name];\n if (!category) {\n continue;\n }\n grouped.get(category)?.push(permission);\n }\n\n return [...grouped.entries()]\n .filter(([, groupPermissions]) => {\n return groupPermissions.length > 0;\n })\n .map(([category, groupPermissions]) => {\n return { category, permissions: groupPermissions };\n });\n}\n\nexport function resolveFirewallMetadataPolicies(\n stored: FirewallPolicies | null,\n metadata: readonly FirewallPermissionPolicyMetadata[],\n): FirewallPolicies | null {\n let resolved: FirewallPolicies | null = stored;\n for (const detail of metadata) {\n const connectorRef = metadataConnectorRef(detail);\n const defaults = expandFirewallMetadataDefaultPolicy(detail);\n const existing = resolved?.[connectorRef];\n resolved = {\n ...resolved,\n [connectorRef]: {\n policies: { ...defaults.policies, ...existing?.policies },\n ...(existing?.unknownPolicy !== undefined\n ? { unknownPolicy: existing.unknownPolicy }\n : { unknownPolicy: defaults.unknownPolicy }),\n },\n };\n }\n return resolved;\n}\n\nexport function permissionGrantsToFirewallPolicies(\n grants: readonly FirewallPermissionGrant[],\n): FirewallPolicies | null {\n const policies: FirewallPolicies = {};\n for (const grant of grants) {\n const current = policies[grant.connectorRef] ?? { policies: {} };\n if (grant.permission === UNKNOWN_PERMISSION_GRANT) {\n policies[grant.connectorRef] = {\n ...current,\n unknownPolicy: grant.action,\n };\n continue;\n }\n current.policies[grant.permission] = grant.action;\n policies[grant.connectorRef] = current;\n }\n return Object.keys(policies).length > 0 ? policies : null;\n}\n","import type { FirewallPolicyValue } from \"../firewall-types\";\n\ninterface FirewallMetadataPolicyResolverMetadata {\n readonly defaultPolicy: {\n readonly permissionDefault: FirewallPolicyValue;\n readonly permissionOverrides?: Readonly<\n Partial<Record<FirewallPolicyValue, readonly string[]>>\n >;\n readonly unknownPolicy: FirewallPolicyValue;\n };\n}\n\nexport interface FirewallMetadataPolicyOverlay {\n readonly permissionDefault?: FirewallPolicyValue;\n readonly permissionOverrides?: Readonly<Record<string, FirewallPolicyValue>>;\n readonly unknownPolicy?: FirewallPolicyValue;\n}\n\nexport type FirewallMetadataPolicyListState = FirewallPolicyValue | \"mixed\";\n\n/**\n * Resolves generated metadata defaults with an optional sparse policy overlay.\n * Permission name validation belongs to callers; unknown endpoints use unknown().\n */\nexport interface FirewallMetadataPolicyResolver {\n permission(name: string): FirewallPolicyValue;\n unknown(): FirewallPolicyValue;\n list(permissionNames: readonly string[]): FirewallMetadataPolicyListState;\n isPermissionOverridden(name: string): boolean;\n isUnknownOverridden(): boolean;\n}\n\nfunction buildMetadataOverrideLookup(\n metadata: FirewallMetadataPolicyResolverMetadata,\n): ReadonlyMap<string, FirewallPolicyValue> {\n const overrides = metadata.defaultPolicy.permissionOverrides;\n const lookup = new Map<string, FirewallPolicyValue>();\n if (!overrides) {\n return lookup;\n }\n\n for (const permission of overrides.allow ?? []) {\n lookup.set(permission, \"allow\");\n }\n for (const permission of overrides.deny ?? []) {\n lookup.set(permission, \"deny\");\n }\n for (const permission of overrides.ask ?? []) {\n lookup.set(permission, \"ask\");\n }\n\n return lookup;\n}\n\nfunction getOwnPermissionOverride(\n overrides: Readonly<Record<string, FirewallPolicyValue>> | undefined,\n name: string,\n): FirewallPolicyValue | undefined {\n if (!overrides || !Object.prototype.hasOwnProperty.call(overrides, name)) {\n return undefined;\n }\n return overrides[name];\n}\n\nexport function createFirewallMetadataPolicyResolver(\n metadata: FirewallMetadataPolicyResolverMetadata,\n overlay?: FirewallMetadataPolicyOverlay,\n): FirewallMetadataPolicyResolver {\n const metadataOverrides = buildMetadataOverrideLookup(metadata);\n\n function metadataPermission(name: string): FirewallPolicyValue {\n return (\n metadataOverrides.get(name) ?? metadata.defaultPolicy.permissionDefault\n );\n }\n\n function permission(name: string): FirewallPolicyValue {\n return (\n getOwnPermissionOverride(overlay?.permissionOverrides, name) ??\n overlay?.permissionDefault ??\n metadataPermission(name)\n );\n }\n\n return {\n permission,\n unknown: () => {\n return overlay?.unknownPolicy ?? metadata.defaultPolicy.unknownPolicy;\n },\n list: (permissionNames) => {\n let first: FirewallPolicyValue | null = null;\n for (const name of permissionNames) {\n const current = permission(name);\n if (first === null) {\n first = current;\n continue;\n }\n if (first !== current) {\n return \"mixed\";\n }\n }\n return first ?? \"mixed\";\n },\n isPermissionOverridden: (name) => {\n return permission(name) !== metadataPermission(name);\n },\n isUnknownOverridden: () => {\n return (\n (overlay?.unknownPolicy ?? metadata.defaultPolicy.unknownPolicy) !==\n metadata.defaultPolicy.unknownPolicy\n );\n },\n };\n}\n"],"mappings":"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","names":[]}
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
headersWithCliClientHeaders,
|
|
15
15
|
initClient,
|
|
16
16
|
initContract
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-22VWTDX6.js";
|
|
18
18
|
import {
|
|
19
19
|
init_esm_shims
|
|
20
20
|
} from "./chunk-DIRAZ3YX.js";
|
|
@@ -2524,6 +2524,7 @@ var zeroHostContract = c11.router({
|
|
|
2524
2524
|
401: apiErrorSchema,
|
|
2525
2525
|
402: apiErrorSchema,
|
|
2526
2526
|
403: apiErrorSchema,
|
|
2527
|
+
503: apiErrorSchema,
|
|
2527
2528
|
500: apiErrorSchema
|
|
2528
2529
|
},
|
|
2529
2530
|
summary: "Create an edited HTML draft from DOM comments"
|
|
@@ -5549,38 +5550,6 @@ var chatThreadUnreadAgentsSchema = external_exports.object({
|
|
|
5549
5550
|
});
|
|
5550
5551
|
var chatThreadEventIdSchema = external_exports.string().uuid();
|
|
5551
5552
|
var codexServiceTierSchema = external_exports.enum(["fast"]);
|
|
5552
|
-
var chatThreadListItemSchema = external_exports.object({
|
|
5553
|
-
id: external_exports.string(),
|
|
5554
|
-
title: external_exports.string().nullable(),
|
|
5555
|
-
/**
|
|
5556
|
-
* Owning agent snapshot emitted by the server for every list row.
|
|
5557
|
-
*/
|
|
5558
|
-
agent: external_exports.object({
|
|
5559
|
-
id: external_exports.string(),
|
|
5560
|
-
avatarUrl: external_exports.string().nullable()
|
|
5561
|
-
}),
|
|
5562
|
-
createdAt: external_exports.string(),
|
|
5563
|
-
updatedAt: external_exports.string(),
|
|
5564
|
-
/**
|
|
5565
|
-
* True when the thread has at least one non-terminal run
|
|
5566
|
-
* (queued / pending / running). Drives the sidebar running indicator,
|
|
5567
|
-
* which is mutually exclusive with the unread dot.
|
|
5568
|
-
*/
|
|
5569
|
-
running: external_exports.boolean(),
|
|
5570
|
-
/**
|
|
5571
|
-
* ISO timestamp at which the user pinned this thread. Null/undefined means
|
|
5572
|
-
* unpinned. Pinned threads sort above unpinned in the sidebar; both groups
|
|
5573
|
-
* keep recency order. Optional for back-compat with fixtures that predate
|
|
5574
|
-
* the field.
|
|
5575
|
-
*/
|
|
5576
|
-
pinnedAt: external_exports.string().nullable().optional(),
|
|
5577
|
-
/**
|
|
5578
|
-
* ISO timestamp at which the user manually renamed this thread. Null/undefined
|
|
5579
|
-
* means never renamed. When set, automated title generation is suppressed.
|
|
5580
|
-
* Optional for back-compat with fixtures that predate the field.
|
|
5581
|
-
*/
|
|
5582
|
-
renamedAt: external_exports.string().nullable().optional()
|
|
5583
|
-
});
|
|
5584
5553
|
var chatThreadSnapshotProjectionSchema = external_exports.object({
|
|
5585
5554
|
id: external_exports.string().uuid(),
|
|
5586
5555
|
agentId: external_exports.string().uuid(),
|
|
@@ -6437,7 +6406,7 @@ var artifactsContract = c15.router({
|
|
|
6437
6406
|
401: apiErrorSchema,
|
|
6438
6407
|
403: apiErrorSchema
|
|
6439
6408
|
},
|
|
6440
|
-
summary: "List
|
|
6409
|
+
summary: "List artifacts for the caller's current organization (keyset-paginated)"
|
|
6441
6410
|
},
|
|
6442
6411
|
favorite: {
|
|
6443
6412
|
method: "POST",
|
|
@@ -6451,7 +6420,7 @@ var artifactsContract = c15.router({
|
|
|
6451
6420
|
403: apiErrorSchema,
|
|
6452
6421
|
404: apiErrorSchema
|
|
6453
6422
|
},
|
|
6454
|
-
summary: "Favorite
|
|
6423
|
+
summary: "Favorite an artifact for the caller"
|
|
6455
6424
|
},
|
|
6456
6425
|
unfavorite: {
|
|
6457
6426
|
method: "POST",
|
|
@@ -6465,7 +6434,7 @@ var artifactsContract = c15.router({
|
|
|
6465
6434
|
403: apiErrorSchema,
|
|
6466
6435
|
404: apiErrorSchema
|
|
6467
6436
|
},
|
|
6468
|
-
summary: "Remove
|
|
6437
|
+
summary: "Remove an artifact favorite for the caller"
|
|
6469
6438
|
}
|
|
6470
6439
|
});
|
|
6471
6440
|
|
|
@@ -7817,6 +7786,28 @@ async function listZeroConnectorCatalogStatus() {
|
|
|
7817
7786
|
}
|
|
7818
7787
|
handleError(result, "Failed to list connector catalog status");
|
|
7819
7788
|
}
|
|
7789
|
+
async function getZeroConnectorCatalogPermissions(connectorRef) {
|
|
7790
|
+
const config = await getClientConfig();
|
|
7791
|
+
const client = initClient(zeroConnectorCatalogContract, config);
|
|
7792
|
+
const result = await client.permissions({
|
|
7793
|
+
params: { connectorRef }
|
|
7794
|
+
});
|
|
7795
|
+
if (result.status === 200) {
|
|
7796
|
+
if (result.body.permissions.connectorRef !== connectorRef) {
|
|
7797
|
+
throw new Error(
|
|
7798
|
+
`Permission metadata connectorRef mismatch: expected ${connectorRef}, got ${result.body.permissions.connectorRef}`
|
|
7799
|
+
);
|
|
7800
|
+
}
|
|
7801
|
+
return result.body.permissions;
|
|
7802
|
+
}
|
|
7803
|
+
if (result.status === 404) {
|
|
7804
|
+
return null;
|
|
7805
|
+
}
|
|
7806
|
+
handleError(
|
|
7807
|
+
result,
|
|
7808
|
+
`Failed to get connector permission metadata for "${connectorRef}"`
|
|
7809
|
+
);
|
|
7810
|
+
}
|
|
7820
7811
|
async function getZeroConnector(type) {
|
|
7821
7812
|
const config = await getClientConfig();
|
|
7822
7813
|
const client = initClient(zeroConnectorsByTypeContract, config);
|
|
@@ -12160,12 +12151,12 @@ var zeroWorkflowDetailResponseSchema = zeroWorkflowSummarySchema.extend({
|
|
|
12160
12151
|
var zeroWorkflowListResponseSchema = external_exports.array(
|
|
12161
12152
|
zeroWorkflowSummarySchema
|
|
12162
12153
|
);
|
|
12163
|
-
var
|
|
12154
|
+
var zeroWorkflowAutomationEntrySchema = external_exports.object({
|
|
12164
12155
|
workflow: zeroWorkflowSummarySchema,
|
|
12165
12156
|
trigger: zeroWorkflowTriggerSummarySchema
|
|
12166
12157
|
});
|
|
12167
|
-
var
|
|
12168
|
-
|
|
12158
|
+
var zeroWorkflowAutomationListResponseSchema = external_exports.array(
|
|
12159
|
+
zeroWorkflowAutomationEntrySchema
|
|
12169
12160
|
);
|
|
12170
12161
|
var zeroWorkflowCreateRequestSchema = external_exports.object({
|
|
12171
12162
|
agentId: external_exports.string().uuid(),
|
|
@@ -12401,7 +12392,7 @@ var zeroWorkflowTriggersContract = c33.router({
|
|
|
12401
12392
|
path: "/api/zero/workflow-triggers",
|
|
12402
12393
|
headers: authHeadersSchema,
|
|
12403
12394
|
responses: {
|
|
12404
|
-
200:
|
|
12395
|
+
200: zeroWorkflowAutomationListResponseSchema,
|
|
12405
12396
|
401: apiErrorSchema,
|
|
12406
12397
|
403: apiErrorSchema
|
|
12407
12398
|
},
|
|
@@ -15292,6 +15283,7 @@ export {
|
|
|
15292
15283
|
searchZeroConnectors,
|
|
15293
15284
|
listZeroConnectorCatalog,
|
|
15294
15285
|
listZeroConnectorCatalogStatus,
|
|
15286
|
+
getZeroConnectorCatalogPermissions,
|
|
15295
15287
|
getZeroConnector,
|
|
15296
15288
|
connectZeroConnectorManualGrant,
|
|
15297
15289
|
listZeroCustomConnectors,
|
|
@@ -15361,4 +15353,4 @@ export {
|
|
|
15361
15353
|
completeHostedSite,
|
|
15362
15354
|
getHostedSiteFiles
|
|
15363
15355
|
};
|
|
15364
|
-
//# sourceMappingURL=chunk-
|
|
15356
|
+
//# sourceMappingURL=chunk-XX3HVOWG.js.map
|