stitchkit 0.99.0 → 0.100.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.
Files changed (147) hide show
  1. package/CHANGELOG.md +124 -1
  2. package/dist/agent-runtime/contained-darwin.d.ts +0 -17
  3. package/dist/agent-runtime/contained-darwin.d.ts.map +1 -1
  4. package/dist/agent-runtime/contained-write.d.ts.map +1 -1
  5. package/dist/agent-runtime/invocation-attempt.d.ts +28 -0
  6. package/dist/agent-runtime/invocation-attempt.d.ts.map +1 -0
  7. package/dist/agent-runtime/invocation-failure.d.ts +6 -0
  8. package/dist/agent-runtime/invocation-failure.d.ts.map +1 -0
  9. package/dist/agent-runtime/invocation-payload.d.ts +20 -0
  10. package/dist/agent-runtime/invocation-payload.d.ts.map +1 -0
  11. package/dist/agent-runtime/invocation-read.d.ts +131 -0
  12. package/dist/agent-runtime/invocation-read.d.ts.map +1 -0
  13. package/dist/agent-runtime/invocation-schema.d.ts +378 -0
  14. package/dist/agent-runtime/invocation-schema.d.ts.map +1 -0
  15. package/dist/agent-runtime/invocations.d.ts +52 -0
  16. package/dist/agent-runtime/invocations.d.ts.map +1 -0
  17. package/dist/agent-runtime/projections.d.ts.map +1 -1
  18. package/dist/agent-runtime/run-acquisition.d.ts.map +1 -1
  19. package/dist/agent-runtime/run-execution-state.d.ts +4 -2
  20. package/dist/agent-runtime/run-execution-state.d.ts.map +1 -1
  21. package/dist/agent-runtime/run-execution.d.ts.map +1 -1
  22. package/dist/agent-runtime/run-failure.d.ts.map +1 -1
  23. package/dist/agent-runtime/run-model-attempts.d.ts.map +1 -1
  24. package/dist/agent-runtime/run-operation-lifecycle.d.ts +2 -2
  25. package/dist/agent-runtime/run-operation-lifecycle.d.ts.map +1 -1
  26. package/dist/agent-runtime/run-provider-ledger.d.ts +1 -0
  27. package/dist/agent-runtime/run-provider-ledger.d.ts.map +1 -1
  28. package/dist/agent-runtime/runtime.d.ts +11 -0
  29. package/dist/agent-runtime/runtime.d.ts.map +1 -1
  30. package/dist/agent-runtime/schedule-dispatch.d.ts +9 -2
  31. package/dist/agent-runtime/schedule-dispatch.d.ts.map +1 -1
  32. package/dist/agent-runtime/schedule-records.d.ts +8 -2
  33. package/dist/agent-runtime/schedule-records.d.ts.map +1 -1
  34. package/dist/agent-runtime/schedules.d.ts +5 -0
  35. package/dist/agent-runtime/schedules.d.ts.map +1 -1
  36. package/dist/agent-runtime/sqlite-events.d.ts.map +1 -1
  37. package/dist/agent-runtime/store-create.d.ts.map +1 -1
  38. package/dist/agent-runtime/store-driver-contract.d.ts +9 -0
  39. package/dist/agent-runtime/store-driver-contract.d.ts.map +1 -1
  40. package/dist/agent-runtime/store-event-once.d.ts +37 -0
  41. package/dist/agent-runtime/store-event-once.d.ts.map +1 -0
  42. package/dist/agent-runtime/store-memory.d.ts.map +1 -1
  43. package/dist/agent-runtime/store.d.ts +11 -0
  44. package/dist/agent-runtime/store.d.ts.map +1 -1
  45. package/dist/application/change-subscription.d.ts +36 -0
  46. package/dist/application/change-subscription.d.ts.map +1 -0
  47. package/dist/application/diagnostic-journal-contract.d.ts +3 -6
  48. package/dist/application/diagnostic-journal-contract.d.ts.map +1 -1
  49. package/dist/application/notification-delivery.d.ts +55 -0
  50. package/dist/application/notification-delivery.d.ts.map +1 -0
  51. package/dist/application/notification-outbox-state.d.ts +41 -0
  52. package/dist/application/notification-outbox-state.d.ts.map +1 -0
  53. package/dist/application/notification-outbox.d.ts +7 -1
  54. package/dist/application/notification-outbox.d.ts.map +1 -1
  55. package/dist/application/watch-hub-core.d.ts +14 -84
  56. package/dist/application/watch-hub-core.d.ts.map +1 -1
  57. package/dist/application/watch-hub-source.d.ts +98 -0
  58. package/dist/application/watch-hub-source.d.ts.map +1 -0
  59. package/dist/application/watch-hub.d.ts +10 -2
  60. package/dist/application/watch-hub.d.ts.map +1 -1
  61. package/dist/browser/session-credentials.d.ts +26 -0
  62. package/dist/browser/session-credentials.d.ts.map +1 -0
  63. package/dist/browser/session.d.ts +33 -0
  64. package/dist/browser/session.d.ts.map +1 -0
  65. package/dist/durability/events.d.ts +6 -0
  66. package/dist/durability/events.d.ts.map +1 -1
  67. package/dist/entrypoints/agent-runtime/coding-tools.js +3 -2
  68. package/dist/entrypoints/agent-runtime/harness.js +5 -3
  69. package/dist/entrypoints/agent-runtime/sandbox.js +3 -2
  70. package/dist/entrypoints/agent-runtime/sqlite/bun.js +3 -3
  71. package/dist/entrypoints/agent-runtime/sqlite/node.js +3 -3
  72. package/dist/entrypoints/agent-runtime/testing.js +3 -3
  73. package/dist/entrypoints/agent-runtime.d.ts +3 -0
  74. package/dist/entrypoints/agent-runtime.d.ts.map +1 -1
  75. package/dist/entrypoints/agent-runtime.js +65 -20
  76. package/dist/entrypoints/application/diagnostic-journal.js +2 -1
  77. package/dist/entrypoints/application.d.ts +3 -1
  78. package/dist/entrypoints/application.d.ts.map +1 -1
  79. package/dist/entrypoints/application.js +820 -294
  80. package/dist/entrypoints/files.js +9 -2
  81. package/dist/entrypoints/index.d.ts +2 -0
  82. package/dist/entrypoints/index.d.ts.map +1 -1
  83. package/dist/entrypoints/index.js +199 -0
  84. package/dist/entrypoints/live.js +78 -19
  85. package/dist/entrypoints/node.js +1 -1
  86. package/dist/entrypoints/react.d.ts +1 -1
  87. package/dist/entrypoints/react.d.ts.map +1 -1
  88. package/dist/entrypoints/react.js +59 -16
  89. package/dist/entrypoints/server.js +4 -4
  90. package/dist/{index-sp1tzwnb.js → index-10x2hbx0.js} +5 -2
  91. package/dist/{index-8p52kd5p.js → index-c6bxbsnc.js} +100 -14
  92. package/dist/{index-gxrt5h6v.js → index-cyktc4bp.js} +3 -0
  93. package/dist/{index-1m2thnq0.js → index-eaysmdtq.js} +11 -2
  94. package/dist/{index-jhx828hc.js → index-f4fx2tza.js} +948 -279
  95. package/dist/{index-px2gm2jp.js → index-fhwqwxe0.js} +17 -55
  96. package/dist/{index-e4hkgm5t.js → index-gw8bmyaj.js} +4 -2
  97. package/dist/{index-p3vsv1fb.js → index-hadmp193.js} +14 -5
  98. package/dist/{index-wt743f7f.js → index-k6gpggb9.js} +2 -1
  99. package/dist/index-q3pyb9n0.js +22 -0
  100. package/dist/{index-wsm5w4ee.js → index-vqr7f7v8.js} +51 -3
  101. package/dist/index-zjjyynm3.js +42 -0
  102. package/dist/internal/coalesced-task.d.ts +17 -0
  103. package/dist/internal/coalesced-task.d.ts.map +1 -0
  104. package/dist/internal/darwin-binding.d.ts +19 -0
  105. package/dist/internal/darwin-binding.d.ts.map +1 -0
  106. package/dist/internal/exclusive-lock.d.ts +20 -7
  107. package/dist/internal/exclusive-lock.d.ts.map +1 -1
  108. package/dist/internal/mutation-queue.d.ts +4 -0
  109. package/dist/internal/mutation-queue.d.ts.map +1 -0
  110. package/dist/internal/process-identity.d.ts +1 -1
  111. package/dist/internal/process-identity.d.ts.map +1 -1
  112. package/dist/internal/process-instance.d.ts +26 -0
  113. package/dist/internal/process-instance.d.ts.map +1 -0
  114. package/dist/internal/with-exclusive-lock.d.ts.map +1 -1
  115. package/dist/live/watch-client-state.d.ts +71 -0
  116. package/dist/live/watch-client-state.d.ts.map +1 -0
  117. package/dist/live/watch-client.d.ts +5 -1
  118. package/dist/live/watch-client.d.ts.map +1 -1
  119. package/dist/live/watch-contract.d.ts +12 -0
  120. package/dist/live/watch-contract.d.ts.map +1 -1
  121. package/dist/react/cache-bridge.d.ts +10 -0
  122. package/dist/react/cache-bridge.d.ts.map +1 -1
  123. package/dist/server/realtime.d.ts.map +1 -1
  124. package/llms/agent-runtime.2.txt +102 -0
  125. package/llms/agent-runtime.3.txt +30 -1
  126. package/llms/agent-runtime.txt +8 -3
  127. package/llms/application.2.txt +84 -2
  128. package/llms/application.txt +32 -2
  129. package/llms/files.txt +1 -1
  130. package/llms/live.txt +8 -0
  131. package/llms/react.txt +8 -0
  132. package/llms/server.3.txt +57 -0
  133. package/llms/stitchkit.2.txt +41 -0
  134. package/llms/stitchkit.3.txt +26 -0
  135. package/llms/stitchkit.txt +3 -3
  136. package/llms/upgrading-0.37.0.txt +176 -0
  137. package/llms/{upgrading-0.37.0-0.58.0.txt → upgrading-0.44.0-0.60.0.txt} +229 -169
  138. package/llms/{upgrading-0.59.0-0.71.0.txt → upgrading-0.61.0-0.73.0.txt} +122 -229
  139. package/llms/{upgrading-0.72.0-0.99.0.txt → upgrading-0.74.0-0.100.0.txt} +80 -123
  140. package/llms/upgrading.txt +4 -3
  141. package/llms-full.txt +471 -11
  142. package/llms.txt +10 -9
  143. package/native/darwin-arm64.node +0 -0
  144. package/native/darwin-x64.node +0 -0
  145. package/package.json +1 -1
  146. package/dist/agent-runtime/run-mutation-queue.d.ts +0 -21
  147. package/dist/agent-runtime/run-mutation-queue.d.ts.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import type { z } from 'zod';
