heyio 3.3.5 → 4.0.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 (289) hide show
  1. package/CODE_OF_CONDUCT.md +83 -0
  2. package/LICENSE +21 -0
  3. package/README.md +203 -151
  4. package/dist/daemon/cli.js +7153 -0
  5. package/dist/daemon/index.js +6421 -0
  6. package/dist/web/assets/index-CbptHIYU.js +520 -0
  7. package/{public → dist/web}/index.html +1 -1
  8. package/package.json +45 -48
  9. package/dist/api/middleware/auth.d.ts +0 -14
  10. package/dist/api/middleware/auth.d.ts.map +0 -1
  11. package/dist/api/middleware/auth.js +0 -130
  12. package/dist/api/middleware/auth.js.map +0 -1
  13. package/dist/api/notifications.d.ts +0 -14
  14. package/dist/api/notifications.d.ts.map +0 -1
  15. package/dist/api/notifications.js +0 -114
  16. package/dist/api/notifications.js.map +0 -1
  17. package/dist/api/routes/activity.d.ts +0 -3
  18. package/dist/api/routes/activity.d.ts.map +0 -1
  19. package/dist/api/routes/activity.js +0 -28
  20. package/dist/api/routes/activity.js.map +0 -1
  21. package/dist/api/routes/attachments.d.ts +0 -3
  22. package/dist/api/routes/attachments.d.ts.map +0 -1
  23. package/dist/api/routes/attachments.js +0 -83
  24. package/dist/api/routes/attachments.js.map +0 -1
  25. package/dist/api/routes/config.d.ts +0 -3
  26. package/dist/api/routes/config.d.ts.map +0 -1
  27. package/dist/api/routes/config.js +0 -107
  28. package/dist/api/routes/config.js.map +0 -1
  29. package/dist/api/routes/conversations.d.ts +0 -3
  30. package/dist/api/routes/conversations.d.ts.map +0 -1
  31. package/dist/api/routes/conversations.js +0 -25
  32. package/dist/api/routes/conversations.js.map +0 -1
  33. package/dist/api/routes/health.d.ts +0 -3
  34. package/dist/api/routes/health.d.ts.map +0 -1
  35. package/dist/api/routes/health.js +0 -39
  36. package/dist/api/routes/health.js.map +0 -1
  37. package/dist/api/routes/inbox.d.ts +0 -3
  38. package/dist/api/routes/inbox.d.ts.map +0 -1
  39. package/dist/api/routes/inbox.js +0 -139
  40. package/dist/api/routes/inbox.js.map +0 -1
  41. package/dist/api/routes/schedules.d.ts +0 -3
  42. package/dist/api/routes/schedules.d.ts.map +0 -1
  43. package/dist/api/routes/schedules.js +0 -116
  44. package/dist/api/routes/schedules.js.map +0 -1
  45. package/dist/api/routes/skills.d.ts +0 -2
  46. package/dist/api/routes/skills.d.ts.map +0 -1
  47. package/dist/api/routes/skills.js +0 -127
  48. package/dist/api/routes/skills.js.map +0 -1
  49. package/dist/api/routes/squads.d.ts +0 -3
  50. package/dist/api/routes/squads.d.ts.map +0 -1
  51. package/dist/api/routes/squads.js +0 -578
  52. package/dist/api/routes/squads.js.map +0 -1
  53. package/dist/api/routes/usage.d.ts +0 -3
  54. package/dist/api/routes/usage.d.ts.map +0 -1
  55. package/dist/api/routes/usage.js +0 -55
  56. package/dist/api/routes/usage.js.map +0 -1
  57. package/dist/api/routes/wiki.d.ts +0 -2
  58. package/dist/api/routes/wiki.d.ts.map +0 -1
  59. package/dist/api/routes/wiki.js +0 -75
  60. package/dist/api/routes/wiki.js.map +0 -1
  61. package/dist/api/server.d.ts +0 -7
  62. package/dist/api/server.d.ts.map +0 -1
  63. package/dist/api/server.js +0 -183
  64. package/dist/api/server.js.map +0 -1
  65. package/dist/config.d.ts +0 -3
  66. package/dist/config.d.ts.map +0 -1
  67. package/dist/config.js +0 -3
  68. package/dist/config.js.map +0 -1
  69. package/dist/copilot/client.d.ts +0 -5
  70. package/dist/copilot/client.d.ts.map +0 -1
  71. package/dist/copilot/client.js +0 -38
  72. package/dist/copilot/client.js.map +0 -1
  73. package/dist/copilot/health-monitor.d.ts +0 -14
  74. package/dist/copilot/health-monitor.d.ts.map +0 -1
  75. package/dist/copilot/health-monitor.js +0 -70
  76. package/dist/copilot/health-monitor.js.map +0 -1
  77. package/dist/copilot/orchestrator.d.ts +0 -5
  78. package/dist/copilot/orchestrator.d.ts.map +0 -1
  79. package/dist/copilot/orchestrator.js +0 -227
  80. package/dist/copilot/orchestrator.js.map +0 -1
  81. package/dist/copilot/tools.d.ts +0 -80
  82. package/dist/copilot/tools.d.ts.map +0 -1
  83. package/dist/copilot/tools.js +0 -1067
  84. package/dist/copilot/tools.js.map +0 -1
  85. package/dist/index.d.ts +0 -3
  86. package/dist/index.d.ts.map +0 -1
  87. package/dist/index.js +0 -94
  88. package/dist/index.js.map +0 -1
  89. package/dist/logging/logger.d.ts +0 -6
  90. package/dist/logging/logger.d.ts.map +0 -1
  91. package/dist/logging/logger.js +0 -33
  92. package/dist/logging/logger.js.map +0 -1
  93. package/dist/models/index.d.ts +0 -6
  94. package/dist/models/index.d.ts.map +0 -1
  95. package/dist/models/index.js +0 -4
  96. package/dist/models/index.js.map +0 -1
  97. package/dist/models/pricing.d.ts +0 -25
  98. package/dist/models/pricing.d.ts.map +0 -1
  99. package/dist/models/pricing.js +0 -96
  100. package/dist/models/pricing.js.map +0 -1
  101. package/dist/models/registry.d.ts +0 -34
  102. package/dist/models/registry.d.ts.map +0 -1
  103. package/dist/models/registry.js +0 -109
  104. package/dist/models/registry.js.map +0 -1
  105. package/dist/models/token-tracker.d.ts +0 -41
  106. package/dist/models/token-tracker.d.ts.map +0 -1
  107. package/dist/models/token-tracker.js +0 -103
  108. package/dist/models/token-tracker.js.map +0 -1
  109. package/dist/scheduler/engine.d.ts +0 -12
  110. package/dist/scheduler/engine.d.ts.map +0 -1
  111. package/dist/scheduler/engine.js +0 -128
  112. package/dist/scheduler/engine.js.map +0 -1
  113. package/dist/skills/discover.d.ts +0 -22
  114. package/dist/skills/discover.d.ts.map +0 -1
  115. package/dist/skills/discover.js +0 -228
  116. package/dist/skills/discover.js.map +0 -1
  117. package/dist/skills/index.d.ts +0 -5
  118. package/dist/skills/index.d.ts.map +0 -1
  119. package/dist/skills/index.js +0 -3
  120. package/dist/skills/index.js.map +0 -1
  121. package/dist/skills/store.d.ts +0 -56
  122. package/dist/skills/store.d.ts.map +0 -1
  123. package/dist/skills/store.js +0 -154
  124. package/dist/skills/store.js.map +0 -1
  125. package/dist/squad/agent.d.ts +0 -65
  126. package/dist/squad/agent.d.ts.map +0 -1
  127. package/dist/squad/agent.js +0 -544
  128. package/dist/squad/agent.js.map +0 -1
  129. package/dist/squad/autonomy.d.ts +0 -16
  130. package/dist/squad/autonomy.d.ts.map +0 -1
  131. package/dist/squad/autonomy.js +0 -63
  132. package/dist/squad/autonomy.js.map +0 -1
  133. package/dist/squad/event-bus.d.ts +0 -22
  134. package/dist/squad/event-bus.d.ts.map +0 -1
  135. package/dist/squad/event-bus.js +0 -56
  136. package/dist/squad/event-bus.js.map +0 -1
  137. package/dist/squad/execution/index.d.ts +0 -14
  138. package/dist/squad/execution/index.d.ts.map +0 -1
  139. package/dist/squad/execution/index.js +0 -8
  140. package/dist/squad/execution/index.js.map +0 -1
  141. package/dist/squad/execution/instance.d.ts +0 -45
  142. package/dist/squad/execution/instance.d.ts.map +0 -1
  143. package/dist/squad/execution/instance.js +0 -171
  144. package/dist/squad/execution/instance.js.map +0 -1
  145. package/dist/squad/execution/planning.d.ts +0 -20
  146. package/dist/squad/execution/planning.d.ts.map +0 -1
  147. package/dist/squad/execution/planning.js +0 -62
  148. package/dist/squad/execution/planning.js.map +0 -1
  149. package/dist/squad/execution/pr.d.ts +0 -15
  150. package/dist/squad/execution/pr.d.ts.map +0 -1
  151. package/dist/squad/execution/pr.js +0 -109
  152. package/dist/squad/execution/pr.js.map +0 -1
  153. package/dist/squad/execution/review.d.ts +0 -21
  154. package/dist/squad/execution/review.d.ts.map +0 -1
  155. package/dist/squad/execution/review.js +0 -151
  156. package/dist/squad/execution/review.js.map +0 -1
  157. package/dist/squad/execution/runner.d.ts +0 -52
  158. package/dist/squad/execution/runner.d.ts.map +0 -1
  159. package/dist/squad/execution/runner.js +0 -93
  160. package/dist/squad/execution/runner.js.map +0 -1
  161. package/dist/squad/execution/tasks.d.ts +0 -22
  162. package/dist/squad/execution/tasks.d.ts.map +0 -1
  163. package/dist/squad/execution/tasks.js +0 -108
  164. package/dist/squad/execution/tasks.js.map +0 -1
  165. package/dist/squad/execution/worktree.d.ts +0 -27
  166. package/dist/squad/execution/worktree.d.ts.map +0 -1
  167. package/dist/squad/execution/worktree.js +0 -141
  168. package/dist/squad/execution/worktree.js.map +0 -1
  169. package/dist/squad/hiring.d.ts +0 -57
  170. package/dist/squad/hiring.d.ts.map +0 -1
  171. package/dist/squad/hiring.js +0 -588
  172. package/dist/squad/hiring.js.map +0 -1
  173. package/dist/squad/index.d.ts +0 -8
  174. package/dist/squad/index.d.ts.map +0 -1
  175. package/dist/squad/index.js +0 -6
  176. package/dist/squad/index.js.map +0 -1
  177. package/dist/squad/manager.d.ts +0 -58
  178. package/dist/squad/manager.d.ts.map +0 -1
  179. package/dist/squad/manager.js +0 -351
  180. package/dist/squad/manager.js.map +0 -1
  181. package/dist/squad/model-selector.d.ts +0 -29
  182. package/dist/squad/model-selector.d.ts.map +0 -1
  183. package/dist/squad/model-selector.js +0 -64
  184. package/dist/squad/model-selector.js.map +0 -1
  185. package/dist/squad/name-generator.d.ts +0 -16
  186. package/dist/squad/name-generator.d.ts.map +0 -1
  187. package/dist/squad/name-generator.js +0 -111
  188. package/dist/squad/name-generator.js.map +0 -1
  189. package/dist/squad/roles/templates.d.ts +0 -7
  190. package/dist/squad/roles/templates.d.ts.map +0 -1
  191. package/dist/squad/roles/templates.js +0 -104
  192. package/dist/squad/roles/templates.js.map +0 -1
  193. package/dist/squad/skill-parser.d.ts +0 -36
  194. package/dist/squad/skill-parser.d.ts.map +0 -1
  195. package/dist/squad/skill-parser.js +0 -90
  196. package/dist/squad/skill-parser.js.map +0 -1
  197. package/dist/squad/source-resolver.d.ts +0 -20
  198. package/dist/squad/source-resolver.d.ts.map +0 -1
  199. package/dist/squad/source-resolver.js +0 -51
  200. package/dist/squad/source-resolver.js.map +0 -1
  201. package/dist/store/activity.d.ts +0 -51
  202. package/dist/store/activity.d.ts.map +0 -1
  203. package/dist/store/activity.js +0 -197
  204. package/dist/store/activity.js.map +0 -1
  205. package/dist/store/conversations.d.ts +0 -25
  206. package/dist/store/conversations.d.ts.map +0 -1
  207. package/dist/store/conversations.js +0 -76
  208. package/dist/store/conversations.js.map +0 -1
  209. package/dist/store/db.d.ts +0 -5
  210. package/dist/store/db.d.ts.map +0 -1
  211. package/dist/store/db.js +0 -290
  212. package/dist/store/db.js.map +0 -1
  213. package/dist/store/inbox.d.ts +0 -67
  214. package/dist/store/inbox.d.ts.map +0 -1
  215. package/dist/store/inbox.js +0 -192
  216. package/dist/store/inbox.js.map +0 -1
  217. package/dist/store/schedules.d.ts +0 -53
  218. package/dist/store/schedules.d.ts.map +0 -1
  219. package/dist/store/schedules.js +0 -160
  220. package/dist/store/schedules.js.map +0 -1
  221. package/dist/wiki/index.d.ts +0 -3
  222. package/dist/wiki/index.d.ts.map +0 -1
  223. package/dist/wiki/index.js +0 -2
  224. package/dist/wiki/index.js.map +0 -1
  225. package/dist/wiki/store.d.ts +0 -81
  226. package/dist/wiki/store.d.ts.map +0 -1
  227. package/dist/wiki/store.js +0 -270
  228. package/dist/wiki/store.js.map +0 -1
  229. package/node_modules/@io/shared/dist/config.d.ts +0 -26
  230. package/node_modules/@io/shared/dist/config.d.ts.map +0 -1
  231. package/node_modules/@io/shared/dist/config.js +0 -53
  232. package/node_modules/@io/shared/dist/config.js.map +0 -1
  233. package/node_modules/@io/shared/dist/constants.d.ts +0 -19
  234. package/node_modules/@io/shared/dist/constants.d.ts.map +0 -1
  235. package/node_modules/@io/shared/dist/constants.js +0 -51
  236. package/node_modules/@io/shared/dist/constants.js.map +0 -1
  237. package/node_modules/@io/shared/dist/index.d.ts +0 -12
  238. package/node_modules/@io/shared/dist/index.d.ts.map +0 -1
  239. package/node_modules/@io/shared/dist/index.js +0 -3
  240. package/node_modules/@io/shared/dist/index.js.map +0 -1
  241. package/node_modules/@io/shared/dist/types/agents.d.ts +0 -3
  242. package/node_modules/@io/shared/dist/types/agents.d.ts.map +0 -1
  243. package/node_modules/@io/shared/dist/types/agents.js +0 -2
  244. package/node_modules/@io/shared/dist/types/agents.js.map +0 -1
  245. package/node_modules/@io/shared/dist/types/api.d.ts +0 -33
  246. package/node_modules/@io/shared/dist/types/api.d.ts.map +0 -1
  247. package/node_modules/@io/shared/dist/types/api.js +0 -2
  248. package/node_modules/@io/shared/dist/types/api.js.map +0 -1
  249. package/node_modules/@io/shared/dist/types/attachments.d.ts +0 -10
  250. package/node_modules/@io/shared/dist/types/attachments.d.ts.map +0 -1
  251. package/node_modules/@io/shared/dist/types/attachments.js +0 -2
  252. package/node_modules/@io/shared/dist/types/attachments.js.map +0 -1
  253. package/node_modules/@io/shared/dist/types/events.d.ts +0 -44
  254. package/node_modules/@io/shared/dist/types/events.d.ts.map +0 -1
  255. package/node_modules/@io/shared/dist/types/events.js +0 -2
  256. package/node_modules/@io/shared/dist/types/events.js.map +0 -1
  257. package/node_modules/@io/shared/dist/types/history.d.ts +0 -33
  258. package/node_modules/@io/shared/dist/types/history.d.ts.map +0 -1
  259. package/node_modules/@io/shared/dist/types/history.js +0 -2
  260. package/node_modules/@io/shared/dist/types/history.js.map +0 -1
  261. package/node_modules/@io/shared/dist/types/messages.d.ts +0 -15
  262. package/node_modules/@io/shared/dist/types/messages.d.ts.map +0 -1
  263. package/node_modules/@io/shared/dist/types/messages.js +0 -2
  264. package/node_modules/@io/shared/dist/types/messages.js.map +0 -1
  265. package/node_modules/@io/shared/dist/types/squads.d.ts +0 -46
  266. package/node_modules/@io/shared/dist/types/squads.d.ts.map +0 -1
  267. package/node_modules/@io/shared/dist/types/squads.js +0 -2
  268. package/node_modules/@io/shared/dist/types/squads.js.map +0 -1
  269. package/node_modules/@io/shared/dist/types/tokens.d.ts +0 -19
  270. package/node_modules/@io/shared/dist/types/tokens.d.ts.map +0 -1
  271. package/node_modules/@io/shared/dist/types/tokens.js +0 -2
  272. package/node_modules/@io/shared/dist/types/tokens.js.map +0 -1
  273. package/node_modules/@io/shared/package.json +0 -18
  274. package/node_modules/@io/shared/src/config.ts +0 -85
  275. package/node_modules/@io/shared/src/constants.ts +0 -54
  276. package/node_modules/@io/shared/src/index.ts +0 -46
  277. package/node_modules/@io/shared/src/types/agents.ts +0 -3
  278. package/node_modules/@io/shared/src/types/api.ts +0 -35
  279. package/node_modules/@io/shared/src/types/attachments.ts +0 -9
  280. package/node_modules/@io/shared/src/types/events.ts +0 -86
  281. package/node_modules/@io/shared/src/types/history.ts +0 -37
  282. package/node_modules/@io/shared/src/types/messages.ts +0 -15
  283. package/node_modules/@io/shared/src/types/squads.ts +0 -56
  284. package/node_modules/@io/shared/src/types/tokens.ts +0 -19
  285. package/node_modules/@io/shared/tsconfig.json +0 -9
  286. package/node_modules/@io/shared/tsconfig.tsbuildinfo +0 -1
  287. package/public/assets/index-BywBQCtu.js +0 -510
  288. package/public/assets/index-BywBQCtu.js.map +0 -1
  289. /package/{public → dist/web}/assets/index-B6F0UZkW.css +0 -0
