@aexhq/sdk 0.46.4-canary → 0.50.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/NOTICE +38 -0
- package/README.md +23 -31
- package/dist/client/aex.d.ts +33 -0
- package/dist/client/aex.js +98 -0
- package/dist/client/aex.js.map +1 -0
- package/dist/client/credentials.d.ts +25 -0
- package/dist/client/credentials.js +97 -0
- package/dist/client/credentials.js.map +1 -0
- package/dist/client/routing.d.ts +7 -0
- package/dist/client/routing.js +29 -0
- package/dist/client/routing.js.map +1 -0
- package/dist/downloads/download.d.ts +25 -0
- package/dist/downloads/download.js +53 -0
- package/dist/downloads/download.js.map +1 -0
- package/dist/generated/errors.d.ts +12 -0
- package/dist/generated/errors.js +81 -0
- package/dist/generated/errors.js.map +1 -0
- package/dist/generated/resources.d.ts +730 -0
- package/dist/generated/resources.js +606 -0
- package/dist/generated/resources.js.map +1 -0
- package/dist/generated/routes.d.ts +42 -0
- package/dist/generated/routes.js +2101 -0
- package/dist/generated/routes.js.map +1 -0
- package/dist/index.d.ts +20 -50
- package/dist/index.js +11 -62
- package/dist/index.js.map +1 -1
- package/dist/observations/stream.d.ts +1 -0
- package/dist/observations/stream.js +18 -0
- package/dist/observations/stream.js.map +1 -0
- package/dist/transport/errors.d.ts +60 -0
- package/dist/transport/errors.js +107 -0
- package/dist/transport/errors.js.map +1 -0
- package/dist/transport/pagination.d.ts +8 -0
- package/dist/transport/pagination.js +34 -0
- package/dist/transport/pagination.js.map +1 -0
- package/dist/transport/retry.d.ts +21 -0
- package/dist/transport/retry.js +37 -0
- package/dist/transport/retry.js.map +1 -0
- package/dist/transport/transport.d.ts +25 -0
- package/dist/transport/transport.js +28 -0
- package/dist/transport/transport.js.map +1 -0
- package/package.json +63 -30
- package/dist/_contracts/account-operations.d.ts +0 -101
- package/dist/_contracts/account-operations.js +0 -242
- package/dist/_contracts/account-types.d.ts +0 -461
- package/dist/_contracts/account-types.js +0 -1
- package/dist/_contracts/api-key.d.ts +0 -61
- package/dist/_contracts/api-key.js +0 -101
- package/dist/_contracts/api-routes.d.ts +0 -20
- package/dist/_contracts/api-routes.js +0 -109
- package/dist/_contracts/archive-limits.d.ts +0 -3
- package/dist/_contracts/archive-limits.js +0 -23
- package/dist/_contracts/asset-authoring.d.ts +0 -22
- package/dist/_contracts/asset-authoring.js +0 -106
- package/dist/_contracts/asset-bundle.d.ts +0 -64
- package/dist/_contracts/asset-bundle.js +0 -263
- package/dist/_contracts/asset-upload-helper.d.ts +0 -31
- package/dist/_contracts/asset-upload-helper.js +0 -84
- package/dist/_contracts/billing-admission.d.ts +0 -29
- package/dist/_contracts/billing-admission.js +0 -28
- package/dist/_contracts/bundle-manifest.d.ts +0 -89
- package/dist/_contracts/bundle-manifest.js +0 -158
- package/dist/_contracts/canonical-sha256.d.ts +0 -8
- package/dist/_contracts/canonical-sha256.js +0 -8
- package/dist/_contracts/connection-ticket.d.ts +0 -22
- package/dist/_contracts/connection-ticket.js +0 -54
- package/dist/_contracts/continuation-event.d.ts +0 -31
- package/dist/_contracts/continuation-event.js +0 -6
- package/dist/_contracts/contract-parse-error.d.ts +0 -12
- package/dist/_contracts/contract-parse-error.js +0 -51
- package/dist/_contracts/error-codes.d.ts +0 -26
- package/dist/_contracts/error-codes.js +0 -116
- package/dist/_contracts/error-factory.d.ts +0 -32
- package/dist/_contracts/error-factory.js +0 -174
- package/dist/_contracts/event-envelope.d.ts +0 -471
- package/dist/_contracts/event-envelope.js +0 -501
- package/dist/_contracts/event-stream-client.d.ts +0 -122
- package/dist/_contracts/event-stream-client.js +0 -445
- package/dist/_contracts/event-view.d.ts +0 -44
- package/dist/_contracts/event-view.js +0 -69
- package/dist/_contracts/failure-class.d.ts +0 -29
- package/dist/_contracts/failure-class.js +0 -73
- package/dist/_contracts/http.d.ts +0 -135
- package/dist/_contracts/http.js +0 -434
- package/dist/_contracts/ids.d.ts +0 -66
- package/dist/_contracts/ids.js +0 -119
- package/dist/_contracts/index.d.ts +0 -42
- package/dist/_contracts/index.js +0 -52
- package/dist/_contracts/internal.d.ts +0 -55
- package/dist/_contracts/internal.js +0 -113
- package/dist/_contracts/models.d.ts +0 -30
- package/dist/_contracts/models.js +0 -28
- package/dist/_contracts/operation-core.d.ts +0 -36
- package/dist/_contracts/operation-core.js +0 -70
- package/dist/_contracts/operations.d.ts +0 -218
- package/dist/_contracts/operations.js +0 -1496
- package/dist/_contracts/otlp-projection.d.ts +0 -78
- package/dist/_contracts/otlp-projection.js +0 -171
- package/dist/_contracts/post-hook.d.ts +0 -31
- package/dist/_contracts/post-hook.js +0 -61
- package/dist/_contracts/provider-fault.d.ts +0 -34
- package/dist/_contracts/provider-fault.js +0 -68
- package/dist/_contracts/retry-core.d.ts +0 -29
- package/dist/_contracts/retry-core.js +0 -79
- package/dist/_contracts/runner-event.d.ts +0 -117
- package/dist/_contracts/runner-event.js +0 -172
- package/dist/_contracts/runtime-kind.d.ts +0 -60
- package/dist/_contracts/runtime-kind.js +0 -70
- package/dist/_contracts/runtime-manifest.d.ts +0 -121
- package/dist/_contracts/runtime-manifest.js +0 -83
- package/dist/_contracts/runtime-security-profile.d.ts +0 -26
- package/dist/_contracts/runtime-security-profile.js +0 -73
- package/dist/_contracts/runtime-sizes.d.ts +0 -104
- package/dist/_contracts/runtime-sizes.js +0 -111
- package/dist/_contracts/runtime-types.d.ts +0 -618
- package/dist/_contracts/runtime-types.js +0 -58
- package/dist/_contracts/schemas/asset-bundle.d.ts +0 -70
- package/dist/_contracts/schemas/asset-bundle.js +0 -107
- package/dist/_contracts/schemas/asset-ref.d.ts +0 -61
- package/dist/_contracts/schemas/asset-ref.js +0 -118
- package/dist/_contracts/schemas/bundle-manifest.d.ts +0 -66
- package/dist/_contracts/schemas/bundle-manifest.js +0 -77
- package/dist/_contracts/schemas/index.d.ts +0 -32
- package/dist/_contracts/schemas/index.js +0 -30
- package/dist/_contracts/schemas/mcp-server.d.ts +0 -99
- package/dist/_contracts/schemas/mcp-server.js +0 -209
- package/dist/_contracts/schemas/models.d.ts +0 -29
- package/dist/_contracts/schemas/models.js +0 -51
- package/dist/_contracts/schemas/numeric.d.ts +0 -18
- package/dist/_contracts/schemas/numeric.js +0 -28
- package/dist/_contracts/schemas/post-hook.d.ts +0 -45
- package/dist/_contracts/schemas/post-hook.js +0 -68
- package/dist/_contracts/schemas/response-assets.d.ts +0 -75
- package/dist/_contracts/schemas/response-assets.js +0 -81
- package/dist/_contracts/schemas/response-billing.d.ts +0 -208
- package/dist/_contracts/schemas/response-billing.js +0 -139
- package/dist/_contracts/schemas/response-common.d.ts +0 -132
- package/dist/_contracts/schemas/response-common.js +0 -162
- package/dist/_contracts/schemas/response-identity.d.ts +0 -648
- package/dist/_contracts/schemas/response-identity.js +0 -131
- package/dist/_contracts/schemas/response-mcp-servers.d.ts +0 -51
- package/dist/_contracts/schemas/response-mcp-servers.js +0 -32
- package/dist/_contracts/schemas/response-secrets.d.ts +0 -50
- package/dist/_contracts/schemas/response-secrets.js +0 -32
- package/dist/_contracts/schemas/response-sessions-internal.d.ts +0 -200
- package/dist/_contracts/schemas/response-sessions-internal.js +0 -142
- package/dist/_contracts/schemas/response-sessions.d.ts +0 -1598
- package/dist/_contracts/schemas/response-sessions.js +0 -377
- package/dist/_contracts/schemas/response-webhooks.d.ts +0 -76
- package/dist/_contracts/schemas/response-webhooks.js +0 -42
- package/dist/_contracts/schemas/response-workspace.d.ts +0 -225
- package/dist/_contracts/schemas/response-workspace.js +0 -99
- package/dist/_contracts/schemas/runtime-kind.d.ts +0 -31
- package/dist/_contracts/schemas/runtime-kind.js +0 -29
- package/dist/_contracts/schemas/runtime-security-profile.d.ts +0 -28
- package/dist/_contracts/schemas/runtime-security-profile.js +0 -26
- package/dist/_contracts/schemas/runtime-sizes.d.ts +0 -70
- package/dist/_contracts/schemas/runtime-sizes.js +0 -127
- package/dist/_contracts/schemas/session-limits.d.ts +0 -34
- package/dist/_contracts/schemas/session-limits.js +0 -39
- package/dist/_contracts/schemas/session-machine.d.ts +0 -23
- package/dist/_contracts/schemas/session-machine.js +0 -24
- package/dist/_contracts/schemas/session-request-config.d.ts +0 -58
- package/dist/_contracts/schemas/session-request-config.js +0 -134
- package/dist/_contracts/schemas/session-webhook.d.ts +0 -11
- package/dist/_contracts/schemas/session-webhook.js +0 -38
- package/dist/_contracts/schemas/side-effect-audit.d.ts +0 -98
- package/dist/_contracts/schemas/side-effect-audit.js +0 -102
- package/dist/_contracts/schemas/submission-assets.d.ts +0 -117
- package/dist/_contracts/schemas/submission-assets.js +0 -147
- package/dist/_contracts/schemas/submission-body.d.ts +0 -251
- package/dist/_contracts/schemas/submission-body.js +0 -378
- package/dist/_contracts/schemas/submission-environment.d.ts +0 -79
- package/dist/_contracts/schemas/submission-environment.js +0 -179
- package/dist/_contracts/schemas/submission-request.d.ts +0 -158
- package/dist/_contracts/schemas/submission-request.js +0 -49
- package/dist/_contracts/schemas/submission-secrets.d.ts +0 -47
- package/dist/_contracts/schemas/submission-secrets.js +0 -108
- package/dist/_contracts/schemas/wire.d.ts +0 -118
- package/dist/_contracts/schemas/wire.js +0 -171
- package/dist/_contracts/schemas/workspace-resources.d.ts +0 -50
- package/dist/_contracts/schemas/workspace-resources.js +0 -87
- package/dist/_contracts/sdk-errors.d.ts +0 -212
- package/dist/_contracts/sdk-errors.js +0 -313
- package/dist/_contracts/sdk-secrets.d.ts +0 -67
- package/dist/_contracts/sdk-secrets.js +0 -427
- package/dist/_contracts/session-archive.d.ts +0 -16
- package/dist/_contracts/session-archive.js +0 -92
- package/dist/_contracts/session-artifacts.d.ts +0 -189
- package/dist/_contracts/session-artifacts.js +0 -264
- package/dist/_contracts/session-config.d.ts +0 -373
- package/dist/_contracts/session-config.js +0 -562
- package/dist/_contracts/session-cost-types.d.ts +0 -211
- package/dist/_contracts/session-cost-types.js +0 -69
- package/dist/_contracts/session-cost.d.ts +0 -8
- package/dist/_contracts/session-cost.js +0 -582
- package/dist/_contracts/session-custody.d.ts +0 -165
- package/dist/_contracts/session-custody.js +0 -345
- package/dist/_contracts/session-file-query.d.ts +0 -14
- package/dist/_contracts/session-file-query.js +0 -178
- package/dist/_contracts/session-record.d.ts +0 -112
- package/dist/_contracts/session-record.js +0 -165
- package/dist/_contracts/session-retention.d.ts +0 -201
- package/dist/_contracts/session-retention.js +0 -450
- package/dist/_contracts/side-effect-audit.d.ts +0 -126
- package/dist/_contracts/side-effect-audit.js +0 -520
- package/dist/_contracts/sse.d.ts +0 -74
- package/dist/_contracts/sse.js +0 -227
- package/dist/_contracts/stable.d.ts +0 -45
- package/dist/_contracts/stable.js +0 -62
- package/dist/_contracts/status.d.ts +0 -25
- package/dist/_contracts/status.js +0 -57
- package/dist/_contracts/submission-limits.d.ts +0 -61
- package/dist/_contracts/submission-limits.js +0 -60
- package/dist/_contracts/submission.d.ts +0 -547
- package/dist/_contracts/submission.js +0 -812
- package/dist/_contracts/suggest.d.ts +0 -15
- package/dist/_contracts/suggest.js +0 -53
- package/dist/_contracts/testing/response-bindings.d.ts +0 -45
- package/dist/_contracts/testing/response-bindings.js +0 -256
- package/dist/_contracts/testing/wire-conformance-entry.d.ts +0 -10
- package/dist/_contracts/testing/wire-conformance-entry.js +0 -8
- package/dist/_contracts/testing/wire-conformance.d.ts +0 -169
- package/dist/_contracts/testing/wire-conformance.js +0 -276
- package/dist/_contracts/turn-trace.d.ts +0 -28
- package/dist/_contracts/turn-trace.js +0 -1
- package/dist/_contracts/unknown-field-error.d.ts +0 -13
- package/dist/_contracts/unknown-field-error.js +0 -21
- package/dist/_contracts/value-guards.d.ts +0 -20
- package/dist/_contracts/value-guards.js +0 -34
- package/dist/_contracts/webhook-verify.d.ts +0 -34
- package/dist/_contracts/webhook-verify.js +0 -93
- package/dist/_contracts/wire-observer.d.ts +0 -49
- package/dist/_contracts/wire-observer.js +0 -34
- package/dist/_contracts/workflow-status.d.ts +0 -7
- package/dist/_contracts/workflow-status.js +0 -43
- package/dist/_contracts/workspace-resources.d.ts +0 -98
- package/dist/_contracts/workspace-resources.js +0 -39
- package/dist/archive-limits.d.ts +0 -1
- package/dist/archive-limits.js +0 -2
- package/dist/archive-limits.js.map +0 -1
- package/dist/asset-upload.d.ts +0 -47
- package/dist/asset-upload.js +0 -269
- package/dist/asset-upload.js.map +0 -1
- package/dist/bundle.d.ts +0 -9
- package/dist/bundle.js +0 -20
- package/dist/bundle.js.map +0 -1
- package/dist/canonical-zip.d.ts +0 -68
- package/dist/canonical-zip.js +0 -355
- package/dist/canonical-zip.js.map +0 -1
- package/dist/cli.mjs +0 -12048
- package/dist/cli.mjs.sha256 +0 -1
- package/dist/client-types.d.ts +0 -192
- package/dist/client-types.js +0 -2
- package/dist/client-types.js.map +0 -1
- package/dist/client.d.ts +0 -464
- package/dist/client.js +0 -1207
- package/dist/client.js.map +0 -1
- package/dist/event-projection.d.ts +0 -22
- package/dist/event-projection.js +0 -380
- package/dist/event-projection.js.map +0 -1
- package/dist/fetch-archive.d.ts +0 -16
- package/dist/fetch-archive.js +0 -252
- package/dist/fetch-archive.js.map +0 -1
- package/dist/file.d.ts +0 -96
- package/dist/file.js +0 -272
- package/dist/file.js.map +0 -1
- package/dist/instructions.d.ts +0 -20
- package/dist/instructions.js +0 -40
- package/dist/instructions.js.map +0 -1
- package/dist/legacy-session-provider-fault.d.ts +0 -7
- package/dist/legacy-session-provider-fault.js +0 -38
- package/dist/legacy-session-provider-fault.js.map +0 -1
- package/dist/mcp-server.d.ts +0 -84
- package/dist/mcp-server.js +0 -117
- package/dist/mcp-server.js.map +0 -1
- package/dist/node-fs.d.ts +0 -29
- package/dist/node-fs.js +0 -19
- package/dist/node-fs.js.map +0 -1
- package/dist/node-walk.d.ts +0 -69
- package/dist/node-walk.js +0 -151
- package/dist/node-walk.js.map +0 -1
- package/dist/path-basename.d.ts +0 -5
- package/dist/path-basename.js +0 -9
- package/dist/path-basename.js.map +0 -1
- package/dist/retry.d.ts +0 -70
- package/dist/retry.js +0 -155
- package/dist/retry.js.map +0 -1
- package/dist/secret.d.ts +0 -65
- package/dist/secret.js +0 -110
- package/dist/secret.js.map +0 -1
- package/dist/session-validate.d.ts +0 -100
- package/dist/session-validate.js +0 -303
- package/dist/session-validate.js.map +0 -1
- package/dist/skill.d.ts +0 -99
- package/dist/skill.js +0 -169
- package/dist/skill.js.map +0 -1
- package/dist/submission-wire.d.ts +0 -13
- package/dist/submission-wire.js +0 -69
- package/dist/submission-wire.js.map +0 -1
- package/dist/tool.d.ts +0 -41
- package/dist/tool.js +0 -76
- package/dist/tool.js.map +0 -1
- package/dist/version.d.ts +0 -9
- package/dist/version.js +0 -10
- package/dist/version.js.map +0 -1
- package/docs/authentication.md +0 -125
- package/docs/billing.md +0 -164
- package/docs/cleanup.md +0 -27
- package/docs/concepts/agent-tools.md +0 -47
- package/docs/concepts/composition.md +0 -60
- package/docs/concepts/providers-and-runtimes.md +0 -121
- package/docs/concepts/sessions.md +0 -51
- package/docs/concepts/subagents.md +0 -35
- package/docs/credentials.md +0 -116
- package/docs/defaults.md +0 -51
- package/docs/errors.md +0 -258
- package/docs/events.md +0 -143
- package/docs/files.md +0 -130
- package/docs/limits-and-quotas.md +0 -114
- package/docs/limits.md +0 -51
- package/docs/mcp.md +0 -47
- package/docs/networking.md +0 -114
- package/docs/provider-runtime-capabilities.md +0 -32
- package/docs/public-surface.json +0 -73
- package/docs/quickstart.md +0 -135
- package/docs/release.md +0 -44
- package/docs/retries.md +0 -108
- package/docs/secrets.md +0 -141
- package/docs/session-config.md +0 -51
- package/docs/session-record.md +0 -58
- package/docs/skills.md +0 -65
- package/docs/telemetry.md +0 -66
- package/docs/testing.md +0 -35
- package/docs/vision-skills.md +0 -94
- package/docs/webhooks.md +0 -143
|
@@ -1,189 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Single source of truth for a session's artifact namespaces.
|
|
3
|
-
*
|
|
4
|
-
* Every session stores public files and internal diagnostics under its
|
|
5
|
-
* workspace-scoped session prefix:
|
|
6
|
-
*
|
|
7
|
-
* workspaces/<workspaceId>/sessions/<sessionId>/checkpoints/current.json
|
|
8
|
-
* workspaces/<workspaceId>/sessions/<sessionId>/checkpoints/<checkpointId>/workspace/index.json
|
|
9
|
-
* workspaces/<workspaceId>/sessions/<sessionId>/checkpoints/<checkpointId>/workspace/objects/<fileId>
|
|
10
|
-
* workspaces/<workspaceId>/sessions/<sessionId>/internal/logs/<rel>
|
|
11
|
-
*
|
|
12
|
-
* The latest complete checkpoint is the recovery source and the public files
|
|
13
|
-
* source. Diagnostics reach storage as workspace dotdirs (`.runtime-logs/...`,
|
|
14
|
-
* `.host-logs/...`, etc.); the stored path uses canonical log namespaces.
|
|
15
|
-
*/
|
|
16
|
-
export declare const WORKSPACES_PREFIX = "workspaces";
|
|
17
|
-
export declare const SESSIONS_PREFIX = "sessions";
|
|
18
|
-
export declare const SESSION_CHECKPOINTS_PREFIX = "checkpoints";
|
|
19
|
-
export declare const SESSION_INTERNAL_PREFIX = "internal";
|
|
20
|
-
export declare const SESSION_INTERNAL_LOGS_PREFIX = "internal/logs";
|
|
21
|
-
export declare const S3_RETENTION_TAG_KEY = "aex-retention";
|
|
22
|
-
export declare const S3_RETENTION_TAG_VALUES: readonly ["session-file-current", "workspace-asset", "session-core", "checkpoint-pending", "checkpoint-superseded", "upload-staging", "internal-log", "internal-event", "internal-usage", "admin-archive"];
|
|
23
|
-
export type S3ObjectRetentionTagValue = (typeof S3_RETENTION_TAG_VALUES)[number];
|
|
24
|
-
/**
|
|
25
|
-
* Internal raw-usage export namespace (cost & usage metering). Lives under
|
|
26
|
-
* `internal/` so public downloads never include it by default. Holds
|
|
27
|
-
* `SessionUsageSample` ndjson — the durable system of record for raw usage, written
|
|
28
|
-
* by the coordinator event stream; the public-safe `session_cost` table holds the summary.
|
|
29
|
-
*/
|
|
30
|
-
export declare const SESSION_INTERNAL_USAGE_PREFIX = "internal/usage";
|
|
31
|
-
/** Object-key prefix (trailing slash) every session-local object for a session lives under. */
|
|
32
|
-
export declare function runSessionPrefix(workspaceId: string, sessionId: string): string;
|
|
33
|
-
/** Object key for a session's raw-usage ndjson chunk (n = monotonic chunk index). */
|
|
34
|
-
export declare function runInternalUsageKey(workspaceId: string, sessionId: string, chunk: number): string;
|
|
35
|
-
/** Object-key prefix (trailing slash) for a session's current-file checkpoints. */
|
|
36
|
-
export declare function runCheckpointPrefix(workspaceId: string, sessionId: string): string;
|
|
37
|
-
/** Pointer to the latest complete checkpoint. Written last during checkpoint commit. */
|
|
38
|
-
export declare function runCheckpointCurrentKey(workspaceId: string, sessionId: string): string;
|
|
39
|
-
/** Optional compact list of available checkpoints for admin/debug views. */
|
|
40
|
-
export declare function runCheckpointIndexKey(workspaceId: string, sessionId: string): string;
|
|
41
|
-
export declare function runCheckpointManifestKey(workspaceId: string, sessionId: string, checkpointId: string): string;
|
|
42
|
-
export declare function runCheckpointWorkspaceIndexKey(workspaceId: string, sessionId: string, checkpointId: string): string;
|
|
43
|
-
export declare function runCheckpointWorkspaceObjectKey(workspaceId: string, sessionId: string, checkpointId: string, fileId: string): string;
|
|
44
|
-
export declare function runCheckpointBrainJournalKey(workspaceId: string, sessionId: string, checkpointId: string): string;
|
|
45
|
-
export declare function runCheckpointBrainStateKey(workspaceId: string, sessionId: string, checkpointId: string): string;
|
|
46
|
-
/** Object-key prefix (trailing slash) for operator-built archive zips for a session. */
|
|
47
|
-
export declare function runAdminArchivePrefix(workspaceId: string, sessionId: string): string;
|
|
48
|
-
/** Object-key prefix (trailing slash) for generated event archive files for a session. */
|
|
49
|
-
export declare function runEventArchivePrefix(workspaceId: string, sessionId: string): string;
|
|
50
|
-
/**
|
|
51
|
-
* Relative-path prefixes that mark a stored artifact as a platform diagnostic
|
|
52
|
-
* rather than a session deliverable. Dotted forms are upload-time paths.
|
|
53
|
-
*/
|
|
54
|
-
export declare const SESSION_LOG_REL_PREFIXES: readonly [".runtime-logs/", ".host-logs/", ".provider-proxy/", ".control-plane/", ".anthropic-debug/", "runtime/", "host/", "provider-proxy/", "control-plane/", "anthropic-debug/"];
|
|
55
|
-
/** True when a workspace-relative artifact path belongs to the internal logs namespace. */
|
|
56
|
-
export declare function isSessionLogRelPath(rel: string): boolean;
|
|
57
|
-
/**
|
|
58
|
-
* The artifact's path relative to its namespace prefix as stored. Diagnostics
|
|
59
|
-
* are canonicalized (`.runtime-logs/x` -> `runtime/x`).
|
|
60
|
-
*/
|
|
61
|
-
export declare function sessionArtifactRel(rel: string): string;
|
|
62
|
-
/**
|
|
63
|
-
* Storage key for a session artifact uploaded with relative path `rel`, routing
|
|
64
|
-
* diagnostics into `internal/logs/`. Workspace files are stored by checkpoint
|
|
65
|
-
* helpers, not by this function.
|
|
66
|
-
*/
|
|
67
|
-
export declare function sessionInternalArtifactKey(workspaceId: string, sessionId: string, rel: string): string;
|
|
68
|
-
/**
|
|
69
|
-
* Opaque, non-reversible file id. Derived as SHA-256 hex of
|
|
70
|
-
* `sessionId:relPath` so a caller cannot construct an id by guessing a filename.
|
|
71
|
-
* It is the single id scheme for session files: the checkpoint index records it,
|
|
72
|
-
* the list route emits it, the download/link routes resolve it back to a path
|
|
73
|
-
* from the latest checkpoint index, and the object key uses it directly. Hex is
|
|
74
|
-
* URL-safe. WebCrypto, no new dep.
|
|
75
|
-
*/
|
|
76
|
-
export declare function opaqueSessionFileId(sessionId: string, relPath: string): Promise<string>;
|
|
77
|
-
export interface SessionCheckpointCurrent {
|
|
78
|
-
readonly v: 2;
|
|
79
|
-
readonly workspaceId: string;
|
|
80
|
-
readonly sessionId: string;
|
|
81
|
-
readonly checkpointId: string;
|
|
82
|
-
readonly runId: string;
|
|
83
|
-
readonly turnSeq: number;
|
|
84
|
-
readonly manifestKey: string;
|
|
85
|
-
readonly committedAt: string;
|
|
86
|
-
readonly throughSeq: number;
|
|
87
|
-
}
|
|
88
|
-
/** Public identity of one complete, immutable session-files checkpoint. */
|
|
89
|
-
export interface SessionCheckpointRevision {
|
|
90
|
-
readonly checkpointId: string;
|
|
91
|
-
readonly runId: string;
|
|
92
|
-
readonly turnSeq: number;
|
|
93
|
-
readonly committedAt: string;
|
|
94
|
-
readonly throughSeq: number;
|
|
95
|
-
}
|
|
96
|
-
export interface SessionCheckpointIndex {
|
|
97
|
-
readonly v: 2;
|
|
98
|
-
readonly workspaceId: string;
|
|
99
|
-
readonly sessionId: string;
|
|
100
|
-
readonly currentCheckpointId: string;
|
|
101
|
-
readonly checkpoints: readonly SessionCheckpointIndexEntry[];
|
|
102
|
-
}
|
|
103
|
-
export interface SessionCheckpointIndexEntry {
|
|
104
|
-
readonly checkpointId: string;
|
|
105
|
-
readonly runId: string;
|
|
106
|
-
readonly turnSeq: number;
|
|
107
|
-
readonly manifestKey: string;
|
|
108
|
-
readonly committedAt: string;
|
|
109
|
-
readonly throughSeq: number;
|
|
110
|
-
readonly fileCount: number;
|
|
111
|
-
readonly totalBytes: number;
|
|
112
|
-
}
|
|
113
|
-
export interface SessionCheckpointManifest {
|
|
114
|
-
readonly v: 2;
|
|
115
|
-
readonly workspaceId: string;
|
|
116
|
-
readonly sessionId: string;
|
|
117
|
-
readonly checkpointId: string;
|
|
118
|
-
readonly runId: string;
|
|
119
|
-
readonly turnSeq: number;
|
|
120
|
-
readonly status: "complete";
|
|
121
|
-
readonly createdAt: string;
|
|
122
|
-
readonly committedAt: string;
|
|
123
|
-
readonly throughSeq: number;
|
|
124
|
-
readonly workspace: {
|
|
125
|
-
readonly indexKey: string;
|
|
126
|
-
readonly fileCount: number;
|
|
127
|
-
readonly totalBytes: number;
|
|
128
|
-
};
|
|
129
|
-
readonly brain?: {
|
|
130
|
-
readonly journalKey?: string;
|
|
131
|
-
readonly stateKey?: string;
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
export interface SessionWorkspaceFile {
|
|
135
|
-
readonly fileId: string;
|
|
136
|
-
readonly path: string;
|
|
137
|
-
readonly sizeBytes: number;
|
|
138
|
-
readonly contentType: string;
|
|
139
|
-
readonly objectKey: string;
|
|
140
|
-
readonly sha256: string;
|
|
141
|
-
readonly createdAt: string;
|
|
142
|
-
}
|
|
143
|
-
export interface SessionCheckpointWorkspaceIndex {
|
|
144
|
-
readonly v: 2;
|
|
145
|
-
readonly workspaceId: string;
|
|
146
|
-
readonly sessionId: string;
|
|
147
|
-
readonly checkpointId: string;
|
|
148
|
-
readonly runId: string;
|
|
149
|
-
readonly turnSeq: number;
|
|
150
|
-
readonly fileCount: number;
|
|
151
|
-
readonly totalBytes: number;
|
|
152
|
-
readonly files: readonly SessionWorkspaceFile[];
|
|
153
|
-
}
|
|
154
|
-
/** The `asset_` id form the API emits for a workspace asset. */
|
|
155
|
-
export declare const WORKSPACE_ASSET_ID_PREFIX: "asset_";
|
|
156
|
-
/** The `sha256:` content-hash URI form carried on pinned resource versions. */
|
|
157
|
-
export declare const WORKSPACE_ASSET_HASH_URI_PREFIX: "sha256:";
|
|
158
|
-
/**
|
|
159
|
-
* Either the canonical key for a valid asset id, or an explicit rejection. There
|
|
160
|
-
* is no third outcome and no permissive variant: an id the API answers 400 for
|
|
161
|
-
* must not silently become a readable object key on the client side.
|
|
162
|
-
*/
|
|
163
|
-
export type WorkspaceAssetKeyResult = {
|
|
164
|
-
readonly ok: true;
|
|
165
|
-
readonly key: string;
|
|
166
|
-
readonly assetId: string;
|
|
167
|
-
} | {
|
|
168
|
-
readonly ok: false;
|
|
169
|
-
};
|
|
170
|
-
/**
|
|
171
|
-
* Storage key for a workspace's snapshotted asset, addressed by its content hash.
|
|
172
|
-
* Used only for pre-checkpoint reusable workspace assets; session boot
|
|
173
|
-
* materializes those assets into an initial checkpoint before execution.
|
|
174
|
-
*
|
|
175
|
-
* Accepts `asset_<hex>`, `sha256:<hex>`, and the bare hex, and rejects everything
|
|
176
|
-
* else. This repo cannot import the platform's owner module, so this is a
|
|
177
|
-
* DELIBERATE MIRROR held byte-identical by a cross-repo parity test
|
|
178
|
-
* (`platform/scripts/validate/object-store-key-public-parity.test.ts`). Change
|
|
179
|
-
* one side and that test fails; do not change one side alone.
|
|
180
|
-
*/
|
|
181
|
-
export declare function workspaceAssetKey(workspaceId: string, rawAssetId: string): WorkspaceAssetKeyResult;
|
|
182
|
-
/**
|
|
183
|
-
* Retention class for an S3 key. Writers set this as the `aex-retention` object
|
|
184
|
-
* tag so bucket lifecycle rules can apply per logical namespace even though the
|
|
185
|
-
* useful category sits after dynamic workspace/session ids.
|
|
186
|
-
*/
|
|
187
|
-
export declare function s3ObjectRetentionTagValue(key: string): S3ObjectRetentionTagValue | undefined;
|
|
188
|
-
/** S3 PutObject/CreateMultipartUpload/Upload `Tagging` header value for a key. */
|
|
189
|
-
export declare function s3ObjectRetentionTaggingHeader(key: string): string | undefined;
|
|
@@ -1,264 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Single source of truth for a session's artifact namespaces.
|
|
3
|
-
*
|
|
4
|
-
* Every session stores public files and internal diagnostics under its
|
|
5
|
-
* workspace-scoped session prefix:
|
|
6
|
-
*
|
|
7
|
-
* workspaces/<workspaceId>/sessions/<sessionId>/checkpoints/current.json
|
|
8
|
-
* workspaces/<workspaceId>/sessions/<sessionId>/checkpoints/<checkpointId>/workspace/index.json
|
|
9
|
-
* workspaces/<workspaceId>/sessions/<sessionId>/checkpoints/<checkpointId>/workspace/objects/<fileId>
|
|
10
|
-
* workspaces/<workspaceId>/sessions/<sessionId>/internal/logs/<rel>
|
|
11
|
-
*
|
|
12
|
-
* The latest complete checkpoint is the recovery source and the public files
|
|
13
|
-
* source. Diagnostics reach storage as workspace dotdirs (`.runtime-logs/...`,
|
|
14
|
-
* `.host-logs/...`, etc.); the stored path uses canonical log namespaces.
|
|
15
|
-
*/
|
|
16
|
-
export const WORKSPACES_PREFIX = "workspaces";
|
|
17
|
-
export const SESSIONS_PREFIX = "sessions";
|
|
18
|
-
export const SESSION_CHECKPOINTS_PREFIX = "checkpoints";
|
|
19
|
-
export const SESSION_INTERNAL_PREFIX = "internal";
|
|
20
|
-
export const SESSION_INTERNAL_LOGS_PREFIX = `${SESSION_INTERNAL_PREFIX}/logs`;
|
|
21
|
-
export const S3_RETENTION_TAG_KEY = "aex-retention";
|
|
22
|
-
export const S3_RETENTION_TAG_VALUES = [
|
|
23
|
-
"session-file-current",
|
|
24
|
-
"workspace-asset",
|
|
25
|
-
"session-core",
|
|
26
|
-
"checkpoint-pending",
|
|
27
|
-
"checkpoint-superseded",
|
|
28
|
-
"upload-staging",
|
|
29
|
-
"internal-log",
|
|
30
|
-
"internal-event",
|
|
31
|
-
"internal-usage",
|
|
32
|
-
"admin-archive"
|
|
33
|
-
];
|
|
34
|
-
/**
|
|
35
|
-
* Internal raw-usage export namespace (cost & usage metering). Lives under
|
|
36
|
-
* `internal/` so public downloads never include it by default. Holds
|
|
37
|
-
* `SessionUsageSample` ndjson — the durable system of record for raw usage, written
|
|
38
|
-
* by the coordinator event stream; the public-safe `session_cost` table holds the summary.
|
|
39
|
-
*/
|
|
40
|
-
export const SESSION_INTERNAL_USAGE_PREFIX = `${SESSION_INTERNAL_PREFIX}/usage`;
|
|
41
|
-
/** Object-key prefix (trailing slash) every session-local object for a session lives under. */
|
|
42
|
-
export function runSessionPrefix(workspaceId, sessionId) {
|
|
43
|
-
return `${WORKSPACES_PREFIX}/${workspaceId}/${SESSIONS_PREFIX}/${sessionId}/`;
|
|
44
|
-
}
|
|
45
|
-
/** Object key for a session's raw-usage ndjson chunk (n = monotonic chunk index). */
|
|
46
|
-
export function runInternalUsageKey(workspaceId, sessionId, chunk) {
|
|
47
|
-
return `${runSessionPrefix(workspaceId, sessionId)}${SESSION_INTERNAL_USAGE_PREFIX}/${chunk}.ndjson`;
|
|
48
|
-
}
|
|
49
|
-
/** Object-key prefix (trailing slash) for a session's current-file checkpoints. */
|
|
50
|
-
export function runCheckpointPrefix(workspaceId, sessionId) {
|
|
51
|
-
return `${runSessionPrefix(workspaceId, sessionId)}${SESSION_CHECKPOINTS_PREFIX}/`;
|
|
52
|
-
}
|
|
53
|
-
/** Pointer to the latest complete checkpoint. Written last during checkpoint commit. */
|
|
54
|
-
export function runCheckpointCurrentKey(workspaceId, sessionId) {
|
|
55
|
-
return `${runCheckpointPrefix(workspaceId, sessionId)}current.json`;
|
|
56
|
-
}
|
|
57
|
-
/** Optional compact list of available checkpoints for admin/debug views. */
|
|
58
|
-
export function runCheckpointIndexKey(workspaceId, sessionId) {
|
|
59
|
-
return `${runCheckpointPrefix(workspaceId, sessionId)}index.json`;
|
|
60
|
-
}
|
|
61
|
-
export function runCheckpointManifestKey(workspaceId, sessionId, checkpointId) {
|
|
62
|
-
return `${runCheckpointPrefix(workspaceId, sessionId)}${checkpointId}/manifest.json`;
|
|
63
|
-
}
|
|
64
|
-
export function runCheckpointWorkspaceIndexKey(workspaceId, sessionId, checkpointId) {
|
|
65
|
-
return `${runCheckpointPrefix(workspaceId, sessionId)}${checkpointId}/workspace/index.json`;
|
|
66
|
-
}
|
|
67
|
-
export function runCheckpointWorkspaceObjectKey(workspaceId, sessionId, checkpointId, fileId) {
|
|
68
|
-
return `${runCheckpointPrefix(workspaceId, sessionId)}${checkpointId}/workspace/objects/${fileId}`;
|
|
69
|
-
}
|
|
70
|
-
export function runCheckpointBrainJournalKey(workspaceId, sessionId, checkpointId) {
|
|
71
|
-
return `${runCheckpointPrefix(workspaceId, sessionId)}${checkpointId}/brain/journal.jsonl`;
|
|
72
|
-
}
|
|
73
|
-
export function runCheckpointBrainStateKey(workspaceId, sessionId, checkpointId) {
|
|
74
|
-
return `${runCheckpointPrefix(workspaceId, sessionId)}${checkpointId}/brain/state.json`;
|
|
75
|
-
}
|
|
76
|
-
/** Object-key prefix (trailing slash) for operator-built archive zips for a session. */
|
|
77
|
-
export function runAdminArchivePrefix(workspaceId, sessionId) {
|
|
78
|
-
return `${runSessionPrefix(workspaceId, sessionId)}${SESSION_INTERNAL_PREFIX}/admin-archives/`;
|
|
79
|
-
}
|
|
80
|
-
/** Object-key prefix (trailing slash) for generated event archive files for a session. */
|
|
81
|
-
export function runEventArchivePrefix(workspaceId, sessionId) {
|
|
82
|
-
return `${runSessionPrefix(workspaceId, sessionId)}${SESSION_INTERNAL_PREFIX}/events/`;
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Relative-path prefixes that mark a stored artifact as a platform diagnostic
|
|
86
|
-
* rather than a session deliverable. Dotted forms are upload-time paths.
|
|
87
|
-
*/
|
|
88
|
-
export const SESSION_LOG_REL_PREFIXES = [
|
|
89
|
-
".runtime-logs/",
|
|
90
|
-
".host-logs/",
|
|
91
|
-
".provider-proxy/",
|
|
92
|
-
".control-plane/",
|
|
93
|
-
".anthropic-debug/",
|
|
94
|
-
"runtime/",
|
|
95
|
-
"host/",
|
|
96
|
-
"provider-proxy/",
|
|
97
|
-
"control-plane/",
|
|
98
|
-
"anthropic-debug/"
|
|
99
|
-
];
|
|
100
|
-
/** True when a workspace-relative artifact path belongs to the internal logs namespace. */
|
|
101
|
-
export function isSessionLogRelPath(rel) {
|
|
102
|
-
return SESSION_LOG_REL_PREFIXES.some((prefix) => matchesRelPrefix(rel, prefix));
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* The artifact's path relative to its namespace prefix as stored. Diagnostics
|
|
106
|
-
* are canonicalized (`.runtime-logs/x` -> `runtime/x`).
|
|
107
|
-
*/
|
|
108
|
-
export function sessionArtifactRel(rel) {
|
|
109
|
-
if (rel.startsWith(".runtime-logs/"))
|
|
110
|
-
return `runtime/${rel.slice(".runtime-logs/".length)}`;
|
|
111
|
-
if (rel.startsWith("runtime/"))
|
|
112
|
-
return rel;
|
|
113
|
-
if (rel.startsWith(".host-logs/"))
|
|
114
|
-
return `host/${rel.slice(".host-logs/".length)}`;
|
|
115
|
-
if (rel.startsWith("host/"))
|
|
116
|
-
return rel;
|
|
117
|
-
if (rel.startsWith(".provider-proxy/"))
|
|
118
|
-
return `provider-proxy/${rel.slice(".provider-proxy/".length)}`;
|
|
119
|
-
if (rel.startsWith("provider-proxy/"))
|
|
120
|
-
return rel;
|
|
121
|
-
if (rel.startsWith(".control-plane/"))
|
|
122
|
-
return `control-plane/${rel.slice(".control-plane/".length)}`;
|
|
123
|
-
if (rel.startsWith("control-plane/"))
|
|
124
|
-
return rel;
|
|
125
|
-
if (rel.startsWith(".anthropic-debug/"))
|
|
126
|
-
return `provider-proxy/${rel.slice(".anthropic-debug/".length)}`;
|
|
127
|
-
if (rel.startsWith("anthropic-debug/"))
|
|
128
|
-
return `provider-proxy/${rel.slice("anthropic-debug/".length)}`;
|
|
129
|
-
return rel;
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* Storage key for a session artifact uploaded with relative path `rel`, routing
|
|
133
|
-
* diagnostics into `internal/logs/`. Workspace files are stored by checkpoint
|
|
134
|
-
* helpers, not by this function.
|
|
135
|
-
*/
|
|
136
|
-
export function sessionInternalArtifactKey(workspaceId, sessionId, rel) {
|
|
137
|
-
return `${runSessionPrefix(workspaceId, sessionId)}${SESSION_INTERNAL_LOGS_PREFIX}/${sessionArtifactRel(rel)}`;
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* Opaque, non-reversible file id. Derived as SHA-256 hex of
|
|
141
|
-
* `sessionId:relPath` so a caller cannot construct an id by guessing a filename.
|
|
142
|
-
* It is the single id scheme for session files: the checkpoint index records it,
|
|
143
|
-
* the list route emits it, the download/link routes resolve it back to a path
|
|
144
|
-
* from the latest checkpoint index, and the object key uses it directly. Hex is
|
|
145
|
-
* URL-safe. WebCrypto, no new dep.
|
|
146
|
-
*/
|
|
147
|
-
export async function opaqueSessionFileId(sessionId, relPath) {
|
|
148
|
-
const data = new TextEncoder().encode(`${sessionId}:${relPath}`);
|
|
149
|
-
const digest = await crypto.subtle.digest("SHA-256", data);
|
|
150
|
-
return Array.from(new Uint8Array(digest), (b) => b.toString(16).padStart(2, "0")).join("");
|
|
151
|
-
}
|
|
152
|
-
function matchesRelPrefix(rel, prefix) {
|
|
153
|
-
if (prefix.endsWith("/"))
|
|
154
|
-
return rel.startsWith(prefix);
|
|
155
|
-
return rel === prefix || rel.startsWith(`${prefix}/`);
|
|
156
|
-
}
|
|
157
|
-
/** The `asset_` id form the API emits for a workspace asset. */
|
|
158
|
-
export const WORKSPACE_ASSET_ID_PREFIX = "asset_";
|
|
159
|
-
/** The `sha256:` content-hash URI form carried on pinned resource versions. */
|
|
160
|
-
export const WORKSPACE_ASSET_HASH_URI_PREFIX = "sha256:";
|
|
161
|
-
/** A workspace asset is addressed by a bare lowercase SHA-256 hex digest; nothing else. */
|
|
162
|
-
const WORKSPACE_ASSET_HASH_HEX = /^[0-9a-f]{64}$/u;
|
|
163
|
-
/**
|
|
164
|
-
* Storage key for a workspace's snapshotted asset, addressed by its content hash.
|
|
165
|
-
* Used only for pre-checkpoint reusable workspace assets; session boot
|
|
166
|
-
* materializes those assets into an initial checkpoint before execution.
|
|
167
|
-
*
|
|
168
|
-
* Accepts `asset_<hex>`, `sha256:<hex>`, and the bare hex, and rejects everything
|
|
169
|
-
* else. This repo cannot import the platform's owner module, so this is a
|
|
170
|
-
* DELIBERATE MIRROR held byte-identical by a cross-repo parity test
|
|
171
|
-
* (`platform/scripts/validate/object-store-key-public-parity.test.ts`). Change
|
|
172
|
-
* one side and that test fails; do not change one side alone.
|
|
173
|
-
*/
|
|
174
|
-
export function workspaceAssetKey(workspaceId, rawAssetId) {
|
|
175
|
-
let decoded;
|
|
176
|
-
try {
|
|
177
|
-
decoded = decodeURIComponent(rawAssetId).trim();
|
|
178
|
-
}
|
|
179
|
-
catch {
|
|
180
|
-
// A malformed percent-escape is an invalid asset id, not an internal error.
|
|
181
|
-
return { ok: false };
|
|
182
|
-
}
|
|
183
|
-
const hex = decoded.startsWith(WORKSPACE_ASSET_ID_PREFIX)
|
|
184
|
-
? decoded.slice(WORKSPACE_ASSET_ID_PREFIX.length)
|
|
185
|
-
: decoded.startsWith(WORKSPACE_ASSET_HASH_URI_PREFIX)
|
|
186
|
-
? decoded.slice(WORKSPACE_ASSET_HASH_URI_PREFIX.length)
|
|
187
|
-
: decoded;
|
|
188
|
-
if (!WORKSPACE_ASSET_HASH_HEX.test(hex))
|
|
189
|
-
return { ok: false };
|
|
190
|
-
return {
|
|
191
|
-
ok: true,
|
|
192
|
-
key: `${WORKSPACES_PREFIX}/${workspaceId}/assets/content/${hex}`,
|
|
193
|
-
assetId: `${WORKSPACE_ASSET_ID_PREFIX}${hex}`
|
|
194
|
-
};
|
|
195
|
-
}
|
|
196
|
-
/**
|
|
197
|
-
* Retention class for an S3 key. Writers set this as the `aex-retention` object
|
|
198
|
-
* tag so bucket lifecycle rules can apply per logical namespace even though the
|
|
199
|
-
* useful category sits after dynamic workspace/session ids.
|
|
200
|
-
*/
|
|
201
|
-
export function s3ObjectRetentionTagValue(key) {
|
|
202
|
-
const normalized = key.replace(/^\/+/, "");
|
|
203
|
-
if (normalized.startsWith(`${WORKSPACES_PREFIX}/`)) {
|
|
204
|
-
const parts = normalized.split("/");
|
|
205
|
-
if (parts[2] === "assets" && parts[3] === "content" && parts.length >= 5)
|
|
206
|
-
return "workspace-asset";
|
|
207
|
-
if (parts[2] === "uploads" && parts.length >= 4)
|
|
208
|
-
return "upload-staging";
|
|
209
|
-
if (parts[2] !== SESSIONS_PREFIX || parts.length < 5)
|
|
210
|
-
return undefined;
|
|
211
|
-
const rel = parts.slice(4).join("/");
|
|
212
|
-
if (rel.startsWith(`${SESSION_CHECKPOINTS_PREFIX}/`)) {
|
|
213
|
-
if (rel.includes("/workspace/objects/"))
|
|
214
|
-
return "session-file-current";
|
|
215
|
-
return "session-core";
|
|
216
|
-
}
|
|
217
|
-
if (rel.startsWith(`${SESSION_INTERNAL_PREFIX}/admin-archives/`))
|
|
218
|
-
return "admin-archive";
|
|
219
|
-
if (rel.startsWith(`${SESSION_INTERNAL_PREFIX}/events/`))
|
|
220
|
-
return "internal-event";
|
|
221
|
-
if (rel.startsWith(`${SESSION_INTERNAL_USAGE_PREFIX}/`))
|
|
222
|
-
return "internal-usage";
|
|
223
|
-
if (rel.startsWith(`${SESSION_INTERNAL_LOGS_PREFIX}/`))
|
|
224
|
-
return "internal-log";
|
|
225
|
-
if (rel.startsWith(`${SESSION_INTERNAL_PREFIX}/`))
|
|
226
|
-
return "internal-log";
|
|
227
|
-
return undefined;
|
|
228
|
-
}
|
|
229
|
-
// Current control-plane core is still read by the running container from the
|
|
230
|
-
// internal control namespace. It is not a public files namespace and can be cut
|
|
231
|
-
// over independently after boot/journal consumers move to workspace-scoped keys.
|
|
232
|
-
if (normalized.startsWith(`${SESSIONS_PREFIX}/`)) {
|
|
233
|
-
const parts = normalized.split("/");
|
|
234
|
-
if (parts.length < 4 || parts[2] !== "session")
|
|
235
|
-
return undefined;
|
|
236
|
-
const rel = parts.slice(3).join("/");
|
|
237
|
-
if (rel.startsWith("logs/"))
|
|
238
|
-
return "internal-log";
|
|
239
|
-
if (rel.startsWith("internal/usage/"))
|
|
240
|
-
return "internal-usage";
|
|
241
|
-
if (rel.startsWith("internal/events/"))
|
|
242
|
-
return "internal-event";
|
|
243
|
-
if (rel.startsWith("admin-archives/") || rel.startsWith("internal/admin-archives/"))
|
|
244
|
-
return "admin-archive";
|
|
245
|
-
if (rel === "terminal-failure.json")
|
|
246
|
-
return "internal-log";
|
|
247
|
-
if (rel === "boot.json" ||
|
|
248
|
-
rel === "settle.json" ||
|
|
249
|
-
rel === "control.json" ||
|
|
250
|
-
rel === "secrets.sealed" ||
|
|
251
|
-
rel.startsWith("journal/") ||
|
|
252
|
-
rel.startsWith("turns/")) {
|
|
253
|
-
return "session-core";
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
return undefined;
|
|
257
|
-
}
|
|
258
|
-
/** S3 PutObject/CreateMultipartUpload/Upload `Tagging` header value for a key. */
|
|
259
|
-
export function s3ObjectRetentionTaggingHeader(key) {
|
|
260
|
-
const value = s3ObjectRetentionTagValue(key);
|
|
261
|
-
if (value === undefined)
|
|
262
|
-
return undefined;
|
|
263
|
-
return `${encodeURIComponent(S3_RETENTION_TAG_KEY)}=${encodeURIComponent(value)}`;
|
|
264
|
-
}
|