@spine-event-engine/server 2.0.0-snapshot.25 → 2.0.0-snapshot.28

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 (207) hide show
  1. package/README.md +104 -16
  2. package/REFERENCE.md +486 -57
  3. package/dist/agent/agent-history.d.ts +19 -3
  4. package/dist/agent/agent-history.d.ts.map +1 -1
  5. package/dist/agent/agent-history.js +41 -10
  6. package/dist/agent/agent-history.js.map +1 -1
  7. package/dist/agent/agent-live-ai-runtime.d.ts +1 -1
  8. package/dist/agent/agent-live-ai-runtime.js +1 -1
  9. package/dist/agent/agent-live-budget.d.ts +1 -1
  10. package/dist/agent/agent-live-budget.js +1 -1
  11. package/dist/agent/agent-live-read-runtime.d.ts +13 -2
  12. package/dist/agent/agent-live-read-runtime.d.ts.map +1 -1
  13. package/dist/agent/agent-live-read-runtime.js +6 -5
  14. package/dist/agent/agent-live-read-runtime.js.map +1 -1
  15. package/dist/browser/browser-admission.d.ts +47 -0
  16. package/dist/browser/browser-admission.d.ts.map +1 -0
  17. package/dist/browser/browser-admission.js +200 -0
  18. package/dist/browser/browser-admission.js.map +1 -0
  19. package/dist/browser/browser-server.d.ts +171 -1
  20. package/dist/browser/browser-server.d.ts.map +1 -1
  21. package/dist/browser/browser-server.js +1027 -303
  22. package/dist/browser/browser-server.js.map +1 -1
  23. package/dist/browser/durable-subscription-bindings.d.ts +5 -0
  24. package/dist/browser/durable-subscription-bindings.d.ts.map +1 -1
  25. package/dist/browser/durable-subscription-bindings.js +226 -38
  26. package/dist/browser/durable-subscription-bindings.js.map +1 -1
  27. package/dist/browser/index.d.ts +1 -1
  28. package/dist/browser/index.d.ts.map +1 -1
  29. package/dist/browser/options.d.ts +53 -2
  30. package/dist/browser/options.d.ts.map +1 -1
  31. package/dist/bus/command-bus.d.ts +9 -1
  32. package/dist/bus/command-bus.d.ts.map +1 -1
  33. package/dist/bus/command-bus.js +75 -10
  34. package/dist/bus/command-bus.js.map +1 -1
  35. package/dist/bus/command-errors.d.ts +20 -4
  36. package/dist/bus/command-errors.d.ts.map +1 -1
  37. package/dist/bus/command-errors.js +47 -7
  38. package/dist/bus/command-errors.js.map +1 -1
  39. package/dist/bus/event-bus.d.ts +9 -1
  40. package/dist/bus/event-bus.d.ts.map +1 -1
  41. package/dist/bus/event-bus.js +136 -9
  42. package/dist/bus/event-bus.js.map +1 -1
  43. package/dist/context/bounded-context.d.ts +59 -39
  44. package/dist/context/bounded-context.d.ts.map +1 -1
  45. package/dist/context/bounded-context.js +277 -262
  46. package/dist/context/bounded-context.js.map +1 -1
  47. package/dist/context/entity-inbox.d.ts +12 -17
  48. package/dist/context/entity-inbox.d.ts.map +1 -1
  49. package/dist/context/entity-inbox.js +106 -119
  50. package/dist/context/entity-inbox.js.map +1 -1
  51. package/dist/context/local-inbox-handoff.d.ts +13 -13
  52. package/dist/context/local-inbox-handoff.d.ts.map +1 -1
  53. package/dist/context/local-inbox-handoff.js +60 -32
  54. package/dist/context/local-inbox-handoff.js.map +1 -1
  55. package/dist/context/persistent-tenant-index.d.ts +81 -0
  56. package/dist/context/persistent-tenant-index.d.ts.map +1 -0
  57. package/dist/context/persistent-tenant-index.js +270 -0
  58. package/dist/context/persistent-tenant-index.js.map +1 -0
  59. package/dist/context/projection-handoff.d.ts +9 -9
  60. package/dist/context/projection-handoff.d.ts.map +1 -1
  61. package/dist/context/projection-handoff.js +31 -23
  62. package/dist/context/projection-handoff.js.map +1 -1
  63. package/dist/context/tenant-index.d.ts +7 -6
  64. package/dist/context/tenant-index.d.ts.map +1 -1
  65. package/dist/context/tenant-index.js +2 -188
  66. package/dist/context/tenant-index.js.map +1 -1
  67. package/dist/context/tenant-unknown-error.d.ts +2 -2
  68. package/dist/context/tenant-unknown-error.d.ts.map +1 -1
  69. package/dist/context/tenant-unknown-error.js +4 -1
  70. package/dist/context/tenant-unknown-error.js.map +1 -1
  71. package/dist/delivery/delivery-supervisor.d.ts.map +1 -1
  72. package/dist/delivery/delivery-supervisor.js +12 -3
  73. package/dist/delivery/delivery-supervisor.js.map +1 -1
  74. package/dist/delivery/delivery.d.ts +4 -3
  75. package/dist/delivery/delivery.d.ts.map +1 -1
  76. package/dist/delivery/delivery.js +82 -34
  77. package/dist/delivery/delivery.js.map +1 -1
  78. package/dist/delivery/reception-observation.d.ts +3 -3
  79. package/dist/delivery/reception-observation.js +2 -2
  80. package/dist/entity/entity.d.ts +59 -0
  81. package/dist/entity/entity.d.ts.map +1 -1
  82. package/dist/entity/entity.js +60 -0
  83. package/dist/entity/entity.js.map +1 -1
  84. package/dist/handler/app-query-handler.d.ts +60 -0
  85. package/dist/handler/app-query-handler.d.ts.map +1 -0
  86. package/dist/handler/app-query-handler.js +23 -0
  87. package/dist/handler/app-query-handler.js.map +1 -0
  88. package/dist/handler/generated-registry-discovery.d.ts +6 -0
  89. package/dist/handler/generated-registry-discovery.d.ts.map +1 -1
  90. package/dist/handler/generated-registry-discovery.js +71 -2
  91. package/dist/handler/generated-registry-discovery.js.map +1 -1
  92. package/dist/handler/handler-decorators.d.ts +8 -29
  93. package/dist/handler/handler-decorators.d.ts.map +1 -1
  94. package/dist/handler/handler-decorators.js +33 -210
  95. package/dist/handler/handler-decorators.js.map +1 -1
  96. package/dist/handler/spine-metadata-inventory.d.ts +99 -0
  97. package/dist/handler/spine-metadata-inventory.d.ts.map +1 -0
  98. package/dist/handler/spine-metadata-inventory.js +162 -0
  99. package/dist/handler/spine-metadata-inventory.js.map +1 -0
  100. package/dist/index.d.ts +9 -4
  101. package/dist/index.d.ts.map +1 -1
  102. package/dist/index.js +6 -2
  103. package/dist/index.js.map +1 -1
  104. package/dist/repository/command-routing.d.ts +1 -1
  105. package/dist/repository/command-routing.js +1 -1
  106. package/dist/repository/event-routing.d.ts +1 -1
  107. package/dist/repository/event-routing.js +1 -1
  108. package/dist/repository/repository.d.ts +61 -26
  109. package/dist/repository/repository.d.ts.map +1 -1
  110. package/dist/repository/repository.js +612 -306
  111. package/dist/repository/repository.js.map +1 -1
  112. package/dist/repository/state-update-routing.d.ts +1 -1
  113. package/dist/repository/state-update-routing.js +1 -1
  114. package/dist/runtime/signal-publisher.d.ts +23 -8
  115. package/dist/runtime/signal-publisher.d.ts.map +1 -1
  116. package/dist/runtime/signal-publisher.js +11 -8
  117. package/dist/runtime/signal-publisher.js.map +1 -1
  118. package/dist/server/managed-server-application.d.ts +12 -11
  119. package/dist/server/managed-server-application.d.ts.map +1 -1
  120. package/dist/server/managed-server-application.js +41 -25
  121. package/dist/server/managed-server-application.js.map +1 -1
  122. package/dist/server/node-coordinator.d.ts +18 -5
  123. package/dist/server/node-coordinator.d.ts.map +1 -1
  124. package/dist/server/node-coordinator.js +744 -108
  125. package/dist/server/node-coordinator.js.map +1 -1
  126. package/dist/server/reserved-spine-rpc-paths.json +1 -0
  127. package/dist/server/server-environment.d.ts +23 -5
  128. package/dist/server/server-environment.d.ts.map +1 -1
  129. package/dist/server/server-environment.js +89 -24
  130. package/dist/server/server-environment.js.map +1 -1
  131. package/dist/server/server.d.ts +45 -0
  132. package/dist/server/server.d.ts.map +1 -1
  133. package/dist/server/server.js +112 -3
  134. package/dist/server/server.js.map +1 -1
  135. package/dist/services/app-query-execution.d.ts +53 -0
  136. package/dist/services/app-query-execution.d.ts.map +1 -0
  137. package/dist/services/app-query-execution.js +408 -0
  138. package/dist/services/app-query-execution.js.map +1 -0
  139. package/dist/services/native-operation.d.ts +34 -0
  140. package/dist/services/native-operation.d.ts.map +1 -0
  141. package/dist/services/native-operation.js +77 -0
  142. package/dist/services/native-operation.js.map +1 -0
  143. package/dist/services/query-reader.d.ts +32 -7
  144. package/dist/services/query-reader.d.ts.map +1 -1
  145. package/dist/services/query-reader.js +22 -2
  146. package/dist/services/query-reader.js.map +1 -1
  147. package/dist/services/read-request-status.d.ts +65 -0
  148. package/dist/services/read-request-status.d.ts.map +1 -0
  149. package/dist/services/read-request-status.js +151 -0
  150. package/dist/services/read-request-status.js.map +1 -0
  151. package/dist/services/spine-services.d.ts +42 -7
  152. package/dist/services/spine-services.d.ts.map +1 -1
  153. package/dist/services/spine-services.js +1005 -175
  154. package/dist/services/spine-services.js.map +1 -1
  155. package/dist/services/trusted-reader-ingress.d.ts +110 -0
  156. package/dist/services/trusted-reader-ingress.d.ts.map +1 -0
  157. package/dist/services/trusted-reader-ingress.js +102 -0
  158. package/dist/services/trusted-reader-ingress.js.map +1 -0
  159. package/dist/spi/handler-registry.d.ts +2 -0
  160. package/dist/spi/handler-registry.d.ts.map +1 -1
  161. package/dist/spi/handler-registry.js +1 -1
  162. package/dist/spi/handler-registry.js.map +1 -1
  163. package/dist/stand/read-side-filter-engine.d.ts +46 -0
  164. package/dist/stand/read-side-filter-engine.d.ts.map +1 -0
  165. package/dist/stand/read-side-filter-engine.js +356 -0
  166. package/dist/stand/read-side-filter-engine.js.map +1 -0
  167. package/dist/stand/read-side-filter.d.ts +247 -0
  168. package/dist/stand/read-side-filter.d.ts.map +1 -0
  169. package/dist/stand/read-side-filter.js +39 -0
  170. package/dist/stand/read-side-filter.js.map +1 -0
  171. package/dist/stand/read-side-message.d.ts +66 -0
  172. package/dist/stand/read-side-message.d.ts.map +1 -0
  173. package/dist/stand/read-side-message.js +167 -0
  174. package/dist/stand/read-side-message.js.map +1 -0
  175. package/dist/stand/stand-direct-delivery.d.ts +161 -0
  176. package/dist/stand/stand-direct-delivery.d.ts.map +1 -0
  177. package/dist/stand/stand-direct-delivery.js +210 -0
  178. package/dist/stand/stand-direct-delivery.js.map +1 -0
  179. package/dist/stand/stand.d.ts +81 -43
  180. package/dist/stand/stand.d.ts.map +1 -1
  181. package/dist/stand/stand.js +411 -55
  182. package/dist/stand/stand.js.map +1 -1
  183. package/dist/stand/subscription-observer.d.ts.map +1 -1
  184. package/dist/stand/subscription-observer.js +103 -0
  185. package/dist/stand/subscription-observer.js.map +1 -1
  186. package/dist/stand/subscription-read-filters.d.ts +40 -0
  187. package/dist/stand/subscription-read-filters.d.ts.map +1 -0
  188. package/dist/stand/subscription-read-filters.js +91 -0
  189. package/dist/stand/subscription-read-filters.js.map +1 -0
  190. package/dist/stand/subscription-reader-binding.d.ts +20 -0
  191. package/dist/stand/subscription-reader-binding.d.ts.map +1 -0
  192. package/dist/stand/subscription-reader-binding.js +56 -0
  193. package/dist/stand/subscription-reader-binding.js.map +1 -0
  194. package/dist/stand/subscription-records.d.ts +30 -3
  195. package/dist/stand/subscription-records.d.ts.map +1 -1
  196. package/dist/stand/subscription-records.js +61 -16
  197. package/dist/stand/subscription-records.js.map +1 -1
  198. package/dist/stand/subscription-registry.d.ts +49 -14
  199. package/dist/stand/subscription-registry.d.ts.map +1 -1
  200. package/dist/stand/subscription-registry.js +150 -31
  201. package/dist/stand/subscription-registry.js.map +1 -1
  202. package/dist/stand/subscription-runtime.d.ts +7 -2
  203. package/dist/stand/subscription-runtime.d.ts.map +1 -1
  204. package/dist/stand/subscription-runtime.js +131 -25
  205. package/dist/stand/subscription-runtime.js.map +1 -1
  206. package/dist/tsconfig.tsbuildinfo +1 -1
  207. package/package.json +16 -14
