@pellux/goodvibes-daemon-sdk 0.33.37 → 0.33.38

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.
@@ -8,5 +8,25 @@ import type { DaemonApiRouteHandlers } from './context.js';
8
8
  * modifying core route files.
9
9
  */
10
10
  export type DaemonApiRouteExtension = (req: Request) => Promise<Response | null> | Response | null;
11
+ /**
12
+ * Dispatch an incoming HTTP request against the full daemon API route set.
13
+ *
14
+ * Routes are tried in order: remote → operator → automation → session → task → extensions.
15
+ * Returns the first non-null `Response`, or `null` if no route matched.
16
+ *
17
+ * @param req - The incoming HTTP request.
18
+ * @param handlers - Object implementing `DaemonApiRouteHandlers`.
19
+ * @param extensions - Optional additional dispatchers tried after built-in routes.
20
+ * @returns The matched route's `Response`, or `null` if unmatched.
21
+ *
22
+ * @example
23
+ * ```ts
24
+ * import { dispatchDaemonApiRoutes } from '@pellux/goodvibes-daemon-sdk';
25
+ *
26
+ * const response = await dispatchDaemonApiRoutes(req, myHandlers);
27
+ * if (response) return response;
28
+ * return new Response('Not found', { status: 404 });
29
+ * ```
30
+ */
11
31
  export declare function dispatchDaemonApiRoutes(req: Request, handlers: DaemonApiRouteHandlers, extensions?: readonly DaemonApiRouteExtension[]): Promise<Response | null>;
12
32
  //# sourceMappingURL=api-router.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-router.d.ts","sourceRoot":"","sources":["../src/api-router.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE3D;;;;;;;GAOG;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC;AAEnG,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,sBAAsB,EAChC,UAAU,CAAC,EAAE,SAAS,uBAAuB,EAAE,GAC9C,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAkB1B"}
