patchwork-os 0.2.0-alpha.34 → 0.2.0-alpha.36

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 (270) hide show
  1. package/README.md +202 -93
  2. package/deploy/bootstrap-new-vps.sh +12 -12
  3. package/deploy/bootstrap-vps.sh +6 -3
  4. package/deploy/deploy-landing.sh +59 -2
  5. package/dist/activityLog.d.ts +49 -0
  6. package/dist/activityLog.js +78 -0
  7. package/dist/activityLog.js.map +1 -1
  8. package/dist/approvalHttp.d.ts +25 -0
  9. package/dist/approvalHttp.js +74 -18
  10. package/dist/approvalHttp.js.map +1 -1
  11. package/dist/approvalInsights.d.ts +49 -0
  12. package/dist/approvalInsights.js +97 -0
  13. package/dist/approvalInsights.js.map +1 -0
  14. package/dist/approvalQueue.d.ts +11 -0
  15. package/dist/approvalQueue.js +80 -1
  16. package/dist/approvalQueue.js.map +1 -1
  17. package/dist/approvalSignals.d.ts +124 -0
  18. package/dist/approvalSignals.js +512 -0
  19. package/dist/approvalSignals.js.map +1 -0
  20. package/dist/automation.d.ts +37 -0
  21. package/dist/automation.js +105 -61
  22. package/dist/automation.js.map +1 -1
  23. package/dist/automationSuggestions.d.ts +79 -0
  24. package/dist/automationSuggestions.js +150 -0
  25. package/dist/automationSuggestions.js.map +1 -0
  26. package/dist/bridge.js +78 -1
  27. package/dist/bridge.js.map +1 -1
  28. package/dist/ccPermissions.d.ts +15 -0
  29. package/dist/ccPermissions.js +15 -0
  30. package/dist/ccPermissions.js.map +1 -1
  31. package/dist/claudeDriver.js +74 -16
  32. package/dist/claudeDriver.js.map +1 -1
  33. package/dist/commands/patchworkInit.d.ts +8 -0
  34. package/dist/commands/patchworkInit.js +41 -5
  35. package/dist/commands/patchworkInit.js.map +1 -1
  36. package/dist/commands/recipe.d.ts +20 -0
  37. package/dist/commands/recipe.js +212 -6
  38. package/dist/commands/recipe.js.map +1 -1
  39. package/dist/commands/recipeInstall.d.ts +79 -1
  40. package/dist/commands/recipeInstall.js +333 -16
  41. package/dist/commands/recipeInstall.js.map +1 -1
  42. package/dist/commands/tracesExport.d.ts +83 -0
  43. package/dist/commands/tracesExport.js +269 -0
  44. package/dist/commands/tracesExport.js.map +1 -0
  45. package/dist/commands/tracesImport.d.ts +56 -0
  46. package/dist/commands/tracesImport.js +161 -0
  47. package/dist/commands/tracesImport.js.map +1 -0
  48. package/dist/config.d.ts +8 -0
  49. package/dist/config.js +9 -1
  50. package/dist/config.js.map +1 -1
  51. package/dist/connectorRoutes.d.ts +43 -0
  52. package/dist/connectorRoutes.js +1023 -0
  53. package/dist/connectorRoutes.js.map +1 -0
  54. package/dist/connectors/asana.d.ts +198 -0
  55. package/dist/connectors/asana.js +679 -0
  56. package/dist/connectors/asana.js.map +1 -0
  57. package/dist/connectors/baseConnector.d.ts +36 -0
  58. package/dist/connectors/baseConnector.js +151 -28
  59. package/dist/connectors/baseConnector.js.map +1 -1
  60. package/dist/connectors/discord.d.ts +150 -0
  61. package/dist/connectors/discord.js +543 -0
  62. package/dist/connectors/discord.js.map +1 -0
  63. package/dist/connectors/github.js +11 -4
  64. package/dist/connectors/github.js.map +1 -1
  65. package/dist/connectors/gitlab.d.ts +180 -0
  66. package/dist/connectors/gitlab.js +582 -0
  67. package/dist/connectors/gitlab.js.map +1 -0
  68. package/dist/connectors/gmail.js +50 -10
  69. package/dist/connectors/gmail.js.map +1 -1
  70. package/dist/connectors/googleCalendar.js +36 -10
  71. package/dist/connectors/googleCalendar.js.map +1 -1
  72. package/dist/connectors/googleDrive.d.ts +34 -0
  73. package/dist/connectors/googleDrive.js +321 -0
  74. package/dist/connectors/googleDrive.js.map +1 -0
  75. package/dist/connectors/linear.js +23 -4
  76. package/dist/connectors/linear.js.map +1 -1
  77. package/dist/connectors/mcpOAuth.js +26 -2
  78. package/dist/connectors/mcpOAuth.js.map +1 -1
  79. package/dist/connectors/oauthStateStore.d.ts +31 -0
  80. package/dist/connectors/oauthStateStore.js +52 -0
  81. package/dist/connectors/oauthStateStore.js.map +1 -0
  82. package/dist/connectors/pagerduty.d.ts +160 -0
  83. package/dist/connectors/pagerduty.js +464 -0
  84. package/dist/connectors/pagerduty.js.map +1 -0
  85. package/dist/connectors/slack.d.ts +16 -1
  86. package/dist/connectors/slack.js +57 -5
  87. package/dist/connectors/slack.js.map +1 -1
  88. package/dist/connectors/tokenStorage.js +27 -2
  89. package/dist/connectors/tokenStorage.js.map +1 -1
  90. package/dist/connectors/zendesk.js +19 -1
  91. package/dist/connectors/zendesk.js.map +1 -1
  92. package/dist/cors.d.ts +10 -0
  93. package/dist/cors.js +29 -0
  94. package/dist/cors.js.map +1 -0
  95. package/dist/decisionReplay.d.ts +72 -0
  96. package/dist/decisionReplay.js +92 -0
  97. package/dist/decisionReplay.js.map +1 -0
  98. package/dist/decisionTraceLog.d.ts +6 -0
  99. package/dist/decisionTraceLog.js +54 -2
  100. package/dist/decisionTraceLog.js.map +1 -1
  101. package/dist/featureFlags.d.ts +17 -11
  102. package/dist/featureFlags.js +52 -47
  103. package/dist/featureFlags.js.map +1 -1
  104. package/dist/fp/automationInterpreter.js +25 -21
  105. package/dist/fp/automationInterpreter.js.map +1 -1
  106. package/dist/fp/automationState.js +4 -1
  107. package/dist/fp/automationState.js.map +1 -1
  108. package/dist/fp/policyParser.js +4 -1
  109. package/dist/fp/policyParser.js.map +1 -1
  110. package/dist/inboxRoutes.d.ts +22 -0
  111. package/dist/inboxRoutes.js +114 -0
  112. package/dist/inboxRoutes.js.map +1 -0
  113. package/dist/index.js +734 -144
  114. package/dist/index.js.map +1 -1
  115. package/dist/mcpRoutes.d.ts +37 -0
  116. package/dist/mcpRoutes.js +76 -0
  117. package/dist/mcpRoutes.js.map +1 -0
  118. package/dist/oauth.d.ts +3 -0
  119. package/dist/oauth.js +151 -26
  120. package/dist/oauth.js.map +1 -1
  121. package/dist/oauthRoutes.d.ts +32 -0
  122. package/dist/oauthRoutes.js +124 -0
  123. package/dist/oauthRoutes.js.map +1 -0
  124. package/dist/orchestrator/orchestratorBridge.js +2 -2
  125. package/dist/orchestrator/orchestratorBridge.js.map +1 -1
  126. package/dist/patchworkConfig.d.ts +7 -0
  127. package/dist/patchworkConfig.js.map +1 -1
  128. package/dist/pluginLoader.d.ts +12 -0
  129. package/dist/pluginLoader.js +43 -4
  130. package/dist/pluginLoader.js.map +1 -1
  131. package/dist/pluginWatcher.js +8 -3
  132. package/dist/pluginWatcher.js.map +1 -1
  133. package/dist/preToolUseHook.d.ts +12 -0
  134. package/dist/preToolUseHook.js +23 -0
  135. package/dist/preToolUseHook.js.map +1 -1
  136. package/dist/recipeOrchestration.d.ts +8 -0
  137. package/dist/recipeOrchestration.js +320 -39
  138. package/dist/recipeOrchestration.js.map +1 -1
  139. package/dist/recipeRoutes.d.ts +154 -0
  140. package/dist/recipeRoutes.js +1098 -0
  141. package/dist/recipeRoutes.js.map +1 -0
  142. package/dist/recipes/captureForRunlog.d.ts +27 -0
  143. package/dist/recipes/captureForRunlog.js +128 -0
  144. package/dist/recipes/captureForRunlog.js.map +1 -0
  145. package/dist/recipes/chainedRunner.d.ts +54 -3
  146. package/dist/recipes/chainedRunner.js +256 -36
  147. package/dist/recipes/chainedRunner.js.map +1 -1
  148. package/dist/recipes/compiler.js +3 -3
  149. package/dist/recipes/compiler.js.map +1 -1
  150. package/dist/recipes/detectSilentFail.d.ts +34 -0
  151. package/dist/recipes/detectSilentFail.js +105 -0
  152. package/dist/recipes/detectSilentFail.js.map +1 -0
  153. package/dist/recipes/installer.js +3 -3
  154. package/dist/recipes/installer.js.map +1 -1
  155. package/dist/recipes/manifest.js +21 -6
  156. package/dist/recipes/manifest.js.map +1 -1
  157. package/dist/recipes/migrationWarnings.d.ts +12 -0
  158. package/dist/recipes/migrationWarnings.js +44 -0
  159. package/dist/recipes/migrationWarnings.js.map +1 -0
  160. package/dist/recipes/replayRun.d.ts +62 -0
  161. package/dist/recipes/replayRun.js +97 -0
  162. package/dist/recipes/replayRun.js.map +1 -0
  163. package/dist/recipes/resolveRecipePath.d.ts +69 -0
  164. package/dist/recipes/resolveRecipePath.js +202 -0
  165. package/dist/recipes/resolveRecipePath.js.map +1 -0
  166. package/dist/recipes/scheduler.js +102 -11
  167. package/dist/recipes/scheduler.js.map +1 -1
  168. package/dist/recipes/schemaGenerator.js +3 -3
  169. package/dist/recipes/schemaGenerator.js.map +1 -1
  170. package/dist/recipes/toolRegistry.d.ts +5 -0
  171. package/dist/recipes/toolRegistry.js +9 -0
  172. package/dist/recipes/toolRegistry.js.map +1 -1
  173. package/dist/recipes/tools/asana.d.ts +16 -0
  174. package/dist/recipes/tools/asana.js +524 -0
  175. package/dist/recipes/tools/asana.js.map +1 -0
  176. package/dist/recipes/tools/discord.d.ts +18 -0
  177. package/dist/recipes/tools/discord.js +254 -0
  178. package/dist/recipes/tools/discord.js.map +1 -0
  179. package/dist/recipes/tools/file.d.ts +6 -0
  180. package/dist/recipes/tools/file.js +12 -8
  181. package/dist/recipes/tools/file.js.map +1 -1
  182. package/dist/recipes/tools/github.js +29 -4
  183. package/dist/recipes/tools/github.js.map +1 -1
  184. package/dist/recipes/tools/gitlab.d.ts +11 -0
  185. package/dist/recipes/tools/gitlab.js +285 -0
  186. package/dist/recipes/tools/gitlab.js.map +1 -0
  187. package/dist/recipes/tools/gmail.d.ts +1 -1
  188. package/dist/recipes/tools/gmail.js +230 -6
  189. package/dist/recipes/tools/gmail.js.map +1 -1
  190. package/dist/recipes/tools/googleDrive.d.ts +1 -0
  191. package/dist/recipes/tools/googleDrive.js +55 -0
  192. package/dist/recipes/tools/googleDrive.js.map +1 -0
  193. package/dist/recipes/tools/index.d.ts +8 -0
  194. package/dist/recipes/tools/index.js +8 -0
  195. package/dist/recipes/tools/index.js.map +1 -1
  196. package/dist/recipes/tools/jira.d.ts +14 -0
  197. package/dist/recipes/tools/jira.js +369 -0
  198. package/dist/recipes/tools/jira.js.map +1 -0
  199. package/dist/recipes/tools/linear.d.ts +2 -1
  200. package/dist/recipes/tools/linear.js +227 -3
  201. package/dist/recipes/tools/linear.js.map +1 -1
  202. package/dist/recipes/tools/meetingNotes.d.ts +21 -0
  203. package/dist/recipes/tools/meetingNotes.js +701 -0
  204. package/dist/recipes/tools/meetingNotes.js.map +1 -0
  205. package/dist/recipes/tools/pagerduty.d.ts +15 -0
  206. package/dist/recipes/tools/pagerduty.js +451 -0
  207. package/dist/recipes/tools/pagerduty.js.map +1 -0
  208. package/dist/recipes/tools/sentry.d.ts +12 -0
  209. package/dist/recipes/tools/sentry.js +73 -0
  210. package/dist/recipes/tools/sentry.js.map +1 -0
  211. package/dist/recipes/tools/slack.js +15 -5
  212. package/dist/recipes/tools/slack.js.map +1 -1
  213. package/dist/recipes/validation.js +83 -14
  214. package/dist/recipes/validation.js.map +1 -1
  215. package/dist/recipes/yamlRunner.d.ts +30 -2
  216. package/dist/recipes/yamlRunner.js +369 -70
  217. package/dist/recipes/yamlRunner.js.map +1 -1
  218. package/dist/recipesHttp.d.ts +76 -1
  219. package/dist/recipesHttp.js +474 -12
  220. package/dist/recipesHttp.js.map +1 -1
  221. package/dist/runLog.d.ts +78 -2
  222. package/dist/runLog.js +204 -6
  223. package/dist/runLog.js.map +1 -1
  224. package/dist/schemas/dry-run-plan.v1.json +139 -0
  225. package/dist/schemas/recipe.v1.json +684 -0
  226. package/dist/server.d.ts +79 -10
  227. package/dist/server.js +366 -1384
  228. package/dist/server.js.map +1 -1
  229. package/dist/ssrfGuard.d.ts +54 -0
  230. package/dist/ssrfGuard.js +122 -0
  231. package/dist/ssrfGuard.js.map +1 -0
  232. package/dist/streamableHttp.d.ts +39 -1
  233. package/dist/streamableHttp.js +126 -17
  234. package/dist/streamableHttp.js.map +1 -1
  235. package/dist/tools/getDocumentSymbols.d.ts +24 -0
  236. package/dist/tools/getDocumentSymbols.js +74 -8
  237. package/dist/tools/getDocumentSymbols.js.map +1 -1
  238. package/dist/tools/getSecurityAdvisories.js +10 -1
  239. package/dist/tools/getSecurityAdvisories.js.map +1 -1
  240. package/dist/tools/getSessionUsage.d.ts +3 -0
  241. package/dist/tools/getSessionUsage.js +3 -0
  242. package/dist/tools/getSessionUsage.js.map +1 -1
  243. package/dist/tools/index.d.ts +8 -0
  244. package/dist/tools/index.js +32 -2
  245. package/dist/tools/index.js.map +1 -1
  246. package/dist/tools/slackPostMessage.js +1 -1
  247. package/dist/tools/slackPostMessage.js.map +1 -1
  248. package/dist/tools/transaction.d.ts +19 -0
  249. package/dist/tools/transaction.js +29 -0
  250. package/dist/tools/transaction.js.map +1 -1
  251. package/dist/traceEncryption.d.ts +46 -0
  252. package/dist/traceEncryption.js +124 -0
  253. package/dist/traceEncryption.js.map +1 -0
  254. package/dist/transport.d.ts +39 -0
  255. package/dist/transport.js +88 -8
  256. package/dist/transport.js.map +1 -1
  257. package/package.json +22 -5
  258. package/templates/policies/README.md +72 -0
  259. package/templates/policies/conservative.json +14 -0
  260. package/templates/policies/developer.json +14 -0
  261. package/templates/policies/headless-ci.json +24 -0
  262. package/templates/policies/personal-assistant.json +15 -0
  263. package/templates/policies/regulated-industry.json +18 -0
  264. package/templates/recipes/project-health-check.yaml +1 -1
  265. package/templates/recipes/webhook/README.md +70 -0
  266. package/templates/recipes/webhook/capture-thought.yaml +26 -0
  267. package/templates/recipes/webhook/customer-escalation.yaml +49 -0
  268. package/templates/recipes/webhook/incident-intake.yaml +46 -0
  269. package/templates/recipes/webhook/meeting-prep.yaml +48 -0
  270. package/templates/recipes/webhook/morning-brief.yaml +57 -0
