@zakstam/codex-local-component 0.6.0 → 0.7.1
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/LLMS.md +111 -0
- package/README.md +25 -249
- package/dist/component/_generated/api.d.ts +42 -0
- package/dist/component/_generated/api.d.ts.map +1 -1
- package/dist/component/_generated/api.js.map +1 -1
- package/dist/component/_generated/component.d.ts +279 -126
- package/dist/component/_generated/component.d.ts.map +1 -1
- package/dist/component/approvals.d.ts +2 -6
- package/dist/component/approvals.d.ts.map +1 -1
- package/dist/component/approvals.js +8 -7
- package/dist/component/approvals.js.map +1 -1
- package/dist/component/dispatch.d.ts +7 -21
- package/dist/component/dispatch.d.ts.map +1 -1
- package/dist/component/dispatch.js +21 -20
- package/dist/component/dispatch.js.map +1 -1
- package/dist/component/ingest/applyApprovals.d.ts.map +1 -1
- package/dist/component/ingest/applyApprovals.js +3 -2
- package/dist/component/ingest/applyApprovals.js.map +1 -1
- package/dist/component/ingest/applyMessages.d.ts.map +1 -1
- package/dist/component/ingest/applyMessages.js +8 -7
- package/dist/component/ingest/applyMessages.js.map +1 -1
- package/dist/component/ingest/applyStreams.d.ts.map +1 -1
- package/dist/component/ingest/applyStreams.js +13 -12
- package/dist/component/ingest/applyStreams.js.map +1 -1
- package/dist/component/ingest/applyTurns.d.ts.map +1 -1
- package/dist/component/ingest/applyTurns.js +8 -7
- package/dist/component/ingest/applyTurns.js.map +1 -1
- package/dist/component/ingest/checkpoints.d.ts.map +1 -1
- package/dist/component/ingest/checkpoints.js +10 -13
- package/dist/component/ingest/checkpoints.js.map +1 -1
- package/dist/component/ingest/index.d.ts.map +1 -1
- package/dist/component/ingest/index.js +3 -2
- package/dist/component/ingest/index.js.map +1 -1
- package/dist/component/ingest/postIngest.d.ts.map +1 -1
- package/dist/component/ingest/postIngest.js +2 -1
- package/dist/component/ingest/postIngest.js.map +1 -1
- package/dist/component/ingest/sessionGuard.d.ts.map +1 -1
- package/dist/component/ingest/sessionGuard.js +5 -14
- package/dist/component/ingest/sessionGuard.js.map +1 -1
- package/dist/component/ingest/stateCache.d.ts +1 -1
- package/dist/component/ingest/stateCache.d.ts.map +1 -1
- package/dist/component/ingest/stateCache.js +8 -8
- package/dist/component/ingest/stateCache.js.map +1 -1
- package/dist/component/ingest/types.d.ts +2 -4
- package/dist/component/ingest/types.d.ts.map +1 -1
- package/dist/component/messages.d.ts +2 -6
- package/dist/component/messages.d.ts.map +1 -1
- package/dist/component/messages.js +4 -3
- package/dist/component/messages.js.map +1 -1
- package/dist/component/reasoning.d.ts +1 -3
- package/dist/component/reasoning.d.ts.map +1 -1
- package/dist/component/reasoning.js +3 -2
- package/dist/component/reasoning.js.map +1 -1
- package/dist/component/schema.d.ts +116 -122
- package/dist/component/schema.d.ts.map +1 -1
- package/dist/component/schema.js +74 -78
- package/dist/component/schema.js.map +1 -1
- package/dist/component/scope.d.ts +4 -0
- package/dist/component/scope.d.ts.map +1 -0
- package/dist/component/scope.js +6 -0
- package/dist/component/scope.js.map +1 -0
- package/dist/component/serverRequests.d.ts +3 -9
- package/dist/component/serverRequests.d.ts.map +1 -1
- package/dist/component/serverRequests.js +11 -10
- package/dist/component/serverRequests.js.map +1 -1
- package/dist/component/sessions.d.ts +1 -1
- package/dist/component/sessions.js +3 -3
- package/dist/component/sessions.js.map +1 -1
- package/dist/component/streamStats.d.ts +4 -4
- package/dist/component/streamStats.d.ts.map +1 -1
- package/dist/component/streamStats.js +10 -10
- package/dist/component/streamStats.js.map +1 -1
- package/dist/component/streams.d.ts +3 -3
- package/dist/component/streams.js +18 -18
- package/dist/component/streams.js.map +1 -1
- package/dist/component/sync.d.ts +4 -12
- package/dist/component/sync.d.ts.map +1 -1
- package/dist/component/sync.js +1 -1
- package/dist/component/sync.js.map +1 -1
- package/dist/component/syncIngest.d.ts +1 -3
- package/dist/component/syncIngest.d.ts.map +1 -1
- package/dist/component/syncReplay.d.ts +1 -3
- package/dist/component/syncReplay.d.ts.map +1 -1
- package/dist/component/syncReplay.js +11 -12
- package/dist/component/syncReplay.js.map +1 -1
- package/dist/component/threads.d.ts +7 -21
- package/dist/component/threads.d.ts.map +1 -1
- package/dist/component/threads.js +35 -34
- package/dist/component/threads.js.map +1 -1
- package/dist/component/turns.d.ts +2 -6
- package/dist/component/turns.d.ts.map +1 -1
- package/dist/component/turns.js +9 -8
- package/dist/component/turns.js.map +1 -1
- package/dist/component/turnsInternal.d.ts +1 -1
- package/dist/component/turnsInternal.js +3 -3
- package/dist/component/turnsInternal.js.map +1 -1
- package/dist/component/types.d.ts +4 -10
- package/dist/component/types.d.ts.map +1 -1
- package/dist/component/types.js +1 -3
- package/dist/component/types.js.map +1 -1
- package/dist/component/utils.d.ts.map +1 -1
- package/dist/component/utils.js +8 -11
- package/dist/component/utils.js.map +1 -1
- package/dist/host/convex-entry.d.ts +4 -1
- package/dist/host/convex-entry.d.ts.map +1 -1
- package/dist/host/convex-entry.js +3 -0
- package/dist/host/convex-entry.js.map +1 -1
- package/dist/host/convexPreset.d.ts +1422 -0
- package/dist/host/convexPreset.d.ts.map +1 -0
- package/dist/host/convexPreset.js +516 -0
- package/dist/host/convexPreset.js.map +1 -0
- package/dist/host/convexSlice.d.ts +46 -40
- package/dist/host/convexSlice.d.ts.map +1 -1
- package/dist/host/convexSlice.js +2 -4
- package/dist/host/convexSlice.js.map +1 -1
- package/dist/host/index.d.ts +4 -1
- package/dist/host/index.d.ts.map +1 -1
- package/dist/host/index.js +3 -0
- package/dist/host/index.js.map +1 -1
- package/dist/host/runtime.d.ts +1 -3
- package/dist/host/runtime.d.ts.map +1 -1
- package/dist/host/runtime.js +1 -1
- package/dist/host/runtime.js.map +1 -1
- package/dist/host/surfaceGenerator.d.ts +16 -0
- package/dist/host/surfaceGenerator.d.ts.map +1 -0
- package/dist/host/surfaceGenerator.js +56 -0
- package/dist/host/surfaceGenerator.js.map +1 -0
- package/dist/host/surfaceManifest.d.ts +27 -0
- package/dist/host/surfaceManifest.d.ts.map +1 -0
- package/dist/host/surfaceManifest.js +78 -0
- package/dist/host/surfaceManifest.js.map +1 -0
- package/dist/host/wrapDefinitions.d.ts +17 -0
- package/dist/host/wrapDefinitions.d.ts.map +1 -0
- package/dist/host/wrapDefinitions.js +18 -0
- package/dist/host/wrapDefinitions.js.map +1 -0
- package/docs/CLIENT_AND_REACT_HOOKS.md +99 -0
- package/docs/DISPATCH_MANAGED_REFERENCE_HOST.md +64 -0
- package/docs/HOST_INTEGRATION.md +89 -0
- package/docs/HOST_PRESET_MATRIX.md +72 -0
- package/docs/OPERATIONS_AND_ERRORS.md +62 -0
- package/docs/RUNTIME_OWNED_REFERENCE_HOST.md +59 -0
- package/package.json +8 -3
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# Host Integration Guide
|
|
2
|
+
|
|
3
|
+
Canonical default: runtime-owned host integration (`dispatchManaged: false`).
|
|
4
|
+
|
|
5
|
+
This doc is aligned to the single canonical implementation in `../LLMS.md`.
|
|
6
|
+
|
|
7
|
+
## Actor Scope Contract
|
|
8
|
+
|
|
9
|
+
Use `actor: { userId?: string }` at all host/component boundaries.
|
|
10
|
+
|
|
11
|
+
- `userId` present -> identified-user isolation.
|
|
12
|
+
- `userId` omitted -> anonymous-only isolation.
|
|
13
|
+
- Tenant/device identifiers are not part of the contract.
|
|
14
|
+
|
|
15
|
+
## Required Flow
|
|
16
|
+
|
|
17
|
+
1. Mount component in `convex/convex.config.ts`.
|
|
18
|
+
2. Generate host wrappers from manifest (`pnpm run host:generate`).
|
|
19
|
+
3. Keep host files split:
|
|
20
|
+
- `convex/chat.generated.ts` (generated)
|
|
21
|
+
- `convex/chat.extensions.ts` (app-owned)
|
|
22
|
+
- `convex/chat.ts` (stable re-export entrypoint)
|
|
23
|
+
4. Start runtime with `dispatchManaged: false`.
|
|
24
|
+
5. Submit turns through `runtime.sendTurn(text)`.
|
|
25
|
+
6. Run `chat.validateHostWiring` at startup.
|
|
26
|
+
|
|
27
|
+
## Mount the Component
|
|
28
|
+
|
|
29
|
+
```ts
|
|
30
|
+
import { defineApp } from "convex/server";
|
|
31
|
+
import codexLocal from "@zakstam/codex-local-component/convex.config";
|
|
32
|
+
|
|
33
|
+
const app = defineApp();
|
|
34
|
+
app.use(codexLocal);
|
|
35
|
+
|
|
36
|
+
export default app;
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Run `npx convex dev` once so `components.codexLocal.*` types are generated.
|
|
40
|
+
|
|
41
|
+
## Generate and Check Host Surfaces
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
pnpm run host:generate
|
|
45
|
+
pnpm run host:check
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Generated wrappers use app `mutation(...)` and `query(...)` exports directly so Convex codegen and app-generated types stay authoritative.
|
|
49
|
+
|
|
50
|
+
## Runtime Contract
|
|
51
|
+
|
|
52
|
+
Runtime startup must be explicit runtime-owned:
|
|
53
|
+
|
|
54
|
+
```ts
|
|
55
|
+
await runtime.start({
|
|
56
|
+
actor,
|
|
57
|
+
sessionId,
|
|
58
|
+
dispatchManaged: false,
|
|
59
|
+
threadStrategy: "start",
|
|
60
|
+
});
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Turn start API for canonical flow:
|
|
64
|
+
|
|
65
|
+
```ts
|
|
66
|
+
await runtime.sendTurn(inputText);
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Startup Wiring Validation
|
|
70
|
+
|
|
71
|
+
Call `chat.validateHostWiring` once when your host process starts.
|
|
72
|
+
|
|
73
|
+
Expected response shape:
|
|
74
|
+
|
|
75
|
+
- `ok: boolean`
|
|
76
|
+
- `checks: Array<{ name: string; ok: boolean; detail?: string }>`
|
|
77
|
+
|
|
78
|
+
If `ok` is `false`, fail startup and surface details in logs.
|
|
79
|
+
|
|
80
|
+
## Convex Boundary Rule
|
|
81
|
+
|
|
82
|
+
Convex-deployed code must not import `@zakstam/codex-local-component/protocol/parser`.
|
|
83
|
+
Use host wrapper exports (`@zakstam/codex-local-component/host/convex`) inside Convex functions.
|
|
84
|
+
|
|
85
|
+
## Advanced Appendix (Non-Default)
|
|
86
|
+
|
|
87
|
+
Dispatch-managed orchestration is advanced and non-default. Use only when explicitly requested:
|
|
88
|
+
|
|
89
|
+
- `DISPATCH_MANAGED_REFERENCE_HOST.md`
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
<!-- AUTO-GENERATED by packages/codex-local-component/scripts/generate-host-surfaces.mjs -->
|
|
2
|
+
|
|
3
|
+
# Host Preset Matrix
|
|
4
|
+
|
|
5
|
+
Canonical source for host preset surfaces.
|
|
6
|
+
|
|
7
|
+
## Presets
|
|
8
|
+
|
|
9
|
+
| Preset builder | Profile | Ingest mode | Thread mode | Intended host |
|
|
10
|
+
| --- | --- | --- | --- | --- |
|
|
11
|
+
| `defineDispatchManagedHostSlice` | `dispatchManaged` | `mixed` | `resolve` | Tauri / externally claimed dispatch |
|
|
12
|
+
| `defineRuntimeOwnedHostSlice` | `runtimeOwned` | `streamOnly` | `create` | Runtime-owned orchestration |
|
|
13
|
+
|
|
14
|
+
## Deterministic query surface
|
|
15
|
+
|
|
16
|
+
All focused preset builders include:
|
|
17
|
+
|
|
18
|
+
- `validateHostWiring`
|
|
19
|
+
- `getTurnDispatchState`
|
|
20
|
+
- `getDispatchObservability`
|
|
21
|
+
- `threadSnapshot`
|
|
22
|
+
- `persistenceStats`
|
|
23
|
+
- `durableHistoryStats`
|
|
24
|
+
- `listThreadMessagesForHooks`
|
|
25
|
+
- `listTurnMessagesForHooks`
|
|
26
|
+
- `listPendingApprovalsForHooks`
|
|
27
|
+
|
|
28
|
+
Additional query endpoints:
|
|
29
|
+
|
|
30
|
+
- Dispatch-managed only: `listThreadReasoningForHooks`, `listPendingServerRequestsForHooks`
|
|
31
|
+
- Runtime-owned only: `dataHygiene`
|
|
32
|
+
|
|
33
|
+
## Deterministic mutation surface
|
|
34
|
+
|
|
35
|
+
All focused preset builders include:
|
|
36
|
+
|
|
37
|
+
- `ensureThread`
|
|
38
|
+
- `enqueueTurnDispatch`
|
|
39
|
+
- `claimNextTurnDispatch`
|
|
40
|
+
- `markTurnDispatchStarted`
|
|
41
|
+
- `markTurnDispatchCompleted`
|
|
42
|
+
- `markTurnDispatchFailed`
|
|
43
|
+
- `cancelTurnDispatch`
|
|
44
|
+
- `ensureSession`
|
|
45
|
+
- `ingestEvent`
|
|
46
|
+
- `ingestBatch`
|
|
47
|
+
- `respondApprovalForHooks`
|
|
48
|
+
- `interruptTurnForHooks`
|
|
49
|
+
|
|
50
|
+
Dispatch-managed additionally includes:
|
|
51
|
+
|
|
52
|
+
- `upsertPendingServerRequestForHooks`
|
|
53
|
+
- `resolvePendingServerRequestForHooks`
|
|
54
|
+
|
|
55
|
+
## Wiring preflight
|
|
56
|
+
|
|
57
|
+
Call `validateHostWiring` after deploy/startup to fail fast on component mount drift.
|
|
58
|
+
|
|
59
|
+
Example:
|
|
60
|
+
|
|
61
|
+
```ts
|
|
62
|
+
await ctx.runQuery(api.chat.validateHostWiring, {
|
|
63
|
+
actor,
|
|
64
|
+
});
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Response shape:
|
|
68
|
+
|
|
69
|
+
- `ok: boolean`
|
|
70
|
+
- `checks: Array<{ name: string; ok: boolean; error?: string }>`
|
|
71
|
+
|
|
72
|
+
If `ok` is false, one or more required `components.codexLocal.*` paths are not reachable in the current deployment.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Operations and Error Catalog
|
|
2
|
+
|
|
3
|
+
Canonical default: runtime-owned host integration (`dispatchManaged: false`).
|
|
4
|
+
|
|
5
|
+
This is an operations/runbook companion to `../LLMS.md`.
|
|
6
|
+
|
|
7
|
+
## Runtime Boundary Errors
|
|
8
|
+
|
|
9
|
+
- `E_RUNTIME_DISPATCH_MODE_REQUIRED`: runtime started without explicit dispatch mode.
|
|
10
|
+
- `E_RUNTIME_DISPATCH_MODE_CONFLICT`: runtime API used in the wrong mode for current startup config.
|
|
11
|
+
- `E_RUNTIME_DISPATCH_TURN_IN_FLIGHT`: attempted to start another turn while one is active.
|
|
12
|
+
- `E_RUNTIME_DISPATCH_CLAIM_INVALID`: claimed-turn payload was invalid.
|
|
13
|
+
|
|
14
|
+
## Authorization Errors
|
|
15
|
+
|
|
16
|
+
- `E_AUTH_THREAD_FORBIDDEN`
|
|
17
|
+
- `E_AUTH_TURN_FORBIDDEN`
|
|
18
|
+
- `E_AUTH_SESSION_FORBIDDEN`
|
|
19
|
+
|
|
20
|
+
## Sync Ingest Errors
|
|
21
|
+
|
|
22
|
+
- `E_SYNC_EMPTY_BATCH`
|
|
23
|
+
- `E_SYNC_SESSION_NOT_FOUND`
|
|
24
|
+
- `E_SYNC_SESSION_THREAD_MISMATCH`
|
|
25
|
+
- `E_SYNC_INVALID_CURSOR_RANGE`
|
|
26
|
+
- `E_SYNC_OUT_OF_ORDER`
|
|
27
|
+
- `E_SYNC_DUP_EVENT_IN_BATCH`
|
|
28
|
+
|
|
29
|
+
Use `sync.ingestSafe` in host wrappers so recoverable conditions return structured status instead of hard-failing the loop.
|
|
30
|
+
|
|
31
|
+
## Replay Recovery
|
|
32
|
+
|
|
33
|
+
`sync.replay` and `sync.resumeReplay` are status-driven:
|
|
34
|
+
|
|
35
|
+
- `ok`: replay served normally
|
|
36
|
+
- `rebased`: requested cursor was behind retained window
|
|
37
|
+
- `stale`: no useful replay window; rely on durable state and next checkpoint
|
|
38
|
+
|
|
39
|
+
Follow `nextCheckpoints` and persist with `sync.upsertCheckpoint`.
|
|
40
|
+
|
|
41
|
+
## Startup and Health Runbook
|
|
42
|
+
|
|
43
|
+
1. Run `chat.validateHostWiring` at startup.
|
|
44
|
+
2. Start runtime with `dispatchManaged: false`.
|
|
45
|
+
3. Ensure one active turn at a time (`turnInFlight` guard).
|
|
46
|
+
4. On protocol errors, restart bridge runtime and rebind session.
|
|
47
|
+
5. On stale/missing session errors, call `sync.ensureSession` then continue ingest.
|
|
48
|
+
|
|
49
|
+
## Pending Request Runbook
|
|
50
|
+
|
|
51
|
+
When pending server requests accumulate:
|
|
52
|
+
|
|
53
|
+
1. List pending requests.
|
|
54
|
+
2. Confirm request id is still pending.
|
|
55
|
+
3. Respond through the matching runtime response API.
|
|
56
|
+
4. If turn already ended, treat request as expired.
|
|
57
|
+
|
|
58
|
+
## Advanced Appendix (Non-Default)
|
|
59
|
+
|
|
60
|
+
Dispatch-managed orchestration operations are documented separately:
|
|
61
|
+
|
|
62
|
+
- `DISPATCH_MANAGED_REFERENCE_HOST.md`
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Runtime-Owned Reference Host
|
|
2
|
+
|
|
3
|
+
Canonical default: runtime-owned host integration (`dispatchManaged: false`).
|
|
4
|
+
|
|
5
|
+
Use `../LLMS.md` for the normative implementation sequence.
|
|
6
|
+
This file is a focused runtime-owned behavior reference.
|
|
7
|
+
|
|
8
|
+
## Actor Scope Contract
|
|
9
|
+
|
|
10
|
+
Use `actor: { userId?: string }` when starting runtime and calling host wrappers.
|
|
11
|
+
Identified `userId` values are user-scoped; omitted `userId` is anonymous-scoped.
|
|
12
|
+
|
|
13
|
+
## Runtime Mode
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
await runtime.start({
|
|
17
|
+
actor,
|
|
18
|
+
sessionId,
|
|
19
|
+
dispatchManaged: false,
|
|
20
|
+
threadStrategy: "start",
|
|
21
|
+
});
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
In this mode:
|
|
25
|
+
|
|
26
|
+
- `runtime.sendTurn(...)` starts turns.
|
|
27
|
+
- `runtime.startClaimedTurn(...)` is invalid (`E_RUNTIME_DISPATCH_MODE_CONFLICT`).
|
|
28
|
+
|
|
29
|
+
## Host Surface Expectations
|
|
30
|
+
|
|
31
|
+
Runtime-owned generated wrappers include dispatch lifecycle, ingest/session, and hook query endpoints.
|
|
32
|
+
Keep these files split:
|
|
33
|
+
|
|
34
|
+
- `convex/chat.generated.ts` (generated preset surface)
|
|
35
|
+
- `convex/chat.extensions.ts` (app-specific additions)
|
|
36
|
+
- `convex/chat.ts` (stable re-export entrypoint)
|
|
37
|
+
|
|
38
|
+
## Expected Progression
|
|
39
|
+
|
|
40
|
+
Successful turn path:
|
|
41
|
+
|
|
42
|
+
1. `sendTurn` accepted.
|
|
43
|
+
2. Dispatch progresses through queue/claim/start.
|
|
44
|
+
3. Runtime emits `turn/completed`.
|
|
45
|
+
4. Dispatch terminal state is `completed`.
|
|
46
|
+
|
|
47
|
+
Failure path:
|
|
48
|
+
|
|
49
|
+
1. `sendTurn` accepted.
|
|
50
|
+
2. Runtime emits failure event.
|
|
51
|
+
3. Dispatch terminal state is `failed` with code/reason.
|
|
52
|
+
|
|
53
|
+
Use `getDispatchObservability` for single-query diagnosis.
|
|
54
|
+
|
|
55
|
+
## Advanced Appendix (Non-Default)
|
|
56
|
+
|
|
57
|
+
If explicit external dispatch ownership is required, use:
|
|
58
|
+
|
|
59
|
+
- `DISPATCH_MANAGED_REFERENCE_HOST.md`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zakstam/codex-local-component",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -48,7 +48,9 @@
|
|
|
48
48
|
},
|
|
49
49
|
"files": [
|
|
50
50
|
"dist",
|
|
51
|
-
"README.md"
|
|
51
|
+
"README.md",
|
|
52
|
+
"LLMS.md",
|
|
53
|
+
"docs"
|
|
52
54
|
],
|
|
53
55
|
"publishConfig": {
|
|
54
56
|
"access": "public",
|
|
@@ -75,10 +77,13 @@
|
|
|
75
77
|
"clean": "rm -rf dist",
|
|
76
78
|
"build": "tsc -p tsconfig.build.json",
|
|
77
79
|
"build:watch": "tsc -p tsconfig.build.json --watch --preserveWatchOutput",
|
|
80
|
+
"generate:host-surfaces": "pnpm run build && node ./scripts/generate-host-surfaces.mjs",
|
|
81
|
+
"check:host-surfaces": "pnpm run build && node ./scripts/generate-host-surfaces.mjs --check",
|
|
78
82
|
"typecheck": "tsc --noEmit",
|
|
79
83
|
"test": "pnpm run build && node --test test/*.test.mjs",
|
|
80
84
|
"check:mount-imports": "node ./scripts/check-mount-imports.mjs",
|
|
81
85
|
"check:unsafe-types": "node ./scripts/check-unsafe-types.mjs",
|
|
82
|
-
"
|
|
86
|
+
"check:docs:single-path": "node ./scripts/check-docs-single-path.mjs",
|
|
87
|
+
"ci": "pnpm run typecheck && pnpm run check:unsafe-types && pnpm run test && pnpm run check:mount-imports && pnpm run check:host-surfaces && pnpm run check:docs:single-path"
|
|
83
88
|
}
|
|
84
89
|
}
|