@@ -1,5 +1,5 @@
1
1
  import type { ConversationHistoryRead, HistoryPage, HistoryRead } from "@spine-event-engine/ai";
2
- import type { Event } from "@spine-event-engine/proto";
2
+ import type { ActorContext, Event } from "@spine-event-engine/proto";
3
3
  import { type AgentHistoryEntry, type ConversationRecord } from "@spine-event-engine/proto/agent";
4
4
  import { type AgentHistoryPage, type AgentHistoryStorage, type AgentHistoryView } from "@spine-event-engine/storage/provider";
5
5
  /**
@@ -30,9 +30,10 @@ export interface AgentHistoryScope {
30
30
  * @param request Public read request.
31
31
  * @param live Loads the current provider page only when needed.
32
32
  * @param maxBytes Optional response-byte ceiling for this read.
33
+ * @param present Applies outward policy after accounting for provider bytes.
33
34
  * @returns The current complete provider page.
34
35
  */
35
- export type AgentHistoryReadInterceptor = (scope: AgentHistoryScope, request: HistoryRead, live: () => Promise<AgentHistoryPage>, maxBytes: number | undefined) => Promise<AgentHistoryPage>;
36
+ export type AgentHistoryReadInterceptor = (scope: AgentHistoryScope, request: HistoryRead, live: () => Promise<AgentHistoryPage>, maxBytes: number | undefined, present: (page: AgentHistoryPage) => Promise<HistoryPage<AgentHistoryEntry>>) => Promise<HistoryPage<AgentHistoryEntry>>;
36
37
  /**
37
38
  * Repository binding for an Agent's mandatory indexed history.
38
39
  *
@@ -65,6 +66,20 @@ export interface AgentHistoryBinding<Id> {
65
66
  * @returns Its result after all work settles.
66
67
  */
