camelagi 0.5.41 → 0.5.46

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 (190) hide show
  1. package/README.md +116 -25
  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/04wr2uisy8870.js +5 -0
  15. package/dashboard/_next/_next/static/chunks/05f.w0h0j~.3g.js +1 -0
  16. package/dashboard/_next/_next/static/chunks/0geaa8~wrpcj6.js +1 -0
  17. package/dashboard/_next/_next/static/chunks/0nrlwe_~wde44.js +1 -0
  18. package/dashboard/_next/_next/static/chunks/12l48lp-434~..js +31 -0
  19. package/dashboard/_next/_next/static/chunks/14qcm-bqojrb9.js +1 -0
  20. package/dashboard/_next/_next/static/chunks/15~vsexhgsteo.js +1 -0
  21. package/dashboard/_next/_next/static/chunks/turbopack-173kubfog5kol.js +1 -0
  22. package/dashboard/_next/static/8Qf-y5Z4kUHAaWZgy3BFF/_buildManifest.js +11 -0
  23. package/dashboard/_next/static/8Qf-y5Z4kUHAaWZgy3BFF/_clientMiddlewareManifest.js +1 -0
  24. package/dashboard/_next/static/8Qf-y5Z4kUHAaWZgy3BFF/_ssgManifest.js +1 -0
  25. package/dashboard/_next/static/IQ8CU45QQ3REnyUqiqjou/_buildManifest.js +11 -0
  26. package/dashboard/_next/static/IQ8CU45QQ3REnyUqiqjou/_clientMiddlewareManifest.js +1 -0
  27. package/dashboard/_next/static/IQ8CU45QQ3REnyUqiqjou/_ssgManifest.js +1 -0
  28. package/dashboard/_next/static/PXgzS7j3kuwIb14Ph3vgL/_buildManifest.js +11 -0
  29. package/dashboard/_next/static/PXgzS7j3kuwIb14Ph3vgL/_clientMiddlewareManifest.js +1 -0
  30. package/dashboard/_next/static/PXgzS7j3kuwIb14Ph3vgL/_ssgManifest.js +1 -0
  31. package/dashboard/_next/static/S6BdJ1Ro25a6twuts7gHi/_buildManifest.js +11 -0
  32. package/dashboard/_next/static/S6BdJ1Ro25a6twuts7gHi/_clientMiddlewareManifest.js +1 -0
  33. package/dashboard/_next/static/S6BdJ1Ro25a6twuts7gHi/_ssgManifest.js +1 -0
  34. package/dashboard/_next/static/T-oVqD_b6KFHCZwRKsnRE/_buildManifest.js +11 -0
  35. package/dashboard/_next/static/T-oVqD_b6KFHCZwRKsnRE/_clientMiddlewareManifest.js +1 -0
  36. package/dashboard/_next/static/T-oVqD_b6KFHCZwRKsnRE/_ssgManifest.js +1 -0
  37. package/dashboard/_next/static/bvUynE5XeBkbLQynmgHa8/_buildManifest.js +11 -0
  38. package/dashboard/_next/static/bvUynE5XeBkbLQynmgHa8/_clientMiddlewareManifest.js +1 -0
  39. package/dashboard/_next/static/bvUynE5XeBkbLQynmgHa8/_ssgManifest.js +1 -0
  40. package/dashboard/_next/static/chunks/0.9wqq91a2h.e.js +3 -0
  41. package/dashboard/_next/static/chunks/00-nlsz4ud071.js +11 -0
  42. package/dashboard/_next/static/chunks/00noe7du3vxk9.js +1 -0
  43. package/dashboard/_next/static/chunks/03~yq9q893hmn.js +1 -0
  44. package/dashboard/_next/static/chunks/04wr2uisy8870.js +5 -0
  45. package/dashboard/_next/static/chunks/05f.w0h0j~.3g.js +1 -0
  46. package/dashboard/_next/static/chunks/08ug0khjvhl6m.js +11 -0
  47. package/dashboard/_next/static/chunks/0d1s5w1cd08~7.js +11 -0
  48. package/dashboard/_next/static/chunks/0geaa8~wrpcj6.js +1 -0
  49. package/dashboard/_next/static/chunks/0lyajo4_yki3f.js +11 -0
  50. package/dashboard/_next/static/chunks/0nrlwe_~wde44.js +1 -0
  51. package/dashboard/_next/static/chunks/0pd15v2_1spxb.js +11 -0
  52. package/dashboard/_next/static/chunks/0vnhcfh7g1u6i.js +11 -0
  53. package/dashboard/_next/static/chunks/0ynuwcqa7w3o..css +2 -0
  54. package/dashboard/_next/static/chunks/11dfqgfbc8fk2.js +11 -0
  55. package/dashboard/_next/static/chunks/12l48lp-434~..js +31 -0
  56. package/dashboard/_next/static/chunks/14qcm-bqojrb9.js +1 -0
  57. package/dashboard/_next/static/chunks/15~vsexhgsteo.js +1 -0
  58. package/dashboard/_next/static/chunks/turbopack-173kubfog5kol.js +1 -0
  59. package/dashboard/_next/static/media/1bffadaabf893a1e-s.16ipb6fqu393i.woff2 +0 -0
  60. package/dashboard/_next/static/media/2bbe8d2671613f1f-s.067x_6k0k23tk.woff2 +0 -0
  61. package/dashboard/_next/static/media/2c55a0e60120577a-s.0bjc5tiuqdqro.woff2 +0 -0
  62. package/dashboard/_next/static/media/5476f68d60460930-s.0wxq9webf.ew4.woff2 +0 -0
  63. package/dashboard/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2 +0 -0
  64. package/dashboard/_next/static/media/9c72aa0f40e4eef8-s.0m6w47a4e5dy9.woff2 +0 -0
  65. package/dashboard/_next/static/media/ad66f9afd8947f86-s.11u06r12fd6v_.woff2 +0 -0
  66. package/dashboard/_next/static/media/favicon.0x3dzn~oxb6tn.ico +0 -0
  67. package/dashboard/_next/static/uQ6ZB7JlP8tE93mlzKtXM/_buildManifest.js +11 -0
  68. package/dashboard/_next/static/uQ6ZB7JlP8tE93mlzKtXM/_clientMiddlewareManifest.js +1 -0
  69. package/dashboard/_next/static/uQ6ZB7JlP8tE93mlzKtXM/_ssgManifest.js +1 -0
  70. package/dashboard/_not-found/__next._full.txt +16 -0
  71. package/dashboard/_not-found/__next._head.txt +6 -0
  72. package/dashboard/_not-found/__next._index.txt +5 -0
  73. package/dashboard/_not-found/__next._not-found.__PAGE__.txt +5 -0
  74. package/dashboard/_not-found/__next._not-found.txt +5 -0
  75. package/dashboard/_not-found/__next._tree.txt +2 -0
  76. package/dashboard/_not-found.html +1 -0
  77. package/dashboard/_not-found.txt +16 -0
  78. package/dashboard/favicon.ico +0 -0
  79. package/dashboard/file.svg +1 -0
  80. package/dashboard/globe.svg +1 -0
  81. package/dashboard/index.html +1 -1
  82. package/dashboard/index.txt +18 -27
  83. package/dashboard/next.svg +1 -0
  84. package/dashboard/vercel.svg +1 -0
  85. package/dashboard/window.svg +1 -0
  86. package/dist/agent/agent-cursor.js +138 -0
  87. package/dist/agent/agent-cursor.js.map +1 -0
  88. package/dist/agent/agent-sdk.js +6 -2
  89. package/dist/agent/agent-sdk.js.map +1 -1
  90. package/dist/agent/types.js +1 -1
  91. package/dist/agent/types.js.map +1 -1
  92. package/dist/agent.js +11 -7
  93. package/dist/agent.js.map +1 -1
  94. package/dist/cli/cmd-dashboard.js +63 -0
  95. package/dist/cli/cmd-dashboard.js.map +1 -0
  96. package/dist/cli/cmd-projects.js +128 -0
  97. package/dist/cli/cmd-projects.js.map +1 -0
  98. package/dist/cli/cmd-team.js +587 -0
  99. package/dist/cli/cmd-team.js.map +1 -0
  100. package/dist/cli.js +2 -1
  101. package/dist/cli.js.map +1 -1
  102. package/dist/core/config.js +4 -0
  103. package/dist/core/config.js.map +1 -1
  104. package/dist/core/version.js +1 -1
  105. package/dist/extensions/team-coordinator.js +63 -0
  106. package/dist/extensions/team-coordinator.js.map +1 -0
  107. package/dist/gateway/routes.js +167 -3
  108. package/dist/gateway/routes.js.map +1 -1
  109. package/dist/gateway/ws-handler.js +11 -3
  110. package/dist/gateway/ws-handler.js.map +1 -1
  111. package/dist/runtime/orchestrate.js +19 -8
  112. package/dist/runtime/orchestrate.js.map +1 -1
  113. package/dist/serve.js +15 -17
  114. package/dist/serve.js.map +1 -1
  115. package/dist/session.js +14 -2
  116. package/dist/session.js.map +1 -1
  117. package/dist/team.js +203 -0
  118. package/dist/team.js.map +1 -0
  119. package/dist/telegram/dir-browser.js +9 -0
  120. package/dist/telegram/dir-browser.js.map +1 -1
  121. package/dist/telegram/draft-stream.js +4 -2
  122. package/dist/telegram/draft-stream.js.map +1 -1
  123. package/dist/telegram/terminal.js +65 -31
  124. package/dist/telegram/terminal.js.map +1 -1
  125. package/dist/telegram.js +4 -3
  126. package/dist/telegram.js.map +1 -1
  127. package/dist/tools/admin.js +841 -0
  128. package/dist/tools/admin.js.map +1 -0
  129. package/dist/tools/team.js +182 -0
  130. package/dist/tools/team.js.map +1 -0
  131. package/dist/tui/commands.js +15 -0
  132. package/dist/tui/commands.js.map +1 -1
  133. package/dist/tui/components/welcome.js +2 -1
  134. package/dist/tui/components/welcome.js.map +1 -1
  135. package/dist/tui/tui.js +13 -1
  136. package/dist/tui/tui.js.map +1 -1
  137. package/package.json +3 -1
  138. package/dashboard/_next/static/chunks/172-a2787ae03f0db2b4.js +0 -12
  139. package/dashboard/_next/static/chunks/239-49a9ac3789f8c41c.js +0 -1
  140. package/dashboard/_next/static/chunks/255-102f2e5b2e3dc2ef.js +0 -1
  141. package/dashboard/_next/static/chunks/413-89d8e4554f461999.js +0 -1
  142. package/dashboard/_next/static/chunks/4bd1b696-c023c6e3521b1417.js +0 -1
  143. package/dashboard/_next/static/chunks/619-ba102abea3e3d0e4.js +0 -1
  144. package/dashboard/_next/static/chunks/909-aed3aa549e59d0fb.js +0 -1
  145. package/dashboard/_next/static/chunks/app/_not-found/page-121b856ce9a0ddcd.js +0 -1
  146. package/dashboard/_next/static/chunks/app/dashboard/agents/page-aa6e6fb2a1df7d63.js +0 -1
  147. package/dashboard/_next/static/chunks/app/dashboard/chat/page-feeb17fdc08b91e5.js +0 -1
  148. package/dashboard/_next/static/chunks/app/dashboard/config/page-afad9f4da82a343e.js +0 -1
  149. package/dashboard/_next/static/chunks/app/dashboard/layout-853ce5dfe3461735.js +0 -1
  150. package/dashboard/_next/static/chunks/app/dashboard/monitor/page-1b3d112c49b3a383.js +0 -1
  151. package/dashboard/_next/static/chunks/app/dashboard/page-b15605f3b21f7467.js +0 -1
  152. package/dashboard/_next/static/chunks/app/dashboard/sessions/page-e11d3f3e6ad99067.js +0 -1
  153. package/dashboard/_next/static/chunks/app/docs/[slug]/page-baf0632d98082d10.js +0 -1
  154. package/dashboard/_next/static/chunks/app/docs/page-5933496f46ff00ec.js +0 -1
  155. package/dashboard/_next/static/chunks/app/download/page-da533b5f543dfd66.js +0 -1
  156. package/dashboard/_next/static/chunks/app/layout-1112267c08c875b5.js +0 -1
  157. package/dashboard/_next/static/chunks/app/page-d69c17b39431e2c5.js +0 -1
  158. package/dashboard/_next/static/chunks/framework-de98b93a850cfc71.js +0 -1
  159. package/dashboard/_next/static/chunks/main-8d9a106db393efcf.js +0 -1
  160. package/dashboard/_next/static/chunks/main-app-e38cb42677e65e59.js +0 -1
  161. package/dashboard/_next/static/chunks/pages/_app-7d307437aca18ad4.js +0 -1
  162. package/dashboard/_next/static/chunks/pages/_error-cb2a52f75f2162e2.js +0 -1
  163. package/dashboard/_next/static/chunks/webpack-b2507a6fba7be451.js +0 -1
  164. package/dashboard/_next/static/css/c60b60dc84892a8b.css +0 -5
  165. package/dashboard/_next/static/css/d4ea3c83e49eb5e1.css +0 -4
  166. package/dashboard/_next/static/jjqY4ybx1hNTX-bnJfS2f/_buildManifest.js +0 -1
  167. package/dashboard/_next/static/jjqY4ybx1hNTX-bnJfS2f/_ssgManifest.js +0 -1
  168. package/dashboard/_next/static/media/4cf2300e9c8272f7-s.p.woff2 +0 -0
  169. package/dashboard/_next/static/media/4da3161b738b07dd-s.woff2 +0 -0
  170. package/dashboard/_next/static/media/8d697b304b401681-s.woff2 +0 -0
  171. package/dashboard/_next/static/media/af4bf8399d1aacdf-s.p.woff2 +0 -0
  172. package/dashboard/_next/static/media/ba015fad6dcf6784-s.woff2 +0 -0
  173. package/dashboard/_next/static/media/fb526027db1fc1ae-s.woff2 +0 -0
  174. package/dashboard/agents/index.html +0 -1
  175. package/dashboard/agents/index.txt +0 -28
  176. package/dashboard/chat/index.html +0 -1
  177. package/dashboard/chat/index.txt +0 -28
  178. package/dashboard/config/index.html +0 -1
  179. package/dashboard/config/index.txt +0 -28
  180. package/dashboard/monitor/index.html +0 -1
  181. package/dashboard/monitor/index.txt +0 -28
  182. package/dashboard/sessions/index.html +0 -1
  183. package/dashboard/sessions/index.txt +0 -28
  184. package/dist/cli/cmd-install.js +0 -80
  185. package/dist/cli/cmd-install.js.map +0 -1
  186. package/dist/telegram/bot-approval.js +0 -63
  187. package/dist/telegram/bot-approval.js.map +0 -1
  188. package/dist/telegram/pairing.js +0 -138
  189. package/dist/telegram/pairing.js.map +0 -1
  190. /package/dashboard/_next/{static/chunks/polyfills-42372ed130431b0a.js → _next/static/chunks/03~yq9q893hmn.js} +0 -0
