joonecli 0.1.1 → 0.2.1

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 (235) hide show
  1. package/dist/__tests__/config.test.js +1 -0
  2. package/dist/__tests__/config.test.js.map +1 -1
  3. package/dist/__tests__/installHostDeps.test.js +45 -0
  4. package/dist/__tests__/installHostDeps.test.js.map +1 -0
  5. package/dist/__tests__/whitelistedBackend.test.js +18 -0
  6. package/dist/__tests__/whitelistedBackend.test.js.map +1 -0
  7. package/dist/cli/config.d.ts +2 -0
  8. package/dist/cli/config.js +1 -0
  9. package/dist/cli/config.js.map +1 -1
  10. package/dist/cli/index.js +84 -97
  11. package/dist/cli/index.js.map +1 -1
  12. package/dist/commands/builtinCommands.js +6 -6
  13. package/dist/commands/builtinCommands.js.map +1 -1
  14. package/dist/commands/commandRegistry.d.ts +3 -1
  15. package/dist/commands/commandRegistry.js.map +1 -1
  16. package/dist/core/agentLoop.d.ts +11 -28
  17. package/dist/core/agentLoop.js +68 -229
  18. package/dist/core/agentLoop.js.map +1 -1
  19. package/dist/core/compactor.js +2 -2
  20. package/dist/core/compactor.js.map +1 -1
  21. package/dist/core/contextGuard.d.ts +5 -0
  22. package/dist/core/contextGuard.js +30 -3
  23. package/dist/core/contextGuard.js.map +1 -1
  24. package/dist/core/events.d.ts +45 -0
  25. package/dist/core/events.js +8 -0
  26. package/dist/core/events.js.map +1 -0
  27. package/dist/core/promptBuilder.js.map +1 -1
  28. package/dist/core/sessionStore.js +3 -2
  29. package/dist/core/sessionStore.js.map +1 -1
  30. package/dist/core/tokenCounter.d.ts +8 -1
  31. package/dist/core/tokenCounter.js +28 -0
  32. package/dist/core/tokenCounter.js.map +1 -1
  33. package/dist/hitl/bridge.js +1 -27
  34. package/dist/hitl/bridge.js.map +1 -1
  35. package/dist/middleware/loopDetection.d.ts +7 -23
  36. package/dist/middleware/loopDetection.js +38 -42
  37. package/dist/middleware/loopDetection.js.map +1 -1
  38. package/dist/sandbox/whitelistedBackend.d.ts +5 -0
  39. package/dist/sandbox/whitelistedBackend.js +27 -0
  40. package/dist/sandbox/whitelistedBackend.js.map +1 -0
  41. package/dist/tools/askUser.d.ts +12 -3
  42. package/dist/tools/askUser.js +16 -28
  43. package/dist/tools/askUser.js.map +1 -1
  44. package/dist/tools/bashTool.d.ts +11 -0
  45. package/dist/tools/bashTool.js +51 -0
  46. package/dist/tools/bashTool.js.map +1 -0
  47. package/dist/tools/index.d.ts +15 -27
  48. package/dist/tools/index.js +9 -181
  49. package/dist/tools/index.js.map +1 -1
  50. package/dist/tools/installHostDeps.d.ts +8 -0
  51. package/dist/tools/installHostDeps.js +44 -0
  52. package/dist/tools/installHostDeps.js.map +1 -0
  53. package/dist/tracing/sessionTracer.d.ts +1 -0
  54. package/dist/tracing/sessionTracer.js +4 -1
  55. package/dist/tracing/sessionTracer.js.map +1 -1
  56. package/dist/ui/App.js +116 -55
  57. package/dist/ui/App.js.map +1 -1
  58. package/dist/ui/components/ActionLog.d.ts +7 -0
  59. package/dist/ui/components/ActionLog.js +63 -0
  60. package/dist/ui/components/ActionLog.js.map +1 -0
  61. package/dist/ui/components/FileBrowser.d.ts +2 -0
  62. package/dist/ui/components/FileBrowser.js +41 -0
  63. package/dist/ui/components/FileBrowser.js.map +1 -0
  64. package/dist/ui/components/MessageBubble.js +1 -1
  65. package/dist/ui/components/MessageBubble.js.map +1 -1
  66. package/package.json +8 -5
  67. package/AGENTS.md +0 -56
  68. package/Handover.md +0 -115
  69. package/PROGRESS.md +0 -160
  70. package/dist/__tests__/m55.test.js +0 -160
  71. package/dist/__tests__/m55.test.js.map +0 -1
  72. package/dist/__tests__/middleware.test.js +0 -169
  73. package/dist/__tests__/middleware.test.js.map +0 -1
  74. package/dist/__tests__/optimizations.test.d.ts +0 -1
  75. package/dist/__tests__/optimizations.test.js +0 -136
  76. package/dist/__tests__/optimizations.test.js.map +0 -1
  77. package/dist/__tests__/security.test.d.ts +0 -1
  78. package/dist/__tests__/security.test.js +0 -86
  79. package/dist/__tests__/security.test.js.map +0 -1
  80. package/dist/__tests__/streaming.test.d.ts +0 -1
  81. package/dist/__tests__/streaming.test.js +0 -71
  82. package/dist/__tests__/streaming.test.js.map +0 -1
  83. package/dist/__tests__/toolRouter.test.d.ts +0 -1
  84. package/dist/__tests__/toolRouter.test.js +0 -37
  85. package/dist/__tests__/toolRouter.test.js.map +0 -1
  86. package/dist/__tests__/tools.test.d.ts +0 -1
  87. package/dist/__tests__/tools.test.js +0 -112
  88. package/dist/__tests__/tools.test.js.map +0 -1
  89. package/dist/core/subAgent.d.ts +0 -56
  90. package/dist/core/subAgent.js +0 -240
  91. package/dist/core/subAgent.js.map +0 -1
  92. package/dist/debug_google.d.ts +0 -1
  93. package/dist/debug_google.js +0 -23
  94. package/dist/debug_google.js.map +0 -1
  95. package/dist/middleware/commandSanitizer.d.ts +0 -18
  96. package/dist/middleware/commandSanitizer.js +0 -50
  97. package/dist/middleware/commandSanitizer.js.map +0 -1
  98. package/dist/middleware/permission.d.ts +0 -17
  99. package/dist/middleware/permission.js +0 -59
  100. package/dist/middleware/permission.js.map +0 -1
  101. package/dist/middleware/pipeline.d.ts +0 -31
  102. package/dist/middleware/pipeline.js +0 -62
  103. package/dist/middleware/pipeline.js.map +0 -1
  104. package/dist/middleware/preCompletion.d.ts +0 -29
  105. package/dist/middleware/preCompletion.js +0 -82
  106. package/dist/middleware/preCompletion.js.map +0 -1
  107. package/dist/middleware/types.d.ts +0 -40
  108. package/dist/middleware/types.js +0 -8
  109. package/dist/middleware/types.js.map +0 -1
  110. package/dist/skills/loader.d.ts +0 -55
  111. package/dist/skills/loader.js +0 -132
  112. package/dist/skills/loader.js.map +0 -1
  113. package/dist/skills/tools.d.ts +0 -5
  114. package/dist/skills/tools.js +0 -78
  115. package/dist/skills/tools.js.map +0 -1
  116. package/dist/test_cache.d.ts +0 -1
  117. package/dist/test_cache.js +0 -55
  118. package/dist/test_cache.js.map +0 -1
  119. package/dist/test_google.d.ts +0 -1
  120. package/dist/test_google.js +0 -36
  121. package/dist/test_google.js.map +0 -1
  122. package/dist/tools/browser.d.ts +0 -19
  123. package/dist/tools/browser.js +0 -111
  124. package/dist/tools/browser.js.map +0 -1
  125. package/dist/tools/registry.d.ts +0 -31
  126. package/dist/tools/registry.js +0 -168
  127. package/dist/tools/registry.js.map +0 -1
  128. package/dist/tools/router.d.ts +0 -34
  129. package/dist/tools/router.js +0 -75
  130. package/dist/tools/router.js.map +0 -1
  131. package/dist/tools/security.d.ts +0 -28
  132. package/dist/tools/security.js +0 -183
  133. package/dist/tools/security.js.map +0 -1
  134. package/dist/tools/spawnAgent.d.ts +0 -19
  135. package/dist/tools/spawnAgent.js +0 -130
  136. package/dist/tools/spawnAgent.js.map +0 -1
  137. package/dist/tools/webSearch.d.ts +0 -6
  138. package/dist/tools/webSearch.js +0 -120
  139. package/dist/tools/webSearch.js.map +0 -1
  140. package/docs/01_insights_and_patterns.md +0 -27
  141. package/docs/02_edge_cases_and_mitigations.md +0 -143
  142. package/docs/03_initial_implementation_plan.md +0 -66
  143. package/docs/04_tech_stack_proposal.md +0 -20
  144. package/docs/05_prd.md +0 -87
  145. package/docs/06_user_stories.md +0 -72
  146. package/docs/07_system_architecture.md +0 -138
  147. package/docs/08_roadmap.md +0 -200
  148. package/e2b/Dockerfile +0 -26
  149. package/src/__tests__/bootstrap.test.ts +0 -111
  150. package/src/__tests__/config.test.ts +0 -97
  151. package/src/__tests__/m55.test.ts +0 -238
  152. package/src/__tests__/middleware.test.ts +0 -219
  153. package/src/__tests__/modelFactory.test.ts +0 -63
  154. package/src/__tests__/optimizations.test.ts +0 -201
  155. package/src/__tests__/promptBuilder.test.ts +0 -141
  156. package/src/__tests__/sandbox.test.ts +0 -102
  157. package/src/__tests__/security.test.ts +0 -122
  158. package/src/__tests__/streaming.test.ts +0 -82
  159. package/src/__tests__/toolRouter.test.ts +0 -52
  160. package/src/__tests__/tools.test.ts +0 -146
  161. package/src/__tests__/tracing.test.ts +0 -196
  162. package/src/agents/agentRegistry.ts +0 -69
  163. package/src/agents/agentSpec.ts +0 -67
  164. package/src/agents/builtinAgents.ts +0 -142
  165. package/src/cli/config.ts +0 -124
  166. package/src/cli/index.ts +0 -742
  167. package/src/cli/modelFactory.ts +0 -174
  168. package/src/cli/postinstall.ts +0 -28
  169. package/src/cli/providers.ts +0 -107
  170. package/src/commands/builtinCommands.ts +0 -293
  171. package/src/commands/commandRegistry.ts +0 -194
  172. package/src/core/agentLoop.d.ts.map +0 -1
  173. package/src/core/agentLoop.ts +0 -312
  174. package/src/core/autoSave.ts +0 -95
  175. package/src/core/compactor.ts +0 -252
  176. package/src/core/contextGuard.ts +0 -129
  177. package/src/core/errors.ts +0 -202
  178. package/src/core/promptBuilder.d.ts.map +0 -1
  179. package/src/core/promptBuilder.ts +0 -139
  180. package/src/core/reasoningRouter.ts +0 -121
  181. package/src/core/retry.ts +0 -75
  182. package/src/core/sessionResumer.ts +0 -90
  183. package/src/core/sessionStore.ts +0 -216
  184. package/src/core/subAgent.ts +0 -339
  185. package/src/core/tokenCounter.ts +0 -64
  186. package/src/evals/dataset.ts +0 -67
  187. package/src/evals/evaluator.ts +0 -81
  188. package/src/hitl/bridge.ts +0 -160
  189. package/src/middleware/commandSanitizer.ts +0 -60
  190. package/src/middleware/loopDetection.ts +0 -63
  191. package/src/middleware/permission.ts +0 -72
  192. package/src/middleware/pipeline.ts +0 -75
  193. package/src/middleware/preCompletion.ts +0 -94
  194. package/src/middleware/types.ts +0 -45
  195. package/src/sandbox/bootstrap.ts +0 -121
  196. package/src/sandbox/manager.ts +0 -239
  197. package/src/sandbox/sync.ts +0 -157
  198. package/src/skills/loader.ts +0 -143
  199. package/src/skills/tools.ts +0 -99
  200. package/src/skills/types.ts +0 -13
  201. package/src/test_cache.ts +0 -72
  202. package/src/tools/askUser.ts +0 -47
  203. package/src/tools/browser.ts +0 -137
  204. package/src/tools/index.d.ts.map +0 -1
  205. package/src/tools/index.ts +0 -237
  206. package/src/tools/registry.ts +0 -198
  207. package/src/tools/router.ts +0 -78
  208. package/src/tools/security.ts +0 -220
  209. package/src/tools/spawnAgent.ts +0 -158
  210. package/src/tools/webSearch.ts +0 -142
  211. package/src/tracing/analyzer.ts +0 -265
  212. package/src/tracing/langsmith.ts +0 -63
  213. package/src/tracing/sessionTracer.ts +0 -202
  214. package/src/tracing/types.ts +0 -49
  215. package/src/types/valyu.d.ts +0 -37
  216. package/src/ui/App.tsx +0 -404
  217. package/src/ui/components/HITLPrompt.tsx +0 -119
  218. package/src/ui/components/Header.tsx +0 -51
  219. package/src/ui/components/MessageBubble.tsx +0 -46
  220. package/src/ui/components/StatusBar.tsx +0 -138
  221. package/src/ui/components/StreamingText.tsx +0 -48
  222. package/src/ui/components/ToolCallPanel.tsx +0 -80
  223. package/tests/commands/commands.test.ts +0 -356
  224. package/tests/core/compactor.test.ts +0 -217
  225. package/tests/core/retryAndErrors.test.ts +0 -164
  226. package/tests/core/sessionResumer.test.ts +0 -95
  227. package/tests/core/sessionStore.test.ts +0 -84
  228. package/tests/core/stability.test.ts +0 -165
  229. package/tests/core/subAgent.test.ts +0 -238
  230. package/tests/hitl/hitlBridge.test.ts +0 -115
  231. package/tsconfig.json +0 -16
  232. package/vitest.config.ts +0 -10
  233. package/vitest.out +0 -48
  234. /package/dist/__tests__/{m55.test.d.ts → installHostDeps.test.d.ts} +0 -0
  235. /package/dist/__tests__/{middleware.test.d.ts → whitelistedBackend.test.d.ts} +0 -0