67
68
  readonly onAdmit?: (onRead: () => Promise<HistoryPage<AgentHistoryEntry>>) => Promise<HistoryPage<AgentHistoryEntry>>;
69
+ /**
70
+ * Captures active signal metadata before the protected read can await.
71
+ * @returns Detached actor context when a handler supplies one.
72
+ */
73
+ readonly captureActor?: () => ActorContext | undefined;
74
+ /**
75
+ * Transforms outward domain records after provider read and before read completion.
76
+ * @param page Retained provider entries and original continuation.
77
+ * @param view Requested history category.
78
+ * @param request Captured page request.
79
+ * @param actorContext Actor metadata from the active handler, when present.
80
+ * @returns Visible entries with the original continuation.
81
+ */
82
+ readonly filterPage?: (page: HistoryPage<AgentHistoryEntry>, view: AgentHistoryView, request: HistoryRead, actorContext?: ActorContext) => Promise<HistoryPage<AgentHistoryEntry>>;
68
83
  }
69
84
  /**
70
85
  * Internal accessors shared by the Agent base and repository runtime.
@@ -134,9 +149,10 @@ export interface AgentHistoryReadAccess {
134
149
  * @param binding Exact Agent repository and tenant storage scope.
135
150
  * @param view Indexed history view.
136
151
  * @param request Public page request.
152
+ * @param actorContext Actor metadata captured at invocation.
137
153
  * @returns Retained entries and opaque continuation.
138
154
  */