@@ -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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"}
package/dist/serve.js CHANGED
@@ -55,6 +55,16 @@ export async function startServer(opts = {}) {
55
55
  console.log(` \x1b[33m Set serve.token in config or CAMELAGI_TOKEN env var.\x1b[0m\n`);
56
56
  }
57
57
  const app = express();
58
+ // Serve dashboard static files BEFORE rate limiter / CSRF
59
+ const dashboardDir = path.join(path.dirname(new URL(import.meta.url).pathname), "..", "dashboard");
60
+ if (fs.existsSync(dashboardDir)) {
61
+ // Static assets (CSS, JS, fonts) — basePath is /dashboard so paths are /dashboard/_next/...
62
+ app.use("/dashboard", express.static(dashboardDir));
63
+ // SPA fallback — all dashboard routes serve index.html
64
+ app.get("/dashboard/*", (_req, res) => {
65
+ res.sendFile(path.join(dashboardDir, "index.html"));
66
+ });
67
+ }
58
68
  app.use(express.json({ limit: "1mb" }));
59
69
  app.use(csrfProtection(state));
60
70
  if (!opts.silent) {
@@ -81,23 +91,6 @@ export async function startServer(opts = {}) {
81
91
  alive.set(ws, true);
82
92
  ws.on("pong", () => alive.set(ws, true));
83
93
  });
