stitchkit 0.95.0 → 0.95.2
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 +43 -0
- package/dist/application/directory-inbox-contract.d.ts +129 -0
- package/dist/application/directory-inbox-contract.d.ts.map +1 -0
- package/dist/application/directory-inbox.d.ts +3 -0
- package/dist/application/directory-inbox.d.ts.map +1 -0
- package/dist/entrypoints/application/directory-inbox.d.ts +11 -0
- package/dist/entrypoints/application/directory-inbox.d.ts.map +1 -0
- package/dist/entrypoints/application/directory-inbox.js +221 -0
- package/dist/entrypoints/application.d.ts +1 -0
- package/dist/entrypoints/application.d.ts.map +1 -1
- package/dist/entrypoints/application.js +6 -0
- package/dist/entrypoints/server.js +6 -219
- package/dist/entrypoints/voice.d.ts +6 -0
- package/dist/entrypoints/voice.d.ts.map +1 -0
- package/dist/entrypoints/voice.js +221 -0
- package/dist/index-5jrd0yng.js +114 -0
- package/dist/index-tm88avnj.js +221 -0
- package/dist/voice/phases.d.ts +4 -0
- package/dist/voice/phases.d.ts.map +1 -0
- package/dist/voice/sentences.d.ts +8 -0
- package/dist/voice/sentences.d.ts.map +1 -0
- package/dist/voice/speakable.d.ts +2 -0
- package/dist/voice/speakable.d.ts.map +1 -0
- package/dist/voice/speech-queue.d.ts +42 -0
- package/dist/voice/speech-queue.d.ts.map +1 -0
- package/llms/application-directory-inbox.txt +9 -0
- package/llms/application.2.txt +2 -0
- package/llms/application.txt +30 -1
- package/llms/stitchkit.txt +2 -0
- package/llms/voice.txt +106 -0
- package/llms-full.txt +131 -1
- package/llms.txt +5 -2
- package/package.json +9 -1
package/CHANGELOG.md
CHANGED
|
@@ -15,6 +15,49 @@ additive**; the first breaking change landed in 0.10.0. Grep the file for
|
|
|
15
15
|
|
|
16
16
|
## [Unreleased]
|
|
17
17
|
|
|
18
|
+
## [0.95.2] — 2026-09-23
|
|
19
|
+
|
|
20
|
+
### Added
|
|
21
|
+
|
|
22
|
+
- `stitchkit/voice` (new, browser **and** server, evolving, no dependencies) — the
|
|
23
|
+
mechanics of a live voice conversation with an agent that applications were each
|
|
24
|
+
carrying a copy of:
|
|
25
|
+
- **`SentenceCutter`** — `next(text, final)` cuts a reply into finished sentences
|
|
26
|
+
while it streams, so a voice starts on the first one; not at `3.5`, `т. е.` or an
|
|
27
|
+
ellipsis before lowercase, never inside a fenced code block; `reset()` starts a
|
|
28
|
+
new turn.
|
|
29
|
+
- **`speakableText(markdown)`** — what a reader sees, without Markdown delimiters,
|
|
30
|
+
link and image addresses, bare addresses, fenced code blocks or tables.
|
|
31
|
+
- **`SpeechQueue<Prepared>({ prepare, play, lookahead, onError, discard })`** —
|
|
32
|
+
speaks sentences in order and synthesises up to `lookahead` (default 1) while one
|
|
33
|
+
plays, so a synthesiser that returns whole clips leaves no gap between sentences;
|
|
34
|
+
`close()` finishes what is queued, `cancel()` aborts the playing sentence and every
|
|
35
|
+
synthesis in flight and settles `done` at once; a failed sentence is reported and
|
|
36
|
+
skipped.
|
|
37
|
+
- **`LIVE_VOICE_PHASES` / `LiveVoicePhase`** — `opening`, `idle`, `hearing`,
|
|
38
|
+
`thinking`, `speaking`.
|
|
39
|
+
|
|
40
|
+
Migration for an application with its own copy: import these four from
|
|
41
|
+
`stitchkit/voice` and delete the copy. A sequential queue over a streaming
|
|
42
|
+
synthesiser is `lookahead: 0`.
|
|
43
|
+
|
|
44
|
+
## [0.95.1] — 2026-09-23
|
|
45
|
+
|
|
46
|
+
### Added
|
|
47
|
+
|
|
48
|
+
- `stitchkit/application/directory-inbox` (new, server, evolving) —
|
|
49
|
+
**`createDirectoryInbox({ id, directory, schema, handle })`**, with its
|
|
50
|
+
contract (`DirectoryInboxConfig`, `DirectoryInboxStateSchema`, …) in
|
|
51
|
+
`stitchkit/application`: a managed resource that delivers each `<name>.json` entry
|
|
52
|
+
another program drops into a directory to the application at least once,
|
|
53
|
+
after readiness. Taken and done are separate durable records — a claim with a
|
|
54
|
+
lease before `handle`, a receipt after it and only then the file removed — so
|
|
55
|
+
a restart neither loses an entry nor repeats a finished one. A throwing
|
|
56
|
+
handler is retried with a backoff; an entry that fails its schema, is too
|
|
57
|
+
large or used up `maxAttempts` is moved to `rejected/` with its reason and
|
|
58
|
+
the queue keeps flowing. `stopAdmission` stops taking entries, `force` aborts
|
|
59
|
+
the delivery in flight. A consuming project wrote this receiver by hand.
|
|
60
|
+
|
|
18
61
|
## [0.95.0] — 2026-09-23
|
|
19
62
|
|
|
20
63
|
### ⚠️ Breaking changes
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import type { ManagedResource, ManagedResourceDependency } from './resource.js';
|
|
3
|
+
import type { StateStore } from './state-store.js';
|
|
4
|
+
export declare const DirectoryInboxRejectionReasonSchema: z.ZodEnum<{
|
|
5
|
+
"attempt-limit": "attempt-limit";
|
|
6
|
+
invalid: "invalid";
|
|
7
|
+
"too-large": "too-large";
|
|
8
|
+
}>;
|
|
9
|
+
export type DirectoryInboxRejectionReason = z.infer<typeof DirectoryInboxRejectionReasonSchema>;
|
|
10
|
+
export declare const DirectoryInboxStateSchema: z.ZodObject<{
|
|
11
|
+
schemaVersion: z.ZodLiteral<1>;
|
|
12
|
+
claims: z.ZodArray<z.ZodObject<{
|
|
13
|
+
key: z.ZodString;
|
|
14
|
+
attempts: z.ZodNumber;
|
|
15
|
+
nextAttemptAt: z.ZodString;
|
|
16
|
+
leaseId: z.ZodNullable<z.ZodString>;
|
|
17
|
+
leaseUntil: z.ZodNullable<z.ZodString>;
|
|
18
|
+
}, z.core.$strict>>;
|
|
19
|
+
receipts: z.ZodArray<z.ZodObject<{
|
|
20
|
+
key: z.ZodString;
|
|
21
|
+
completedAt: z.ZodString;
|
|
22
|
+
}, z.core.$strict>>;
|
|
23
|
+
rejected: z.ZodArray<z.ZodObject<{
|
|
24
|
+
key: z.ZodString;
|
|
25
|
+
reason: z.ZodEnum<{
|
|
26
|
+
"attempt-limit": "attempt-limit";
|
|
27
|
+
invalid: "invalid";
|
|
28
|
+
"too-large": "too-large";
|
|
29
|
+
}>;
|
|
30
|
+
detail: z.ZodString;
|
|
31
|
+
rejectedAt: z.ZodString;
|
|
32
|
+
}, z.core.$strict>>;
|
|
33
|
+
}, z.core.$strict>;
|
|
34
|
+
export type DirectoryInboxState = z.infer<typeof DirectoryInboxStateSchema>;
|
|
35
|
+
export type DirectoryInboxClaim = DirectoryInboxState['claims'][number];
|
|
36
|
+
export type DirectoryInboxRejection = DirectoryInboxState['rejected'][number];
|
|
37
|
+
export declare const emptyDirectoryInboxState: () => DirectoryInboxState;
|
|
38
|
+
/**
|
|
39
|
+
* A directory another program drops entries into, handed to the application
|
|
40
|
+
* at least once each. The producer writes each entry atomically as a
|
|
41
|
+
* `<name>.json` file (a temporary name, then a rename); names starting with a
|
|
42
|
+
* dot are never read, which is where the inbox keeps its own state.
|
|
43
|
+
*/
|
|
44
|
+
export interface DirectoryInboxDelivery<TEntry> {
|
|
45
|
+
/** The entry's file name — stable across retries and restarts. */
|
|
46
|
+
readonly key: string;
|
|
47
|
+
readonly entry: TEntry;
|
|
48
|
+
/** 1 on the first delivery of this entry. */
|
|
49
|
+
readonly attempt: number;
|
|
50
|
+
/** Aborted when the application is forced down mid-delivery. */
|
|
51
|
+
readonly signal: AbortSignal;
|
|
52
|
+
}
|
|
53
|
+
export interface DirectoryInboxConfig<TEntry> {
|
|
54
|
+
readonly id: string;
|
|
55
|
+
readonly directory: string;
|
|
56
|
+
readonly schema: z.ZodType<TEntry>;
|
|
57
|
+
/** Throwing leaves the entry for a later attempt. */
|
|
58
|
+
readonly handle: (delivery: DirectoryInboxDelivery<TEntry>) => void | Promise<void>;
|
|
59
|
+
readonly dependsOn?: readonly ManagedResourceDependency[];
|
|
60
|
+
/** Default: `<directory>/.inbox-state.json`, locked across processes. */
|
|
61
|
+
readonly store?: StateStore<DirectoryInboxState>;
|
|
62
|
+
readonly clock?: () => Date;
|
|
63
|
+
/** How often the directory is read while the application runs. Default 1 s. */
|
|
64
|
+
readonly pollIntervalMs?: number;
|
|
65
|
+
/** How long a taken entry is someone's before it may be taken again. Default 5 min. */
|
|
66
|
+
readonly leaseMs?: number;
|
|
67
|
+
/** Deliveries of one entry before it is set aside. Default 20. */
|
|
68
|
+
readonly maxAttempts?: number;
|
|
69
|
+
/** Larger entries are set aside unread. Default 1 MiB. */
|
|
70
|
+
readonly maxEntryBytes?: number;
|
|
71
|
+
/** Receipts and rejections kept. Default 1 000. */
|
|
72
|
+
readonly retain?: number;
|
|
73
|
+
/** An entry was set aside into `<directory>/rejected/`, with the reason. */
|
|
74
|
+
readonly onRejected?: (rejection: DirectoryInboxRejection) => void | Promise<void>;
|
|
75
|
+
/**
|
|
76
|
+
* A delivery failed (the entry is retried after a backoff) or a whole pass
|
|
77
|
+
* did (storage, the directory; the next poll tries again).
|
|
78
|
+
*/
|
|
79
|
+
readonly onError?: (error: unknown) => void | Promise<void>;
|
|
80
|
+
}
|
|
81
|
+
export interface DirectoryInbox {
|
|
82
|
+
/** Deliver every entry due now; resolves with how many were handled. */
|
|
83
|
+
flush(): Promise<number>;
|
|
84
|
+
state(): Promise<DirectoryInboxState>;
|
|
85
|
+
}
|
|
86
|
+
export interface DirectoryInboxResource extends ManagedResource {
|
|
87
|
+
start(): Promise<{
|
|
88
|
+
readonly value: DirectoryInbox;
|
|
89
|
+
}>;
|
|
90
|
+
}
|
|
91
|
+
/** What the next step does with one entry of the directory. */
|
|
92
|
+
export type InboxStep = {
|
|
93
|
+
readonly kind: 'skip';
|
|
94
|
+
} | {
|
|
95
|
+
readonly kind: 'remove';
|
|
96
|
+
} | {
|
|
97
|
+
readonly kind: 'set-aside';
|
|
98
|
+
} | {
|
|
99
|
+
readonly kind: 'reject';
|
|
100
|
+
readonly rejection: DirectoryInboxRejection;
|
|
101
|
+
} | {
|
|
102
|
+
readonly kind: 'deliver';
|
|
103
|
+
readonly claim: DirectoryInboxClaim;
|
|
104
|
+
};
|
|
105
|
+
interface StepInput {
|
|
106
|
+
readonly key: string;
|
|
107
|
+
readonly now: Date;
|
|
108
|
+
readonly leaseMs: number;
|
|
109
|
+
readonly maxAttempts: number;
|
|
110
|
+
readonly retain: number;
|
|
111
|
+
}
|
|
112
|
+
export declare function withRejection(state: DirectoryInboxState, rejection: DirectoryInboxRejection, retain: number): DirectoryInboxState;
|
|
113
|
+
/**
|
|
114
|
+
* Decide one entry, and take it when it is due. A claim whose attempts are
|
|
115
|
+
* spent is not taken again: an entry whose handling kills the process would
|
|
116
|
+
* otherwise be retried on every restart, forever.
|
|
117
|
+
*/
|
|
118
|
+
export declare function claimEntry(state: DirectoryInboxState, input: StepInput): {
|
|
119
|
+
readonly state: DirectoryInboxState;
|
|
120
|
+
readonly step: InboxStep;
|
|
121
|
+
};
|
|
122
|
+
/** The entry was handled: its receipt replaces its claim. */
|
|
123
|
+
export declare function completeEntry(state: DirectoryInboxState, entryKey: string, now: Date, retain: number): DirectoryInboxState;
|
|
124
|
+
/** The handler refused: wait, then take it again — unless it is no longer ours. */
|
|
125
|
+
export declare function releaseEntry(state: DirectoryInboxState, claim: DirectoryInboxClaim, retryAt: Date): DirectoryInboxState;
|
|
126
|
+
/** Records about entries that are gone from the directory, except a live lease. */
|
|
127
|
+
export declare function forgetMissing(state: DirectoryInboxState, present: ReadonlySet<string>, now: Date): DirectoryInboxState;
|
|
128
|
+
export {};
|
|
129
|
+
//# sourceMappingURL=directory-inbox-contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"directory-inbox-contract.d.ts","sourceRoot":"","sources":["../../src/application/directory-inbox-contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"directory-inbox.d.ts","sourceRoot":"","sources":["../../src/application/directory-inbox.ts"],"names":[],"mappings":"AAIA,OAAO,EAKL,KAAK,oBAAoB,EAEzB,KAAK,sBAAsB,EAO5B,MAAM,4BAA4B,CAAC;AAyEpC,wBAAgB,oBAAoB,CAAC,MAAM,EACzC,MAAM,EAAE,oBAAoB,CAAC,MAAM,CAAC,GACnC,sBAAsB,CAiKxB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The directory inbox — delivers each entry another program drops into a
|
|
3
|
+
* directory to the application at least once.
|
|
4
|
+
*
|
|
5
|
+
* Its own entrypoint because it reads, renames and removes files (`node:fs`),
|
|
6
|
+
* and `stitchkit/application` must stay importable in a browser. Its contract —
|
|
7
|
+
* the configuration, the delivery, the state and rejection schemas — stays in
|
|
8
|
+
* `stitchkit/application`, as the diagnostic journal's does. → ADR 0156.
|
|
9
|
+
*/
|
|
10
|
+
export { createDirectoryInbox } from '../../application/directory-inbox.js';
|
|
11
|
+
//# sourceMappingURL=directory-inbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"directory-inbox.d.ts","sourceRoot":"","sources":["../../../src/entrypoints/application/directory-inbox.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC"}
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
import {
|
|
2
|
+
DirectoryInboxStateSchema,
|
|
3
|
+
claimEntry,
|
|
4
|
+
completeEntry,
|
|
5
|
+
emptyDirectoryInboxState,
|
|
6
|
+
forgetMissing,
|
|
7
|
+
releaseEntry,
|
|
8
|
+
withRejection
|
|
9
|
+
} from "../../index-5jrd0yng.js";
|
|
10
|
+
import {
|
|
11
|
+
defineManagedResource
|
|
12
|
+
} from "../../index-2k4yrqkc.js";
|
|
13
|
+
import {
|
|
14
|
+
createFileStateStore
|
|
15
|
+
} from "../../index-tm88avnj.js";
|
|
16
|
+
import {
|
|
17
|
+
backoffDelay
|
|
18
|
+
} from "../../index-ngfhvfpd.js";
|
|
19
|
+
import"../../index-hffjpmq9.js";
|
|
20
|
+
|
|
21
|
+
// src/application/directory-inbox.ts
|
|
22
|
+
import { mkdir, readdir, readFile, rename, stat, unlink } from "node:fs/promises";
|
|
23
|
+
import { join } from "node:path";
|
|
24
|
+
import { z } from "zod";
|
|
25
|
+
var REJECTED = "rejected";
|
|
26
|
+
var ENTRY_NAME = /^[^.].*\.json$/;
|
|
27
|
+
var RETRY_BACKOFF = { minDelayMs: 1000, maxDelayMs: 300000, jitter: 0 };
|
|
28
|
+
var absent = (error) => error instanceof Error && ("code" in error) && error.code === "ENOENT";
|
|
29
|
+
async function quietly(run) {
|
|
30
|
+
try {
|
|
31
|
+
await run();
|
|
32
|
+
} catch (error) {
|
|
33
|
+
if (!absent(error))
|
|
34
|
+
throw error;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
function resolveLimits(config) {
|
|
38
|
+
const integer = z.number().int();
|
|
39
|
+
return {
|
|
40
|
+
pollIntervalMs: integer.min(10).parse(config.pollIntervalMs ?? 1000),
|
|
41
|
+
leaseMs: integer.min(100).parse(config.leaseMs ?? 300000),
|
|
42
|
+
maxAttempts: integer.min(1).max(1e4).parse(config.maxAttempts ?? 20),
|
|
43
|
+
maxEntryBytes: integer.min(1).parse(config.maxEntryBytes ?? 1024 * 1024),
|
|
44
|
+
retain: integer.min(1).max(1e5).parse(config.retain ?? 1000)
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
async function entryNames(directory) {
|
|
48
|
+
const entries = await readdir(directory, { withFileTypes: true });
|
|
49
|
+
return entries.filter((entry) => entry.isFile() && ENTRY_NAME.test(entry.name)).map((entry) => entry.name).sort();
|
|
50
|
+
}
|
|
51
|
+
async function readEntry(path, schema, maxEntryBytes) {
|
|
52
|
+
try {
|
|
53
|
+
const { size } = await stat(path);
|
|
54
|
+
if (size > maxEntryBytes) {
|
|
55
|
+
return { reason: "too-large", detail: `${size} bytes over the ${maxEntryBytes} limit` };
|
|
56
|
+
}
|
|
57
|
+
const text = await readFile(path, "utf8");
|
|
58
|
+
let json;
|
|
59
|
+
try {
|
|
60
|
+
json = JSON.parse(text);
|
|
61
|
+
} catch (error) {
|
|
62
|
+
return { reason: "invalid", detail: String(error).slice(0, 1000) };
|
|
63
|
+
}
|
|
64
|
+
const parsed = schema.safeParse(json);
|
|
65
|
+
return parsed.success ? { entry: parsed.data } : { reason: "invalid", detail: z.prettifyError(parsed.error).slice(0, 1000) };
|
|
66
|
+
} catch (error) {
|
|
67
|
+
if (absent(error))
|
|
68
|
+
return null;
|
|
69
|
+
throw error;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
function createDirectoryInbox(config) {
|
|
73
|
+
const limits = resolveLimits(config);
|
|
74
|
+
const clock = config.clock ?? (() => new Date);
|
|
75
|
+
const store = config.store ?? createFileStateStore(join(config.directory, ".inbox-state.json"), {
|
|
76
|
+
schema: DirectoryInboxStateSchema
|
|
77
|
+
});
|
|
78
|
+
const parse = (state) => DirectoryInboxStateSchema.parse(state ?? emptyDirectoryInboxState());
|
|
79
|
+
const update = (transition) => store.update((current) => transition(parse(current)));
|
|
80
|
+
let running = false;
|
|
81
|
+
let admitting = false;
|
|
82
|
+
let timer;
|
|
83
|
+
let forced = new AbortController;
|
|
84
|
+
let tail = Promise.resolve();
|
|
85
|
+
const report = async (error) => {
|
|
86
|
+
try {
|
|
87
|
+
await config.onError?.(error);
|
|
88
|
+
} catch {}
|
|
89
|
+
};
|
|
90
|
+
const setAside = async (key, rejection) => {
|
|
91
|
+
await mkdir(join(config.directory, REJECTED), { recursive: true });
|
|
92
|
+
await quietly(() => rename(join(config.directory, key), join(config.directory, REJECTED, key)));
|
|
93
|
+
if (rejection)
|
|
94
|
+
await config.onRejected?.(rejection);
|
|
95
|
+
};
|
|
96
|
+
const reject = async (key, reason, detail) => {
|
|
97
|
+
const rejection = { key, reason, detail, rejectedAt: clock().toISOString() };
|
|
98
|
+
await update((state) => ({
|
|
99
|
+
state: withRejection(state, rejection, limits.retain),
|
|
100
|
+
result: undefined
|
|
101
|
+
}));
|
|
102
|
+
await setAside(key, rejection);
|
|
103
|
+
};
|
|
104
|
+
const deliver = async (claim) => {
|
|
105
|
+
const path = join(config.directory, claim.key);
|
|
106
|
+
const read = await readEntry(path, config.schema, limits.maxEntryBytes);
|
|
107
|
+
if (read === null)
|
|
108
|
+
return false;
|
|
109
|
+
if ("reason" in read) {
|
|
110
|
+
await reject(claim.key, read.reason, read.detail);
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
try {
|
|
114
|
+
await config.handle({
|
|
115
|
+
key: claim.key,
|
|
116
|
+
entry: read.entry,
|
|
117
|
+
attempt: claim.attempts,
|
|
118
|
+
signal: forced.signal
|
|
119
|
+
});
|
|
120
|
+
} catch (error) {
|
|
121
|
+
await report(error);
|
|
122
|
+
const retryAt = new Date(clock().getTime() + backoffDelay(RETRY_BACKOFF, claim.attempts));
|
|
123
|
+
await update((state) => ({
|
|
124
|
+
state: releaseEntry(state, claim, retryAt),
|
|
125
|
+
result: undefined
|
|
126
|
+
}));
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
await update((state) => ({
|
|
130
|
+
state: completeEntry(state, claim.key, clock(), limits.retain),
|
|
131
|
+
result: undefined
|
|
132
|
+
}));
|
|
133
|
+
await quietly(() => unlink(path));
|
|
134
|
+
return true;
|
|
135
|
+
};
|
|
136
|
+
const pass = async () => {
|
|
137
|
+
const names = await entryNames(config.directory);
|
|
138
|
+
await update((state) => ({
|
|
139
|
+
state: forgetMissing(state, new Set(names), clock()),
|
|
140
|
+
result: undefined
|
|
141
|
+
}));
|
|
142
|
+
let handled = 0;
|
|
143
|
+
for (const key of names) {
|
|
144
|
+
if (!admitting && running)
|
|
145
|
+
break;
|
|
146
|
+
const { step } = await update((state) => {
|
|
147
|
+
const next = claimEntry(state, { key, now: clock(), ...limits });
|
|
148
|
+
return { state: next.state, result: next };
|
|
149
|
+
});
|
|
150
|
+
if (step.kind === "remove")
|
|
151
|
+
await quietly(() => unlink(join(config.directory, key)));
|
|
152
|
+
else if (step.kind === "set-aside")
|
|
153
|
+
await setAside(key);
|
|
154
|
+
else if (step.kind === "reject")
|
|
155
|
+
await setAside(key, step.rejection);
|
|
156
|
+
else if (step.kind === "deliver" && await deliver(step.claim))
|
|
157
|
+
handled += 1;
|
|
158
|
+
}
|
|
159
|
+
return handled;
|
|
160
|
+
};
|
|
161
|
+
const flush = () => {
|
|
162
|
+
const result = tail.then(pass, pass);
|
|
163
|
+
tail = result.catch(() => {
|
|
164
|
+
return;
|
|
165
|
+
});
|
|
166
|
+
return result;
|
|
167
|
+
};
|
|
168
|
+
const poll = async () => {
|
|
169
|
+
try {
|
|
170
|
+
await flush();
|
|
171
|
+
} catch (error) {
|
|
172
|
+
await report(error);
|
|
173
|
+
}
|
|
174
|
+
if (admitting)
|
|
175
|
+
timer = setTimeout(() => void poll(), limits.pollIntervalMs);
|
|
176
|
+
};
|
|
177
|
+
const stopAdmitting = () => {
|
|
178
|
+
admitting = false;
|
|
179
|
+
if (timer)
|
|
180
|
+
clearTimeout(timer);
|
|
181
|
+
timer = undefined;
|
|
182
|
+
};
|
|
183
|
+
const inbox = {
|
|
184
|
+
flush,
|
|
185
|
+
async state() {
|
|
186
|
+
return parse(await store.read());
|
|
187
|
+
}
|
|
188
|
+
};
|
|
189
|
+
return defineManagedResource({
|
|
190
|
+
id: config.id,
|
|
191
|
+
...config.dependsOn && { dependsOn: config.dependsOn },
|
|
192
|
+
async start() {
|
|
193
|
+
await mkdir(config.directory, { recursive: true });
|
|
194
|
+
forced = new AbortController;
|
|
195
|
+
return { value: inbox };
|
|
196
|
+
},
|
|
197
|
+
activate() {
|
|
198
|
+
running = true;
|
|
199
|
+
admitting = true;
|
|
200
|
+
poll();
|
|
201
|
+
},
|
|
202
|
+
stopAdmission() {
|
|
203
|
+
stopAdmitting();
|
|
204
|
+
},
|
|
205
|
+
async drain() {
|
|
206
|
+
await tail;
|
|
207
|
+
},
|
|
208
|
+
async close() {
|
|
209
|
+
stopAdmitting();
|
|
210
|
+
await tail;
|
|
211
|
+
},
|
|
212
|
+
async force() {
|
|
213
|
+
stopAdmitting();
|
|
214
|
+
forced.abort();
|
|
215
|
+
await tail;
|
|
216
|
+
}
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
export {
|
|
220
|
+
createDirectoryInbox
|
|
221
|
+
};
|
|
@@ -2,6 +2,7 @@ export { type ActivityId, ActivityIdSchema, type ActivityLiveState, ActivityLive
|
|
|
2
2
|
export { type BoundedAdmission, type BoundedAdmissionClock, type BoundedAdmissionConfig, type BoundedAdmissionDrainOptions, type BoundedAdmissionDrainResult, type BoundedAdmissionForceResult, type BoundedAdmissionLeaseResult, type BoundedAdmissionPerKeyLimitResolver, type BoundedAdmissionPerKeyLimits, BoundedAdmissionPerKeyLimitsSchema, type BoundedAdmissionPolicy, BoundedAdmissionPolicySchema, BoundedAdmissionRefusalError, type BoundedAdmissionRefusalReason, BoundedAdmissionRefusalReasonSchema, type BoundedAdmissionRefusedResult, type BoundedAdmissionResult, type BoundedAdmissionSnapshot, BoundedAdmissionSnapshotSchema, type BoundedAdmissionState, BoundedAdmissionStateSchema, type BoundedOperationLease, type BoundedOperationRunContext, type BoundedOperationRunOptions, BoundedOperationWaitError, type BoundedRateBudget, BoundedRateBudgetSchema, createBoundedAdmission, } from '../application/admission.js';
|
|
3
3
|
export { createDecisionPipeline, type DecisionPipeline, type DecisionPipelineConfig, type DecisionPolicy, DecisionPolicyError, type DecisionResult, type DecisionTraceEntry, DecisionUndecidedError, type PolicyDecision, PolicyDecisionSchema, } from '../application/decisions.js';
|
|
4
4
|
export { type DiagnosticJournal, type DiagnosticJournalCloseResult, DiagnosticJournalCloseResultSchema, type DiagnosticJournalConfig, type DiagnosticJournalFailure, type DiagnosticJournalFailurePhase, DiagnosticJournalFailurePhaseSchema, type DiagnosticJournalFrame, DiagnosticJournalFrameSchema, type DiagnosticJournalLimits, DiagnosticJournalLimitsSchema, type DiagnosticJournalLockDiagnosis, type DiagnosticJournalLockPolicy, DiagnosticJournalLockPolicySchema, type DiagnosticJournalRefusalReason, DiagnosticJournalRefusalReasonSchema, type DiagnosticJournalState, DiagnosticJournalStateSchema, type DiagnosticJournalStatus, DiagnosticJournalStatusSchema, type DiagnosticJournalSubmitResult, DiagnosticJournalSubmitResultSchema, type DiagnosticJournalWaitOptions, type DiagnosticJournalWaitResult, DiagnosticJournalWaitResultSchema, readDiagnosticJournalLockDiagnosis, } from '../application/diagnostic-journal-contract.js';
|
|
5
|
+
export { type DirectoryInbox, type DirectoryInboxConfig, type DirectoryInboxDelivery, type DirectoryInboxRejection, type DirectoryInboxRejectionReason, DirectoryInboxRejectionReasonSchema, type DirectoryInboxResource, type DirectoryInboxState, DirectoryInboxStateSchema, } from '../application/directory-inbox-contract.js';
|
|
5
6
|
export { type ApplicationEventSink, type ApplicationEventSinkConfig, type ApplicationLifecycleEvent, ApplicationLifecycleEventSchema, applicationLifecycleEvent, createApplicationEventSink, } from '../application/events.js';
|
|
6
7
|
export { type ApplicationHealthHandlerOptions, ApplicationHealthHandlerOptionsSchema, type ApplicationOperationalHandlers, type ApplicationOperationalHandlersOptions, ApplicationOperationalHandlersOptionsSchema, createApplicationHealthHandler, createApplicationOperationalHandlers, } from '../application/health.js';
|
|
7
8
|
export { createApplication } from '../application/kernel.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../src/entrypoints/application.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../src/entrypoints/application.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,10 @@ import {
|
|
|
14
14
|
createApplicationSnapshotSink,
|
|
15
15
|
createManagedSchedule
|
|
16
16
|
} from "../index-ensd0r74.js";
|
|
17
|
+
import {
|
|
18
|
+
DirectoryInboxRejectionReasonSchema,
|
|
19
|
+
DirectoryInboxStateSchema
|
|
20
|
+
} from "../index-5jrd0yng.js";
|
|
17
21
|
import {
|
|
18
22
|
DiagnosticJournalCloseResultSchema,
|
|
19
23
|
DiagnosticJournalFailurePhaseSchema,
|
|
@@ -2053,6 +2057,8 @@ export {
|
|
|
2053
2057
|
LifecycleTerminationSchema,
|
|
2054
2058
|
LifecycleStateSchema,
|
|
2055
2059
|
LifecycleRunSchema,
|
|
2060
|
+
DirectoryInboxStateSchema,
|
|
2061
|
+
DirectoryInboxRejectionReasonSchema,
|
|
2056
2062
|
DiagnosticJournalWaitResultSchema,
|
|
2057
2063
|
DiagnosticJournalSubmitResultSchema,
|
|
2058
2064
|
DiagnosticJournalStatusSchema,
|