@silvermoon-work/task-sdk 0.1.0-canary-261110-1 → 0.1.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/README.md CHANGED
@@ -1,23 +1,24 @@
1
1
  # @silvermoon-work/task-sdk
2
2
 
3
3
  Generation-scoped Node Task Worker runtime (`runTask`, `RunFailure`) and
4
- callback/context types. Its only runtime dependency is
5
- [@silvermoon-work/task-protocol](../task-protocol/README.md), using the
6
- lightweight `/worker` entry without Ajv or a CID parser.
4
+ callback/context types. It uses
5
+ [@silvermoon-work/task-protocol](../task-protocol/README.md)'s lightweight
6
+ `/worker` entry without Ajv, plus `multiformats/cid` for canonical Space identities.
7
7
 
8
8
  Migrated under the original MIT license from
9
9
  [potential-guide at 6614f46](https://github.com/shazhou-ww/potential-guide/tree/6614f46bf0f4152c61bd2c73d6c4b21ab4cf366f/packages/task-sdk).
10
- The runtime and public API are preserved; package imports now use the
10
+ The initial migration preserved the runtime and public API; package imports use the
11
11
  `@silvermoon-work` workspace. The initial `0.1.0-canary-261109-1` was published through
12
12
  [Trusted Publishing](https://github.com/silvermoon-work/task-engine/actions/runs/42588331015)
13
13
  with an exact dependency on protocol `0.1.0-canary-261109-2`.
14
- Select an explicit SDK version or the `canary` dist-tag; `latest` is still the
15
- `0.0.0` placeholder.
16
-
17
- The current source candidate is `0.1.0-canary-261110-1`, paired with protocol
18
- `0.1.0-canary-261110-1`. Publish these separately in dependency order only after
14
+ The current release candidate is `0.1.0`, paired with protocol
15
+ `0.1.0`, targeting `latest`. Publish these separately in dependency order only after
19
16
  the exact candidate receives approval; the manifest is not npm availability evidence.
20
17
 
18
+ The published `0.1.0-canary-261111-2` introduced the breaking Space context
19
+ contract; see the [release notes](../../README.md#space-context-canary-2026-11-11).
20
+ 0.1.0 retains that contract. Rebuild older canary Bundles for the new host protocol.
21
+
21
22
  Versions from `0.1.0-canary-261109-2` additionally restore `TaskContext.invokeTask`,
22
23
  `ChildTaskInvocation` author types and host-ACK child results, previously
23
24
  provided only by the old SDK in integration fixtures. These changes are not
@@ -28,14 +29,13 @@ in the initial canary above; use version 2 or later for child Tasks.
28
29
  Use the migrated workspace
29
30
  [task-builder CLI init](../task-builder-cli/README.md#init-composition)
30
31
  to create a private project, then build its module and CAR. Standalone `car`
31
- accepts `dist/task.yaml`; CAR inspection is a library operation, not a Builder
32
+ accepts `dist/<derived-package-name>/task.yaml`; CAR inspection is a library operation, not a Builder
32
33
  `check` command in the redesigned interface.
33
- Builder core version 2 and CLI version 1 generated the old SDK template;
34
- use core version 3 and CLI version 3 for the migrated default. Existing projects can
35
- explicitly select the SDK version with child invocation support:
34
+ Use the matching `0.1.0` Builder and CLI for Space-aware
35
+ templates. Existing projects can select the SDK explicitly:
36
36
 
37
37
  ```text
38
- pnpm add @silvermoon-work/task-sdk@0.1.0-canary-261109-2
38
+ pnpm add @silvermoon-work/task-sdk@0.1.0
39
39
  ```
40
40
 
41
41
  For the current workspace CLI:
@@ -61,15 +61,16 @@ configuration or `workerData`; calling the unbuilt SDK fails.
61
61
 
62
62
  ## Runtime contract
63
63
 
64
- The Engine validates business input/messages, checkpoints, completion and
64
+ The Engine validates business input/messages, completion and
65
65
  failure evidence, plus JSON shape, byte limits, progress and logs. The SDK
66
66
  forwards payloads without automatic business-schema validation. Authors may
67
67
  bundle their own validators. Custom hosts must implement the same validation
68
68
  and negative-ACK lifecycle, not acknowledge every frame.
69
69
 
70
70
  The SDK owns bounded queues, generation/Run routing, declaration equality,
71
- cancellation and resource streams. A rejected checkpoint remains a failed
72
- output even if the callback catches it. Rejected completion is reported as
71
+ cancellation and resource streams. Explicit per-operation cancellation can be
72
+ caught and followed by another write; it does not poison the Run. Other output
73
+ write failures fail the Run even if the callback catches them. Rejected completion is reported as
73
74
  failure; rejected `RunFailure` evidence is re-reported without that evidence.
74
75
  Release follows an acknowledged terminal fact; an unavailable terminal channel
75
76
  reports uncertainty. Cancellation keeps its stopping/release path.
@@ -80,7 +81,7 @@ within the parent Run; the host verifies the child's root against the parent
80
81
  DAG, enforces authorization and budgets, and owns admission and cleanup.
81
82
  Calls after finishing reject with `run_finished`; cancellation interrupts
82
83
  submission. Child invocations share the bounded request channel but do not
83
- occupy the sequential progress/checkpoint output queue.
84
+ occupy the sequential progress output queue.
84
85
 
85
86
  Node structured clone transports IPC. Non-cloneable payloads reject locally
86
87
  with `invalid_payload`; sendable non-JSON values are rejected by the host.
@@ -88,7 +89,7 @@ Failed sends do not consume message IDs or pending credits. Getters/custom
88
89
  objects may be normalized during cloning, so authors should send plain JSON.
89
90
  Receiver byte limits govern acceptance, not transport allocation.
90
91
 
91
- `context` provides `signal`, `messages`, `progress`, `checkpoint` and typed
92
+ `context` preserves `runId`, `startedAt`, `scope`, `signal`, `messages`, `progress`, and typed
92
93
  async `log` receipts. Diagnostics have a separately bounded channel and do not
93
94
  replace business outputs.
94
95
 
@@ -100,24 +101,58 @@ behavior. An already compiled Bundle does not acquire a new SDK automatically;
100
101
  producer-reported log loss remains explicit rather than becoming a successful
101
102
  complete log query. This source change is not evidence of an SDK release.
102
103
 
103
- `context.bundle.cid` is the readonly host-verified executing root. The host
104
- owns CID parsing, codec/hash and DAG checks; the SDK treats it as an opaque
105
- nonempty string of at most 256 characters and echoes it in the ready handshake.
106
- It is not task input or a self-referential compiled identity.
107
-
108
- `context.bundle.read(relativePath, { signal? })` returns a demand-driven
109
- `ReadableStream<Uint8Array>` with cancellation and explicit stream errors:
104
+ ### Spaces (breaking contract)
105
+
106
+ `context.bundle` is the immutable executing `ReadonlySpace`; `context.output`
107
+ is the Run's `ReadWriteSpace`. Both expose `sid` and `root`. Immutable Spaces
108
+ also expose `cid`. `context.space(canonicalCid)` synchronously creates another
109
+ immutable Space reference, not a network request. The SDK parses CIDs and
110
+ canonicalizes them to CIDv1 base32, so CIDv0/v1 aliases share the same SID.
111
+ The host validates canonical CID encoding, codecs, hashes, authorization and
112
+ DAGs when used.
113
+ There is no public constructor accepting arbitrary SIDs.
114
+
115
+ Static SIDs are `ipfs:<canonical-cid>`; the output SID is
116
+ `run:<runId>:output`. A `SpaceRef` exposes `space`, `path`,
117
+ `resolve(relativePath)` and `toJSON()` (`{sid,path}`). Root paths are `/`.
118
+ Resolution is synchronous and lexical: repeated separators and `.` normalize,
119
+ `..` cannot escape root, backslashes and NUL are rejected. Absolute `/…`
120
+ references resolve from the same Space root.
121
+
122
+ `await ref.read({signal?})` returns a discriminated `SpaceNode`: either
123
+ `{kind:"file",content:ReadableStream<Uint8Array>}` or
124
+ `{kind:"directory",entries:AsyncIterable<SpaceEntry>}`. Each entry has `name`, `kind` (`file` or
125
+ `directory`), and `ref`; follow that reference rather than rebuilding identity.
110
126
 
111
127
  ```ts
112
- const chunks: Uint8Array[] = [];
113
- for await (const chunk of context.bundle.read("resources/data.bin")) chunks.push(chunk);
114
- const bytes = Buffer.concat(chunks);
128
+ const file = await context.bundle.root.resolve("resources/data.bin").read();
129
+ if (file.kind !== "file") throw new Error("Expected a file");
130
+ await context.output.write("data.bin", file.content);
131
+ await context.output.link("original", context.bundle.root.resolve("resources"));
132
+ const snapshotCid = await context.output.getCid();
115
133
  ```
116
134
 
117
- Resources belong to the current immutable Bundle root. Absolute paths,
118
- traversal and absent files fail. Do not locate resources through `__dirname`,
119
- `import.meta.url` or cwd: Workers can execute verified CommonJS source in memory.
120
- Workers are lifecycle/isolation boundaries, not security sandboxes.
135
+ `write(path, content, {signal?})` accepts a byte stream; `link(path, ref,
136
+ {signal?})` links a Space reference. `getCid({signal?})` captures the current
137
+ immutable output snapshot without closing the writer. Completion waits for
138
+ outstanding writes/links and host finalization; failures cannot silently
139
+ become successful completion. The host attaches the final `outputCid` to the
140
+ completed Run outcome, not the callback's business result.
141
+
142
+ Native transferable streams provide backpressure, bounded transport chunks,
143
+ explicit stream errors and cancellation. A read's optional abort signal spans
144
+ both metadata lookup and the entire returned stream/iterator lifetime; cancel
145
+ a stream or break directory iteration to release it early. Run cancellation
146
+ aborts all operations. Request budgets are bounded.
147
+
148
+ `context.generation`, `context.checkpoint` and `context.bundle.read` are
149
+ removed. Rebuild existing Bundles: hosts explicitly require `spaceProtocol:1`
150
+ in the ready handshake and reject previously compiled SDK wrappers. The schema
151
+ identity itself is unchanged.
152
+
153
+ Do not locate resources through `__dirname`, `import.meta.url` or cwd: Workers
154
+ can execute verified CommonJS source in memory. Workers are lifecycle/isolation
155
+ boundaries, not security sandboxes.
121
156
 
122
157
  The preserved wire contract is documented in the source's
123
158
  [Task Worker specification](https://github.com/shazhou-ww/potential-guide/blob/6614f46bf0f4152c61bd2c73d6c4b21ab4cf366f/docs/task-bundle-worker.md)
package/dist/index.d.ts CHANGED
@@ -1,15 +1,9 @@
1
1
  import { type ChildTaskInvocation, type Json, type RunContext } from "@silvermoon-work/task-protocol/worker";
2
2
  export interface TaskContext<Message extends Json = never> extends RunContext<Message> {
3
3
  invokeTask(request: ChildTaskInvocation): Promise<Json>;
4
- readonly bundle: {
5
- readonly cid: string;
6
- read(path: string, options?: {
7
- signal?: AbortSignal;
8
- }): ReadableStream<Uint8Array>;
9
- };
10
4
  }
11
5
  export type TaskCallback<Input = Json, Result = Json, Message extends Json = never> = (input: Input, context: TaskContext<Message>) => Promise<Result>;
12
- export type { ChildTaskInvocation, RunContext, RunLogInput, RunLogReceipt, RunMessage, RunProgress, } from "@silvermoon-work/task-protocol/worker";
6
+ export type { BaseSpace, ChildTaskInvocation, ReadonlySpace, ReadWriteSpace, RunContext, RunLogInput, RunLogReceipt, RunMessage, RunProgress, SpaceEntry, SpaceNode, SpaceOptions, SpaceRef, SpaceRefJSON, } from "@silvermoon-work/task-protocol/worker";
13
7
  export { RunFailure } from "@silvermoon-work/task-protocol/worker";
14
8
  /** Authors explicitly select this wrapper; the builder binds contracts, not startup. */
15
9
  export declare function runTask<Input = Json, Result = Json, Message extends Json = never>(callback: TaskCallback<Input, Result, Message>): void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,IAAI,EAGT,KAAK,UAAU,EAQhB,MAAM,uCAAuC,CAAC;AAG/C,MAAM,WAAW,WAAW,CAAC,OAAO,SAAS,IAAI,GAAG,KAAK,CAAE,SAAQ,UAAU,CAAC,OAAO,CAAC;IACpF,UAAU,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,WAAW,CAAA;SAAE,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;KACpF,CAAC;CACH;AACD,MAAM,MAAM,YAAY,CAAC,KAAK,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,SAAS,IAAI,GAAG,KAAK,IAAI,CACpF,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,KAC1B,OAAO,CAAC,MAAM,CAAC,CAAC;AACrB,YAAY,EACV,mBAAmB,EACnB,UAAU,EACV,WAAW,EACX,aAAa,EACb,UAAU,EACV,WAAW,GACZ,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AAoCnE,wFAAwF;AACxF,wBAAgB,OAAO,CAAC,KAAK,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,SAAS,IAAI,GAAG,KAAK,EAC/E,QAAQ,EAAE,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,GAC7C,IAAI,CAyeN"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,mBAAmB,EAExB,KAAK,IAAI,EAGT,KAAK,UAAU,EAQhB,MAAM,uCAAuC,CAAC;AAI/C,MAAM,WAAW,WAAW,CAAC,OAAO,SAAS,IAAI,GAAG,KAAK,CAAE,SAAQ,UAAU,CAAC,OAAO,CAAC;IACpF,UAAU,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD;AACD,MAAM,MAAM,YAAY,CAAC,KAAK,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,SAAS,IAAI,GAAG,KAAK,IAAI,CACpF,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,KAC1B,OAAO,CAAC,MAAM,CAAC,CAAC;AACrB,YAAY,EACV,SAAS,EACT,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,UAAU,EACV,WAAW,EACX,aAAa,EACb,UAAU,EACV,WAAW,EACX,UAAU,EACV,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,YAAY,GACb,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AAoCnE,wFAAwF;AACxF,wBAAgB,OAAO,CAAC,KAAK,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,SAAS,IAAI,GAAG,KAAK,EAC/E,QAAQ,EAAE,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,GAC7C,IAAI,CAicN"}
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { parentPort, workerData } from "node:worker_threads";
2
2
  import { canonical, json, RunFailure, TaskError, taskSchemaUri, } from "@silvermoon-work/task-protocol/worker";
3
3
  import { binding } from "./binding.js";
4
+ import { createSpaces } from "./spaces.js";
4
5
  export { RunFailure } from "@silvermoon-work/task-protocol/worker";
5
6
  class Inbox {
6
7
  capacity;
@@ -77,70 +78,7 @@ export function runTask(callback) {
77
78
  let cleanupUncertain = false;
78
79
  let output = Promise.resolve();
79
80
  let outputError;
80
- let readSequence = 0;
81
- const reads = new Map();
82
- function readBundle(path, options = {}) {
83
- const id = ++readSequence;
84
- const signal = options.signal
85
- ? AbortSignal.any([controller.signal, options.signal])
86
- : controller.signal;
87
- let cleanup = () => { };
88
- const cancel = () => {
89
- cleanup();
90
- reads.get(id)?.reject(new DOMException("Bundle read canceled.", "AbortError"));
91
- reads.delete(id);
92
- port.postMessage({
93
- generation: config.generation,
94
- runId,
95
- kind: "bundle-cancel",
96
- readId: id,
97
- });
98
- };
99
- return new ReadableStream({
100
- start(stream) {
101
- const abort = () => {
102
- cancel();
103
- stream.error(signal.reason);
104
- };
105
- cleanup = () => signal.removeEventListener("abort", abort);
106
- if (signal.aborted) {
107
- stream.error(signal.reason);
108
- return;
109
- }
110
- signal.addEventListener("abort", abort, { once: true });
111
- },
112
- async pull(stream) {
113
- try {
114
- if (finishing)
115
- throw new TaskError("run_finished", "Bundle stream is closed.");
116
- signal.throwIfAborted();
117
- const item = await new Promise((resolve, reject) => {
118
- reads.set(id, { resolve, reject });
119
- port.postMessage({
120
- generation: config.generation,
121
- runId,
122
- kind: "bundle-pull",
123
- readId: id,
124
- path,
125
- });
126
- });
127
- if (item.done) {
128
- cleanup();
129
- stream.close();
130
- }
131
- else if (item.chunk instanceof Uint8Array)
132
- stream.enqueue(item.chunk);
133
- else
134
- throw new TaskError("invalid_bundle", "Invalid Bundle stream chunk.");
135
- }
136
- catch (error) {
137
- cancel();
138
- stream.error(error);
139
- }
140
- },
141
- cancel,
142
- }, { highWaterMark: 0 });
143
- }
81
+ let spaces;
144
82
  let logSequence = 0;
145
83
  const logPending = new Map();
146
84
  let droppedLogs = 0;
@@ -315,6 +253,7 @@ export function runTask(callback) {
315
253
  kind: "ready",
316
254
  value: {
317
255
  $schema: declaration.$schema,
256
+ spaceProtocol: 1,
318
257
  cid: config.bundle.cid,
319
258
  inputSchema: declaration.inputSchema,
320
259
  resultSchema: declaration.resultSchema,
@@ -324,15 +263,10 @@ export function runTask(callback) {
324
263
  port.on("message", (envelope) => {
325
264
  if (!envelope || envelope.generation !== config.generation)
326
265
  return;
327
- if (envelope.kind === "bundle-data") {
328
- const read = reads.get(envelope.readId);
329
- if (!read)
266
+ if (envelope.kind === "space-result") {
267
+ if (envelope.runId !== runId)
330
268
  return;
331
- reads.delete(envelope.readId);
332
- if (envelope.error)
333
- read.reject(new TaskError(envelope.error.code, envelope.error.message));
334
- else
335
- read.resolve(envelope);
269
+ spaces?.receive(envelope.spaceId, envelope.value, envelope.error ? new TaskError(envelope.error.code, envelope.error.message) : undefined);
336
270
  return;
337
271
  }
338
272
  if (envelope.kind === "log-drop-ack") {
@@ -427,17 +361,37 @@ export function runTask(callback) {
427
361
  if (envelope.kind !== "run" || runId !== undefined)
428
362
  return;
429
363
  runId = envelope.runId;
364
+ spaces = createSpaces({
365
+ runId: envelope.runId,
366
+ cid: config.bundle.cid,
367
+ signal: controller.signal,
368
+ maxInFlight: config.maxInFlight,
369
+ maxChunk: Math.max(1, Math.min(config.maxPayloadBytes, 65_536)),
370
+ send: (request) => port.postMessage({
371
+ generation: config.generation,
372
+ runId,
373
+ kind: "space-request",
374
+ ...request,
375
+ }, request.content
376
+ ? [request.content]
377
+ : []),
378
+ cancel: (spaceId) => port.postMessage({
379
+ generation: config.generation,
380
+ runId,
381
+ kind: "space-cancel",
382
+ spaceId,
383
+ }),
384
+ });
430
385
  const context = Object.freeze({
431
386
  runId: envelope.runId,
432
- ...(envelope.identity
433
- ? { generation: envelope.identity.generation, startedAt: envelope.identity.startedAt }
434
- : {}),
387
+ ...(envelope.identity ? { startedAt: envelope.identity.startedAt } : {}),
435
388
  scope: envelope.scope,
436
389
  signal: controller.signal,
437
390
  messages: inbox,
438
- bundle: Object.freeze({ cid: config.bundle.cid, read: readBundle }),
391
+ bundle: spaces.bundle,
392
+ output: spaces.output,
393
+ space: spaces.space,
439
394
  progress: (value) => enqueue("progress", value),
440
- checkpoint: (value) => enqueue("checkpoint", value),
441
395
  log,
442
396
  invokeTask: (value) => {
443
397
  if (finishing)
@@ -469,6 +423,7 @@ export function runTask(callback) {
469
423
  void (async () => {
470
424
  try {
471
425
  const value = await callback(envelope.input, context);
426
+ await spaces.drain();
472
427
  if (config.durableLogs)
473
428
  await durableLogOutput;
474
429
  finishing = true;
@@ -479,6 +434,7 @@ export function runTask(callback) {
479
434
  await request("complete", value);
480
435
  }
481
436
  catch (caught) {
437
+ await spaces.drain().catch(() => { });
482
438
  if (config.durableLogs)
483
439
  await durableLogOutput.catch(() => { });
484
440
  finishing = true;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { type ReadonlySpace, type ReadWriteSpace, type SpaceHostNode, type SpaceRefJSON } from "@silvermoon-work/task-protocol/worker";
2
+ export type SpaceRequest = {
3
+ spaceId: number;
4
+ operation: "read" | "write" | "link" | "getCid";
5
+ ref?: SpaceRefJSON;
6
+ path?: string;
7
+ content?: ReadableStream<Uint8Array>;
8
+ };
9
+ /** Split without eagerly draining the source or retaining a second unbounded queue. */
10
+ export declare function boundedBytes(source: ReadableStream<Uint8Array>, signal: AbortSignal, maxChunk: number, done?: () => void): ReadableStream<Uint8Array>;
11
+ export declare function createSpaces(config: {
12
+ runId: string;
13
+ cid: string;
14
+ signal: AbortSignal;
15
+ maxInFlight: number;
16
+ maxChunk: number;
17
+ send(request: SpaceRequest): void;
18
+ cancel(spaceId: number): void;
19
+ }): {
20
+ bundle: ReadonlySpace;
21
+ output: ReadWriteSpace;
22
+ space: (cid: string) => ReadonlySpace;
23
+ drain(): Promise<void>;
24
+ receive(spaceId: number, value: SpaceHostNode | string | void, error?: Error): void;
25
+ };
26
+ //# sourceMappingURL=spaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spaces.d.ts","sourceRoot":"","sources":["../src/spaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,cAAc,EAGnB,KAAK,aAAa,EAIlB,KAAK,YAAY,EAElB,MAAM,uCAAuC,CAAC;AAG/C,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IAChD,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;CACtC,CAAC;AAEF,uFAAuF;AACvF,wBAAgB,YAAY,CAC1B,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,EAClC,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,MAAM,IAAe,GAC1B,cAAc,CAAC,UAAU,CAAC,CAsD5B;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;;;iBAyFqB,MAAM,KAAG,aAAa;;qBAoFvB,MAAM,SAAS,aAAa,GAAG,MAAM,GAAG,IAAI,UAAU,KAAK;EAoE/E"}
package/dist/spaces.js ADDED
@@ -0,0 +1,303 @@
1
+ import { normalizeSpacePath, TaskError, } from "@silvermoon-work/task-protocol/worker";
2
+ import { CID } from "multiformats/cid";
3
+ /** Split without eagerly draining the source or retaining a second unbounded queue. */
4
+ export function boundedBytes(source, signal, maxChunk, done = () => { }) {
5
+ const reader = source.getReader();
6
+ let chunk;
7
+ let offset = 0;
8
+ let closed = false;
9
+ let abort;
10
+ const finish = () => {
11
+ if (closed)
12
+ return;
13
+ closed = true;
14
+ signal.removeEventListener("abort", abort);
15
+ done();
16
+ };
17
+ return new ReadableStream({
18
+ start(controller) {
19
+ abort = () => {
20
+ finish();
21
+ void reader.cancel(signal.reason).catch(() => { });
22
+ controller.error(signal.reason);
23
+ };
24
+ if (signal.aborted)
25
+ abort();
26
+ else
27
+ signal.addEventListener("abort", abort, { once: true });
28
+ },
29
+ async pull(controller) {
30
+ try {
31
+ signal.throwIfAborted();
32
+ while (!chunk || offset === chunk.byteLength) {
33
+ const item = await reader.read();
34
+ if (item.done) {
35
+ finish();
36
+ controller.close();
37
+ return;
38
+ }
39
+ if (!(item.value instanceof Uint8Array))
40
+ throw new TaskError("invalid_space", "File stream must contain bytes.");
41
+ chunk = item.value;
42
+ offset = 0;
43
+ }
44
+ const end = Math.min(chunk.byteLength, offset + maxChunk);
45
+ controller.enqueue(chunk.slice(offset, end));
46
+ offset = end;
47
+ }
48
+ catch (error) {
49
+ finish();
50
+ void reader.cancel(error).catch(() => { });
51
+ controller.error(error);
52
+ }
53
+ },
54
+ async cancel(reason) {
55
+ finish();
56
+ await reader.cancel(reason);
57
+ },
58
+ }, { highWaterMark: 0 });
59
+ }
60
+ export function createSpaces(config) {
61
+ const pending = new Map();
62
+ const mutations = new Set();
63
+ let mutationError;
64
+ let sequence = 0;
65
+ let finishing = false;
66
+ const spaces = new Map();
67
+ const refs = new WeakSet();
68
+ function request(value, options = {}) {
69
+ if (finishing)
70
+ return Promise.reject(new TaskError("run_finished", "Task is finishing."));
71
+ if (pending.size >= config.maxInFlight)
72
+ return Promise.reject(new TaskError("space_capacity", "Space request capacity exceeded."));
73
+ const signal = options.signal
74
+ ? AbortSignal.any([config.signal, options.signal])
75
+ : config.signal;
76
+ if (signal.aborted)
77
+ return Promise.reject(signal.reason);
78
+ const spaceId = ++sequence;
79
+ return new Promise((resolve, reject) => {
80
+ const abort = () => {
81
+ pending.delete(spaceId);
82
+ config.cancel(spaceId);
83
+ reject(signal.reason);
84
+ };
85
+ const cleanup = () => signal.removeEventListener("abort", abort);
86
+ signal.addEventListener("abort", abort, { once: true });
87
+ pending.set(spaceId, { resolve, reject, cleanup, signal });
88
+ try {
89
+ config.send({ ...value, spaceId });
90
+ }
91
+ catch (error) {
92
+ cleanup();
93
+ pending.delete(spaceId);
94
+ if (value.content && !value.content.locked)
95
+ void value.content.cancel(error).catch(() => { });
96
+ reject(error);
97
+ }
98
+ });
99
+ }
100
+ function reference(space, path) {
101
+ const ref = Object.freeze({
102
+ space,
103
+ path,
104
+ resolve: (relativePath) => reference(space, normalizeSpacePath(relativePath, path)),
105
+ toJSON: () => ({ sid: space.sid, path }),
106
+ async read(options) {
107
+ const result = await request({ operation: "read", ref: { sid: space.sid, path } }, options);
108
+ if (!result || typeof result === "string")
109
+ throw new TaskError("invalid_space", "Invalid Space read result.");
110
+ if (result.kind === "file")
111
+ return Object.freeze(result);
112
+ const entries = result.entries;
113
+ return Object.freeze({
114
+ kind: "directory",
115
+ entries: {
116
+ async *[Symbol.asyncIterator]() {
117
+ const reader = entries.getReader();
118
+ try {
119
+ while (true) {
120
+ const item = await reader.read();
121
+ if (item.done)
122
+ return;
123
+ const data = item.value;
124
+ const owner = ownerOf(data.ref.sid);
125
+ yield Object.freeze({
126
+ name: data.name,
127
+ kind: data.kind,
128
+ ref: reference(owner, normalizeSpacePath(data.ref.path)),
129
+ });
130
+ }
131
+ }
132
+ finally {
133
+ await reader.cancel();
134
+ reader.releaseLock();
135
+ }
136
+ },
137
+ },
138
+ });
139
+ },
140
+ });
141
+ refs.add(ref);
142
+ return ref;
143
+ }
144
+ function space(cid) {
145
+ if (typeof cid !== "string" || cid.length > 256)
146
+ throw new TaskError("invalid_cid", "Expected a canonical CID.");
147
+ try {
148
+ cid = CID.parse(cid).toV1().toString();
149
+ }
150
+ catch {
151
+ throw new TaskError("invalid_cid", "Expected a valid CID.");
152
+ }
153
+ const sid = `ipfs:${cid}`;
154
+ let value = spaces.get(sid);
155
+ if (!value) {
156
+ value = {
157
+ sid,
158
+ cid,
159
+ get root() {
160
+ return reference(value, "/");
161
+ },
162
+ };
163
+ Object.freeze(value);
164
+ spaces.set(sid, value);
165
+ }
166
+ return value;
167
+ }
168
+ function ownerOf(sid) {
169
+ if (sid === output.sid)
170
+ return output;
171
+ if (sid.startsWith("ipfs:"))
172
+ return space(sid.slice(5));
173
+ throw new TaskError("invalid_space", "Host returned an unknown Space identity.");
174
+ }
175
+ function mutate(operation, options) {
176
+ if (finishing)
177
+ return Promise.reject(new TaskError("run_finished", "Task is finishing."));
178
+ const promise = new Promise((resolve) => resolve(operation())).then(() => { });
179
+ mutations.add(promise);
180
+ void promise
181
+ .catch((error) => {
182
+ if (!options?.signal?.aborted || error !== options.signal.reason)
183
+ mutationError ??= error;
184
+ })
185
+ .finally(() => mutations.delete(promise));
186
+ return promise;
187
+ }
188
+ const output = Object.freeze({
189
+ sid: `run:${config.runId}:output`,
190
+ get root() {
191
+ return reference(output, "/");
192
+ },
193
+ async getCid(options) {
194
+ const value = await request({ operation: "getCid" }, options);
195
+ if (typeof value !== "string")
196
+ throw new TaskError("invalid_space", "Invalid Space CID.");
197
+ return value;
198
+ },
199
+ write(path, content, options) {
200
+ return mutate(() => {
201
+ const signal = options?.signal
202
+ ? AbortSignal.any([config.signal, options.signal])
203
+ : config.signal;
204
+ signal.throwIfAborted();
205
+ return request({
206
+ operation: "write",
207
+ path: normalizeSpacePath(path),
208
+ content: boundedBytes(content, signal, config.maxChunk),
209
+ }, options);
210
+ }, options);
211
+ },
212
+ link(path, ref, options) {
213
+ return mutate(() => {
214
+ if (!refs.has(ref))
215
+ throw new TaskError("invalid_space", "Expected a Space reference.");
216
+ return request({ operation: "link", path: normalizeSpacePath(path), ref: ref.toJSON() }, options);
217
+ }, options);
218
+ },
219
+ });
220
+ return {
221
+ bundle: space(config.cid),
222
+ output,
223
+ space,
224
+ async drain() {
225
+ while (mutations.size)
226
+ await Promise.allSettled([...mutations]);
227
+ finishing = true;
228
+ if (mutationError !== undefined)
229
+ throw mutationError;
230
+ },
231
+ receive(spaceId, value, error) {
232
+ const operation = pending.get(spaceId);
233
+ if (!operation) {
234
+ if (value && typeof value !== "string") {
235
+ const stream = value.kind === "file" ? value.content : value.entries;
236
+ void stream.cancel().catch(() => { });
237
+ }
238
+ return;
239
+ }
240
+ pending.delete(spaceId);
241
+ operation.cleanup();
242
+ if (error) {
243
+ operation.reject(error);
244
+ return;
245
+ }
246
+ if (value && typeof value !== "string") {
247
+ const signal = operation.signal;
248
+ const cancel = () => config.cancel(spaceId);
249
+ if (value.kind === "file") {
250
+ value = {
251
+ kind: "file",
252
+ content: boundedBytes(value.content, signal, config.maxChunk, cancel),
253
+ };
254
+ }
255
+ else {
256
+ const reader = value.entries.getReader();
257
+ let abort;
258
+ const finish = () => {
259
+ signal.removeEventListener("abort", abort);
260
+ cancel();
261
+ };
262
+ value = {
263
+ kind: "directory",
264
+ entries: new ReadableStream({
265
+ start(controller) {
266
+ abort = () => {
267
+ finish();
268
+ void reader.cancel(signal.reason).catch(() => { });
269
+ controller.error(signal.reason);
270
+ };
271
+ if (signal.aborted)
272
+ abort();
273
+ else
274
+ signal.addEventListener("abort", abort, { once: true });
275
+ },
276
+ async pull(controller) {
277
+ try {
278
+ const item = await reader.read();
279
+ if (item.done) {
280
+ finish();
281
+ controller.close();
282
+ }
283
+ else
284
+ controller.enqueue(item.value);
285
+ }
286
+ catch (error) {
287
+ finish();
288
+ controller.error(error);
289
+ }
290
+ },
291
+ async cancel(reason) {
292
+ finish();
293
+ await reader.cancel(reason);
294
+ },
295
+ }, { highWaterMark: 0 }),
296
+ };
297
+ }
298
+ }
299
+ operation.resolve(value);
300
+ },
301
+ };
302
+ }
303
+ //# sourceMappingURL=spaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spaces.js","sourceRoot":"","sources":["../src/spaces.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAUlB,SAAS,GACV,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAUvC,uFAAuF;AACvF,MAAM,UAAU,YAAY,CAC1B,MAAkC,EAClC,MAAmB,EACnB,QAAgB,EAChB,OAAmB,GAAG,EAAE,GAAE,CAAC;IAE3B,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;IAClC,IAAI,KAA6B,CAAC;IAClC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,KAAiB,CAAC;IACtB,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,IAAI,MAAM;YAAE,OAAO;QACnB,MAAM,GAAG,IAAI,CAAC;QACd,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC3C,IAAI,EAAE,CAAC;IACT,CAAC,CAAC;IACF,OAAO,IAAI,cAAc,CACvB;QACE,KAAK,CAAC,UAAU;YACd,KAAK,GAAG,GAAG,EAAE;gBACX,MAAM,EAAE,CAAC;gBACT,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBAClD,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAClC,CAAC,CAAC;YACF,IAAI,MAAM,CAAC,OAAO;gBAAE,KAAK,EAAE,CAAC;;gBACvB,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,UAAU;YACnB,IAAI,CAAC;gBACH,MAAM,CAAC,cAAc,EAAE,CAAC;gBACxB,OAAO,CAAC,KAAK,IAAI,MAAM,KAAK,KAAK,CAAC,UAAU,EAAE,CAAC;oBAC7C,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;oBACjC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;wBACd,MAAM,EAAE,CAAC;wBACT,UAAU,CAAC,KAAK,EAAE,CAAC;wBACnB,OAAO;oBACT,CAAC;oBACD,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,YAAY,UAAU,CAAC;wBACrC,MAAM,IAAI,SAAS,CAAC,eAAe,EAAE,iCAAiC,CAAC,CAAC;oBAC1E,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;oBACnB,MAAM,GAAG,CAAC,CAAC;gBACb,CAAC;gBACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC;gBAC1D,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC7C,MAAM,GAAG,GAAG,CAAC;YACf,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,EAAE,CAAC;gBACT,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBAC1C,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,MAAM;YACjB,MAAM,EAAE,CAAC;YACT,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;KACF,EACD,EAAE,aAAa,EAAE,CAAC,EAAE,CACrB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAQ5B;IACC,MAAM,OAAO,GAAG,IAAI,GAAG,EAQpB,CAAC;IACJ,MAAM,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC9C,IAAI,aAAsB,CAAC;IAC3B,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAyB,CAAC;IAChD,MAAM,IAAI,GAAG,IAAI,OAAO,EAAU,CAAC;IACnC,SAAS,OAAO,CACd,KAAoC,EACpC,UAAwB,EAAE;QAE1B,IAAI,SAAS;YAAE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC,CAAC;QAC1F,IAAI,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,WAAW;YACpC,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,gBAAgB,EAAE,kCAAkC,CAAC,CAAC,CAAC;QAC7F,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM;YAC3B,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAClD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;QAClB,IAAI,MAAM,CAAC,OAAO;YAAE,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzD,MAAM,OAAO,GAAG,EAAE,QAAQ,CAAC;QAC3B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,KAAK,GAAG,GAAG,EAAE;gBACjB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACxB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACvB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACxB,CAAC,CAAC;YACF,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACjE,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACxD,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YAC3D,IAAI,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YACrC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,EAAE,CAAC;gBACV,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACxB,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM;oBACxC,KAAK,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBACnD,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,SAAS,SAAS,CAAC,KAAqC,EAAE,IAAY;QACpE,MAAM,GAAG,GAAa,MAAM,CAAC,MAAM,CAAC;YAClC,KAAK;YACL,IAAI;YACJ,OAAO,EAAE,CAAC,YAAoB,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,kBAAkB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YAC3F,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;YACxC,KAAK,CAAC,IAAI,CAAC,OAAsB;gBAC/B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;gBAC5F,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;oBACvC,MAAM,IAAI,SAAS,CAAC,eAAe,EAAE,4BAA4B,CAAC,CAAC;gBACrE,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM;oBAAE,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACzD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;gBAC/B,OAAO,MAAM,CAAC,MAAM,CAAC;oBACnB,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE;wBACP,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;4BAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;4BACnC,IAAI,CAAC;gCACH,OAAO,IAAI,EAAE,CAAC;oCACZ,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;oCACjC,IAAI,IAAI,CAAC,IAAI;wCAAE,OAAO;oCACtB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;oCACxB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oCACpC,MAAM,MAAM,CAAC,MAAM,CAAC;wCAClB,IAAI,EAAE,IAAI,CAAC,IAAI;wCACf,IAAI,EAAE,IAAI,CAAC,IAAI;wCACf,GAAG,EAAE,SAAS,CAAC,KAAK,EAAE,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;qCACzD,CAAC,CAAC;gCACL,CAAC;4BACH,CAAC;oCAAS,CAAC;gCACT,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;gCACtB,MAAM,CAAC,WAAW,EAAE,CAAC;4BACvB,CAAC;wBACH,CAAC;qBACF;iBACF,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,GAAG,CAAC;IACb,CAAC;IACD,SAAS,KAAK,CAAC,GAAW;QACxB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG;YAC7C,MAAM,IAAI,SAAS,CAAC,aAAa,EAAE,2BAA2B,CAAC,CAAC;QAClE,IAAI,CAAC;YACH,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,SAAS,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,GAAG,GAAG,QAAQ,GAAG,EAAE,CAAC;QAC1B,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG;gBACN,GAAG;gBACH,GAAG;gBACH,IAAI,IAAI;oBACN,OAAO,SAAS,CAAC,KAAM,EAAE,GAAG,CAAC,CAAC;gBAChC,CAAC;aACF,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACrB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,SAAS,OAAO,CAAC,GAAW;QAC1B,IAAI,GAAG,KAAK,MAAM,CAAC,GAAG;YAAE,OAAO,MAAM,CAAC;QACtC,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,MAAM,IAAI,SAAS,CAAC,eAAe,EAAE,0CAA0C,CAAC,CAAC;IACnF,CAAC;IACD,SAAS,MAAM,CAAC,SAAiC,EAAE,OAAsB;QACvE,IAAI,SAAS;YAAE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC,CAAC;QAC1F,MAAM,OAAO,GAAG,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACvF,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvB,KAAK,OAAO;aACT,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACxB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,KAAK,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM;gBAAE,aAAa,KAAK,KAAK,CAAC;QAC5F,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5C,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,MAAM,GAAmB,MAAM,CAAC,MAAM,CAAC;QAC3C,GAAG,EAAE,OAAO,MAAM,CAAC,KAAK,SAAS;QACjC,IAAI,IAAI;YACN,OAAO,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,OAAsB;YACjC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;YAC9D,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,MAAM,IAAI,SAAS,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC;YAC1F,OAAO,KAAK,CAAC;QACf,CAAC;QACD,KAAK,CAAC,IAAY,EAAE,OAAmC,EAAE,OAAsB;YAC7E,OAAO,MAAM,CAAC,GAAG,EAAE;gBACjB,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM;oBAC5B,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;oBAClD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;gBAClB,MAAM,CAAC,cAAc,EAAE,CAAC;gBACxB,OAAO,OAAO,CACZ;oBACE,SAAS,EAAE,OAAO;oBAClB,IAAI,EAAE,kBAAkB,CAAC,IAAI,CAAC;oBAC9B,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC;iBACxD,EACD,OAAO,CACR,CAAC;YACJ,CAAC,EAAE,OAAO,CAAC,CAAC;QACd,CAAC;QACD,IAAI,CAAC,IAAY,EAAE,GAAa,EAAE,OAAsB;YACtD,OAAO,MAAM,CAAC,GAAG,EAAE;gBACjB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;oBAAE,MAAM,IAAI,SAAS,CAAC,eAAe,EAAE,6BAA6B,CAAC,CAAC;gBACxF,OAAO,OAAO,CACZ,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,EACxE,OAAO,CACR,CAAC;YACJ,CAAC,EAAE,OAAO,CAAC,CAAC;QACd,CAAC;KACF,CAAC,CAAC;IACH,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;QACzB,MAAM;QACN,KAAK;QACL,KAAK,CAAC,KAAK;YACT,OAAO,SAAS,CAAC,IAAI;gBAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;YAChE,SAAS,GAAG,IAAI,CAAC;YACjB,IAAI,aAAa,KAAK,SAAS;gBAAE,MAAM,aAAa,CAAC;QACvD,CAAC;QACD,OAAO,CAAC,OAAe,EAAE,KAAoC,EAAE,KAAa;YAC1E,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACvC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBACvC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;oBACrE,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBACvC,CAAC;gBACD,OAAO;YACT,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACxB,SAAS,CAAC,OAAO,EAAE,CAAC;YACpB,IAAI,KAAK,EAAE,CAAC;gBACV,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACxB,OAAO;YACT,CAAC;YACD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACvC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;gBAChC,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC5C,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC1B,KAAK,GAAG;wBACN,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC;qBACtE,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;oBACzC,IAAI,KAAiB,CAAC;oBACtB,MAAM,MAAM,GAAG,GAAG,EAAE;wBAClB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;wBAC3C,MAAM,EAAE,CAAC;oBACX,CAAC,CAAC;oBACF,KAAK,GAAG;wBACN,IAAI,EAAE,WAAW;wBACjB,OAAO,EAAE,IAAI,cAAc,CACzB;4BACE,KAAK,CAAC,UAAU;gCACd,KAAK,GAAG,GAAG,EAAE;oCACX,MAAM,EAAE,CAAC;oCACT,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;oCAClD,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gCAClC,CAAC,CAAC;gCACF,IAAI,MAAM,CAAC,OAAO;oCAAE,KAAK,EAAE,CAAC;;oCACvB,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;4BAC/D,CAAC;4BACD,KAAK,CAAC,IAAI,CAAC,UAAU;gCACnB,IAAI,CAAC;oCACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;oCACjC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;wCACd,MAAM,EAAE,CAAC;wCACT,UAAU,CAAC,KAAK,EAAE,CAAC;oCACrB,CAAC;;wCAAM,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gCACxC,CAAC;gCAAC,OAAO,KAAK,EAAE,CAAC;oCACf,MAAM,EAAE,CAAC;oCACT,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gCAC1B,CAAC;4BACH,CAAC;4BACD,KAAK,CAAC,MAAM,CAAC,MAAM;gCACjB,MAAM,EAAE,CAAC;gCACT,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;4BAC9B,CAAC;yBACF,EACD,EAAE,aAAa,EAAE,CAAC,EAAE,CACrB;qBACF,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;KACF,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@silvermoon-work/task-sdk",
3
- "version": "0.1.0-canary-261110-1",
3
+ "version": "0.1.0",
4
4
  "description": "Generation-scoped Task Worker runtime and author callback types.",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -21,7 +21,8 @@
21
21
  "node": ">=22.13.0"
22
22
  },
23
23
  "dependencies": {
24
- "@silvermoon-work/task-protocol": "0.1.0-canary-261110-1"
24
+ "multiformats": "14.0.5",
25
+ "@silvermoon-work/task-protocol": "0.1.0"
25
26
  },
26
27
  "publishConfig": {
27
28
  "access": "public"