@vekil/app-sdk 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../app-protocol/src/common.ts","../../app-protocol/src/app-compilation-binding.ts","../../app-protocol/src/app-categories.ts","../../app-context/src/context-envelope.ts","../../app-context/src/context-scopes.ts","../../app-context/src/context-projection.ts","../../app-context/src/context-redaction.ts","../../app-protocol/src/app-definition.ts","../../app-protocol/src/app-manifest.ts","../../api-contracts/src/identity.ts","../../api-contracts/src/auth.ts","../../api-contracts/src/public-page.ts","../../api-contracts/src/usage.ts","../../api-contracts/src/vekil.ts","../../../product/domain/src/agent.ts","../../../product/domain/src/communication.ts","../../../product/domain/src/identity.ts","../../../product/domain/src/request.ts","../../api-contracts/src/app-development.ts","../../api-contracts/src/administration.ts","../../api-contracts/src/health.ts","../../api-contracts/src/assets.ts","../../api-contracts/src/apps.ts","../../api-contracts/src/bubbles.ts","../../api-contracts/src/communication.ts","../../api-contracts/src/errors.ts","../../api-contracts/src/inbox.ts","../../api-contracts/src/policies.ts","../../api-contracts/src/requests.ts","../../app-protocol/src/canonical-json.ts","../../app-protocol/src/runtime-envelopes.ts","../../app-protocol/src/declarative-host-envelopes.ts","../../app-protocol/src/json-schema.ts","../../app-protocol/src/signature-envelope.ts","../../app-compiler/src/app-compiler.ts","../src/definition-tooling.ts","../src/remote-app-starter.ts"],"names":["AppRuntimeHost","AppConnectionType","AppCategoryId","AppPermissionSensitivity","AppRiskLevel","AppSideEffectType","AppApprovalMode","AppPolicyEffect","AppOrigin","AppIntentMode","AppKnowledgeAudience","AppKnowledgeSourceType","AppContactIdentityAttribute","AppFieldType","AppOutcomeStatus","AppHttpMethod","AppValueSource","AppWorkflowStepType","AppPlanStatus","AppExecutionStatus","AppRuntimeHealthStatus","z","createHash","AppIconType","AppClarificationMode","AppRequesterReviewMode","AppSettingsOptionsSourceType","AppArtifactCardinality","AppArtifactAudience","isOriginUrl","PublicHandleClaimStatus","PreferredColorScheme","AuthAdminRole","UserOnboardingStatus","UserOnboardingStep","ManagedAiServiceStatus","ProductPlanKey","PublicVekilRequestAvailability","AgentStatus","PublicRequestSessionStatus","RequestStatus","AppSubmissionViewStatus","AppBuilderProjectViewStatus","BuilderProfileViewStatus","AppTestRunViewStatus","AppBuilderAudience","AppBuilderLifecycleState","AppBuilderCandidateTestStatus","AdminAppDefinitionStatus","AdminAppRuntimeType","AdminAppTrustLevel","AdminAppVersionStatus","AdminAppVisibility","AdminBuilderProfileStatus","AppReviewAction","AppReviewEventType","AdminAppModerationEventType","HealthDependencyStatus","ServiceReadinessStatus","UploadAssetKind","UploadAssetViewStatus","appManifestSnapshotSchema","AppAvailabilitySource","AppConnectionStartStatus","BubbleType","BubbleVariant","BubbleMediaType","BubbleContentVisibility","BubbleSensitivity","BubbleSourceType","BubbleBadgeTone","BubbleActionType","BubbleActionRiskLevel","BubbleActionStatus","BubbleActionInvocationStatus","BubbleValidationStatus","optionalTrimmedString","canonicalizeJson","stringifyCanonicalJson","AppInstallationConnectionStatus","AppRuntimeErrorCode","AppSignatureAlgorithm","AppCompilerIssueCode","AppConformanceCheckId","AppConformanceCheckStatus"],"mappings":"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","file":"index.cjs","sourcesContent":["import { z } from \"zod\";\n\nexport const appProtocolVersion = \"2026-07-19\" as const;\nexport const appDefinitionVersion = \"2026-07\" as const;\nexport const appManifestVersion = \"2026-07\" as const;\nexport const appSettingsSchemaVersion = 1 as const;\nexport const appPoliciesSchemaVersion = 1 as const;\n\nexport enum AppRuntimeHost {\n DECLARATIVE = \"DECLARATIVE\",\n REMOTE = \"REMOTE\"\n}\n\nexport enum AppConnectionType {\n NONE = \"NONE\",\n API_KEY = \"API_KEY\",\n OAUTH2 = \"OAUTH2\"\n}\n\nexport enum AppCategoryId {\n COMMUNICATION = \"communication\",\n PRODUCTIVITY = \"productivity\",\n CUSTOMER_RELATIONSHIPS = \"customer-relationships\",\n PEOPLE_AND_TEAMS = \"people-and-teams\",\n MARKETING_AND_CONTENT = \"marketing-and-content\",\n COMMERCE_AND_PAYMENTS = \"commerce-and-payments\",\n FINANCE = \"finance\",\n LEGAL_AND_COMPLIANCE = \"legal-and-compliance\",\n OPERATIONS_AND_LOGISTICS = \"operations-and-logistics\",\n DATA_AND_KNOWLEDGE = \"data-and-knowledge\",\n DEVELOPER_AND_IT = \"developer-and-it\",\n SERVICES_AND_BOOKINGS = \"services-and-bookings\",\n PERSONAL_AND_LIFESTYLE = \"personal-and-lifestyle\",\n OTHER = \"other\"\n}\n\nexport enum AppPermissionSensitivity {\n STANDARD = \"STANDARD\",\n SENSITIVE = \"SENSITIVE\"\n}\n\nexport enum AppRiskLevel {\n LOW = \"LOW\",\n MEDIUM = \"MEDIUM\",\n HIGH = \"HIGH\",\n CRITICAL = \"CRITICAL\"\n}\n\nexport enum AppSideEffectType {\n READ_ONLY = \"READ_ONLY\",\n PROPOSAL_ONLY = \"PROPOSAL_ONLY\",\n WRITE_EXTERNAL_STATE = \"WRITE_EXTERNAL_STATE\",\n SEND_MESSAGE = \"SEND_MESSAGE\",\n SHARE_DATA = \"SHARE_DATA\",\n FINANCIAL_ACTION = \"FINANCIAL_ACTION\",\n DESTRUCTIVE_ACTION = \"DESTRUCTIVE_ACTION\"\n}\n\nexport enum AppApprovalMode {\n NOT_REQUIRED = \"NOT_REQUIRED\",\n POLICY = \"POLICY\",\n ALWAYS = \"ALWAYS\"\n}\n\nexport enum AppPolicyEffect {\n ALLOW = \"ALLOW\",\n REQUIRE_APPROVAL = \"REQUIRE_APPROVAL\",\n DENY = \"DENY\"\n}\n\nexport enum AppOrigin {\n PUBLIC_GUEST = \"PUBLIC_GUEST\",\n PUBLIC_VERIFIED_EXTERNAL = \"PUBLIC_VERIFIED_EXTERNAL\",\n PUBLIC_AUTHENTICATED = \"PUBLIC_AUTHENTICATED\",\n AGENT_TO_AGENT = \"AGENT_TO_AGENT\",\n SYSTEM_GENERATED = \"SYSTEM_GENERATED\"\n}\n\nexport enum AppIntentMode {\n ANSWER = \"ANSWER\",\n COLLECT = \"COLLECT\",\n EXECUTE = \"EXECUTE\"\n}\n\nexport enum AppKnowledgeAudience {\n PUBLIC = \"PUBLIC\",\n VERIFIED_REQUESTER = \"VERIFIED_REQUESTER\",\n OWNER = \"OWNER\"\n}\n\nexport enum AppKnowledgeSourceType {\n RUNTIME = \"RUNTIME\",\n SETTING = \"SETTING\"\n}\n\nexport enum AppContactIdentityAttribute {\n DISPLAY_NAME = \"DISPLAY_NAME\",\n EMAIL = \"EMAIL\"\n}\n\nexport const appContactIdentityAttributeJsonSchemaKey =\n \"x-vekil-contact-identity-attribute\" as const;\n\nexport enum AppFieldType {\n PERSON_NAME = \"PERSON_NAME\",\n TEXT = \"TEXT\",\n TEXTAREA = \"TEXTAREA\",\n BOOLEAN = \"BOOLEAN\",\n NUMBER = \"NUMBER\",\n INTEGER = \"INTEGER\",\n SELECT = \"SELECT\",\n MULTI_SELECT = \"MULTI_SELECT\",\n DATE = \"DATE\",\n DATETIME = \"DATETIME\",\n TIME = \"TIME\",\n DURATION = \"DURATION\",\n TIMEZONE = \"TIMEZONE\",\n WEEKLY_SCHEDULE = \"WEEKLY_SCHEDULE\",\n EMAIL = \"EMAIL\",\n PHONE = \"PHONE\",\n URL = \"URL\",\n TEXT_LIST = \"TEXT_LIST\",\n OBJECT_LIST = \"OBJECT_LIST\",\n NATURAL_LANGUAGE_RULES = \"NATURAL_LANGUAGE_RULES\"\n}\n\nexport enum AppOutcomeStatus {\n SUCCESS = \"SUCCESS\",\n ERROR = \"ERROR\"\n}\n\nexport enum AppHttpMethod {\n GET = \"GET\",\n POST = \"POST\",\n PUT = \"PUT\",\n PATCH = \"PATCH\",\n DELETE = \"DELETE\"\n}\n\nexport enum AppValueSource {\n LITERAL = \"LITERAL\",\n INPUT = \"INPUT\",\n CONTEXT = \"CONTEXT\",\n SETTING = \"SETTING\",\n SECRET = \"SECRET\",\n STEP_OUTPUT = \"STEP_OUTPUT\"\n}\n\nexport enum AppWorkflowStepType {\n HTTP_REQUEST = \"HTTP_REQUEST\",\n TRANSFORM = \"TRANSFORM\",\n CONDITION = \"CONDITION\",\n TEMPLATE = \"TEMPLATE\",\n EMIT_ARTIFACT = \"EMIT_ARTIFACT\",\n EMIT_BUBBLE = \"EMIT_BUBBLE\",\n EMIT_RESULT = \"EMIT_RESULT\"\n}\n\nexport enum AppPlanStatus {\n READY = \"READY\",\n NEEDS_CLARIFICATION = \"NEEDS_CLARIFICATION\",\n REJECTED = \"REJECTED\"\n}\n\nexport enum AppExecutionStatus {\n SUCCEEDED = \"SUCCEEDED\",\n FAILED = \"FAILED\"\n}\n\nexport enum AppRuntimeHealthStatus {\n HEALTHY = \"HEALTHY\",\n DEGRADED = \"DEGRADED\",\n UNHEALTHY = \"UNHEALTHY\"\n}\n\nexport const appRuntimeHostSchema = z.enum([AppRuntimeHost.DECLARATIVE, AppRuntimeHost.REMOTE]);\n\nexport const appConnectionTypeSchema = z.enum([\n AppConnectionType.NONE,\n AppConnectionType.API_KEY,\n AppConnectionType.OAUTH2\n]);\n\nexport const appCategoryIdSchema = z.enum(AppCategoryId);\n\nexport const appPermissionSensitivitySchema = z.enum([\n AppPermissionSensitivity.STANDARD,\n AppPermissionSensitivity.SENSITIVE\n]);\n\nexport const appRiskLevelSchema = z.enum([\n AppRiskLevel.LOW,\n AppRiskLevel.MEDIUM,\n AppRiskLevel.HIGH,\n AppRiskLevel.CRITICAL\n]);\n\nexport const appSideEffectTypeSchema = z.enum([\n AppSideEffectType.READ_ONLY,\n AppSideEffectType.PROPOSAL_ONLY,\n AppSideEffectType.WRITE_EXTERNAL_STATE,\n AppSideEffectType.SEND_MESSAGE,\n AppSideEffectType.SHARE_DATA,\n AppSideEffectType.FINANCIAL_ACTION,\n AppSideEffectType.DESTRUCTIVE_ACTION\n]);\n\nexport const appApprovalModeSchema = z.enum([\n AppApprovalMode.NOT_REQUIRED,\n AppApprovalMode.POLICY,\n AppApprovalMode.ALWAYS\n]);\n\nexport const appPolicyEffectSchema = z.enum([\n AppPolicyEffect.ALLOW,\n AppPolicyEffect.REQUIRE_APPROVAL,\n AppPolicyEffect.DENY\n]);\n\nexport const appOriginSchema = z.enum([\n AppOrigin.PUBLIC_GUEST,\n AppOrigin.PUBLIC_VERIFIED_EXTERNAL,\n AppOrigin.PUBLIC_AUTHENTICATED,\n AppOrigin.AGENT_TO_AGENT,\n AppOrigin.SYSTEM_GENERATED\n]);\n\nexport const appIntentModeSchema = z.enum([\n AppIntentMode.ANSWER,\n AppIntentMode.COLLECT,\n AppIntentMode.EXECUTE\n]);\n\nexport const appKnowledgeAudienceSchema = z.enum([\n AppKnowledgeAudience.PUBLIC,\n AppKnowledgeAudience.VERIFIED_REQUESTER,\n AppKnowledgeAudience.OWNER\n]);\n\nexport const appKnowledgeSourceTypeSchema = z.enum([\n AppKnowledgeSourceType.RUNTIME,\n AppKnowledgeSourceType.SETTING\n]);\n\nexport const appContactIdentityAttributeSchema = z.enum([\n AppContactIdentityAttribute.DISPLAY_NAME,\n AppContactIdentityAttribute.EMAIL\n]);\n\nexport const appFieldTypeSchema = z.enum([\n AppFieldType.PERSON_NAME,\n AppFieldType.TEXT,\n AppFieldType.TEXTAREA,\n AppFieldType.BOOLEAN,\n AppFieldType.NUMBER,\n AppFieldType.INTEGER,\n AppFieldType.SELECT,\n AppFieldType.MULTI_SELECT,\n AppFieldType.DATE,\n AppFieldType.DATETIME,\n AppFieldType.TIME,\n AppFieldType.DURATION,\n AppFieldType.TIMEZONE,\n AppFieldType.WEEKLY_SCHEDULE,\n AppFieldType.EMAIL,\n AppFieldType.PHONE,\n AppFieldType.URL,\n AppFieldType.TEXT_LIST,\n AppFieldType.OBJECT_LIST,\n AppFieldType.NATURAL_LANGUAGE_RULES\n]);\n\nexport const appOutcomeStatusSchema = z.enum([AppOutcomeStatus.SUCCESS, AppOutcomeStatus.ERROR]);\n\nexport const appHttpMethodSchema = z.enum([\n AppHttpMethod.GET,\n AppHttpMethod.POST,\n AppHttpMethod.PUT,\n AppHttpMethod.PATCH,\n AppHttpMethod.DELETE\n]);\n\nexport const appPlanStatusSchema = z.enum([\n AppPlanStatus.READY,\n AppPlanStatus.NEEDS_CLARIFICATION,\n AppPlanStatus.REJECTED\n]);\n\nexport const appExecutionStatusSchema = z.enum([\n AppExecutionStatus.SUCCEEDED,\n AppExecutionStatus.FAILED\n]);\n\nexport const appRuntimeHealthStatusSchema = z.enum([\n AppRuntimeHealthStatus.HEALTHY,\n AppRuntimeHealthStatus.DEGRADED,\n AppRuntimeHealthStatus.UNHEALTHY\n]);\n\nexport const appIdSchema = z\n .string()\n .min(2)\n .max(64)\n .regex(/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/);\n\nexport const appSlugMaxLength = 64;\nexport const reservedAppSlugs = [\"build\", \"installed\"] as const;\n\nexport const appSlugSchema = z\n .string()\n .min(2)\n .max(appSlugMaxLength)\n .regex(/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/)\n .refine((value) => !(reservedAppSlugs as readonly string[]).includes(value), {\n message: \"This App slug is reserved by Vekil.\"\n });\n\nexport const appLocalKeySchema = z\n .string()\n .min(1)\n .max(80)\n .regex(/^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/);\n\nexport const appNamespacedIdSchema = z\n .string()\n .min(3)\n .max(160)\n .regex(/^[a-z][a-z0-9-]*\\.[a-z0-9][a-z0-9._-]*$/);\n\nexport const localeCodeSchema = z\n .string()\n .min(2)\n .max(35)\n .regex(/^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$/);\n\nexport const semanticVersionSchema = z\n .string()\n .regex(/^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-[0-9A-Za-z.-]+)?$/);\n\nexport const isoDateTimeSchema = z.string().datetime({ offset: true });\n\nexport const localizedTextSchema = z.record(localeCodeSchema, z.string().min(1).max(4_000));\n\nexport const localizedExamplesSchema = z.record(\n localeCodeSchema,\n z.array(z.string().min(1).max(600)).max(32)\n);\n\nexport const localeKeySchema = z\n .string()\n .min(3)\n .max(220)\n .regex(/^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)+$/);\n\nexport const jsonObjectSchema = z.record(z.string(), z.json());\nexport const jsonSchemaSchema = z.record(z.string(), z.json());\n\nexport const jsonPathSchema = z\n .string()\n .min(1)\n .max(240)\n .regex(/^[A-Za-z0-9_-]+(?:\\.[A-Za-z0-9_-]+)*$/);\n\nexport const httpsOrLocalhostUrlSchema = z\n .string()\n .url()\n .refine((value) => {\n const url = new URL(value);\n const isLocalhost = url.hostname === \"localhost\" || url.hostname === \"127.0.0.1\";\n\n return url.protocol === \"https:\" || (isLocalhost && url.protocol === \"http:\");\n }, \"URL must use HTTPS outside localhost\");\n\nexport const httpsUrlSchema = z\n .string()\n .url()\n .refine((value) => value.startsWith(\"https://\"), \"URL must use HTTPS\");\n\nexport const runtimeSecretReferenceSchema = z\n .string()\n .min(3)\n .max(120)\n .regex(/^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)+$/);\n\nexport type LocalizedText = z.infer<typeof localizedTextSchema>;\nexport type LocalizedExamples = z.infer<typeof localizedExamplesSchema>;\nexport type JsonObject = z.infer<typeof jsonObjectSchema>;\n","import { z } from \"zod\";\nimport {\n appIdSchema,\n appLocalKeySchema,\n appSlugSchema,\n httpsUrlSchema,\n semanticVersionSchema\n} from \"./common\";\n\nexport const appCompilationDeveloperSchema = z.strictObject({\n id: appLocalKeySchema,\n handle: z\n .string()\n .min(2)\n .max(64)\n .regex(/^@[A-Za-z0-9_]+$/),\n name: z.string().min(1).max(100),\n websiteUrl: httpsUrlSchema.optional(),\n xProfileUrl: httpsUrlSchema.optional(),\n supportEmail: z.string().email().optional(),\n verified: z.boolean(),\n officialTeamMember: z.boolean()\n});\n\nexport const appCompilationBindingSchema = z.strictObject({\n appId: appIdSchema,\n slug: appSlugSchema,\n releaseVersion: semanticVersionSchema,\n appOfficial: z.boolean(),\n developer: appCompilationDeveloperSchema\n});\n\nexport type AppCompilationBinding = z.infer<typeof appCompilationBindingSchema>;\nexport type AppCompilationDeveloper = z.infer<typeof appCompilationDeveloperSchema>;\n","import { AppCategoryId } from \"./common\";\n\nexport interface AppCategoryDefinition {\n descriptionI18nKey: `app-categories-${AppCategoryId}-description`;\n id: AppCategoryId;\n labelI18nKey: `app-categories-${AppCategoryId}-label`;\n sortOrder: number;\n}\n\nconst APP_CATEGORY_METADATA = Object.freeze({\n [AppCategoryId.COMMUNICATION]: {\n descriptionI18nKey: \"app-categories-communication-description\",\n id: AppCategoryId.COMMUNICATION,\n labelI18nKey: \"app-categories-communication-label\",\n sortOrder: 10\n },\n [AppCategoryId.PRODUCTIVITY]: {\n descriptionI18nKey: \"app-categories-productivity-description\",\n id: AppCategoryId.PRODUCTIVITY,\n labelI18nKey: \"app-categories-productivity-label\",\n sortOrder: 20\n },\n [AppCategoryId.CUSTOMER_RELATIONSHIPS]: {\n descriptionI18nKey: \"app-categories-customer-relationships-description\",\n id: AppCategoryId.CUSTOMER_RELATIONSHIPS,\n labelI18nKey: \"app-categories-customer-relationships-label\",\n sortOrder: 30\n },\n [AppCategoryId.PEOPLE_AND_TEAMS]: {\n descriptionI18nKey: \"app-categories-people-and-teams-description\",\n id: AppCategoryId.PEOPLE_AND_TEAMS,\n labelI18nKey: \"app-categories-people-and-teams-label\",\n sortOrder: 40\n },\n [AppCategoryId.MARKETING_AND_CONTENT]: {\n descriptionI18nKey: \"app-categories-marketing-and-content-description\",\n id: AppCategoryId.MARKETING_AND_CONTENT,\n labelI18nKey: \"app-categories-marketing-and-content-label\",\n sortOrder: 50\n },\n [AppCategoryId.COMMERCE_AND_PAYMENTS]: {\n descriptionI18nKey: \"app-categories-commerce-and-payments-description\",\n id: AppCategoryId.COMMERCE_AND_PAYMENTS,\n labelI18nKey: \"app-categories-commerce-and-payments-label\",\n sortOrder: 60\n },\n [AppCategoryId.FINANCE]: {\n descriptionI18nKey: \"app-categories-finance-description\",\n id: AppCategoryId.FINANCE,\n labelI18nKey: \"app-categories-finance-label\",\n sortOrder: 70\n },\n [AppCategoryId.LEGAL_AND_COMPLIANCE]: {\n descriptionI18nKey: \"app-categories-legal-and-compliance-description\",\n id: AppCategoryId.LEGAL_AND_COMPLIANCE,\n labelI18nKey: \"app-categories-legal-and-compliance-label\",\n sortOrder: 80\n },\n [AppCategoryId.OPERATIONS_AND_LOGISTICS]: {\n descriptionI18nKey: \"app-categories-operations-and-logistics-description\",\n id: AppCategoryId.OPERATIONS_AND_LOGISTICS,\n labelI18nKey: \"app-categories-operations-and-logistics-label\",\n sortOrder: 90\n },\n [AppCategoryId.DATA_AND_KNOWLEDGE]: {\n descriptionI18nKey: \"app-categories-data-and-knowledge-description\",\n id: AppCategoryId.DATA_AND_KNOWLEDGE,\n labelI18nKey: \"app-categories-data-and-knowledge-label\",\n sortOrder: 100\n },\n [AppCategoryId.DEVELOPER_AND_IT]: {\n descriptionI18nKey: \"app-categories-developer-and-it-description\",\n id: AppCategoryId.DEVELOPER_AND_IT,\n labelI18nKey: \"app-categories-developer-and-it-label\",\n sortOrder: 110\n },\n [AppCategoryId.SERVICES_AND_BOOKINGS]: {\n descriptionI18nKey: \"app-categories-services-and-bookings-description\",\n id: AppCategoryId.SERVICES_AND_BOOKINGS,\n labelI18nKey: \"app-categories-services-and-bookings-label\",\n sortOrder: 120\n },\n [AppCategoryId.PERSONAL_AND_LIFESTYLE]: {\n descriptionI18nKey: \"app-categories-personal-and-lifestyle-description\",\n id: AppCategoryId.PERSONAL_AND_LIFESTYLE,\n labelI18nKey: \"app-categories-personal-and-lifestyle-label\",\n sortOrder: 130\n },\n [AppCategoryId.OTHER]: {\n descriptionI18nKey: \"app-categories-other-description\",\n id: AppCategoryId.OTHER,\n labelI18nKey: \"app-categories-other-label\",\n sortOrder: 999\n }\n} satisfies Record<AppCategoryId, AppCategoryDefinition>);\n\nexport const APP_CATEGORY_DEFINITIONS: readonly AppCategoryDefinition[] = Object.freeze(\n Object.values(APP_CATEGORY_METADATA).sort((left, right) => left.sortOrder - right.sortOrder)\n);\n\nexport function getAppCategoryDefinition(categoryId: AppCategoryId): AppCategoryDefinition {\n return APP_CATEGORY_METADATA[categoryId];\n}\n\nexport function isAppCategoryId(value: string): value is AppCategoryId {\n return Object.hasOwn(APP_CATEGORY_METADATA, value);\n}\n","import { z } from \"zod\";\n\nexport const appContextProtocolVersion = \"2026-01\";\n\nexport const appContextTypes = [\n \"intent-resolution\",\n \"public-capability-render\",\n \"settings-render\",\n \"action-execution\",\n \"app-review-test\",\n \"async-callback-future\",\n \"widget-render-future\"\n] as const;\n\nexport type AppContextType = (typeof appContextTypes)[number];\n\nexport const appContextOriginTypes = [\n \"public-guest\",\n \"public-verified-external\",\n \"public-authenticated\",\n \"agent-to-agent\",\n \"owner-configuring-app\",\n \"app-review-test\",\n \"system-retry\"\n] as const;\n\nexport type AppContextOriginType = (typeof appContextOriginTypes)[number];\n\nexport const appContextViewerTypes = [\n \"guest\",\n \"verified-external\",\n \"vekil-user\",\n \"source-vekil\",\n \"system\"\n] as const;\n\nexport type AppContextViewerType = (typeof appContextViewerTypes)[number];\n\nexport const appContextSensitivityLevels = [\"LOW\", \"MEDIUM\", \"HIGH\"] as const;\n\nexport type AppContextSensitivityLevel = (typeof appContextSensitivityLevels)[number];\n\nexport const appContextArtifactInputKey = \"$artifacts\";\n\nexport const appContextArtifactCardinalities = [\"ONE\", \"MANY\", \"ONE_OR_MANY\"] as const;\n\nexport type AppContextArtifactCardinality = (typeof appContextArtifactCardinalities)[number];\n\nexport const appContextArtifactVisibilityLevels = [\n \"PUBLIC_REQUESTER\",\n \"REQUESTER_PRIVATE\",\n \"OWNER_PRIVATE\",\n \"AGENT_INTERNAL\",\n \"SYSTEM_ONLY\"\n] as const;\n\nexport type AppContextArtifactVisibilityLevel = (typeof appContextArtifactVisibilityLevels)[number];\n\nexport interface AppContextArtifactProvenance {\n requestArtifactId: string;\n sensitivityLevel: AppContextSensitivityLevel;\n shareableWithApps: boolean;\n sourceActionId: string | null;\n sourceAppExecutionAttemptId: string | null;\n sourceAppExecutionId: string | null;\n sourceStepId: string;\n sourceStepKey: string;\n visibilityLevel: AppContextArtifactVisibilityLevel;\n}\n\nexport interface AppContextArtifactInput {\n artifactId: string;\n cardinality: AppContextArtifactCardinality;\n provenance: AppContextArtifactProvenance[];\n schemaVersion: number;\n value: unknown;\n}\n\nexport interface AppContextViewerContact {\n email?: string | null;\n \"email-verified\"?: boolean;\n phone?: string | null;\n \"phone-verified\"?: boolean;\n}\n\nexport interface AppContextViewer {\n type: AppContextViewerType;\n handle?: string | null;\n \"display-name\"?: string | null;\n \"profile-url\"?: string | null;\n \"verification-status\"?: string | null;\n contact?: AppContextViewerContact;\n}\n\nexport interface AppContextEnvelope {\n \"protocol-version\": typeof appContextProtocolVersion;\n \"context-id\": string;\n \"context-type\": AppContextType;\n \"issued-at\": string;\n \"expires-at\": string;\n platform: {\n name: \"vekil\";\n environment: string;\n \"protocol-version\": typeof appContextProtocolVersion;\n };\n app: {\n \"app-id\": string;\n \"app-version-id\": string;\n \"app-version\": string;\n \"developer-id\": string;\n \"runtime-type\": string;\n };\n installation: {\n \"app-installation-id\": string;\n \"target-agent-id\": string;\n status: string;\n \"runtime-status\": string;\n };\n execution: {\n \"execution-id\": string;\n \"request-id\": string;\n \"action-plan-id\": string | null;\n \"action-step-id\": string | null;\n \"idempotency-key\": string;\n attempt: number;\n };\n origin: {\n type: AppContextOriginType;\n entrypoint: string;\n \"source-url\"?: string | null;\n };\n viewer: AppContextViewer;\n \"target-vekil\": {\n handle: string | null;\n \"display-name\": string;\n \"profile-url\": string | null;\n type: string;\n timezone: string;\n };\n request: {\n id: string;\n \"intent-id\": string | null;\n status: string;\n \"natural-language-summary\": string | null;\n entities: Record<string, unknown>;\n \"missing-fields\": string[];\n locale: string;\n };\n action: {\n \"action-id\": string;\n \"capability-id\": string;\n \"risk-level\": string;\n \"side-effect\": boolean;\n };\n input: Record<string, unknown>;\n settings: Record<string, unknown>;\n \"policy-result\": {\n allowed: boolean;\n \"requires-approval\": boolean;\n \"risk-level\": string;\n constraints: Record<string, unknown>;\n redactions: string[];\n };\n \"approval-result\": {\n status: \"approved\" | \"not-required\" | \"pending\";\n \"approval-id\"?: string | null;\n \"approved-at\"?: string | null;\n \"approval-scope\"?: string;\n \"approved-action-id\"?: string;\n reason?: string;\n };\n locale: {\n \"requester-locale\": string;\n \"owner-locale\": string;\n \"app-locale\": string;\n \"response-locale\": string;\n timezone: string;\n };\n security: {\n \"signature-algorithm\": \"none\" | \"ed25519-jws-v1\";\n \"signed-fields\": string[];\n \"body-hash\"?: string | null;\n };\n}\n\nconst recordSchema = z.record(z.string(), z.unknown());\n\nexport const appContextArtifactProvenanceSchema = z.strictObject({\n requestArtifactId: z.string().min(1).max(240),\n sensitivityLevel: z.enum(appContextSensitivityLevels),\n shareableWithApps: z.boolean(),\n sourceActionId: z.string().min(1).max(240).nullable(),\n sourceAppExecutionAttemptId: z.string().min(1).max(240).nullable(),\n sourceAppExecutionId: z.string().min(1).max(240).nullable(),\n sourceStepId: z.string().min(1).max(240),\n sourceStepKey: z.string().min(1).max(240),\n visibilityLevel: z.enum(appContextArtifactVisibilityLevels)\n}) satisfies z.ZodType<AppContextArtifactProvenance>;\n\nexport const appContextArtifactInputSchema = z.strictObject({\n artifactId: z.string().min(1).max(240),\n cardinality: z.enum(appContextArtifactCardinalities),\n provenance: z.array(appContextArtifactProvenanceSchema).min(1).max(64),\n schemaVersion: z.number().int().min(1).max(1_000),\n value: z.json()\n}) satisfies z.ZodType<AppContextArtifactInput>;\n\nexport const appContextArtifactInputsSchema = z.array(appContextArtifactInputSchema).max(32);\n\nconst actionInputSchema = recordSchema.superRefine((value, context) => {\n const artifactInputs = value[appContextArtifactInputKey];\n\n if (artifactInputs === undefined) {\n return;\n }\n\n const parsed = appContextArtifactInputsSchema.safeParse(artifactInputs);\n\n if (!parsed.success) {\n context.addIssue({\n code: \"custom\",\n message: \"The App artifact input envelope is invalid.\",\n path: [appContextArtifactInputKey]\n });\n }\n});\n\nexport const appContextEnvelopeSchema = z.strictObject({\n \"protocol-version\": z.literal(appContextProtocolVersion),\n \"context-id\": z.string().min(1),\n \"context-type\": z.enum(appContextTypes),\n \"issued-at\": z.string().min(1),\n \"expires-at\": z.string().min(1),\n platform: z.strictObject({\n name: z.literal(\"vekil\"),\n environment: z.string().min(1),\n \"protocol-version\": z.literal(appContextProtocolVersion)\n }),\n app: z.strictObject({\n \"app-id\": z.string().min(1),\n \"app-version-id\": z.string().min(1),\n \"app-version\": z.string().min(1),\n \"developer-id\": z.string().min(1),\n \"runtime-type\": z.string().min(1)\n }),\n installation: z.strictObject({\n \"app-installation-id\": z.string().min(1),\n \"target-agent-id\": z.string().min(1),\n status: z.string().min(1),\n \"runtime-status\": z.string().min(1)\n }),\n execution: z.strictObject({\n \"execution-id\": z.string().min(1),\n \"request-id\": z.string().min(1),\n \"action-plan-id\": z.string().nullable(),\n \"action-step-id\": z.string().nullable(),\n \"idempotency-key\": z.string().min(1),\n attempt: z.number().int().positive()\n }),\n origin: z.strictObject({\n type: z.enum(appContextOriginTypes),\n entrypoint: z.string().min(1),\n \"source-url\": z.string().nullable().optional()\n }),\n viewer: z.strictObject({\n type: z.enum(appContextViewerTypes),\n handle: z.string().nullable().optional(),\n \"display-name\": z.string().nullable().optional(),\n \"profile-url\": z.string().nullable().optional(),\n \"verification-status\": z.string().nullable().optional(),\n contact: z\n .strictObject({\n email: z.string().nullable().optional(),\n \"email-verified\": z.boolean().optional(),\n phone: z.string().nullable().optional(),\n \"phone-verified\": z.boolean().optional()\n })\n .optional()\n }),\n \"target-vekil\": z.strictObject({\n handle: z.string().nullable(),\n \"display-name\": z.string().min(1),\n \"profile-url\": z.string().nullable(),\n type: z.string().min(1),\n timezone: z.string().min(1)\n }),\n request: z.strictObject({\n id: z.string().min(1),\n \"intent-id\": z.string().nullable(),\n status: z.string().min(1),\n \"natural-language-summary\": z.string().nullable(),\n entities: recordSchema,\n \"missing-fields\": z.array(z.string()),\n locale: z.string().min(1)\n }),\n action: z.strictObject({\n \"action-id\": z.string().min(1),\n \"capability-id\": z.string().min(1),\n \"risk-level\": z.string().min(1),\n \"side-effect\": z.boolean()\n }),\n input: actionInputSchema,\n settings: recordSchema,\n \"policy-result\": z.strictObject({\n allowed: z.boolean(),\n \"requires-approval\": z.boolean(),\n \"risk-level\": z.string().min(1),\n constraints: recordSchema,\n redactions: z.array(z.string())\n }),\n \"approval-result\": z.strictObject({\n status: z.enum([\"approved\", \"not-required\", \"pending\"]),\n \"approval-id\": z.string().nullable().optional(),\n \"approved-at\": z.string().nullable().optional(),\n \"approval-scope\": z.string().optional(),\n \"approved-action-id\": z.string().optional(),\n reason: z.string().optional()\n }),\n locale: z.strictObject({\n \"requester-locale\": z.string().min(1),\n \"owner-locale\": z.string().min(1),\n \"app-locale\": z.string().min(1),\n \"response-locale\": z.string().min(1),\n timezone: z.string().min(1)\n }),\n security: z.strictObject({\n \"signature-algorithm\": z.enum([\"none\", \"ed25519-jws-v1\"]),\n \"signed-fields\": z.array(z.string()),\n \"body-hash\": z.string().nullable().optional()\n })\n}) satisfies z.ZodType<AppContextEnvelope>;\n\nexport function validateAppContextEnvelope(envelope: AppContextEnvelope): AppContextEnvelope {\n return appContextEnvelopeSchema.parse(envelope);\n}\n\nexport function readAppContextArtifactInputs(\n input: Record<string, unknown>\n): AppContextArtifactInput[] {\n const value = input[appContextArtifactInputKey];\n\n return value === undefined ? [] : appContextArtifactInputsSchema.parse(value);\n}\n\nexport function readAppActionInput(input: Record<string, unknown>): Record<string, unknown> {\n return Object.fromEntries(\n Object.entries(input).filter(([key]) => key !== appContextArtifactInputKey)\n );\n}\n","export const appContextScopes = [\n \"viewer.identity.basic\",\n \"viewer.identity.contact\",\n \"viewer.identity.verified-status\",\n \"viewer.profile.public\",\n \"target-vekil.profile.public\",\n \"target-vekil.handle\",\n \"target-vekil.organization-public\",\n \"request.current\",\n \"request.entities\",\n \"request.intent\",\n \"request.locale\",\n \"request.sanitized-thread\",\n \"request.attachments.metadata\",\n \"request.attachments.content\",\n \"app-installation.settings\",\n \"app-installation.policies\",\n \"app-installation.health\",\n \"policy.result\",\n \"approval.result\",\n \"execution.metadata\",\n \"locale.current\",\n \"timezone.current\"\n] as const;\n\nexport type AppContextScope = (typeof appContextScopes)[number];\n\nexport const highRiskAppContextScopes = [\n \"request.sanitized-thread\",\n \"request.attachments.content\",\n \"viewer.identity.contact\"\n] satisfies AppContextScope[];\n\nexport const forbiddenAppContextScopes = [\n \"conversation.full-thread\",\n \"owner.private-profile\",\n \"other-app.settings\",\n \"other-app.credentials\"\n] as const;\n\nexport type ForbiddenAppContextScope = (typeof forbiddenAppContextScopes)[number];\n\nexport type AppContextScopeName = AppContextScope | ForbiddenAppContextScope;\n\nexport function isAppContextScope(value: string): value is AppContextScope {\n return (appContextScopes as readonly string[]).includes(value);\n}\n\nexport function isForbiddenAppContextScope(value: string): value is ForbiddenAppContextScope {\n return (forbiddenAppContextScopes as readonly string[]).includes(value);\n}\n","import type { AppContextEnvelope, AppContextOriginType } from \"./context-envelope\";\nimport { highRiskAppContextScopes, type AppContextScope } from \"./context-scopes\";\n\nexport interface AppContextScopeDecision {\n deniedScopes: AppContextScope[];\n grantedScopes: AppContextScope[];\n requestedScopes: AppContextScope[];\n}\n\nconst highRiskScopes = new Set<AppContextScope>(highRiskAppContextScopes);\nconst originsAllowedHighRiskContext = new Set<AppContextOriginType>([\n \"public-verified-external\",\n \"public-authenticated\",\n \"agent-to-agent\",\n \"owner-configuring-app\",\n \"app-review-test\",\n \"system-retry\"\n]);\n\nexport function isAppContextScopeAllowedForOrigin(\n scope: AppContextScope,\n originType: AppContextOriginType\n): boolean {\n return !highRiskScopes.has(scope) || originsAllowedHighRiskContext.has(originType);\n}\n\nexport function resolveAppContextScopeDecision({\n activeGrantScopes,\n defaultScopes,\n optionalScopes,\n originType,\n requestedScopes\n}: {\n activeGrantScopes: readonly string[];\n defaultScopes: readonly AppContextScope[];\n optionalScopes: readonly AppContextScope[];\n originType: AppContextOriginType;\n requestedScopes: readonly AppContextScope[];\n}): AppContextScopeDecision {\n const declaredScopes = new Set<AppContextScope>([...defaultScopes, ...optionalScopes]);\n const persistedGrants = new Set(activeGrantScopes);\n const requested = [...new Set(requestedScopes)];\n const grantedScopes = requested.filter((scope) => {\n if (!declaredScopes.has(scope)) return false;\n if (!persistedGrants.has(scope)) return false;\n\n return isAppContextScopeAllowedForOrigin(scope, originType);\n });\n const granted = new Set(grantedScopes);\n\n return {\n deniedScopes: requested.filter((scope) => !granted.has(scope)),\n grantedScopes,\n requestedScopes: requested\n };\n}\n\nexport function projectAppContextEnvelope(\n envelope: AppContextEnvelope,\n grantedScopes: readonly AppContextScope[]\n): AppContextEnvelope {\n const projected = structuredClone(envelope);\n const granted = new Set(grantedScopes);\n\n if (!granted.has(\"viewer.identity.basic\")) {\n delete projected.viewer.handle;\n delete projected.viewer[\"display-name\"];\n }\n\n if (!granted.has(\"viewer.identity.contact\")) {\n delete projected.viewer.contact;\n }\n\n if (!granted.has(\"viewer.identity.verified-status\")) {\n delete projected.viewer[\"verification-status\"];\n\n if (projected.viewer.contact) {\n delete projected.viewer.contact[\"email-verified\"];\n delete projected.viewer.contact[\"phone-verified\"];\n }\n }\n\n if (!granted.has(\"viewer.profile.public\")) {\n delete projected.viewer[\"profile-url\"];\n }\n\n if (!granted.has(\"target-vekil.handle\")) {\n projected[\"target-vekil\"].handle = null;\n projected[\"target-vekil\"][\"profile-url\"] = null;\n }\n\n if (!granted.has(\"target-vekil.profile.public\")) {\n projected[\"target-vekil\"][\"display-name\"] = \"[not-granted]\";\n projected[\"target-vekil\"][\"profile-url\"] = null;\n projected[\"target-vekil\"].type = \"unknown\";\n }\n\n if (!granted.has(\"request.current\")) {\n projected.request[\"natural-language-summary\"] = null;\n projected.request[\"missing-fields\"] = [];\n }\n\n if (!granted.has(\"request.entities\")) {\n projected.request.entities = {};\n }\n\n if (!granted.has(\"request.intent\")) {\n projected.request[\"intent-id\"] = null;\n }\n\n if (!granted.has(\"request.locale\")) {\n projected.request.locale = \"und\";\n }\n\n if (!granted.has(\"app-installation.settings\")) {\n projected.settings = {};\n }\n\n if (!granted.has(\"app-installation.policies\")) {\n projected[\"policy-result\"].constraints = {};\n }\n\n if (!granted.has(\"policy.result\")) {\n projected[\"policy-result\"] = {\n allowed: false,\n \"requires-approval\": true,\n \"risk-level\": \"UNDISCLOSED\",\n constraints: {},\n redactions: [\"policy-result-not-granted\"]\n };\n }\n\n if (!granted.has(\"approval.result\")) {\n projected[\"approval-result\"] = {\n reason: \"approval-result-not-granted\",\n status: \"pending\"\n };\n }\n\n if (!granted.has(\"locale.current\")) {\n projected.locale[\"requester-locale\"] = \"und\";\n projected.locale[\"owner-locale\"] = \"und\";\n projected.locale[\"app-locale\"] = \"und\";\n projected.locale[\"response-locale\"] = \"und\";\n }\n\n if (!granted.has(\"timezone.current\")) {\n projected.locale.timezone = \"UTC\";\n projected[\"target-vekil\"].timezone = \"UTC\";\n }\n\n return projected;\n}\n","/// <reference types=\"node\" />\n\nimport { createHash } from \"node:crypto\";\nimport {\n appContextArtifactInputKey,\n readAppContextArtifactInputs,\n type AppContextEnvelope,\n type AppContextSensitivityLevel\n} from \"./context-envelope\";\n\nexport interface AppContextSnapshotPayload {\n contextHash: string;\n redactedContext: AppContextEnvelope;\n sensitivityLevel: AppContextSensitivityLevel;\n}\n\nexport function buildAppContextSnapshotPayload(\n envelope: AppContextEnvelope\n): AppContextSnapshotPayload {\n const redactedContext = redactAppContextEnvelope(envelope);\n\n return {\n // The durable fingerprint covers exactly the privacy-safe projection that\n // is persisted. Hashing discarded contact, input, entity, setting, policy,\n // or artifact values would leave an offline guessing oracle in an\n // otherwise redacted row.\n contextHash: hashJson(redactedContext),\n redactedContext,\n sensitivityLevel: readSensitivityLevel(envelope)\n };\n}\n\nexport function redactAppContextEnvelope(envelope: AppContextEnvelope): AppContextEnvelope {\n const redacted = structuredClone(envelope);\n const contact = redacted.viewer.contact;\n\n if (contact?.email) {\n contact.email = \"[provided]\";\n }\n\n if (contact?.phone) {\n contact.phone = \"[provided]\";\n }\n\n redacted.input = redactRecord(redacted.input);\n const artifactInputs = readAppContextArtifactInputs(envelope.input);\n\n if (artifactInputs.length > 0) {\n redacted.input[appContextArtifactInputKey] = artifactInputs.map((artifact) => ({\n ...artifact,\n value: \"[provided]\"\n }));\n }\n redacted.request.entities = redactRecord(redacted.request.entities);\n redacted.settings = Object.fromEntries(\n Object.keys(redacted.settings).map((key) => [key, \"[provided]\"])\n );\n redacted[\"policy-result\"].constraints = redactRecord(redacted[\"policy-result\"].constraints);\n\n if (redacted.request[\"natural-language-summary\"]) {\n redacted.request[\"natural-language-summary\"] = \"[provided]\";\n }\n\n return redacted;\n}\n\nfunction redactRecord(record: Record<string, unknown>): Record<string, unknown> {\n return Object.fromEntries(\n Object.entries(record).map(([key, value]) => [\n key,\n shouldRedactKey(key) ? \"[redacted]\" : redactNestedValue(value)\n ])\n );\n}\n\nfunction redactNestedValue(value: unknown): unknown {\n if (Array.isArray(value)) {\n return value.map(redactNestedValue);\n }\n\n if (value && typeof value === \"object\") {\n return redactRecord(value as Record<string, unknown>);\n }\n\n return \"[provided]\";\n}\n\nfunction shouldRedactKey(key: string): boolean {\n return /(email|phone|token|secret|credential|authorization)/i.test(key);\n}\n\nfunction readSensitivityLevel(envelope: AppContextEnvelope): AppContextSensitivityLevel {\n const hasContact = Boolean(envelope.viewer.contact?.email || envelope.viewer.contact?.phone);\n const artifactInputs = readAppContextArtifactInputs(envelope.input);\n const artifactSensitivity = artifactInputs.flatMap((artifact) =>\n artifact.provenance.map((item) => item.sensitivityLevel)\n );\n\n if (\n hasContact ||\n Object.keys(envelope.settings).length > 0 ||\n artifactSensitivity.includes(\"HIGH\")\n ) {\n return \"HIGH\";\n }\n\n if (\n artifactSensitivity.includes(\"MEDIUM\") ||\n envelope.request[\"natural-language-summary\"] ||\n Object.keys(envelope.request.entities).length > 0 ||\n Object.keys(envelope.input).length > 0\n ) {\n return \"MEDIUM\";\n }\n\n return \"LOW\";\n}\n\nfunction hashJson(value: unknown): string {\n return createHash(\"sha256\").update(stringifyCanonicalJson(value)).digest(\"hex\");\n}\n\nfunction stringifyCanonicalJson(value: unknown): string {\n return JSON.stringify(canonicalizeJson(value));\n}\n\nfunction canonicalizeJson(value: unknown): unknown {\n if (Array.isArray(value)) {\n return value.map(canonicalizeJson);\n }\n\n if (value && typeof value === \"object\") {\n return Object.fromEntries(\n Object.entries(value as Record<string, unknown>)\n .filter(([, item]) => item !== undefined)\n .sort(([left], [right]) => (left < right ? -1 : left > right ? 1 : 0))\n .map(([key, item]) => [key, canonicalizeJson(item)])\n );\n }\n\n return value;\n}\n","import {\n appContextScopes,\n appContextSensitivityLevels,\n forbiddenAppContextScopes\n} from \"@vekil/app-context\";\nimport { z } from \"zod\";\nimport {\n AppApprovalMode,\n AppConnectionType,\n AppHttpMethod,\n AppKnowledgeSourceType,\n AppRuntimeHost,\n AppSideEffectType,\n AppValueSource,\n AppWorkflowStepType,\n appApprovalModeSchema,\n appCategoryIdSchema,\n appConnectionTypeSchema,\n appDefinitionVersion,\n appFieldTypeSchema,\n appHttpMethodSchema,\n appIntentModeSchema,\n appKnowledgeAudienceSchema,\n appLocalKeySchema,\n appOriginSchema,\n appOutcomeStatusSchema,\n appPermissionSensitivitySchema,\n appPolicyEffectSchema,\n appRiskLevelSchema,\n appSideEffectTypeSchema,\n httpsOrLocalhostUrlSchema,\n httpsUrlSchema,\n jsonObjectSchema,\n jsonPathSchema,\n jsonSchemaSchema,\n localeCodeSchema,\n localizedExamplesSchema,\n localizedTextSchema,\n runtimeSecretReferenceSchema\n} from \"./common\";\n\nexport enum AppIconType {\n ASSET = \"ASSET\",\n URL = \"URL\"\n}\n\nexport enum AppClarificationMode {\n ASK_MISSING_FIELDS = \"ASK_MISSING_FIELDS\",\n FAIL_FAST = \"FAIL_FAST\"\n}\n\nexport enum AppRequesterReviewMode {\n NOT_REQUIRED = \"NOT_REQUIRED\",\n REQUIRED = \"REQUIRED\"\n}\n\nexport enum AppSettingsOptionsSourceType {\n APP_ACTION = \"APP_ACTION\"\n}\n\nexport enum AppArtifactCardinality {\n ONE = \"ONE\",\n MANY = \"MANY\",\n ONE_OR_MANY = \"ONE_OR_MANY\"\n}\n\nexport enum AppArtifactAudience {\n PRODUCING_APP = \"PRODUCING_APP\",\n COMPOSED_APPS = \"COMPOSED_APPS\"\n}\n\nexport const appIconDefinitionSchema = z.discriminatedUnion(\"type\", [\n z.strictObject({\n type: z.literal(AppIconType.ASSET),\n value: z.string().min(1).max(240)\n }),\n z.strictObject({\n type: z.literal(AppIconType.URL),\n value: httpsUrlSchema\n })\n]);\n\nexport const appPublicationDefinitionSchema = z.strictObject({\n websiteUrl: httpsUrlSchema.optional(),\n supportEmail: z.string().email().optional(),\n privacyPolicyUrl: httpsUrlSchema.optional(),\n termsUrl: httpsUrlSchema.optional()\n});\n\nexport const appPermissionDefinitionSchema = z.strictObject({\n key: appLocalKeySchema,\n label: localizedTextSchema,\n description: localizedTextSchema,\n sensitivity: appPermissionSensitivitySchema\n});\n\nexport const appConnectionDefinitionSchema = z.strictObject({\n type: appConnectionTypeSchema,\n required: z.boolean(),\n title: localizedTextSchema,\n description: localizedTextSchema,\n permissions: z.array(appPermissionDefinitionSchema).max(64).default([])\n});\n\nconst appFieldOptionDefinitionSchema = z.strictObject({\n value: z.union([z.string(), z.number(), z.boolean()]),\n label: localizedTextSchema\n});\n\nconst appFieldOptionsSourceDefinitionSchema = z.strictObject({\n type: z.literal(AppSettingsOptionsSourceType.APP_ACTION),\n actionKey: appLocalKeySchema,\n cacheTtlSeconds: z.number().int().min(1).max(86_400),\n outputPath: z.array(appLocalKeySchema).max(16).default([]),\n valueField: appLocalKeySchema.optional(),\n labelField: appLocalKeySchema.optional()\n});\n\nexport const appFieldDefinitionSchema = z.strictObject({\n key: appLocalKeySchema,\n type: appFieldTypeSchema,\n label: localizedTextSchema,\n description: localizedTextSchema.optional(),\n help: localizedTextSchema.optional(),\n required: z.boolean().default(false),\n default: z.json().optional(),\n validation: jsonObjectSchema.optional(),\n options: z.array(appFieldOptionDefinitionSchema).max(100).optional(),\n optionsSource: appFieldOptionsSourceDefinitionSchema.optional()\n});\n\nexport const appSettingsDefinitionSchema = z.strictObject({\n fields: z.array(appFieldDefinitionSchema).max(100).default([])\n});\n\nexport const appPolicyBehaviorDefinitionSchema = z.strictObject({\n effect: appPolicyEffectSchema,\n value: appLocalKeySchema,\n label: localizedTextSchema\n});\n\nexport const appPolicyRuleDefinitionSchema = z\n .strictObject({\n key: appLocalKeySchema,\n label: localizedTextSchema,\n description: localizedTextSchema,\n conditionFields: z\n .array(appFieldDefinitionSchema)\n .max(0, \"Conditional policy fields require a deterministic evaluator in a future protocol.\")\n .default([]),\n behaviors: z.array(appPolicyBehaviorDefinitionSchema).min(1).max(16),\n defaultBehavior: appLocalKeySchema\n })\n .superRefine((rule, context) => {\n const behaviorValues = rule.behaviors.map((behavior) => behavior.value);\n\n if (new Set(behaviorValues).size !== behaviorValues.length) {\n context.addIssue({\n code: \"custom\",\n message: \"Policy behavior values must be unique.\",\n path: [\"behaviors\"]\n });\n }\n\n if (!behaviorValues.includes(rule.defaultBehavior)) {\n context.addIssue({\n code: \"custom\",\n message: \"The default policy behavior must reference a declared behavior.\",\n path: [\"defaultBehavior\"]\n });\n }\n });\n\nexport const appPolicyDefinitionSchema = z.strictObject({\n rules: z.array(appPolicyRuleDefinitionSchema).max(100).default([])\n});\n\nexport const appArtifactContractDefinitionSchema = z.strictObject({\n audiences: z\n .array(z.enum([AppArtifactAudience.PRODUCING_APP, AppArtifactAudience.COMPOSED_APPS]))\n .min(1)\n .max(2)\n .default([AppArtifactAudience.PRODUCING_APP]),\n key: appLocalKeySchema,\n schemaVersion: z.number().int().min(1).max(1_000),\n schema: jsonSchemaSchema,\n description: localizedTextSchema,\n sensitivityLevel: z.enum(appContextSensitivityLevels).default(\"HIGH\")\n});\n\nexport const appArtifactReferenceDefinitionSchema = z.strictObject({\n artifactKey: appLocalKeySchema,\n schemaVersion: z.number().int().min(1).max(1_000),\n required: z.boolean().default(true),\n cardinality: z\n .enum([\n AppArtifactCardinality.ONE,\n AppArtifactCardinality.MANY,\n AppArtifactCardinality.ONE_OR_MANY\n ])\n .default(AppArtifactCardinality.ONE)\n});\n\nexport const appCapabilityDefinitionSchema = z.strictObject({\n key: appLocalKeySchema,\n label: localizedTextSchema,\n description: localizedTextSchema,\n inputSchema: jsonSchemaSchema,\n outputSchema: jsonSchemaSchema,\n riskLevel: appRiskLevelSchema,\n approval: appApprovalModeSchema,\n actionKeys: z.array(appLocalKeySchema).min(1).max(32)\n});\n\nexport const appActionContextDefinitionSchema = z.strictObject({\n requiredScopes: z.array(z.enum(appContextScopes)).max(appContextScopes.length).default([]),\n requiresSettings: z.array(appLocalKeySchema).max(64).default([]),\n requiresPolicies: z.array(appLocalKeySchema).max(64).default([])\n});\n\nexport const requiredAppActionContextScopes = [\n \"request.current\",\n \"request.entities\",\n \"request.intent\",\n \"policy.result\"\n] as const;\n\nfunction validatePolicyContextScopes(\n actionContext: z.infer<typeof appActionContextDefinitionSchema>,\n context: z.RefinementCtx\n): void {\n if (new Set(actionContext.requiresPolicies).size !== actionContext.requiresPolicies.length) {\n context.addIssue({\n code: \"custom\",\n message: \"Required policy keys must be unique.\",\n path: [\"context\", \"requiresPolicies\"]\n });\n }\n\n for (const requiredScope of requiredAppActionContextScopes) {\n if (!actionContext.requiredScopes.includes(requiredScope)) {\n context.addIssue({\n code: \"custom\",\n message: `Every App action must request the ${requiredScope} scope.`,\n path: [\"context\", \"requiredScopes\"]\n });\n }\n }\n\n if (actionContext.requiresPolicies.length === 0) return;\n\n if (!actionContext.requiredScopes.includes(\"app-installation.policies\")) {\n context.addIssue({\n code: \"custom\",\n message: \"Actions that require policies must request the app-installation.policies scope.\",\n path: [\"context\", \"requiredScopes\"]\n });\n }\n}\n\nexport const appIdempotencyDefinitionSchema = z.strictObject({\n required: z.boolean(),\n keyFields: z.array(jsonPathSchema).max(32).default([])\n});\n\nexport const appRetryPolicyDefinitionSchema = z.strictObject({\n maxAttempts: z.number().int().min(1).max(8),\n retryableStatusCodes: z.array(z.number().int().min(100).max(599)).max(32).default([])\n});\n\nexport const appActionDefinitionSchema = z\n .strictObject({\n key: appLocalKeySchema,\n capabilityKey: appLocalKeySchema,\n label: localizedTextSchema,\n description: localizedTextSchema,\n composable: z.boolean().default(false),\n context: appActionContextDefinitionSchema,\n dataAccessLevel: appLocalKeySchema,\n inputSchema: jsonSchemaSchema,\n outputSchema: jsonSchemaSchema,\n inputArtifacts: z.array(appArtifactReferenceDefinitionSchema).max(32).default([]),\n outputArtifacts: z.array(appArtifactReferenceDefinitionSchema).max(32).default([]),\n riskLevel: appRiskLevelSchema,\n sideEffect: appSideEffectTypeSchema,\n approval: appApprovalModeSchema,\n timeoutMs: z.number().int().min(100).max(120_000),\n idempotency: appIdempotencyDefinitionSchema,\n retry: appRetryPolicyDefinitionSchema,\n outcomeKeys: z.array(appLocalKeySchema).min(1).max(32)\n })\n .superRefine((action, context) => {\n validatePolicyContextScopes(action.context, context);\n\n if (\n action.approval === AppApprovalMode.POLICY &&\n action.context.requiresPolicies.length === 0\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"Policy approval requires at least one declared policy.\",\n path: [\"context\", \"requiresPolicies\"]\n });\n }\n });\n\nexport const appIntentDefinitionSchema = z.strictObject({\n key: appLocalKeySchema,\n mode: appIntentModeSchema,\n title: localizedTextSchema,\n description: localizedTextSchema,\n responseInstructions: localizedTextSchema,\n examples: localizedExamplesSchema,\n negativeExamples: localizedExamplesSchema.default({}),\n entityHints: jsonObjectSchema.default({}),\n inputSchema: jsonSchemaSchema,\n requiredFields: z.array(appLocalKeySchema).max(64).default([]),\n optionalFields: z.array(appLocalKeySchema).max(64).default([]),\n knowledgeKeys: z.array(appLocalKeySchema).max(64).default([]),\n capabilityKeys: z.array(appLocalKeySchema).min(1).max(32),\n actionKeys: z.array(appLocalKeySchema).min(1).max(32),\n riskLevel: appRiskLevelSchema,\n allowedOrigins: z.array(appOriginSchema).min(1).max(8),\n clarificationMode: z.enum([\n AppClarificationMode.ASK_MISSING_FIELDS,\n AppClarificationMode.FAIL_FAST\n ]),\n missingFieldsQuestion: localizedTextSchema,\n fieldQuestions: z.record(appLocalKeySchema, localizedTextSchema),\n requesterReview: z.enum([AppRequesterReviewMode.NOT_REQUIRED, AppRequesterReviewMode.REQUIRED])\n});\n\nexport const appKnowledgeDefinitionSchema = z.strictObject({\n key: appLocalKeySchema,\n label: localizedTextSchema,\n description: localizedTextSchema.optional(),\n audience: appKnowledgeAudienceSchema,\n source: z.discriminatedUnion(\"type\", [\n z.strictObject({\n type: z.literal(AppKnowledgeSourceType.SETTING),\n settingKey: appLocalKeySchema\n }),\n z.strictObject({\n type: z.literal(AppKnowledgeSourceType.RUNTIME)\n })\n ])\n});\n\nexport const appOutcomeDefinitionSchema = z.strictObject({\n key: appLocalKeySchema,\n actionKey: appLocalKeySchema,\n status: appOutcomeStatusSchema,\n title: localizedTextSchema,\n description: localizedTextSchema,\n schema: jsonSchemaSchema,\n nextActions: z\n .array(\n z.strictObject({\n artifactKey: appLocalKeySchema.optional(),\n key: appLocalKeySchema,\n label: localizedTextSchema\n })\n )\n .max(16)\n .default([])\n});\n\nexport const appPublicActionDefinitionSchema = z.strictObject({\n key: appLocalKeySchema,\n intentKey: appLocalKeySchema,\n label: localizedTextSchema,\n description: localizedTextSchema,\n capabilityKeys: z.array(appLocalKeySchema).min(1).max(16),\n allowedOrigins: z.array(appOriginSchema).min(1).max(8),\n riskLevel: appRiskLevelSchema\n});\n\nexport const appTriggerDefinitionSchema = z.strictObject({\n key: appLocalKeySchema,\n eventKey: appLocalKeySchema,\n capabilityKey: appLocalKeySchema,\n riskLevel: appRiskLevelSchema,\n inputSchema: jsonSchemaSchema\n});\n\nexport const appManifestContextDefinitionSchema = z.strictObject({\n defaultScopes: z.array(z.enum(appContextScopes)).max(appContextScopes.length).default([]),\n optionalScopes: z.array(z.enum(appContextScopes)).max(appContextScopes.length).default([]),\n prohibitedScopes: z\n .array(z.enum(forbiddenAppContextScopes))\n .max(forbiddenAppContextScopes.length)\n .default([]),\n copy: z.strictObject({\n receives: z\n .array(\n z.strictObject({\n scope: z.enum(appContextScopes),\n label: localizedTextSchema,\n description: localizedTextSchema\n })\n )\n .max(appContextScopes.length)\n .default([]),\n doesNotReceive: z\n .array(\n z.strictObject({\n scope: z.enum(forbiddenAppContextScopes),\n label: localizedTextSchema,\n description: localizedTextSchema\n })\n )\n .max(forbiddenAppContextScopes.length)\n .default([])\n })\n});\n\nexport const appCustomRulesDefinitionSchema = z.strictObject({\n families: z.array(appLocalKeySchema).max(32).default([]),\n examples: localizedExamplesSchema.default({}),\n unsupportedExamples: localizedExamplesSchema.default({})\n});\n\nexport const appValueExpressionSchema = z.discriminatedUnion(\"source\", [\n z.strictObject({\n source: z.literal(AppValueSource.LITERAL),\n value: z.json()\n }),\n z.strictObject({\n source: z.literal(AppValueSource.INPUT),\n path: jsonPathSchema,\n optional: z.boolean().optional()\n }),\n z.strictObject({\n source: z.literal(AppValueSource.CONTEXT),\n path: jsonPathSchema\n }),\n z.strictObject({\n source: z.literal(AppValueSource.SETTING),\n key: appLocalKeySchema\n }),\n z.strictObject({\n source: z.literal(AppValueSource.SECRET),\n key: runtimeSecretReferenceSchema\n }),\n z.strictObject({\n source: z.literal(AppValueSource.STEP_OUTPUT),\n stepKey: appLocalKeySchema,\n path: jsonPathSchema.optional()\n })\n]);\n\nconst appWorkflowStepBase = {\n key: appLocalKeySchema,\n dependsOn: z.array(appLocalKeySchema).max(32).default([])\n};\n\nconst httpHeaderNameSchema = z\n .string()\n .min(1)\n .max(120)\n .regex(/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/);\n\nconst runtimeOriginSchema = httpsOrLocalhostUrlSchema.refine(isOriginUrl, {\n message: \"Runtime credential origins must not include credentials, paths, queries, or fragments\"\n});\n\nexport const appHttpRequestStepSchema = z.strictObject({\n ...appWorkflowStepBase,\n type: z.literal(AppWorkflowStepType.HTTP_REQUEST),\n method: appHttpMethodSchema,\n url: httpsOrLocalhostUrlSchema,\n headers: z\n .record(httpHeaderNameSchema, appValueExpressionSchema)\n .refine(\n (headers) => Object.keys(headers).length <= 64,\n \"At most 64 request headers are allowed\"\n )\n .default({}),\n query: z\n .record(z.string().min(1).max(120), appValueExpressionSchema)\n .refine(\n (parameters) => Object.keys(parameters).length <= 64,\n \"At most 64 query parameters are allowed\"\n )\n .default({}),\n body: appValueExpressionSchema.optional(),\n timeoutMs: z.number().int().min(100).max(30_000)\n});\n\nexport const appTransformStepSchema = z.strictObject({\n ...appWorkflowStepBase,\n type: z.literal(AppWorkflowStepType.TRANSFORM),\n mapping: z.record(z.string().min(1).max(120), appValueExpressionSchema)\n});\n\nexport const appConditionStepSchema = z.strictObject({\n ...appWorkflowStepBase,\n type: z.literal(AppWorkflowStepType.CONDITION),\n condition: appValueExpressionSchema,\n whenTrue: appLocalKeySchema,\n whenFalse: appLocalKeySchema.optional()\n});\n\nexport const appTemplateStepSchema = z.strictObject({\n ...appWorkflowStepBase,\n type: z.literal(AppWorkflowStepType.TEMPLATE),\n template: z.string().min(1).max(8_000),\n variables: z.record(z.string().min(1).max(80), appValueExpressionSchema).default({})\n});\n\nexport const appEmitArtifactStepSchema = z.strictObject({\n ...appWorkflowStepBase,\n type: z.literal(AppWorkflowStepType.EMIT_ARTIFACT),\n artifactKey: appLocalKeySchema,\n schemaVersion: z.number().int().min(1).max(1_000),\n value: appValueExpressionSchema\n});\n\nexport const appEmitBubbleStepSchema = z.strictObject({\n ...appWorkflowStepBase,\n type: z.literal(AppWorkflowStepType.EMIT_BUBBLE),\n descriptor: appValueExpressionSchema\n});\n\nexport const appEmitResultStepSchema = z.strictObject({\n ...appWorkflowStepBase,\n type: z.literal(AppWorkflowStepType.EMIT_RESULT),\n outcomeKey: appLocalKeySchema,\n output: appValueExpressionSchema\n});\n\nexport const appWorkflowStepSchema = z.discriminatedUnion(\"type\", [\n appHttpRequestStepSchema,\n appTransformStepSchema,\n appConditionStepSchema,\n appTemplateStepSchema,\n appEmitArtifactStepSchema,\n appEmitBubbleStepSchema,\n appEmitResultStepSchema\n]);\n\nexport const appWorkflowDefinitionSchema = z.strictObject({\n actionKey: appLocalKeySchema,\n steps: z.array(appWorkflowStepSchema).min(1).max(32)\n});\n\nconst declarativeNoConnectionSchema = z.strictObject({\n type: z.literal(AppConnectionType.NONE)\n});\n\nconst declarativeApiKeyConnectionSchema = z.strictObject({\n type: z.literal(AppConnectionType.API_KEY),\n fields: z\n .array(\n z.strictObject({\n key: appLocalKeySchema,\n allowedOrigins: z.array(runtimeOriginSchema).min(1).max(16),\n headerName: httpHeaderNameSchema,\n label: localizedTextSchema,\n description: localizedTextSchema,\n secretRef: runtimeSecretReferenceSchema\n })\n )\n .min(1)\n .max(16)\n});\n\nconst declarativeOauthConnectionSchema = z.strictObject({\n type: z.literal(AppConnectionType.OAUTH2),\n authorizationUrl: httpsUrlSchema,\n tokenUrl: httpsUrlSchema,\n refreshUrl: httpsUrlSchema.optional(),\n resourceOrigins: z.array(runtimeOriginSchema).min(1).max(16),\n clientIdSecretRef: runtimeSecretReferenceSchema,\n clientSecretSecretRef: runtimeSecretReferenceSchema.optional(),\n pkceRequired: z.boolean().default(true),\n scopes: z\n .array(\n z.strictObject({\n permissionKey: appLocalKeySchema,\n providerScope: z.string().min(1).max(300)\n })\n )\n .min(1)\n .max(64)\n});\n\nexport const declarativeRuntimeDefinitionSchema = z.strictObject({\n host: z.literal(AppRuntimeHost.DECLARATIVE),\n connection: z.discriminatedUnion(\"type\", [\n declarativeNoConnectionSchema,\n declarativeApiKeyConnectionSchema,\n declarativeOauthConnectionSchema\n ]),\n workflows: z.array(appWorkflowDefinitionSchema).min(1).max(64)\n});\n\nfunction isOriginUrl(value: string): boolean {\n const url = new URL(value);\n return !url.username && !url.password && !url.search && !url.hash && url.pathname === \"/\";\n}\n\nexport const remoteRuntimeDefinitionSchema = z.strictObject({\n host: z.literal(AppRuntimeHost.REMOTE),\n baseUrl: httpsOrLocalhostUrlSchema,\n jwksUrl: httpsOrLocalhostUrlSchema,\n connectionRequired: z.boolean()\n});\n\nexport const appDefinitionSchema = z.strictObject({\n definitionVersion: z.literal(appDefinitionVersion),\n defaultLocale: localeCodeSchema,\n app: z.strictObject({\n name: localizedTextSchema,\n shortDescription: localizedTextSchema,\n longDescription: localizedTextSchema,\n categoryId: appCategoryIdSchema,\n icon: appIconDefinitionSchema.optional(),\n providerName: z.string().min(1).max(120).optional()\n }),\n publication: appPublicationDefinitionSchema.default({}),\n connection: appConnectionDefinitionSchema,\n intents: z.array(appIntentDefinitionSchema).min(1).max(128),\n capabilities: z.array(appCapabilityDefinitionSchema).min(1).max(128),\n actions: z.array(appActionDefinitionSchema).min(1).max(128),\n triggers: z.array(appTriggerDefinitionSchema).max(64).default([]),\n resources: z.array(appLocalKeySchema).max(128).default([]),\n knowledge: z.array(appKnowledgeDefinitionSchema).max(128).default([]),\n artifactContracts: z.array(appArtifactContractDefinitionSchema).max(128).default([]),\n context: appManifestContextDefinitionSchema,\n settings: appSettingsDefinitionSchema,\n policies: appPolicyDefinitionSchema,\n customRules: appCustomRulesDefinitionSchema,\n publicActions: z.array(appPublicActionDefinitionSchema).max(32).default([]),\n outcomes: z.array(appOutcomeDefinitionSchema).min(1).max(128),\n runtime: z.discriminatedUnion(\"host\", [\n declarativeRuntimeDefinitionSchema,\n remoteRuntimeDefinitionSchema\n ])\n});\n\nexport type AppDefinition = z.infer<typeof appDefinitionSchema>;\nexport type AppDefinitionInput = z.input<typeof appDefinitionSchema>;\nexport type AppWorkflowDefinition = z.infer<typeof appWorkflowDefinitionSchema>;\nexport type AppWorkflowStep = z.infer<typeof appWorkflowStepSchema>;\nexport type AppValueExpression = z.infer<typeof appValueExpressionSchema>;\n\nexport function createAppDefinitionJsonSchema(): Record<string, unknown> {\n return z.toJSONSchema(appDefinitionSchema) as Record<string, unknown>;\n}\n\nexport function defineApp(input: AppDefinitionInput): AppDefinition {\n return appDefinitionSchema.parse(input);\n}\n\nexport function defineDeclarativeApp(input: AppDefinitionInput): AppDefinition {\n const definition = defineApp(input);\n\n if (definition.runtime.host !== AppRuntimeHost.DECLARATIVE) {\n throw new Error(\"defineDeclarativeApp requires a DECLARATIVE runtime\");\n }\n\n return definition;\n}\n\nexport function defineRemoteApp(input: AppDefinitionInput): AppDefinition {\n const definition = defineApp(input);\n\n if (definition.runtime.host !== AppRuntimeHost.REMOTE) {\n throw new Error(\"defineRemoteApp requires a REMOTE runtime\");\n }\n\n return definition;\n}\n\nexport function isWriteSideEffect(sideEffect: z.infer<typeof appSideEffectTypeSchema>): boolean {\n return (\n sideEffect !== AppSideEffectType.READ_ONLY && sideEffect !== AppSideEffectType.PROPOSAL_ONLY\n );\n}\n\nexport function isHttpMethodWithBody(method: AppHttpMethod): boolean {\n return method !== AppHttpMethod.GET;\n}\n","import {\n appContextScopes,\n appContextSensitivityLevels,\n forbiddenAppContextScopes\n} from \"@vekil/app-context\";\nimport { z } from \"zod\";\nimport {\n AppApprovalMode,\n AppConnectionType,\n AppKnowledgeSourceType,\n AppRuntimeHost,\n AppWorkflowStepType,\n appApprovalModeSchema,\n appCategoryIdSchema,\n appConnectionTypeSchema,\n appFieldTypeSchema,\n appIdSchema,\n appSlugSchema,\n appIntentModeSchema,\n appKnowledgeAudienceSchema,\n appLocalKeySchema,\n appManifestVersion,\n appPoliciesSchemaVersion,\n appSettingsSchemaVersion,\n appNamespacedIdSchema,\n appOriginSchema,\n appOutcomeStatusSchema,\n appPermissionSensitivitySchema,\n appPolicyEffectSchema,\n appRiskLevelSchema,\n appSideEffectTypeSchema,\n httpsOrLocalhostUrlSchema,\n httpsUrlSchema,\n jsonObjectSchema,\n jsonPathSchema,\n jsonSchemaSchema,\n localeCodeSchema,\n localeKeySchema,\n runtimeSecretReferenceSchema,\n semanticVersionSchema\n} from \"./common\";\nimport {\n AppArtifactCardinality,\n AppArtifactAudience,\n AppClarificationMode,\n AppRequesterReviewMode,\n AppSettingsOptionsSourceType,\n appConditionStepSchema,\n appEmitBubbleStepSchema,\n appHttpRequestStepSchema,\n appIconDefinitionSchema,\n appPublicationDefinitionSchema,\n appTemplateStepSchema,\n appTransformStepSchema,\n appValueExpressionSchema,\n requiredAppActionContextScopes\n} from \"./app-definition\";\nimport { appCompilationDeveloperSchema } from \"./app-compilation-binding\";\n\nconst keyedCopySchema = z.strictObject({\n labelKey: localeKeySchema,\n descriptionKey: localeKeySchema\n});\n\nconst manifestFieldOptionSchema = z.strictObject({\n value: z.union([z.string(), z.number(), z.boolean()]),\n labelKey: localeKeySchema\n});\n\nconst manifestFieldOptionsSourceSchema = z.strictObject({\n type: z.literal(AppSettingsOptionsSourceType.APP_ACTION),\n actionId: appNamespacedIdSchema,\n cacheTtlSeconds: z.number().int().min(1).max(86_400),\n outputPath: z.array(appLocalKeySchema).max(16),\n valueField: appLocalKeySchema.optional(),\n labelField: appLocalKeySchema.optional()\n});\n\nexport const appManifestFieldSchema = z.strictObject({\n key: appLocalKeySchema,\n type: appFieldTypeSchema,\n labelKey: localeKeySchema,\n descriptionKey: localeKeySchema.optional(),\n helpKey: localeKeySchema.optional(),\n required: z.boolean(),\n default: z.json().optional(),\n validation: jsonObjectSchema.optional(),\n options: z.array(manifestFieldOptionSchema).max(100).optional(),\n optionsSource: manifestFieldOptionsSourceSchema.optional()\n});\n\nexport const appManifestCapabilitySchema = z.strictObject({\n id: appNamespacedIdSchema,\n labelKey: localeKeySchema,\n descriptionKey: localeKeySchema,\n inputSchema: jsonSchemaSchema,\n outputSchema: jsonSchemaSchema,\n riskLevel: appRiskLevelSchema,\n approval: appApprovalModeSchema,\n actionIds: z.array(appNamespacedIdSchema).min(1).max(32)\n});\n\nconst appManifestArtifactReferenceSchema = z.strictObject({\n artifactId: appNamespacedIdSchema,\n schemaVersion: z.number().int().min(1).max(1_000),\n required: z.boolean(),\n cardinality: z.enum([\n AppArtifactCardinality.ONE,\n AppArtifactCardinality.MANY,\n AppArtifactCardinality.ONE_OR_MANY\n ])\n});\n\nexport const appManifestActionSchema = z\n .strictObject({\n id: appNamespacedIdSchema,\n capabilityId: appNamespacedIdSchema,\n labelKey: localeKeySchema,\n descriptionKey: localeKeySchema,\n composable: z.boolean(),\n context: z.strictObject({\n requiredScopes: z.array(z.enum(appContextScopes)).max(appContextScopes.length),\n requiresSettings: z.array(appLocalKeySchema).max(64),\n requiresPolicies: z.array(appLocalKeySchema).max(64)\n }),\n dataAccessLevel: appLocalKeySchema,\n inputSchema: jsonSchemaSchema,\n outputSchema: jsonSchemaSchema,\n inputArtifacts: z.array(appManifestArtifactReferenceSchema).max(32),\n outputArtifacts: z.array(appManifestArtifactReferenceSchema).max(32),\n riskLevel: appRiskLevelSchema,\n sideEffect: appSideEffectTypeSchema,\n approval: appApprovalModeSchema,\n timeoutMs: z.number().int().min(100).max(120_000),\n idempotency: z.strictObject({\n required: z.boolean(),\n keyFields: z.array(jsonPathSchema).max(32)\n }),\n retry: z.strictObject({\n maxAttempts: z.number().int().min(1).max(8),\n retryableStatusCodes: z.array(z.number().int().min(100).max(599)).max(32)\n }),\n outcomeIds: z.array(appNamespacedIdSchema).min(1).max(32)\n })\n .superRefine((action, context) => {\n if (new Set(action.context.requiresPolicies).size !== action.context.requiresPolicies.length) {\n context.addIssue({\n code: \"custom\",\n message: \"Required policy keys must be unique.\",\n path: [\"context\", \"requiresPolicies\"]\n });\n }\n\n if (\n action.approval === AppApprovalMode.POLICY &&\n action.context.requiresPolicies.length === 0\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"Policy approval requires at least one declared policy.\",\n path: [\"context\", \"requiresPolicies\"]\n });\n }\n\n for (const requiredScope of requiredAppActionContextScopes) {\n if (!action.context.requiredScopes.includes(requiredScope)) {\n context.addIssue({\n code: \"custom\",\n message: `Every App action must request the ${requiredScope} scope.`,\n path: [\"context\", \"requiredScopes\"]\n });\n }\n }\n\n if (action.context.requiresPolicies.length === 0) return;\n\n if (!action.context.requiredScopes.includes(\"app-installation.policies\")) {\n context.addIssue({\n code: \"custom\",\n message: \"Actions that require policies must request the app-installation.policies scope.\",\n path: [\"context\", \"requiredScopes\"]\n });\n }\n });\n\nexport const appManifestIntentSchema = z.strictObject({\n id: appNamespacedIdSchema,\n mode: appIntentModeSchema,\n titleKey: localeKeySchema,\n descriptionKey: localeKeySchema,\n responseInstructionsKey: localeKeySchema,\n examples: z.record(localeCodeSchema, z.array(z.string().min(1).max(600)).max(32)),\n negativeExamples: z.record(localeCodeSchema, z.array(z.string().min(1).max(600)).max(32)),\n entityHints: jsonObjectSchema,\n inputSchema: jsonSchemaSchema,\n requiredFields: z.array(appLocalKeySchema).max(64),\n optionalFields: z.array(appLocalKeySchema).max(64),\n knowledgeIds: z.array(appNamespacedIdSchema).max(64),\n capabilityIds: z.array(appNamespacedIdSchema).min(1).max(32),\n actionIds: z.array(appNamespacedIdSchema).min(1).max(32),\n riskLevel: appRiskLevelSchema,\n allowedOrigins: z.array(appOriginSchema).min(1).max(8),\n clarificationMode: z.enum([\n AppClarificationMode.ASK_MISSING_FIELDS,\n AppClarificationMode.FAIL_FAST\n ]),\n missingFieldsQuestionKey: localeKeySchema,\n fieldQuestionKeys: z.record(appLocalKeySchema, localeKeySchema),\n requesterReview: z.enum([AppRequesterReviewMode.NOT_REQUIRED, AppRequesterReviewMode.REQUIRED])\n});\n\nexport const appManifestKnowledgeSchema = z.strictObject({\n id: appNamespacedIdSchema,\n labelKey: localeKeySchema,\n descriptionKey: localeKeySchema.optional(),\n audience: appKnowledgeAudienceSchema,\n source: z.discriminatedUnion(\"type\", [\n z.strictObject({\n type: z.literal(AppKnowledgeSourceType.SETTING),\n settingKey: appLocalKeySchema\n }),\n z.strictObject({\n type: z.literal(AppKnowledgeSourceType.RUNTIME)\n })\n ])\n});\n\nexport const appManifestOutcomeSchema = z.strictObject({\n id: appNamespacedIdSchema,\n actionId: appNamespacedIdSchema,\n status: appOutcomeStatusSchema,\n titleKey: localeKeySchema,\n descriptionKey: localeKeySchema,\n schema: jsonSchemaSchema,\n nextActions: z\n .array(\n z.strictObject({\n artifactId: appNamespacedIdSchema.optional(),\n id: appNamespacedIdSchema,\n labelKey: localeKeySchema\n })\n )\n .max(16)\n});\n\nconst appManifestPublicActionSchema = z.strictObject({\n id: appNamespacedIdSchema,\n intentId: appNamespacedIdSchema,\n labelKey: localeKeySchema,\n descriptionKey: localeKeySchema,\n capabilityIds: z.array(appNamespacedIdSchema).min(1).max(16),\n allowedOrigins: z.array(appOriginSchema).min(1).max(8),\n riskLevel: appRiskLevelSchema\n});\n\nconst appManifestTriggerSchema = z.strictObject({\n id: appNamespacedIdSchema,\n event: appNamespacedIdSchema,\n capabilityId: appNamespacedIdSchema,\n riskLevel: appRiskLevelSchema,\n inputSchema: jsonSchemaSchema\n});\n\nconst appManifestArtifactContractSchema = z\n .strictObject({\n audiences: z\n .array(z.enum([AppArtifactAudience.PRODUCING_APP, AppArtifactAudience.COMPOSED_APPS]))\n .min(1)\n .max(2),\n id: appNamespacedIdSchema,\n schemaVersion: z.number().int().min(1).max(1_000),\n schema: jsonSchemaSchema,\n descriptionKey: localeKeySchema,\n sensitivityLevel: z.enum(appContextSensitivityLevels)\n })\n .superRefine((value, context) => {\n if (!value.audiences.includes(AppArtifactAudience.PRODUCING_APP)) {\n context.addIssue({\n code: \"custom\",\n message: \"Artifact contracts must include the producing App audience.\",\n path: [\"audiences\"]\n });\n }\n\n if (\n value.sensitivityLevel === \"HIGH\" &&\n value.audiences.includes(AppArtifactAudience.COMPOSED_APPS)\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"HIGH-sensitivity artifacts cannot be shared with composed Apps.\",\n path: [\"audiences\"]\n });\n }\n });\n\nconst appManifestPolicyBehaviorSchema = z.strictObject({\n effect: appPolicyEffectSchema,\n value: appLocalKeySchema,\n labelKey: localeKeySchema\n});\n\nconst appManifestPolicyRuleSchema = z\n .strictObject({\n key: appLocalKeySchema,\n labelKey: localeKeySchema,\n descriptionKey: localeKeySchema,\n conditionFields: z\n .array(appManifestFieldSchema)\n .max(0, \"Conditional policy fields require a deterministic evaluator in a future protocol.\"),\n behaviors: z.array(appManifestPolicyBehaviorSchema).min(1).max(16),\n defaultBehavior: appLocalKeySchema\n })\n .superRefine((rule, context) => {\n const behaviorValues = rule.behaviors.map((behavior) => behavior.value);\n\n if (new Set(behaviorValues).size !== behaviorValues.length) {\n context.addIssue({\n code: \"custom\",\n message: \"Policy behavior values must be unique.\",\n path: [\"behaviors\"]\n });\n }\n\n if (!behaviorValues.includes(rule.defaultBehavior)) {\n context.addIssue({\n code: \"custom\",\n message: \"The default policy behavior must reference a declared behavior.\",\n path: [\"defaultBehavior\"]\n });\n }\n });\n\nconst manifestNoConnectionSchema = z.strictObject({\n type: z.literal(AppConnectionType.NONE)\n});\n\nconst manifestApiKeyConnectionSchema = z.strictObject({\n type: z.literal(AppConnectionType.API_KEY),\n fields: z\n .array(\n z.strictObject({\n key: appLocalKeySchema,\n allowedOrigins: z\n .array(\n httpsOrLocalhostUrlSchema.refine(isOriginUrl, {\n message:\n \"Runtime credential origins must not include credentials, paths, queries, or fragments\"\n })\n )\n .min(1)\n .max(16),\n headerName: z\n .string()\n .min(1)\n .max(120)\n .regex(/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/),\n labelKey: localeKeySchema,\n descriptionKey: localeKeySchema,\n secretRef: runtimeSecretReferenceSchema\n })\n )\n .min(1)\n .max(16)\n});\n\nconst manifestOauthConnectionSchema = z.strictObject({\n type: z.literal(AppConnectionType.OAUTH2),\n authorizationUrl: httpsUrlSchema,\n tokenUrl: httpsUrlSchema,\n refreshUrl: httpsUrlSchema.optional(),\n resourceOrigins: z\n .array(\n httpsOrLocalhostUrlSchema.refine(isOriginUrl, {\n message:\n \"Runtime credential origins must not include credentials, paths, queries, or fragments\"\n })\n )\n .min(1)\n .max(16),\n clientIdSecretRef: runtimeSecretReferenceSchema,\n clientSecretSecretRef: runtimeSecretReferenceSchema.optional(),\n pkceRequired: z.boolean(),\n scopes: z\n .array(\n z.strictObject({\n permissionKey: appLocalKeySchema,\n providerScope: z.string().min(1).max(300)\n })\n )\n .min(1)\n .max(64)\n});\n\nconst manifestEmitResultStepSchema = z.strictObject({\n key: appLocalKeySchema,\n dependsOn: z.array(appLocalKeySchema).max(32).default([]),\n type: z.literal(AppWorkflowStepType.EMIT_RESULT),\n outcomeId: appNamespacedIdSchema,\n output: appValueExpressionSchema\n});\n\nconst manifestEmitArtifactStepSchema = z.strictObject({\n key: appLocalKeySchema,\n dependsOn: z.array(appLocalKeySchema).max(32).default([]),\n type: z.literal(AppWorkflowStepType.EMIT_ARTIFACT),\n artifactId: appNamespacedIdSchema,\n schemaVersion: z.number().int().min(1).max(1_000),\n value: appValueExpressionSchema\n});\n\nfunction isOriginUrl(value: string): boolean {\n const url = new URL(value);\n return !url.username && !url.password && !url.search && !url.hash && url.pathname === \"/\";\n}\n\nexport const appManifestWorkflowStepSchema = z.discriminatedUnion(\"type\", [\n appHttpRequestStepSchema,\n appTransformStepSchema,\n appConditionStepSchema,\n appTemplateStepSchema,\n manifestEmitArtifactStepSchema,\n appEmitBubbleStepSchema,\n manifestEmitResultStepSchema\n]);\n\nconst manifestDeclarativeRuntimeSchema = z.strictObject({\n host: z.literal(AppRuntimeHost.DECLARATIVE),\n connection: z.discriminatedUnion(\"type\", [\n manifestNoConnectionSchema,\n manifestApiKeyConnectionSchema,\n manifestOauthConnectionSchema\n ]),\n workflows: z\n .array(\n z.strictObject({\n actionId: appNamespacedIdSchema,\n steps: z.array(appManifestWorkflowStepSchema).min(1).max(32)\n })\n )\n .min(1)\n .max(64)\n});\n\nconst manifestRemoteRuntimeSchema = z.strictObject({\n host: z.literal(AppRuntimeHost.REMOTE),\n baseUrl: httpsOrLocalhostUrlSchema,\n jwksUrl: httpsOrLocalhostUrlSchema,\n connectionRequired: z.boolean()\n});\n\nexport const appManifestSchema = z\n .strictObject({\n manifestVersion: z.literal(appManifestVersion),\n app: z.strictObject({\n id: appIdSchema,\n slug: appSlugSchema,\n version: semanticVersionSchema,\n nameKey: localeKeySchema,\n shortDescriptionKey: localeKeySchema,\n longDescriptionKey: localeKeySchema,\n categoryId: appCategoryIdSchema,\n icon: appIconDefinitionSchema.optional(),\n providerName: z.string().min(1).max(120).optional(),\n official: z.boolean(),\n developer: appCompilationDeveloperSchema,\n publication: appPublicationDefinitionSchema\n }),\n connection: z.strictObject({\n type: appConnectionTypeSchema,\n required: z.boolean(),\n titleKey: localeKeySchema,\n descriptionKey: localeKeySchema,\n permissions: z\n .array(\n z.strictObject({\n key: appLocalKeySchema,\n labelKey: localeKeySchema,\n descriptionKey: localeKeySchema,\n sensitivity: appPermissionSensitivitySchema\n })\n )\n .max(64)\n }),\n intents: z.array(appManifestIntentSchema).min(1).max(128),\n capabilities: z.array(appManifestCapabilitySchema).min(1).max(128),\n actions: z.array(appManifestActionSchema).min(1).max(128),\n triggers: z.array(appManifestTriggerSchema).max(64),\n resources: z.array(appNamespacedIdSchema).max(128),\n knowledge: z.array(appManifestKnowledgeSchema).max(128),\n artifactContracts: z.array(appManifestArtifactContractSchema).max(128),\n context: z.strictObject({\n defaultScopes: z.array(z.enum(appContextScopes)).max(appContextScopes.length),\n optionalScopes: z.array(z.enum(appContextScopes)).max(appContextScopes.length),\n prohibitedScopes: z\n .array(z.enum(forbiddenAppContextScopes))\n .max(forbiddenAppContextScopes.length),\n copy: z.strictObject({\n receives: z\n .array(\n z.strictObject({\n scope: z.enum(appContextScopes),\n labelKey: localeKeySchema,\n descriptionKey: localeKeySchema\n })\n )\n .max(appContextScopes.length),\n doesNotReceive: z\n .array(\n z.strictObject({\n scope: z.enum(forbiddenAppContextScopes),\n labelKey: localeKeySchema,\n descriptionKey: localeKeySchema\n })\n )\n .max(forbiddenAppContextScopes.length)\n })\n }),\n settings: z.strictObject({\n schemaVersion: z.literal(appSettingsSchemaVersion),\n fields: z.array(appManifestFieldSchema).max(100)\n }),\n policies: z.strictObject({\n schemaVersion: z.literal(appPoliciesSchemaVersion),\n rules: z.array(appManifestPolicyRuleSchema).max(100)\n }),\n customRules: z.strictObject({\n families: z.array(appLocalKeySchema).max(32),\n examples: z.record(localeCodeSchema, z.array(z.string().min(1).max(600)).max(32)),\n unsupportedExamples: z.record(localeCodeSchema, z.array(z.string().min(1).max(600)).max(32))\n }),\n publicActions: z.array(appManifestPublicActionSchema).max(32),\n outcomes: z.array(appManifestOutcomeSchema).min(1).max(128),\n runtime: z.discriminatedUnion(\"host\", [\n manifestDeclarativeRuntimeSchema,\n manifestRemoteRuntimeSchema\n ]),\n locales: z.strictObject({\n defaultLocale: localeCodeSchema,\n messages: z.record(localeCodeSchema, z.record(localeKeySchema, z.string()))\n })\n })\n .superRefine((manifest, context) => {\n const policyKeys = manifest.policies.rules.map((rule) => rule.key);\n const declaredPolicies = new Set(policyKeys);\n const declaredScopes = new Set([\n ...manifest.context.defaultScopes,\n ...manifest.context.optionalScopes\n ]);\n\n if (declaredPolicies.size !== policyKeys.length) {\n context.addIssue({\n code: \"custom\",\n message: \"Policy rule keys must be unique.\",\n path: [\"policies\", \"rules\"]\n });\n }\n\n manifest.actions.forEach((action, actionIndex) => {\n action.context.requiresPolicies.forEach((policyKey) => {\n if (!declaredPolicies.has(policyKey)) {\n context.addIssue({\n code: \"custom\",\n message: `Action references unknown policy ${policyKey}.`,\n path: [\"actions\", actionIndex, \"context\", \"requiresPolicies\"]\n });\n }\n });\n\n action.context.requiredScopes.forEach((scope) => {\n if (!declaredScopes.has(scope)) {\n context.addIssue({\n code: \"custom\",\n message: `Action references undeclared App Context scope ${scope}.`,\n path: [\"actions\", actionIndex, \"context\", \"requiredScopes\"]\n });\n }\n });\n });\n });\n\nexport type AppManifest = z.infer<typeof appManifestSchema>;\n\nexport function createAppManifestJsonSchema(): Record<string, unknown> {\n return z.toJSONSchema(appManifestSchema) as Record<string, unknown>;\n}\n\nexport function getAppManifestLocaleCodes(manifest: AppManifest): string[] {\n return Object.keys(manifest.locales.messages).sort();\n}\n\nexport function readAppManifestText({\n key,\n locale,\n manifest\n}: {\n key: string;\n locale?: string;\n manifest: AppManifest;\n}): string {\n const requestedLocale = locale ?? manifest.locales.defaultLocale;\n const baseLocale = requestedLocale.split(\"-\")[0];\n const candidateLocales = [\n requestedLocale,\n ...(baseLocale && baseLocale !== requestedLocale ? [baseLocale] : []),\n manifest.locales.defaultLocale\n ];\n\n for (const candidateLocale of new Set(candidateLocales)) {\n const value = manifest.locales.messages[candidateLocale]?.[key];\n\n if (value !== undefined) {\n return value;\n }\n }\n\n throw new Error(`Missing App manifest copy for key \"${key}\".`);\n}\n\nexport function readAppManifestLocalizedList({\n locale,\n manifest,\n values\n}: {\n locale: string;\n manifest: AppManifest;\n values: Record<string, string[]>;\n}): string[] {\n const baseLocale = locale.split(\"-\")[0];\n const candidateLocales = [\n locale,\n ...(baseLocale && baseLocale !== locale ? [baseLocale] : []),\n manifest.locales.defaultLocale\n ];\n\n for (const candidateLocale of new Set(candidateLocales)) {\n const localizedValues = values[candidateLocale];\n\n if (localizedValues !== undefined) {\n return [...localizedValues];\n }\n }\n\n return [];\n}\n\nexport const appManifestCopyShape = keyedCopySchema;\n","import { z } from \"zod\";\n\nexport const publicHandleMinLength = 3;\nexport const publicHandleMaxLength = 30;\n\nexport const reservedPublicHandles = [\n \"account\",\n \"admin\",\n \"api\",\n \"apps\",\n \"auth\",\n \"developers\",\n \"docs\",\n \"inbox\",\n \"privacy\",\n \"r\",\n \"requests\",\n \"terms\"\n] as const;\n\nconst reservedPublicHandleSet = new Set<string>(reservedPublicHandles);\n\nexport function isReservedPublicHandle(value: string): boolean {\n return reservedPublicHandleSet.has(normalizePublicHandle(value));\n}\n\nexport function normalizePublicHandle(value: string): string {\n return value.trim().toLowerCase();\n}\n\nexport function formatPublicHandleInput(value: string): string {\n return normalizePublicHandle(value)\n .replace(/[^a-z0-9_]/g, \"\")\n .replace(/^[^a-z0-9]+/, \"\")\n .slice(0, publicHandleMaxLength);\n}\n\nexport const publicHandleSchema = z\n .string()\n .transform(normalizePublicHandle)\n .pipe(\n z\n .string()\n .min(publicHandleMinLength)\n .max(publicHandleMaxLength)\n .regex(/^[a-z0-9][a-z0-9_]*$/)\n )\n .refine((handle) => !isReservedPublicHandle(handle));\n\nexport enum PublicHandleClaimStatus {\n AVAILABLE = \"AVAILABLE\",\n CURRENT = \"CURRENT\",\n INVALID = \"INVALID\",\n UNAVAILABLE = \"UNAVAILABLE\"\n}\n\nexport const publicHandleCheckQuerySchema = z.object({\n handle: z.string().max(80)\n});\n\nexport type PublicHandleCheckQuery = z.infer<typeof publicHandleCheckQuerySchema>;\n\nexport const publicHandleCheckViewSchema = z.object({\n handle: z.string(),\n status: z.enum(PublicHandleClaimStatus)\n});\n\nexport type PublicHandleCheckView = z.infer<typeof publicHandleCheckViewSchema>;\n","import { z } from \"zod\";\nimport { publicHandleSchema } from \"./identity\";\n\nexport enum AuthFlowStatus {\n CODE_SENT = \"CODE_SENT\",\n AUTHENTICATED = \"AUTHENTICATED\"\n}\n\nexport enum AuthSessionClientType {\n WEB = \"WEB\",\n DESKTOP = \"DESKTOP\"\n}\n\nexport enum PreferredColorScheme {\n LIGHT = \"LIGHT\",\n DARK = \"DARK\"\n}\n\nexport enum AuthAdminRole {\n REVIEWER = \"REVIEWER\",\n MODERATOR = \"MODERATOR\",\n SUPERADMIN = \"SUPERADMIN\"\n}\n\nexport enum AuthStepUpStatus {\n CODE_SENT = \"CODE_SENT\",\n VERIFIED = \"VERIFIED\"\n}\n\nexport enum AuthStepUpReason {\n ACCOUNT_SECURITY = \"ACCOUNT_SECURITY\",\n APP_CONNECTION = \"APP_CONNECTION\",\n APP_CONTEXT_PERMISSION = \"APP_CONTEXT_PERMISSION\",\n APP_MODERATION = \"APP_MODERATION\",\n APP_POLICY_CHANGE = \"APP_POLICY_CHANGE\",\n APP_PUBLICATION = \"APP_PUBLICATION\",\n APP_VERSION_CHANGE = \"APP_VERSION_CHANGE\"\n}\n\nexport enum UserOnboardingStatus {\n PENDING = \"PENDING\",\n COMPLETED = \"COMPLETED\"\n}\n\nexport enum UserOnboardingStep {\n PROFILE = \"PROFILE\",\n PUBLIC_PAGE = \"PUBLIC_PAGE\",\n READY = \"READY\"\n}\n\nconst browserEnvironmentSchema = z.object({\n browserLocale: z.string().trim().max(80).nullable().optional(),\n browserTimezone: z.string().trim().max(120).nullable().optional(),\n preferredColorScheme: z.enum(PreferredColorScheme).optional()\n});\n\nexport const startEmailAuthSchema = z.object({\n email: z.string().trim().email().max(254)\n});\n\nexport type StartEmailAuthInput = z.infer<typeof startEmailAuthSchema>;\n\nconst verifyAuthCodeSchema = z.object({\n challengeId: z.string().min(1).max(120),\n code: z.string().regex(/^\\d{6}$/)\n});\n\nexport const verifyEmailAuthSchema = verifyAuthCodeSchema.extend(browserEnvironmentSchema.shape);\n\nexport type VerifyEmailAuthInput = z.infer<typeof verifyEmailAuthSchema>;\n\nexport const verifyStepUpAuthSchema = verifyAuthCodeSchema;\n\nexport type VerifyStepUpAuthInput = z.infer<typeof verifyStepUpAuthSchema>;\n\nexport const authStepUpStartResponseSchema = z.discriminatedUnion(\"status\", [\n z.object({\n challengeId: z.string(),\n codeExpiresAt: z.string().datetime({ offset: true }),\n status: z.literal(AuthStepUpStatus.CODE_SENT)\n }),\n z.object({\n status: z.literal(AuthStepUpStatus.VERIFIED),\n verifiedUntil: z.string().datetime({ offset: true })\n })\n]);\n\nexport type AuthStepUpStartResponse = z.infer<typeof authStepUpStartResponseSchema>;\n\nexport const authStepUpVerifyResponseSchema = z.object({\n status: z.literal(AuthStepUpStatus.VERIFIED),\n verifiedUntil: z.string().datetime({ offset: true })\n});\n\nexport type AuthStepUpVerifyResponse = z.infer<typeof authStepUpVerifyResponseSchema>;\n\nexport const startGoogleAuthSchema = z\n .object({\n returnTo: z\n .string()\n .trim()\n .max(500)\n .refine((value) => value.startsWith(\"/\") && !value.startsWith(\"//\"))\n .optional()\n })\n .extend(browserEnvironmentSchema.shape);\n\nexport type StartGoogleAuthInput = z.infer<typeof startGoogleAuthSchema>;\n\nexport const saveOnboardingStepSchema = z.discriminatedUnion(\"step\", [\n z.object({\n displayName: z.string().trim().min(1).max(80),\n handle: publicHandleSchema,\n step: z.literal(UserOnboardingStep.PROFILE)\n }),\n z.object({\n bio: z.string().trim().max(240).nullable(),\n step: z.literal(UserOnboardingStep.PUBLIC_PAGE)\n })\n]);\n\nexport type SaveOnboardingStepInput = z.infer<typeof saveOnboardingStepSchema>;\n\nexport const onboardingViewSchema = z.object({\n completedAt: z.string().datetime({ offset: true }).nullable(),\n currentStep: z.enum(UserOnboardingStep),\n status: z.enum(UserOnboardingStatus),\n vekil: z.object({\n avatarSeed: z.string(),\n avatarUrl: z.string().url().nullable(),\n displayName: z.string(),\n handle: z.string()\n })\n});\n\nexport type OnboardingView = z.infer<typeof onboardingViewSchema>;\n\nexport const authSessionViewSchema = z.object({\n access: z.object({\n adminRoles: z.array(z.enum(AuthAdminRole)),\n builder: z.boolean()\n }),\n session: z.object({\n absoluteExpiresAt: z.string().datetime({ offset: true }),\n clientType: z.enum([AuthSessionClientType.WEB, AuthSessionClientType.DESKTOP]),\n id: z.string(),\n stepUpVerifiedUntil: z.string().datetime({ offset: true }).nullable()\n }),\n user: z.object({\n email: z.string().email(),\n id: z.string()\n }),\n onboarding: z.object({\n completedAt: z.string().datetime({ offset: true }).nullable(),\n currentStep: z.enum(UserOnboardingStep),\n status: z.enum(UserOnboardingStatus)\n }),\n vekil: z.object({\n avatarSeed: z.string(),\n avatarUrl: z.string().url().nullable(),\n displayName: z.string(),\n handle: z.string(),\n id: z.string()\n })\n});\n\nexport type AuthSessionView = z.infer<typeof authSessionViewSchema>;\n\nexport const userSessionListItemSchema = z.object({\n absoluteExpiresAt: z.string().datetime({ offset: true }),\n clientType: z.enum([AuthSessionClientType.WEB, AuthSessionClientType.DESKTOP]),\n createdAt: z.string().datetime({ offset: true }),\n current: z.boolean(),\n deviceLabel: z.string(),\n id: z.string(),\n lastSeenAt: z.string().datetime({ offset: true })\n});\n\nexport type UserSessionListItem = z.infer<typeof userSessionListItemSchema>;\n","import { z } from \"zod\";\nimport { PreferredColorScheme } from \"./auth\";\n\nexport const vekilPublicPageStyleIds = [\n \"paper\",\n \"midnight\",\n \"sky\",\n \"rose\",\n \"violet\",\n \"forest\"\n] as const;\n\nexport const vekilPublicPagePatternIds = [\n \"none\",\n \"cartoon-space\",\n \"cats\",\n \"characters\",\n \"christmas\",\n \"food\",\n \"free-time\",\n \"fun-space\",\n \"games\",\n \"halloween\",\n \"love\",\n \"magic\",\n \"renovation\",\n \"richness\",\n \"sea-world\",\n \"sightseeing\",\n \"snowflakes\",\n \"space\",\n \"space-cat\",\n \"sport\",\n \"star-wars\",\n \"sweet-love\",\n \"sweets\",\n \"unicorn\",\n \"witch\",\n \"wizard-world\",\n \"woodland\",\n \"zoo\"\n] as const;\n\nconst hexColorSchema = z.string().regex(/^#[0-9a-f]{6}$/i);\n\nexport const vekilPublicPageSettingsSchema = z.object({\n accent_color: hexColorSchema,\n background_color: hexColorSchema,\n message_color: hexColorSchema,\n pattern_id: z.enum(vekilPublicPagePatternIds),\n pattern_intensity: z.number().int().min(0).max(30),\n style_id: z.enum(vekilPublicPageStyleIds)\n});\n\nexport type VekilPublicPageSettings = z.infer<typeof vekilPublicPageSettingsSchema>;\nexport type VekilPublicPageStyleId = (typeof vekilPublicPageStyleIds)[number];\nexport type VekilPublicPagePatternId = (typeof vekilPublicPagePatternIds)[number];\n\nexport const vekilPublicPageStylePresets = {\n paper: {\n accent_color: \"#111111\",\n background_color: \"#ffffff\",\n message_color: \"#f2f2f2\",\n pattern_id: \"none\",\n pattern_intensity: 0,\n style_id: \"paper\"\n },\n midnight: {\n accent_color: \"#ffffff\",\n background_color: \"#0b0b0c\",\n message_color: \"#1c1c1f\",\n pattern_id: \"none\",\n pattern_intensity: 0,\n style_id: \"midnight\"\n },\n sky: {\n accent_color: \"#007aff\",\n background_color: \"#f4f9ff\",\n message_color: \"#e6f1ff\",\n pattern_id: \"none\",\n pattern_intensity: 0,\n style_id: \"sky\"\n },\n rose: {\n accent_color: \"#e54868\",\n background_color: \"#fff7f8\",\n message_color: \"#ffe8ed\",\n pattern_id: \"none\",\n pattern_intensity: 0,\n style_id: \"rose\"\n },\n violet: {\n accent_color: \"#bf5af2\",\n background_color: \"#16131d\",\n message_color: \"#25202f\",\n pattern_id: \"none\",\n pattern_intensity: 0,\n style_id: \"violet\"\n },\n forest: {\n accent_color: \"#238b45\",\n background_color: \"#f4faf6\",\n message_color: \"#e4f2e8\",\n pattern_id: \"none\",\n pattern_intensity: 0,\n style_id: \"forest\"\n }\n} as const satisfies Record<VekilPublicPageStyleId, VekilPublicPageSettings>;\n\nexport function createInitialVekilPublicPageSettings(\n preferredColorScheme: PreferredColorScheme = PreferredColorScheme.LIGHT\n): VekilPublicPageSettings {\n const preset =\n preferredColorScheme === PreferredColorScheme.DARK\n ? vekilPublicPageStylePresets.midnight\n : vekilPublicPageStylePresets.paper;\n\n return {\n ...preset,\n pattern_id: \"cats\",\n pattern_intensity: 5\n };\n}\n\nexport const defaultVekilPublicPageSettings = createInitialVekilPublicPageSettings();\n","import { z } from \"zod\";\n\nexport enum ManagedAiServiceStatus {\n READY = \"READY\",\n LIMIT_REACHED = \"LIMIT_REACHED\",\n UNAVAILABLE = \"UNAVAILABLE\"\n}\n\nexport enum ProductPlanKey {\n FREE = \"FREE\",\n PRO = \"PRO\"\n}\n\nexport const currentProductUsageViewSchema = z.object({\n managedAiStatus: z.enum(ManagedAiServiceStatus),\n period: z.object({\n endsAt: z.string().datetime({ offset: true }),\n startsAt: z.string().datetime({ offset: true })\n }),\n planKey: z.enum(ProductPlanKey),\n usage: z.object({\n appActions: z.number().int().nonnegative(),\n handledConversations: z.number().int().nonnegative()\n })\n});\n\nexport type CurrentProductUsageView = z.infer<typeof currentProductUsageViewSchema>;\n","import { z } from \"zod\";\nimport { publicHandleSchema } from \"./identity\";\nimport { vekilPublicPageSettingsSchema } from \"./public-page\";\nimport { ManagedAiServiceStatus } from \"./usage\";\n\nexport const publicVekilCapabilitySchema = z.object({\n description: z.string(),\n id: z.string(),\n prompt: z.string(),\n title: z.string()\n});\n\nexport enum PublicVekilRequestAvailability {\n AVAILABLE = \"AVAILABLE\",\n LIMIT_REACHED = \"LIMIT_REACHED\",\n SERVICE_UNAVAILABLE = \"SERVICE_UNAVAILABLE\"\n}\n\nexport const publicVekilSchema = z.object({\n avatar_url: z.string().url().nullable(),\n bio: z.string().nullable(),\n display_name: z.string(),\n handle: z.string(),\n request_availability: z.enum(PublicVekilRequestAvailability),\n public_page: vekilPublicPageSettingsSchema,\n public_actions: z.array(publicVekilCapabilitySchema)\n});\n\nexport type PublicVekil = z.infer<typeof publicVekilSchema>;\n\nexport const currentVekilReadinessSchema = z.object({\n managedAiStatus: z.enum(ManagedAiServiceStatus),\n publicPageVisible: z.boolean(),\n readyAppCount: z.number().int().nonnegative(),\n requestAvailability: z.enum(PublicVekilRequestAvailability)\n});\n\nexport type CurrentVekilReadiness = z.infer<typeof currentVekilReadinessSchema>;\n\nexport const updateVekilProfileSchema = z.object({\n displayName: z.string().min(1).max(80).optional(),\n bio: z.string().max(240).nullable().optional(),\n avatarAssetId: z.string().min(1).nullable().optional(),\n handle: publicHandleSchema.optional()\n});\n\nexport type UpdateVekilProfileInput = z.infer<typeof updateVekilProfileSchema>;\n","const systemReservedHandles = [\n \"inbox\",\n \"requests\",\n \"account\",\n \"apps\",\n \"policies\",\n \"settings\",\n \"activity\",\n \"notifications\",\n \"api\",\n \"auth\",\n \"oauth\",\n \"webhooks\",\n \"admin\",\n \"privacy\",\n \"terms\",\n \"support\",\n \"help\",\n \"new\",\n \"status\",\n \"r\",\n \"u\",\n \"app\",\n \"me\",\n \"onboarding\",\n \"billing\"\n] as const;\n\nexport const reservedHandles = new Set<string>(systemReservedHandles);\n\nexport type HandleValidationResult =\n | { valid: true; normalizedHandle: string }\n | { valid: false; reason: \"too-short\" | \"too-long\" | \"invalid-format\" | \"reserved\" };\n\nexport enum AgentStatus {\n DRAFT = \"DRAFT\",\n ACTIVE = \"ACTIVE\",\n PAUSED = \"PAUSED\"\n}\n\nexport function validateHandle(input: string): HandleValidationResult {\n const normalizedHandle = input.trim().toLowerCase();\n\n if (normalizedHandle.length < 3) {\n return { valid: false, reason: \"too-short\" };\n }\n\n if (normalizedHandle.length > 32) {\n return { valid: false, reason: \"too-long\" };\n }\n\n if (!/^[a-z0-9][a-z0-9_-]*[a-z0-9]$/.test(normalizedHandle)) {\n return { valid: false, reason: \"invalid-format\" };\n }\n\n if (reservedHandles.has(normalizedHandle)) {\n return { valid: false, reason: \"reserved\" };\n }\n\n return { valid: true, normalizedHandle };\n}\n\nexport interface AgentProfile {\n id: string;\n ownerUserId: string;\n handle: string;\n displayName: string;\n bio: string | null;\n avatarUrl: string | null;\n timezone: string;\n status: AgentStatus;\n}\n","export enum ConversationResponseMode {\n ACKNOWLEDGEMENT = \"ACKNOWLEDGEMENT\",\n CANCELLATION = \"CANCELLATION\",\n CAPABILITY_UNAVAILABLE = \"CAPABILITY_UNAVAILABLE\",\n CLARIFICATION = \"CLARIFICATION\",\n CONTEXT_SWITCH = \"CONTEXT_SWITCH\",\n HANDOFF = \"HANDOFF\",\n OUTCOME = \"OUTCOME\",\n REVIEW = \"REVIEW\",\n SOCIAL = \"SOCIAL\"\n}\n\nexport enum VekilClarificationStyle {\n GROUP_RELATED = \"GROUP_RELATED\",\n ONE_AT_A_TIME = \"ONE_AT_A_TIME\"\n}\n\nexport enum VekilCommunicationTone {\n DIRECT = \"DIRECT\",\n NATURAL = \"NATURAL\",\n PROFESSIONAL = \"PROFESSIONAL\",\n WARM = \"WARM\"\n}\n\nexport enum VekilReplyLength {\n BALANCED = \"BALANCED\",\n CONCISE = \"CONCISE\"\n}\n\nexport enum VekilUnavailableActionBehavior {\n COLLECT_AND_HAND_OFF = \"COLLECT_AND_HAND_OFF\",\n EXPLAIN_ONLY = \"EXPLAIN_ONLY\"\n}\n\nexport interface VekilCommunicationSettings {\n clarification_style: VekilClarificationStyle;\n reply_length: VekilReplyLength;\n tone: VekilCommunicationTone;\n unavailable_action_behavior: VekilUnavailableActionBehavior;\n writing_preferences: string | null;\n}\n\nexport const defaultVekilCommunicationSettings = {\n clarification_style: VekilClarificationStyle.ONE_AT_A_TIME,\n reply_length: VekilReplyLength.CONCISE,\n tone: VekilCommunicationTone.NATURAL,\n unavailable_action_behavior: VekilUnavailableActionBehavior.COLLECT_AND_HAND_OFF,\n writing_preferences: null\n} satisfies VekilCommunicationSettings;\n","export enum ActorType {\n ANONYMOUS_VISITOR = \"ANONYMOUS_VISITOR\",\n GUEST_REQUESTER = \"GUEST_REQUESTER\",\n VERIFIED_EXTERNAL = \"VERIFIED_EXTERNAL\",\n AUTHENTICATED_USER = \"AUTHENTICATED_USER\",\n AGENT_PROFILE = \"AGENT_PROFILE\",\n SYSTEM = \"SYSTEM\",\n APP = \"APP\"\n}\n\nexport enum VerificationStatus {\n UNVERIFIED = \"UNVERIFIED\",\n EMAIL_VERIFIED = \"EMAIL_VERIFIED\",\n PHONE_VERIFIED = \"PHONE_VERIFIED\",\n DOMAIN_VERIFIED = \"DOMAIN_VERIFIED\",\n PLATFORM_VERIFIED = \"PLATFORM_VERIFIED\"\n}\n\nexport enum RequestOriginType {\n PUBLIC_GUEST = \"PUBLIC_GUEST\",\n PUBLIC_VERIFIED_EXTERNAL = \"PUBLIC_VERIFIED_EXTERNAL\",\n PUBLIC_AUTHENTICATED = \"PUBLIC_AUTHENTICATED\",\n AGENT_TO_AGENT = \"AGENT_TO_AGENT\",\n AGENT_TO_EXTERNAL_FALLBACK = \"AGENT_TO_EXTERNAL_FALLBACK\",\n SYSTEM_GENERATED = \"SYSTEM_GENERATED\"\n}\n\nexport enum PublicRequestSessionStatus {\n ACTIVE = \"ACTIVE\",\n IDENTITY_REQUIRED = \"IDENTITY_REQUIRED\",\n VERIFICATION_REQUIRED = \"VERIFICATION_REQUIRED\",\n REQUEST_CREATED = \"REQUEST_CREATED\",\n WAITING_OWNER = \"WAITING_OWNER\",\n WAITING_REQUESTER = \"WAITING_REQUESTER\",\n COMPLETED = \"COMPLETED\",\n EXPIRED = \"EXPIRED\",\n BLOCKED = \"BLOCKED\"\n}\n\nexport enum AgentEnvelopeType {\n REQUEST = \"REQUEST\",\n PROPOSAL = \"PROPOSAL\",\n RESPONSE = \"RESPONSE\",\n STATUS_UPDATE = \"STATUS_UPDATE\",\n CANCELLATION = \"CANCELLATION\"\n}\n\nexport enum AgentEnvelopeStatus {\n CREATED = \"CREATED\",\n SENT = \"SENT\",\n DELIVERED = \"DELIVERED\",\n ACCEPTED = \"ACCEPTED\",\n REJECTED = \"REJECTED\",\n NEGOTIATING = \"NEGOTIATING\",\n COMPLETED = \"COMPLETED\",\n FAILED = \"FAILED\",\n EXPIRED = \"EXPIRED\"\n}\n\nexport enum RequestParticipantRole {\n OWNER = \"OWNER\",\n REQUESTER = \"REQUESTER\",\n TARGET_AGENT = \"TARGET_AGENT\",\n SOURCE_AGENT = \"SOURCE_AGENT\",\n EXTERNAL_GUEST = \"EXTERNAL_GUEST\",\n APPROVER = \"APPROVER\",\n OBSERVER = \"OBSERVER\",\n SYSTEM = \"SYSTEM\"\n}\n\nexport enum RequestVisibilityLevel {\n PUBLIC_REQUESTER = \"PUBLIC_REQUESTER\",\n REQUESTER_PRIVATE = \"REQUESTER_PRIVATE\",\n OWNER_PRIVATE = \"OWNER_PRIVATE\",\n AGENT_INTERNAL = \"AGENT_INTERNAL\",\n SYSTEM_ONLY = \"SYSTEM_ONLY\"\n}\n\nexport interface Actor {\n id: string;\n actorType: ActorType;\n linkedUserId: string | null;\n linkedAgentId: string | null;\n linkedContactIdentityId: string | null;\n linkedAppInstallationId: string | null;\n displayName: string;\n verificationStatus: VerificationStatus;\n createdAt: Date;\n}\n\nconst publicRequestSessionTransitions: Record<\n PublicRequestSessionStatus,\n PublicRequestSessionStatus[]\n> = {\n [PublicRequestSessionStatus.ACTIVE]: [\n PublicRequestSessionStatus.ACTIVE,\n PublicRequestSessionStatus.IDENTITY_REQUIRED,\n PublicRequestSessionStatus.REQUEST_CREATED,\n PublicRequestSessionStatus.EXPIRED,\n PublicRequestSessionStatus.BLOCKED\n ],\n [PublicRequestSessionStatus.IDENTITY_REQUIRED]: [\n PublicRequestSessionStatus.ACTIVE,\n PublicRequestSessionStatus.VERIFICATION_REQUIRED,\n PublicRequestSessionStatus.REQUEST_CREATED,\n PublicRequestSessionStatus.EXPIRED,\n PublicRequestSessionStatus.BLOCKED\n ],\n [PublicRequestSessionStatus.VERIFICATION_REQUIRED]: [\n PublicRequestSessionStatus.ACTIVE,\n PublicRequestSessionStatus.REQUEST_CREATED,\n PublicRequestSessionStatus.EXPIRED,\n PublicRequestSessionStatus.BLOCKED\n ],\n [PublicRequestSessionStatus.REQUEST_CREATED]: [\n PublicRequestSessionStatus.ACTIVE,\n PublicRequestSessionStatus.WAITING_OWNER,\n PublicRequestSessionStatus.WAITING_REQUESTER,\n PublicRequestSessionStatus.COMPLETED,\n PublicRequestSessionStatus.EXPIRED,\n PublicRequestSessionStatus.BLOCKED\n ],\n [PublicRequestSessionStatus.WAITING_OWNER]: [\n PublicRequestSessionStatus.ACTIVE,\n PublicRequestSessionStatus.WAITING_REQUESTER,\n PublicRequestSessionStatus.COMPLETED,\n PublicRequestSessionStatus.EXPIRED,\n PublicRequestSessionStatus.BLOCKED\n ],\n [PublicRequestSessionStatus.WAITING_REQUESTER]: [\n PublicRequestSessionStatus.ACTIVE,\n PublicRequestSessionStatus.WAITING_OWNER,\n PublicRequestSessionStatus.COMPLETED,\n PublicRequestSessionStatus.EXPIRED,\n PublicRequestSessionStatus.BLOCKED\n ],\n [PublicRequestSessionStatus.COMPLETED]: [PublicRequestSessionStatus.ACTIVE],\n [PublicRequestSessionStatus.EXPIRED]: [],\n [PublicRequestSessionStatus.BLOCKED]: []\n};\n\nconst agentEnvelopeTransitions: Record<AgentEnvelopeStatus, AgentEnvelopeStatus[]> = {\n [AgentEnvelopeStatus.CREATED]: [AgentEnvelopeStatus.SENT, AgentEnvelopeStatus.FAILED],\n [AgentEnvelopeStatus.SENT]: [\n AgentEnvelopeStatus.DELIVERED,\n AgentEnvelopeStatus.FAILED,\n AgentEnvelopeStatus.EXPIRED\n ],\n [AgentEnvelopeStatus.DELIVERED]: [\n AgentEnvelopeStatus.ACCEPTED,\n AgentEnvelopeStatus.REJECTED,\n AgentEnvelopeStatus.NEGOTIATING,\n AgentEnvelopeStatus.EXPIRED\n ],\n [AgentEnvelopeStatus.ACCEPTED]: [\n AgentEnvelopeStatus.NEGOTIATING,\n AgentEnvelopeStatus.COMPLETED,\n AgentEnvelopeStatus.FAILED\n ],\n [AgentEnvelopeStatus.REJECTED]: [],\n [AgentEnvelopeStatus.NEGOTIATING]: [\n AgentEnvelopeStatus.ACCEPTED,\n AgentEnvelopeStatus.REJECTED,\n AgentEnvelopeStatus.COMPLETED,\n AgentEnvelopeStatus.FAILED,\n AgentEnvelopeStatus.EXPIRED\n ],\n [AgentEnvelopeStatus.COMPLETED]: [],\n [AgentEnvelopeStatus.FAILED]: [],\n [AgentEnvelopeStatus.EXPIRED]: []\n};\n\nexport function canTransitionPublicRequestSession(\n from: PublicRequestSessionStatus,\n to: PublicRequestSessionStatus\n): boolean {\n return publicRequestSessionTransitions[from].includes(to);\n}\n\nexport function assertPublicRequestSessionTransition(\n from: PublicRequestSessionStatus,\n to: PublicRequestSessionStatus\n): void {\n if (!canTransitionPublicRequestSession(from, to)) {\n throw new Error(`Invalid public request session transition: ${from} -> ${to}`);\n }\n}\n\nexport function canTransitionAgentEnvelope(\n from: AgentEnvelopeStatus,\n to: AgentEnvelopeStatus\n): boolean {\n return agentEnvelopeTransitions[from].includes(to);\n}\n\nexport function assertAgentEnvelopeTransition(\n from: AgentEnvelopeStatus,\n to: AgentEnvelopeStatus\n): void {\n if (!canTransitionAgentEnvelope(from, to)) {\n throw new Error(`Invalid agent envelope transition: ${from} -> ${to}`);\n }\n}\n","import type { RequestVisibilityLevel } from \"./identity\";\n\nexport enum RequestStatus {\n RECEIVED = \"RECEIVED\",\n CLASSIFIED = \"CLASSIFIED\",\n NEEDS_CLARIFICATION = \"NEEDS_CLARIFICATION\",\n POLICY_CHECKED = \"POLICY_CHECKED\",\n PROPOSAL_READY = \"PROPOSAL_READY\",\n WAITING_FOR_REQUESTER = \"WAITING_FOR_REQUESTER\",\n WAITING_FOR_OWNER = \"WAITING_FOR_OWNER\",\n WAITING_FOR_APPROVAL = \"WAITING_FOR_APPROVAL\",\n APPROVED = \"APPROVED\",\n EXECUTING = \"EXECUTING\",\n COMPLETED = \"COMPLETED\",\n UNFULFILLED = \"UNFULFILLED\",\n DECLINED = \"DECLINED\",\n FAILED = \"FAILED\",\n EXPIRED = \"EXPIRED\",\n CANCELLED = \"CANCELLED\"\n}\n\nexport enum RequestType {\n GENERAL_REQUEST = \"GENERAL_REQUEST\",\n APP_INTENT = \"APP_INTENT\",\n UNSUPPORTED = \"UNSUPPORTED\",\n AMBIGUOUS = \"AMBIGUOUS\"\n}\n\nexport enum RequestNextAction {\n WAIT = \"WAIT\",\n CLARIFY = \"CLARIFY\",\n SELECT_OPTION = \"SELECT_OPTION\",\n APPROVAL = \"APPROVAL\",\n COMPLETED = \"COMPLETED\"\n}\n\nexport enum InboxBucket {\n ATTENTION = \"ATTENTION\",\n ACTIVE = \"ACTIVE\",\n DONE = \"DONE\",\n ALL = \"ALL\"\n}\n\nexport enum InboxOwnerAction {\n RESPOND = \"RESPOND\",\n REVIEW_PROPOSAL = \"REVIEW_PROPOSAL\",\n REVIEW_APPROVAL = \"REVIEW_APPROVAL\",\n REVIEW_FAILURE = \"REVIEW_FAILURE\"\n}\n\nexport enum MessageRelationType {\n CONTINUATION = \"CONTINUATION\",\n CLARIFICATION_ANSWER = \"CLARIFICATION_ANSWER\",\n CORRECTION = \"CORRECTION\",\n CANCELLATION = \"CANCELLATION\",\n NEW_REQUEST = \"NEW_REQUEST\",\n SMALL_TALK = \"SMALL_TALK\",\n INFORMATIONAL = \"INFORMATIONAL\",\n UNSUPPORTED = \"UNSUPPORTED\",\n AMBIGUOUS = \"AMBIGUOUS\",\n MULTI_REQUEST = \"MULTI_REQUEST\"\n}\n\nexport enum RequesterReviewDecision {\n NONE = \"NONE\",\n CONFIRM = \"CONFIRM\",\n REVISE = \"REVISE\"\n}\n\nexport enum RequestContextDecisionType {\n CONTINUED_REQUEST = \"CONTINUED_REQUEST\",\n CREATED_NEW_REQUEST = \"CREATED_NEW_REQUEST\",\n RESPONDED_IN_CONVERSATION = \"RESPONDED_IN_CONVERSATION\",\n CORRECTED_REQUEST = \"CORRECTED_REQUEST\",\n CANCELLED_REQUEST = \"CANCELLED_REQUEST\",\n ASKED_CLARIFICATION = \"ASKED_CLARIFICATION\",\n UNSUPPORTED = \"UNSUPPORTED\",\n SMALL_TALK = \"SMALL_TALK\",\n SPLIT_MULTI_REQUEST = \"SPLIT_MULTI_REQUEST\"\n}\n\nexport enum RequestContextResolutionAction {\n ACCEPT = \"ACCEPT\",\n REJECT = \"REJECT\"\n}\n\nexport enum RequestContextResolutionStatus {\n NOT_REQUIRED = \"NOT_REQUIRED\",\n PENDING = \"PENDING\",\n PROCESSING = \"PROCESSING\",\n ACCEPTED = \"ACCEPTED\",\n REJECTED = \"REJECTED\",\n EXPIRED = \"EXPIRED\"\n}\n\nexport enum ApprovalAction {\n APPROVE = \"APPROVE\",\n DECLINE = \"DECLINE\",\n REQUEST_CHANGES = \"REQUEST_CHANGES\"\n}\n\nexport enum ApprovalStatus {\n PENDING = \"PENDING\",\n APPROVED = \"APPROVED\",\n DECLINED = \"DECLINED\",\n CHANGES_REQUESTED = \"CHANGES_REQUESTED\",\n EXPIRED = \"EXPIRED\",\n CANCELLED = \"CANCELLED\"\n}\n\nexport interface VekilRequest {\n id: string;\n type: RequestType;\n status: RequestStatus;\n targetAgentId: string;\n requesterIdentityId: string;\n naturalLanguageInput: string;\n appIntentId: string | null;\n appActionId: string | null;\n appCapability: string | null;\n appDefinitionId: string | null;\n isComposite: boolean;\n confidence: number | null;\n requiresApproval: boolean;\n createdAt: Date;\n updatedAt: Date;\n}\n\nexport interface RequestArtifact {\n id: string;\n requestId: string;\n actionPlanId: string | null;\n actionStepId: string | null;\n artifactType: string;\n schemaVersion: number;\n artifact: Record<string, unknown>;\n sourceAppInstallationId: string | null;\n sourceActionId: string | null;\n visibilityLevel: RequestVisibilityLevel;\n createdAt: Date;\n}\n\nconst allowedTransitions: Record<RequestStatus, RequestStatus[]> = {\n [RequestStatus.RECEIVED]: [\n RequestStatus.CLASSIFIED,\n RequestStatus.UNFULFILLED,\n RequestStatus.FAILED,\n RequestStatus.CANCELLED\n ],\n [RequestStatus.CLASSIFIED]: [\n RequestStatus.NEEDS_CLARIFICATION,\n RequestStatus.POLICY_CHECKED,\n RequestStatus.UNFULFILLED,\n RequestStatus.FAILED,\n RequestStatus.CANCELLED\n ],\n [RequestStatus.NEEDS_CLARIFICATION]: [\n RequestStatus.CLASSIFIED,\n RequestStatus.EXPIRED,\n RequestStatus.CANCELLED\n ],\n [RequestStatus.POLICY_CHECKED]: [\n RequestStatus.PROPOSAL_READY,\n RequestStatus.UNFULFILLED,\n RequestStatus.DECLINED,\n RequestStatus.FAILED,\n RequestStatus.CANCELLED\n ],\n [RequestStatus.PROPOSAL_READY]: [\n RequestStatus.CLASSIFIED,\n RequestStatus.WAITING_FOR_REQUESTER,\n RequestStatus.WAITING_FOR_OWNER,\n RequestStatus.WAITING_FOR_APPROVAL,\n RequestStatus.COMPLETED,\n RequestStatus.FAILED,\n RequestStatus.EXPIRED,\n RequestStatus.CANCELLED\n ],\n [RequestStatus.WAITING_FOR_REQUESTER]: [\n RequestStatus.CLASSIFIED,\n RequestStatus.WAITING_FOR_REQUESTER,\n RequestStatus.WAITING_FOR_OWNER,\n RequestStatus.WAITING_FOR_APPROVAL,\n RequestStatus.EXPIRED,\n RequestStatus.CANCELLED\n ],\n [RequestStatus.WAITING_FOR_OWNER]: [\n RequestStatus.CLASSIFIED,\n RequestStatus.COMPLETED,\n RequestStatus.DECLINED,\n RequestStatus.EXPIRED,\n RequestStatus.CANCELLED\n ],\n [RequestStatus.WAITING_FOR_APPROVAL]: [\n RequestStatus.APPROVED,\n RequestStatus.DECLINED,\n RequestStatus.WAITING_FOR_REQUESTER,\n RequestStatus.FAILED,\n RequestStatus.EXPIRED,\n RequestStatus.CANCELLED\n ],\n [RequestStatus.APPROVED]: [\n RequestStatus.EXECUTING,\n RequestStatus.COMPLETED,\n RequestStatus.CANCELLED\n ],\n [RequestStatus.EXECUTING]: [\n RequestStatus.WAITING_FOR_REQUESTER,\n RequestStatus.WAITING_FOR_OWNER,\n RequestStatus.COMPLETED,\n RequestStatus.FAILED\n ],\n [RequestStatus.COMPLETED]: [],\n [RequestStatus.UNFULFILLED]: [],\n [RequestStatus.DECLINED]: [],\n [RequestStatus.FAILED]: [RequestStatus.CANCELLED],\n [RequestStatus.EXPIRED]: [],\n [RequestStatus.CANCELLED]: []\n};\n\nexport function canTransitionRequest(from: RequestStatus, to: RequestStatus): boolean {\n return allowedTransitions[from].includes(to);\n}\n\nexport function assertRequestTransition(from: RequestStatus, to: RequestStatus): void {\n if (!canTransitionRequest(from, to)) {\n throw new Error(`Invalid request transition: ${from} -> ${to}`);\n }\n}\n\nconst replannableRequestStatuses = new Set<RequestStatus>([\n RequestStatus.RECEIVED,\n RequestStatus.CLASSIFIED,\n RequestStatus.NEEDS_CLARIFICATION,\n RequestStatus.PROPOSAL_READY,\n RequestStatus.WAITING_FOR_REQUESTER,\n RequestStatus.WAITING_FOR_OWNER,\n RequestStatus.WAITING_FOR_APPROVAL\n]);\n\n/**\n * A requester correction may replace an uncommitted plan only while the\n * Request is still mutable. WAITING_FOR_APPROVAL is intentionally included,\n * but persistence must cancel the pending approval before reclassification.\n */\nexport function canReplanRequestStatus(status: RequestStatus): boolean {\n return replannableRequestStatuses.has(status);\n}\n\nexport interface RequestContextReplanTarget {\n conversation_id: string;\n owner_actor_id: string | null;\n owner_user_id: string;\n requester_actor_id: string | null;\n requester_identity_id: string;\n status: RequestStatus;\n target_agent_actor_id: string | null;\n target_agent_id: string;\n}\n\nexport type RequestContextReplanEligibility =\n | { allowed: true }\n | {\n allowed: false;\n reason:\n | \"TARGET_PARTICIPANT_SCOPE_MISMATCH\"\n | \"TARGET_REQUEST_SCOPE_MISMATCH\"\n | \"TARGET_STATUS_IMMUTABLE\";\n };\n\nexport function evaluateRequestContextReplanTarget({\n current,\n selected\n}: {\n current: Omit<RequestContextReplanTarget, \"status\">;\n selected: RequestContextReplanTarget;\n}): RequestContextReplanEligibility {\n if (\n selected.conversation_id !== current.conversation_id ||\n selected.owner_user_id !== current.owner_user_id ||\n selected.requester_identity_id !== current.requester_identity_id ||\n selected.target_agent_id !== current.target_agent_id\n ) {\n return { allowed: false, reason: \"TARGET_REQUEST_SCOPE_MISMATCH\" };\n }\n\n if (\n selected.owner_actor_id !== current.owner_actor_id ||\n selected.requester_actor_id !== current.requester_actor_id ||\n selected.target_agent_actor_id !== current.target_agent_actor_id\n ) {\n return { allowed: false, reason: \"TARGET_PARTICIPANT_SCOPE_MISMATCH\" };\n }\n\n if (!canReplanRequestStatus(selected.status)) {\n return { allowed: false, reason: \"TARGET_STATUS_IMMUTABLE\" };\n }\n\n return { allowed: true };\n}\n\nexport interface PublicRequestRoutingSnapshot {\n active_request_id: string | null;\n contact_identity_id: string | null;\n conversation_id: string;\n request_id: string;\n session_id: string;\n target_agent_id: string;\n}\n\nexport function matchesPublicRequestRoutingSnapshot(\n expected: PublicRequestRoutingSnapshot,\n current: PublicRequestRoutingSnapshot\n): boolean {\n return (\n current.active_request_id === expected.active_request_id &&\n current.contact_identity_id === expected.contact_identity_id &&\n current.conversation_id === expected.conversation_id &&\n current.request_id === expected.request_id &&\n current.session_id === expected.session_id &&\n current.target_agent_id === expected.target_agent_id\n );\n}\n\nconst terminalRequestStatuses = new Set<RequestStatus>([\n RequestStatus.COMPLETED,\n RequestStatus.UNFULFILLED,\n RequestStatus.DECLINED,\n RequestStatus.FAILED,\n RequestStatus.EXPIRED,\n RequestStatus.CANCELLED\n]);\n\nexport function isTerminalRequestStatus(status: RequestStatus): boolean {\n return terminalRequestStatuses.has(status);\n}\n\nexport function isOpenRequestStatus(status: RequestStatus): boolean {\n return !isTerminalRequestStatus(status);\n}\n\nconst inboxBucketByRequestStatus = {\n [RequestStatus.RECEIVED]: InboxBucket.ACTIVE,\n [RequestStatus.CLASSIFIED]: InboxBucket.ACTIVE,\n [RequestStatus.NEEDS_CLARIFICATION]: InboxBucket.ACTIVE,\n [RequestStatus.POLICY_CHECKED]: InboxBucket.ACTIVE,\n [RequestStatus.PROPOSAL_READY]: InboxBucket.ATTENTION,\n [RequestStatus.WAITING_FOR_REQUESTER]: InboxBucket.ACTIVE,\n [RequestStatus.WAITING_FOR_OWNER]: InboxBucket.ATTENTION,\n [RequestStatus.WAITING_FOR_APPROVAL]: InboxBucket.ATTENTION,\n [RequestStatus.APPROVED]: InboxBucket.ACTIVE,\n [RequestStatus.EXECUTING]: InboxBucket.ACTIVE,\n [RequestStatus.COMPLETED]: InboxBucket.DONE,\n [RequestStatus.UNFULFILLED]: InboxBucket.DONE,\n [RequestStatus.DECLINED]: InboxBucket.DONE,\n [RequestStatus.FAILED]: InboxBucket.ATTENTION,\n [RequestStatus.EXPIRED]: InboxBucket.DONE,\n [RequestStatus.CANCELLED]: InboxBucket.DONE\n} satisfies Record<RequestStatus, Exclude<InboxBucket, InboxBucket.ALL>>;\n\nconst inboxOwnerActionByRequestStatus: Partial<Record<RequestStatus, InboxOwnerAction>> = {\n [RequestStatus.WAITING_FOR_OWNER]: InboxOwnerAction.RESPOND,\n [RequestStatus.PROPOSAL_READY]: InboxOwnerAction.REVIEW_PROPOSAL,\n [RequestStatus.WAITING_FOR_APPROVAL]: InboxOwnerAction.REVIEW_APPROVAL,\n [RequestStatus.FAILED]: InboxOwnerAction.REVIEW_FAILURE\n};\n\nexport function inboxBucketForRequestStatus(\n status: RequestStatus\n): Exclude<InboxBucket, InboxBucket.ALL> {\n return inboxBucketByRequestStatus[status];\n}\n\nexport function inboxOwnerActionForRequestStatus(status: RequestStatus): InboxOwnerAction | null {\n return inboxOwnerActionByRequestStatus[status] ?? null;\n}\n\nexport function requestStatusesForInboxBucket(bucket: InboxBucket): RequestStatus[] {\n if (bucket === InboxBucket.ALL) {\n return Object.values(RequestStatus);\n }\n\n return Object.values(RequestStatus).filter(\n (status) => inboxBucketByRequestStatus[status] === bucket\n );\n}\n","import { z } from \"zod\";\n\nexport const maxAppDefinitionFileBytes = 2 * 1024 * 1024;\nexport const maxAppDefinitionRequestBytes = maxAppDefinitionFileBytes + 64 * 1024;\n\nexport enum AppSubmissionViewStatus {\n DRAFT = \"DRAFT\",\n SUBMITTED = \"SUBMITTED\",\n IN_REVIEW = \"IN_REVIEW\",\n CHANGES_REQUESTED = \"CHANGES_REQUESTED\",\n APPROVED = \"APPROVED\",\n REJECTED = \"REJECTED\",\n PUBLISHED = \"PUBLISHED\",\n WITHDRAWN = \"WITHDRAWN\",\n SUSPENDED = \"SUSPENDED\"\n}\n\nexport enum AppBuilderProjectViewStatus {\n ACTIVE = \"ACTIVE\",\n ARCHIVED = \"ARCHIVED\"\n}\n\nexport enum AppBuilderProjectSourceType {\n GUIDED = \"GUIDED\",\n IMPORTED_DEFINITION = \"IMPORTED_DEFINITION\"\n}\n\nexport enum BuilderProfileViewStatus {\n ACTIVE = \"ACTIVE\",\n SUSPENDED = \"SUSPENDED\"\n}\n\nexport enum AppTestRunViewStatus {\n QUEUED = \"QUEUED\",\n RUNNING = \"RUNNING\",\n SUCCEEDED = \"SUCCEEDED\",\n FAILED = \"FAILED\",\n CANCELLED = \"CANCELLED\"\n}\n\nexport enum AppBuilderAudience {\n ONLY_ME = \"ONLY_ME\",\n SPECIFIC_PEOPLE = \"SPECIFIC_PEOPLE\",\n PUBLIC = \"PUBLIC\"\n}\n\nexport enum AppBuilderLifecycleState {\n DRAFT = \"DRAFT\",\n NEEDS_TEST = \"NEEDS_TEST\",\n READY_TO_RELEASE = \"READY_TO_RELEASE\",\n RELEASED = \"RELEASED\",\n IN_REVIEW = \"IN_REVIEW\",\n CHANGES_REQUESTED = \"CHANGES_REQUESTED\",\n LIVE = \"LIVE\",\n SUSPENDED = \"SUSPENDED\",\n RETIRED = \"RETIRED\"\n}\n\nexport enum AppBuilderCandidateTestStatus {\n NOT_RUN = \"NOT_RUN\",\n PASSED = \"PASSED\",\n FAILED = \"FAILED\"\n}\n\nconst appSubmissionStatusSchema = z.enum(AppSubmissionViewStatus);\nconst appDefinitionSnapshotSchema = z.record(z.string(), z.unknown());\nconst appManifestSnapshotSchema = z.record(z.string(), z.unknown());\nconst appBuilderProjectSourceSchema = z.record(z.string(), z.unknown());\n\nexport const appDevelopmentCompilationIssueViewSchema = z.object({\n code: z.string(),\n message: z.string(),\n path: z.string(),\n section: z.string().nullable()\n});\n\nexport type AppDevelopmentCompilationIssueView = z.infer<\n typeof appDevelopmentCompilationIssueViewSchema\n>;\n\nconst appBuilderCandidateViewSchema = z.object({\n id: z.string(),\n testStatus: z.enum(AppBuilderCandidateTestStatus),\n testedAt: z.string().datetime({ offset: true }).nullable(),\n version: z.string()\n});\n\nconst appBuilderReleaseViewSchema = z.object({\n id: z.string(),\n publishedAt: z.string().datetime({ offset: true }),\n version: z.string()\n});\n\nconst appBuilderReleaseHistoryViewSchema = appBuilderReleaseViewSchema.extend({\n isCurrent: z.boolean()\n});\n\nconst appBuilderSubmissionSummaryViewSchema = z.object({\n id: z.string(),\n reviewNotes: z.string().nullable(),\n status: appSubmissionStatusSchema,\n updatedAt: z.string().datetime({ offset: true }),\n version: z.string(),\n versionId: z.string()\n});\n\nexport const appBuilderLifecycleViewSchema = z.object({\n actions: z.object({\n canDeleteDraft: z.boolean(),\n canGrantAccess: z.boolean(),\n canManageAccess: z.boolean(),\n canReleasePrivate: z.boolean(),\n canRetire: z.boolean(),\n canSubmitForReview: z.boolean()\n }),\n activeGrantCount: z.number().int().nonnegative(),\n appSlug: z.string().nullable(),\n audience: z.enum(AppBuilderAudience),\n candidate: appBuilderCandidateViewSchema.nullable(),\n hasUnreleasedChanges: z.boolean(),\n latestRelease: appBuilderReleaseViewSchema.nullable(),\n productionInstallCount: z.number().int().nonnegative(),\n releaseHistory: z.array(appBuilderReleaseHistoryViewSchema),\n state: z.enum(AppBuilderLifecycleState),\n submission: appBuilderSubmissionSummaryViewSchema.nullable(),\n submissionHistory: z.array(appBuilderSubmissionSummaryViewSchema)\n});\n\nexport type AppBuilderLifecycleView = z.infer<typeof appBuilderLifecycleViewSchema>;\n\nconst appBuilderProjectViewBase = {\n appId: z.string(),\n compiledDefinitionHash: z.string().nullable(),\n createdAt: z.string().datetime({ offset: true }),\n id: z.string(),\n iconUrl: z.string().url().nullable(),\n lifecycle: appBuilderLifecycleViewSchema,\n status: z.enum(AppBuilderProjectViewStatus),\n updatedAt: z.string().datetime({ offset: true })\n} as const;\n\nexport const appBuilderProjectViewSchema = z.discriminatedUnion(\"sourceType\", [\n z.object({\n ...appBuilderProjectViewBase,\n activeSection: z.string(),\n source: appBuilderProjectSourceSchema,\n sourceType: z.literal(AppBuilderProjectSourceType.GUIDED),\n sourceVersion: z.string(),\n templateId: z.string()\n }),\n z.object({\n ...appBuilderProjectViewBase,\n activeSection: z.null(),\n source: appBuilderProjectSourceSchema,\n sourceType: z.literal(AppBuilderProjectSourceType.IMPORTED_DEFINITION),\n sourceVersion: z.string(),\n templateId: z.null()\n })\n]);\n\nexport type AppBuilderProjectView = z.infer<typeof appBuilderProjectViewSchema>;\n\nexport const appDevelopmentCompilationViewSchema = z.discriminatedUnion(\"ok\", [\n z.object({\n definition: appDefinitionSnapshotSchema,\n issues: z.tuple([]),\n ok: z.literal(true)\n }),\n z.object({\n issues: z.array(appDevelopmentCompilationIssueViewSchema),\n ok: z.literal(false)\n })\n]);\n\nexport type AppDevelopmentCompilationView = z.infer<typeof appDevelopmentCompilationViewSchema>;\n\nexport const appDevelopmentCandidateViewSchema = z.object({\n appId: z.string(),\n appVersion: z.string(),\n appVersionId: z.string(),\n manifest: appManifestSnapshotSchema\n});\n\nexport type AppDevelopmentCandidateView = z.infer<typeof appDevelopmentCandidateViewSchema>;\n\nexport const testAppDevelopmentCandidateInputSchema = z.strictObject({\n appVersionId: z.string().trim().min(1)\n});\n\nexport type TestAppDevelopmentCandidateInput = z.infer<\n typeof testAppDevelopmentCandidateInputSchema\n>;\n\nexport const appDevelopmentTestRunViewSchema = z.object({\n appId: z.string(),\n appVersion: z.string(),\n appVersionId: z.string(),\n checkedAt: z.string().datetime({ offset: true }).nullable(),\n errorCode: z.string().nullable(),\n id: z.string(),\n installationId: z.string(),\n manifest: appManifestSnapshotSchema,\n ok: z.boolean(),\n runtimeStatus: z.enum([\"HEALTHY\", \"DEGRADED\", \"UNHEALTHY\"]).nullable(),\n status: z.enum(AppTestRunViewStatus),\n traceId: z.string()\n});\n\nexport type AppDevelopmentTestRunView = z.infer<typeof appDevelopmentTestRunViewSchema>;\n\nexport const appDevelopmentPreviewInstallationViewSchema = z.object({\n appId: z.string(),\n appVersion: z.string(),\n appVersionId: z.string(),\n installationId: z.string()\n});\n\nexport type AppDevelopmentPreviewInstallationView = z.infer<\n typeof appDevelopmentPreviewInstallationViewSchema\n>;\n\nexport const releaseAppBuilderProjectInputSchema = z.strictObject({\n appVersionId: z.string().trim().min(1)\n});\n\nexport type ReleaseAppBuilderProjectInput = z.infer<typeof releaseAppBuilderProjectInputSchema>;\n\nexport const grantAppBuilderAccessInputSchema = z.strictObject({\n handle: z.string().trim().min(1).max(64)\n});\n\nexport type GrantAppBuilderAccessInput = z.infer<typeof grantAppBuilderAccessInputSchema>;\n\nexport const appBuilderAccessGrantViewSchema = z.object({\n avatarUrl: z.string().url().nullable(),\n createdAt: z.string().datetime({ offset: true }),\n handle: z.string(),\n id: z.string(),\n name: z.string(),\n revokedAt: z.string().datetime({ offset: true }).nullable(),\n status: z.enum([\"ACTIVE\", \"REVOKED\"])\n});\n\nexport type AppBuilderAccessGrantView = z.infer<typeof appBuilderAccessGrantViewSchema>;\n\nexport const builderProfileViewSchema = z.object({\n githubUrl: z.string().url().nullable(),\n handle: z.string(),\n id: z.string(),\n isOfficialTeamMember: z.boolean(),\n isVerified: z.boolean(),\n linkedinUrl: z.string().url().nullable(),\n name: z.string(),\n status: z.enum(BuilderProfileViewStatus),\n supportEmail: z.string().email().nullable(),\n websiteUrl: z.string().url().nullable(),\n xProfileUrl: z.string().url().nullable()\n});\n\nexport type BuilderProfileView = z.infer<typeof builderProfileViewSchema>;\n\nconst optionalProfileUrlSchema = z.string().trim().url().nullable().optional();\n\nexport const updateBuilderProfileSchema = z.strictObject({\n githubUrl: optionalProfileUrlSchema,\n linkedinUrl: optionalProfileUrlSchema,\n supportEmail: z.string().trim().email().nullable().optional(),\n websiteUrl: optionalProfileUrlSchema,\n xProfileUrl: optionalProfileUrlSchema\n});\n\nexport type UpdateBuilderProfileInput = z.infer<typeof updateBuilderProfileSchema>;\n\nexport const updateAppBuilderProjectIconSchema = z.strictObject({\n assetId: z.string().min(1).nullable()\n});\n","import { z } from \"zod\";\nimport { AgentStatus, RequestStatus } from \"@vekil/domain\";\nimport { AppSubmissionViewStatus } from \"./app-development\";\nimport { AuthAdminRole } from \"./auth\";\n\nconst countSchema = z.number().int().nonnegative();\nconst nullableUrlSchema = z.string().url().nullable();\n\nfunction optionalTrimmedString(maxLength: number) {\n return z.preprocess(\n (value) => (typeof value === \"string\" && value.trim() === \"\" ? undefined : value),\n z.string().trim().max(maxLength).optional()\n );\n}\n\nexport enum AdminAppDefinitionStatus {\n DRAFT = \"DRAFT\",\n ACTIVE = \"ACTIVE\",\n SUSPENDED = \"SUSPENDED\",\n ARCHIVED = \"ARCHIVED\"\n}\n\nexport enum AdminAppRuntimeType {\n DECLARATIVE = \"DECLARATIVE\",\n REMOTE = \"REMOTE\"\n}\n\nexport enum AdminAppTrustLevel {\n UNVERIFIED = \"UNVERIFIED\",\n VERIFIED = \"VERIFIED\"\n}\n\nexport enum AdminAppVersionStatus {\n INTERNAL = \"INTERNAL\",\n PUBLISHED = \"PUBLISHED\",\n DEPRECATED = \"DEPRECATED\",\n SUSPENDED = \"SUSPENDED\"\n}\n\nexport enum AdminAppVisibility {\n PRIVATE = \"PRIVATE\",\n PUBLIC = \"PUBLIC\"\n}\n\nexport enum AdminBuilderProfileStatus {\n ACTIVE = \"ACTIVE\",\n SUSPENDED = \"SUSPENDED\"\n}\n\nexport enum AppReviewAction {\n START_REVIEW = \"START_REVIEW\",\n REQUEST_CHANGES = \"REQUEST_CHANGES\",\n APPROVE = \"APPROVE\",\n REJECT = \"REJECT\",\n PUBLISH = \"PUBLISH\"\n}\n\nexport enum AppReviewEventType {\n SUBMITTED = \"SUBMITTED\",\n STATUS_CHANGED = \"STATUS_CHANGED\",\n COMMENTED = \"COMMENTED\",\n CHANGES_REQUESTED = \"CHANGES_REQUESTED\",\n APPROVED = \"APPROVED\",\n REJECTED = \"REJECTED\",\n PUBLISHED = \"PUBLISHED\",\n WITHDRAWN = \"WITHDRAWN\"\n}\n\nexport enum AdminAppModerationAction {\n SUSPEND = \"SUSPEND\",\n RESTORE = \"RESTORE\"\n}\n\nexport enum AdminAppModerationEventType {\n SUSPENDED = \"SUSPENDED\",\n RESTORED = \"RESTORED\"\n}\n\nexport enum AdminAppActivitySource {\n REVIEW = \"REVIEW\",\n MODERATION = \"MODERATION\"\n}\n\nexport const adminDirectoryQuerySchema = z.object({\n cursor: optionalTrimmedString(160),\n limit: z.coerce.number().int().min(1).max(50).default(30),\n query: optionalTrimmedString(80)\n});\n\nexport type AdminDirectoryQuery = z.infer<typeof adminDirectoryQuerySchema>;\n\nexport const adminAppDirectoryQuerySchema = adminDirectoryQuerySchema.extend({\n categoryId: optionalTrimmedString(80)\n});\n\nexport type AdminAppDirectoryQuery = z.infer<typeof adminAppDirectoryQuerySchema>;\n\nexport const adminOverviewViewSchema = z.object({\n apps: z.object({\n installationsLast7Days: countSchema,\n installationsReportingIssues: countSchema,\n productionInstallations: countSchema,\n published: countSchema\n }),\n generatedAt: z.string().datetime({ offset: true }),\n requests: z.object({\n active: countSchema,\n createdLast7Days: countSchema,\n failedLast7Days: countSchema,\n total: countSchema\n }),\n reviews: z.object({\n pending: countSchema\n }),\n users: z.object({\n activeVekils: countSchema,\n joinedLast7Days: countSchema,\n total: countSchema\n })\n});\n\nexport type AdminOverviewView = z.infer<typeof adminOverviewViewSchema>;\n\nconst adminVekilSummarySchema = z.object({\n avatarUrl: nullableUrlSchema,\n displayName: z.string(),\n handle: z.string().nullable(),\n id: z.string(),\n publicVisibility: z.boolean(),\n status: z.enum(AgentStatus)\n});\n\nconst adminBuilderSummarySchema = z.object({\n apps: countSchema,\n status: z.enum(AdminBuilderProfileStatus),\n verified: z.boolean()\n});\n\nconst adminUserCountsSchema = z.object({\n activeSessions: countSchema,\n installedApps: countSchema,\n openRequests: countSchema,\n totalRequests: countSchema\n});\n\nexport const adminUserListItemSchema = z.object({\n adminRoles: z.array(z.enum(AuthAdminRole)),\n builder: adminBuilderSummarySchema.nullable(),\n counts: adminUserCountsSchema,\n createdAt: z.string().datetime({ offset: true }),\n email: z.string().email(),\n id: z.string(),\n updatedAt: z.string().datetime({ offset: true }),\n vekil: adminVekilSummarySchema.nullable()\n});\n\nexport type AdminUserListItem = z.infer<typeof adminUserListItemSchema>;\n\nexport const adminUserListViewSchema = z.object({\n items: z.array(adminUserListItemSchema),\n nextCursor: z.string().nullable()\n});\n\nexport type AdminUserListView = z.infer<typeof adminUserListViewSchema>;\n\nexport const adminUserDetailViewSchema = adminUserListItemSchema.extend({\n adminGrants: z.array(\n z.object({\n grantedAt: z.string().datetime({ offset: true }),\n role: z.enum(AuthAdminRole)\n })\n ),\n builder: adminBuilderSummarySchema\n .extend({\n createdAt: z.string().datetime({ offset: true }),\n projects: countSchema,\n submissions: countSchema\n })\n .nullable(),\n requestStatusCounts: z.partialRecord(z.enum(RequestStatus), countSchema),\n signupContext: z\n .object({\n countryCode: z.string().nullable(),\n locale: z.string().nullable(),\n timezone: z.string()\n })\n .nullable(),\n vekil: adminVekilSummarySchema\n .extend({\n bio: z.string().nullable(),\n timezone: z.string(),\n updatedAt: z.string().datetime({ offset: true })\n })\n .nullable()\n});\n\nexport type AdminUserDetailView = z.infer<typeof adminUserDetailViewSchema>;\n\nconst adminAppDeveloperSchema = z.object({\n displayName: z.string(),\n handle: z.string().nullable(),\n userId: z.string(),\n verified: z.boolean()\n});\n\nconst adminAppVersionSummarySchema = z.object({\n createdAt: z.string().datetime({ offset: true }),\n id: z.string(),\n publishedAt: z.string().datetime({ offset: true }).nullable(),\n runtimeType: z.enum(AdminAppRuntimeType),\n status: z.enum(AdminAppVersionStatus),\n version: z.string()\n});\n\nconst adminAppCountsSchema = z.object({\n installationsReportingIssues: countSchema,\n productionInstallations: countSchema,\n submissions: countSchema,\n versions: countSchema\n});\n\nexport const adminAppListItemSchema = z.object({\n categoryId: z.string(),\n counts: adminAppCountsSchema,\n createdAt: z.string().datetime({ offset: true }),\n developer: adminAppDeveloperSchema,\n iconType: z.string(),\n iconValue: z.string(),\n id: z.string(),\n latestVersion: adminAppVersionSummarySchema.nullable(),\n name: z.string(),\n officialBadge: z.boolean(),\n shortDescription: z.string(),\n slug: z.string(),\n status: z.enum(AdminAppDefinitionStatus),\n trustLevel: z.enum(AdminAppTrustLevel),\n updatedAt: z.string().datetime({ offset: true }),\n visibility: z.enum(AdminAppVisibility)\n});\n\nexport type AdminAppListItem = z.infer<typeof adminAppListItemSchema>;\n\nexport const adminAppListViewSchema = z.object({\n items: z.array(adminAppListItemSchema),\n nextCursor: z.string().nullable()\n});\n\nexport type AdminAppListView = z.infer<typeof adminAppListViewSchema>;\n\nexport const appReviewSubmissionViewSchema = z.object({\n appId: z.string(),\n builder: z.object({\n displayName: z.string(),\n handle: z.string(),\n id: z.string(),\n verified: z.boolean()\n }),\n createdAt: z.string().datetime({ offset: true }),\n definition: z.record(z.string(), z.unknown()),\n events: z.array(\n z.object({\n createdAt: z.string().datetime({ offset: true }),\n eventType: z.enum(AppReviewEventType),\n fromStatus: z.enum(AppSubmissionViewStatus).nullable(),\n id: z.string(),\n notes: z.string().nullable(),\n role: z.enum(AuthAdminRole).nullable(),\n toStatus: z.enum(AppSubmissionViewStatus).nullable()\n })\n ),\n id: z.string(),\n reviewNotes: z.string().nullable(),\n status: z.enum(AppSubmissionViewStatus),\n submittedAt: z.string().datetime({ offset: true }).nullable(),\n submittedVersionId: z.string().nullable(),\n updatedAt: z.string().datetime({ offset: true })\n});\n\nexport type AppReviewSubmissionView = z.infer<typeof appReviewSubmissionViewSchema>;\n\nexport const appReviewActionInputSchema = z.strictObject({\n action: z.enum(AppReviewAction),\n notes: z.string().trim().max(4_000).optional()\n});\n\nexport type AppReviewActionInput = z.infer<typeof appReviewActionInputSchema>;\n\nexport const adminAppModerationInputSchema = z.discriminatedUnion(\"action\", [\n z.strictObject({\n action: z.literal(AdminAppModerationAction.SUSPEND),\n reason: z.string().trim().min(10).max(1_000)\n }),\n z.strictObject({\n action: z.literal(AdminAppModerationAction.RESTORE),\n reason: z.string().trim().max(1_000).optional()\n })\n]);\n\nexport type AdminAppModerationInput = z.infer<typeof adminAppModerationInputSchema>;\n\nconst adminAppActivityActorSchema = z.object({\n displayName: z.string(),\n role: z.enum(AuthAdminRole)\n});\n\nexport const adminAppActivityItemSchema = z.discriminatedUnion(\"source\", [\n z.object({\n actor: adminAppActivityActorSchema.nullable(),\n createdAt: z.string().datetime({ offset: true }),\n eventType: z.enum(AppReviewEventType),\n fromStatus: z.enum(AppSubmissionViewStatus).nullable(),\n id: z.string(),\n notes: z.string().nullable(),\n source: z.literal(AdminAppActivitySource.REVIEW),\n submissionId: z.string(),\n toStatus: z.enum(AppSubmissionViewStatus).nullable()\n }),\n z.object({\n actor: adminAppActivityActorSchema,\n createdAt: z.string().datetime({ offset: true }),\n eventType: z.enum(AdminAppModerationEventType),\n fromStatus: z.enum(AdminAppDefinitionStatus),\n id: z.string(),\n notes: z.string().nullable(),\n source: z.literal(AdminAppActivitySource.MODERATION),\n submissionId: z.null(),\n toStatus: z.enum(AdminAppDefinitionStatus)\n })\n]);\n\nexport type AdminAppActivityItem = z.infer<typeof adminAppActivityItemSchema>;\n\nexport const adminAppDetailViewSchema = adminAppListItemSchema.extend({\n activity: z.array(adminAppActivityItemSchema),\n longDescription: z.string(),\n privacyPolicyUrl: nullableUrlSchema,\n submissions: z.array(\n z.object({\n id: z.string(),\n status: z.enum(AppSubmissionViewStatus),\n submittedAt: z.string().datetime({ offset: true }).nullable(),\n updatedAt: z.string().datetime({ offset: true })\n })\n ),\n termsUrl: nullableUrlSchema,\n versions: z.array(adminAppVersionSummarySchema),\n websiteUrl: nullableUrlSchema\n});\n\nexport type AdminAppDetailView = z.infer<typeof adminAppDetailViewSchema>;\n","import { z } from \"zod\";\n\nexport enum HealthDependencyStatus {\n AVAILABLE = \"AVAILABLE\",\n UNAVAILABLE = \"UNAVAILABLE\"\n}\n\nexport enum ServiceReadinessStatus {\n NOT_READY = \"NOT_READY\",\n READY = \"READY\"\n}\n\nexport const livenessViewSchema = z.object({\n ok: z.literal(true)\n});\n\nexport type LivenessView = z.infer<typeof livenessViewSchema>;\n\nexport const readinessViewSchema = z.object({\n dependencies: z.object({\n database: z.enum(HealthDependencyStatus),\n managedAi: z.enum(HealthDependencyStatus),\n redis: z.enum(HealthDependencyStatus)\n }),\n status: z.enum(ServiceReadinessStatus)\n});\n\nexport type ReadinessView = z.infer<typeof readinessViewSchema>;\n","import { z } from \"zod\";\n\nexport enum UploadAssetKind {\n VEKIL_AVATAR = \"VEKIL_AVATAR\",\n APP_ICON = \"APP_ICON\"\n}\n\nexport enum UploadAssetViewStatus {\n PENDING = \"PENDING\",\n READY = \"READY\",\n FAILED = \"FAILED\",\n DELETED = \"DELETED\"\n}\n\nexport const createUploadAssetSchema = z.strictObject({\n fileName: z.string().trim().min(1).max(180),\n kind: z.enum(UploadAssetKind),\n mimeType: z.enum([\"image/jpeg\", \"image/png\", \"image/webp\"]),\n sizeBytes: z\n .number()\n .int()\n .min(1)\n .max(5 * 1024 * 1024)\n});\n\nexport type CreateUploadAssetInput = z.infer<typeof createUploadAssetSchema>;\n\nexport const uploadAssetViewSchema = z.object({\n id: z.string(),\n kind: z.enum(UploadAssetKind),\n mimeType: z.string(),\n publicUrl: z.string().url().nullable(),\n sizeBytes: z.number().int(),\n status: z.enum(UploadAssetViewStatus)\n});\n\nexport type UploadAssetView = z.infer<typeof uploadAssetViewSchema>;\n\nexport const preparedUploadAssetSchema = z.object({\n asset: uploadAssetViewSchema,\n upload: z.object({\n expiresAt: z.string().datetime({ offset: true }),\n headers: z.record(z.string(), z.string()),\n method: z.literal(\"PUT\"),\n url: z.string().url()\n })\n});\n\nexport type PreparedUploadAsset = z.infer<typeof preparedUploadAssetSchema>;\n","import { appContextScopes, forbiddenAppContextScopes } from \"@vekil/app-context\";\nimport { AppStatus } from \"@vekil/domain\";\nimport { z } from \"zod\";\n\nconst appStatusValues = [\n AppStatus.AVAILABLE,\n AppStatus.ACTION_REQUIRED,\n AppStatus.NEEDS_CONFIGURATION,\n AppStatus.READY,\n AppStatus.PAUSED,\n AppStatus.DEGRADED,\n AppStatus.UNHEALTHY,\n AppStatus.NEEDS_RECONNECT,\n AppStatus.SUSPENDED,\n AppStatus.DEPRECATED,\n AppStatus.UNINSTALLED\n] as const;\n\nconst appManifestSnapshotSchema = z.unknown();\n\nconst appInstallationLifecycleStatusValues = [\n \"INSTALLED\",\n \"SUSPENDED\",\n \"DEPRECATED\",\n \"UNINSTALLED\"\n] as const;\n\nconst appConnectionStatusValues = [\n \"NOT_REQUIRED\",\n \"ACTION_REQUIRED\",\n \"CONNECTED\",\n \"NEEDS_RECONNECT\",\n \"REVOKED\"\n] as const;\n\nconst appConfigurationStatusValues = [\"NOT_REQUIRED\", \"NEEDS_CONFIGURATION\", \"CONFIGURED\"] as const;\n\nconst appEnabledStatusValues = [\"ENABLED\", \"PAUSED\", \"DISABLED\"] as const;\n\nconst appRuntimeReadinessStatusValues = [\"READY\", \"NOT_READY\", \"DEGRADED\", \"UNHEALTHY\"] as const;\n\nconst appHealthStatusValues = [\n \"UNKNOWN\",\n \"HEALTHY\",\n \"DEGRADED\",\n \"UNHEALTHY\",\n \"NEEDS_RECONNECT\"\n] as const;\n\nexport enum AppAvailabilitySource {\n PUBLIC = \"PUBLIC\",\n SHARED = \"SHARED\",\n DEVELOPER = \"DEVELOPER\",\n INSTALLED_ONLY = \"INSTALLED_ONLY\"\n}\n\nexport const appInstallationStateSchema = z.object({\n connectionStatus: z.enum(appConnectionStatusValues),\n configurationStatus: z.enum(appConfigurationStatusValues),\n enabledStatus: z.enum(appEnabledStatusValues),\n healthStatus: z.enum(appHealthStatusValues),\n lifecycleStatus: z.enum(appInstallationLifecycleStatusValues),\n runtimeReadinessStatus: z.enum(appRuntimeReadinessStatusValues)\n});\n\nexport type AppInstallationState = z.infer<typeof appInstallationStateSchema>;\n\nexport const appVersionUpgradeInputSchema = z.object({\n acknowledgeBreakingChanges: z.boolean().default(false)\n});\n\nexport type AppVersionUpgradeInput = z.infer<typeof appVersionUpgradeInputSchema>;\n\nexport const appVersionUpgradeSchema = z.object({\n canUpgrade: z.boolean(),\n compatible: z.boolean(),\n currentVersion: z.string(),\n currentVersionId: z.string(),\n latestVersion: z.string(),\n latestVersionId: z.string(),\n newContextScopes: z.array(z.enum(appContextScopes)),\n reasons: z.array(z.string()),\n removedContextScopes: z.array(z.enum(appContextScopes)),\n requiresAcknowledgement: z.boolean(),\n updateAvailable: z.boolean()\n});\n\nexport type AppVersionUpgrade = z.infer<typeof appVersionUpgradeSchema>;\n\nexport const appContextPermissionSchema = z.object({\n declaration: z.enum([\"DEFAULT\", \"OPTIONAL\"]),\n granted: z.boolean(),\n publicGuestAllowed: z.boolean(),\n scope: z.enum(appContextScopes),\n sensitivity: z.enum([\"STANDARD\", \"SENSITIVE\"])\n});\n\nexport type AppContextPermission = z.infer<typeof appContextPermissionSchema>;\n\nexport const appContextAccessSchema = z.object({\n policyRevision: z.number().int().positive().nullable(),\n prohibitedScopes: z.array(z.enum(forbiddenAppContextScopes)),\n scopes: z.array(appContextPermissionSchema)\n});\n\nexport type AppContextAccess = z.infer<typeof appContextAccessSchema>;\n\nexport const appContextPermissionMutationSchema = z.object({\n granted: z.boolean()\n});\n\nexport type AppContextPermissionMutation = z.infer<typeof appContextPermissionMutationSchema>;\n\nexport const appInstallationViewSchema = z.object({\n actions: z.array(z.string()),\n availabilitySource: z.enum(AppAvailabilitySource),\n appId: z.string(),\n appSlug: z.string(),\n capabilities: z.array(z.string()),\n contextAccess: appContextAccessSchema,\n currentVersion: z.string().nullable(),\n accountLabel: z.string().nullable(),\n grantedPermissions: z.array(z.string()),\n id: z.string(),\n installation: appInstallationStateSchema.nullable(),\n isRuntimeReady: z.boolean(),\n lastErrorAt: z.string().datetime({ offset: true }).nullable(),\n lastSuccessfulSyncAt: z.string().datetime({ offset: true }).nullable(),\n latestVersion: z.string(),\n manifest: appManifestSnapshotSchema,\n name: z.string(),\n needsAttention: z.boolean(),\n provider: z.string(),\n policies: z.record(z.string(), z.unknown()),\n requiredPermissions: z.array(z.string()),\n settings: z.record(z.string(), z.unknown()),\n status: z.enum(appStatusValues),\n versionUpgrade: appVersionUpgradeSchema.nullable()\n});\n\nexport type AppInstallationView = z.infer<typeof appInstallationViewSchema>;\n\nexport const appInstallationResponseSchema = z.object({\n app: appInstallationViewSchema\n});\n\nexport type AppInstallationResponse = z.infer<typeof appInstallationResponseSchema>;\n\nexport enum AppConnectionStartStatus {\n ACTION_REQUIRED = \"ACTION_REQUIRED\",\n CONNECTED = \"CONNECTED\",\n FAILED = \"FAILED\"\n}\n\nexport const appConnectionStartResponseSchema = z.object({\n redirectUrl: z.string().url(),\n status: z.enum(AppConnectionStartStatus)\n});\n\nexport type AppConnectionStartResponse = z.infer<typeof appConnectionStartResponseSchema>;\n\nexport const appSettingsOptionSchema = z.object({\n label: z.string(),\n value: z.union([z.string(), z.number(), z.boolean()])\n});\n\nexport type AppSettingsOption = z.infer<typeof appSettingsOptionSchema>;\n\nexport const appSettingsOptionsResponseSchema = z.object({\n options: z.array(appSettingsOptionSchema)\n});\n\nexport type AppSettingsOptionsResponse = z.infer<typeof appSettingsOptionsResponseSchema>;\n","import { z } from \"zod\";\n\nexport enum BubbleType {\n APP_MESSAGE = \"APP_MESSAGE\",\n SYSTEM_MESSAGE = \"SYSTEM_MESSAGE\",\n REQUEST_SUMMARY = \"REQUEST_SUMMARY\",\n APPROVAL_PROMPT = \"APPROVAL_PROMPT\",\n ERROR_MESSAGE = \"ERROR_MESSAGE\"\n}\n\nexport enum BubbleVariant {\n DEFAULT = \"DEFAULT\",\n COMPACT = \"COMPACT\",\n SUCCESS = \"SUCCESS\",\n WARNING = \"WARNING\",\n DANGER = \"DANGER\",\n INFO = \"INFO\",\n MUTED = \"MUTED\"\n}\n\nexport enum BubbleMediaType {\n FILE = \"FILE\",\n IMAGE = \"IMAGE\",\n VIDEO = \"VIDEO\"\n}\n\nexport enum BubbleContentVisibility {\n OWNER_ONLY = \"OWNER_ONLY\",\n PUBLIC_REQUESTER = \"PUBLIC_REQUESTER\"\n}\n\nexport enum BubbleSensitivity {\n PUBLIC = \"PUBLIC\",\n INTERNAL = \"INTERNAL\",\n CONFIDENTIAL = \"CONFIDENTIAL\",\n RESTRICTED = \"RESTRICTED\"\n}\n\nexport enum BubbleSourceType {\n CORE = \"CORE\",\n APP = \"APP\"\n}\n\nexport enum BubbleAssetDeliveryAudience {\n OWNER = \"OWNER\",\n PUBLIC_REQUESTER = \"PUBLIC_REQUESTER\"\n}\n\nexport enum BubbleBadgeTone {\n NEUTRAL = \"NEUTRAL\",\n INFO = \"INFO\",\n SUCCESS = \"SUCCESS\",\n WARNING = \"WARNING\",\n DANGER = \"DANGER\"\n}\n\nexport enum BubbleActionType {\n EXTERNAL_URL = \"EXTERNAL_URL\",\n OPEN_VIEW = \"OPEN_VIEW\",\n SELECT_OPTION = \"SELECT_OPTION\",\n APP_ACTION = \"APP_ACTION\",\n APPROVE_REQUEST = \"APPROVE_REQUEST\",\n DECLINE_REQUEST = \"DECLINE_REQUEST\",\n COPY = \"COPY\"\n}\n\nexport enum BubbleActionRiskLevel {\n LOW = \"LOW\",\n MEDIUM = \"MEDIUM\",\n HIGH = \"HIGH\",\n CRITICAL = \"CRITICAL\"\n}\n\nexport enum BubbleActionStatus {\n AVAILABLE = \"AVAILABLE\",\n INVOKED = \"INVOKED\",\n DISABLED = \"DISABLED\",\n EXPIRED = \"EXPIRED\"\n}\n\nexport enum BubbleActionInvocationStatus {\n PENDING = \"PENDING\",\n SUCCEEDED = \"SUCCEEDED\",\n FAILED = \"FAILED\",\n DENIED = \"DENIED\"\n}\n\nexport enum BubbleValidationStatus {\n VALID = \"VALID\",\n INVALID_OUTPUT = \"INVALID_OUTPUT\",\n REJECTED = \"REJECTED\"\n}\n\nexport const bubbleSchemaVersion = 2;\n\nconst actionKeySchema = z\n .string()\n .min(1)\n .max(80)\n .regex(/^[a-z0-9][a-z0-9._:-]*$/);\n\nconst bubbleArtifactResultKeySchema = z\n .string()\n .min(1)\n .max(80)\n .regex(/^[a-z0-9][a-z0-9._:-]*$/);\n\nexport const safeBubbleExternalUrlSchema = z\n .string()\n .min(1)\n .max(2048)\n .refine(isSafeHttpsUrl, \"URL must be an HTTPS URL without embedded credentials\");\n\nexport const safeBubbleInternalHrefSchema = z\n .string()\n .min(1)\n .max(400)\n .refine(isSafeInternalHref, \"href must be a safe absolute internal path\");\n\nexport const safeBubbleAssetDeliveryUrlSchema = safeBubbleInternalHrefSchema.refine(\n (value) => value.startsWith(\"/api/bubble-assets/\"),\n \"asset delivery URL must be issued by the Bubble asset broker\"\n);\n\nfunction isSafeHttpsUrl(value: string): boolean {\n try {\n const url = new URL(value);\n\n return url.protocol === \"https:\" && !url.username && !url.password;\n } catch {\n return false;\n }\n}\n\nfunction isSafeInternalHref(value: string): boolean {\n if (\n !value.startsWith(\"/\") ||\n value.startsWith(\"//\") ||\n value.includes(\"\\\\\") ||\n /\\s/.test(value) ||\n Array.from(value).some((character) => {\n const codePoint = character.codePointAt(0) ?? 0;\n\n return codePoint <= 31 || codePoint === 127;\n })\n ) {\n return false;\n }\n\n try {\n const base = new URL(\"https://vekil.invalid\");\n const url = new URL(value, base);\n\n return url.origin === base.origin && `${url.pathname}${url.search}${url.hash}` === value;\n } catch {\n return false;\n }\n}\n\nconst bubbleAudienceSchema = z.enum([\"OWNER\", \"PUBLIC_REQUESTER\"]);\nconst bubbleOriginSchema = z.enum([\n \"agent-to-agent\",\n \"agent-to-external-fallback\",\n \"public-authenticated\",\n \"public-guest\",\n \"public-verified-external\",\n \"system-generated\"\n]);\n\nconst allowedAudiencesSchema = z\n .array(bubbleAudienceSchema)\n .min(1)\n .max(8)\n .refine((values) => new Set(values).size === values.length, \"audiences must be unique\");\n\nconst allowedOriginsSchema = z\n .array(bubbleOriginSchema)\n .min(1)\n .max(8)\n .refine((values) => new Set(values).size === values.length, \"origins must be unique\");\n\nconst contentAllowedOriginsSchema = z\n .array(bubbleOriginSchema)\n .max(8)\n .refine((values) => new Set(values).size === values.length, \"origins must be unique\")\n .default([]);\n\nexport const bubbleImageAllowedMimeTypes = [\n \"image/gif\",\n \"image/jpeg\",\n \"image/png\",\n \"image/webp\"\n] as const;\nexport const bubbleImageMaxSizeBytes = 10 * 1024 * 1024;\n\nconst bubbleImageMimeTypeSchema = z.enum(bubbleImageAllowedMimeTypes);\n\nconst bubbleMediaCommonShape = {\n alt: z.string().min(1).max(240),\n duration_seconds: z.number().positive().max(86_400).optional(),\n file_name: z.string().min(1).max(180).optional(),\n height: z.number().int().positive().max(4096).optional(),\n mime_type: z.string().min(1).max(120).optional(),\n size_bytes: z.number().int().nonnegative().max(5_368_709_120).optional(),\n title: z.string().min(1).max(180).optional(),\n type: z.enum([BubbleMediaType.FILE, BubbleMediaType.IMAGE, BubbleMediaType.VIDEO]),\n width: z.number().int().positive().max(4096).optional()\n};\n\nconst bubbleAssetReferenceSchema = z\n .string()\n .min(1)\n .max(180)\n .regex(/^[A-Za-z0-9][A-Za-z0-9._:-]*$/);\n\nexport const bubbleMediaSchema = z\n .object({\n ...bubbleMediaCommonShape,\n asset_ref: bubbleAssetReferenceSchema,\n thumbnail_asset_ref: bubbleAssetReferenceSchema.optional(),\n thumbnail_mime_type: z.string().min(1).max(120).optional(),\n thumbnail_size_bytes: z.number().int().positive().max(bubbleImageMaxSizeBytes).optional()\n })\n .strict()\n .superRefine((media, context) => {\n if (media.type === BubbleMediaType.IMAGE) {\n addRequiredImageMetadataIssues(\n context,\n {\n mime_type: media.mime_type,\n size_bytes: media.size_bytes\n },\n \"\"\n );\n }\n\n const hasThumbnailMetadata =\n media.thumbnail_mime_type !== undefined || media.thumbnail_size_bytes !== undefined;\n\n if (media.thumbnail_asset_ref) {\n addRequiredImageMetadataIssues(\n context,\n {\n mime_type: media.thumbnail_mime_type,\n size_bytes: media.thumbnail_size_bytes\n },\n \"thumbnail_\"\n );\n } else if (hasThumbnailMetadata) {\n context.addIssue({\n code: \"custom\",\n message: \"thumbnail_asset_ref is required for thumbnail metadata\",\n path: [\"thumbnail_asset_ref\"]\n });\n }\n });\n\nexport type BubbleMedia = z.infer<typeof bubbleMediaSchema>;\n\nfunction addRequiredImageMetadataIssues(\n context: z.RefinementCtx,\n metadata: {\n mime_type?: string;\n size_bytes?: number;\n },\n fieldPrefix: \"\" | \"thumbnail_\"\n): void {\n if (!metadata.mime_type) {\n context.addIssue({\n code: \"custom\",\n message: \"image MIME type is required\",\n path: [`${fieldPrefix}mime_type`]\n });\n } else if (\n !bubbleImageMimeTypeSchema.safeParse(metadata.mime_type.trim().toLowerCase()).success\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"image MIME type is not allowed\",\n path: [`${fieldPrefix}mime_type`]\n });\n }\n\n if (metadata.size_bytes === undefined) {\n context.addIssue({\n code: \"custom\",\n message: \"image size is required\",\n path: [`${fieldPrefix}size_bytes`]\n });\n } else if (metadata.size_bytes <= 0 || metadata.size_bytes > bubbleImageMaxSizeBytes) {\n context.addIssue({\n code: \"custom\",\n message: \"image size is not allowed\",\n path: [`${fieldPrefix}size_bytes`]\n });\n }\n}\n\nexport const bubbleMediaViewSchema = z\n .object({\n ...bubbleMediaCommonShape,\n asset_id: bubbleAssetReferenceSchema,\n thumbnail_url: safeBubbleAssetDeliveryUrlSchema.optional(),\n url: safeBubbleAssetDeliveryUrlSchema\n })\n .strict()\n .superRefine((media, context) => {\n if (media.type === BubbleMediaType.IMAGE) {\n addRequiredImageMetadataIssues(\n context,\n {\n mime_type: media.mime_type,\n size_bytes: media.size_bytes\n },\n \"\"\n );\n }\n });\n\nexport type BubbleMediaView = z.infer<typeof bubbleMediaViewSchema>;\n\nexport const bubbleAssetDeliveryGrantSchema = z\n .object({\n assetId: bubbleAssetReferenceSchema,\n audience: z.enum([\n BubbleAssetDeliveryAudience.OWNER,\n BubbleAssetDeliveryAudience.PUBLIC_REQUESTER\n ]),\n expiresAt: z.iso.datetime(),\n url: safeBubbleAssetDeliveryUrlSchema\n })\n .strict();\n\nexport type BubbleAssetDeliveryGrant = z.infer<typeof bubbleAssetDeliveryGrantSchema>;\n\nexport const bubbleFactSchema = z.object({\n label: z.string().min(1).max(80),\n value: z.string().min(1).max(240)\n});\n\nexport type BubbleFact = z.infer<typeof bubbleFactSchema>;\n\nexport const bubbleBadgeSchema = z.object({\n label: z.string().min(1).max(60),\n tone: z\n .enum([\n BubbleBadgeTone.NEUTRAL,\n BubbleBadgeTone.INFO,\n BubbleBadgeTone.SUCCESS,\n BubbleBadgeTone.WARNING,\n BubbleBadgeTone.DANGER\n ])\n .default(BubbleBadgeTone.NEUTRAL)\n});\n\nexport type BubbleBadge = z.infer<typeof bubbleBadgeSchema>;\n\nconst bubbleActionCommonShape = {\n action_key: actionKeySchema,\n allowed_audiences: allowedAudiencesSchema,\n allowed_origins: allowedOriginsSchema,\n label: z.string().min(1).max(80),\n max_invocations: z.number().int().min(1).max(100).optional(),\n requires_approval: z.boolean().default(false),\n risk_level: z\n .enum([\n BubbleActionRiskLevel.LOW,\n BubbleActionRiskLevel.MEDIUM,\n BubbleActionRiskLevel.HIGH,\n BubbleActionRiskLevel.CRITICAL\n ])\n .default(BubbleActionRiskLevel.LOW)\n};\n\nconst externalUrlActionSchema = z\n .object({\n ...bubbleActionCommonShape,\n action_type: z.literal(BubbleActionType.EXTERNAL_URL),\n app_action_id: z.never().optional(),\n href: safeBubbleExternalUrlSchema,\n payload: z.never().optional()\n })\n .strict();\n\nconst openViewActionSchema = z\n .object({\n ...bubbleActionCommonShape,\n action_type: z.literal(BubbleActionType.OPEN_VIEW),\n app_action_id: z.never().optional(),\n href: safeBubbleInternalHrefSchema,\n payload: z.never().optional()\n })\n .strict();\n\nconst selectOptionActionSchema = z\n .object({\n ...bubbleActionCommonShape,\n action_type: z.literal(BubbleActionType.SELECT_OPTION),\n artifact_result_key: bubbleArtifactResultKeySchema,\n app_action_id: z.never().optional(),\n href: z.never().optional(),\n max_invocations: z.literal(1).default(1),\n option_group_key: actionKeySchema,\n payload: z.never().optional(),\n requires_approval: z.literal(false).default(false),\n risk_level: z.literal(BubbleActionRiskLevel.LOW).default(BubbleActionRiskLevel.LOW)\n })\n .strict();\n\nconst appActionSchema = z\n .object({\n ...bubbleActionCommonShape,\n action_type: z.literal(BubbleActionType.APP_ACTION),\n app_action_id: z.string().min(1).max(120),\n href: z.never().optional(),\n payload: z.record(z.string(), z.unknown()).optional()\n })\n .strict();\n\nconst approvalActionSchema = (\n actionType: BubbleActionType.APPROVE_REQUEST | BubbleActionType.DECLINE_REQUEST\n) =>\n z\n .object({\n ...bubbleActionCommonShape,\n action_type: z.literal(actionType),\n approval_id: z.string().min(1).max(120),\n approval_scope_hash: z.string().regex(/^[0-9a-f]{64}$/),\n app_action_id: z.never().optional(),\n href: z.never().optional(),\n payload: z.never().optional()\n })\n .strict();\n\nconst copyActionSchema = z\n .object({\n ...bubbleActionCommonShape,\n action_type: z.literal(BubbleActionType.COPY),\n app_action_id: z.never().optional(),\n href: z.never().optional(),\n payload: z\n .object({\n text: z.string().min(1).max(2000)\n })\n .strict()\n })\n .strict();\n\nexport const bubbleActionDescriptorSchema = z.discriminatedUnion(\"action_type\", [\n externalUrlActionSchema,\n openViewActionSchema,\n selectOptionActionSchema,\n appActionSchema,\n approvalActionSchema(BubbleActionType.APPROVE_REQUEST),\n approvalActionSchema(BubbleActionType.DECLINE_REQUEST),\n copyActionSchema\n]);\n\nexport type BubbleActionDescriptor = z.infer<typeof bubbleActionDescriptorSchema>;\n\nexport const bubbleActionViewSchema = z\n .object({\n ...bubbleActionCommonShape,\n action_type: z.enum([\n BubbleActionType.EXTERNAL_URL,\n BubbleActionType.OPEN_VIEW,\n BubbleActionType.SELECT_OPTION,\n BubbleActionType.APP_ACTION,\n BubbleActionType.APPROVE_REQUEST,\n BubbleActionType.DECLINE_REQUEST,\n BubbleActionType.COPY\n ]),\n app_action_id: z.string().min(1).max(120).optional(),\n approval_id: z.string().min(1).max(120).optional(),\n approval_scope_hash: z\n .string()\n .regex(/^[0-9a-f]{64}$/)\n .optional(),\n href: z.string().min(1).max(2048).optional(),\n id: z.string().min(1),\n status: z.enum([\n BubbleActionStatus.AVAILABLE,\n BubbleActionStatus.INVOKED,\n BubbleActionStatus.DISABLED,\n BubbleActionStatus.EXPIRED\n ])\n })\n .strict()\n .superRefine((action, context) => {\n if (action.action_type === BubbleActionType.EXTERNAL_URL) {\n addSchemaIssue(context, safeBubbleExternalUrlSchema, action.href, \"href\");\n } else if (action.action_type === BubbleActionType.OPEN_VIEW) {\n addSchemaIssue(context, safeBubbleInternalHrefSchema, action.href, \"href\");\n } else if (action.href !== undefined) {\n context.addIssue({\n code: \"custom\",\n message: \"href is not supported for this action type\",\n path: [\"href\"]\n });\n }\n\n if (action.action_type === BubbleActionType.APP_ACTION && action.app_action_id === undefined) {\n context.addIssue({\n code: \"custom\",\n message: \"app_action_id is required for APP_ACTION\",\n path: [\"app_action_id\"]\n });\n }\n\n if (action.action_type !== BubbleActionType.APP_ACTION && action.app_action_id !== undefined) {\n context.addIssue({\n code: \"custom\",\n message: \"app_action_id is only supported for APP_ACTION\",\n path: [\"app_action_id\"]\n });\n }\n\n const isApprovalAction =\n action.action_type === BubbleActionType.APPROVE_REQUEST ||\n action.action_type === BubbleActionType.DECLINE_REQUEST;\n\n if (\n isApprovalAction &&\n (action.approval_id === undefined || action.approval_scope_hash === undefined)\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"approval_id and approval_scope_hash are required for approval actions\",\n path: [\"approval_id\"]\n });\n }\n\n if (\n !isApprovalAction &&\n (action.approval_id !== undefined || action.approval_scope_hash !== undefined)\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"approval binding is only supported for approval actions\",\n path: [\"approval_id\"]\n });\n }\n });\n\nfunction addSchemaIssue(\n context: z.RefinementCtx,\n schema: z.ZodType<string>,\n value: string | undefined,\n path: string\n): void {\n const result = schema.safeParse(value);\n\n if (!result.success) {\n context.addIssue({\n code: \"custom\",\n message: result.error.issues[0]?.message ?? `${path} is invalid`,\n path: [path]\n });\n }\n}\n\nexport type BubbleActionView = z.infer<typeof bubbleActionViewSchema>;\n\nexport const bubbleDescriptorSchema = z.object({\n actions: z.array(bubbleActionDescriptorSchema).max(8).default([]),\n allowed_origins: contentAllowedOriginsSchema,\n badges: z.array(bubbleBadgeSchema).max(4).default([]),\n body: z.string().min(1).max(2000).optional(),\n bubble_type: z.enum([\n BubbleType.APP_MESSAGE,\n BubbleType.SYSTEM_MESSAGE,\n BubbleType.REQUEST_SUMMARY,\n BubbleType.APPROVAL_PROMPT,\n BubbleType.ERROR_MESSAGE\n ]),\n facts: z.array(bubbleFactSchema).max(12).default([]),\n footer: z.string().min(1).max(200).optional(),\n media: z.array(bubbleMediaSchema).max(12).default([]),\n metadata: z.record(z.string(), z.unknown()).optional(),\n schema_version: z.literal(bubbleSchemaVersion),\n sensitivity: z\n .enum([\n BubbleSensitivity.PUBLIC,\n BubbleSensitivity.INTERNAL,\n BubbleSensitivity.CONFIDENTIAL,\n BubbleSensitivity.RESTRICTED\n ])\n .default(BubbleSensitivity.INTERNAL),\n title: z.string().min(1).max(120).optional(),\n variant: z\n .enum([\n BubbleVariant.DEFAULT,\n BubbleVariant.COMPACT,\n BubbleVariant.SUCCESS,\n BubbleVariant.WARNING,\n BubbleVariant.DANGER,\n BubbleVariant.INFO,\n BubbleVariant.MUTED\n ])\n .default(BubbleVariant.DEFAULT),\n visibility: z\n .enum([BubbleContentVisibility.OWNER_ONLY, BubbleContentVisibility.PUBLIC_REQUESTER])\n .default(BubbleContentVisibility.OWNER_ONLY)\n});\n\nexport type BubbleDescriptor = z.infer<typeof bubbleDescriptorSchema>;\n\nexport const bubbleProvenanceSchema = z.discriminatedUnion(\"source_type\", [\n z\n .object({\n source_type: z.literal(BubbleSourceType.CORE)\n })\n .strict(),\n z\n .object({\n app_id: z.string().min(1).max(120).optional(),\n app_installation_id: z.string().min(1).optional(),\n app_name: z.string().min(1).max(100).optional(),\n app_version_id: z.string().min(1).optional(),\n source_type: z.literal(BubbleSourceType.APP)\n })\n .strict()\n]);\n\nexport type BubbleProvenance = z.infer<typeof bubbleProvenanceSchema>;\n\nexport const bubbleViewSchema = bubbleDescriptorSchema\n .omit({\n actions: true,\n media: true,\n metadata: true\n })\n .extend({\n actions: z.array(bubbleActionViewSchema).max(8).default([]),\n id: z.string().min(1),\n media: z.array(bubbleMediaViewSchema).max(12).default([]),\n provenance: bubbleProvenanceSchema,\n redacted: z.boolean().default(false)\n })\n .superRefine((bubble, context) => {\n if (bubble.redacted) {\n const hasContent =\n bubble.actions.length > 0 ||\n bubble.allowed_origins.length > 0 ||\n bubble.badges.length > 0 ||\n bubble.body !== undefined ||\n bubble.facts.length > 0 ||\n bubble.footer !== undefined ||\n bubble.media.length > 0 ||\n bubble.title !== undefined;\n\n if (bubble.provenance.source_type !== BubbleSourceType.APP) {\n context.addIssue({\n code: \"custom\",\n message: \"only an App Bubble can use the redacted shell\",\n path: [\"provenance\", \"source_type\"]\n });\n }\n\n if (hasContent) {\n context.addIssue({\n code: \"custom\",\n message: \"a redacted Bubble cannot contain content, media, origins, or actions\",\n path: [\"redacted\"]\n });\n }\n\n if (bubble.visibility !== BubbleContentVisibility.OWNER_ONLY) {\n context.addIssue({\n code: \"custom\",\n message: \"a redacted Bubble must retain OWNER_ONLY visibility\",\n path: [\"visibility\"]\n });\n }\n\n return;\n }\n\n if (bubble.provenance.source_type !== BubbleSourceType.APP) {\n return;\n }\n\n const requiredFields = [\"app_id\", \"app_installation_id\", \"app_name\", \"app_version_id\"] as const;\n\n for (const field of requiredFields) {\n if (!bubble.provenance[field]) {\n context.addIssue({\n code: \"custom\",\n message: `${field} is required for App provenance`,\n path: [\"provenance\", field]\n });\n }\n }\n });\n\nexport type BubbleView = z.infer<typeof bubbleViewSchema>;\n\nexport const messageBubbleViewSchema = z.object({\n bubbles: z.array(bubbleViewSchema).default([])\n});\n\nexport type MessageBubbleView = z.infer<typeof messageBubbleViewSchema>;\n\nexport const invokeMessageActionSchema = z.object({\n idempotencyKey: z.string().min(12).max(120),\n input: z.record(z.string(), z.unknown()).optional()\n});\n\nexport type InvokeMessageActionInput = z.infer<typeof invokeMessageActionSchema>;\n\nexport const messageActionInvocationResponseSchema = z\n .object({\n actionId: z.string().min(1),\n actionType: z.enum([\n BubbleActionType.EXTERNAL_URL,\n BubbleActionType.OPEN_VIEW,\n BubbleActionType.SELECT_OPTION,\n BubbleActionType.APP_ACTION,\n BubbleActionType.APPROVE_REQUEST,\n BubbleActionType.DECLINE_REQUEST,\n BubbleActionType.COPY\n ]),\n href: z.string().min(1).max(2048).optional(),\n invocationId: z.string().min(1),\n requestId: z.string().min(1).nullable(),\n status: z.enum([\n BubbleActionInvocationStatus.PENDING,\n BubbleActionInvocationStatus.SUCCEEDED,\n BubbleActionInvocationStatus.FAILED,\n BubbleActionInvocationStatus.DENIED\n ]),\n text: z.string().max(2000).optional()\n })\n .strict()\n .superRefine((response, context) => {\n const isSuccessful = response.status === BubbleActionInvocationStatus.SUCCEEDED;\n\n if (\n isSuccessful &&\n (response.actionType === BubbleActionType.EXTERNAL_URL ||\n response.actionType === BubbleActionType.OPEN_VIEW) &&\n response.href === undefined\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"href is required for a successful link action\",\n path: [\"href\"]\n });\n }\n\n if (\n isSuccessful &&\n response.actionType === BubbleActionType.COPY &&\n response.text === undefined\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"text is required for a successful COPY action\",\n path: [\"text\"]\n });\n }\n\n if (response.actionType !== BubbleActionType.COPY && response.text !== undefined) {\n context.addIssue({\n code: \"custom\",\n message: \"text is only supported for COPY actions\",\n path: [\"text\"]\n });\n }\n\n if (response.href === undefined) {\n return;\n } else if (response.actionType === BubbleActionType.EXTERNAL_URL) {\n addSchemaIssue(context, safeBubbleExternalUrlSchema, response.href, \"href\");\n } else if (response.actionType === BubbleActionType.OPEN_VIEW) {\n addSchemaIssue(context, safeBubbleInternalHrefSchema, response.href, \"href\");\n } else {\n context.addIssue({\n code: \"custom\",\n message: \"href is not supported for this action type\",\n path: [\"href\"]\n });\n }\n });\n\nexport type MessageActionInvocationResponse = z.infer<typeof messageActionInvocationResponseSchema>;\n","import {\n VekilClarificationStyle,\n VekilCommunicationTone,\n VekilReplyLength,\n VekilUnavailableActionBehavior,\n defaultVekilCommunicationSettings\n} from \"@vekil/domain\";\nimport { z } from \"zod\";\n\nexport const vekilCommunicationSettingsSchema = z.object({\n clarification_style: z.enum([\n VekilClarificationStyle.ONE_AT_A_TIME,\n VekilClarificationStyle.GROUP_RELATED\n ]),\n reply_length: z.enum([VekilReplyLength.CONCISE, VekilReplyLength.BALANCED]),\n tone: z.enum([\n VekilCommunicationTone.NATURAL,\n VekilCommunicationTone.WARM,\n VekilCommunicationTone.PROFESSIONAL,\n VekilCommunicationTone.DIRECT\n ]),\n unavailable_action_behavior: z.enum([\n VekilUnavailableActionBehavior.COLLECT_AND_HAND_OFF,\n VekilUnavailableActionBehavior.EXPLAIN_ONLY\n ]),\n writing_preferences: z.string().trim().max(500).nullable()\n});\n\nexport const defaultVekilCommunicationSettingsResponse = vekilCommunicationSettingsSchema.parse(\n defaultVekilCommunicationSettings\n);\n\nexport type VekilCommunicationSettingsResponse = z.infer<typeof vekilCommunicationSettingsSchema>;\n","import { z } from \"zod\";\n\nexport const apiErrorSchema = z.object({\n error: z.object({\n code: z.string(),\n messageKey: z.string(),\n traceId: z.string().optional(),\n requestId: z.string().optional()\n })\n});\n\nexport type ApiError = z.infer<typeof apiErrorSchema>;\n","import {\n InboxBucket,\n InboxOwnerAction,\n RequestStatus,\n type InboxBucket as InboxBucketType,\n type InboxOwnerAction as InboxOwnerActionType,\n type RequestStatus as RequestStatusType\n} from \"@vekil/domain\";\nimport { z } from \"zod\";\n\nconst inboxBucketValues = [\n InboxBucket.ATTENTION,\n InboxBucket.ACTIVE,\n InboxBucket.DONE,\n InboxBucket.ALL\n] as const;\n\nconst inboxOwnerActionValues = [\n InboxOwnerAction.RESPOND,\n InboxOwnerAction.REVIEW_PROPOSAL,\n InboxOwnerAction.REVIEW_APPROVAL,\n InboxOwnerAction.REVIEW_FAILURE\n] as const;\n\nconst requestStatusValues = [\n RequestStatus.RECEIVED,\n RequestStatus.CLASSIFIED,\n RequestStatus.NEEDS_CLARIFICATION,\n RequestStatus.POLICY_CHECKED,\n RequestStatus.PROPOSAL_READY,\n RequestStatus.WAITING_FOR_REQUESTER,\n RequestStatus.WAITING_FOR_OWNER,\n RequestStatus.WAITING_FOR_APPROVAL,\n RequestStatus.APPROVED,\n RequestStatus.EXECUTING,\n RequestStatus.COMPLETED,\n RequestStatus.UNFULFILLED,\n RequestStatus.DECLINED,\n RequestStatus.FAILED,\n RequestStatus.EXPIRED,\n RequestStatus.CANCELLED\n] as const;\n\nconst optionalTrimmedString = (maximumLength: number) =>\n z.preprocess(\n (value) => (typeof value === \"string\" && value.trim().length === 0 ? undefined : value),\n z.string().trim().min(1).max(maximumLength).optional()\n );\n\nexport const inboxBucketSchema = z.enum(inboxBucketValues);\n\nexport const inboxQuerySchema = z.object({\n bucket: inboxBucketSchema.optional().default(InboxBucket.ATTENTION),\n category_id: optionalTrimmedString(120),\n cursor: optionalTrimmedString(120),\n limit: z.coerce.number().int().min(1).max(50).optional().default(20),\n query: optionalTrimmedString(120),\n status: z.preprocess(\n (value) => (value === \"\" ? undefined : value),\n z.enum(requestStatusValues).optional()\n )\n});\n\nexport type InboxQuery = z.infer<typeof inboxQuerySchema>;\n\nexport const inboxCountsSchema = z.object({\n active: z.number().int().nonnegative(),\n attention: z.number().int().nonnegative(),\n done: z.number().int().nonnegative(),\n total: z.number().int().nonnegative()\n});\n\nexport type InboxCounts = z.infer<typeof inboxCountsSchema>;\n\nexport const inboxCategorySchema = z.object({\n count: z.number().int().positive(),\n id: z.string().min(1)\n});\n\nexport const inboxItemSchema = z.object({\n bucket: inboxBucketSchema.exclude([InboxBucket.ALL]),\n categoryId: z.string().nullable(),\n createdAt: z.string().datetime({ offset: true }),\n id: z.string().min(1),\n lastActivityAt: z.string().datetime({ offset: true }),\n ownerAction: z.enum(inboxOwnerActionValues).nullable(),\n requesterName: z.string().nullable(),\n status: z.enum(requestStatusValues),\n subject: z.string()\n});\n\nexport type InboxItem = Omit<\n z.infer<typeof inboxItemSchema>,\n \"bucket\" | \"ownerAction\" | \"status\"\n> & {\n bucket: Exclude<InboxBucketType, InboxBucket.ALL>;\n ownerAction: InboxOwnerActionType | null;\n status: RequestStatusType;\n};\n\nexport const inboxResponseSchema = z.object({\n bucket: inboxBucketSchema,\n categories: z.array(inboxCategorySchema),\n counts: inboxCountsSchema,\n items: z.array(inboxItemSchema),\n nextCursor: z.string().nullable()\n});\n\nexport type InboxResponse = Omit<z.infer<typeof inboxResponseSchema>, \"bucket\" | \"items\"> & {\n bucket: InboxBucketType;\n items: InboxItem[];\n};\n","import { z } from \"zod\";\nimport { ApprovalRequirement } from \"@vekil/domain\";\n\nexport const requestPolicySchema = z.object({\n unknownRequesterApproval: z.enum([\n ApprovalRequirement.REQUIRED,\n ApprovalRequirement.NOT_REQUIRED\n ]),\n privacy: z.object({\n defaultRedactions: z.array(z.string().min(1)).default([])\n })\n});\n\nexport type RequestPolicyInput = z.infer<typeof requestPolicySchema>;\n","import { z } from \"zod\";\nimport {\n ApprovalAction,\n ApprovalStatus,\n PublicRequestSessionStatus,\n RequestContextResolutionAction,\n RequestNextAction,\n RequestStatus\n} from \"@vekil/domain\";\nimport { bubbleViewSchema } from \"./bubbles\";\nimport { publicVekilSchema } from \"./vekil\";\n\nexport const requesterSchema = z.object({\n name: z.string().min(1).max(80),\n email: z.string().email()\n});\n\nexport const publicRequestRequesterSchema = z.object({\n name: z.string().min(1).max(80).optional(),\n email: z.string().email().optional()\n});\n\nexport const createPublicRequestSchema = z.object({\n message: z.string().min(2).max(2000),\n requester: publicRequestRequesterSchema.optional(),\n idempotencyKey: z.string().min(12).max(120)\n});\n\nexport type CreatePublicRequestInput = z.infer<typeof createPublicRequestSchema>;\n\nexport const continuePublicRequestSchema = z.object({\n contextDecision: z\n .object({\n id: z.string().min(1).max(120),\n resolution: z.enum([\n RequestContextResolutionAction.ACCEPT,\n RequestContextResolutionAction.REJECT\n ])\n })\n .optional(),\n message: z.string().min(1).max(2000),\n idempotencyKey: z.string().min(12).max(120)\n});\n\nexport type ContinuePublicRequestInput = z.infer<typeof continuePublicRequestSchema>;\n\nexport const requestThreadQuerySchema = z.object({\n before_message_id: z.string().min(1).max(120).optional(),\n limit: z.coerce.number().int().min(1).max(50).optional()\n});\n\nexport type RequestThreadQuery = z.infer<typeof requestThreadQuerySchema>;\n\nexport const requestThreadMessageSchema = z.object({\n body: z.string(),\n bubbles: z.array(bubbleViewSchema),\n created_at: z.string().datetime({ offset: true }),\n id: z.string(),\n role: z.enum([\"owner\", \"requester\", \"vekil\"])\n});\n\nexport type RequestThreadMessage = z.infer<typeof requestThreadMessageSchema>;\n\nexport const requestThreadPageSchema = z.object({\n has_older_messages: z.boolean(),\n messages: z.array(requestThreadMessageSchema),\n oldest_message_id: z.string().nullable()\n});\n\nexport type RequestThreadPage = z.infer<typeof requestThreadPageSchema>;\n\nexport const publicConversationThreadMessageSchema = requestThreadMessageSchema.extend({\n role: z.enum([\"requester\", \"vekil\"])\n});\n\nexport const publicConversationThreadPageSchema = z.object({\n has_older_messages: z.boolean(),\n messages: z.array(publicConversationThreadMessageSchema),\n oldest_message_id: z.string().nullable()\n});\n\nexport type PublicConversationThreadPage = z.infer<typeof publicConversationThreadPageSchema>;\n\nexport const respondToRequestSchema = z.object({\n idempotencyKey: z.string().min(12).max(120),\n message: z.string().trim().min(1).max(2000)\n});\n\nexport type RespondToRequestInput = z.infer<typeof respondToRequestSchema>;\n\nexport const ownerRequestResponseSchema = z.object({\n alreadyProcessed: z.boolean(),\n message: z.object({\n body: z.string().min(1).max(2000),\n createdAt: z.string().datetime({ offset: true }),\n id: z.string().min(1)\n }),\n requestId: z.string().min(1),\n status: z.literal(RequestStatus.COMPLETED)\n});\n\nexport type OwnerRequestResponse = z.infer<typeof ownerRequestResponseSchema>;\n\nexport const requestOptionSchema = z.object({\n id: z.string(),\n label: z.string().min(1).max(160),\n startsAt: z.string().datetime({ offset: true }).nullable().optional(),\n endsAt: z.string().datetime({ offset: true }).nullable().optional(),\n metadata: z.record(z.string(), z.unknown()).optional()\n});\n\nexport const publicRequestResponseSchema = z.object({\n requestId: z.string().nullable(),\n publicRequestToken: z.string(),\n assistantMessage: z.string().nullable(),\n requesterLanguage: z\n .object({\n code: z.string(),\n confidence: z.number().min(0).max(1)\n })\n .nullable(),\n status: z\n .enum([\n RequestStatus.RECEIVED,\n RequestStatus.CLASSIFIED,\n RequestStatus.NEEDS_CLARIFICATION,\n RequestStatus.POLICY_CHECKED,\n RequestStatus.PROPOSAL_READY,\n RequestStatus.WAITING_FOR_REQUESTER,\n RequestStatus.WAITING_FOR_OWNER,\n RequestStatus.WAITING_FOR_APPROVAL,\n RequestStatus.APPROVED,\n RequestStatus.EXECUTING,\n RequestStatus.COMPLETED,\n RequestStatus.UNFULFILLED,\n RequestStatus.DECLINED,\n RequestStatus.FAILED,\n RequestStatus.EXPIRED,\n RequestStatus.CANCELLED\n ])\n .nullable(),\n conversationId: z.string().nullable(),\n nextAction: z.enum([\n RequestNextAction.WAIT,\n RequestNextAction.CLARIFY,\n RequestNextAction.SELECT_OPTION,\n RequestNextAction.APPROVAL,\n RequestNextAction.COMPLETED\n ]),\n pendingContextDecision: z\n .object({\n expiresAt: z.string().datetime({ offset: true }),\n id: z.string()\n })\n .nullable()\n .default(null),\n proposal: z\n .object({\n type: z.literal(\"request_options\"),\n options: z.array(requestOptionSchema)\n })\n .nullable()\n});\n\nexport type PublicRequestResponse = z.infer<typeof publicRequestResponseSchema>;\n\nexport const publicRequestStatusSchema = z.object({\n agent_display_name: publicVekilSchema.shape.display_name,\n agent_handle: publicVekilSchema.shape.handle,\n agent_timezone: z.string(),\n avatar_url: publicVekilSchema.shape.avatar_url,\n bio: publicVekilSchema.shape.bio,\n pending_context_decision: z\n .object({\n expires_at: z.string().datetime({ offset: true }),\n id: z.string()\n })\n .nullable(),\n public_page: publicVekilSchema.shape.public_page,\n request_availability: publicVekilSchema.shape.request_availability,\n requester_language: z\n .object({\n code: z.string(),\n confidence: z.number().min(0).max(1)\n })\n .nullable(),\n session_status: z.enum(PublicRequestSessionStatus),\n status: z.enum(RequestStatus).nullable(),\n thread: z.array(publicConversationThreadMessageSchema),\n thread_page: z.object({\n has_older_messages: z.boolean(),\n oldest_message_id: z.string().nullable()\n })\n});\n\nexport type PublicRequestStatus = z.infer<typeof publicRequestStatusSchema>;\n\nexport const publicRequestStatusResponseSchema = z.object({\n request: publicRequestStatusSchema\n});\n\nexport type PublicRequestStatusResponse = z.infer<typeof publicRequestStatusResponseSchema>;\n\nexport const resolveRequestApprovalSchema = z.object({\n approvalId: z.string().min(1).max(120),\n approvalScopeHash: z.string().regex(/^[0-9a-f]{64}$/),\n idempotencyKey: z.string().min(12).max(120),\n selectedOptionId: z.string().min(1).max(120).optional(),\n approvalNote: z.string().max(500).optional()\n});\n\nexport type ResolveRequestApprovalInput = z.infer<typeof resolveRequestApprovalSchema>;\n\nexport const replayRequestExecutionSchema = z.object({\n idempotencyKey: z.string().min(12).max(120)\n});\n\nexport const replayRequestExecutionResponseSchema = z.object({\n replayed: z.boolean(),\n requestId: z.string(),\n status: z.enum([RequestStatus.APPROVED, RequestStatus.EXECUTING, RequestStatus.FAILED])\n});\n\nexport type ReplayRequestExecutionResponse = z.infer<typeof replayRequestExecutionResponseSchema>;\n\nexport const requestApprovalActionResponseSchema = z.object({\n action: z.enum([ApprovalAction.APPROVE, ApprovalAction.DECLINE, ApprovalAction.REQUEST_CHANGES]),\n alreadyResolved: z.boolean(),\n approvalStatus: z.enum([\n ApprovalStatus.PENDING,\n ApprovalStatus.APPROVED,\n ApprovalStatus.DECLINED,\n ApprovalStatus.CHANGES_REQUESTED,\n ApprovalStatus.EXPIRED,\n ApprovalStatus.CANCELLED\n ]),\n nextAction: z.enum([\n RequestNextAction.WAIT,\n RequestNextAction.CLARIFY,\n RequestNextAction.SELECT_OPTION,\n RequestNextAction.APPROVAL,\n RequestNextAction.COMPLETED\n ]),\n requestId: z.string(),\n status: z.enum([\n RequestStatus.RECEIVED,\n RequestStatus.CLASSIFIED,\n RequestStatus.NEEDS_CLARIFICATION,\n RequestStatus.POLICY_CHECKED,\n RequestStatus.PROPOSAL_READY,\n RequestStatus.WAITING_FOR_REQUESTER,\n RequestStatus.WAITING_FOR_OWNER,\n RequestStatus.WAITING_FOR_APPROVAL,\n RequestStatus.APPROVED,\n RequestStatus.EXECUTING,\n RequestStatus.COMPLETED,\n RequestStatus.UNFULFILLED,\n RequestStatus.DECLINED,\n RequestStatus.FAILED,\n RequestStatus.EXPIRED,\n RequestStatus.CANCELLED\n ])\n});\n\nexport type RequestApprovalActionResponse = z.infer<typeof requestApprovalActionResponseSchema>;\n","export function canonicalizeJson(value: unknown): unknown {\n if (Array.isArray(value)) {\n return value.map(canonicalizeJson);\n }\n\n if (value && typeof value === \"object\") {\n return Object.fromEntries(\n Object.entries(value as Record<string, unknown>)\n .filter(([, item]) => item !== undefined)\n .sort(([left], [right]) => (left < right ? -1 : left > right ? 1 : 0))\n .map(([key, item]) => [key, canonicalizeJson(item)])\n );\n }\n\n return value;\n}\n\nexport function stringifyCanonicalJson(value: unknown): string {\n return JSON.stringify(canonicalizeJson(value));\n}\n","import { BubbleActionType, bubbleDescriptorSchema } from \"@vekil/api-contracts\";\nimport {\n appContextArtifactVisibilityLevels,\n appContextEnvelopeSchema,\n appContextScopes\n} from \"@vekil/app-context\";\nimport { z } from \"zod\";\nimport {\n AppExecutionStatus,\n AppPlanStatus,\n AppRuntimeHealthStatus,\n appExecutionStatusSchema,\n appIdSchema,\n appLocalKeySchema,\n appNamespacedIdSchema,\n appPlanStatusSchema,\n appProtocolVersion,\n appRuntimeHealthStatusSchema,\n httpsOrLocalhostUrlSchema,\n isoDateTimeSchema,\n jsonObjectSchema,\n localeCodeSchema,\n semanticVersionSchema\n} from \"./common\";\n\nexport const appRemoteRuntimePaths = {\n prepareInstallation: \"/v1/installations/prepare\",\n completeInstallation: \"/v1/installations/complete\",\n disconnectInstallation: \"/v1/installations/disconnect\",\n planAction: \"/v1/actions/plan\",\n executeAction: \"/v1/actions/execute\",\n health: \"/v1/health\"\n} as const;\n\nexport enum AppInstallationConnectionStatus {\n NOT_REQUIRED = \"NOT_REQUIRED\",\n ACTION_REQUIRED = \"ACTION_REQUIRED\",\n CONNECTED = \"CONNECTED\",\n FAILED = \"FAILED\"\n}\n\nexport enum AppRuntimeErrorCode {\n INVALID_REQUEST = \"INVALID_REQUEST\",\n INSTALLATION_NOT_FOUND = \"INSTALLATION_NOT_FOUND\",\n CONNECTION_REQUIRED = \"CONNECTION_REQUIRED\",\n ACTION_NOT_SUPPORTED = \"ACTION_NOT_SUPPORTED\",\n POLICY_REJECTED = \"POLICY_REJECTED\",\n RATE_LIMITED = \"RATE_LIMITED\",\n TEMPORARILY_UNAVAILABLE = \"TEMPORARILY_UNAVAILABLE\",\n EXECUTION_FAILED = \"EXECUTION_FAILED\"\n}\n\nconst requestIdSchema = z.string().min(1).max(160);\nconst strictAppContextEnvelopeSchema = appContextEnvelopeSchema.strict();\nexport const appAuthorizationContractHashSchema = z.string().regex(/^[a-f0-9]{64}$/);\n\nexport const appInstallationGrantSchema = z.strictObject({\n protocolVersion: z.literal(appProtocolVersion),\n grantId: z.string().min(1).max(160),\n installationId: z.string().min(1).max(160),\n connectionId: z.string().min(1).max(160),\n connectionRevision: z.number().int().positive(),\n authorizationContractHash: appAuthorizationContractHashSchema,\n appId: appIdSchema,\n appVersionId: z.string().min(1).max(160),\n appVersion: semanticVersionSchema,\n targetVekilId: z.string().min(1).max(160),\n runtimeAudience: appIdSchema,\n capabilityIds: z.array(appNamespacedIdSchema).max(128),\n permissionKeys: z.array(z.string().min(1).max(80)).max(64),\n contextScopes: z.array(z.enum(appContextScopes)).max(appContextScopes.length),\n issuedAt: isoDateTimeSchema,\n expiresAt: isoDateTimeSchema\n});\n\nexport const appRuntimeConnectionAttestationSchema = z.strictObject({\n connectionId: z.string().min(1).max(160),\n connectionRevision: z.number().int().positive(),\n runtimeAccountReference: z.string().min(1).max(240),\n accountLabel: z.string().min(1).max(240),\n grantedPermissionKeys: z.array(z.string().min(1).max(80)).max(64),\n authorizationContractHash: appAuthorizationContractHashSchema\n});\n\nexport const appRuntimeErrorSchema = z.strictObject({\n code: z.enum([\n AppRuntimeErrorCode.INVALID_REQUEST,\n AppRuntimeErrorCode.INSTALLATION_NOT_FOUND,\n AppRuntimeErrorCode.CONNECTION_REQUIRED,\n AppRuntimeErrorCode.ACTION_NOT_SUPPORTED,\n AppRuntimeErrorCode.POLICY_REJECTED,\n AppRuntimeErrorCode.RATE_LIMITED,\n AppRuntimeErrorCode.TEMPORARILY_UNAVAILABLE,\n AppRuntimeErrorCode.EXECUTION_FAILED\n ]),\n message: z.string().min(1).max(600),\n retryable: z.boolean(),\n retryAfterSeconds: z.number().int().min(1).max(86_400).optional(),\n details: jsonObjectSchema.optional()\n});\n\nexport const appPrepareInstallationRequestSchema = z.strictObject({\n protocolVersion: z.literal(appProtocolVersion),\n requestId: requestIdSchema,\n grant: appInstallationGrantSchema,\n returnUrl: httpsOrLocalhostUrlSchema,\n locale: localeCodeSchema\n});\n\nexport const appPrepareInstallationResponseSchema = z\n .strictObject({\n protocolVersion: z.literal(appProtocolVersion),\n requestId: requestIdSchema,\n status: z.enum([\n AppInstallationConnectionStatus.NOT_REQUIRED,\n AppInstallationConnectionStatus.ACTION_REQUIRED,\n AppInstallationConnectionStatus.CONNECTED,\n AppInstallationConnectionStatus.FAILED\n ]),\n authorizationUrl: httpsOrLocalhostUrlSchema.optional(),\n authorizationExpiresAt: isoDateTimeSchema.optional(),\n connection: appRuntimeConnectionAttestationSchema.optional(),\n error: appRuntimeErrorSchema.optional()\n })\n .superRefine((value, context) => {\n if (\n value.status === AppInstallationConnectionStatus.ACTION_REQUIRED &&\n (!value.authorizationUrl || !value.authorizationExpiresAt)\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"ACTION_REQUIRED requires an authorization URL and expiry\",\n path: [\"status\"]\n });\n }\n\n if (value.status === AppInstallationConnectionStatus.CONNECTED && !value.connection) {\n context.addIssue({\n code: \"custom\",\n message: \"CONNECTED requires a connection attestation\",\n path: [\"status\"]\n });\n }\n\n if (value.status === AppInstallationConnectionStatus.FAILED && !value.error) {\n context.addIssue({\n code: \"custom\",\n message: \"FAILED requires a runtime error\",\n path: [\"status\"]\n });\n }\n\n if (value.status !== AppInstallationConnectionStatus.FAILED && value.error) {\n context.addIssue({\n code: \"custom\",\n message: \"Only FAILED may include a runtime error\",\n path: [\"error\"]\n });\n }\n });\n\nexport const appCompleteInstallationRequestSchema = z.strictObject({\n protocolVersion: z.literal(appProtocolVersion),\n requestId: requestIdSchema,\n grant: appInstallationGrantSchema,\n completionToken: z.string().min(32).max(512)\n});\n\nexport const appCompleteInstallationResponseSchema = z\n .strictObject({\n protocolVersion: z.literal(appProtocolVersion),\n requestId: requestIdSchema,\n status: z.enum([\n AppInstallationConnectionStatus.CONNECTED,\n AppInstallationConnectionStatus.FAILED\n ]),\n connection: appRuntimeConnectionAttestationSchema.optional(),\n error: appRuntimeErrorSchema.optional()\n })\n .superRefine((value, context) => {\n if (\n value.status === AppInstallationConnectionStatus.CONNECTED &&\n (!value.connection || value.error)\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"CONNECTED requires a connection attestation and cannot include an error\",\n path: [\"status\"]\n });\n }\n\n if (\n value.status === AppInstallationConnectionStatus.FAILED &&\n (!value.error || value.connection)\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"FAILED requires an error and cannot include a connection attestation\",\n path: [\"status\"]\n });\n }\n });\n\nexport const appDisconnectInstallationRequestSchema = z.strictObject({\n protocolVersion: z.literal(appProtocolVersion),\n requestId: requestIdSchema,\n grant: appInstallationGrantSchema,\n reason: z.string().min(1).max(300)\n});\n\nexport const appDisconnectInstallationResponseSchema = z.strictObject({\n protocolVersion: z.literal(appProtocolVersion),\n requestId: requestIdSchema,\n disconnected: z.boolean(),\n error: appRuntimeErrorSchema.optional()\n});\n\nexport const appPlanActionRequestSchema = z.strictObject({\n protocolVersion: z.literal(appProtocolVersion),\n requestId: requestIdSchema,\n grant: appInstallationGrantSchema,\n intentId: appNamespacedIdSchema,\n input: jsonObjectSchema,\n context: strictAppContextEnvelopeSchema\n});\n\nconst appPlannedActionSchema = z.strictObject({\n stepKey: z.string().min(1).max(80),\n actionId: appNamespacedIdSchema,\n input: jsonObjectSchema,\n dependsOn: z.array(z.string().min(1).max(80)).max(32)\n});\n\nexport function findAppPlanTopologyIssue(\n actions: ReadonlyArray<{\n dependsOn: readonly string[];\n stepKey: string;\n }>\n): string | null {\n const dependenciesByStep = new Map<string, readonly string[]>();\n\n for (const action of actions) {\n if (dependenciesByStep.has(action.stepKey)) {\n return `Plan step key \"${action.stepKey}\" is duplicated.`;\n }\n\n dependenciesByStep.set(action.stepKey, action.dependsOn);\n }\n\n for (const action of actions) {\n const dependencies = new Set<string>();\n\n for (const dependency of action.dependsOn) {\n if (dependencies.has(dependency)) {\n return `Plan step \"${action.stepKey}\" declares dependency \"${dependency}\" more than once.`;\n }\n\n dependencies.add(dependency);\n\n if (dependency === action.stepKey) {\n return `Plan step \"${action.stepKey}\" cannot depend on itself.`;\n }\n\n if (!dependenciesByStep.has(dependency)) {\n return `Plan step \"${action.stepKey}\" depends on unknown step \"${dependency}\".`;\n }\n }\n }\n\n const visiting = new Set<string>();\n const visited = new Set<string>();\n\n const visit = (stepKey: string): string | null => {\n if (visiting.has(stepKey)) {\n return `Plan contains a dependency cycle involving step \"${stepKey}\".`;\n }\n\n if (visited.has(stepKey)) {\n return null;\n }\n\n visiting.add(stepKey);\n\n for (const dependency of dependenciesByStep.get(stepKey) ?? []) {\n const issue = visit(dependency);\n\n if (issue) {\n return issue;\n }\n }\n\n visiting.delete(stepKey);\n visited.add(stepKey);\n return null;\n };\n\n for (const stepKey of dependenciesByStep.keys()) {\n const issue = visit(stepKey);\n\n if (issue) {\n return issue;\n }\n }\n\n return null;\n}\n\nexport const appGroundingFactSchema = z.strictObject({\n knowledgeId: appNamespacedIdSchema,\n value: z.json()\n});\n\nexport const appPlanActionResponseSchema = z\n .strictObject({\n protocolVersion: z.literal(appProtocolVersion),\n requestId: requestIdSchema,\n status: appPlanStatusSchema,\n actions: z.array(appPlannedActionSchema).max(64).default([]),\n missingFields: z.array(z.string().min(1).max(80)).max(64).default([]),\n grounding: z.array(appGroundingFactSchema).max(128).default([]),\n userMessage: z.string().min(1).max(2_000).optional(),\n error: appRuntimeErrorSchema.optional()\n })\n .superRefine((value, context) => {\n if (value.status === AppPlanStatus.READY) {\n if (value.actions.length === 0) {\n context.addIssue({\n code: \"custom\",\n message: \"READY requires at least one action\",\n path: [\"actions\"]\n });\n }\n\n if (value.missingFields.length > 0 || value.error) {\n context.addIssue({\n code: \"custom\",\n message: \"READY cannot include missing fields or an error\",\n path: [\"status\"]\n });\n }\n }\n\n if (value.status === AppPlanStatus.NEEDS_CLARIFICATION) {\n if (value.missingFields.length === 0) {\n context.addIssue({\n code: \"custom\",\n message: \"NEEDS_CLARIFICATION requires at least one missing field\",\n path: [\"missingFields\"]\n });\n }\n\n if (value.actions.length > 0 || value.grounding.length > 0 || value.error) {\n context.addIssue({\n code: \"custom\",\n message: \"NEEDS_CLARIFICATION cannot include actions, grounding, or an error\",\n path: [\"status\"]\n });\n }\n }\n\n if (value.status === AppPlanStatus.REJECTED) {\n if (!value.error) {\n context.addIssue({\n code: \"custom\",\n message: \"REJECTED requires an error\",\n path: [\"error\"]\n });\n }\n\n if (\n value.actions.length > 0 ||\n value.missingFields.length > 0 ||\n value.grounding.length > 0\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"REJECTED cannot include actions, missing fields, or grounding\",\n path: [\"status\"]\n });\n }\n }\n\n const topologyIssue = findAppPlanTopologyIssue(value.actions);\n\n if (topologyIssue) {\n context.addIssue({\n code: \"custom\",\n message: topologyIssue,\n path: [\"actions\"]\n });\n }\n });\n\nconst appRuntimeArtifactSchema = z.strictObject({\n artifactId: appNamespacedIdSchema,\n expiresAt: isoDateTimeSchema.optional(),\n resultKey: appLocalKeySchema,\n schemaVersion: z.number().int().min(1).max(1_000),\n value: z.json(),\n visibilityLevel: z.enum(appContextArtifactVisibilityLevels).optional()\n});\n\nexport const appExecuteActionRequestSchema = z.strictObject({\n protocolVersion: z.literal(appProtocolVersion),\n requestId: requestIdSchema,\n executionId: z.string().min(1).max(160),\n grant: appInstallationGrantSchema,\n actionId: appNamespacedIdSchema,\n input: jsonObjectSchema,\n context: strictAppContextEnvelopeSchema,\n idempotencyKey: z.string().min(16).max(240),\n attempt: z.number().int().min(1).max(8)\n});\n\nexport const appExecuteActionResponseSchema = z\n .strictObject({\n protocolVersion: z.literal(appProtocolVersion),\n requestId: requestIdSchema,\n executionId: z.string().min(1).max(160),\n status: appExecutionStatusSchema,\n output: jsonObjectSchema.optional(),\n outcomeId: appNamespacedIdSchema.optional(),\n artifacts: z.array(appRuntimeArtifactSchema).max(64).default([]),\n bubbles: z.array(bubbleDescriptorSchema.strict()).max(16).default([]),\n error: appRuntimeErrorSchema.optional()\n })\n .superRefine((value, context) => {\n const artifactResultKeys = new Set<string>();\n\n value.artifacts.forEach((artifact, artifactIndex) => {\n if (artifactResultKeys.has(artifact.resultKey)) {\n context.addIssue({\n code: \"custom\",\n message: `Artifact result key \"${artifact.resultKey}\" is duplicated`,\n path: [\"artifacts\", artifactIndex, \"resultKey\"]\n });\n }\n\n artifactResultKeys.add(artifact.resultKey);\n });\n\n value.bubbles.forEach((bubble, bubbleIndex) => {\n bubble.actions.forEach((action, actionIndex) => {\n if (\n action.action_type === BubbleActionType.SELECT_OPTION &&\n !artifactResultKeys.has(action.artifact_result_key)\n ) {\n context.addIssue({\n code: \"custom\",\n message: `SELECT_OPTION references unknown artifact result key \"${action.artifact_result_key}\"`,\n path: [\"bubbles\", bubbleIndex, \"actions\", actionIndex, \"artifact_result_key\"]\n });\n }\n });\n });\n\n if (\n value.status === AppExecutionStatus.SUCCEEDED &&\n (!value.output || !value.outcomeId || value.error)\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"SUCCEEDED requires output and outcomeId and cannot include an error\",\n path: [\"status\"]\n });\n }\n\n if (\n value.status === AppExecutionStatus.FAILED &&\n (!value.error || value.output || value.outcomeId)\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"FAILED requires an error and cannot include output or outcomeId\",\n path: [\"status\"]\n });\n }\n });\n\nexport const appRuntimeHealthResponseSchema = z.strictObject({\n protocolVersion: z.literal(appProtocolVersion),\n status: appRuntimeHealthStatusSchema,\n appId: appIdSchema,\n appVersion: semanticVersionSchema,\n checkedAt: isoDateTimeSchema,\n message: z.string().min(1).max(500).optional()\n});\n\nexport type AppInstallationGrant = z.infer<typeof appInstallationGrantSchema>;\nexport type AppCompleteInstallationRequest = z.infer<typeof appCompleteInstallationRequestSchema>;\nexport type AppCompleteInstallationResponse = z.infer<typeof appCompleteInstallationResponseSchema>;\nexport type AppPrepareInstallationRequest = z.infer<typeof appPrepareInstallationRequestSchema>;\nexport type AppPrepareInstallationResponse = z.infer<typeof appPrepareInstallationResponseSchema>;\nexport type AppDisconnectInstallationRequest = z.infer<\n typeof appDisconnectInstallationRequestSchema\n>;\nexport type AppDisconnectInstallationResponse = z.infer<\n typeof appDisconnectInstallationResponseSchema\n>;\nexport type AppPlanActionRequest = z.infer<typeof appPlanActionRequestSchema>;\nexport type AppPlanActionResponse = z.infer<typeof appPlanActionResponseSchema>;\nexport type AppExecuteActionRequest = z.infer<typeof appExecuteActionRequestSchema>;\nexport type AppExecuteActionResponse = z.infer<typeof appExecuteActionResponseSchema>;\nexport type AppRuntimeHealthResponse = z.infer<typeof appRuntimeHealthResponseSchema>;\n\nexport function isSuccessfulExecution(\n response: AppExecuteActionResponse\n): response is AppExecuteActionResponse & { status: AppExecutionStatus.SUCCEEDED } {\n return response.status === AppExecutionStatus.SUCCEEDED;\n}\n\nexport function isReadyPlan(\n response: AppPlanActionResponse\n): response is AppPlanActionResponse & { status: AppPlanStatus.READY } {\n return response.status === AppPlanStatus.READY;\n}\n\nexport function isHealthyRuntime(\n status: AppRuntimeHealthStatus\n): status is AppRuntimeHealthStatus.HEALTHY | AppRuntimeHealthStatus.DEGRADED {\n return status === AppRuntimeHealthStatus.HEALTHY || status === AppRuntimeHealthStatus.DEGRADED;\n}\n","import { z } from \"zod\";\nimport { appManifestSchema } from \"./app-manifest\";\nimport { AppRuntimeHost, appProtocolVersion } from \"./common\";\nimport {\n appCompleteInstallationRequestSchema,\n appDisconnectInstallationRequestSchema,\n appExecuteActionRequestSchema,\n appPlanActionRequestSchema,\n appPrepareInstallationRequestSchema\n} from \"./runtime-envelopes\";\n\nexport const hostedDeclarativeRuntimeId = \"vekil-declarative-runtime\";\n\nexport const hostedDeclarativeRuntimePaths = {\n prepareInstallation: \"/v1/declarative/installations/prepare\",\n completeInstallation: \"/v1/declarative/installations/complete\",\n disconnectInstallation: \"/v1/declarative/installations/disconnect\",\n planAction: \"/v1/declarative/actions/plan\",\n executeAction: \"/v1/declarative/actions/execute\",\n health: \"/v1/declarative/health\"\n} as const;\n\nconst declarativeManifestSchema = appManifestSchema.refine(\n (manifest) => manifest.runtime.host === AppRuntimeHost.DECLARATIVE,\n \"Hosted Declarative Runtime accepts only declarative manifests\"\n);\n\nexport const hostedDeclarativePrepareRequestSchema = z.strictObject({\n protocolVersion: z.literal(appProtocolVersion),\n manifest: declarativeManifestSchema,\n request: appPrepareInstallationRequestSchema\n});\n\nexport const hostedDeclarativeCompleteRequestSchema = z.strictObject({\n protocolVersion: z.literal(appProtocolVersion),\n manifest: declarativeManifestSchema,\n request: appCompleteInstallationRequestSchema\n});\n\nexport const hostedDeclarativeDisconnectRequestSchema = z.strictObject({\n protocolVersion: z.literal(appProtocolVersion),\n manifest: declarativeManifestSchema,\n request: appDisconnectInstallationRequestSchema\n});\n\nexport const hostedDeclarativePlanRequestSchema = z.strictObject({\n protocolVersion: z.literal(appProtocolVersion),\n manifest: declarativeManifestSchema,\n request: appPlanActionRequestSchema\n});\n\nexport const hostedDeclarativeExecuteRequestSchema = z.strictObject({\n protocolVersion: z.literal(appProtocolVersion),\n manifest: declarativeManifestSchema,\n request: appExecuteActionRequestSchema\n});\n\nexport const hostedDeclarativeHealthRequestSchema = z.strictObject({\n protocolVersion: z.literal(appProtocolVersion),\n requestId: z.string().min(1).max(160),\n manifest: declarativeManifestSchema\n});\n\nexport type HostedDeclarativePrepareRequest = z.infer<typeof hostedDeclarativePrepareRequestSchema>;\nexport type HostedDeclarativeCompleteRequest = z.infer<\n typeof hostedDeclarativeCompleteRequestSchema\n>;\nexport type HostedDeclarativeDisconnectRequest = z.infer<\n typeof hostedDeclarativeDisconnectRequestSchema\n>;\nexport type HostedDeclarativePlanRequest = z.infer<typeof hostedDeclarativePlanRequestSchema>;\nexport type HostedDeclarativeExecuteRequest = z.infer<typeof hostedDeclarativeExecuteRequestSchema>;\nexport type HostedDeclarativeHealthRequest = z.infer<typeof hostedDeclarativeHealthRequestSchema>;\n","export interface JsonSchemaValidationResult {\n error: string | null;\n ok: boolean;\n}\n\n/**\n * Validates the bounded JSON Schema subset accepted by App Definition and\n * Manifest contracts. This intentionally stays deterministic and side-effect\n * free so the same validator can be used at planning and runtime boundaries.\n */\nexport function validateJsonSchema(\n value: unknown,\n schema: Record<string, unknown>\n): JsonSchemaValidationResult {\n const error = validateValue(value, schema, \"$\", new Set());\n\n return { error, ok: error === null };\n}\n\nfunction validateValue(\n value: unknown,\n schema: Record<string, unknown>,\n path: string,\n seen: Set<unknown>\n): string | null {\n if (schema.const !== undefined && !isJsonEqual(value, schema.const)) {\n return `${path} must equal the declared constant`;\n }\n\n if (Array.isArray(schema.enum) && !schema.enum.some((entry) => isJsonEqual(value, entry))) {\n return `${path} must be one of the declared values`;\n }\n\n const typeError = validateType(value, schema.type, path);\n\n if (typeError) return typeError;\n if (typeof value === \"string\") return validateString(value, schema, path);\n if (typeof value === \"number\") return validateNumber(value, schema, path);\n\n if (Array.isArray(value)) {\n if (seen.has(value)) return `${path} must not contain a cycle`;\n seen.add(value);\n const error = validateArray(value, schema, path, seen);\n seen.delete(value);\n return error;\n }\n\n if (isRecord(value)) {\n if (seen.has(value)) return `${path} must not contain a cycle`;\n seen.add(value);\n const error = validateObject(value, schema, path, seen);\n seen.delete(value);\n return error;\n }\n\n return null;\n}\n\nfunction validateType(value: unknown, schemaType: unknown, path: string): string | null {\n if (schemaType === undefined) return null;\n\n const allowedTypes = Array.isArray(schemaType) ? schemaType : [schemaType];\n\n for (const allowedType of allowedTypes) {\n if (allowedType === \"null\" && value === null) return null;\n if (allowedType === \"array\" && Array.isArray(value)) return null;\n if (allowedType === \"integer\" && Number.isInteger(value)) return null;\n if (allowedType === \"object\" && isRecord(value)) return null;\n if (allowedType === \"number\" && typeof value === \"number\" && Number.isFinite(value))\n return null;\n if (allowedType === \"string\" && typeof value === \"string\") return null;\n if (allowedType === \"boolean\" && typeof value === \"boolean\") return null;\n }\n\n return `${path} must match its declared type`;\n}\n\nfunction validateString(\n value: string,\n schema: Record<string, unknown>,\n path: string\n): string | null {\n if (typeof schema.minLength === \"number\" && value.length < schema.minLength) {\n return `${path} is shorter than allowed`;\n }\n if (typeof schema.maxLength === \"number\" && value.length > schema.maxLength) {\n return `${path} is longer than allowed`;\n }\n if (typeof schema.pattern === \"string\") {\n try {\n if (!new RegExp(schema.pattern, \"u\").test(value)) return `${path} has an invalid format`;\n } catch {\n return `${path} has an invalid schema pattern`;\n }\n }\n if (schema.format === \"email\" && !/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(value)) {\n return `${path} must be a valid email`;\n }\n if (schema.format === \"date-time\" && Number.isNaN(Date.parse(value))) {\n return `${path} must be a valid date-time`;\n }\n if (schema.format === \"url\" || schema.format === \"uri\") {\n try {\n new URL(value);\n } catch {\n return `${path} must be a valid URL`;\n }\n }\n return null;\n}\n\nfunction validateNumber(\n value: number,\n schema: Record<string, unknown>,\n path: string\n): string | null {\n if (typeof schema.minimum === \"number\" && value < schema.minimum) {\n return `${path} is smaller than allowed`;\n }\n if (typeof schema.maximum === \"number\" && value > schema.maximum) {\n return `${path} is larger than allowed`;\n }\n return null;\n}\n\nfunction validateArray(\n value: unknown[],\n schema: Record<string, unknown>,\n path: string,\n seen: Set<unknown>\n): string | null {\n if (typeof schema.minItems === \"number\" && value.length < schema.minItems) {\n return `${path} contains too few items`;\n }\n if (typeof schema.maxItems === \"number\" && value.length > schema.maxItems) {\n return `${path} contains too many items`;\n }\n if (schema.uniqueItems === true) {\n const serialized = value.map(stableJson);\n if (new Set(serialized).size !== serialized.length) return `${path} must contain unique items`;\n }\n\n const itemSchema = readRecord(schema.items);\n if (!itemSchema) return null;\n\n for (let index = 0; index < value.length; index += 1) {\n const error = validateValue(value[index], itemSchema, `${path}[${index}]`, seen);\n if (error) return error;\n }\n return null;\n}\n\nfunction validateObject(\n value: Record<string, unknown>,\n schema: Record<string, unknown>,\n path: string,\n seen: Set<unknown>\n): string | null {\n const required = Array.isArray(schema.required) ? schema.required : [];\n\n for (const key of required) {\n if (typeof key === \"string\" && value[key] === undefined) {\n return `${path}.${key} is required`;\n }\n }\n\n const properties = readRecord(schema.properties);\n if (!properties) return null;\n\n for (const [key, propertySchema] of Object.entries(properties)) {\n if (value[key] === undefined) continue;\n const nestedSchema = readRecord(propertySchema);\n if (!nestedSchema) continue;\n const error = validateValue(value[key], nestedSchema, `${path}.${key}`, seen);\n if (error) return error;\n }\n\n if (schema.additionalProperties === false) {\n for (const key of Object.keys(value)) {\n if (!Object.prototype.hasOwnProperty.call(properties, key)) {\n return `${path}.${key} is not allowed`;\n }\n }\n }\n return null;\n}\n\nfunction isJsonEqual(left: unknown, right: unknown): boolean {\n return stableJson(left) === stableJson(right);\n}\n\nfunction stableJson(value: unknown): string {\n if (Array.isArray(value)) return `[${value.map(stableJson).join(\",\")}]`;\n if (isRecord(value)) {\n return `{${Object.keys(value)\n .sort()\n .map((key) => `${JSON.stringify(key)}:${stableJson(value[key])}`)\n .join(\",\")}}`;\n }\n return JSON.stringify(value) ?? \"undefined\";\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction readRecord(value: unknown): Record<string, unknown> | null {\n return isRecord(value) ? value : null;\n}\n","import { z } from \"zod\";\nimport {\n appIdSchema,\n appProtocolVersion,\n httpsOrLocalhostUrlSchema,\n isoDateTimeSchema\n} from \"./common\";\n\nexport enum AppSignatureAlgorithm {\n ED25519 = \"EdDSA\"\n}\n\nexport const appProtocolSignatureHeaders = {\n expiresAt: \"x-vekil-expires-at\",\n keyId: \"x-vekil-key-id\",\n nonce: \"x-vekil-nonce\",\n signature: \"x-vekil-signature\",\n timestamp: \"x-vekil-timestamp\"\n} as const;\n\nexport const appJwsType = \"vekil-app-signature+jws\" as const;\n\nexport const appJwsProtectedHeaderSchema = z.strictObject({\n alg: z.literal(AppSignatureAlgorithm.ED25519),\n b64: z.literal(false),\n crit: z.tuple([z.literal(\"b64\")]),\n kid: z.string().min(1).max(160),\n typ: z.literal(appJwsType)\n});\n\nexport const appSignatureClaimsSchema = z.strictObject({\n protocolVersion: z.literal(appProtocolVersion),\n algorithm: z.literal(AppSignatureAlgorithm.ED25519),\n issuer: z.string().min(1).max(160),\n audience: appIdSchema,\n keyId: z.string().min(1).max(160),\n method: z.enum([\"GET\", \"POST\", \"PUT\", \"PATCH\", \"DELETE\"]),\n path: z.string().min(1).max(500).startsWith(\"/\"),\n bodySha256: z.string().regex(/^[a-f0-9]{64}$/),\n issuedAt: isoDateTimeSchema,\n expiresAt: isoDateTimeSchema,\n nonce: z.string().min(16).max(160),\n installationId: z.string().min(1).max(160).optional(),\n executionId: z.string().min(1).max(160).optional()\n});\n\nexport const appDetachedJwsSchema = z\n .string()\n .min(16)\n .max(8_192)\n .regex(/^[A-Za-z0-9_-]+\\.\\.[A-Za-z0-9_-]+$/);\n\nexport const appPublicSigningJwkSchema = z.strictObject({\n kty: z.literal(\"OKP\"),\n crv: z.literal(\"Ed25519\"),\n x: z.string().min(40).max(64),\n use: z.literal(\"sig\"),\n alg: z.literal(AppSignatureAlgorithm.ED25519),\n kid: z.string().min(1).max(160)\n});\n\nexport const appJwksSchema = z.strictObject({\n keys: z.array(appPublicSigningJwkSchema).min(1).max(8)\n});\n\nexport const appRuntimeKeySchema = z.strictObject({\n keyId: z.string().min(1).max(160),\n algorithm: z.literal(AppSignatureAlgorithm.ED25519),\n publicKeyJwk: appPublicSigningJwkSchema\n});\n\nexport const appRuntimeIdentitySchema = z.strictObject({\n appId: appIdSchema,\n baseUrl: httpsOrLocalhostUrlSchema,\n keys: z.array(appRuntimeKeySchema).min(1).max(8)\n});\n\nexport type AppSignatureClaims = z.infer<typeof appSignatureClaimsSchema>;\nexport type AppJwks = z.infer<typeof appJwksSchema>;\nexport type AppJwsProtectedHeader = z.infer<typeof appJwsProtectedHeaderSchema>;\nexport type AppPublicSigningJwk = z.infer<typeof appPublicSigningJwkSchema>;\nexport type AppRuntimeIdentity = z.infer<typeof appRuntimeIdentitySchema>;\n","import {\n AppApprovalMode,\n AppArtifactAudience,\n AppClarificationMode,\n AppConnectionType,\n AppHttpMethod,\n AppIntentMode,\n AppKnowledgeSourceType,\n type AppCompilationBinding,\n type AppDefinition,\n type AppManifest,\n AppRuntimeHost,\n AppSideEffectType,\n AppValueSource,\n AppWorkflowStepType,\n appCompilationBindingSchema,\n appDefinitionSchema,\n appManifestSchema,\n appManifestVersion,\n appPoliciesSchemaVersion,\n appSettingsSchemaVersion,\n requiredAppActionContextScopes,\n type AppValueExpression,\n type AppWorkflowDefinition,\n type LocalizedText\n} from \"@vekil/app-protocol\";\n\nexport enum AppCompilerIssueCode {\n INVALID_BINDING = \"INVALID_BINDING\",\n INVALID_DEFINITION = \"INVALID_DEFINITION\",\n INVALID_MANIFEST = \"INVALID_MANIFEST\",\n DUPLICATE_ID = \"DUPLICATE_ID\",\n UNKNOWN_REFERENCE = \"UNKNOWN_REFERENCE\",\n MISSING_DEFAULT_LOCALE = \"MISSING_DEFAULT_LOCALE\",\n INVALID_CONNECTION = \"INVALID_CONNECTION\",\n INVALID_INPUT_FIELD = \"INVALID_INPUT_FIELD\",\n INVALID_KNOWLEDGE = \"INVALID_KNOWLEDGE\",\n INVALID_ARTIFACT_CONTRACT = \"INVALID_ARTIFACT_CONTRACT\",\n IDEMPOTENCY_REQUIRED = \"IDEMPOTENCY_REQUIRED\",\n INVALID_WORKFLOW = \"INVALID_WORKFLOW\",\n WORKFLOW_CYCLE = \"WORKFLOW_CYCLE\"\n}\n\nexport interface AppCompilerIssue {\n code: AppCompilerIssueCode;\n path: string;\n message: string;\n}\n\nexport type AppCompilerResult =\n | {\n ok: true;\n manifest: AppManifest;\n }\n | {\n ok: false;\n issues: AppCompilerIssue[];\n };\n\nexport class AppCompilationError extends Error {\n readonly issues: AppCompilerIssue[];\n\n constructor(issues: AppCompilerIssue[]) {\n super(`App definition failed compilation with ${issues.length} issue(s)`);\n this.name = \"AppCompilationError\";\n this.issues = issues;\n }\n}\n\nexport function compileAppDefinition(input: unknown, bindingInput: unknown): AppCompilerResult {\n const validation = validateAppDefinition(input);\n if (!validation.ok) return validation;\n\n const parsedBinding = appCompilationBindingSchema.safeParse(bindingInput);\n if (!parsedBinding.success) {\n return {\n ok: false,\n issues: parsedBinding.error.issues.map((issue) => ({\n code: AppCompilerIssueCode.INVALID_BINDING,\n path: `binding.${formatPath(issue.path)}`,\n message: issue.message\n }))\n };\n }\n\n const localeWriter = new LocaleWriter(validation.definition.defaultLocale);\n const candidate = buildManifest(validation.definition, localeWriter, parsedBinding.data);\n const parsedManifest = appManifestSchema.safeParse(candidate);\n\n if (!parsedManifest.success) {\n return {\n ok: false,\n issues: parsedManifest.error.issues.map((issue) => ({\n code: AppCompilerIssueCode.INVALID_MANIFEST,\n path: formatPath(issue.path),\n message: issue.message\n }))\n };\n }\n\n return {\n ok: true,\n manifest: parsedManifest.data\n };\n}\n\nexport function compileAppDefinitionOrThrow(\n input: unknown,\n binding: AppCompilationBinding\n): AppManifest {\n const result = compileAppDefinition(input, binding);\n\n if (!result.ok) {\n throw new AppCompilationError(result.issues);\n }\n\n return result.manifest;\n}\n\nexport type AppDefinitionValidationResult =\n { definition: AppDefinition; issues: []; ok: true } | { issues: AppCompilerIssue[]; ok: false };\n\nexport function validateAppDefinition(input: unknown): AppDefinitionValidationResult {\n const parsedDefinition = appDefinitionSchema.safeParse(input);\n\n if (!parsedDefinition.success) {\n return {\n ok: false,\n issues: parsedDefinition.error.issues.map((issue) => ({\n code: AppCompilerIssueCode.INVALID_DEFINITION,\n path: formatPath(issue.path),\n message: issue.message\n }))\n };\n }\n\n const issues = validateDefinition(parsedDefinition.data);\n return issues.length > 0\n ? { ok: false, issues }\n : { definition: parsedDefinition.data, issues: [], ok: true };\n}\n\nfunction validateDefinition(definition: AppDefinition): AppCompilerIssue[] {\n const issues: AppCompilerIssue[] = [];\n const capabilities = new Set(definition.capabilities.map((capability) => capability.key));\n const actions = new Set(definition.actions.map((action) => action.key));\n const intents = new Set(definition.intents.map((intent) => intent.key));\n const outcomes = new Set(definition.outcomes.map((outcome) => outcome.key));\n const knowledge = new Set(definition.knowledge.map((item) => item.key));\n const artifacts = new Set(\n definition.artifactContracts.map((artifact) => `${artifact.key}@${artifact.schemaVersion}`)\n );\n const artifactContracts = new Map(\n definition.artifactContracts.map((artifact) => [\n `${artifact.key}@${artifact.schemaVersion}`,\n artifact\n ])\n );\n const settings = new Set(definition.settings.fields.map((field) => field.key));\n const policies = new Set(definition.policies.rules.map((rule) => rule.key));\n const permissions = new Set(\n definition.connection.permissions.map((permission) => permission.key)\n );\n const declaredContextScopes = new Set([\n ...definition.context.defaultScopes,\n ...definition.context.optionalScopes\n ]);\n\n validateUnique(\n issues,\n \"capabilities\",\n definition.capabilities.map((item) => item.key)\n );\n validateUnique(\n issues,\n \"actions\",\n definition.actions.map((item) => item.key)\n );\n validateUnique(\n issues,\n \"intents\",\n definition.intents.map((item) => item.key)\n );\n validateUnique(\n issues,\n \"outcomes\",\n definition.outcomes.map((item) => item.key)\n );\n validateUnique(\n issues,\n \"artifactContracts\",\n definition.artifactContracts.map((item) => `${item.key}@${item.schemaVersion}`)\n );\n validateUnique(\n issues,\n \"knowledge\",\n definition.knowledge.map((item) => item.key)\n );\n validateUnique(\n issues,\n \"settings.fields\",\n definition.settings.fields.map((item) => item.key)\n );\n validateUnique(\n issues,\n \"policies.rules\",\n definition.policies.rules.map((item) => item.key)\n );\n validateUnique(\n issues,\n \"connection.permissions\",\n definition.connection.permissions.map((item) => item.key)\n );\n\n validateDefaultLocales(definition, issues);\n validateConnection(definition, permissions, issues);\n\n definition.artifactContracts.forEach((artifact, index) => {\n if (!artifact.audiences.includes(AppArtifactAudience.PRODUCING_APP)) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_ARTIFACT_CONTRACT,\n path: `artifactContracts.${index}.audiences`,\n message: `Artifact contract \"${artifact.key}@${artifact.schemaVersion}\" must include its producing App audience`\n });\n }\n\n if (new Set(artifact.audiences).size !== artifact.audiences.length) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_ARTIFACT_CONTRACT,\n path: `artifactContracts.${index}.audiences`,\n message: `Artifact contract \"${artifact.key}@${artifact.schemaVersion}\" repeats an audience`\n });\n }\n\n if (\n artifact.sensitivityLevel === \"HIGH\" &&\n artifact.audiences.includes(AppArtifactAudience.COMPOSED_APPS)\n ) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_ARTIFACT_CONTRACT,\n path: `artifactContracts.${index}.audiences`,\n message: `HIGH-sensitivity artifact \"${artifact.key}@${artifact.schemaVersion}\" cannot be shared with composed Apps`\n });\n }\n });\n\n definition.capabilities.forEach((capability, index) => {\n capability.actionKeys.forEach((actionKey) => {\n validateReference(issues, actions, `capabilities.${index}.actionKeys`, actionKey, \"action\");\n });\n });\n\n definition.actions.forEach((action, index) => {\n action.context.requiredScopes.forEach((scope) => {\n if (!declaredContextScopes.has(scope)) {\n issues.push({\n code: AppCompilerIssueCode.UNKNOWN_REFERENCE,\n path: `actions.${index}.context.requiredScopes`,\n message: `Action \"${action.key}\" requires undeclared App Context scope \"${scope}\"`\n });\n }\n });\n\n validateReference(\n issues,\n capabilities,\n `actions.${index}.capabilityKey`,\n action.capabilityKey,\n \"capability\"\n );\n\n action.outcomeKeys.forEach((outcomeKey) => {\n validateReference(issues, outcomes, `actions.${index}.outcomeKeys`, outcomeKey, \"outcome\");\n });\n\n action.inputArtifacts.forEach((artifact) => {\n validateReference(\n issues,\n artifacts,\n `actions.${index}.inputArtifacts`,\n `${artifact.artifactKey}@${artifact.schemaVersion}`,\n \"artifact contract\"\n );\n });\n\n action.outputArtifacts.forEach((artifact) => {\n validateReference(\n issues,\n artifacts,\n `actions.${index}.outputArtifacts`,\n `${artifact.artifactKey}@${artifact.schemaVersion}`,\n \"artifact contract\"\n );\n\n const contract = artifactContracts.get(`${artifact.artifactKey}@${artifact.schemaVersion}`);\n\n if (contract?.audiences.includes(AppArtifactAudience.COMPOSED_APPS) && !action.composable) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_ARTIFACT_CONTRACT,\n path: `actions.${index}.outputArtifacts`,\n message: `Action \"${action.key}\" must be composable to produce a cross-App artifact`\n });\n }\n });\n\n action.context.requiresSettings.forEach((settingKey) => {\n validateReference(\n issues,\n settings,\n `actions.${index}.context.requiresSettings`,\n settingKey,\n \"setting\"\n );\n });\n\n action.context.requiresPolicies.forEach((policyKey) => {\n validateReference(\n issues,\n policies,\n `actions.${index}.context.requiresPolicies`,\n policyKey,\n \"policy\"\n );\n });\n\n validateUnique(\n issues,\n `actions.${index}.context.requiresPolicies`,\n action.context.requiresPolicies\n );\n\n if (\n action.approval === AppApprovalMode.POLICY &&\n action.context.requiresPolicies.length === 0\n ) {\n issues.push({\n code: AppCompilerIssueCode.UNKNOWN_REFERENCE,\n path: `actions.${index}.context.requiresPolicies`,\n message: `Action \"${action.key}\" uses policy approval but declares no policy`\n });\n }\n\n for (const requiredScope of requiredAppActionContextScopes) {\n if (!action.context.requiredScopes.includes(requiredScope)) {\n issues.push({\n code: AppCompilerIssueCode.UNKNOWN_REFERENCE,\n path: `actions.${index}.context.requiredScopes`,\n message: `Action \"${action.key}\" must request the Core ${requiredScope} scope`\n });\n }\n }\n\n if (action.context.requiresPolicies.length > 0) {\n if (!action.context.requiredScopes.includes(\"app-installation.policies\")) {\n issues.push({\n code: AppCompilerIssueCode.UNKNOWN_REFERENCE,\n path: `actions.${index}.context.requiredScopes`,\n message: `Action \"${action.key}\" requires policy scope \"app-installation.policies\"`\n });\n }\n }\n\n if (\n action.sideEffect !== AppSideEffectType.READ_ONLY &&\n action.sideEffect !== AppSideEffectType.PROPOSAL_ONLY &&\n !action.idempotency.required\n ) {\n issues.push({\n code: AppCompilerIssueCode.IDEMPOTENCY_REQUIRED,\n path: `actions.${index}.idempotency.required`,\n message: `Action \"${action.key}\" changes external state and must require idempotency`\n });\n }\n });\n\n definition.intents.forEach((intent, index) => {\n intent.capabilityKeys.forEach((capabilityKey) => {\n validateReference(\n issues,\n capabilities,\n `intents.${index}.capabilityKeys`,\n capabilityKey,\n \"capability\"\n );\n });\n\n intent.actionKeys.forEach((actionKey) => {\n validateReference(issues, actions, `intents.${index}.actionKeys`, actionKey, \"action\");\n });\n\n intent.knowledgeKeys.forEach((knowledgeKey) => {\n validateReference(\n issues,\n knowledge,\n `intents.${index}.knowledgeKeys`,\n knowledgeKey,\n \"knowledge item\"\n );\n });\n\n if (intent.mode === AppIntentMode.ANSWER && intent.knowledgeKeys.length === 0) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_KNOWLEDGE,\n path: `intents.${index}.knowledgeKeys`,\n message: `Answer intent \"${intent.key}\" must declare at least one approved knowledge item`\n });\n }\n\n if (intent.mode === AppIntentMode.ANSWER) {\n intent.actionKeys.forEach((actionKey) => {\n const action = definition.actions.find((candidate) => candidate.key === actionKey);\n\n if (action && action.sideEffect !== AppSideEffectType.READ_ONLY) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_KNOWLEDGE,\n path: `intents.${index}.actionKeys`,\n message: `Answer intent \"${intent.key}\" may reference only read-only actions`\n });\n }\n });\n }\n\n const inputProperties = readSchemaProperties(intent.inputSchema);\n const schemaRequiredFields = readSchemaRequiredFields(intent.inputSchema);\n const declaredFields = [...intent.requiredFields, ...intent.optionalFields];\n const declaredFieldSet = new Set(declaredFields);\n\n validateUnique(issues, `intents.${index}.requiredFields`, intent.requiredFields);\n validateUnique(issues, `intents.${index}.optionalFields`, intent.optionalFields);\n\n declaredFields.forEach((field) => {\n if (!inputProperties.has(field)) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_INPUT_FIELD,\n path: `intents.${index}.inputSchema.properties`,\n message: `Field \"${field}\" is not declared in the intent input schema`\n });\n }\n });\n\n inputProperties.forEach((field) => {\n if (!declaredFieldSet.has(field)) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_INPUT_FIELD,\n path: `intents.${index}.inputSchema.properties.${field}`,\n message: `Input field \"${field}\" must be classified as required or optional`\n });\n }\n });\n\n intent.optionalFields.forEach((field) => {\n if (intent.requiredFields.includes(field)) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_INPUT_FIELD,\n path: `intents.${index}.optionalFields`,\n message: `Field \"${field}\" cannot be both required and optional`\n });\n }\n });\n\n intent.requiredFields.forEach((field) => {\n if (!schemaRequiredFields.has(field)) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_INPUT_FIELD,\n path: `intents.${index}.inputSchema.required`,\n message: `Required field \"${field}\" must be required by the intent input schema`\n });\n }\n });\n\n schemaRequiredFields.forEach((field) => {\n if (!intent.requiredFields.includes(field)) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_INPUT_FIELD,\n path: `intents.${index}.requiredFields`,\n message: `Schema-required field \"${field}\" must be declared as required`\n });\n }\n });\n\n Object.keys(intent.entityHints).forEach((field) => {\n if (!inputProperties.has(field)) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_INPUT_FIELD,\n path: `intents.${index}.entityHints.${field}`,\n message: `Entity hint \"${field}\" does not reference an intent input field`\n });\n }\n });\n\n Object.keys(intent.fieldQuestions).forEach((field) => {\n if (!inputProperties.has(field)) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_INPUT_FIELD,\n path: `intents.${index}.fieldQuestions.${field}`,\n message: `Clarification question \"${field}\" does not reference an intent input field`\n });\n }\n });\n\n if (intent.clarificationMode === AppClarificationMode.ASK_MISSING_FIELDS) {\n intent.requiredFields.forEach((field) => {\n if (!intent.fieldQuestions[field]) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_INPUT_FIELD,\n path: `intents.${index}.fieldQuestions.${field}`,\n message: `Required field \"${field}\" needs a localized clarification question`\n });\n }\n });\n }\n });\n\n definition.knowledge.forEach((item, index) => {\n if (item.source.type === AppKnowledgeSourceType.SETTING) {\n validateReference(\n issues,\n settings,\n `knowledge.${index}.source.settingKey`,\n item.source.settingKey,\n \"setting\"\n );\n }\n });\n\n validateFieldReferences(definition.settings.fields, \"settings.fields\", actions, issues);\n\n definition.policies.rules.forEach((rule, index) => {\n if (!rule.behaviors.some((behavior) => behavior.value === rule.defaultBehavior)) {\n issues.push({\n code: AppCompilerIssueCode.UNKNOWN_REFERENCE,\n path: `policies.rules.${index}.defaultBehavior`,\n message: `Unknown policy behavior \"${rule.defaultBehavior}\"`\n });\n }\n\n validateUnique(\n issues,\n `policies.rules.${index}.behaviors`,\n rule.behaviors.map((behavior) => behavior.value)\n );\n validateFieldReferences(\n rule.conditionFields,\n `policies.rules.${index}.conditionFields`,\n actions,\n issues\n );\n });\n\n definition.outcomes.forEach((outcome, index) => {\n validateReference(issues, actions, `outcomes.${index}.actionKey`, outcome.actionKey, \"action\");\n\n const action = definition.actions.find((candidate) => candidate.key === outcome.actionKey);\n\n outcome.nextActions.forEach((nextAction, nextActionIndex) => {\n if (!nextAction.artifactKey) {\n return;\n }\n\n const outputReferences =\n action?.outputArtifacts.filter(\n (artifact) => artifact.artifactKey === nextAction.artifactKey\n ) ?? [];\n\n if (outputReferences.length === 0) {\n issues.push({\n code: AppCompilerIssueCode.UNKNOWN_REFERENCE,\n path: `outcomes.${index}.nextActions.${nextActionIndex}.artifactKey`,\n message: `Next action \"${nextAction.key}\" references artifact \"${nextAction.artifactKey}\" that action \"${outcome.actionKey}\" does not produce`\n });\n return;\n }\n\n const hasSameIntentConsumer = definition.intents.some(\n (intent) =>\n intent.actionKeys.includes(outcome.actionKey) &&\n intent.actionKeys.some((actionKey) => {\n const consumer = definition.actions.find((candidate) => candidate.key === actionKey);\n\n return outputReferences.some((outputReference) =>\n consumer?.inputArtifacts.some(\n (inputReference) =>\n inputReference.artifactKey === outputReference.artifactKey &&\n inputReference.schemaVersion === outputReference.schemaVersion\n )\n );\n })\n );\n\n if (!hasSameIntentConsumer) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_ARTIFACT_CONTRACT,\n path: `outcomes.${index}.nextActions.${nextActionIndex}.artifactKey`,\n message: `Next action \"${nextAction.key}\" references artifact \"${nextAction.artifactKey}\" without a consumer in the producing intent`\n });\n }\n });\n });\n\n definition.publicActions.forEach((publicAction, index) => {\n validateReference(\n issues,\n intents,\n `publicActions.${index}.intentKey`,\n publicAction.intentKey,\n \"intent\"\n );\n publicAction.capabilityKeys.forEach((capabilityKey) => {\n validateReference(\n issues,\n capabilities,\n `publicActions.${index}.capabilityKeys`,\n capabilityKey,\n \"capability\"\n );\n });\n });\n\n definition.triggers.forEach((trigger, index) => {\n validateReference(\n issues,\n capabilities,\n `triggers.${index}.capabilityKey`,\n trigger.capabilityKey,\n \"capability\"\n );\n });\n\n definition.capabilities.forEach((capability, capabilityIndex) => {\n capability.actionKeys.forEach((actionKey) => {\n const action = definition.actions.find((candidate) => candidate.key === actionKey);\n\n if (action && action.capabilityKey !== capability.key) {\n issues.push({\n code: AppCompilerIssueCode.UNKNOWN_REFERENCE,\n path: `capabilities.${capabilityIndex}.actionKeys`,\n message: `Action \"${actionKey}\" belongs to capability \"${action.capabilityKey}\"`\n });\n }\n });\n });\n\n if (definition.runtime.host === AppRuntimeHost.DECLARATIVE) {\n validateDeclarativeWorkflows(definition, actions, artifacts, settings, issues);\n }\n\n return issues;\n}\n\nfunction validateConnection(\n definition: AppDefinition,\n permissions: Set<string>,\n issues: AppCompilerIssue[]\n): void {\n if (\n definition.connection.type === AppConnectionType.NONE &&\n (definition.connection.required || definition.connection.permissions.length > 0)\n ) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_CONNECTION,\n path: \"connection\",\n message: \"A NONE connection cannot be required or request permissions\"\n });\n }\n\n if (\n definition.runtime.host === AppRuntimeHost.DECLARATIVE &&\n definition.connection.type !== AppConnectionType.NONE &&\n !definition.connection.required\n ) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_CONNECTION,\n path: \"connection.required\",\n message: \"API-key and OAuth connections must be required for declarative execution\"\n });\n }\n\n if (definition.runtime.host === AppRuntimeHost.REMOTE) {\n if (definition.runtime.connectionRequired !== definition.connection.required) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_CONNECTION,\n path: \"runtime.connectionRequired\",\n message: \"Remote runtime connectionRequired must match the public connection contract\"\n });\n }\n\n return;\n }\n\n if (definition.runtime.connection.type !== definition.connection.type) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_CONNECTION,\n path: \"runtime.connection.type\",\n message: \"Declarative runtime connection type must match the public connection contract\"\n });\n }\n\n if (definition.runtime.connection.type === AppConnectionType.API_KEY) {\n validateUnique(\n issues,\n \"runtime.connection.fields.key\",\n definition.runtime.connection.fields.map((field) => field.key)\n );\n validateUnique(\n issues,\n \"runtime.connection.fields.secretRef\",\n definition.runtime.connection.fields.map((field) => field.secretRef)\n );\n validateUnique(\n issues,\n \"runtime.connection.fields.headerName\",\n definition.runtime.connection.fields.map((field) => field.headerName.toLowerCase())\n );\n definition.runtime.connection.fields.forEach((field, index) => {\n validateUnique(\n issues,\n `runtime.connection.fields.${index}.allowedOrigins`,\n field.allowedOrigins.map((origin) => new URL(origin).origin)\n );\n });\n }\n\n if (definition.runtime.connection.type === AppConnectionType.OAUTH2) {\n validateUnique(\n issues,\n \"runtime.connection.resourceOrigins\",\n definition.runtime.connection.resourceOrigins.map((origin) => new URL(origin).origin)\n );\n definition.runtime.connection.scopes.forEach((scope, index) => {\n validateReference(\n issues,\n permissions,\n `runtime.connection.scopes.${index}.permissionKey`,\n scope.permissionKey,\n \"connection permission\"\n );\n });\n }\n}\n\nfunction validateDeclarativeWorkflows(\n definition: AppDefinition,\n actions: Set<string>,\n artifacts: Set<string>,\n settings: Set<string>,\n issues: AppCompilerIssue[]\n): void {\n if (definition.runtime.host !== AppRuntimeHost.DECLARATIVE) {\n return;\n }\n\n validateUnique(\n issues,\n \"runtime.workflows\",\n definition.runtime.workflows.map((workflow) => workflow.actionKey)\n );\n\n const workflowsByAction = new Set(\n definition.runtime.workflows.map((workflow) => workflow.actionKey)\n );\n\n actions.forEach((actionKey) => {\n if (!workflowsByAction.has(actionKey)) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_WORKFLOW,\n path: \"runtime.workflows\",\n message: `Declarative action \"${actionKey}\" has no workflow`\n });\n }\n });\n\n definition.runtime.workflows.forEach((workflow, workflowIndex) => {\n validateReference(\n issues,\n actions,\n `runtime.workflows.${workflowIndex}.actionKey`,\n workflow.actionKey,\n \"action\"\n );\n validateWorkflow(workflow, workflowIndex, artifacts, settings, definition, issues);\n });\n}\n\nfunction validateWorkflow(\n workflow: AppWorkflowDefinition,\n workflowIndex: number,\n artifacts: Set<string>,\n settings: Set<string>,\n definition: AppDefinition,\n issues: AppCompilerIssue[]\n): void {\n const basePath = `runtime.workflows.${workflowIndex}`;\n const stepKeys = new Set(workflow.steps.map((step) => step.key));\n const secretRefs = readRuntimeSecretRefs(definition);\n const secretHeaders = readRuntimeSecretHeaders(definition);\n const secretOrigins = readRuntimeSecretOrigins(definition);\n const graph = new Map(workflow.steps.map((step) => [step.key, new Set<string>()]));\n const conditionTargets = new Map<string, string>();\n const resultStepKeys: string[] = [];\n const stepOutputReferences: Array<{\n consumerStepKey: string;\n path: string;\n producerStepKey: string;\n }> = [];\n\n validateUnique(\n issues,\n `${basePath}.steps`,\n workflow.steps.map((step) => step.key)\n );\n\n workflow.steps.forEach((step, stepIndex) => {\n const stepPath = `${basePath}.steps.${stepIndex}`;\n\n if (step.type === AppWorkflowStepType.HTTP_REQUEST) {\n if (step.method === AppHttpMethod.GET && step.body) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_WORKFLOW,\n path: `${stepPath}.body`,\n message: \"GET workflow requests cannot contain a body\"\n });\n }\n\n if (step.method !== AppHttpMethod.GET) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_WORKFLOW,\n path: `${stepPath}.method`,\n message:\n \"Generic declarative HTTP writes require a reviewed provider adapter with durable idempotency\"\n });\n }\n\n if (\n definition.runtime.host === AppRuntimeHost.DECLARATIVE &&\n definition.runtime.connection.type === AppConnectionType.API_KEY &&\n !Object.values(step.headers).some(\n (expression) => expression.source === AppValueSource.SECRET\n )\n ) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_WORKFLOW,\n path: `${stepPath}.headers`,\n message: \"API-key workflow requests must include an authorized secret header\"\n });\n }\n\n if (\n definition.runtime.host === AppRuntimeHost.DECLARATIVE &&\n definition.runtime.connection.type === AppConnectionType.OAUTH2 &&\n !definition.runtime.connection.resourceOrigins\n .map((origin) => new URL(origin).origin)\n .includes(new URL(step.url).origin)\n ) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_WORKFLOW,\n path: `${stepPath}.url`,\n message: \"OAuth credentials are not authorized for this workflow origin\"\n });\n }\n }\n\n step.dependsOn.forEach((dependency) => {\n validateReference(issues, stepKeys, `${stepPath}.dependsOn`, dependency, \"workflow step\");\n addGraphEdge(graph, dependency, step.key);\n });\n\n if (step.type === AppWorkflowStepType.CONDITION) {\n validateReference(issues, stepKeys, `${stepPath}.whenTrue`, step.whenTrue, \"workflow step\");\n addGraphEdge(graph, step.key, step.whenTrue);\n registerConditionTarget(\n conditionTargets,\n step.whenTrue,\n step.key,\n `${stepPath}.whenTrue`,\n issues\n );\n\n if (step.whenFalse) {\n validateReference(\n issues,\n stepKeys,\n `${stepPath}.whenFalse`,\n step.whenFalse,\n \"workflow step\"\n );\n addGraphEdge(graph, step.key, step.whenFalse);\n registerConditionTarget(\n conditionTargets,\n step.whenFalse,\n step.key,\n `${stepPath}.whenFalse`,\n issues\n );\n }\n }\n\n if (step.type === AppWorkflowStepType.EMIT_ARTIFACT) {\n validateReference(\n issues,\n artifacts,\n `${stepPath}.artifactKey`,\n `${step.artifactKey}@${step.schemaVersion}`,\n \"artifact contract\"\n );\n }\n\n if (step.type === AppWorkflowStepType.EMIT_RESULT) {\n resultStepKeys.push(step.key);\n const outcome = definition.outcomes.find((candidate) => candidate.key === step.outcomeKey);\n\n if (!outcome || outcome.actionKey !== workflow.actionKey) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_WORKFLOW,\n path: `${stepPath}.outcomeKey`,\n message: `Outcome \"${step.outcomeKey}\" does not belong to action \"${workflow.actionKey}\"`\n });\n }\n }\n\n readStepExpressionEntries(step).forEach(\n ({ expression, path, secretAllowed, secretHeaderName }) => {\n if (expression.source === AppValueSource.STEP_OUTPUT) {\n validateReference(\n issues,\n stepKeys,\n `${stepPath}.${path}.stepKey`,\n expression.stepKey,\n \"workflow step\"\n );\n stepOutputReferences.push({\n consumerStepKey: step.key,\n path: `${stepPath}.${path}.stepKey`,\n producerStepKey: expression.stepKey\n });\n }\n\n if (expression.source === AppValueSource.SETTING) {\n validateReference(issues, settings, `${stepPath}.${path}.key`, expression.key, \"setting\");\n }\n\n if (expression.source === AppValueSource.SECRET) {\n validateReference(\n issues,\n secretRefs,\n `${stepPath}.${path}.key`,\n expression.key,\n \"runtime secret reference\"\n );\n\n if (!secretAllowed) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_WORKFLOW,\n path: `${stepPath}.${path}`,\n message: \"Secrets may only be resolved into HTTP request headers\"\n });\n } else if (\n !secretHeaderName ||\n secretHeaders.get(expression.key) !== secretHeaderName.toLowerCase()\n ) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_WORKFLOW,\n path: `${stepPath}.${path}`,\n message: `Secret reference \"${expression.key}\" is not authorized for header \"${secretHeaderName ?? \"unknown\"}\"`\n });\n } else if (\n step.type !== AppWorkflowStepType.HTTP_REQUEST ||\n !secretOrigins.get(expression.key)?.has(new URL(step.url).origin)\n ) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_WORKFLOW,\n path: `${stepPath}.${path}`,\n message: `Secret reference \"${expression.key}\" is not authorized for this workflow origin`\n });\n }\n }\n }\n );\n });\n\n if (resultStepKeys.length === 0) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_WORKFLOW,\n path: `${basePath}.steps`,\n message: `Workflow for action \"${workflow.actionKey}\" must emit a result`\n });\n }\n\n stepOutputReferences.forEach(({ consumerStepKey, path, producerStepKey }) => {\n if (stepKeys.has(producerStepKey) && !hasGraphPath(graph, producerStepKey, consumerStepKey)) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_WORKFLOW,\n path,\n message: `Step \"${consumerStepKey}\" may only read output from one of its dependencies`\n });\n }\n });\n\n resultStepKeys.forEach((stepKey) => {\n if ((graph.get(stepKey)?.size ?? 0) > 0) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_WORKFLOW,\n path: `${basePath}.steps`,\n message: `Result step \"${stepKey}\" must be terminal`\n });\n }\n });\n\n if (hasCycle(graph)) {\n issues.push({\n code: AppCompilerIssueCode.WORKFLOW_CYCLE,\n path: `${basePath}.steps`,\n message: `Workflow for action \"${workflow.actionKey}\" contains a cycle`\n });\n }\n}\n\nfunction registerConditionTarget(\n targets: Map<string, string>,\n targetStepKey: string,\n conditionStepKey: string,\n path: string,\n issues: AppCompilerIssue[]\n): void {\n const existingCondition = targets.get(targetStepKey);\n\n if (existingCondition) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_WORKFLOW,\n path,\n message: `Step \"${targetStepKey}\" is already controlled by condition \"${existingCondition}\"`\n });\n return;\n }\n\n targets.set(targetStepKey, conditionStepKey);\n}\n\nfunction addGraphEdge(graph: Map<string, Set<string>>, from: string, to: string): void {\n graph.get(from)?.add(to);\n}\n\ninterface StepExpressionEntry {\n expression: AppValueExpression;\n path: string;\n secretAllowed: boolean;\n secretHeaderName?: string;\n}\n\nfunction readStepExpressionEntries(\n step: AppWorkflowDefinition[\"steps\"][number]\n): StepExpressionEntry[] {\n switch (step.type) {\n case AppWorkflowStepType.HTTP_REQUEST:\n return [\n ...Object.entries(step.headers).map(([key, expression]) => ({\n expression,\n path: `headers.${key}`,\n secretAllowed: true,\n secretHeaderName: key\n })),\n ...Object.entries(step.query).map(([key, expression]) => ({\n expression,\n path: `query.${key}`,\n secretAllowed: false\n })),\n ...(step.body ? [{ expression: step.body, path: \"body\", secretAllowed: false }] : [])\n ];\n case AppWorkflowStepType.TRANSFORM:\n return Object.entries(step.mapping).map(([key, expression]) => ({\n expression,\n path: `mapping.${key}`,\n secretAllowed: false\n }));\n case AppWorkflowStepType.CONDITION:\n return [{ expression: step.condition, path: \"condition\", secretAllowed: false }];\n case AppWorkflowStepType.TEMPLATE:\n return Object.entries(step.variables).map(([key, expression]) => ({\n expression,\n path: `variables.${key}`,\n secretAllowed: false\n }));\n case AppWorkflowStepType.EMIT_ARTIFACT:\n return [{ expression: step.value, path: \"value\", secretAllowed: false }];\n case AppWorkflowStepType.EMIT_BUBBLE:\n return [{ expression: step.descriptor, path: \"descriptor\", secretAllowed: false }];\n case AppWorkflowStepType.EMIT_RESULT:\n return [{ expression: step.output, path: \"output\", secretAllowed: false }];\n }\n}\n\nfunction readRuntimeSecretRefs(definition: AppDefinition): Set<string> {\n if (definition.runtime.host !== AppRuntimeHost.DECLARATIVE) {\n return new Set();\n }\n\n if (definition.runtime.connection.type === AppConnectionType.API_KEY) {\n return new Set(definition.runtime.connection.fields.map((field) => field.secretRef));\n }\n\n if (definition.runtime.connection.type === AppConnectionType.OAUTH2) {\n return new Set();\n }\n\n return new Set();\n}\n\nfunction readRuntimeSecretHeaders(definition: AppDefinition): Map<string, string> {\n if (\n definition.runtime.host !== AppRuntimeHost.DECLARATIVE ||\n definition.runtime.connection.type !== AppConnectionType.API_KEY\n ) {\n return new Map();\n }\n\n return new Map(\n definition.runtime.connection.fields.map((field) => [\n field.secretRef,\n field.headerName.toLowerCase()\n ])\n );\n}\n\nfunction readRuntimeSecretOrigins(definition: AppDefinition): Map<string, ReadonlySet<string>> {\n if (\n definition.runtime.host !== AppRuntimeHost.DECLARATIVE ||\n definition.runtime.connection.type !== AppConnectionType.API_KEY\n ) {\n return new Map();\n }\n\n return new Map(\n definition.runtime.connection.fields.map((field) => [\n field.secretRef,\n new Set(field.allowedOrigins.map((origin) => new URL(origin).origin))\n ])\n );\n}\n\nfunction hasGraphPath(graph: Map<string, Set<string>>, from: string, to: string): boolean {\n const queue = [from];\n const visited = new Set<string>();\n\n while (queue.length > 0) {\n const current = queue.shift();\n\n if (!current || visited.has(current)) {\n continue;\n }\n\n visited.add(current);\n\n for (const next of graph.get(current) ?? []) {\n if (next === to) {\n return true;\n }\n\n queue.push(next);\n }\n }\n\n return false;\n}\n\nfunction hasCycle(graph: Map<string, Set<string>>): boolean {\n const visiting = new Set<string>();\n const visited = new Set<string>();\n\n const visit = (node: string): boolean => {\n if (visiting.has(node)) {\n return true;\n }\n\n if (visited.has(node)) {\n return false;\n }\n\n visiting.add(node);\n\n for (const next of graph.get(node) ?? []) {\n if (graph.has(next) && visit(next)) {\n return true;\n }\n }\n\n visiting.delete(node);\n visited.add(node);\n return false;\n };\n\n return [...graph.keys()].some(visit);\n}\n\nfunction validateDefaultLocales(definition: AppDefinition, issues: AppCompilerIssue[]): void {\n const fields = collectLocalizedFields(definition);\n\n fields.forEach(({ path, value }) => {\n if (!value[definition.defaultLocale]) {\n issues.push({\n code: AppCompilerIssueCode.MISSING_DEFAULT_LOCALE,\n path,\n message: `Copy must include the default locale \"${definition.defaultLocale}\"`\n });\n }\n });\n\n const exampleCollections: Array<{ path: string; value: Record<string, string[]> }> = [\n ...definition.intents.flatMap((intent, index) => [\n { path: `intents.${index}.examples`, value: intent.examples },\n { path: `intents.${index}.negativeExamples`, value: intent.negativeExamples }\n ]),\n { path: \"customRules.examples\", value: definition.customRules.examples },\n { path: \"customRules.unsupportedExamples\", value: definition.customRules.unsupportedExamples }\n ];\n\n exampleCollections.forEach(({ path, value }) => {\n if (Object.keys(value).length > 0 && !value[definition.defaultLocale]) {\n issues.push({\n code: AppCompilerIssueCode.MISSING_DEFAULT_LOCALE,\n path,\n message: `Examples must include the default locale \"${definition.defaultLocale}\"`\n });\n }\n });\n}\n\nfunction collectLocalizedFields(\n definition: AppDefinition\n): Array<{ path: string; value: LocalizedText }> {\n const fields: Array<{ path: string; value: LocalizedText }> = [\n { path: \"app.name\", value: definition.app.name },\n { path: \"app.shortDescription\", value: definition.app.shortDescription },\n { path: \"app.longDescription\", value: definition.app.longDescription },\n { path: \"connection.title\", value: definition.connection.title },\n { path: \"connection.description\", value: definition.connection.description }\n ];\n\n definition.connection.permissions.forEach((permission, index) => {\n fields.push(\n { path: `connection.permissions.${index}.label`, value: permission.label },\n { path: `connection.permissions.${index}.description`, value: permission.description }\n );\n });\n\n definition.capabilities.forEach((capability, index) => {\n fields.push(\n { path: `capabilities.${index}.label`, value: capability.label },\n { path: `capabilities.${index}.description`, value: capability.description }\n );\n });\n\n definition.actions.forEach((action, index) => {\n fields.push(\n { path: `actions.${index}.label`, value: action.label },\n { path: `actions.${index}.description`, value: action.description }\n );\n });\n\n definition.intents.forEach((intent, index) => {\n fields.push(\n { path: `intents.${index}.title`, value: intent.title },\n { path: `intents.${index}.description`, value: intent.description },\n { path: `intents.${index}.responseInstructions`, value: intent.responseInstructions },\n { path: `intents.${index}.missingFieldsQuestion`, value: intent.missingFieldsQuestion }\n );\n\n Object.entries(intent.fieldQuestions).forEach(([field, value]) => {\n fields.push({ path: `intents.${index}.fieldQuestions.${field}`, value });\n });\n });\n\n definition.knowledge.forEach((item, index) => {\n fields.push({ path: `knowledge.${index}.label`, value: item.label });\n\n if (item.description) {\n fields.push({ path: `knowledge.${index}.description`, value: item.description });\n }\n });\n\n definition.outcomes.forEach((outcome, index) => {\n fields.push(\n { path: `outcomes.${index}.title`, value: outcome.title },\n { path: `outcomes.${index}.description`, value: outcome.description }\n );\n\n outcome.nextActions.forEach((action, actionIndex) => {\n fields.push({\n path: `outcomes.${index}.nextActions.${actionIndex}.label`,\n value: action.label\n });\n });\n });\n\n definition.artifactContracts.forEach((artifact, index) => {\n fields.push({\n path: `artifactContracts.${index}.description`,\n value: artifact.description\n });\n });\n\n definition.publicActions.forEach((action, index) => {\n fields.push(\n { path: `publicActions.${index}.label`, value: action.label },\n { path: `publicActions.${index}.description`, value: action.description }\n );\n });\n\n collectFieldCopy(definition.settings.fields, \"settings.fields\", fields);\n\n definition.policies.rules.forEach((rule, index) => {\n fields.push(\n { path: `policies.rules.${index}.label`, value: rule.label },\n { path: `policies.rules.${index}.description`, value: rule.description }\n );\n collectFieldCopy(rule.conditionFields, `policies.rules.${index}.conditionFields`, fields);\n rule.behaviors.forEach((behavior, behaviorIndex) => {\n fields.push({\n path: `policies.rules.${index}.behaviors.${behaviorIndex}.label`,\n value: behavior.label\n });\n });\n });\n\n definition.context.copy.receives.forEach((item, index) => {\n fields.push(\n { path: `context.copy.receives.${index}.label`, value: item.label },\n { path: `context.copy.receives.${index}.description`, value: item.description }\n );\n });\n definition.context.copy.doesNotReceive.forEach((item, index) => {\n fields.push(\n { path: `context.copy.doesNotReceive.${index}.label`, value: item.label },\n {\n path: `context.copy.doesNotReceive.${index}.description`,\n value: item.description\n }\n );\n });\n\n if (\n definition.runtime.host === AppRuntimeHost.DECLARATIVE &&\n definition.runtime.connection.type === AppConnectionType.API_KEY\n ) {\n definition.runtime.connection.fields.forEach((field, index) => {\n fields.push(\n { path: `runtime.connection.fields.${index}.label`, value: field.label },\n { path: `runtime.connection.fields.${index}.description`, value: field.description }\n );\n });\n }\n\n return fields;\n}\n\nfunction collectFieldCopy(\n source: AppDefinition[\"settings\"][\"fields\"],\n path: string,\n target: Array<{ path: string; value: LocalizedText }>\n): void {\n source.forEach((field, index) => {\n target.push({ path: `${path}.${index}.label`, value: field.label });\n\n if (field.description) {\n target.push({ path: `${path}.${index}.description`, value: field.description });\n }\n\n if (field.help) {\n target.push({ path: `${path}.${index}.help`, value: field.help });\n }\n\n field.options?.forEach((option, optionIndex) => {\n target.push({ path: `${path}.${index}.options.${optionIndex}.label`, value: option.label });\n });\n });\n}\n\nfunction buildManifest(\n definition: AppDefinition,\n copy: LocaleWriter,\n binding: AppCompilationBinding\n): unknown {\n const appId = binding.appId;\n const namespaced = (key: string) => `${appId}.${key}`;\n const copyKey = (path: string, value: LocalizedText) => copy.add(`app.${appId}.${path}`, value);\n const compileField = (field: AppDefinition[\"settings\"][\"fields\"][number], path: string) => ({\n key: field.key,\n type: field.type,\n labelKey: copyKey(`${path}.${field.key}.label`, field.label),\n ...(field.description\n ? { descriptionKey: copyKey(`${path}.${field.key}.description`, field.description) }\n : {}),\n ...(field.help ? { helpKey: copyKey(`${path}.${field.key}.help`, field.help) } : {}),\n required: field.required,\n ...(field.default === undefined ? {} : { default: field.default }),\n ...(field.validation ? { validation: field.validation } : {}),\n ...(field.options\n ? {\n options: field.options.map((option, index) => ({\n value: option.value,\n labelKey: copyKey(`${path}.${field.key}.options.${index}`, option.label)\n }))\n }\n : {}),\n ...(field.optionsSource\n ? {\n optionsSource: {\n type: field.optionsSource.type,\n actionId: namespaced(field.optionsSource.actionKey),\n cacheTtlSeconds: field.optionsSource.cacheTtlSeconds,\n outputPath: field.optionsSource.outputPath,\n ...(field.optionsSource.valueField\n ? { valueField: field.optionsSource.valueField }\n : {}),\n ...(field.optionsSource.labelField\n ? { labelField: field.optionsSource.labelField }\n : {})\n }\n }\n : {})\n });\n\n const runtime =\n definition.runtime.host === AppRuntimeHost.REMOTE\n ? definition.runtime\n : {\n host: AppRuntimeHost.DECLARATIVE,\n connection:\n definition.runtime.connection.type === AppConnectionType.API_KEY\n ? {\n type: AppConnectionType.API_KEY,\n fields: definition.runtime.connection.fields.map((field) => ({\n key: field.key,\n allowedOrigins: field.allowedOrigins.map((origin) => new URL(origin).origin),\n headerName: field.headerName.toLowerCase(),\n labelKey: copyKey(`runtime.connection.${field.key}.label`, field.label),\n descriptionKey: copyKey(\n `runtime.connection.${field.key}.description`,\n field.description\n ),\n secretRef: field.secretRef\n }))\n }\n : definition.runtime.connection.type === AppConnectionType.OAUTH2\n ? {\n ...definition.runtime.connection,\n resourceOrigins: definition.runtime.connection.resourceOrigins.map(\n (origin) => new URL(origin).origin\n )\n }\n : definition.runtime.connection,\n workflows: definition.runtime.workflows.map((workflow) => ({\n actionId: namespaced(workflow.actionKey),\n steps: workflow.steps.map((step) => {\n if (step.type === AppWorkflowStepType.EMIT_RESULT) {\n return {\n key: step.key,\n dependsOn: step.dependsOn,\n type: step.type,\n outcomeId: namespaced(step.outcomeKey),\n output: step.output\n };\n }\n\n if (step.type === AppWorkflowStepType.EMIT_ARTIFACT) {\n return {\n key: step.key,\n dependsOn: step.dependsOn,\n type: step.type,\n artifactId: namespaced(step.artifactKey),\n schemaVersion: step.schemaVersion,\n value: step.value\n };\n }\n\n return step;\n })\n }))\n };\n\n return {\n manifestVersion: appManifestVersion,\n app: {\n id: appId,\n slug: binding.slug,\n version: binding.releaseVersion,\n nameKey: copyKey(\"metadata.name\", definition.app.name),\n shortDescriptionKey: copyKey(\"metadata.short-description\", definition.app.shortDescription),\n longDescriptionKey: copyKey(\"metadata.long-description\", definition.app.longDescription),\n categoryId: definition.app.categoryId,\n ...(definition.app.icon ? { icon: definition.app.icon } : {}),\n ...(definition.app.providerName ? { providerName: definition.app.providerName } : {}),\n official: binding.appOfficial,\n developer: binding.developer,\n publication: definition.publication\n },\n connection: {\n type: definition.connection.type,\n required: definition.connection.required,\n titleKey: copyKey(\"connection.title\", definition.connection.title),\n descriptionKey: copyKey(\"connection.description\", definition.connection.description),\n permissions: definition.connection.permissions.map((permission) => ({\n key: permission.key,\n labelKey: copyKey(`connection.permissions.${permission.key}.label`, permission.label),\n descriptionKey: copyKey(\n `connection.permissions.${permission.key}.description`,\n permission.description\n ),\n sensitivity: permission.sensitivity\n }))\n },\n intents: definition.intents.map((intent) => ({\n id: namespaced(intent.key),\n mode: intent.mode,\n titleKey: copyKey(`intents.${intent.key}.title`, intent.title),\n descriptionKey: copyKey(`intents.${intent.key}.description`, intent.description),\n responseInstructionsKey: copyKey(\n `intents.${intent.key}.response-instructions`,\n intent.responseInstructions\n ),\n examples: intent.examples,\n negativeExamples: intent.negativeExamples,\n entityHints: intent.entityHints,\n inputSchema: intent.inputSchema,\n requiredFields: intent.requiredFields,\n optionalFields: intent.optionalFields,\n knowledgeIds: intent.knowledgeKeys.map(namespaced),\n capabilityIds: intent.capabilityKeys.map(namespaced),\n actionIds: intent.actionKeys.map(namespaced),\n riskLevel: intent.riskLevel,\n allowedOrigins: intent.allowedOrigins,\n clarificationMode: intent.clarificationMode,\n missingFieldsQuestionKey: copyKey(\n `intents.${intent.key}.clarification.missing-fields`,\n intent.missingFieldsQuestion\n ),\n fieldQuestionKeys: Object.fromEntries(\n Object.entries(intent.fieldQuestions).map(([field, value]) => [\n field,\n copyKey(`intents.${intent.key}.clarification.${field}`, value)\n ])\n ),\n requesterReview: intent.requesterReview\n })),\n capabilities: definition.capabilities.map((capability) => ({\n id: namespaced(capability.key),\n labelKey: copyKey(`capabilities.${capability.key}.label`, capability.label),\n descriptionKey: copyKey(`capabilities.${capability.key}.description`, capability.description),\n inputSchema: capability.inputSchema,\n outputSchema: capability.outputSchema,\n riskLevel: capability.riskLevel,\n approval: capability.approval,\n actionIds: capability.actionKeys.map(namespaced)\n })),\n actions: definition.actions.map((action) => ({\n id: namespaced(action.key),\n capabilityId: namespaced(action.capabilityKey),\n labelKey: copyKey(`actions.${action.key}.label`, action.label),\n descriptionKey: copyKey(`actions.${action.key}.description`, action.description),\n composable: action.composable,\n context: action.context,\n dataAccessLevel: action.dataAccessLevel,\n inputSchema: action.inputSchema,\n outputSchema: action.outputSchema,\n inputArtifacts: action.inputArtifacts.map((artifact) => ({\n artifactId: namespaced(artifact.artifactKey),\n schemaVersion: artifact.schemaVersion,\n required: artifact.required,\n cardinality: artifact.cardinality\n })),\n outputArtifacts: action.outputArtifacts.map((artifact) => ({\n artifactId: namespaced(artifact.artifactKey),\n schemaVersion: artifact.schemaVersion,\n required: artifact.required,\n cardinality: artifact.cardinality\n })),\n riskLevel: action.riskLevel,\n sideEffect: action.sideEffect,\n approval: action.approval,\n timeoutMs: action.timeoutMs,\n idempotency: action.idempotency,\n retry: action.retry,\n outcomeIds: action.outcomeKeys.map(namespaced)\n })),\n triggers: definition.triggers.map((trigger) => ({\n id: namespaced(trigger.key),\n event: namespaced(trigger.eventKey),\n capabilityId: namespaced(trigger.capabilityKey),\n riskLevel: trigger.riskLevel,\n inputSchema: trigger.inputSchema\n })),\n resources: definition.resources.map(namespaced),\n knowledge: definition.knowledge.map((item) => ({\n id: namespaced(item.key),\n labelKey: copyKey(`knowledge.${item.key}.label`, item.label),\n ...(item.description\n ? { descriptionKey: copyKey(`knowledge.${item.key}.description`, item.description) }\n : {}),\n audience: item.audience,\n source: item.source\n })),\n artifactContracts: definition.artifactContracts.map((artifact) => ({\n audiences: artifact.audiences,\n id: namespaced(artifact.key),\n schemaVersion: artifact.schemaVersion,\n schema: artifact.schema,\n descriptionKey: copyKey(`artifacts.${artifact.key}.description`, artifact.description),\n sensitivityLevel: artifact.sensitivityLevel\n })),\n context: {\n defaultScopes: definition.context.defaultScopes,\n optionalScopes: definition.context.optionalScopes,\n prohibitedScopes: definition.context.prohibitedScopes,\n copy: {\n receives: definition.context.copy.receives.map((item) => ({\n scope: item.scope,\n labelKey: copyKey(`context.receives.${item.scope}.label`, item.label),\n descriptionKey: copyKey(`context.receives.${item.scope}.description`, item.description)\n })),\n doesNotReceive: definition.context.copy.doesNotReceive.map((item) => ({\n scope: item.scope,\n labelKey: copyKey(`context.does-not-receive.${item.scope}.label`, item.label),\n descriptionKey: copyKey(\n `context.does-not-receive.${item.scope}.description`,\n item.description\n )\n }))\n }\n },\n settings: {\n schemaVersion: appSettingsSchemaVersion,\n fields: definition.settings.fields.map((field) => compileField(field, \"settings\"))\n },\n policies: {\n schemaVersion: appPoliciesSchemaVersion,\n rules: definition.policies.rules.map((rule) => ({\n key: rule.key,\n labelKey: copyKey(`policies.${rule.key}.label`, rule.label),\n descriptionKey: copyKey(`policies.${rule.key}.description`, rule.description),\n conditionFields: rule.conditionFields.map((field) =>\n compileField(field, `policies.${rule.key}.conditions`)\n ),\n behaviors: rule.behaviors.map((behavior) => ({\n effect: behavior.effect,\n value: behavior.value,\n labelKey: copyKey(`policies.${rule.key}.behaviors.${behavior.value}`, behavior.label)\n })),\n defaultBehavior: rule.defaultBehavior\n }))\n },\n customRules: definition.customRules,\n publicActions: definition.publicActions.map((action) => ({\n id: namespaced(action.key),\n intentId: namespaced(action.intentKey),\n labelKey: copyKey(`public-actions.${action.key}.label`, action.label),\n descriptionKey: copyKey(`public-actions.${action.key}.description`, action.description),\n capabilityIds: action.capabilityKeys.map(namespaced),\n allowedOrigins: action.allowedOrigins,\n riskLevel: action.riskLevel\n })),\n outcomes: definition.outcomes.map((outcome) => ({\n id: namespaced(outcome.key),\n actionId: namespaced(outcome.actionKey),\n status: outcome.status,\n titleKey: copyKey(`outcomes.${outcome.key}.title`, outcome.title),\n descriptionKey: copyKey(`outcomes.${outcome.key}.description`, outcome.description),\n schema: outcome.schema,\n nextActions: outcome.nextActions.map((action) => ({\n ...(action.artifactKey ? { artifactId: namespaced(action.artifactKey) } : {}),\n id: namespaced(action.key),\n labelKey: copyKey(`outcomes.${outcome.key}.next-actions.${action.key}`, action.label)\n }))\n })),\n runtime,\n locales: {\n defaultLocale: definition.defaultLocale,\n messages: copy.messages\n }\n };\n}\n\nclass LocaleWriter {\n readonly messages: Record<string, Record<string, string>> = {};\n\n constructor(defaultLocale: string) {\n this.messages[defaultLocale] = {};\n }\n\n add(key: string, values: LocalizedText): string {\n Object.entries(values).forEach(([locale, value]) => {\n const messages = this.messages[locale] ?? {};\n messages[key] = value;\n this.messages[locale] = messages;\n });\n\n return key;\n }\n}\n\nfunction validateUnique(issues: AppCompilerIssue[], path: string, values: string[]): void {\n const seen = new Set<string>();\n\n values.forEach((value, index) => {\n if (seen.has(value)) {\n issues.push({\n code: AppCompilerIssueCode.DUPLICATE_ID,\n path: `${path}.${index}`,\n message: `Duplicate identifier \"${value}\"`\n });\n }\n\n seen.add(value);\n });\n}\n\nfunction validateReference(\n issues: AppCompilerIssue[],\n available: Set<string>,\n path: string,\n value: string,\n kind: string\n): void {\n if (!available.has(value)) {\n issues.push({\n code: AppCompilerIssueCode.UNKNOWN_REFERENCE,\n path,\n message: `Unknown ${kind} \"${value}\"`\n });\n }\n}\n\nfunction validateFieldReferences(\n fields: AppDefinition[\"settings\"][\"fields\"],\n path: string,\n actions: Set<string>,\n issues: AppCompilerIssue[]\n): void {\n validateUnique(\n issues,\n path,\n fields.map((field) => field.key)\n );\n\n fields.forEach((field, index) => {\n if (field.optionsSource) {\n validateReference(\n issues,\n actions,\n `${path}.${index}.optionsSource.actionKey`,\n field.optionsSource.actionKey,\n \"action\"\n );\n }\n });\n}\n\nfunction readSchemaProperties(schema: Record<string, unknown>): Set<string> {\n const properties = schema.properties;\n\n if (!properties || typeof properties !== \"object\" || Array.isArray(properties)) {\n return new Set();\n }\n\n return new Set(Object.keys(properties));\n}\n\nfunction readSchemaRequiredFields(schema: Record<string, unknown>): Set<string> {\n return new Set(\n Array.isArray(schema.required)\n ? schema.required.filter((field): field is string => typeof field === \"string\")\n : []\n );\n}\n\nfunction formatPath(path: PropertyKey[]): string {\n return path.length > 0 ? path.map(String).join(\".\") : \"$\";\n}\n\nexport function formatAppCompilerIssues(issues: AppCompilerIssue[]): string {\n return issues.map((issue) => `${issue.path}: ${issue.message}`).join(\"\\n\");\n}\n","import { AppCompilationError, validateAppDefinition } from \"@vekil/app-compiler\";\nimport {\n AppRuntimeHost,\n appDefinitionSchema,\n createAppDefinitionJsonSchema,\n stringifyCanonicalJson,\n type AppDefinition\n} from \"@vekil/app-protocol\";\n\nexport enum AppConformanceCheckId {\n DEFINITION = \"DEFINITION\",\n CANONICAL_JSON = \"CANONICAL_JSON\",\n REMOTE_RUNTIME = \"REMOTE_RUNTIME\"\n}\n\nexport enum AppConformanceCheckStatus {\n FAILED = \"FAILED\",\n PASSED = \"PASSED\",\n SKIPPED = \"SKIPPED\"\n}\n\nexport interface AppConformanceCheck {\n id: AppConformanceCheckId;\n status: AppConformanceCheckStatus;\n}\n\nexport interface AppConformanceIssue {\n code: string;\n message: string;\n path: string;\n}\n\nexport interface AppConformanceReport {\n checks: AppConformanceCheck[];\n issues: AppConformanceIssue[];\n ok: boolean;\n}\n\nexport interface AppBuildArtifacts {\n definition: AppDefinition;\n definitionJson: string;\n definitionSchema: Record<string, unknown>;\n}\n\nexport function runAppConformance(\n input: unknown,\n { requireRemote = false }: { requireRemote?: boolean } = {}\n): AppConformanceReport {\n const validation = validateAppDefinition(input);\n\n if (!validation.ok) {\n return {\n checks: [\n failed(AppConformanceCheckId.DEFINITION),\n skipped(AppConformanceCheckId.CANONICAL_JSON),\n skipped(AppConformanceCheckId.REMOTE_RUNTIME)\n ],\n issues: validation.issues,\n ok: false\n };\n }\n\n const definition = appDefinitionSchema.parse(input);\n const issues: AppConformanceIssue[] = [];\n const canonicalDefinition = stringifyCanonicalJson(definition);\n const canonicalRoundTrip = stringifyCanonicalJson(JSON.parse(canonicalDefinition));\n\n if (canonicalDefinition !== canonicalRoundTrip) {\n issues.push({\n code: \"CANONICAL_JSON_UNSTABLE\",\n message: \"Definition serialization is not deterministic.\",\n path: \"$\"\n });\n }\n\n if (requireRemote && definition.runtime.host !== AppRuntimeHost.REMOTE) {\n issues.push({\n code: \"REMOTE_RUNTIME_REQUIRED\",\n message: \"This command requires a REMOTE App runtime.\",\n path: \"runtime.host\"\n });\n }\n\n return {\n checks: [\n passed(AppConformanceCheckId.DEFINITION),\n issues.some((issue) => issue.code === \"CANONICAL_JSON_UNSTABLE\")\n ? failed(AppConformanceCheckId.CANONICAL_JSON)\n : passed(AppConformanceCheckId.CANONICAL_JSON),\n requireRemote\n ? issues.some((issue) => issue.code === \"REMOTE_RUNTIME_REQUIRED\")\n ? failed(AppConformanceCheckId.REMOTE_RUNTIME)\n : passed(AppConformanceCheckId.REMOTE_RUNTIME)\n : skipped(AppConformanceCheckId.REMOTE_RUNTIME)\n ],\n issues,\n ok: issues.length === 0\n };\n}\n\nexport function buildAppArtifacts(input: unknown): AppBuildArtifacts {\n const validation = validateAppDefinition(input);\n\n if (!validation.ok) {\n throw new AppCompilationError(validation.issues);\n }\n\n const definition = appDefinitionSchema.parse(input);\n return {\n definition,\n definitionJson: `${stringifyCanonicalJson(definition)}\\n`,\n definitionSchema: createAppDefinitionJsonSchema()\n };\n}\n\nfunction passed(id: AppConformanceCheckId): AppConformanceCheck {\n return { id, status: AppConformanceCheckStatus.PASSED };\n}\n\nfunction failed(id: AppConformanceCheckId): AppConformanceCheck {\n return { id, status: AppConformanceCheckStatus.FAILED };\n}\n\nfunction skipped(id: AppConformanceCheckId): AppConformanceCheck {\n return { id, status: AppConformanceCheckStatus.SKIPPED };\n}\n","import {\n AppApprovalMode,\n AppClarificationMode,\n AppRequesterReviewMode,\n AppConnectionType,\n AppIntentMode,\n AppOrigin,\n AppOutcomeStatus,\n AppRiskLevel,\n AppRuntimeHost,\n AppSideEffectType,\n appDefinitionVersion,\n defineRemoteApp,\n requiredAppActionContextScopes,\n type AppCategoryId,\n type AppDefinition\n} from \"@vekil/app-protocol\";\n\nexport interface RemoteAppStarterDefinitionInput {\n categoryId: AppCategoryId;\n exampleRequest: string;\n longDescription: string;\n name: string;\n publication?: {\n privacyPolicyUrl?: string;\n supportEmail?: string;\n termsUrl?: string;\n websiteUrl?: string;\n };\n runtime: {\n baseUrl: string;\n jwksUrl: string;\n };\n shortDescription: string;\n}\n\nconst en = (value: string) => ({ en: value });\nconst publicOrigins = [\n AppOrigin.PUBLIC_GUEST,\n AppOrigin.PUBLIC_VERIFIED_EXTERNAL,\n AppOrigin.PUBLIC_AUTHENTICATED,\n AppOrigin.AGENT_TO_AGENT\n];\n\nexport function createRemoteAppStarterDefinition(\n input: RemoteAppStarterDefinitionInput\n): AppDefinition {\n const capabilityKey = \"request-handle\";\n const inputSchema = {\n type: \"object\",\n properties: { request: { type: \"string\", minLength: 1 } },\n required: [\"request\"]\n };\n const outputSchema = {\n type: \"object\",\n properties: { message: { type: \"string\", minLength: 1 } },\n required: [\"message\"]\n };\n\n return defineRemoteApp({\n definitionVersion: appDefinitionVersion,\n defaultLocale: \"en\",\n app: {\n name: en(input.name),\n shortDescription: en(input.shortDescription),\n longDescription: en(input.longDescription),\n categoryId: input.categoryId\n },\n publication: input.publication ?? {},\n connection: {\n type: AppConnectionType.NONE,\n required: false,\n title: en(\"No connection required\"),\n description: en(\"This starter does not require an external account.\"),\n permissions: []\n },\n intents: [\n {\n key: \"handle-request\",\n mode: AppIntentMode.EXECUTE,\n title: en(input.name),\n description: en(input.shortDescription),\n responseInstructions: en(\"Use the App result to respond clearly to the requester.\"),\n examples: { en: [input.exampleRequest] },\n negativeExamples: {},\n entityHints: {},\n inputSchema,\n requiredFields: [\"request\"],\n optionalFields: [],\n knowledgeKeys: [],\n capabilityKeys: [capabilityKey],\n actionKeys: [\"handle-request\"],\n riskLevel: AppRiskLevel.LOW,\n allowedOrigins: publicOrigins,\n clarificationMode: AppClarificationMode.ASK_MISSING_FIELDS,\n missingFieldsQuestion: en(\"What would you like me to help with?\"),\n fieldQuestions: { request: en(\"What would you like me to help with?\") },\n requesterReview: AppRequesterReviewMode.NOT_REQUIRED\n }\n ],\n capabilities: [\n {\n key: capabilityKey,\n label: en(input.name),\n description: en(input.shortDescription),\n inputSchema,\n outputSchema,\n riskLevel: AppRiskLevel.LOW,\n approval: AppApprovalMode.NOT_REQUIRED,\n actionKeys: [\"handle-request\"]\n }\n ],\n actions: [\n {\n key: \"handle-request\",\n capabilityKey,\n label: en(\"Handle request\"),\n description: en(input.shortDescription),\n composable: true,\n context: {\n requiredScopes: [...requiredAppActionContextScopes],\n requiresSettings: [],\n requiresPolicies: []\n },\n dataAccessLevel: \"request-data\",\n inputSchema,\n outputSchema,\n inputArtifacts: [],\n outputArtifacts: [],\n riskLevel: AppRiskLevel.LOW,\n sideEffect: AppSideEffectType.READ_ONLY,\n approval: AppApprovalMode.NOT_REQUIRED,\n timeoutMs: 10_000,\n idempotency: { required: false, keyFields: [] },\n retry: { maxAttempts: 2, retryableStatusCodes: [429, 500, 503] },\n outcomeKeys: [\"request-handled\"]\n }\n ],\n triggers: [],\n resources: [],\n knowledge: [],\n artifactContracts: [],\n context: {\n defaultScopes: [...requiredAppActionContextScopes],\n optionalScopes: [],\n prohibitedScopes: [\n \"conversation.full-thread\",\n \"owner.private-profile\",\n \"other-app.settings\",\n \"other-app.credentials\"\n ],\n copy: { receives: [], doesNotReceive: [] }\n },\n settings: { fields: [] },\n policies: { rules: [] },\n customRules: { families: [], examples: {}, unsupportedExamples: {} },\n publicActions: [\n {\n key: \"handle-request\",\n intentKey: \"handle-request\",\n label: en(input.name),\n description: en(input.shortDescription),\n capabilityKeys: [capabilityKey],\n allowedOrigins: publicOrigins,\n riskLevel: AppRiskLevel.LOW\n }\n ],\n outcomes: [\n {\n key: \"request-handled\",\n actionKey: \"handle-request\",\n status: AppOutcomeStatus.SUCCESS,\n title: en(\"Request handled\"),\n description: en(\"The runtime completed the request.\"),\n schema: outputSchema,\n nextActions: []\n }\n ],\n runtime: {\n host: AppRuntimeHost.REMOTE,\n baseUrl: input.runtime.baseUrl,\n jwksUrl: input.runtime.jwksUrl,\n connectionRequired: false\n }\n });\n}\n"]}