stitchkit 0.106.0 → 0.107.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 +65 -0
- package/darwin-native.cjs +16 -4
- package/dist/agent-runtime/deferred-tool-types.d.ts +6 -27
- package/dist/agent-runtime/deferred-tool-types.d.ts.map +1 -1
- package/dist/entrypoints/agent-runtime/browser.js +2 -3
- package/dist/entrypoints/agent-runtime/coding-tools.js +6 -8
- package/dist/entrypoints/agent-runtime/harness.js +7 -11
- package/dist/entrypoints/agent-runtime/realtime.js +2 -3
- package/dist/entrypoints/agent-runtime/sandbox.js +6 -8
- package/dist/entrypoints/agent-runtime.d.ts +2 -1
- package/dist/entrypoints/agent-runtime.d.ts.map +1 -1
- package/dist/entrypoints/agent-runtime.js +20 -23
- package/dist/entrypoints/application/diagnostic-journal.js +3 -3
- package/dist/entrypoints/application/directory-inbox.js +8 -9
- package/dist/entrypoints/application/grammy.js +3 -3
- package/dist/entrypoints/application.js +7 -8
- package/dist/entrypoints/cli/publish.js +10 -11
- package/dist/entrypoints/cli.js +12 -16
- package/dist/entrypoints/contract.js +1 -1
- package/dist/entrypoints/files/packaging.d.ts +1 -1
- package/dist/entrypoints/files/packaging.d.ts.map +1 -1
- package/dist/entrypoints/files/packaging.js +99 -47
- package/dist/entrypoints/files.js +16 -16
- package/dist/entrypoints/index.js +41 -41
- package/dist/entrypoints/node.js +27 -29
- package/dist/entrypoints/observability.js +10 -12
- package/dist/entrypoints/process.js +2 -2
- package/dist/entrypoints/react.js +3 -4
- package/dist/entrypoints/remote.js +8 -9
- package/dist/entrypoints/server.js +48 -51
- package/dist/entrypoints/telegram/html.js +3 -3
- package/dist/entrypoints/telegram/screens.js +5 -5
- package/dist/entrypoints/telegram.js +9 -10
- package/dist/entrypoints/testing.js +8 -11
- package/dist/entrypoints/tools/connections.js +11 -11
- package/dist/entrypoints/tools/invoker.js +5 -9
- package/dist/entrypoints/tools/mcp.js +8 -14
- package/dist/entrypoints/tools.js +19 -25
- package/dist/entrypoints/tracking.js +3 -3
- package/dist/files/native-packaging-layout.d.ts +6 -2
- package/dist/files/native-packaging-layout.d.ts.map +1 -1
- package/dist/files/native-packaging.d.ts +45 -10
- package/dist/files/native-packaging.d.ts.map +1 -1
- package/dist/{index-v5ee8ath.js → index-1h2zv8rx.js} +10 -40
- package/dist/index-2kbysk9s.js +42 -0
- package/dist/{index-wbhdzxar.js → index-2s6fpehp.js} +5 -5
- package/dist/{index-4vsby8n8.js → index-4f37d3bg.js} +1 -1
- package/dist/{index-ksfagmyz.js → index-4qh90tyw.js} +8 -8
- package/dist/{index-yvfk3y36.js → index-636mggad.js} +4 -3
- package/dist/{index-f199nfq5.js → index-6y9t2fwz.js} +7 -7
- package/dist/{index-azx12jgv.js → index-7r74re56.js} +1 -1
- package/dist/{index-w8etpm8j.js → index-9j2atjte.js} +1 -1
- package/dist/{index-dsnjzb62.js → index-bnf8s6v3.js} +1 -1
- package/dist/{index-pz3y6b6g.js → index-cx2nh595.js} +3 -3
- package/dist/{index-2k91mewf.js → index-dm2fv45z.js} +9 -9
- package/dist/{index-9bskshe3.js → index-dwf0gymy.js} +10 -10
- package/dist/{index-qaqbdm7s.js → index-h7qms8f9.js} +8 -8
- package/dist/{index-drs41arz.js → index-ktjmgq9p.js} +1 -1
- package/dist/{index-1ptj98e0.js → index-mbf4h8kp.js} +2 -2
- package/dist/{index-916yh4e2.js → index-mep4sb48.js} +14 -14
- package/dist/{index-wdy68sh6.js → index-njs9gvrh.js} +17 -17
- package/dist/{index-sj28htvf.js → index-pvh3z03x.js} +1 -1
- package/dist/{index-r393tnfp.js → index-q6crhe1n.js} +4 -4
- package/dist/{index-z23rfxhj.js → index-xmgjtkvr.js} +1 -1
- package/dist/{index-gr5g3xfw.js → index-yz8x0hbx.js} +1 -1
- package/dist/{index-gxm9rc97.js → index-zrtrjkbf.js} +1 -1
- package/dist/{index-1pwwan01.js → index-zsqt5q98.js} +5 -5
- package/dist/internal/darwin-binding-error.d.ts +9 -1
- package/dist/internal/darwin-binding-error.d.ts.map +1 -1
- package/dist/internal/darwin-binding.d.ts.map +1 -1
- package/dist/process/contract.d.ts +4 -2
- package/dist/process/contract.d.ts.map +1 -1
- package/dist/tools/internal/surface-projector.d.ts +0 -7
- package/dist/tools/internal/surface-projector.d.ts.map +1 -1
- package/dist/tools/runtime-tool-declaration.d.ts +11 -0
- package/dist/tools/runtime-tool-declaration.d.ts.map +1 -1
- package/dist/tools/runtime-tool.d.ts +2 -3
- package/dist/tools/runtime-tool.d.ts.map +1 -1
- package/llms/files-packaging.txt +10 -6
- package/llms/process.txt +64 -20
- package/llms/stitchkit.txt +3 -3
- package/llms/{upgrading-0.37.0-0.53.0.txt → upgrading-0.37.0-0.58.0.txt} +209 -3
- package/llms/{upgrading-0.55.0-0.68.0.txt → upgrading-0.59.0-0.71.0.txt} +149 -209
- package/llms/{upgrading-0.69.0-0.95.0.txt → upgrading-0.72.0-0.97.0.txt} +76 -149
- package/llms/{upgrading-0.96.0-0.106.0.txt → upgrading-0.98.0-0.107.0.txt} +56 -83
- package/llms/upgrading.txt +4 -4
- package/llms-full.txt +130 -36
- package/llms.txt +6 -6
- package/package.json +4 -3
- package/dist/{index-cazts87s.js → index-07dcf2yn.js} +3 -3
- package/dist/{index-n1nszyk0.js → index-7jvwrjqa.js} +3 -3
- package/dist/{index-cmzvhhtd.js → index-85qve8mq.js} +3 -3
- package/dist/{index-rpzewktb.js → index-fynr93w4.js} +3 -3
- package/dist/{index-37asdw3a.js → index-k7qdkh3n.js} +3 -3
- package/dist/{index-x7w1z6pf.js → index-q4hjtyye.js} +4 -4
- package/dist/{index-7n68nmc6.js → index-y3nemndz.js} +3 -3
- package/dist/{index-12zsej7b.js → index-y70v24cw.js} +3 -3
- package/dist/{index-pzb63z66.js → index-ykdcnq1f.js} +3 -3
|
@@ -1,14 +1,46 @@
|
|
|
1
|
-
# Upgrading 0.
|
|
1
|
+
# Upgrading 0.98.0 → 0.107.0 — stitchkit docs slice
|
|
2
2
|
|
|
3
3
|
> Generated from the `docs/` tree by `bun run gen:llms`. The index of all slices is
|
|
4
4
|
> `llms.txt` in this package.
|
|
5
5
|
|
|
6
|
-
Contains: Guide: Upgrading, 0.
|
|
6
|
+
Contains: Guide: Upgrading, 0.98.0 → 0.107.0 (docs/guide/upgrading.md)
|
|
7
7
|
|
|
8
8
|
==============================================================================
|
|
9
|
-
# Guide: Upgrading, 0.
|
|
9
|
+
# Guide: Upgrading, 0.98.0 → 0.107.0 (docs/guide/upgrading.md)
|
|
10
10
|
==============================================================================
|
|
11
11
|
|
|
12
|
+
## Released migration: 0.107.0
|
|
13
|
+
|
|
14
|
+
### embedded native packaging names no paths
|
|
15
|
+
|
|
16
|
+
**Who must act:** builds that call `createNativePackaging` (`stitchkit/files/packaging`) with
|
|
17
|
+
`delivery: 'embedded'`. Companion delivery is unchanged.
|
|
18
|
+
|
|
19
|
+
A standalone executable carries the Darwin addon inside itself, so the embedded form takes only
|
|
20
|
+
`platform`, `architecture` and `delivery`. `entryPath` and `assetPath` were required before but
|
|
21
|
+
changed nothing in the executable; passing them now is a type error and a schema refusal. The
|
|
22
|
+
ready result names the embedded addon by `NativePackagingEmbeddedAsset` (`bytes`, `size`,
|
|
23
|
+
`sha256`), without `outputPath`, since nothing is written beside the executable.
|
|
24
|
+
|
|
25
|
+
1. Drop the two paths from the embedded call:
|
|
26
|
+
|
|
27
|
+
```ts
|
|
28
|
+
// before
|
|
29
|
+
createNativePackaging({
|
|
30
|
+
platform: 'darwin', architecture: 'arm64', delivery: 'embedded',
|
|
31
|
+
entryPath: 'cli.js', assetPath: 'native/darwin-arm64.node',
|
|
32
|
+
})
|
|
33
|
+
// after
|
|
34
|
+
createNativePackaging({ platform: 'darwin', architecture: 'arm64', delivery: 'embedded' })
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Search pattern: `delivery: 'embedded'`.
|
|
38
|
+
2. Code that read `asset.outputPath` from an embedded result reads `bytes`, `size` and `sha256`
|
|
39
|
+
only; an annotation `NativePackagingOptions` / `NativePackagingResult` on an embedded call
|
|
40
|
+
becomes `NativePackagingEmbeddedOptions` / `NativePackagingEmbeddedResult`.
|
|
41
|
+
3. Rebuild every artifact made without the plugin by 0.105.0–0.106.1: it carries the build
|
|
42
|
+
machine's package path (see [Darwin native assets in JS distributions](#darwin-native-assets-in-js-distributions)).
|
|
43
|
+
|
|
12
44
|
## Released migration: 0.106.0
|
|
13
45
|
|
|
14
46
|
### a stopped leader settles as stopped
|
|
@@ -609,13 +641,27 @@ Custom output layout uses the evolving build-only packaging contract in the
|
|
|
609
641
|
Three deliveries have different rules: an ordinary npm install retains the package's
|
|
610
642
|
native assets; a JS distribution must ship its complete output graph; a Bun compiled
|
|
611
643
|
executable embeds the matching addon and may still use `--outfile`. In 0.103.13–0.104.2 a plain
|
|
612
|
-
`bun build` carries the addon without a plugin
|
|
613
|
-
uses `createNativePackaging` (`delivery: 'companion'` for JS, `'embedded'` for a
|
|
614
|
-
executable).
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
644
|
+
`bun build` carries the addon without a plugin. Later releases load it from a bundle only when
|
|
645
|
+
the build uses `createNativePackaging` (`delivery: 'companion'` for JS, `'embedded'` for a
|
|
646
|
+
compiled executable). Without the plugin, Bun may still copy the addon's bytes into a compiled
|
|
647
|
+
executable, but the loader never uses them, so their presence proves nothing.
|
|
648
|
+
|
|
649
|
+
What an unpackaged bundle does depends on the release:
|
|
650
|
+
|
|
651
|
+
- **0.105.0–0.106.1:** the bundle carries the absolute path of the package on the build machine,
|
|
652
|
+
because the loader read `__dirname`. It looks for the addon there, so it works only on that
|
|
653
|
+
machine, and the path itself leaks into a distributed artifact. Rebuild with a later release.
|
|
654
|
+
- **0.107.0 and later:** no build path is in the artifact, and the first call that needs the
|
|
655
|
+
addon reports the Darwin backend `unavailable` with stage `packaging`.
|
|
656
|
+
|
|
657
|
+
Only macOS is affected, and only process identity (`observeProcessInstance`,
|
|
658
|
+
`probeProcessOwner`), exclusive locks and contained Agent file operations load the addon. The
|
|
659
|
+
managed file boundary, atomic writes and the chunk spool never do. The
|
|
660
|
+
[native IO guide](native-io.md#libraries-with-a-zod-only-runtime) is the canonical recipe and
|
|
661
|
+
shows how to check an artifact by its loader without running it on a Mac. Check the resulting
|
|
662
|
+
artifact offline outside the build tree and `node_modules`, including process identity,
|
|
663
|
+
live-owner lock refusal, dead-owner recovery and contained IO. A missing or corrupt addon
|
|
664
|
+
remains `unavailable`, never evidence that an owner died.
|
|
619
665
|
|
|
620
666
|
### CLI: repeated options are refused
|
|
621
667
|
|
|
@@ -859,76 +905,3 @@ availability probe. A custom reader owns its limits and error handling.
|
|
|
859
905
|
`-` remains literal data. TTY and empty EOF produce ordinary validation errors;
|
|
860
906
|
explicit arguments skip stdin. JSONL stream/batch commands, MCP/serve and
|
|
861
907
|
long-running handlers have no new deadline. See ADR 0203.
|
|
862
|
-
|
|
863
|
-
## Released migration: 0.97.0
|
|
864
|
-
|
|
865
|
-
### schedule delivery
|
|
866
|
-
|
|
867
|
-
**Who must act:** consumers of `createAgentScheduleService`, exhaustive switches on
|
|
868
|
-
`AgentSchedule.state`, and operators opening existing agent-runtime SQLite stores.
|
|
869
|
-
|
|
870
|
-
- Stop old scheduler processes and back up SQLite before startup. The store migrates
|
|
871
|
-
transactionally to v4; old binaries cannot open it. Rollback uses the backup.
|
|
872
|
-
- Handle `failed` as a terminal schedule state. To refuse future delivery (including
|
|
873
|
-
recurring delivery), return `{ status: 'terminal', reason: 'destination closed' }`.
|
|
874
|
-
The occurrence remains unadvanced; `schedule/failed` carries `terminal: true`.
|
|
875
|
-
- A throw or `{ status: 'retry', reason: 'temporarily unavailable' }` retries the same
|
|
876
|
-
key after 1, 2, 4, 8, 16, 32, then 60 seconds. `nextAt` remains the original due time;
|
|
877
|
-
`retryAt`, `attempts` and `lastError` expose retry diagnostics. Success clears them.
|
|
878
|
-
- Resolve `void` only after durable consumer admission. Honor the supplied `signal`:
|
|
879
|
-
dispatch has a 30-second deadline and a 60-second lease. Durable deduplication by
|
|
880
|
-
`idempotencyKey` is required even after abort or crash; do not implement sleeps in dispatch.
|
|
881
|
-
- Stale/cancelled attempts emit no `schedule/fired` or `schedule/late`. Observe the
|
|
882
|
-
cancellation event instead of relying on a synthetic cancelled firing.
|
|
883
|
-
|
|
884
|
-
```ts
|
|
885
|
-
// before
|
|
886
|
-
async function dispatch(request) {
|
|
887
|
-
if (await destinationClosed(request.conversationId)) throw new Error('closed')
|
|
888
|
-
await admit(request)
|
|
889
|
-
}
|
|
890
|
-
// after: use this callback as createAgentScheduleService({ dispatch, ... })
|
|
891
|
-
async function dispatch(request) {
|
|
892
|
-
if (await destinationClosed(request.conversationId)) {
|
|
893
|
-
return { status: 'terminal', reason: 'destination closed' }
|
|
894
|
-
}
|
|
895
|
-
await admit({ ...request, signal: request.signal }) // durably deduplicates idempotencyKey
|
|
896
|
-
}
|
|
897
|
-
```
|
|
898
|
-
|
|
899
|
-
## Released migration: 0.96.0
|
|
900
|
-
|
|
901
|
-
### resource-context-admission
|
|
902
|
-
|
|
903
|
-
One breaking change in `stitchkit/application`: `ManagedResourceContext` gains a
|
|
904
|
-
required `admission`. Every context the kernel hands a resource already carries
|
|
905
|
-
it; only a context built by hand needs it.
|
|
906
|
-
|
|
907
|
-
1. **Give a hand-built resource context an `admission`.** **Who must act:** a
|
|
908
|
-
project whose tests call a resource's phase directly with a context object
|
|
909
|
-
they wrote themselves (`resource.close?.({ applicationId, signal, … })`).
|
|
910
|
-
The type checker names each one:
|
|
911
|
-
|
|
912
|
-
```ts
|
|
913
|
-
// before
|
|
914
|
-
await resource.close?.({ applicationId: 'test', signal, now, reportHealth, use })
|
|
915
|
-
// after
|
|
916
|
-
await resource.close?.({
|
|
917
|
-
applicationId: 'test',
|
|
918
|
-
signal,
|
|
919
|
-
now,
|
|
920
|
-
reportHealth,
|
|
921
|
-
use,
|
|
922
|
-
admission: { acquire: () => null, acquireWhenAccepting: () => new Promise(() => {}) },
|
|
923
|
-
})
|
|
924
|
-
```
|
|
925
|
-
|
|
926
|
-
A test that needs real admission starts the resource inside
|
|
927
|
-
`createApplication` instead.
|
|
928
|
-
|
|
929
|
-
2. **Nothing to do for grammY polling, but know what changed.** **Who must
|
|
930
|
-
act:** nobody. `grammyPollingResource` now admits updates by batch: it does
|
|
931
|
-
not fetch while the application is not accepting, and finishes the batch in
|
|
932
|
-
hand before `bot.stop()`. A project that wrote its own `getUpdates`
|
|
933
|
-
transformer for this (waiting on `app.admission` before returning a batch)
|
|
934
|
-
deletes it; keeping both waits twice and is harmless.
|
package/llms/upgrading.txt
CHANGED
|
@@ -11,10 +11,10 @@ Contains: Guide: Upgrading, general (docs/guide/upgrading.md)
|
|
|
11
11
|
|
|
12
12
|
Load this slice, then every range slice between your installed version and the target:
|
|
13
13
|
|
|
14
|
-
- 0.
|
|
15
|
-
- 0.
|
|
16
|
-
- 0.
|
|
17
|
-
- 0.37.0 → 0.
|
|
14
|
+
- 0.98.0 → 0.107.0: `llms/upgrading-0.98.0-0.107.0.txt`
|
|
15
|
+
- 0.72.0 → 0.97.0: `llms/upgrading-0.72.0-0.97.0.txt`
|
|
16
|
+
- 0.59.0 → 0.71.0: `llms/upgrading-0.59.0-0.71.0.txt`
|
|
17
|
+
- 0.37.0 → 0.58.0: `llms/upgrading-0.37.0-0.58.0.txt`
|
|
18
18
|
|
|
19
19
|
# Upgrading stitchkit
|
|
20
20
|
|
package/llms-full.txt
CHANGED
|
@@ -74,12 +74,12 @@ own, recorded as an ADR.
|
|
|
74
74
|
| `stitchkit/geo` | server (Bun or Node) | evolving | managed GeoIP reader generations, last-known-good reload and the optional MaxMind adapter |
|
|
75
75
|
| `stitchkit/oauth` | browser **and** server | evolving | provider-neutral Authorization Code + PKCE request and one-shot callback transaction mechanics |
|
|
76
76
|
| `stitchkit/google` | server (Bun or Node) | evolving | optional Google code exchange and verified OIDC identity adapter |
|
|
77
|
-
| `stitchkit/observability` | server | stable<br>_redefined in 2 of the
|
|
77
|
+
| `stitchkit/observability` | server | stable<br>_redefined in 2 of the 52 minors since 0.56.2, most recently 0.92.0_ | request/tool event projections — `createObservability`, trace context, sanitisation |
|
|
78
78
|
| `stitchkit/testing` | tests on Bun or Node | stable | in-process generated clients over a real Fetch handler, plus the managed-resource conformance kit |
|
|
79
79
|
| `stitchkit/declaration` | browser + build and deployment tooling (Bun or Node) | evolving | `ProjectDeclarationSchema` — the one machine-readable statement a repository makes about itself |
|
|
80
80
|
| `stitchkit/react` | browser + server rendering | stable | `createCursorQuery`, `createCacheBridge`, QueryClient and `ApiError` retry policy |
|
|
81
81
|
| `stitchkit/react/keyboard` | browser | evolving | which part of a screen gets a key — ordered layers, one Escape per level, list zones with real focus; see [keyboard guide](keyboard.md) |
|
|
82
|
-
| `stitchkit/agent-runtime` | server | evolving<br>_redefined in 23 of the
|
|
82
|
+
| `stitchkit/agent-runtime` | server | evolving<br>_redefined in 23 of the 52 minors since 0.56.2, most recently 0.105.0_ | optional durable conversation/run loop, history, models, prompts, fencing and events |
|
|
83
83
|
| `stitchkit/agent-runtime/sandbox` | server | evolving | optional Linux Bubblewrap sessions, durable workspaces and a host HTTP credential gateway; see [sandbox guide](sandbox.md) |
|
|
84
84
|
| `stitchkit/agent-runtime/testing` | tests on Bun or Node | evolving | credential-free replay, scripted provider faults, deterministic race controls and the agent-store conformance kit |
|
|
85
85
|
| `stitchkit/agent-runtime/harness` | server | evolving | resource-aware process-local facade over the canonical Agent runtime; supervision stays outside |
|
|
@@ -91,7 +91,7 @@ own, recorded as an ADR.
|
|
|
91
91
|
| `stitchkit/agent-runtime/sqlite/bun` | server (Bun) | evolving | durable built-in SQLite store for the agent runtime |
|
|
92
92
|
| `stitchkit/agent-runtime/sqlite/node` | server (Node ≥ 22.5) | evolving | durable built-in SQLite store for the agent runtime |
|
|
93
93
|
| `stitchkit-tui` | terminal (Bun) | evolving | optional official OpenTUI host over a caller-composed headless runtime |
|
|
94
|
-
| `stitchkit/application` | browser + server | evolving<br>_redefined in 13 of the
|
|
94
|
+
| `stitchkit/application` | browser + server | evolving<br>_redefined in 13 of the 52 minors since 0.56.2, most recently 0.105.0_ | managed resource graph, readiness, admission, schedules, subtree restart and bounded shutdown |
|
|
95
95
|
| `stitchkit/application/grammy` | server | evolving | a grammY bot as application resources — configuration, then polling with updates admitted by batch — and the webhook adapter |
|
|
96
96
|
| `stitchkit/application/opentelemetry` | server | evolving | maps application snapshots onto an injected OpenTelemetry `Meter` |
|
|
97
97
|
| `stitchkit/application/schemas` | browser + server | evolving | the application's snapshot, health and shutdown schemas alone, without the kernel |
|
|
@@ -8412,13 +8412,15 @@ so a helper started in the background races the leader:
|
|
|
8412
8412
|
|
|
8413
8413
|
| launched by the leader as | after the leader exits |
|
|
8414
8414
|
|---|---|
|
|
8415
|
-
| `setsid -f helper`
|
|
8415
|
+
| `setsid -f helper` | usually survives: `setsid -f` forks and returns at once, and the child calls `setsid()` a moment later, so a leader that exits immediately can still catch it in the group (13 of 300 launches under CPU load) |
|
|
8416
8416
|
| `setsid helper &`, `(setsid helper &)`, `nohup helper &` | stopped: the leader usually exits before the background job has left the group |
|
|
8417
|
+
| a launch the leader waits on until the helper reports it has left the group | survives |
|
|
8417
8418
|
| any of these under `descendants: 'leave'` | survives |
|
|
8418
8419
|
|
|
8419
|
-
Start a daemon so that the
|
|
8420
|
-
|
|
8421
|
-
`'leave'` only for a helper that has to outlive the command while
|
|
8420
|
+
Start a daemon so that the leader waits for the session to exist before it returns: the helper
|
|
8421
|
+
writes its pid, or prints a line, only after its own `setsid()`, and the leader waits for that.
|
|
8422
|
+
Or declare `'leave'`. Declare `'leave'` only for a helper that has to outlive the command while
|
|
8423
|
+
staying in its group:
|
|
8422
8424
|
|
|
8423
8425
|
```ts
|
|
8424
8426
|
await runNativeCommand({
|
|
@@ -8583,23 +8585,46 @@ version: carry their reachable relative `.d.ts` closure, rather than emitting re
|
|
|
8583
8585
|
instead emit declarations for only that DTO contract. Keep the library's manifest at runtime
|
|
8584
8586
|
`dependencies: {}` and `peerDependencies: { zod: ... }` when that is its declared promise.
|
|
8585
8587
|
|
|
8586
|
-
The packaged Darwin loader
|
|
8587
|
-
never follows it: bundling `stitchkit/server`,
|
|
8588
|
-
the same single JS file on every operating
|
|
8589
|
-
`bun build --outfile` works
|
|
8590
|
-
|
|
8591
|
-
|
|
8592
|
-
|
|
8593
|
-
plugin of the next section; it is the only way
|
|
8588
|
+
The packaged Darwin loader computes its addon path at run time from its own file
|
|
8589
|
+
(`module.filename`), so a bundler never follows it: bundling `stitchkit/server`,
|
|
8590
|
+
`stitchkit/files` or `stitchkit/process` yields the same single JS file on every operating
|
|
8591
|
+
system, with no `.node` output, `bun build --outfile` works, and no path of the build machine
|
|
8592
|
+
becomes a literal of the artifact. A bundle has no installed package beside it, so without the
|
|
8593
|
+
packaging plugin it never loads the addon: the first call that needs it reports the Darwin backend
|
|
8594
|
+
`unavailable` with stage `packaging`, and the message names `createNativePackaging`. An artifact
|
|
8595
|
+
that must carry the Darwin addon uses the packaging plugin of the next section; it is the only way
|
|
8596
|
+
a static loader enters a bundle.
|
|
8597
|
+
|
|
8598
|
+
Only these calls load the addon, and only on macOS: process identity (`observeProcessInstance`
|
|
8599
|
+
and `probeProcessOwner`), every exclusive lock (`withExclusiveLock` and what is built on it, such
|
|
8600
|
+
as the file state store and the diagnostic journal) and the contained file operations of the Agent
|
|
8601
|
+
coding tools. Without the addon a lock still works, but it cannot record or check its owner's
|
|
8602
|
+
identity, so a lock held by a crashed owner is not reclaimed. The managed file boundary
|
|
8603
|
+
(`createManagedFileBoundary` and the transfer tools built on it), atomic writes and the chunk
|
|
8604
|
+
spool never load it, on any operating system. The package is free of import side effects
|
|
8605
|
+
(`sideEffects: false`), so a bundle that imports only those parts carries no Darwin loader at all.
|
|
8606
|
+
|
|
8607
|
+
Check an artifact by its loader, never by whether it holds `.node` bytes: Bun can copy the addon
|
|
8608
|
+
into a compiled executable even without the plugin, and the unpackaged loader does not use it.
|
|
8609
|
+
Search the artifact for `STITCHKIT_NATIVE_NOT_PACKAGED` in both latin1 and UTF-16LE, because Bun
|
|
8610
|
+
stores source text with non-ASCII characters as UTF-16. Present: the unpackaged loader is inside,
|
|
8611
|
+
and every call above refuses on macOS. Absent in a plugin build: the static loader is inside
|
|
8612
|
+
(`/$bunfs/root/darwin-<arch>-<hash>.node` in an executable, the companion path in a JS build).
|
|
8613
|
+
Absent without the plugin: nothing in the artifact needs the addon.
|
|
8594
8614
|
|
|
8595
8615
|
```sh
|
|
8596
8616
|
bun build src/native.ts --target=bun --minify --outfile=dist/native.js
|
|
8597
8617
|
```
|
|
8598
8618
|
|
|
8619
|
+
That plain build serves Linux and the parts that never load the addon. A library whose consumers
|
|
8620
|
+
take locks or read process identity on macOS builds each native entry with the companion plugin of
|
|
8621
|
+
the next section (one entry per build, `naming.entry` equal to `entryPath`) and ships the addon it
|
|
8622
|
+
writes beside the entries.
|
|
8623
|
+
|
|
8599
8624
|
Qualify the complete output outside its build tree and installed dependency graph. Test process
|
|
8600
8625
|
identity, live-owner refusal, dead-owner recovery and contained file operations in artifacts built
|
|
8601
8626
|
with the packaging plugin, and check that an unpackaged build reports the backend `unavailable`
|
|
8602
|
-
rather than certifying a dead owner. Bun and Node package imports retain the same
|
|
8627
|
+
with stage `packaging` rather than certifying a dead owner. Bun and Node package imports retain the same
|
|
8603
8628
|
lazy loader; importing a portable leaf does not load a Darwin addon on another OS. Test
|
|
8604
8629
|
declarations too, and check that importing an unbundled Stitchkit leaf fails in a deliberately
|
|
8605
8630
|
isolated library distribution. A separate schema-only entry must not import the native entry.
|
|
@@ -8607,7 +8632,9 @@ isolated library distribution. A separate schema-only entry must not import the
|
|
|
8607
8632
|
If the Darwin backend cannot load, `observeProcessInstance` still returns `unavailable`.
|
|
8608
8633
|
Its backend `Error` preserves the original `cause`; JSON serialization carries only the stable
|
|
8609
8634
|
`DARWIN_BACKEND_UNAVAILABLE` code, architecture, safe message and failure stage
|
|
8610
|
-
(`architecture`, `resolve`, `load` or `surface`), plus a recognized native error code
|
|
8635
|
+
(`architecture`, `packaging`, `resolve`, `load` or `surface`), plus a recognized native error code
|
|
8636
|
+
when present: `packaging` is a bundle built without the packaging plugin, with native code
|
|
8637
|
+
`STITCHKIT_NATIVE_NOT_PACKAGED`.
|
|
8611
8638
|
It excludes stack, paths and nested cause. This backend diagnosis does not reclassify kernel
|
|
8612
8639
|
failures or turn unavailable identity into proof that an owner is dead. If a runtime provides
|
|
8613
8640
|
no recognized native error code, the stage stays `load`; the loader never infers errno from text.
|
|
@@ -8654,7 +8681,7 @@ for (const asset of native.assets) {
|
|
|
8654
8681
|
}
|
|
8655
8682
|
```
|
|
8656
8683
|
|
|
8657
|
-
`entryPath` and `assetPath` are relative paths inside the application's output root, without
|
|
8684
|
+
In companion delivery, `entryPath` and `assetPath` are relative paths inside the application's output root, without
|
|
8658
8685
|
absolute paths, traversal or overlapping file/directory paths. `assetPath` may contain `[hash]`,
|
|
8659
8686
|
which becomes the first 16 hex digits of that addon's published SHA256: the digest is known before
|
|
8660
8687
|
the build, so `addons/darwin-arm64-[hash].node` gives two installed versions of the package
|
|
@@ -8693,10 +8720,27 @@ process primitives without loading Darwin assets. Qualify the exact same JS byte
|
|
|
8693
8720
|
Darwin arm64 and x64 machines, with both companions preserved through archive delivery.
|
|
8694
8721
|
Build-machine architecture and cross-build success cannot establish universal native support.
|
|
8695
8722
|
|
|
8696
|
-
For a standalone executable use `delivery: 'embedded'` and
|
|
8697
|
-
|
|
8698
|
-
|
|
8699
|
-
|
|
8723
|
+
For a standalone executable use `delivery: 'embedded'` and its plugin in `Bun.build` with
|
|
8724
|
+
`compile`. An executable carries the addon inside itself, so this form names no `entryPath` or
|
|
8725
|
+
`assetPath`; passing one is a type error and a schema refusal, never silently ignored:
|
|
8726
|
+
|
|
8727
|
+
```ts
|
|
8728
|
+
const native = createNativePackaging({
|
|
8729
|
+
platform: 'darwin', architecture: 'arm64', delivery: 'embedded',
|
|
8730
|
+
})
|
|
8731
|
+
if (native.state !== 'ready') throw new Error(native.code)
|
|
8732
|
+
const result = await Bun.build({
|
|
8733
|
+
entrypoints: ['src/cli.ts'], minify: true,
|
|
8734
|
+
compile: { target: 'bun-darwin-arm64', outfile: 'dist/cli' },
|
|
8735
|
+
plugins: [native.plugin],
|
|
8736
|
+
})
|
|
8737
|
+
if (!result.success) throw new AggregateError(result.logs, 'Build failed')
|
|
8738
|
+
```
|
|
8739
|
+
|
|
8740
|
+
Bun embeds the selected addon from the verified bytes the plugin holds, not from a second read of
|
|
8741
|
+
the file, and the executable loads it from `/$bunfs/root/darwin-arm64-<hash>.node`. Its `assets`
|
|
8742
|
+
(`NativePackagingEmbeddedAsset`: `bytes`, `size`, `sha256`) identify those bytes and their
|
|
8743
|
+
published digest for qualification; there is nothing to write beside the executable.
|
|
8700
8744
|
Cross-builds must select the requested architecture explicitly; the artifact must run on that target.
|
|
8701
8745
|
The installed package must contain that target's addon. No automatic fallback/downgrade occurs.
|
|
8702
8746
|
|
|
@@ -15578,6 +15622,38 @@ analytics policy belong to the application.
|
|
|
15578
15622
|
|
|
15579
15623
|
# Upgrading stitchkit
|
|
15580
15624
|
|
|
15625
|
+
## Released migration: 0.107.0
|
|
15626
|
+
|
|
15627
|
+
### embedded native packaging names no paths
|
|
15628
|
+
|
|
15629
|
+
**Who must act:** builds that call `createNativePackaging` (`stitchkit/files/packaging`) with
|
|
15630
|
+
`delivery: 'embedded'`. Companion delivery is unchanged.
|
|
15631
|
+
|
|
15632
|
+
A standalone executable carries the Darwin addon inside itself, so the embedded form takes only
|
|
15633
|
+
`platform`, `architecture` and `delivery`. `entryPath` and `assetPath` were required before but
|
|
15634
|
+
changed nothing in the executable; passing them now is a type error and a schema refusal. The
|
|
15635
|
+
ready result names the embedded addon by `NativePackagingEmbeddedAsset` (`bytes`, `size`,
|
|
15636
|
+
`sha256`), without `outputPath`, since nothing is written beside the executable.
|
|
15637
|
+
|
|
15638
|
+
1. Drop the two paths from the embedded call:
|
|
15639
|
+
|
|
15640
|
+
```ts
|
|
15641
|
+
// before
|
|
15642
|
+
createNativePackaging({
|
|
15643
|
+
platform: 'darwin', architecture: 'arm64', delivery: 'embedded',
|
|
15644
|
+
entryPath: 'cli.js', assetPath: 'native/darwin-arm64.node',
|
|
15645
|
+
})
|
|
15646
|
+
// after
|
|
15647
|
+
createNativePackaging({ platform: 'darwin', architecture: 'arm64', delivery: 'embedded' })
|
|
15648
|
+
```
|
|
15649
|
+
|
|
15650
|
+
Search pattern: `delivery: 'embedded'`.
|
|
15651
|
+
2. Code that read `asset.outputPath` from an embedded result reads `bytes`, `size` and `sha256`
|
|
15652
|
+
only; an annotation `NativePackagingOptions` / `NativePackagingResult` on an embedded call
|
|
15653
|
+
becomes `NativePackagingEmbeddedOptions` / `NativePackagingEmbeddedResult`.
|
|
15654
|
+
3. Rebuild every artifact made without the plugin by 0.105.0–0.106.1: it carries the build
|
|
15655
|
+
machine's package path (see [Darwin native assets in JS distributions](#darwin-native-assets-in-js-distributions)).
|
|
15656
|
+
|
|
15581
15657
|
## Released migration: 0.106.0
|
|
15582
15658
|
|
|
15583
15659
|
### a stopped leader settles as stopped
|
|
@@ -16178,13 +16254,27 @@ Custom output layout uses the evolving build-only packaging contract in the
|
|
|
16178
16254
|
Three deliveries have different rules: an ordinary npm install retains the package's
|
|
16179
16255
|
native assets; a JS distribution must ship its complete output graph; a Bun compiled
|
|
16180
16256
|
executable embeds the matching addon and may still use `--outfile`. In 0.103.13–0.104.2 a plain
|
|
16181
|
-
`bun build` carries the addon without a plugin
|
|
16182
|
-
uses `createNativePackaging` (`delivery: 'companion'` for JS, `'embedded'` for a
|
|
16183
|
-
executable).
|
|
16184
|
-
|
|
16185
|
-
|
|
16186
|
-
|
|
16187
|
-
|
|
16257
|
+
`bun build` carries the addon without a plugin. Later releases load it from a bundle only when
|
|
16258
|
+
the build uses `createNativePackaging` (`delivery: 'companion'` for JS, `'embedded'` for a
|
|
16259
|
+
compiled executable). Without the plugin, Bun may still copy the addon's bytes into a compiled
|
|
16260
|
+
executable, but the loader never uses them, so their presence proves nothing.
|
|
16261
|
+
|
|
16262
|
+
What an unpackaged bundle does depends on the release:
|
|
16263
|
+
|
|
16264
|
+
- **0.105.0–0.106.1:** the bundle carries the absolute path of the package on the build machine,
|
|
16265
|
+
because the loader read `__dirname`. It looks for the addon there, so it works only on that
|
|
16266
|
+
machine, and the path itself leaks into a distributed artifact. Rebuild with a later release.
|
|
16267
|
+
- **0.107.0 and later:** no build path is in the artifact, and the first call that needs the
|
|
16268
|
+
addon reports the Darwin backend `unavailable` with stage `packaging`.
|
|
16269
|
+
|
|
16270
|
+
Only macOS is affected, and only process identity (`observeProcessInstance`,
|
|
16271
|
+
`probeProcessOwner`), exclusive locks and contained Agent file operations load the addon. The
|
|
16272
|
+
managed file boundary, atomic writes and the chunk spool never do. The
|
|
16273
|
+
[native IO guide](native-io.md#libraries-with-a-zod-only-runtime) is the canonical recipe and
|
|
16274
|
+
shows how to check an artifact by its loader without running it on a Mac. Check the resulting
|
|
16275
|
+
artifact offline outside the build tree and `node_modules`, including process identity,
|
|
16276
|
+
live-owner lock refusal, dead-owner recovery and contained IO. A missing or corrupt addon
|
|
16277
|
+
remains `unavailable`, never evidence that an owner died.
|
|
16188
16278
|
|
|
16189
16279
|
### CLI: repeated options are refused
|
|
16190
16280
|
|
|
@@ -22731,7 +22821,7 @@ Native POSIX Bun/Node one-shot command execution. See [native IO](../guide/nativ
|
|
|
22731
22821
|
| `NativeCommandOptions` | type | executable/args, env policy, signal/deadline, bytes sink, finite cleanup limits, the `stop` policy and `descendants` (`'terminate-after-leader'`, the default: stop the group after the leader exits, or `'leave'`); `stdio` (`'pipe'`, or `'inherit'` for the caller's descriptors, refusing the pipe-only options) and `group` (`'own'`, or `'caller'`: joins the caller's process group, stops only the leader, refuses `descendants` and a group stop); `onLeaderStarted({ pid })` (once, after the leader exists), `drainTimeoutMs` (bound on the pipes staying open after the leader exited, `COMMAND_CLEANUP`); an unknown key is refused by name, a removed one (`killGraceMs`) with its replacement |
|
|
22732
22822
|
| `NativeCommandStopPolicy` | type | how a cancelled command stops: `target` `'group'` (signal every member) or `'leader'` (signal only the leader; its exit ends the grace), `signal` (default `SIGTERM`), `graceMs` (at most one hour) before KILL to the group, and `killOn`, an `AbortSignal` that skips the grace; default `{ target: 'group', signal: 'SIGTERM', graceMs: 100 }` |
|
|
22733
22823
|
| `NativeCommandResult` | type | observed nullable exit code/signal, `descendantsStopped` (members left in the group after the leader exited were stopped) and captured stdout/stderr bytes |
|
|
22734
|
-
| `NativeCommandError` | class | COMMAND_LIMIT with machine reason `deadline` or `output-budget`; COMMAND_UNAVAILABLE / COMMAND_CLEANUP have no limit reason. Preserves internal cause and existing constructor; caller-created limits without supplied reason remain unclassified |
|
|
22824
|
+
| `NativeCommandError` | class | COMMAND_LIMIT with machine reason `deadline` or `output-budget`; COMMAND_UNAVAILABLE / COMMAND_CLEANUP have no limit reason; COMMAND_CLEANUP means the command's resources were not proven closed, either past `cleanupTimeoutMs` after a stop or past `drainTimeoutMs` after the leader exited, and `cause` holds that bound's failure. Preserves internal cause and existing constructor; caller-created limits without supplied reason remain unclassified |
|
|
22735
22825
|
|
|
22736
22826
|
| `NativeCommandSettlement` | type | `exit` (the leader ended on its own), `stopped` (the command was stopped and the leader's exit after the stop observed: the stop's `cause` with `exitCode`/`signal`) or `error` (no exit observed), including synchronous native launch failure; `onLeaderSettled` runs once before drain, bounded by cleanupTimeoutMs, with a cancellable settlement signal; schema/pre-abort refusal creates no settlement obligation |
|
|
22737
22827
|
| `observeProcessInstance` / `ProcessInstanceObservation` | function / type | Linux/Darwin lifetime observation; observed identity or unavailable with its original cause, never guessed absence |
|
|
@@ -22741,13 +22831,16 @@ Native POSIX Bun/Node one-shot command execution. See [native IO](../guide/nativ
|
|
|
22741
22831
|
## `stitchkit/files/packaging`
|
|
22742
22832
|
|
|
22743
22833
|
`stitchkit/files/packaging` owns `createNativePackaging` and the types
|
|
22744
|
-
`NativePackagingOptions`, `NativePackagingAsset`, `NativePackagingPlugin`, `NativePackagingResult
|
|
22834
|
+
`NativePackagingOptions`, `NativePackagingAsset`, `NativePackagingPlugin`, `NativePackagingResult`,
|
|
22835
|
+
and for a standalone executable `NativePackagingEmbeddedOptions`, `NativePackagingEmbeddedAsset`,
|
|
22836
|
+
`NativePackagingEmbeddedResult`.
|
|
22745
22837
|
It resolves the installed package's target/version, reads each selected addon once and checks it
|
|
22746
22838
|
against the `size` and `sha256` published in the package's `native-assets.json` (`formatVersion: 2`,
|
|
22747
22839
|
written when Stitchkit is built). Call it once per build and reuse the result.
|
|
22748
|
-
`platform`, `architecture`, `delivery`, `entryPath` and `assetPath` are explicit
|
|
22749
|
-
|
|
22750
|
-
|
|
22840
|
+
`platform`, `architecture`, `delivery`, `entryPath` and `assetPath` are the explicit inputs of
|
|
22841
|
+
companion delivery; embedded delivery takes `platform`, one `architecture` and `delivery` only, and
|
|
22842
|
+
refuses a path. `assetPath` accepts one template, `[hash]`, replaced by the first 16 hex digits of
|
|
22843
|
+
the addon's published SHA256;
|
|
22751
22844
|
`platform` is the closed set `'darwin'`, and another name is a type error and a schema refusal.
|
|
22752
22845
|
The result is `ready` with verified assets and a structural Bun plugin, or `unsupported` /
|
|
22753
22846
|
`missing` / `mismatch` with the safe code `NATIVE_TARGET_UNSUPPORTED`, `NATIVE_ASSET_MISSING` or
|
|
@@ -22764,7 +22857,8 @@ and the published `size` and `sha256`.
|
|
|
22764
22857
|
Targets must be unique; entry and all asset paths must be disjoint. One lazy loader chooses only
|
|
22765
22858
|
the actual runtime architecture, with no fallback.
|
|
22766
22859
|
Companion mode places external addons relative to the emitted entry; embedded mode gives
|
|
22767
|
-
Bun compile the verified bytes of the matching addon
|
|
22768
|
-
|
|
22860
|
+
Bun compile the verified bytes of the matching addon, and its asset (`bytes`, `size`, `sha256`)
|
|
22861
|
+
has no `outputPath`, because nothing is written beside the executable. Keep companion JS builds
|
|
22862
|
+
without splitting, preserve every output, and write each asset's `bytes` to its `outputPath`.
|
|
22769
22863
|
This evolving entrypoint is a build dependency; runtime imports do not reach it.
|
|
22770
22864
|
The detailed recipe is in [native IO](../guide/native-io.md#public-native-packaging).
|
package/llms.txt
CHANGED
|
@@ -56,15 +56,15 @@ Load the slice for each entrypoint your code imports — `import … from 'stitc
|
|
|
56
56
|
- **stitchkit/node**: [llms/node.txt](llms/node.txt) 3.1 KB
|
|
57
57
|
- **stitchkit/agent-runtime/react**: [llms/agent-runtime-react.txt](llms/agent-runtime-react.txt) 1.0 KB
|
|
58
58
|
- **stitchkit/agent-runtime/realtime**: [llms/agent-runtime-realtime.txt](llms/agent-runtime-realtime.txt) 2.6 KB
|
|
59
|
-
- **stitchkit/process**: [llms/process.txt](llms/process.txt)
|
|
60
|
-
- **stitchkit/files/packaging**: [llms/files-packaging.txt](llms/files-packaging.txt) 2
|
|
59
|
+
- **stitchkit/process**: [llms/process.txt](llms/process.txt) 42.5 KB
|
|
60
|
+
- **stitchkit/files/packaging**: [llms/files-packaging.txt](llms/files-packaging.txt) 3.2 KB
|
|
61
61
|
|
|
62
62
|
## Upgrading slices
|
|
63
63
|
- **Upgrading — how to move across versions**: [llms/upgrading.txt](llms/upgrading.txt) 10.3 KB
|
|
64
|
-
- **Upgrading 0.
|
|
65
|
-
- **Upgrading 0.
|
|
66
|
-
- **Upgrading 0.
|
|
67
|
-
- **Upgrading 0.37.0 → 0.
|
|
64
|
+
- **Upgrading 0.98.0 → 0.107.0**: [llms/upgrading-0.98.0-0.107.0.txt](llms/upgrading-0.98.0-0.107.0.txt) 45.9 KB
|
|
65
|
+
- **Upgrading 0.72.0 → 0.97.0**: [llms/upgrading-0.72.0-0.97.0.txt](llms/upgrading-0.72.0-0.97.0.txt) 43.8 KB
|
|
66
|
+
- **Upgrading 0.59.0 → 0.71.0**: [llms/upgrading-0.59.0-0.71.0.txt](llms/upgrading-0.59.0-0.71.0.txt) 45.6 KB
|
|
67
|
+
- **Upgrading 0.37.0 → 0.58.0**: [llms/upgrading-0.37.0-0.58.0.txt](llms/upgrading-0.37.0-0.58.0.txt) 40.0 KB
|
|
68
68
|
|
|
69
69
|
## Guide (web)
|
|
70
70
|
- [Getting started](https://github.com/max-listov/stitchkit/blob/master/docs/guide/getting-started.md): install, entrypoints, and a first contract → server → client app
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "stitchkit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.107.0",
|
|
4
4
|
"description": "Contract-first backend framework — one defineContract() into an HTTP API, MCP tools, AI-agent tools and a typed client. Bun and Node.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"bun",
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
"url": "https://github.com/max-listov/stitchkit/issues"
|
|
31
31
|
},
|
|
32
32
|
"type": "module",
|
|
33
|
+
"sideEffects": false,
|
|
33
34
|
"engines": {
|
|
34
35
|
"bun": ">=1.2.0",
|
|
35
36
|
"node": ">=22"
|
|
@@ -265,10 +266,10 @@
|
|
|
265
266
|
"build:unlocked": "rm -rf dist && cp ../../CHANGELOG.md ./CHANGELOG.md && bun run build:js && chmod +x dist/entrypoints/bin/upgrade-cli.js && bun run build:types && bun scripts/check-browser-clean.mjs && bun scripts/check-browser-executes.mjs && bun scripts/check-env-live.mjs && bun scripts/check-public-types.mjs && bun scripts/check-durability-port-standalone.mjs && bun scripts/check-declarations-strict.mjs",
|
|
266
267
|
"dev": "bun run build:entrypoints -- --watch",
|
|
267
268
|
"prepack": "bun ../../scripts/sync-package-readme.ts && bun ../../scripts/gen-llms.ts && bun run build",
|
|
268
|
-
"test": "bun test",
|
|
269
|
+
"test": "bun ../../scripts/test-leak-gate.ts -- bun test",
|
|
269
270
|
"smoke:node": "node scripts/node-smoke.mjs",
|
|
270
271
|
"smoke:next-ssr": "node scripts/next-ssr-retry-smoke.mjs",
|
|
271
|
-
"consumer-lane": "bun scripts/consumer-lane/run.mjs",
|
|
272
|
+
"consumer-lane": "bun ../../scripts/test-leak-gate.ts -- bun scripts/consumer-lane/run.mjs",
|
|
272
273
|
"bench:mcp-preparation": "bun scripts/benchmark-mcp-preparation.ts",
|
|
273
274
|
"bench:durable-store": "bun scripts/bench-durable-store.ts",
|
|
274
275
|
"build:entrypoints": "bun scripts/generate-native-assets.ts && bun scripts/build-entrypoints.mjs"
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
stagingPath
|
|
3
|
-
} from "./index-j4zh647a.js";
|
|
4
1
|
import {
|
|
5
2
|
closeAfter,
|
|
6
3
|
closeAfterSync,
|
|
7
4
|
publishAtomicFile,
|
|
8
5
|
publishAtomicFileSync
|
|
9
6
|
} from "./index-b56nnscm.js";
|
|
7
|
+
import {
|
|
8
|
+
stagingPath
|
|
9
|
+
} from "./index-j4zh647a.js";
|
|
10
10
|
|
|
11
11
|
// src/internal/atomic-file.ts
|
|
12
12
|
import { closeSync, fchmodSync, fsyncSync, openSync, unlinkSync, writeSync } from "node:fs";
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
unauthorized2
|
|
3
|
-
} from "./index-j9gxbztg.js";
|
|
4
1
|
import {
|
|
5
2
|
deriveCodeChallenge2
|
|
6
3
|
} from "./index-ap3gqe56.js";
|
|
@@ -8,6 +5,9 @@ import {
|
|
|
8
5
|
bytesToBase64Url,
|
|
9
6
|
base64UrlToBytes
|
|
10
7
|
} from "./index-dwfv9a85.js";
|
|
8
|
+
import {
|
|
9
|
+
unauthorized2
|
|
10
|
+
} from "./index-j9gxbztg.js";
|
|
11
11
|
import {
|
|
12
12
|
safeJsonParse
|
|
13
13
|
} from "./index-zsarb5xp.js";
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
defineContract2
|
|
3
3
|
} from "./index-fsw1ybf3.js";
|
|
4
|
+
import {
|
|
5
|
+
bytesToBase64Url,
|
|
6
|
+
base64UrlToBytes
|
|
7
|
+
} from "./index-dwfv9a85.js";
|
|
4
8
|
import {
|
|
5
9
|
AppError2,
|
|
6
10
|
STITCH_ERROR_STATUS2,
|
|
7
11
|
isStitchErrorCode2
|
|
8
12
|
} from "./index-j9gxbztg.js";
|
|
9
|
-
import {
|
|
10
|
-
bytesToBase64Url,
|
|
11
|
-
base64UrlToBytes
|
|
12
|
-
} from "./index-dwfv9a85.js";
|
|
13
13
|
import {
|
|
14
14
|
typedEntries,
|
|
15
15
|
transportResult,
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
resolveTraceContext2
|
|
3
|
-
} from "./index-yex7eg1v.js";
|
|
4
1
|
import {
|
|
5
2
|
resolveSocketIp2,
|
|
6
3
|
getClientInfo2
|
|
7
4
|
} from "./index-kw1ws0cs.js";
|
|
5
|
+
import {
|
|
6
|
+
resolveTraceContext2
|
|
7
|
+
} from "./index-yex7eg1v.js";
|
|
8
8
|
import {
|
|
9
9
|
isUnsafeKey
|
|
10
10
|
} from "./index-zsarb5xp.js";
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
AppError2
|
|
3
|
-
} from "./index-j9gxbztg.js";
|
|
4
1
|
import {
|
|
5
2
|
ShutdownOptionsSchema2
|
|
6
3
|
} from "./index-q0th8q0z.js";
|
|
@@ -12,6 +9,9 @@ import {
|
|
|
12
9
|
import {
|
|
13
10
|
managedResourceDependencyId2
|
|
14
11
|
} from "./index-50ejfz75.js";
|
|
12
|
+
import {
|
|
13
|
+
AppError2
|
|
14
|
+
} from "./index-j9gxbztg.js";
|
|
15
15
|
|
|
16
16
|
// src/application/kernel-contract.ts
|
|
17
17
|
import { z } from "zod";
|