@vm0/cli 9.267.0 → 9.269.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/{agent-OMZZFFOX.js → agent-VK7PFHFX.js} +11 -11
- package/agent-VK7PFHFX.js.map +1 -0
- package/{banking-BVCIXQ5N.js → banking-GD4YJ7QA.js} +4 -4
- package/{browser-MZYVERXT.js → browser-T44LR4CD.js} +4 -4
- package/{chat-XAIEMJJJ.js → chat-GC5PXDMC.js} +5 -5
- package/{chunk-PYNAJYFD.js → chunk-3ZIEOU43.js} +46 -38
- package/chunk-3ZIEOU43.js.map +1 -0
- package/{chunk-TNDBFUFP.js → chunk-4WDDMKO6.js} +1 -6
- package/chunk-4WDDMKO6.js.map +1 -0
- package/{chunk-RU2TI2U2.js → chunk-5WCJ4YK2.js} +2 -2
- package/{chunk-LYI45KHY.js → chunk-73DZG6Q7.js} +138 -57
- package/chunk-73DZG6Q7.js.map +1 -0
- package/{chunk-3AYDKKKU.js → chunk-C6ZDYQZB.js} +2 -2
- package/{chunk-GU4ZJECC.js → chunk-HWHNQPKS.js} +92 -6
- package/chunk-HWHNQPKS.js.map +1 -0
- package/{chunk-FLF6ZMKJ.js → chunk-NGXH4WMD.js} +29 -34
- package/chunk-NGXH4WMD.js.map +1 -0
- package/chunk-PNFIYMDN.js +22 -0
- package/chunk-PNFIYMDN.js.map +1 -0
- package/{chunk-5TMLTATP.js → chunk-Q4PS674D.js} +2 -2
- package/{chunk-GTGI6NWJ.js → chunk-X24DXUXC.js} +2 -2
- package/{computer-use-OMUCKEH4.js → computer-use-K56KV7VB.js} +4 -4
- package/{connector-DZ5RLANA.js → connector-QQWAHPS4.js} +119 -59
- package/connector-QQWAHPS4.js.map +1 -0
- package/{credit-ZTZPYLHJ.js → credit-ROARDLCA.js} +5 -5
- package/{developer-support-VWUHT7BY.js → developer-support-UDMUZCE3.js} +4 -4
- package/{doctor-WTSDGI5C.js → doctor-RGYXFZHU.js} +5 -5
- package/{feishu-CWVMYPJJ.js → feishu-OBNUWOA2.js} +4 -4
- package/{finance-67XW3BDK.js → finance-F6O6Y6PV.js} +4 -4
- package/{generate-5BFGTIYQ.js → generate-MUXDMLOJ.js} +10 -10
- package/generate-MUXDMLOJ.js.map +1 -0
- package/{github-D2WOKACM.js → github-2C7AOKI4.js} +4 -4
- package/{goal-PB5PPIKK.js → goal-W3LM6XZV.js} +4 -4
- package/{host-SKUS46EY.js → host-P7D2E62D.js} +4 -4
- package/{logs-UVEMZZGC.js → logs-BAHOQLAE.js} +6 -6
- package/{mail-NIXLTFM2.js → mail-VKEHKTZI.js} +6 -6
- package/{maps-O4EJGJGI.js → maps-NZTI34NQ.js} +4 -4
- package/{model-CYLLV5SU.js → model-IR6ZDEE2.js} +5 -5
- package/{model-provider-VDFCPVGR.js → model-provider-DFX4CPKT.js} +5 -5
- package/{org-EKZ5TZ6C.js → org-XVM6CZTT.js} +4 -4
- package/package.json +1 -1
- package/{people-search-SXKWISQC.js → people-search-IV3H5OUA.js} +4 -4
- package/{phone-KQUWXL2F.js → phone-HUY6BIZX.js} +4 -4
- package/{preference-ZUT6YDYU.js → preference-HMVK2L5M.js} +4 -4
- package/{resource-WLJIYIAG.js → resource-5UIGWAZD.js} +4 -4
- package/{scrape-RBI7L7OI.js → scrape-OYG3NWYJ.js} +4 -4
- package/{search-N4HHOYG3.js → search-NRTKXEOM.js} +6 -6
- package/{secret-M3JN4ILK.js → secret-3AIMSGWX.js} +4 -4
- package/{slack-RKIRNUMX.js → slack-SBHKIKCI.js} +4 -4
- package/{teams-EOQH4NSD.js → teams-Y7RWSTVP.js} +4 -4
- package/{telegram-TKIUQBRV.js → telegram-MVCNV2KP.js} +4 -4
- package/{upgrade-Z46EJ6LM.js → upgrade-2SNSYI66.js} +3 -3
- package/{variable-4MKDDCMH.js → variable-ZUQ7J3X2.js} +4 -4
- package/{video-L5EPZEBJ.js → video-TDGGCC4I.js} +3 -3
- package/{weather-WBTWM2L3.js → weather-CVL343M4.js} +4 -4
- package/{web-OI25YJCD.js → web-M5AW34U4.js} +4 -4
- package/{web-search-55JR4DFQ.js → web-search-C2BOORHI.js} +4 -4
- package/{whoami-5B24JEWY.js → whoami-TWCA5HMI.js} +13 -13
- package/whoami-TWCA5HMI.js.map +1 -0
- package/{workflow-F2DNCBSD.js → workflow-QAMRYA5T.js} +99 -8
- package/workflow-QAMRYA5T.js.map +1 -0
- package/zero.js +43 -43
- package/agent-OMZZFFOX.js.map +0 -1
- package/chunk-FLF6ZMKJ.js.map +0 -1
- package/chunk-GU4ZJECC.js.map +0 -1
- package/chunk-LYI45KHY.js.map +0 -1
- package/chunk-PYNAJYFD.js.map +0 -1
- package/chunk-TNDBFUFP.js.map +0 -1
- package/chunk-TX5E4N6E.js +0 -97
- package/chunk-TX5E4N6E.js.map +0 -1
- package/connector-DZ5RLANA.js.map +0 -1
- package/generate-5BFGTIYQ.js.map +0 -1
- package/whoami-5B24JEWY.js.map +0 -1
- package/workflow-F2DNCBSD.js.map +0 -1
- /package/{banking-BVCIXQ5N.js.map → banking-GD4YJ7QA.js.map} +0 -0
- /package/{browser-MZYVERXT.js.map → browser-T44LR4CD.js.map} +0 -0
- /package/{chat-XAIEMJJJ.js.map → chat-GC5PXDMC.js.map} +0 -0
- /package/{chunk-RU2TI2U2.js.map → chunk-5WCJ4YK2.js.map} +0 -0
- /package/{chunk-3AYDKKKU.js.map → chunk-C6ZDYQZB.js.map} +0 -0
- /package/{chunk-5TMLTATP.js.map → chunk-Q4PS674D.js.map} +0 -0
- /package/{chunk-GTGI6NWJ.js.map → chunk-X24DXUXC.js.map} +0 -0
- /package/{computer-use-OMUCKEH4.js.map → computer-use-K56KV7VB.js.map} +0 -0
- /package/{credit-ZTZPYLHJ.js.map → credit-ROARDLCA.js.map} +0 -0
- /package/{developer-support-VWUHT7BY.js.map → developer-support-UDMUZCE3.js.map} +0 -0
- /package/{doctor-WTSDGI5C.js.map → doctor-RGYXFZHU.js.map} +0 -0
- /package/{feishu-CWVMYPJJ.js.map → feishu-OBNUWOA2.js.map} +0 -0
- /package/{finance-67XW3BDK.js.map → finance-F6O6Y6PV.js.map} +0 -0
- /package/{github-D2WOKACM.js.map → github-2C7AOKI4.js.map} +0 -0
- /package/{goal-PB5PPIKK.js.map → goal-W3LM6XZV.js.map} +0 -0
- /package/{host-SKUS46EY.js.map → host-P7D2E62D.js.map} +0 -0
- /package/{logs-UVEMZZGC.js.map → logs-BAHOQLAE.js.map} +0 -0
- /package/{mail-NIXLTFM2.js.map → mail-VKEHKTZI.js.map} +0 -0
- /package/{maps-O4EJGJGI.js.map → maps-NZTI34NQ.js.map} +0 -0
- /package/{model-CYLLV5SU.js.map → model-IR6ZDEE2.js.map} +0 -0
- /package/{model-provider-VDFCPVGR.js.map → model-provider-DFX4CPKT.js.map} +0 -0
- /package/{org-EKZ5TZ6C.js.map → org-XVM6CZTT.js.map} +0 -0
- /package/{people-search-SXKWISQC.js.map → people-search-IV3H5OUA.js.map} +0 -0
- /package/{phone-KQUWXL2F.js.map → phone-HUY6BIZX.js.map} +0 -0
- /package/{preference-ZUT6YDYU.js.map → preference-HMVK2L5M.js.map} +0 -0
- /package/{resource-WLJIYIAG.js.map → resource-5UIGWAZD.js.map} +0 -0
- /package/{scrape-RBI7L7OI.js.map → scrape-OYG3NWYJ.js.map} +0 -0
- /package/{search-N4HHOYG3.js.map → search-NRTKXEOM.js.map} +0 -0
- /package/{secret-M3JN4ILK.js.map → secret-3AIMSGWX.js.map} +0 -0
- /package/{slack-RKIRNUMX.js.map → slack-SBHKIKCI.js.map} +0 -0
- /package/{teams-EOQH4NSD.js.map → teams-Y7RWSTVP.js.map} +0 -0
- /package/{telegram-TKIUQBRV.js.map → telegram-MVCNV2KP.js.map} +0 -0
- /package/{upgrade-Z46EJ6LM.js.map → upgrade-2SNSYI66.js.map} +0 -0
- /package/{variable-4MKDDCMH.js.map → variable-ZUQ7J3X2.js.map} +0 -0
- /package/{video-L5EPZEBJ.js.map → video-TDGGCC4I.js.map} +0 -0
- /package/{weather-WBTWM2L3.js.map → weather-CVL343M4.js.map} +0 -0
- /package/{web-OI25YJCD.js.map → web-M5AW34U4.js.map} +0 -0
- /package/{web-search-55JR4DFQ.js.map → web-search-C2BOORHI.js.map} +0 -0
package/chunk-GU4ZJECC.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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 // TODO(#23619): Rename with the catalog artifact metadata contract.\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 // TODO(#23619): Rename with the permission-grant wire and storage fields.\n readonly connectorRef: string;\n readonly permission: string;\n readonly action: FirewallPermissionGrantAction;\n}\n\nfunction metadataConnectorSlug(\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 connectorSlug = metadataConnectorSlug(detail);\n const defaults = expandFirewallMetadataDefaultPolicy(detail);\n const existing = resolved?.[connectorSlug];\n resolved = {\n ...resolved,\n [connectorSlug]: {\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":[]}
|