heyio 3.1.3 → 3.1.5

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 (63) hide show
  1. package/dist/api/routes/inbox.d.ts.map +1 -1
  2. package/dist/api/routes/inbox.js +52 -1
  3. package/dist/api/routes/inbox.js.map +1 -1
  4. package/dist/api/routes/squads.d.ts.map +1 -1
  5. package/dist/api/routes/squads.js +106 -2
  6. package/dist/api/routes/squads.js.map +1 -1
  7. package/dist/api/routes/wiki.js +6 -1
  8. package/dist/api/routes/wiki.js.map +1 -1
  9. package/dist/copilot/orchestrator.d.ts +1 -1
  10. package/dist/copilot/orchestrator.d.ts.map +1 -1
  11. package/dist/copilot/orchestrator.js +27 -0
  12. package/dist/copilot/orchestrator.js.map +1 -1
  13. package/dist/models/token-tracker.d.ts +1 -0
  14. package/dist/models/token-tracker.d.ts.map +1 -1
  15. package/dist/models/token-tracker.js +11 -10
  16. package/dist/models/token-tracker.js.map +1 -1
  17. package/dist/squad/agent.d.ts +4 -0
  18. package/dist/squad/agent.d.ts.map +1 -1
  19. package/dist/squad/agent.js +59 -1
  20. package/dist/squad/agent.js.map +1 -1
  21. package/dist/squad/execution/instance.d.ts +3 -0
  22. package/dist/squad/execution/instance.d.ts.map +1 -1
  23. package/dist/squad/execution/instance.js +3 -2
  24. package/dist/squad/execution/instance.js.map +1 -1
  25. package/dist/squad/execution/meeting.d.ts.map +1 -1
  26. package/dist/squad/execution/meeting.js +6 -2
  27. package/dist/squad/execution/meeting.js.map +1 -1
  28. package/dist/squad/execution/tasks.d.ts.map +1 -1
  29. package/dist/squad/execution/tasks.js +20 -4
  30. package/dist/squad/execution/tasks.js.map +1 -1
  31. package/dist/squad/manager.d.ts.map +1 -1
  32. package/dist/squad/manager.js +3 -2
  33. package/dist/squad/manager.js.map +1 -1
  34. package/dist/squad/model-selector.d.ts +29 -0
  35. package/dist/squad/model-selector.d.ts.map +1 -0
  36. package/dist/squad/model-selector.js +64 -0
  37. package/dist/squad/model-selector.js.map +1 -0
  38. package/dist/store/activity.js +8 -0
  39. package/dist/store/activity.js.map +1 -1
  40. package/dist/store/db.d.ts.map +1 -1
  41. package/dist/store/db.js +7 -0
  42. package/dist/store/db.js.map +1 -1
  43. package/dist/store/inbox.d.ts +15 -1
  44. package/dist/store/inbox.d.ts.map +1 -1
  45. package/dist/store/inbox.js +47 -7
  46. package/dist/store/inbox.js.map +1 -1
  47. package/dist/wiki/index.d.ts +1 -1
  48. package/dist/wiki/index.d.ts.map +1 -1
  49. package/dist/wiki/index.js +1 -1
  50. package/dist/wiki/index.js.map +1 -1
  51. package/dist/wiki/store.d.ts +12 -0
  52. package/dist/wiki/store.d.ts.map +1 -1
  53. package/dist/wiki/store.js +33 -0
  54. package/dist/wiki/store.js.map +1 -1
  55. package/node_modules/@io/shared/package.json +1 -1
  56. package/package.json +1 -1
  57. package/public/assets/index-B6pyD_4A.css +9 -0
  58. package/public/assets/index-C4oirMTi.js +505 -0
  59. package/public/assets/index-C4oirMTi.js.map +1 -0
  60. package/public/index.html +2 -2
  61. package/public/assets/index-CMcpQavD.css +0 -1
  62. package/public/assets/index-DsYVZ_Bi.js +0 -478
  63. package/public/assets/index-DsYVZ_Bi.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../../../src/api/routes/inbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAWjC,wBAAgB,WAAW,IAAI,MAAM,CAsFpC"}
1
+ {"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../../../src/api/routes/inbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAcjC,wBAAgB,WAAW,IAAI,MAAM,CAyIpC"}
@@ -1,5 +1,5 @@
1
1
  import { Router } from 'express';
