@vertesia/common 1.5.0-dev.20260722.120446Z → 1.5.0-dev.20260804.124748Z
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/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 +3781 -0
- package/lib/api-schemas/agent-runs.d.ts.map +1 -0
- package/lib/api-schemas/agent-runs.js +991 -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 +1114 -0
- package/lib/api-schemas/app-lifecycle.d.ts.map +1 -0
- package/lib/api-schemas/app-lifecycle.js +750 -0
- package/lib/api-schemas/app-lifecycle.js.map +1 -0
- package/lib/api-schemas/app-runtime.d.ts +9056 -0
- package/lib/api-schemas/app-runtime.d.ts.map +1 -0
- package/lib/api-schemas/app-runtime.js +782 -0
- package/lib/api-schemas/app-runtime.js.map +1 -0
- package/lib/api-schemas/apps.d.ts +247 -0
- package/lib/api-schemas/apps.d.ts.map +1 -0
- package/lib/api-schemas/apps.js +366 -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 +3561 -0
- package/lib/api-schemas/content.d.ts.map +1 -0
- package/lib/api-schemas/content.js +842 -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 +4880 -0
- package/lib/api-schemas/events.d.ts.map +1 -0
- package/lib/api-schemas/events.js +832 -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 +22454 -0
- package/lib/api-schemas/interaction.d.ts.map +1 -0
- package/lib/api-schemas/interaction.js +2065 -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 +97458 -0
- package/lib/api-schemas/registry.d.ts.map +1 -0
- package/lib/api-schemas/registry.js +2586 -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 +156 -0
- package/lib/api-schemas/sts.d.ts.map +1 -0
- package/lib/api-schemas/sts.js +96 -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 +2209 -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 +116 -1121
- package/lib/apps.d.ts.map +1 -1
- 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 +17 -128
- 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 +19 -113
- 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 +7 -0
- package/lib/index.d.ts.map +1 -1
- 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 +116 -734
- package/lib/interaction.d.ts.map +1 -1
- package/lib/interaction.js +56 -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.d.ts +49 -462
- 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 +55 -503
- 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/secrets.d.ts +20 -105
- package/lib/secrets.d.ts.map +1 -1
- package/lib/store/agent-approval.d.ts +5 -14
- 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 +63 -342
- 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 +63 -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 +80 -0
- 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/store.d.ts +98 -693
- package/lib/store/store.d.ts.map +1 -1
- package/lib/store/store.js +4 -443
- 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 +56 -516
- package/lib/store/workflow.d.ts.map +1 -1
- package/lib/store/workflow.js +28 -11
- package/lib/store/workflow.js.map +1 -1
- package/lib/sts-token-types.d.ts +12 -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 +54 -155
- package/lib/user.d.ts.map +1 -1
- package/lib/user.js +1 -78
- package/lib/user.js.map +1 -1
- package/lib/versions.d.ts +24 -1
- package/lib/versions.d.ts.map +1 -1
- package/lib/versions.js +23 -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/views-schema.d.ts +4 -4
- package/lib/views.d.ts +56 -312
- package/lib/views.d.ts.map +1 -1
- package/lib/views.js.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/agent-resources.test.ts +100 -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 +1081 -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-lifecycle.ts +841 -0
- package/src/api-schemas/app-runtime.ts +919 -0
- package/src/api-schemas/apps.ts +415 -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 +939 -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 +921 -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.ts +2357 -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/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 +3487 -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 +450 -0
- package/src/api-schemas/store.ts +604 -0
- package/src/api-schemas/sts.contract.test.ts +80 -0
- package/src/api-schemas/sts.ts +110 -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.ts +249 -1179
- 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 -124
- package/src/facets.ts +4 -7
- package/src/group.ts +38 -42
- package/src/index.ts +11 -0
- package/src/integrations.ts +39 -129
- package/src/interaction-values.ts +23 -0
- package/src/interaction.ts +231 -841
- 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.ts +98 -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 +106 -434
- package/src/store/collections.ts +21 -63
- package/src/store/content-type-editing.test.ts +17 -0
- package/src/store/conversation-state.ts +78 -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 -1182
- package/src/store/task.ts +25 -59
- package/src/store/workflow.ts +103 -554
- package/src/sts-token-types.ts +24 -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 +74 -214
- package/src/versions.ts +24 -0
- package/src/views-schema.test.ts +9 -1
- package/src/views.ts +106 -329
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { describe, expect, expectTypeOf, it } from 'vitest';
|
|
2
|
+
import type {
|
|
3
|
+
CostAnalyticsQuery,
|
|
4
|
+
CostAnalyticsResponse,
|
|
5
|
+
CostRunPriceQuery,
|
|
6
|
+
ModelPriceComparisonResponse,
|
|
7
|
+
} from '../cost-analytics.js';
|
|
8
|
+
import type {
|
|
9
|
+
CostAnalyticsQuerySchema,
|
|
10
|
+
CostAnalyticsResponseSchema,
|
|
11
|
+
CostRunPriceQuerySchema,
|
|
12
|
+
ModelPriceComparisonResponseSchema,
|
|
13
|
+
} from './cost-analytics.js';
|
|
14
|
+
import { ApiSchemaComponents, validateApiRequest, validateApiResponse } from './registry.js';
|
|
15
|
+
|
|
16
|
+
describe('cost analytics API contracts', () => {
|
|
17
|
+
it('derives the public types from the runtime schemas', () => {
|
|
18
|
+
expectTypeOf<CostAnalyticsQuery>().toEqualTypeOf<import('zod').z.infer<typeof CostAnalyticsQuerySchema>>();
|
|
19
|
+
expectTypeOf<CostAnalyticsResponse>().toEqualTypeOf<
|
|
20
|
+
import('zod').z.infer<typeof CostAnalyticsResponseSchema>
|
|
21
|
+
>();
|
|
22
|
+
expectTypeOf<CostRunPriceQuery>().toEqualTypeOf<import('zod').z.infer<typeof CostRunPriceQuerySchema>>();
|
|
23
|
+
expectTypeOf<ModelPriceComparisonResponse>().toEqualTypeOf<
|
|
24
|
+
import('zod').z.infer<typeof ModelPriceComparisonResponseSchema>
|
|
25
|
+
>();
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
it('accepts string and epoch time boundaries', () => {
|
|
29
|
+
expect(validateApiRequest('CostAnalyticsQuery', { from: '2026-08-01T00:00:00Z' }).valid).toBe(true);
|
|
30
|
+
expect(validateApiRequest('CostAnalyticsQuery', { from: 1_786_060_800_000 }).valid).toBe(true);
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
it('rejects undeclared request fields through the published component', () => {
|
|
34
|
+
expect(validateApiRequest('CostRunPriceQuery', { run_id: 'run-1', hidden_filter: true }).valid).toBe(false);
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
it('validates the published model-price response', () => {
|
|
38
|
+
const response: ModelPriceComparisonResponse = {
|
|
39
|
+
prices: [
|
|
40
|
+
{
|
|
41
|
+
model: 'gpt-5',
|
|
42
|
+
source: 'model_pricing_daily',
|
|
43
|
+
input_list_price_per_m_tokens: 1.25,
|
|
44
|
+
},
|
|
45
|
+
],
|
|
46
|
+
effective_range: { from: '2026-08-01', to: '2026-08-02' },
|
|
47
|
+
};
|
|
48
|
+
expect(validateApiResponse('ModelPriceComparisonResponse', response).valid).toBe(true);
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
it('registers the complete cost analytics closure', () => {
|
|
52
|
+
for (const name of [
|
|
53
|
+
'CostAnalyticsQuery',
|
|
54
|
+
'CostRunPriceQuery',
|
|
55
|
+
'CostModelPricesQuery',
|
|
56
|
+
'CostExportQuery',
|
|
57
|
+
'CostAnalyticsResponse',
|
|
58
|
+
'ModelPriceComparisonResponse',
|
|
59
|
+
'CostRunPriceResponse',
|
|
60
|
+
]) {
|
|
61
|
+
expect(ApiSchemaComponents[name]).toBeDefined();
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
});
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
// Zod renders a union as `anyOf`, while the published contract uses JSON Schema's compact type
|
|
4
|
+
// array. Runtime enforcement compiles the emitted JSON Schema with AJV, so the metadata is both the
|
|
5
|
+
// published shape and the validator; the annotation keeps the inferred TypeScript type equally
|
|
6
|
+
// narrow.
|
|
7
|
+
const timeBoundarySchema: z.ZodType<string | number> = z.any().meta({ type: ['string', 'number'] });
|
|
8
|
+
|
|
9
|
+
export const PricingSyncPayloadSchema = z
|
|
10
|
+
.strictObject({
|
|
11
|
+
date: z.string().optional(),
|
|
12
|
+
backfill_from: z.string().optional(),
|
|
13
|
+
})
|
|
14
|
+
.meta({ id: 'PricingSyncPayload' });
|
|
15
|
+
|
|
16
|
+
export const PricingSyncDayResultSchema = z
|
|
17
|
+
.strictObject({
|
|
18
|
+
date: z.string(),
|
|
19
|
+
gcp_list: z.number(),
|
|
20
|
+
gcp_effective: z.number(),
|
|
21
|
+
aws_pricing: z.number(),
|
|
22
|
+
})
|
|
23
|
+
.meta({ id: 'PricingSyncDayResult' });
|
|
24
|
+
|
|
25
|
+
export const PricingSyncResultSchema = z
|
|
26
|
+
.strictObject({
|
|
27
|
+
days: z.array(PricingSyncDayResultSchema),
|
|
28
|
+
total_days: z.number(),
|
|
29
|
+
})
|
|
30
|
+
.meta({ id: 'PricingSyncResult' });
|
|
31
|
+
|
|
32
|
+
export const CostAnalyticsQuerySchema = z
|
|
33
|
+
.strictObject({
|
|
34
|
+
from: timeBoundarySchema.meta({ description: 'Start time (ISO string or epoch ms)' }).optional(),
|
|
35
|
+
to: timeBoundarySchema.meta({ description: 'End time (ISO string or epoch ms)' }).optional(),
|
|
36
|
+
group_by: z
|
|
37
|
+
.enum(['model', 'environment', 'account', 'project', 'project_tag', 'provider', 'interaction', 'workflow'])
|
|
38
|
+
.meta({ description: 'Group results by this dimension' })
|
|
39
|
+
.optional(),
|
|
40
|
+
resolution: z.enum(['hour', 'day', 'week', 'month']).meta({ description: 'Time series resolution' }).optional(),
|
|
41
|
+
model: z.string().meta({ description: 'Filter by model pattern' }).optional(),
|
|
42
|
+
environment_id: z.string().meta({ description: 'Filter by environment ID' }).optional(),
|
|
43
|
+
provider: z.string().meta({ description: 'Filter by provider' }).optional(),
|
|
44
|
+
project_id: z.string().meta({ description: 'Filter by project ID (optional, for org scope)' }).optional(),
|
|
45
|
+
workflow_id: z.string().meta({ description: 'Filter by workflow / agent run ID' }).optional(),
|
|
46
|
+
workflow_run_id: z.string().meta({ description: 'Filter by Temporal workflow run ID' }).optional(),
|
|
47
|
+
run_id: z.string().meta({ description: 'Filter by interaction execution run ID' }).optional(),
|
|
48
|
+
agent_run_id: z.string().meta({ description: 'Filter by agent run ID' }).optional(),
|
|
49
|
+
interaction_id: z
|
|
50
|
+
.string()
|
|
51
|
+
.meta({ description: 'Filter by interaction id: stored ObjectId or namespaced in-code id' })
|
|
52
|
+
.optional(),
|
|
53
|
+
principal_id: z
|
|
54
|
+
.string()
|
|
55
|
+
.meta({
|
|
56
|
+
description:
|
|
57
|
+
'Filter by principal (bare user or API key id; matched against the suffix of principal_id)',
|
|
58
|
+
})
|
|
59
|
+
.optional(),
|
|
60
|
+
account_id: z.string().meta({ description: 'Filter by account ID (set automatically by server)' }).optional(),
|
|
61
|
+
scope: z
|
|
62
|
+
.enum(['project', 'org'])
|
|
63
|
+
.meta({ description: "Scope: 'project' (default, current project) or 'org' (all projects in account)" })
|
|
64
|
+
.optional(),
|
|
65
|
+
pricing_source: z
|
|
66
|
+
.enum(['list', 'historical'])
|
|
67
|
+
.meta({
|
|
68
|
+
description:
|
|
69
|
+
"Pricing source: 'list' (latest daily prices) or 'historical' (daily effective prices over the query range). Default: 'list'",
|
|
70
|
+
})
|
|
71
|
+
.optional(),
|
|
72
|
+
no_cache: z.boolean().meta({ description: 'Skip cache and force fresh query' }).optional(),
|
|
73
|
+
})
|
|
74
|
+
.meta({ id: 'CostAnalyticsQuery' });
|
|
75
|
+
|
|
76
|
+
export const CostRunPriceQuerySchema = z
|
|
77
|
+
.strictObject({
|
|
78
|
+
run_id: z.string().meta({ description: 'Interaction execution run ID' }).optional(),
|
|
79
|
+
agent_run_id: z.string().meta({ description: 'Agent run ID' }).optional(),
|
|
80
|
+
workflow_id: z.string().meta({ description: 'Workflow ID, when known' }).optional(),
|
|
81
|
+
workflow_run_id: z.string().meta({ description: 'Temporal workflow run ID, when known' }).optional(),
|
|
82
|
+
from: timeBoundarySchema.meta({ description: 'Optional lower bound for audit events' }).optional(),
|
|
83
|
+
to: timeBoundarySchema.meta({ description: 'Optional upper bound for audit events' }).optional(),
|
|
84
|
+
pricing_source: z
|
|
85
|
+
.enum(['list', 'historical'])
|
|
86
|
+
.meta({ description: 'Pricing source. Defaults to historical effective prices for run pricing.' })
|
|
87
|
+
.optional(),
|
|
88
|
+
include_comparison_pricing: z
|
|
89
|
+
.boolean()
|
|
90
|
+
.meta({ description: 'Include the full pricing catalog for cross-model comparison. Defaults to false.' })
|
|
91
|
+
.optional(),
|
|
92
|
+
project_id: z
|
|
93
|
+
.string()
|
|
94
|
+
.meta({ description: 'Project filter; server fills current project by default' })
|
|
95
|
+
.optional(),
|
|
96
|
+
account_id: z.string().meta({ description: 'Account filter; server fills current account' }).optional(),
|
|
97
|
+
scope: z
|
|
98
|
+
.enum(['project', 'org'])
|
|
99
|
+
.meta({ description: "Scope: 'project' (default, current project) or 'org'" })
|
|
100
|
+
.optional(),
|
|
101
|
+
})
|
|
102
|
+
.meta({ id: 'CostRunPriceQuery' });
|
|
103
|
+
|
|
104
|
+
export const CostModelPricesQuerySchema = z
|
|
105
|
+
.object({
|
|
106
|
+
from: timeBoundarySchema.meta({ description: 'Start time (ISO string or epoch ms)' }).optional(),
|
|
107
|
+
to: timeBoundarySchema.meta({ description: 'End time (ISO string or epoch ms)' }).optional(),
|
|
108
|
+
})
|
|
109
|
+
.meta({ id: 'CostModelPricesQuery' });
|
|
110
|
+
|
|
111
|
+
export const CostExportQuerySchema = z
|
|
112
|
+
.object({
|
|
113
|
+
from: timeBoundarySchema.meta({ description: 'Start time (ISO string or epoch ms)' }).optional(),
|
|
114
|
+
to: timeBoundarySchema.meta({ description: 'End time (ISO string or epoch ms)' }).optional(),
|
|
115
|
+
scope: z
|
|
116
|
+
.enum(['project', 'org'])
|
|
117
|
+
.meta({ description: "Scope: 'project' (default, current project) or 'org' (all projects in account)" })
|
|
118
|
+
.optional(),
|
|
119
|
+
project_id: z.string().meta({ description: 'Filter by project ID (optional, for org scope)' }).optional(),
|
|
120
|
+
workflow_id: z.string().meta({ description: 'Filter by workflow / agent run ID' }).optional(),
|
|
121
|
+
})
|
|
122
|
+
.meta({ id: 'CostExportQuery' });
|
|
123
|
+
|
|
124
|
+
export const ModelPricingSchema = z
|
|
125
|
+
.strictObject({
|
|
126
|
+
model: z.string(),
|
|
127
|
+
provider: z.string().optional(),
|
|
128
|
+
provider_account_id: z.string().optional(),
|
|
129
|
+
input_price_per_m_tokens: z.number(),
|
|
130
|
+
cached_input_price_per_m_tokens: z.number().optional(),
|
|
131
|
+
cache_write_input_price_per_m_tokens: z.number().optional(),
|
|
132
|
+
output_price_per_m_tokens: z.number(),
|
|
133
|
+
source: z.enum(['billing_export', 'model_pricing_daily', 'unavailable']),
|
|
134
|
+
})
|
|
135
|
+
.meta({ id: 'ModelPricing' });
|
|
136
|
+
|
|
137
|
+
export const CostTimeSeriesPointSchema = z
|
|
138
|
+
.strictObject({
|
|
139
|
+
timestamp: z.string(),
|
|
140
|
+
cost: z.number(),
|
|
141
|
+
input_tokens: z.number(),
|
|
142
|
+
cached_input_tokens: z.number().optional(),
|
|
143
|
+
cache_write_input_tokens: z.number().optional(),
|
|
144
|
+
output_tokens: z.number(),
|
|
145
|
+
calls: z.number(),
|
|
146
|
+
})
|
|
147
|
+
.meta({ id: 'CostTimeSeriesPoint' });
|
|
148
|
+
|
|
149
|
+
export const CostSummarySchema = z
|
|
150
|
+
.strictObject({
|
|
151
|
+
total_cost: z.number(),
|
|
152
|
+
total_input_tokens: z.number(),
|
|
153
|
+
total_cached_input_tokens: z.number().optional(),
|
|
154
|
+
total_cache_write_input_tokens: z.number().optional(),
|
|
155
|
+
total_output_tokens: z.number(),
|
|
156
|
+
total_calls: z.number(),
|
|
157
|
+
total_duration_ms: z.number(),
|
|
158
|
+
})
|
|
159
|
+
.meta({ id: 'CostSummary' });
|
|
160
|
+
|
|
161
|
+
export const ModelPriceComparisonSchema = z
|
|
162
|
+
.strictObject({
|
|
163
|
+
model: z.string(),
|
|
164
|
+
provider: z.string().optional(),
|
|
165
|
+
provider_account_id: z.string().optional(),
|
|
166
|
+
list_price_date: z.string().optional(),
|
|
167
|
+
effective_from: z.string().optional(),
|
|
168
|
+
effective_to: z.string().optional(),
|
|
169
|
+
input_list_price_per_m_tokens: z.number().optional(),
|
|
170
|
+
input_effective_price_per_m_tokens: z.number().optional(),
|
|
171
|
+
cached_input_list_price_per_m_tokens: z.number().optional(),
|
|
172
|
+
cached_input_effective_price_per_m_tokens: z.number().optional(),
|
|
173
|
+
cache_write_input_list_price_per_m_tokens: z.number().optional(),
|
|
174
|
+
cache_write_input_effective_price_per_m_tokens: z.number().optional(),
|
|
175
|
+
output_list_price_per_m_tokens: z.number().optional(),
|
|
176
|
+
output_effective_price_per_m_tokens: z.number().optional(),
|
|
177
|
+
source: z.literal('model_pricing_daily'),
|
|
178
|
+
})
|
|
179
|
+
.meta({ id: 'ModelPriceComparison' });
|
|
180
|
+
|
|
181
|
+
export const CostByDimensionSchema = z
|
|
182
|
+
.strictObject({
|
|
183
|
+
dimension: z.string(),
|
|
184
|
+
label: z.string().optional(),
|
|
185
|
+
provider: z.string().optional(),
|
|
186
|
+
cost: z.number(),
|
|
187
|
+
input_tokens: z.number(),
|
|
188
|
+
cached_input_tokens: z.number().optional(),
|
|
189
|
+
cache_write_input_tokens: z.number().optional(),
|
|
190
|
+
output_tokens: z.number(),
|
|
191
|
+
calls: z.number(),
|
|
192
|
+
periods: z.array(CostTimeSeriesPointSchema).optional(),
|
|
193
|
+
})
|
|
194
|
+
.meta({ id: 'CostByDimension' });
|
|
195
|
+
|
|
196
|
+
export const ModelPriceComparisonResponseSchema = z
|
|
197
|
+
.strictObject({
|
|
198
|
+
prices: z.array(ModelPriceComparisonSchema),
|
|
199
|
+
effective_range: z.strictObject({
|
|
200
|
+
from: z.string(),
|
|
201
|
+
to: z.string(),
|
|
202
|
+
}),
|
|
203
|
+
list_price_date: z.string().optional(),
|
|
204
|
+
})
|
|
205
|
+
.meta({ id: 'ModelPriceComparisonResponse' });
|
|
206
|
+
|
|
207
|
+
export const CostAnalyticsResponseSchema = z
|
|
208
|
+
.strictObject({
|
|
209
|
+
summary: CostSummarySchema,
|
|
210
|
+
by_dimension: z.array(CostByDimensionSchema),
|
|
211
|
+
time_series: z.array(CostTimeSeriesPointSchema),
|
|
212
|
+
pricing: z.array(ModelPricingSchema),
|
|
213
|
+
query_range: z.strictObject({
|
|
214
|
+
from: z.string(),
|
|
215
|
+
to: z.string(),
|
|
216
|
+
}),
|
|
217
|
+
cached: z.boolean(),
|
|
218
|
+
})
|
|
219
|
+
.meta({ id: 'CostAnalyticsResponse' });
|
|
220
|
+
|
|
221
|
+
export const CostRunPriceResponseSchema = z
|
|
222
|
+
.strictObject({
|
|
223
|
+
summary: CostSummarySchema,
|
|
224
|
+
by_model: z.array(CostByDimensionSchema),
|
|
225
|
+
pricing: z.array(ModelPricingSchema).optional(),
|
|
226
|
+
query_range: z
|
|
227
|
+
.strictObject({
|
|
228
|
+
from: z.string(),
|
|
229
|
+
to: z.string(),
|
|
230
|
+
})
|
|
231
|
+
.optional(),
|
|
232
|
+
pricing_source: z.enum(['list', 'historical']),
|
|
233
|
+
matched_events: z.number(),
|
|
234
|
+
})
|
|
235
|
+
.meta({ id: 'CostRunPriceResponse' });
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import type { z } from 'zod';
|
|
3
|
+
import type {
|
|
4
|
+
CreateDashboardPayload,
|
|
5
|
+
Dashboard,
|
|
6
|
+
DashboardDataSource,
|
|
7
|
+
DashboardItem,
|
|
8
|
+
DashboardStatus,
|
|
9
|
+
DashboardVersion,
|
|
10
|
+
UpdateDashboardPayload,
|
|
11
|
+
} from '../data-platform.js';
|
|
12
|
+
import type {
|
|
13
|
+
CreateDashboardPayloadSchema,
|
|
14
|
+
DashboardDataSourceSchema,
|
|
15
|
+
DashboardItemSchema,
|
|
16
|
+
DashboardSchema,
|
|
17
|
+
DashboardStatusSchema,
|
|
18
|
+
DashboardVersionSchema,
|
|
19
|
+
UpdateDashboardPayloadSchema,
|
|
20
|
+
} from './dashboard.js';
|
|
21
|
+
import { ApiSchemaComponents, validateApiRequest, validateApiResponse } from './registry.js';
|
|
22
|
+
|
|
23
|
+
type Equals<A, B> = (<T>() => T extends A ? 1 : 2) extends <T>() => T extends B ? 1 : 2 ? true : false;
|
|
24
|
+
function assertType<T extends true>(_ok: T): void {}
|
|
25
|
+
|
|
26
|
+
describe('the dashboard public types', () => {
|
|
27
|
+
it('derive from the runtime schemas instead of restating them', () => {
|
|
28
|
+
assertType<Equals<DashboardStatus, z.infer<typeof DashboardStatusSchema>>>(true);
|
|
29
|
+
assertType<Equals<DashboardDataSource, z.infer<typeof DashboardDataSourceSchema>>>(true);
|
|
30
|
+
assertType<Equals<DashboardItem, z.infer<typeof DashboardItemSchema>>>(true);
|
|
31
|
+
assertType<Equals<Dashboard, z.infer<typeof DashboardSchema>>>(true);
|
|
32
|
+
assertType<Equals<DashboardVersion, z.infer<typeof DashboardVersionSchema>>>(true);
|
|
33
|
+
assertType<Equals<CreateDashboardPayload, z.infer<typeof CreateDashboardPayloadSchema>>>(true);
|
|
34
|
+
assertType<Equals<UpdateDashboardPayload, z.infer<typeof UpdateDashboardPayloadSchema>>>(true);
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
it('keeps the runtime status values available without importing Zod from the root entry', async () => {
|
|
38
|
+
const common = await import('../data-platform.js');
|
|
39
|
+
expect(common.DashboardStatus).toEqual({ ACTIVE: 'active', ARCHIVED: 'archived' });
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
describe('dashboard request validation', () => {
|
|
44
|
+
const create = {
|
|
45
|
+
name: 'Revenue',
|
|
46
|
+
dataSource: { kind: 'data_sql', query: 'select * from revenue' },
|
|
47
|
+
spec: { mark: 'bar' },
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
it('accepts the two documented data-source branches', () => {
|
|
51
|
+
expect(validateApiRequest('CreateDashboardPayload', create)).toMatchObject({ valid: true });
|
|
52
|
+
expect(
|
|
53
|
+
validateApiRequest('CreateDashboardPayload', {
|
|
54
|
+
...create,
|
|
55
|
+
dataSource: { kind: 'store_es_dsl', dsl: { size: 20 }, result: { type: 'hits' } },
|
|
56
|
+
}),
|
|
57
|
+
).toMatchObject({ valid: true });
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
it('rejects an unknown data-source discriminator and undeclared payload fields', () => {
|
|
61
|
+
expect(
|
|
62
|
+
validateApiRequest('CreateDashboardPayload', {
|
|
63
|
+
...create,
|
|
64
|
+
dataSource: { kind: 'http', url: 'https://example.test/data' },
|
|
65
|
+
}).valid,
|
|
66
|
+
).toBe(false);
|
|
67
|
+
expect(validateApiRequest('CreateDashboardPayload', { ...create, project: 'ignored-before' }).valid).toBe(
|
|
68
|
+
false,
|
|
69
|
+
);
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
it('derives update as the partial create shape plus skip_versioning', () => {
|
|
73
|
+
expect(validateApiRequest('UpdateDashboardPayload', {})).toMatchObject({ valid: true });
|
|
74
|
+
expect(validateApiRequest('UpdateDashboardPayload', { spec: { mark: 'line' } })).toMatchObject({
|
|
75
|
+
valid: true,
|
|
76
|
+
});
|
|
77
|
+
expect(validateApiRequest('UpdateDashboardPayload', { skip_versioning: true })).toMatchObject({ valid: true });
|
|
78
|
+
expect(validateApiRequest('UpdateDashboardPayload', { unknown: true }).valid).toBe(false);
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
it('keeps the two bulk bodies as the free-form string-array map already published', () => {
|
|
82
|
+
expect(validateApiRequest('StringArrayMap', { ids: ['one', 'two'] })).toMatchObject({ valid: true });
|
|
83
|
+
expect(validateApiRequest('StringArrayMap', { labels: ['one'] })).toMatchObject({ valid: true });
|
|
84
|
+
expect(validateApiRequest('StringArrayMap', { ids: 'one' }).valid).toBe(false);
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
describe('dashboard response validation', () => {
|
|
89
|
+
const item = {
|
|
90
|
+
id: 'dashboard-1',
|
|
91
|
+
name: 'Revenue',
|
|
92
|
+
tags: [],
|
|
93
|
+
updated_by: 'user:editor',
|
|
94
|
+
created_by: 'user:author',
|
|
95
|
+
created_at: '2026-08-01T00:00:00.000Z',
|
|
96
|
+
updated_at: '2026-08-02T00:00:00.000Z',
|
|
97
|
+
store_id: 'store-1',
|
|
98
|
+
status: 'active',
|
|
99
|
+
panel_count: 0,
|
|
100
|
+
query_count: 0,
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
it('accepts the mapper-produced listing and full response shapes', () => {
|
|
104
|
+
expect(validateApiResponse('DashboardItem', item)).toMatchObject({ valid: true });
|
|
105
|
+
expect(
|
|
106
|
+
validateApiResponse('Dashboard', {
|
|
107
|
+
...item,
|
|
108
|
+
query: 'select * from revenue',
|
|
109
|
+
spec: { mark: 'bar' },
|
|
110
|
+
queries: [],
|
|
111
|
+
panels: [],
|
|
112
|
+
layout: { columns: 2, cellWidth: 600, cellHeight: 400, padding: 20 },
|
|
113
|
+
}),
|
|
114
|
+
).toMatchObject({ valid: true });
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
it('rejects persistence-only fields instead of allowing a document spread to escape', () => {
|
|
118
|
+
expect(validateApiResponse('DashboardItem', { ...item, account: 'account-1' }).valid).toBe(false);
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
it('registers the complete response closure used by the endpoints', () => {
|
|
122
|
+
expect(ApiSchemaComponents).toHaveProperty('DashboardItemArray');
|
|
123
|
+
expect(ApiSchemaComponents).toHaveProperty('DashboardVersionItemArray');
|
|
124
|
+
expect(ApiSchemaComponents).toHaveProperty('DashboardVersion');
|
|
125
|
+
expect(ApiSchemaComponents).toHaveProperty('Dashboard');
|
|
126
|
+
});
|
|
127
|
+
});
|