84
- // Serve dashboard static files
85
- const dashboardDir = path.join(path.dirname(new URL(import.meta.url).pathname), "..", "dashboard");
86
- if (fs.existsSync(dashboardDir)) {
87
- app.use("/dashboard", express.static(dashboardDir));
88
- // SPA fallback — serve index.html for dashboard sub-routes
89
- app.get("/dashboard/*", (_req, res) => {
90
- const reqPath = _req.path.replace("/dashboard", "");
91
- const subDir = path.join(dashboardDir, reqPath);
92
- const subIndex = path.join(subDir, "index.html");
93
- if (fs.existsSync(subIndex)) {
94
- res.sendFile(subIndex);
95
- }
96
- else {
97
- res.sendFile(path.join(dashboardDir, "index.html"));
98
- }
99
- });
100
- }
101
94
  // Register handlers
102
95
  registerRoutes(app, state);
103
96
  registerWsHandler(wss, state);
@@ -144,6 +137,11 @@ export async function startServer(opts = {}) {
144
137
  const agentStr = agents.join(", ");
145
138
  console.log(` \x1b[36m│\x1b[0m Agents ${agentStr}${" ".repeat(Math.max(0, 29 - agentStr.length))} \x1b[36m│\x1b[0m`);
146
139
  }
140
+ const dashUrl = `http://${host}:${actualPort}/dashboard`;
141
+ if (fs.existsSync(dashboardDir)) {
142
+ console.log(` \x1b[36m│\x1b[0m \x1b[36m│\x1b[0m`);
143
+ console.log(` \x1b[36m│\x1b[0m \x1b[1m\x1b[33mDashboard\x1b[0m ${dashUrl}${" ".repeat(Math.max(0, 26 - dashUrl.length))} \x1b[36m│\x1b[0m`);
144
+ }
147
145
  console.log(` \x1b[36m╰─────────────────────────────────────╯\x1b[0m`);
