@hasna/todos 0.15.51 → 0.16.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/CHANGELOG.md +1884 -0
- package/README.md +314 -37
- package/dist/ai-tools.d.ts.map +1 -1
- package/dist/ai.d.ts.map +1 -1
- package/dist/cli/cloud-router.d.ts +99 -51
- package/dist/cli/cloud-router.d.ts.map +1 -1
- package/dist/cli/commands/agent-commands.d.ts.map +1 -1
- package/dist/cli/commands/config-serve-commands.d.ts.map +1 -1
- package/dist/cli/commands/delegate.d.ts.map +1 -1
- package/dist/cli/commands/environment-snapshots.d.ts.map +1 -1
- package/dist/cli/commands/machines-api.d.ts +4 -0
- package/dist/cli/commands/machines-api.d.ts.map +1 -0
- package/dist/cli/commands/machines.d.ts.map +1 -1
- package/dist/cli/commands/mcp-hooks-commands.d.ts.map +1 -1
- package/dist/cli/commands/plan-commands.d.ts +3 -0
- package/dist/cli/commands/plan-commands.d.ts.map +1 -0
- package/dist/cli/commands/plan-template-commands.d.ts.map +1 -1
- package/dist/cli/commands/pr-group-commands.d.ts.map +1 -1
- package/dist/cli/commands/project-commands.d.ts +15 -0
- package/dist/cli/commands/project-commands.d.ts.map +1 -1
- package/dist/cli/commands/query-commands.d.ts.map +1 -1
- package/dist/cli/commands/storage-commands.d.ts.map +1 -1
- package/dist/cli/commands/task-list-commands.d.ts +3 -0
- package/dist/cli/commands/task-list-commands.d.ts.map +1 -0
- package/dist/cli/commands/template-commands.d.ts +3 -0
- package/dist/cli/commands/template-commands.d.ts.map +1 -0
- package/dist/cli/helpers.d.ts.map +1 -1
- package/dist/cli/index.js +15156 -11088
- package/dist/cli/machine-api.d.ts +7 -0
- package/dist/cli/machine-api.d.ts.map +1 -0
- package/dist/cli/plan-read-api.d.ts +6 -0
- package/dist/cli/plan-read-api.d.ts.map +1 -0
- package/dist/cli/project-api.d.ts +119 -0
- package/dist/cli/project-api.d.ts.map +1 -0
- package/dist/cli/stage-a.d.ts +34 -4
- package/dist/cli/stage-a.d.ts.map +1 -1
- package/dist/cli/task-query-api.d.ts +21 -0
- package/dist/cli/task-query-api.d.ts.map +1 -0
- package/dist/cli/template-api.d.ts +7 -0
- package/dist/cli/template-api.d.ts.map +1 -0
- package/dist/contracts.js +836 -266
- package/dist/db/builtin-templates.d.ts +2 -33
- package/dist/db/builtin-templates.d.ts.map +1 -1
- package/dist/db/database.d.ts.map +1 -1
- package/dist/db/handoffs.d.ts.map +1 -1
- package/dist/db/machines.d.ts.map +1 -1
- package/dist/db/migrations.d.ts.map +1 -1
- package/dist/db/plans.d.ts.map +1 -1
- package/dist/db/retrospectives.d.ts.map +1 -1
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/task-lists.d.ts.map +1 -1
- package/dist/db/task-runs.d.ts +2 -0
- package/dist/db/task-runs.d.ts.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3863 -1708
- package/dist/lib/assignee-validation.d.ts.map +1 -1
- package/dist/lib/builtin-template-library.d.ts +32 -0
- package/dist/lib/builtin-template-library.d.ts.map +1 -0
- package/dist/lib/cli-reference.d.ts.map +1 -1
- package/dist/lib/config.d.ts +10 -13
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/db-backup.d.ts +1 -1
- package/dist/lib/db-backup.d.ts.map +1 -1
- package/dist/lib/env.d.ts +18 -0
- package/dist/lib/env.d.ts.map +1 -0
- package/dist/lib/environment-snapshots.d.ts.map +1 -1
- package/dist/lib/gatherer.d.ts.map +1 -1
- package/dist/lib/headless-boundaries.d.ts +4 -3
- package/dist/lib/headless-boundaries.d.ts.map +1 -1
- package/dist/lib/local-encryption.d.ts +12 -0
- package/dist/lib/local-encryption.d.ts.map +1 -1
- package/dist/lib/local-opt-in.d.ts +90 -0
- package/dist/lib/local-opt-in.d.ts.map +1 -0
- package/dist/lib/paths.d.ts +9 -0
- package/dist/lib/paths.d.ts.map +1 -1
- package/dist/lib/plan-artifacts.d.ts +1 -0
- package/dist/lib/plan-artifacts.d.ts.map +1 -1
- package/dist/lib/plan-client-boundary.d.ts +2 -0
- package/dist/lib/plan-client-boundary.d.ts.map +1 -0
- package/dist/lib/plan-schedule.d.ts +6 -0
- package/dist/lib/plan-schedule.d.ts.map +1 -0
- package/dist/lib/project-panel.d.ts +6 -0
- package/dist/lib/project-panel.d.ts.map +1 -1
- package/dist/lib/project-receipt.d.ts +3 -0
- package/dist/lib/project-receipt.d.ts.map +1 -0
- package/dist/lib/sandbox-profiles.d.ts.map +1 -1
- package/dist/lib/shared-plan-artifacts.d.ts +14 -0
- package/dist/lib/shared-plan-artifacts.d.ts.map +1 -0
- package/dist/lib/sync.d.ts.map +1 -1
- package/dist/lib/task-list-client-boundary.d.ts +3 -0
- package/dist/lib/task-list-client-boundary.d.ts.map +1 -0
- package/dist/lib/task-routing.d.ts.map +1 -1
- package/dist/lib/template-client-boundary.d.ts +2 -0
- package/dist/lib/template-client-boundary.d.ts.map +1 -0
- package/dist/mcp/index.d.ts +1 -0
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +45195 -40368
- package/dist/mcp/plan-api.d.ts +6 -0
- package/dist/mcp/plan-api.d.ts.map +1 -0
- package/dist/mcp/remote-authority.d.ts +49 -0
- package/dist/mcp/remote-authority.d.ts.map +1 -0
- package/dist/mcp/task-coordination-api.d.ts +15 -0
- package/dist/mcp/task-coordination-api.d.ts.map +1 -0
- package/dist/mcp/task-list-api.d.ts +8 -0
- package/dist/mcp/task-list-api.d.ts.map +1 -0
- package/dist/mcp/token-utils.d.ts.map +1 -1
- package/dist/mcp/tools/environment-snapshots.d.ts.map +1 -1
- package/dist/mcp/tools/machines.d.ts.map +1 -1
- package/dist/mcp/tools/task-project-tools.d.ts.map +1 -1
- package/dist/mcp/tools/task-resources.d.ts.map +1 -1
- package/dist/mcp.d.ts +2 -2
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +45 -19
- package/dist/project-registration.js +2830 -557
- package/dist/registry.js +837 -267
- package/dist/release-provenance.json +6 -6
- package/dist/sdk/client.d.ts +51 -4
- package/dist/sdk/client.d.ts.map +1 -1
- package/dist/sdk/index.d.ts +2 -0
- package/dist/sdk/index.d.ts.map +1 -1
- package/dist/sdk/index.js +1209 -1080
- package/dist/sdk/resolve.d.ts +91 -0
- package/dist/sdk/resolve.d.ts.map +1 -0
- package/dist/sdk/v1.generated.d.ts +219 -3
- package/dist/sdk/v1.generated.d.ts.map +1 -1
- package/dist/server/auth-posture.d.ts +66 -7
- package/dist/server/auth-posture.d.ts.map +1 -1
- package/dist/server/client-ip.d.ts +39 -0
- package/dist/server/client-ip.d.ts.map +1 -0
- package/dist/server/cloud.d.ts +2 -1
- package/dist/server/cloud.d.ts.map +1 -1
- package/dist/server/index.d.ts +1 -1
- package/dist/server/index.js +20556 -15533
- package/dist/server/openapi.d.ts +1341 -83
- package/dist/server/openapi.d.ts.map +1 -1
- package/dist/server/port.d.ts +2 -2
- package/dist/server/port.d.ts.map +1 -1
- package/dist/server/routes.d.ts +3 -6
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/serve.d.ts +2 -6
- package/dist/server/serve.d.ts.map +1 -1
- package/dist/server/v1.d.ts +3 -1
- package/dist/server/v1.d.ts.map +1 -1
- package/dist/storage/atomic-project-migration.d.ts +53 -0
- package/dist/storage/atomic-project-migration.d.ts.map +1 -0
- package/dist/storage/index.d.ts +3 -1
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/interfaces.d.ts +61 -0
- package/dist/storage/interfaces.d.ts.map +1 -1
- package/dist/storage/machine-registry.d.ts +36 -0
- package/dist/storage/machine-registry.d.ts.map +1 -0
- package/dist/storage/postgres-adapter.d.ts.map +1 -1
- package/dist/storage/postgres-sync.d.ts +2 -2
- package/dist/storage/postgres-sync.d.ts.map +1 -1
- package/dist/storage/run-artifact-creation-upload.d.ts +50 -0
- package/dist/storage/run-artifact-creation-upload.d.ts.map +1 -0
- package/dist/storage/s3-artifact-sync.d.ts +18 -0
- package/dist/storage/s3-artifact-sync.d.ts.map +1 -1
- package/dist/storage/sqlite-snapshot.d.ts +2 -0
- package/dist/storage/sqlite-snapshot.d.ts.map +1 -1
- package/dist/storage.d.ts +2 -2
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +2695 -322
- package/dist/task-manifest/postgres.d.ts +1 -1
- package/dist/task-manifest/sqlite.d.ts +1 -1
- package/dist/task-manifest.js +244 -73
- package/dist/task-subtree-transfer.js +198 -4
- package/dist/testing.d.ts +90 -29
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +34 -10
- package/dist/types/index.d.ts +40 -4
- package/dist/types/index.d.ts.map +1 -1
- package/docs/PLAN_API.md +93 -0
- package/docs/TASK_LIST_API.md +58 -0
- package/docs/TASK_QUERY_API.md +14 -0
- package/docs/TEMPLATE_API.md +18 -0
- package/docs/native-storage.md +405 -0
- package/package.json +19 -16
- package/postinstall.js +52 -1
- package/dashboard/dist/assets/index-BNQ4gJua.js +0 -342
- package/dashboard/dist/assets/index-DjzvHUWt.css +0 -1
- package/dashboard/dist/index.html +0 -13
- package/dashboard/dist/logo.jpg +0 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Upload a run artifact to the configured S3 bucket at creation time.
|
|
3
|
+
*
|
|
4
|
+
* The artifact-remote kit pattern (hasna/apps#1639): every run artifact that
|
|
5
|
+
* gets stored locally is mirrored to the configured object store as soon as
|
|
6
|
+
* the row is created, so the bytes never live only on the station that
|
|
7
|
+
* produced them. The object is content-addressed under
|
|
8
|
+
* `artifacts/<task_id>/<sha256>` (inside the configured bucket prefix), and
|
|
9
|
+
* the remote reference is recorded on the artifact row's metadata, which makes
|
|
10
|
+
* `todos storage artifacts download` able to restore the bytes on any machine.
|
|
11
|
+
*
|
|
12
|
+
* Fail-soft by contract: when no bucket is configured the artifacts stay
|
|
13
|
+
* local-only (the pre-existing behaviour); when credentials are missing or the
|
|
14
|
+
* upload fails, the artifact row is still created and the failure is reported
|
|
15
|
+
* in the return value instead of being thrown. Callers that live in
|
|
16
|
+
* short-lived processes (the CLI `runs artifact` command, MCP tools) await
|
|
17
|
+
* this before they return.
|
|
18
|
+
*/
|
|
19
|
+
import type { Database } from "bun:sqlite";
|
|
20
|
+
import { type TodosStorageEnv } from "./config.js";
|
|
21
|
+
import { type TodosRunArtifactRemoteRef } from "./s3-artifact-sync.js";
|
|
22
|
+
import { type TodosS3ArtifactStore, type TodosAwsCredentials } from "./s3-artifacts.js";
|
|
23
|
+
export interface UploadRunArtifactAtCreationInput {
|
|
24
|
+
/** The `task_run_artifacts` row id created by `addTaskRunArtifact`. */
|
|
25
|
+
artifactId: string;
|
|
26
|
+
db?: Database;
|
|
27
|
+
/** Env to read the bucket/prefix/credentials from. Defaults to `process.env`. */
|
|
28
|
+
env?: TodosStorageEnv;
|
|
29
|
+
/** Injectable store (tests). When omitted, one is built from the env config. */
|
|
30
|
+
store?: TodosS3ArtifactStore;
|
|
31
|
+
now?: () => Date;
|
|
32
|
+
}
|
|
33
|
+
export type RunArtifactCreationUploadReason = "uploaded" | "already_remote" | "s3_not_configured" | "s3_credentials_missing" | "artifact_not_found" | "no_local_content" | "upload_error";
|
|
34
|
+
export interface RunArtifactCreationUploadReport {
|
|
35
|
+
/** True when the artifact content lives in S3 (uploaded now or before). */
|
|
36
|
+
uploaded: boolean;
|
|
37
|
+
reason: RunArtifactCreationUploadReason;
|
|
38
|
+
ref?: TodosRunArtifactRemoteRef;
|
|
39
|
+
error?: string;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Upload the stored content of a freshly created run artifact to the
|
|
43
|
+
* configured S3 bucket, then record the remote reference on the artifact row.
|
|
44
|
+
* Never throws; every failure mode is reported in the result instead.
|
|
45
|
+
*/
|
|
46
|
+
export declare function uploadRunArtifactAtCreation(input: UploadRunArtifactAtCreationInput): Promise<RunArtifactCreationUploadReport>;
|
|
47
|
+
/** Read creation-time S3 credentials from the canonical or fallback env names. */
|
|
48
|
+
/** Read creation-time S3 credentials from the canonical or fallback env names. */
|
|
49
|
+
export declare function creationCredentialsFromEnv(env: TodosStorageEnv): TodosAwsCredentials | null;
|
|
50
|
+
//# sourceMappingURL=run-artifact-creation-upload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-artifact-creation-upload.d.ts","sourceRoot":"","sources":["../../src/storage/run-artifact-creation-upload.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAI3C,OAAO,EAAyE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAC1H,OAAO,EAKL,KAAK,yBAAyB,EAC/B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAA8B,KAAK,oBAAoB,EAAE,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAEpH,MAAM,WAAW,gCAAgC;IAC/C,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,QAAQ,CAAC;IACd,iFAAiF;IACjF,GAAG,CAAC,EAAE,eAAe,CAAC;IACtB,gFAAgF;IAChF,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,MAAM,MAAM,+BAA+B,GACvC,UAAU,GACV,gBAAgB,GAChB,mBAAmB,GACnB,wBAAwB,GACxB,oBAAoB,GACpB,kBAAkB,GAClB,cAAc,CAAC;AAEnB,MAAM,WAAW,+BAA+B;IAC9C,2EAA2E;IAC3E,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,+BAA+B,CAAC;IACxC,GAAG,CAAC,EAAE,yBAAyB,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,gCAAgC,GACtC,OAAO,CAAC,+BAA+B,CAAC,CAgE1C;AAED,kFAAkF;AAElF,kFAAkF;AAClF,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,eAAe,GAAG,mBAAmB,GAAG,IAAI,CAM3F"}
|
|
@@ -4,7 +4,15 @@ export interface TodosRunArtifactRemoteRef {
|
|
|
4
4
|
provider: "s3";
|
|
5
5
|
bucket: string;
|
|
6
6
|
key: string;
|
|
7
|
+
/** S3 object path relative to the configured bucket prefix. */
|
|
7
8
|
relative_path: string;
|
|
9
|
+
/**
|
|
10
|
+
* Local content-address (`sha256/<xx>/<hash>`) the downloaded bytes restore
|
|
11
|
+
* to. `relative_path` is the object path; the local store is separately
|
|
12
|
+
* content-addressed, so a remote ref written before this field existed
|
|
13
|
+
* falls back to `relative_path`.
|
|
14
|
+
*/
|
|
15
|
+
local_path?: string;
|
|
8
16
|
url: string;
|
|
9
17
|
sha256: string;
|
|
10
18
|
size_bytes: number;
|
|
@@ -72,4 +80,14 @@ export interface PlanRunArtifactsS3SyncOptions {
|
|
|
72
80
|
export declare function uploadRunArtifactsToS3(options: UploadRunArtifactsToS3Options): Promise<TodosRunArtifactSyncResult>;
|
|
73
81
|
export declare function planRunArtifactsS3Sync(options: PlanRunArtifactsS3SyncOptions): TodosRunArtifactSyncPlan;
|
|
74
82
|
export declare function downloadRunArtifactsFromS3(options: DownloadRunArtifactsFromS3Options): Promise<TodosRunArtifactSyncResult>;
|
|
83
|
+
/**
|
|
84
|
+
* Content-address for a run artifact object, relative to the configured bucket
|
|
85
|
+
* prefix: `artifacts/<task_id>/<sha256>`. The digest is the whole name, so the
|
|
86
|
+
* object is immutable and identical bytes are never stored twice. Used both by
|
|
87
|
+
* the creation-time upload and by the batch `storage artifacts upload`.
|
|
88
|
+
*/
|
|
89
|
+
export declare function remoteArtifactKey(taskId: string, sha256: string): string;
|
|
90
|
+
export declare function updateArtifactMetadata(db: Database, id: string, metadata: Record<string, unknown>): void;
|
|
91
|
+
export declare function parseMetadata(value: unknown): Record<string, unknown>;
|
|
92
|
+
export declare function remoteRef(metadata: Record<string, unknown>): TodosRunArtifactRemoteRef | null;
|
|
75
93
|
//# sourceMappingURL=s3-artifact-sync.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"s3-artifact-sync.d.ts","sourceRoot":"","sources":["../../src/storage/s3-artifact-sync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQ3C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,IAAI,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,KAAK,CAAC;QACf,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,QAAQ,GAAG,UAAU,CAAC;IACjC,OAAO,EAAE,IAAI,CAAC;IACd,UAAU,EAAE,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,KAAK,CAAC;QACf,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,YAAY,GAAG,cAAc,GAAG,gBAAgB,GAAG,UAAU,GAAG,eAAe,GAAG,eAAe,GAAG,oBAAoB,CAAC;QACjI,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,6BAA6B;IAC5C,KAAK,EAAE,oBAAoB,CAAC;IAC5B,EAAE,CAAC,EAAE,QAAQ,CAAC;IACd,MAAM,CAAC,EAAE,0BAA0B,CAAC;IACpC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,iCAAiC;IAChD,KAAK,EAAE,oBAAoB,CAAC;IAC5B,EAAE,CAAC,EAAE,QAAQ,CAAC;IACd,MAAM,CAAC,EAAE,IAAI,CAAC,0BAA0B,EAAE,sBAAsB,CAAC,CAAC;IAClE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,6BAA6B;IAC5C,EAAE,CAAC,EAAE,QAAQ,CAAC;IACd,MAAM,CAAC,EAAE,0BAA0B,CAAC;IACpC,SAAS,EAAE,QAAQ,GAAG,UAAU,CAAC;IACjC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAMD,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,0BAA0B,CAAC,
|
|
1
|
+
{"version":3,"file":"s3-artifact-sync.d.ts","sourceRoot":"","sources":["../../src/storage/s3-artifact-sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,4 +2,6 @@ import type { Database } from "bun:sqlite";
|
|
|
2
2
|
import type { TodosStorageImportResult, TodosStorageSnapshot } from "./interfaces.js";
|
|
3
3
|
export declare function exportSqliteTodosStorageSnapshot(db?: Database): TodosStorageSnapshot;
|
|
4
4
|
export declare function importSqliteTodosStorageSnapshot(snapshot: TodosStorageSnapshot, db?: Database): TodosStorageImportResult;
|
|
5
|
+
/** Never discard malformed metadata during migration; the ordinary display mapper is intentionally forgiving. */
|
|
6
|
+
export declare function exportSqliteMachines(db: Database): import("../types/index.js").Machine[];
|
|
5
7
|
//# sourceMappingURL=sqlite-snapshot.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-snapshot.d.ts","sourceRoot":"","sources":["../../src/storage/sqlite-snapshot.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sqlite-snapshot.d.ts","sourceRoot":"","sources":["../../src/storage/sqlite-snapshot.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAoB,MAAM,YAAY,CAAC;AAiB7D,OAAO,KAAK,EACV,wBAAwB,EACxB,oBAAoB,EAGrB,MAAM,iBAAiB,CAAC;AAiEzB,wBAAgB,gCAAgC,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,oBAAoB,CAiBpF;AAED,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,oBAAoB,EAC9B,EAAE,CAAC,EAAE,QAAQ,GACZ,wBAAwB,CAgG1B;AAkPD,iHAAiH;AACjH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,mBAAmB,EAAE,OAAO,EAAE,CAQxF"}
|
package/dist/storage.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export type { MaybePromise, ActiveWorkItem, TodosActiveWorkFilter, TodosAgentUpdateInput, TodosAgentStore, TodosAuditStore, TodosCommentListOptions, TodosPlanStore, TodosProjectStore, TodosIntegrityStore, TodosStorageAdapter, TodosStorageCapabilities, TodosStorageContext, TodosStorageImportResult, TodosStorageKind, TodosStorageSnapshot, TodosSyncStore, TodosTaskClaimFilter, TodosTaskCompletionOptions, TodosTaskFailureOptions, TodosTaskFailureResult, TodosTaskListStore, TodosTaskStore, TodosTemplateStore, UpdateTemplateInput, } from "./storage/index.js";
|
|
2
|
-
export { CANONICAL_TODOS_RDS_CLUSTER_ENV, CANONICAL_TODOS_RDS_DATABASE, CANONICAL_TODOS_RDS_RUNTIME_PATH_ENV, STORAGE_TABLES, TODOS_STORAGE_ENV, TODOS_STORAGE_FALLBACK_ENV, TODOS_STORAGE_TABLES, assertTodosRemoteStorageConfig, assertTodosShadowConfig, isTodosShadowEnabled, getTodosStorageShadowEnvName, createLocalSqliteTodosStorageAdapter, createHybridTodosStorageAdapter, createShadowTodosStorageAdapter, TodosShadowOutbox, createTodosShadowOutbox, installShadowOutboxSchema, maybeInstallShadowCapture, getRuntimeShadowOutbox, startRuntimeShadowDrain, registerShadowExitFlush, closeRuntimeShadowCloud, createTodosCloudQueryClient, createTodosCloudQueryClientFromEnv, TodosShadowMirror, createTodosStorageAdapter, exportSqliteTodosStorageSnapshot, importSqliteTodosStorageSnapshot, isTodosPostgresBackend, loadTodosStorageConfig, parseStorageBackend, planRunArtifactsS3Sync, createPostgresTodosStorageAdapter, createPostgresTodosSyncStore, createTodosS3ArtifactStore, COMMENT_REDACTION_BACKFILL_CONFIRMATION, backfillPostgresCommentRedaction, isCommentRedactionBackfillComplete, ensurePostgresScopedSlugUniqueIndexes, PostgresScopedSlugIndexBuildError, PostgresScopedSlugMigrationConflictError, postgresTodosCommentCursorIndexSql, postgresTodosScopedSlugPreflightSql, postgresTodosScopedSlugIndexStatusSql, postgresTodosScopedSlugUniqueIndexSql, postgresTodosSyncSchemaSql, signAwsV4Request, uploadRunArtifactsToS3, downloadRunArtifactsFromS3, getCanonicalTodosRdsConfig, getStorageDatabaseEnv, getStorageDatabaseUrl, getTodosStorageDatabaseEnv, getTodosStorageDatabaseUrl, getTodosStorageEnvName, getTodosStorageBackend, buildS3ObjectKey, buildS3ObjectUrl, loadStorageConfig, } from "./storage/index.js";
|
|
2
|
+
export { CANONICAL_TODOS_RDS_CLUSTER_ENV, CANONICAL_TODOS_RDS_DATABASE, CANONICAL_TODOS_RDS_RUNTIME_PATH_ENV, STORAGE_TABLES, TODOS_STORAGE_ENV, TODOS_STORAGE_FALLBACK_ENV, TODOS_STORAGE_TABLES, assertTodosRemoteStorageConfig, assertTodosShadowConfig, isTodosShadowEnabled, getTodosStorageShadowEnvName, createLocalSqliteTodosStorageAdapter, createHybridTodosStorageAdapter, createShadowTodosStorageAdapter, TodosShadowOutbox, createTodosShadowOutbox, installShadowOutboxSchema, maybeInstallShadowCapture, getRuntimeShadowOutbox, startRuntimeShadowDrain, registerShadowExitFlush, closeRuntimeShadowCloud, createTodosCloudQueryClient, createTodosCloudQueryClientFromEnv, TodosShadowMirror, createTodosStorageAdapter, exportSqliteTodosStorageSnapshot, importSqliteTodosStorageSnapshot, isTodosPostgresBackend, loadTodosStorageConfig, parseStorageBackend, planRunArtifactsS3Sync, createPostgresTodosStorageAdapter, createPostgresTodosSyncStore, createTodosS3ArtifactStore, COMMENT_REDACTION_BACKFILL_CONFIRMATION, backfillPostgresCommentRedaction, isCommentRedactionBackfillComplete, ensurePostgresScopedSlugUniqueIndexes, PostgresScopedSlugIndexBuildError, PostgresScopedSlugMigrationConflictError, postgresTodosCommentCursorIndexSql, postgresTodosScopedSlugPreflightSql, postgresTodosScopedSlugIndexStatusSql, postgresTodosScopedSlugUniqueIndexSql, postgresTodosSyncSchemaSql, signAwsV4Request, uploadRunArtifactsToS3, downloadRunArtifactsFromS3, uploadRunArtifactAtCreation, remoteArtifactKey, getCanonicalTodosRdsConfig, getStorageDatabaseEnv, getStorageDatabaseUrl, getTodosStorageDatabaseEnv, getTodosStorageDatabaseUrl, getTodosStorageEnvName, getTodosStorageBackend, buildS3ObjectKey, buildS3ObjectUrl, loadStorageConfig, } from "./storage/index.js";
|
|
3
3
|
export type { CreateLocalSqliteTodosStorageAdapterOptions } from "./storage/index.js";
|
|
4
4
|
export type { CreateShadowTodosStorageAdapterOptions, ShadowTodosStorageAdapter, TodosShadowMirrorEvent, TodosShadowMirrorMetrics, CreateTodosShadowOutboxOptions, TodosShadowOutboxEvent, TodosShadowOutboxStats, CreateTodosCloudQueryClientOptions, TodosCloudQueryClient, } from "./storage/index.js";
|
|
5
|
-
export type { CanonicalTodosRdsConfig, CommentRedactionBackfillOptions, CommentRedactionBackfillResult, CreateHybridTodosStorageAdapterOptions, CreatePostgresTodosStorageAdapterOptions, CreatePostgresTodosSyncStoreOptions, CreateTodosStorageAdapterOptions, DownloadRunArtifactsFromS3Options, HybridTodosRemoteSync, HybridTodosStorageAdapter, HybridTodosStorageSyncResult, PostgresTodosSyncPushResult, PostgresScopedSlugConflict, PostgresScopedSlugIndexStatus, PlanRunArtifactsS3SyncOptions, PullPostgresTodosSnapshotOptions, PutTodosS3ObjectInput, SignAwsV4RequestInput, SignedAwsV4Request, TodosAwsCredentials, TodosPostgresQueryClient, TodosPostgresQueryResult, TodosPostgresSyncRecordRow, TodosPostgresSyncRecordType, TodosPostgresStorageConfig, TodosS3StorageConfig, TodosS3ArtifactStore, TodosS3ArtifactStoreOptions, TodosS3ObjectRef, TodosRunArtifactRemoteRef, TodosRunArtifactSyncFilter, TodosRunArtifactSyncPlan, TodosRunArtifactSyncResult, TodosStorageBackend, TodosStorageConfig, TodosStorageEnv, TodosStorageTable, TodosSyncConfig, UploadRunArtifactsToS3Options, } from "./storage/index.js";
|
|
5
|
+
export type { CanonicalTodosRdsConfig, CommentRedactionBackfillOptions, CommentRedactionBackfillResult, CreateHybridTodosStorageAdapterOptions, CreatePostgresTodosStorageAdapterOptions, CreatePostgresTodosSyncStoreOptions, CreateTodosStorageAdapterOptions, DownloadRunArtifactsFromS3Options, HybridTodosRemoteSync, HybridTodosStorageAdapter, HybridTodosStorageSyncResult, PostgresTodosSyncPushResult, PostgresScopedSlugConflict, PostgresScopedSlugIndexStatus, PlanRunArtifactsS3SyncOptions, PullPostgresTodosSnapshotOptions, PutTodosS3ObjectInput, SignAwsV4RequestInput, SignedAwsV4Request, TodosAwsCredentials, TodosPostgresQueryClient, TodosPostgresQueryResult, TodosPostgresSyncRecordRow, TodosPostgresSyncRecordType, TodosPostgresStorageConfig, TodosS3StorageConfig, TodosS3ArtifactStore, TodosS3ArtifactStoreOptions, TodosS3ObjectRef, TodosRunArtifactRemoteRef, TodosRunArtifactSyncFilter, TodosRunArtifactSyncPlan, TodosRunArtifactSyncResult, TodosStorageBackend, TodosStorageConfig, TodosStorageEnv, TodosStorageTable, TodosSyncConfig, UploadRunArtifactsToS3Options, RunArtifactCreationUploadReason, RunArtifactCreationUploadReport, UploadRunArtifactAtCreationInput, } from "./storage/index.js";
|
|
6
6
|
//# sourceMappingURL=storage.d.ts.map
|
package/dist/storage.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,YAAY,EACZ,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,uBAAuB,EACvB,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,EACxB,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,EACd,oBAAoB,EACpB,0BAA0B,EAC1B,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,+BAA+B,EAC/B,4BAA4B,EAC5B,oCAAoC,EACpC,cAAc,EACd,iBAAiB,EACjB,0BAA0B,EAC1B,oBAAoB,EACpB,8BAA8B,EAC9B,uBAAuB,EACvB,oBAAoB,EACpB,4BAA4B,EAC5B,oCAAoC,EACpC,+BAA+B,EAC/B,+BAA+B,EAC/B,iBAAiB,EACjB,uBAAuB,EACvB,yBAAyB,EACzB,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,2BAA2B,EAC3B,kCAAkC,EAClC,iBAAiB,EACjB,yBAAyB,EACzB,gCAAgC,EAChC,gCAAgC,EAChC,sBAAsB,EACpB,sBAAsB,EACxB,mBAAmB,EACjB,sBAAsB,EACxB,iCAAiC,EACjC,4BAA4B,EAC5B,0BAA0B,EAC1B,uCAAuC,EACvC,gCAAgC,EAChC,kCAAkC,EAClC,qCAAqC,EACrC,iCAAiC,EACjC,wCAAwC,EACxC,kCAAkC,EAClC,mCAAmC,EACnC,qCAAqC,EACrC,qCAAqC,EACrC,0BAA0B,EAC1B,gBAAgB,EAChB,sBAAsB,EACtB,0BAA0B,EAC1B,0BAA0B,EAC1B,qBAAqB,EACrB,qBAAqB,EACnB,0BAA0B,EAC5B,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,EACpB,gBAAgB,EAClB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,2CAA2C,EAAE,MAAM,oBAAoB,CAAC;AACtF,YAAY,EACV,sCAAsC,EACtC,yBAAyB,EACzB,sBAAsB,EACtB,wBAAwB,EACxB,8BAA8B,EAC9B,sBAAsB,EACtB,sBAAsB,EACtB,kCAAkC,EAClC,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,uBAAuB,EACvB,+BAA+B,EAC/B,8BAA8B,EAC9B,sCAAsC,EACtC,wCAAwC,EACxC,mCAAmC,EACnC,gCAAgC,EAChC,iCAAiC,EACjC,qBAAqB,EACrB,yBAAyB,EACzB,4BAA4B,EAC5B,2BAA2B,EAC3B,0BAA0B,EAC1B,6BAA6B,EAC7B,6BAA6B,EAC7B,gCAAgC,EAChC,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,0BAA0B,EAC1B,2BAA2B,EAC3B,0BAA0B,EAC1B,oBAAoB,EACpB,oBAAoB,EACpB,2BAA2B,EAC3B,gBAAgB,EAChB,yBAAyB,EACzB,0BAA0B,EAC1B,wBAAwB,EACxB,0BAA0B,EAC1B,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,6BAA6B,
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,YAAY,EACZ,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,uBAAuB,EACvB,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,EACxB,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,EACd,oBAAoB,EACpB,0BAA0B,EAC1B,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,+BAA+B,EAC/B,4BAA4B,EAC5B,oCAAoC,EACpC,cAAc,EACd,iBAAiB,EACjB,0BAA0B,EAC1B,oBAAoB,EACpB,8BAA8B,EAC9B,uBAAuB,EACvB,oBAAoB,EACpB,4BAA4B,EAC5B,oCAAoC,EACpC,+BAA+B,EAC/B,+BAA+B,EAC/B,iBAAiB,EACjB,uBAAuB,EACvB,yBAAyB,EACzB,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,2BAA2B,EAC3B,kCAAkC,EAClC,iBAAiB,EACjB,yBAAyB,EACzB,gCAAgC,EAChC,gCAAgC,EAChC,sBAAsB,EACpB,sBAAsB,EACxB,mBAAmB,EACjB,sBAAsB,EACxB,iCAAiC,EACjC,4BAA4B,EAC5B,0BAA0B,EAC1B,uCAAuC,EACvC,gCAAgC,EAChC,kCAAkC,EAClC,qCAAqC,EACrC,iCAAiC,EACjC,wCAAwC,EACxC,kCAAkC,EAClC,mCAAmC,EACnC,qCAAqC,EACrC,qCAAqC,EACrC,0BAA0B,EAC1B,gBAAgB,EAChB,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,EAC3B,iBAAiB,EACjB,0BAA0B,EAC1B,qBAAqB,EACrB,qBAAqB,EACnB,0BAA0B,EAC5B,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,EACpB,gBAAgB,EAClB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,2CAA2C,EAAE,MAAM,oBAAoB,CAAC;AACtF,YAAY,EACV,sCAAsC,EACtC,yBAAyB,EACzB,sBAAsB,EACtB,wBAAwB,EACxB,8BAA8B,EAC9B,sBAAsB,EACtB,sBAAsB,EACtB,kCAAkC,EAClC,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,uBAAuB,EACvB,+BAA+B,EAC/B,8BAA8B,EAC9B,sCAAsC,EACtC,wCAAwC,EACxC,mCAAmC,EACnC,gCAAgC,EAChC,iCAAiC,EACjC,qBAAqB,EACrB,yBAAyB,EACzB,4BAA4B,EAC5B,2BAA2B,EAC3B,0BAA0B,EAC1B,6BAA6B,EAC7B,6BAA6B,EAC7B,gCAAgC,EAChC,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,0BAA0B,EAC1B,2BAA2B,EAC3B,0BAA0B,EAC1B,oBAAoB,EACpB,oBAAoB,EACpB,2BAA2B,EAC3B,gBAAgB,EAChB,yBAAyB,EACzB,0BAA0B,EAC1B,wBAAwB,EACxB,0BAA0B,EAC1B,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,6BAA6B,EAC7B,+BAA+B,EAC/B,+BAA+B,EAC/B,gCAAgC,GACjC,MAAM,oBAAoB,CAAC"}
|