1
+ {"version":3,"file":"api-router.d.ts","sourceRoot":"","sources":["../src/api-router.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE3D;;;;;;;GAOG;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC;AAEnG;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,sBAAsB,EAChC,UAAU,CAAC,EAAE,SAAS,uBAAuB,EAAE,GAC9C,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAkB1B"}
@@ -3,6 +3,26 @@ import { dispatchOperatorRoutes } from './operator.js';
3
3
  import { dispatchRemoteRoutes } from './remote.js';
4
4
  import { dispatchSessionRoutes } from './sessions.js';
5
5
  import { dispatchTaskRoutes } from './tasks.js';
6
+ /**
7
+ * Dispatch an incoming HTTP request against the full daemon API route set.
8
+ *
9
+ * Routes are tried in order: remote → operator → automation → session → task → extensions.
10
+ * Returns the first non-null `Response`, or `null` if no route matched.
11
+ *
12
+ * @param req - The incoming HTTP request.
13
+ * @param handlers - Object implementing `DaemonApiRouteHandlers`.
14
+ * @param extensions - Optional additional dispatchers tried after built-in routes.
15
+ * @returns The matched route's `Response`, or `null` if unmatched.
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * import { dispatchDaemonApiRoutes } from '@pellux/goodvibes-daemon-sdk';
20
+ *
21
+ * const response = await dispatchDaemonApiRoutes(req, myHandlers);
22
+ * if (response) return response;
23
+ * return new Response('Not found', { status: 404 });
24
+ * ```
25
+ */
6
26
  export async function dispatchDaemonApiRoutes(req, handlers, extensions) {
7
27
  let result = await dispatchRemoteRoutes(req, handlers);
8
28
  if (result !== null)
@@ -9,11 +9,11 @@ export async function dispatchAutomationRoutes(req, handlers) {
9
9
  if (pathname === '/api/automation' && method === 'GET')
10
10
  return handlers.getIntegrationAutomation();
11
11
  if (pathname === '/api/automation/jobs' && method === 'GET')
12
- return handlers.getAutomationJobs();
12
+ return handlers.getAutomationJobs(url);
13
13
  if (pathname === '/api/automation/jobs' && method === 'POST')
14
14
  return handlers.postAutomationJob(req);
15
15
  if (pathname === '/api/automation/runs' && method === 'GET')
16
- return handlers.getAutomationRuns();
16
+ return handlers.getAutomationRuns(url);
17
17
  const automationRunMatch = pathname.match(/^\/api\/automation\/runs\/([^/]+)$/);
18
18
  if (automationRunMatch && method === 'GET')
19
19
  return handlers.getAutomationRun(automationRunMatch[1]);
package/dist/context.d.ts CHANGED
@@ -1,38 +1,52 @@
1
+ /** The return type for all daemon route handler methods — either a synchronous or async `Response`. */
1
2
  export type MaybeResponse = Response | Promise<Response>;
3
+ /** Combined route handler interface for the remote dispatch surface (overview + management). */
2
4
  export interface DaemonRemoteDispatchRouteHandlers extends DaemonRemoteOverviewRouteHandlers, DaemonRemoteManagementRouteHandlers {
3
5
  }
6
+ /** Route handlers for the remote overview endpoint. */
4
7
  export interface DaemonRemoteOverviewRouteHandlers {
5
8
  getRemote(): MaybeResponse;
6
9
  }
10
+ /** Full operator route surface — aggregates control, telemetry, channel, integration, system, remote-management, knowledge, media, and runtime handlers. */
7
11
  export interface DaemonOperatorRouteHandlers extends DaemonControlRouteHandlers, DaemonTelemetryRouteHandlers, DaemonChannelRouteHandlers, DaemonIntegrationRouteHandlers, DaemonSystemRouteHandlers, DaemonRemoteManagementRouteHandlers, DaemonKnowledgeRouteHandlers, DaemonMediaRouteHandlers, DaemonOperatorRuntimeRouteHandlers {
8
12
  }
13
+ /** Route handlers for operator-level runtime metrics and heartbeat endpoints. */
9
14
  export interface DaemonOperatorRuntimeRouteHandlers {
10
15
  getAutomationHeartbeat(): MaybeResponse;
11
16
  postAutomationHeartbeat(req: Request): MaybeResponse;
12
17
  getSchedulerCapacity(req: Request): MaybeResponse;
13
18
  getRuntimeMetrics(): MaybeResponse;
14
19
  }
20
+ /** Route handlers for the automation surface — overview, runtime automation, and delivery. */
15
21
  export interface DaemonAutomationRouteHandlers extends DaemonAutomationOverviewRouteHandlers, DaemonRuntimeAutomationRouteHandlers, DaemonDeliveryRouteHandlers {
16
22
  }
23
+ /** Route handlers for automation overview endpoints (review, session, automation summaries). */
17
24
  export interface DaemonAutomationOverviewRouteHandlers {
18
25
  getReview(): MaybeResponse;
19
26
  getIntegrationSession(): MaybeResponse;
20
27
  getIntegrationAutomation(): MaybeResponse;
21
28
  }
29
+ /** Route handlers for delivery listing and retrieval. */
22
30
  export interface DaemonDeliveryRouteHandlers {
23
31
  getDeliveries(): MaybeResponse;
24
32
  getDelivery(deliveryId: string): MaybeResponse;
25
33
  }
34
+ /** Route handlers for the session surface — overview and runtime session management. */
26
35
  export interface DaemonSessionRouteHandlers extends DaemonSessionOverviewRouteHandlers, DaemonRuntimeSessionRouteHandlers {
27
36
  }
37
+ /** Route handler for the integration sessions listing endpoint. */
28
38
  export interface DaemonSessionOverviewRouteHandlers {
29
- getIntegrationSessions(): MaybeResponse;
39
+ /** @param url - When present and contains `limit`/`cursor` params, returns a `PaginatedResponse`. Otherwise returns the legacy session broker snapshot. */
40
+ getIntegrationSessions(url?: URL): MaybeResponse;
30
41
  }
42
+ /** Route handlers for the task surface — overview and runtime task management. */
31
43
  export interface DaemonTaskRouteHandlers extends DaemonTaskOverviewRouteHandlers, DaemonRuntimeTaskRouteHandlers {
32
44
  }
45
+ /** Route handler for the integration tasks listing endpoint. */
33
46
  export interface DaemonTaskOverviewRouteHandlers {
34
47
  getIntegrationTasks(): MaybeResponse;
35
48
  }
49
+ /** Route handlers for daemon control-plane endpoints: auth, status, gateway, and SSE event streams. */
36
50
  export interface DaemonControlRouteHandlers {
37
51
  postLogin(req: Request): MaybeResponse;
38
52
  getStatus(req: Request): MaybeResponse;
@@ -49,6 +63,7 @@ export interface DaemonControlRouteHandlers {
49
63
  invokeGatewayMethod(methodId: string, req: Request): MaybeResponse;
50
64
  createControlPlaneEventStream(req: Request): MaybeResponse;
51
65
  }
66
+ /** Route handlers for telemetry endpoints: snapshots, events, errors, traces, metrics, and OTLP ingest. */
52
67
  export interface DaemonTelemetryRouteHandlers {
53
68
  getTelemetrySnapshot(req: Request): MaybeResponse;
54
69
  getTelemetryEvents(req: Request): MaybeResponse;
@@ -63,6 +78,7 @@ export interface DaemonTelemetryRouteHandlers {
63
78
  postTelemetryOtlpTraces(req: Request): MaybeResponse;
64
79
  postTelemetryOtlpMetrics(req: Request): MaybeResponse;
65
80
  }
81
+ /** Route handlers for channel/surface management: accounts, setup, lifecycle, capabilities, tools, actions, policies, and directory. */
66
82
  export interface DaemonChannelRouteHandlers {
67
83
  getSurfaces(): MaybeResponse;
68
84
  getChannelAccounts(): MaybeResponse;
@@ -94,18 +110,23 @@ export interface DaemonChannelRouteHandlers {
94
110
  getChannelStatus(): MaybeResponse;
95
111
  getChannelDirectory(surface: string, url: URL): MaybeResponse;
96
112
  }
113
+ /** Full integration route surface — overview, delivery, snapshot, remote, platform status, memory, local auth, panels, and event log. */
97
114
  export interface DaemonIntegrationRouteHandlers extends DaemonIntegrationOverviewRouteHandlers, DaemonDeliveryRouteHandlers, DaemonRouteSnapshotRouteHandlers, DaemonRemoteOverviewRouteHandlers, DaemonPlatformStatusRouteHandlers, DaemonMemoryRouteHandlers, DaemonLocalAuthAdminRouteHandlers, DaemonPanelRouteHandlers, DaemonEventLogRouteHandlers {
98
115
  }
116
+ /** Route handlers for integration overview endpoints (review, session, tasks, automation, sessions). */
99
117
  export interface DaemonIntegrationOverviewRouteHandlers {
100
118
  getReview(): MaybeResponse;
101
119
  getIntegrationSession(): MaybeResponse;
102
120
  getIntegrationTasks(): MaybeResponse;
103
121
  getIntegrationAutomation(): MaybeResponse;
104
- getIntegrationSessions(): MaybeResponse;
122
+ /** @param url - When present and contains `limit`/`cursor` params, returns a `PaginatedResponse`. Otherwise returns the legacy session broker snapshot. */
123
+ getIntegrationSessions(url?: URL): MaybeResponse;
105
124
  }
125
+ /** Route handler for the route-snapshot diagnostic endpoint. */
106
126
  export interface DaemonRouteSnapshotRouteHandlers {
107
127
  getRoutesSnapshot(): MaybeResponse;
108
128
  }
129
+ /** Route handlers for platform status: health, accounts, providers, settings, security, continuity, worktrees, and intelligence. */
109
130
  export interface DaemonPlatformStatusRouteHandlers {
110
131
  getHealth(): MaybeResponse;
111
132
  getAccounts(): MaybeResponse;
@@ -118,12 +139,15 @@ export interface DaemonPlatformStatusRouteHandlers {
118
139
  getWorktrees(): MaybeResponse;
119
140
  getIntelligence(): MaybeResponse;
120
141
  }
142
+ /** Route handlers for the memory subsystem: diagnostics, vector stats, review queue, rebuild, and embedding config. */
121
143
  export interface DaemonMemoryRouteHandlers {
122
144
  getMemoryDoctor(): MaybeResponse;
123
145
  getMemoryVectorStats(): MaybeResponse;
146
+ getMemoryReviewQueue(url: URL): MaybeResponse;
124
147
  postMemoryVectorRebuild(req: Request): MaybeResponse;
125
148
  postMemoryEmbeddingDefault(req: Request): MaybeResponse;
126
149
  }
150
+ /** Route handlers for local auth administration: users, passwords, sessions, and bootstrap file management. */
127
151
  export interface DaemonLocalAuthAdminRouteHandlers {
128
152
  getLocalAuth(req: Request): MaybeResponse;
129
153
  postLocalAuthUser(req: Request): MaybeResponse;
@@ -132,13 +156,16 @@ export interface DaemonLocalAuthAdminRouteHandlers {
132
156
  deleteLocalAuthSession(sessionId: string, req: Request): MaybeResponse;
133
157
  deleteBootstrapFile(req: Request): MaybeResponse;
134
158
  }
159
+ /** Route handlers for panel listing and open actions. */
135
160
  export interface DaemonPanelRouteHandlers {
136
161
  getPanels(): MaybeResponse;
137
162
  postPanelOpen(req: Request): MaybeResponse;
138
163
  }
164
+ /** Route handler for the event log endpoint. */
139
165
  export interface DaemonEventLogRouteHandlers {
140
166
  getEvents(req: Request): MaybeResponse;
141
167
  }
168
+ /** Route handlers for system management: watchers, service control, route bindings, approvals, and config. */
142
169
  export interface DaemonSystemRouteHandlers {
143
170
  getWatchers(): MaybeResponse;
144
171
  postWatcher(req: Request): MaybeResponse;
@@ -160,6 +187,7 @@ export interface DaemonSystemRouteHandlers {
160
187
  getConfig(req: Request): MaybeResponse;
161
188
  postConfig(req: Request): MaybeResponse;
162
189
  }
190
+ /** Route handlers for remote peer management: pair requests, peer tokens, remote work, and node host contract. */
163
191
  export interface DaemonRemoteManagementRouteHandlers {
164
192
  getRemotePairRequests(): MaybeResponse;
165
193
  approveRemotePairRequest(requestId: string, req: Request): MaybeResponse;
@@ -173,6 +201,7 @@ export interface DaemonRemoteManagementRouteHandlers {
173
201
  cancelRemoteWork(workId: string, req: Request): MaybeResponse;
174
202
  getRemoteNodeHostContract(): MaybeResponse;
175
203
  }
204
+ /** Route handlers for the knowledge base: sources, nodes, issues, connectors, jobs, schedules, search, and GraphQL. */
176
205
  export interface DaemonKnowledgeRouteHandlers extends DaemonKnowledgeRefinementRouteHandlers {
177
206
  getKnowledgeStatus(url: URL): MaybeResponse;
178
207
  getKnowledgeSources(url: URL): MaybeResponse;
@@ -219,14 +248,17 @@ export interface DaemonKnowledgeRouteHandlers extends DaemonKnowledgeRefinementR
219
248
  postKnowledgeMaterializeProjection(req: Request): MaybeResponse;
220
249
  executeKnowledgeGraphql(req: Request): MaybeResponse;
221
250
  }
251
+ /** Route handlers for knowledge refinement task management. */
222
252
  export interface DaemonKnowledgeRefinementRouteHandlers {
223
253
  getKnowledgeRefinementTasks(url: URL): MaybeResponse;
224
254
  getKnowledgeRefinementTask(taskId: string): MaybeResponse;
225
255
  postKnowledgeRunRefinement(req: Request): MaybeResponse;
226
256
  postKnowledgeCancelRefinementTask(taskId: string, req: Request): MaybeResponse;
227
257
  }
258
+ /** Route handlers for the media surface — voice, web search, artifacts, media providers, and multimodal. */
228
259
  export interface DaemonMediaRouteHandlers extends DaemonVoiceRouteHandlers, DaemonWebSearchRouteHandlers, DaemonArtifactRouteHandlers, DaemonMediaProviderRouteHandlers, DaemonMultimodalRouteHandlers {
229
260
  }
261
+ /** Route handlers for voice capabilities: providers, voices, TTS, STT, and realtime sessions. */
230
262
  export interface DaemonVoiceRouteHandlers {
231
263
  getVoiceStatus(): MaybeResponse;
232
264
  getVoiceProviders(): MaybeResponse;
@@ -236,22 +268,26 @@ export interface DaemonVoiceRouteHandlers {
236
268
  postVoiceStt(req: Request): MaybeResponse;
237
269
  postVoiceRealtimeSession(req: Request): MaybeResponse;
238
270
  }
271
+ /** Route handlers for web search provider listing and query execution. */
239
272
  export interface DaemonWebSearchRouteHandlers {
240
273
  getWebSearchProviders(): MaybeResponse;
241
274
  postWebSearch(req: Request): MaybeResponse;
242
275
  }
276
+ /** Route handlers for artifact storage: listing, creation, retrieval, and content access. */
243
277
  export interface DaemonArtifactRouteHandlers {
244
278
  getArtifacts(): MaybeResponse;
245
279
  postArtifact(req: Request): MaybeResponse;
246
280
  getArtifact(artifactId: string): MaybeResponse;
247
281
  getArtifactContent(artifactId: string, req: Request): MaybeResponse;
248
282
  }
283
+ /** Route handlers for media provider operations: analyze, transform, and generate. */
249
284
  export interface DaemonMediaProviderRouteHandlers {
250
285
  getMediaProviders(): MaybeResponse;
251
286
  postMediaAnalyze(req: Request): MaybeResponse;
252
287
  postMediaTransform(req: Request): MaybeResponse;
253
288
  postMediaGenerate(req: Request): MaybeResponse;
254
289
  }
290
+ /** Route handlers for multimodal capabilities: status, providers, analyze, packet, and writeback. */
255
291
  export interface DaemonMultimodalRouteHandlers {
256
292
  getMultimodalStatus(): MaybeResponse;
257
293
  getMultimodalProviders(): MaybeResponse;
@@ -259,6 +295,7 @@ export interface DaemonMultimodalRouteHandlers {
259
295
  postMultimodalPacket(req: Request): MaybeResponse;
260
296
  postMultimodalWriteback(req: Request): MaybeResponse;
261
297
  }
298
+ /** Route handlers for shared session management: creation, messaging, steering, follow-up, and SSE events. */
262
299
  export interface DaemonRuntimeSessionRouteHandlers {
263
300
  createSharedSession(req: Request): MaybeResponse;
264
301
  getSharedSession(sessionId: string): MaybeResponse;
@@ -272,16 +309,20 @@ export interface DaemonRuntimeSessionRouteHandlers {
272
309
  cancelSharedSessionInput(sessionId: string, inputId: string, req: Request): MaybeResponse;
273
310
  getSharedSessionEvents(sessionId: string, req: Request): MaybeResponse;
274
311
  }
312
+ /** Route handlers for runtime task lifecycle: creation, status, and action dispatch (cancel/retry). */
275
313
  export interface DaemonRuntimeTaskRouteHandlers {
276
314
  postTask(req: Request): MaybeResponse;
277
315
  getRuntimeTask(taskId: string): MaybeResponse;
278
316
  runtimeTaskAction(taskId: string, action: 'cancel' | 'retry', req: Request): MaybeResponse;
279
317
  getTaskStatus(agentId: string): MaybeResponse;
280
318
  }
319
+ /** Route handlers for automation job and schedule management: CRUD, runs, heartbeat, and scheduler capacity. */
281
320
  export interface DaemonRuntimeAutomationRouteHandlers {
282
- getAutomationJobs(): MaybeResponse;
321
+ /** @param url - When present and contains `limit`/`cursor` params, returns a `PaginatedResponse`. Otherwise returns the legacy `{jobs}` array. */
322
+ getAutomationJobs(url?: URL): MaybeResponse;
283
323
  postAutomationJob(req: Request): MaybeResponse;
284
- getAutomationRuns(): MaybeResponse;
324
+ /** @param url - When present and contains `limit`/`cursor` params, returns a `PaginatedResponse`. Otherwise returns the legacy `{runs}` array. */
325
+ getAutomationRuns(url?: URL): MaybeResponse;
285
326
  getAutomationRun(runId: string): MaybeResponse;
286
327
  getAutomationHeartbeat(): MaybeResponse;
287
328
  postAutomationHeartbeat(req: Request): MaybeResponse;
@@ -297,11 +338,17 @@ export interface DaemonRuntimeAutomationRouteHandlers {
297
338
  runScheduleNow(scheduleId: string, req: Request): MaybeResponse;
298
339
  getSchedulerCapacity(req: Request): MaybeResponse;
299
340
  }
341
+ /** Combined runtime route surface — sessions, tasks, automation, and metrics. */
300
342
  export interface DaemonRuntimeRouteHandlers extends DaemonRuntimeSessionRouteHandlers, DaemonRuntimeTaskRouteHandlers, DaemonRuntimeAutomationRouteHandlers, DaemonRuntimeMetricsRouteHandlers {
301
343
  }
344
+ /** Route handler for the runtime metrics endpoint. */
302
345
  export interface DaemonRuntimeMetricsRouteHandlers {
303
346
  getRuntimeMetrics(): MaybeResponse;
304
347
  }
348
+ /**
349
+ * The complete daemon API route handler interface. Implement this to satisfy
350
+ * all routes dispatched by `dispatchDaemonApiRoutes`.
351
+ */
305
352
  export interface DaemonApiRouteHandlers extends DaemonRemoteDispatchRouteHandlers, DaemonOperatorRouteHandlers, DaemonAutomationRouteHandlers, DaemonSessionRouteHandlers, DaemonTaskRouteHandlers, DaemonRuntimeRouteHandlers {
306
353
  }
307
354
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEzD,MAAM,WAAW,iCACf,SAAQ,iCAAiC,EACvC,mCAAmC;CAAG;AAE1C,MAAM,WAAW,iCAAiC;IAChD,SAAS,IAAI,aAAa,CAAC;CAC5B;AAED,MAAM,WAAW,2BACf,SAAQ,0BAA0B,EAChC,4BAA4B,EAC5B,0BAA0B,EAC1B,8BAA8B,EAC9B,yBAAyB,EACzB,mCAAmC,EACnC,4BAA4B,EAC5B,wBAAwB,EACxB,kCAAkC;CAAG;AAEzC,MAAM,WAAW,kCAAkC;IACjD,sBAAsB,IAAI,aAAa,CAAC;IACxC,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACrD,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAClD,iBAAiB,IAAI,aAAa,CAAC;CACpC;AAED,MAAM,WAAW,6BACf,SAAQ,qCAAqC,EAC3C,oCAAoC,EACpC,2BAA2B;CAAG;AAElC,MAAM,WAAW,qCAAqC;IACpD,SAAS,IAAI,aAAa,CAAC;IAC3B,qBAAqB,IAAI,aAAa,CAAC;IACvC,wBAAwB,IAAI,aAAa,CAAC;CAC3C;AAED,MAAM,WAAW,2BAA2B;IAC1C,aAAa,IAAI,aAAa,CAAC;IAC/B,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CAAC;CAChD;AAED,MAAM,WAAW,0BACf,SAAQ,kCAAkC,EACxC,iCAAiC;CAAG;AAExC,MAAM,WAAW,kCAAkC;IACjD,sBAAsB,IAAI,aAAa,CAAC;CACzC;AAED,MAAM,WAAW,uBACf,SAAQ,+BAA+B,EACrC,8BAA8B;CAAG;AAErC,MAAM,WAAW,+BAA+B;IAC9C,mBAAmB,IAAI,aAAa,CAAC;CACtC;AAED,MAAM,WAAW,0BAA0B;IACzC,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACvC,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACvC,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAC5C,uBAAuB,IAAI,aAAa,CAAC;IACzC,mBAAmB,IAAI,aAAa,CAAC;IACrC,kBAAkB,IAAI,aAAa,CAAC;IACpC,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC;IAC1D,uBAAuB,IAAI,aAAa,CAAC;IACzC,sBAAsB,IAAI,aAAa,CAAC;IACxC,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,aAAa,CAAC;IAC3C,gBAAgB,CAAC,GAAG,EAAE,GAAG,GAAG,aAAa,CAAC;IAC1C,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CAAC;IAClD,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACnE,6BAA6B,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;CAC5D;AAED,MAAM,WAAW,4BAA4B;IAC3C,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAClD,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAChD,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAChD,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAChD,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACjD,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACxD,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACpD,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAClD,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACrD,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACnD,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACrD,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;CACvD;AAED,MAAM,WAAW,0BAA0B;IACzC,WAAW,IAAI,aAAa,CAAC;IAC7B,kBAAkB,IAAI,aAAa,CAAC;IACpC,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAAC;IAC1D,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,aAAa,CAAC;IACrE,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,aAAa,CAAC;IAChE,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,aAAa,CAAC;IAC3D,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,aAAa,CAAC;IAClE,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,aAAa,CAAC;IAC9D,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACjH,sBAAsB,IAAI,aAAa,CAAC;IACxC,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAAC;IAC9D,eAAe,IAAI,aAAa,CAAC;IACjC,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAAC;IACvD,oBAAoB,IAAI,aAAa,CAAC;IACtC,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAAC;IAC5D,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAC9E,iBAAiB,IAAI,aAAa,CAAC;IACnC,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAAC;IACzD,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAClF,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACvE,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACnE,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAC1E,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACvE,kBAAkB,IAAI,aAAa,CAAC;IACpC,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAChE,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACjE,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC;IACpD,gBAAgB,IAAI,aAAa,CAAC;IAClC,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,aAAa,CAAC;CAC/D;AAED,MAAM,WAAW,8BACf,SAAQ,sCAAsC,EAC5C,2BAA2B,EAC3B,gCAAgC,EAChC,iCAAiC,EACjC,iCAAiC,EACjC,yBAAyB,EACzB,iCAAiC,EACjC,wBAAwB,EACxB,2BAA2B;CAAG;AAElC,MAAM,WAAW,sCAAsC;IACrD,SAAS,IAAI,aAAa,CAAC;IAC3B,qBAAqB,IAAI,aAAa,CAAC;IACvC,mBAAmB,IAAI,aAAa,CAAC;IACrC,wBAAwB,IAAI,aAAa,CAAC;IAC1C,sBAAsB,IAAI,aAAa,CAAC;CACzC;AAED,MAAM,WAAW,gCAAgC;IAC/C,iBAAiB,IAAI,aAAa,CAAC;CACpC;AAED,MAAM,WAAW,iCAAiC;IAChD,SAAS,IAAI,aAAa,CAAC;IAC3B,WAAW,IAAI,aAAa,CAAC;IAC7B,YAAY,IAAI,aAAa,CAAC;IAC9B,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/C,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CAAC;IACpD,WAAW,IAAI,aAAa,CAAC;IAC7B,mBAAmB,IAAI,aAAa,CAAC;IACrC,aAAa,IAAI,aAAa,CAAC;IAC/B,YAAY,IAAI,aAAa,CAAC;IAC9B,eAAe,IAAI,aAAa,CAAC;CAClC;AAED,MAAM,WAAW,yBAAyB;IACxC,eAAe,IAAI,aAAa,CAAC;IACjC,oBAAoB,IAAI,aAAa,CAAC;IACtC,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACrD,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;CACzD;AAED,MAAM,WAAW,iCAAiC;IAChD,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAC1C,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAC/C,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACnE,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACrE,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACvE,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;CAClD;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,IAAI,aAAa,CAAC;IAC3B,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;CAC5C;AAED,MAAM,WAAW,2BAA2B;IAC1C,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;CACxC;AAED,MAAM,WAAW,yBAAyB;IACxC,WAAW,IAAI,aAAa,CAAC;IAC7B,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACzC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAC7D,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAChG,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAC9D,gBAAgB,IAAI,aAAa,CAAC;IAClC,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAC5C,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAC1C,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACzC,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAC5C,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAC9C,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAC9C,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAC9C,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAClE,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACnE,YAAY,IAAI,aAAa,CAAC;IAC9B,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACjH,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACvC,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;CACzC;AAED,MAAM,WAAW,mCAAmC;IAClD,qBAAqB,IAAI,aAAa,CAAC;IACvC,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACzE,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACxE,cAAc,IAAI,aAAa,CAAC;IAChC,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACnE,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACnE,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAClE,aAAa,IAAI,aAAa,CAAC;IAC/B,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAC9D,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAC9D,yBAAyB,IAAI,aAAa,CAAC;CAC5C;AAED,MAAM,WAAW,4BAA6B,SAAQ,sCAAsC;IAC1F,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,aAAa,CAAC;IAC5C,mBAAmB,CAAC,GAAG,EAAE,GAAG,GAAG,aAAa,CAAC;IAC7C,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,aAAa,CAAC;IAC3C,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,aAAa,CAAC;IAC5C,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,aAAa,CAAC;IACtD,sBAAsB,IAAI,aAAa,CAAC;IACxC,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,CAAC;IACjD,2BAA2B,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,CAAC;IACvD,6BAA6B,CAAC,GAAG,EAAE,GAAG,GAAG,aAAa,CAAC;IACvD,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,aAAa,CAAC;IACzC,yBAAyB,IAAI,aAAa,CAAC;IAC3C,uBAAuB,CAAC,GAAG,EAAE,GAAG,GAAG,aAAa,CAAC;IACjD,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,aAAa,CAAC;IAC3C,sBAAsB,CAAC,GAAG,EAAE,GAAG,GAAG,aAAa,CAAC;IAChD,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,CAAC;IACjD,mBAAmB,CAAC,GAAG,EAAE,GAAG,GAAG,aAAa,CAAC;IAC7C,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,CAAC;IAC9C,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,CAAC;IAClD,4BAA4B,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,CAAC;IACxD,gBAAgB,IAAI,aAAa,CAAC;IAClC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC;IAC9C,mBAAmB,CAAC,GAAG,EAAE,GAAG,GAAG,aAAa,CAAC;IAC7C,qBAAqB,CAAC,GAAG,EAAE,GAAG,GAAG,aAAa,CAAC;IAC/C,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,CAAC;IAChD,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACpD,2BAA2B,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACzD,+BAA+B,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAC7D,4BAA4B,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAC1D,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACrD,4BAA4B,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAC1D,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACjD,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAC9C,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACjD,wBAAwB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAClE,4BAA4B,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACtE,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAChE,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAC/C,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAClD,yBAAyB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACvD,uBAAuB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACjE,+BAA+B,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACzE,6BAA6B,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAC3D,kCAAkC,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAChE,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;CACtD;AAED,MAAM,WAAW,sCAAsC;IACrD,2BAA2B,CAAC,GAAG,EAAE,GAAG,GAAG,aAAa,CAAC;IACrD,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC1D,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACxD,iCAAiC,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;CAChF;AAED,MAAM,WAAW,wBACf,SAAQ,wBAAwB,EAC9B,4BAA4B,EAC5B,2BAA2B,EAC3B,gCAAgC,EAChC,6BAA6B;CAAG;AAEpC,MAAM,WAAW,wBAAwB;IACvC,cAAc,IAAI,aAAa,CAAC;IAChC,iBAAiB,IAAI,aAAa,CAAC;IACnC,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,aAAa,CAAC;IACxC,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAC1C,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAChD,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAC1C,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;CACvD;AAED,MAAM,WAAW,4BAA4B;IAC3C,qBAAqB,IAAI,aAAa,CAAC;IACvC,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;CAC5C;AAED,MAAM,WAAW,2BAA2B;IAC1C,YAAY,IAAI,aAAa,CAAC;IAC9B,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAC1C,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/C,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;CACrE;AAED,MAAM,WAAW,gCAAgC;IAC/C,iBAAiB,IAAI,aAAa,CAAC;IACnC,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAC9C,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAChD,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;CAChD;AAED,MAAM,WAAW,6BAA6B;IAC5C,mBAAmB,IAAI,aAAa,CAAC;IACrC,sBAAsB,IAAI,aAAa,CAAC;IACxC,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACnD,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAClD,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;CACtD;AAED,MAAM,WAAW,iCAAiC;IAChD,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACjD,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,CAAC;IACnD,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACnE,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACpE,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,aAAa,CAAC;IACrE,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,aAAa,CAAC;IACnE,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACzE,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACvE,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAC1E,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAC1F,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;CACxE;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACtC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC9C,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,OAAO,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAC3F,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAAC;CAC/C;AAED,MAAM,WAAW,oCAAoC;IACnD,iBAAiB,IAAI,aAAa,CAAC;IACnC,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAC/C,iBAAiB,IAAI,aAAa,CAAC;IACnC,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/C,sBAAsB,IAAI,aAAa,CAAC;IACxC,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACrD,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,OAAO,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAC5F,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAC/D,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAChE,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACtF,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAChE,YAAY,IAAI,aAAa,CAAC;IAC9B,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAC1C,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAChE,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IACtF,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;IAChE,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC;CACnD;AAED,MAAM,WAAW,0BACf,SAAQ,iCAAiC,EACvC,8BAA8B,EAC9B,oCAAoC,EACpC,iCAAiC;CAAG;AAExC,MAAM,WAAW,iCAAiC;IAChD,iBAAiB,IAAI,aAAa,CAAC;CACpC;AAED,MAAM,WAAW,sBACf,SAAQ,iCAAiC,EACvC,2BAA2B,EAC3B,6BAA6B,EAC7B,0BAA0B,EAC1B,uBAAuB,EACvB,0BAA0B;CAAG"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,11 @@
1
1
  import { type DaemonErrorSource, type StructuredDaemonErrorBody } from '@pellux/goodvibes-errors';
2
+ /** Options for `jsonErrorResponse` and `buildErrorResponseBody`. */
2
3
  export interface JsonErrorResponseOptions {
4
+ /** HTTP status code for the response (defaults to `500` or the error's own status). */
3
5
  readonly status?: number | undefined;
6
+ /** Human-readable message to use when the error object carries no message. */
4
7
  readonly fallbackMessage?: string | undefined;
8
+ /** Override or supply the `source` field on the structured error body. */
5
9
  readonly source?: DaemonErrorSource | undefined;
6
10
  /**
7
11
  * when false (default), internal pipeline fields (`provider`,
@@ -11,7 +15,35 @@ export interface JsonErrorResponseOptions {
11
15
  */
12
16
  readonly isPrivileged?: boolean | undefined;
13
17
  }
18
+ /**
19
+ * Normalize any thrown value into a `StructuredDaemonErrorBody`.
20
+ *
21
+ * Handles `GoodVibesSdkError`, structured error-like objects, plain error-property
22
+ * objects, and raw strings or `Error` instances. Internal pipeline fields
23
+ * (`provider`, `operation`, `phase`, `providerCode`, `providerType`) are stripped
24
+ * from the response unless `options.isPrivileged` is `true`.
25
+ *
26
+ * @param error - The caught value (any type).
27
+ * @param options - Status code, fallback message, source override, and privilege flag.
28
+ * @returns A normalized `StructuredDaemonErrorBody` ready for JSON serialization.
29
+ */
14
30
  export declare function buildErrorResponseBody(error: unknown, options?: JsonErrorResponseOptions): StructuredDaemonErrorBody;
31
+ /**
32
+ * Produce a JSON `Response` from any thrown value, normalizing to a
33
+ * `StructuredDaemonErrorBody` before writing the wire response.
34
+ *
35
+ * @param error - The caught value (any type).
36
+ * @param options - Optional status, fallback message, source, and privilege flag.
37
+ * @returns A `Response` with `Content-Type: application/json` and the resolved status.
38
+ */
15
39
  export declare function jsonErrorResponse(error: unknown, options?: JsonErrorResponseOptions): Response;
40
+ /**
41
+ * Extract the human-readable error string from any thrown value, using the same
42
+ * normalization logic as `buildErrorResponseBody`.
43
+ *
44
+ * @param error - The caught value (any type).
45
+ * @param options - Optional fallback message and status for category inference.
46
+ * @returns The normalized error message string.
47
+ */
16
48
  export declare function summarizeErrorForRecord(error: unknown, options?: JsonErrorResponseOptions): string;
17
49
  //# sourceMappingURL=error-response.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"error-response.d.ts","sourceRoot":"","sources":["../src/error-response.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EAGtB,KAAK,yBAAyB,EAC/B,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAChD;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC7C;AAkQD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,wBAA6B,GACrC,yBAAyB,CAgH3B;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,wBAA6B,GAAG,QAAQ,CAOlG;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,wBAA6B,GAAG,MAAM,CAEtG"}
1
+ {"version":3,"file":"error-response.d.ts","sourceRoot":"","sources":["../src/error-response.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EAGtB,KAAK,yBAAyB,EAC/B,MAAM,0BAA0B,CAAC;AAElC,oEAAoE;AACpE,MAAM,WAAW,wBAAwB;IACvC,uFAAuF;IACvF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,8EAA8E;IAC9E,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9C,0EAA0E;IAC1E,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAChD;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC7C;AAkQD;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,wBAA6B,GACrC,yBAAyB,CAgH3B;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,wBAA6B,GAAG,QAAQ,CAOlG;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,wBAA6B,GAAG,MAAM,CAEtG"}
@@ -211,6 +211,18 @@ function readStringProperty(value) {
211
211
  function readBooleanProperty(value) {
212
212
  return typeof value === 'boolean' ? value : undefined;
213
213
  }
214
+ /**
215
+ * Normalize any thrown value into a `StructuredDaemonErrorBody`.
216
+ *
217
+ * Handles `GoodVibesSdkError`, structured error-like objects, plain error-property
218
+ * objects, and raw strings or `Error` instances. Internal pipeline fields
219
+ * (`provider`, `operation`, `phase`, `providerCode`, `providerType`) are stripped
220
+ * from the response unless `options.isPrivileged` is `true`.
221
+ *
222
+ * @param error - The caught value (any type).
223
+ * @param options - Status code, fallback message, source override, and privilege flag.
224
+ * @returns A normalized `StructuredDaemonErrorBody` ready for JSON serialization.
225
+ */
214
226
  export function buildErrorResponseBody(error, options = {}) {
215
227
  // only expose internal pipeline fields to privileged callers.
216
228
  const isPrivileged = options.isPrivileged === true;
@@ -325,11 +337,27 @@ export function buildErrorResponseBody(error, options = {}) {
325
337
  ...(options.status !== undefined ? { status: options.status } : {}),
326
338
  };
327
339
  }
340
+ /**
341
+ * Produce a JSON `Response` from any thrown value, normalizing to a
342
+ * `StructuredDaemonErrorBody` before writing the wire response.
343
+ *
344
+ * @param error - The caught value (any type).
345
+ * @param options - Optional status, fallback message, source, and privilege flag.
346
+ * @returns A `Response` with `Content-Type: application/json` and the resolved status.
347
+ */
328
348
  export function jsonErrorResponse(error, options = {}) {
329
349
  const body = buildErrorResponseBody(error, options);
330
350
  const status = options.status ?? body.status ?? 500;
331
351
  return Response.json({ ...body, status }, { status });
332
352
  }
353
+ /**
354
+ * Extract the human-readable error string from any thrown value, using the same
355
+ * normalization logic as `buildErrorResponseBody`.
356
+ *
357
+ * @param error - The caught value (any type).
358
+ * @param options - Optional fallback message and status for category inference.
359
+ * @returns The normalized error message string.
360
+ */
333
361
  export function summarizeErrorForRecord(error, options = {}) {
334
362
  return buildErrorResponseBody(error, options).error;
335
363
  }
@@ -1,30 +1,69 @@
1
+ /** The kind of authenticated principal making a daemon request. */
1
2
  export type AuthenticatedPrincipalKind = 'user' | 'bot' | 'service' | 'token';
3
+ /** Describes an authenticated caller resolved from a daemon request token. */
2
4
  export interface AuthenticatedPrincipal {
5
+ /** Opaque identifier for this principal. */
3
6
  readonly principalId: string;
7
+ /** The category of this principal. */
4
8
  readonly principalKind: AuthenticatedPrincipalKind;
9
+ /** Whether this principal has administrative privileges. */
5
10
  readonly admin: boolean;
11
+ /** The permission scopes granted to this principal. */
6
12
  readonly scopes: readonly string[];
7
13
  }
14
+ /** Strategy object for extracting and resolving a daemon auth token to a principal. */
8
15
  export interface AuthenticatedPrincipalResolver {
16
+ /** Extract the raw auth token from the incoming request. */
9
17
  readonly extractAuthToken: (req: Request) => string;
18
+ /** Resolve a token string to an `AuthenticatedPrincipal`, or `null` if invalid. */
10
19
  readonly describeAuthenticatedPrincipal: (token: string) => AuthenticatedPrincipal | null;
11
20
  }
21
+ /** Config context required to evaluate whether private-host fetches are permitted. */
12
22
  export interface PrivateHostFetchConfig {
13
23
  readonly configManager: {
14
24
  get(key: string): unknown;
15
25
  };
16
26
  }
27
+ /**
28
+ * Extended config for private-host fetch evaluation that also enforces an
29
+ * elevated-access gate on the originating request.
30
+ */
17
31
  export interface ElevatedPrivateHostFetchConfig extends PrivateHostFetchConfig {
32
+ /** The originating request to check for elevated access. */
18
33
  readonly req: Request;
34
+ /** Returns a `Response` to deny access, or `null` to allow. */
19
35
  readonly requireElevatedAccess: (req: Request) => Response | null;
20
36
  }
37
+ /**
38
+ * Extract and resolve the auth token from a request to an `AuthenticatedPrincipal`.
39
+ *
40
+ * @param req - The incoming HTTP request.
41
+ * @param resolver - Strategy for extracting the token and resolving it to a principal.
42
+ * @returns The resolved principal, or `null` if no valid token is present.
43
+ */
21
44
  export declare function resolveAuthenticatedPrincipal(req: Request, resolver: AuthenticatedPrincipalResolver): AuthenticatedPrincipal | null;
45
+ /**
46
+ * Build a structured 403 response body when a principal is missing required scopes.
47
+ *
48
+ * @param target - Human-readable name of the resource or action being checked.
49
+ * @param requiredScopes - Scopes required to perform the action.
50
+ * @param grantedScopes - Scopes held by the caller.
51
+ * @returns An error body object, or `null` if all required scopes are present.
52
+ */
22
53
  export declare function buildMissingScopeBody(target: string, requiredScopes: readonly string[], grantedScopes: readonly string[] | undefined): {
23
54
  readonly error: string;
24
55
  readonly requiredScopes: readonly string[];
25
56
  readonly grantedScopes: readonly string[];
26
57
  readonly missingScopes: readonly string[];
27
58
  } | null;
59
+ /**
60
+ * Resolve fetch options for a private-host request, enforcing config and access gates.
61
+ *
62
+ * @param requested - The caller-supplied flag; must be `true` to attempt private-host access.
63
+ * @param context - Config context (and optionally an elevated-access gate).
64
+ * @returns Options object to merge into the fetch call, an empty object if not requested,
65
+ * or a `Response` to short-circuit with a 403 if access is denied.
66
+ */
28
67
  export declare function resolvePrivateHostFetchOptions(requested: unknown, context: PrivateHostFetchConfig | ElevatedPrivateHostFetchConfig): {
29
68
  allowPrivateHosts: true;
30
69
  fetchMode: 'allow-private-hosts';
@@ -1 +1 @@
1
- {"version":3,"file":"http-policy.d.ts","sourceRoot":"","sources":["../src/http-policy.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,0BAA0B,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC;AAE9E,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,0BAA0B,CAAC;IACnD,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,gBAAgB,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAC;IACpD,QAAQ,CAAC,8BAA8B,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,sBAAsB,GAAG,IAAI,CAAC;CAC3F;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,aAAa,EAAE;QACtB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KAC3B,CAAC;CACH;AAED,MAAM,WAAW,8BAA+B,SAAQ,sBAAsB;IAC5E,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,qBAAqB,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,QAAQ,GAAG,IAAI,CAAC;CACnE;AAED,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,8BAA8B,GACvC,sBAAsB,GAAG,IAAI,CAG/B;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,SAAS,MAAM,EAAE,EACjC,aAAa,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GAC3C;IACD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C,GAAG,IAAI,CASP;AAED,wBAAgB,8BAA8B,CAC5C,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,sBAAsB,GAAG,8BAA8B,GAC/D;IAAE,iBAAiB,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,qBAAqB,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,QAAQ,CAUlG"}
1
+ {"version":3,"file":"http-policy.d.ts","sourceRoot":"","sources":["../src/http-policy.ts"],"names":[],"mappings":"AAGA,mEAAmE;AACnE,MAAM,MAAM,0BAA0B,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC;AAE9E,8EAA8E;AAC9E,MAAM,WAAW,sBAAsB;IACrC,4CAA4C;IAC5C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,sCAAsC;IACtC,QAAQ,CAAC,aAAa,EAAE,0BAA0B,CAAC;IACnD,4DAA4D;IAC5D,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,uDAAuD;IACvD,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED,uFAAuF;AACvF,MAAM,WAAW,8BAA8B;IAC7C,4DAA4D;IAC5D,QAAQ,CAAC,gBAAgB,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAC;IACpD,mFAAmF;IACnF,QAAQ,CAAC,8BAA8B,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,sBAAsB,GAAG,IAAI,CAAC;CAC3F;AAED,sFAAsF;AACtF,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,aAAa,EAAE;QACtB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KAC3B,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,8BAA+B,SAAQ,sBAAsB;IAC5E,4DAA4D;IAC5D,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,+DAA+D;IAC/D,QAAQ,CAAC,qBAAqB,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,QAAQ,GAAG,IAAI,CAAC;CACnE;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,8BAA8B,GACvC,sBAAsB,GAAG,IAAI,CAG/B;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,SAAS,MAAM,EAAE,EACjC,aAAa,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GAC3C;IACD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C,GAAG,IAAI,CASP;AAED;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC5C,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,sBAAsB,GAAG,8BAA8B,GAC/D;IAAE,iBAAiB,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,qBAAqB,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,QAAQ,CAUlG"}
@@ -1,9 +1,24 @@
1
1
  import { jsonErrorResponse } from './error-response.js';
2
2
  import { missingScopes } from './route-helpers.js';
3
+ /**
4
+ * Extract and resolve the auth token from a request to an `AuthenticatedPrincipal`.
5
+ *
6
+ * @param req - The incoming HTTP request.
7
+ * @param resolver - Strategy for extracting the token and resolving it to a principal.
8
+ * @returns The resolved principal, or `null` if no valid token is present.
9
+ */
3
10
  export function resolveAuthenticatedPrincipal(req, resolver) {
4
11
  const token = resolver.extractAuthToken(req);
5
12
  return token ? resolver.describeAuthenticatedPrincipal(token) : null;
6
13
  }
14
+ /**
15
+ * Build a structured 403 response body when a principal is missing required scopes.
16
+ *
17
+ * @param target - Human-readable name of the resource or action being checked.
18
+ * @param requiredScopes - Scopes required to perform the action.
19
+ * @param grantedScopes - Scopes held by the caller.
20
+ * @returns An error body object, or `null` if all required scopes are present.
21
+ */
7
22
  export function buildMissingScopeBody(target, requiredScopes, grantedScopes) {
8
23
  const missing = missingScopes(grantedScopes, requiredScopes);
9
24
  if (missing.length === 0)
@@ -15,6 +30,14 @@ export function buildMissingScopeBody(target, requiredScopes, grantedScopes) {
15
30
  missingScopes: missing,
16
31
  };
17
32
  }
33
+ /**
34
+ * Resolve fetch options for a private-host request, enforcing config and access gates.
35
+ *
36
+ * @param requested - The caller-supplied flag; must be `true` to attempt private-host access.
37
+ * @param context - Config context (and optionally an elevated-access gate).
38
+ * @returns Options object to merge into the fetch call, an empty object if not requested,
39
+ * or a `Response` to short-circuit with a 403 if access is denied.
40
+ */
18
41
  export function resolvePrivateHostFetchOptions(requested, context) {
19
42
  if (requested !== true)
20
43
  return {};
package/dist/index.d.ts CHANGED
@@ -33,5 +33,7 @@ export { createDaemonRuntimeSessionRouteHandlers } from './runtime-session-route
33
33
  export { createDaemonRuntimeRouteHandlers } from './runtime-routes.js';
34
34
  export { createDaemonRemoteRouteHandlers, handleRemotePairRequest, handleRemotePairVerify, handleRemotePeerHeartbeat, handleRemotePeerWorkPull, handleRemotePeerWorkComplete, } from './remote-routes.js';
35
35
  export { buildErrorResponseBody, jsonErrorResponse, summarizeErrorForRecord } from './error-response.js';
36
+ export { decodeCursor, encodeCursor, hasPaginationParams, paginateItems, } from './pagination.js';
37
+ export type { PaginatedResponse } from './pagination.js';
36
38
  export type { JsonErrorResponseOptions } from './error-response.js';
37
39
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -21,3 +21,4 @@ export { createDaemonRuntimeSessionRouteHandlers } from './runtime-session-route
21
21
  export { createDaemonRuntimeRouteHandlers } from './runtime-routes.js';
22
22
  export { createDaemonRemoteRouteHandlers, handleRemotePairRequest, handleRemotePairVerify, handleRemotePeerHeartbeat, handleRemotePeerWorkPull, handleRemotePeerWorkComplete, } from './remote-routes.js';
23
23
  export { buildErrorResponseBody, jsonErrorResponse, summarizeErrorForRecord } from './error-response.js';
24
+ export { decodeCursor, encodeCursor, hasPaginationParams, paginateItems, } from './pagination.js';
@@ -42,6 +42,7 @@ export interface MemoryRegistryLike {
42
42
  doctor(): Promise<unknown>;
43
43
  vectorStats(): unknown;
44
44
  rebuildVectorsAsync(): Promise<unknown>;
45
+ reviewQueue(limit?: number, scope?: string): unknown[];
45
46
  }
46
47
  export interface MemoryEmbeddingRegistryLike {
47
48
  setDefaultProvider(providerId: string): void;