camelagi 0.5.39 → 0.5.45

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 (182) hide show
  1. package/README.md +159 -27
  2. package/dashboard/404.html +1 -0
  3. package/dashboard/__next.__PAGE__.txt +9 -0
  4. package/dashboard/__next._full.txt +19 -0
  5. package/dashboard/__next._head.txt +6 -0
  6. package/dashboard/__next._index.txt +5 -0
  7. package/dashboard/__next._tree.txt +3 -0
  8. package/dashboard/_next/_next/static/T-oVqD_b6KFHCZwRKsnRE/_buildManifest.js +11 -0
  9. package/dashboard/_next/_next/static/T-oVqD_b6KFHCZwRKsnRE/_clientMiddlewareManifest.js +1 -0
  10. package/dashboard/_next/_next/static/T-oVqD_b6KFHCZwRKsnRE/_ssgManifest.js +1 -0
  11. package/dashboard/_next/_next/static/chunks/0.9wqq91a2h.e.js +3 -0
  12. package/dashboard/_next/_next/static/chunks/00-nlsz4ud071.js +11 -0
  13. package/dashboard/_next/_next/static/chunks/00noe7du3vxk9.js +1 -0
  14. package/dashboard/_next/_next/static/chunks/03~yq9q893hmn.js +1 -0
  15. package/dashboard/_next/_next/static/chunks/04wr2uisy8870.js +5 -0
  16. package/dashboard/_next/_next/static/chunks/05f.w0h0j~.3g.js +1 -0
  17. package/dashboard/_next/_next/static/chunks/0geaa8~wrpcj6.js +1 -0
  18. package/dashboard/_next/_next/static/chunks/0nrlwe_~wde44.js +1 -0
  19. package/dashboard/_next/_next/static/chunks/12l48lp-434~..js +31 -0
  20. package/dashboard/_next/_next/static/chunks/14qcm-bqojrb9.js +1 -0
  21. package/dashboard/_next/_next/static/chunks/15~vsexhgsteo.js +1 -0
  22. package/dashboard/_next/_next/static/chunks/turbopack-173kubfog5kol.js +1 -0
  23. package/dashboard/_next/static/8Qf-y5Z4kUHAaWZgy3BFF/_buildManifest.js +11 -0
  24. package/dashboard/_next/static/8Qf-y5Z4kUHAaWZgy3BFF/_clientMiddlewareManifest.js +1 -0
  25. package/dashboard/_next/static/8Qf-y5Z4kUHAaWZgy3BFF/_ssgManifest.js +1 -0
  26. package/dashboard/_next/static/IQ8CU45QQ3REnyUqiqjou/_buildManifest.js +11 -0
  27. package/dashboard/_next/static/IQ8CU45QQ3REnyUqiqjou/_clientMiddlewareManifest.js +1 -0
  28. package/dashboard/_next/static/IQ8CU45QQ3REnyUqiqjou/_ssgManifest.js +1 -0
  29. package/dashboard/_next/static/PXgzS7j3kuwIb14Ph3vgL/_buildManifest.js +11 -0
  30. package/dashboard/_next/static/PXgzS7j3kuwIb14Ph3vgL/_clientMiddlewareManifest.js +1 -0
  31. package/dashboard/_next/static/PXgzS7j3kuwIb14Ph3vgL/_ssgManifest.js +1 -0
  32. package/dashboard/_next/static/S6BdJ1Ro25a6twuts7gHi/_buildManifest.js +11 -0
  33. package/dashboard/_next/static/S6BdJ1Ro25a6twuts7gHi/_clientMiddlewareManifest.js +1 -0
  34. package/dashboard/_next/static/S6BdJ1Ro25a6twuts7gHi/_ssgManifest.js +1 -0
  35. package/dashboard/_next/static/T-oVqD_b6KFHCZwRKsnRE/_buildManifest.js +11 -0
  36. package/dashboard/_next/static/T-oVqD_b6KFHCZwRKsnRE/_clientMiddlewareManifest.js +1 -0
  37. package/dashboard/_next/static/T-oVqD_b6KFHCZwRKsnRE/_ssgManifest.js +1 -0
  38. package/dashboard/_next/static/bvUynE5XeBkbLQynmgHa8/_buildManifest.js +11 -0
  39. package/dashboard/_next/static/bvUynE5XeBkbLQynmgHa8/_clientMiddlewareManifest.js +1 -0
  40. package/dashboard/_next/static/bvUynE5XeBkbLQynmgHa8/_ssgManifest.js +1 -0
  41. package/dashboard/_next/static/chunks/0.9wqq91a2h.e.js +3 -0
  42. package/dashboard/_next/static/chunks/00-nlsz4ud071.js +11 -0
  43. package/dashboard/_next/static/chunks/00noe7du3vxk9.js +1 -0
  44. package/dashboard/_next/static/chunks/03~yq9q893hmn.js +1 -0
  45. package/dashboard/_next/static/chunks/04wr2uisy8870.js +5 -0
  46. package/dashboard/_next/static/chunks/05f.w0h0j~.3g.js +1 -0
  47. package/dashboard/_next/static/chunks/08ug0khjvhl6m.js +11 -0
  48. package/dashboard/_next/static/chunks/0d1s5w1cd08~7.js +11 -0
  49. package/dashboard/_next/static/chunks/0geaa8~wrpcj6.js +1 -0
  50. package/dashboard/_next/static/chunks/0lyajo4_yki3f.js +11 -0
  51. package/dashboard/_next/static/chunks/0nrlwe_~wde44.js +1 -0
  52. package/dashboard/_next/static/chunks/0pd15v2_1spxb.js +11 -0
  53. package/dashboard/_next/static/chunks/0vnhcfh7g1u6i.js +11 -0
  54. package/dashboard/_next/static/chunks/0ynuwcqa7w3o..css +2 -0
  55. package/dashboard/_next/static/chunks/11dfqgfbc8fk2.js +11 -0
  56. package/dashboard/_next/static/chunks/12l48lp-434~..js +31 -0
  57. package/dashboard/_next/static/chunks/14qcm-bqojrb9.js +1 -0
  58. package/dashboard/_next/static/chunks/15~vsexhgsteo.js +1 -0
  59. package/dashboard/_next/static/chunks/turbopack-173kubfog5kol.js +1 -0
  60. package/dashboard/_next/static/media/1bffadaabf893a1e-s.16ipb6fqu393i.woff2 +0 -0
  61. package/dashboard/_next/static/media/2bbe8d2671613f1f-s.067x_6k0k23tk.woff2 +0 -0
  62. package/dashboard/_next/static/media/2c55a0e60120577a-s.0bjc5tiuqdqro.woff2 +0 -0
  63. package/dashboard/_next/static/media/5476f68d60460930-s.0wxq9webf.ew4.woff2 +0 -0
  64. package/dashboard/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2 +0 -0
  65. package/dashboard/_next/static/media/9c72aa0f40e4eef8-s.0m6w47a4e5dy9.woff2 +0 -0
  66. package/dashboard/_next/static/media/ad66f9afd8947f86-s.11u06r12fd6v_.woff2 +0 -0
  67. package/dashboard/_next/static/media/favicon.0x3dzn~oxb6tn.ico +0 -0
  68. package/dashboard/_next/static/uQ6ZB7JlP8tE93mlzKtXM/_buildManifest.js +11 -0
  69. package/dashboard/_next/static/uQ6ZB7JlP8tE93mlzKtXM/_clientMiddlewareManifest.js +1 -0
  70. package/dashboard/_next/static/uQ6ZB7JlP8tE93mlzKtXM/_ssgManifest.js +1 -0
  71. package/dashboard/_not-found/__next._full.txt +16 -0
  72. package/dashboard/_not-found/__next._head.txt +6 -0
  73. package/dashboard/_not-found/__next._index.txt +5 -0
  74. package/dashboard/_not-found/__next._not-found.__PAGE__.txt +5 -0
  75. package/dashboard/_not-found/__next._not-found.txt +5 -0
  76. package/dashboard/_not-found/__next._tree.txt +2 -0
  77. package/dashboard/_not-found.html +1 -0
  78. package/dashboard/_not-found.txt +16 -0
  79. package/dashboard/favicon.ico +0 -0
  80. package/dashboard/file.svg +1 -0
  81. package/dashboard/globe.svg +1 -0
  82. package/dashboard/index.html +1 -0
  83. package/dashboard/index.txt +19 -0
  84. package/dashboard/next.svg +1 -0
  85. package/dashboard/vercel.svg +1 -0
  86. package/dashboard/window.svg +1 -0
  87. package/dist/agent/agent-cursor.js +138 -0
  88. package/dist/agent/agent-cursor.js.map +1 -0
  89. package/dist/agent/agent-sdk.js +71 -57
  90. package/dist/agent/agent-sdk.js.map +1 -1
  91. package/dist/agent/types.js +1 -1
  92. package/dist/agent/types.js.map +1 -1
  93. package/dist/agent.js +11 -7
  94. package/dist/agent.js.map +1 -1
  95. package/dist/bootstrap.js +1 -1
  96. package/dist/bootstrap.js.map +1 -1
  97. package/dist/cli/cmd-config.js +1 -1
  98. package/dist/cli/cmd-config.js.map +1 -1
  99. package/dist/cli/cmd-dashboard.js +63 -0
  100. package/dist/cli/cmd-dashboard.js.map +1 -0
  101. package/dist/cli/cmd-pairing.js +1 -1
  102. package/dist/cli/cmd-pairing.js.map +1 -1
  103. package/dist/cli/cmd-projects.js +128 -0
  104. package/dist/cli/cmd-projects.js.map +1 -0
  105. package/dist/cli/cmd-team.js +587 -0
  106. package/dist/cli/cmd-team.js.map +1 -0
  107. package/dist/cli.js +2 -1
  108. package/dist/cli.js.map +1 -1
  109. package/dist/core/config.js +33 -48
  110. package/dist/core/config.js.map +1 -1
  111. package/dist/core/constants.js +2 -0
  112. package/dist/core/constants.js.map +1 -1
  113. package/dist/core/version.js +1 -1
  114. package/dist/extensions/bot-approval.js.map +1 -0
  115. package/dist/extensions/pairing.js.map +1 -0
  116. package/dist/extensions/team-coordinator.js +63 -0
  117. package/dist/extensions/team-coordinator.js.map +1 -0
  118. package/dist/gateway/csrf.js +1 -1
  119. package/dist/gateway/csrf.js.map +1 -1
  120. package/dist/gateway/routes.js +198 -95
  121. package/dist/gateway/routes.js.map +1 -1
  122. package/dist/gateway/ws-handler.js +200 -168
  123. package/dist/gateway/ws-handler.js.map +1 -1
  124. package/dist/gateway-entry.js +8 -2
  125. package/dist/gateway-entry.js.map +1 -1
  126. package/dist/model.js +5 -4
  127. package/dist/model.js.map +1 -1
  128. package/dist/runtime/orchestrate.js +19 -8
  129. package/dist/runtime/orchestrate.js.map +1 -1
  130. package/dist/serve.js +18 -3
  131. package/dist/serve.js.map +1 -1
  132. package/dist/session.js +14 -2
  133. package/dist/session.js.map +1 -1
  134. package/dist/setup.js +17 -2
  135. package/dist/setup.js.map +1 -1
  136. package/dist/team.js +203 -0
  137. package/dist/team.js.map +1 -0
  138. package/dist/telegram/admin-agents.js +498 -0
  139. package/dist/telegram/admin-agents.js.map +1 -0
  140. package/dist/telegram/admin-bot.js +13 -934
  141. package/dist/telegram/admin-bot.js.map +1 -1
  142. package/dist/telegram/admin-commands.js +403 -0
  143. package/dist/telegram/admin-commands.js.map +1 -0
  144. package/dist/telegram/agent-bot.js +45 -1338
  145. package/dist/telegram/agent-bot.js.map +1 -1
  146. package/dist/telegram/agent-claude-code.js +555 -0
  147. package/dist/telegram/agent-claude-code.js.map +1 -0
  148. package/dist/telegram/agent-commands.js +396 -0
  149. package/dist/telegram/agent-commands.js.map +1 -0
  150. package/dist/telegram/agent-context.js +136 -0
  151. package/dist/telegram/agent-context.js.map +1 -0
  152. package/dist/telegram/agent-messages.js +249 -0
  153. package/dist/telegram/agent-messages.js.map +1 -0
  154. package/dist/telegram/dir-browser.js +9 -0
  155. package/dist/telegram/dir-browser.js.map +1 -1
  156. package/dist/telegram/draft-stream.js +4 -2
  157. package/dist/telegram/draft-stream.js.map +1 -1
  158. package/dist/telegram/resolve.js +15 -28
  159. package/dist/telegram/resolve.js.map +1 -1
  160. package/dist/telegram/terminal.js +139 -32
  161. package/dist/telegram/terminal.js.map +1 -1
  162. package/dist/telegram/wizards.js +1 -1
  163. package/dist/telegram/wizards.js.map +1 -1
  164. package/dist/telegram.js +4 -3
  165. package/dist/telegram.js.map +1 -1
  166. package/dist/tools/admin.js +841 -0
  167. package/dist/tools/admin.js.map +1 -0
  168. package/dist/tools/team.js +182 -0
  169. package/dist/tools/team.js.map +1 -0
  170. package/dist/tui/commands.js +15 -0
  171. package/dist/tui/commands.js.map +1 -1
  172. package/dist/tui/components/welcome.js +2 -1
  173. package/dist/tui/components/welcome.js.map +1 -1
  174. package/dist/tui/tui.js +13 -1
  175. package/dist/tui/tui.js.map +1 -1
  176. package/package.json +4 -1
  177. package/dist/cli/cmd-install.js +0 -80
  178. package/dist/cli/cmd-install.js.map +0 -1
  179. package/dist/telegram/bot-approval.js.map +0 -1
  180. package/dist/telegram/pairing.js.map +0 -1
  181. /package/dist/{telegram → extensions}/bot-approval.js +0 -0
  182. /package/dist/{telegram → extensions}/pairing.js +0 -0