package/dist/server.d.ts CHANGED
@@ -1,20 +1,16 @@
1
1
  import { EventEmitter } from "node:events";
2
2
  import http from "node:http";
3
3
  import { WebSocket } from "ws";
4
+ import type { ActivityListener } from "./activityTypes.js";
4
5
  import type { Logger } from "./logger.js";
5
6
  import type { OAuthServer } from "./oauth.js";
6
- import type { ActivityListener } from "./activityTypes.js";
7
7
  import type { RecipeDraft } from "./recipesHttp.js";
8
8
  interface ServerEvents {
9
9
  connection: [ws: WebSocket];
10
10
  extension: [ws: WebSocket];
11
11
  }
12
- /**
13
- * Return the CORS origin to reflect, or null if the origin is untrusted.
14
- * Loopback origins are always allowed. Additional origins can be passed via
15
- * --cors-origin (e.g. https://claude.ai for remote deployments).
16
- */
17
- export declare function corsOrigin(requestOrigin: string | undefined, extraOrigins?: string[]): string | null;
12
+ import { corsOrigin } from "./cors.js";
13
+ export { corsOrigin };
18
14
  export interface SessionSummary {
19
15
  id: string;
20
16
  connectedAt: string;
@@ -38,6 +34,8 @@ export declare class Server extends EventEmitter<ServerEvents> {
38
34
  private oauthServer;
39
35
  private oauthIssuerUrl;
40
36
  private sseSubscriberCount;
37
+ /** Cache for CC permission rules (30s TTL) to avoid filesystem walks on each dashboard poll */
38
+ private _explainRulesCache;
41
39
  private static readonly MAX_SSE_SUBSCRIBERS;
42
40
  /** Set by bridge to provide health data */
43
41
  healthDataFn: (() => Record<string, unknown>) | null;
@@ -59,6 +57,19 @@ export declare class Server extends EventEmitter<ServerEvents> {
59
57
  }) | null;
60
58
  /** Set by bridge to cancel a running/pending task by id. Returns true if found. */
61
59
  cancelTaskFn: ((id: string) => boolean) | null;
60
+ /** Patchwork: set by bridge to set the trust level for a recipe by name. */
61
+ setRecipeTrustFn: ((name: string, level: string) => {
62
+ ok: boolean;
63
+ error?: string;
64
+ }) | null;
65
+ /** Patchwork: set by bridge to generate a recipe YAML draft from a natural-language prompt. */
66
+ generateRecipeFn: ((prompt: string) => Promise<{
67
+ ok: boolean;
68
+ yaml?: string;
69
+ warnings?: string[];
70
+ error?: string;
71
+ unavailable?: boolean;
72
+ }>) | null;
62
73
  /** Patchwork: set by bridge to list installed recipes for the dashboard. */
63
74
  recipesFn: (() => Record<string, unknown>) | null;
64
75
  /** Patchwork: set by bridge to load raw recipe source content by name. */
@@ -79,6 +90,22 @@ export declare class Server extends EventEmitter<ServerEvents> {
79
90
  path?: string;
80
91
  error?: string;
81
92
  }) | null;
