@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,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Access-control values that exist at runtime — the enums and the scope list.
|
|
3
|
+
*
|
|
4
|
+
* Split out of `access-control.ts` and `roles/types.ts` for the same reason `account-values.ts` was
|
|
5
|
+
* split out of `user.ts`: the API schemas need these values (`z.enum(Permission)`,
|
|
6
|
+
* `z.enum(AbacScopes)`) while those two modules need the types the schemas infer. Keeping them where
|
|
7
|
+
* they were would make each import a module that imports it back; here, both sides depend on this
|
|
8
|
+
* module and nothing depends on them.
|
|
9
|
+
*
|
|
10
|
+
* Everything is re-exported from its original module, so existing import paths keep working — this
|
|
11
|
+
* is a move, not a rename.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
export enum Permission {
|
|
15
|
+
int_read = 'interaction:read',
|
|
16
|
+
int_write = 'interaction:write',
|
|
17
|
+
int_delete = 'interaction:delete',
|
|
18
|
+
|
|
19
|
+
int_execute = 'interaction:execute',
|
|
20
|
+
run_read = 'run:read',
|
|
21
|
+
run_write = 'run:write',
|
|
22
|
+
|
|
23
|
+
env_admin = 'environment:admin',
|
|
24
|
+
|
|
25
|
+
app_manage = 'app:manage',
|
|
26
|
+
project_admin = 'project:admin',
|
|
27
|
+
project_integration_read = 'project:integration_read',
|
|
28
|
+
project_settings_write = 'project:settings_write',
|
|
29
|
+
|
|
30
|
+
api_key_create = 'api_key:create',
|
|
31
|
+
api_key_read = 'api_key:read',
|
|
32
|
+
api_key_secret_read = 'api_key:secret_read',
|
|
33
|
+
api_key_update = 'api_key:update',
|
|
34
|
+
api_key_delete = 'api_key:delete',
|
|
35
|
+
|
|
36
|
+
account_read = 'account:read',
|
|
37
|
+
account_write = 'account:write',
|
|
38
|
+
account_admin = 'account:admin',
|
|
39
|
+
manage_billing = 'account:billing',
|
|
40
|
+
/** View cost and usage analytics */
|
|
41
|
+
billing_read = 'billing:read',
|
|
42
|
+
/** View account and project audit events. */
|
|
43
|
+
audit_read = 'audit:read',
|
|
44
|
+
account_member = 'account:member',
|
|
45
|
+
|
|
46
|
+
content_read = 'content:read',
|
|
47
|
+
content_read_all = 'content:read_all',
|
|
48
|
+
content_write = 'content:write',
|
|
49
|
+
content_delete = 'content:delete',
|
|
50
|
+
content_admin = 'content:admin', //manage schemas
|
|
51
|
+
content_superadmin = 'content:superadmin', // list all objects and collections
|
|
52
|
+
|
|
53
|
+
workflow_read = 'workflow:read',
|
|
54
|
+
workflow_run = 'workflow:run',
|
|
55
|
+
workflow_admin = 'workflow:admin',
|
|
56
|
+
workflow_superadmin = 'workflow:superadmin',
|
|
57
|
+
|
|
58
|
+
agent_run_read = 'agent_run:read',
|
|
59
|
+
|
|
60
|
+
task_read = 'task:read',
|
|
61
|
+
task_manage = 'task:manage',
|
|
62
|
+
|
|
63
|
+
iam_impersonate = 'iam:impersonate',
|
|
64
|
+
|
|
65
|
+
/** whether the user has access to Sutdio App. */
|
|
66
|
+
studio_access = 'studio:access',
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export enum AccessControlResourceType {
|
|
70
|
+
project = 'project',
|
|
71
|
+
environment = 'environment',
|
|
72
|
+
account = 'account',
|
|
73
|
+
interaction = 'interaction',
|
|
74
|
+
app = 'application',
|
|
75
|
+
/**
|
|
76
|
+
* Dynamic resource matching by property conditions at query time. The role
|
|
77
|
+
* partitions (content, future tasks/etc.) determine which kind of object
|
|
78
|
+
* the conditions match — selected via `AceConditions.scope`.
|
|
79
|
+
*
|
|
80
|
+
* NOTE: the string value remains `'content_set'` for backward compatibility
|
|
81
|
+
* with stored ACEs and JWTs. The wire/DB rename to `'resource_set'` is a
|
|
82
|
+
* separate concern (deferred). Until then, code reads
|
|
83
|
+
* `AccessControlResourceType.resource_set` but the value on the wire stays
|
|
84
|
+
* `'content_set'`.
|
|
85
|
+
*/
|
|
86
|
+
resource_set = 'content_set',
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export enum AccessControlPrincipalType {
|
|
90
|
+
user = 'user',
|
|
91
|
+
group = 'group',
|
|
92
|
+
apikey = 'apikey',
|
|
93
|
+
/** Dynamic principal matching by user/group properties at token time. */
|
|
94
|
+
principal_set = 'principal_set',
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Kind of object a ResourceSet's `resource_props` matches at query time. Used
|
|
99
|
+
* in `AceConditions.scope` (validated at runtime against this list) and as
|
|
100
|
+
* the prefix in JWT `content_security` keys (e.g. `collection:read`).
|
|
101
|
+
*
|
|
102
|
+
* Each scope is owned by exactly one partition. When adding a new partition
|
|
103
|
+
* (e.g. tasks), extend this list with the new scope(s) AND extend `RoleDomain`
|
|
104
|
+
* with the new domain.
|
|
105
|
+
*/
|
|
106
|
+
export const AbacScopes = ['document', 'collection', 'task'] as const;
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Logical grouping of roles by the service area that owns them. Declared as a
|
|
110
|
+
* runtime list so the role schemas can publish it as an enum component; the
|
|
111
|
+
* `RoleDomain` type is inferred from it in `roles/types.ts`.
|
|
112
|
+
*/
|
|
113
|
+
export const RoleDomains = ['system', 'content', 'tasks'] as const;
|
package/src/access-control.ts
CHANGED
|
@@ -1,93 +1,25 @@
|
|
|
1
|
+
import type { z } from 'zod';
|
|
1
2
|
/**
|
|
2
3
|
* @module access-control
|
|
3
4
|
* @description
|
|
4
5
|
* Access control interfaces
|
|
5
6
|
*/
|
|
6
7
|
|
|
7
|
-
import type {
|
|
8
|
+
import type { AccessControlResourceType } from './access-control-values.js';
|
|
9
|
+
import type {
|
|
10
|
+
ACECreatePayloadSchema,
|
|
11
|
+
ACEUpdatePayloadSchema,
|
|
12
|
+
AccessControlEntrySchema,
|
|
13
|
+
AceConditionsSchema,
|
|
14
|
+
PropertyConditionsSchema,
|
|
15
|
+
PropertyConditionValueSchema,
|
|
16
|
+
} from './api-schemas/access-control.js';
|
|
8
17
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
int_execute = 'interaction:execute',
|
|
15
|
-
run_read = 'run:read',
|
|
16
|
-
run_write = 'run:write',
|
|
17
|
-
|
|
18
|
-
env_admin = 'environment:admin',
|
|
19
|
-
|
|
20
|
-
app_manage = 'app:manage',
|
|
21
|
-
project_admin = 'project:admin',
|
|
22
|
-
project_integration_read = 'project:integration_read',
|
|
23
|
-
project_settings_write = 'project:settings_write',
|
|
24
|
-
|
|
25
|
-
api_key_create = 'api_key:create',
|
|
26
|
-
api_key_read = 'api_key:read',
|
|
27
|
-
api_key_secret_read = 'api_key:secret_read',
|
|
28
|
-
api_key_update = 'api_key:update',
|
|
29
|
-
api_key_delete = 'api_key:delete',
|
|
30
|
-
|
|
31
|
-
account_read = 'account:read',
|
|
32
|
-
account_write = 'account:write',
|
|
33
|
-
account_admin = 'account:admin',
|
|
34
|
-
manage_billing = 'account:billing',
|
|
35
|
-
/** View cost and usage analytics */
|
|
36
|
-
billing_read = 'billing:read',
|
|
37
|
-
/** View account and project audit events. */
|
|
38
|
-
audit_read = 'audit:read',
|
|
39
|
-
account_member = 'account:member',
|
|
40
|
-
|
|
41
|
-
content_read = 'content:read',
|
|
42
|
-
content_read_all = 'content:read_all',
|
|
43
|
-
content_write = 'content:write',
|
|
44
|
-
content_delete = 'content:delete',
|
|
45
|
-
content_admin = 'content:admin', //manage schemas
|
|
46
|
-
content_superadmin = 'content:superadmin', // list all objects and collections
|
|
47
|
-
|
|
48
|
-
workflow_read = 'workflow:read',
|
|
49
|
-
workflow_run = 'workflow:run',
|
|
50
|
-
workflow_admin = 'workflow:admin',
|
|
51
|
-
workflow_superadmin = 'workflow:superadmin',
|
|
52
|
-
|
|
53
|
-
agent_run_read = 'agent_run:read',
|
|
54
|
-
|
|
55
|
-
task_read = 'task:read',
|
|
56
|
-
task_manage = 'task:manage',
|
|
57
|
-
|
|
58
|
-
iam_impersonate = 'iam:impersonate',
|
|
59
|
-
|
|
60
|
-
/** whether the user has access to Sutdio App. */
|
|
61
|
-
studio_access = 'studio:access',
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
export enum AccessControlResourceType {
|
|
65
|
-
project = 'project',
|
|
66
|
-
environment = 'environment',
|
|
67
|
-
account = 'account',
|
|
68
|
-
interaction = 'interaction',
|
|
69
|
-
app = 'application',
|
|
70
|
-
/**
|
|
71
|
-
* Dynamic resource matching by property conditions at query time. The role
|
|
72
|
-
* partitions (content, future tasks/etc.) determine which kind of object
|
|
73
|
-
* the conditions match — selected via `AceConditions.scope`.
|
|
74
|
-
*
|
|
75
|
-
* NOTE: the string value remains `'content_set'` for backward compatibility
|
|
76
|
-
* with stored ACEs and JWTs. The wire/DB rename to `'resource_set'` is a
|
|
77
|
-
* separate concern (deferred). Until then, code reads
|
|
78
|
-
* `AccessControlResourceType.resource_set` but the value on the wire stays
|
|
79
|
-
* `'content_set'`.
|
|
80
|
-
*/
|
|
81
|
-
resource_set = 'content_set',
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
export enum AccessControlPrincipalType {
|
|
85
|
-
user = 'user',
|
|
86
|
-
group = 'group',
|
|
87
|
-
apikey = 'apikey',
|
|
88
|
-
/** Dynamic principal matching by user/group properties at token time. */
|
|
89
|
-
principal_set = 'principal_set',
|
|
90
|
-
}
|
|
18
|
+
/**
|
|
19
|
+
* The enums live in `./access-control-values.js` so the API schemas can consume them without
|
|
20
|
+
* importing this module back. Re-exported here so every existing import path keeps working.
|
|
21
|
+
*/
|
|
22
|
+
export * from './access-control-values.js';
|
|
91
23
|
|
|
92
24
|
/**
|
|
93
25
|
* MongoDB query syntax subset for matching properties.
|
|
@@ -104,64 +36,27 @@ export enum AccessControlPrincipalType {
|
|
|
104
36
|
* { region: { $in: ["us-east", "eu-west"] } } // set membership (literal)
|
|
105
37
|
* { security_level: { $lte: "$principal.access_level" } } // cross-reference (resolved at token time)
|
|
106
38
|
*/
|
|
107
|
-
|
|
108
|
-
export type
|
|
109
|
-
|
|
110
|
-
export type PropertyConditions = Record<string, PropertyConditionValue>;
|
|
39
|
+
export type PropertyConditionValue = z.infer<typeof PropertyConditionValueSchema>;
|
|
40
|
+
export type PropertyConditions = z.infer<typeof PropertyConditionsSchema>;
|
|
111
41
|
|
|
112
42
|
/**
|
|
113
|
-
*
|
|
114
|
-
*
|
|
115
|
-
*
|
|
43
|
+
* The access-control wire types, inferred from the schemas in `./api-schemas/access-control.js` —
|
|
44
|
+
* which are what OpenAPI publishes and AJV compiles. The field descriptions live there too, since
|
|
45
|
+
* Zod reads `.meta()` and not TSDoc.
|
|
46
|
+
*
|
|
47
|
+
* NOTE `conditions` carries ONLY the three fields it declares. The server stores two more there —
|
|
48
|
+
* `principal_name` / `resource_name`, see `IAceConditions` in `@dglabs/server-common` — and copies
|
|
49
|
+
* them into `principal` / `resource` on the way out. They are not part of this contract, and the
|
|
50
|
+
* response mappers drop them rather than serializing the sub-document.
|
|
116
51
|
*/
|
|
117
|
-
export
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
* the JWT `content_security` key prefix (`{scope}:{verb}`). Absent →
|
|
126
|
-
* `'document'` (default; emits bare `read`/`write`/`delete` keys for
|
|
127
|
-
* backward compatibility).
|
|
128
|
-
*/
|
|
129
|
-
scope?: AbacScope;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
export interface AccessControlEntry {
|
|
133
|
-
/**
|
|
134
|
-
* Role name. Typed as `string` because role names now span multiple
|
|
135
|
-
* partitions: `SystemRoles` enum values for system-domain roles, and bare
|
|
136
|
-
* strings for ABAC-domain roles (e.g. `'content:reader'`,
|
|
137
|
-
* `'content:writer'`, `'content:manager'`). Mongoose schema validates the
|
|
138
|
-
* value against the registered role catalog via `getAllRoleNames()`.
|
|
139
|
-
*/
|
|
140
|
-
role: string;
|
|
141
|
-
resource_type: AccessControlResourceType;
|
|
142
|
-
resource: string; //objectId
|
|
143
|
-
principal_type: AccessControlPrincipalType;
|
|
144
|
-
principal: string; //objectId
|
|
145
|
-
/** Account scope — required for principal_set/content_set ACEs. */
|
|
146
|
-
account?: string;
|
|
147
|
-
/** Project scope — narrows a principal_set/content_set ACE to a single project. */
|
|
148
|
-
project?: string;
|
|
149
|
-
/** Dynamic matching conditions for principal_set/content_set ACEs. */
|
|
150
|
-
conditions?: AceConditions;
|
|
151
|
-
tags?: string[];
|
|
152
|
-
expires_at?: string;
|
|
153
|
-
created_at?: string;
|
|
154
|
-
updated_at?: string;
|
|
155
|
-
id: string;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
export interface ACECreatePayload extends Omit<AccessControlEntry, 'created_at' | 'updated_at' | 'id'> {}
|
|
159
|
-
|
|
160
|
-
export interface ACEUpdatePayload extends Partial<ACECreatePayload> {}
|
|
161
|
-
|
|
162
|
-
// RoleDefinition + SystemRoleDefinition now live in `./roles/types.js` to
|
|
163
|
-
// avoid a circular import with `RoleDomain`. They remain re-exported via
|
|
164
|
-
// the package's index.ts so consumers see no path change.
|
|
52
|
+
export type AceConditions = z.infer<typeof AceConditionsSchema>;
|
|
53
|
+
export type AccessControlEntry = z.infer<typeof AccessControlEntrySchema>;
|
|
54
|
+
export type ACECreatePayload = z.infer<typeof ACECreatePayloadSchema>;
|
|
55
|
+
export type ACEUpdatePayload = z.infer<typeof ACEUpdatePayloadSchema>;
|
|
56
|
+
|
|
57
|
+
// RoleDefinition + SystemRoleDefinition now live in `./roles/types.js`, and are likewise inferred
|
|
58
|
+
// from `./api-schemas/access-control.js`. They remain re-exported via the package's index.ts so
|
|
59
|
+
// consumers see no path change.
|
|
165
60
|
|
|
166
61
|
// ============================================================================
|
|
167
62
|
// BLP Security Levels
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Account values that exist at runtime — enums, constants, and the pure helpers over them.
|
|
3
|
+
*
|
|
4
|
+
* Split out of `user.ts` so the dependency direction can run one way. The API schemas need these
|
|
5
|
+
* values (`z.enum(BillingMethod)`, `.max(ACCOUNT_APP_ACCESS_MESSAGE_MAX_LENGTH)`), and `user.ts`
|
|
6
|
+
* needs the types the schemas infer. Both living in `user.ts` would make it import from a module
|
|
7
|
+
* that imports it back; here, `user.ts` and `api-schemas/account.ts` both depend on this module and
|
|
8
|
+
* nothing depends on them.
|
|
9
|
+
*
|
|
10
|
+
* Everything here is re-exported from `user.ts`, so existing import paths keep working — this is a
|
|
11
|
+
* move, not a rename.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
export enum Datacenters {
|
|
15
|
+
aws = 'aws',
|
|
16
|
+
gcp = 'gcp',
|
|
17
|
+
azure = 'azure',
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export enum BillingMethod {
|
|
21
|
+
stripe = 'stripe',
|
|
22
|
+
invoice = 'invoice',
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export enum AccountType {
|
|
26
|
+
vertesia = 'vertesia',
|
|
27
|
+
partner = 'partner',
|
|
28
|
+
free = 'free',
|
|
29
|
+
customer = 'customer',
|
|
30
|
+
prospect = 'prospect',
|
|
31
|
+
unknown = 'unknown',
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Quota/rate-limit tier assigned to an account. Code-defined tiers live in `@dglabs/quota`
|
|
36
|
+
* (`QUOTA_TIERS`); these names must match its keys.
|
|
37
|
+
* - `standard` — protective baseline limits (the default for most accounts).
|
|
38
|
+
* - `enterprise` — high limits for contracted customers / internal / partners.
|
|
39
|
+
*
|
|
40
|
+
* An account with no explicit `quota_tier` derives its tier from its `account_type`.
|
|
41
|
+
*/
|
|
42
|
+
export enum QuotaTier {
|
|
43
|
+
standard = 'standard',
|
|
44
|
+
enterprise = 'enterprise',
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Default tier for an account that has no explicit `quota_tier`, derived from its `account_type`:
|
|
49
|
+
* contracted customers and internal Vertesia accounts get `enterprise`; everyone else (partner,
|
|
50
|
+
* free, prospect, unknown) gets the protective `standard` baseline.
|
|
51
|
+
*/
|
|
52
|
+
export function quotaTierForAccountType(accountType: AccountType | undefined | null): QuotaTier {
|
|
53
|
+
switch (accountType) {
|
|
54
|
+
case AccountType.customer:
|
|
55
|
+
case AccountType.vertesia:
|
|
56
|
+
return QuotaTier.enterprise;
|
|
57
|
+
default:
|
|
58
|
+
return QuotaTier.standard;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export const ACCOUNT_NAMESPACE_MAX_LENGTH = 63;
|
|
63
|
+
export const ACCOUNT_APP_ACCESS_MESSAGE_MAX_LENGTH = 1000;
|
|
64
|
+
export const RESERVED_ACCOUNT_NAMESPACES = [
|
|
65
|
+
'admin',
|
|
66
|
+
'api',
|
|
67
|
+
'apps',
|
|
68
|
+
'auth',
|
|
69
|
+
'cdn',
|
|
70
|
+
'docs',
|
|
71
|
+
'internal-auth',
|
|
72
|
+
'mcp',
|
|
73
|
+
'status',
|
|
74
|
+
'sts',
|
|
75
|
+
'www',
|
|
76
|
+
] as const;
|
|
77
|
+
|
|
78
|
+
const ACCOUNT_NAMESPACE_PATTERN = /^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/;
|
|
79
|
+
|
|
80
|
+
export function normalizeAccountNamespace(namespace: string): string {
|
|
81
|
+
return namespace.trim().toLowerCase();
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export function getAccountNamespaceValidationError(namespace: string): string | undefined {
|
|
85
|
+
if (!namespace) {
|
|
86
|
+
return 'Account namespace is required';
|
|
87
|
+
}
|
|
88
|
+
if (namespace.length > ACCOUNT_NAMESPACE_MAX_LENGTH || !ACCOUNT_NAMESPACE_PATTERN.test(namespace)) {
|
|
89
|
+
return 'Account namespace must be a lowercase DNS label containing only letters, numbers, and hyphens';
|
|
90
|
+
}
|
|
91
|
+
if ((RESERVED_ACCOUNT_NAMESPACES as readonly string[]).includes(namespace)) {
|
|
92
|
+
return `Account namespace '${namespace}' is reserved`;
|
|
93
|
+
}
|
|
94
|
+
return undefined;
|
|
95
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { type AgentResourceReference, getResourcesFromToolResult, normalizeAgentResources } from './interaction.js';
|
|
3
|
+
import { AgentMessageType, getResourcesFromMessage } from './store/workflow.js';
|
|
4
|
+
|
|
5
|
+
const validRef: AgentResourceReference = {
|
|
6
|
+
type: 'document',
|
|
7
|
+
id: 'doc-1',
|
|
8
|
+
label: 'My Document',
|
|
9
|
+
action: 'created',
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
describe('normalizeAgentResources', () => {
|
|
13
|
+
it('returns an empty array for non-array input', () => {
|
|
14
|
+
expect(normalizeAgentResources(undefined)).toEqual([]);
|
|
15
|
+
expect(normalizeAgentResources(null)).toEqual([]);
|
|
16
|
+
expect(normalizeAgentResources('nope')).toEqual([]);
|
|
17
|
+
expect(normalizeAgentResources({})).toEqual([]);
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
it('keeps a well-formed reference', () => {
|
|
21
|
+
expect(normalizeAgentResources([validRef])).toEqual([validRef]);
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
it('preserves revision_id when present and non-empty', () => {
|
|
25
|
+
const ref = { ...validRef, revision_id: 'rev-9' };
|
|
26
|
+
expect(normalizeAgentResources([ref])).toEqual([ref]);
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
it('drops an empty revision_id rather than keeping it', () => {
|
|
30
|
+
const result = normalizeAgentResources([{ ...validRef, revision_id: '' }]);
|
|
31
|
+
expect(result[0]).not.toHaveProperty('revision_id');
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
it('falls back to the id when the label is missing or empty', () => {
|
|
35
|
+
const result = normalizeAgentResources([{ type: 'collection', id: 'col-1', action: 'updated' }]);
|
|
36
|
+
expect(result).toEqual([{ type: 'collection', id: 'col-1', label: 'col-1', action: 'updated' }]);
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
it('drops entries with an unknown type or action', () => {
|
|
40
|
+
const result = normalizeAgentResources([
|
|
41
|
+
{ type: 'artifact', id: 'a', label: 'a', action: 'created' },
|
|
42
|
+
{ type: 'document', id: 'd', label: 'd', action: 'viewed' },
|
|
43
|
+
{ type: 'document', id: '', label: 'd', action: 'created' },
|
|
44
|
+
validRef,
|
|
45
|
+
]);
|
|
46
|
+
expect(result).toEqual([validRef]);
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
it('accepts every supported resource type', () => {
|
|
50
|
+
const types = [
|
|
51
|
+
'document',
|
|
52
|
+
'collection',
|
|
53
|
+
'content_type',
|
|
54
|
+
'interaction',
|
|
55
|
+
'prompt',
|
|
56
|
+
'agent',
|
|
57
|
+
'workflow',
|
|
58
|
+
'process',
|
|
59
|
+
'process_run',
|
|
60
|
+
'interaction_run',
|
|
61
|
+
'view',
|
|
62
|
+
] as const;
|
|
63
|
+
const input = types.map((type, i) => ({ type, id: `id-${i}`, label: `L${i}`, action: 'created' }));
|
|
64
|
+
expect(normalizeAgentResources(input)).toHaveLength(types.length);
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
describe('getResourcesFromToolResult', () => {
|
|
69
|
+
it('reads resources from result meta', () => {
|
|
70
|
+
expect(getResourcesFromToolResult({ meta: { resources: [validRef] } })).toEqual([validRef]);
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
it('returns an empty array when meta or resources are absent', () => {
|
|
74
|
+
expect(getResourcesFromToolResult({})).toEqual([]);
|
|
75
|
+
expect(getResourcesFromToolResult({ meta: {} })).toEqual([]);
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
describe('getResourcesFromMessage', () => {
|
|
80
|
+
it('reads resources from message details', () => {
|
|
81
|
+
const msg = {
|
|
82
|
+
timestamp: 0,
|
|
83
|
+
workflow_run_id: 'run-1',
|
|
84
|
+
type: AgentMessageType.THOUGHT,
|
|
85
|
+
message: '',
|
|
86
|
+
details: { event_class: 'activity', resources: [validRef] },
|
|
87
|
+
};
|
|
88
|
+
expect(getResourcesFromMessage(msg)).toEqual([validRef]);
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
it('returns an empty array when details or resources are absent', () => {
|
|
92
|
+
const msg = {
|
|
93
|
+
timestamp: 0,
|
|
94
|
+
workflow_run_id: 'run-1',
|
|
95
|
+
type: AgentMessageType.COMPLETE,
|
|
96
|
+
message: '',
|
|
97
|
+
};
|
|
98
|
+
expect(getResourcesFromMessage(msg)).toEqual([]);
|
|
99
|
+
});
|
|
100
|
+
});
|
package/src/analytics.ts
CHANGED
|
@@ -1,50 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export interface RunAnalyticsQuery {
|
|
12
|
-
/** filters to apply to the query */
|
|
13
|
-
filterBy: AnalyticsAxis;
|
|
14
|
-
|
|
15
|
-
/** The field to group by */
|
|
16
|
-
groupBy?: RunAnalyticsGroupBy;
|
|
17
|
-
|
|
18
|
-
/** The start date of the query in EPOCH format */
|
|
19
|
-
from?: number;
|
|
20
|
-
/** The end date of the query in EPOCH format */
|
|
21
|
-
to?: number;
|
|
1
|
+
import type { z } from 'zod';
|
|
2
|
+
import type {
|
|
3
|
+
AnalyticsAxisSchema,
|
|
4
|
+
RunAnalyticsGroupBySchema,
|
|
5
|
+
RunAnalyticsQuerySchema,
|
|
6
|
+
RunAnalyticsResultSchema,
|
|
7
|
+
TimeResolutionSchema,
|
|
8
|
+
} from './api-schemas/analytics.js';
|
|
22
9
|
|
|
23
|
-
|
|
24
|
-
|
|
10
|
+
/**
|
|
11
|
+
* The five run-analytics contract types, inferred from `./api-schemas/analytics.js`. Their
|
|
12
|
+
* documentation moved with them — a doc comment here would be published on TOP of the schema's
|
|
13
|
+
* `description` and the two would drift.
|
|
14
|
+
*/
|
|
15
|
+
export type AnalyticsAxis = z.infer<typeof AnalyticsAxisSchema>;
|
|
25
16
|
|
|
26
|
-
|
|
27
|
-
resolutionStep?: number;
|
|
17
|
+
export type RunAnalyticsQuery = z.infer<typeof RunAnalyticsQuerySchema>;
|
|
28
18
|
|
|
29
|
-
|
|
30
|
-
virtual?: boolean;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export type RunAnalyticsGroupBy = 'interaction' | 'modelId' | 'project' | 'status' | 'tags' | 'environment';
|
|
19
|
+
export type RunAnalyticsGroupBy = z.infer<typeof RunAnalyticsGroupBySchema>;
|
|
34
20
|
|
|
35
|
-
export type TimeResolution =
|
|
21
|
+
export type TimeResolution = z.infer<typeof TimeResolutionSchema>;
|
|
36
22
|
|
|
37
|
-
export
|
|
38
|
-
date: string;
|
|
39
|
-
timestamp: string;
|
|
40
|
-
group: string;
|
|
41
|
-
count: number;
|
|
42
|
-
execution_time: {
|
|
43
|
-
avg: number;
|
|
44
|
-
min: number;
|
|
45
|
-
max: number;
|
|
46
|
-
};
|
|
47
|
-
}
|
|
23
|
+
export type RunAnalyticsResult = z.infer<typeof RunAnalyticsResultSchema>;
|
|
48
24
|
|
|
49
25
|
/** Entity with status breakdown */
|
|
50
26
|
export interface EntityStatusCounts {
|