@@ -1,7 +1,7 @@
1
1
  // Gateway WebSocket handler
2
2
  import { createClient } from "../model.js";
3
3
  import { buildSystemPrompt } from "../system-prompt.js";
4
- import { loadMessages, listSessions, deleteSession } from "../session.js";
4
+ import { loadMessages, listSessions, deleteSession, getSessionMeta } from "../session.js";
5
5
  import { getActiveRunCount } from "../runtime/runs.js";
6
6
  import { compactHistory } from "../runtime/compact.js";
7
7
  import { getLaneStats } from "../runtime/lanes.js";
@@ -11,6 +11,180 @@ import { CHARS_PER_TOKEN } from "../core/constants.js";
11
11
  import { errorMessage } from "../core/errors.js";
12
12
  import { submitDecision } from "../extensions/approvals.js";
13
13
  import { checkAuth, send, logMessage, notifyWatchers, parseTokenFromUrl } from "./state.js";
14
+ // --- Individual message handlers ---
15
+ async function handleChat(ws, state, session, msg) {
16
+ const sid = msg.session ?? `ws-${Date.now()}`;
17
+ logMessage(state, "tui", "in", sid, msg.message);
18
+ session.abortController = new AbortController();
19
+ const resumeId = msg.sdkSessionId ?? session.sdkSessionId;
20
+ const requestedSdk = msg.sdk ?? undefined;
21
+ try {
22
+ const result = await orchestrate({
23
+ sessionId: sid,
24
+ message: msg.message,
25
+ config: state.config,
26
+ systemPrompt: state.systemPrompt,
27
+ client: state.client,
28
+ signal: session.abortController.signal,
29
+ resumeSessionId: resumeId,
30
+ sdk: requestedSdk,
31
+ onEvent: (event) => {
32
+ if (event.type === "init") {
33
+ session.sdkSessionId = event.sessionId;
34
+ }
35
+ send(ws, event);
36
+ // Broadcast key events to watchers
37
+ if (["tool_call", "tool_result", "thinking", "subagent_start", "subagent_done", "stream_text"].includes(event.type)) {
38
+ notifyWatchers(state, { ...event, _session: sid });
39
+ }
40
+ },
41
+ onRetry: (attempt, kind) => {
42
+ send(ws, { type: "retry", attempt, kind });
43
+ notifyWatchers(state, { type: "watch.retry", session: sid, attempt, kind, ts: Date.now() });
44
+ },
45
+ onCompact: (oldCount, newCount) => {
46
+ send(ws, { type: "compacted", oldCount, newCount });
47
+ },
48
+ });
49
+ if (result.queued) {
50
+ send(ws, { type: "queued", session: sid });
51
+ }
52
+ else {
53
+ if (result.response) {
54
+ logMessage(state, "tui", "out", sid, result.response);
55
+ }
56
+ notifyWatchers(state, { type: "watch.done", session: sid, runId: result.runId, ts: Date.now() });
57
+ if (result.sdkSessionId) {
58
+ session.sdkSessionId = result.sdkSessionId;
59
+ }
60
+ session.currentRunId = result.runId;
61
+ send(ws, {
62
+ type: "done",
63
+ response: result.response,
64
+ session: sid,
65
+ runId: result.runId,
66
+ usage: result.usage,
67
+ sdkSessionId: session.sdkSessionId,
68
+ sdk: result.sdk,
69
+ });
70
+ }
71
+ }
72
+ finally {
73
+ session.abortController = null;
74
+ session.currentRunId = null;
75
+ }
76
+ }
77
+ function handleSessionsList(ws) {
78
+ send(ws, { type: "sessions", sessions: listSessions() });
79
+ }
80
+ function handleSessionsDelete(ws, msg) {
81
+ if (msg.id)
82
+ deleteSession(msg.id);
83
+ send(ws, { type: "sessions", sessions: listSessions() });
84
+ }
85
+ function handleSessionsHistory(ws, msg) {
86
+ const histSid = (msg.id ?? msg.session ?? "");
87
+ const messages = loadMessages(histSid);
88
+ const meta = getSessionMeta(histSid);
89
+ send(ws, {
90
+ type: "history",
91
+ session: histSid,
92
+ messages: messages.map((m) => ({ role: m.role, content: m.content })),
93
+ sdk: meta?.sdk ?? "claude",
94
+ });
95
+ }
96
+ async function handleCompact(ws, state, msg) {
97
+ const compactSid = msg.session;
98
+ if (!compactSid) {
99
+ send(ws, { type: "error", message: "session is required" });
100
+ return;
101
+ }
102
+ const history = loadMessages(compactSid);
103
+ const result = await compactHistory(state.client, state.config.model, history, {
104
+ ...state.config.compaction,
105
+ enabled: true,
106
+ });
107
+ send(ws, {
108
+ type: "compacted",
109
+ session: compactSid,
110
+ oldCount: history.length,
111
+ newCount: result ? result.length : history.length,
112
+ });
113
+ }
114
+ function handleStatus(ws, state, msg) {
115
+ const statusSid = (msg.session ?? "");
116
+ const usage = getSessionUsage(statusSid);
117
+ const messages = loadMessages(statusSid);
118
+ const historyChars = messages.reduce((sum, m) => sum + m.content.length, 0);
119
+ const meta = getSessionMeta(statusSid);
120
+ send(ws, {
121
+ type: "status",
122
+ session: statusSid,
123
+ model: state.config.model,
124
+ provider: state.config.provider,
125
+ messageCount: messages.length,
126
+ historyTokens: Math.ceil(historyChars / CHARS_PER_TOKEN),
127
+ usage: usage.calls > 0 ? usage : null,
128
+ lanes: getLaneStats(),
129
+ activeRuns: getActiveRunCount(),
130
+ sdk: meta?.sdk ?? "claude",
131
+ });
132
+ }
133
+ function handleModelSwitch(ws, state, msg) {
134
+ try {
135
+ const newModel = msg.model;
136
+ const newThinking = msg.thinking;
137
+ const newEffort = msg.effort;
138
+ if (newModel)
139
+ state.config = { ...state.config, model: newModel };
140
+ if (newThinking)
141
+ state.config = { ...state.config, thinking: newThinking };
142
+ if (newEffort)
143
+ state.config = { ...state.config, effort: newEffort };
144
+ state.client = createClient(state.config);
145
+ state.systemPrompt = buildSystemPrompt(state.config.systemPrompt);
146
+ send(ws, { type: "model.switched", model: state.config.model, thinking: state.config.thinking, effort: state.config.effort });
147
+ }
148
+ catch (err) {
149
+ send(ws, { type: "error", message: `Model switch failed: ${errorMessage(err)}` });
150
+ }
151
+ }
152
+ function handleAbort(ws, session) {
153
+ if (session.abortController) {
154
+ session.abortController.abort();
155
+ session.abortController = null;
156
+ send(ws, { type: "aborted" });
157
+ }
158
+ }
159
+ function handleWatch(ws, state) {
160
+ state.watchers.add(ws);
161
+ const sessions = listSessions();
162
+ send(ws, {
163
+ type: "watch.snapshot",
164
+ uptime: Math.floor((Date.now() - state.startTime) / 1000),
165
+ sessions,
166
+ activeRuns: getActiveRunCount(),
167
+ lanes: getLaneStats(),
168
+ clients: state.clients.size,
169
+ watchers: state.watchers.size,
170
+ agents: Object.keys(state.config.agents),
171
+ model: state.config.model,
172
+ tailscaleUrl: state.tailscaleUrl ?? null,
173
+ });
174
+ }
175
+ function handleApprovalDecide(ws, msg) {
176
+ const id = msg.id;
177
+ const decision = msg.decision;
178
+ if (!id || !decision) {
179
+ send(ws, { type: "error", message: "approval.decide requires id and decision" });
180
+ return;
181
+ }
182
+ const resolved = submitDecision(id, decision);
183
+ if (!resolved) {
184
+ send(ws, { type: "error", message: "Approval not found or already resolved" });
185
+ }
186
+ }
187
+ // --- Main handler registration ---
14
188
  export function registerWsHandler(wss, state) {
15
189
  wss.on("connection", (ws, req) => {
16
190
  if (!checkAuth(state, req.headers.authorization ?? parseTokenFromUrl(req.url))) {
@@ -20,9 +194,11 @@ export function registerWsHandler(wss, state) {
20
194
  state.clients.add(ws);
21
195
  const alive = { value: true };
22
196
  ws.on("pong", () => { alive.value = true; });
23
- let abortController = null;
24
- let currentRunId = null;
25
- let sdkSessionId;
197
+ const session = {
198
+ abortController: null,
199
+ currentRunId: null,
200
+ sdkSessionId: undefined,
201
+ };
26
202
  ws.on("message", async (raw) => {
27
203
  let msg;
28
204
  try {
@@ -34,181 +210,37 @@ export function registerWsHandler(wss, state) {
34
210
  }
35
211
  try {
36
212
  switch (msg.type) {
37
- case "chat": {
38
- const sid = msg.session ?? `ws-${Date.now()}`;
39
- logMessage(state, "tui", "in", sid, msg.message);
40
- abortController = new AbortController();
41
- const resumeId = msg.sdkSessionId ?? sdkSessionId;
42
- try {
43
- const result = await orchestrate({
44
- sessionId: sid,
45
- message: msg.message,
46
- config: state.config,
47
- systemPrompt: state.systemPrompt,
48
- client: state.client,
49
- signal: abortController.signal,
50
- resumeSessionId: resumeId,
51
- onEvent: (event) => {
52
- if (event.type === "init") {
53
- sdkSessionId = event.sessionId;
54
- }
55
- send(ws, event);
56
- // Broadcast key events to watchers
57
- if (["tool_call", "tool_result", "thinking", "subagent_start", "subagent_done", "stream_text"].includes(event.type)) {
58
- notifyWatchers(state, { ...event, _session: sid });
59
- }
60
- },
61
- onRetry: (attempt, kind) => {
62
- send(ws, { type: "retry", attempt, kind });
63
- notifyWatchers(state, { type: "watch.retry", session: sid, attempt, kind, ts: Date.now() });
64
- },
65
- onCompact: (oldCount, newCount) => {
66
- send(ws, { type: "compacted", oldCount, newCount });
67
- },
68
- });
69
- if (result.queued) {
70
- send(ws, { type: "queued", session: sid });
71
- }
72
- else {
73
- if (result.response) {
74
- logMessage(state, "tui", "out", sid, result.response);
75
- }
76
- notifyWatchers(state, { type: "watch.done", session: sid, runId: result.runId, ts: Date.now() });
77
- if (result.sdkSessionId) {
78
- sdkSessionId = result.sdkSessionId;
79
- }
80
- currentRunId = result.runId;
81
- send(ws, {
82
- type: "done",
83
- response: result.response,
84
- session: sid,
85
- runId: result.runId,
86
- usage: result.usage,
87
- sdkSessionId,
88
- });
89
- }
90
- }
91
- finally {
92
- abortController = null;
93
- currentRunId = null;
94
- }
213
+ case "chat":
214
+ await handleChat(ws, state, session, msg);
95
215
  break;
96
- }
97
216
  case "sessions.list":
98
- send(ws, { type: "sessions", sessions: listSessions() });
217
+ handleSessionsList(ws);
99
218
  break;
100
219
  case "sessions.delete":
101
- if (msg.id)
102
- deleteSession(msg.id);
103
- send(ws, { type: "sessions", sessions: listSessions() });
220
+ handleSessionsDelete(ws, msg);
104
221
  break;
105
- case "sessions.history": {
106
- const messages = loadMessages((msg.id ?? msg.session ?? ""));
107
- send(ws, {
108
- type: "history",
109
- session: msg.id ?? msg.session,
110
- messages: messages.map((m) => ({ role: m.role, content: m.content })),
111
- });
222
+ case "sessions.history":
223
+ handleSessionsHistory(ws, msg);
112
224
  break;
113
- }
114
- case "compact": {
115
- const compactSid = msg.session;
116
- if (!compactSid) {
117
- send(ws, { type: "error", message: "session is required" });
118
- break;
119
- }
120
- const history = loadMessages(compactSid);
121
- const result = await compactHistory(state.client, state.config.model, history, {
122
- ...state.config.compaction,
123
- enabled: true,
124
- });
125
- send(ws, {
126
- type: "compacted",
127
- session: compactSid,
128
- oldCount: history.length,
129
- newCount: result ? result.length : history.length,
130
- });
225
+ case "compact":
226
+ await handleCompact(ws, state, msg);
131
227
  break;
132
- }
133
- case "status": {
134
- const statusSid = (msg.session ?? "");
135
- const usage = getSessionUsage(statusSid);
136
- const messages = loadMessages(statusSid);
137
- const historyChars = messages.reduce((sum, m) => sum + m.content.length, 0);
138
- send(ws, {
139
- type: "status",
140
- session: statusSid,
141
- model: state.config.model,
142
- provider: state.config.provider,
143
- messageCount: messages.length,
144
- historyTokens: Math.ceil(historyChars / CHARS_PER_TOKEN),
145
- usage: usage.calls > 0 ? usage : null,
146
- lanes: getLaneStats(),
147
- activeRuns: getActiveRunCount(),
148
- });
228
+ case "status":
229
+ handleStatus(ws, state, msg);
149
230
  break;
150
- }
151
- case "model.switch": {
152
- try {
153
- const newModel = msg.model;
154
- const newThinking = msg.thinking;
155
- const newEffort = msg.effort;
156
- if (newModel)
157
- state.config = { ...state.config, model: newModel };
158
- if (newThinking)
159
- state.config = { ...state.config, thinking: newThinking };
160
- if (newEffort)
161
- state.config = { ...state.config, effort: newEffort };
162
- state.client = createClient(state.config);
163
- state.systemPrompt = buildSystemPrompt(state.config.systemPrompt);
164
- send(ws, { type: "model.switched", model: state.config.model, thinking: state.config.thinking, effort: state.config.effort });
165
- }
166
- catch (err) {
167
- send(ws, { type: "error", message: `Model switch failed: ${errorMessage(err)}` });
168
- }
231
+ case "model.switch":
232
+ handleModelSwitch(ws, state, msg);
169
233
  break;
170
- }
171
234
  case "abort":
172
- if (abortController) {
173
- abortController.abort();
174
- abortController = null;
175
- send(ws, { type: "aborted" });
176
- }
235
+ handleAbort(ws, session);
177
236
  break;
178
- case "watch": {
179
- // Subscribe this client as a watcher (observer mode)
180
- state.watchers.add(ws);
181
- // Send current state snapshot
182
- const sessions = listSessions();
183
- send(ws, {
184
- type: "watch.snapshot",
185
- uptime: Math.floor((Date.now() - state.startTime) / 1000),
186
- sessions,
187
- activeRuns: getActiveRunCount(),
188
- lanes: getLaneStats(),
189
- clients: state.clients.size,
190
- watchers: state.watchers.size,
191
- agents: Object.keys(state.config.agents),
192
- model: state.config.model,
193
- tailscaleUrl: state.tailscaleUrl ?? null,
194
- });
237
+ case "watch":
238
+ handleWatch(ws, state);
195
239
  break;
196
- }
197
- case "approval.decide": {
198
- const id = msg.id;
199
- const decision = msg.decision;
200
- if (!id || !decision) {
201
- send(ws, { type: "error", message: "approval.decide requires id and decision" });
202
- break;
203
- }
204
- const resolved = submitDecision(id, decision);
205
- if (!resolved) {
206
- send(ws, { type: "error", message: "Approval not found or already resolved" });
207
- }
240
+ case "approval.decide":
241
+ handleApprovalDecide(ws, msg);
208
242
  break;
209
- }
210
- default:
211
- send(ws, { type: "error", message: `Unknown type: ${msg.type}` });
243
+ default: send(ws, { type: "error", message: `Unknown type: ${msg.type}` });
212
244
  }
213
245
  }
214
246
  catch (err) {
@@ -218,8 +250,8 @@ export function registerWsHandler(wss, state) {
218
250
  ws.on("close", () => {
219
251
  state.clients.delete(ws);
220
252
  state.watchers.delete(ws);
221
- if (abortController)
222
- abortController.abort();
253
+ if (session.abortController)
254
+ session.abortController.abort();
223
255
  });
224
256
  });
225
257
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ws-handler.js","sourceRoot":"","sources":["../../src/gateway/ws-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ws-handler.js","sourceRoot":"","sources":["../../src/gateway/ws-handler.ts"],"names":[],"mappings":"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"}
@@ -8,8 +8,14 @@ fs.mkdirSync(`${process.env.HOME}/.camelagi/logs`, { recursive: true });
8
8
  const logStream = fs.createWriteStream(debugLog, { flags: "a" });
9
9
  const origStdoutWrite = process.stdout.write.bind(process.stdout);
10
10
  const origStderrWrite = process.stderr.write.bind(process.stderr);
11
- process.stdout.write = ((chunk, ...args) => { logStream.write(chunk); return origStdoutWrite(chunk, ...args); });
12
- process.stderr.write = ((chunk, ...args) => { logStream.write(chunk); return origStderrWrite(chunk, ...args); });
11
+ function teeWrite(original) {
12
+ return function (chunk, ...rest) {
13
+ logStream.write(chunk);
14
+ return original.call(this, chunk, ...rest);
15
+ };
16
+ }
17
+ process.stdout.write = teeWrite(origStdoutWrite);
18
+ process.stderr.write = teeWrite(origStderrWrite);
13
19
  const port = parseInt(process.env.PORT ?? "18305", 10);
14
20
  const host = process.env.HOST ?? "127.0.0.1";
15
21
  await startServer({ port, host, cron: true, boot: false, channels: true });
@@ -1 +1 @@
1
- {"version":3,"file":"gateway-entry.js","sourceRoot":"","sources":["../src/gateway-entry.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,4DAA4D;AAE5D,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,qEAAqE;AACrE,MAAM,QAAQ,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,mCAAmC,CAAC;AACxE,EAAE,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACxE,MAAM,SAAS,GAAG,EAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;AACjE,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAClE,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAClE,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,KAAU,EAAE,GAAG,IAAW,EAAE,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,eAAe,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAQ,CAAC;AACpI,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,KAAU,EAAE,GAAG,IAAW,EAAE,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,eAAe,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAQ,CAAC;AAEpI,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;AACvD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,WAAW,CAAC;AAE7C,MAAM,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"gateway-entry.js","sourceRoot":"","sources":["../src/gateway-entry.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,4DAA4D;AAE5D,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,qEAAqE;AACrE,MAAM,QAAQ,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,mCAAmC,CAAC;AACxE,EAAE,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACxE,MAAM,SAAS,GAAG,EAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;AACjE,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAClE,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAElE,SAAS,QAAQ,CAAC,QAAqC;IACrD,OAAO,UAAoC,KAAc,EAAE,GAAG,IAAe;QAC3E,SAAS,CAAC,KAAK,CAAC,KAA4B,CAAC,CAAC;QAC9C,OAAQ,QAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAY,CAAC;IACtE,CAAgC,CAAC;AACnC,CAAC;AACD,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;AACjD,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;AAEjD,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;AACvD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,WAAW,CAAC;AAE7C,MAAM,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC"}
package/dist/model.js CHANGED
@@ -17,13 +17,14 @@ export async function chatDirect(client, model, system, userContent) {
17
17
  .filter((b) => b.type === "text")
18
18
  .map((b) => b.text)
19
19
  .join("");
20
+ const usage = response.usage;
20
21
  return {
21
22
  content: text,
22
23
  usage: {
23
- inputTokens: response.usage.input_tokens,
24
- outputTokens: response.usage.output_tokens,
25
- cacheReadTokens: response.usage.cache_read_input_tokens ?? 0,
26
- cacheWriteTokens: response.usage.cache_creation_input_tokens ?? 0,
24
+ inputTokens: usage.input_tokens,
25
+ outputTokens: usage.output_tokens,
26
+ cacheReadTokens: usage.cache_read_input_tokens ?? 0,
27
+ cacheWriteTokens: usage.cache_creation_input_tokens ?? 0,
27
28
  },
28
29
  };
29
30
  }
package/dist/model.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA,iEAAiE;AAEjE,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAG1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,gBAAgB,CAAC;IACjD,OAAO,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;AACnC,CAAC;AAOD,6EAA6E;AAC7E,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAiB,EACjB,KAAa,EACb,MAAc,EACd,WAAmB;IAEnB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC5C,KAAK;QACL,UAAU,EAAE,kBAAkB;QAC9B,MAAM;QACN,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;KACnD,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO;SAC1B,MAAM,CAAC,CAAC,CAAC,EAA4B,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;SAC1D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAClB,IAAI,CAAC,EAAE,CAAC,CAAC;IAEZ,OAAO;QACL,OAAO,EAAE,IAAI;QACb,KAAK,EAAE;YACL,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY;YACxC,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa;YAC1C,eAAe,EAAG,QAAQ,CAAC,KAAa,CAAC,uBAAuB,IAAI,CAAC;YACrE,gBAAgB,EAAG,QAAQ,CAAC,KAAa,CAAC,2BAA2B,IAAI,CAAC;SAC3E;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA,iEAAiE;AAEjE,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAG1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,gBAAgB,CAAC;IACjD,OAAO,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;AACnC,CAAC;AAOD,6EAA6E;AAC7E,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAiB,EACjB,KAAa,EACb,MAAc,EACd,WAAmB;IAEnB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC5C,KAAK;QACL,UAAU,EAAE,kBAAkB;QAC9B,MAAM;QACN,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;KACnD,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO;SAC1B,MAAM,CAAC,CAAC,CAAC,EAA4B,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;SAC1D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAClB,IAAI,CAAC,EAAE,CAAC,CAAC;IAEZ,MAAM,KAAK,GAAG,QAAQ,CAAC,KAGtB,CAAC;IACF,OAAO;QACL,OAAO,EAAE,IAAI;QACb,KAAK,EAAE;YACL,WAAW,EAAE,KAAK,CAAC,YAAY;YAC/B,YAAY,EAAE,KAAK,CAAC,aAAa;YACjC,eAAe,EAAE,KAAK,CAAC,uBAAuB,IAAI,CAAC;YACnD,gBAAgB,EAAE,KAAK,CAAC,2BAA2B,IAAI,CAAC;SACzD;KACF,CAAC;AACJ,CAAC"}
@@ -4,7 +4,7 @@
4
4
  // run-agent-with-retry → save-messages → release sequence that was previously
5
5
  // duplicated in routes.ts, ws-handler.ts, and agent-bot.ts.
6
6
  import { runAgent } from "../agent.js";
7
- import { loadMessages, saveMessage } from "../session.js";
7
+ import { loadMessages, saveMessage, getSessionMeta } from "../session.js";
8
8
  import { setActiveRun, clearActiveRun, isRunActive, generateRunId } from "./runs.js";
9
9
  import { queueOrProcess, drainQueue } from "./queue.js";
10
10
  import { compactHistory } from "./compact.js";
@@ -21,7 +21,12 @@ import { acquireLane, Lane } from "./lanes.js";
21
21
  */
22
22
  export async function orchestrate(opts) {
23
23
  const { sessionId, message, config, systemPrompt, client, signal, onEvent, onRetry, onCompact, agentId, resumeSessionId, label, } = opts;
24
- const model = opts.model ?? config.model;
24
+ // Resolve SDK: explicit opt > session history > default
25
+ const existingMeta = getSessionMeta(sessionId);
26
+ const sdk = opts.sdk ?? existingMeta?.sdk ?? "claude";
27
+ const model = sdk === "cursor"
28
+ ? (opts.model ?? config.cursorModel)
29
+ : (opts.model ?? config.model);
25
30
  const agentSystemPrompt = opts.agentSystemPrompt ?? systemPrompt;
26
31
  const thinking = opts.thinking ?? config.thinking;
27
32
  const effort = opts.effort ?? config.effort;
@@ -31,7 +36,7 @@ export async function orchestrate(opts) {
31
36
  const queueResult = await queueOrProcess(sessionId, message);
32
37
  if (queueResult.queued) {
33
38
  const response = await queueResult.promise;
34
- return { response, runId: "", sessionId, usage: null, queued: true };
39
+ return { response, runId: "", sessionId, usage: null, queued: true, sdk };
35
40
  }
36
41
  }
37
42
  const release = await acquireLane(Lane.Main);
@@ -81,11 +86,16 @@ export async function orchestrate(opts) {
81
86
  ...(config.maxBudgetUsd ? { maxBudgetUsd: config.maxBudgetUsd } : {}),
82
87
  ...(resumeSessionId ? { resumeSessionId } : {}),
83
88
  ...(agentId ? { agentId } : {}),
89
+ sdk,
90
+ ...(config.cursorApiKey ? { cursorApiKey: config.cursorApiKey } : {}),
91
+ ...(agentId && config.agents[agentId]?.adminTools ? {
92
+ adminDeps: { getSystemPrompt: () => agentSystemPrompt },
93
+ } : {}),
84
94
  };
85
- if (!config.apiKey) {
95
+ const apiKey = config.apiKey ?? "";
96
+ if (!apiKey) {
86
97
  throw new Error("No API key configured. Run: camel setup");
87
98
  }
88
- const apiKey = config.apiKey;
89
99
  const result = await withRetry(() => runAgent(apiKey, model, agentSystemPrompt, history, message, agentOpts), {
90
100
  maxRetries: config.retry?.maxRetries ?? 3,
91
101
  backoffMs: config.retry?.backoffMs ?? 1000,
@@ -98,10 +108,10 @@ export async function orchestrate(opts) {
98
108
  },
99
109
  });
100
110
  streaming = false;
101
- // Persist messages
102
- saveMessage(sessionId, { role: "user", content: message }, model, label);
111
+ // Persist messages (sdk tag is written into the session meta on creation)
112
+ saveMessage(sessionId, { role: "user", content: message }, model, label, sdk);
103
113
  if (result.response) {
104
- saveMessage(sessionId, { role: "assistant", content: result.response }, model, label);
114
+ saveMessage(sessionId, { role: "assistant", content: result.response }, model, label, sdk);
105
115
  }
106
116
  return {
107
117
  response: result.response,
@@ -109,6 +119,7 @@ export async function orchestrate(opts) {
109
119
  sessionId,
110
120
  usage: result.usage,
111
121
  sdkSessionId: result.sessionId,
122
+ sdk,
112
123
  };
113
124
  }
114
125
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrate.js","sourceRoot":"","sources":["../../src/runtime/orchestrate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrate.js","sourceRoot":"","sources":["../../src/runtime/orchestrate.ts"],"names":[],"mappings":"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"}