93
+ /** Patchwork: set by bridge to promote a variant recipe to the canonical name. */
94
+ promoteRecipeVariantFn: ((variantName: string, targetName: string, options?: {
95
+ force?: boolean;
96
+ }) => Promise<{
97
+ ok: boolean;
98
+ path?: string;
99
+ error?: string;
100
+ targetExists?: boolean;
101
+ }>) | null;
102
+ /** Patchwork: set by bridge to duplicate a recipe as a variant. */
103
+ duplicateRecipeFn: ((name: string) => {
104
+ ok: boolean;
105
+ variantName?: string;
106
+ path?: string;
107
+ error?: string;
108
+ }) | null;
82
109
  /** Patchwork: set by bridge to lint raw recipe content without saving. */
83
110
  lintRecipeContentFn: ((content: string) => {
84
111
  ok: boolean;
@@ -103,6 +130,14 @@ export declare class Server extends EventEmitter<ServerEvents> {
103
130
  runDetailFn: ((seq: number) => Record<string, unknown> | null) | null;
104
131
  /** Patchwork: set by bridge to generate a dry-run plan for a recipe by name. */
105
132
  runPlanFn: ((recipeName: string) => Promise<Record<string, unknown>>) | null;
133
+ /** Patchwork (VD-4): mocked replay of an existing run. Returns the new
134
+ * run's seq plus any unmocked steps the caller may want to surface. */
135
+ runReplayFn: ((seq: number) => Promise<{
136
+ ok: boolean;
137
+ newSeq?: number;
138
+ unmockedSteps?: string[];
139
+ error?: string;
140
+ }>) | null;
106
141
  /** Patchwork: set by bridge to launch a named recipe via the orchestrator. */
107
142
  runRecipeFn: ((name: string, vars?: Record<string, string>) => Promise<{
108
143
  ok: boolean;
@@ -125,6 +160,26 @@ export declare class Server extends EventEmitter<ServerEvents> {
125
160
  pushServiceBaseUrl: string | undefined;
126
161
  /** Patchwork: approval decision audit callback wired to activityLog.recordEvent. */
127
162
  onApprovalDecision: ((event: string, meta: Record<string, unknown>) => void) | undefined;
163
+ /**
164
+ * Patchwork: activity log handle, used by approvalHttp to compute
165
+ * passive risk personalization signals (`src/approvalSignals.ts`).
166
+ * When unset, personalSignals are simply omitted from queue entries.
167
+ */
168
+ activityLog: import("./activityLog.js").ActivityLog | undefined;
169
+ /**
170
+ * Patchwork: recipe-run log handle, used by approvalHttp for the
171
+ * "recipe-step trust" heuristic (h6 in src/approvalSignals.ts). When
172
+ * unset, h6 is silently skipped; the other personalSignals heuristics
173
+ * still compute as long as `activityLog` is wired.
174
+ */
175
+ recipeRunLog: import("./runLog.js").RecipeRunLog | undefined;
176
+ /**
177
+ * Patchwork: opt-in switch for personalSignals heuristic 10
178
+ * (time-of-day anomaly). Off by default — see config.ts. Threaded into
179
+ * routeApprovalRequest deps so the personalSignals computation honors
180
+ * the user's preference.
181
+ */
182
+ enableTimeOfDayAnomaly: boolean;
128
183
  /** Patchwork: set by bridge to match + fire webhook-triggered recipes. */
129
184
  webhookFn: ((path: string, payload: unknown) => Promise<{
130
185
  ok: boolean;
@@ -132,6 +187,23 @@ export declare class Server extends EventEmitter<ServerEvents> {
132
187
  name?: string;
133
188
  error?: string;
134
189
  }>) | null;
190
+ /**
191
+ * Patchwork: ring buffer of recent webhook payloads, keyed by path
192
+ * (e.g. "/incident-war-room"). The last MAX_WEBHOOK_PAYLOADS entries are
193
+ * retained per path so the dashboard can show what the recipe most
194
+ * recently received — answers "did the trigger fire? what did it send?"
195
+ * without forcing the user to dig through bridge logs. In-memory only;
196
+ * cleared on restart.
197
+ */
198
+ webhookPayloads: Map<string, {
199
+ receivedAt: number;
200
+ payload: unknown;
201
+ ok: boolean;
202
+ error?: string;
203
+ taskId?: string;
204
+ recipeName?: string;
205
+ }[]>;
206
+ static readonly MAX_WEBHOOK_PAYLOADS = 5;
135
207
  /** Set by bridge to handle MCP Streamable HTTP sessions (POST/GET/DELETE /mcp) */
136
208
  httpMcpHandler: ((req: http.IncomingMessage, res: http.ServerResponse) => Promise<void>) | null;
137
209
  /** Set by bridge to subscribe a caller to real-time activity events. Returns unsubscribe fn. */
@@ -164,8 +236,6 @@ export declare class Server extends EventEmitter<ServerEvents> {
164
236
  }) | null;
165
237
  /** Patchwork: set by bridge to list active agent sessions for the dashboard. */
166
238
  sessionsFn: (() => SessionSummary[]) | null;
167
- private _templatesCache;
168
- private _templatesCacheTs;
169
239
  /** Patchwork: set by bridge to answer GET /sessions/:id with per-session event stream + approvals. */
170
240
  sessionDetailFn: ((id: string) => {
171
241
  summary: SessionSummary | null;
@@ -203,4 +273,3 @@ export declare class Server extends EventEmitter<ServerEvents> {
203
273
  findAndListen(preferredPort: number | null, bindAddress?: string): Promise<number>;
204
274
  close(): Promise<void>;
205
275
  }
206
- export {};