139
- readBound<Id>(binding: AgentHistoryBinding<Id>, view: AgentHistoryView, request: HistoryRead): Promise<HistoryPage<AgentHistoryEntry>>;
155
+ readBound<Id>(binding: AgentHistoryBinding<Id>, view: AgentHistoryView, request: HistoryRead, actorContext?: ActorContext): Promise<HistoryPage<AgentHistoryEntry>>;
140
156
  /**
141
157
  * Persists a genuine framework System Event.
142
158
  *
@@ -1 +1 @@
1
- {"version":3,"file":"agent-history.d.ts","sourceRoot":"","sources":["../../src/agent/agent-history.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-history.d.ts","sourceRoot":"","sources":["../../src/agent/agent-history.ts"],"names":[],"mappings":"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"}
@@ -11,9 +11,9 @@
11
11
  * or implied. See the License for the specific language governing permissions and limitations under
12
12
  * the License.
13
13
  */
14
- import { create } from "@bufbuild/protobuf";
14
+ import { clone, create } from "@bufbuild/protobuf";
15
15
  import { TimestampSchema } from "@bufbuild/protobuf/wkt";
16
- import { AgentHistoryCursorSchema, AgentHistoryEntrySchema, } from "@spine-event-engine/proto/agent";
16
+ import { AgentHistoryCursorSchema, AgentHistoryEntrySchema, ConversationIdSchema, } from "@spine-event-engine/proto/agent";
17
17
  import { AgentHistoryKeys, } from "@spine-event-engine/storage/provider";
18
18
  const bindings = new WeakMap();
