@opengeni/contracts 3.1.2 → 3.2.2
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/dist/atlassian.js +5 -4
- package/dist/{chunk-OF6OKOBF.js → chunk-B2G6NXLZ.js} +8486 -9303
- package/dist/chunk-B2G6NXLZ.js.map +1 -0
- package/dist/chunk-C6HESWDB.js +1384 -0
- package/dist/chunk-C6HESWDB.js.map +1 -0
- package/dist/{chunk-6C2HKFTU.js → chunk-KLG2MBAU.js} +2 -2
- package/dist/connect.js +8 -7
- package/dist/connect.js.map +1 -1
- package/dist/connection-authority.js +6 -5
- package/dist/google-drive.js +6 -5
- package/dist/google-drive.js.map +1 -1
- package/dist/host-mcp-bindings.js +6 -5
- package/dist/host-mcp-bindings.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +191 -101
- package/dist/personal-github.js +5 -4
- package/dist/personal-github.js.map +1 -1
- package/dist/vault-provider-wire.d.ts +856 -0
- package/dist/vault-provider-wire.js +72 -0
- package/dist/vault-provider-wire.js.map +1 -0
- package/dist/vaults.d.ts +669 -0
- package/package.json +5 -1
- package/src/index.ts +1 -0
- package/src/vault-provider-wire.ts +584 -0
- package/src/vaults.ts +188 -3
- package/dist/chunk-OF6OKOBF.js.map +0 -1
- /package/dist/{chunk-6C2HKFTU.js.map → chunk-KLG2MBAU.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/vault-provider-wire.ts","../src/vaults.ts","../src/secret-generator.ts"],"sourcesContent":["/**\n * `opengeni.vault.v1`: the signed remote vault-provider protocol.\n *\n * Opengeni POSTs one JSON request per operation to a registered endpoint,\n * signed over the exact body with the existing `OpenGeni-Signature` scheme\n * (`signOpenGeniPayload`). The receiver verifies the signature, then maps the\n * trusted native authority tuple to its own tenant and user and rechecks\n * access on every operation: a valid MAC authenticates Opengeni, it is not an\n * authorization decision. Responses are signed with a response-only derived\n * key (`vaultProviderWireResponseKey`) so a response can never be replayed as\n * a request.\n *\n * Every shape is strict and bounded. Metadata shapes have no value fields.\n * Mutations carry an idempotency key; Opengeni never retries a mutation\n * automatically and reports an ambiguous outcome instead.\n */\nimport { z } from \"zod\";\nimport { defineSchema } from \"./define-schema\";\nimport {\n VAULT_LIMITS,\n VaultFieldKind,\n VaultItemType,\n VaultProviderOperations,\n isReservedVaultFieldName,\n isValidSecretName,\n} from \"./vaults\";\n\nexport const VAULT_PROVIDER_WIRE_VERSION = \"opengeni.vault.v1\" as const;\n\n/** Response signature header. Requests use the shared `OpenGeni-Signature` header. */\nexport const VAULT_PROVIDER_WIRE_RESPONSE_SIGNATURE_HEADER = \"OpenGeni-Vault-Response-Signature\";\n\n/**\n * The response signing key is derived from the connection secret with a fixed\n * domain label, so request and response MACs are never interchangeable.\n */\nexport function vaultProviderWireResponseKey(signingSecret: string): string {\n return `${signingSecret}\\u0000${VAULT_PROVIDER_WIRE_VERSION}.response`;\n}\n\nexport const VAULT_PROVIDER_WIRE_LIMITS = {\n maxRequestBytes: 4 * 1024 * 1024,\n maxResponseBytes: 4 * 1024 * 1024,\n /** Sum of returned secret value bytes in one read. */\n maxReadValueBytes: 3 * 1024 * 1024,\n pageSizeMax: 100,\n cursorMaxChars: 1_024,\n snapshotMaxChars: 1_024,\n externalIdMaxChars: 300,\n vaultNameMaxChars: 300,\n nativeIdMaxChars: 200,\n readFieldsMax: VAULT_LIMITS.fieldsPerItem,\n idempotencyKeyMaxChars: 200,\n accountIdMaxChars: 300,\n accountNameMaxChars: 300,\n versionMaxChars: 300,\n cacheEpochMaxChars: 200,\n /** Per request deadline enforced by Opengeni's transport. */\n defaultTimeoutMs: 15_000,\n maxTimeoutMs: 60_000,\n /** Accepted request age; matches `OPENGENI_SIGNATURE_TOLERANCE_SECONDS`. */\n signatureToleranceSeconds: 300,\n} as const;\n\n/** Mirrors `VAULT_PROVIDER_ERROR_CODES` in `@opengeni/vaults` (parity tested there). */\nexport const VAULT_PROVIDER_WIRE_ERROR_CODES = [\n \"provider_auth_invalid\",\n \"provider_auth_expired\",\n \"provider_rate_limited\",\n \"provider_unavailable\",\n \"provider_conflict\",\n \"provider_not_found\",\n \"provider_permission_denied\",\n \"provider_locked\",\n \"provider_inventory_incomplete\",\n \"provider_outcome_unknown\",\n] as const;\nexport type VaultProviderWireErrorCode = (typeof VAULT_PROVIDER_WIRE_ERROR_CODES)[number];\n\nexport const VAULT_PROVIDER_WIRE_OPERATIONS = [\n \"describe\",\n \"refresh\",\n \"list_vaults\",\n \"list_items\",\n \"read_fields\",\n \"write_item\",\n \"archive_item\",\n] as const;\nexport type VaultProviderWireOperationName = (typeof VAULT_PROVIDER_WIRE_OPERATIONS)[number];\n\nexport type VaultProviderWireMutationName = \"write_item\" | \"archive_item\";\nexport function isVaultProviderWireMutation(\n op: VaultProviderWireOperationName,\n): op is VaultProviderWireMutationName {\n return op === \"write_item\" || op === \"archive_item\";\n}\n\n/** Remote providers that use this protocol. */\nexport const VaultProviderWireProvider = /* @__PURE__ */ defineSchema(() =>\n z.enum([\"external\", \"bitwarden\"]),\n);\nexport type VaultProviderWireProvider = z.infer<typeof VaultProviderWireProvider>;\n\n// oxlint-disable-next-line no-control-regex\nconst CONTROL_CHARACTERS = /[\\u0000-\\u001f\\u007f-\\u009f]/;\nconst encoder = /* @__PURE__ */ new TextEncoder();\n\nexport function vaultProviderWireUtf8Bytes(value: string): number {\n return encoder.encode(value).byteLength;\n}\n\nfunction boundedText(max: number) {\n return z\n .string()\n .min(1)\n .max(max)\n .refine((value) => !CONTROL_CHARACTERS.test(value), \"control characters are not allowed\");\n}\n\nconst ExternalId = /* @__PURE__ */ defineSchema(() =>\n boundedText(VAULT_PROVIDER_WIRE_LIMITS.externalIdMaxChars),\n);\nconst NativeId = /* @__PURE__ */ defineSchema(() =>\n boundedText(VAULT_PROVIDER_WIRE_LIMITS.nativeIdMaxChars),\n);\nconst ItemName = /* @__PURE__ */ defineSchema(() =>\n z.string().refine(isValidSecretName, \"invalid_secret_name\"),\n);\nconst FieldName = /* @__PURE__ */ defineSchema(() =>\n z\n .string()\n .refine(\n (name) => isValidSecretName(name) && !isReservedVaultFieldName(name),\n \"invalid_secret_name\",\n ),\n);\nconst Website = /* @__PURE__ */ defineSchema(() => boundedText(VAULT_LIMITS.websiteMaxChars));\nconst Version = /* @__PURE__ */ defineSchema(() =>\n boundedText(VAULT_PROVIDER_WIRE_LIMITS.versionMaxChars),\n);\nconst Cursor = /* @__PURE__ */ defineSchema(() =>\n boundedText(VAULT_PROVIDER_WIRE_LIMITS.cursorMaxChars),\n);\nconst Snapshot = /* @__PURE__ */ defineSchema(() =>\n boundedText(VAULT_PROVIDER_WIRE_LIMITS.snapshotMaxChars),\n);\nconst IdempotencyKey = /* @__PURE__ */ defineSchema(() =>\n boundedText(VAULT_PROVIDER_WIRE_LIMITS.idempotencyKeyMaxChars),\n);\nconst CacheEpoch = /* @__PURE__ */ defineSchema(() =>\n boundedText(VAULT_PROVIDER_WIRE_LIMITS.cacheEpochMaxChars).nullable(),\n);\n\nfunction uniqueBy<T>(values: readonly T[], key: (value: T) => string): boolean {\n const seen = new Set<string>();\n for (const value of values) {\n const k = key(value);\n if (seen.has(k)) return false;\n seen.add(k);\n }\n return true;\n}\n\n/** Case-insensitive name identity used for field-name uniqueness. */\nexport function vaultProviderWireNameKey(name: string): string {\n return name.normalize(\"NFC\").trim().toLowerCase();\n}\n\n/**\n * The trusted native caller. Opengeni fills it from the authorized registry,\n * never from model or body-supplied arguments.\n */\nexport const VaultProviderWireAuthority = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n accountId: NativeId,\n workspaceId: NativeId,\n /** Null for workspace-level background work with no acting human. */\n subjectId: NativeId.nullable(),\n /** Workspace that owns the encrypted connection (may differ from the caller). */\n connectionWorkspaceId: NativeId,\n sessionId: NativeId.optional(),\n turnId: NativeId.optional(),\n attemptId: NativeId.optional(),\n siteId: NativeId.optional(),\n })\n .strict(),\n);\nexport type VaultProviderWireAuthority = z.infer<typeof VaultProviderWireAuthority>;\n\nexport const VaultProviderWirePage = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n limit: z.number().int().min(1).max(VAULT_PROVIDER_WIRE_LIMITS.pageSizeMax),\n cursor: Cursor.optional(),\n snapshot: Snapshot.optional(),\n })\n .strict(),\n);\nexport type VaultProviderWirePage = z.infer<typeof VaultProviderWirePage>;\n\nexport const VaultProviderWireWriteField = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n externalFieldId: ExternalId.optional(),\n name: FieldName,\n kind: VaultFieldKind,\n /** Omitted on an update: keep the current value. */\n value: z\n .string()\n .refine(\n (value) => vaultProviderWireUtf8Bytes(value) <= VAULT_LIMITS.textValueMaxBytes,\n \"secret_value_too_large\",\n )\n .optional(),\n remove: z.literal(true).optional(),\n })\n .strict()\n .refine((field) => !(field.remove && field.value !== undefined), \"remove carries no value\")\n .refine((field) => !(field.remove && !field.externalFieldId), \"remove needs a field id\")\n .refine(\n (field) => !(field.kind === \"file\" && field.value !== undefined),\n \"file writes are not supported\",\n ),\n);\nexport type VaultProviderWireWriteField = z.infer<typeof VaultProviderWireWriteField>;\n\nexport const VaultProviderWireWriteItem = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n externalItemId: ExternalId.optional(),\n expectedVersion: Version.nullable().optional(),\n name: ItemName,\n type: VaultItemType.refine((type) => type !== \"passkey\", \"passkeys are hosted only\"),\n websites: z.array(Website).max(VAULT_LIMITS.websitesPerItem),\n fields: z.array(VaultProviderWireWriteField).max(VAULT_LIMITS.fieldsPerItem),\n })\n .strict()\n .refine(\n (item) =>\n uniqueBy(\n item.fields.filter((field) => !field.remove),\n (field) => vaultProviderWireNameKey(field.name),\n ) &&\n uniqueBy(\n item.fields.filter((field) => field.externalFieldId !== undefined),\n (field) => field.externalFieldId!,\n ),\n \"duplicate fields\",\n ),\n);\nexport type VaultProviderWireWriteItem = z.infer<typeof VaultProviderWireWriteItem>;\n\nconst ReadContext = {\n /** Recheck upstream; never bypasses authorization or upstream rate limits. */\n forceRefresh: z.boolean(),\n /** Opengeni's mirror freshness epoch, for receiver-side cache invalidation. */\n cacheEpoch: CacheEpoch,\n};\n\nexport const VaultProviderWireOperation = /* @__PURE__ */ defineSchema(() =>\n z.discriminatedUnion(\"op\", [\n z.object({ op: z.literal(\"describe\") }).strict(),\n z.object({ op: z.literal(\"refresh\") }).strict(),\n z\n .object({ op: z.literal(\"list_vaults\"), page: VaultProviderWirePage, ...ReadContext })\n .strict(),\n z\n .object({\n op: z.literal(\"list_items\"),\n externalVaultId: ExternalId,\n page: VaultProviderWirePage,\n ...ReadContext,\n })\n .strict(),\n z\n .object({\n op: z.literal(\"read_fields\"),\n externalVaultId: ExternalId,\n externalItemId: ExternalId,\n externalFieldIds: z\n .array(ExternalId)\n .min(1)\n .max(VAULT_PROVIDER_WIRE_LIMITS.readFieldsMax)\n .refine((ids) => new Set(ids).size === ids.length, \"duplicate field ids\"),\n ...ReadContext,\n })\n .strict(),\n z\n .object({\n op: z.literal(\"write_item\"),\n externalVaultId: ExternalId,\n item: VaultProviderWireWriteItem,\n idempotencyKey: IdempotencyKey,\n })\n .strict(),\n z\n .object({\n op: z.literal(\"archive_item\"),\n externalVaultId: ExternalId,\n externalItemId: ExternalId,\n idempotencyKey: IdempotencyKey,\n })\n .strict(),\n ]),\n);\nexport type VaultProviderWireOperation = z.infer<typeof VaultProviderWireOperation>;\nexport type VaultProviderWireOperationOf<Op extends VaultProviderWireOperationName> = Extract<\n VaultProviderWireOperation,\n { op: Op }\n>;\n\nexport const VaultProviderWireRequest = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n version: z.literal(VAULT_PROVIDER_WIRE_VERSION),\n type: z.literal(\"request\"),\n requestId: z.string().uuid(),\n sentAt: z.string().datetime(),\n provider: VaultProviderWireProvider,\n connectionId: z.string().uuid(),\n authority: VaultProviderWireAuthority,\n operation: VaultProviderWireOperation,\n })\n .strict(),\n);\nexport type VaultProviderWireRequest = z.infer<typeof VaultProviderWireRequest>;\n\nexport const VaultProviderWireErrorCode = /* @__PURE__ */ defineSchema(() =>\n z.enum(VAULT_PROVIDER_WIRE_ERROR_CODES),\n);\n\n/** Receiver freshness. Opengeni adds its own `lastCheckedAt`. */\nexport const VaultProviderWireFreshness = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n state: z.enum([\"current\", \"stale\", \"refreshing\", \"unavailable\"]),\n /** When the receiver last synchronized with its upstream store. */\n sourceSyncedAt: z.string().datetime().nullable(),\n source: z.enum([\"live\", \"cache\", \"unknown\"]),\n errorCode: VaultProviderWireErrorCode.nullable(),\n retryAt: z.string().datetime().nullable(),\n })\n .strict(),\n);\nexport type VaultProviderWireFreshness = z.infer<typeof VaultProviderWireFreshness>;\n\nexport const VaultProviderWireVault = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n externalVaultId: ExternalId,\n name: boundedText(VAULT_PROVIDER_WIRE_LIMITS.vaultNameMaxChars),\n contentVersion: Version.nullable(),\n itemCount: z.number().int().nonnegative().nullable(),\n writeAccess: z.enum([\"read_only\", \"read_write\", \"unknown\"]),\n /** Narrows the connection operations for this vault; never widens them. */\n operations: VaultProviderOperations.optional(),\n })\n .strict(),\n);\nexport type VaultProviderWireVault = z.infer<typeof VaultProviderWireVault>;\n\nexport const VaultProviderWireFieldMeta = /* @__PURE__ */ defineSchema(() =>\n z.object({ externalFieldId: ExternalId, name: FieldName, kind: VaultFieldKind }).strict(),\n);\nexport type VaultProviderWireFieldMeta = z.infer<typeof VaultProviderWireFieldMeta>;\n\n/** Item metadata. There is deliberately no value field. */\nexport const VaultProviderWireItemMeta = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n externalItemId: ExternalId,\n name: ItemName,\n type: VaultItemType,\n websites: z.array(Website).max(VAULT_LIMITS.websitesPerItem),\n fields: z\n .array(VaultProviderWireFieldMeta)\n .max(VAULT_LIMITS.fieldsPerItem)\n .refine(\n (fields) =>\n uniqueBy(fields, (field) => field.externalFieldId) &&\n uniqueBy(fields, (field) => vaultProviderWireNameKey(field.name)),\n \"duplicate fields\",\n ),\n version: Version.nullable(),\n updatedAt: z.string().datetime().nullable(),\n })\n .strict(),\n);\nexport type VaultProviderWireItemMeta = z.infer<typeof VaultProviderWireItemMeta>;\n\nconst BASE64 = /^[A-Za-z0-9+/]*={0,2}$/;\nexport const VaultProviderWireFieldValue = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n externalFieldId: ExternalId,\n value: z.discriminatedUnion(\"type\", [\n z\n .object({\n type: z.literal(\"text\"),\n value: z\n .string()\n .refine(\n (value) => vaultProviderWireUtf8Bytes(value) <= VAULT_LIMITS.textValueMaxBytes,\n ),\n })\n .strict(),\n /** An `otpauth://` URI or Base32 seed; Opengeni computes codes at use. */\n z\n .object({ type: z.literal(\"totp\"), value: boundedText(VAULT_LIMITS.websiteMaxChars) })\n .strict(),\n z\n .object({\n type: z.literal(\"bytes\"),\n base64: z\n .string()\n .max(Math.ceil(VAULT_LIMITS.fileValueMaxBytes / 3) * 4)\n .regex(BASE64),\n })\n .strict(),\n ]),\n })\n .strict(),\n);\nexport type VaultProviderWireFieldValue = z.infer<typeof VaultProviderWireFieldValue>;\n\nfunction valueBytes(field: VaultProviderWireFieldValue): number {\n if (field.value.type === \"bytes\") return Math.floor((field.value.base64.length * 3) / 4);\n return vaultProviderWireUtf8Bytes(field.value.value);\n}\n\nexport const VaultProviderWireDescribeResult = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n /** Stable upstream account or bridge identity; reconnect rejects a change. */\n accountId: boundedText(VAULT_PROVIDER_WIRE_LIMITS.accountIdMaxChars),\n accountName: boundedText(VAULT_PROVIDER_WIRE_LIMITS.accountNameMaxChars).nullable(),\n operations: VaultProviderOperations,\n capabilities: z.object({ totp: z.boolean(), files: z.boolean() }).strict(),\n /** One fixed inventory per connection, independent of the acting subject. */\n inventoryScope: z.literal(\"connection\"),\n })\n .strict(),\n);\nexport type VaultProviderWireDescribeResult = z.infer<typeof VaultProviderWireDescribeResult>;\n\nfunction pageOf<T extends z.ZodType>(item: T) {\n return z\n .object({\n items: z.array(item).max(VAULT_PROVIDER_WIRE_LIMITS.pageSizeMax),\n nextCursor: Cursor.nullable(),\n /** Null only when the receiver cannot supply snapshot consistency. */\n snapshot: Snapshot.nullable(),\n })\n .strict();\n}\n\nexport const VaultProviderWireListVaultsResult = /* @__PURE__ */ defineSchema(() =>\n pageOf(VaultProviderWireVault),\n);\nexport const VaultProviderWireListItemsResult = /* @__PURE__ */ defineSchema(() =>\n pageOf(VaultProviderWireItemMeta),\n);\nexport const VaultProviderWireReadFieldsResult = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n fields: z\n .array(VaultProviderWireFieldValue)\n .max(VAULT_PROVIDER_WIRE_LIMITS.readFieldsMax)\n .refine((fields) => uniqueBy(fields, (field) => field.externalFieldId), \"duplicate fields\")\n .refine(\n (fields) =>\n fields.reduce((total, field) => total + valueBytes(field), 0) <=\n VAULT_PROVIDER_WIRE_LIMITS.maxReadValueBytes,\n \"secret values too large\",\n ),\n })\n .strict(),\n);\nexport const VaultProviderWireRefreshResult = /* @__PURE__ */ defineSchema(() =>\n z.object({ refreshed: z.literal(true) }).strict(),\n);\nexport const VaultProviderWireWriteItemResult = /* @__PURE__ */ defineSchema(() =>\n z.object({ item: VaultProviderWireItemMeta }).strict(),\n);\nexport const VaultProviderWireArchiveItemResult = /* @__PURE__ */ defineSchema(() =>\n z.object({ archived: z.literal(true) }).strict(),\n);\n\nexport const VaultProviderWireResults = {\n describe: VaultProviderWireDescribeResult,\n refresh: VaultProviderWireRefreshResult,\n list_vaults: VaultProviderWireListVaultsResult,\n list_items: VaultProviderWireListItemsResult,\n read_fields: VaultProviderWireReadFieldsResult,\n write_item: VaultProviderWireWriteItemResult,\n archive_item: VaultProviderWireArchiveItemResult,\n} as const;\n\nexport type VaultProviderWireResult<Op extends VaultProviderWireOperationName> = z.infer<\n (typeof VaultProviderWireResults)[Op]\n>;\n\nexport const VaultProviderWireError = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n code: VaultProviderWireErrorCode,\n retryAfterMs: z.number().int().min(0).max(86_400_000).nullable(),\n })\n .strict(),\n);\nexport type VaultProviderWireError = z.infer<typeof VaultProviderWireError>;\n\n/**\n * Response envelope. `result` is validated separately against\n * `VaultProviderWireResults[op]` for the operation that was requested.\n */\nexport const VaultProviderWireResponseEnvelope = /* @__PURE__ */ defineSchema(() =>\n z.discriminatedUnion(\"ok\", [\n z\n .object({\n version: z.literal(VAULT_PROVIDER_WIRE_VERSION),\n type: z.literal(\"response\"),\n requestId: z.string().uuid(),\n ok: z.literal(true),\n op: z.enum(VAULT_PROVIDER_WIRE_OPERATIONS),\n result: z.unknown(),\n freshness: VaultProviderWireFreshness.nullable(),\n })\n .strict(),\n z\n .object({\n version: z.literal(VAULT_PROVIDER_WIRE_VERSION),\n type: z.literal(\"response\"),\n requestId: z.string().uuid(),\n ok: z.literal(false),\n op: z.enum(VAULT_PROVIDER_WIRE_OPERATIONS),\n error: VaultProviderWireError,\n freshness: VaultProviderWireFreshness.nullable(),\n })\n .strict(),\n ]),\n);\n\nexport type VaultProviderWireSuccess<\n Op extends VaultProviderWireOperationName = VaultProviderWireOperationName,\n> = {\n [K in Op]: {\n version: typeof VAULT_PROVIDER_WIRE_VERSION;\n type: \"response\";\n requestId: string;\n ok: true;\n op: K;\n result: VaultProviderWireResult<K>;\n freshness: VaultProviderWireFreshness | null;\n };\n}[Op];\n\nexport type VaultProviderWireFailure = {\n version: typeof VAULT_PROVIDER_WIRE_VERSION;\n type: \"response\";\n requestId: string;\n ok: false;\n op: VaultProviderWireOperationName;\n error: VaultProviderWireError;\n freshness: VaultProviderWireFreshness | null;\n};\n\nexport type VaultProviderWireResponse = VaultProviderWireSuccess | VaultProviderWireFailure;\n\n/** Parse one response envelope and its operation-specific result. */\nexport function parseVaultProviderWireResponse<Op extends VaultProviderWireOperationName>(\n value: unknown,\n expected: { requestId: string; op: Op },\n): VaultProviderWireSuccess<Op> | VaultProviderWireFailure | null {\n const envelope = VaultProviderWireResponseEnvelope.safeParse(value);\n if (!envelope.success) return null;\n const response = envelope.data;\n if (response.requestId !== expected.requestId || response.op !== expected.op) return null;\n if (!response.ok) return response as VaultProviderWireFailure;\n const result = VaultProviderWireResults[expected.op].safeParse(response.result);\n if (!result.success) return null;\n return { ...response, op: expected.op, result: result.data } as VaultProviderWireSuccess<Op>;\n}\n","import { defineSchema } from \"./define-schema\";\n/**\n * Vaults: the Opengeni secrets model (replaces variable sets).\n *\n * A vault holds a flat list of items; an item holds named fields; hosted\n * fields keep encrypted versions. Every type here is `z.infer` of its schema.\n *\n * This module must not import runtime values from `./index` (the index\n * re-exports it); only types cross that edge.\n */\nimport { z } from \"zod\";\nimport { GeneratePasswordSpec } from \"./secret-generator\";\n\nexport const VaultOwnerKind = /* @__PURE__ */ defineSchema(() =>\n z.enum([\"user\", \"workspace\", \"organization\", \"task\"]),\n);\nexport type VaultOwnerKind = z.infer<typeof VaultOwnerKind>;\nexport const VaultSource = /* @__PURE__ */ defineSchema(() =>\n z.enum([\"opengeni\", \"onepassword\", \"host\", \"external\", \"protonpass\", \"keeper\", \"bitwarden\"]),\n);\nexport type VaultSource = z.infer<typeof VaultSource>;\nexport const VaultMode = /* @__PURE__ */ defineSchema(() => z.enum([\"read_write\", \"read_only\"]));\nexport type VaultMode = z.infer<typeof VaultMode>;\nexport const VaultSyncStatus = /* @__PURE__ */ defineSchema(() =>\n z.enum([\"ok\", \"syncing\", \"error\", \"auth_expired\", \"rate_limited\"]),\n);\nexport type VaultSyncStatus = z.infer<typeof VaultSyncStatus>;\nexport const VaultItemType = /* @__PURE__ */ defineSchema(() =>\n z.enum([\"login\", \"api_key\", \"note\", \"file\", \"passkey\"]),\n);\nexport type VaultItemType = z.infer<typeof VaultItemType>;\nexport const VaultFieldKind = /* @__PURE__ */ defineSchema(() =>\n z.enum([\"text\", \"concealed\", \"totp\", \"file\"]),\n);\nexport type VaultFieldKind = z.infer<typeof VaultFieldKind>;\n\n/** Effective operations, not a promise that upstream permissions cannot change. */\nexport const VaultProviderOperations = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n createItemTypes: z.array(VaultItemType).max(5),\n updateItem: z.boolean(),\n removeField: z.boolean(),\n archiveItem: z.boolean(),\n archiveKind: z.enum([\"archive\", \"trash\", \"none\"]),\n /** Permanent provider deletion is deliberately not exposed. */\n deleteItem: z.literal(false),\n restoreItem: z.boolean(),\n readFiles: z.boolean(),\n writeFiles: z.boolean(),\n createTotp: z.boolean(),\n updateTotp: z.boolean(),\n createVault: z.boolean(),\n restoreFieldHistory: z.boolean(),\n })\n .strict(),\n);\nexport type VaultProviderOperations = z.infer<typeof VaultProviderOperations>;\n\n/** A successful mirror check does not prove a customer's upstream cache is current. */\nexport const VaultProviderFreshness = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n state: z.enum([\"current\", \"stale\", \"refreshing\", \"unavailable\"]),\n lastCheckedAt: z.string().datetime().nullable(),\n sourceSyncedAt: z.string().datetime().nullable(),\n source: z.enum([\"live\", \"cache\", \"unknown\"]),\n errorCode: z.string().max(100).nullable(),\n retryAt: z.string().datetime().nullable(),\n })\n .strict(),\n);\nexport type VaultProviderFreshness = z.infer<typeof VaultProviderFreshness>;\n/** Lookup order for references that name no vault; index = tier. */\nexport const VAULT_LOOKUP_TIERS = [\"task\", \"user\", \"workspace\", \"organization\"] as const;\nexport type VaultLookupTier = (typeof VAULT_LOOKUP_TIERS)[number];\n\nexport const VAULT_LIMITS = {\n vaultsPerOwnerScope: 200,\n itemsPerVault: 2_000,\n fieldsPerItem: 50,\n versionsPerField: 10,\n nameMaxChars: 120,\n descriptionMaxChars: 2_000,\n websitesPerItem: 20,\n websiteMaxChars: 2_048,\n textValueMaxBytes: 65_536,\n fileValueMaxBytes: 262_144,\n referenceMaxChars: 300,\n execEnvMaxBytes: 262_144,\n execValueMaxBytes: 102_400,\n policyVaultIdsMax: 200,\n searchResultsMax: 50,\n /** Items one agent search call examines before it returns a cursor. */\n searchScanMax: 1_000,\n searchCursorMaxChars: 1_024,\n providerReadsPerAttempt: 50,\n providerValueCacheMs: 60_000,\n} as const;\n\n/** Default names of lazily created hosted vaults (Q-06). */\nexport const DEFAULT_VAULT_NAMES = {\n user: \"Private\",\n workspace: \"Shared\",\n task: \"Task\",\n} as const;\n\n/** Default primary field per item type (§10B.2); passkeys have none. */\nexport const VAULT_DEFAULT_PRIMARY_FIELD: Readonly<Record<VaultItemType, string | null>> = {\n login: \"password\",\n api_key: \"value\",\n note: \"note\",\n file: \"file\",\n passkey: null,\n};\n\n/** Fixed passkey fields (D20). `privateKey` is concealed; the rest are text. */\nexport const PASSKEY_FIELD_NAMES = [\n \"rpId\",\n \"credentialId\",\n \"userHandle\",\n \"userName\",\n \"privateKey\",\n] as const;\n\n// Forbidden anywhere in a name: / { } # \\ and C0/C1 control characters.\n// oxlint-disable-next-line no-control-regex\nconst FORBIDDEN_NAME_CHARACTERS = /[/{}#\\\\\\u0000-\\u001f\\u007f-\\u009f]/;\n\n/**\n * Q-10: 1–120 characters, no `/ { } # \\` or control characters, no leading\n * or trailing whitespace, and not starting with `id:` (reserved for the ID\n * reference form). Interior spaces and any other Unicode are allowed.\n */\nexport function isValidSecretName(name: string): boolean {\n if (typeof name !== \"string\") return false;\n const length = [...name].length;\n if (length < 1 || length > VAULT_LIMITS.nameMaxChars) return false;\n if (FORBIDDEN_NAME_CHARACTERS.test(name)) return false;\n if (name.trim() !== name) return false;\n if (name.toLowerCase().startsWith(\"id:\")) return false;\n return true;\n}\n\n/** True when `name` is reserved as a field name (the `/otp` suffix). */\nexport function isReservedVaultFieldName(name: string): boolean {\n return name.normalize(\"NFC\").trim().toLowerCase() === \"otp\";\n}\n\nexport const VaultName = /* @__PURE__ */ defineSchema(() =>\n z.string().min(1).max(VAULT_LIMITS.nameMaxChars).refine(isValidSecretName, \"invalid_secret_name\"),\n);\nexport const VaultFieldName = /* @__PURE__ */ defineSchema(() =>\n VaultName.refine((name) => !isReservedVaultFieldName(name), \"invalid_secret_name\"),\n);\n\nexport const VaultPolicy = /* @__PURE__ */ defineSchema(() =>\n z.discriminatedUnion(\"mode\", [\n z.object({ mode: z.literal(\"all\") }).strict(),\n z\n .object({\n mode: z.literal(\"selected\"),\n vaultIds: z.array(z.string().uuid()).max(VAULT_LIMITS.policyVaultIdsMax),\n })\n .strict(),\n ]),\n);\nexport type VaultPolicy = z.infer<typeof VaultPolicy>;\nexport const VAULT_POLICY_ALL: VaultPolicy = Object.freeze({ mode: \"all\" }) as VaultPolicy;\n\n/**\n * Intersect two policies. `all` is the identity; two selections keep the IDs\n * present in both (order of `a`).\n */\nexport function intersectVaultPolicies(a: VaultPolicy, b: VaultPolicy): VaultPolicy {\n if (a.mode === \"all\")\n return b.mode === \"all\" ? VAULT_POLICY_ALL : { mode: \"selected\", vaultIds: [...b.vaultIds] };\n if (b.mode === \"all\") return { mode: \"selected\", vaultIds: [...a.vaultIds] };\n const allowed = new Set(b.vaultIds);\n return { mode: \"selected\", vaultIds: a.vaultIds.filter((id) => allowed.has(id)) };\n}\n\nexport const VaultAvailability = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n allowedWorkspaceIds: z.array(z.string().uuid()).max(500).nullable(), // null = every workspace\n allowPersonalWorkspaces: z.boolean(),\n })\n .strict(),\n);\nexport type VaultAvailability = z.infer<typeof VaultAvailability>;\n\nexport const VaultSummary = /* @__PURE__ */ defineSchema(() =>\n z.object({\n id: z.string().uuid(),\n workspaceId: z.string().uuid(),\n ownerKind: VaultOwnerKind,\n /** \"Only me\" | workspace name | organization name | \"This task\" */\n ownerLabel: z.string(),\n rootSessionId: z.string().uuid().nullable(),\n name: z.string(),\n description: z.string().nullable(),\n source: VaultSource,\n mode: VaultMode,\n syncStatus: VaultSyncStatus,\n syncErrorCode: z.string().nullable(),\n syncErrorMessage: z.string().nullable(),\n lastSyncedAt: z.string().nullable(),\n rateLimitedUntil: z.string().nullable(),\n providerConnectionId: z.string().uuid().nullable(),\n providerOperations: VaultProviderOperations.optional(),\n freshness: VaultProviderFreshness.optional(),\n /** Organization and Only-me vaults; null for workspace and task vaults. */\n availability: VaultAvailability.nullable(),\n isDefault: z.boolean(),\n itemCount: z.number().int(),\n canWrite: z.boolean(),\n canManage: z.boolean(),\n generation: z.number().int(),\n createdAt: z.string(),\n updatedAt: z.string(),\n }),\n);\nexport type VaultSummary = z.infer<typeof VaultSummary>;\n\nexport const VaultItemReferences = /* @__PURE__ */ defineSchema(() =>\n z.object({\n primary: z.string().nullable(),\n otp: z.string().nullable(),\n byField: z.record(z.string(), z.string()),\n }),\n);\nexport type VaultItemReferences = z.infer<typeof VaultItemReferences>;\n\nexport const VaultItemSummary = /* @__PURE__ */ defineSchema(() =>\n z.object({\n id: z.string().uuid(),\n vaultId: z.string().uuid(),\n type: VaultItemType,\n name: z.string(),\n websites: z.array(z.string()),\n /** Value of a text field named \"username\". */\n username: z.string().nullable(),\n hasTotp: z.boolean(),\n hasPasskey: z.boolean(),\n expiresAt: z.string().nullable(),\n archivedAt: z.string().nullable(),\n lastUsedAt: z.string().nullable(),\n updatedAt: z.string(),\n references: VaultItemReferences,\n }),\n);\nexport type VaultItemSummary = z.infer<typeof VaultItemSummary>;\n\nexport const VaultItemField = /* @__PURE__ */ defineSchema(() =>\n z.object({\n id: z.string().uuid(),\n name: z.string(),\n kind: VaultFieldKind,\n position: z.number().int(),\n /** null for provider fields */\n currentVersion: z.number().int().nullable(),\n /** Plaintext ONLY for kind \"text\"; null otherwise. */\n value: z.string().nullable(),\n fileName: z.string().nullable(),\n fileSize: z.number().int().nullable(),\n reference: z.string(),\n updatedAt: z.string(),\n }),\n);\nexport type VaultItemField = z.infer<typeof VaultItemField>;\n\nexport const PasskeySummary = /* @__PURE__ */ defineSchema(() =>\n z.object({\n rpId: z.string(),\n userName: z.string().nullable(),\n /** Last 8 characters of the credential ID. */\n credentialIdSuffix: z.string(),\n signCount: z.number().int(),\n leasedUntil: z.string().nullable(),\n lastUsedAt: z.string().nullable(),\n }),\n);\nexport type PasskeySummary = z.infer<typeof PasskeySummary>;\n\nexport const VaultItem = /* @__PURE__ */ defineSchema(() =>\n VaultItemSummary.extend({\n fields: z.array(VaultItemField),\n passkey: PasskeySummary.nullable(),\n aliases: z.array(z.string()),\n primaryFieldId: z.string().uuid().nullable(),\n createdBySubjectId: z.string().nullable(),\n createdAt: z.string(),\n generation: z.number().int(),\n }),\n);\nexport type VaultItem = z.infer<typeof VaultItem>;\n\nexport const VaultVersionCreatedByKind = /* @__PURE__ */ defineSchema(() =>\n z.enum([\"human\", \"agent\", \"api_key\", \"migration\", \"provider\", \"system\"]),\n);\nexport type VaultVersionCreatedByKind = z.infer<typeof VaultVersionCreatedByKind>;\n\nexport const VaultFieldVersionMeta = /* @__PURE__ */ defineSchema(() =>\n z.object({\n version: z.number().int(),\n current: z.boolean(),\n createdAt: z.string(),\n createdByKind: VaultVersionCreatedByKind,\n createdBySubjectId: z.string().nullable(),\n }),\n);\nexport type VaultFieldVersionMeta = z.infer<typeof VaultFieldVersionMeta>;\n\n// ---------------------------------------------------------------------------\n// Requests\n// ---------------------------------------------------------------------------\n\nexport const CreateVaultRequest = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n name: VaultName,\n description: z.string().max(VAULT_LIMITS.descriptionMaxChars).optional(),\n ownerKind: z.enum([\"user\", \"workspace\", \"organization\"]),\n availability: VaultAvailability.optional(),\n })\n .strict(),\n);\nexport type CreateVaultRequest = z.infer<typeof CreateVaultRequest>;\n\nexport const UpdateVaultRequest = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n expectedGeneration: z.number().int(),\n name: VaultName.optional(),\n description: z.string().max(VAULT_LIMITS.descriptionMaxChars).nullable().optional(),\n availability: VaultAvailability.optional(),\n })\n .strict(),\n);\nexport type UpdateVaultRequest = z.infer<typeof UpdateVaultRequest>;\n\nexport const DeleteVaultRequest = /* @__PURE__ */ defineSchema(() =>\n z.object({ confirmName: z.string().min(1) }).strict(),\n);\nexport type DeleteVaultRequest = z.infer<typeof DeleteVaultRequest>;\n\nconst VALUE_SOURCE_KEYS = [\n \"value\",\n \"generate\",\n \"fromReference\",\n \"fileBase64\",\n \"restoreVersion\",\n \"remove\",\n] as const;\n\n/** Exactly one value source per field input. */\nexport function exactlyOneValueSource(\n input: Partial<Record<(typeof VALUE_SOURCE_KEYS)[number], unknown>>,\n): boolean {\n return VALUE_SOURCE_KEYS.filter((key) => input[key] !== undefined).length === 1;\n}\n\nexport const VaultFieldInput = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n fieldId: z.string().uuid().optional(),\n name: VaultFieldName,\n /** Default concealed; a field named \"username\" defaults to text. */\n kind: VaultFieldKind.optional(),\n value: z.string().optional(),\n generate: GeneratePasswordSpec.optional(),\n fromReference: z.string().max(VAULT_LIMITS.referenceMaxChars).optional(),\n fileBase64: z.string().optional(),\n fileName: z.string().max(255).optional(),\n restoreVersion: z.number().int().optional(),\n remove: z.literal(true).optional(),\n })\n .strict()\n .refine(\n exactlyOneValueSource,\n \"exactly one of value|generate|fromReference|fileBase64|restoreVersion|remove\",\n ),\n);\nexport type VaultFieldInput = z.infer<typeof VaultFieldInput>;\n\nconst CreateVaultItemShape = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n type: VaultItemType,\n name: VaultName,\n websites: z\n .array(z.string().max(VAULT_LIMITS.websiteMaxChars))\n .max(VAULT_LIMITS.websitesPerItem)\n .optional(),\n expiresAt: z.string().datetime({ offset: true }).nullable().optional(),\n fields: z.array(VaultFieldInput).max(VAULT_LIMITS.fieldsPerItem),\n primaryFieldName: z.string().optional(),\n })\n .strict(),\n);\nexport const CreateVaultItemRequest = CreateVaultItemShape;\nexport type CreateVaultItemRequest = z.infer<typeof CreateVaultItemRequest>;\n\nexport const UpdateVaultItemRequest = /* @__PURE__ */ defineSchema(() =>\n CreateVaultItemShape.partial().extend({ expectedGeneration: z.number().int() }).strict(),\n);\nexport type UpdateVaultItemRequest = z.infer<typeof UpdateVaultItemRequest>;\n\nexport const MoveVaultItemRequest = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n targetVaultId: z.string().uuid(),\n mode: z.enum([\"move\", \"copy\"]),\n newName: VaultName.optional(),\n })\n .strict(),\n);\nexport type MoveVaultItemRequest = z.infer<typeof MoveVaultItemRequest>;\n\nexport const RevealVaultFieldRequest = /* @__PURE__ */ defineSchema(() =>\n z.object({ version: z.number().int().optional() }).strict(),\n);\nexport type RevealVaultFieldRequest = z.infer<typeof RevealVaultFieldRequest>;\n\nexport const RevealVaultFieldResponse = /* @__PURE__ */ defineSchema(() =>\n z.object({\n value: z.string(),\n encoding: z.enum([\"utf8\", \"base64\"]),\n version: z.number().int().nullable(),\n totp: z\n .object({ code: z.string(), periodSeconds: z.number().int(), expiresAt: z.string() })\n .nullable(),\n }),\n);\nexport type RevealVaultFieldResponse = z.infer<typeof RevealVaultFieldResponse>;\n\nexport const RestoreVaultFieldVersionRequest = /* @__PURE__ */ defineSchema(() =>\n z.object({ version: z.number().int().positive() }).strict(),\n);\nexport type RestoreVaultFieldVersionRequest = z.infer<typeof RestoreVaultFieldVersionRequest>;\n\nconst QueryBoolean = /* @__PURE__ */ defineSchema(() =>\n z.preprocess(\n (value) => (value === \"true\" ? true : value === \"false\" ? false : value),\n z.boolean(),\n ),\n);\nconst QueryInt = /* @__PURE__ */ defineSchema(() =>\n z.preprocess(\n (value) => (typeof value === \"string\" && /^\\d+$/.test(value) ? Number(value) : value),\n z.number().int().min(1).max(200),\n ),\n);\n\n/** Query strings are accepted as strings too (\"true\", \"50\"). */\nexport const ListVaultItemsQuery = /* @__PURE__ */ defineSchema(() =>\n z.object({\n q: z.string().max(200).optional(),\n type: VaultItemType.optional(),\n includeArchived: QueryBoolean.optional(),\n cursor: z.string().optional(),\n limit: QueryInt.optional(),\n }),\n);\nexport type ListVaultItemsQuery = z.infer<typeof ListVaultItemsQuery>;\n\nexport const ListVaultsResponse = /* @__PURE__ */ defineSchema(() =>\n z.object({ vaults: z.array(VaultSummary) }),\n);\nexport type ListVaultsResponse = z.infer<typeof ListVaultsResponse>;\nexport const ListVaultItemsResponse = /* @__PURE__ */ defineSchema(() =>\n z.object({\n items: z.array(VaultItemSummary),\n nextCursor: z.string().nullable(),\n }),\n);\nexport type ListVaultItemsResponse = z.infer<typeof ListVaultItemsResponse>;\nexport const ListVaultFieldVersionsResponse = /* @__PURE__ */ defineSchema(() =>\n z.object({\n versions: z.array(VaultFieldVersionMeta),\n }),\n);\nexport type ListVaultFieldVersionsResponse = z.infer<typeof ListVaultFieldVersionsResponse>;\n\nexport const SetSessionVaultPolicyRequest = /* @__PURE__ */ defineSchema(() =>\n z.object({ policy: VaultPolicy }).strict(),\n);\nexport type SetSessionVaultPolicyRequest = z.infer<typeof SetSessionVaultPolicyRequest>;\n\nexport const SessionSecretsView = /* @__PURE__ */ defineSchema(() =>\n z.object({\n capabilityEnabled: z.boolean(),\n policy: VaultPolicy,\n effectiveVaultIds: z.array(z.string().uuid()),\n /** Nearest ancestor that narrowed, if any. */\n narrowedBySessionId: z.string().uuid().nullable(),\n taskVault: VaultSummary.nullable(),\n taskItems: z.array(VaultItemSummary),\n reachableVaults: z.array(\n VaultSummary.extend({ selected: z.boolean(), selectable: z.boolean() }),\n ),\n }),\n);\nexport type SessionSecretsView = z.infer<typeof SessionSecretsView>;\n\nexport const InstallOnePasswordRequest = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n // Real service-account tokens are long; the dev fakes (ops_fake_healthy) are 16 chars.\n token: z.string().trim().min(16).max(4_096),\n ownership: z.enum([\"user\", \"workspace\", \"organization\"]),\n planTier: z.enum([\"family\", \"teams\", \"business\"]).default(\"teams\"),\n label: z.string().max(120).optional(),\n })\n .strict(),\n);\nexport type InstallOnePasswordRequest = z.infer<typeof InstallOnePasswordRequest>;\n\nexport const ProviderVaultMeta = /* @__PURE__ */ defineSchema(() =>\n z.object({\n externalVaultId: z.string(),\n name: z.string(),\n itemCount: z.number().int().nullable(),\n linkedVaultId: z.string().uuid().nullable(),\n /** Unknown means the provider does not expose the grant; writes still check upstream. */\n writeAccess: z.enum([\"read_only\", \"read_write\", \"unknown\"]).optional(),\n operations: VaultProviderOperations.optional(),\n }),\n);\nexport type ProviderVaultMeta = z.infer<typeof ProviderVaultMeta>;\n\nexport const InstallOnePasswordResponse = /* @__PURE__ */ defineSchema(() =>\n z.object({\n connectionId: z.string().uuid(),\n accountName: z.string().nullable(),\n vaults: z.array(ProviderVaultMeta),\n }),\n);\nexport type InstallOnePasswordResponse = z.infer<typeof InstallOnePasswordResponse>;\n\n/** A 1Password service account connected in a workspace. Never carries the token. */\nexport const OnePasswordConnectionSummary = /* @__PURE__ */ defineSchema(() =>\n z.object({\n id: z.string().uuid(),\n /** Who can use the vaults linked through it. */\n ownership: z.enum([\"user\", \"workspace\", \"organization\"]),\n /** Sign-in host from the token, for example \"my.1password.com\". */\n accountName: z.string().nullable(),\n label: z.string().nullable(),\n planTier: z.enum([\"family\", \"teams\", \"business\"]),\n /** When the current token was last checked against 1Password. */\n verifiedAt: z.string(),\n createdAt: z.string(),\n createdBySubjectId: z.string().nullable(),\n /** The caller can link vaults, replace the token and disconnect it. */\n canManage: z.boolean(),\n }),\n);\nexport type OnePasswordConnectionSummary = z.infer<typeof OnePasswordConnectionSummary>;\n\nexport const ListOnePasswordConnectionsResponse = /* @__PURE__ */ defineSchema(() =>\n z.object({\n connections: z.array(OnePasswordConnectionSummary),\n }),\n);\nexport type ListOnePasswordConnectionsResponse = z.infer<typeof ListOnePasswordConnectionsResponse>;\n\n/** A new token for an existing connection; its linked vaults keep working. */\nexport const ReplaceOnePasswordTokenRequest = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n token: z.string().trim().min(16).max(4_096),\n planTier: z.enum([\"family\", \"teams\", \"business\"]).optional(),\n })\n .strict(),\n);\nexport type ReplaceOnePasswordTokenRequest = z.infer<typeof ReplaceOnePasswordTokenRequest>;\n\nexport const DisconnectOnePasswordResponse = /* @__PURE__ */ defineSchema(() =>\n z.object({\n /** The Opengeni vaults that were unlinked. Nothing is deleted in 1Password. */\n unlinkedVaultIds: z.array(z.string().uuid()),\n }),\n);\nexport type DisconnectOnePasswordResponse = z.infer<typeof DisconnectOnePasswordResponse>;\n\n/** Providers installed through the generic connection lifecycle. */\nexport const ExternalVaultProviderKind = /* @__PURE__ */ defineSchema(() =>\n z.enum([\"external\", \"protonpass\", \"keeper\", \"bitwarden\"]),\n);\nexport type ExternalVaultProviderKind = z.infer<typeof ExternalVaultProviderKind>;\n\n/** Write-only setup material. Never included in connection summaries or logs. */\nexport const VaultProviderCredentials = /* @__PURE__ */ defineSchema(() =>\n z.discriminatedUnion(\"provider\", [\n z\n .object({\n provider: z.literal(\"external\"),\n endpoint: z.string().url().max(2_048),\n signingSecret: z.string().min(32).max(4_096),\n })\n .strict(),\n z\n .object({\n provider: z.literal(\"bitwarden\"),\n endpoint: z.string().url().max(2_048),\n signingSecret: z.string().min(32).max(4_096),\n })\n .strict(),\n z\n .object({\n provider: z.literal(\"protonpass\"),\n token: z.string().min(16).max(4_096),\n })\n .strict(),\n z\n .object({\n provider: z.literal(\"keeper\"),\n oneTimeToken: z.string().min(16).max(4_096),\n /** Optional region host for tokens that do not encode one. */\n hostname: z.string().max(253).optional(),\n })\n .strict(),\n ]),\n);\nexport type VaultProviderCredentials = z.infer<typeof VaultProviderCredentials>;\n\nexport const InstallVaultProviderRequest = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n credentials: VaultProviderCredentials,\n ownership: z.enum([\"user\", \"workspace\", \"organization\"]),\n label: z.string().trim().min(1).max(120).optional(),\n })\n .strict(),\n);\nexport type InstallVaultProviderRequest = z.infer<typeof InstallVaultProviderRequest>;\n\nexport const ReplaceVaultProviderCredentialsRequest = /* @__PURE__ */ defineSchema(() =>\n z.object({ credentials: VaultProviderCredentials }).strict(),\n);\nexport type ReplaceVaultProviderCredentialsRequest = z.infer<\n typeof ReplaceVaultProviderCredentialsRequest\n>;\n\n/** Includes legacy 1Password connections; existing 1Password routes remain supported. */\nexport const VaultProviderConnectionSummary = /* @__PURE__ */ defineSchema(() =>\n z.object({\n id: z.string().uuid(),\n provider: z.enum([\"onepassword\", \"external\", \"protonpass\", \"keeper\", \"bitwarden\"]),\n ownership: z.enum([\"user\", \"workspace\", \"organization\"]),\n accountName: z.string().nullable(),\n label: z.string().nullable(),\n verifiedAt: z.string(),\n createdAt: z.string(),\n createdBySubjectId: z.string().nullable(),\n canManage: z.boolean(),\n operations: VaultProviderOperations,\n /** Only 1Password uses a plan tier. */\n planTier: z.enum([\"family\", \"teams\", \"business\"]).optional(),\n /** Unavailable means this deployment cannot run the adapter, not bad credentials. */\n available: z.boolean(),\n /** Setup material is saved, but provider verification has not completed. */\n verificationStatus: z.enum([\"ready\", \"pending\"]).optional(),\n }),\n);\nexport type VaultProviderConnectionSummary = z.infer<typeof VaultProviderConnectionSummary>;\n\n/** Deployment configuration, independent of whether anyone has connected yet. */\nexport const VaultProviderAvailability = /* @__PURE__ */ defineSchema(() =>\n z.object({\n provider: VaultProviderConnectionSummary.shape.provider,\n available: z.boolean(),\n reason: z.enum([\"not_enabled\"]).nullable(),\n }),\n);\nexport type VaultProviderAvailability = z.infer<typeof VaultProviderAvailability>;\n\nexport const ListVaultProviderConnectionsResponse = /* @__PURE__ */ defineSchema(() =>\n z.object({\n connections: z.array(VaultProviderConnectionSummary),\n /** Additive: older servers may omit this metadata-only deployment catalog. */\n providers: z.array(VaultProviderAvailability).optional(),\n }),\n);\nexport type ListVaultProviderConnectionsResponse = z.infer<\n typeof ListVaultProviderConnectionsResponse\n>;\n\nexport const InstallVaultProviderResponse = /* @__PURE__ */ defineSchema(() =>\n z.object({\n connectionId: z.string().uuid(),\n accountName: z.string().nullable(),\n provider: ExternalVaultProviderKind,\n operations: VaultProviderOperations,\n vaults: z.array(ProviderVaultMeta),\n /** Retry verification on this connection; never replay a consumed bootstrap token. */\n discoveryPending: z.boolean().optional(),\n errorCode: z.string().max(100).optional(),\n }),\n);\nexport type InstallVaultProviderResponse = z.infer<typeof InstallVaultProviderResponse>;\n\nexport const DisconnectVaultProviderResponse = /* @__PURE__ */ defineSchema(() =>\n z.object({ unlinkedVaultIds: z.array(z.string().uuid()) }),\n);\nexport type DisconnectVaultProviderResponse = z.infer<typeof DisconnectVaultProviderResponse>;\n\nexport const LinkProviderVaultRequest = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n provider: z.enum([\"onepassword\", \"host\", \"external\", \"protonpass\", \"keeper\", \"bitwarden\"]),\n /** Required except for an in-process host provider. */\n connectionId: z.string().uuid().optional(),\n externalVaultId: z.string(),\n ownerKind: z.enum([\"user\", \"workspace\", \"organization\"]),\n mode: VaultMode,\n name: VaultName.optional(),\n availability: VaultAvailability.optional(),\n })\n .strict(),\n);\nexport type LinkProviderVaultRequest = z.infer<typeof LinkProviderVaultRequest>;\n\nexport const CreateManagedProviderVaultRequest = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n name: VaultName,\n ownerKind: z.enum([\"user\", \"workspace\", \"organization\"]),\n groupId: z.string().optional(),\n })\n .strict(),\n);\nexport type CreateManagedProviderVaultRequest = z.infer<typeof CreateManagedProviderVaultRequest>;\n\n// ---------------------------------------------------------------------------\n// Errors\n// ---------------------------------------------------------------------------\n\nexport const VaultErrorCode = /* @__PURE__ */ defineSchema(() =>\n z.enum([\n \"vault_not_found\",\n \"vault_item_not_found\",\n \"vault_field_not_found\",\n \"vault_name_conflict\",\n \"vault_item_name_conflict\",\n \"vault_limit_reached\",\n \"vault_read_only\",\n \"vault_generation_conflict\",\n \"vault_permission_denied\",\n /** A session's vault policy reaches outside its parent's effective vaults (AX-2). */\n \"vault_policy_outside_parent\",\n \"vault_reveal_requires_human\",\n \"encryption_key_missing\",\n \"provider_auth_invalid\",\n \"provider_auth_expired\",\n \"provider_rate_limited\",\n \"provider_unavailable\",\n \"provider_conflict\",\n \"provider_locked\",\n \"provider_inventory_incomplete\",\n \"provider_outcome_unknown\",\n \"variable_sets_removed\",\n \"secret_save_forbidden\",\n \"invalid_secret_name\",\n \"secret_value_too_large\",\n \"human_auth_required\",\n \"secret_search_cursor_invalid\",\n ]),\n);\nexport type VaultErrorCode = z.infer<typeof VaultErrorCode>;\n\nexport const VaultApiError = /* @__PURE__ */ defineSchema(() =>\n z.object({\n error: VaultErrorCode,\n message: z.string(),\n details: z.record(z.string(), z.unknown()).optional(),\n }),\n);\nexport type VaultApiError = z.infer<typeof VaultApiError>;\n\n/** HTTP status for every vault error code (§10B.1.1). */\nexport const VAULT_ERROR_HTTP_STATUS: Readonly<Record<VaultErrorCode, number>> = {\n vault_not_found: 404,\n vault_item_not_found: 404,\n vault_field_not_found: 404,\n vault_name_conflict: 409,\n vault_item_name_conflict: 409,\n vault_generation_conflict: 409,\n provider_conflict: 409,\n vault_limit_reached: 422,\n invalid_secret_name: 422,\n secret_value_too_large: 422,\n secret_save_forbidden: 422,\n secret_search_cursor_invalid: 422,\n vault_policy_outside_parent: 422,\n vault_read_only: 403,\n vault_permission_denied: 403,\n vault_reveal_requires_human: 403,\n human_auth_required: 403,\n variable_sets_removed: 410,\n encryption_key_missing: 503,\n provider_unavailable: 503,\n provider_rate_limited: 429,\n provider_auth_invalid: 401,\n provider_auth_expired: 401,\n provider_locked: 423,\n provider_inventory_incomplete: 503,\n provider_outcome_unknown: 503,\n};\n\n// ---------------------------------------------------------------------------\n// Agent tools (capability `secrets`)\n// ---------------------------------------------------------------------------\n\nexport const SECRET_TOOL_NAMES = [\n \"secret_search\",\n \"secret_save\",\n \"secret_get\",\n \"secret_move\",\n \"secret_delete\",\n] as const;\nexport type SecretToolName = (typeof SECRET_TOOL_NAMES)[number];\n\nexport const SECRET_SAVE_TO = /* @__PURE__ */ defineSchema(() =>\n z.enum([\"user\", \"task\", \"workspace\"]),\n);\nexport type SecretSaveTo = z.infer<typeof SECRET_SAVE_TO>;\n\nexport const SecretSearchInput = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n query: z.string().max(200).optional(),\n website: z.string().max(VAULT_LIMITS.websiteMaxChars).optional(),\n type: VaultItemType.optional(),\n /** Vault name or ID. */\n vault: z.string().max(200).optional(),\n limit: z.number().int().min(1).max(VAULT_LIMITS.searchResultsMax).default(20),\n /** `nextCursor` from the previous call with the same filters. */\n cursor: z.string().max(VAULT_LIMITS.searchCursorMaxChars).optional(),\n /** Refresh provider metadata and subsequent value reads; never bypass rate limits. */\n refresh: z.boolean().optional(),\n })\n .strict(),\n);\nexport type SecretSearchInput = z.infer<typeof SecretSearchInput>;\n\nexport const SecretSearchResult = /* @__PURE__ */ defineSchema(() =>\n z.object({\n vault: z.object({\n id: z.string().uuid(),\n name: z.string(),\n ownerKind: VaultOwnerKind,\n source: VaultSource,\n mode: VaultMode,\n }),\n item: z.object({\n id: z.string().uuid(),\n name: z.string(),\n type: VaultItemType,\n websites: z.array(z.string()),\n username: z.string().nullable(),\n hasTotp: z.boolean(),\n hasPasskey: z.boolean(),\n expiresAt: z.string().nullable(),\n }),\n fields: z.array(z.object({ name: z.string(), kind: VaultFieldKind })),\n references: VaultItemReferences,\n }),\n);\nexport type SecretSearchResult = z.infer<typeof SecretSearchResult>;\nexport const SecretSearchVault = /* @__PURE__ */ defineSchema(() =>\n z.object({\n id: z.string().uuid(),\n name: z.string(),\n ownerKind: VaultOwnerKind,\n source: VaultSource,\n mode: VaultMode,\n itemCount: z.number().int().nonnegative(),\n freshness: VaultProviderFreshness.optional(),\n }),\n);\nexport type SecretSearchVault = z.infer<typeof SecretSearchVault>;\nexport const SecretSearchOutput = /* @__PURE__ */ defineSchema(() =>\n z.object({\n items: z.array(SecretSearchResult),\n /** True when more matches remain; pass `nextCursor` to continue. */\n truncated: z.boolean(),\n nextCursor: z.string().nullable(),\n /** Every vault the caller can reach, on the first page only. */\n vaults: z.array(SecretSearchVault).optional(),\n /** False when a reachable provider could not be checked; empty items are not proof of absence. */\n complete: z.boolean().optional(),\n /** Included on every page so failures are not lost after page one. */\n sources: z\n .array(\n z.object({\n vaultId: z.string().uuid(),\n freshness: VaultProviderFreshness,\n }),\n )\n .optional(),\n }),\n);\nexport type SecretSearchOutput = z.infer<typeof SecretSearchOutput>;\n\nexport const SecretSaveFieldInput = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n name: VaultFieldName,\n kind: VaultFieldKind.optional(),\n value: z.string().optional(),\n generate: GeneratePasswordSpec.optional(),\n fromReference: z.string().max(VAULT_LIMITS.referenceMaxChars).optional(),\n restoreVersion: z.number().int().optional(),\n })\n .strict()\n .refine(exactlyOneValueSource, \"exactly one of value|generate|fromReference|restoreVersion\"),\n);\nexport type SecretSaveFieldInput = z.infer<typeof SecretSaveFieldInput>;\n\nexport const SecretSaveInput = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n item: VaultName,\n /** Vault name or ID; defaults to the saveTo scope's default vault. */\n vault: z.string().max(200).optional(),\n saveTo: SECRET_SAVE_TO.optional(),\n type: VaultItemType.default(\"login\"),\n websites: z\n .array(z.string().max(VAULT_LIMITS.websiteMaxChars))\n .max(VAULT_LIMITS.websitesPerItem)\n .optional(),\n username: z.string().max(512).optional(),\n fields: z.array(SecretSaveFieldInput).max(VAULT_LIMITS.fieldsPerItem).optional(),\n mode: z.enum([\"create\", \"update\", \"upsert\"]).default(\"upsert\"),\n })\n .strict(),\n);\nexport type SecretSaveInput = z.infer<typeof SecretSaveInput>;\nexport const SecretSaveOutput = /* @__PURE__ */ defineSchema(() =>\n z.object({\n item: VaultItemSummary,\n references: VaultItemReferences,\n generatedFields: z.array(z.string()),\n }),\n);\nexport type SecretSaveOutput = z.infer<typeof SecretSaveOutput>;\n\nexport const SecretGetInput = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n reference: z.string().min(1).max(VAULT_LIMITS.referenceMaxChars),\n version: z.number().int().optional(),\n })\n .strict(),\n);\nexport type SecretGetInput = z.infer<typeof SecretGetInput>;\nexport const SecretGetOutput = RevealVaultFieldResponse;\nexport type SecretGetOutput = RevealVaultFieldResponse;\n\nexport const SecretMoveInput = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n reference: z.string().min(1).max(VAULT_LIMITS.referenceMaxChars),\n /** Vault name or ID. */\n toVault: z.string().min(1).max(200),\n mode: z.enum([\"move\", \"copy\"]).default(\"move\"),\n newName: VaultName.optional(),\n })\n .strict(),\n);\nexport type SecretMoveInput = z.infer<typeof SecretMoveInput>;\nexport const SecretMoveOutput = /* @__PURE__ */ defineSchema(() =>\n z.object({\n item: VaultItemSummary,\n references: VaultItemReferences,\n }),\n);\nexport type SecretMoveOutput = z.infer<typeof SecretMoveOutput>;\n\nexport const SecretDeleteInput = /* @__PURE__ */ defineSchema(() =>\n z.object({ reference: z.string().min(1).max(VAULT_LIMITS.referenceMaxChars) }).strict(),\n);\nexport type SecretDeleteInput = z.infer<typeof SecretDeleteInput>;\nexport const SecretDeleteOutput = /* @__PURE__ */ defineSchema(() =>\n z.object({ archived: z.literal(true), restoreHint: z.string() }),\n);\nexport type SecretDeleteOutput = z.infer<typeof SecretDeleteOutput>;\n\n// ---------------------------------------------------------------------------\n// Events, audit and metrics (§10B.1.9)\n// ---------------------------------------------------------------------------\n\nexport const VAULT_POLICY_UPDATED_EVENT_TYPE = \"session.vaultPolicy.updated\" as const;\n\nexport const VAULT_AUDIT_ACTIONS = [\n \"vault.created\",\n \"vault.updated\",\n \"vault.deleted\",\n \"vault.item.created\",\n \"vault.item.updated\",\n \"vault.item.archived\",\n \"vault.item.restored\",\n \"vault.item.deleted\",\n \"vault.item.moved\",\n \"vault.item.copied\",\n \"vault.field.set\",\n \"vault.field.revealed\",\n \"vault.secret.used\",\n \"vault.secret.read\",\n \"vault.secret.read.denied\",\n \"vault.reference.failed\",\n \"vault.provider.connected\",\n \"vault.provider.linked\",\n \"vault.provider.synced\",\n \"vault.provider.error\",\n \"vault.passkey.registered\",\n \"vault.passkey.asserted\",\n \"vault.policy.updated\",\n \"vault.migrated\",\n] as const;\nexport const VaultAuditAction = /* @__PURE__ */ defineSchema(() => z.enum(VAULT_AUDIT_ACTIONS));\nexport type VaultAuditAction = z.infer<typeof VaultAuditAction>;\nexport const VAULT_AUDIT_TARGET_TYPES = [\"vault\", \"vault_item\"] as const;\n\nexport const VAULT_METRIC_NAMES = {\n resolutions: \"opengeni_secret_resolutions_total\",\n resolutionDuration: \"opengeni_secret_resolution_duration_seconds\",\n execEnvBytes: \"opengeni_secret_exec_env_bytes\",\n providerCalls: \"opengeni_vault_provider_calls_total\",\n providerRateLimited: \"opengeni_vault_provider_rate_limited_total\",\n passkeyAssertions: \"opengeni_passkey_assertions_total\",\n} as const;\n","import { defineSchema } from \"./define-schema\";\n/**\n * The one password generator shared by agents (`secret_save` with\n * `generate`), the ask card's server-side generate, and the web/mobile UI.\n *\n * Isomorphic and dependency-free: randomness comes from\n * `crypto.getRandomValues` unless a test injects `random`. Output is ASCII\n * only, and every character is drawn uniformly from the selected alphabet by\n * rejection sampling, so no modulo bias is introduced. When\n * `requireEachClass` is set, whole candidates lacking an enabled class are\n * rejected and redrawn, which keeps the result uniform over all compliant\n * passwords.\n */\nimport { z } from \"zod\";\n\nexport const SECRET_GENERATOR_DEFAULT_SYMBOLS = \"!#%+-.:=?@_\";\n/** Characters that are easy to confuse when a person reads them. */\nexport const SECRET_GENERATOR_AMBIGUOUS_CHARACTERS = \"0O1lI|\";\n\nconst LOWERCASE = \"abcdefghijklmnopqrstuvwxyz\";\nconst UPPERCASE = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\nconst DIGITS = \"0123456789\";\n\nfunction isPrintableAscii(value: string): boolean {\n for (let index = 0; index < value.length; index += 1) {\n const code = value.charCodeAt(index);\n if (code < 0x21 || code > 0x7e) return false;\n }\n return true;\n}\n\nexport const GeneratePasswordSpec = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n length: z.number().int().min(8).max(128).default(24),\n lowercase: z.boolean().default(true),\n uppercase: z.boolean().default(true),\n digits: z.boolean().default(true),\n symbols: z.boolean().default(true),\n // No quotes, $, `, \\, braces, /, &, ; or | by default: generated values\n // stay safe to paste into shells, URLs and config files.\n symbolSet: z\n .string()\n .min(1)\n .max(64)\n .refine(isPrintableAscii, \"symbolSet must be printable ASCII without spaces\")\n .default(SECRET_GENERATOR_DEFAULT_SYMBOLS),\n excludeAmbiguous: z.boolean().default(true),\n requireEachClass: z.boolean().default(true),\n })\n .strict()\n .refine(\n (spec) => spec.lowercase || spec.uppercase || spec.digits || spec.symbols,\n \"at least one character class must be enabled\",\n ),\n);\nexport type GeneratePasswordSpec = z.infer<typeof GeneratePasswordSpec>;\nexport type GeneratePasswordSpecInput = z.input<typeof GeneratePasswordSpec>;\n\nexport class PasswordGeneratorError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"PasswordGeneratorError\";\n }\n}\n\nfunction defaultRandom(n: number): Uint8Array {\n const bytes = new Uint8Array(n);\n globalThis.crypto.getRandomValues(bytes);\n return bytes;\n}\n\nfunction uniqueCharacters(value: string): string {\n return [...new Set(value)].join(\"\");\n}\n\n/** The enabled character classes after exclusions; empty classes are dropped. */\nexport function passwordCharacterClasses(spec: GeneratePasswordSpec): string[] {\n const ambiguous = spec.excludeAmbiguous ? new Set(SECRET_GENERATOR_AMBIGUOUS_CHARACTERS) : null;\n const strip = (alphabet: string) =>\n uniqueCharacters(alphabet)\n .split(\"\")\n .filter((character) => !ambiguous?.has(character))\n .join(\"\");\n const classes: string[] = [];\n if (spec.lowercase) classes.push(strip(LOWERCASE));\n if (spec.uppercase) classes.push(strip(UPPERCASE));\n if (spec.digits) classes.push(strip(DIGITS));\n if (spec.symbols) classes.push(strip(spec.symbolSet));\n return classes.filter((characters) => characters.length > 0);\n}\n\n/** Draws `count` uniform indexes in `[0, size)` by rejection sampling bytes. */\nfunction uniformIndexes(count: number, size: number, random: (n: number) => Uint8Array): number[] {\n if (size < 1 || size > 256) throw new PasswordGeneratorError(\"alphabet size out of range\");\n const limit = 256 - (256 % size);\n const out: number[] = [];\n let guard = 0;\n while (out.length < count) {\n const bytes = random(Math.max(16, (count - out.length) * 2));\n for (const byte of bytes) {\n if (byte < limit) out.push(byte % size);\n if (out.length === count) break;\n }\n guard += 1;\n if (guard > 10_000) throw new PasswordGeneratorError(\"random source is not producing entropy\");\n }\n return out;\n}\n\n/** Generate a password. The spec input is parsed (defaults applied) first. */\nexport function generatePassword(\n spec?: GeneratePasswordSpecInput,\n random: (n: number) => Uint8Array = defaultRandom,\n): string {\n const parsed = GeneratePasswordSpec.parse(spec ?? {});\n const classes = passwordCharacterClasses(parsed);\n if (classes.length === 0) throw new PasswordGeneratorError(\"no characters available\");\n const alphabet = uniqueCharacters(classes.join(\"\"));\n const requireClasses = parsed.requireEachClass ? classes : [];\n if (requireClasses.length > parsed.length) {\n throw new PasswordGeneratorError(\"length is shorter than the number of required classes\");\n }\n for (let attempt = 0; attempt < 1_000; attempt += 1) {\n const password = uniformIndexes(parsed.length, alphabet.length, random)\n .map((index) => alphabet[index]!)\n .join(\"\");\n if (requireClasses.every((characters) => [...password].some((c) => characters.includes(c)))) {\n return password;\n }\n }\n throw new PasswordGeneratorError(\"could not satisfy the character class requirements\");\n}\n\nexport type PasswordStrengthLabel = \"weak\" | \"fair\" | \"strong\" | \"very_strong\";\n\n/**\n * Estimated entropy from length and the character pools the password uses.\n * A display hint for the UI, not a security decision.\n */\nexport function passwordStrength(password: string): {\n bits: number;\n label: PasswordStrengthLabel;\n} {\n let pool = 0;\n if (/[a-z]/.test(password)) pool += 26;\n if (/[A-Z]/.test(password)) pool += 26;\n if (/[0-9]/.test(password)) pool += 10;\n if (/[^a-zA-Z0-9]/.test(password)) pool += 33;\n const length = [...password].length;\n const bits = pool === 0 ? 0 : Math.round(length * Math.log2(pool) * 10) / 10;\n const label: PasswordStrengthLabel =\n bits < 40 ? \"weak\" : bits < 60 ? \"fair\" : bits < 100 ? \"strong\" : \"very_strong\";\n return { bits, label };\n}\n"],"mappings":"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","names":["z","z","z","z"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ConnectionKind,
|
|
3
3
|
SessionTenancyVisibility
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-B2G6NXLZ.js";
|
|
5
5
|
import {
|
|
6
6
|
defineSchema
|
|
7
7
|
} from "./chunk-56SNIMDO.js";
|
|
@@ -204,4 +204,4 @@ export {
|
|
|
204
204
|
ConnectionUseAuditFact,
|
|
205
205
|
ConnectionUseAuthorizationResult
|
|
206
206
|
};
|
|
207
|
-
//# sourceMappingURL=chunk-
|
|
207
|
+
//# sourceMappingURL=chunk-KLG2MBAU.js.map
|
package/dist/connect.js
CHANGED
|
@@ -1,30 +1,31 @@
|
|
|
1
1
|
import {
|
|
2
2
|
IntegrationInstanceKey,
|
|
3
3
|
IntegrationSource
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-B2G6NXLZ.js";
|
|
5
5
|
import "./chunk-EFZYKUE2.js";
|
|
6
6
|
import "./chunk-Z7WEVGCL.js";
|
|
7
|
-
import "./chunk-4JGHSSB7.js";
|
|
8
|
-
import "./chunk-2ZIHHL72.js";
|
|
9
7
|
import "./chunk-LZ2LAHIX.js";
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-SHO4YO4B.js";
|
|
12
|
-
import "./chunk-TSWWZMUS.js";
|
|
8
|
+
import "./chunk-4JGHSSB7.js";
|
|
13
9
|
import {
|
|
14
10
|
PreparedMcpSetup,
|
|
15
11
|
preparedMcpHeaders
|
|
16
12
|
} from "./chunk-XDLAGX66.js";
|
|
13
|
+
import "./chunk-2ZIHHL72.js";
|
|
14
|
+
import "./chunk-NDZHPTCL.js";
|
|
15
|
+
import "./chunk-SHO4YO4B.js";
|
|
16
|
+
import "./chunk-TSWWZMUS.js";
|
|
17
17
|
import "./chunk-4VDMHLLL.js";
|
|
18
18
|
import "./chunk-E3GGUBHS.js";
|
|
19
19
|
import "./chunk-KHHZTBP7.js";
|
|
20
|
-
import "./chunk-6IXO76Z6.js";
|
|
21
20
|
import "./chunk-NVJMJWLL.js";
|
|
22
21
|
import "./chunk-352X6ENP.js";
|
|
23
22
|
import "./chunk-YRKRZ6OF.js";
|
|
23
|
+
import "./chunk-6IXO76Z6.js";
|
|
24
24
|
import "./chunk-J4HQ3UKY.js";
|
|
25
25
|
import "./chunk-YKZ4WU4P.js";
|
|
26
26
|
import "./chunk-TLU3UEMD.js";
|
|
27
27
|
import "./chunk-OL23ARTF.js";
|
|
28
|
+
import "./chunk-C6HESWDB.js";
|
|
28
29
|
import "./chunk-TCXCRBPF.js";
|
|
29
30
|
import "./chunk-ZDCRWCGZ.js";
|
|
30
31
|
import "./chunk-SWRN2DJ3.js";
|
package/dist/connect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/connect.ts"],"sourcesContent":["import { defineSchema } from \"./define-schema\";\nimport { z } from \"zod\";\nimport { IntegrationInstanceKey, IntegrationSource } from \"./index\";\nimport { PreparedMcpSetup } from \"./prepared-mcp-setup\";\n\nexport { PreparedMcpSetup, preparedMcpHeaders } from \"./prepared-mcp-setup\";\n\nconst opaqueId = /* @__PURE__ */ defineSchema(() => z.string().min(1).max(512));\nexport const ConnectOwnership = /* @__PURE__ */ defineSchema(() =>\n z.enum([\"personal\", \"workspace\"]),\n);\nexport type ConnectOwnership = z.infer<typeof ConnectOwnership>;\nexport const ConnectProvider = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n id: opaqueId,\n label: z.string().min(1).max(256),\n family: opaqueId,\n readiness: z.enum([\"available\", \"needs_configuration\", \"operator_only\", \"unsupported\"]),\n reason: z.string().max(1024).optional(),\n ownership: z.array(ConnectOwnership).max(2),\n setup: z\n .array(\n z.enum([\"none\", \"oauth\", \"credentials\", \"device\", \"installation\", \"openapi\", \"graphql\"]),\n )\n .max(7),\n })\n .strict(),\n);\nexport type ConnectProvider = z.infer<typeof ConnectProvider>;\nexport const ConnectAccount = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n id: opaqueId,\n providerId: opaqueId,\n version: z.number().int().positive().optional(),\n label: z.string().max(256),\n ownership: ConnectOwnership,\n status: z.enum([\"connected\", \"auth_needed\", \"disabled\"]),\n })\n .strict(),\n);\nexport type ConnectAccount = z.infer<typeof ConnectAccount>;\nexport const ConnectResource = /* @__PURE__ */ defineSchema(() =>\n z.object({ id: opaqueId, label: z.string().max(512), kind: opaqueId }).strict(),\n);\nexport type ConnectResource = z.infer<typeof ConnectResource>;\nexport const ConnectNextAction = /* @__PURE__ */ defineSchema(() =>\n z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"authorize\"), url: z.string().url().max(16_384) }).strict(),\n z\n .object({\n type: z.literal(\"credentials\"),\n fields: z\n .array(\n z\n .object({\n name: opaqueId,\n label: z.string().max(256),\n required: z.boolean(),\n secret: z.boolean(),\n options: z\n .array(z.object({ value: opaqueId, label: z.string().max(512) }).strict())\n .max(1000)\n .optional(),\n })\n .strict(),\n )\n .max(32),\n })\n .strict(),\n z\n .object({\n type: z.literal(\"wait\"),\n pollAfterMs: z.number().int().min(250).max(60_000),\n userCode: z.string().max(128).optional(),\n verificationUrl: z.string().url().max(2048).optional(),\n })\n .strict(),\n z\n .object({ type: z.literal(\"select_account\"), accounts: z.array(ConnectAccount).max(100) })\n .strict(),\n z\n .object({\n type: z.literal(\"select_resources\"),\n resources: z.array(ConnectResource).max(100),\n cursor: z.string().max(2048).optional(),\n })\n .strict(),\n z\n .object({\n type: z.literal(\"preview\"),\n previewId: opaqueId,\n contentHash: opaqueId,\n operations: z.array(ConnectResource).max(2000),\n })\n .strict(),\n z.object({ type: z.literal(\"none\") }).strict(),\n ]),\n);\nexport type ConnectNextAction = z.infer<typeof ConnectNextAction>;\nexport const ConnectInstallationTarget = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n instanceKey: IntegrationInstanceKey,\n displayName: z.string().min(1).max(200),\n expectedInstanceVersion: z.number().int().positive().optional(),\n })\n .strict(),\n);\nexport type ConnectInstallationTarget = z.infer<typeof ConnectInstallationTarget>;\nexport const ConnectAttemptState = /* @__PURE__ */ defineSchema(() =>\n z.enum([\n \"ready\",\n \"requires_user_action\",\n \"credential_input\",\n \"provider_wait\",\n \"account_selection\",\n \"resource_selection\",\n \"preview\",\n \"installing\",\n \"connected_but_incomplete\",\n \"complete\",\n \"cancelled\",\n \"expired\",\n \"failed\",\n \"uncertain\",\n ]),\n);\nexport const ConnectAttempt = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n id: opaqueId,\n workspaceId: opaqueId,\n providerId: opaqueId,\n ownership: ConnectOwnership,\n revision: z.number().int().positive(),\n state: ConnectAttemptState,\n credentialsCommitted: z.boolean(),\n integrationInstalled: z.boolean(),\n completionRequirement: z.enum([\"connection\", \"integration\", \"provider_setup\"]),\n nextAction: ConnectNextAction,\n expiresAt: z.string().datetime({ offset: true }),\n account: ConnectAccount.optional(),\n installationTarget: ConnectInstallationTarget.optional(),\n source: IntegrationSource.optional(),\n mcpSetup: PreparedMcpSetup.optional(),\n /** Exact installed catalog identity after a verified prepared MCP setup. */\n mcpCapabilityId: opaqueId.optional(),\n error: z\n .object({ code: opaqueId, message: z.string().max(2048), retryable: z.boolean() })\n .strict()\n .optional(),\n })\n .strict()\n .superRefine((value, context) => {\n if (\n value.state === \"complete\" &&\n value.completionRequirement === \"integration\" &&\n !value.integrationInstalled\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"Complete setup requires an installed integration\",\n });\n }\n if (\n value.state === \"complete\" &&\n value.completionRequirement === \"connection\" &&\n !value.credentialsCommitted\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"Connection setup requires committed credentials\",\n });\n }\n if (\n [\"complete\", \"cancelled\", \"expired\"].includes(value.state) &&\n value.nextAction.type !== \"none\"\n ) {\n context.addIssue({ code: \"custom\", message: \"A terminal setup has no next action\" });\n }\n }),\n);\nexport type ConnectAttempt = z.infer<typeof ConnectAttempt>;\nexport const ConnectAdvance = /* @__PURE__ */ defineSchema(() =>\n z.discriminatedUnion(\"type\", [\n z\n .object({\n type: z.literal(\"credentials\"),\n values: z.record(z.string().max(256), z.string().max(16_384)),\n })\n .strict(),\n z.object({ type: z.literal(\"account\"), accountId: opaqueId }).strict(),\n z.object({ type: z.literal(\"resources\"), resourceIds: z.array(opaqueId).max(1000) }).strict(),\n z\n .object({\n type: z.literal(\"install\"),\n previewId: opaqueId,\n contentHash: opaqueId,\n operationIds: z.array(opaqueId).max(2000),\n })\n .strict(),\n z.object({ type: z.literal(\"retry\") }).strict(),\n ]),\n);\nexport type ConnectAdvance = z.infer<typeof ConnectAdvance>;\nexport const ConnectOperationRequest = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n expectedRevision: z.number().int().positive().safe(),\n idempotencyKey: opaqueId,\n })\n .strict(),\n);\nexport const AdvanceConnectRequest = /* @__PURE__ */ defineSchema(() =>\n ConnectOperationRequest.extend({ action: ConnectAdvance }),\n);\nexport const BeginConnectRequest = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n providerId: opaqueId,\n ownership: ConnectOwnership,\n // URL parsing validates separately; never transform this original string.\n returnUrl: z.string().min(1).max(4096),\n idempotencyKey: opaqueId,\n reconnectAccountId: opaqueId.optional(),\n installationTarget: ConnectInstallationTarget.optional(),\n mcpSetup: PreparedMcpSetup.optional(),\n })\n .strict()\n .superRefine((value, context) => {\n if (value.mcpSetup && value.providerId !== \"mcp-headers\")\n context.addIssue({\n code: \"custom\",\n path: [\"mcpSetup\"],\n message: \"Prepared header setup requires the MCP headers provider\",\n });\n }),\n);\nexport type BeginConnectRequest = z.infer<typeof BeginConnectRequest>;\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/connect.ts"],"sourcesContent":["import { defineSchema } from \"./define-schema\";\nimport { z } from \"zod\";\nimport { IntegrationInstanceKey, IntegrationSource } from \"./index\";\nimport { PreparedMcpSetup } from \"./prepared-mcp-setup\";\n\nexport { PreparedMcpSetup, preparedMcpHeaders } from \"./prepared-mcp-setup\";\n\nconst opaqueId = /* @__PURE__ */ defineSchema(() => z.string().min(1).max(512));\nexport const ConnectOwnership = /* @__PURE__ */ defineSchema(() =>\n z.enum([\"personal\", \"workspace\"]),\n);\nexport type ConnectOwnership = z.infer<typeof ConnectOwnership>;\nexport const ConnectProvider = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n id: opaqueId,\n label: z.string().min(1).max(256),\n family: opaqueId,\n readiness: z.enum([\"available\", \"needs_configuration\", \"operator_only\", \"unsupported\"]),\n reason: z.string().max(1024).optional(),\n ownership: z.array(ConnectOwnership).max(2),\n setup: z\n .array(\n z.enum([\"none\", \"oauth\", \"credentials\", \"device\", \"installation\", \"openapi\", \"graphql\"]),\n )\n .max(7),\n })\n .strict(),\n);\nexport type ConnectProvider = z.infer<typeof ConnectProvider>;\nexport const ConnectAccount = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n id: opaqueId,\n providerId: opaqueId,\n version: z.number().int().positive().optional(),\n label: z.string().max(256),\n ownership: ConnectOwnership,\n status: z.enum([\"connected\", \"auth_needed\", \"disabled\"]),\n })\n .strict(),\n);\nexport type ConnectAccount = z.infer<typeof ConnectAccount>;\nexport const ConnectResource = /* @__PURE__ */ defineSchema(() =>\n z.object({ id: opaqueId, label: z.string().max(512), kind: opaqueId }).strict(),\n);\nexport type ConnectResource = z.infer<typeof ConnectResource>;\nexport const ConnectNextAction = /* @__PURE__ */ defineSchema(() =>\n z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"authorize\"), url: z.string().url().max(16_384) }).strict(),\n z\n .object({\n type: z.literal(\"credentials\"),\n fields: z\n .array(\n z\n .object({\n name: opaqueId,\n label: z.string().max(256),\n required: z.boolean(),\n secret: z.boolean(),\n options: z\n .array(z.object({ value: opaqueId, label: z.string().max(512) }).strict())\n .max(1000)\n .optional(),\n })\n .strict(),\n )\n .max(32),\n })\n .strict(),\n z\n .object({\n type: z.literal(\"wait\"),\n pollAfterMs: z.number().int().min(250).max(60_000),\n userCode: z.string().max(128).optional(),\n verificationUrl: z.string().url().max(2048).optional(),\n })\n .strict(),\n z\n .object({ type: z.literal(\"select_account\"), accounts: z.array(ConnectAccount).max(100) })\n .strict(),\n z\n .object({\n type: z.literal(\"select_resources\"),\n resources: z.array(ConnectResource).max(100),\n cursor: z.string().max(2048).optional(),\n })\n .strict(),\n z\n .object({\n type: z.literal(\"preview\"),\n previewId: opaqueId,\n contentHash: opaqueId,\n operations: z.array(ConnectResource).max(2000),\n })\n .strict(),\n z.object({ type: z.literal(\"none\") }).strict(),\n ]),\n);\nexport type ConnectNextAction = z.infer<typeof ConnectNextAction>;\nexport const ConnectInstallationTarget = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n instanceKey: IntegrationInstanceKey,\n displayName: z.string().min(1).max(200),\n expectedInstanceVersion: z.number().int().positive().optional(),\n })\n .strict(),\n);\nexport type ConnectInstallationTarget = z.infer<typeof ConnectInstallationTarget>;\nexport const ConnectAttemptState = /* @__PURE__ */ defineSchema(() =>\n z.enum([\n \"ready\",\n \"requires_user_action\",\n \"credential_input\",\n \"provider_wait\",\n \"account_selection\",\n \"resource_selection\",\n \"preview\",\n \"installing\",\n \"connected_but_incomplete\",\n \"complete\",\n \"cancelled\",\n \"expired\",\n \"failed\",\n \"uncertain\",\n ]),\n);\nexport const ConnectAttempt = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n id: opaqueId,\n workspaceId: opaqueId,\n providerId: opaqueId,\n ownership: ConnectOwnership,\n revision: z.number().int().positive(),\n state: ConnectAttemptState,\n credentialsCommitted: z.boolean(),\n integrationInstalled: z.boolean(),\n completionRequirement: z.enum([\"connection\", \"integration\", \"provider_setup\"]),\n nextAction: ConnectNextAction,\n expiresAt: z.string().datetime({ offset: true }),\n account: ConnectAccount.optional(),\n installationTarget: ConnectInstallationTarget.optional(),\n source: IntegrationSource.optional(),\n mcpSetup: PreparedMcpSetup.optional(),\n /** Exact installed catalog identity after a verified prepared MCP setup. */\n mcpCapabilityId: opaqueId.optional(),\n error: z\n .object({ code: opaqueId, message: z.string().max(2048), retryable: z.boolean() })\n .strict()\n .optional(),\n })\n .strict()\n .superRefine((value, context) => {\n if (\n value.state === \"complete\" &&\n value.completionRequirement === \"integration\" &&\n !value.integrationInstalled\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"Complete setup requires an installed integration\",\n });\n }\n if (\n value.state === \"complete\" &&\n value.completionRequirement === \"connection\" &&\n !value.credentialsCommitted\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"Connection setup requires committed credentials\",\n });\n }\n if (\n [\"complete\", \"cancelled\", \"expired\"].includes(value.state) &&\n value.nextAction.type !== \"none\"\n ) {\n context.addIssue({ code: \"custom\", message: \"A terminal setup has no next action\" });\n }\n }),\n);\nexport type ConnectAttempt = z.infer<typeof ConnectAttempt>;\nexport const ConnectAdvance = /* @__PURE__ */ defineSchema(() =>\n z.discriminatedUnion(\"type\", [\n z\n .object({\n type: z.literal(\"credentials\"),\n values: z.record(z.string().max(256), z.string().max(16_384)),\n })\n .strict(),\n z.object({ type: z.literal(\"account\"), accountId: opaqueId }).strict(),\n z.object({ type: z.literal(\"resources\"), resourceIds: z.array(opaqueId).max(1000) }).strict(),\n z\n .object({\n type: z.literal(\"install\"),\n previewId: opaqueId,\n contentHash: opaqueId,\n operationIds: z.array(opaqueId).max(2000),\n })\n .strict(),\n z.object({ type: z.literal(\"retry\") }).strict(),\n ]),\n);\nexport type ConnectAdvance = z.infer<typeof ConnectAdvance>;\nexport const ConnectOperationRequest = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n expectedRevision: z.number().int().positive().safe(),\n idempotencyKey: opaqueId,\n })\n .strict(),\n);\nexport const AdvanceConnectRequest = /* @__PURE__ */ defineSchema(() =>\n ConnectOperationRequest.extend({ action: ConnectAdvance }),\n);\nexport const BeginConnectRequest = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n providerId: opaqueId,\n ownership: ConnectOwnership,\n // URL parsing validates separately; never transform this original string.\n returnUrl: z.string().min(1).max(4096),\n idempotencyKey: opaqueId,\n reconnectAccountId: opaqueId.optional(),\n installationTarget: ConnectInstallationTarget.optional(),\n mcpSetup: PreparedMcpSetup.optional(),\n })\n .strict()\n .superRefine((value, context) => {\n if (value.mcpSetup && value.providerId !== \"mcp-headers\")\n context.addIssue({\n code: \"custom\",\n path: [\"mcpSetup\"],\n message: \"Prepared header setup requires the MCP headers provider\",\n });\n }),\n);\nexport type BeginConnectRequest = z.infer<typeof BeginConnectRequest>;\n"],"mappings":"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","names":[]}
|
|
@@ -6,28 +6,29 @@ import {
|
|
|
6
6
|
ConnectionUseAuthorizationResult,
|
|
7
7
|
ConnectionUseDenialReason,
|
|
8
8
|
ConnectionUseSelectionSource
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-KLG2MBAU.js";
|
|
10
|
+
import "./chunk-B2G6NXLZ.js";
|
|
11
11
|
import "./chunk-EFZYKUE2.js";
|
|
12
12
|
import "./chunk-Z7WEVGCL.js";
|
|
13
|
+
import "./chunk-LZ2LAHIX.js";
|
|
13
14
|
import "./chunk-4JGHSSB7.js";
|
|
15
|
+
import "./chunk-XDLAGX66.js";
|
|
14
16
|
import "./chunk-2ZIHHL72.js";
|
|
15
|
-
import "./chunk-LZ2LAHIX.js";
|
|
16
17
|
import "./chunk-NDZHPTCL.js";
|
|
17
18
|
import "./chunk-SHO4YO4B.js";
|
|
18
19
|
import "./chunk-TSWWZMUS.js";
|
|
19
|
-
import "./chunk-XDLAGX66.js";
|
|
20
20
|
import "./chunk-4VDMHLLL.js";
|
|
21
21
|
import "./chunk-E3GGUBHS.js";
|
|
22
22
|
import "./chunk-KHHZTBP7.js";
|
|
23
|
-
import "./chunk-6IXO76Z6.js";
|
|
24
23
|
import "./chunk-NVJMJWLL.js";
|
|
25
24
|
import "./chunk-352X6ENP.js";
|
|
26
25
|
import "./chunk-YRKRZ6OF.js";
|
|
26
|
+
import "./chunk-6IXO76Z6.js";
|
|
27
27
|
import "./chunk-J4HQ3UKY.js";
|
|
28
28
|
import "./chunk-YKZ4WU4P.js";
|
|
29
29
|
import "./chunk-TLU3UEMD.js";
|
|
30
30
|
import "./chunk-OL23ARTF.js";
|
|
31
|
+
import "./chunk-C6HESWDB.js";
|
|
31
32
|
import "./chunk-TCXCRBPF.js";
|
|
32
33
|
import "./chunk-ZDCRWCGZ.js";
|
|
33
34
|
import "./chunk-SWRN2DJ3.js";
|
package/dist/google-drive.js
CHANGED
|
@@ -1,29 +1,30 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ConnectionMetadata
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-B2G6NXLZ.js";
|
|
4
4
|
import "./chunk-EFZYKUE2.js";
|
|
5
5
|
import "./chunk-Z7WEVGCL.js";
|
|
6
|
-
import "./chunk-4JGHSSB7.js";
|
|
7
|
-
import "./chunk-2ZIHHL72.js";
|
|
8
6
|
import {
|
|
9
7
|
ConnectorDocumentDestination,
|
|
10
8
|
ConnectorDocumentDestinationSelection
|
|
11
9
|
} from "./chunk-LZ2LAHIX.js";
|
|
10
|
+
import "./chunk-4JGHSSB7.js";
|
|
11
|
+
import "./chunk-XDLAGX66.js";
|
|
12
|
+
import "./chunk-2ZIHHL72.js";
|
|
12
13
|
import "./chunk-NDZHPTCL.js";
|
|
13
14
|
import "./chunk-SHO4YO4B.js";
|
|
14
15
|
import "./chunk-TSWWZMUS.js";
|
|
15
|
-
import "./chunk-XDLAGX66.js";
|
|
16
16
|
import "./chunk-4VDMHLLL.js";
|
|
17
17
|
import "./chunk-E3GGUBHS.js";
|
|
18
18
|
import "./chunk-KHHZTBP7.js";
|
|
19
|
-
import "./chunk-6IXO76Z6.js";
|
|
20
19
|
import "./chunk-NVJMJWLL.js";
|
|
21
20
|
import "./chunk-352X6ENP.js";
|
|
22
21
|
import "./chunk-YRKRZ6OF.js";
|
|
22
|
+
import "./chunk-6IXO76Z6.js";
|
|
23
23
|
import "./chunk-J4HQ3UKY.js";
|
|
24
24
|
import "./chunk-YKZ4WU4P.js";
|
|
25
25
|
import "./chunk-TLU3UEMD.js";
|
|
26
26
|
import "./chunk-OL23ARTF.js";
|
|
27
|
+
import "./chunk-C6HESWDB.js";
|
|
27
28
|
import "./chunk-TCXCRBPF.js";
|
|
28
29
|
import "./chunk-ZDCRWCGZ.js";
|
|
29
30
|
import "./chunk-SWRN2DJ3.js";
|
package/dist/google-drive.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/google-drive.ts"],"sourcesContent":["import { defineSchema } from \"./define-schema\";\nimport { z } from \"zod\";\n\nimport { ConnectionMetadata } from \"./index\";\nimport {\n ConnectorDocumentDestination,\n ConnectorDocumentDestinationSelection,\n} from \"./connector-destinations\";\n\nexport const GOOGLE_DRIVE_PROVIDER_DOMAIN = \"googleapis.com\" as const;\nexport const GOOGLE_DRIVE_FULL_SCOPE = \"https://www.googleapis.com/auth/drive\" as const;\nexport const GOOGLE_DRIVE_FILE_SCOPE = \"https://www.googleapis.com/auth/drive.file\" as const;\nexport const GOOGLE_DRIVE_METADATA_READONLY_SCOPE =\n \"https://www.googleapis.com/auth/drive.metadata.readonly\" as const;\nexport const GOOGLE_DRIVE_READONLY_SCOPE =\n \"https://www.googleapis.com/auth/drive.readonly\" as const;\n/** Stable serialized role retained for existing connection rows; not product-facing copy. */\nexport const GOOGLE_DRIVE_CREDENTIAL_ROLE = \"google_drive_metadata\" as const;\nexport const GOOGLE_DRIVE_CREDENTIAL_LABEL = \"Google Drive read-only source sync\" as const;\nexport const GOOGLE_DRIVE_LEGACY_CREDENTIAL_LABEL = \"Google Drive metadata browser\" as const;\nexport const GOOGLE_DRIVE_PUBLICATION_SERVER_ID = \"google-drive-publishing\" as const;\nexport const GOOGLE_DRIVE_PUBLICATION_TOOL_NAME = \"google_drive_publish_file\" as const;\nexport const GOOGLE_DRIVE_PUBLICATION_CREATE_ACTION = \"create\" as const;\n\nexport const GoogleDriveOAuthCapability = /* @__PURE__ */ defineSchema(() =>\n z.enum([\n \"picker_file_read\",\n \"publish_file\",\n \"source_metadata_discovery\",\n \"source_content_read\",\n \"recursive_source_sync\",\n ]),\n);\nexport type GoogleDriveOAuthCapability = z.infer<typeof GoogleDriveOAuthCapability>;\n\nexport type GoogleDriveOAuthScopeDecision = {\n accessMode: \"file_only\" | \"metadata_readonly\" | \"readonly\" | null;\n capabilities: GoogleDriveOAuthCapability[];\n};\n\n/**\n * Converts exact Google OAuth grants into the Drive capabilities Opengeni may\n * rely on. Unknown or malformed grants add no authority. In particular,\n * drive.file covers only files explicitly opened or shared with the app and\n * never authorizes arbitrary recursive descendant discovery.\n */\nexport function googleDriveOAuthScopeDecision(\n grantedScopes: readonly string[],\n): GoogleDriveOAuthScopeDecision {\n const granted = new Set(grantedScopes);\n const hasFullDrive = granted.has(GOOGLE_DRIVE_FULL_SCOPE);\n const hasSourceContentRead = hasFullDrive || granted.has(GOOGLE_DRIVE_READONLY_SCOPE);\n const hasFileWrite = hasFullDrive || granted.has(GOOGLE_DRIVE_FILE_SCOPE);\n const hasSourceMetadataDiscovery =\n hasSourceContentRead || granted.has(GOOGLE_DRIVE_METADATA_READONLY_SCOPE);\n const hasPickerFileRead = hasSourceContentRead || hasFileWrite;\n const capabilities: GoogleDriveOAuthCapability[] = [];\n if (hasPickerFileRead) capabilities.push(\"picker_file_read\");\n if (hasFileWrite) capabilities.push(\"publish_file\");\n if (hasSourceMetadataDiscovery) capabilities.push(\"source_metadata_discovery\");\n if (hasSourceContentRead) {\n capabilities.push(\"source_content_read\", \"recursive_source_sync\");\n }\n return {\n accessMode: hasSourceContentRead\n ? \"readonly\"\n : hasSourceMetadataDiscovery\n ? \"metadata_readonly\"\n : hasFileWrite\n ? \"file_only\"\n : null,\n capabilities,\n };\n}\n\nexport function googleDriveScopesAllowCapability(\n grantedScopes: readonly string[],\n capability: GoogleDriveOAuthCapability,\n): boolean {\n return googleDriveOAuthScopeDecision(grantedScopes).capabilities.includes(capability);\n}\n\n/** @deprecated Connector document destinations use organization/workspace/personal authority. */\nexport const GoogleDriveTargetScope = /* @__PURE__ */ defineSchema(() =>\n z.enum([\"user\", \"workspace\", \"organization\"]),\n);\nexport type GoogleDriveTargetScope = z.infer<typeof GoogleDriveTargetScope>;\n\nexport const GoogleDriveSyncCadence = /* @__PURE__ */ defineSchema(() =>\n z.enum([\"manual\", \"hourly\", \"daily\"]),\n);\nexport type GoogleDriveSyncCadence = z.infer<typeof GoogleDriveSyncCadence>;\n\nexport const GoogleDriveReadPolicy = /* @__PURE__ */ defineSchema(() =>\n z.enum([\"allow\", \"ask\", \"block\"]),\n);\nexport type GoogleDriveReadPolicy = z.infer<typeof GoogleDriveReadPolicy>;\n\nexport const GoogleDriveConnectionLifecycleState = /* @__PURE__ */ defineSchema(() =>\n z.enum([\n \"active\",\n \"paused\",\n \"token_revoked\",\n \"app_removed\",\n \"disconnected\",\n \"reconnect_required\",\n \"reconsent_required\",\n ]),\n);\nexport type GoogleDriveConnectionLifecycleState = z.infer<\n typeof GoogleDriveConnectionLifecycleState\n>;\n\nconst GoogleDriveLifecycleObservedAt = /* @__PURE__ */ defineSchema(() =>\n z.string().datetime({ offset: true }),\n);\nexport const GoogleDriveConnectionLifecycle = /* @__PURE__ */ defineSchema(() =>\n z.discriminatedUnion(\"state\", [\n z.object({\n state: z.literal(\"active\"),\n recoverable: z.literal(true),\n observedAt: GoogleDriveLifecycleObservedAt,\n }),\n z.object({\n state: z.literal(\"paused\"),\n recoverable: z.literal(true),\n observedAt: GoogleDriveLifecycleObservedAt,\n }),\n z.object({\n state: z.literal(\"token_revoked\"),\n recoverable: z.literal(true),\n observedAt: GoogleDriveLifecycleObservedAt,\n }),\n z.object({\n state: z.literal(\"app_removed\"),\n recoverable: z.literal(false),\n observedAt: GoogleDriveLifecycleObservedAt,\n }),\n z.object({\n state: z.literal(\"disconnected\"),\n recoverable: z.literal(true),\n observedAt: GoogleDriveLifecycleObservedAt,\n }),\n z.object({\n state: z.literal(\"reconnect_required\"),\n recoverable: z.literal(true),\n observedAt: GoogleDriveLifecycleObservedAt,\n }),\n z.object({\n state: z.literal(\"reconsent_required\"),\n recoverable: z.literal(true),\n observedAt: GoogleDriveLifecycleObservedAt,\n }),\n ]),\n);\nexport type GoogleDriveConnectionLifecycle = z.infer<typeof GoogleDriveConnectionLifecycle>;\n\nexport const GoogleDriveSelectedSource = /* @__PURE__ */ defineSchema(() =>\n z.object({\n id: z.string().min(1).max(256),\n name: z.string().min(1).max(1024),\n mimeType: z.string().min(1).max(256),\n driveId: z.string().min(1).max(256).nullable().default(null),\n destination: ConnectorDocumentDestination.optional(),\n /** @deprecated Missing destinations resolve to the current workspace boundary. */\n targetScope: GoogleDriveTargetScope.optional(),\n syncCadence: GoogleDriveSyncCadence.default(\"hourly\"),\n syncEnabled: z.boolean().default(false),\n configGeneration: z.number().int().positive().default(1),\n readPolicy: GoogleDriveReadPolicy.default(\"allow\"),\n selectedAt: z.string().datetime({ offset: true }),\n }),\n);\nexport type GoogleDriveSelectedSource = z.infer<typeof GoogleDriveSelectedSource>;\n\nexport const GoogleDriveOutputDestination = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n folderId: z.string().min(1).max(256),\n folderName: z.string().min(1).max(1024),\n driveId: z.string().min(1).max(256).nullable(),\n location: z.enum([\"my_drive\", \"shared_drive\"]),\n selectedAt: z.string().datetime({ offset: true }),\n })\n .strict()\n .superRefine((value, context) => {\n if ((value.location === \"my_drive\") !== (value.driveId === null)) {\n context.addIssue({\n code: \"custom\",\n path: [\"driveId\"],\n message: \"Google Drive destination location does not match its drive identity\",\n });\n }\n }),\n);\nexport type GoogleDriveOutputDestination = z.infer<typeof GoogleDriveOutputDestination>;\n\nexport const GoogleDriveConnectionMetadata = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n credentialRole: z.literal(GOOGLE_DRIVE_CREDENTIAL_ROLE),\n credentialLabel: z.union([\n z.literal(GOOGLE_DRIVE_CREDENTIAL_LABEL),\n z.literal(GOOGLE_DRIVE_LEGACY_CREDENTIAL_LABEL),\n ]),\n googlePermissionId: z.string().min(1).max(256),\n googleEmail: z.string().email().max(320),\n googleDisplayName: z.string().min(1).max(512).nullable(),\n verifiedAt: z.string().datetime({ offset: true }),\n accessMode: z.enum([\"file_only\", \"metadata_readonly\", \"readonly\"]),\n lifecycle: GoogleDriveConnectionLifecycle.optional(),\n outputDestination: GoogleDriveOutputDestination.optional(),\n documentDestination: ConnectorDocumentDestination.optional(),\n selectedSources: z.array(GoogleDriveSelectedSource).max(100).optional(),\n /** @deprecated Read `selectedSources`; retained while existing connections migrate. */\n selectedSource: GoogleDriveSelectedSource.nullable().optional(),\n })\n .passthrough(),\n);\nexport type GoogleDriveConnectionMetadata = z.infer<typeof GoogleDriveConnectionMetadata>;\n\nexport const GoogleDriveOAuthStartRequest = /* @__PURE__ */ defineSchema(() =>\n z.object({\n connectionId: z.string().uuid().optional(),\n capability: z.enum([\"source_read\", \"publish\"]).default(\"source_read\"),\n }),\n);\nexport type GoogleDriveOAuthStartRequest = z.infer<typeof GoogleDriveOAuthStartRequest>;\n\nexport const GoogleDriveOAuthStartResponse = /* @__PURE__ */ defineSchema(() =>\n z.object({\n authorizationUrl: z.string().url(),\n expiresAt: z.string().datetime({ offset: true }),\n }),\n);\nexport type GoogleDriveOAuthStartResponse = z.infer<typeof GoogleDriveOAuthStartResponse>;\n\nexport const GoogleDriveLifecycleActionRequest = /* @__PURE__ */ defineSchema(() =>\n z.object({\n action: z.enum([\"pause\", \"resume\"]),\n expectedVersion: z.number().int().positive(),\n }),\n);\nexport type GoogleDriveLifecycleActionRequest = z.infer<typeof GoogleDriveLifecycleActionRequest>;\n\nexport const GoogleDriveDisconnectRequest = /* @__PURE__ */ defineSchema(() =>\n z.object({\n expectedVersion: z.number().int().positive(),\n idempotencyKey: z.string().trim().min(1).max(200),\n }),\n);\nexport type GoogleDriveDisconnectRequest = z.infer<typeof GoogleDriveDisconnectRequest>;\n\nexport const GoogleDrivePublicationExportFile = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n fileId: z.string().uuid(),\n filename: z.string().trim().min(1).max(512),\n contentType: z.string().trim().min(1).max(256),\n sizeBytes: z.number().int().positive(),\n sha256: z.string().regex(/^[0-9a-f]{64}$/u),\n artifactId: z.string().regex(/^[0-9a-f]{32}$/u),\n versionId: z.string().regex(/^[0-9a-f]{32}$/u),\n materializationJobId: z.string().regex(/^[0-9a-f]{32}$/u),\n sourceHeadSequence: z.number().int().nonnegative(),\n sourceStateHash: z.string().regex(/^sha256:[0-9a-f]{64}$/u),\n })\n .strict(),\n);\nexport type GoogleDrivePublicationExportFile = z.infer<typeof GoogleDrivePublicationExportFile>;\n\nexport const GoogleDrivePublicationToolInput = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n title: z.string().trim().min(1).max(512),\n modality: z.enum([\"document\", \"spreadsheet\", \"presentation\"]),\n file: GoogleDrivePublicationExportFile,\n idempotencyKey: z.string().trim().min(1).max(200),\n })\n .strict(),\n);\nexport type GoogleDrivePublicationToolInput = z.infer<typeof GoogleDrivePublicationToolInput>;\n\nexport const GoogleDrivePublicationReceipt = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n connectionId: z.string().uuid(),\n providerFileId: z.string().min(1).max(256),\n webViewLink: z.string().url(),\n mimeType: z.enum([\n \"application/vnd.google-apps.document\",\n \"application/vnd.google-apps.spreadsheet\",\n \"application/vnd.google-apps.presentation\",\n ]),\n destination: GoogleDriveOutputDestination,\n replayed: z.boolean(),\n })\n .strict(),\n);\nexport type GoogleDrivePublicationReceipt = z.infer<typeof GoogleDrivePublicationReceipt>;\n\nexport const GoogleDriveBrowseItem = /* @__PURE__ */ defineSchema(() =>\n z.object({\n id: z.string().min(1).max(256),\n name: z.string().min(1).max(1024),\n mimeType: z.string().min(1).max(256),\n kind: z.enum([\"folder\", \"file\"]),\n driveId: z.string().min(1).max(256).nullable(),\n modifiedTime: z.string().datetime({ offset: true }).nullable(),\n size: z.string().regex(/^\\d+$/).nullable(),\n webViewLink: z.string().url().nullable(),\n }),\n);\nexport type GoogleDriveBrowseItem = z.infer<typeof GoogleDriveBrowseItem>;\n\nexport const GoogleDriveBrowseResponse = /* @__PURE__ */ defineSchema(() =>\n z.object({\n connection: z.lazy(() => ConnectionMetadata),\n parentId: z.string().min(1).max(256),\n current: GoogleDriveBrowseItem.nullable(),\n items: z.array(GoogleDriveBrowseItem),\n nextPageToken: z.string().min(1).max(4096).nullable(),\n incompleteSearch: z.boolean(),\n }),\n);\nexport type GoogleDriveBrowseResponse = z.infer<typeof GoogleDriveBrowseResponse>;\n\nconst GoogleDriveSourceSelection = /* @__PURE__ */ defineSchema(() =>\n z\n .array(\n GoogleDriveBrowseItem.pick({\n id: true,\n name: true,\n mimeType: true,\n driveId: true,\n }),\n )\n .max(100)\n .refine((sources) => new Set(sources.map((source) => source.id)).size === sources.length, {\n message: \"Google Drive sources must be unique\",\n }),\n);\n\nexport const SaveGoogleDriveSourceRequest = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n sources: GoogleDriveSourceSelection,\n destination: ConnectorDocumentDestinationSelection.optional(),\n /** @deprecated Legacy requests are accepted but resolve to workspace authority. */\n targetScope: GoogleDriveTargetScope.optional(),\n syncCadence: GoogleDriveSyncCadence.default(\"hourly\"),\n syncEnabled: z.boolean().default(false),\n readPolicy: GoogleDriveReadPolicy.default(\"allow\"),\n })\n .refine((request) => request.destination !== undefined || request.targetScope !== undefined, {\n message: \"Google Drive document destination is required\",\n }),\n);\nexport type SaveGoogleDriveSourceRequest = z.infer<typeof SaveGoogleDriveSourceRequest>;\n\nexport const GoogleDriveKnowledgeSourceItem = /* @__PURE__ */ defineSchema(() =>\n z.object({\n id: z.string().min(1).max(512),\n name: z.string().min(1).max(1024),\n mimeType: z.string().min(1).max(256),\n driveId: z.string().min(1).max(512).optional(),\n sourceKind: z.enum([\"my_drive\", \"shared_drive\", \"folder\"]),\n includeDescendants: z.boolean(),\n }),\n);\nexport type GoogleDriveKnowledgeSourceItem = z.infer<typeof GoogleDriveKnowledgeSourceItem>;\n\nexport const GoogleDriveKnowledgeSourceDestination = /* @__PURE__ */ defineSchema(() =>\n z.object({\n authorityKind: z.enum([\"organization\", \"workspace\", \"personal\"]),\n authorityAccountId: z.string().min(1).max(128),\n authorityWorkspaceId: z.string().min(1).max(128).optional(),\n authoritySubjectId: z.string().min(1).max(512).optional(),\n collectionId: z.string().min(1).max(512).optional(),\n }),\n);\nexport type GoogleDriveKnowledgeSourceDestination = z.infer<\n typeof GoogleDriveKnowledgeSourceDestination\n>;\n\nexport const GoogleDriveKnowledgeSourceConfig = /* @__PURE__ */ defineSchema(() =>\n z.object({\n sources: z.array(GoogleDriveKnowledgeSourceItem).min(1).max(100),\n destination: GoogleDriveKnowledgeSourceDestination,\n syncCadence: GoogleDriveSyncCadence,\n readPolicy: GoogleDriveReadPolicy,\n }),\n);\nexport type GoogleDriveKnowledgeSourceConfig = z.infer<typeof GoogleDriveKnowledgeSourceConfig>;\n\nexport const SaveGoogleDriveIntegrationSourceRequest = /* @__PURE__ */ defineSchema(() =>\n z.intersection(\n SaveGoogleDriveSourceRequest,\n z.object({\n sources: GoogleDriveSourceSelection.refine((sources) => sources.length > 0, {\n message: \"At least one Google Drive source is required\",\n }),\n expectedVersion: z.number().int().positive().optional(),\n idempotencyKey: z.string().uuid(),\n }),\n ),\n);\nexport type SaveGoogleDriveIntegrationSourceRequest = z.infer<\n typeof SaveGoogleDriveIntegrationSourceRequest\n>;\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/google-drive.ts"],"sourcesContent":["import { defineSchema } from \"./define-schema\";\nimport { z } from \"zod\";\n\nimport { ConnectionMetadata } from \"./index\";\nimport {\n ConnectorDocumentDestination,\n ConnectorDocumentDestinationSelection,\n} from \"./connector-destinations\";\n\nexport const GOOGLE_DRIVE_PROVIDER_DOMAIN = \"googleapis.com\" as const;\nexport const GOOGLE_DRIVE_FULL_SCOPE = \"https://www.googleapis.com/auth/drive\" as const;\nexport const GOOGLE_DRIVE_FILE_SCOPE = \"https://www.googleapis.com/auth/drive.file\" as const;\nexport const GOOGLE_DRIVE_METADATA_READONLY_SCOPE =\n \"https://www.googleapis.com/auth/drive.metadata.readonly\" as const;\nexport const GOOGLE_DRIVE_READONLY_SCOPE =\n \"https://www.googleapis.com/auth/drive.readonly\" as const;\n/** Stable serialized role retained for existing connection rows; not product-facing copy. */\nexport const GOOGLE_DRIVE_CREDENTIAL_ROLE = \"google_drive_metadata\" as const;\nexport const GOOGLE_DRIVE_CREDENTIAL_LABEL = \"Google Drive read-only source sync\" as const;\nexport const GOOGLE_DRIVE_LEGACY_CREDENTIAL_LABEL = \"Google Drive metadata browser\" as const;\nexport const GOOGLE_DRIVE_PUBLICATION_SERVER_ID = \"google-drive-publishing\" as const;\nexport const GOOGLE_DRIVE_PUBLICATION_TOOL_NAME = \"google_drive_publish_file\" as const;\nexport const GOOGLE_DRIVE_PUBLICATION_CREATE_ACTION = \"create\" as const;\n\nexport const GoogleDriveOAuthCapability = /* @__PURE__ */ defineSchema(() =>\n z.enum([\n \"picker_file_read\",\n \"publish_file\",\n \"source_metadata_discovery\",\n \"source_content_read\",\n \"recursive_source_sync\",\n ]),\n);\nexport type GoogleDriveOAuthCapability = z.infer<typeof GoogleDriveOAuthCapability>;\n\nexport type GoogleDriveOAuthScopeDecision = {\n accessMode: \"file_only\" | \"metadata_readonly\" | \"readonly\" | null;\n capabilities: GoogleDriveOAuthCapability[];\n};\n\n/**\n * Converts exact Google OAuth grants into the Drive capabilities Opengeni may\n * rely on. Unknown or malformed grants add no authority. In particular,\n * drive.file covers only files explicitly opened or shared with the app and\n * never authorizes arbitrary recursive descendant discovery.\n */\nexport function googleDriveOAuthScopeDecision(\n grantedScopes: readonly string[],\n): GoogleDriveOAuthScopeDecision {\n const granted = new Set(grantedScopes);\n const hasFullDrive = granted.has(GOOGLE_DRIVE_FULL_SCOPE);\n const hasSourceContentRead = hasFullDrive || granted.has(GOOGLE_DRIVE_READONLY_SCOPE);\n const hasFileWrite = hasFullDrive || granted.has(GOOGLE_DRIVE_FILE_SCOPE);\n const hasSourceMetadataDiscovery =\n hasSourceContentRead || granted.has(GOOGLE_DRIVE_METADATA_READONLY_SCOPE);\n const hasPickerFileRead = hasSourceContentRead || hasFileWrite;\n const capabilities: GoogleDriveOAuthCapability[] = [];\n if (hasPickerFileRead) capabilities.push(\"picker_file_read\");\n if (hasFileWrite) capabilities.push(\"publish_file\");\n if (hasSourceMetadataDiscovery) capabilities.push(\"source_metadata_discovery\");\n if (hasSourceContentRead) {\n capabilities.push(\"source_content_read\", \"recursive_source_sync\");\n }\n return {\n accessMode: hasSourceContentRead\n ? \"readonly\"\n : hasSourceMetadataDiscovery\n ? \"metadata_readonly\"\n : hasFileWrite\n ? \"file_only\"\n : null,\n capabilities,\n };\n}\n\nexport function googleDriveScopesAllowCapability(\n grantedScopes: readonly string[],\n capability: GoogleDriveOAuthCapability,\n): boolean {\n return googleDriveOAuthScopeDecision(grantedScopes).capabilities.includes(capability);\n}\n\n/** @deprecated Connector document destinations use organization/workspace/personal authority. */\nexport const GoogleDriveTargetScope = /* @__PURE__ */ defineSchema(() =>\n z.enum([\"user\", \"workspace\", \"organization\"]),\n);\nexport type GoogleDriveTargetScope = z.infer<typeof GoogleDriveTargetScope>;\n\nexport const GoogleDriveSyncCadence = /* @__PURE__ */ defineSchema(() =>\n z.enum([\"manual\", \"hourly\", \"daily\"]),\n);\nexport type GoogleDriveSyncCadence = z.infer<typeof GoogleDriveSyncCadence>;\n\nexport const GoogleDriveReadPolicy = /* @__PURE__ */ defineSchema(() =>\n z.enum([\"allow\", \"ask\", \"block\"]),\n);\nexport type GoogleDriveReadPolicy = z.infer<typeof GoogleDriveReadPolicy>;\n\nexport const GoogleDriveConnectionLifecycleState = /* @__PURE__ */ defineSchema(() =>\n z.enum([\n \"active\",\n \"paused\",\n \"token_revoked\",\n \"app_removed\",\n \"disconnected\",\n \"reconnect_required\",\n \"reconsent_required\",\n ]),\n);\nexport type GoogleDriveConnectionLifecycleState = z.infer<\n typeof GoogleDriveConnectionLifecycleState\n>;\n\nconst GoogleDriveLifecycleObservedAt = /* @__PURE__ */ defineSchema(() =>\n z.string().datetime({ offset: true }),\n);\nexport const GoogleDriveConnectionLifecycle = /* @__PURE__ */ defineSchema(() =>\n z.discriminatedUnion(\"state\", [\n z.object({\n state: z.literal(\"active\"),\n recoverable: z.literal(true),\n observedAt: GoogleDriveLifecycleObservedAt,\n }),\n z.object({\n state: z.literal(\"paused\"),\n recoverable: z.literal(true),\n observedAt: GoogleDriveLifecycleObservedAt,\n }),\n z.object({\n state: z.literal(\"token_revoked\"),\n recoverable: z.literal(true),\n observedAt: GoogleDriveLifecycleObservedAt,\n }),\n z.object({\n state: z.literal(\"app_removed\"),\n recoverable: z.literal(false),\n observedAt: GoogleDriveLifecycleObservedAt,\n }),\n z.object({\n state: z.literal(\"disconnected\"),\n recoverable: z.literal(true),\n observedAt: GoogleDriveLifecycleObservedAt,\n }),\n z.object({\n state: z.literal(\"reconnect_required\"),\n recoverable: z.literal(true),\n observedAt: GoogleDriveLifecycleObservedAt,\n }),\n z.object({\n state: z.literal(\"reconsent_required\"),\n recoverable: z.literal(true),\n observedAt: GoogleDriveLifecycleObservedAt,\n }),\n ]),\n);\nexport type GoogleDriveConnectionLifecycle = z.infer<typeof GoogleDriveConnectionLifecycle>;\n\nexport const GoogleDriveSelectedSource = /* @__PURE__ */ defineSchema(() =>\n z.object({\n id: z.string().min(1).max(256),\n name: z.string().min(1).max(1024),\n mimeType: z.string().min(1).max(256),\n driveId: z.string().min(1).max(256).nullable().default(null),\n destination: ConnectorDocumentDestination.optional(),\n /** @deprecated Missing destinations resolve to the current workspace boundary. */\n targetScope: GoogleDriveTargetScope.optional(),\n syncCadence: GoogleDriveSyncCadence.default(\"hourly\"),\n syncEnabled: z.boolean().default(false),\n configGeneration: z.number().int().positive().default(1),\n readPolicy: GoogleDriveReadPolicy.default(\"allow\"),\n selectedAt: z.string().datetime({ offset: true }),\n }),\n);\nexport type GoogleDriveSelectedSource = z.infer<typeof GoogleDriveSelectedSource>;\n\nexport const GoogleDriveOutputDestination = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n folderId: z.string().min(1).max(256),\n folderName: z.string().min(1).max(1024),\n driveId: z.string().min(1).max(256).nullable(),\n location: z.enum([\"my_drive\", \"shared_drive\"]),\n selectedAt: z.string().datetime({ offset: true }),\n })\n .strict()\n .superRefine((value, context) => {\n if ((value.location === \"my_drive\") !== (value.driveId === null)) {\n context.addIssue({\n code: \"custom\",\n path: [\"driveId\"],\n message: \"Google Drive destination location does not match its drive identity\",\n });\n }\n }),\n);\nexport type GoogleDriveOutputDestination = z.infer<typeof GoogleDriveOutputDestination>;\n\nexport const GoogleDriveConnectionMetadata = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n credentialRole: z.literal(GOOGLE_DRIVE_CREDENTIAL_ROLE),\n credentialLabel: z.union([\n z.literal(GOOGLE_DRIVE_CREDENTIAL_LABEL),\n z.literal(GOOGLE_DRIVE_LEGACY_CREDENTIAL_LABEL),\n ]),\n googlePermissionId: z.string().min(1).max(256),\n googleEmail: z.string().email().max(320),\n googleDisplayName: z.string().min(1).max(512).nullable(),\n verifiedAt: z.string().datetime({ offset: true }),\n accessMode: z.enum([\"file_only\", \"metadata_readonly\", \"readonly\"]),\n lifecycle: GoogleDriveConnectionLifecycle.optional(),\n outputDestination: GoogleDriveOutputDestination.optional(),\n documentDestination: ConnectorDocumentDestination.optional(),\n selectedSources: z.array(GoogleDriveSelectedSource).max(100).optional(),\n /** @deprecated Read `selectedSources`; retained while existing connections migrate. */\n selectedSource: GoogleDriveSelectedSource.nullable().optional(),\n })\n .passthrough(),\n);\nexport type GoogleDriveConnectionMetadata = z.infer<typeof GoogleDriveConnectionMetadata>;\n\nexport const GoogleDriveOAuthStartRequest = /* @__PURE__ */ defineSchema(() =>\n z.object({\n connectionId: z.string().uuid().optional(),\n capability: z.enum([\"source_read\", \"publish\"]).default(\"source_read\"),\n }),\n);\nexport type GoogleDriveOAuthStartRequest = z.infer<typeof GoogleDriveOAuthStartRequest>;\n\nexport const GoogleDriveOAuthStartResponse = /* @__PURE__ */ defineSchema(() =>\n z.object({\n authorizationUrl: z.string().url(),\n expiresAt: z.string().datetime({ offset: true }),\n }),\n);\nexport type GoogleDriveOAuthStartResponse = z.infer<typeof GoogleDriveOAuthStartResponse>;\n\nexport const GoogleDriveLifecycleActionRequest = /* @__PURE__ */ defineSchema(() =>\n z.object({\n action: z.enum([\"pause\", \"resume\"]),\n expectedVersion: z.number().int().positive(),\n }),\n);\nexport type GoogleDriveLifecycleActionRequest = z.infer<typeof GoogleDriveLifecycleActionRequest>;\n\nexport const GoogleDriveDisconnectRequest = /* @__PURE__ */ defineSchema(() =>\n z.object({\n expectedVersion: z.number().int().positive(),\n idempotencyKey: z.string().trim().min(1).max(200),\n }),\n);\nexport type GoogleDriveDisconnectRequest = z.infer<typeof GoogleDriveDisconnectRequest>;\n\nexport const GoogleDrivePublicationExportFile = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n fileId: z.string().uuid(),\n filename: z.string().trim().min(1).max(512),\n contentType: z.string().trim().min(1).max(256),\n sizeBytes: z.number().int().positive(),\n sha256: z.string().regex(/^[0-9a-f]{64}$/u),\n artifactId: z.string().regex(/^[0-9a-f]{32}$/u),\n versionId: z.string().regex(/^[0-9a-f]{32}$/u),\n materializationJobId: z.string().regex(/^[0-9a-f]{32}$/u),\n sourceHeadSequence: z.number().int().nonnegative(),\n sourceStateHash: z.string().regex(/^sha256:[0-9a-f]{64}$/u),\n })\n .strict(),\n);\nexport type GoogleDrivePublicationExportFile = z.infer<typeof GoogleDrivePublicationExportFile>;\n\nexport const GoogleDrivePublicationToolInput = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n title: z.string().trim().min(1).max(512),\n modality: z.enum([\"document\", \"spreadsheet\", \"presentation\"]),\n file: GoogleDrivePublicationExportFile,\n idempotencyKey: z.string().trim().min(1).max(200),\n })\n .strict(),\n);\nexport type GoogleDrivePublicationToolInput = z.infer<typeof GoogleDrivePublicationToolInput>;\n\nexport const GoogleDrivePublicationReceipt = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n connectionId: z.string().uuid(),\n providerFileId: z.string().min(1).max(256),\n webViewLink: z.string().url(),\n mimeType: z.enum([\n \"application/vnd.google-apps.document\",\n \"application/vnd.google-apps.spreadsheet\",\n \"application/vnd.google-apps.presentation\",\n ]),\n destination: GoogleDriveOutputDestination,\n replayed: z.boolean(),\n })\n .strict(),\n);\nexport type GoogleDrivePublicationReceipt = z.infer<typeof GoogleDrivePublicationReceipt>;\n\nexport const GoogleDriveBrowseItem = /* @__PURE__ */ defineSchema(() =>\n z.object({\n id: z.string().min(1).max(256),\n name: z.string().min(1).max(1024),\n mimeType: z.string().min(1).max(256),\n kind: z.enum([\"folder\", \"file\"]),\n driveId: z.string().min(1).max(256).nullable(),\n modifiedTime: z.string().datetime({ offset: true }).nullable(),\n size: z.string().regex(/^\\d+$/).nullable(),\n webViewLink: z.string().url().nullable(),\n }),\n);\nexport type GoogleDriveBrowseItem = z.infer<typeof GoogleDriveBrowseItem>;\n\nexport const GoogleDriveBrowseResponse = /* @__PURE__ */ defineSchema(() =>\n z.object({\n connection: z.lazy(() => ConnectionMetadata),\n parentId: z.string().min(1).max(256),\n current: GoogleDriveBrowseItem.nullable(),\n items: z.array(GoogleDriveBrowseItem),\n nextPageToken: z.string().min(1).max(4096).nullable(),\n incompleteSearch: z.boolean(),\n }),\n);\nexport type GoogleDriveBrowseResponse = z.infer<typeof GoogleDriveBrowseResponse>;\n\nconst GoogleDriveSourceSelection = /* @__PURE__ */ defineSchema(() =>\n z\n .array(\n GoogleDriveBrowseItem.pick({\n id: true,\n name: true,\n mimeType: true,\n driveId: true,\n }),\n )\n .max(100)\n .refine((sources) => new Set(sources.map((source) => source.id)).size === sources.length, {\n message: \"Google Drive sources must be unique\",\n }),\n);\n\nexport const SaveGoogleDriveSourceRequest = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n sources: GoogleDriveSourceSelection,\n destination: ConnectorDocumentDestinationSelection.optional(),\n /** @deprecated Legacy requests are accepted but resolve to workspace authority. */\n targetScope: GoogleDriveTargetScope.optional(),\n syncCadence: GoogleDriveSyncCadence.default(\"hourly\"),\n syncEnabled: z.boolean().default(false),\n readPolicy: GoogleDriveReadPolicy.default(\"allow\"),\n })\n .refine((request) => request.destination !== undefined || request.targetScope !== undefined, {\n message: \"Google Drive document destination is required\",\n }),\n);\nexport type SaveGoogleDriveSourceRequest = z.infer<typeof SaveGoogleDriveSourceRequest>;\n\nexport const GoogleDriveKnowledgeSourceItem = /* @__PURE__ */ defineSchema(() =>\n z.object({\n id: z.string().min(1).max(512),\n name: z.string().min(1).max(1024),\n mimeType: z.string().min(1).max(256),\n driveId: z.string().min(1).max(512).optional(),\n sourceKind: z.enum([\"my_drive\", \"shared_drive\", \"folder\"]),\n includeDescendants: z.boolean(),\n }),\n);\nexport type GoogleDriveKnowledgeSourceItem = z.infer<typeof GoogleDriveKnowledgeSourceItem>;\n\nexport const GoogleDriveKnowledgeSourceDestination = /* @__PURE__ */ defineSchema(() =>\n z.object({\n authorityKind: z.enum([\"organization\", \"workspace\", \"personal\"]),\n authorityAccountId: z.string().min(1).max(128),\n authorityWorkspaceId: z.string().min(1).max(128).optional(),\n authoritySubjectId: z.string().min(1).max(512).optional(),\n collectionId: z.string().min(1).max(512).optional(),\n }),\n);\nexport type GoogleDriveKnowledgeSourceDestination = z.infer<\n typeof GoogleDriveKnowledgeSourceDestination\n>;\n\nexport const GoogleDriveKnowledgeSourceConfig = /* @__PURE__ */ defineSchema(() =>\n z.object({\n sources: z.array(GoogleDriveKnowledgeSourceItem).min(1).max(100),\n destination: GoogleDriveKnowledgeSourceDestination,\n syncCadence: GoogleDriveSyncCadence,\n readPolicy: GoogleDriveReadPolicy,\n }),\n);\nexport type GoogleDriveKnowledgeSourceConfig = z.infer<typeof GoogleDriveKnowledgeSourceConfig>;\n\nexport const SaveGoogleDriveIntegrationSourceRequest = /* @__PURE__ */ defineSchema(() =>\n z.intersection(\n SaveGoogleDriveSourceRequest,\n z.object({\n sources: GoogleDriveSourceSelection.refine((sources) => sources.length > 0, {\n message: \"At least one Google Drive source is required\",\n }),\n expectedVersion: z.number().int().positive().optional(),\n idempotencyKey: z.string().uuid(),\n }),\n ),\n);\nexport type SaveGoogleDriveIntegrationSourceRequest = z.infer<\n typeof SaveGoogleDriveIntegrationSourceRequest\n>;\n"],"mappings":"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","names":[]}
|
|
@@ -3,34 +3,35 @@ import {
|
|
|
3
3
|
} from "./chunk-HABQ7ADB.js";
|
|
4
4
|
import {
|
|
5
5
|
ConnectionUseAuthoritySnapshot
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-KLG2MBAU.js";
|
|
7
7
|
import {
|
|
8
8
|
HostMcpCreateSelections,
|
|
9
9
|
ManagedUserResourceGrantMode,
|
|
10
10
|
McpServerConnectionRef,
|
|
11
11
|
SessionTenancyVisibility,
|
|
12
12
|
stableJson
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-B2G6NXLZ.js";
|
|
14
14
|
import "./chunk-EFZYKUE2.js";
|
|
15
15
|
import "./chunk-Z7WEVGCL.js";
|
|
16
|
+
import "./chunk-LZ2LAHIX.js";
|
|
16
17
|
import "./chunk-4JGHSSB7.js";
|
|
18
|
+
import "./chunk-XDLAGX66.js";
|
|
17
19
|
import "./chunk-2ZIHHL72.js";
|
|
18
|
-
import "./chunk-LZ2LAHIX.js";
|
|
19
20
|
import "./chunk-NDZHPTCL.js";
|
|
20
21
|
import "./chunk-SHO4YO4B.js";
|
|
21
22
|
import "./chunk-TSWWZMUS.js";
|
|
22
|
-
import "./chunk-XDLAGX66.js";
|
|
23
23
|
import "./chunk-4VDMHLLL.js";
|
|
24
24
|
import "./chunk-E3GGUBHS.js";
|
|
25
25
|
import "./chunk-KHHZTBP7.js";
|
|
26
|
-
import "./chunk-6IXO76Z6.js";
|
|
27
26
|
import "./chunk-NVJMJWLL.js";
|
|
28
27
|
import "./chunk-352X6ENP.js";
|
|
29
28
|
import "./chunk-YRKRZ6OF.js";
|
|
29
|
+
import "./chunk-6IXO76Z6.js";
|
|
30
30
|
import "./chunk-J4HQ3UKY.js";
|
|
31
31
|
import "./chunk-YKZ4WU4P.js";
|
|
32
32
|
import "./chunk-TLU3UEMD.js";
|
|
33
33
|
import "./chunk-OL23ARTF.js";
|
|
34
|
+
import "./chunk-C6HESWDB.js";
|
|
34
35
|
import "./chunk-TCXCRBPF.js";
|
|
35
36
|
import "./chunk-ZDCRWCGZ.js";
|
|
36
37
|
import "./chunk-SWRN2DJ3.js";
|