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,197 +0,0 @@
1
- import { createChildLogger } from '../logging/logger.js';
2
- import { getDatabase } from './db.js';
3
- const logger = () => createChildLogger('activity-log');
4
- /**
5
- * Log an activity to the agent_activity table.
6
- */
7
- export async function logActivity(entry) {
8
- const db = getDatabase();
9
- try {
10
- await db.execute({
11
- sql: `INSERT INTO agent_activity (squad_id, instance_id, agent_role, activity_type, model_used, content, tokens_used, label, status)
12
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,
13
- args: [
14
- entry.squadId ?? null,
15
- entry.instanceId ?? null,
16
- entry.agentRole,
17
- entry.activityType,
18
- entry.modelUsed ?? null,
19
- entry.content ? JSON.stringify(entry.content) : null,
20
- entry.tokensUsed ?? null,
21
- entry.label ?? null,
22
- entry.status ?? null,
23
- ],
24
- });
25
- }
26
- catch (err) {
27
- logger().error({ err }, 'Failed to log activity');
28
- }
29
- }
30
- /**
31
- * Query activity entries with optional filters.
32
- */
33
- export async function queryActivity(filters) {
34
- const db = getDatabase();
35
- const conditions = [];
36
- const args = [];
37
- if (filters.squadId) {
38
- conditions.push('squad_id = ?');
39
- args.push(filters.squadId);
40
- }
41
- if (filters.instanceId) {
42
- conditions.push('instance_id = ?');
43
- args.push(filters.instanceId);
44
- }
45
- if (filters.agentRole) {
46
- conditions.push('agent_role = ?');
47
- args.push(filters.agentRole);
48
- }
49
- if (filters.activityType) {
50
- conditions.push('activity_type = ?');
51
- args.push(filters.activityType);
52
- }
53
- const where = conditions.length > 0 ? `WHERE ${conditions.join(' AND ')}` : '';
54
- const limit = filters.limit ?? 50;
55
- const offset = filters.offset ?? 0;
56
- const result = await db.execute({
57
- sql: `SELECT id, squad_id, instance_id, agent_role, activity_type, model_used, content, tokens_used, label, status, timestamp
58
- FROM agent_activity ${where}
59
- ORDER BY timestamp DESC
60
- LIMIT ? OFFSET ?`,
61
- args: [...args, limit, offset],
62
- });
63
- return result.rows.map((row) => ({
64
- id: row.id,
65
- squadId: row.squad_id,
66
- instanceId: row.instance_id,
67
- agentRole: row.agent_role,
68
- activityType: row.activity_type,
69
- modelUsed: row.model_used,
70
- content: row.content,
71
- tokensUsed: row.tokens_used,
72
- label: row.label,
73
- status: row.status,
74
- timestamp: row.timestamp,
75
- }));
76
- }
77
- /**
78
- * Subscribe to the event bus and auto-log relevant events.
79
- */
80
- export function initActivityLogger(eventBus) {
81
- return eventBus.onAny((event) => {
82
- const entry = mapEventToActivity(event);
83
- if (entry) {
84
- logActivity(entry);
85
- }
86
- });
87
- }
88
- function mapEventToActivity(event) {
89
- switch (event.type) {
90
- case 'agent:task_started':
91
- return {
92
- squadId: event.squadId,
93
- instanceId: event.instanceId,
94
- agentRole: event.agentRole,
95
- activityType: 'message',
96
- label: 'Task started',
97
- content: event.data,
98
- };
99
- case 'agent:task_completed':
100
- return {
101
- squadId: event.squadId,
102
- instanceId: event.instanceId,
103
- agentRole: event.agentRole,
104
- activityType: 'message',
105
- label: 'Task completed',
106
- content: event.data,
107
- };
108
- case 'agent:tool_call':
109
- return {
110
- squadId: event.squadId,
111
- instanceId: event.instanceId,
112
- agentRole: event.agentRole,
113
- activityType: 'tool_call',
114
- modelUsed: event.model,
115
- label: event.data?.tool ?? undefined,
116
- content: event.data,
117
- };
118
- case 'agent:tool_result':
119
- return {
120
- squadId: event.squadId,
121
- instanceId: event.instanceId,
122
- agentRole: event.agentRole,
123
- activityType: 'tool_result',
124
- content: event.data,
125
- status: event.data?.success ? 'ok' : 'error',
126
- };
127
- case 'agent:thought':
128
- return {
129
- squadId: event.squadId,
130
- instanceId: event.instanceId,
131
- agentRole: event.agentRole,
132
- activityType: 'thought',
133
- content: event.data,
134
- };
135
- case 'agent:decision':
136
- return {
137
- squadId: event.squadId,
138
- instanceId: event.instanceId,
139
- agentRole: event.agentRole,
140
- activityType: 'decision',
141
- content: event.data,
142
- };
143
- case 'agent:error':
144
- return {
145
- squadId: event.squadId,
146
- instanceId: event.instanceId,
147
- agentRole: event.agentRole,
148
- activityType: 'message',
149
- label: 'Error',
150
- status: 'error',
151
- content: event.data,
152
- };
153
- case 'meeting:contribution':
154
- return {
155
- squadId: event.squadId,
156
- instanceId: event.instanceId,
157
- agentRole: event.agentRole,
158
- activityType: 'message',
159
- label: 'Meeting contribution',
160
- content: { message: event.content },
161
- };
162
- case 'meeting:veto':
163
- return {
164
- squadId: event.squadId,
165
- instanceId: event.instanceId,
166
- agentRole: event.agentRole,
167
- activityType: 'decision',
168
- label: 'Veto',
169
- content: { message: event.content, veto: true },
170
- };
171
- default:
172
- return null;
173
- }
174
- }
175
- /**
176
- * Map legacy ActivityType values to WorkEventKind for the history API.
177
- */
178
- export function activityTypeToEventKind(activityType) {
179
- switch (activityType) {
180
- case 'thought':
181
- return 'thought';
182
- case 'tool_call':
183
- return 'tool_call';
184
- case 'tool_result':
185
- return 'tool_result';
186
- case 'decision':
187
- return 'decision';
188
- case 'message':
189
- case 'meeting_contribution':
190
- case 'task_start':
191
- case 'task_complete':
192
- case 'error':
193
- default:
194
- return 'message';
195
- }
196
- }
197
- //# sourceMappingURL=activity.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"activity.js","sourceRoot":"","sources":["../../src/store/activity.ts"],"names":[],"mappings":"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"}
@@ -1,25 +0,0 @@
1
- export type ConversationRole = 'user' | 'assistant';
2
- export interface ConversationMessage {
3
- id: string;
4
- role: ConversationRole;
5
- content: string;
6
- source: string | null;
7
- attachments: unknown[] | null;
8
- timestamp: string;
9
- }
10
- export interface ConversationPage {
11
- messages: ConversationMessage[];
12
- cursor: string | null;
13
- hasMore: boolean;
14
- }
15
- export declare function appendConversationMessage(params: {
16
- role: ConversationRole;
17
- content: string;
18
- source?: string;
19
- createdAt?: string;
20
- }): Promise<ConversationMessage>;
21
- export declare function listConversationMessages(params?: {
22
- limit?: number;
23
- before?: string;
24
- }): Promise<ConversationPage>;
25
- //# sourceMappingURL=conversations.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"conversations.d.ts","sourceRoot":"","sources":["../../src/store/conversations.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,WAAW,CAAC;AAEpD,MAAM,WAAW,mBAAmB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAChC,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,yBAAyB,CAAC,MAAM,EAAE;IACvD,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAiB/B;AAsBD,wBAAsB,wBAAwB,CAAC,MAAM,CAAC,EAAE;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAsD5B"}
@@ -1,76 +0,0 @@
1
- import { getDatabase } from './db.js';
2
- export async function appendConversationMessage(params) {
3
- const db = getDatabase();
4
- const message = {
5
- id: crypto.randomUUID(),
6
- role: params.role,
7
- content: params.content,
8
- source: params.source ?? null,
9
- attachments: null,
10
- timestamp: params.createdAt ?? new Date().toISOString(),
11
- };
12
- await db.execute({
13
- sql: 'INSERT INTO conversations (id, role, content, source, created_at) VALUES (?, ?, ?, ?, ?)',
14
- args: [message.id, message.role, message.content, message.source, message.timestamp],
15
- });
16
- return message;
17
- }
18
- function toConversationRow(row) {
19
- return {
20
- id: row.id,
21
- role: row.role,
22
- content: row.content,
23
- source: row.source,
24
- attachments: row.attachments,
25
- created_at: row.created_at,
26
- };
27
- }
28
- export async function listConversationMessages(params) {
29
- const db = getDatabase();
30
- const limit = Math.min(params?.limit ?? 50, 200);
31
- const before = params?.before;
32
- let rows;
33
- if (before) {
34
- const cursorResult = await db.execute({
35
- sql: 'SELECT created_at FROM conversations WHERE id = ?',
36
- args: [before],
37
- });
38
- if (cursorResult.rows.length === 0) {
39
- throw new Error('Invalid cursor: message not found');
40
- }
41
- const cursorTime = cursorResult.rows[0].created_at;
42
- const result = await db.execute({
43
- sql: `SELECT id, role, content, source, attachments, created_at
44
- FROM conversations
45
- WHERE created_at < ? OR (created_at = ? AND id < ?)
46
- ORDER BY created_at DESC, id DESC
47
- LIMIT ?`,
48
- args: [cursorTime, cursorTime, before, limit],
49
- });
50
- rows = result.rows.map((row) => toConversationRow(row));
51
- }
52
- else {
53
- const result = await db.execute({
54
- sql: `SELECT id, role, content, source, attachments, created_at
55
- FROM conversations
56
- ORDER BY created_at DESC, id DESC
57
- LIMIT ?`,
58
- args: [limit],
59
- });
60
- rows = result.rows.map((row) => toConversationRow(row));
61
- }
62
- const messages = rows.reverse().map((row) => ({
63
- id: row.id,
64
- role: row.role,
65
- content: row.content,
66
- source: row.source,
67
- attachments: row.attachments ? JSON.parse(row.attachments) : null,
68
- timestamp: row.created_at,
69
- }));
70
- return {
71
- messages,
72
- cursor: rows.length > 0 ? rows[0].id : null,
73
- hasMore: rows.length === limit,
74
- };
75
- }
76
- //# sourceMappingURL=conversations.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"conversations.js","sourceRoot":"","sources":["../../src/store/conversations.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import { type Client } from '@libsql/client';
2
- export declare function initDatabase(dataDir: string): Promise<Client>;
3
- export declare function getDatabase(): Client;
4
- export declare function closeDatabase(): void;
5
- //# sourceMappingURL=db.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/store/db.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,gBAAgB,CAAC;AAoP3D,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAgBnE;AA6BD,wBAAgB,WAAW,IAAI,MAAM,CAKpC;AAED,wBAAgB,aAAa,IAAI,IAAI,CAIpC"}
package/dist/store/db.js DELETED
@@ -1,290 +0,0 @@
1
- import { mkdirSync } from 'node:fs';
2
- import { join } from 'node:path';
3
- import { createClient } from '@libsql/client';
4
- import { createChildLogger } from '../logging/logger.js';
5
- let db;
6
- let logger;
7
- const MIGRATIONS = [
8
- {
9
- version: 1,
10
- statements: [
11
- `CREATE TABLE IF NOT EXISTS conversations (
12
- id TEXT PRIMARY KEY,
13
- role TEXT NOT NULL,
14
- content TEXT NOT NULL,
15
- source TEXT,
16
- attachments TEXT,
17
- created_at DATETIME DEFAULT CURRENT_TIMESTAMP
18
- )`,
19
- `CREATE TABLE IF NOT EXISTS squads (
20
- id TEXT PRIMARY KEY,
21
- name TEXT NOT NULL UNIQUE,
22
- project_path TEXT NOT NULL,
23
- repo_url TEXT,
24
- autonomy_tier TEXT NOT NULL DEFAULT 'medium',
25
- autonomy_config TEXT,
26
- status TEXT DEFAULT 'active',
27
- created_at DATETIME DEFAULT CURRENT_TIMESTAMP
28
- )`,
29
- `CREATE TABLE IF NOT EXISTS squad_members (
30
- id TEXT PRIMARY KEY,
31
- squad_id TEXT NOT NULL REFERENCES squads(id),
32
- role_name TEXT NOT NULL,
33
- skill_file_path TEXT,
34
- tools_allowed TEXT,
35
- is_veto_member INTEGER DEFAULT 0,
36
- status TEXT DEFAULT 'active',
37
- created_at DATETIME DEFAULT CURRENT_TIMESTAMP
38
- )`,
39
- `CREATE TABLE IF NOT EXISTS squad_instances (
40
- id TEXT PRIMARY KEY,
41
- squad_id TEXT NOT NULL REFERENCES squads(id),
42
- issue_ref TEXT,
43
- worktree_path TEXT,
44
- branch_name TEXT,
45
- status TEXT DEFAULT 'planning',
46
- created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
47
- completed_at DATETIME
48
- )`,
49
- `CREATE TABLE IF NOT EXISTS decisions (
50
- id TEXT PRIMARY KEY,
51
- squad_id TEXT NOT NULL REFERENCES squads(id),
52
- instance_id TEXT REFERENCES squad_instances(id),
53
- agent_role TEXT NOT NULL,
54
- decision_type TEXT,
55
- content TEXT NOT NULL,
56
- rationale TEXT,
57
- created_at DATETIME DEFAULT CURRENT_TIMESTAMP
58
- )`,
59
- `CREATE TABLE IF NOT EXISTS token_usage (
60
- id INTEGER PRIMARY KEY AUTOINCREMENT,
61
- squad_id TEXT REFERENCES squads(id),
62
- instance_id TEXT REFERENCES squad_instances(id),
63
- agent_role TEXT,
64
- model TEXT NOT NULL,
65
- input_tokens INTEGER NOT NULL,
66
- output_tokens INTEGER NOT NULL,
67
- estimated_cost_usd REAL,
68
- timestamp DATETIME DEFAULT CURRENT_TIMESTAMP
69
- )`,
70
- `CREATE TABLE IF NOT EXISTS model_pricing (
71
- model TEXT PRIMARY KEY,
72
- input_cost_per_1m REAL NOT NULL,
73
- output_cost_per_1m REAL NOT NULL,
74
- tier TEXT,
75
- last_updated DATETIME DEFAULT CURRENT_TIMESTAMP
76
- )`,
77
- `CREATE TABLE IF NOT EXISTS attachments (
78
- id TEXT PRIMARY KEY,
79
- message_id TEXT,
80
- filename TEXT NOT NULL,
81
- mime_type TEXT,
82
- size_bytes INTEGER,
83
- disk_path TEXT NOT NULL,
84
- created_at DATETIME DEFAULT CURRENT_TIMESTAMP
85
- )`,
86
- `CREATE TABLE IF NOT EXISTS agent_activity (
87
- id INTEGER PRIMARY KEY AUTOINCREMENT,
88
- squad_id TEXT REFERENCES squads(id),
89
- instance_id TEXT REFERENCES squad_instances(id),
90
- agent_role TEXT NOT NULL,
91
- activity_type TEXT NOT NULL,
92
- model_used TEXT,
93
- content TEXT,
94
- tokens_used INTEGER,
95
- timestamp DATETIME DEFAULT CURRENT_TIMESTAMP
96
- )`,
97
- `CREATE TABLE IF NOT EXISTS schema_version (
98
- version INTEGER PRIMARY KEY
99
- )`,
100
- `CREATE TABLE IF NOT EXISTS io_state (
101
- key TEXT PRIMARY KEY,
102
- value TEXT NOT NULL
103
- )`,
104
- 'INSERT INTO schema_version (version) VALUES (1)',
105
- ],
106
- },
107
- {
108
- version: 2,
109
- statements: [
110
- `CREATE TABLE IF NOT EXISTS inbox_entries (
111
- id TEXT PRIMARY KEY,
112
- squad_id TEXT REFERENCES squads(id),
113
- instance_id TEXT REFERENCES squad_instances(id),
114
- kind TEXT NOT NULL,
115
- title TEXT NOT NULL,
116
- content TEXT NOT NULL,
117
- status TEXT DEFAULT 'unread',
118
- response TEXT,
119
- created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
120
- resolved_at DATETIME
121
- )`,
122
- 'CREATE INDEX IF NOT EXISTS idx_inbox_status ON inbox_entries(status)',
123
- 'CREATE INDEX IF NOT EXISTS idx_inbox_squad ON inbox_entries(squad_id)',
124
- 'INSERT OR REPLACE INTO schema_version (version) VALUES (2)',
125
- ],
126
- },
127
- {
128
- version: 3,
129
- statements: [
130
- `CREATE TABLE IF NOT EXISTS schedules (
131
- id TEXT PRIMARY KEY,
132
- name TEXT NOT NULL,
133
- target_type TEXT NOT NULL,
134
- target_id TEXT,
135
- cron TEXT NOT NULL,
136
- prompt TEXT NOT NULL,
137
- enabled INTEGER DEFAULT 1,
138
- last_run DATETIME,
139
- next_run DATETIME,
140
- created_at DATETIME DEFAULT CURRENT_TIMESTAMP
141
- )`,
142
- 'CREATE INDEX IF NOT EXISTS idx_schedules_enabled ON schedules(enabled)',
143
- 'CREATE INDEX IF NOT EXISTS idx_schedules_next_run ON schedules(next_run)',
144
- 'INSERT OR REPLACE INTO schema_version (version) VALUES (3)',
145
- ],
146
- },
147
- {
148
- version: 4,
149
- statements: [
150
- `CREATE TABLE IF NOT EXISTS skill_activations (
151
- skill_name TEXT NOT NULL,
152
- target_type TEXT NOT NULL,
153
- target_id TEXT,
154
- activated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
155
- PRIMARY KEY (skill_name, target_type, target_id)
156
- )`,
157
- 'CREATE INDEX IF NOT EXISTS idx_skill_activations_target ON skill_activations(target_type, target_id)',
158
- 'INSERT OR REPLACE INTO schema_version (version) VALUES (4)',
159
- ],
160
- },
161
- {
162
- version: 5,
163
- statements: [
164
- 'ALTER TABLE squads ADD COLUMN universe TEXT',
165
- 'ALTER TABLE squad_members ADD COLUMN display_name TEXT',
166
- 'INSERT OR REPLACE INTO schema_version (version) VALUES (5)',
167
- ],
168
- },
169
- {
170
- version: 6,
171
- statements: [
172
- 'ALTER TABLE squad_members ADD COLUMN persona TEXT',
173
- 'INSERT OR REPLACE INTO schema_version (version) VALUES (6)',
174
- ],
175
- },
176
- {
177
- version: 7,
178
- statements: [
179
- // Make squad_id nullable on inbox_entries
180
- `CREATE TABLE IF NOT EXISTS inbox_entries_new (
181
- id TEXT PRIMARY KEY,
182
- squad_id TEXT REFERENCES squads(id),
183
- instance_id TEXT REFERENCES squad_instances(id),
184
- kind TEXT NOT NULL,
185
- title TEXT NOT NULL,
186
- content TEXT NOT NULL,
187
- status TEXT DEFAULT 'unread',
188
- response TEXT,
189
- created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
190
- resolved_at DATETIME
191
- )`,
192
- `INSERT OR IGNORE INTO inbox_entries_new SELECT * FROM inbox_entries`,
193
- 'DROP TABLE IF EXISTS inbox_entries',
194
- 'ALTER TABLE inbox_entries_new RENAME TO inbox_entries',
195
- 'CREATE INDEX IF NOT EXISTS idx_inbox_status ON inbox_entries(status)',
196
- 'CREATE INDEX IF NOT EXISTS idx_inbox_squad ON inbox_entries(squad_id)',
197
- 'INSERT OR REPLACE INTO schema_version (version) VALUES (7)',
198
- ],
199
- },
200
- {
201
- version: 8,
202
- statements: [
203
- 'ALTER TABLE squad_instances ADD COLUMN objective TEXT',
204
- 'INSERT OR REPLACE INTO schema_version (version) VALUES (8)',
205
- ],
206
- },
207
- {
208
- version: 9,
209
- statements: [
210
- "ALTER TABLE squads ADD COLUMN color TEXT NOT NULL DEFAULT '#38bdf8'",
211
- // Backfill existing squads with unique colors from the palette
212
- `UPDATE squads SET color = CASE
213
- WHEN (SELECT COUNT(*) FROM squads s2 WHERE s2.rowid < squads.rowid) % 10 = 0 THEN '#38bdf8'
214
- WHEN (SELECT COUNT(*) FROM squads s2 WHERE s2.rowid < squads.rowid) % 10 = 1 THEN '#a78bfa'
215
- WHEN (SELECT COUNT(*) FROM squads s2 WHERE s2.rowid < squads.rowid) % 10 = 2 THEN '#34d399'
216
- WHEN (SELECT COUNT(*) FROM squads s2 WHERE s2.rowid < squads.rowid) % 10 = 3 THEN '#f59e0b'
217
- WHEN (SELECT COUNT(*) FROM squads s2 WHERE s2.rowid < squads.rowid) % 10 = 4 THEN '#f87171'
218
- WHEN (SELECT COUNT(*) FROM squads s2 WHERE s2.rowid < squads.rowid) % 10 = 5 THEN '#06b6d4'
219
- WHEN (SELECT COUNT(*) FROM squads s2 WHERE s2.rowid < squads.rowid) % 10 = 6 THEN '#fb923c'
220
- WHEN (SELECT COUNT(*) FROM squads s2 WHERE s2.rowid < squads.rowid) % 10 = 7 THEN '#4ade80'
221
- WHEN (SELECT COUNT(*) FROM squads s2 WHERE s2.rowid < squads.rowid) % 10 = 8 THEN '#c084fc'
222
- ELSE '#facc15'
223
- END`,
224
- 'INSERT OR REPLACE INTO schema_version (version) VALUES (9)',
225
- ],
226
- },
227
- {
228
- version: 10,
229
- statements: [
230
- // Add type column to squad_instances (instance vs delegation)
231
- "ALTER TABLE squad_instances ADD COLUMN type TEXT NOT NULL DEFAULT 'instance'",
232
- // Add label column to agent_activity (tool name, event label)
233
- 'ALTER TABLE agent_activity ADD COLUMN label TEXT',
234
- // Add status column to agent_activity (ok/error for tool results)
235
- 'ALTER TABLE agent_activity ADD COLUMN status TEXT',
236
- // Index for history queries
237
- 'CREATE INDEX IF NOT EXISTS idx_instances_status ON squad_instances(squad_id, status)',
238
- 'CREATE INDEX IF NOT EXISTS idx_activity_instance ON agent_activity(instance_id, timestamp)',
239
- 'INSERT OR REPLACE INTO schema_version (version) VALUES (10)',
240
- ],
241
- },
242
- ];
243
- export async function initDatabase(dataDir) {
244
- logger = createChildLogger('store');
245
- mkdirSync(dataDir, { recursive: true });
246
- const dbPath = join(dataDir, 'io.db');
247
- db = createClient({
248
- url: `file:${dbPath}`,
249
- });
250
- await db.execute('PRAGMA journal_mode = WAL');
251
- await db.execute('PRAGMA foreign_keys = ON');
252
- await runMigrations();
253
- logger.info({ path: dbPath }, 'Database initialized');
254
- return db;
255
- }
256
- async function runMigrations() {
257
- const currentVersion = await getCurrentVersion();
258
- for (const migration of MIGRATIONS) {
259
- if (migration.version > currentVersion) {
260
- logger.info({ version: migration.version }, 'Running migration');
261
- for (const statement of migration.statements) {
262
- await db.execute(statement);
263
- }
264
- }
265
- }
266
- }
267
- async function getCurrentVersion() {
268
- try {
269
- const result = await db.execute('SELECT version FROM schema_version ORDER BY version DESC LIMIT 1');
270
- if (result.rows.length > 0) {
271
- return result.rows[0].version;
272
- }
273
- return 0;
274
- }
275
- catch {
276
- return 0;
277
- }
278
- }
279
- export function getDatabase() {
280
- if (!db) {
281
- throw new Error('Database not initialized. Call initDatabase() first.');
282
- }
283
- return db;
284
- }
285
- export function closeDatabase() {
286
- if (db) {
287
- db.close();
288
- }
289
- }
290
- //# sourceMappingURL=db.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/store/db.ts"],"names":[],"mappings":"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"}