stitchkit 0.80.0 → 0.81.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.
Files changed (179) hide show
  1. package/dist/agent-runtime/provider-failure.d.ts.map +1 -1
  2. package/dist/agent-runtime-coding-tools.js +1 -1
  3. package/dist/agent-runtime-harness.js +7 -5
  4. package/dist/agent-runtime.js +15 -19
  5. package/dist/application/notification-outbox.d.ts +80 -0
  6. package/dist/application/notification-outbox.d.ts.map +1 -0
  7. package/dist/application/process-lifecycle.d.ts +166 -0
  8. package/dist/application/process-lifecycle.d.ts.map +1 -0
  9. package/dist/application/revision-signal.d.ts +86 -0
  10. package/dist/application/revision-signal.d.ts.map +1 -0
  11. package/dist/application/state-store.d.ts +18 -0
  12. package/dist/application/state-store.d.ts.map +1 -0
  13. package/dist/application.d.ts +4 -0
  14. package/dist/application.d.ts.map +1 -1
  15. package/dist/application.js +725 -1
  16. package/dist/browser/http.d.ts +14 -0
  17. package/dist/browser/http.d.ts.map +1 -1
  18. package/dist/browser/resumable.d.ts +6 -0
  19. package/dist/browser/resumable.d.ts.map +1 -1
  20. package/dist/cli.js +9 -7
  21. package/dist/contract/define.d.ts +27 -4
  22. package/dist/contract/define.d.ts.map +1 -1
  23. package/dist/contract/errors-factory.d.ts +22 -3
  24. package/dist/contract/errors-factory.d.ts.map +1 -1
  25. package/dist/contract/index.d.ts +2 -2
  26. package/dist/contract/index.d.ts.map +1 -1
  27. package/dist/contract/index.js +1 -1
  28. package/dist/geo/index.d.ts +4 -0
  29. package/dist/geo/index.d.ts.map +1 -0
  30. package/dist/geo/maxmind.d.ts +4 -0
  31. package/dist/geo/maxmind.d.ts.map +1 -0
  32. package/dist/geo/resolver.d.ts +9 -0
  33. package/dist/geo/resolver.d.ts.map +1 -0
  34. package/dist/geo/types.d.ts +59 -0
  35. package/dist/geo/types.d.ts.map +1 -0
  36. package/dist/geo.d.ts +3 -0
  37. package/dist/geo.d.ts.map +1 -0
  38. package/dist/geo.js +245 -0
  39. package/dist/{index-9s6z8vgf.js → index-1dd82z59.js} +1 -1
  40. package/dist/{index-vwp69871.js → index-27487ay5.js} +4 -4
  41. package/dist/{index-7ag81v2f.js → index-27gm3d6g.js} +10 -321
  42. package/dist/{index-y01f4223.js → index-2bxcmqkb.js} +127 -43
  43. package/dist/{index-dxesg10d.js → index-3ds42w1w.js} +3 -3
  44. package/dist/index-3xwxfj4z.js +334 -0
  45. package/dist/{index-egaabxkz.js → index-5z8tezpx.js} +2 -2
  46. package/dist/{index-fxz0v7vg.js → index-7evdsyez.js} +1 -83
  47. package/dist/{index-xcetq6j3.js → index-90d7h2cr.js} +32 -13
  48. package/dist/{index-t0z5p5w6.js → index-apn8repm.js} +1 -1
  49. package/dist/{index-758zx2ha.js → index-dggwnnjv.js} +2 -2
  50. package/dist/{index-dwf1f2ap.js → index-f9mb610r.js} +1 -62
  51. package/dist/{index-5mtc969c.js → index-fwbkp2jn.js} +1 -1
  52. package/dist/index-p13mwz16.js +16 -0
  53. package/dist/{index-m9kzax52.js → index-p18f59zy.js} +21 -5
  54. package/dist/{index-hb5pf3s4.js → index-qmgs7y68.js} +1 -1
  55. package/dist/{index-2rwwmr7v.js → index-s4ckmrac.js} +1 -1
  56. package/dist/{index-h4pj6fta.js → index-s8cnx02s.js} +8 -5
  57. package/dist/{index-k9ay6v6d.js → index-vchzar7e.js} +74 -23
  58. package/dist/index-vsbzgd7b.js +84 -0
  59. package/dist/{index-dxjjv399.js → index-xbppf54a.js} +95 -15
  60. package/dist/index-y91ry9h2.js +4 -0
  61. package/dist/index-zcgf3gqf.js +83 -0
  62. package/dist/index.js +17 -13
  63. package/dist/internal/error-message.d.ts +3 -0
  64. package/dist/internal/error-message.d.ts.map +1 -0
  65. package/dist/internal/media-type.d.ts +8 -0
  66. package/dist/internal/media-type.d.ts.map +1 -0
  67. package/dist/internal/route-pattern.d.ts +21 -0
  68. package/dist/internal/route-pattern.d.ts.map +1 -1
  69. package/dist/node.js +9 -6
  70. package/dist/observability/audit.d.ts +28 -1
  71. package/dist/observability/audit.d.ts.map +1 -1
  72. package/dist/observability/bounded-logger.d.ts +20 -0
  73. package/dist/observability/bounded-logger.d.ts.map +1 -0
  74. package/dist/observability/context.d.ts +12 -3
  75. package/dist/observability/context.d.ts.map +1 -1
  76. package/dist/observability/index.d.ts +3 -2
  77. package/dist/observability/index.d.ts.map +1 -1
  78. package/dist/observability/index.js +138 -8
  79. package/dist/observability/sanitize.d.ts +17 -0
  80. package/dist/observability/sanitize.d.ts.map +1 -1
  81. package/dist/primitives.js +1 -1
  82. package/dist/react/query-client.d.ts +33 -0
  83. package/dist/react/query-client.d.ts.map +1 -0
  84. package/dist/react.d.ts +1 -0
  85. package/dist/react.d.ts.map +1 -1
  86. package/dist/react.js +83 -1
  87. package/dist/realtime/registry.d.ts +93 -0
  88. package/dist/realtime/registry.d.ts.map +1 -0
  89. package/dist/release/header.d.ts +9 -0
  90. package/dist/release/header.d.ts.map +1 -0
  91. package/dist/release/marker.d.ts +39 -0
  92. package/dist/release/marker.d.ts.map +1 -0
  93. package/dist/release/socket.d.ts +44 -0
  94. package/dist/release/socket.d.ts.map +1 -0
  95. package/dist/release/watcher.d.ts +66 -0
  96. package/dist/release/watcher.d.ts.map +1 -0
  97. package/dist/release.d.ts +15 -0
  98. package/dist/release.d.ts.map +1 -0
  99. package/dist/release.js +196 -0
  100. package/dist/remote.js +12 -7
  101. package/dist/server/context.d.ts +2 -1
  102. package/dist/server/context.d.ts.map +1 -1
  103. package/dist/server/create.d.ts.map +1 -1
  104. package/dist/server/error-hook.d.ts +17 -16
  105. package/dist/server/error-hook.d.ts.map +1 -1
  106. package/dist/server/file-state-store.d.ts +23 -0
  107. package/dist/server/file-state-store.d.ts.map +1 -0
  108. package/dist/server/implement.d.ts.map +1 -1
  109. package/dist/server/index.d.ts +5 -2
  110. package/dist/server/index.d.ts.map +1 -1
  111. package/dist/server/index.js +469 -11
  112. package/dist/server/middleware/cookies.d.ts +33 -1
  113. package/dist/server/middleware/cookies.d.ts.map +1 -1
  114. package/dist/server/middleware/cors.d.ts +16 -1
  115. package/dist/server/middleware/cors.d.ts.map +1 -1
  116. package/dist/server/openapi.d.ts.map +1 -1
  117. package/dist/server/release-signal.d.ts +35 -0
  118. package/dist/server/release-signal.d.ts.map +1 -0
  119. package/dist/server/router.d.ts.map +1 -1
  120. package/dist/server/types.d.ts +26 -2
  121. package/dist/server/types.d.ts.map +1 -1
  122. package/dist/testing/surface-manifest.d.ts.map +1 -1
  123. package/dist/testing.js +7 -4
  124. package/dist/tool-invoker.js +8 -6
  125. package/dist/tools/download-core.d.ts.map +1 -1
  126. package/dist/tools/remote.d.ts.map +1 -1
  127. package/dist/tools/view-file.d.ts.map +1 -1
  128. package/dist/tools.js +20 -16
  129. package/dist/tracking/attribution.d.ts +51 -0
  130. package/dist/tracking/attribution.d.ts.map +1 -0
  131. package/dist/tracking/beacon.d.ts +14 -0
  132. package/dist/tracking/beacon.d.ts.map +1 -0
  133. package/dist/tracking/clicks.d.ts +46 -0
  134. package/dist/tracking/clicks.d.ts.map +1 -0
  135. package/dist/tracking/client.d.ts +121 -0
  136. package/dist/tracking/client.d.ts.map +1 -0
  137. package/dist/tracking/contract.d.ts +46 -0
  138. package/dist/tracking/contract.d.ts.map +1 -0
  139. package/dist/tracking/delivery.d.ts +24 -0
  140. package/dist/tracking/delivery.d.ts.map +1 -0
  141. package/dist/tracking/host.d.ts +43 -0
  142. package/dist/tracking/host.d.ts.map +1 -0
  143. package/dist/tracking/once-per-page.d.ts +17 -0
  144. package/dist/tracking/once-per-page.d.ts.map +1 -0
  145. package/dist/tracking/outbox-storage-indexeddb.d.ts +12 -0
  146. package/dist/tracking/outbox-storage-indexeddb.d.ts.map +1 -0
  147. package/dist/tracking/outbox-storage-memory.d.ts +12 -0
  148. package/dist/tracking/outbox-storage-memory.d.ts.map +1 -0
  149. package/dist/tracking/outbox.d.ts +98 -0
  150. package/dist/tracking/outbox.d.ts.map +1 -0
  151. package/dist/tracking/schemas.d.ts +183 -0
  152. package/dist/tracking/schemas.d.ts.map +1 -0
  153. package/dist/tracking/scroll.d.ts +22 -0
  154. package/dist/tracking/scroll.d.ts.map +1 -0
  155. package/dist/tracking/sequence-reserve.d.ts +34 -0
  156. package/dist/tracking/sequence-reserve.d.ts.map +1 -0
  157. package/dist/tracking/server/active-interval.d.ts +26 -0
  158. package/dist/tracking/server/active-interval.d.ts.map +1 -0
  159. package/dist/tracking/server/bot.d.ts +9 -0
  160. package/dist/tracking/server/bot.d.ts.map +1 -0
  161. package/dist/tracking/server/disposition.d.ts +55 -0
  162. package/dist/tracking/server/disposition.d.ts.map +1 -0
  163. package/dist/tracking/server/hash.d.ts +13 -0
  164. package/dist/tracking/server/hash.d.ts.map +1 -0
  165. package/dist/tracking/server/presence.d.ts +27 -0
  166. package/dist/tracking/server/presence.d.ts.map +1 -0
  167. package/dist/tracking/server/visit-lease.d.ts +92 -0
  168. package/dist/tracking/server/visit-lease.d.ts.map +1 -0
  169. package/dist/tracking/visible-time.d.ts +38 -0
  170. package/dist/tracking/visible-time.d.ts.map +1 -0
  171. package/dist/tracking-server.d.ts +14 -0
  172. package/dist/tracking-server.d.ts.map +1 -0
  173. package/dist/tracking-server.js +173 -0
  174. package/dist/tracking.d.ts +24 -0
  175. package/dist/tracking.d.ts.map +1 -0
  176. package/dist/tracking.js +1090 -0
  177. package/llms-full.txt +986 -30
  178. package/llms.txt +4 -0
  179. package/package.json +26 -5