2
- import { getInboxEntry, getUnreadCount, listInboxEntries, markInboxRead, resolveInboxEntry, } from '../../store/inbox.js';
2
+ import { deleteInboxEntries, deleteInboxEntry, getInboxEntry, getUnreadCount, listInboxEntries, markInboxRead, markInboxReadBulk, resolveInboxEntry, } from '../../store/inbox.js';
3
3
  export function inboxRouter() {
4
4
  const router = Router();
5
5
  /**
@@ -64,6 +64,57 @@ export function inboxRouter() {
64
64
  res.status(500).json({ error: 'Failed to mark entry as read' });
65
65
  }
66
66
  });
67
+ /**
68
+ * POST /api/inbox/bulk/read
69
+ * Mark multiple entries as read.
70
+ * Body: { ids: string[] }
71
+ */
72
+ router.post('/inbox/bulk/read', async (req, res) => {
73
+ try {
74
+ const { ids } = req.body;
75
+ if (!ids || !Array.isArray(ids)) {
76
+ res.status(400).json({ error: 'ids array is required' });
77
+ return;
78
+ }
79
+ await markInboxReadBulk(ids);
80
+ res.json({ status: 'ok' });
81
+ }
82
+ catch {
83
+ res.status(500).json({ error: 'Failed to mark entries as read' });
84
+ }
85
+ });
86
+ /**
87
+ * POST /api/inbox/bulk/delete
88
+ * Delete multiple entries.
89
+ * Body: { ids: string[] }
90
+ */
91
+ router.post('/inbox/bulk/delete', async (req, res) => {
92
+ try {
93
+ const { ids } = req.body;
94
+ if (!ids || !Array.isArray(ids)) {
95
+ res.status(400).json({ error: 'ids array is required' });
96
+ return;
97
+ }
98
+ await deleteInboxEntries(ids);
99
+ res.json({ status: 'ok' });
100
+ }
101
+ catch {
102
+ res.status(500).json({ error: 'Failed to delete entries' });
103
+ }
104
+ });
105
+ /**
106
+ * DELETE /api/inbox/:id
107
+ * Delete a single entry.
108
+ */
109
+ router.delete('/inbox/:id', async (req, res) => {
110
+ try {
111
+ await deleteInboxEntry(req.params.id);
112
+ res.json({ status: 'ok' });
113
+ }
114
+ catch {
115
+ res.status(500).json({ error: 'Failed to delete entry' });
116
+ }
117
+ });
67
118
  /**
68
119
  * POST /api/inbox/:id/respond
69
120
  * Respond to an inbox question. Resolves any blocking squad.
@@ -1 +1 @@
1
- {"version":3,"file":"inbox.js","sourceRoot":"","sources":["../../../src/api/routes/inbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inbox.js","sourceRoot":"","sources":["../../../src/api/routes/inbox.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"squads.d.ts","sourceRoot":"","sources":["../../../src/api/routes/squads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AASjC,wBAAgB,YAAY,IAAI,MAAM,CA8IrC"}
1
+ {"version":3,"file":"squads.d.ts","sourceRoot":"","sources":["../../../src/api/routes/squads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAUjC,wBAAgB,YAAY,IAAI,MAAM,CAgQrC"}
@@ -1,7 +1,8 @@
1
1
  import { Router } from 'express';
2
- import { getSquadInstances } from '../../squad/execution/instance.js';
2
+ import { getInstance, getSquadInstances } from '../../squad/execution/instance.js';
3
3
  import { runInstance } from '../../squad/execution/runner.js';
4
4
  import { getSquadByName, getSquadMembers, listSquads } from '../../squad/manager.js';
5
+ import { getDatabase } from '../../store/db.js';
5
6
  function isActiveInstance(status) {
6
7
  return status !== 'complete' && status !== 'failed';
7
8
  }
@@ -13,11 +14,28 @@ export function squadsRouter() {
13
14
  */
14
15
  router.get('/squads', async (_req, res) => {
15
16
  try {
17
+ const db = getDatabase();
16
18
  const squads = await listSquads();
17
19
  const results = await Promise.all(squads.map(async (s) => {
18
20
  const members = await getSquadMembers(s.id);
19
21
  const instances = getSquadInstances(s.id);
20
22
  const activeInstances = instances.filter((i) => isActiveInstance(i.status)).length;
23
+ // Fetch last 5 instances (work items/prompts) for this squad
24
+ const instanceResult = await db.execute({
25
+ sql: `SELECT id, status, objective, issue_ref, created_at
26
+ FROM squad_instances
27
+ WHERE squad_id = ?
28
+ ORDER BY created_at DESC
29
+ LIMIT 5`,
30
+ args: [s.id],
31
+ });
32
+ const recentActivity = instanceResult.rows.map((row) => ({
33
+ id: row.id,
34
+ status: row.status,
35
+ objective: row.objective,
36
+ issueRef: row.issue_ref,
37
+ timestamp: row.created_at,
38
+ }));
21
39
  return {
22
40
  id: s.id,
23
41
  name: s.name,
@@ -30,6 +48,7 @@ export function squadsRouter() {
30
48
  activeInstances,
31
49
  totalInstances: instances.length,
32
50
  createdAt: s.createdAt.toISOString(),
51
+ recentActivity,
33
52
  };
34
53
  }));
35
54
  res.json({ squads: results });
@@ -54,6 +73,9 @@ export function squadsRouter() {
54
73
  const activeInstances = instances.filter((inst) => isActiveInstance(inst.status));
55
74
  // Build a map of role -> current task (from active instances)
56
75
  const currentTasks = new Map();
76
+ // Determine if any active instance is in meeting/planning phase
77
+ const meetingInstance = activeInstances.find((i) => i.status === 'meeting');
78
+ const planningInstance = activeInstances.find((i) => i.status === 'planning');
57
79
  for (const inst of activeInstances) {
58
80
  for (const task of inst.tasks) {
59
81
  if (task.status === 'in_progress') {
@@ -75,6 +97,11 @@ export function squadsRouter() {
75
97
  },
76
98
  members: members.map((m) => {
77
99
  const currentTask = currentTasks.get(m.roleName) ?? null;
100
+ const phaseStatus = meetingInstance
101
+ ? 'in meeting'
102
+ : planningInstance
103
+ ? 'planning'
104
+ : null;
78
105
  return {
79
106
  id: m.id,
80
107
  displayName: m.displayName,
@@ -83,7 +110,7 @@ export function squadsRouter() {
83
110
  persona: m.persona,
84
111
  veto: m.isVetoMember,
85
112
  tools: m.toolsAllowed,
86
- status: currentTask ? 'working' : 'idle',
113
+ status: currentTask ? 'working' : phaseStatus ?? 'idle',
87
114
  currentTask,
88
115
  };
89
116
  }),
@@ -132,6 +159,83 @@ export function squadsRouter() {
132
159
  res.status(500).json({ error: 'Failed to start instance' });
133
160
  }
134
161
  });
162
+ /**
163
+ * GET /api/squads/:name/instances/:instanceId
164
+ * Get detailed instance info with agent activity.
165
+ */
166
+ router.get('/squads/:name/instances/:instanceId', async (req, res) => {
167
+ try {
168
+ const squad = await getSquadByName(req.params.name);
169
+ if (!squad) {
170
+ res.status(404).json({ error: `Squad '${req.params.name}' not found` });
171
+ return;
172
+ }
173
+ const instance = getInstance(req.params.instanceId);
174
+ if (!instance || instance.squadId !== squad.id) {
175
+ res.status(404).json({ error: 'Instance not found' });
176
+ return;
177
+ }
178
+ const members = await getSquadMembers(squad.id);
179
+ const db = getDatabase();
180
+ // Fetch agent activity for this instance
181
+ const activityResult = await db.execute({
182
+ sql: `SELECT id, agent_role, activity_type, content, model_used, tokens_used, timestamp
183
+ FROM agent_activity
184
+ WHERE instance_id = ?
185
+ ORDER BY timestamp ASC`,
186
+ args: [instance.id],
187
+ });
188
+ const activity = activityResult.rows.map((row) => ({
189
+ id: row.id,
190
+ agent: row.agent_role,
191
+ type: row.activity_type,
192
+ content: row.content,
193
+ model: row.model_used,
194
+ tokensUsed: row.tokens_used,
195
+ timestamp: row.timestamp,
196
+ }));
197
+ // Build member status from tasks
198
+ const memberDetails = members.map((m) => {
199
+ const task = instance.tasks.find((t) => t.assignedTo === m.roleName && t.status === 'in_progress');
200
+ // During meeting/planning phases, all agents are participating
201
+ const phaseStatus = instance.status === 'meeting'
202
+ ? 'in meeting'
203
+ : instance.status === 'planning'
204
+ ? 'planning'
205
+ : null;
206
+ return {
207
+ id: m.id,
208
+ displayName: m.displayName,
209
+ role: m.roleName,
210
+ roleName: m.roleName,
211
+ status: task ? 'working' : phaseStatus ?? 'idle',
212
+ currentTask: task?.description ?? null,
213
+ };
214
+ });
215
+ res.json({
216
+ instance: {
217
+ id: instance.id,
218
+ status: instance.status,
219
+ branch: instance.branch,
220
+ issueRef: instance.issueRef,
221
+ taskCount: instance.tasks.length,
222
+ tasksComplete: instance.tasks.filter((t) => t.status === 'done').length,
223
+ tasks: instance.tasks.map((t) => ({
224
+ id: t.id,
225
+ description: t.description,
226
+ assignedTo: t.assignedTo,
227
+ status: t.status,
228
+ })),
229
+ meetingLog: instance.meetingLog,
230
+ },
231
+ members: memberDetails,
232
+ activity,
233
+ });
234
+ }
235
+ catch (err) {
236
+ res.status(500).json({ error: 'Failed to get instance detail' });
237
+ }
238
+ });
135
239
  return router;
136
240
  }
137
241
  //# sourceMappingURL=squads.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"squads.js","sourceRoot":"","sources":["../../../src/api/routes/squads.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"squads.js","sourceRoot":"","sources":["../../../src/api/routes/squads.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,11 @@
1
1
  import { Router } from 'express';
2
- import { deleteWikiPage, listWikiPages, readWikiPage, searchWiki, writeWikiPage } from '../../wiki/index.js';
2
+ import { deleteWikiPage, listAllWikiPages, listWikiPages, readWikiPage, searchWiki, writeWikiPage } from '../../wiki/index.js';
3
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
+ });
4
9
  // List pages in a scope
5
10
  wikiRouter.get('/:scope', (req, res) => {
6
11
  const { scope } = req.params;
@@ -1 +1 @@
1
- {"version":3,"file":"wiki.js","sourceRoot":"","sources":["../../../src/api/routes/wiki.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wiki.js","sourceRoot":"","sources":["../../../src/api/routes/wiki.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAE/H,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC;AAEnC,mCAAmC;AACnC,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IACpC,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;IACjC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC;AAEH,wBAAwB;AACxB,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IACtC,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;IAC7B,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACnC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AAC5B,CAAC,CAAC,CAAC;AAEH,gEAAgE;AAChE,UAAU,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IAC5C,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;IAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1F,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,IAAI,mBAAmB,KAAK,QAAQ,EAAE,CAAC,CAAC;QAC/E,OAAO;IACR,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,0DAA0D;AAC1D,UAAU,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IAC5C,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;IAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1F,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;IAC7B,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC7C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,sCAAsC,EAAE,CAAC,CAAC;QACxE,OAAO;IACR,CAAC;IACD,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACnD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,wCAAwC;AACxC,UAAU,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IAC/C,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;IAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1F,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,IAAI,mBAAmB,KAAK,QAAQ,EAAE,CAAC,CAAC;QAC/E,OAAO;IACR,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5B,CAAC,CAAC,CAAC;AAEH,uBAAuB;AACvB,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IAChC,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAW,CAAC;IACtC,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,MAA4B,CAAC;IAE3D,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iCAAiC,EAAE,CAAC,CAAC;QACnE,OAAO;IACR,CAAC;IAED,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC5C,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { IOConfig } from '../config.js';
1
+ import { type IOConfig } from '../config.js';
2
2
  export declare function initOrchestrator(config: IOConfig): Promise<void>;
3
3
  export declare function sendMessage(prompt: string, source: 'tui' | 'telegram' | 'web', onDelta: (accumulated: string, done: boolean) => void): Promise<string>;
4
4
  export declare function destroyOrchestrator(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/copilot/orchestrator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AA+E7C,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAuCtE;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;AAgED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAGzD"}
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/copilot/orchestrator.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAgFzD,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"}
@@ -1,4 +1,5 @@
1
1
  import { approveAll } from '@github/copilot-sdk';
2
+ import { loadConfig } from '../config.js';
2
3
  import { createChildLogger } from '../logging/logger.js';
3
4
  import { recordTokenUsage } from '../models/token-tracker.js';
4
5
  import { getActiveSkillsContent } from '../skills/index.js';
@@ -11,6 +12,7 @@ import { createOrchestratorTools } from './tools.js';
11
12
  let logger;
12
13
  let session;
13
14
  let sessionId;
15
+ let currentModel = '';
14
16
  const messageQueue = [];
15
17
  let processing = false;
16
18
  const SYSTEM_MESSAGE_BASE = `You are IO, an AI orchestrator daemon. You help users manage their software projects through intelligent conversation and by coordinating specialized agent squads.
@@ -58,6 +60,7 @@ async function buildSystemMessage() {
58
60
  export async function initOrchestrator(config) {
59
61
  logger = createChildLogger('orchestrator');
60
62
  const client = await getClient();
63
+ currentModel = config.defaultModel;
61
64
  const systemMessage = await buildSystemMessage();
62
65
  const sessionOptions = {
63
66
  model: config.defaultModel,
@@ -132,6 +135,30 @@ async function processMessage(msg) {
132
135
  if (!session) {
133
136
  throw new Error('Orchestrator session not initialized');
134
137
  }
138
+ // Check if the configured model has changed — if so, recreate the session
139
+ const freshConfig = loadConfig();
140
+ if (freshConfig.defaultModel !== currentModel) {
141
+ logger.info({ from: currentModel, to: freshConfig.defaultModel }, 'Default model changed, recreating orchestrator session');
142
+ currentModel = freshConfig.defaultModel;
143
+ const client = await getClient();
144
+ const systemMessage = await buildSystemMessage();
145
+ session = await client.createSession({
146
+ model: currentModel,
147
+ streaming: true,
148
+ tools: createOrchestratorTools(),
149
+ systemMessage: { mode: 'replace', content: systemMessage },
150
+ onPermissionRequest: approveAll,
151
+ infiniteSessions: {
152
+ enabled: true,
153
+ backgroundCompactionThreshold: 0.8,
154
+ bufferExhaustionThreshold: 0.95,
155
+ },
156
+ });
157
+ sessionId = session.sessionId;
158
+ subscribeToUsage(session);
159
+ await saveSessionId(sessionId);
160
+ logger.info({ sessionId, model: currentModel }, 'Orchestrator session recreated with new model');
161
+ }
135
162
  await appendConversationMessage({
136
163
  role: 'user',
137
164
  content: msg.prompt,
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/copilot/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAIrD,IAAI,MAA4C,CAAC;AAEjD,IAAI,OAA4B,CAAC;AACjC,IAAI,SAA6B,CAAC;AAUlC,MAAM,YAAY,GAAoB,EAAE,CAAC;AACzC,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;CAoB3B,CAAC;AAEF;;GAEG;AACH,KAAK,UAAU,kBAAkB;IAChC,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,cAAc,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAC5D,MAAM,aAAa,GAAG,MAAM,sBAAsB,CAAC,cAAc,CAAC,CAAC;QAEnE,MAAM,WAAW,GAAG,wBAAwB,WAAW,2FAA2F,CAAC;QAEnJ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,GAAG,mBAAmB,mDAAmD,WAAW,GAAG,aAAa,EAAE,CAAC;QAC/G,CAAC;QAED,MAAM,SAAS,GAAG,MAAM;aACtB,GAAG,CACH,CAAC,CAAC,EAAE,EAAE,CACL,OAAO,CAAC,CAAC,IAAI,oBAAoB,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,YAAY,GAAG,CACtH;aACA,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,OAAO,GAAG,mBAAmB,uBAAuB,SAAS,uIAAuI,WAAW,GAAG,aAAa,EAAE,CAAC;IACnO,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,GAAG,mBAAmB,uDAAuD,CAAC;IACtF,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAAgB;IACtD,MAAM,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;IAEjC,MAAM,aAAa,GAAG,MAAM,kBAAkB,EAAE,CAAC;IAEjD,MAAM,cAAc,GAAG;QACtB,KAAK,EAAE,MAAM,CAAC,YAAY;QAC1B,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,uBAAuB,EAAE;QAChC,aAAa,EAAE,EAAE,IAAI,EAAE,SAAkB,EAAE,OAAO,EAAE,aAAa,EAAE;QACnE,mBAAmB,EAAE,UAAU;QAC/B,gBAAgB,EAAE;YACjB,OAAO,EAAE,IAAI;YACb,6BAA6B,EAAE,GAAG;YAClC,yBAAyB,EAAE,IAAI;SAC/B;KACD,CAAC;IAEF,iCAAiC;IACjC,MAAM,cAAc,GAAG,MAAM,iBAAiB,EAAE,CAAC;IACjD,IAAI,cAAc,EAAE,CAAC;QACpB,IAAI,CAAC;YACJ,OAAO,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;YACrE,SAAS,GAAG,cAAc,CAAC;YAC3B,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,8BAA8B,CAAC,CAAC;YAC3D,OAAO;QACR,CAAC;QAAC,MAAM,CAAC;YACR,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,4CAA4C,CAAC,CAAC;QAC1F,CAAC;IACF,CAAC;IAED,qBAAqB;IACrB,OAAO,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;IACrD,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAC9B,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC1B,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,kCAAkC,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAa;IACtC,IAAI,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE;QACpC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC3C,gBAAgB,CAAC;gBAChB,SAAS,EAAE,cAAc;gBACzB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,CAAC;gBAClC,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,CAAC;aACpC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,8BAA8B,CAAC,CAAC,CAAC;QAC1E,CAAC;IACF,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAC1B,MAAc,EACd,MAAkC,EAClC,OAAqD;IAErD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACtC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAChE,YAAY,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,YAAY;IAC1B,IAAI,UAAU,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACpD,UAAU,GAAG,IAAI,CAAC;IAElB,OAAO,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,EAAG,CAAC;QAClC,IAAI,CAAC;YACJ,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;YAC3C,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,0BAA0B,CAAC,CAAC;YAClD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC;IACF,CAAC;IAED,UAAU,GAAG,KAAK,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,GAAkB;IAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,yBAAyB,CAAC;QAC/B,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,GAAG,CAAC,MAAM;QACnB,MAAM,EAAE,GAAG,CAAC,MAAM;KAClB,CAAC,CAAC;IAEH,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAEvB,gCAAgC;IAChC,MAAM,UAAU,GAAG,OAAO,CAAC,EAAE,CAAC,yBAAyB,EAAE,CAAC,KAAK,EAAE,EAAE;QAClE,WAAW,IAAI,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;QACvC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,CACvC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,EACtB,OAAO,CACP,CAAC;QAEF,MAAM,YAAY,GACjB,OAAO,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YAC1E,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO;YACrB,CAAC,CAAC,WAAW,IAAI,eAAe,CAAC;QAEnC,MAAM,yBAAyB,CAAC;YAC/B,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,YAAY;YACrB,MAAM,EAAE,GAAG,CAAC,MAAM;SAClB,CAAC,CAAC;QACH,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAEhC,OAAO,YAAY,CAAC;IACrB,CAAC;YAAS,CAAC;QACV,UAAU,EAAE,CAAC;IACd,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACxC,OAAO,GAAG,SAAS,CAAC;IACpB,SAAS,GAAG,SAAS,CAAC;AACvB,CAAC;AAED,KAAK,UAAU,iBAAiB;IAC/B,IAAI,CAAC;QACJ,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAC9B,kEAAkE,CAClE,CAAC;QACF,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAe,CAAC;QACvC,CAAC;QACD,OAAO,SAAS,CAAC;IAClB,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,SAAS,CAAC;IAClB,CAAC;AACF,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,EAAU;IACtC,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACzB,MAAM,EAAE,CAAC,OAAO,CAAC;QAChB,GAAG,EAAE,oFAAoF;QACzF,IAAI,EAAE,CAAC,EAAE,CAAC;KACV,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/copilot/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAiB,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAIrD,IAAI,MAA4C,CAAC;AAEjD,IAAI,OAA4B,CAAC;AACjC,IAAI,SAA6B,CAAC;AAClC,IAAI,YAAY,GAAW,EAAE,CAAC;AAU9B,MAAM,YAAY,GAAoB,EAAE,CAAC;AACzC,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;CAoB3B,CAAC;AAEF;;GAEG;AACH,KAAK,UAAU,kBAAkB;IAChC,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,cAAc,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAC5D,MAAM,aAAa,GAAG,MAAM,sBAAsB,CAAC,cAAc,CAAC,CAAC;QAEnE,MAAM,WAAW,GAAG,wBAAwB,WAAW,2FAA2F,CAAC;QAEnJ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,GAAG,mBAAmB,mDAAmD,WAAW,GAAG,aAAa,EAAE,CAAC;QAC/G,CAAC;QAED,MAAM,SAAS,GAAG,MAAM;aACtB,GAAG,CACH,CAAC,CAAC,EAAE,EAAE,CACL,OAAO,CAAC,CAAC,IAAI,oBAAoB,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,YAAY,GAAG,CACtH;aACA,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,OAAO,GAAG,mBAAmB,uBAAuB,SAAS,uIAAuI,WAAW,GAAG,aAAa,EAAE,CAAC;IACnO,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,GAAG,mBAAmB,uDAAuD,CAAC;IACtF,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAAgB;IACtD,MAAM,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;IACjC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;IAEnC,MAAM,aAAa,GAAG,MAAM,kBAAkB,EAAE,CAAC;IAEjD,MAAM,cAAc,GAAG;QACtB,KAAK,EAAE,MAAM,CAAC,YAAY;QAC1B,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,uBAAuB,EAAE;QAChC,aAAa,EAAE,EAAE,IAAI,EAAE,SAAkB,EAAE,OAAO,EAAE,aAAa,EAAE;QACnE,mBAAmB,EAAE,UAAU;QAC/B,gBAAgB,EAAE;YACjB,OAAO,EAAE,IAAI;YACb,6BAA6B,EAAE,GAAG;YAClC,yBAAyB,EAAE,IAAI;SAC/B;KACD,CAAC;IAEF,iCAAiC;IACjC,MAAM,cAAc,GAAG,MAAM,iBAAiB,EAAE,CAAC;IACjD,IAAI,cAAc,EAAE,CAAC;QACpB,IAAI,CAAC;YACJ,OAAO,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;YACrE,SAAS,GAAG,cAAc,CAAC;YAC3B,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,8BAA8B,CAAC,CAAC;YAC3D,OAAO;QACR,CAAC;QAAC,MAAM,CAAC;YACR,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,4CAA4C,CAAC,CAAC;QAC1F,CAAC;IACF,CAAC;IAED,qBAAqB;IACrB,OAAO,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;IACrD,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAC9B,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC1B,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,kCAAkC,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAa;IACtC,IAAI,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE;QACpC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC3C,gBAAgB,CAAC;gBAChB,SAAS,EAAE,cAAc;gBACzB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,CAAC;gBAClC,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,CAAC;aACpC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,8BAA8B,CAAC,CAAC,CAAC;QAC1E,CAAC;IACF,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAC1B,MAAc,EACd,MAAkC,EAClC,OAAqD;IAErD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACtC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAChE,YAAY,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,YAAY;IAC1B,IAAI,UAAU,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACpD,UAAU,GAAG,IAAI,CAAC;IAElB,OAAO,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,EAAG,CAAC;QAClC,IAAI,CAAC;YACJ,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;YAC3C,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,0BAA0B,CAAC,CAAC;YAClD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC;IACF,CAAC;IAED,UAAU,GAAG,KAAK,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,GAAkB;IAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACzD,CAAC;IAED,0EAA0E;IAC1E,MAAM,WAAW,GAAG,UAAU,EAAE,CAAC;IACjC,IAAI,WAAW,CAAC,YAAY,KAAK,YAAY,EAAE,CAAC;QAC/C,MAAM,CAAC,IAAI,CACV,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,WAAW,CAAC,YAAY,EAAE,EACpD,wDAAwD,CACxD,CAAC;QACF,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC;QACxC,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;QACjC,MAAM,aAAa,GAAG,MAAM,kBAAkB,EAAE,CAAC;QACjD,OAAO,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC;YACpC,KAAK,EAAE,YAAY;YACnB,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,uBAAuB,EAAE;YAChC,aAAa,EAAE,EAAE,IAAI,EAAE,SAAkB,EAAE,OAAO,EAAE,aAAa,EAAE;YACnE,mBAAmB,EAAE,UAAU;YAC/B,gBAAgB,EAAE;gBACjB,OAAO,EAAE,IAAI;gBACb,6BAA6B,EAAE,GAAG;gBAClC,yBAAyB,EAAE,IAAI;aAC/B;SACD,CAAC,CAAC;QACH,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAC9B,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC1B,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,+CAA+C,CAAC,CAAC;IAClG,CAAC;IAED,MAAM,yBAAyB,CAAC;QAC/B,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,GAAG,CAAC,MAAM;QACnB,MAAM,EAAE,GAAG,CAAC,MAAM;KAClB,CAAC,CAAC;IAEH,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAEvB,gCAAgC;IAChC,MAAM,UAAU,GAAG,OAAO,CAAC,EAAE,CAAC,yBAAyB,EAAE,CAAC,KAAK,EAAE,EAAE;QAClE,WAAW,IAAI,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;QACvC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,CACvC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,EACtB,OAAO,CACP,CAAC;QAEF,MAAM,YAAY,GACjB,OAAO,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YAC1E,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO;YACrB,CAAC,CAAC,WAAW,IAAI,eAAe,CAAC;QAEnC,MAAM,yBAAyB,CAAC;YAC/B,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,YAAY;YACrB,MAAM,EAAE,GAAG,CAAC,MAAM;SAClB,CAAC,CAAC;QACH,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAEhC,OAAO,YAAY,CAAC;IACrB,CAAC;YAAS,CAAC;QACV,UAAU,EAAE,CAAC;IACd,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACxC,OAAO,GAAG,SAAS,CAAC;IACpB,SAAS,GAAG,SAAS,CAAC;AACvB,CAAC;AAED,KAAK,UAAU,iBAAiB;IAC/B,IAAI,CAAC;QACJ,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAC9B,kEAAkE,CAClE,CAAC;QACF,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAe,CAAC;QACvC,CAAC;QACD,OAAO,SAAS,CAAC;IAClB,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,SAAS,CAAC;IAClB,CAAC;AACF,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,EAAU;IACtC,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACzB,MAAM,EAAE,CAAC,OAAO,CAAC;QAChB,GAAG,EAAE,oFAAoF;QACzF,IAAI,EAAE,CAAC,EAAE,CAAC;KACV,CAAC,CAAC;AACJ,CAAC"}
@@ -28,6 +28,7 @@ export declare function queryUsage(filters?: {
28
28
  estimatedCostUsd: number | null;
29
29
  timestamp: string;
30
30
  squadId: string | null;
31
+ squadName: string | null;
31
32
  agentRole: string | null;
32
33
  }>;
33
34
  totals: {
@@ -1 +1 @@
1
- {"version":3,"file":"token-tracker.d.ts","sourceRoot":"","sources":["../../src/models/token-tracker.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,gBAAgB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsB9E;AAwBD;;GAEG;AACH,wBAAsB,UAAU,CAAC,OAAO,CAAC,EAAE;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CAAC;IACX,OAAO,EAAE,KAAK,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;QAChC,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;KACzB,CAAC,CAAC;IACH,MAAM,EAAE;QACP,gBAAgB,EAAE,MAAM,CAAC;QACzB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;KAClB,CAAC;CACF,CAAC,CA6DD"}
1
+ {"version":3,"file":"token-tracker.d.ts","sourceRoot":"","sources":["../../src/models/token-tracker.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,gBAAgB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsB9E;AAwBD;;GAEG;AACH,wBAAsB,UAAU,CAAC,OAAO,CAAC,EAAE;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CAAC;IACX,OAAO,EAAE,KAAK,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;QAChC,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;KACzB,CAAC,CAAC;IACH,MAAM,EAAE;QACP,gBAAgB,EAAE,MAAM,CAAC;QACzB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;KAClB,CAAC;CACF,CAAC,CA8DD"}
@@ -49,29 +49,29 @@ export async function queryUsage(filters) {
49
49
  const conditions = [];
50
50
  const args = [];
51
51
  if (filters?.squadId) {
52
- conditions.push('squad_id = ?');
52
+ conditions.push('t.squad_id = ?');
53
53
  args.push(filters.squadId);
54
54
  }
55
55
  if (filters?.agentRole) {
56
- conditions.push('agent_role = ?');
56
+ conditions.push('t.agent_role = ?');
57
57
  args.push(filters.agentRole);
58
58
  }
59
59
  if (filters?.model) {
60
- conditions.push('model = ?');
60
+ conditions.push('t.model = ?');
61
61
  args.push(filters.model);
62
62
  }
63
63
  if (filters?.since) {
64
- conditions.push('timestamp >= ?');
64
+ conditions.push('t.timestamp >= ?');
65
65
  args.push(filters.since);
66
66
  }
67
67
  if (filters?.until) {
68
- conditions.push('timestamp <= ?');
68
+ conditions.push('t.timestamp <= ?');
69
69
  args.push(filters.until);
70
70
  }
71
71
  const where = conditions.length > 0 ? `WHERE ${conditions.join(' AND ')}` : '';
72
72
  const result = await db.execute({
73
- sql: `SELECT model, input_tokens, output_tokens, estimated_cost_usd, timestamp, squad_id, agent_role
74
- FROM token_usage ${where} ORDER BY timestamp DESC LIMIT 500`,
73
+ sql: `SELECT t.model, t.input_tokens, t.output_tokens, t.estimated_cost_usd, t.timestamp, t.squad_id, t.agent_role, s.name as squad_name
74
+ FROM token_usage t LEFT JOIN squads s ON t.squad_id = s.id ${where} ORDER BY t.timestamp DESC LIMIT 500`,
75
75
  args,
76
76
  });
77
77
  const records = result.rows.map((row) => ({
@@ -81,13 +81,14 @@ export async function queryUsage(filters) {
81
81
  estimatedCostUsd: row.estimated_cost_usd,
82
82
  timestamp: row.timestamp,
83
83
  squadId: row.squad_id,
84
+ squadName: row.squad_name ?? null,
84
85
  agentRole: row.agent_role,
85
86
  }));
86
87
  // Totals
87
88
  const totalsResult = await db.execute({
88
- sql: `SELECT COUNT(*) as cnt, COALESCE(SUM(input_tokens), 0) as total_in,
89
- COALESCE(SUM(output_tokens), 0) as total_out, COALESCE(SUM(estimated_cost_usd), 0) as total_cost
90
- FROM token_usage ${where}`,
89
+ sql: `SELECT COUNT(*) as cnt, COALESCE(SUM(t.input_tokens), 0) as total_in,
90
+ COALESCE(SUM(t.output_tokens), 0) as total_out, COALESCE(SUM(t.estimated_cost_usd), 0) as total_cost
91
+ FROM token_usage t ${where}`,
91
92
  args,
92
93
  });
93
94
  const totalsRow = totalsResult.rows[0];
@@ -1 +1 @@
1
- {"version":3,"file":"token-tracker.js","sourceRoot":"","sources":["../../src/models/token-tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token-tracker.js","sourceRoot":"","sources":["../../src/models/token-tracker.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,10 @@ export declare class Agent {
37
37
  init(squadContext?: string): Promise<void>;
38
38
  /** Send a message and get a response */
39
39
  send(content: string): Promise<string>;
40
+ /** Switch to a different model (reinitializes session) */
41
+ switchModel(newModel: string, squadContext?: string): Promise<void>;
42
+ /** Get the current model */
43
+ getModel(): string;
40
44
  /** Destroy the agent's session */
41
45
  destroy(): Promise<void>;
42
46
  /** Build allowed tools for this agent based on SKILL.md */
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/squad/agent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,WAAW,EAAE,MAAM,YAAY,CAAC;AAa1D,OAAO,EAAE,KAAK,eAAe,EAAuB,MAAM,mBAAmB,CAAC;AAE9E,MAAM,WAAW,WAAW;IAC3B,KAAK,EAAE,eAAe,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACxE;AAED,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CAChB;AAID;;;GAGG;AACH,qBAAa,KAAK;IACjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,QAAQ,CAAC,CAA+D;IAChF,OAAO,CAAC,MAAM,CAAC;IACf,OAAO,CAAC,OAAO,CAAuB;gBAE1B,MAAM,EAAE,WAAW;IAa/B,IAAI,MAAM,IAAI,WAAW,CAExB;IAED,6CAA6C;IACvC,IAAI,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiChD,wCAAwC;IAClC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAwB5C,kCAAkC;IAC5B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ9B,2DAA2D;IAC3D,OAAO,CAAC,UAAU;IA6LlB,OAAO,CAAC,SAAS;CAgBjB"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/squad/agent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,WAAW,EAAE,MAAM,YAAY,CAAC;AAc1D,OAAO,EAAE,KAAK,eAAe,EAAuB,MAAM,mBAAmB,CAAC;AAE9E,MAAM,WAAW,WAAW;IAC3B,KAAK,EAAE,eAAe,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACxE;AAED,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CAChB;AAID;;;GAGG;AACH,qBAAa,KAAK;IACjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,QAAQ,CAAC,CAA+D;IAChF,OAAO,CAAC,MAAM,CAAC;IACf,OAAO,CAAC,OAAO,CAAuB;gBAE1B,MAAM,EAAE,WAAW;IAa/B,IAAI,MAAM,IAAI,WAAW,CAExB;IAED,6CAA6C;IACvC,IAAI,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiChD,wCAAwC;IAClC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAwB5C,0DAA0D;IACpD,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWzE,4BAA4B;IAC5B,QAAQ,IAAI,MAAM;IAIlB,kCAAkC;IAC5B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ9B,2DAA2D;IAC3D,OAAO,CAAC,UAAU;IAkPlB,OAAO,CAAC,SAAS;CAgBjB"}
@@ -3,6 +3,7 @@ import { z } from 'zod';
3
3
  import { getClient } from '../copilot/client.js';
4
4
  import { createChildLogger } from '../logging/logger.js';
5
5
  import { recordTokenUsage } from '../models/token-tracker.js';
6
+ import { addInboxEntry } from '../store/inbox.js';
6
7
  import { getSquadScopes, listWikiPages, readWikiPage, searchWiki, writeWikiPage, } from '../wiki/index.js';
7
8
  import { getEventBus } from './event-bus.js';
8
9
  import { compileSystemPrompt } from './skill-parser.js';
@@ -27,7 +28,7 @@ export class Agent {
27
28
  this.squadId = config.squadId;
28
29
  this.squadName = config.squadName;
29
30
  this.instanceId = config.instanceId;
30
- this.model = config.model ?? 'claude-opus-4.6';
31
+ this.model = config.model ?? 'claude-sonnet-4.6';
31
32
  this.identity = config.identity;
32
33
  this.logger = createChildLogger(`agent:${config.squadName}:${config.identity?.displayName ?? this.role}`);
33
34
  }
@@ -81,6 +82,22 @@ export class Agent {
81
82
  throw err;
82
83
  }
83
84
  }
85
+ /** Switch to a different model (reinitializes session) */
86
+ async switchModel(newModel, squadContext) {
87
+ if (this.model === newModel)
88
+ return;
89
+ this.logger.info({ from: this.model, to: newModel }, 'Switching model');
90
+ this.model = newModel;
91
+ if (this.session) {
92
+ await this.session.disconnect().catch(() => { });
93
+ this.session = null;
94
+ }
95
+ await this.init(squadContext);
96
+ }
97
+ /** Get the current model */
98
+ getModel() {
99
+ return this.model;
100
+ }
84
101
  /** Destroy the agent's session */
85
102
  async destroy() {
86
103
  if (this.session) {
@@ -252,6 +269,47 @@ export class Agent {
252
269
  };
253
270
  },
254
271
  }));
272
+ // Inbox tool — always available so agents can deliver work to user
273
+ tools.push(defineTool('add_to_inbox', {
274
+ description: 'Create an inbox entry for the user. Use to deliver completed work, ask a blocking question, or leave an informational note.',
275
+ parameters: z.object({
276
+ kind: z
277
+ .enum(['deliverable', 'question', 'note'])
278
+ .describe('Type: deliverable (work product), question (blocks until user responds), note (informational)'),
279
+ title: z.string().describe('Short title for the inbox entry'),
280
+ content: z.string().describe('Full content/body of the entry (markdown supported)'),
281
+ }),
282
+ handler: async (args) => {
283
+ try {
284
+ const { entry } = await addInboxEntry({
285
+ squadId: this.squadId,
286
+ instanceId: this.instanceId,
287
+ kind: args.kind,
288
+ title: args.title,
289
+ content: args.content,
290
+ });
291
+ this.logger.info({ entryId: entry.id, kind: args.kind }, 'Agent created inbox entry');
292
+ return {
293
+ textResultForLlm: JSON.stringify({
294
+ created: true,
295
+ id: entry.id,
296
+ kind: entry.kind,
297
+ title: entry.title,
298
+ source: `squad:${this.squadName}:${this.role}`,
299
+ }),
300
+ resultType: 'success',
301
+ };
302
+ }
303
+ catch (err) {
304
+ return {
305
+ textResultForLlm: JSON.stringify({
306
+ error: `Failed to create inbox entry: ${err instanceof Error ? err.message : String(err)}`,
307
+ }),
308
+ resultType: 'success',
309
+ };
310
+ }
311
+ },
312
+ }));
255
313
  return tools;
256
314
  }
257
315
  emitEvent(type, data) {