19
19
  /**
@@ -30,6 +30,9 @@ export const AgentHistoryReads = Object.freeze({
30
30
  bind(entity, binding) {
31
31
  bindings.set(entity, binding);
32
32
  },
33
+ /**
34
+ * Installs a temporary history-read interceptor for the active Entity execution.
35
+ */
33
36
  withReadInterceptor(entity, interceptRead) {
34
37
  const binding = bindings.get(entity);
35
38
  if (binding === undefined)
@@ -140,7 +143,7 @@ export const AgentHistoryReads = Object.freeze({
140
143
  const binding = bindings.get(entity);
141
144
  if (binding === undefined)
142
145
  throw new Error("Agent history is available only from repository execution.");
143
- return this.readBound(binding, view, request);
146
+ return this.readBound(binding, view, request, binding.captureActor?.());
144
147
  },
145
148
  /**
146
149
  * Reads a bounded provider page through the current live interceptor.
@@ -149,10 +152,26 @@ export const AgentHistoryReads = Object.freeze({
149
152
  * @param binding Repository storage, identity and optional live read interceptor.
150
153
  * @param view Indexed category and optional conversation filter.
151
154
  * @param request Page size and opaque continuation from a previous page.
155
+ * @param actorContext Signal metadata captured before provider work.
152
156
  * @returns Retained entries with the next cursor when older entries remain.
153
157
  */
154
- async readBound(binding, view, request) {
155
- const onRead = () => AgentHistoryPages.readBound(binding, view, request);
158
+ async readBound(binding, view, request, actorContext) {
159
+ const capturedRequest = {
160
+ pageSize: request.pageSize,
161
+ ...(request.cursor === undefined
162
+ ? {}
163
+ : { cursor: clone(AgentHistoryCursorSchema, request.cursor) }),
164
+ };
165
+ const capturedView = view.kind === "conversation"
166
+ ? {
167
+ kind: "conversation",
168
+ conversation: clone(ConversationIdSchema, view.conversation),
169
+ }
170
+ : view;
171
+ /**
172
+ * Admits the captured history read through the configured read boundary.
173
+ */
174
+ const onRead = () => AgentHistoryPages.readBound(binding, capturedView, capturedRequest, actorContext);
156
175
  return binding.onAdmit === undefined ? onRead() : binding.onAdmit(onRead);
157
176
  },
158
177
  });
@@ -166,18 +185,30 @@ const AgentHistoryPages = Object.freeze({
166
185
  * @param binding Captured Agent history binding.
167
186
  * @param view Indexed history category.
168
187
  * @param request Requested page and continuation.
188
+ * @param actorContext Signal metadata captured when protected read began.
169
189
  * @returns Complete protected page.
170
190
  */
171
- async readBound(binding, view, request) {
191
+ async readBound(binding, view, request, actorContext) {
172
192
  if (!Number.isSafeInteger(request.pageSize) || request.pageSize <= 0)
173
193
  throw new RangeError("Agent history pageSize must be a positive safe integer.");
174
194
  const maxBytes = this.limit(binding.maxBytes);
175
195
  const after = AgentHistoryCursorValues.decode(request.cursor?.value, binding.scope, view, maxBytes);
196
+ /**
197
+ * Loads the next provider page when cached history cannot serve the request.
198
+ */
176
199
  const live = () => this.load(binding, view, request, after, maxBytes);
177
- const page = binding.interceptRead === undefined
178
- ? await live()
179
- : await binding.interceptRead(binding.scope, request, live, maxBytes);
180
- return this.present(binding.scope, view, page);
200
+ /**
201
+ * Converts one retained page and applies the configured visibility filter.
202
+ */
203
+ const present = (page) => {
204
+ const result = this.present(binding.scope, view, page);
205
+ return binding.filterPage === undefined
206
+ ? Promise.resolve(result)
207
+ : binding.filterPage(result, view, request, actorContext);
208
+ };
209
+ return binding.interceptRead === undefined
210
+ ? present(await live())
211
+ : binding.interceptRead(binding.scope, request, live, maxBytes, present);
181
212
  },
182
213
  /**
183
214
  * Loads a scoped provider page after validating the request.
@@ -1 +1 @@
1
- {"version":3,"file":"agent-history.js","sourceRoot":"","sources":["../../src/agent/agent-history.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-history.js","sourceRoot":"","sources":["../../src/agent/agent-history.ts"],"names":[],"mappings":"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"}
@@ -280,7 +280,7 @@ export declare class AgentLiveAiRuntime implements AgentAi {
280
280
  */
281
281
  private ticket;
282
282
  /**
283
- * Completes measured response bytes without replay state.
283
+ * Completes measured response bytes without recorded state.
284
284
  *
285
285
  * @param attempts Physical attempt state for this invocation.
286
286
  * @param audit Retained history audit for this invocation.
@@ -578,7 +578,7 @@ export class AgentLiveAiRuntime {
578
578
  return ticket;
579
579
  }
580
580
  /**
581
- * Completes measured response bytes without replay state.
581
+ * Completes measured response bytes without recorded state.
582
582
  *
583
583
  * @param attempts Physical attempt state for this invocation.
584
584
  * @param audit Retained history audit for this invocation.
@@ -13,7 +13,7 @@ export interface AgentPhysicalTicket {
13
13
  readonly maxOutputBytes: number | undefined;
14
14
  }
15
15
  /**
16
- * Counts one live invocation without durable replay or unacknowledged writes.
16
+ * Counts one live invocation without durable restart or unacknowledged writes.
17
17
  */
18
18
  export declare class AgentLiveBudget {
19
19
  #private;
@@ -13,7 +13,7 @@
13
13
  */
14
14
  import { AgentLiveFault } from "./agent-live-fault.js";
15
15
  /**
16
- * Counts one live invocation without durable replay or unacknowledged writes.
16
+ * Counts one live invocation without durable restart or unacknowledged writes.
17
17
  */
18
18
  export class AgentLiveBudget {
19
19
  limits;
@@ -1,12 +1,13 @@
1
1
  import { type MessageShape } from "@bufbuild/protobuf";
2
2
  import { type MessageSchema } from "@spine-event-engine/core";
3
- import type { HistoryRead } from "@spine-event-engine/ai";
3
+ import type { HistoryPage, HistoryRead } from "@spine-event-engine/ai";
4
4
  import type { Query } from "@spine-event-engine/proto/client";
5
+ import { type AgentHistoryEntry } from "@spine-event-engine/proto/agent";
5
6
  import type { AgentHistoryPage } from "@spine-event-engine/storage/provider";
6
7
  import type { AgentHistoryScope } from "./agent-history.js";
7
8
  import { AgentLiveBudget } from "./agent-live-budget.js";
8
9
  /**
9
- * Sequences live Agent reads without durable snapshots or replay.
10
+ * Sequences live Agent reads without durable snapshots or recorded-operation restart.
10
11
  */
11
12
  export declare class AgentLiveReadRuntime {
12
13
  #private;
@@ -30,6 +31,16 @@ export declare class AgentLiveReadRuntime {
30
31
  * @returns The current provider page.
31
32
  */
32
33
  history(scope: AgentHistoryScope, request: HistoryRead, live: () => Promise<AgentHistoryPage>, maxBytes: number | undefined): Promise<AgentHistoryPage>;
34
+ /**
35
+ * Reads and presents a page within the same sequenced read lifetime.
36
+ * @param scope Exact repository and Agent identity.
37
+ * @param request Public page request.
38
+ * @param live Complete provider page callback.
39
+ * @param maxBytes Optional effective response byte ceiling.
40
+ * @param present Outward transformation after original byte accounting.
41
+ * @returns The presented page and original continuation.
42
+ */
43
+ history(scope: AgentHistoryScope, request: HistoryRead, live: () => Promise<AgentHistoryPage>, maxBytes: number | undefined, present: (page: AgentHistoryPage) => Promise<HistoryPage<AgentHistoryEntry>>): Promise<HistoryPage<AgentHistoryEntry>>;
33
44
  /**
34
45
  * Executes one typed projection query in the same call-order queue.
35
46
  * @typeParam Schema Generated Projection state schema.
@@ -1 +1 @@
1
- {"version":3,"file":"agent-live-read-runtime.d.ts","sourceRoot":"","sources":["../../src/agent/agent-live-read-runtime.ts"],"names":[],"mappings":"AAcA,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAE9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;GAEG;AACH,qBAAa,oBAAoB;;IAe7B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAVhC;;;;;;OAMG;gBAEgB,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE,eAAe,EACvB,YAAY,CAAC,GAAE,MAAM,OAAO,CAAC,IAAI,CAAC,aAAA;IAGrD;;;;;;;OAOG;IACH,OAAO,CACL,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,EACrC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,OAAO,CAAC,gBAAgB,CAAC;IAoB5B;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM,SAAS,aAAa,EAChC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,MAAM,OAAO,CAAC,SAAS,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,GACnD,OAAO,CAAC,SAAS,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;IAU3C;;OAEG;IACH,MAAM,IAAI,IAAI;IAKd;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ;IAahB;;;;OAIG;IACH,OAAO,CAAC,UAAU;CASnB"}
1
+ {"version":3,"file":"agent-live-read-runtime.d.ts","sourceRoot":"","sources":["../../src/agent/agent-live-read-runtime.ts"],"names":[],"mappings":"AAcA,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAA2B,KAAK,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAClG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;GAEG;AACH,qBAAa,oBAAoB;;IAe7B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAVhC;;;;;;OAMG;gBAEgB,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE,eAAe,EACvB,YAAY,CAAC,GAAE,MAAM,OAAO,CAAC,IAAI,CAAC,aAAA;IAGrD;;;;;;;OAOG;IACH,OAAO,CACL,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,EACrC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,OAAO,CAAC,gBAAgB,CAAC;IAE5B;;;;;;;;OAQG;IACH,OAAO,CACL,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,EACrC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,GAC3E,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAqC1C;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM,SAAS,aAAa,EAChC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,MAAM,OAAO,CAAC,SAAS,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,GACnD,OAAO,CAAC,SAAS,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;IAU3C;;OAEG;IACH,MAAM,IAAI,IAAI;IAKd;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ;IAahB;;;;OAIG;IACH,OAAO,CAAC,UAAU;CASnB"}
@@ -16,7 +16,7 @@ import { TypeUrls } from "@spine-event-engine/core";
16
16
  import { AgentHistoryEntrySchema } from "@spine-event-engine/proto/agent";
17
17
  import { AgentLiveBudget } from "./agent-live-budget.js";
18
18
  /**
19
- * Sequences live Agent reads without durable snapshots or replay.
19
+ * Sequences live Agent reads without durable snapshots or recorded-operation restart.
20
20
  */
21
21
  export class AgentLiveReadRuntime {
22
22
  scope;
@@ -38,14 +38,15 @@ export class AgentLiveReadRuntime {
38
38
  this.checkSession = checkSession;
39
39
  }
40
40
  /**
41
- * Reads one indexed page in call order and enforces its actual byte ceiling.
41
+ * Processes provider and optional policy work under one Agent read admission.
42
42
  * @param scope Exact repository and Agent identity.
43
43
  * @param request Public page request.
44
44
  * @param live Complete provider page callback.
45
45
  * @param maxBytes Optional effective response byte ceiling.
46
- * @returns The current provider page.
46
+ * @param present Optional outward transformation after original byte accounting.
47
+ * @returns Provider or presented page after all work settles.
47
48
  */
48
- history(scope, request, live, maxBytes) {
49
+ history(scope, request, live, maxBytes, present) {
49
50
  return this.sequence(async () => {
50
51
  this.checkScope(scope);
51
52
  if (!Number.isSafeInteger(request.pageSize) || request.pageSize <= 0)
@@ -59,7 +60,7 @@ export class AgentLiveReadRuntime {
59
60
  const bytes = page.entries.reduce((sum, entry) => sum + toBinary(AgentHistoryEntrySchema, entry).length, 0);
60
61
  if (maxBytes !== undefined && bytes > maxBytes)
61
62
  throw new RangeError("Agent history page exceeds maxBytes.");
62
- return page;
63
+ return present === undefined ? page : present(page);
63
64
  });
64
65
  }
65
66
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"agent-live-read-runtime.js","sourceRoot":"","sources":["../../src/agent/agent-live-read-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-live-read-runtime.js","sourceRoot":"","sources":["../../src/agent/agent-live-read-runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import type * as http from "node:http";
2
+ import type { BrowserAuthRoute, BrowserCredentialAdmission } from "./options.js";
3
+ /**
4
+ * Immutable startup admission names and raw request inspection for one browser host.
5
+ */
6
+ export declare class BrowserAdmissionPolicy {
7
+ #private;
8
+ /**
9
+ * Captured duplicate-sensitive names for the active RPC credential reader.
10
+ */
11
+ readonly reader: BrowserCredentialAdmission;
12
+ /**
13
+ * Captured duplicate-sensitive names indexed by exact authentication route path.
14
+ */
15
+ readonly routes: ReadonlyMap<string, BrowserCredentialAdmission>;
16
+ /**
17
+ * Stores the validated reader and route names for one listener.
18
+ * @param reader Active RPC credential reader declaration.
19
+ * @param routes Authentication route declarations indexed by exact path.
20
+ */
21
+ private constructor();
22
+ /**
23
+ * Validates and copies every declaration before the first asynchronous startup step.
24
+ * @param reader Active RPC credential reader declaration.
25
+ * @param routes Validated route configurations indexed by pathname.
26
+ * @returns One immutable admission policy for startup and requests.
27
+ */
28
+ static create(reader: unknown, routes: ReadonlyMap<string, BrowserAuthRoute>): BrowserAdmissionPolicy;
29
+ /**
30
+ * Rejects ambiguous raw headers and returns an immutable duplicate-preserving view.
31
+ * @param request Incoming Node request before WHATWG normalization.
32
+ * @param active Reader or selected route declaration for primary conflict checks.
33
+ * @returns Raw header view or a terminal admission rejection.
34
+ */
35
+ inspect(request: http.IncomingMessage, active: BrowserCredentialAdmission): {
36
+ readonly kind: "admitted";
37
+ readonly headers: RawBrowserHeaders;
38
+ } | {
39
+ readonly kind: "rejected";
40
+ readonly reason: string;
41
+ };
42
+ }
43
+ /**
44
+ * Duplicate-preserving lowercase raw HTTP header values.
45
+ */
46
+ export type RawBrowserHeaders = Readonly<Record<string, string | readonly string[] | undefined>>;
47
+ //# sourceMappingURL=browser-admission.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-admission.d.ts","sourceRoot":"","sources":["../../src/browser/browser-admission.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,KAAK,IAAI,MAAM,WAAW,CAAC;AAEvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAEjF;;GAEG;AACH,qBAAa,sBAAsB;;IACjC;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;IAE5C;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;IAMjE;;;;OAIG;IACH,OAAO;IAaP;;;;;OAKG;IACH,MAAM,CAAC,MAAM,CACX,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAC5C,sBAAsB;IAMzB;;;;;OAKG;IACH,OAAO,CACL,OAAO,EAAE,IAAI,CAAC,eAAe,EAC7B,MAAM,EAAE,0BAA0B,GAEhC;QAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAA;KAAE,GAClE;QAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE;CAW3D;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC"}
@@ -0,0 +1,200 @@
1
+ /*
2
+ * Copyright 2026, CodeMatters. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5
+ * in compliance with the License. You may obtain a copy of the License at
6
+ *
7
+ * https://www.apache.org/licenses/LICENSE-2.0
8
+ *
9
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
10
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11
+ * or implied. See the License for the specific language governing permissions and limitations under
12
+ * the License.
13
+ */
14
+ /**
15
+ * Immutable startup admission names and raw request inspection for one browser host.
16
+ */
17
+ export class BrowserAdmissionPolicy {
18
+ /**
19
+ * Captured duplicate-sensitive names for the active RPC credential reader.
20
+ */
21
+ reader;
22
+ /**
23
+ * Captured duplicate-sensitive names indexed by exact authentication route path.
24
+ */
25
+ routes;
26
+ #csrfHeaders;
27
+ #selectedCookies;
28
+ /**
29
+ * Stores the validated reader and route names for one listener.
30
+ * @param reader Active RPC credential reader declaration.
31
+ * @param routes Authentication route declarations indexed by exact path.
32
+ */
33
+ constructor(reader, routes) {
34
+ this.reader = reader;
35
+ this.routes = routes;
36
+ const all = [reader, ...routes.values()];
37
+ this.#csrfHeaders = new Set(all.flatMap((value) => value.csrfHeaderNames));
38
+ this.#selectedCookies = new Set(all.flatMap((value) => [...value.credentialCookieNames, ...value.stateCookieNames]));
39
+ }
40
+ /**
41
+ * Validates and copies every declaration before the first asynchronous startup step.
42
+ * @param reader Active RPC credential reader declaration.
43
+ * @param routes Validated route configurations indexed by pathname.
44
+ * @returns One immutable admission policy for startup and requests.
45
+ */
46
+ static create(reader, routes) {
47
+ const copied = new Map();
48
+ for (const [path, route] of routes)
49
+ copied.set(path, AdmissionNames.copy(route.admission));
50
+ return new BrowserAdmissionPolicy(AdmissionNames.copy(reader), copied);
51
+ }
52
+ /**
53
+ * Rejects ambiguous raw headers and returns an immutable duplicate-preserving view.
54
+ * @param request Incoming Node request before WHATWG normalization.
55
+ * @param active Reader or selected route declaration for primary conflict checks.
56
+ * @returns Raw header view or a terminal admission rejection.
57
+ */
58
+ inspect(request, active) {
59
+ const headers = AdmissionNames.raw(request.rawHeaders);
60
+ for (const name of ["authorization", "origin", ...this.#csrfHeaders])
61
+ if ((headers[name]?.length ?? 0) > 1)
62
+ return { kind: "rejected", reason: `repeated ${name}` };
63
+ const cookies = AdmissionNames.cookies(headers.cookie ?? [], this.#selectedCookies);
64
+ if ("reason" in cookies)
65
+ return { kind: "rejected", reason: cookies.reason };
66
+ const primary = active.credentialCookieNames.filter((name) => cookies.present.has(name));
67
+ if (primary.length > 1 || (primary.length > 0 && (headers.authorization?.length ?? 0) > 0))
68
+ return { kind: "rejected", reason: "simultaneous credentials" };
69
+ return { kind: "admitted", headers: AdmissionNames.freeze(headers) };
70
+ }
71
+ }
72
+ /**
73
+ * Internal name validation and raw field selection.
74
+ */
75
+ const AdmissionNames = Object.freeze({
76
+ /**
77
+ * Copies a complete metadata declaration and validates all three required arrays.
78
+ * @param supplied JavaScript or TypeScript caller metadata.
79
+ * @returns Frozen normalized header names and exact cookie names.
80
+ */
81
+ copy(supplied) {
82
+ if (typeof supplied !== "object" || supplied === null)
83
+ throw new Error("Browser credential admission metadata is required.");
84
+ const value = supplied;
85
+ const csrf = AdmissionNames.names(value.csrfHeaderNames, "csrfHeaderNames", true);
86
+ const credential = AdmissionNames.names(value.credentialCookieNames, "credentialCookieNames", false);
87
+ const state = AdmissionNames.names(value.stateCookieNames, "stateCookieNames", false);
88
+ if (credential.some((name) => state.includes(name)))
89
+ throw new Error("Browser credential and state cookie names must be distinct.");
90
+ return Object.freeze({
91
+ csrfHeaderNames: csrf,
92
+ credentialCookieNames: credential,
93
+ stateCookieNames: state,
94
+ });
95
+ },
96
+ /**
97
+ * Validates a complete array without accepting sparse or repeated names.
98
+ * @param supplied Metadata array from a caller.
99
+ * @param label Category used in configuration errors.
100
+ * @param header Whether case-insensitive HTTP header rules apply.
101
+ * @returns Frozen validated names.
102
+ */
103
+ names(supplied, label, header) {
104
+ if (!Array.isArray(supplied))
105
+ throw new Error(`Browser ${label} must be an array.`);
106
+ const names = [];
107
+ for (let index = 0; index < supplied.length; index += 1) {
108
+ if (!(index in supplied))
109
+ throw new Error(`Browser ${label} must not be sparse.`);
110
+ const raw = supplied[index];
111
+ if (typeof raw !== "string" || !/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/.test(raw))
112
+ throw new Error(`Browser ${label} contains an invalid name.`);
113
+ const name = header ? raw.toLowerCase() : raw;
114
+ if (header && ["authorization", "origin", "cookie"].includes(name))
115
+ throw new Error(`Browser ${label} contains a reserved header.`);
116
+ if (names.includes(name))
117
+ throw new Error(`Browser ${label} contains a duplicate name.`);
118
+ names.push(name);
119
+ }
120
+ return Object.freeze(names);
121
+ },
122
+ /**
123
+ * Collects all Node raw header pairs without losing repeated field values.
124
+ * @param pairs Alternating raw header names and values.
125
+ * @returns Lowercase names mapped to original ordered values.
126
+ */
127
+ raw(pairs) {
128
+ const result = Object.create(null);
129
+ for (let index = 0; index < pairs.length; index += 2) {
130
+ const name = pairs[index]?.toLowerCase();
131
+ const value = pairs[index + 1];
132
+ if (name === undefined || value === undefined)
133
+ continue;
134
+ (result[name] ??= []).push(value);
135
+ }
136
+ return result;
137
+ },
138
+ /**
139
+ * Checks raw Cookie pairs before any first-value parser can hide ambiguity.
140
+ * @param fields Original Cookie field values in arrival order.
141
+ * @param selected Names declared by any mounted reader or route.
142
+ * @returns Present selected names or a terminal syntax/duplicate rejection.
143
+ */
144
+ cookies(fields, selected) {
145
+ const present = new Set();
146
+ for (const field of fields) {
147
+ if (AdmissionNames.invalidField(field))
148
+ return { reason: "malformed Cookie field" };
149
+ for (const pair of field.split(";")) {
150
+ const index = pair.indexOf("=");
151
+ if (index <= 0)
152
+ return { reason: "malformed Cookie pair" };
153
+ const name = pair.slice(0, index).trim();
154
+ const value = pair.slice(index + 1).trim();
155
+ if (!AdmissionNames.validPair(name, value))
156
+ return { reason: "malformed Cookie pair" };
157
+ if (!selected.has(name))
158
+ continue;
159
+ if (present.has(name))
160
+ return { reason: "repeated selected Cookie" };
161
+ present.add(name);
162
+ }
163
+ }
164
+ return { present };
165
+ },
166
+ /**
167
+ * Checks a raw Cookie field for controls and comma-combined ambiguity.
168
+ * @param field Original field value.
169
+ * @returns Whether the field contains a forbidden character.
170
+ */
171
+ invalidField(field) {
172
+ for (const character of field) {
173
+ const code = character.charCodeAt(0);
174
+ if (code <= 31 || code === 127 || character === ",")
175
+ return true;
176
+ }
177
+ return false;
178
+ },
179
+ /**
180
+ * Checks one Cookie pair's raw token name and printable value.
181
+ * @param name Cookie name before decoding.
182
+ * @param value Cookie value before decoding.
183
+ * @returns Whether the pair has valid transport syntax.
184
+ */
185
+ validPair(name, value) {
186
+ return /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/.test(name) && /^[\x21-\x7e]*$/.test(value);
187
+ },
188
+ /**
189
+ * Creates immutable header fields and ordered value arrays for the selected reader.
190
+ * @param headers Duplicate-preserving mutable request-local collection.
191
+ * @returns Immutable lowercase header view.
192
+ */
193
+ freeze(headers) {
194
+ const result = Object.create(null);
195
+ for (const [name, values] of Object.entries(headers))
196
+ result[name] = values.length === 1 ? (values[0] ?? "") : Object.freeze([...values]);
197
+ return Object.freeze(result);
198
+ },
199
+ });
200
+ //# sourceMappingURL=browser-admission.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-admission.js","sourceRoot":"","sources":["../../src/browser/browser-admission.ts"],"names":[],"mappings":"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"}