@interactive-inc/claude-funnel 0.8.0 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/dist/bin.js +583 -656
  2. package/dist/cli/factory.d.ts +7 -0
  3. package/dist/cli/router/query-to-cli-args.d.ts +1 -0
  4. package/dist/cli/router/to-request.d.ts +5 -0
  5. package/dist/cli/router/validator.d.ts +5 -0
  6. package/dist/cli/routes/channels.$channel.connectors.$connector.d.ts +42 -0
  7. package/dist/cli/routes/channels.$channel.connectors.$connector.rename.$newName.d.ts +46 -0
  8. package/dist/cli/routes/channels.$channel.connectors.$connector.request.d.ts +54 -0
  9. package/dist/cli/routes/channels.$channel.connectors.$connector.schedules.add.$id.d.ts +66 -0
  10. package/dist/cli/routes/channels.$channel.connectors.$connector.schedules.d.ts +42 -0
  11. package/dist/cli/routes/channels.$channel.connectors.$connector.schedules.remove.$id.d.ts +46 -0
  12. package/dist/cli/routes/channels.$channel.connectors.add.$connector.d.ts +90 -0
  13. package/dist/cli/routes/channels.$channel.connectors.d.ts +38 -0
  14. package/dist/cli/routes/channels.$channel.connectors.remove.$connector.d.ts +42 -0
  15. package/dist/cli/routes/channels.$channel.connectors.set.$connector.d.ts +62 -0
  16. package/dist/cli/routes/channels.$channel.d.ts +38 -0
  17. package/dist/cli/routes/channels.$channel.rename.$newName.d.ts +42 -0
  18. package/dist/cli/routes/channels.$channel.set.delivery.$mode.d.ts +28 -0
  19. package/dist/cli/routes/channels.add.$channel.d.ts +46 -0
  20. package/dist/cli/routes/channels.d.ts +16 -0
  21. package/dist/cli/routes/channels.remove.$channel.d.ts +38 -0
  22. package/dist/cli/routes/claude.d.ts +32 -0
  23. package/dist/cli/routes/gateway.d.ts +20 -0
  24. package/dist/cli/routes/gateway.listeners.d.ts +17 -0
  25. package/dist/cli/routes/gateway.logs.d.ts +24 -0
  26. package/dist/cli/routes/gateway.restart.d.ts +24 -0
  27. package/dist/cli/routes/gateway.run.d.ts +24 -0
  28. package/dist/cli/routes/gateway.start.d.ts +24 -0
  29. package/dist/cli/routes/gateway.status.d.ts +13 -0
  30. package/dist/cli/routes/gateway.stop.d.ts +16 -0
  31. package/dist/cli/routes/index.d.ts +1222 -0
  32. package/dist/cli/routes/profiles.$profile.as-default.d.ts +38 -0
  33. package/dist/cli/routes/profiles.$profile.rename.$newName.d.ts +42 -0
  34. package/dist/cli/routes/profiles.$profile.run.d.ts +46 -0
  35. package/dist/cli/routes/profiles.add.$profile.d.ts +54 -0
  36. package/dist/cli/routes/profiles.d.ts +16 -0
  37. package/dist/cli/routes/profiles.remove.$profile.d.ts +38 -0
  38. package/dist/cli/routes/profiles.set.$profile.d.ts +54 -0
  39. package/dist/cli/routes/status.d.ts +16 -0
  40. package/dist/cli/routes/update.d.ts +16 -0
  41. package/dist/connectors/connector-adapter.d.ts +8 -0
  42. package/dist/connectors/connector-config-schema.d.ts +43 -0
  43. package/dist/connectors/connector-factory.d.ts +32 -0
  44. package/dist/connectors/connector-listener.d.ts +17 -0
  45. package/dist/connectors/discord-adapter.d.ts +14 -0
  46. package/dist/connectors/discord-connector-schema.d.ts +10 -0
  47. package/dist/connectors/discord-event-processor.d.ts +26 -0
  48. package/dist/connectors/discord-listener.d.ts +17 -0
  49. package/dist/connectors/gh-adapter.d.ts +11 -0
  50. package/dist/connectors/gh-connector-schema.d.ts +10 -0
  51. package/dist/connectors/gh-listener.d.ts +26 -0
  52. package/dist/connectors/match-cron.d.ts +1 -0
  53. package/dist/connectors/schedule-connector-schema.d.ts +45 -0
  54. package/dist/connectors/schedule-listener.d.ts +30 -0
  55. package/dist/connectors/schedule-state-store.d.ts +19 -0
  56. package/dist/connectors/slack-adapter.d.ts +15 -0
  57. package/dist/connectors/slack-connector-schema.d.ts +11 -0
  58. package/dist/connectors/slack-event-processor.d.ts +27 -0
  59. package/dist/connectors/slack-listener.d.ts +17 -0
  60. package/dist/engine/channels/channels.d.ts +106 -0
  61. package/dist/engine/claude/claude.d.ts +49 -0
  62. package/dist/engine/claude/gateway-controller.d.ts +6 -0
  63. package/dist/engine/fs/file-system.d.ts +24 -0
  64. package/dist/engine/fs/memory-file-system.d.ts +31 -0
  65. package/dist/engine/fs/node-file-system.d.ts +15 -0
  66. package/dist/engine/http/http-client.d.ts +15 -0
  67. package/dist/engine/http/memory-http-client.d.ts +12 -0
  68. package/dist/engine/http/node-http-client.d.ts +5 -0
  69. package/dist/engine/id/id-generator.d.ts +7 -0
  70. package/dist/engine/id/memory-id-generator.d.ts +11 -0
  71. package/dist/engine/id/node-id-generator.d.ts +4 -0
  72. package/dist/engine/logger/logger.d.ts +11 -0
  73. package/dist/engine/logger/memory-logger.d.ts +14 -0
  74. package/dist/engine/logger/node-logger.d.ts +15 -0
  75. package/dist/engine/logger/noop-logger.d.ts +7 -0
  76. package/dist/engine/mcp/channel-server.d.ts +1 -0
  77. package/dist/engine/mcp/mcp.d.ts +22 -0
  78. package/dist/engine/process/memory-process-runner.d.ts +43 -0
  79. package/dist/engine/process/node-process-runner.d.ts +9 -0
  80. package/dist/engine/process/process-runner.d.ts +29 -0
  81. package/dist/engine/profiles/profile-channel-checker.d.ts +7 -0
  82. package/dist/engine/profiles/profiles.d.ts +31 -0
  83. package/dist/engine/settings/mock-settings-reader.d.ts +9 -0
  84. package/dist/engine/settings/settings-reader.d.ts +5 -0
  85. package/dist/engine/settings/settings-schema.d.ts +132 -0
  86. package/dist/engine/settings/settings-store.d.ts +18 -0
  87. package/dist/engine/time/clock.d.ts +9 -0
  88. package/dist/engine/time/memory-clock.d.ts +12 -0
  89. package/dist/engine/time/node-clock.d.ts +4 -0
  90. package/dist/funnel.d.ts +95 -0
  91. package/dist/gateway/auth-middleware.d.ts +14 -0
  92. package/dist/gateway/broadcaster.d.ts +122 -0
  93. package/dist/gateway/daemon.d.ts +2 -0
  94. package/dist/gateway/daemon.js +192 -220
  95. package/dist/gateway/factory.d.ts +7 -0
  96. package/dist/gateway/funnel-event-store.d.ts +81 -0
  97. package/dist/gateway/gateway-server.d.ts +94 -0
  98. package/dist/gateway/gateway-token.d.ts +33 -0
  99. package/dist/gateway/gateway.d.ts +58 -0
  100. package/dist/gateway/kill-competing-slack-gateways.d.ts +9 -0
  101. package/dist/gateway/listener-supervisor.d.ts +85 -0
  102. package/dist/gateway/listeners-client.d.ts +53 -0
  103. package/dist/gateway/resolve-daemon-script.d.ts +11 -0
  104. package/dist/gateway/routes/channels.connectors.call.d.ts +41 -0
  105. package/dist/gateway/routes/health.d.ts +17 -0
  106. package/dist/gateway/routes/index.d.ts +209 -0
  107. package/dist/gateway/routes/listeners.list.d.ts +14 -0
  108. package/dist/gateway/routes/listeners.restart.d.ts +34 -0
  109. package/dist/gateway/routes/listeners.start.d.ts +34 -0
  110. package/dist/gateway/routes/listeners.stop.d.ts +34 -0
  111. package/dist/gateway/routes/route-deps.d.ts +10 -0
  112. package/dist/gateway/routes/status.d.ts +30 -0
  113. package/dist/gateway/routes/validator.d.ts +19 -0
  114. package/dist/index.d.ts +36 -0
  115. package/dist/index.js +3575 -0
  116. package/dist/logger/leuco-human-file-writer.d.ts +33 -0
  117. package/dist/logger/leuco-human-logger.d.ts +46 -0
  118. package/dist/logger/leuco-human-record.d.ts +15 -0
  119. package/dist/logger/leuco-human-stdout-writer.d.ts +20 -0
  120. package/dist/logger/leuco-human-writer.d.ts +13 -0
  121. package/dist/logger/leuco-logger-memory-sink.d.ts +33 -0
  122. package/dist/logger/leuco-logger-record.d.ts +13 -0
  123. package/dist/logger/leuco-logger-sink.d.ts +34 -0
  124. package/dist/logger/leuco-logger-sqlite-sink.d.ts +102 -0
  125. package/dist/logger/leuco-logger.d.ts +56 -0
  126. package/lib/index.ts +2 -0
  127. package/package.json +14 -9