@@ -1,55 +0,0 @@
1
- import { Router } from 'express';
2
- import { getAllPricing, queryUsage, refreshPricing } from '../../models/index.js';
3
- export function usageRouter() {
4
- const router = Router();
5
- /**
6
- * GET /api/usage
7
- * Query token usage with optional filters.
8
- * Query params: squadId, agentRole, model, since, until
9
- */
10
- router.get('/usage', async (req, res) => {
11
- try {
12
- const filters = {
13
- squadId: req.query.squadId,
14
- agentRole: req.query.agentRole,
15
- model: req.query.model,
16
- since: req.query.since,
17
- until: req.query.until,
18
- };
19
- const result = await queryUsage(filters);
20
- res.json(result);
21
- }
22
- catch (err) {
23
- res.status(500).json({ error: 'Failed to query usage' });
24
- }
25
- });
26
- /**
27
- * GET /api/usage/pricing
28
- * Get current model pricing.
29
- */
30
- router.get('/usage/pricing', async (_req, res) => {
31
- try {
32
- const pricing = await getAllPricing();
33
- res.json({ pricing });
34
- }
35
- catch (err) {
36
- res.status(500).json({ error: 'Failed to get pricing' });
37
- }
38
- });
39
- /**
40
- * POST /api/usage/pricing/refresh
41
- * Trigger a pricing refresh.
42
- */
43
- router.post('/usage/pricing/refresh', async (_req, res) => {
44
- try {
45
- await refreshPricing();
46
- const pricing = await getAllPricing();
47
- res.json({ message: 'Pricing refreshed', pricing });
48
- }
49
- catch (err) {
50
- res.status(500).json({ error: 'Failed to refresh pricing' });
51
- }
52
- });
53
- return router;
54
- }
55
- //# sourceMappingURL=usage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usage.js","sourceRoot":"","sources":["../../../src/api/routes/usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAElF,MAAM,UAAU,WAAW;IAC1B,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;IAExB;;;;OAIG;IACH,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACvC,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG;gBACf,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAA6B;gBAChD,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,SAA+B;gBACpD,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,KAA2B;gBAC5C,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,KAA2B;gBAC5C,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,KAA2B;aAC5C,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;YACzC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;QAC1D,CAAC;IACF,CAAC,CAAC,CAAC;IAEH;;;OAGG;IACH,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QAChD,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,MAAM,aAAa,EAAE,CAAC;YACtC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;QAC1D,CAAC;IACF,CAAC,CAAC,CAAC;IAEH;;;OAGG;IACH,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QACzD,IAAI,CAAC;YACJ,MAAM,cAAc,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,MAAM,aAAa,EAAE,CAAC;YACtC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC,CAAC;QAC9D,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AACf,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare const wikiRouter: import("express-serve-static-core").Router;
2
- //# sourceMappingURL=wiki.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wiki.d.ts","sourceRoot":"","sources":["../../../src/api/routes/wiki.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,UAAU,4CAAW,CAAC"}
@@ -1,75 +0,0 @@
1
- import { Router } from 'express';
2
- import { deleteWikiDirectory, deleteWikiPage, listAllWikiPages, listWikiPages, readWikiPage, searchWiki, writeWikiPage } from '../../wiki/index.js';
3
- export const wikiRouter = Router();
4
- // List ALL pages across all scopes
5
- wikiRouter.get('/all', (_req, res) => {
6
- const pages = listAllWikiPages();
7
- res.json({ pages });
8
- });
9
- // Delete a directory (must come before /:scope/*page to avoid conflict)
10
- wikiRouter.delete('/dir/*path', (req, res) => {
11
- const dirPath = Array.isArray(req.params.path) ? req.params.path.join('/') : req.params.path;
12
- if (!dirPath) {
13
- res.status(400).json({ error: 'Directory path is required' });
14
- return;
15
- }
16
- const deleted = deleteWikiDirectory(dirPath);
17
- if (!deleted) {
18
- res.status(400).json({ error: `Cannot delete '${dirPath}' — protected or not found` });
19
- return;
20
- }
21
- res.json({ status: 'ok' });
22
- });
23
- // List pages in a scope
24
- wikiRouter.get('/:scope', (req, res) => {
25
- const { scope } = req.params;
26
- const pages = listWikiPages(scope);
27
- res.json({ scope, pages });
28
- });
29
- // Read a specific page (supports nested paths like subdir/page)
30
- wikiRouter.get('/:scope/*page', (req, res) => {
31
- const scope = req.params.scope;
32
- const page = Array.isArray(req.params.page) ? req.params.page.join('/') : req.params.page;
33
- const result = readWikiPage(scope, page);
34
- if (!result) {
35
- res.status(404).json({ error: `Page '${page}' not found in '${scope}' wiki` });
36
- return;
37
- }
38
- res.json(result);
39
- });
40
- // Write (create/overwrite) a page (supports nested paths)
41
- wikiRouter.put('/:scope/*page', (req, res) => {
42
- const scope = req.params.scope;
43
- const page = Array.isArray(req.params.page) ? req.params.page.join('/') : req.params.page;
44
- const { content } = req.body;
45
- if (!content || typeof content !== 'string') {
46
- res.status(400).json({ error: 'Body must include "content" (string)' });
47
- return;
48
- }
49
- const result = writeWikiPage(scope, page, content);
50
- res.json(result);
51
- });
52
- // Delete a page (supports nested paths)
53
- wikiRouter.delete('/:scope/*page', (req, res) => {
54
- const scope = req.params.scope;
55
- const page = Array.isArray(req.params.page) ? req.params.page.join('/') : req.params.page;
56
- const deleted = deleteWikiPage(scope, page);
57
- if (!deleted) {
58
- res.status(404).json({ error: `Page '${page}' not found in '${scope}' wiki` });
59
- return;
60
- }
61
- res.json({ status: 'ok' });
62
- });
63
- // Search across scopes
64
- wikiRouter.get('/', (req, res) => {
65
- const keyword = req.query.q;
66
- const scopesParam = req.query.scopes;
67
- if (!keyword) {
68
- res.status(400).json({ error: 'Query parameter "q" is required' });
69
- return;
70
- }
71
- const scopes = scopesParam ? scopesParam.split(',') : ['io', 'shared'];
72
- const results = searchWiki(keyword, scopes);
73
- res.json({ keyword, results });
74
- });
75
- //# sourceMappingURL=wiki.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wiki.js","sourceRoot":"","sources":["../../../src/api/routes/wiki.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import type { IOConfig } from '../config.js';
2
- export interface ApiServer {
3
- start(): Promise<void>;
4
- stop(): Promise<void>;
5
- }
6
- export declare function createApiServer(config: IOConfig): ApiServer;
7
- //# sourceMappingURL=server.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/api/server.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAiB7C,MAAM,WAAW,SAAS;IACzB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACtB;AASD,wBAAgB,eAAe,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAuL3D"}
@@ -1,183 +0,0 @@
1
- import { existsSync } from 'node:fs';
2
- import { createServer } from 'node:http';
3
- import { join, resolve } from 'node:path';
4
- import { fileURLToPath } from 'node:url';
5
- import express from 'express';
6
- import { WebSocketServer } from 'ws';
7
- import { sendMessage } from '../copilot/orchestrator.js';
8
- import { createChildLogger } from '../logging/logger.js';
9
- import { authMiddleware, verifyWsToken } from './middleware/auth.js';
10
- import { initNotifications, subscribeClient, unsubscribeClient } from './notifications.js';
11
- import { activityRouter } from './routes/activity.js';
12
- import { attachmentsRouter } from './routes/attachments.js';
13
- import { configRouter } from './routes/config.js';
14
- import { conversationsRouter } from './routes/conversations.js';
15
- import { healthRouter } from './routes/health.js';
16
- import { inboxRouter } from './routes/inbox.js';
17
- import { schedulesRouter } from './routes/schedules.js';
18
- import { skillsRouter } from './routes/skills.js';
19
- import { squadsRouter } from './routes/squads.js';
20
- import { usageRouter } from './routes/usage.js';
21
- import { wikiRouter } from './routes/wiki.js';
22
- // Connected WebSocket clients keyed by connection ID
23
- const wsClients = new Map();
24
- // Track which clients are alive (responded to last ping)
25
- const wsAlive = new Map();
26
- const PING_INTERVAL_MS = 30_000; // 30 seconds — keeps Cloudflare Tunnel alive
27
- export function createApiServer(config) {
28
- const logger = createChildLogger('api');
29
- const app = express();
30
- app.use(express.json());
31
- // Auth middleware — verifies Supabase JWT if configured
32
- app.use('/api', authMiddleware(config));
33
- // Routes
34
- app.use('/api', healthRouter());
35
- app.use('/api', usageRouter());
36
- app.use('/api', squadsRouter());
37
- app.use('/api', activityRouter());
38
- app.use('/api', attachmentsRouter(config.dataDir));
39
- app.use('/api', inboxRouter());
40
- app.use('/api', schedulesRouter());
41
- app.use('/api', conversationsRouter());
42
- app.use('/api', configRouter());
43
- app.use('/api/wiki', wikiRouter);
44
- app.use('/api', skillsRouter);
45
- // POST /api/messages — send a message to the orchestrator
46
- app.post('/api/messages', async (req, res) => {
47
- const { content, source, connectionId } = req.body;
48
- if (!content) {
49
- res.status(400).json({ error: 'content is required' });
50
- return;
51
- }
52
- const ws = connectionId ? wsClients.get(connectionId) : undefined;
53
- const onDelta = (accumulated, done) => {
54
- if (ws && ws.readyState === ws.OPEN) {
55
- ws.send(JSON.stringify({
56
- type: done ? 'message' : 'delta',
57
- content: accumulated,
58
- }));
59
- }
60
- };
61
- try {
62
- const response = await sendMessage(content, source ?? 'web', onDelta);
63
- res.json({ status: 'ok', content: response });
64
- }
65
- catch (err) {
66
- logger.error({ err }, 'Error processing message');
67
- res.status(500).json({ error: 'Failed to process message' });
68
- }
69
- });
70
- // Serve web frontend static files (production build)
71
- const __dirname = fileURLToPath(new URL('.', import.meta.url));
72
- const webDistPath = resolve(__dirname, '../../public');
73
- if (existsSync(webDistPath)) {
74
- app.use(express.static(webDistPath));
75
- // SPA fallback: serve index.html for any non-API route
76
- app.get('/{*splat}', (_req, res) => {
77
- res.sendFile(join(webDistPath, 'index.html'));
78
- });
79
- logger.info({ path: webDistPath }, 'Serving web frontend');
80
- }
81
- else {
82
- logger.warn({ path: webDistPath }, 'Web frontend not found');
83
- }
84
- const server = createServer(app);
85
- // WebSocket server for streaming
86
- const wss = new WebSocketServer({ server, path: '/ws' });
87
- wss.on('connection', async (ws, req) => {
88
- // Verify token from query string if auth is configured
89
- const url = new URL(req.url ?? '', `http://${req.headers.host}`);
90
- const token = url.searchParams.get('token');
91
- if (!(await verifyWsToken(config, token))) {
92
- ws.close(4001, 'Unauthorized');
93
- return;
94
- }
95
- const connectionId = crypto.randomUUID();
96
- wsClients.set(connectionId, ws);
97
- wsAlive.set(connectionId, true);
98
- subscribeClient(connectionId, ws);
99
- logger.debug({ connectionId }, 'WebSocket client connected');
100
- // Send the connection ID to the client
101
- ws.send(JSON.stringify({ type: 'connected', connectionId }));
102
- // Mark alive on pong response
103
- ws.on('pong', () => {
104
- wsAlive.set(connectionId, true);
105
- });
106
- ws.on('message', (data) => {
107
- try {
108
- const parsed = JSON.parse(data.toString());
109
- if (parsed.type === 'message' && parsed.content) {
110
- const source = parsed.source ?? 'tui';
111
- const onDelta = (accumulated, done) => {
112
- if (ws.readyState === ws.OPEN) {
113
- ws.send(JSON.stringify({
114
- type: done ? 'message' : 'delta',
115
- content: accumulated,
116
- }));
117
- }
118
- };
119
- sendMessage(parsed.content, source, onDelta).catch((err) => {
120
- logger.error({ err }, 'Error processing WebSocket message');
121
- if (ws.readyState === ws.OPEN) {
122
- ws.send(JSON.stringify({ type: 'error', content: 'Failed to process message' }));
123
- }
124
- });
125
- }
126
- }
127
- catch (err) {
128
- logger.error({ err }, 'Failed to parse WebSocket message');
129
- }
130
- });
131
- ws.on('close', () => {
132
- wsClients.delete(connectionId);
133
- wsAlive.delete(connectionId);
134
- unsubscribeClient(connectionId);
135
- logger.debug({ connectionId }, 'WebSocket client disconnected');
136
- });
137
- });
138
- // Ping all clients periodically to keep Cloudflare Tunnel connections alive
139
- // and detect dead clients
140
- const pingInterval = setInterval(() => {
141
- for (const [id, ws] of wsClients) {
142
- if (!wsAlive.get(id)) {
143
- // Client didn't respond to last ping — terminate
144
- logger.debug({ connectionId: id }, 'Terminating unresponsive WebSocket client');
145
- ws.terminate();
146
- wsClients.delete(id);
147
- wsAlive.delete(id);
148
- unsubscribeClient(id);
149
- continue;
150
- }
151
- wsAlive.set(id, false);
152
- ws.ping();
153
- }
154
- }, PING_INTERVAL_MS);
155
- return {
156
- async start() {
157
- return new Promise((resolve) => {
158
- server.listen(config.apiPort, () => {
159
- logger.info({ port: config.apiPort }, 'API server listening');
160
- resolve();
161
- });
162
- });
163
- },
164
- async stop() {
165
- clearInterval(pingInterval);
166
- return new Promise((resolve, reject) => {
167
- for (const ws of wsClients.values()) {
168
- ws.close();
169
- }
170
- wsClients.clear();
171
- wsAlive.clear();
172
- wss.close();
173
- server.close((err) => {
174
- if (err)
175
- reject(err);
176
- else
177
- resolve();
178
- });
179
- });
180
- },
181
- };
182
- }
183
- //# sourceMappingURL=server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/api/server.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts DELETED
@@ -1,3 +0,0 @@
1
- export { loadConfig } from '@io/shared';
2
- export type { IOConfig } from '@io/shared';
3
- //# sourceMappingURL=config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
package/dist/config.js DELETED
@@ -1,3 +0,0 @@
1
- // Re-export shared config loader
2
- export { loadConfig } from '@io/shared';
3
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
@@ -1,5 +0,0 @@
1
- import { CopilotClient } from '@github/copilot-sdk';
2
- export declare function getClient(): Promise<CopilotClient>;
3
- export declare function resetClient(): Promise<void>;
4
- export declare function stopClient(): Promise<void>;
5
- //# sourceMappingURL=client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/copilot/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAcpD,wBAAsB,SAAS,IAAI,OAAO,CAAC,aAAa,CAAC,CAOxD;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAUjD;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAMhD"}
@@ -1,38 +0,0 @@
1
- import { CopilotClient } from '@github/copilot-sdk';
2
- import { createChildLogger } from '../logging/logger.js';
3
- let client;
4
- let logger;
5
- function getLogger() {
6
- if (!logger) {
7
- logger = createChildLogger('copilot-client');
8
- }
9
- return logger;
10
- }
11
- export async function getClient() {
12
- if (!client) {
13
- client = new CopilotClient();
14
- await client.start();
15
- getLogger().info('Copilot client started');
16
- }
17
- return client;
18
- }
19
- export async function resetClient() {
20
- if (client) {
21
- getLogger().warn('Resetting Copilot client');
22
- try {
23
- await client.stop();
24
- }
25
- catch (err) {
26
- getLogger().error({ err }, 'Error stopping client during reset');
27
- }
28
- client = undefined;
29
- }
30
- }
31
- export async function stopClient() {
32
- if (client) {
33
- await client.stop();
34
- client = undefined;
35
- getLogger().info('Copilot client stopped');
36
- }
37
- }
38
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/copilot/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,IAAI,MAAiC,CAAC;AACtC,IAAI,MAAc,CAAC;AAEnB,SAAS,SAAS;IACjB,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,MAAM,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS;IAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAC7B,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,SAAS,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW;IAChC,IAAI,MAAM,EAAE,CAAC;QACZ,SAAS,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAC7C,IAAI,CAAC;YACJ,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACrB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,SAAS,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,oCAAoC,CAAC,CAAC;QAClE,CAAC;QACD,MAAM,GAAG,SAAS,CAAC;IACpB,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU;IAC/B,IAAI,MAAM,EAAE,CAAC;QACZ,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,MAAM,GAAG,SAAS,CAAC;QACnB,SAAS,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;AACF,CAAC"}
@@ -1,14 +0,0 @@
1
- export interface HealthStatus {
2
- status: 'healthy' | 'degraded' | 'unhealthy';
3
- uptime: number;
4
- copilotConnected: boolean;
5
- lastCheck: Date;
6
- }
7
- /**
8
- * Start periodic health monitoring of the Copilot SDK connection.
9
- * Attempts reconnect if connection is lost.
10
- */
11
- export declare function startHealthMonitor(intervalMs?: number): void;
12
- export declare function stopHealthMonitor(): void;
13
- export declare function getHealthStatus(): HealthStatus;
14
- //# sourceMappingURL=health-monitor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"health-monitor.d.ts","sourceRoot":"","sources":["../../src/copilot/health-monitor.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,OAAO,CAAC;IAC1B,SAAS,EAAE,IAAI,CAAC;CAChB;AASD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,SAAS,GAAG,IAAI,CAS5D;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAKxC;AAED,wBAAgB,eAAe,IAAI,YAAY,CAK9C"}
@@ -1,70 +0,0 @@
1
- import { createChildLogger } from '../logging/logger.js';
2
- import { getClient, resetClient } from './client.js';
3
- const logger = () => createChildLogger('health-monitor');
4
- let healthCheckInterval = null;
5
- let startTime = Date.now();
6
- let lastStatus = {
7
- status: 'healthy',
8
- uptime: 0,
9
- copilotConnected: false,
10
- lastCheck: new Date(),
11
- };
12
- /**
13
- * Start periodic health monitoring of the Copilot SDK connection.
14
- * Attempts reconnect if connection is lost.
15
- */
16
- export function startHealthMonitor(intervalMs = 30_000) {
17
- startTime = Date.now();
18
- healthCheckInterval = setInterval(async () => {
19
- await checkHealth();
20
- }, intervalMs);
21
- // Initial check
22
- checkHealth();
23
- }
24
- export function stopHealthMonitor() {
25
- if (healthCheckInterval) {
26
- clearInterval(healthCheckInterval);
27
- healthCheckInterval = null;
28
- }
29
- }
30
- export function getHealthStatus() {
31
- return {
32
- ...lastStatus,
33
- uptime: Math.floor((Date.now() - startTime) / 1000),
34
- };
35
- }
36
- async function checkHealth() {
37
- const log = logger();
38
- try {
39
- // Verify we can get the client (it auto-starts if needed)
40
- const client = await getClient();
41
- lastStatus = {
42
- status: 'healthy',
43
- uptime: Math.floor((Date.now() - startTime) / 1000),
44
- copilotConnected: true,
45
- lastCheck: new Date(),
46
- };
47
- }
48
- catch (err) {
49
- log.warn({ err }, 'Health check failed — Copilot client unavailable');
50
- lastStatus = {
51
- status: 'unhealthy',
52
- uptime: Math.floor((Date.now() - startTime) / 1000),
53
- copilotConnected: false,
54
- lastCheck: new Date(),
55
- };
56
- // Attempt reconnect
57
- try {
58
- log.info('Attempting Copilot client reconnect...');
59
- await resetClient();
60
- await getClient();
61
- log.info('Copilot client reconnected successfully');
62
- lastStatus.status = 'healthy';
63
- lastStatus.copilotConnected = true;
64
- }
65
- catch (reconnectErr) {
66
- log.error({ err: reconnectErr }, 'Reconnect failed');
67
- }
68
- }
69
- }
70
- //# sourceMappingURL=health-monitor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"health-monitor.js","sourceRoot":"","sources":["../../src/copilot/health-monitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;AAEzD,IAAI,mBAAmB,GAA0C,IAAI,CAAC;AACtE,IAAI,SAAS,GAAW,IAAI,CAAC,GAAG,EAAE,CAAC;AASnC,IAAI,UAAU,GAAiB;IAC9B,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,CAAC;IACT,gBAAgB,EAAE,KAAK;IACvB,SAAS,EAAE,IAAI,IAAI,EAAE;CACrB,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,UAAU,GAAG,MAAM;IACrD,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEvB,mBAAmB,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAC5C,MAAM,WAAW,EAAE,CAAC;IACrB,CAAC,EAAE,UAAU,CAAC,CAAC;IAEf,gBAAgB;IAChB,WAAW,EAAE,CAAC;AACf,CAAC;AAED,MAAM,UAAU,iBAAiB;IAChC,IAAI,mBAAmB,EAAE,CAAC;QACzB,aAAa,CAAC,mBAAmB,CAAC,CAAC;QACnC,mBAAmB,GAAG,IAAI,CAAC;IAC5B,CAAC;AACF,CAAC;AAED,MAAM,UAAU,eAAe;IAC9B,OAAO;QACN,GAAG,UAAU;QACb,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC;KACnD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW;IACzB,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IAErB,IAAI,CAAC;QACJ,0DAA0D;QAC1D,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;QACjC,UAAU,GAAG;YACZ,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC;YACnD,gBAAgB,EAAE,IAAI;YACtB,SAAS,EAAE,IAAI,IAAI,EAAE;SACrB,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,kDAAkD,CAAC,CAAC;QACtE,UAAU,GAAG;YACZ,MAAM,EAAE,WAAW;YACnB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC;YACnD,gBAAgB,EAAE,KAAK;YACvB,SAAS,EAAE,IAAI,IAAI,EAAE;SACrB,CAAC;QAEF,oBAAoB;QACpB,IAAI,CAAC;YACJ,GAAG,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;YACnD,MAAM,WAAW,EAAE,CAAC;YACpB,MAAM,SAAS,EAAE,CAAC;YAClB,GAAG,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;YACpD,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC;YAC9B,UAAU,CAAC,gBAAgB,GAAG,IAAI,CAAC;QACpC,CAAC;QAAC,OAAO,YAAY,EAAE,CAAC;YACvB,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE,kBAAkB,CAAC,CAAC;QACtD,CAAC;IACF,CAAC;AACF,CAAC"}
@@ -1,5 +0,0 @@
1
- import { type IOConfig } from '../config.js';
2
- export declare function initOrchestrator(config: IOConfig): Promise<void>;
3
- export declare function sendMessage(prompt: string, source: 'tui' | 'telegram' | 'web', onDelta: (accumulated: string, done: boolean) => void): Promise<string>;
4
- export declare function destroyOrchestrator(): Promise<void>;
5
- //# sourceMappingURL=orchestrator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/copilot/orchestrator.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AA6FzD,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAwCtE;AAgBD,wBAAgB,WAAW,CAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,KAAK,GAAG,UAAU,GAAG,KAAK,EAClC,OAAO,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,GACnD,OAAO,CAAC,MAAM,CAAC,CAKjB;AA4FD,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAGzD"}