@interactive-inc/claude-funnel 0.8.1 → 0.10.0

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 (175) hide show
  1. package/README.md +179 -80
  2. package/dist/bin.js +724 -656
  3. package/dist/connector-adapter-CXB-q_XC.d.ts +11 -0
  4. package/dist/connector-adapter-D5Utumgz.js +4 -0
  5. package/dist/connectors/discord.d.ts +76 -0
  6. package/dist/connectors/discord.js +2 -0
  7. package/dist/connectors/gh.d.ts +38 -0
  8. package/dist/connectors/gh.js +2 -0
  9. package/dist/connectors/schedule.d.ts +53 -0
  10. package/dist/connectors/schedule.js +2 -0
  11. package/dist/connectors/slack.d.ts +62 -0
  12. package/dist/connectors/slack.js +2 -0
  13. package/dist/discord-connector-schema-Dww2I4zH.d.ts +14 -0
  14. package/dist/discord-connector-schema-ygf5Df-2.js +173 -0
  15. package/dist/file-system-Co60LrmR.d.ts +74 -0
  16. package/dist/gateway/daemon.js +233 -183
  17. package/dist/gh-connector-schema-2ml29MBC.js +218 -0
  18. package/dist/gh-connector-schema-BZFAS-p-.d.ts +45 -0
  19. package/dist/index.d.ts +3888 -36
  20. package/dist/index.js +6206 -3485
  21. package/dist/logger-CTlXs7z4.d.ts +33 -0
  22. package/dist/node-logger-DQz_BGOD.js +61 -0
  23. package/dist/schedule-connector-schema-CkuIQ0JQ.js +325 -0
  24. package/dist/slack-connector-schema-Cd22WiHB.js +153 -0
  25. package/dist/slack-connector-schema-D7zAHN8k.d.ts +15 -0
  26. package/lib/bin.ts +1 -76
  27. package/lib/cli/index.ts +85 -0
  28. package/lib/cli/router/to-request.ts +1 -0
  29. package/lib/cli/routes/channels.$channel.publish.ts +52 -0
  30. package/lib/cli/routes/claude.ts +1 -0
  31. package/lib/cli/routes/index.ts +35 -18
  32. package/lib/cli/routes/profiles.add.$profile.ts +5 -2
  33. package/lib/cli/routes/profiles.set.$profile.ts +10 -11
  34. package/lib/connectors/discord.ts +4 -0
  35. package/lib/connectors/gh.ts +3 -0
  36. package/lib/connectors/schedule.ts +4 -0
  37. package/lib/connectors/slack.ts +4 -0
  38. package/lib/engine/claude/claude.ts +6 -0
  39. package/lib/engine/mcp/channel-server.ts +34 -115
  40. package/lib/engine/mcp/channel-subscriber.ts +82 -0
  41. package/lib/engine/mcp/read-channel-connectors.ts +34 -0
  42. package/lib/engine/mcp/read-gateway-token.ts +16 -0
  43. package/lib/engine/mcp/usage-hint-for-type.ts +15 -0
  44. package/lib/engine/settings/settings-schema.ts +2 -0
  45. package/lib/funnel.ts +162 -55
  46. package/lib/gateway/broadcaster.ts +1 -1
  47. package/lib/gateway/channel-publisher.ts +67 -0
  48. package/lib/gateway/gateway-server.ts +28 -16
  49. package/lib/gateway/publish-schema.ts +27 -0
  50. package/lib/gateway/routes/channels.publish.ts +44 -0
  51. package/lib/gateway/routes/index.ts +2 -0
  52. package/lib/gateway/routes/route-deps.ts +8 -0
  53. package/lib/index.ts +15 -0
  54. package/package.json +34 -23
  55. package/dist/cli/factory.d.ts +0 -7
  56. package/dist/cli/router/query-to-cli-args.d.ts +0 -1
  57. package/dist/cli/router/to-request.d.ts +0 -5
  58. package/dist/cli/router/validator.d.ts +0 -5
  59. package/dist/cli/routes/channels.$channel.connectors.$connector.d.ts +0 -42
  60. package/dist/cli/routes/channels.$channel.connectors.$connector.rename.$newName.d.ts +0 -46
  61. package/dist/cli/routes/channels.$channel.connectors.$connector.request.d.ts +0 -54
  62. package/dist/cli/routes/channels.$channel.connectors.$connector.schedules.add.$id.d.ts +0 -66
  63. package/dist/cli/routes/channels.$channel.connectors.$connector.schedules.d.ts +0 -42
  64. package/dist/cli/routes/channels.$channel.connectors.$connector.schedules.remove.$id.d.ts +0 -46
  65. package/dist/cli/routes/channels.$channel.connectors.add.$connector.d.ts +0 -90
  66. package/dist/cli/routes/channels.$channel.connectors.d.ts +0 -38
  67. package/dist/cli/routes/channels.$channel.connectors.remove.$connector.d.ts +0 -42
  68. package/dist/cli/routes/channels.$channel.connectors.set.$connector.d.ts +0 -62
  69. package/dist/cli/routes/channels.$channel.d.ts +0 -38
  70. package/dist/cli/routes/channels.$channel.rename.$newName.d.ts +0 -42
  71. package/dist/cli/routes/channels.$channel.set.delivery.$mode.d.ts +0 -28
  72. package/dist/cli/routes/channels.add.$channel.d.ts +0 -46
  73. package/dist/cli/routes/channels.d.ts +0 -16
  74. package/dist/cli/routes/channels.remove.$channel.d.ts +0 -38
  75. package/dist/cli/routes/claude.d.ts +0 -32
  76. package/dist/cli/routes/gateway.d.ts +0 -20
  77. package/dist/cli/routes/gateway.listeners.d.ts +0 -17
  78. package/dist/cli/routes/gateway.logs.d.ts +0 -24
  79. package/dist/cli/routes/gateway.restart.d.ts +0 -24
  80. package/dist/cli/routes/gateway.run.d.ts +0 -24
  81. package/dist/cli/routes/gateway.start.d.ts +0 -24
  82. package/dist/cli/routes/gateway.status.d.ts +0 -13
  83. package/dist/cli/routes/gateway.stop.d.ts +0 -16
  84. package/dist/cli/routes/index.d.ts +0 -1222
  85. package/dist/cli/routes/profiles.$profile.as-default.d.ts +0 -38
  86. package/dist/cli/routes/profiles.$profile.rename.$newName.d.ts +0 -42
  87. package/dist/cli/routes/profiles.$profile.run.d.ts +0 -46
  88. package/dist/cli/routes/profiles.add.$profile.d.ts +0 -54
  89. package/dist/cli/routes/profiles.d.ts +0 -16
  90. package/dist/cli/routes/profiles.remove.$profile.d.ts +0 -38
  91. package/dist/cli/routes/profiles.set.$profile.d.ts +0 -54
  92. package/dist/cli/routes/status.d.ts +0 -16
  93. package/dist/cli/routes/update.d.ts +0 -16
  94. package/dist/connectors/connector-adapter.d.ts +0 -8
  95. package/dist/connectors/connector-config-schema.d.ts +0 -43
  96. package/dist/connectors/connector-factory.d.ts +0 -32
  97. package/dist/connectors/connector-listener.d.ts +0 -17
  98. package/dist/connectors/discord-adapter.d.ts +0 -14
  99. package/dist/connectors/discord-connector-schema.d.ts +0 -10
  100. package/dist/connectors/discord-event-processor.d.ts +0 -26
  101. package/dist/connectors/discord-listener.d.ts +0 -17
  102. package/dist/connectors/gh-adapter.d.ts +0 -11
  103. package/dist/connectors/gh-connector-schema.d.ts +0 -10
  104. package/dist/connectors/gh-listener.d.ts +0 -26
  105. package/dist/connectors/match-cron.d.ts +0 -1
  106. package/dist/connectors/schedule-connector-schema.d.ts +0 -45
  107. package/dist/connectors/schedule-listener.d.ts +0 -30
  108. package/dist/connectors/schedule-state-store.d.ts +0 -19
  109. package/dist/connectors/slack-adapter.d.ts +0 -15
  110. package/dist/connectors/slack-connector-schema.d.ts +0 -11
  111. package/dist/connectors/slack-event-processor.d.ts +0 -27
  112. package/dist/connectors/slack-listener.d.ts +0 -17
  113. package/dist/engine/channels/channels.d.ts +0 -106
  114. package/dist/engine/claude/claude.d.ts +0 -49
  115. package/dist/engine/claude/gateway-controller.d.ts +0 -6
  116. package/dist/engine/fs/file-system.d.ts +0 -24
  117. package/dist/engine/fs/memory-file-system.d.ts +0 -31
  118. package/dist/engine/fs/node-file-system.d.ts +0 -15
  119. package/dist/engine/http/http-client.d.ts +0 -15
  120. package/dist/engine/http/memory-http-client.d.ts +0 -12
  121. package/dist/engine/http/node-http-client.d.ts +0 -5
  122. package/dist/engine/id/id-generator.d.ts +0 -7
  123. package/dist/engine/id/memory-id-generator.d.ts +0 -11
  124. package/dist/engine/id/node-id-generator.d.ts +0 -4
  125. package/dist/engine/logger/logger.d.ts +0 -11
  126. package/dist/engine/logger/memory-logger.d.ts +0 -14
  127. package/dist/engine/logger/node-logger.d.ts +0 -15
  128. package/dist/engine/logger/noop-logger.d.ts +0 -7
  129. package/dist/engine/mcp/channel-server.d.ts +0 -1
  130. package/dist/engine/mcp/mcp.d.ts +0 -22
  131. package/dist/engine/process/memory-process-runner.d.ts +0 -43
  132. package/dist/engine/process/node-process-runner.d.ts +0 -9
  133. package/dist/engine/process/process-runner.d.ts +0 -29
  134. package/dist/engine/profiles/profile-channel-checker.d.ts +0 -7
  135. package/dist/engine/profiles/profiles.d.ts +0 -31
  136. package/dist/engine/settings/mock-settings-reader.d.ts +0 -9
  137. package/dist/engine/settings/settings-reader.d.ts +0 -5
  138. package/dist/engine/settings/settings-schema.d.ts +0 -132
  139. package/dist/engine/settings/settings-store.d.ts +0 -18
  140. package/dist/engine/time/clock.d.ts +0 -9
  141. package/dist/engine/time/memory-clock.d.ts +0 -12
  142. package/dist/engine/time/node-clock.d.ts +0 -4
  143. package/dist/funnel.d.ts +0 -95
  144. package/dist/gateway/auth-middleware.d.ts +0 -14
  145. package/dist/gateway/broadcaster.d.ts +0 -122
  146. package/dist/gateway/daemon.d.ts +0 -2
  147. package/dist/gateway/factory.d.ts +0 -7
  148. package/dist/gateway/funnel-event-store.d.ts +0 -81
  149. package/dist/gateway/gateway-server.d.ts +0 -94
  150. package/dist/gateway/gateway-token.d.ts +0 -33
  151. package/dist/gateway/gateway.d.ts +0 -58
  152. package/dist/gateway/kill-competing-slack-gateways.d.ts +0 -9
  153. package/dist/gateway/listener-supervisor.d.ts +0 -85
  154. package/dist/gateway/listeners-client.d.ts +0 -53
  155. package/dist/gateway/resolve-daemon-script.d.ts +0 -11
  156. package/dist/gateway/routes/channels.connectors.call.d.ts +0 -41
  157. package/dist/gateway/routes/health.d.ts +0 -17
  158. package/dist/gateway/routes/index.d.ts +0 -209
  159. package/dist/gateway/routes/listeners.list.d.ts +0 -14
  160. package/dist/gateway/routes/listeners.restart.d.ts +0 -34
  161. package/dist/gateway/routes/listeners.start.d.ts +0 -34
  162. package/dist/gateway/routes/listeners.stop.d.ts +0 -34
  163. package/dist/gateway/routes/route-deps.d.ts +0 -10
  164. package/dist/gateway/routes/status.d.ts +0 -30
  165. package/dist/gateway/routes/validator.d.ts +0 -19
  166. package/dist/logger/leuco-human-file-writer.d.ts +0 -33
  167. package/dist/logger/leuco-human-logger.d.ts +0 -46
  168. package/dist/logger/leuco-human-record.d.ts +0 -15
  169. package/dist/logger/leuco-human-stdout-writer.d.ts +0 -20
  170. package/dist/logger/leuco-human-writer.d.ts +0 -13
  171. package/dist/logger/leuco-logger-memory-sink.d.ts +0 -33
  172. package/dist/logger/leuco-logger-record.d.ts +0 -13
  173. package/dist/logger/leuco-logger-sink.d.ts +0 -34
  174. package/dist/logger/leuco-logger-sqlite-sink.d.ts +0 -102
  175. package/dist/logger/leuco-logger.d.ts +0 -56