@@ -0,0 +1,209 @@
1
+ /**
2
+ * Top-level Hono app for the gateway daemon. Mounts every HTTP endpoint flat
3
+ * (the WebSocket /ws upgrade is handled directly by `Bun.serve`). Deps come
4
+ * from the `deps` variable set by `FunnelGatewayServer`'s middleware — same
5
+ * shape as CLI's `c.var.funnel`.
6
+ */
7
+ export declare const gatewayRoutes: import("hono/hono-base").HonoBase<import("../factory").Env, {
8
+ "/health": {
9
+ $get: {
10
+ input: {};
11
+ output: {
12
+ ok: true;
13
+ pid: number;
14
+ clients: number;
15
+ listeners: {
16
+ channelName: string;
17
+ channelId: string;
18
+ name: string;
19
+ type: import("../..").ConnectorConfig["type"];
20
+ alive: boolean;
21
+ events: number;
22
+ errors: number;
23
+ failureCount: number;
24
+ lastEventAt: string | null;
25
+ }[];
26
+ };
27
+ outputFormat: "json";
28
+ status: import("hono/utils/http-status").ContentfulStatusCode;
29
+ };
30
+ };
31
+ } & {
32
+ "/status": {
33
+ $get: {
34
+ input: {};
35
+ output: {
36
+ ok: true;
37
+ pid: number;
38
+ uptimeMs: number;
39
+ clients: {
40
+ channel: string;
41
+ connectors: string[];
42
+ }[];
43
+ listeners: {
44
+ channelName: string;
45
+ channelId: string;
46
+ name: string;
47
+ type: import("../..").ConnectorConfig["type"];
48
+ alive: boolean;
49
+ events: number;
50
+ errors: number;
51
+ failureCount: number;
52
+ lastEventAt: string | null;
53
+ }[];
54
+ broadcaster: {
55
+ clients: number;
56
+ subscribers: number;
57
+ eventsBroadcast: number;
58
+ droppedSlowClients: number;
59
+ lastBroadcastAt: string | null;
60
+ latestOffset: number;
61
+ oldestReplayableOffset: number | null;
62
+ };
63
+ };
64
+ outputFormat: "json";
65
+ status: import("hono/utils/http-status").ContentfulStatusCode;
66
+ };
67
+ };
68
+ } & {
69
+ "/listeners": {
70
+ $get: {
71
+ input: {};
72
+ output: {
73
+ listeners: {
74
+ channelName: string;
75
+ channelId: string;
76
+ name: string;
77
+ type: import("../..").ConnectorConfig["type"];
78
+ alive: boolean;
79
+ events: number;
80
+ errors: number;
81
+ failureCount: number;
82
+ lastEventAt: string | null;
83
+ }[];
84
+ };
85
+ outputFormat: "json";
86
+ status: import("hono/utils/http-status").ContentfulStatusCode;
87
+ };
88
+ };
89
+ } & {
90
+ "/listeners/:channel/:connector/start": {
91
+ $post: {
92
+ input: {
93
+ param: {
94
+ channel: string;
95
+ connector: string;
96
+ };
97
+ };
98
+ output: {
99
+ ok: boolean;
100
+ reason: string;
101
+ };
102
+ outputFormat: "json";
103
+ status: 400;
104
+ } | {
105
+ input: {
106
+ param: {
107
+ channel: string;
108
+ connector: string;
109
+ };
110
+ };
111
+ output: {
112
+ ok: boolean;
113
+ reason?: string | undefined;
114
+ };
115
+ outputFormat: "json";
116
+ status: 200 | 400;
117
+ };
118
+ };
119
+ } & {
120
+ "/listeners/:channel/:connector": {
121
+ $delete: {
122
+ input: {
123
+ param: {
124
+ channel: string;
125
+ connector: string;
126
+ };
127
+ };
128
+ output: {
129
+ ok: boolean;
130
+ reason: string;
131
+ };
132
+ outputFormat: "json";
133
+ status: 400;
134
+ } | {
135
+ input: {
136
+ param: {
137
+ channel: string;
138
+ connector: string;
139
+ };
140
+ };
141
+ output: {
142
+ ok: boolean;
143
+ reason?: string | undefined;
144
+ };
145
+ outputFormat: "json";
146
+ status: 200 | 400;
147
+ };
148
+ };
149
+ } & {
150
+ "/listeners/:channel/:connector/restart": {
151
+ $post: {
152
+ input: {
153
+ param: {
154
+ channel: string;
155
+ connector: string;
156
+ };
157
+ };
158
+ output: {
159
+ ok: boolean;
160
+ reason: string;
161
+ };
162
+ outputFormat: "json";
163
+ status: 400;
164
+ } | {
165
+ input: {
166
+ param: {
167
+ channel: string;
168
+ connector: string;
169
+ };
170
+ };
171
+ output: {
172
+ ok: boolean;
173
+ reason?: string | undefined;
174
+ };
175
+ outputFormat: "json";
176
+ status: 200 | 400;
177
+ };
178
+ };
179
+ } & {
180
+ "/channels/:channel/connectors/:connector/call": {
181
+ $post: {
182
+ input: {
183
+ param: {
184
+ channel: string;
185
+ connector: string;
186
+ };
187
+ };
188
+ output: {
189
+ ok: boolean;
190
+ reason: string;
191
+ };
192
+ outputFormat: "json";
193
+ status: 400;
194
+ } | {
195
+ input: {
196
+ param: {
197
+ channel: string;
198
+ connector: string;
199
+ };
200
+ };
201
+ output: {
202
+ ok: true;
203
+ result: import("hono/utils/types").JSONValue;
204
+ };
205
+ outputFormat: "json";
206
+ status: import("hono/utils/http-status").ContentfulStatusCode;
207
+ };
208
+ };
209
+ }, "/", "/channels/:channel/connectors/:connector/call">;
@@ -0,0 +1,14 @@
1
+ /** GET /listeners — running connector listeners with alive/dead status. */
2
+ export declare const listenersListHandler: [import("hono/types").H<import("../factory").Env, string, {}, Response & import("hono").TypedResponse<{
3
+ listeners: {
4
+ channelName: string;
5
+ channelId: string;
6
+ name: string;
7
+ type: import("../..").ConnectorConfig["type"];
8
+ alive: boolean;
9
+ events: number;
10
+ errors: number;
11
+ failureCount: number;
12
+ lastEventAt: string | null;
13
+ }[];
14
+ }, import("hono/utils/http-status").ContentfulStatusCode, "json">>];
@@ -0,0 +1,34 @@
1
+ /** POST /listeners/:channel/:connector/restart — stop + start a connector listener. */
2
+ export declare const listenersRestartHandler: [import("hono/types").H<import("hono").Env, string, {
3
+ in: {
4
+ param: {
5
+ channel: string;
6
+ connector: string;
7
+ };
8
+ };
9
+ out: {
10
+ param: {
11
+ channel: string;
12
+ connector: string;
13
+ };
14
+ };
15
+ }, import("hono").TypedResponse<{
16
+ ok: boolean;
17
+ reason: string;
18
+ }, 400, "json">>, import("hono/types").H<import("../factory").Env, string, {
19
+ in: {
20
+ param: {
21
+ channel: string;
22
+ connector: string;
23
+ };
24
+ };
25
+ out: {
26
+ param: {
27
+ channel: string;
28
+ connector: string;
29
+ };
30
+ };
31
+ }, Promise<Response & import("hono").TypedResponse<{
32
+ ok: boolean;
33
+ reason?: string | undefined;
34
+ }, 200 | 400, "json">>>];
@@ -0,0 +1,34 @@
1
+ /** POST /listeners/:channel/:connector/start — start a connector listener. */
2
+ export declare const listenersStartHandler: [import("hono/types").H<import("hono").Env, string, {
3
+ in: {
4
+ param: {
5
+ channel: string;
6
+ connector: string;
7
+ };
8
+ };
9
+ out: {
10
+ param: {
11
+ channel: string;
12
+ connector: string;
13
+ };
14
+ };
15
+ }, import("hono").TypedResponse<{
16
+ ok: boolean;
17
+ reason: string;
18
+ }, 400, "json">>, import("hono/types").H<import("../factory").Env, string, {
19
+ in: {
20
+ param: {
21
+ channel: string;
22
+ connector: string;
23
+ };
24
+ };
25
+ out: {
26
+ param: {
27
+ channel: string;
28
+ connector: string;
29
+ };
30
+ };
31
+ }, Promise<Response & import("hono").TypedResponse<{
32
+ ok: boolean;
33
+ reason?: string | undefined;
34
+ }, 200 | 400, "json">>>];
@@ -0,0 +1,34 @@
1
+ /** DELETE /listeners/:channel/:connector — stop a connector listener. */
2
+ export declare const listenersStopHandler: [import("hono/types").H<import("hono").Env, string, {
3
+ in: {
4
+ param: {
5
+ channel: string;
6
+ connector: string;
7
+ };
8
+ };
9
+ out: {
10
+ param: {
11
+ channel: string;
12
+ connector: string;
13
+ };
14
+ };
15
+ }, import("hono").TypedResponse<{
16
+ ok: boolean;
17
+ reason: string;
18
+ }, 400, "json">>, import("hono/types").H<import("../factory").Env, string, {
19
+ in: {
20
+ param: {
21
+ channel: string;
22
+ connector: string;
23
+ };
24
+ };
25
+ out: {
26
+ param: {
27
+ channel: string;
28
+ connector: string;
29
+ };
30
+ };
31
+ }, Promise<Response & import("hono").TypedResponse<{
32
+ ok: boolean;
33
+ reason?: string | undefined;
34
+ }, 200 | 400, "json">>>];
@@ -0,0 +1,10 @@
1
+ import type { FunnelChannels } from "../../engine/channels/channels";
2
+ import type { FunnelBroadcaster } from "../broadcaster";
3
+ import type { FunnelListenerSupervisor } from "../listener-supervisor";
4
+ export type GatewayRouteDeps = {
5
+ selfPid: number;
6
+ broadcaster: FunnelBroadcaster;
7
+ supervisor: FunnelListenerSupervisor;
8
+ channels: FunnelChannels;
9
+ uptimeMs: () => number;
10
+ };
@@ -0,0 +1,30 @@
1
+ /** GET /status — listener registry, connected channels, and broadcaster metrics. */
2
+ export declare const statusHandler: [import("hono/types").H<import("../factory").Env, string, {}, Response & import("hono").TypedResponse<{
3
+ ok: true;
4
+ pid: number;
5
+ uptimeMs: number;
6
+ clients: {
7
+ channel: string;
8
+ connectors: string[];
9
+ }[];
10
+ listeners: {
11
+ channelName: string;
12
+ channelId: string;
13
+ name: string;
14
+ type: import("../..").ConnectorConfig["type"];
15
+ alive: boolean;
16
+ events: number;
17
+ errors: number;
18
+ failureCount: number;
19
+ lastEventAt: string | null;
20
+ }[];
21
+ broadcaster: {
22
+ clients: number;
23
+ subscribers: number;
24
+ eventsBroadcast: number;
25
+ droppedSlowClients: number;
26
+ lastBroadcastAt: string | null;
27
+ latestOffset: number;
28
+ oldestReplayableOffset: number | null;
29
+ };
30
+ }, import("hono/utils/http-status").ContentfulStatusCode, "json">>];
@@ -0,0 +1,19 @@
1
+ import type { ZodType } from "zod";
2
+ /**
3
+ * Path-param validator for gateway routes. On failure it answers with the same
4
+ * `{ ok: false, reason }` shape the listener routes already use, so
5
+ * `FunnelListenersClient` can surface the message without special-casing.
6
+ */
7
+ export declare const zParam: <T extends ZodType>(schema: T) => import("hono").MiddlewareHandler<import("hono").Env, string, {
8
+ in: (undefined extends (T extends import("zod/v3").ZodType<any, import("zod/v3").ZodTypeDef, any> ? import("zod/v3").input<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod").input<T> : never) ? true : false) extends true ? {
9
+ param?: ([T extends import("zod/v3").ZodType<any, import("zod/v3").ZodTypeDef, any> ? import("zod/v3").input<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod").input<T> : never] extends [Record<string, string>] ? Record<string, string> & (T extends import("zod/v3").ZodType<any, import("zod/v3").ZodTypeDef, any> ? import("zod/v3").input<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod").input<T> : never) : [Exclude<T extends import("zod/v3").ZodType<any, import("zod/v3").ZodTypeDef, any> ? import("zod/v3").input<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod").input<T> : never, undefined>] extends [never] ? {} : [Exclude<T extends import("zod/v3").ZodType<any, import("zod/v3").ZodTypeDef, any> ? import("zod/v3").input<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod").input<T> : never, undefined>] extends [object] ? undefined extends (T extends import("zod/v3").ZodType<any, import("zod/v3").ZodTypeDef, any> ? import("zod/v3").input<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod").input<T> : never) ? ((T extends import("zod/v3").ZodType<any, import("zod/v3").ZodTypeDef, any> ? import("zod/v3").input<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod").input<T> : never) & undefined) | (((Exclude<T extends import("zod/v3").ZodType<any, import("zod/v3").ZodTypeDef, any> ? import("zod/v3").input<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod").input<T> : never, (T extends import("zod/v3").ZodType<any, import("zod/v3").ZodTypeDef, any> ? import("zod/v3").input<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod").input<T> : never) & undefined> extends infer T_3 ? { [K_2 in keyof T_3]: ([Exclude<T_3[K_2], undefined>] extends [string] ? [string & Exclude<T_3[K_2], undefined>] extends [import("hono/utils/types").UnionToIntersection<string & Exclude<T_3[K_2], undefined>>] ? false : true : false) extends true ? T_3[K_2] : ([unknown] extends [T_3[K_2]] ? false : undefined extends T_3[K_2] ? true : false) extends true ? T_3[K_2] : Target extends "form" ? T$1 | T$1[] : Target extends "query" ? string | string[] : Target extends "param" ? string : Target extends "header" ? string : Target extends "cookie" ? string : unknown; } : never) extends infer T_2 ? { [K_1 in keyof T_2]: T_2[K_1]; } : never) extends infer T_1 ? { [K in keyof T_1]: T_1[K]; } : never) : (((T extends import("zod/v3").ZodType<any, import("zod/v3").ZodTypeDef, any> ? import("zod/v3").input<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod").input<T> : never) extends infer T_6 ? { [K_5 in keyof T_6]: ([Exclude<T_6[K_5], undefined>] extends [string] ? [string & Exclude<T_6[K_5], undefined>] extends [import("hono/utils/types").UnionToIntersection<string & Exclude<T_6[K_5], undefined>>] ? false : true : false) extends true ? T_6[K_5] : ([unknown] extends [T_6[K_5]] ? false : undefined extends T_6[K_5] ? true : false) extends true ? T_6[K_5] : Target extends "form" ? T$1 | T$1[] : Target extends "query" ? string | string[] : Target extends "param" ? string : Target extends "header" ? string : Target extends "cookie" ? string : unknown; } : never) extends infer T_5 ? { [K_4 in keyof T_5]: T_5[K_4]; } : never) extends infer T_4 ? { [K_3 in keyof T_4]: T_4[K_3]; } : never : {}) | undefined;
10
+ } : {
11
+ param: [T extends import("zod/v3").ZodType<any, import("zod/v3").ZodTypeDef, any> ? import("zod/v3").input<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod").input<T> : never] extends [Record<string, string>] ? Record<string, string> & (T extends import("zod/v3").ZodType<any, import("zod/v3").ZodTypeDef, any> ? import("zod/v3").input<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod").input<T> : never) : [Exclude<T extends import("zod/v3").ZodType<any, import("zod/v3").ZodTypeDef, any> ? import("zod/v3").input<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod").input<T> : never, undefined>] extends [never] ? {} : [Exclude<T extends import("zod/v3").ZodType<any, import("zod/v3").ZodTypeDef, any> ? import("zod/v3").input<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod").input<T> : never, undefined>] extends [object] ? undefined extends (T extends import("zod/v3").ZodType<any, import("zod/v3").ZodTypeDef, any> ? import("zod/v3").input<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod").input<T> : never) ? ((T extends import("zod/v3").ZodType<any, import("zod/v3").ZodTypeDef, any> ? import("zod/v3").input<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod").input<T> : never) & undefined) | (((Exclude<T extends import("zod/v3").ZodType<any, import("zod/v3").ZodTypeDef, any> ? import("zod/v3").input<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod").input<T> : never, (T extends import("zod/v3").ZodType<any, import("zod/v3").ZodTypeDef, any> ? import("zod/v3").input<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod").input<T> : never) & undefined> extends infer T_9 ? { [K_2 in keyof T_9]: ([Exclude<T_9[K_2], undefined>] extends [string] ? [string & Exclude<T_9[K_2], undefined>] extends [import("hono/utils/types").UnionToIntersection<string & Exclude<T_9[K_2], undefined>>] ? false : true : false) extends true ? T_9[K_2] : ([unknown] extends [T_9[K_2]] ? false : undefined extends T_9[K_2] ? true : false) extends true ? T_9[K_2] : Target extends "form" ? T$1 | T$1[] : Target extends "query" ? string | string[] : Target extends "param" ? string : Target extends "header" ? string : Target extends "cookie" ? string : unknown; } : never) extends infer T_8 ? { [K_1 in keyof T_8]: T_8[K_1]; } : never) extends infer T_7 ? { [K in keyof T_7]: T_7[K]; } : never) : (((T extends import("zod/v3").ZodType<any, import("zod/v3").ZodTypeDef, any> ? import("zod/v3").input<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod").input<T> : never) extends infer T_12 ? { [K_5 in keyof T_12]: ([Exclude<T_12[K_5], undefined>] extends [string] ? [string & Exclude<T_12[K_5], undefined>] extends [import("hono/utils/types").UnionToIntersection<string & Exclude<T_12[K_5], undefined>>] ? false : true : false) extends true ? T_12[K_5] : ([unknown] extends [T_12[K_5]] ? false : undefined extends T_12[K_5] ? true : false) extends true ? T_12[K_5] : Target extends "form" ? T$1 | T$1[] : Target extends "query" ? string | string[] : Target extends "param" ? string : Target extends "header" ? string : Target extends "cookie" ? string : unknown; } : never) extends infer T_11 ? { [K_4 in keyof T_11]: T_11[K_4]; } : never) extends infer T_10 ? { [K_3 in keyof T_10]: T_10[K_3]; } : never : {};
12
+ };
13
+ out: {
14
+ param: T extends import("zod/v3").ZodType<any, import("zod/v3").ZodTypeDef, any> ? import("zod/v3").output<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod").infer<T> : never;
15
+ };
16
+ }, import("hono").TypedResponse<{
17
+ ok: boolean;
18
+ reason: string;
19
+ }, 400, "json">>;
@@ -0,0 +1,36 @@
1
+ export * from "./funnel";
2
+ export * from "./engine/channels/channels";
3
+ export * from "./engine/claude/claude";
4
+ export * from "./engine/mcp/mcp";
5
+ export * from "./engine/profiles/profiles";
6
+ export * from "./engine/settings/settings-reader";
7
+ export * from "./engine/settings/settings-store";
8
+ export * from "./engine/settings/mock-settings-reader";
9
+ export * from "./engine/settings/settings-schema";
10
+ export * from "./engine/fs/file-system";
11
+ export * from "./engine/fs/node-file-system";
12
+ export * from "./engine/fs/memory-file-system";
13
+ export * from "./engine/process/process-runner";
14
+ export * from "./engine/process/node-process-runner";
15
+ export * from "./engine/process/memory-process-runner";
16
+ export * from "./engine/logger/logger";
17
+ export * from "./engine/logger/node-logger";
18
+ export * from "./engine/logger/memory-logger";
19
+ export * from "./engine/logger/noop-logger";
20
+ export * from "./engine/time/clock";
21
+ export * from "./engine/time/node-clock";
22
+ export * from "./engine/time/memory-clock";
23
+ export * from "./engine/id/id-generator";
24
+ export * from "./engine/id/node-id-generator";
25
+ export * from "./engine/id/memory-id-generator";
26
+ export * from "./connectors/connector-factory";
27
+ export * from "./connectors/connector-config-schema";
28
+ export * from "./connectors/connector-listener";
29
+ export * from "./connectors/schedule-connector-schema";
30
+ export * from "./connectors/slack-connector-schema";
31
+ export * from "./gateway/gateway";
32
+ export * from "./gateway/gateway-server";
33
+ export * from "./gateway/broadcaster";
34
+ export * from "./gateway/funnel-event-store";
35
+ export * from "./gateway/listener-supervisor";
36
+ export * from "./gateway/listeners-client";