@@ -1 +1 @@
1
- {"version":3,"file":"provider-failure.d.ts","sourceRoot":"","sources":["../../src/agent-runtime/provider-failure.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH;;;;;;GAMG;AACH,MAAM,MAAM,0BAA0B,GAClC,sBAAsB,GACtB,cAAc,GACd,mBAAmB,GACnB,kBAAkB,GAClB,SAAS,GACT,WAAW,GACX,SAAS,CAAC;AAEd,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,0BAA0B,CAAC;IACnC,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;;;;OAKG;IACH,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;CACzC;AAwDD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,oBAAoB,CA8B5E;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAK5D"}
1
+ {"version":3,"file":"provider-failure.d.ts","sourceRoot":"","sources":["../../src/agent-runtime/provider-failure.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAKH;;;;;;GAMG;AACH,MAAM,MAAM,0BAA0B,GAClC,sBAAsB,GACtB,cAAc,GACd,mBAAmB,GACnB,kBAAkB,GAClB,SAAS,GACT,WAAW,GACX,SAAS,CAAC;AAEd,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,0BAA0B,CAAC;IACnC,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;;;;OAKG;IACH,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;CACzC;AAiDD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,oBAAoB,CA8B5E;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAK5D"}
@@ -16,7 +16,7 @@ import {
16
16
  } from "./index-dx9xehwt.js";
17
17
  import"./index-mgtxfe6b.js";
18
18
  import"./index-cby4ar3v.js";
19
- import"./index-y01f4223.js";
19
+ import"./index-2bxcmqkb.js";
20
20
  import"./index-6k1937bx.js";
21
21
  import {
22
22
  AppError,
@@ -2,7 +2,7 @@ import {
2
2
  composeAgentPrompt,
3
3
  createAgentRuntime,
4
4
  createAgentRuntimeEventSink
5
- } from "./index-9s6z8vgf.js";
5
+ } from "./index-1dd82z59.js";
6
6
  import {
7
7
  AgentModelDescriptorSchema
8
8
  } from "./index-tg3m2ec5.js";
@@ -21,15 +21,17 @@ import"./index-3xnq72rz.js";
21
21
  import {
22
22
  defineRuntimeTool
23
23
  } from "./index-dx9xehwt.js";
24
- import"./index-758zx2ha.js";
25
- import"./index-dwf1f2ap.js";
24
+ import"./index-dggwnnjv.js";
25
+ import"./index-vsbzgd7b.js";
26
+ import"./index-f9mb610r.js";
26
27
  import"./index-mgtxfe6b.js";
27
28
  import"./index-cby4ar3v.js";
28
29
  import"./index-7zbps32p.js";
29
- import"./index-fxz0v7vg.js";
30
- import"./index-y01f4223.js";
30
+ import"./index-7evdsyez.js";
31
+ import"./index-2bxcmqkb.js";
31
32
  import"./index-6k1937bx.js";
32
33
  import"./index-0w9abg87.js";
34
+ import"./index-zcgf3gqf.js";
33
35
  import"./index-kzfs85xp.js";
34
36
  import"./index-77fekveh.js";
35
37
 
@@ -1,3 +1,6 @@
1
+ import {
2
+ messageOf
3
+ } from "./index-p13mwz16.js";
1
4
  import {
2
5
  ACTIVE_AGENT_RUN_STATES,
3
6
  AcceptInputAndAssignRunSchema,
@@ -45,7 +48,7 @@ import {
45
48
  registerDeferredToolRepair,
46
49
  repairedSearchCall,
47
50
  selectAgentHistory
48
- } from "./index-9s6z8vgf.js";
51
+ } from "./index-1dd82z59.js";
49
52
  import {
50
53
  AgentModelCapabilitySchema,
51
54
  AgentModelCatalogEntrySchema,
@@ -121,25 +124,27 @@ import {
121
124
  import {
122
125
  buildToolManifest,
123
126
  mountAgent
124
- } from "./index-dxesg10d.js";
127
+ } from "./index-3ds42w1w.js";
125
128
  import"./index-3xnq72rz.js";
126
- import"./index-2rwwmr7v.js";
129
+ import"./index-s4ckmrac.js";
127
130
  import {
128
131
  defineRuntimeTool
129
132
  } from "./index-dx9xehwt.js";
130
- import"./index-5mtc969c.js";
131
- import"./index-758zx2ha.js";
132
- import"./index-dwf1f2ap.js";
133
+ import"./index-fwbkp2jn.js";
134
+ import"./index-dggwnnjv.js";
135
+ import"./index-vsbzgd7b.js";
136
+ import"./index-f9mb610r.js";
133
137
  import"./index-mgtxfe6b.js";
134
138
  import"./index-cby4ar3v.js";
135
139
  import"./index-7zbps32p.js";
140
+ import"./index-7evdsyez.js";
141
+ import"./index-2bxcmqkb.js";
142
+ import"./index-6k1937bx.js";
143
+ import"./index-0w9abg87.js";
136
144
  import {
137
145
  childSpan,
138
146
  createTraceContext
139
- } from "./index-fxz0v7vg.js";
140
- import"./index-y01f4223.js";
141
- import"./index-6k1937bx.js";
142
- import"./index-0w9abg87.js";
147
+ } from "./index-zcgf3gqf.js";
143
148
  import"./index-kzfs85xp.js";
144
149
  import {
145
150
  executableAgentRuntimeTools,
@@ -750,15 +755,6 @@ function statusOf(value) {
750
755
  const nested = value.cause ?? value.response ?? value.error;
751
756
  return nested === value ? undefined : statusOf(nested);
752
757
  }
753
- function messageOf(value) {
754
- if (value instanceof Error)
755
- return value.message;
756
- if (typeof value === "string")
757
- return value;
758
- if (isRecord(value) && typeof value.message === "string")
759
- return value.message;
760
- return "";
761
- }
762
758
  function classifyProviderFailure(error) {
763
759
  const status = statusOf(error);
764
760
  const byStatus = status === undefined ? undefined : BY_STATUS[status];
@@ -0,0 +1,80 @@
1
+ import { z } from 'zod';
2
+ import { type ManagedResource } from './resource.js';
3
+ import type { StateStore } from './state-store.js';
4
+ export interface NotificationOutboxItem<TPayload> {
5
+ readonly key: string;
6
+ readonly payload: TPayload;
7
+ readonly createdAt: string;
8
+ readonly attempts: number;
9
+ readonly nextAttemptAt: string;
10
+ readonly leaseOwner: string | null;
11
+ readonly leaseId: string | null;
12
+ readonly leaseUntil: string | null;
13
+ }
14
+ export interface NotificationOutboxReceipt {
15
+ readonly key: string;
16
+ readonly completedAt: string;
17
+ }
18
+ export interface NotificationOutboxState<TPayload> {
19
+ readonly schemaVersion: 1;
20
+ readonly queue: readonly NotificationOutboxItem<TPayload>[];
21
+ readonly receipts: readonly NotificationOutboxReceipt[];
22
+ }
23
+ /** The schema shared by any persistence adapter and the outbox itself. */
24
+ export declare function notificationOutboxStateSchema<TPayload>(payload: z.ZodType<TPayload>): z.ZodType<NotificationOutboxState<TPayload>>;
25
+ export interface NotificationSend<TPayload> {
26
+ readonly key: string;
27
+ readonly payload: TPayload;
28
+ readonly attempt: number;
29
+ }
30
+ export interface NotificationFailureClassification {
31
+ readonly retryable: boolean;
32
+ readonly recipientUnreachable?: boolean;
33
+ }
34
+ export interface DroppedNotification<TPayload> {
35
+ readonly item: NotificationOutboxItem<TPayload>;
36
+ readonly error: unknown;
37
+ readonly reason: 'terminal' | 'recipient-unreachable' | 'attempt-limit';
38
+ }
39
+ export interface NotificationOutboxConfig<TPayload> {
40
+ readonly store: StateStore<NotificationOutboxState<TPayload>>;
41
+ readonly payloadSchema: z.ZodType<TPayload>;
42
+ readonly send: (notification: NotificationSend<TPayload>) => void | Promise<void>;
43
+ readonly classify: (error: unknown) => NotificationFailureClassification | Promise<NotificationFailureClassification>;
44
+ readonly clock?: () => Date;
45
+ readonly ownerId?: string;
46
+ readonly pollIntervalMs?: number;
47
+ readonly leaseMs?: number;
48
+ readonly maxAttempts?: number;
49
+ readonly maxQueue?: number;
50
+ readonly maxStateBytes?: number;
51
+ readonly retainReceipts?: number;
52
+ readonly backoffMs?: (attempt: number) => number;
53
+ readonly onDropped?: (notification: DroppedNotification<TPayload>) => void | Promise<void>;
54
+ readonly onError?: (error: unknown) => void | Promise<void>;
55
+ }
56
+ export interface EnqueueNotification<TPayload> {
57
+ readonly key: string;
58
+ readonly payload: TPayload;
59
+ /** Pending keys made obsolete by this notification. */
60
+ readonly supersedes?: readonly string[];
61
+ }
62
+ export interface NotificationOutbox<TPayload> {
63
+ enqueue(input: EnqueueNotification<TPayload>): Promise<boolean>;
64
+ /** Drain every notification due at the current clock reading. */
65
+ flush(): Promise<number>;
66
+ start(): void;
67
+ stop(): Promise<void>;
68
+ state(): Promise<NotificationOutboxState<TPayload>>;
69
+ }
70
+ export declare function createNotificationOutbox<TPayload>(config: NotificationOutboxConfig<TPayload>): NotificationOutbox<TPayload>;
71
+ export interface NotificationOutboxResourceConfig {
72
+ readonly id?: string;
73
+ }
74
+ export interface NotificationOutboxResource<TPayload> extends ManagedResource {
75
+ start(): {
76
+ readonly value: NotificationOutbox<TPayload>;
77
+ };
78
+ }
79
+ export declare function notificationOutboxResource<TPayload>(outbox: NotificationOutbox<TPayload>, config?: NotificationOutboxResourceConfig): NotificationOutboxResource<TPayload>;
80
+ //# sourceMappingURL=notification-outbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification-outbox.d.ts","sourceRoot":"","sources":["../../src/application/notification-outbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,WAAW,sBAAsB,CAAC,QAAQ;IAC9C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,uBAAuB,CAAC,QAAQ;IAC/C,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,sBAAsB,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC5D,QAAQ,CAAC,QAAQ,EAAE,SAAS,yBAAyB,EAAE,CAAC;CACzD;AAED,0EAA0E;AAC1E,wBAAgB,6BAA6B,CAAC,QAAQ,EACpD,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,GAC3B,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,CA4B9C;AAED,MAAM,WAAW,gBAAgB,CAAC,QAAQ;IACxC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CACzC;AAED,MAAM,WAAW,mBAAmB,CAAC,QAAQ;IAC3C,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAChD,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,uBAAuB,GAAG,eAAe,CAAC;CACzE;AAED,MAAM,WAAW,wBAAwB,CAAC,QAAQ;IAChD,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9D,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5C,QAAQ,CAAC,IAAI,EAAE,CAAC,YAAY,EAAE,gBAAgB,CAAC,QAAQ,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClF,QAAQ,CAAC,QAAQ,EAAE,CACjB,KAAK,EAAE,OAAO,KACX,iCAAiC,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAAC;IACpF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IACjD,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,YAAY,EAAE,mBAAmB,CAAC,QAAQ,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3F,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,mBAAmB,CAAC,QAAQ;IAC3C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC3B,uDAAuD;IACvD,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,kBAAkB,CAAC,QAAQ;IAC1C,OAAO,CAAC,KAAK,EAAE,mBAAmB,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChE,iEAAiE;IACjE,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,KAAK,IAAI,IAAI,CAAC;IACd,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,KAAK,IAAI,OAAO,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,CAAC;CACrD;AAaD,wBAAgB,wBAAwB,CAAC,QAAQ,EAC/C,MAAM,EAAE,wBAAwB,CAAC,QAAQ,CAAC,GACzC,kBAAkB,CAAC,QAAQ,CAAC,CAgS9B;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,0BAA0B,CAAC,QAAQ,CAAE,SAAQ,eAAe;IAC3E,KAAK,IAAI;QAAE,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAA;KAAE,CAAC;CAC3D;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EACjD,MAAM,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EACpC,MAAM,GAAE,gCAAqC,GAC5C,0BAA0B,CAAC,QAAQ,CAAC,CActC"}
@@ -0,0 +1,166 @@
1
+ import { z } from 'zod';
2
+ import { type ManagedResource } from './resource.js';
3
+ import type { StateStore } from './state-store.js';
4
+ /**
5
+ * How a run ended. `clean` and `forced` are recorded by the run itself;
6
+ * `hot-reload` and `abnormal` are recorded by its successor, because the run
7
+ * never got to say — the same pid started again, or a different pid found it
8
+ * still marked active. `abnormal` is a crash observed from outside, not a kill
9
+ * the process acknowledged, so the two stay distinct in the ledger.
10
+ */
11
+ export declare const LifecycleTerminationSchema: z.ZodEnum<{
12
+ abnormal: "abnormal";
13
+ active: "active";
14
+ clean: "clean";
15
+ forced: "forced";
16
+ "hot-reload": "hot-reload";
17
+ }>;
18
+ export type LifecycleTermination = z.infer<typeof LifecycleTerminationSchema>;
19
+ export declare const LifecycleRunSchema: z.ZodObject<{
20
+ runId: z.ZodString;
21
+ pid: z.ZodNumber;
22
+ version: z.ZodString;
23
+ startedAt: z.ZodString;
24
+ readyAt: z.ZodNullable<z.ZodString>;
25
+ stoppedAt: z.ZodNullable<z.ZodString>;
26
+ termination: z.ZodEnum<{
27
+ abnormal: "abnormal";
28
+ active: "active";
29
+ clean: "clean";
30
+ forced: "forced";
31
+ "hot-reload": "hot-reload";
32
+ }>;
33
+ }, z.core.$strict>;
34
+ export type LifecycleRun = z.infer<typeof LifecycleRunSchema>;
35
+ export declare const LifecycleStateSchema: z.ZodObject<{
36
+ schemaVersion: z.ZodLiteral<1>;
37
+ runs: z.ZodArray<z.ZodObject<{
38
+ runId: z.ZodString;
39
+ pid: z.ZodNumber;
40
+ version: z.ZodString;
41
+ startedAt: z.ZodString;
42
+ readyAt: z.ZodNullable<z.ZodString>;
43
+ stoppedAt: z.ZodNullable<z.ZodString>;
44
+ termination: z.ZodEnum<{
45
+ abnormal: "abnormal";
46
+ active: "active";
47
+ clean: "clean";
48
+ forced: "forced";
49
+ "hot-reload": "hot-reload";
50
+ }>;
51
+ }, z.core.$strict>>;
52
+ }, z.core.$strict>;
53
+ export type LifecycleState = z.infer<typeof LifecycleStateSchema>;
54
+ export declare const PreviousExitSchema: z.ZodEnum<{
55
+ abnormal: "abnormal";
56
+ clean: "clean";
57
+ "first-boot": "first-boot";
58
+ forced: "forced";
59
+ handoff: "handoff";
60
+ "hot-reload": "hot-reload";
61
+ }>;
62
+ export type PreviousExit = z.infer<typeof PreviousExitSchema>;
63
+ export interface StartFact {
64
+ readonly type: 'started';
65
+ readonly runId: string;
66
+ readonly pid: number;
67
+ readonly version: string;
68
+ readonly startedAt: string;
69
+ readonly previousExit: PreviousExit;
70
+ readonly previousRunId: string | null;
71
+ readonly previousPid: number | null;
72
+ readonly previousVersion: string | null;
73
+ readonly versionChanged: boolean;
74
+ readonly downtimeMs: number | null;
75
+ }
76
+ export interface ReadyFact {
77
+ readonly type: 'ready';
78
+ readonly runId: string;
79
+ readonly pid: number;
80
+ readonly readyAt: string;
81
+ readonly startupMs: number;
82
+ /** False when this exact ready transition was already recorded. */
83
+ readonly recorded: boolean;
84
+ }
85
+ export interface ShutdownFact {
86
+ readonly type: 'stopped';
87
+ readonly runId: string;
88
+ readonly pid: number;
89
+ readonly stoppedAt: string;
90
+ readonly uptimeMs: number | null;
91
+ readonly termination: 'clean' | 'forced';
92
+ readonly recorded: boolean;
93
+ }
94
+ export type ProcessLifecycleFact = StartFact | ReadyFact | ShutdownFact;
95
+ export interface LifecycleTransition<TFact extends ProcessLifecycleFact> {
96
+ readonly state: LifecycleState;
97
+ readonly fact: TFact;
98
+ }
99
+ /**
100
+ * What a start means when the newest run is still marked active under another
101
+ * pid **and the same version**. `abnormal` (default): the predecessor crashed
102
+ * without recording its exit — one process per deployment, a restart after a
103
+ * kill. `handoff`: two processes of one build overlap on purpose (a cluster, a
104
+ * zero-downtime reload of the same build), so the predecessor stays active and
105
+ * records its own shutdown later. A different version is always a handoff; a
106
+ * version of `unknown` on either side is never a version change.
107
+ */
108
+ export type SameVersionOverlap = 'abnormal' | 'handoff';
109
+ export interface TransitionStartInput {
110
+ readonly runId: string;
111
+ readonly pid: number;
112
+ readonly version: string;
113
+ readonly now: string;
114
+ readonly retain?: number;
115
+ readonly sameVersionOverlap?: SameVersionOverlap;
116
+ }
117
+ /** Apply one process start without touching persistence or application events. */
118
+ export declare function transitionProcessStart(source: LifecycleState | null, input: TransitionStartInput): LifecycleTransition<StartFact>;
119
+ export interface TransitionReadyInput {
120
+ readonly runId: string;
121
+ readonly pid: number;
122
+ readonly now: string;
123
+ readonly retain?: number;
124
+ }
125
+ export declare function transitionProcessReady(source: LifecycleState | null, input: TransitionReadyInput): LifecycleTransition<ReadyFact>;
126
+ export interface TransitionShutdownInput {
127
+ readonly runId: string;
128
+ readonly pid: number;
129
+ readonly now: string;
130
+ readonly forced?: boolean;
131
+ readonly retain?: number;
132
+ }
133
+ export declare function transitionProcessShutdown(source: LifecycleState | null, input: TransitionShutdownInput): LifecycleTransition<ShutdownFact>;
134
+ export interface ProcessLifecycleLedger {
135
+ recordStart(input: {
136
+ readonly version: string;
137
+ }): Promise<StartFact>;
138
+ recordReady(): Promise<ReadyFact>;
139
+ recordShutdown(input?: {
140
+ readonly forced?: boolean;
141
+ }): Promise<ShutdownFact>;
142
+ current(): Promise<LifecycleRun | null>;
143
+ runs(): Promise<readonly LifecycleRun[]>;
144
+ subscribe(listener: (fact: ProcessLifecycleFact) => void | Promise<void>): () => void;
145
+ }
146
+ export interface ProcessLifecycleLedgerConfig {
147
+ readonly store: StateStore<LifecycleState>;
148
+ readonly clock?: () => Date;
149
+ readonly pid?: number;
150
+ readonly retain?: number;
151
+ readonly runId?: string | (() => string);
152
+ readonly sameVersionOverlap?: SameVersionOverlap;
153
+ readonly onSubscriberError?: (error: unknown, fact: ProcessLifecycleFact) => void | Promise<void>;
154
+ }
155
+ export declare function createProcessLifecycleLedger(config: ProcessLifecycleLedgerConfig): ProcessLifecycleLedger;
156
+ export interface LifecycleLedgerResourceConfig {
157
+ readonly id?: string;
158
+ readonly version: string;
159
+ }
160
+ export interface LifecycleLedgerResource extends ManagedResource {
161
+ start(): Promise<{
162
+ readonly value: ProcessLifecycleLedger;
163
+ }>;
164
+ }
165
+ export declare function lifecycleLedgerResource(ledger: ProcessLifecycleLedger, config: LifecycleLedgerResourceConfig): LifecycleLedgerResource;
166
+ //# sourceMappingURL=process-lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-lifecycle.d.ts","sourceRoot":"","sources":["../../src/application/process-lifecycle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ import { z } from 'zod';
2
+ export declare const RevisionSignalStateSchema: z.ZodEnum<{
3
+ closed: "closed";
4
+ open: "open";
5
+ }>;
6
+ export type RevisionSignalState = z.infer<typeof RevisionSignalStateSchema>;
7
+ export declare const RevisionSignalWaitOutcomeSchema: z.ZodEnum<{
8
+ aborted: "aborted";
9
+ capacity: "capacity";
10
+ changed: "changed";
11
+ closed: "closed";
12
+ "timed-out": "timed-out";
13
+ }>;
14
+ export type RevisionSignalWaitOutcome = z.infer<typeof RevisionSignalWaitOutcomeSchema>;
15
+ export declare const RevisionSignalWaitResultSchema: z.ZodReadonly<z.ZodObject<{
16
+ outcome: z.ZodEnum<{
17
+ aborted: "aborted";
18
+ capacity: "capacity";
19
+ changed: "changed";
20
+ closed: "closed";
21
+ "timed-out": "timed-out";
22
+ }>;
23
+ revision: z.ZodNumber;
24
+ }, z.core.$strict>>;
25
+ export type RevisionSignalWaitResult = z.infer<typeof RevisionSignalWaitResultSchema>;
26
+ export declare const RevisionSignalAdvanceResultSchema: z.ZodReadonly<z.ZodObject<{
27
+ outcome: z.ZodEnum<{
28
+ advanced: "advanced";
29
+ closed: "closed";
30
+ }>;
31
+ revision: z.ZodNumber;
32
+ }, z.core.$strict>>;
33
+ export type RevisionSignalAdvanceResult = z.infer<typeof RevisionSignalAdvanceResultSchema>;
34
+ export declare const RevisionSignalSnapshotSchema: z.ZodReadonly<z.ZodObject<{
35
+ state: z.ZodEnum<{
36
+ closed: "closed";
37
+ open: "open";
38
+ }>;
39
+ revision: z.ZodNumber;
40
+ pending: z.ZodNumber;
41
+ maxWaiters: z.ZodNumber;
42
+ advances: z.ZodNumber;
43
+ refusedAdvances: z.ZodNumber;
44
+ waits: z.ZodNumber;
45
+ changed: z.ZodNumber;
46
+ timedOut: z.ZodNumber;
47
+ aborted: z.ZodNumber;
48
+ closedWaits: z.ZodNumber;
49
+ capacityRefusals: z.ZodNumber;
50
+ clockFailures: z.ZodNumber;
51
+ }, z.core.$strict>>;
52
+ export type RevisionSignalSnapshot = z.infer<typeof RevisionSignalSnapshotSchema>;
53
+ export interface RevisionSignalTimer {
54
+ cancel(): void;
55
+ }
56
+ /** Timer boundary for deterministic wait-budget tests. */
57
+ export interface RevisionSignalClock {
58
+ schedule(callback: () => void, delayMs: number): RevisionSignalTimer;
59
+ }
60
+ export interface RevisionSignalConfig {
61
+ /** Maximum simultaneously parked waits. */
62
+ readonly maxWaiters: number;
63
+ /** Defaults to the platform timer. */
64
+ readonly clock?: RevisionSignalClock;
65
+ }
66
+ export interface RevisionSignalWaitOptions {
67
+ readonly signal?: AbortSignal;
68
+ /** Absent means wait until an advance, abort or close. */
69
+ readonly timeoutMs?: number;
70
+ }
71
+ export interface RevisionSignal {
72
+ /** Advance the monotonic revision and broadcast it to every older waiter. */
73
+ advance(): RevisionSignalAdvanceResult;
74
+ /**
75
+ * Wait for a revision newer than `after`.
76
+ *
77
+ * An already newer revision resolves immediately. The current revision parks the wait. A
78
+ * future revision is a caller bug and is rejected before any waiter is retained.
79
+ */
80
+ wait(after: number, options?: RevisionSignalWaitOptions): Promise<RevisionSignalWaitResult>;
81
+ close(): RevisionSignalSnapshot;
82
+ getSnapshot(): RevisionSignalSnapshot;
83
+ }
84
+ /** Finite process-local broadcast wake-up keyed by a monotonic revision. */
85
+ export declare function createRevisionSignal(config: RevisionSignalConfig): RevisionSignal;
86
+ //# sourceMappingURL=revision-signal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revision-signal.d.ts","sourceRoot":"","sources":["../../src/application/revision-signal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,yBAAyB;;;EAA6B,CAAC;AACpE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,+BAA+B;;;;;;EAM1C,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAExF,eAAO,MAAM,8BAA8B;;;;;;;;;mBAM9B,CAAC;AACd,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF,eAAO,MAAM,iCAAiC;;;;;;mBAMjC,CAAC;AACd,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAE5F,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;mBAiB5B,CAAC;AACd,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,MAAM,WAAW,mBAAmB;IAClC,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,0DAA0D;AAC1D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,mBAAmB,CAAC;CACtE;AAED,MAAM,WAAW,oBAAoB;IACnC,2CAA2C;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,sCAAsC;IACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,mBAAmB,CAAC;CACtC;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,0DAA0D;IAC1D,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc;IAC7B,6EAA6E;IAC7E,OAAO,IAAI,2BAA2B,CAAC;IACvC;;;;;OAKG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAC5F,KAAK,IAAI,sBAAsB,CAAC;IAChC,WAAW,IAAI,sBAAsB,CAAC;CACvC;AAaD,4EAA4E;AAC5E,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG,cAAc,CAoHjF"}
@@ -0,0 +1,18 @@
1
+ /** A value and the result produced by one atomic state transition. */
2
+ export interface StateStoreUpdate<TState, TResult> {
3
+ readonly state: TState;
4
+ readonly result: TResult;
5
+ }
6
+ /**
7
+ * Persistence boundary for small application state machines.
8
+ *
9
+ * `update` owns the read/modify/write critical section. Keeping that operation
10
+ * on the store, rather than building it from public `read` and `write` calls,
11
+ * is what lets file and database adapters protect two application processes
12
+ * from silently overwriting one another.
13
+ */
14
+ export interface StateStore<TState> {
15
+ read(): Promise<TState | null>;
16
+ update<TResult>(transition: (current: TState | null) => StateStoreUpdate<TState, TResult> | Promise<StateStoreUpdate<TState, TResult>>): Promise<TResult>;
17
+ }
18
+ //# sourceMappingURL=state-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-store.d.ts","sourceRoot":"","sources":["../../src/application/state-store.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,MAAM,WAAW,gBAAgB,CAAC,MAAM,EAAE,OAAO;IAC/C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,UAAU,CAAC,MAAM;IAChC,IAAI,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC/B,MAAM,CAAC,OAAO,EACZ,UAAU,EAAE,CACV,OAAO,EAAE,MAAM,GAAG,IAAI,KACnB,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAClF,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB"}
@@ -9,9 +9,13 @@ export { type ApplicationAdmission, ApplicationAdmissionError, type ApplicationC
9
9
  export { defineKeyspace, type KeyspaceBackend, type KeyspaceChange, type KeyspaceDeclaration, type KeyspaceResourceConfig, keyspaceResource, memoryKeyspaceBackend, type OpenedKeyspace, type OpenKeyspace, openKeyspace, } from './application/keyspace.js';
10
10
  export { type SqliteKeyspaceBackendConfig, sqliteKeyspaceBackend, } from './application/keyspace-sqlite.js';
11
11
  export { type ApplicationSnapshotSink, type ApplicationSnapshotSinkConfig, type ApplicationSnapshotSinkError, type ApplicationSnapshotSinkStatus, ApplicationSnapshotSinkStatusSchema, createApplicationSnapshotSink, type RevisionedApplicationSnapshot, } from './application/latest-sink.js';
12
+ export { createNotificationOutbox, type DroppedNotification, type EnqueueNotification, type NotificationFailureClassification, type NotificationOutbox, type NotificationOutboxConfig, type NotificationOutboxItem, type NotificationOutboxReceipt, type NotificationOutboxResource, type NotificationOutboxResourceConfig, type NotificationOutboxState, type NotificationSend, notificationOutboxResource, notificationOutboxStateSchema, } from './application/notification-outbox.js';
13
+ export { createProcessLifecycleLedger, type LifecycleLedgerResource, type LifecycleLedgerResourceConfig, type LifecycleRun, LifecycleRunSchema, type LifecycleState, LifecycleStateSchema, type LifecycleTermination, LifecycleTerminationSchema, type LifecycleTransition, lifecycleLedgerResource, type PreviousExit, PreviousExitSchema, type ProcessLifecycleFact, type ProcessLifecycleLedger, type ProcessLifecycleLedgerConfig, type ReadyFact, type SameVersionOverlap, type ShutdownFact, type StartFact, type TransitionReadyInput, type TransitionShutdownInput, type TransitionStartInput, transitionProcessReady, transitionProcessShutdown, transitionProcessStart, } from './application/process-lifecycle.js';
12
14
  export { defineManagedResource, type ManagedResource, type ManagedResourceContext, type ManagedResourceDependency, type ManagedResourcePublished, type ManagedResourcePublishesNoValue, type ManagedResourceStartResult, managedResourceDependencyId, } from './application/resource.js';
15
+ export { createRevisionSignal, type RevisionSignal, type RevisionSignalAdvanceResult, RevisionSignalAdvanceResultSchema, type RevisionSignalClock, type RevisionSignalConfig, type RevisionSignalSnapshot, RevisionSignalSnapshotSchema, type RevisionSignalState, RevisionSignalStateSchema, type RevisionSignalTimer, type RevisionSignalWaitOptions, type RevisionSignalWaitOutcome, RevisionSignalWaitOutcomeSchema, type RevisionSignalWaitResult, RevisionSignalWaitResultSchema, } from './application/revision-signal.js';
13
16
  export { createManagedSchedule, type ManagedSchedule, type ManagedScheduleClock, type ManagedScheduleConfig, type ManagedScheduleDescriptor, ManagedScheduleDescriptorSchema, type ManagedScheduleErrorPolicy, ManagedScheduleErrorPolicySchema, type ManagedScheduleOverlap, ManagedScheduleOverlapSchema, type ManagedScheduleRunContext, type ManagedScheduleStatus, ManagedScheduleStatusSchema, type ManagedScheduleTimer, } from './application/schedule.js';
14
17
  export { type ManagedServerResource, type ManagedServerResourceConfig, managedServerResource, } from './application/server-resource.js';
18
+ export type { StateStore, StateStoreUpdate } from './application/state-store.js';
15
19
  export { type AttachedWatcher, createWatchHub, type WatchHub, type WatchHubConfig, type WatchOperation, type WatchSubscriber, watchKey, } from './application/watch-hub.js';
16
20
  export * from './application-schemas.js';
17
21
  export type { SqliteDatabase, SqliteStatement, SqliteValue } from './internal/sqlite.js';
@@ -1 +1 @@
1
- {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"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"}