@@ -32,6 +32,7 @@ describe("Config Manager", () => {
32
32
  expect(config.maxTokens).toBe(4096);
33
33
  expect(config.temperature).toBe(0);
34
34
  expect(config.streaming).toBe(true);
35
+ expect(config.executionMode).toBe("host");
35
36
  });
36
37
  // ─── RED Test #2: saveConfig roundtrips with loadConfig ───
37
38
  it("saves config to disk and loads it back correctly", () => {
@@ -1 +1 @@
1
- {"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../src/__tests__/config.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../src/__tests__/config.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { installHostDependenciesTool } from "../tools/installHostDeps.js";
3
+ describe("InstallHostDependenciesTool (Security)", () => {
4
+ it("allows permitted package manager commands", async () => {
5
+ // We test with a dummy emitter to just ensure it doesn't fail early
6
+ // We can't easily mock execAsync purely without mocking module,
7
+ // but we can check if it gets past the security check and fails on execution
8
+ // (meaning it was allowed). Better yet, we can mock exec if needed, but for now
9
+ // we'll just check the error message structure if it fails.
10
+ // Actually, since this runs a real command, let's use a safe one or expect an execution error, not a security error.
11
+ });
12
+ it("blocks unknown binary", async () => {
13
+ const result = await installHostDependenciesTool.invoke({
14
+ command: "malicious_binary install foo",
15
+ });
16
+ expect(typeof result).toBe("string");
17
+ expect(result).toMatch(/Security Error/i);
18
+ expect(result).toMatch(/is not allowed/);
19
+ });
20
+ it("blocks disallowed subcommands for allowed binary", async () => {
21
+ const result = await installHostDependenciesTool.invoke({
22
+ command: "npm publish",
23
+ });
24
+ expect(typeof result).toBe("string");
25
+ expect(result).toMatch(/Security Error/i);
26
+ expect(result).toMatch(/npm publish/);
27
+ });
28
+ it("blocks forbidden shell operators", async () => {
29
+ const result = await installHostDependenciesTool.invoke({
30
+ command: "npm install express && rm -rf /",
31
+ });
32
+ expect(typeof result).toBe("string");
33
+ expect(result).toMatch(/Security Error/i);
34
+ expect(result).toMatch(/forbidden shell operators/);
35
+ });
36
+ it("blocks backticks", async () => {
37
+ const result = await installHostDependenciesTool.invoke({
38
+ command: "npm install `whoami`",
39
+ });
40
+ expect(typeof result).toBe("string");
41
+ expect(result).toMatch(/Security Error/i);
42
+ expect(result).toMatch(/forbidden shell operators/);
43
+ });
44
+ });
45
+ //# sourceMappingURL=installHostDeps.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"installHostDeps.test.js","sourceRoot":"","sources":["../../src/__tests__/installHostDeps.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAE1E,QAAQ,CAAC,wCAAwC,EAAE,GAAG,EAAE;IACpD,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACvD,oEAAoE;QACpE,iEAAiE;QACjE,8EAA8E;QAC9E,iFAAiF;QACjF,4DAA4D;QAC5D,qHAAqH;IACzH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;QACnC,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAAC,MAAM,CAAC;YACpD,OAAO,EAAE,8BAA8B;SAC1C,CAAC,CAAC;QAEH,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAAC,MAAM,CAAC;YACpD,OAAO,EAAE,aAAa;SACzB,CAAC,CAAC;QAEH,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAAC,MAAM,CAAC;YACpD,OAAO,EAAE,iCAAiC;SAC7C,CAAC,CAAC;QAEH,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;QAC9B,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAAC,MAAM,CAAC;YACpD,OAAO,EAAE,sBAAsB;SAClC,CAAC,CAAC;QAEH,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { WhitelistedLocalShellBackend } from "../sandbox/whitelistedBackend.js";
3
+ describe("WhitelistedLocalShellBackend", () => {
4
+ it("allows safe commands", async () => {
5
+ const backend = new WhitelistedLocalShellBackend({ rootDir: process.cwd() });
6
+ const result = await backend.execute("echo hello");
7
+ expect(result.output).toMatch(/hello/i);
8
+ expect(result.exitCode).toBe(0); // Works on Windows native echo
9
+ });
10
+ it("blocks dangerous commands", async () => {
11
+ const backend = new WhitelistedLocalShellBackend({ rootDir: process.cwd() });
12
+ const result = await backend.execute("rm -rf /");
13
+ expect(result.exitCode).toBe(1);
14
+ expect(result.output).toMatch(/Security Error/i);
15
+ expect(result.output).toMatch(/not allowed/i);
16
+ });
17
+ });
18
+ //# sourceMappingURL=whitelistedBackend.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whitelistedBackend.test.js","sourceRoot":"","sources":["../../src/__tests__/whitelistedBackend.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AAEhF,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC1C,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QAClC,MAAM,OAAO,GAAG,IAAI,4BAA4B,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAE7E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,+BAA+B;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;QACvC,MAAM,OAAO,GAAG,IAAI,4BAA4B,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAE7E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -30,6 +30,8 @@ export interface JooneConfig {
30
30
  compactModel?: string;
31
31
  /** Override model for sub-agents (default: auto-selected fast model from same provider). */
32
32
  subAgentModel?: string;
33
+ /** Execution mode: 'host' (local shell) or 'sandbox' (secure cloud). */
34
+ executionMode?: "host" | "sandbox";
33
35
  }
34
36
  /**
35
37
  * Sensible defaults — Anthropic Claude as the default provider.
@@ -10,6 +10,7 @@ export const DEFAULT_CONFIG = {
10
10
  temperature: 0,
11
11
  streaming: true,
12
12
  permissionMode: "auto",
13
+ executionMode: "host",
13
14
  };
14
15
  /**
15
16
  * Maps provider names to their expected environment variable for the API key.
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAoClC;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAgB;IACzC,QAAQ,EAAE,WAAW;IACrB,KAAK,EAAE,0BAA0B;IACjC,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,CAAC;IACd,SAAS,EAAE,IAAI;IACf,cAAc,EAAE,MAAM;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,iBAAiB,GAA2B;IAChD,SAAS,EAAE,mBAAmB;IAC9B,MAAM,EAAE,gBAAgB;IACxB,MAAM,EAAE,gBAAgB;IACxB,OAAO,EAAE,iBAAiB;IAC1B,IAAI,EAAE,cAAc;IACpB,QAAQ,EAAE,kBAAkB;IAC5B,SAAS,EAAE,mBAAmB;IAC9B,QAAQ,EAAE,kBAAkB;IAC5B,yCAAyC;CAC1C,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,UAAkB;IAC3C,IAAI,MAAmB,CAAC;IAExB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,CAAC;IACjC,CAAC;SAAM,CAAC;QACN,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAyB,CAAC;YACvD,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC;QAC5C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,sCAAsC,UAAU,mBAAmB,CAAC,CAAC;YAClF,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,CAAC;QACjC,CAAC;IACH,CAAC;IACD,uEAAuE;IACvE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,UAAkB,EAAE,MAAmB;IAChE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;QAC5D,QAAQ,EAAE,OAAO;QACjB,IAAI,EAAE,KAAK,EAAE,sCAAsC;KACpD,CAAC,CAAC;IAEH,oEAAoE;IACpE,IAAI,CAAC;QACH,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,8CAA8C;IAChD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAChD,OAAO,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAsClC;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAgB;IACzC,QAAQ,EAAE,WAAW;IACrB,KAAK,EAAE,0BAA0B;IACjC,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,CAAC;IACd,SAAS,EAAE,IAAI;IACf,cAAc,EAAE,MAAM;IACtB,aAAa,EAAE,MAAM;CACtB,CAAC;AAEF;;GAEG;AACH,MAAM,iBAAiB,GAA2B;IAChD,SAAS,EAAE,mBAAmB;IAC9B,MAAM,EAAE,gBAAgB;IACxB,MAAM,EAAE,gBAAgB;IACxB,OAAO,EAAE,iBAAiB;IAC1B,IAAI,EAAE,cAAc;IACpB,QAAQ,EAAE,kBAAkB;IAC5B,SAAS,EAAE,mBAAmB;IAC9B,QAAQ,EAAE,kBAAkB;IAC5B,yCAAyC;CAC1C,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,UAAkB;IAC3C,IAAI,MAAmB,CAAC;IAExB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,CAAC;IACjC,CAAC;SAAM,CAAC;QACN,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAyB,CAAC;YACvD,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC;QAC5C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,sCAAsC,UAAU,mBAAmB,CAAC,CAAC;YAClF,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,CAAC;QACjC,CAAC;IACH,CAAC;IACD,uEAAuE;IACvE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,UAAkB,EAAE,MAAmB;IAChE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;QAC5D,QAAQ,EAAE,OAAO;QACjB,IAAI,EAAE,KAAK,EAAE,sCAAsC;KACpD,CAAC,CAAC;IAEH,oEAAoE;IACpE,IAAI,CAAC;QACH,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,8CAA8C;IAChD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAChD,OAAO,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AACrC,CAAC"}
package/dist/cli/index.js CHANGED
@@ -8,21 +8,6 @@ import { intro, outro, select, text, password, confirm, spinner, isCancel, cance
8
8
  import { loadConfig, saveConfig } from "./config.js";
9
9
  import { createModel } from "./modelFactory.js";
10
10
  import { installProvider, uninstallProvider } from "./providers.js";
11
- import { tryEnableLangSmithFromConfig } from "../tracing/langsmith.js";
12
- import { TraceAnalyzer } from "../tracing/analyzer.js";
13
- import { SessionTracer } from "../tracing/sessionTracer.js";
14
- import { SandboxManager } from "../sandbox/manager.js";
15
- import { MiddlewarePipeline } from "../middleware/pipeline.js";
16
- import { LoopDetectionMiddleware } from "../middleware/loopDetection.js";
17
- import { CommandSanitizerMiddleware } from "../middleware/commandSanitizer.js";
18
- import { ExecutionHarness } from "../core/agentLoop.js";
19
- import { SessionStore } from "../core/sessionStore.js";
20
- import { SessionResumer } from "../core/sessionResumer.js";
21
- import { PermissionMiddleware } from "../middleware/permission.js";
22
- import { AskUserQuestionTool } from "../tools/askUser.js";
23
- import { createDefaultAgentRegistry } from "../agents/builtinAgents.js";
24
- import { SubAgentManager } from "../core/subAgent.js";
25
- import { createSpawnAgentTools } from "../tools/spawnAgent.js";
26
11
  const CONFIG_PATH = path.join(os.homedir(), ".joone", "config.json");
27
12
  const SUPPORTED_PROVIDERS = [
28
13
  { value: "anthropic", label: "Anthropic", hint: "Claude 4, 3.5 Sonnet, Opus, Haiku" },
@@ -355,6 +340,7 @@ program
355
340
  if (options.stream === false) {
356
341
  config.streaming = false;
357
342
  }
343
+ const { tryEnableLangSmithFromConfig } = await import("../tracing/langsmith.js");
358
344
  const tracingEnabled = tryEnableLangSmithFromConfig(config);
359
345
  console.log(chalk.cyan("\n ◆ joone") +
360
346
  chalk.dim(" v0.1.0\n") +
@@ -364,53 +350,38 @@ program
364
350
  chalk.dim(" └ Tracing: ") + (tracingEnabled ? chalk.green("LangSmith") : chalk.dim("local only")) + "\n");
365
351
  try {
366
352
  const model = await createModel(config);
367
- const pipeline = new MiddlewarePipeline();
368
- pipeline.use(new LoopDetectionMiddleware(3));
369
- pipeline.use(new CommandSanitizerMiddleware());
370
- pipeline.use(new PermissionMiddleware(config.permissionMode ?? "auto"));
353
+ const { SessionTracer } = await import("../tracing/sessionTracer.js");
371
354
  const tracer = new SessionTracer();
372
- const { bindSandbox } = await import("../tools/index.js");
373
- const s = spinner();
374
- s.start("Initializing Sandbox Environment...");
375
- const sandboxManager = new SandboxManager({
376
- template: config.sandboxTemplate,
377
- apiKey: config.e2bApiKey,
378
- openSandboxApiKey: config.openSandboxApiKey,
379
- openSandboxDomain: config.openSandboxDomain,
380
- });
381
- await sandboxManager.create();
382
- const { FileSync } = await import("../sandbox/sync.js");
383
- const fileSync = new FileSync(process.cwd());
384
- bindSandbox(sandboxManager, fileSync);
385
- // Sync user-level skills into the sandbox
386
- const { SkillLoader } = await import("../skills/loader.js");
387
- const skillLoader = new SkillLoader();
388
- const skillPaths = skillLoader.getDiscoveryPaths();
389
- await fileSync.syncSkillsToSandbox(sandboxManager, skillPaths);
390
- s.stop("Sandbox initialized");
391
- // For the CLI, we start by loading the CORE tools
392
- // Advanced tools (search, browser, etc.) will be dynamically loaded by the agent later
393
- // via the SearchToolsTool when the registry is fully integrated
394
- const { CORE_TOOLS } = await import("../tools/index.js");
395
- let tools = [...CORE_TOOLS, AskUserQuestionTool];
396
- // Initialize Sub-Agent Orchestration
397
- const agentRegistry = createDefaultAgentRegistry();
398
- const subAgentModelName = config.subAgentModel ?? config.model;
399
- // Use the config to determine sub-agent model, with FAST_MODEL_DEFAULTS fallback
400
- const { resolveFastModel } = await import("../core/compactor.js");
401
- const resolvedSubModel = resolveFastModel(config.provider, config.model, config.subAgentModel);
402
- const subAgentLlm = await createModel({ ...config, model: resolvedSubModel });
403
- const subAgentManager = new SubAgentManager(agentRegistry, tools, subAgentLlm);
404
- const spawnAgentTools = createSpawnAgentTools(subAgentManager, agentRegistry);
405
- tools = [...tools, ...spawnAgentTools];
355
+ let sandboxManager;
356
+ const { bindSandbox, CORE_TOOLS } = await import("../tools/index.js");
357
+ if (config.executionMode !== "host") {
358
+ const { SandboxManager } = await import("../sandbox/manager.js");
359
+ const s = spinner();
360
+ s.start("Initializing Sandbox Environment...");
361
+ sandboxManager = new SandboxManager({
362
+ template: config.sandboxTemplate,
363
+ apiKey: config.e2bApiKey,
364
+ openSandboxApiKey: config.openSandboxApiKey,
365
+ openSandboxDomain: config.openSandboxDomain,
366
+ });
367
+ await sandboxManager.create();
368
+ const { FileSync } = await import("../sandbox/sync.js");
369
+ const fileSync = new FileSync(process.cwd());
370
+ bindSandbox(sandboxManager, fileSync);
371
+ s.stop("Sandbox initialized");
372
+ }
373
+ const { askUserQuestionTool } = await import("../tools/askUser.js");
374
+ let tools = [...CORE_TOOLS, askUserQuestionTool];
406
375
  let initialState;
407
376
  let sessionId = undefined;
408
377
  if (options.resume) {
409
378
  const s = spinner();
410
379
  s.start(`Loading session ${chalk.bold(options.resume)}...`);
380
+ const { SessionStore } = await import("../core/sessionStore.js");
411
381
  const store = new SessionStore();
412
382
  try {
413
383
  const payload = await store.loadSession(options.resume);
384
+ const { SessionResumer } = await import("../core/sessionResumer.js");
414
385
  const resumer = new SessionResumer(process.cwd());
415
386
  initialState = resumer.prepareForResume(payload);
416
387
  sessionId = options.resume;
@@ -425,19 +396,20 @@ program
425
396
  else {
426
397
  initialState = {
427
398
  globalSystemInstructions: `You are Joone, a highly capable autonomous coding agent.
428
- You run in a hybrid environment: you have read/write access to the host machine for code edits, but all code execution, testing, and dependency installation MUST happen in the isolated E2B sandbox for safety.
429
- Always use 'bash' to run terminal commands. Never read or write outside the current project directory unless explicitly requested.
399
+ You run in a hybrid environment based on user configuration. You execute commands using 'bash' and can safely evaluate tests and install dependencies.
400
+ Always use the tools provided to you. Never read or write outside the current project directory unless explicitly requested.
430
401
 
431
402
  IMPORTANT CAPABILITIES:
432
403
  - You have access to an 'ask_user_question' tool. Use it to ask the user for clarification, preferences, or approval before making significant changes.
433
404
  - Some tool calls may require user approval before execution, depending on the user's permission settings. If a tool call is denied, try an alternative approach or ask the user for guidance.
434
405
  - You have access to Skills — reusable instruction sets for specialized tasks. Use 'search_skills' to discover them and 'load_skill' to activate their instructions.`,
435
- projectMemory: "No project context loaded yet.",
406
+ projectMemory: `Initial working directory: ${process.cwd()}\n(No other project context loaded yet.)`,
436
407
  sessionContext: `Environment: ${process.platform}\nCWD: ${process.cwd()}`,
437
408
  conversationHistory: []
438
409
  };
439
410
  }
440
- const harness = new ExecutionHarness(model, tools, pipeline, tracer, config.provider, config.model, sessionId);
411
+ const { ExecutionHarness } = await import("../core/agentLoop.js");
412
+ const harness = new ExecutionHarness(model, tools, tracer, config.provider, config.model, sessionId, config.maxTokens, config.permissionMode, config.executionMode);
441
413
  const { render } = await import("ink");
442
414
  const React = await import("react");
443
415
  const { App } = await import("../ui/App.js");
@@ -454,7 +426,9 @@ IMPORTANT CAPABILITIES:
454
426
  await waitUntilExit();
455
427
  // Cleanup
456
428
  tracer.save();
457
- await sandboxManager.destroy();
429
+ if (sandboxManager) {
430
+ await sandboxManager.destroy();
431
+ }
458
432
  }
459
433
  catch (error) {
460
434
  if (error instanceof Error) {
@@ -471,6 +445,7 @@ program
471
445
  .command("sessions")
472
446
  .description("List all persistent sessions available for resumption")
473
447
  .action(async () => {
448
+ const { SessionStore } = await import("../core/sessionStore.js");
474
449
  const store = new SessionStore();
475
450
  const sessions = await store.listSessions();
476
451
  if (sessions.length === 0) {
@@ -491,7 +466,7 @@ program
491
466
  program
492
467
  .command("analyze [sessionId]")
493
468
  .description("Analyze a session trace for performance insights")
494
- .action((sessionId) => {
469
+ .action(async (sessionId) => {
495
470
  let tracePath;
496
471
  const tracesDir = path.join(os.homedir(), ".joone", "traces");
497
472
  if (sessionId) {
@@ -518,6 +493,8 @@ program
518
493
  process.exit(1);
519
494
  }
520
495
  try {
496
+ const { SessionTracer } = await import("../tracing/sessionTracer.js");
497
+ const { TraceAnalyzer } = await import("../tracing/analyzer.js");
521
498
  const trace = SessionTracer.load(tracePath);
522
499
  const analyzer = new TraceAnalyzer(trace);
523
500
  const report = analyzer.analyze();
@@ -538,6 +515,7 @@ program
538
515
  console.error(chalk.red("\n ✗ LangSmith API key is missing. Run `joone config` to set it.\n"));
539
516
  process.exit(1);
540
517
  }
518
+ const { tryEnableLangSmithFromConfig } = await import("../tracing/langsmith.js");
541
519
  tryEnableLangSmithFromConfig(config);
542
520
  console.log(chalk.cyan("\n ◆ joone evals") + chalk.dim(` (Model: ${config.model})\n`));
543
521
  try {
@@ -549,28 +527,31 @@ program
549
527
  const datasetName = await ensureBaselineDataset();
550
528
  s.stop(`Dataset verified: ${chalk.white(datasetName)}`);
551
529
  const model = await createModel(config);
552
- const pipeline = new MiddlewarePipeline();
553
- pipeline.use(new LoopDetectionMiddleware(3));
554
- pipeline.use(new CommandSanitizerMiddleware());
530
+ const { SessionTracer } = await import("../tracing/sessionTracer.js");
555
531
  const tracer = new SessionTracer();
556
532
  const { bindSandbox, CORE_TOOLS } = await import("../tools/index.js");
557
533
  const tools = [...CORE_TOOLS];
558
534
  s.start("Running evaluations across dataset (this may take a few minutes)...");
559
535
  // We define a target function that the generic `evaluate` engine will call for each example
560
536
  const agentTargetFn = async (inputs) => {
537
+ const { ExecutionHarness } = await import("../core/agentLoop.js");
561
538
  const runTracer = new SessionTracer();
562
- const harness = new ExecutionHarness(model, tools, pipeline, runTracer);
563
- // Initialize an empty sandbox just for this run
564
- const sandboxManager = new SandboxManager({
565
- template: config.sandboxTemplate,
566
- apiKey: config.e2bApiKey,
567
- openSandboxApiKey: config.openSandboxApiKey,
568
- openSandboxDomain: config.openSandboxDomain,
569
- });
570
- await sandboxManager.create();
571
- const { FileSync } = await import("../sandbox/sync.js");
572
- const fileSync = new FileSync(process.cwd());
573
- bindSandbox(sandboxManager, fileSync);
539
+ const harness = new ExecutionHarness(model, tools, runTracer, config.provider, config.model, undefined, config.maxTokens, config.permissionMode, config.executionMode);
540
+ let sandboxManager;
541
+ if (config.executionMode !== "host") {
542
+ const { SandboxManager } = await import("../sandbox/manager.js");
543
+ // Initialize an empty sandbox just for this run
544
+ sandboxManager = new SandboxManager({
545
+ template: config.sandboxTemplate,
546
+ apiKey: config.e2bApiKey,
547
+ openSandboxApiKey: config.openSandboxApiKey,
548
+ openSandboxDomain: config.openSandboxDomain,
549
+ });
550
+ await sandboxManager.create();
551
+ const { FileSync } = await import("../sandbox/sync.js");
552
+ const fileSync = new FileSync(process.cwd());
553
+ bindSandbox(sandboxManager, fileSync);
554
+ }
574
555
  const { HumanMessage, AIMessage, ToolMessage } = await import("@langchain/core/messages");
575
556
  let conversationHistory = [
576
557
  new HumanMessage(inputs.instruction)
@@ -579,30 +560,32 @@ program
579
560
  let turnCount = 0;
580
561
  const MAX_TURNS = 15; // Anti-doom-loop for evals
581
562
  try {
582
- while (turnCount < MAX_TURNS) {
563
+ const state = {
564
+ globalSystemInstructions: `You are Joone, a highly capable autonomous coding agent.
565
+ You run in a hybrid environment based on user configuration. You execute commands using 'bash' and can safely evaluate tests and install dependencies.
566
+ Always use the tools provided to you. Never read or write outside the current project directory unless explicitly requested.`,
567
+ projectMemory: `Evaluation run.\nInitial working directory: ${process.cwd()}`,
568
+ sessionContext: `Environment: ${process.platform}\nCWD: ${process.cwd()}`,
569
+ conversationHistory
570
+ };
571
+ const stream = harness.run(state);
572
+ for await (const event of stream) {
583
573
  turnCount++;
584
- const state = {
585
- globalSystemInstructions: `You are Joone, a highly capable autonomous coding agent.
586
- You run in a hybrid environment: you have read/write access to the host machine for code edits, but all code execution, testing, and dependency installation MUST happen in the isolated E2B sandbox for safety.
587
- Always use 'bash' to run terminal commands. Never read or write outside the current project directory unless explicitly requested.`,
588
- projectMemory: "Evaluation run.",
589
- sessionContext: `Environment: ${process.platform}\nCWD: ${process.cwd()}`,
590
- conversationHistory
591
- };
592
- const response = await harness.step(state);
593
- conversationHistory.push(response);
594
- if (response.content && typeof response.content === "string") {
595
- finalOutput += response.content + "\n";
574
+ if (event.event === "on_chat_model_end" && event.data?.output) {
575
+ const msg = event.data.output;
576
+ if (msg.content && typeof msg.content === "string") {
577
+ finalOutput += msg.content + "\n";
578
+ }
579
+ if (msg.tool_calls && msg.tool_calls.length > 0) {
580
+ // LangGraph will automatically execute the tools under the hood
581
+ // We don't need to manually executeToolCalls here!
582
+ }
596
583
  }
597
- if (!response.tool_calls || response.tool_calls.length === 0) {
598
- break; // Task complete
599
- }
600
- const toolResults = await harness.executeToolCalls(response, state);
601
- conversationHistory.push(...toolResults);
602
584
  }
603
585
  }
604
586
  catch (e) {
605
- await sandboxManager.destroy();
587
+ if (sandboxManager)
588
+ await sandboxManager.destroy();
606
589
  throw e; // LangSmith catches this for the error evaluation
607
590
  }
608
591
  // Gather metrics
@@ -617,15 +600,19 @@ Always use 'bash' to run terminal commands. Never read or write outside the curr
617
600
  // Check sandbox for uploaded/created files before ripping it down
618
601
  let fileManifest = [];
619
602
  try {
620
- const result = await sandboxManager.exec(`find /workspace -type f`);
621
- if (result.stdout) {
622
- fileManifest = result.stdout.split('\n').map((l) => l.trim()).filter(Boolean);
603
+ if (sandboxManager) {
604
+ const result = await sandboxManager.exec(`find /workspace -type f`);
605
+ if (result.stdout) {
606
+ fileManifest = result.stdout.split('\n').map((l) => l.trim()).filter(Boolean);
607
+ }
623
608
  }
624
609
  }
625
610
  catch {
626
611
  // Ignore, fallback to empty array
627
612
  }
628
- await sandboxManager.destroy();
613
+ if (sandboxManager) {
614
+ await sandboxManager.destroy();
615
+ }
629
616
  return {
630
617
  finalOutput,
631
618
  metrics,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -77,7 +77,7 @@ export const CompactCommand = {
77
77
  ...history, // Simplified — the full prompt builder would add system messages too
78
78
  ];
79
79
  const currentTokens = countMessageTokens(allMessages);
80
- const pct = Math.round((currentTokens / ctx.maxTokens) * 100);
80
+ const pct = Math.round((currentTokens / ctx.contextTokens) * 100);
81
81
  if (pct < 50) {
82
82
  return `Context at ${pct}% capacity (${currentTokens} tokens). ` +
83
83
  `Compaction not needed yet — typically triggers at 80%.`;
@@ -96,7 +96,7 @@ export const CompactCommand = {
96
96
  });
97
97
  const newTokens = countMessageTokens([summaryMsg, ...recent]);
98
98
  return `✓ Compacted ${evictedCount} messages. ` +
99
- `Tokens: ${currentTokens} → ${newTokens} (${Math.round((newTokens / ctx.maxTokens) * 100)}%)`;
99
+ `Tokens: ${currentTokens} → ${newTokens} (${Math.round((newTokens / ctx.contextTokens) * 100)}%)`;
100
100
  },
101
101
  };
102
102
  // ─── /tokens ────────────────────────────────────────────────────────────────────
@@ -111,13 +111,13 @@ export const TokensCommand = {
111
111
  estimateTokens(ctx.contextState.projectMemory) +
112
112
  estimateTokens(ctx.contextState.sessionContext);
113
113
  const totalTokens = systemTokens + historyTokens;
114
- const pct = Math.round((totalTokens / ctx.maxTokens) * 100);
114
+ const pct = Math.round((totalTokens / ctx.contextTokens) * 100);
115
115
  const bar = generateBar(pct);
116
116
  return [
117
117
  `Token Usage:`,
118
118
  ` System prompt: ~${systemTokens} tokens`,
119
119
  ` Conversation: ~${historyTokens} tokens (${history.length} messages)`,
120
- ` Total: ~${totalTokens} / ${ctx.maxTokens} tokens`,
120
+ ` Total: ~${totalTokens} / ${ctx.contextTokens} tokens`,
121
121
  ` Capacity: ${bar} ${pct}%`,
122
122
  pct >= 80 ? ` ⚠ Near capacity — consider /compact` : "",
123
123
  ].filter(Boolean).join("\n");
@@ -139,13 +139,13 @@ export const StatusCommand = {
139
139
  execute: async (_args, ctx) => {
140
140
  const history = ctx.contextState.conversationHistory;
141
141
  const tokens = countMessageTokens(history);
142
- const pct = Math.round((tokens / ctx.maxTokens) * 100);
142
+ const pct = Math.round((tokens / ctx.contextTokens) * 100);
143
143
  return [
144
144
  `Session Status:`,
145
145
  ` Provider: ${ctx.provider}`,
146
146
  ` Model: ${ctx.model}`,
147
147
  ` Messages: ${history.length}`,
148
- ` Token Usage: ~${tokens} / ${ctx.maxTokens} (${pct}%)`,
148
+ ` Token Usage: ~${tokens} / ${ctx.contextTokens} (${pct}%)`,
149
149
  ` CWD: ${process.cwd()}`,
150
150
  ].join("\n");
151
151
  },