@snoglobe/helios 0.2.1 → 0.3.2

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 (180) hide show
  1. package/README.md +112 -25
  2. package/dist/acp/server.d.ts.map +1 -1
  3. package/dist/acp/server.js +2 -1
  4. package/dist/acp/server.js.map +1 -1
  5. package/dist/app.d.ts.map +1 -1
  6. package/dist/app.js +2 -1
  7. package/dist/app.js.map +1 -1
  8. package/dist/cli/discover.d.ts +12 -0
  9. package/dist/cli/discover.d.ts.map +1 -0
  10. package/dist/cli/discover.js +60 -0
  11. package/dist/cli/discover.js.map +1 -0
  12. package/dist/cli/doctor.d.ts.map +1 -1
  13. package/dist/cli/doctor.js +2 -1
  14. package/dist/cli/doctor.js.map +1 -1
  15. package/dist/cli/export.d.ts.map +1 -1
  16. package/dist/cli/export.js +2 -1
  17. package/dist/cli/export.js.map +1 -1
  18. package/dist/cli/index.d.ts +1 -0
  19. package/dist/cli/index.d.ts.map +1 -1
  20. package/dist/cli/index.js +12 -3
  21. package/dist/cli/index.js.map +1 -1
  22. package/dist/cli/options.d.ts +1 -0
  23. package/dist/cli/options.d.ts.map +1 -1
  24. package/dist/cli/options.js +1 -0
  25. package/dist/cli/options.js.map +1 -1
  26. package/dist/cli/replay.d.ts.map +1 -1
  27. package/dist/cli/replay.js +2 -1
  28. package/dist/cli/replay.js.map +1 -1
  29. package/dist/cli/report.d.ts.map +1 -1
  30. package/dist/cli/report.js +15 -10
  31. package/dist/cli/report.js.map +1 -1
  32. package/dist/cli/research.d.ts +12 -0
  33. package/dist/cli/research.d.ts.map +1 -0
  34. package/dist/cli/research.js +60 -0
  35. package/dist/cli/research.js.map +1 -0
  36. package/dist/cli/search.d.ts.map +1 -1
  37. package/dist/cli/search.js +2 -1
  38. package/dist/cli/search.js.map +1 -1
  39. package/dist/cli/sessions.d.ts.map +1 -1
  40. package/dist/cli/sessions.js +2 -1
  41. package/dist/cli/sessions.js.map +1 -1
  42. package/dist/core/orchestrator.d.ts +6 -0
  43. package/dist/core/orchestrator.d.ts.map +1 -1
  44. package/dist/core/orchestrator.js +41 -14
  45. package/dist/core/orchestrator.js.map +1 -1
  46. package/dist/hub/client.d.ts.map +1 -1
  47. package/dist/hub/client.js +3 -2
  48. package/dist/hub/client.js.map +1 -1
  49. package/dist/hub/config.d.ts.map +1 -1
  50. package/dist/hub/config.js +4 -5
  51. package/dist/hub/config.js.map +1 -1
  52. package/dist/init.d.ts +3 -1
  53. package/dist/init.d.ts.map +1 -1
  54. package/dist/init.js +35 -8
  55. package/dist/init.js.map +1 -1
  56. package/dist/memory/context-gate.d.ts +0 -4
  57. package/dist/memory/context-gate.d.ts.map +1 -1
  58. package/dist/memory/context-gate.js +0 -7
  59. package/dist/memory/context-gate.js.map +1 -1
  60. package/dist/memory/experiment-tracker.d.ts +0 -2
  61. package/dist/memory/experiment-tracker.d.ts.map +1 -1
  62. package/dist/memory/experiment-tracker.js +0 -4
  63. package/dist/memory/experiment-tracker.js.map +1 -1
  64. package/dist/memory/global-memory.d.ts +34 -0
  65. package/dist/memory/global-memory.d.ts.map +1 -0
  66. package/dist/memory/global-memory.js +128 -0
  67. package/dist/memory/global-memory.js.map +1 -0
  68. package/dist/metrics/store.d.ts +0 -4
  69. package/dist/metrics/store.d.ts.map +1 -1
  70. package/dist/metrics/store.js +0 -17
  71. package/dist/metrics/store.js.map +1 -1
  72. package/dist/paths.d.ts +8 -0
  73. package/dist/paths.d.ts.map +1 -1
  74. package/dist/paths.js +29 -0
  75. package/dist/paths.js.map +1 -1
  76. package/dist/providers/claude/provider.d.ts +2 -1
  77. package/dist/providers/claude/provider.d.ts.map +1 -1
  78. package/dist/providers/claude/provider.js +83 -16
  79. package/dist/providers/claude/provider.js.map +1 -1
  80. package/dist/providers/openai/provider.d.ts +0 -1
  81. package/dist/providers/openai/provider.d.ts.map +1 -1
  82. package/dist/providers/openai/provider.js +25 -9
  83. package/dist/providers/openai/provider.js.map +1 -1
  84. package/dist/providers/retry.d.ts +6 -0
  85. package/dist/providers/retry.d.ts.map +1 -1
  86. package/dist/providers/retry.js +36 -1
  87. package/dist/providers/retry.js.map +1 -1
  88. package/dist/remote/config.d.ts.map +1 -1
  89. package/dist/remote/config.js +2 -6
  90. package/dist/remote/config.js.map +1 -1
  91. package/dist/remote/connection-pool.d.ts +3 -1
  92. package/dist/remote/connection-pool.d.ts.map +1 -1
  93. package/dist/remote/connection-pool.js +35 -7
  94. package/dist/remote/connection-pool.js.map +1 -1
  95. package/dist/remote/executor.d.ts +0 -1
  96. package/dist/remote/executor.d.ts.map +1 -1
  97. package/dist/remote/executor.js +0 -4
  98. package/dist/remote/executor.js.map +1 -1
  99. package/dist/scheduler/sleep-manager.d.ts.map +1 -1
  100. package/dist/scheduler/sleep-manager.js +5 -7
  101. package/dist/scheduler/sleep-manager.js.map +1 -1
  102. package/dist/scheduler/trigger-scheduler.d.ts.map +1 -1
  103. package/dist/scheduler/trigger-scheduler.js +2 -2
  104. package/dist/scheduler/trigger-scheduler.js.map +1 -1
  105. package/dist/skills/bundled/ablation.md +23 -0
  106. package/dist/skills/bundled/consult.md +6 -0
  107. package/dist/skills/bundled/discover.md +45 -0
  108. package/dist/skills/bundled/paper.md +34 -0
  109. package/dist/skills/bundled/research.md +44 -0
  110. package/dist/skills/bundled/writeup.md +57 -0
  111. package/dist/skills/executor.d.ts +28 -0
  112. package/dist/skills/executor.d.ts.map +1 -0
  113. package/dist/skills/executor.js +148 -0
  114. package/dist/skills/executor.js.map +1 -0
  115. package/dist/skills/loader.d.ts +17 -0
  116. package/dist/skills/loader.d.ts.map +1 -0
  117. package/dist/skills/loader.js +194 -0
  118. package/dist/skills/loader.js.map +1 -0
  119. package/dist/skills/registry.d.ts +12 -0
  120. package/dist/skills/registry.d.ts.map +1 -0
  121. package/dist/skills/registry.js +25 -0
  122. package/dist/skills/registry.js.map +1 -0
  123. package/dist/skills/types.d.ts +37 -0
  124. package/dist/skills/types.d.ts.map +1 -0
  125. package/dist/skills/types.js +2 -0
  126. package/dist/skills/types.js.map +1 -0
  127. package/dist/store/preferences.d.ts.map +1 -1
  128. package/dist/store/preferences.js +3 -11
  129. package/dist/store/preferences.js.map +1 -1
  130. package/dist/tools/compare-runs.d.ts.map +1 -1
  131. package/dist/tools/compare-runs.js +3 -2
  132. package/dist/tools/compare-runs.js.map +1 -1
  133. package/dist/tools/consult.d.ts +4 -2
  134. package/dist/tools/consult.d.ts.map +1 -1
  135. package/dist/tools/consult.js +17 -35
  136. package/dist/tools/consult.js.map +1 -1
  137. package/dist/tools/experiment-branch.js +7 -7
  138. package/dist/tools/experiment-branch.js.map +1 -1
  139. package/dist/tools/file-ops.d.ts.map +1 -1
  140. package/dist/tools/file-ops.js +55 -10
  141. package/dist/tools/file-ops.js.map +1 -1
  142. package/dist/tools/hub.js +17 -17
  143. package/dist/tools/hub.js.map +1 -1
  144. package/dist/tools/memory-tools.d.ts.map +1 -1
  145. package/dist/tools/memory-tools.js +2 -1
  146. package/dist/tools/memory-tools.js.map +1 -1
  147. package/dist/tools/sleep.d.ts.map +1 -1
  148. package/dist/tools/sleep.js +2 -1
  149. package/dist/tools/sleep.js.map +1 -1
  150. package/dist/tools/sweep.js +3 -3
  151. package/dist/tools/sweep.js.map +1 -1
  152. package/dist/tools/web-fetch.d.ts.map +1 -1
  153. package/dist/tools/web-fetch.js +5 -6
  154. package/dist/tools/web-fetch.js.map +1 -1
  155. package/dist/tools/writeup.d.ts +4 -10
  156. package/dist/tools/writeup.d.ts.map +1 -1
  157. package/dist/tools/writeup.js +16 -77
  158. package/dist/tools/writeup.js.map +1 -1
  159. package/dist/ui/commands.d.ts +2 -0
  160. package/dist/ui/commands.d.ts.map +1 -1
  161. package/dist/ui/commands.js +86 -35
  162. package/dist/ui/commands.js.map +1 -1
  163. package/dist/ui/components/input-bar.d.ts +3 -1
  164. package/dist/ui/components/input-bar.d.ts.map +1 -1
  165. package/dist/ui/components/input-bar.js +2 -2
  166. package/dist/ui/components/input-bar.js.map +1 -1
  167. package/dist/ui/components/status-bar.d.ts +3 -1
  168. package/dist/ui/components/status-bar.d.ts.map +1 -1
  169. package/dist/ui/components/status-bar.js +14 -2
  170. package/dist/ui/components/status-bar.js.map +1 -1
  171. package/dist/ui/format.d.ts +4 -0
  172. package/dist/ui/format.d.ts.map +1 -1
  173. package/dist/ui/format.js +8 -0
  174. package/dist/ui/format.js.map +1 -1
  175. package/dist/ui/layout.d.ts.map +1 -1
  176. package/dist/ui/layout.js +40 -7
  177. package/dist/ui/layout.js.map +1 -1
  178. package/dist/ui/panels/conversation.js +7 -3
  179. package/dist/ui/panels/conversation.js.map +1 -1
  180. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"compare-runs.js","sourceRoot":"","sources":["../../src/tools/compare-runs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compare-runs.js","sourceRoot":"","sources":["../../src/tools/compare-runs.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
- import type { ToolDefinition, ModelProvider } from "../providers/types.js";
2
- export declare function createConsultTool(getActiveProviderName: () => string | null, getProvider: (name: string) => ModelProvider | null): ToolDefinition;
1
+ import type { ToolDefinition } from "../providers/types.js";
2
+ import type { Orchestrator } from "../core/orchestrator.js";
3
+ import type { SkillRegistry } from "../skills/registry.js";
4
+ export declare function createConsultTool(orchestrator: Orchestrator, skillRegistry: SkillRegistry): ToolDefinition;
3
5
  //# sourceMappingURL=consult.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"consult.d.ts","sourceRoot":"","sources":["../../src/tools/consult.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAK3E,wBAAgB,iBAAiB,CAC/B,qBAAqB,EAAE,MAAM,MAAM,GAAG,IAAI,EAC1C,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,aAAa,GAAG,IAAI,GAClD,cAAc,CA+DhB"}
1
+ {"version":3,"file":"consult.d.ts","sourceRoot":"","sources":["../../src/tools/consult.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAI3D,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa,GAC3B,cAAc,CAyChB"}
@@ -1,6 +1,6 @@
1
- import { formatError } from "../ui/format.js";
2
- const CONSULT_SYSTEM_PROMPT = `You are a senior ML research consultant. Another AI research agent is asking for your help. Give a direct, actionable response. Be concise — focus on what they should try next.`;
3
- export function createConsultTool(getActiveProviderName, getProvider) {
1
+ import { executeSkillToString } from "../skills/executor.js";
2
+ import { formatError, toolError } from "../ui/format.js";
3
+ export function createConsultTool(orchestrator, skillRegistry) {
4
4
  return {
5
5
  name: "consult",
6
6
  description: "Ask the other AI provider for a second opinion. Sends your question to Claude (if you're using OpenAI) or OpenAI (if you're using Claude). Use this if you're stuck and want a fresh perspective.",
@@ -17,44 +17,26 @@ export function createConsultTool(getActiveProviderName, getProvider) {
17
17
  execute: async (args) => {
18
18
  const question = args.question;
19
19
  if (!question?.trim()) {
20
- return JSON.stringify({ error: "question is required" });
20
+ return toolError("question is required");
21
21
  }
22
- const activeName = getActiveProviderName();
23
- if (!activeName) {
24
- return JSON.stringify({ error: "No active provider" });
22
+ const skill = skillRegistry.get("consult");
23
+ if (!skill) {
24
+ return toolError("consult skill not found");
25
25
  }
26
- const otherName = activeName === "claude" ? "openai" : "claude";
27
- const otherProvider = getProvider(otherName);
28
- if (!otherProvider) {
29
- return JSON.stringify({ error: `Provider "${otherName}" not available` });
30
- }
31
- if (!(await otherProvider.isAuthenticated())) {
32
- return JSON.stringify({
33
- error: `Provider "${otherName}" is not authenticated. Ask the user to run /switch ${otherName} first.`,
34
- });
35
- }
36
- const session = await otherProvider.createSession({
37
- systemPrompt: CONSULT_SYSTEM_PROMPT,
38
- });
39
26
  try {
40
- let response = "";
41
- for await (const event of otherProvider.send(session, question, [])) {
42
- if (event.type === "text" && event.delta) {
43
- response += event.delta;
44
- }
45
- }
46
- return JSON.stringify({
47
- provider: otherName,
48
- response: response || "(empty response)",
27
+ const result = await executeSkillToString(skill, {}, question, {
28
+ orchestrator,
29
+ allTools: orchestrator.getTools(),
49
30
  });
31
+ if (result.error)
32
+ return toolError(result.error);
33
+ const providerName = skill.config.provider === "other"
34
+ ? (orchestrator.currentProvider?.name === "claude" ? "openai" : "claude")
35
+ : (skill.config.provider ?? orchestrator.currentProvider?.name ?? "unknown");
36
+ return JSON.stringify({ provider: providerName, response: result.text });
50
37
  }
51
38
  catch (err) {
52
- return JSON.stringify({
53
- error: `Consult failed: ${formatError(err)}`,
54
- });
55
- }
56
- finally {
57
- await otherProvider.closeSession(session).catch(() => { });
39
+ return toolError(`Consult failed: ${formatError(err)}`);
58
40
  }
59
41
  },
60
42
  };
@@ -1 +1 @@
1
- {"version":3,"file":"consult.js","sourceRoot":"","sources":["../../src/tools/consult.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,qBAAqB,GAAG,kLAAkL,CAAC;AAEjN,MAAM,UAAU,iBAAiB,CAC/B,qBAA0C,EAC1C,WAAmD;IAEnD,OAAO;QACL,IAAI,EAAE,SAAS;QACf,WAAW,EACT,mMAAmM;QACrM,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0CAA0C;iBACxD;aACF;YACD,QAAQ,EAAE,CAAC,UAAU,CAAC;SACvB;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAkB,CAAC;YACzC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC;gBACtB,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC,CAAC;YAC3D,CAAC;YAED,MAAM,UAAU,GAAG,qBAAqB,EAAE,CAAC;YAC3C,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC,CAAC;YACzD,CAAC;YAED,MAAM,SAAS,GAAG,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;YAChE,MAAM,aAAa,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;YAC7C,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,aAAa,SAAS,iBAAiB,EAAE,CAAC,CAAC;YAC5E,CAAC;YAED,IAAI,CAAC,CAAC,MAAM,aAAa,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC;gBAC7C,OAAO,IAAI,CAAC,SAAS,CAAC;oBACpB,KAAK,EAAE,aAAa,SAAS,uDAAuD,SAAS,SAAS;iBACvG,CAAC,CAAC;YACL,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,aAAa,CAAC;gBAChD,YAAY,EAAE,qBAAqB;aACpC,CAAC,CAAC;YAEH,IAAI,CAAC;gBACH,IAAI,QAAQ,GAAG,EAAE,CAAC;gBAClB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC;oBACpE,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;wBACzC,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC;oBAC1B,CAAC;gBACH,CAAC;gBAED,OAAO,IAAI,CAAC,SAAS,CAAC;oBACpB,QAAQ,EAAE,SAAS;oBACnB,QAAQ,EAAE,QAAQ,IAAI,kBAAkB;iBACzC,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,IAAI,CAAC,SAAS,CAAC;oBACpB,KAAK,EAAE,mBAAmB,WAAW,CAAC,GAAG,CAAC,EAAE;iBAC7C,CAAC,CAAC;YACL,CAAC;oBAAS,CAAC;gBACT,MAAM,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"consult.js","sourceRoot":"","sources":["../../src/tools/consult.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEzD,MAAM,UAAU,iBAAiB,CAC/B,YAA0B,EAC1B,aAA4B;IAE5B,OAAO;QACL,IAAI,EAAE,SAAS;QACf,WAAW,EACT,mMAAmM;QACrM,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0CAA0C;iBACxD;aACF;YACD,QAAQ,EAAE,CAAC,UAAU,CAAC;SACvB;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAkB,CAAC;YACzC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC;gBACtB,OAAO,SAAS,CAAC,sBAAsB,CAAC,CAAC;YAC3C,CAAC;YAED,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,SAAS,CAAC,yBAAyB,CAAC,CAAC;YAC9C,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE;oBAC7D,YAAY;oBACZ,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE;iBAClC,CAAC,CAAC;gBACH,IAAI,MAAM,CAAC,KAAK;oBAAE,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACjD,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,KAAK,OAAO;oBACpD,CAAC,CAAC,CAAC,YAAY,CAAC,eAAe,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;oBACzE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,IAAI,YAAY,CAAC,eAAe,EAAE,IAAI,IAAI,SAAS,CAAC,CAAC;gBAC/E,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3E,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,SAAS,CAAC,mBAAmB,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Tools for experiment git branching — the model decides when to branch.
3
3
  */
4
- import { formatError } from "../ui/format.js";
4
+ import { toolError } from "../ui/format.js";
5
5
  export function createExperimentBranchTools(brancher) {
6
6
  return [
7
7
  {
@@ -29,12 +29,12 @@ export function createExperimentBranchTools(brancher) {
29
29
  try {
30
30
  const branch = await brancher.createBranch(args.machine_id, args.repo_path, args.experiment_name);
31
31
  if (!branch) {
32
- return JSON.stringify({ error: "Not a git repo or branch creation failed" });
32
+ return toolError("Not a git repo or branch creation failed");
33
33
  }
34
34
  return JSON.stringify({ branch, created: true });
35
35
  }
36
36
  catch (err) {
37
- return JSON.stringify({ error: formatError(err) });
37
+ return toolError(err);
38
38
  }
39
39
  },
40
40
  },
@@ -69,7 +69,7 @@ export function createExperimentBranchTools(brancher) {
69
69
  return JSON.stringify({ committed: ok });
70
70
  }
71
71
  catch (err) {
72
- return JSON.stringify({ error: formatError(err) });
72
+ return toolError(err);
73
73
  }
74
74
  },
75
75
  },
@@ -104,7 +104,7 @@ export function createExperimentBranchTools(brancher) {
104
104
  return JSON.stringify({ diff: diff || "(no differences)" });
105
105
  }
106
106
  catch (err) {
107
- return JSON.stringify({ error: formatError(err) });
107
+ return toolError(err);
108
108
  }
109
109
  },
110
110
  },
@@ -131,7 +131,7 @@ export function createExperimentBranchTools(brancher) {
131
131
  return JSON.stringify({ branches });
132
132
  }
133
133
  catch (err) {
134
- return JSON.stringify({ error: formatError(err) });
134
+ return toolError(err);
135
135
  }
136
136
  },
137
137
  },
@@ -158,7 +158,7 @@ export function createExperimentBranchTools(brancher) {
158
158
  return JSON.stringify({ returned: true });
159
159
  }
160
160
  catch (err) {
161
- return JSON.stringify({ error: formatError(err) });
161
+ return toolError(err);
162
162
  }
163
163
  },
164
164
  },
@@ -1 +1 @@
1
- {"version":3,"file":"experiment-branch.js","sourceRoot":"","sources":["../../src/tools/experiment-branch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"experiment-branch.js","sourceRoot":"","sources":["../../src/tools/experiment-branch.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"file-ops.d.ts","sourceRoot":"","sources":["../../src/tools/file-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAGnE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,CAqDvE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,CA2DxE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,CAmExE"}
1
+ {"version":3,"file":"file-ops.d.ts","sourceRoot":"","sources":["../../src/tools/file-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAsBnE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,CA0FvE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,CA2DxE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,CAmExE"}
@@ -1,8 +1,24 @@
1
- import { shellQuote } from "../ui/format.js";
1
+ import { shellQuote, toolError } from "../ui/format.js";
2
+ const IMAGE_EXTENSIONS = new Set([".png", ".jpg", ".jpeg", ".gif", ".webp"]);
3
+ const PDF_EXTENSIONS = new Set([".pdf"]);
4
+ const MAX_BINARY_SIZE = 10 * 1024 * 1024; // 10MB raw
5
+ const MAX_BINARY_OUTPUT = 14 * 1024 * 1024; // ~14MB for base64-encoded output
6
+ const MIME_TYPES = {
7
+ ".png": "image/png",
8
+ ".jpg": "image/jpeg",
9
+ ".jpeg": "image/jpeg",
10
+ ".gif": "image/gif",
11
+ ".webp": "image/webp",
12
+ ".pdf": "application/pdf",
13
+ };
14
+ function getExtension(path) {
15
+ const dot = path.lastIndexOf(".");
16
+ return dot >= 0 ? path.slice(dot).toLowerCase() : "";
17
+ }
2
18
  export function createReadFileTool(pool) {
3
19
  return {
4
20
  name: "read_file",
5
- description: "Read a file's contents. Use this to inspect training scripts, configs, logs, or any text file.",
21
+ description: "Read a file's contents. Supports text files (with line offset/limit), images (.png, .jpg, .jpeg, .gif, .webp), and PDFs (.pdf). For images and PDFs, returns visual content that you can see directly.",
6
22
  parameters: {
7
23
  type: "object",
8
24
  properties: {
@@ -16,11 +32,11 @@ export function createReadFileTool(pool) {
16
32
  },
17
33
  offset: {
18
34
  type: "number",
19
- description: "Line number to start from (1-indexed, default: 1)",
35
+ description: "Line number to start from (1-indexed, default: 1). Ignored for images/PDFs.",
20
36
  },
21
37
  limit: {
22
38
  type: "number",
23
- description: "Max lines to return (default: 200)",
39
+ description: "Max lines to return (default: 200). Ignored for images/PDFs.",
24
40
  },
25
41
  },
26
42
  required: ["machine_id", "path"],
@@ -28,12 +44,41 @@ export function createReadFileTool(pool) {
28
44
  execute: async (args) => {
29
45
  const machineId = args.machine_id;
30
46
  const path = args.path;
47
+ const ext = getExtension(path);
48
+ // Binary file — base64 encode for multimodal viewing
49
+ if (IMAGE_EXTENSIONS.has(ext) || PDF_EXTENSIONS.has(ext)) {
50
+ const sizeResult = await pool.exec(machineId, `wc -c < ${shellQuote(path)}`);
51
+ if (sizeResult.exitCode !== 0) {
52
+ return toolError(sizeResult.stderr.trim() || `File not found: ${path}`);
53
+ }
54
+ const fileSize = parseInt(sizeResult.stdout.trim(), 10);
55
+ if (isNaN(fileSize) || fileSize === 0) {
56
+ return toolError("File is empty or not found");
57
+ }
58
+ if (fileSize > MAX_BINARY_SIZE) {
59
+ return toolError(`File too large (${(fileSize / 1024 / 1024).toFixed(1)}MB). Max for visual reading: 10MB.`);
60
+ }
61
+ const b64Result = await pool.exec(machineId, `base64 < ${shellQuote(path)}`, { maxOutput: MAX_BINARY_OUTPUT });
62
+ if (b64Result.exitCode !== 0) {
63
+ return toolError(b64Result.stderr.trim() || "Failed to read file");
64
+ }
65
+ const mediaType = MIME_TYPES[ext] ?? "application/octet-stream";
66
+ const data = b64Result.stdout.replace(/\s/g, "");
67
+ const label = mediaType === "application/pdf" ? "PDF" : "Image";
68
+ const filename = path.split("/").pop() ?? path;
69
+ return JSON.stringify({
70
+ __multimodal: true,
71
+ text: `[${label}: ${filename} (${(fileSize / 1024).toFixed(1)}KB)]`,
72
+ attachments: [{ mediaType, data }],
73
+ });
74
+ }
75
+ // Text file — existing behavior
31
76
  const offset = args.offset ?? 1;
32
77
  const limit = args.limit ?? 200;
33
78
  const end = offset + limit - 1;
34
79
  const result = await pool.exec(machineId, `sed -n '${offset},${end}p' ${shellQuote(path)}`);
35
80
  if (result.exitCode !== 0) {
36
- return JSON.stringify({ error: result.stderr.trim() || `exit code ${result.exitCode}` });
81
+ return toolError(result.stderr.trim() || `exit code ${result.exitCode}`);
37
82
  }
38
83
  // Count total lines for context
39
84
  const wcResult = await pool.exec(machineId, `wc -l < ${shellQuote(path)}`);
@@ -88,7 +133,7 @@ export function createWriteFileTool(pool) {
88
133
  const heredocTag = "_HELIOS_EOF_" + Math.random().toString(36).slice(2, 8);
89
134
  const result = await pool.exec(machineId, `cat ${op} ${shellQuote(path)} <<'${heredocTag}'\n${body}\n${heredocTag}`);
90
135
  if (result.exitCode !== 0) {
91
- return JSON.stringify({ error: result.stderr.trim() || `exit code ${result.exitCode}` });
136
+ return toolError(result.stderr.trim() || `exit code ${result.exitCode}`);
92
137
  }
93
138
  const wcResult = await pool.exec(machineId, `wc -l < ${shellQuote(path)}`);
94
139
  const totalLines = parseInt(wcResult.stdout.trim(), 10) || 0;
@@ -130,15 +175,15 @@ export function createPatchFileTool(pool) {
130
175
  // Read current file
131
176
  const readResult = await pool.exec(machineId, `cat ${shellQuote(path)}`);
132
177
  if (readResult.exitCode !== 0) {
133
- return JSON.stringify({ error: readResult.stderr.trim() || "Failed to read file" });
178
+ return toolError(readResult.stderr.trim() || "Failed to read file");
134
179
  }
135
180
  const content = readResult.stdout;
136
181
  const count = content.split(oldStr).length - 1;
137
182
  if (count === 0) {
138
- return JSON.stringify({ error: "old_string not found in file" });
183
+ return toolError("old_string not found in file");
139
184
  }
140
185
  if (count > 1) {
141
- return JSON.stringify({ error: `old_string found ${count} times — must be unique. Include more surrounding context.` });
186
+ return toolError(`old_string found ${count} times — must be unique. Include more surrounding context.`);
142
187
  }
143
188
  const patched = content.replace(oldStr, newStr);
144
189
  // Write back using heredoc
@@ -147,7 +192,7 @@ export function createPatchFileTool(pool) {
147
192
  const heredocTag = "_HELIOS_EOF_" + Math.random().toString(36).slice(2, 8);
148
193
  const writeResult = await pool.exec(machineId, `cat > ${shellQuote(path)} <<'${heredocTag}'\n${body}\n${heredocTag}`);
149
194
  if (writeResult.exitCode !== 0) {
150
- return JSON.stringify({ error: writeResult.stderr.trim() || "Failed to write file" });
195
+ return toolError(writeResult.stderr.trim() || "Failed to write file");
151
196
  }
152
197
  return JSON.stringify({ patched: path });
153
198
  },
@@ -1 +1 @@
1
- {"version":3,"file":"file-ops.js","sourceRoot":"","sources":["../../src/tools/file-ops.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,UAAU,kBAAkB,CAAC,IAAoB;IACrD,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,WAAW,EACT,gGAAgG;QAClG,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,qDAAqD;iBACnE;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,2BAA2B;iBACzC;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,mDAAmD;iBACjE;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,oCAAoC;iBAClD;aACF;YACD,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC;SACjC;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACtB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAoB,CAAC;YAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAc,CAAC;YACjC,MAAM,MAAM,GAAI,IAAI,CAAC,MAAiB,IAAI,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAI,IAAI,CAAC,KAAgB,IAAI,GAAG,CAAC;YAE5C,MAAM,GAAG,GAAG,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC;YAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAC5B,SAAS,EACT,WAAW,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,EAAE,CACjD,CAAC;YAEF,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,aAAa,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC3F,CAAC;YAED,gCAAgC;YAChC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC3E,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;YAE7D,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,MAAM,CAAC,MAAM;gBACtB,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE;aAC1E,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAoB;IACtD,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,WAAW,EACT,yFAAyF;QAC3F,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,oDAAoD;iBAClE;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,4BAA4B;iBAC1C;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,4BAA4B;iBAC1C;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,8CAA8C;iBAC5D;aACF;YACD,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC;SAC5C;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACtB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAoB,CAAC;YAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAc,CAAC;YACjC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAiB,CAAC;YACvC,MAAM,MAAM,GAAI,IAAI,CAAC,MAAkB,IAAI,KAAK,CAAC;YAEjD,iCAAiC;YACjC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YACzC,IAAI,GAAG,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBACxB,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC5D,CAAC;YAED,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;YAC/B,kDAAkD;YAClD,0FAA0F;YAC1F,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACrE,MAAM,UAAU,GAAG,cAAc,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAC5B,SAAS,EACT,OAAO,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,UAAU,MAAM,IAAI,KAAK,UAAU,EAAE,CAC1E,CAAC;YAEF,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,aAAa,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC3F,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC3E,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;YAE7D,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;QAC9D,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAoB;IACtD,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,WAAW,EACT,kHAAkH;QACpH,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,6DAA6D;iBAC3E;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,2BAA2B;iBACzC;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,uEAAuE;iBACrF;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kBAAkB;iBAChC;aACF;YACD,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,CAAC;SAC7D;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACtB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAoB,CAAC;YAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAc,CAAC;YACjC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAoB,CAAC;YACzC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAoB,CAAC;YAEzC,oBAAoB;YACpB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzE,IAAI,UAAU,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,qBAAqB,EAAE,CAAC,CAAC;YACtF,CAAC;YAED,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC;YAClC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YAE/C,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBAChB,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAC,CAAC;YACnE,CAAC;YACD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACd,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,oBAAoB,KAAK,4DAA4D,EAAE,CAAC,CAAC;YAC1H,CAAC;YAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAEhD,2BAA2B;YAC3B,2DAA2D;YAC3D,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACrE,MAAM,UAAU,GAAG,cAAc,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3E,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CACjC,SAAS,EACT,SAAS,UAAU,CAAC,IAAI,CAAC,OAAO,UAAU,MAAM,IAAI,KAAK,UAAU,EAAE,CACtE,CAAC;YAEF,IAAI,WAAW,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAC/B,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,sBAAsB,EAAE,CAAC,CAAC;YACxF,CAAC;YAED,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"file-ops.js","sourceRoot":"","sources":["../../src/tools/file-ops.ts"],"names":[],"mappings":"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"}
package/dist/tools/hub.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { readFileSync, writeFileSync, unlinkSync } from "node:fs";
2
2
  import { randomBytes } from "node:crypto";
3
- import { shellQuote, formatError } from "../ui/format.js";
3
+ import { shellQuote, toolError } from "../ui/format.js";
4
4
  function createHubPushTool(client, executor) {
5
5
  return {
6
6
  name: "hub_push",
@@ -31,7 +31,7 @@ function createHubPushTool(client, executor) {
31
31
  // Get HEAD hash
32
32
  const headResult = await executor.exec(machineId, `cd ${shellQuote(repoPath)} && git rev-parse HEAD`);
33
33
  if (headResult.exitCode !== 0) {
34
- return JSON.stringify({ error: `Not a git repo or no commits: ${headResult.stderr.trim()}` });
34
+ return toolError(`Not a git repo or no commits: ${headResult.stderr.trim()}`);
35
35
  }
36
36
  const head = headResult.stdout.trim();
37
37
  // Create bundle
@@ -40,7 +40,7 @@ function createHubPushTool(client, executor) {
40
40
  const bundleCmd = `cd ${shellQuote(repoPath)} && git bundle create ${bundlePath} ${range}`;
41
41
  const bundleResult = await executor.exec(machineId, bundleCmd);
42
42
  if (bundleResult.exitCode !== 0) {
43
- return JSON.stringify({ error: `Bundle creation failed: ${bundleResult.stderr.trim()}` });
43
+ return toolError(`Bundle creation failed: ${bundleResult.stderr.trim()}`);
44
44
  }
45
45
  // Read bundle and push
46
46
  let bundleBuffer;
@@ -52,7 +52,7 @@ function createHubPushTool(client, executor) {
52
52
  // Remote: base64 encode over SSH
53
53
  const b64Result = await executor.exec(machineId, `base64 < ${bundlePath} && rm -f ${bundlePath}`, 60_000);
54
54
  if (b64Result.exitCode !== 0) {
55
- return JSON.stringify({ error: `Failed to read bundle: ${b64Result.stderr.trim()}` });
55
+ return toolError(`Failed to read bundle: ${b64Result.stderr.trim()}`);
56
56
  }
57
57
  bundleBuffer = Buffer.from(b64Result.stdout.replace(/\s/g, ""), "base64");
58
58
  }
@@ -60,7 +60,7 @@ function createHubPushTool(client, executor) {
60
60
  return JSON.stringify({ pushed: true, hashes: result.hashes, head, bytes: bundleBuffer.length });
61
61
  }
62
62
  catch (err) {
63
- return JSON.stringify({ error: formatError(err) });
63
+ return toolError(err);
64
64
  }
65
65
  },
66
66
  };
@@ -107,29 +107,29 @@ function createHubFetchTool(client, executor) {
107
107
  const chunk = b64.slice(i, i + CHUNK_SIZE);
108
108
  const appendResult = await executor.exec(machineId, `printf '%s' '${chunk}' >> ${bundlePath}.b64`, 10_000);
109
109
  if (appendResult.exitCode !== 0) {
110
- return JSON.stringify({ error: `Failed to write bundle chunk: ${appendResult.stderr.trim()}` });
110
+ return toolError(`Failed to write bundle chunk: ${appendResult.stderr.trim()}`);
111
111
  }
112
112
  }
113
113
  // base64 -d works on Linux and modern macOS; -D is the legacy macOS flag
114
114
  const decodeResult = await executor.exec(machineId, `(base64 -d < ${bundlePath}.b64 > ${bundlePath} 2>/dev/null || base64 -D < ${bundlePath}.b64 > ${bundlePath}) && rm -f ${bundlePath}.b64`, 60_000);
115
115
  if (decodeResult.exitCode !== 0) {
116
- return JSON.stringify({ error: `Failed to decode bundle: ${decodeResult.stderr.trim()}` });
116
+ return toolError(`Failed to decode bundle: ${decodeResult.stderr.trim()}`);
117
117
  }
118
118
  }
119
119
  // Verify and unbundle
120
120
  const verifyResult = await executor.exec(machineId, `cd ${shellQuote(repoPath)} && git bundle verify ${bundlePath} 2>&1`);
121
121
  if (verifyResult.exitCode !== 0) {
122
122
  await executor.exec(machineId, `rm -f ${bundlePath}`);
123
- return JSON.stringify({ error: `Bundle verification failed: ${verifyResult.stdout.trim()}` });
123
+ return toolError(`Bundle verification failed: ${verifyResult.stdout.trim()}`);
124
124
  }
125
125
  const unbundleResult = await executor.exec(machineId, `cd ${shellQuote(repoPath)} && git bundle unbundle ${bundlePath} && rm -f ${bundlePath}`);
126
126
  if (unbundleResult.exitCode !== 0) {
127
- return JSON.stringify({ error: `Unbundle failed: ${unbundleResult.stderr.trim()}` });
127
+ return toolError(`Unbundle failed: ${unbundleResult.stderr.trim()}`);
128
128
  }
129
129
  return JSON.stringify({ fetched: true, hash, output: unbundleResult.stdout.trim() });
130
130
  }
131
131
  catch (err) {
132
- return JSON.stringify({ error: formatError(err) });
132
+ return toolError(err);
133
133
  }
134
134
  },
135
135
  };
@@ -154,7 +154,7 @@ function createHubLogTool(client) {
154
154
  return JSON.stringify(commits);
155
155
  }
156
156
  catch (err) {
157
- return JSON.stringify({ error: formatError(err) });
157
+ return toolError(err);
158
158
  }
159
159
  },
160
160
  };
@@ -173,7 +173,7 @@ function createHubLeavesTool(client) {
173
173
  return JSON.stringify(leaves);
174
174
  }
175
175
  catch (err) {
176
- return JSON.stringify({ error: formatError(err) });
176
+ return toolError(err);
177
177
  }
178
178
  },
179
179
  };
@@ -196,7 +196,7 @@ function createHubDiffTool(client) {
196
196
  return JSON.stringify({ diff });
197
197
  }
198
198
  catch (err) {
199
- return JSON.stringify({ error: formatError(err) });
199
+ return toolError(err);
200
200
  }
201
201
  },
202
202
  };
@@ -219,7 +219,7 @@ function createHubPostTool(client) {
219
219
  return JSON.stringify({ posted: true, id: post.id, channel_id: post.channel_id });
220
220
  }
221
221
  catch (err) {
222
- return JSON.stringify({ error: formatError(err) });
222
+ return toolError(err);
223
223
  }
224
224
  },
225
225
  };
@@ -248,13 +248,13 @@ function createHubReadTool(client) {
248
248
  }
249
249
  const channel = args.channel;
250
250
  if (!channel) {
251
- return JSON.stringify({ error: "Provide either channel or post_id" });
251
+ return toolError("Provide either channel or post_id");
252
252
  }
253
253
  const posts = await client.listPosts(channel, { limit: args.limit || 10 });
254
254
  return JSON.stringify(posts);
255
255
  }
256
256
  catch (err) {
257
- return JSON.stringify({ error: formatError(err) });
257
+ return toolError(err);
258
258
  }
259
259
  },
260
260
  };
@@ -278,7 +278,7 @@ function createHubReplyTool(client) {
278
278
  return JSON.stringify({ replied: true, id: reply.id, parent_id: reply.parent_id });
279
279
  }
280
280
  catch (err) {
281
- return JSON.stringify({ error: formatError(err) });
281
+ return toolError(err);
282
282
  }
283
283
  },
284
284
  };
@@ -1 +1 @@
1
- {"version":3,"file":"hub.js","sourceRoot":"","sources":["../../src/tools/hub.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hub.js","sourceRoot":"","sources":["../../src/tools/hub.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"memory-tools.d.ts","sourceRoot":"","sources":["../../src/tools/memory-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAE7D,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,GAAG,cAAc,CAgCtE;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,cAAc,CAgCxE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,GAAG,cAAc,CAkCzE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,GAAG,cAAc,CAqBtE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,cAAc,EAAE,CAOvE"}
1
+ {"version":3,"file":"memory-tools.d.ts","sourceRoot":"","sources":["../../src/tools/memory-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAG7D,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,GAAG,cAAc,CAgCtE;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,cAAc,CAgCxE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,GAAG,cAAc,CAkCzE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,GAAG,cAAc,CAqBtE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,cAAc,EAAE,CAOvE"}
@@ -1,3 +1,4 @@
1
+ import { toolError } from "../ui/format.js";
1
2
  export function createMemoryLsTool(memory) {
2
3
  return {
3
4
  name: "memory_ls",
@@ -45,7 +46,7 @@ export function createMemoryReadTool(memory) {
45
46
  const path = args.path;
46
47
  const node = memory.read(path);
47
48
  if (!node) {
48
- return JSON.stringify({ error: `Not found: ${path}` });
49
+ return toolError(`Not found: ${path}`);
49
50
  }
50
51
  return JSON.stringify({
51
52
  path: node.path,
@@ -1 +1 @@
1
- {"version":3,"file":"memory-tools.js","sourceRoot":"","sources":["../../src/tools/memory-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory-tools.js","sourceRoot":"","sources":["../../src/tools/memory-tools.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sleep.d.ts","sourceRoot":"","sources":["../../src/tools/sleep.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAGlE,wBAAgB,eAAe,CAC7B,YAAY,EAAE,YAAY,GACzB,cAAc,CA0EhB"}
1
+ {"version":3,"file":"sleep.d.ts","sourceRoot":"","sources":["../../src/tools/sleep.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAIlE,wBAAgB,eAAe,CAC7B,YAAY,EAAE,YAAY,GACzB,cAAc,CA0EhB"}
@@ -1,3 +1,4 @@
1
+ import { toolError } from "../ui/format.js";
1
2
  export function createSleepTool(sleepManager) {
2
3
  return {
3
4
  name: "sleep",
@@ -42,7 +43,7 @@ Use logic "any" to wake on the first condition met, "all" to require all conditi
42
43
  // Models sometimes use variant key names
43
44
  const conditions = (args.wake_conditions ?? args.conditions ?? args.triggers);
44
45
  if (!conditions || !Array.isArray(conditions) || conditions.length === 0) {
45
- return JSON.stringify({ error: "No wake_conditions provided. Provide an array of trigger conditions." });
46
+ return toolError("No wake_conditions provided. Provide an array of trigger conditions.");
46
47
  }
47
48
  const logic = args.logic ?? "any";
48
49
  const deadlineMin = args.deadline_minutes;