2
- import { type AgentSchedule, type AgentScheduleDeliveryOutcome } from './schedule-contract.js';
2
+ import { type AgentSchedule } from './schedule-contract.js';
3
3
  import type { SqliteAgentRuntimeStore } from './sqlite.js';
4
4
  export interface ScheduleDispatchRequest {
5
5
  conversationId: string;
@@ -15,11 +15,18 @@ export interface ScheduleDispatchRequest {
15
15
  }
16
16
  export interface ScheduleDispatchContext {
17
17
  sqlite: SqliteAgentRuntimeStore;
18
- dispatch(request: ScheduleDispatchRequest): void | AgentScheduleDeliveryOutcome | Promise<void | AgentScheduleDeliveryOutcome>;
18
+ /**
19
+ * Admit the firing. Return an `AgentScheduleDeliveryOutcome` (or throw) to
20
+ * fail it; returning anything else — nothing, a queue length, a receipt —
21
+ * means it was delivered.
22
+ */
23
+ dispatch(request: ScheduleDispatchRequest): unknown;
19
24
  now: () => Date;
20
25
  setTimer: (callback: () => void, delayMs: number) => ReturnType<typeof setTimeout>;
21
26
  clearTimer: (timer: ReturnType<typeof setTimeout>) => void;
22
27
  signal: AbortSignal;
28
+ /** Failed attempts after which a schedule becomes `failed` instead of retrying. */
29
+ maxAttempts: number;
23
30
  }
24
31
  /** One fenced, bounded attempt. Consumer admission and settlement are at-least-once. */
25
32
  export declare function dispatchSchedule(context: ScheduleDispatchContext, schedule: AgentSchedule): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"schedule-dispatch.d.ts","sourceRoot":"","sources":["../../src/agent-runtime/schedule-dispatch.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,4BAA4B,EAElC,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAExD,MAAM,WAAW,uBAAuB;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9B,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/D,8FAA8F;IAC9F,MAAM,EAAE,WAAW,CAAC;CACrB;AACD,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,uBAAuB,CAAC;IAChC,QAAQ,CACN,OAAO,EAAE,uBAAuB,GAE/B,IAAI,GAAG,4BAA4B,GAAG,OAAO,CAAC,IAAI,GAAG,4BAA4B,CAAC,CAAC;IACtF,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,OAAO,EAAE,MAAM,KAAK,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IACnF,UAAU,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,KAAK,IAAI,CAAC;IAC3D,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,wFAAwF;AACxF,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,uBAAuB,EAChC,QAAQ,EAAE,aAAa,iBAyDxB"}
1
+ {"version":3,"file":"schedule-dispatch.d.ts","sourceRoot":"","sources":["../../src/agent-runtime/schedule-dispatch.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,KAAK,aAAa,EAAsC,MAAM,qBAAqB,CAAC;AAE7F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAExD,MAAM,WAAW,uBAAuB;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9B,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/D,8FAA8F;IAC9F,MAAM,EAAE,WAAW,CAAC;CACrB;AACD,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,uBAAuB,CAAC;IAChC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC;IACpD,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,OAAO,EAAE,MAAM,KAAK,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IACnF,UAAU,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,KAAK,IAAI,CAAC;IAC3D,MAAM,EAAE,WAAW,CAAC;IACpB,mFAAmF;IACnF,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wFAAwF;AACxF,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,uBAAuB,EAChC,QAAQ,EAAE,aAAa,iBA6DxB"}
@@ -19,8 +19,14 @@ export interface ClaimedFiring {
19
19
  /** Validate a request and build the schedule it describes; nothing is written. */
20
20
  export declare function newSchedule(request: ScheduleRequest, observedAt: Date): AgentSchedule;
21
21
  export declare function insertSchedule(sqlite: SqliteAgentRuntimeStore, schedule: AgentSchedule): Promise<void>;
22
- /** Retry delay is durable, capped at a minute, and never changes the occurrence's due time. */
23
- export declare function recordDispatchFailure(sqlite: SqliteAgentRuntimeStore, firing: ClaimedFiring, reason: string, terminal?: boolean): Promise<void>;
22
+ /**
23
+ * Retry delay is durable, capped at a minute, and never changes the occurrence's due time.
24
+ *
25
+ * `maxAttempts` bounds one occurrence, not the schedule: a one-off becomes
26
+ * `failed`, a recurring schedule gives up this occurrence and waits for its
27
+ * next slot — an outage longer than the retries does not end a recurring job.
28
+ */
29
+ export declare function recordDispatchFailure(sqlite: SqliteAgentRuntimeStore, firing: ClaimedFiring, reason: string, maxAttempts: number, explicitlyTerminal?: boolean): Promise<void>;
24
30
  /** Advance only the held occurrence; stale and cancelled attempts produce no settlement events. */
25
31
  export declare function settleFiring(sqlite: SqliteAgentRuntimeStore, firing: ClaimedFiring, lateByMs: number): Promise<void>;
26
32
  /** Recheck both eligibility and the selected occurrence under BEGIN IMMEDIATE. */
@@ -1 +1 @@
1
- {"version":3,"file":"schedule-records.d.ts","sourceRoot":"","sources":["../../src/agent-runtime/schedule-records.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,aAAa,EAAuB,MAAM,qBAAqB,CAAC;AAC9E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAExD,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,oFAAoF;AACpF,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,kFAAkF;AAClF,wBAAgB,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,IAAI,GAAG,aAAa,CA0CrF;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,uBAAuB,EAC/B,QAAQ,EAAE,aAAa,GACtB,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAwBD,+FAA+F;AAC/F,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,MAAM,EACd,QAAQ,UAAQ,GACf,OAAO,CAAC,IAAI,CAAC,CA+Bf;AAED,mGAAmG;AACnG,wBAAsB,YAAY,CAChC,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CA8Cf;AAED,kFAAkF;AAClF,wBAAgB,aAAa,CAC3B,MAAM,EAAE,uBAAuB,EAC/B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,aAAa,EACvB,GAAG,EAAE,MAAM,IAAI,GACd,OAAO,CAAC,OAAO,CAAC,CA0BlB"}
1
+ {"version":3,"file":"schedule-records.d.ts","sourceRoot":"","sources":["../../src/agent-runtime/schedule-records.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,aAAa,EAAuB,MAAM,qBAAqB,CAAC;AAC9E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAExD,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,oFAAoF;AACpF,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,kFAAkF;AAClF,wBAAgB,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,IAAI,GAAG,aAAa,CA0CrF;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,uBAAuB,EAC/B,QAAQ,EAAE,aAAa,GACtB,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAkCD;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,kBAAkB,UAAQ,GACzB,OAAO,CAAC,IAAI,CAAC,CAgEf;AAED,mGAAmG;AACnG,wBAAsB,YAAY,CAChC,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAyCf;AAED,kFAAkF;AAClF,wBAAgB,aAAa,CAC3B,MAAM,EAAE,uBAAuB,EAC/B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,aAAa,EACvB,GAAG,EAAE,MAAM,IAAI,GACd,OAAO,CAAC,OAAO,CAAC,CA0BlB"}
@@ -8,5 +8,10 @@ export declare function createAgentScheduleService(input: {
8
8
  clearTimer?: ScheduleDispatchContext['clearTimer'];
9
9
  /** Storage/tick failures; dispatch failures are recorded in schedule/failed. */
10
10
  onError?: (error: unknown) => void;
11
+ /**
12
+ * Failed dispatch attempts after which a schedule is `failed` rather than
13
+ * retried. Default 1000 — about sixteen hours at the one-minute retry ceiling.
14
+ */
15
+ maxAttempts?: number;
11
16
  }): AgentScheduleService;
12
17
  //# sourceMappingURL=schedules.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schedules.d.ts","sourceRoot":"","sources":["../../src/agent-runtime/schedules.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,oBAAoB,EAE1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAoB,KAAK,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAGrF,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,MAAM,EAAE,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAC1C,QAAQ,EAAE,uBAAuB,CAAC,UAAU,CAAC,CAAC;IAC9C,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,QAAQ,CAAC,EAAE,uBAAuB,CAAC,UAAU,CAAC,CAAC;IAC/C,UAAU,CAAC,EAAE,uBAAuB,CAAC,YAAY,CAAC,CAAC;IACnD,gFAAgF;IAChF,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC,GAAG,oBAAoB,CA6JvB"}
1
+ {"version":3,"file":"schedules.d.ts","sourceRoot":"","sources":["../../src/agent-runtime/schedules.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,oBAAoB,EAE1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAoB,KAAK,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAGrF,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,MAAM,EAAE,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAC1C,QAAQ,EAAE,uBAAuB,CAAC,UAAU,CAAC,CAAC;IAC9C,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,QAAQ,CAAC,EAAE,uBAAuB,CAAC,UAAU,CAAC,CAAC;IAC/C,UAAU,CAAC,EAAE,uBAAuB,CAAC,YAAY,CAAC,CAAC;IACnD,gFAAgF;IAChF,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,oBAAoB,CAmKvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite-events.d.ts","sourceRoot":"","sources":["../../src/agent-runtime/sqlite-events.ts"],"names":[],"mappings":"AAOA,OAAO,EAKL,KAAK,iBAAiB,EACvB,MAAM,eAAe,CAAC;AAuBvB,eAAO,MAAM,YAAY,EAAE,iBAAiB,CAAC,QAAQ,CAwDpD,CAAC;AAEF,2FAA2F;AAC3F,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,iBAAiB,CAAC,SAAS,CAAC,CA8HnE,CAAC"}
1
+ {"version":3,"file":"sqlite-events.d.ts","sourceRoot":"","sources":["../../src/agent-runtime/sqlite-events.ts"],"names":[],"mappings":"AAOA,OAAO,EAKL,KAAK,iBAAiB,EACvB,MAAM,eAAe,CAAC;AAuBvB,eAAO,MAAM,YAAY,EAAE,iBAAiB,CAAC,QAAQ,CAoEpD,CAAC;AAEF,2FAA2F;AAC3F,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,iBAAiB,CAAC,SAAS,CAAC,CA8HnE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"store-create.d.ts","sourceRoot":"","sources":["../../src/agent-runtime/store-create.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,iBAAiB,EAQvB,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAWvE;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EACjD,MAAM,EAAE,uBAAuB,CAAC,WAAW,CAAC,GAC3C,iBAAiB,CAsDnB"}
1
+ {"version":3,"file":"store-create.d.ts","sourceRoot":"","sources":["../../src/agent-runtime/store-create.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,iBAAiB,EAQvB,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAYvE;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EACjD,MAAM,EAAE,uBAAuB,CAAC,WAAW,CAAC,GAC3C,iBAAiB,CAwDnB"}
@@ -787,6 +787,15 @@ export interface AgentRuntimeStoreDriver<TRANSACTION> {
787
787
  events: {
788
788
  append(transaction: TRANSACTION, event: AgentStoreEventDraft): Promise<AgentStoreEventEnvelope>;
789
789
  list(transaction: TRANSACTION, input: z.infer<typeof ReadAgentStoreEventsSchema>): Promise<AgentStoreEventPage>;
790
+ /**
791
+ * One event by its identity, or `undefined`. Once-only admission asks this
792
+ * on every call; without it the store pages through the whole conversation
793
+ * log, which is linear in its length and reads every payload on the way.
794
+ */
795
+ find?(transaction: TRANSACTION, input: {
796
+ conversationId: string;
797
+ eventId: string;
798
+ }): Promise<AgentStoreEventEnvelope | undefined>;
790
799
  };
791
800
  /** Optional driver-owned durable payloads included in the canonical archive. */
792
801
  archive?: {
@@ -1 +1 @@
1
- {"version":3,"file":"store-driver-contract.d.ts","sourceRoot":"","sources":["../../src/agent-runtime/store-driver-contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store-driver-contract.d.ts","sourceRoot":"","sources":["../../src/agent-runtime/store-driver-contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { type AgentStoreEventEnvelope, type AppendAgentStoreEvent } from '../durability/events.js';
2
+ import type { AgentRuntimeStoreDriver } from './store-driver-contract.js';
3
+ /** The identity a once-only event carries: the same key always names the same event. */
4
+ export declare function eventOnceId(conversationId: string, kind: string, key: string): string;
5
+ /** A durable admission fence in the same transaction and log as ordinary events. */
6
+ export declare function appendEventOnce<TRANSACTION>(driver: AgentRuntimeStoreDriver<TRANSACTION>, input: AppendAgentStoreEvent, key: string): Promise<{
7
+ outcome: "duplicate";
8
+ event: {
9
+ schemaVersion: number;
10
+ eventId: string;
11
+ conversationId: string;
12
+ seq: number;
13
+ kind: string;
14
+ occurredAt: string;
15
+ payload: import("zod").JSONType;
16
+ ignorable?: true | undefined;
17
+ };
18
+ } | {
19
+ outcome: "applied";
20
+ event: {
21
+ schemaVersion: number;
22
+ eventId: string;
23
+ conversationId: string;
24
+ seq: number;
25
+ kind: string;
26
+ occurredAt: string;
27
+ payload: import("zod").JSONType;
28
+ ignorable?: true | undefined;
29
+ };
30
+ }>;
31
+ /** The event `appendEventOnce` wrote for this kind and key, if any. */
32
+ export declare function findEventOnce<TRANSACTION>(driver: AgentRuntimeStoreDriver<TRANSACTION>, input: {
33
+ conversationId: string;
34
+ kind: string;
35
+ key: string;
36
+ }): Promise<AgentStoreEventEnvelope | undefined>;
37
+ //# sourceMappingURL=store-event-once.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store-event-once.d.ts","sourceRoot":"","sources":["../../src/agent-runtime/store-event-once.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAE3B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAGvE,wFAAwF;AACxF,wBAAgB,WAAW,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAKrF;AAyBD,oFAAoF;AACpF,wBAAgB,eAAe,CAAC,WAAW,EACzC,MAAM,EAAE,uBAAuB,CAAC,WAAW,CAAC,EAC5C,KAAK,EAAE,qBAAqB,EAC5B,GAAG,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;GAoBZ;AAED,uEAAuE;AACvE,wBAAgB,aAAa,CAAC,WAAW,EACvC,MAAM,EAAE,uBAAuB,CAAC,WAAW,CAAC,EAC5C,KAAK,EAAE;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC3D,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC,CAM9C"}
@@ -1 +1 @@
1
- {"version":3,"file":"store-memory.d.ts","sourceRoot":"","sources":["../../src/agent-runtime/store-memory.ts"],"names":[],"mappings":"AAOA,OAAO,EAIL,KAAK,iBAAiB,EACvB,MAAM,SAAS,CAAC;AA4TjB,oGAAoG;AACpG,wBAAgB,6BAA6B,IAAI,iBAAiB,CA8DjE"}
1
+ {"version":3,"file":"store-memory.d.ts","sourceRoot":"","sources":["../../src/agent-runtime/store-memory.ts"],"names":[],"mappings":"AAOA,OAAO,EAIL,KAAK,iBAAiB,EACvB,MAAM,SAAS,CAAC;AAiUjB,oGAAoG;AACpG,wBAAgB,6BAA6B,IAAI,iBAAiB,CA8DjE"}
@@ -2839,6 +2839,17 @@ export interface AgentRuntimeStore {
2839
2839
  }): Promise<AgentRecoverablePage>;
2840
2840
  /** Append one declared non-transition fact without creating a second history store. */
2841
2841
  appendEvent(input: AppendAgentStoreEvent): Promise<AgentStoreEventEnvelope>;
2842
+ /** Optional atomic once-only admission. Required by model invocation receipts. */
2843
+ appendEventOnce?(input: AppendAgentStoreEvent, key: string): Promise<{
2844
+ outcome: 'applied' | 'duplicate';
2845
+ event: AgentStoreEventEnvelope;
2846
+ }>;
2847
+ /** The event `appendEventOnce` wrote for this kind and key — one lookup, not a log scan. */
2848
+ findEventOnce?(input: {
2849
+ conversationId: string;
2850
+ kind: string;
2851
+ key: string;
2852
+ }): Promise<AgentStoreEventEnvelope | undefined>;
2842
2853
  /** Read one bounded ordered slice of the canonical conversation event log. */
2843
2854
  readEvents(input: ReadAgentStoreEvents): Promise<AgentStoreEventPage>;
2844
2855
  /** Deterministic canonical archive bytes for one conversation's durable event log. */
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/agent-runtime/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/agent-runtime/store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { type BackoffPolicy } from '../internal/backoff.js';
2
+ import { type ManagedResourceContext } from './resource.js';
3
+ export interface ChangeConnection {
4
+ subscribe(input: {
5
+ signal: AbortSignal;
6
+ hint(key: string): void;
7
+ disconnected(error: unknown): void;
8
+ }): Promise<void>;
9
+ close(): void | Promise<void>;
10
+ }
11
+ export interface ChangeReconciliation {
12
+ readonly signal: AbortSignal;
13
+ /** Synchronous publication is admitted only for the connection that started the read. */
14
+ commit(publish: () => void): boolean;
15
+ }
16
+ export interface ChangeSubscriptionConfig {
17
+ readonly id: string;
18
+ readonly keys: readonly string[];
19
+ readonly connect: (signal: AbortSignal) => Promise<ChangeConnection>;
20
+ readonly reconcile: (key: string, context: ChangeReconciliation) => Promise<void>;
21
+ readonly reconcileIntervalMs: number;
22
+ readonly timeoutMs?: number;
23
+ readonly backoff?: BackoffPolicy;
24
+ readonly onError: (error: unknown) => void;
25
+ }
26
+ export declare function changeSubscriptionResource(config: ChangeSubscriptionConfig): {
27
+ readonly id: string;
28
+ readonly start: (context: ManagedResourceContext) => {
29
+ ready?: undefined;
30
+ } | {
31
+ ready: Promise<void>;
32
+ };
33
+ readonly close: () => Promise<void>;
34
+ readonly force: () => Promise<void>;
35
+ };
36
+ //# sourceMappingURL=change-subscription.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"change-subscription.d.ts","sourceRoot":"","sources":["../../src/application/change-subscription.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAAiB,MAAM,qBAAqB,CAAC;AAGxE,OAAO,EAAyB,KAAK,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEhF,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,KAAK,EAAE;QACf,MAAM,EAAE,WAAW,CAAC;QACpB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;KACpC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClB,KAAK,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B;AACD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,yFAAyF;IACzF,MAAM,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC;CACtC;AACD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACrE,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClF,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CAC5C;AAsPD,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,wBAAwB;;;;;;;;;EAQ1E"}
@@ -1,4 +1,5 @@
1
1
  import { z } from 'zod';
2
+ import type { ExclusiveLockDiagnosis, ExclusiveLockOwner } from '../internal/exclusive-lock.js';
2
3
  export declare const DiagnosticJournalLimitsSchema: z.ZodReadonly<z.ZodObject<{
3
4
  maxEventBytes: z.ZodNumber;
4
5
  maxPendingItems: z.ZodNumber;
@@ -196,12 +197,8 @@ export declare function parseDiagnosticJournalMode(mode: number | undefined): nu
196
197
  export interface DiagnosticJournalLockDiagnosis {
197
198
  readonly attribution: 'this-machine' | 'another-machine' | 'unattributable';
198
199
  readonly liveness: 'alive' | 'gone' | 'not-probed';
199
- readonly owner: {
200
- pid: number;
201
- host: string;
202
- acquiredAt: string;
203
- machine?: string;
204
- } | null;
200
+ readonly owner: ExclusiveLockOwner | null;
201
+ readonly identity?: ExclusiveLockDiagnosis['identity'];
205
202
  }
206
203
  /** Read the diagnosis a refused acquisition attached to its error, if it carried one. */
207
204
  export declare function readDiagnosticJournalLockDiagnosis(error: unknown): DiagnosticJournalLockDiagnosis | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostic-journal-contract.d.ts","sourceRoot":"","sources":["../../src/application/diagnostic-journal-contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagnostic-journal-contract.d.ts","sourceRoot":"","sources":["../../src/application/diagnostic-journal-contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import { z } from 'zod';
2
+ import type { NotificationOutboxItem, NotificationOutboxState, NotificationSend } from './notification-outbox.js';
3
+ import type { StateStore } from './state-store.js';
4
+ export declare const NotificationDeliveryStateSchema: z.ZodObject<{
5
+ version: z.ZodString;
6
+ actions: z.ZodArray<z.ZodString>;
7
+ receipts: z.ZodArray<z.ZodObject<{
8
+ action: z.ZodString;
9
+ receipt: z.ZodJSONSchema;
10
+ unrecorded: z.ZodOptional<z.ZodEnum<{
11
+ "not-json": "not-json";
12
+ "too-large": "too-large";
13
+ }>>;
14
+ }, z.core.$strict>>;
15
+ projectedAt: z.ZodOptional<z.ZodString>;
16
+ }, z.core.$strict>;
17
+ export type NotificationDeliveryState = z.infer<typeof NotificationDeliveryStateSchema>;
18
+ export type NotificationProjection<TPayload> = (notification: NotificationSend<TPayload>, receipts: NotificationDeliveryState['receipts']) => void | Promise<void>;
19
+ export interface NotificationDeliveryConfig<TPayload> {
20
+ readonly version: string;
21
+ readonly actions: (payload: TPayload) => readonly string[];
22
+ readonly project: NotificationProjection<TPayload>;
23
+ /**
24
+ * Projections of earlier plan versions still waiting in the queue. A plan
25
+ * keeps its actions from enqueue, so an older version needs only its
26
+ * projection to finish: keep it here until the queue has drained it.
27
+ */
28
+ readonly retiredVersions?: Readonly<Record<string, NotificationProjection<TPayload>>>;
29
+ }
30
+ /**
31
+ * A queued plan whose version this executor does not know. It is reported to
32
+ * `onError` and waits for an executor that knows it — a newer or older process
33
+ * during a deploy or rollback, or this one once it lists the version in
34
+ * `retiredVersions` — without counting an attempt or consulting `classify`.
35
+ */
36
+ export declare class NotificationPlanVersionError extends Error {
37
+ readonly version: string;
38
+ constructor(version: string);
39
+ }
40
+ /** Immutable plan captured at enqueue, never recomputed on retry. */
41
+ export declare function notificationDeliveryPlan<T>(config: NotificationDeliveryConfig<T>, payload: T): NotificationDeliveryState;
42
+ /** Checkpoints remain in the owning outbox's atomic state boundary. */
43
+ export declare function deliverNotification<T>(input: {
44
+ item: NotificationOutboxItem<T>;
45
+ store: StateStore<NotificationOutboxState<T>>;
46
+ config: NotificationDeliveryConfig<T>;
47
+ send(notification: NotificationSend<T>): unknown | Promise<unknown>;
48
+ clock(): Date;
49
+ leaseMs: number;
50
+ active(): boolean;
51
+ bounded(state: NotificationOutboxState<T>): NotificationOutboxState<T>;
52
+ /** An action succeeded but its receipt could not be kept as returned. */
53
+ report(error: unknown): Promise<void>;
54
+ }): Promise<boolean>;
55
+ //# sourceMappingURL=notification-delivery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification-delivery.d.ts","sourceRoot":"","sources":["../../src/application/notification-delivery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EACV,sBAAsB,EACtB,uBAAuB,EACvB,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,eAAO,MAAM,+BAA+B;;;;;;;;;;;;kBA8BzC,CAAC;AACJ,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAExF,MAAM,MAAM,sBAAsB,CAAC,QAAQ,IAAI,CAC7C,YAAY,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EACxC,QAAQ,EAAE,yBAAyB,CAAC,UAAU,CAAC,KAC5C,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B,MAAM,WAAW,0BAA0B,CAAC,QAAQ;IAClD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,SAAS,MAAM,EAAE,CAAC;IAC3D,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACnD;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;CACvF;AAED;;;;;GAKG;AACH,qBAAa,4BAA6B,SAAQ,KAAK;IACrD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,YAAY,OAAO,EAAE,MAAM,EAI1B;CACF;AAoBD,qEAAqE;AACrE,wBAAgB,wBAAwB,CAAC,CAAC,EACxC,MAAM,EAAE,0BAA0B,CAAC,CAAC,CAAC,EACrC,OAAO,EAAE,CAAC,GACT,yBAAyB,CAM3B;AAED,uEAAuE;AACvE,wBAAsB,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE;IAClD,IAAI,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAChC,KAAK,EAAE,UAAU,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,MAAM,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC;IACtC,IAAI,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACpE,KAAK,IAAI,IAAI,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,IAAI,OAAO,CAAC;IAClB,OAAO,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAAG,uBAAuB,CAAC,CAAC,CAAC,CAAC;IACvE,yEAAyE;IACzE,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC,GAAG,OAAO,CAAC,OAAO,CAAC,CAgFnB"}
@@ -0,0 +1,41 @@
1
+ import { z } from 'zod';
2
+ import type { DroppedNotification, NotificationFailureClassification, NotificationOutboxConfig, NotificationOutboxItem, NotificationOutboxState } from './notification-outbox.js';
3
+ /** One second doubling to a minute, no jitter — a single durable queue, not a fleet. */
4
+ export declare const DEFAULT_OUTBOX_BACKOFF: {
5
+ readonly minDelayMs: 1000;
6
+ readonly maxDelayMs: 60000;
7
+ readonly jitter: 0;
8
+ };
9
+ /** Every bound of the outbox, validated once at construction. */
10
+ export declare function resolveOutboxLimits<TPayload>(config: NotificationOutboxConfig<TPayload>): {
11
+ pollIntervalMs: number;
12
+ leaseMs: number;
13
+ maxAttempts: number;
14
+ maxQueue: number;
15
+ maxStateBytes: number;
16
+ retainReceipts: number;
17
+ };
18
+ /** The state would not fit `maxStateBytes` even with every receipt dropped. */
19
+ export declare class OutboxStateLimitError extends Error {
20
+ constructor(maxStateBytes: number);
21
+ }
22
+ /**
23
+ * The state a transition may write: the queue within its limit, and receipts
24
+ * dropped oldest-first until the whole state fits its byte budget.
25
+ */
26
+ export declare function boundedOutboxState<TPayload>(parsed: NotificationOutboxState<TPayload>, maxQueue: number, retainReceipts: number, maxStateBytes: number): NotificationOutboxState<TPayload>;
27
+ /** Why a failed send is dropped rather than retried, or `null` to retry it. */
28
+ export declare function dropReason(classification: NotificationFailureClassification, attempts: number, maxAttempts: number): DroppedNotification<unknown>['reason'] | null;
29
+ /** A backoff delay, bounded at a day: a retry later than that is a lost notification. */
30
+ export declare const RetryDelaySchema: z.ZodNumber;
31
+ export declare const NO_LEASE: {
32
+ readonly leaseOwner: null;
33
+ readonly leaseId: null;
34
+ readonly leaseUntil: null;
35
+ };
36
+ /**
37
+ * The oldest item that is due and not leased by a live owner, leased now to
38
+ * `ownerId` — or `null` when nothing is ready.
39
+ */
40
+ export declare function claimDue<TPayload>(queue: readonly NotificationOutboxItem<TPayload>[], now: Date, ownerId: string, leaseMs: number): NotificationOutboxItem<TPayload> | null;
41
+ //# sourceMappingURL=notification-outbox-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification-outbox-state.d.ts","sourceRoot":"","sources":["../../src/application/notification-outbox-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EACV,mBAAmB,EACnB,iCAAiC,EACjC,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EACxB,MAAM,uBAAuB,CAAC;AAI/B,wFAAwF;AACxF,eAAO,MAAM,sBAAsB;aACjC,UAAU,EAAE,IAAK;aACjB,UAAU,EAAE,KAAM;aAClB,MAAM,EAAE,CAAC;CACD,CAAC;AAEX,iEAAiE;AACjE,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,wBAAwB,CAAC,QAAQ,CAAC;;;;;;;EAsCvF;AAED,+EAA+E;AAC/E,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,aAAa,EAAE,MAAM,EAGhC;CACF;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EACzC,MAAM,EAAE,uBAAuB,CAAC,QAAQ,CAAC,EACzC,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,GACpB,uBAAuB,CAAC,QAAQ,CAAC,CAYnC;AAED,+EAA+E;AAC/E,wBAAgB,UAAU,CACxB,cAAc,EAAE,iCAAiC,EACjD,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,mBAAmB,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI,CAI/C;AAED,yFAAyF;AACzF,eAAO,MAAM,gBAAgB,aAGD,CAAC;AAE7B,eAAO,MAAM,QAAQ;aAAK,UAAU;aAAQ,OAAO;aAAQ,UAAU;CAAiB,CAAC;AAEvF;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAC/B,KAAK,EAAE,SAAS,sBAAsB,CAAC,QAAQ,CAAC,EAAE,EAClD,GAAG,EAAE,IAAI,EACT,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,sBAAsB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAgBzC"}
@@ -1,7 +1,9 @@
1
1
  import { z } from 'zod';
2
+ import { type NotificationDeliveryConfig, type NotificationDeliveryState } from './notification-delivery.js';
2
3
  import { type ManagedResource } from './resource.js';
3
4
  import type { StateStore } from './state-store.js';
4
5
  export interface NotificationOutboxItem<TPayload> {
6
+ readonly delivery?: NotificationDeliveryState;
5
7
  readonly key: string;
6
8
  readonly payload: TPayload;
7
9
  readonly createdAt: string;
@@ -12,6 +14,7 @@ export interface NotificationOutboxItem<TPayload> {
12
14
  readonly leaseUntil: string | null;
13
15
  }
14
16
  export interface NotificationOutboxReceipt {
17
+ readonly delivery?: NotificationDeliveryState;
15
18
  readonly key: string;
16
19
  readonly completedAt: string;
17
20
  }
@@ -23,6 +26,8 @@ export interface NotificationOutboxState<TPayload> {
23
26
  /** The schema shared by any persistence adapter and the outbox itself. */
24
27
  export declare function notificationOutboxStateSchema<TPayload>(payload: z.ZodType<TPayload>): z.ZodType<NotificationOutboxState<TPayload>>;
25
28
  export interface NotificationSend<TPayload> {
29
+ readonly action?: string;
30
+ readonly idempotencyKey?: string;
26
31
  readonly key: string;
27
32
  readonly payload: TPayload;
28
33
  readonly attempt: number;
@@ -39,7 +44,8 @@ export interface DroppedNotification<TPayload> {
39
44
  export interface NotificationOutboxConfig<TPayload> {
40
45
  readonly store: StateStore<NotificationOutboxState<TPayload>>;
41
46
  readonly payloadSchema: z.ZodType<TPayload>;
42
- readonly send: (notification: NotificationSend<TPayload>) => void | Promise<void>;
47
+ readonly send: (notification: NotificationSend<TPayload>) => unknown | Promise<unknown>;
48
+ readonly delivery?: NotificationDeliveryConfig<TPayload>;
43
49
  readonly classify: (error: unknown) => NotificationFailureClassification | Promise<NotificationFailureClassification>;
44
50
  readonly clock?: () => Date;
45
51
  readonly ownerId?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"notification-outbox.d.ts","sourceRoot":"","sources":["../../src/application/notification-outbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notification-outbox.d.ts","sourceRoot":"","sources":["../../src/application/notification-outbox.ts"],"names":[],"mappings":"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"}
@@ -3,51 +3,9 @@
3
3
  * retry, the frames each subscriber is sent — whole values or differences
4
4
  * against what it holds — and the release of a source nobody watches.
5
5
  */
6
- import { createBackoff } from '../internal/backoff.js';
7
- import { type WatchHave, type WatchKey, type WatchStateFrame, type WatchValueFrame } from '../live/watch-contract.js';
8
- import type { AttachedWatcher, WatchHubConfig, WatchOperation, WatchSubscriber } from './watch-hub.js';
9
- interface Source {
10
- readonly key: WatchKey;
11
- readonly operation: WatchOperation;
12
- readonly args: unknown;
13
- readonly subscribers: Set<WatchSubscriber>;
14
- readonly unsubscribes: (() => void)[];
15
- revision: number;
16
- value?: unknown;
17
- signature?: string;
18
- fingerprint?: string;
19
- /**
20
- * Superseded values by revision, oldest first, under a byte ceiling.
21
- *
22
- * Insertion order is the eviction order, which is why this is a `Map` and not
23
- * an object: the oldest revision is the one least likely to still be anyone's
24
- * baseline.
25
- */
26
- readonly history: Map<number, {
27
- value: unknown;
28
- fingerprint: string;
29
- bytes: number;
30
- }>;
31
- historyBytes: number;
32
- /**
33
- * The revision each subscriber is known to hold — the base its next difference
34
- * is taken against.
35
- *
36
- * "Known to hold" means delivered without throwing, not acknowledged. There is
37
- * no ack on this protocol and adding one would put a round trip in front of
38
- * every frame; the socket is ordered and reliable while it is up, and when it
39
- * is not the subscriber re-declares what it has in `open`. A frame whose
40
- * delivery threw does not advance the baseline, so the next one is taken
41
- * against what actually arrived.
42
- */
43
- readonly baselines: Map<WatchSubscriber, number>;
44
- reading: boolean;
45
- dirty: boolean;
46
- state: WatchStateFrame;
47
- retry?: ReturnType<typeof setTimeout>;
48
- release?: ReturnType<typeof setTimeout>;
49
- backoff: ReturnType<typeof createBackoff>;
50
- }
6
+ import { type WatchKey, type WatchStateFrame } from '../live/watch-contract.js';
7
+ import type { AttachedWatcher, WatchAdmissionScope, WatchHubConfig, WatchOperation, WatchSubscriber } from './watch-hub.js';
8
+ import { type Source } from './watch-hub-source.js';
51
9
  /**
52
10
  * The hub's shared sources and what each subscriber holds. A class because
53
11
  * every step — acquire, pump, publish, deliver, release — reads and writes the
@@ -56,13 +14,14 @@ interface Source {
56
14
  export declare class WatchHubCore {
57
15
  readonly config: WatchHubConfig;
58
16
  readonly sources: Map<string, Source>;
59
- readonly held: Map<WatchSubscriber, Set<string>>;
17
+ readonly held: Map<WatchSubscriber, Map<string, string>>;
60
18
  readonly maxWatches: number;
61
19
  readonly holdMs: number;
62
20
  readonly deltaMemoryBytes: number;
63
21
  readonly same: NonNullable<WatchHubConfig['same']>;
64
22
  reads: number;
65
23
  closed: boolean;
24
+ periodic?: ReturnType<typeof setInterval>;
66
25
  constructor(config: WatchHubConfig);
67
26
  /**
68
27
  * Hand one frame to one subscriber, and keep its failure to itself.
@@ -76,47 +35,18 @@ export declare class WatchHubCore {
76
35
  */
77
36
  tell(key: WatchKey, send: () => void): boolean;
78
37
  announceState(source: Source, state: WatchStateFrame): void;
79
- /**
80
- * Remember the value a subscriber may still be holding, under the byte ceiling.
81
- *
82
- * Called with the value being *superseded*, because that is the only one a
83
- * difference can be taken against: the current value is `source.value` and
84
- * needs no memory.
85
- */
86
- remember(source: Source, revision: number, value: unknown, fingerprint: string): void;
87
- /**
88
- * The frame this one subscriber should receive — a difference when it saves,
89
- * the value when it does not.
90
- *
91
- * The choice is per subscriber and it has to be: eight panels on one key can
92
- * each be holding a different revision, one of them having just joined with
93
- * nothing at all. A single broadcast frame would have to be the value, which
94
- * is the behaviour this replaces.
95
- */
96
- frameFor(source: Source, subscriber: WatchSubscriber): WatchValueFrame;
97
- /**
98
- * Believe a reconnecting subscriber about what it holds, as far as the
99
- * fingerprint goes.
100
- *
101
- * The revision it names is a hint about *where* to look; the fingerprint is
102
- * what decides. They are checked in that order against the current value first
103
- * — the common case is a page that came back to an answer that never moved —
104
- * and then against the superseded values still in memory.
105
- *
106
- * A fingerprint that matches nothing is not an error and is not announced: the
107
- * subscriber simply has no baseline, and the next frame is the whole value,
108
- * which is exactly right for a client holding something this hub cannot
109
- * reconstruct.
110
- */
111
- adoptBaseline(source: Source, subscriber: WatchSubscriber, have: WatchHave): void;
112
38
  deliver(source: Source, subscriber: WatchSubscriber): boolean;
113
39
  publish(source: Source, value: unknown, fingerprint: string): void;
114
- pump(source: Source): Promise<void>;
115
- scheduleRetry(source: Source): void;
116
- acquire(operation: WatchOperation, key: WatchKey, args: unknown): Source;
40
+ readSource(source: Source): Promise<void>;
41
+ readFailed(source: Source, error: unknown): void;
42
+ acquire(operation: WatchOperation, routed: WatchKey, args: unknown, scope?: string): Source;
117
43
  release(source: Source): void;
118
- attach(subscriber: WatchSubscriber): AttachedWatcher;
44
+ /**
45
+ * Take one subscriber's route off a source; the subscriber leaves the source
46
+ * with its last route.
47
+ */
48
+ unroute(source: Source, subscriber: WatchSubscriber, route: string): void;
49
+ attach(subscriber: WatchSubscriber, scope?: WatchAdmissionScope): AttachedWatcher;
119
50
  close(): void;
120
51
  }
121
- export {};
122
52
  //# sourceMappingURL=watch-hub-core.d.ts.map