148
146
  console.log("");
149
147
  // Boot script
package/dist/serve.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"serve.js","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serve.js","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":"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"}
package/dist/session.js CHANGED
@@ -52,11 +52,11 @@ export function loadMessages(sessionId) {
52
52
  return { role: typeToRole(msg.type), content: msg.content };
53
53
  });
54
54
  }
55
- export function saveMessage(sessionId, message, model, label) {
55
+ export function saveMessage(sessionId, message, model, label, sdk) {
56
56
  fs.mkdirSync(paths.sessionsDir, { recursive: true });
57
57
  const file = sessionPath(sessionId);
58
58
  if (!fs.existsSync(file)) {
59
- const meta = { id: sessionId, createdAt: Date.now(), model, ...(label && { label }) };
59
+ const meta = { id: sessionId, createdAt: Date.now(), model, ...(label && { label }), ...(sdk && { sdk }) };
60
60
  fs.writeFileSync(file, JSON.stringify(meta) + "\n");
61
61
  }
62
62
  // Save with new role names
@@ -66,6 +66,18 @@ export function saveMessage(sessionId, message, model, label) {
66
66
  };
67
67
  fs.appendFileSync(file, JSON.stringify(serialized) + "\n");
68
68
  }
69
+ export function getSessionMeta(sessionId) {
70
+ const file = sessionPath(sessionId);
71
+ if (!fs.existsSync(file))
72
+ return null;
73
+ const firstLine = fs.readFileSync(file, "utf-8").split("\n")[0];
74
+ try {
75
+ return JSON.parse(firstLine);
76
+ }
77
+ catch {
78
+ return null;
79
+ }
80
+ }
69
81
  export function deleteSession(sessionId) {
70
82
  const file = sessionPath(sessionId);
71
83
  if (fs.existsSync(file))
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA,mCAAmC;AAEnC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAkBzC,SAAS,WAAW,CAAC,EAAU;IAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,kBAAkB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,CAAC;IACjD,OAAO,EAAE;SACN,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC;SAC9B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;SACnC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACtE,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAgB,CAAC;QAC9C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,CAAC,EAAoB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;SAC3C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;AAC/C,CAAC;AAED,gEAAgE;AAChE,SAAS,UAAU,CAAC,IAAY;IAC9B,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,OAAO,CAAC;QACb,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB,KAAK,IAAI,CAAC;QACV,KAAK,WAAW;YACd,OAAO,WAAW,CAAC;QACrB,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB;YACE,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,SAAiB;IAC5C,MAAM,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACpC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAEpC,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAsB,CAAC;QAClD,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;IAC9D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,SAAiB,EAAE,OAAgB,EAAE,KAAa,EAAE,KAAc,EAAE,GAAY;IAC1G,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IAEpC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,GAAgB,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;QACxH,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,2BAA2B;IAC3B,MAAM,UAAU,GAAsB;QACpC,IAAI,EAAE,OAAO,CAAC,IAAiC;QAC/C,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC;IACF,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC9C,MAAM,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACpC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,MAAM,SAAS,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,IAAI,CAAC;QAAC,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAgB,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,SAAiB;IAC7C,MAAM,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACpC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC7C,WAAW,CAAC,SAAS,CAAC,CAAC;AACzB,CAAC"}
package/dist/team.js ADDED
@@ -0,0 +1,203 @@
1
+ // Team workspace: shared scratchpad + inbox + state files for collaborating
2
+ // agents. The shape is deliberately simple — plain markdown files an agent
3
+ // can read with the Read tool. The team MCP tools wrap append/read helpers.
4
+ import fs from "node:fs";
5
+ import path from "node:path";
6
+ import { paths } from "./core/config.js";
7
+ export const teamRoot = path.join(paths.configDir, "team");
8
+ /** Resolve all paths for a team. Does not create them. */
9
+ export function teamPaths(teamId) {
10
+ const safeId = sanitizeId(teamId);
11
+ const root = path.join(teamRoot, safeId);
12
+ return {
13
+ root,
14
+ discussion: path.join(root, "discussion.md"),
15
+ state: path.join(root, "state.md"),
16
+ decisions: path.join(root, "decisions.md"),
17
+ inboxDir: path.join(root, "inbox"),
18
+ topicsDir: path.join(root, "topics"),
19
+ archiveDir: path.join(root, "archive"),
20
+ };
21
+ }
22
+ /** Create dirs and seed empty files for a team. Idempotent. */
23
+ export function ensureTeamDir(teamId, members) {
24
+ const p = teamPaths(teamId);
25
+ fs.mkdirSync(p.root, { recursive: true });
26
+ fs.mkdirSync(p.inboxDir, { recursive: true });
27
+ fs.mkdirSync(p.topicsDir, { recursive: true });
28
+ fs.mkdirSync(p.archiveDir, { recursive: true });
29
+ if (!fs.existsSync(p.discussion)) {
30
+ fs.writeFileSync(p.discussion, `# Team discussion — ${teamId}\n\nAppend-only chronological log. Newest entries at the bottom.\nEvery agent reads this at the start of every turn.\n\n---\n`);
31
+ }
32
+ if (!fs.existsSync(p.state)) {
33
+ fs.writeFileSync(p.state, `# Current state — ${teamId}\n\n- **Task:** (none)\n- **Branch:** (none)\n- **Owner:** (none)\n- **Blockers:** (none)\n- **Updated:** ${new Date().toISOString()}\n`);
34
+ }
35
+ if (!fs.existsSync(p.decisions)) {
36
+ fs.writeFileSync(p.decisions, `# Locked decisions — ${teamId}\n\nAppend-only. Once written here it is the team contract — do not contradict.\n\n---\n`);
37
+ }
38
+ for (const a of members) {
39
+ const inboxFile = path.join(p.inboxDir, `${sanitizeId(a)}.md`);
40
+ if (!fs.existsSync(inboxFile)) {
41
+ fs.writeFileSync(inboxFile, `# Inbox — ${a}\n\nUnread messages appear below the cursor line. Move to # Read after handling.\n\n## Cursor\n\n## Read\n`);
42
+ }
43
+ }
44
+ return p;
45
+ }
46
+ // ─── Discussion ──────────────────────────────────────────────────────
47
+ export function appendDiscussion(teamId, fromAgent, text) {
48
+ const p = teamPaths(teamId);
49
+ fs.mkdirSync(p.root, { recursive: true });
50
+ const block = `\n### ${new Date().toISOString()} — ${fromAgent}\n\n${text.trim()}\n`;
51
+ fs.appendFileSync(p.discussion, block);
52
+ }
53
+ /** Read the last `tail` characters of discussion.md (default 8 KB). */
54
+ export function readDiscussion(teamId, tail = 8192) {
55
+ const p = teamPaths(teamId);
56
+ if (!fs.existsSync(p.discussion))
57
+ return "(no discussion yet)";
58
+ const buf = fs.readFileSync(p.discussion, "utf-8");
59
+ return buf.length <= tail ? buf : `…(truncated)…\n${buf.slice(-tail)}`;
60
+ }
61
+ // ─── Inbox ──────────────────────────────────────────────────────────
62
+ export function appendInbox(teamId, to, from, text) {
63
+ const p = teamPaths(teamId);
64
+ fs.mkdirSync(p.inboxDir, { recursive: true });
65
+ const file = path.join(p.inboxDir, `${sanitizeId(to)}.md`);
66
+ // Insert before the "## Read" section so the message lands in unread.
67
+ let body = fs.existsSync(file)
68
+ ? fs.readFileSync(file, "utf-8")
69
+ : `# Inbox — ${to}\n\n## Cursor\n\n## Read\n`;
70
+ const message = `\n### ${new Date().toISOString()} — from ${from}\n\n${text.trim()}\n`;
71
+ if (body.includes("## Read")) {
72
+ body = body.replace(/## Read/, `${message}\n## Read`);
73
+ }
74
+ else {
75
+ body += message;
76
+ }
77
+ fs.writeFileSync(file, body);
78
+ }
79
+ /**
80
+ * Read unread messages for `agent`. Returns the markdown between `## Cursor`
81
+ * and `## Read`. If `markRead` is true, those messages are moved into the Read
82
+ * section and the inbox is reset to empty unread.
83
+ */
84
+ export function readInbox(teamId, agent, markRead = false) {
85
+ const p = teamPaths(teamId);
86
+ const file = path.join(p.inboxDir, `${sanitizeId(agent)}.md`);
87
+ if (!fs.existsSync(file))
88
+ return "";
89
+ const body = fs.readFileSync(file, "utf-8");
90
+ const cursorIdx = body.indexOf("## Cursor");
91
+ const readIdx = body.indexOf("## Read");
92
+ if (cursorIdx < 0 || readIdx < 0 || readIdx < cursorIdx)
93
+ return "";
94
+ const unread = body.slice(cursorIdx + "## Cursor".length, readIdx).trim();
95
+ if (markRead && unread) {
96
+ const head = body.slice(0, cursorIdx + "## Cursor".length);
97
+ const readSection = body.slice(readIdx + "## Read".length);
98
+ const next = `${head}\n\n## Read${readSection}\n${unread}\n`;
99
+ fs.writeFileSync(file, next);
100
+ }
101
+ return unread;
102
+ }
103
+ /** True if the agent has any unread messages. */
104
+ export function hasUnread(teamId, agent) {
105
+ return readInbox(teamId, agent, false).length > 0;
106
+ }
107
+ /** List inboxes that have unread messages. Returns agent ids. */
108
+ export function listInboxesWithUnread(teamId) {
109
+ const p = teamPaths(teamId);
110
+ if (!fs.existsSync(p.inboxDir))
111
+ return [];
112
+ const out = [];
113
+ for (const f of fs.readdirSync(p.inboxDir)) {
114
+ if (!f.endsWith(".md"))
115
+ continue;
116
+ const agentId = f.slice(0, -3);
117
+ if (hasUnread(teamId, agentId))
118
+ out.push(agentId);
119
+ }
120
+ return out;
121
+ }
122
+ // ─── State ──────────────────────────────────────────────────────────
123
+ export function getState(teamId) {
124
+ const p = teamPaths(teamId);
125
+ return fs.existsSync(p.state) ? fs.readFileSync(p.state, "utf-8") : "(no state)";
126
+ }
127
+ export function setState(teamId, content) {
128
+ const p = teamPaths(teamId);
129
+ fs.mkdirSync(p.root, { recursive: true });
130
+ fs.writeFileSync(p.state, content);
131
+ }
132
+ // ─── Decisions ───────────────────────────────────────────────────────
133
+ export function appendDecision(teamId, fromAgent, text) {
134
+ const p = teamPaths(teamId);
135
+ fs.mkdirSync(p.root, { recursive: true });
136
+ const block = `\n### ${new Date().toISOString()} — ${fromAgent}\n\n${text.trim()}\n`;
137
+ fs.appendFileSync(p.decisions, block);
138
+ }
139
+ export function readDecisions(teamId) {
140
+ const p = teamPaths(teamId);
141
+ return fs.existsSync(p.decisions) ? fs.readFileSync(p.decisions, "utf-8") : "(no decisions)";
142
+ }
143
+ // ─── Topics (long-form notes / research / specs) ─────────────────────
144
+ export function writeTopic(teamId, topic, content) {
145
+ const p = teamPaths(teamId);
146
+ fs.mkdirSync(p.topicsDir, { recursive: true });
147
+ const file = path.join(p.topicsDir, `${sanitizeId(topic)}.md`);
148
+ fs.writeFileSync(file, content);
149
+ return file;
150
+ }
151
+ export function readTopic(teamId, topic) {
152
+ const p = teamPaths(teamId);
153
+ const file = path.join(p.topicsDir, `${sanitizeId(topic)}.md`);
154
+ if (!fs.existsSync(file))
155
+ return "(topic not found)";
156
+ return fs.readFileSync(file, "utf-8");
157
+ }
158
+ export function listTopics(teamId) {
159
+ const p = teamPaths(teamId);
160
+ if (!fs.existsSync(p.topicsDir))
161
+ return [];
162
+ return fs.readdirSync(p.topicsDir).filter((f) => f.endsWith(".md")).map((f) => f.slice(0, -3));
163
+ }
164
+ /**
165
+ * Build a TeamCtx + peers map for a given agent. Returns undefined if the
166
+ * agent is not a member of any team. The peers map is what the Claude Agent
167
+ * SDK uses to register subagent_types — each peer becomes spawnable via
168
+ * Agent({subagent_type: "<peer-id>", prompt: "..."}).
169
+ */
170
+ export function buildTeamContext(config, agentId) {
171
+ const team = (config.teams ?? []).find((t) => t.members.includes(agentId));
172
+ if (!team)
173
+ return undefined;
174
+ const peers = {};
175
+ for (const peerId of team.members) {
176
+ if (peerId === agentId)
177
+ continue;
178
+ const peer = config.agents[peerId];
179
+ if (!peer)
180
+ continue;
181
+ peers[peerId] = {
182
+ description: peer.name ?? peerId,
183
+ // Spawn-time prompt: this is what the peer subagent sees as its system
184
+ // prompt when invoked via the Agent tool. Keep it short — the parent's
185
+ // task prompt carries the per-call detail.
186
+ prompt: peer.systemPrompt ?? `You are ${peer.name ?? peerId}, part of team ${team.name}.`,
187
+ ...(peer.model ? { model: peer.model } : {}),
188
+ };
189
+ }
190
+ // Ensure the team workspace exists before tools try to write to it.
191
+ ensureTeamDir(team.id, team.members);
192
+ return {
193
+ teamId: team.id,
194
+ selfAgentId: agentId,
195
+ members: team.members,
196
+ peers,
197
+ };
198
+ }
199
+ // ─── Internals ───────────────────────────────────────────────────────
200
+ function sanitizeId(id) {
201
+ return id.replace(/[^a-zA-Z0-9_-]/g, "-").slice(0, 64) || "default";
202
+ }
203
+ //# sourceMappingURL=team.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team.js","sourceRoot":"","sources":["../src/team.ts"],"names":[],"mappings":"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"}
@@ -46,6 +46,8 @@ function buildKeyboard(dir) {
46
46
  export async function startBrowse(chatId, api, startDir, onSelect) {
47
47
  const dir = startDir.startsWith("~") ? startDir.replace("~", os.homedir()) : startDir;
48
48
  const state = { currentDir: dir, onSelect };
49
+ // Auto-cleanup after 1 hour
50
+ state.cleanup = setTimeout(() => { states.delete(chatId); }, 60 * 60 * 1000);
49
51
  const kb = buildKeyboard(dir);
50
52
  const sent = await api.sendMessage(chatId, `📂 Select working directory:\n${displayPath(dir)}`, {
51
53
  reply_markup: kb,
@@ -59,6 +61,7 @@ export async function handleBrowseCallback(chatId, value, api) {
59
61
  if (!state)
60
62
  return false;
61
63
  if (value === "__select__") {
64
+ clearTimeout(state.cleanup);
62
65
  states.delete(chatId);
63
66
  // Edit the message to show final selection
64
67
  if (state.messageId) {
@@ -75,6 +78,12 @@ export async function handleBrowseCallback(chatId, value, api) {
75
78
  }
76
79
  else {
77
80
  const newDir = path.join(state.currentDir, value);
81
+ const normalized = path.normalize(newDir);
82
+ // Prevent escaping user's home directory
83
+ const home = os.homedir();
84
+ if (!normalized.startsWith(home) && normalized !== "/") {
85
+ return true; // Reject silently
86
+ }
78
87
  if (fs.existsSync(newDir) && fs.statSync(newDir).isDirectory()) {
79
88
  state.currentDir = newDir;
80
89
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dir-browser.js","sourceRoot":"","sources":["../../src/telegram/dir-browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dir-browser.js","sourceRoot":"","sources":["../../src/telegram/dir-browser.ts"],"names":[],"mappings":"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"}
@@ -26,13 +26,15 @@ export function createDraftStream(chatId, api, opts = {}) {
26
26
  lastSentText = trimmed;
27
27
  return true;
28
28
  }
29
- catch {
29
+ catch (err) {
30
+ console.warn("[draft-stream] sendMessageDraft failed, falling back to edit mode");
30
31
  try {
31
32
  await api.sendMessageDraft(chatId, draftId, text.slice(0, 4096));
32
33
  lastSentText = text.slice(0, 4096);
33
34
  return true;
34
35
  }
35
- catch {
36
+ catch (err) {
37
+ console.warn("[draft-stream] sendMessageDraft failed, falling back to edit mode");
36
38
  return false; // native not supported, fall back
37
39
  }
38
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"draft-stream.js","sourceRoot":"","sources":["../../src/telegram/draft-stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"draft-stream.js","sourceRoot":"","sources":["../../src/telegram/draft-stream.ts"],"names":[],"mappings":"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"}