@vertesia/common 1.5.0-dev.20260725.083715Z → 1.5.0-dev.20260806.125520Z
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/Progress.d.ts.map +1 -1
- package/lib/Progress.js.map +1 -1
- package/lib/access-control-values.d.ts +98 -0
- package/lib/access-control-values.d.ts.map +1 -0
- package/lib/access-control-values.js +101 -0
- package/lib/access-control-values.js.map +1 -0
- package/lib/access-control.d.ts +22 -119
- package/lib/access-control.d.ts.map +1 -1
- package/lib/access-control.js +6 -78
- package/lib/access-control.js.map +1 -1
- package/lib/account-values.d.ts +53 -0
- package/lib/account-values.d.ts.map +1 -0
- package/lib/account-values.js +91 -0
- package/lib/account-values.js.map +1 -0
- package/lib/analytics.d.ts +12 -38
- package/lib/analytics.d.ts.map +1 -1
- package/lib/api-schemas/access-control.d.ts +215 -0
- package/lib/api-schemas/access-control.d.ts.map +1 -0
- package/lib/api-schemas/access-control.js +165 -0
- package/lib/api-schemas/access-control.js.map +1 -0
- package/lib/api-schemas/account.d.ts +101 -0
- package/lib/api-schemas/account.d.ts.map +1 -0
- package/lib/api-schemas/account.js +136 -0
- package/lib/api-schemas/account.js.map +1 -0
- package/lib/api-schemas/adapter.d.ts +80 -0
- package/lib/api-schemas/adapter.d.ts.map +1 -0
- package/lib/api-schemas/adapter.js +726 -0
- package/lib/api-schemas/adapter.js.map +1 -0
- package/lib/api-schemas/agent-runs.d.ts +3786 -0
- package/lib/api-schemas/agent-runs.d.ts.map +1 -0
- package/lib/api-schemas/agent-runs.js +1000 -0
- package/lib/api-schemas/agent-runs.js.map +1 -0
- package/lib/api-schemas/analytics.d.ts +86 -0
- package/lib/api-schemas/analytics.d.ts.map +1 -0
- package/lib/api-schemas/analytics.js +58 -0
- package/lib/api-schemas/analytics.js.map +1 -0
- package/lib/api-schemas/apikey.d.ts +231 -0
- package/lib/api-schemas/apikey.d.ts.map +1 -0
- package/lib/api-schemas/apikey.js +172 -0
- package/lib/api-schemas/apikey.js.map +1 -0
- package/lib/api-schemas/app-lifecycle.d.ts +1148 -0
- package/lib/api-schemas/app-lifecycle.d.ts.map +1 -0
- package/lib/api-schemas/app-lifecycle.js +801 -0
- package/lib/api-schemas/app-lifecycle.js.map +1 -0
- package/lib/api-schemas/app-runtime.d.ts +10951 -0
- package/lib/api-schemas/app-runtime.d.ts.map +1 -0
- package/lib/api-schemas/app-runtime.js +874 -0
- package/lib/api-schemas/app-runtime.js.map +1 -0
- package/lib/api-schemas/apps.d.ts +271 -0
- package/lib/api-schemas/apps.d.ts.map +1 -0
- package/lib/api-schemas/apps.js +426 -0
- package/lib/api-schemas/apps.js.map +1 -0
- package/lib/api-schemas/audit-trail.d.ts +465 -0
- package/lib/api-schemas/audit-trail.d.ts.map +1 -0
- package/lib/api-schemas/audit-trail.js +218 -0
- package/lib/api-schemas/audit-trail.js.map +1 -0
- package/lib/api-schemas/bulk-operation.d.ts +104 -0
- package/lib/api-schemas/bulk-operation.d.ts.map +1 -0
- package/lib/api-schemas/bulk-operation.js +66 -0
- package/lib/api-schemas/bulk-operation.js.map +1 -0
- package/lib/api-schemas/commands.d.ts +50 -0
- package/lib/api-schemas/commands.d.ts.map +1 -0
- package/lib/api-schemas/commands.js +58 -0
- package/lib/api-schemas/commands.js.map +1 -0
- package/lib/api-schemas/content.d.ts +3565 -0
- package/lib/api-schemas/content.d.ts.map +1 -0
- package/lib/api-schemas/content.js +854 -0
- package/lib/api-schemas/content.js.map +1 -0
- package/lib/api-schemas/cost-analytics.d.ts +300 -0
- package/lib/api-schemas/cost-analytics.d.ts.map +1 -0
- package/lib/api-schemas/cost-analytics.js +218 -0
- package/lib/api-schemas/cost-analytics.js.map +1 -0
- package/lib/api-schemas/dashboard.d.ts +408 -0
- package/lib/api-schemas/dashboard.d.ts.map +1 -0
- package/lib/api-schemas/dashboard.js +311 -0
- package/lib/api-schemas/dashboard.js.map +1 -0
- package/lib/api-schemas/data-store.d.ts +1650 -0
- package/lib/api-schemas/data-store.d.ts.map +1 -0
- package/lib/api-schemas/data-store.js +504 -0
- package/lib/api-schemas/data-store.js.map +1 -0
- package/lib/api-schemas/document-processing.d.ts +1501 -0
- package/lib/api-schemas/document-processing.d.ts.map +1 -0
- package/lib/api-schemas/document-processing.js +312 -0
- package/lib/api-schemas/document-processing.js.map +1 -0
- package/lib/api-schemas/embeddings.d.ts +184 -0
- package/lib/api-schemas/embeddings.d.ts.map +1 -0
- package/lib/api-schemas/embeddings.js +102 -0
- package/lib/api-schemas/embeddings.js.map +1 -0
- package/lib/api-schemas/environment.d.ts +412 -0
- package/lib/api-schemas/environment.d.ts.map +1 -0
- package/lib/api-schemas/environment.js +170 -0
- package/lib/api-schemas/environment.js.map +1 -0
- package/lib/api-schemas/events.d.ts +4918 -0
- package/lib/api-schemas/events.d.ts.map +1 -0
- package/lib/api-schemas/events.js +888 -0
- package/lib/api-schemas/events.js.map +1 -0
- package/lib/api-schemas/files.d.ts +107 -0
- package/lib/api-schemas/files.d.ts.map +1 -0
- package/lib/api-schemas/files.js +137 -0
- package/lib/api-schemas/files.js.map +1 -0
- package/lib/api-schemas/group.d.ts +122 -0
- package/lib/api-schemas/group.d.ts.map +1 -0
- package/lib/api-schemas/group.js +142 -0
- package/lib/api-schemas/group.js.map +1 -0
- package/lib/api-schemas/index.d.ts +36 -0
- package/lib/api-schemas/index.d.ts.map +1 -0
- package/lib/api-schemas/index.js +36 -0
- package/lib/api-schemas/index.js.map +1 -0
- package/lib/api-schemas/indexing.d.ts +144 -0
- package/lib/api-schemas/indexing.d.ts.map +1 -0
- package/lib/api-schemas/indexing.js +217 -0
- package/lib/api-schemas/indexing.js.map +1 -0
- package/lib/api-schemas/integrations.d.ts +269 -0
- package/lib/api-schemas/integrations.d.ts.map +1 -0
- package/lib/api-schemas/integrations.js +335 -0
- package/lib/api-schemas/integrations.js.map +1 -0
- package/lib/api-schemas/interaction.d.ts +22456 -0
- package/lib/api-schemas/interaction.d.ts.map +1 -0
- package/lib/api-schemas/interaction.js +2071 -0
- package/lib/api-schemas/interaction.js.map +1 -0
- package/lib/api-schemas/invites.d.ts +162 -0
- package/lib/api-schemas/invites.d.ts.map +1 -0
- package/lib/api-schemas/invites.js +106 -0
- package/lib/api-schemas/invites.js.map +1 -0
- package/lib/api-schemas/oauth-server.d.ts +415 -0
- package/lib/api-schemas/oauth-server.d.ts.map +1 -0
- package/lib/api-schemas/oauth-server.js +193 -0
- package/lib/api-schemas/oauth-server.js.map +1 -0
- package/lib/api-schemas/oauth.d.ts +150 -0
- package/lib/api-schemas/oauth.d.ts.map +1 -0
- package/lib/api-schemas/oauth.js +148 -0
- package/lib/api-schemas/oauth.js.map +1 -0
- package/lib/api-schemas/parameters.d.ts +64 -0
- package/lib/api-schemas/parameters.d.ts.map +1 -0
- package/lib/api-schemas/parameters.js +246 -0
- package/lib/api-schemas/parameters.js.map +1 -0
- package/lib/api-schemas/process.d.ts +499 -0
- package/lib/api-schemas/process.d.ts.map +1 -0
- package/lib/api-schemas/process.js +817 -0
- package/lib/api-schemas/process.js.map +1 -0
- package/lib/api-schemas/project-configuration.d.ts +4900 -0
- package/lib/api-schemas/project-configuration.d.ts.map +1 -0
- package/lib/api-schemas/project-configuration.js +425 -0
- package/lib/api-schemas/project-configuration.js.map +1 -0
- package/lib/api-schemas/project.d.ts +7247 -0
- package/lib/api-schemas/project.d.ts.map +1 -0
- package/lib/api-schemas/project.js +185 -0
- package/lib/api-schemas/project.js.map +1 -0
- package/lib/api-schemas/prompt.d.ts +70 -0
- package/lib/api-schemas/prompt.d.ts.map +1 -0
- package/lib/api-schemas/prompt.js +77 -0
- package/lib/api-schemas/prompt.js.map +1 -0
- package/lib/api-schemas/quota.d.ts +90 -0
- package/lib/api-schemas/quota.d.ts.map +1 -0
- package/lib/api-schemas/quota.js +95 -0
- package/lib/api-schemas/quota.js.map +1 -0
- package/lib/api-schemas/registry.d.ts +98506 -0
- package/lib/api-schemas/registry.d.ts.map +1 -0
- package/lib/api-schemas/registry.js +2606 -0
- package/lib/api-schemas/registry.js.map +1 -0
- package/lib/api-schemas/schema-primitives.d.ts +5 -0
- package/lib/api-schemas/schema-primitives.d.ts.map +1 -0
- package/lib/api-schemas/schema-primitives.js +11 -0
- package/lib/api-schemas/schema-primitives.js.map +1 -0
- package/lib/api-schemas/secrets.d.ts +497 -0
- package/lib/api-schemas/secrets.d.ts.map +1 -0
- package/lib/api-schemas/secrets.js +298 -0
- package/lib/api-schemas/secrets.js.map +1 -0
- package/lib/api-schemas/store.d.ts +22140 -0
- package/lib/api-schemas/store.d.ts.map +1 -0
- package/lib/api-schemas/store.js +557 -0
- package/lib/api-schemas/store.js.map +1 -0
- package/lib/api-schemas/sts.d.ts +166 -0
- package/lib/api-schemas/sts.d.ts.map +1 -0
- package/lib/api-schemas/sts.js +107 -0
- package/lib/api-schemas/sts.js.map +1 -0
- package/lib/api-schemas/task.d.ts +215 -0
- package/lib/api-schemas/task.d.ts.map +1 -0
- package/lib/api-schemas/task.js +95 -0
- package/lib/api-schemas/task.js.map +1 -0
- package/lib/api-schemas/tools.d.ts +111 -0
- package/lib/api-schemas/tools.d.ts.map +1 -0
- package/lib/api-schemas/tools.js +122 -0
- package/lib/api-schemas/tools.js.map +1 -0
- package/lib/api-schemas/user.d.ts +208 -0
- package/lib/api-schemas/user.d.ts.map +1 -0
- package/lib/api-schemas/user.js +180 -0
- package/lib/api-schemas/user.js.map +1 -0
- package/lib/api-schemas/view-execution.d.ts +3163 -0
- package/lib/api-schemas/view-execution.d.ts.map +1 -0
- package/lib/api-schemas/view-execution.js +172 -0
- package/lib/api-schemas/view-execution.js.map +1 -0
- package/lib/api-schemas/views.d.ts +5990 -0
- package/lib/api-schemas/views.d.ts.map +1 -0
- package/lib/api-schemas/views.js +396 -0
- package/lib/api-schemas/views.js.map +1 -0
- package/lib/api-schemas/workflow-runs.d.ts +2210 -0
- package/lib/api-schemas/workflow-runs.d.ts.map +1 -0
- package/lib/api-schemas/workflow-runs.js +589 -0
- package/lib/api-schemas/workflow-runs.js.map +1 -0
- package/lib/apikey-values.d.ts +10 -0
- package/lib/apikey-values.d.ts.map +1 -0
- package/lib/apikey-values.js +11 -0
- package/lib/apikey-values.js.map +1 -0
- package/lib/apikey.d.ts +37 -36
- package/lib/apikey.d.ts.map +1 -1
- package/lib/apikey.js +5 -4
- package/lib/apikey.js.map +1 -1
- package/lib/apps.d.ts +142 -1172
- package/lib/apps.d.ts.map +1 -1
- package/lib/apps.js +4 -0
- package/lib/apps.js.map +1 -1
- package/lib/ask-user.d.ts +8 -1
- package/lib/ask-user.d.ts.map +1 -1
- package/lib/audit-trail.d.ts +20 -131
- package/lib/audit-trail.d.ts.map +1 -1
- package/lib/audit-trail.js.map +1 -1
- package/lib/browser-credentials.d.ts +11 -106
- package/lib/browser-credentials.d.ts.map +1 -1
- package/lib/common.d.ts +59 -81
- package/lib/common.d.ts.map +1 -1
- package/lib/cost-analytics.d.ts +14 -167
- package/lib/cost-analytics.d.ts.map +1 -1
- package/lib/cost-analytics.js.map +1 -1
- package/lib/data-platform.d.ts +122 -786
- package/lib/data-platform.d.ts.map +1 -1
- package/lib/data-platform.js +41 -61
- package/lib/data-platform.js.map +1 -1
- package/lib/email.d.ts +5 -17
- package/lib/email.d.ts.map +1 -1
- package/lib/email.js +0 -3
- package/lib/email.js.map +1 -1
- package/lib/embeddings.d.ts +14 -56
- package/lib/embeddings.d.ts.map +1 -1
- package/lib/environment.d.ts +22 -118
- package/lib/environment.d.ts.map +1 -1
- package/lib/environment.js +3 -0
- package/lib/environment.js.map +1 -1
- package/lib/facets.d.ts +4 -7
- package/lib/facets.d.ts.map +1 -1
- package/lib/group.d.ts +33 -39
- package/lib/group.d.ts.map +1 -1
- package/lib/group.js +0 -1
- package/lib/group.js.map +1 -1
- package/lib/index.d.ts +8 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/integrations.d.ts +20 -108
- package/lib/integrations.d.ts.map +1 -1
- package/lib/integrations.js.map +1 -1
- package/lib/interaction-values.d.ts +11 -0
- package/lib/interaction-values.d.ts.map +1 -0
- package/lib/interaction-values.js +24 -0
- package/lib/interaction-values.js.map +1 -0
- package/lib/interaction.d.ts +88 -778
- package/lib/interaction.d.ts.map +1 -1
- package/lib/interaction.js +8 -12
- package/lib/interaction.js.map +1 -1
- package/lib/meters.d.ts +11 -7
- package/lib/meters.d.ts.map +1 -1
- package/lib/meters.js.map +1 -1
- package/lib/oauth-server.d.ts +33 -119
- package/lib/oauth-server.d.ts.map +1 -1
- package/lib/oauth.d.ts +14 -96
- package/lib/oauth.d.ts.map +1 -1
- package/lib/oauth.js +0 -4
- package/lib/oauth.js.map +1 -1
- package/lib/payload.d.ts +15 -38
- package/lib/payload.d.ts.map +1 -1
- package/lib/platform-event-validation.d.ts.map +1 -1
- package/lib/platform-event-validation.js +15 -2
- package/lib/platform-event-validation.js.map +1 -1
- package/lib/platform-event.d.ts +79 -464
- package/lib/platform-event.d.ts.map +1 -1
- package/lib/platform-event.js.map +1 -1
- package/lib/principal-context.d.ts +10 -15
- package/lib/principal-context.d.ts.map +1 -1
- package/lib/project-values.d.ts +24 -0
- package/lib/project-values.d.ts.map +1 -0
- package/lib/project-values.js +42 -0
- package/lib/project-values.js.map +1 -0
- package/lib/project.d.ts +56 -504
- package/lib/project.d.ts.map +1 -1
- package/lib/project.js +6 -76
- package/lib/project.js.map +1 -1
- package/lib/prompt.d.ts +20 -51
- package/lib/prompt.d.ts.map +1 -1
- package/lib/prompt.js.map +1 -1
- package/lib/query.d.ts +27 -88
- package/lib/query.d.ts.map +1 -1
- package/lib/rate-limiter.d.ts +19 -70
- package/lib/rate-limiter.d.ts.map +1 -1
- package/lib/rate-limiter.js +0 -3
- package/lib/rate-limiter.js.map +1 -1
- package/lib/refs.d.ts +3 -11
- package/lib/refs.d.ts.map +1 -1
- package/lib/refs.js.map +1 -1
- package/lib/roles/types.d.ts +14 -20
- package/lib/roles/types.d.ts.map +1 -1
- package/lib/roles/types.js +5 -9
- package/lib/roles/types.js.map +1 -1
- package/lib/runs.d.ts +6 -25
- package/lib/runs.d.ts.map +1 -1
- package/lib/schema-for-extraction.js.map +1 -1
- package/lib/secrets.d.ts +20 -105
- package/lib/secrets.d.ts.map +1 -1
- package/lib/store/agent-approval.d.ts +6 -15
- package/lib/store/agent-approval.d.ts.map +1 -1
- package/lib/store/agent-approval.js.map +1 -1
- package/lib/store/agent-run.d.ts +57 -358
- package/lib/store/agent-run.d.ts.map +1 -1
- package/lib/store/collections.d.ts +11 -63
- package/lib/store/collections.d.ts.map +1 -1
- package/lib/store/collections.js.map +1 -1
- package/lib/store/conversation-state.d.ts +61 -61
- package/lib/store/conversation-state.d.ts.map +1 -1
- package/lib/store/conversation-state.js +2 -0
- package/lib/store/conversation-state.js.map +1 -1
- package/lib/store/doc-analyzer.d.ts +9 -32
- package/lib/store/doc-analyzer.d.ts.map +1 -1
- package/lib/store/dsl-workflow.d.ts +37 -151
- package/lib/store/dsl-workflow.d.ts.map +1 -1
- package/lib/store/dsl-workflow.js.map +1 -1
- package/lib/store/editing-policy-schema.generated.d.ts +3 -0
- package/lib/store/editing-policy-schema.generated.d.ts.map +1 -0
- package/lib/store/editing-policy-schema.generated.js +28 -0
- package/lib/store/editing-policy-schema.generated.js.map +1 -0
- package/lib/store/grounded-extraction.d.ts +7 -104
- package/lib/store/grounded-extraction.d.ts.map +1 -1
- package/lib/store/grounded-extraction.js.map +1 -1
- package/lib/store/index.d.ts +2 -0
- package/lib/store/index.d.ts.map +1 -1
- package/lib/store/index.js +3 -0
- package/lib/store/index.js.map +1 -1
- package/lib/store/intake-policy-schema.generated.d.ts +3 -0
- package/lib/store/intake-policy-schema.generated.d.ts.map +1 -0
- package/lib/store/intake-policy-schema.generated.js +1425 -0
- package/lib/store/intake-policy-schema.generated.js.map +1 -0
- package/lib/store/process-schema.d.ts +81 -1
- package/lib/store/process-schema.d.ts.map +1 -1
- package/lib/store/process-schema.js +79 -0
- package/lib/store/process-schema.js.map +1 -1
- package/lib/store/process-validation.d.ts.map +1 -1
- package/lib/store/process-validation.js +70 -2
- package/lib/store/process-validation.js.map +1 -1
- package/lib/store/process.d.ts +36 -125
- package/lib/store/process.d.ts.map +1 -1
- package/lib/store/process.js.map +1 -1
- package/lib/store/rendering.d.ts +9 -64
- package/lib/store/rendering.d.ts.map +1 -1
- package/lib/store/rendering.js.map +1 -1
- package/lib/store/schedule.d.ts +6 -6
- package/lib/store/schedule.d.ts.map +1 -1
- package/lib/store/store.d.ts +99 -701
- package/lib/store/store.d.ts.map +1 -1
- package/lib/store/store.js +4 -456
- package/lib/store/store.js.map +1 -1
- package/lib/store/task.d.ts +15 -59
- package/lib/store/task.d.ts.map +1 -1
- package/lib/store/task.js +0 -3
- package/lib/store/task.js.map +1 -1
- package/lib/store/workflow.d.ts +58 -516
- package/lib/store/workflow.d.ts.map +1 -1
- package/lib/store/workflow.js +31 -11
- package/lib/store/workflow.js.map +1 -1
- package/lib/sts-errors.d.ts +7 -0
- package/lib/sts-errors.d.ts.map +1 -0
- package/lib/sts-errors.js +11 -0
- package/lib/sts-errors.js.map +1 -0
- package/lib/sts-token-types.d.ts +13 -66
- package/lib/sts-token-types.d.ts.map +1 -1
- package/lib/sts-token-types.js.map +1 -1
- package/lib/tools.d.ts +8 -100
- package/lib/tools.d.ts.map +1 -1
- package/lib/transient-tokens-values.d.ts +11 -0
- package/lib/transient-tokens-values.d.ts.map +1 -0
- package/lib/transient-tokens-values.js +12 -0
- package/lib/transient-tokens-values.js.map +1 -0
- package/lib/transient-tokens.d.ts +15 -13
- package/lib/transient-tokens.d.ts.map +1 -1
- package/lib/transient-tokens.js +5 -5
- package/lib/transient-tokens.js.map +1 -1
- package/lib/user.d.ts +55 -156
- package/lib/user.d.ts.map +1 -1
- package/lib/user.js +2 -79
- package/lib/user.js.map +1 -1
- package/lib/versions.d.ts +34 -1
- package/lib/versions.d.ts.map +1 -1
- package/lib/versions.js +33 -0
- package/lib/versions.js.map +1 -1
- package/lib/vertesia-common.js +6 -2
- package/lib/vertesia-common.js.map +1 -1
- package/lib/view-configuration-validation.js.map +1 -1
- package/lib/view-query-validation.js.map +1 -1
- package/lib/view-validation-helpers.d.ts +1 -1
- package/lib/view-validation-helpers.d.ts.map +1 -1
- package/lib/views-schema.d.ts +51 -51
- package/lib/views-schema.d.ts.map +1 -1
- package/lib/views-validation.js.map +1 -1
- package/lib/views.d.ts +58 -314
- package/lib/views.d.ts.map +1 -1
- package/lib/views.js.map +1 -1
- package/lib/workflow-analytics.d.ts +10 -3
- package/lib/workflow-analytics.d.ts.map +1 -1
- package/package.json +14 -5
- package/src/access-control-values.ts +113 -0
- package/src/access-control.ts +33 -138
- package/src/account-values.ts +95 -0
- package/src/analytics.ts +18 -42
- package/src/api-schemas/access-control.contract.test.ts +209 -0
- package/src/api-schemas/access-control.ts +208 -0
- package/src/api-schemas/account.contract.test.ts +318 -0
- package/src/api-schemas/account.ts +150 -0
- package/src/api-schemas/adapter-edge-cases.test.ts +480 -0
- package/src/api-schemas/adapter.ts +778 -0
- package/src/api-schemas/agent-runs.ts +1091 -0
- package/src/api-schemas/analytics.ts +65 -0
- package/src/api-schemas/apikey.contract.test.ts +270 -0
- package/src/api-schemas/apikey.ts +199 -0
- package/src/api-schemas/app-delete-summary.contract.test.ts +67 -0
- package/src/api-schemas/app-lifecycle.ts +900 -0
- package/src/api-schemas/app-runtime.ts +1022 -0
- package/src/api-schemas/apps.ts +484 -0
- package/src/api-schemas/audit-trail.ts +243 -0
- package/src/api-schemas/bulk-operation.contract.test.ts +39 -0
- package/src/api-schemas/bulk-operation.ts +75 -0
- package/src/api-schemas/bundle-isolation.test.ts +80 -0
- package/src/api-schemas/commands.contract.test.ts +51 -0
- package/src/api-schemas/commands.ts +62 -0
- package/src/api-schemas/content.ts +952 -0
- package/src/api-schemas/cost-analytics.contract.test.ts +64 -0
- package/src/api-schemas/cost-analytics.ts +235 -0
- package/src/api-schemas/dashboard.contract.test.ts +127 -0
- package/src/api-schemas/dashboard.ts +351 -0
- package/src/api-schemas/data-store.contract.test.ts +91 -0
- package/src/api-schemas/data-store.ts +571 -0
- package/src/api-schemas/document-processing.contract.test.ts +76 -0
- package/src/api-schemas/document-processing.ts +344 -0
- package/src/api-schemas/embeddings.ts +113 -0
- package/src/api-schemas/environment.contract.test.ts +184 -0
- package/src/api-schemas/environment.ts +190 -0
- package/src/api-schemas/events.ts +981 -0
- package/src/api-schemas/files.ts +159 -0
- package/src/api-schemas/group.contract.test.ts +205 -0
- package/src/api-schemas/group.ts +155 -0
- package/src/api-schemas/index.ts +35 -0
- package/src/api-schemas/indexing.contract.test.ts +83 -0
- package/src/api-schemas/indexing.ts +234 -0
- package/src/api-schemas/integrations.ts +369 -0
- package/src/api-schemas/interaction.contract.test.ts +27 -0
- package/src/api-schemas/interaction.ts +2364 -0
- package/src/api-schemas/invites.contract.test.ts +268 -0
- package/src/api-schemas/invites.ts +127 -0
- package/src/api-schemas/llumiverse.contract.test.ts +108 -0
- package/src/api-schemas/mcp-api-key.contract.test.ts +86 -0
- package/src/api-schemas/oauth-server.ts +219 -0
- package/src/api-schemas/oauth.contract.test.ts +118 -0
- package/src/api-schemas/oauth.ts +166 -0
- package/src/api-schemas/parameters.test.ts +402 -0
- package/src/api-schemas/parameters.ts +310 -0
- package/src/api-schemas/process.ts +929 -0
- package/src/api-schemas/project-configuration.ts +478 -0
- package/src/api-schemas/project.contract.test.ts +365 -0
- package/src/api-schemas/project.ts +214 -0
- package/src/api-schemas/prompt.ts +88 -0
- package/src/api-schemas/pruning-limits.test.ts +189 -0
- package/src/api-schemas/quota.contract.test.ts +147 -0
- package/src/api-schemas/quota.ts +122 -0
- package/src/api-schemas/registry-groups.test.ts +91 -0
- package/src/api-schemas/registry.ts +3512 -0
- package/src/api-schemas/response-pruning.test.ts +260 -0
- package/src/api-schemas/schema-primitives.ts +12 -0
- package/src/api-schemas/secrets.ts +332 -0
- package/src/api-schemas/store.contract.test.ts +471 -0
- package/src/api-schemas/store.ts +604 -0
- package/src/api-schemas/sts.contract.test.ts +112 -0
- package/src/api-schemas/sts.ts +123 -0
- package/src/api-schemas/task.ts +104 -0
- package/src/api-schemas/tools.ts +140 -0
- package/src/api-schemas/user.contract.test.ts +191 -0
- package/src/api-schemas/user.ts +204 -0
- package/src/api-schemas/view-execution.ts +200 -0
- package/src/api-schemas/views.ts +437 -0
- package/src/api-schemas/workflow-runs.ts +653 -0
- package/src/apikey-values.ts +10 -0
- package/src/apikey.ts +49 -40
- package/src/apps.test.ts +82 -0
- package/src/apps.ts +283 -1228
- package/src/ask-user.ts +9 -1
- package/src/audit-trail.ts +45 -137
- package/src/browser-credentials.ts +21 -106
- package/src/common.ts +67 -78
- package/src/cost-analytics.ts +37 -176
- package/src/data-platform.ts +205 -776
- package/src/email.ts +5 -17
- package/src/embeddings.ts +22 -60
- package/src/environment.ts +52 -126
- package/src/facets.ts +4 -7
- package/src/group.ts +38 -42
- package/src/index.ts +12 -0
- package/src/integrations.ts +39 -129
- package/src/interaction-values.ts +23 -0
- package/src/interaction.ts +162 -902
- package/src/meters.ts +11 -7
- package/src/oauth-server.ts +58 -127
- package/src/oauth.ts +24 -108
- package/src/payload.ts +25 -40
- package/src/platform-event-validation.test.ts +26 -0
- package/src/platform-event-validation.ts +15 -2
- package/src/platform-event.ts +141 -484
- package/src/principal-context.ts +11 -15
- package/src/project-values.ts +41 -0
- package/src/project.ts +116 -588
- package/src/prompt.ts +34 -61
- package/src/query.ts +34 -93
- package/src/rate-limiter.ts +27 -75
- package/src/refs.ts +4 -11
- package/src/roles/types.ts +20 -20
- package/src/runs.ts +11 -24
- package/src/secrets.ts +38 -117
- package/src/store/agent-approval.ts +9 -14
- package/src/store/agent-run.ts +93 -450
- package/src/store/collections.ts +21 -63
- package/src/store/content-type-editing.test.ts +1 -1
- package/src/store/conversation-state.ts +75 -64
- package/src/store/doc-analyzer.ts +17 -33
- package/src/store/dsl-workflow.ts +62 -158
- package/src/store/editing-policy-schema.generated.ts +30 -0
- package/src/store/grounded-extraction.ts +13 -104
- package/src/store/index.ts +3 -0
- package/src/store/intake-policy-schema.generated.ts +1442 -0
- package/src/store/process-schema.test.ts +43 -0
- package/src/store/process-schema.ts +79 -0
- package/src/store/process-validation.test.ts +141 -0
- package/src/store/process-validation.ts +82 -2
- package/src/store/process.ts +70 -146
- package/src/store/rendering.ts +15 -64
- package/src/store/store.ts +197 -1204
- package/src/store/task.ts +25 -59
- package/src/store/workflow.ts +103 -554
- package/src/sts-errors.ts +13 -0
- package/src/sts-token-types.ts +26 -75
- package/src/tools.ts +18 -97
- package/src/transient-tokens-values.ts +11 -0
- package/src/transient-tokens.ts +16 -13
- package/src/user.ts +75 -215
- package/src/versions.test.ts +13 -0
- package/src/versions.ts +36 -0
- package/src/views-schema.test.ts +9 -1
- package/src/views.ts +106 -329
- package/src/workflow-analytics.ts +10 -3
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
import { Ajv2020 } from 'ajv/dist/2020.js';
|
|
2
|
+
import { describe, expect, it } from 'vitest';
|
|
3
|
+
import { AccountType, BillingMethod } from '../user.js';
|
|
4
|
+
import { findUnprunablePaths, type JsonObject, pruneToSchema, toOpenApiComponents } from './adapter.js';
|
|
5
|
+
import {
|
|
6
|
+
type ApiComponentType,
|
|
7
|
+
ApiSchemaComponents,
|
|
8
|
+
apiComponentRef,
|
|
9
|
+
pruneAndValidateApiResponse,
|
|
10
|
+
pruneApiResponse,
|
|
11
|
+
} from './registry.js';
|
|
12
|
+
|
|
13
|
+
function compile(name: string) {
|
|
14
|
+
const ajv = new Ajv2020({ strictSchema: false, allErrors: true });
|
|
15
|
+
ajv.addSchema({ $id: 'vertesia://openapi', components: { schemas: ApiSchemaComponents } });
|
|
16
|
+
return ajv.compile({ $ref: `vertesia://openapi${apiComponentRef(name as never)}` });
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const ACCOUNT: ApiComponentType<'Account'> = {
|
|
20
|
+
id: 'acc_1',
|
|
21
|
+
name: 'Acme',
|
|
22
|
+
email_domains: ['acme.com'],
|
|
23
|
+
onboarding: { completed: true, completed_at: '2026-07-29T10:00:00.000Z' },
|
|
24
|
+
datacenter: 'gcp',
|
|
25
|
+
account_type: AccountType.customer,
|
|
26
|
+
billing: { method: BillingMethod.stripe, stripe_customer_id: 'cus_1' },
|
|
27
|
+
feature_flags: { new_editor: true, beta_agents: 'on' },
|
|
28
|
+
created_by: 'u1',
|
|
29
|
+
updated_by: 'u1',
|
|
30
|
+
created_at: '2026-07-29T10:00:00.000Z',
|
|
31
|
+
updated_at: '2026-07-29T10:00:00.000Z',
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* An Account carrying extra runtime fields — what a Mongo document actually is. The cast models
|
|
36
|
+
* the gap the pruner exists to close: the value is typed as the component, but at runtime it has
|
|
37
|
+
* more than the component declares.
|
|
38
|
+
*/
|
|
39
|
+
const withExtras = (extra: Record<string, unknown>): ApiComponentType<'Account'> =>
|
|
40
|
+
({ ...ACCOUNT, ...extra }) as ApiComponentType<'Account'>;
|
|
41
|
+
|
|
42
|
+
describe('response pruning narrows payloads to the published contract', () => {
|
|
43
|
+
it('drops undeclared top-level fields', () => {
|
|
44
|
+
const pruned = pruneApiResponse(
|
|
45
|
+
'Account',
|
|
46
|
+
withExtras({ __v: 3, internal_notes: 'do not ship', stripe_secret: 'sk_live_leak' }),
|
|
47
|
+
);
|
|
48
|
+
expect(pruned).toEqual(ACCOUNT);
|
|
49
|
+
expect('stripe_secret' in pruned).toBe(false);
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
it('drops undeclared fields nested inside a declared object', () => {
|
|
53
|
+
const pruned = pruneApiResponse(
|
|
54
|
+
'Account',
|
|
55
|
+
withExtras({
|
|
56
|
+
onboarding: { ...ACCOUNT.onboarding, internal_step: 7 },
|
|
57
|
+
billing: { ...ACCOUNT.billing, stripe_secret_key: 'sk_live_leak' },
|
|
58
|
+
}),
|
|
59
|
+
);
|
|
60
|
+
expect(pruned.onboarding).toEqual(ACCOUNT.onboarding);
|
|
61
|
+
expect(pruned.billing).toEqual(ACCOUNT.billing);
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
it('PRESERVES the contents of freeform maps', () => {
|
|
65
|
+
// The regression this design exists to avoid: AJV's removeAdditional:'all' strips keys
|
|
66
|
+
// from objects that declare additionalProperties too, which is how launch_workstream's
|
|
67
|
+
// `data` was emptied. `feature_flags` is `{additionalProperties:{}}` with no `properties`,
|
|
68
|
+
// so every operator flag would vanish under a blanket removal mode.
|
|
69
|
+
const pruned = pruneApiResponse('Account', ACCOUNT);
|
|
70
|
+
expect(pruned.feature_flags).toEqual({ new_editor: true, beta_agents: 'on' });
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
it('leaves a conforming payload byte-identical', () => {
|
|
74
|
+
expect(pruneApiResponse('Account', ACCOUNT)).toEqual(ACCOUNT);
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
it('never mutates the payload it is given', () => {
|
|
78
|
+
const input = withExtras({ rogue: 1 });
|
|
79
|
+
const pristine = structuredClone(input);
|
|
80
|
+
pruneApiResponse('Account', input);
|
|
81
|
+
expect(input).toEqual(pristine);
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
it('produces output that validates against the published schema', () => {
|
|
85
|
+
const validate = compile('Account');
|
|
86
|
+
const pruned = pruneApiResponse('Account', withExtras({ leaked: 'x' }));
|
|
87
|
+
expect(validate(pruned)).toBe(true);
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
it('does not throw on a payload that is missing required fields', () => {
|
|
91
|
+
// Pruning is not validation. A malformed document still reaches the client rather than
|
|
92
|
+
// becoming a 500 — surfacing drift is the validator's job, not the pruner's.
|
|
93
|
+
const malformed = { id: 'acc_1', junk: true } as unknown as ApiComponentType<'Account'>;
|
|
94
|
+
expect(() => pruneApiResponse('Account', malformed)).not.toThrow();
|
|
95
|
+
expect(pruneApiResponse('Account', malformed)).toEqual({ id: 'acc_1' });
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
describe('pruneAndValidateApiResponse is the sound entry point for untyped payloads', () => {
|
|
100
|
+
it('returns the component type only on the valid branch', () => {
|
|
101
|
+
const result = pruneAndValidateApiResponse('Account', withExtras({ leaked: 'x' }));
|
|
102
|
+
expect(result.valid).toBe(true);
|
|
103
|
+
if (result.valid) {
|
|
104
|
+
// Reachable as the component type only after validation succeeded.
|
|
105
|
+
const id: string = result.data.id;
|
|
106
|
+
expect(id).toBe('acc_1');
|
|
107
|
+
expect('leaked' in result.data).toBe(false);
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
it('reports errors instead of typing an incomplete payload as complete', () => {
|
|
112
|
+
// The unsoundness this replaces: narrowing `{id}` and handing it back as a full Account.
|
|
113
|
+
const result = pruneAndValidateApiResponse('Account', { id: 'acc_1', junk: true });
|
|
114
|
+
expect(result.valid).toBe(false);
|
|
115
|
+
if (!result.valid) {
|
|
116
|
+
expect(result.errors.join(' ')).toContain("must have required property 'name'");
|
|
117
|
+
// The pruned value is still available, so the caller chooses ship-and-log or fail.
|
|
118
|
+
expect(result.data).toEqual({ id: 'acc_1' });
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
it('flags a legacy account missing created_by/updated_by', () => {
|
|
123
|
+
// Real migration hazard: the Mongo schema declares these without `required`, and the
|
|
124
|
+
// BackfillAccountCreatedBy migration skips ownerless accounts by design.
|
|
125
|
+
const { created_by: _c, updated_by: _u, ...legacy } = ACCOUNT;
|
|
126
|
+
const result = pruneAndValidateApiResponse('Account', legacy);
|
|
127
|
+
expect(result.valid).toBe(false);
|
|
128
|
+
if (!result.valid) {
|
|
129
|
+
expect(result.errors.join(' ')).toContain('created_by');
|
|
130
|
+
expect(result.errors.join(' ')).toContain('updated_by');
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
describe('response pruning through structural schema features', () => {
|
|
136
|
+
it('follows the discriminator to the matching union branch', () => {
|
|
137
|
+
const enabled = pruneApiResponse('StripeBillingStatusResponse', {
|
|
138
|
+
status: 'enabled',
|
|
139
|
+
billing_method: 'stripe',
|
|
140
|
+
portal_url: 'https://billing',
|
|
141
|
+
internal_session_id: 'leak',
|
|
142
|
+
} as never);
|
|
143
|
+
expect(enabled).toEqual({ status: 'enabled', billing_method: 'stripe', portal_url: 'https://billing' });
|
|
144
|
+
|
|
145
|
+
const disabled = pruneApiResponse('StripeBillingStatusResponse', {
|
|
146
|
+
status: 'disabled',
|
|
147
|
+
billing_method: null,
|
|
148
|
+
reason: 'No billing method',
|
|
149
|
+
internal_trace: 'leak',
|
|
150
|
+
} as never);
|
|
151
|
+
expect(disabled).toEqual({ status: 'disabled', billing_method: null, reason: 'No billing method' });
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
it('prunes inside arrays', () => {
|
|
155
|
+
const components = toOpenApiComponents({
|
|
156
|
+
Page: {
|
|
157
|
+
type: 'object',
|
|
158
|
+
properties: {
|
|
159
|
+
items: {
|
|
160
|
+
type: 'array',
|
|
161
|
+
items: { $id: 'Row', type: 'object', properties: { id: { type: 'string' } } },
|
|
162
|
+
},
|
|
163
|
+
},
|
|
164
|
+
},
|
|
165
|
+
});
|
|
166
|
+
const pruned = pruneToSchema(
|
|
167
|
+
{
|
|
168
|
+
items: [
|
|
169
|
+
{ id: 'a', secret: 1 },
|
|
170
|
+
{ id: 'b', secret: 2 },
|
|
171
|
+
],
|
|
172
|
+
extra: true,
|
|
173
|
+
},
|
|
174
|
+
{ $ref: '#/components/schemas/Page' },
|
|
175
|
+
components,
|
|
176
|
+
) as JsonObject;
|
|
177
|
+
expect(pruned).toEqual({ items: [{ id: 'a' }, { id: 'b' }] });
|
|
178
|
+
});
|
|
179
|
+
|
|
180
|
+
it('leaves ambiguous schemas untouched rather than guessing', () => {
|
|
181
|
+
// An undiscriminated union and an allOf could each drop fields that belong to a branch we
|
|
182
|
+
// cannot identify, so the payload passes through intact.
|
|
183
|
+
const components = toOpenApiComponents({
|
|
184
|
+
Loose: { anyOf: [{ type: 'object', properties: { a: { type: 'string' } } }, { type: 'object' }] },
|
|
185
|
+
Merged: { allOf: [{ type: 'object', properties: { a: { type: 'string' } } }] },
|
|
186
|
+
});
|
|
187
|
+
const payload = { a: 'x', b: 'keep' };
|
|
188
|
+
expect(pruneToSchema(payload, { $ref: '#/components/schemas/Loose' }, components)).toEqual(payload);
|
|
189
|
+
expect(pruneToSchema(payload, { $ref: '#/components/schemas/Merged' }, components)).toEqual(payload);
|
|
190
|
+
});
|
|
191
|
+
|
|
192
|
+
it('keeps extras where a component explicitly declares itself extensible', () => {
|
|
193
|
+
const components = toOpenApiComponents({
|
|
194
|
+
Open: { type: 'object', properties: { a: { type: 'string' } }, additionalProperties: true },
|
|
195
|
+
});
|
|
196
|
+
expect(pruneToSchema({ a: 'x', b: 'keep' }, { $ref: '#/components/schemas/Open' }, components)).toEqual({
|
|
197
|
+
a: 'x',
|
|
198
|
+
b: 'keep',
|
|
199
|
+
});
|
|
200
|
+
});
|
|
201
|
+
|
|
202
|
+
it('keeps properties documented on a $ref sibling', () => {
|
|
203
|
+
// 2020-12 applies $ref siblings as additional constraints, so `extra` is declared here
|
|
204
|
+
// and must survive pruning rather than being dropped as unknown.
|
|
205
|
+
const components = toOpenApiComponents({
|
|
206
|
+
Wrapper: {
|
|
207
|
+
type: 'object',
|
|
208
|
+
properties: {
|
|
209
|
+
inner: {
|
|
210
|
+
$ref: '#/$defs/Base',
|
|
211
|
+
properties: { extra: { type: 'string' } },
|
|
212
|
+
required: ['extra'],
|
|
213
|
+
},
|
|
214
|
+
},
|
|
215
|
+
$defs: { Base: { type: 'object', properties: { a: { type: 'string' } }, required: ['a'] } },
|
|
216
|
+
},
|
|
217
|
+
});
|
|
218
|
+
const pruned = pruneToSchema(
|
|
219
|
+
{ inner: { a: 'x', extra: 'documented', undeclared: 'drop' } },
|
|
220
|
+
{ $ref: '#/components/schemas/Wrapper' },
|
|
221
|
+
components,
|
|
222
|
+
);
|
|
223
|
+
expect(pruned).toEqual({ inner: { a: 'x', extra: 'documented' } });
|
|
224
|
+
});
|
|
225
|
+
|
|
226
|
+
it('follows a chain of aliased references to the terminal schema', () => {
|
|
227
|
+
// A component that is itself a reference is an alias. Resolving only one hop would leave a
|
|
228
|
+
// node whose `properties` lists just `extra`, so pruning would read that as the entire
|
|
229
|
+
// shape and drop `a` — which Base requires, making the pruned response fail validation.
|
|
230
|
+
const components = toOpenApiComponents({
|
|
231
|
+
Alias: {
|
|
232
|
+
$ref: '#/components/schemas/Base',
|
|
233
|
+
properties: { extra: { type: 'string' } },
|
|
234
|
+
required: ['extra'],
|
|
235
|
+
},
|
|
236
|
+
Base: { type: 'object', properties: { a: { type: 'string' } }, required: ['a'] },
|
|
237
|
+
});
|
|
238
|
+
const ref = { $ref: '#/components/schemas/Alias' };
|
|
239
|
+
|
|
240
|
+
const pruned = pruneToSchema({ a: 'x', extra: 'documented', undeclared: 'drop' }, ref, components);
|
|
241
|
+
expect(pruned).toEqual({ a: 'x', extra: 'documented' });
|
|
242
|
+
// The detector recurses through references, so it must reach the same terminal schema —
|
|
243
|
+
// a divergence here means it certifies a component the pruner then mangles.
|
|
244
|
+
expect(findUnprunablePaths(ref, components)).toEqual([]);
|
|
245
|
+
|
|
246
|
+
const ajv = new Ajv2020({ strictSchema: false, allErrors: true });
|
|
247
|
+
ajv.addSchema({ $id: 'vertesia://chain', components: { schemas: components } });
|
|
248
|
+
expect(ajv.validate({ $ref: 'vertesia://chain#/components/schemas/Alias' }, pruned)).toBe(true);
|
|
249
|
+
});
|
|
250
|
+
|
|
251
|
+
it('strips undeclared fields on a component closed with additionalProperties:false', () => {
|
|
252
|
+
const components = toOpenApiComponents(
|
|
253
|
+
{ Closed: { type: 'object', properties: { a: { type: 'string' } } } },
|
|
254
|
+
{ strictComponents: new Set(['Closed']) },
|
|
255
|
+
);
|
|
256
|
+
expect(pruneToSchema({ a: 'x', b: 'drop' }, { $ref: '#/components/schemas/Closed' }, components)).toEqual({
|
|
257
|
+
a: 'x',
|
|
258
|
+
});
|
|
259
|
+
});
|
|
260
|
+
});
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
/** Nullable scalar encodings shared by schemas that preserve the compact OpenAPI 3.1 spelling. */
|
|
4
|
+
export const nullableStringSchema = z
|
|
5
|
+
.string()
|
|
6
|
+
.nullable()
|
|
7
|
+
.meta({ anyOf: undefined, type: ['string', 'null'] });
|
|
8
|
+
|
|
9
|
+
export const nullableNumberSchema = z
|
|
10
|
+
.number()
|
|
11
|
+
.nullable()
|
|
12
|
+
.meta({ anyOf: undefined, type: ['number', 'null'] });
|
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
// Runtime schemas for the secrets API domain.
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { EventCategorySchema } from './audit-trail.js';
|
|
4
|
+
|
|
5
|
+
export const EventWebhookSigningSecretRequestSchema = z
|
|
6
|
+
.strictObject({
|
|
7
|
+
account_id: z.string().optional(),
|
|
8
|
+
project_id: z.string(),
|
|
9
|
+
})
|
|
10
|
+
.meta({ id: 'EventWebhookSigningSecretRequest' });
|
|
11
|
+
|
|
12
|
+
export const EventWebhookSigningSecretResponseSchema = z
|
|
13
|
+
.strictObject({
|
|
14
|
+
subscription_id: z.string(),
|
|
15
|
+
secret: z.string(),
|
|
16
|
+
secret_label: z.string(),
|
|
17
|
+
})
|
|
18
|
+
.meta({ id: 'EventWebhookSigningSecretResponse' });
|
|
19
|
+
|
|
20
|
+
export const SignEventWebhookRequestSchema = EventWebhookSigningSecretRequestSchema.extend({
|
|
21
|
+
delivery_id: z.string(),
|
|
22
|
+
body: z.string(),
|
|
23
|
+
event_id: z.string(),
|
|
24
|
+
event_category: EventCategorySchema,
|
|
25
|
+
action: z.string(),
|
|
26
|
+
timestamp: z.number().optional(),
|
|
27
|
+
}).meta({ id: 'SignEventWebhookRequest' });
|
|
28
|
+
|
|
29
|
+
export const SignEventWebhookResponseSchema = z
|
|
30
|
+
.strictObject({
|
|
31
|
+
headers: z.record(z.string(), z.string()),
|
|
32
|
+
timestamp: z.number(),
|
|
33
|
+
signature: z.string(),
|
|
34
|
+
})
|
|
35
|
+
.meta({ id: 'SignEventWebhookResponse' });
|
|
36
|
+
|
|
37
|
+
export const EventIngestSigningSecretRequestSchema = z
|
|
38
|
+
.strictObject({
|
|
39
|
+
account_id: z.string().optional(),
|
|
40
|
+
project_id: z.string(),
|
|
41
|
+
})
|
|
42
|
+
.meta({ id: 'EventIngestSigningSecretRequest' });
|
|
43
|
+
|
|
44
|
+
export const EventIngestSigningSecretResponseSchema = z
|
|
45
|
+
.strictObject({
|
|
46
|
+
channel_id: z.string(),
|
|
47
|
+
secret: z.string(),
|
|
48
|
+
secret_label: z.string(),
|
|
49
|
+
})
|
|
50
|
+
.meta({ id: 'EventIngestSigningSecretResponse' });
|
|
51
|
+
|
|
52
|
+
export const VerifyEventIngestSignatureRequestSchema = EventIngestSigningSecretRequestSchema.extend({
|
|
53
|
+
body: z.string(),
|
|
54
|
+
signature_header: z.string(),
|
|
55
|
+
algorithm: z.enum(['sha256', 'sha1']).optional(),
|
|
56
|
+
encoding: z.enum(['hex', 'base64']).optional(),
|
|
57
|
+
prefix: z.string().optional(),
|
|
58
|
+
}).meta({ id: 'VerifyEventIngestSignatureRequest' });
|
|
59
|
+
|
|
60
|
+
export const VerifyEventIngestSignatureResponseSchema = z
|
|
61
|
+
.strictObject({
|
|
62
|
+
valid: z.boolean(),
|
|
63
|
+
})
|
|
64
|
+
.meta({ id: 'VerifyEventIngestSignatureResponse' });
|
|
65
|
+
|
|
66
|
+
export const GithubInstallationTokenRequestSchema = z
|
|
67
|
+
.strictObject({
|
|
68
|
+
account_id: z.string().optional(),
|
|
69
|
+
project_id: z.string(),
|
|
70
|
+
installation_id: z.string(),
|
|
71
|
+
repo: z.string(),
|
|
72
|
+
})
|
|
73
|
+
.meta({ id: 'GithubInstallationTokenRequest' });
|
|
74
|
+
|
|
75
|
+
export const GithubInstallationTokenResponseSchema = z
|
|
76
|
+
.strictObject({
|
|
77
|
+
token: z.string(),
|
|
78
|
+
expires_at: z.string().optional(),
|
|
79
|
+
})
|
|
80
|
+
.meta({ id: 'GithubInstallationTokenResponse' });
|
|
81
|
+
|
|
82
|
+
export const InternalSecretDeleteResponseSchema = z
|
|
83
|
+
.strictObject({
|
|
84
|
+
deleted: z.literal(true),
|
|
85
|
+
})
|
|
86
|
+
.meta({ id: 'InternalSecretDeleteResponse' });
|
|
87
|
+
|
|
88
|
+
export const WebsiteCredentialTotpAlgorithmSchema = z
|
|
89
|
+
.enum(['SHA1', 'SHA256', 'SHA512'])
|
|
90
|
+
.meta({ id: 'WebsiteCredentialTotpAlgorithm' });
|
|
91
|
+
|
|
92
|
+
export const WebsiteCredentialTotpMetadataSchema = z
|
|
93
|
+
.strictObject({
|
|
94
|
+
algorithm: WebsiteCredentialTotpAlgorithmSchema.optional(),
|
|
95
|
+
digits: z
|
|
96
|
+
.union([z.literal(6), z.literal(8)])
|
|
97
|
+
.meta({ anyOf: undefined, type: 'number', enum: [6, 8] })
|
|
98
|
+
.optional(),
|
|
99
|
+
period: z.number().optional(),
|
|
100
|
+
issuer: z.string().optional(),
|
|
101
|
+
account: z.string().optional(),
|
|
102
|
+
})
|
|
103
|
+
.meta({ id: 'WebsiteCredentialTotpMetadata' });
|
|
104
|
+
|
|
105
|
+
export const WebsiteCredentialSecretInputSchema = z
|
|
106
|
+
.strictObject({
|
|
107
|
+
username: z
|
|
108
|
+
.string()
|
|
109
|
+
.meta({
|
|
110
|
+
description:
|
|
111
|
+
'Optional encrypted username. Prefer metadata.username unless the username itself is sensitive.',
|
|
112
|
+
})
|
|
113
|
+
.optional(),
|
|
114
|
+
password: z.string().optional(),
|
|
115
|
+
totp: z
|
|
116
|
+
.strictObject({
|
|
117
|
+
seed: z.string(),
|
|
118
|
+
algorithm: WebsiteCredentialTotpAlgorithmSchema.optional(),
|
|
119
|
+
digits: z
|
|
120
|
+
.union([z.literal(6), z.literal(8)])
|
|
121
|
+
.meta({ anyOf: undefined, type: 'number', enum: [6, 8] })
|
|
122
|
+
.optional(),
|
|
123
|
+
period: z.number().optional(),
|
|
124
|
+
issuer: z.string().optional(),
|
|
125
|
+
account: z.string().optional(),
|
|
126
|
+
})
|
|
127
|
+
.optional(),
|
|
128
|
+
oauth: z
|
|
129
|
+
.strictObject({
|
|
130
|
+
provider_id: z.string().optional(),
|
|
131
|
+
token_owner: z.enum(['user', 'project']).optional(),
|
|
132
|
+
token_ref: z.string().optional(),
|
|
133
|
+
})
|
|
134
|
+
.meta({
|
|
135
|
+
description: 'Future OAuth materialization hook. The token itself remains in the OAuth secret store.',
|
|
136
|
+
})
|
|
137
|
+
.optional(),
|
|
138
|
+
})
|
|
139
|
+
.meta({ id: 'WebsiteCredentialSecretInput' });
|
|
140
|
+
|
|
141
|
+
export const WebsiteCredentialCapabilitySchema = z
|
|
142
|
+
.enum(['password', 'totp', 'oauth'])
|
|
143
|
+
.meta({ id: 'WebsiteCredentialCapability' });
|
|
144
|
+
|
|
145
|
+
export const WebsiteCredentialWebsiteSchema = z
|
|
146
|
+
.strictObject({
|
|
147
|
+
host: z.string().meta({ description: 'Hostname this credential is allowed on. Subdomains match.' }),
|
|
148
|
+
login_url: z.string().meta({ description: 'Optional login URL used by agents as a hint.' }).optional(),
|
|
149
|
+
allowed_origins: z
|
|
150
|
+
.array(z.string())
|
|
151
|
+
.meta({ description: 'Optional narrower origin allowlist for this credential.' })
|
|
152
|
+
.optional(),
|
|
153
|
+
})
|
|
154
|
+
.meta({ id: 'WebsiteCredentialWebsite' });
|
|
155
|
+
|
|
156
|
+
export const SecretKindSchema = z.literal('website_credential').meta({ id: 'SecretKind' });
|
|
157
|
+
|
|
158
|
+
export const SecretProjectQuerySchema = z
|
|
159
|
+
.object({
|
|
160
|
+
project_id: z
|
|
161
|
+
.string()
|
|
162
|
+
.meta({
|
|
163
|
+
description: 'Project scope for top-level secret APIs. Must match the authenticated project context.',
|
|
164
|
+
})
|
|
165
|
+
.optional(),
|
|
166
|
+
})
|
|
167
|
+
.meta({ id: 'SecretProjectQuery' });
|
|
168
|
+
|
|
169
|
+
export const ListSecretsQuerySchema = SecretProjectQuerySchema.extend({
|
|
170
|
+
kind: SecretKindSchema.optional(),
|
|
171
|
+
host: z.string().optional(),
|
|
172
|
+
enabled: z.boolean().optional(),
|
|
173
|
+
}).meta({ id: 'ListSecretsQuery' });
|
|
174
|
+
|
|
175
|
+
export const SecretLookupQuerySchema = SecretProjectQuerySchema.extend({
|
|
176
|
+
kind: SecretKindSchema.optional(),
|
|
177
|
+
}).meta({ id: 'SecretLookupQuery' });
|
|
178
|
+
|
|
179
|
+
export const WebsiteCredentialRecordSchema = z
|
|
180
|
+
.strictObject({
|
|
181
|
+
id: z.string(),
|
|
182
|
+
credential_ref: z.string(),
|
|
183
|
+
project: z.string(),
|
|
184
|
+
name: z.string(),
|
|
185
|
+
websites: z.array(WebsiteCredentialWebsiteSchema),
|
|
186
|
+
username: z.string().optional(),
|
|
187
|
+
username_hint: z.string().optional(),
|
|
188
|
+
username_secret_enabled: z.boolean(),
|
|
189
|
+
properties: z.looseObject({}).optional(),
|
|
190
|
+
tags: z.array(z.string()).optional(),
|
|
191
|
+
enabled: z.boolean().optional(),
|
|
192
|
+
capabilities: z.array(WebsiteCredentialCapabilitySchema).optional(),
|
|
193
|
+
notes: z.string().optional(),
|
|
194
|
+
totp_metadata: WebsiteCredentialTotpMetadataSchema.optional(),
|
|
195
|
+
expires_at: z
|
|
196
|
+
.string()
|
|
197
|
+
.meta({
|
|
198
|
+
description:
|
|
199
|
+
'Optional ISO timestamp after which the credential is no longer usable. Expired credentials are hidden from lookup and cannot be filled.',
|
|
200
|
+
})
|
|
201
|
+
.optional(),
|
|
202
|
+
created_at: z.string().optional(),
|
|
203
|
+
updated_at: z.string().optional(),
|
|
204
|
+
has_username_secret: z.boolean(),
|
|
205
|
+
has_password: z.boolean(),
|
|
206
|
+
has_totp: z.boolean(),
|
|
207
|
+
has_oauth: z.boolean(),
|
|
208
|
+
password_hint: z.string().optional(),
|
|
209
|
+
})
|
|
210
|
+
.meta({ id: 'WebsiteCredentialRecord' });
|
|
211
|
+
|
|
212
|
+
export const WebsiteCredentialFillResponseSchema = z
|
|
213
|
+
.strictObject({
|
|
214
|
+
ok: z.boolean(),
|
|
215
|
+
credential_ref: z.string(),
|
|
216
|
+
url: z.string(),
|
|
217
|
+
title: z.string(),
|
|
218
|
+
filled: z.strictObject({
|
|
219
|
+
username: z.boolean(),
|
|
220
|
+
password: z.boolean(),
|
|
221
|
+
totp: z.boolean(),
|
|
222
|
+
submitted: z.boolean(),
|
|
223
|
+
}),
|
|
224
|
+
})
|
|
225
|
+
.meta({ id: 'WebsiteCredentialFillResponse' });
|
|
226
|
+
|
|
227
|
+
export const WebsiteCredentialFillRequestSchema = z
|
|
228
|
+
.strictObject({
|
|
229
|
+
username_target_id: z.string().optional(),
|
|
230
|
+
password_target_id: z.string().optional(),
|
|
231
|
+
totp_target_id: z.string().optional(),
|
|
232
|
+
submit_target_id: z.string().optional(),
|
|
233
|
+
browser_workflow_id: z.string().meta({
|
|
234
|
+
description:
|
|
235
|
+
'Browser-use parent workflow id. The API resolves the Daytona sandbox and observes the current page server-side before decrypting the credential.',
|
|
236
|
+
}),
|
|
237
|
+
})
|
|
238
|
+
.meta({ id: 'WebsiteCredentialFillRequest' });
|
|
239
|
+
|
|
240
|
+
export const DeleteSecretResponseSchema = z
|
|
241
|
+
.strictObject({
|
|
242
|
+
ok: z.boolean(),
|
|
243
|
+
})
|
|
244
|
+
.meta({ id: 'DeleteSecretResponse' });
|
|
245
|
+
|
|
246
|
+
export const WebsiteCredentialMetadataSchema = z
|
|
247
|
+
.strictObject({
|
|
248
|
+
name: z.string(),
|
|
249
|
+
websites: z.array(WebsiteCredentialWebsiteSchema),
|
|
250
|
+
username: z.string().optional(),
|
|
251
|
+
username_hint: z.string().optional(),
|
|
252
|
+
username_secret: z.boolean().optional(),
|
|
253
|
+
properties: z.looseObject({}).optional(),
|
|
254
|
+
tags: z.array(z.string()).optional(),
|
|
255
|
+
enabled: z.boolean().optional(),
|
|
256
|
+
capabilities: z.array(WebsiteCredentialCapabilitySchema).optional(),
|
|
257
|
+
notes: z.string().optional(),
|
|
258
|
+
totp: WebsiteCredentialTotpMetadataSchema.optional(),
|
|
259
|
+
expires_at: z
|
|
260
|
+
.string()
|
|
261
|
+
.meta({
|
|
262
|
+
description:
|
|
263
|
+
'Optional ISO timestamp after which the credential is no longer usable. Expired credentials are hidden from lookup and cannot be filled.',
|
|
264
|
+
})
|
|
265
|
+
.optional(),
|
|
266
|
+
})
|
|
267
|
+
.meta({ id: 'WebsiteCredentialMetadata' });
|
|
268
|
+
|
|
269
|
+
export const WebsiteCredentialMetadataUpdateSchema = z
|
|
270
|
+
.strictObject({
|
|
271
|
+
name: z.string().optional(),
|
|
272
|
+
websites: z.array(WebsiteCredentialWebsiteSchema).optional(),
|
|
273
|
+
username: z.string().optional(),
|
|
274
|
+
username_hint: z.string().optional(),
|
|
275
|
+
username_secret: z.boolean().optional(),
|
|
276
|
+
properties: z.looseObject({}).optional(),
|
|
277
|
+
tags: z.array(z.string()).optional(),
|
|
278
|
+
enabled: z.boolean().optional(),
|
|
279
|
+
capabilities: z.array(WebsiteCredentialCapabilitySchema).optional(),
|
|
280
|
+
notes: z.string().optional(),
|
|
281
|
+
totp: WebsiteCredentialTotpMetadataSchema.optional(),
|
|
282
|
+
expires_at: z
|
|
283
|
+
.string()
|
|
284
|
+
.meta({
|
|
285
|
+
description:
|
|
286
|
+
'Optional ISO timestamp after which the credential is no longer usable. Expired credentials are hidden from lookup and cannot be filled.',
|
|
287
|
+
})
|
|
288
|
+
.optional(),
|
|
289
|
+
})
|
|
290
|
+
.meta({ id: 'WebsiteCredentialMetadataUpdate' });
|
|
291
|
+
|
|
292
|
+
export const SecretRecordSchema = z
|
|
293
|
+
.strictObject({
|
|
294
|
+
id: z.string(),
|
|
295
|
+
secret_ref: z.string(),
|
|
296
|
+
kind: SecretKindSchema,
|
|
297
|
+
project: z.string(),
|
|
298
|
+
name: z.string(),
|
|
299
|
+
enabled: z.boolean().optional(),
|
|
300
|
+
tags: z.array(z.string()).optional(),
|
|
301
|
+
properties: z.looseObject({}).optional(),
|
|
302
|
+
created_at: z.string().optional(),
|
|
303
|
+
updated_at: z.string().optional(),
|
|
304
|
+
details: WebsiteCredentialRecordSchema.optional(),
|
|
305
|
+
})
|
|
306
|
+
.meta({ id: 'SecretRecord' });
|
|
307
|
+
|
|
308
|
+
export const CreateSecretRequestSchema = z
|
|
309
|
+
.strictObject({
|
|
310
|
+
kind: SecretKindSchema,
|
|
311
|
+
metadata: WebsiteCredentialMetadataSchema,
|
|
312
|
+
secret: WebsiteCredentialSecretInputSchema.optional(),
|
|
313
|
+
})
|
|
314
|
+
.meta({ id: 'CreateSecretRequest' });
|
|
315
|
+
|
|
316
|
+
export const UpdateSecretRequestSchema = z
|
|
317
|
+
.strictObject({
|
|
318
|
+
kind: SecretKindSchema.optional(),
|
|
319
|
+
metadata: WebsiteCredentialMetadataUpdateSchema.optional(),
|
|
320
|
+
secret: WebsiteCredentialSecretInputSchema.optional(),
|
|
321
|
+
clear_username_secret: z.boolean().optional(),
|
|
322
|
+
clear_password: z.boolean().optional(),
|
|
323
|
+
clear_totp: z.boolean().optional(),
|
|
324
|
+
clear_oauth: z.boolean().optional(),
|
|
325
|
+
})
|
|
326
|
+
.meta({ id: 'UpdateSecretRequest' });
|
|
327
|
+
|
|
328
|
+
export const ListSecretsResponseSchema = z
|
|
329
|
+
.strictObject({
|
|
330
|
+
secrets: z.array(SecretRecordSchema),
|
|
331
|
+
})
|
|
332
|
+
.meta({ id: 'ListSecretsResponse' });
|