@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.
Files changed (101) hide show
  1. package/{agent-6OA2V3OO.js → agent-CTMIX4TA.js} +5 -5
  2. package/agent-CTMIX4TA.js.map +1 -0
  3. package/{banking-WWVG2CP7.js → banking-7EIKU7WX.js} +3 -3
  4. package/{chat-D475VWGE.js → chat-5MN7N3LD.js} +4 -4
  5. package/{chunk-VBI53K3Q.js → chunk-22VWTDX6.js} +4 -4
  6. package/chunk-22VWTDX6.js.map +1 -0
  7. package/{chunk-I76SZJXM.js → chunk-3LJFZEZ5.js} +234 -271
  8. package/chunk-3LJFZEZ5.js.map +1 -0
  9. package/{chunk-FKRO4PMB.js → chunk-3SWR53IF.js} +7 -5
  10. package/chunk-3SWR53IF.js.map +1 -0
  11. package/{chunk-L6RCBAZE.js → chunk-3SZJPIMX.js} +2 -2
  12. package/{chunk-ROLHZ5OO.js → chunk-4ODVSQ6H.js} +2 -2
  13. package/{chunk-4ZHQYU4E.js → chunk-65ZW3GHG.js} +4 -4
  14. package/{chunk-SZJIY7B5.js → chunk-ADBNTM34.js} +2 -2
  15. package/{chunk-OJDPK7NK.js → chunk-GU4IPLKQ.js} +2 -2
  16. package/{chunk-OJDPK7NK.js.map → chunk-GU4IPLKQ.js.map} +1 -1
  17. package/{chunk-JSHFBBDU.js → chunk-NAFRQSTL.js} +3 -3
  18. package/{chunk-YCG6O3ZK.js → chunk-NBAZLPV3.js} +2 -2
  19. package/chunk-WPUM3KGN.js +133 -0
  20. package/chunk-WPUM3KGN.js.map +1 -0
  21. package/{chunk-37U2ZGBH.js → chunk-XX3HVOWG.js} +33 -41
  22. package/chunk-XX3HVOWG.js.map +1 -0
  23. package/{computer-use-ALMIBYF4.js → computer-use-JW6NHZFY.js} +3 -3
  24. package/{connector-R524H5MQ.js → connector-II52GGER.js} +4 -4
  25. package/{credit-24OGXS2M.js → credit-SDMLLER2.js} +4 -4
  26. package/{developer-support-JHHS2QGT.js → developer-support-7OGYYIJ2.js} +3 -3
  27. package/{doctor-WZ3VB4FR.js → doctor-UJIIOA33.js} +1118 -11
  28. package/doctor-UJIIOA33.js.map +1 -0
  29. package/{generate-DYP65QJ5.js → generate-DPGQKZTH.js} +5 -5
  30. package/{github-UEL4IJ3N.js → github-DA62AJIQ.js} +3 -3
  31. package/{goal-QAV2T6MM.js → goal-WWM7OYBQ.js} +3 -3
  32. package/{host-SXD5YBTX.js → host-YMKJGV6R.js} +3 -3
  33. package/index.js +17 -17
  34. package/index.js.map +1 -1
  35. package/{logs-NPH6LNKC.js → logs-FKXVE6QD.js} +8 -8
  36. package/{maps-S6CRPCRM.js → maps-MWMFHA72.js} +3 -3
  37. package/{memory-N7QS7HLX.js → memory-KAGWT3GE.js} +3 -3
  38. package/{model-45AKVBWH.js → model-67UDE3IM.js} +4 -4
  39. package/{model-provider-EQWIHKDL.js → model-provider-YGNGMT6S.js} +4 -4
  40. package/{org-4B4XMULZ.js → org-L52CQ6HJ.js} +3 -3
  41. package/package.json +1 -1
  42. package/{phone-FT2BBNYB.js → phone-VYQKHTRX.js} +3 -3
  43. package/{preference-TGWW3TGU.js → preference-7ULJO7RD.js} +3 -3
  44. package/{relationship-K4X2EMG6.js → relationship-TNCKBWUW.js} +3 -3
  45. package/{resource-Z3Y4LKFV.js → resource-V4AXTBFL.js} +4 -4
  46. package/{search-2WYLKHGZ.js → search-ABCFRK5K.js} +8 -8
  47. package/{secret-ZBRGELVV.js → secret-6C53IEKW.js} +4 -4
  48. package/{slack-YHQCPNIL.js → slack-H4OQPL4A.js} +3 -3
  49. package/{teams-XQVJ6FCA.js → teams-RLQBP3SK.js} +3 -3
  50. package/{telegram-IBWT2FZR.js → telegram-TKQOVOWL.js} +3 -3
  51. package/{variable-3VLG2R3E.js → variable-5PRGXPQX.js} +3 -3
  52. package/{video-GXRYJ6A5.js → video-CVM7TXWW.js} +2 -2
  53. package/{web-6DYQEUTW.js → web-E3KRU54R.js} +3 -3
  54. package/{whoami-O22ANAJS.js → whoami-7JOZNZEZ.js} +5 -5
  55. package/whoami-7JOZNZEZ.js.map +1 -0
  56. package/{workflow-INK3CNLQ.js → workflow-RAR37LR4.js} +3 -3
  57. package/zero.js +34 -34
  58. package/agent-6OA2V3OO.js.map +0 -1
  59. package/chunk-37U2ZGBH.js.map +0 -1
  60. package/chunk-FKRO4PMB.js.map +0 -1
  61. package/chunk-GU2OYDJY.js +0 -1258
  62. package/chunk-GU2OYDJY.js.map +0 -1
  63. package/chunk-I76SZJXM.js.map +0 -1
  64. package/chunk-VBI53K3Q.js.map +0 -1
  65. package/doctor-WZ3VB4FR.js.map +0 -1
  66. package/whoami-O22ANAJS.js.map +0 -1
  67. /package/{banking-WWVG2CP7.js.map → banking-7EIKU7WX.js.map} +0 -0
  68. /package/{chat-D475VWGE.js.map → chat-5MN7N3LD.js.map} +0 -0
  69. /package/{chunk-L6RCBAZE.js.map → chunk-3SZJPIMX.js.map} +0 -0
  70. /package/{chunk-ROLHZ5OO.js.map → chunk-4ODVSQ6H.js.map} +0 -0
  71. /package/{chunk-4ZHQYU4E.js.map → chunk-65ZW3GHG.js.map} +0 -0
  72. /package/{chunk-SZJIY7B5.js.map → chunk-ADBNTM34.js.map} +0 -0
  73. /package/{chunk-JSHFBBDU.js.map → chunk-NAFRQSTL.js.map} +0 -0
  74. /package/{chunk-YCG6O3ZK.js.map → chunk-NBAZLPV3.js.map} +0 -0
  75. /package/{computer-use-ALMIBYF4.js.map → computer-use-JW6NHZFY.js.map} +0 -0
  76. /package/{connector-R524H5MQ.js.map → connector-II52GGER.js.map} +0 -0
  77. /package/{credit-24OGXS2M.js.map → credit-SDMLLER2.js.map} +0 -0
  78. /package/{developer-support-JHHS2QGT.js.map → developer-support-7OGYYIJ2.js.map} +0 -0
  79. /package/{generate-DYP65QJ5.js.map → generate-DPGQKZTH.js.map} +0 -0
  80. /package/{github-UEL4IJ3N.js.map → github-DA62AJIQ.js.map} +0 -0
  81. /package/{goal-QAV2T6MM.js.map → goal-WWM7OYBQ.js.map} +0 -0
  82. /package/{host-SXD5YBTX.js.map → host-YMKJGV6R.js.map} +0 -0
  83. /package/{logs-NPH6LNKC.js.map → logs-FKXVE6QD.js.map} +0 -0
  84. /package/{maps-S6CRPCRM.js.map → maps-MWMFHA72.js.map} +0 -0
  85. /package/{memory-N7QS7HLX.js.map → memory-KAGWT3GE.js.map} +0 -0
  86. /package/{model-45AKVBWH.js.map → model-67UDE3IM.js.map} +0 -0
  87. /package/{model-provider-EQWIHKDL.js.map → model-provider-YGNGMT6S.js.map} +0 -0
  88. /package/{org-4B4XMULZ.js.map → org-L52CQ6HJ.js.map} +0 -0
  89. /package/{phone-FT2BBNYB.js.map → phone-VYQKHTRX.js.map} +0 -0
  90. /package/{preference-TGWW3TGU.js.map → preference-7ULJO7RD.js.map} +0 -0
  91. /package/{relationship-K4X2EMG6.js.map → relationship-TNCKBWUW.js.map} +0 -0
  92. /package/{resource-Z3Y4LKFV.js.map → resource-V4AXTBFL.js.map} +0 -0
  93. /package/{search-2WYLKHGZ.js.map → search-ABCFRK5K.js.map} +0 -0
  94. /package/{secret-ZBRGELVV.js.map → secret-6C53IEKW.js.map} +0 -0
  95. /package/{slack-YHQCPNIL.js.map → slack-H4OQPL4A.js.map} +0 -0
  96. /package/{teams-XQVJ6FCA.js.map → teams-RLQBP3SK.js.map} +0 -0
  97. /package/{telegram-IBWT2FZR.js.map → telegram-TKQOVOWL.js.map} +0 -0
  98. /package/{variable-3VLG2R3E.js.map → variable-5PRGXPQX.js.map} +0 -0
  99. /package/{video-GXRYJ6A5.js.map → video-CVM7TXWW.js.map} +0 -0
  100. /package/{web-6DYQEUTW.js.map → web-E3KRU54R.js.map} +0 -0
  101. /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.1",
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.1",
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-JSHFBBDU.js.map
149
+ //# sourceMappingURL=chunk-NAFRQSTL.js.map
@@ -10,7 +10,7 @@ import {
10
10
  splitPathSegments,
11
11
  validateAuthBaseUrl,
12
12
  validateBaseUrl
13
- } from "./chunk-37U2ZGBH.js";
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-YCG6O3ZK.js.map
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-VBI53K3Q.js";
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 generated artifacts for the caller's current organization (keyset-paginated)"
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 a generated artifact for the caller"
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 a generated artifact favorite for the caller"
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 zeroWorkflowTriggerAutomationEntrySchema = external_exports.object({
12154
+ var zeroWorkflowAutomationEntrySchema = external_exports.object({
12164
12155
  workflow: zeroWorkflowSummarySchema,
12165
12156
  trigger: zeroWorkflowTriggerSummarySchema
12166
12157
  });
12167
- var zeroWorkflowTriggerAutomationListResponseSchema = external_exports.array(
12168
- zeroWorkflowTriggerAutomationEntrySchema
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: zeroWorkflowTriggerAutomationListResponseSchema,
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-37U2ZGBH.js.map
15356
+ //# sourceMappingURL=chunk-XX3HVOWG.js.map