Skip to content

Latest commit

 

History

History
52 lines (44 loc) · 3.04 KB

README.md

File metadata and controls

52 lines (44 loc) · 3.04 KB

Product-owned cloud implementation

These are ordinary private source modules, not an embedded SDK package. Node and the browser share them through the isomorphic client in src/client/; the runtime differences (auth UUID storage, file reads, fetch streams) are injected as a DeckRuntime from src/node/runtime.ts or browser.ts. This directory never imports node:*. There is no source synchronization, sibling checkout, shared client package or dependency on either the legacy tool SDK or DeckTools.

Provenance and migration baseline (2026-09-05)

  • Product baseline: 6092eaf12964dbfb08127e1e1a8d0a4e457d65cd.
  • Source: DeckFlow's former DeckOps TypeScript SDK at 4a5f70677d6cb7cd5e95ee6a89a88adf942687b0, sdks/typescript/src and sdks/typescript/tests/unit. Copyright remains with the original DeckFlow contributors; subsequent maintenance belongs to this product.
  • Previously installed SDK: @deckops/sdk@0.8.0-next.0.
  • Original lock SHA-256: eae4a3a7ca40aa17d4df15ccd5557ae03f026951bd71597e52f81bd6a24207d7.
  • Original browser-only patch SHA-256: ed4300570deb5e1d06f23da951c2d7bbe781dfc92fcfaafd019b9aadf47f107a. The original patch is recoverable from the product baseline commit.
  • Before migration: 107 passing tests; browser consumer 35,715 bytes gzip.

The old Node entry was not replaced by that browser patch. The selected source includes the browser changes: runtime-specific UUID/file access, abort propagation through upload/submission/wait/download and retry backoff, task-space tracking through refresh and parse/convert, early task notification, and an overall wait deadline that closes the stream. These are explicit Node deltas, covered by the migrated transport tests, not a claim of byte-identical Node code. Routing, IR references, thresholds, timeouts, retry delays and the Node guest / mutation-retry defaults remain unchanged. Browser continues to fail closed on authentication and disables mutation retries by default.

Scope

contracts.ts owns the transport DTOs and the task types the route table submits (OPS_TASK_TYPES). The transport assembles upload, create/get/wait/download/start and the /tools/capabilities lookup (capabilities.ts, cached per API root); download.ts fetches signed result URLs without credentials. Task waits fail with TaskFailedError or TaskTimeoutError, both carrying the task id. Uploads can be confirmed with the server (PUT /files/:id/status/uploaded) before document tasks use them. Routing and result shapes belong to src/ops/. Generation, translation and task list/delete stay deliberately absent.

Axios 1.19.0 and eventsource-parser 1.1.2 are direct dependencies matching the previous lock. This migration does not replace HTTP libraries. Strict optional property typing is adapted locally without relaxing the project's compiler.

tests/cloud owns request fixtures and regression tests. Changes to the backend protocol require local source/test updates; neither product builds against the other. Live cloud conformance is a separate credentialed check, not implied by passing mock tests.