@@ -1,1222 +0,0 @@
1
- export declare const app: import("hono/hono-base").HonoBase<import("../factory").Env, {
2
- "/claude": {
3
- $get: {
4
- input: {
5
- query: {
6
- [x: string]: string | string[];
7
- profile?: string | undefined;
8
- channel?: string | undefined;
9
- };
10
- };
11
- output: string;
12
- outputFormat: "text";
13
- status: import("hono/utils/http-status").ContentfulStatusCode;
14
- } | {
15
- input: {
16
- query: {
17
- [x: string]: string | string[];
18
- profile?: string | undefined;
19
- channel?: string | undefined;
20
- };
21
- };
22
- output: "funnel claude — launch Claude Code\n\nusage:\n funnel claude launch the default profile (first in the list)\n funnel claude -p <name> launch a named profile\n funnel claude --profile <name> (long form)\n funnel claude --channel <name> raw launch (no profile, cwd = current dir)\n\noptions:\n -p, --profile profile name to launch\n --channel channel name (raw launch, ignored when --profile is given)\n\nAny other arguments are forwarded to the claude CLI.\nOn launch the FUNNEL_CHANNEL_ID env var is set and MCP connects to the gateway.";
23
- outputFormat: "text";
24
- status: import("hono/utils/http-status").ContentfulStatusCode;
25
- };
26
- };
27
- } & {
28
- "/channels": {
29
- $get: {
30
- input: {
31
- query: Record<string, never>;
32
- };
33
- output: string;
34
- outputFormat: "text";
35
- status: import("hono/utils/http-status").ContentfulStatusCode;
36
- };
37
- };
38
- } & {
39
- "/channels/add": {
40
- $post: {
41
- input: {};
42
- output: string;
43
- outputFormat: "text";
44
- status: import("hono/utils/http-status").ContentfulStatusCode;
45
- };
46
- };
47
- } & {
48
- "/channels/add/:channel": {
49
- $post: {
50
- input: {
51
- param: {
52
- channel: string;
53
- };
54
- } & {
55
- query: {
56
- delivery?: "fanout" | "exclusive" | undefined;
57
- };
58
- };
59
- output: string;
60
- outputFormat: "text";
61
- status: import("hono/utils/http-status").ContentfulStatusCode;
62
- } | {
63
- input: {
64
- param: {
65
- channel: string;
66
- };
67
- } & {
68
- query: {
69
- delivery?: "fanout" | "exclusive" | undefined;
70
- };
71
- };
72
- output: `added channel "${string}" (id: ${string})`;
73
- outputFormat: "text";
74
- status: import("hono/utils/http-status").ContentfulStatusCode;
75
- };
76
- };
77
- } & {
78
- "/channels/remove": {
79
- $post: {
80
- input: {};
81
- output: string;
82
- outputFormat: "text";
83
- status: import("hono/utils/http-status").ContentfulStatusCode;
84
- };
85
- };
86
- } & {
87
- "/channels/remove/:channel": {
88
- $post: {
89
- input: {
90
- param: {
91
- channel: string;
92
- };
93
- } & {
94
- query: Record<string, never>;
95
- };
96
- output: string;
97
- outputFormat: "text";
98
- status: import("hono/utils/http-status").ContentfulStatusCode;
99
- } | {
100
- input: {
101
- param: {
102
- channel: string;
103
- };
104
- } & {
105
- query: Record<string, never>;
106
- };
107
- output: `removed channel "${string}"`;
108
- outputFormat: "text";
109
- status: import("hono/utils/http-status").ContentfulStatusCode;
110
- };
111
- };
112
- } & {
113
- "/channels/rename/:channel/:newName": {
114
- $post: {
115
- input: {
116
- param: {
117
- channel: string;
118
- newName: string;
119
- };
120
- } & {
121
- query: Record<string, never>;
122
- };
123
- output: string;
124
- outputFormat: "text";
125
- status: import("hono/utils/http-status").ContentfulStatusCode;
126
- } | {
127
- input: {
128
- param: {
129
- channel: string;
130
- newName: string;
131
- };
132
- } & {
133
- query: Record<string, never>;
134
- };
135
- output: `renamed channel "${string}" to "${string}"`;
136
- outputFormat: "text";
137
- status: import("hono/utils/http-status").ContentfulStatusCode;
138
- };
139
- };
140
- } & {
141
- "/channels/:channel/rename/:newName": {
142
- $post: {
143
- input: {
144
- param: {
145
- channel: string;
146
- newName: string;
147
- };
148
- } & {
149
- query: Record<string, never>;
150
- };
151
- output: string;
152
- outputFormat: "text";
153
- status: import("hono/utils/http-status").ContentfulStatusCode;
154
- } | {
155
- input: {
156
- param: {
157
- channel: string;
158
- newName: string;
159
- };
160
- } & {
161
- query: Record<string, never>;
162
- };
163
- output: `renamed channel "${string}" to "${string}"`;
164
- outputFormat: "text";
165
- status: import("hono/utils/http-status").ContentfulStatusCode;
166
- };
167
- };
168
- } & {
169
- "/channels/rename": {
170
- $post: {
171
- input: {};
172
- output: string;
173
- outputFormat: "text";
174
- status: import("hono/utils/http-status").ContentfulStatusCode;
175
- };
176
- };
177
- } & {
178
- "/channels/:channel/rename": {
179
- $post: {
180
- input: {
181
- param: {
182
- channel: string;
183
- };
184
- };
185
- output: string;
186
- outputFormat: "text";
187
- status: import("hono/utils/http-status").ContentfulStatusCode;
188
- };
189
- };
190
- } & {
191
- "/channels/:channel/set/delivery/:mode": {
192
- $post: {
193
- input: {
194
- param: {
195
- channel: string;
196
- mode: "fanout" | "exclusive";
197
- };
198
- };
199
- output: string;
200
- outputFormat: "text";
201
- status: import("hono/utils/http-status").ContentfulStatusCode;
202
- } | {
203
- input: {
204
- param: {
205
- channel: string;
206
- mode: "fanout" | "exclusive";
207
- };
208
- };
209
- output: `channel "${string}" delivery set to fanout` | `channel "${string}" delivery set to exclusive`;
210
- outputFormat: "text";
211
- status: import("hono/utils/http-status").ContentfulStatusCode;
212
- };
213
- };
214
- } & {
215
- "/channels/:channel": {
216
- $get: {
217
- input: {
218
- param: {
219
- channel: string;
220
- };
221
- } & {
222
- query: Record<string, never>;
223
- };
224
- output: string;
225
- outputFormat: "text";
226
- status: import("hono/utils/http-status").ContentfulStatusCode;
227
- };
228
- };
229
- } & {
230
- "/channels/:channel/connectors": {
231
- $get: {
232
- input: {
233
- param: {
234
- channel: string;
235
- };
236
- } & {
237
- query: Record<string, never>;
238
- };
239
- output: string;
240
- outputFormat: "text";
241
- status: import("hono/utils/http-status").ContentfulStatusCode;
242
- };
243
- };
244
- } & {
245
- "/channels/:channel/connectors/add": {
246
- $post: {
247
- input: {
248
- param: {
249
- channel: string;
250
- };
251
- };
252
- output: string;
253
- outputFormat: "text";
254
- status: import("hono/utils/http-status").ContentfulStatusCode;
255
- };
256
- };
257
- } & {
258
- "/channels/:channel/connectors/add/:connector": {
259
- $post: {
260
- input: {
261
- param: {
262
- channel: string;
263
- connector: string;
264
- };
265
- } & {
266
- query: {
267
- type: string | string[];
268
- "bot-token": string | string[];
269
- "app-token": string | string[];
270
- } | {
271
- type: string | string[];
272
- "poll-interval"?: string | string[] | undefined;
273
- } | {
274
- type: string | string[];
275
- "bot-token": string | string[];
276
- } | {
277
- type: string | string[];
278
- };
279
- };
280
- output: string;
281
- outputFormat: "text";
282
- status: import("hono/utils/http-status").ContentfulStatusCode;
283
- } | {
284
- input: {
285
- param: {
286
- channel: string;
287
- connector: string;
288
- };
289
- } & {
290
- query: {
291
- type: string | string[];
292
- "bot-token": string | string[];
293
- "app-token": string | string[];
294
- } | {
295
- type: string | string[];
296
- "poll-interval"?: string | string[] | undefined;
297
- } | {
298
- type: string | string[];
299
- "bot-token": string | string[];
300
- } | {
301
- type: string | string[];
302
- };
303
- };
304
- output: `added slack connector "${string}" to channel "${string}"`;
305
- outputFormat: "text";
306
- status: import("hono/utils/http-status").ContentfulStatusCode;
307
- } | {
308
- input: {
309
- param: {
310
- channel: string;
311
- connector: string;
312
- };
313
- } & {
314
- query: {
315
- type: string | string[];
316
- "bot-token": string | string[];
317
- "app-token": string | string[];
318
- } | {
319
- type: string | string[];
320
- "poll-interval"?: string | string[] | undefined;
321
- } | {
322
- type: string | string[];
323
- "bot-token": string | string[];
324
- } | {
325
- type: string | string[];
326
- };
327
- };
328
- output: `added gh connector "${string}" to channel "${string}"`;
329
- outputFormat: "text";
330
- status: import("hono/utils/http-status").ContentfulStatusCode;
331
- } | {
332
- input: {
333
- param: {
334
- channel: string;
335
- connector: string;
336
- };
337
- } & {
338
- query: {
339
- type: string | string[];
340
- "bot-token": string | string[];
341
- "app-token": string | string[];
342
- } | {
343
- type: string | string[];
344
- "poll-interval"?: string | string[] | undefined;
345
- } | {
346
- type: string | string[];
347
- "bot-token": string | string[];
348
- } | {
349
- type: string | string[];
350
- };
351
- };
352
- output: `added discord connector "${string}" to channel "${string}"`;
353
- outputFormat: "text";
354
- status: import("hono/utils/http-status").ContentfulStatusCode;
355
- } | {
356
- input: {
357
- param: {
358
- channel: string;
359
- connector: string;
360
- };
361
- } & {
362
- query: {
363
- type: string | string[];
364
- "bot-token": string | string[];
365
- "app-token": string | string[];
366
- } | {
367
- type: string | string[];
368
- "poll-interval"?: string | string[] | undefined;
369
- } | {
370
- type: string | string[];
371
- "bot-token": string | string[];
372
- } | {
373
- type: string | string[];
374
- };
375
- };
376
- output: `added schedule connector "${string}" to channel "${string}"`;
377
- outputFormat: "text";
378
- status: import("hono/utils/http-status").ContentfulStatusCode;
379
- };
380
- };
381
- } & {
382
- "/channels/:channel/connectors/remove": {
383
- $post: {
384
- input: {
385
- param: {
386
- channel: string;
387
- };
388
- };
389
- output: string;
390
- outputFormat: "text";
391
- status: import("hono/utils/http-status").ContentfulStatusCode;
392
- };
393
- };
394
- } & {
395
- "/channels/:channel/connectors/remove/:connector": {
396
- $post: {
397
- input: {
398
- param: {
399
- channel: string;
400
- connector: string;
401
- };
402
- } & {
403
- query: Record<string, never>;
404
- };
405
- output: string;
406
- outputFormat: "text";
407
- status: import("hono/utils/http-status").ContentfulStatusCode;
408
- } | {
409
- input: {
410
- param: {
411
- channel: string;
412
- connector: string;
413
- };
414
- } & {
415
- query: Record<string, never>;
416
- };
417
- output: `removed connector "${string}" from channel "${string}"`;
418
- outputFormat: "text";
419
- status: import("hono/utils/http-status").ContentfulStatusCode;
420
- };
421
- };
422
- } & {
423
- "/channels/:channel/connectors/set": {
424
- $post: {
425
- input: {
426
- param: {
427
- channel: string;
428
- };
429
- };
430
- output: string;
431
- outputFormat: "text";
432
- status: import("hono/utils/http-status").ContentfulStatusCode;
433
- };
434
- };
435
- } & {
436
- "/channels/:channel/connectors/set/:connector": {
437
- $post: {
438
- input: {
439
- param: {
440
- channel: string;
441
- connector: string;
442
- };
443
- } & {
444
- query: {
445
- [x: string]: string | string[];
446
- "bot-token"?: string | undefined;
447
- "app-token"?: string | undefined;
448
- "poll-interval"?: string | string[] | undefined;
449
- };
450
- };
451
- output: string;
452
- outputFormat: "text";
453
- status: import("hono/utils/http-status").ContentfulStatusCode;
454
- } | {
455
- input: {
456
- param: {
457
- channel: string;
458
- connector: string;
459
- };
460
- } & {
461
- query: {
462
- [x: string]: string | string[];
463
- "bot-token"?: string | undefined;
464
- "app-token"?: string | undefined;
465
- "poll-interval"?: string | string[] | undefined;
466
- };
467
- };
468
- output: `updated connector "${string}" in channel "${string}"`;
469
- outputFormat: "text";
470
- status: import("hono/utils/http-status").ContentfulStatusCode;
471
- };
472
- };
473
- } & {
474
- "/channels/:channel/connectors/rename/:connector/:newName": {
475
- $post: {
476
- input: {
477
- param: {
478
- channel: string;
479
- connector: string;
480
- newName: string;
481
- };
482
- } & {
483
- query: Record<string, never>;
484
- };
485
- output: string;
486
- outputFormat: "text";
487
- status: import("hono/utils/http-status").ContentfulStatusCode;
488
- } | {
489
- input: {
490
- param: {
491
- channel: string;
492
- connector: string;
493
- newName: string;
494
- };
495
- } & {
496
- query: Record<string, never>;
497
- };
498
- output: `renamed connector "${string}" to "${string}"`;
499
- outputFormat: "text";
500
- status: import("hono/utils/http-status").ContentfulStatusCode;
501
- };
502
- };
503
- } & {
504
- "/channels/:channel/connectors/:connector/rename/:newName": {
505
- $post: {
506
- input: {
507
- param: {
508
- channel: string;
509
- connector: string;
510
- newName: string;
511
- };
512
- } & {
513
- query: Record<string, never>;
514
- };
515
- output: string;
516
- outputFormat: "text";
517
- status: import("hono/utils/http-status").ContentfulStatusCode;
518
- } | {
519
- input: {
520
- param: {
521
- channel: string;
522
- connector: string;
523
- newName: string;
524
- };
525
- } & {
526
- query: Record<string, never>;
527
- };
528
- output: `renamed connector "${string}" to "${string}"`;
529
- outputFormat: "text";
530
- status: import("hono/utils/http-status").ContentfulStatusCode;
531
- };
532
- };
533
- } & {
534
- "/channels/:channel/connectors/rename": {
535
- $post: {
536
- input: {
537
- param: {
538
- channel: string;
539
- };
540
- };
541
- output: string;
542
- outputFormat: "text";
543
- status: import("hono/utils/http-status").ContentfulStatusCode;
544
- };
545
- };
546
- } & {
547
- "/channels/:channel/connectors/:connector/rename": {
548
- $post: {
549
- input: {
550
- param: {
551
- channel: string;
552
- } & {
553
- connector: string;
554
- };
555
- };
556
- output: string;
557
- outputFormat: "text";
558
- status: import("hono/utils/http-status").ContentfulStatusCode;
559
- };
560
- };
561
- } & {
562
- "/channels/:channel/connectors/:connector/request": {
563
- $post: {
564
- input: {
565
- param: {
566
- channel: string;
567
- connector: string;
568
- };
569
- } & {
570
- query: {
571
- [x: string]: string | string[];
572
- method: string | string[];
573
- };
574
- };
575
- output: string;
576
- outputFormat: "text";
577
- status: import("hono/utils/http-status").ContentfulStatusCode;
578
- };
579
- };
580
- } & {
581
- "/channels/:channel/connectors/:connector": {
582
- $get: {
583
- input: {
584
- param: {
585
- channel: string;
586
- connector: string;
587
- };
588
- } & {
589
- query: Record<string, never>;
590
- };
591
- output: string;
592
- outputFormat: "text";
593
- status: import("hono/utils/http-status").ContentfulStatusCode;
594
- };
595
- };
596
- } & {
597
- "/channels/:channel/connectors/:connector/schedules": {
598
- $get: {
599
- input: {
600
- param: {
601
- channel: string;
602
- connector: string;
603
- };
604
- } & {
605
- query: Record<string, never>;
606
- };
607
- output: string;
608
- outputFormat: "text";
609
- status: import("hono/utils/http-status").ContentfulStatusCode;
610
- };
611
- };
612
- } & {
613
- "/channels/:channel/connectors/:connector/schedules/add": {
614
- $post: {
615
- input: {
616
- param: {
617
- channel: string;
618
- } & {
619
- connector: string;
620
- };
621
- };
622
- output: string;
623
- outputFormat: "text";
624
- status: import("hono/utils/http-status").ContentfulStatusCode;
625
- };
626
- };
627
- } & {
628
- "/channels/:channel/connectors/:connector/schedules/add/:id": {
629
- $post: {
630
- input: {
631
- param: {
632
- channel: string;
633
- connector: string;
634
- id: string;
635
- };
636
- } & {
637
- query: {
638
- cron: string | string[];
639
- prompt: string | string[];
640
- enabled?: string | string[] | undefined;
641
- "catchup-policy"?: "latest" | "all" | "skip" | undefined;
642
- };
643
- };
644
- output: string;
645
- outputFormat: "text";
646
- status: import("hono/utils/http-status").ContentfulStatusCode;
647
- } | {
648
- input: {
649
- param: {
650
- channel: string;
651
- connector: string;
652
- id: string;
653
- };
654
- } & {
655
- query: {
656
- cron: string | string[];
657
- prompt: string | string[];
658
- enabled?: string | string[] | undefined;
659
- "catchup-policy"?: "latest" | "all" | "skip" | undefined;
660
- };
661
- };
662
- output: `added schedule entry "${string}"`;
663
- outputFormat: "text";
664
- status: import("hono/utils/http-status").ContentfulStatusCode;
665
- };
666
- };
667
- } & {
668
- "/channels/:channel/connectors/:connector/schedules/remove": {
669
- $post: {
670
- input: {
671
- param: {
672
- channel: string;
673
- } & {
674
- connector: string;
675
- };
676
- };
677
- output: string;
678
- outputFormat: "text";
679
- status: import("hono/utils/http-status").ContentfulStatusCode;
680
- };
681
- };
682
- } & {
683
- "/channels/:channel/connectors/:connector/schedules/remove/:id": {
684
- $post: {
685
- input: {
686
- param: {
687
- channel: string;
688
- connector: string;
689
- id: string;
690
- };
691
- } & {
692
- query: Record<string, never>;
693
- };
694
- output: string;
695
- outputFormat: "text";
696
- status: import("hono/utils/http-status").ContentfulStatusCode;
697
- } | {
698
- input: {
699
- param: {
700
- channel: string;
701
- connector: string;
702
- id: string;
703
- };
704
- } & {
705
- query: Record<string, never>;
706
- };
707
- output: `removed schedule entry "${string}"`;
708
- outputFormat: "text";
709
- status: import("hono/utils/http-status").ContentfulStatusCode;
710
- };
711
- };
712
- } & {
713
- "/profiles": {
714
- $get: {
715
- input: {
716
- query: Record<string, never>;
717
- };
718
- output: string;
719
- outputFormat: "text";
720
- status: import("hono/utils/http-status").ContentfulStatusCode;
721
- };
722
- };
723
- } & {
724
- "/profiles/add": {
725
- $post: {
726
- input: {};
727
- output: string;
728
- outputFormat: "text";
729
- status: import("hono/utils/http-status").ContentfulStatusCode;
730
- };
731
- };
732
- } & {
733
- "/profiles/add/:profile": {
734
- $post: {
735
- input: {
736
- param: {
737
- profile: string;
738
- };
739
- } & {
740
- query: {
741
- path: string;
742
- "sub-agent": string;
743
- channel: string;
744
- };
745
- };
746
- output: string;
747
- outputFormat: "text";
748
- status: import("hono/utils/http-status").ContentfulStatusCode;
749
- } | {
750
- input: {
751
- param: {
752
- profile: string;
753
- };
754
- } & {
755
- query: {
756
- path: string;
757
- "sub-agent": string;
758
- channel: string;
759
- };
760
- };
761
- output: `added profile "${string}"`;
762
- outputFormat: "text";
763
- status: import("hono/utils/http-status").ContentfulStatusCode;
764
- };
765
- };
766
- } & {
767
- "/profiles/set": {
768
- $post: {
769
- input: {};
770
- output: string;
771
- outputFormat: "text";
772
- status: import("hono/utils/http-status").ContentfulStatusCode;
773
- };
774
- };
775
- } & {
776
- "/profiles/set/:profile": {
777
- $post: {
778
- input: {
779
- param: {
780
- profile: string;
781
- };
782
- } & {
783
- query: {
784
- path?: string | undefined;
785
- "sub-agent"?: string | undefined;
786
- channel?: string | undefined;
787
- };
788
- };
789
- output: string;
790
- outputFormat: "text";
791
- status: import("hono/utils/http-status").ContentfulStatusCode;
792
- } | {
793
- input: {
794
- param: {
795
- profile: string;
796
- };
797
- } & {
798
- query: {
799
- path?: string | undefined;
800
- "sub-agent"?: string | undefined;
801
- channel?: string | undefined;
802
- };
803
- };
804
- output: `updated profile "${string}"`;
805
- outputFormat: "text";
806
- status: import("hono/utils/http-status").ContentfulStatusCode;
807
- };
808
- };
809
- } & {
810
- "/profiles/remove": {
811
- $post: {
812
- input: {};
813
- output: string;
814
- outputFormat: "text";
815
- status: import("hono/utils/http-status").ContentfulStatusCode;
816
- };
817
- };
818
- } & {
819
- "/profiles/remove/:profile": {
820
- $post: {
821
- input: {
822
- param: {
823
- profile: string;
824
- };
825
- } & {
826
- query: Record<string, never>;
827
- };
828
- output: string;
829
- outputFormat: "text";
830
- status: import("hono/utils/http-status").ContentfulStatusCode;
831
- } | {
832
- input: {
833
- param: {
834
- profile: string;
835
- };
836
- } & {
837
- query: Record<string, never>;
838
- };
839
- output: `removed profile "${string}"`;
840
- outputFormat: "text";
841
- status: import("hono/utils/http-status").ContentfulStatusCode;
842
- };
843
- };
844
- } & {
845
- "/profiles/rename/:profile/:newName": {
846
- $post: {
847
- input: {
848
- param: {
849
- profile: string;
850
- newName: string;
851
- };
852
- } & {
853
- query: Record<string, never>;
854
- };
855
- output: string;
856
- outputFormat: "text";
857
- status: import("hono/utils/http-status").ContentfulStatusCode;
858
- } | {
859
- input: {
860
- param: {
861
- profile: string;
862
- newName: string;
863
- };
864
- } & {
865
- query: Record<string, never>;
866
- };
867
- output: `renamed profile "${string}" to "${string}"`;
868
- outputFormat: "text";
869
- status: import("hono/utils/http-status").ContentfulStatusCode;
870
- };
871
- };
872
- } & {
873
- "/profiles/:profile/rename/:newName": {
874
- $post: {
875
- input: {
876
- param: {
877
- profile: string;
878
- newName: string;
879
- };
880
- } & {
881
- query: Record<string, never>;
882
- };
883
- output: string;
884
- outputFormat: "text";
885
- status: import("hono/utils/http-status").ContentfulStatusCode;
886
- } | {
887
- input: {
888
- param: {
889
- profile: string;
890
- newName: string;
891
- };
892
- } & {
893
- query: Record<string, never>;
894
- };
895
- output: `renamed profile "${string}" to "${string}"`;
896
- outputFormat: "text";
897
- status: import("hono/utils/http-status").ContentfulStatusCode;
898
- };
899
- };
900
- } & {
901
- "/profiles/rename": {
902
- $post: {
903
- input: {};
904
- output: string;
905
- outputFormat: "text";
906
- status: import("hono/utils/http-status").ContentfulStatusCode;
907
- };
908
- };
909
- } & {
910
- "/profiles/:profile/rename": {
911
- $post: {
912
- input: {
913
- param: {
914
- profile: string;
915
- };
916
- };
917
- output: string;
918
- outputFormat: "text";
919
- status: import("hono/utils/http-status").ContentfulStatusCode;
920
- };
921
- };
922
- } & {
923
- "/profiles/:profile/as-default": {
924
- $post: {
925
- input: {
926
- param: {
927
- profile: string;
928
- };
929
- } & {
930
- query: Record<string, never>;
931
- };
932
- output: string;
933
- outputFormat: "text";
934
- status: import("hono/utils/http-status").ContentfulStatusCode;
935
- } | {
936
- input: {
937
- param: {
938
- profile: string;
939
- };
940
- } & {
941
- query: Record<string, never>;
942
- };
943
- output: `profile "${string}" is now the default`;
944
- outputFormat: "text";
945
- status: import("hono/utils/http-status").ContentfulStatusCode;
946
- };
947
- };
948
- } & {
949
- "/profiles/:profile/run": {
950
- $get: {
951
- input: {
952
- param: {
953
- profile: string;
954
- };
955
- } & {
956
- query: {
957
- [x: string]: string | string[];
958
- };
959
- };
960
- output: string;
961
- outputFormat: "text";
962
- status: import("hono/utils/http-status").ContentfulStatusCode;
963
- } | {
964
- input: {
965
- param: {
966
- profile: string;
967
- };
968
- } & {
969
- query: {
970
- [x: string]: string | string[];
971
- };
972
- };
973
- output: Promise<never>;
974
- outputFormat: "json";
975
- status: import("hono/utils/http-status").StatusCode;
976
- };
977
- };
978
- } & {
979
- "/profiles/:profile": {
980
- $get: {
981
- input: {
982
- param: {
983
- profile: string;
984
- };
985
- } & {
986
- query: {
987
- [x: string]: string | string[];
988
- };
989
- };
990
- output: string;
991
- outputFormat: "text";
992
- status: import("hono/utils/http-status").ContentfulStatusCode;
993
- } | {
994
- input: {
995
- param: {
996
- profile: string;
997
- };
998
- } & {
999
- query: {
1000
- [x: string]: string | string[];
1001
- };
1002
- };
1003
- output: Promise<never>;
1004
- outputFormat: "json";
1005
- status: import("hono/utils/http-status").StatusCode;
1006
- };
1007
- };
1008
- } & {
1009
- "/gateway": {
1010
- $get: {
1011
- input: {};
1012
- output: string;
1013
- outputFormat: "text";
1014
- status: import("hono/utils/http-status").ContentfulStatusCode;
1015
- } | {
1016
- input: {};
1017
- output: "funnel gateway: running (pid null) — health check failed" | `funnel gateway: running (pid ${number}) \u2014 health check failed`;
1018
- outputFormat: "text";
1019
- status: import("hono/utils/http-status").ContentfulStatusCode;
1020
- } | {
1021
- input: {};
1022
- output: `funnel gateway: running (pid null)
1023
- port: ${number}
1024
- clients: ${string}` | `funnel gateway: running (pid ${number})
1025
- port: ${number}
1026
- clients: ${string}`;
1027
- outputFormat: "text";
1028
- status: import("hono/utils/http-status").ContentfulStatusCode;
1029
- };
1030
- };
1031
- } & {
1032
- "/gateway/status": {
1033
- $get: {
1034
- input: {};
1035
- output: string;
1036
- outputFormat: "text";
1037
- status: import("hono/utils/http-status").ContentfulStatusCode;
1038
- } | {
1039
- input: {};
1040
- output: "funnel gateway: running (pid null) — health check failed" | `funnel gateway: running (pid ${number}) \u2014 health check failed`;
1041
- outputFormat: "text";
1042
- status: import("hono/utils/http-status").ContentfulStatusCode;
1043
- } | {
1044
- input: {};
1045
- output: `funnel gateway: running (pid null)
1046
- port: ${number}
1047
- clients: ${string}` | `funnel gateway: running (pid ${number})
1048
- port: ${number}
1049
- clients: ${string}`;
1050
- outputFormat: "text";
1051
- status: import("hono/utils/http-status").ContentfulStatusCode;
1052
- };
1053
- };
1054
- } & {
1055
- "/gateway/start": {
1056
- $get: {
1057
- input: {
1058
- query: {
1059
- "no-caffeine"?: string | undefined;
1060
- };
1061
- };
1062
- output: string;
1063
- outputFormat: "text";
1064
- status: import("hono/utils/http-status").ContentfulStatusCode;
1065
- } | {
1066
- input: {
1067
- query: {
1068
- "no-caffeine"?: string | undefined;
1069
- };
1070
- };
1071
- output: "funnel gateway: already running (pid null)" | `funnel gateway: already running (pid ${number})`;
1072
- outputFormat: "text";
1073
- status: import("hono/utils/http-status").ContentfulStatusCode;
1074
- } | {
1075
- input: {
1076
- query: {
1077
- "no-caffeine"?: string | undefined;
1078
- };
1079
- };
1080
- output: "funnel gateway: started";
1081
- outputFormat: "text";
1082
- status: import("hono/utils/http-status").ContentfulStatusCode;
1083
- };
1084
- };
1085
- } & {
1086
- "/gateway/stop": {
1087
- $get: {
1088
- input: {
1089
- query: Record<string, never>;
1090
- };
1091
- output: string;
1092
- outputFormat: "text";
1093
- status: import("hono/utils/http-status").ContentfulStatusCode;
1094
- } | {
1095
- input: {
1096
- query: Record<string, never>;
1097
- };
1098
- output: "funnel gateway: no running process";
1099
- outputFormat: "text";
1100
- status: import("hono/utils/http-status").ContentfulStatusCode;
1101
- } | {
1102
- input: {
1103
- query: Record<string, never>;
1104
- };
1105
- output: "funnel gateway: stopped";
1106
- outputFormat: "text";
1107
- status: import("hono/utils/http-status").ContentfulStatusCode;
1108
- };
1109
- };
1110
- } & {
1111
- "/gateway/restart": {
1112
- $get: {
1113
- input: {
1114
- query: {
1115
- "no-caffeine"?: string | undefined;
1116
- };
1117
- };
1118
- output: string;
1119
- outputFormat: "text";
1120
- status: import("hono/utils/http-status").ContentfulStatusCode;
1121
- };
1122
- };
1123
- } & {
1124
- "/gateway/run": {
1125
- $get: {
1126
- input: {
1127
- query: {
1128
- "no-caffeine"?: string | undefined;
1129
- };
1130
- };
1131
- output: string;
1132
- outputFormat: "text";
1133
- status: import("hono/utils/http-status").ContentfulStatusCode;
1134
- } | {
1135
- input: {
1136
- query: {
1137
- "no-caffeine"?: string | undefined;
1138
- };
1139
- };
1140
- output: Promise<never>;
1141
- outputFormat: "json";
1142
- status: import("hono/utils/http-status").StatusCode;
1143
- };
1144
- };
1145
- } & {
1146
- "/gateway/logs": {
1147
- $get: {
1148
- input: {
1149
- query: {
1150
- n?: string | undefined;
1151
- };
1152
- };
1153
- output: string;
1154
- outputFormat: "text";
1155
- status: import("hono/utils/http-status").ContentfulStatusCode;
1156
- } | {
1157
- input: {
1158
- query: {
1159
- n?: string | undefined;
1160
- };
1161
- };
1162
- output: "no logs";
1163
- outputFormat: "text";
1164
- status: import("hono/utils/http-status").ContentfulStatusCode;
1165
- };
1166
- };
1167
- } & {
1168
- "/gateway/listeners": {
1169
- $get: {
1170
- input: {
1171
- query: Record<string, never>;
1172
- };
1173
- output: string;
1174
- outputFormat: "text";
1175
- status: import("hono/utils/http-status").ContentfulStatusCode;
1176
- } | {
1177
- input: {
1178
- query: Record<string, never>;
1179
- };
1180
- output: "funnel gateway: no running listeners";
1181
- outputFormat: "text";
1182
- status: import("hono/utils/http-status").ContentfulStatusCode;
1183
- } | {
1184
- input: {
1185
- query: Record<string, never>;
1186
- };
1187
- output: `funnel gateway: running listeners
1188
- ${string}`;
1189
- outputFormat: "text";
1190
- status: import("hono/utils/http-status").ContentfulStatusCode;
1191
- };
1192
- };
1193
- } & {
1194
- "/status": {
1195
- $get: {
1196
- input: {
1197
- query: Record<string, never>;
1198
- };
1199
- output: string;
1200
- outputFormat: "text";
1201
- status: import("hono/utils/http-status").ContentfulStatusCode;
1202
- };
1203
- };
1204
- } & {
1205
- "/update": {
1206
- $get: {
1207
- input: {
1208
- query: Record<string, never>;
1209
- };
1210
- output: string;
1211
- outputFormat: "text";
1212
- status: import("hono/utils/http-status").ContentfulStatusCode;
1213
- } | {
1214
- input: {
1215
- query: Record<string, never>;
1216
- };
1217
- output: "updated @interactive-inc/claude-funnel";
1218
- outputFormat: "text";
1219
- status: import("hono/utils/http-status").ContentfulStatusCode;
1220
- };
1221
- };
1222
- }, "/", "/update">;