@ai-hero/sandcastle 0.6.5 → 0.6.6

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 (227) hide show
  1. package/README.md +123 -54
  2. package/dist/{MountConfig.d.ts → MountConfig-CmXclHA5.d.ts} +3 -2
  3. package/dist/{SandboxProvider.d.ts → SandboxProvider-EkSMuBp8.d.ts} +25 -39
  4. package/dist/chunk-72UVAC7B.js +99 -0
  5. package/dist/chunk-72UVAC7B.js.map +1 -0
  6. package/dist/chunk-BIWNFKGV.js +22 -0
  7. package/dist/chunk-BIWNFKGV.js.map +1 -0
  8. package/dist/chunk-NGBM7T3E.js +76 -0
  9. package/dist/chunk-NGBM7T3E.js.map +1 -0
  10. package/dist/chunk-Q5W3WQVU.js +25569 -0
  11. package/dist/chunk-Q5W3WQVU.js.map +1 -0
  12. package/dist/chunk-UPDEQ2U7.js +362 -0
  13. package/dist/chunk-UPDEQ2U7.js.map +1 -0
  14. package/dist/chunk-Z7O2WNRU.js +26934 -0
  15. package/dist/chunk-Z7O2WNRU.js.map +1 -0
  16. package/dist/index.d.ts +920 -22
  17. package/dist/index.js +3212 -9
  18. package/dist/index.js.map +1 -1
  19. package/dist/main.d.ts +0 -2
  20. package/dist/main.js +19256 -13
  21. package/dist/main.js.map +1 -1
  22. package/dist/mountUtils-CCA-bbpK.d.ts +25 -0
  23. package/dist/sandboxes/daytona.d.ts +8 -5
  24. package/dist/sandboxes/daytona.js +118 -124
  25. package/dist/sandboxes/daytona.js.map +1 -1
  26. package/dist/sandboxes/docker.d.ts +10 -8
  27. package/dist/sandboxes/docker.js +8 -255
  28. package/dist/sandboxes/docker.js.map +1 -1
  29. package/dist/sandboxes/no-sandbox.d.ts +7 -4
  30. package/dist/sandboxes/no-sandbox.js +6 -114
  31. package/dist/sandboxes/no-sandbox.js.map +1 -1
  32. package/dist/sandboxes/podman.d.ts +10 -8
  33. package/dist/sandboxes/podman.js +287 -297
  34. package/dist/sandboxes/podman.js.map +1 -1
  35. package/dist/sandboxes/vercel.d.ts +7 -4
  36. package/dist/sandboxes/vercel.js +144 -165
  37. package/dist/sandboxes/vercel.js.map +1 -1
  38. package/package.json +15 -14
  39. package/dist/AgentProvider.d.ts +0 -134
  40. package/dist/AgentProvider.d.ts.map +0 -1
  41. package/dist/AgentProvider.js +0 -647
  42. package/dist/AgentProvider.js.map +0 -1
  43. package/dist/AgentStreamEmitter.d.ts +0 -36
  44. package/dist/AgentStreamEmitter.d.ts.map +0 -1
  45. package/dist/AgentStreamEmitter.js +0 -21
  46. package/dist/AgentStreamEmitter.js.map +0 -1
  47. package/dist/CopyToWorktree.d.ts +0 -15
  48. package/dist/CopyToWorktree.d.ts.map +0 -1
  49. package/dist/CopyToWorktree.js +0 -60
  50. package/dist/CopyToWorktree.js.map +0 -1
  51. package/dist/Display.d.ts +0 -58
  52. package/dist/Display.d.ts.map +0 -1
  53. package/dist/Display.js +0 -142
  54. package/dist/Display.js.map +0 -1
  55. package/dist/DockerLifecycle.d.ts +0 -54
  56. package/dist/DockerLifecycle.d.ts.map +0 -1
  57. package/dist/DockerLifecycle.js +0 -123
  58. package/dist/DockerLifecycle.js.map +0 -1
  59. package/dist/EnvResolver.d.ts +0 -11
  60. package/dist/EnvResolver.d.ts.map +0 -1
  61. package/dist/EnvResolver.js +0 -63
  62. package/dist/EnvResolver.js.map +0 -1
  63. package/dist/ErrorHandler.d.ts +0 -15
  64. package/dist/ErrorHandler.d.ts.map +0 -1
  65. package/dist/ErrorHandler.js +0 -85
  66. package/dist/ErrorHandler.js.map +0 -1
  67. package/dist/InitService.d.ts +0 -92
  68. package/dist/InitService.d.ts.map +0 -1
  69. package/dist/InitService.js +0 -836
  70. package/dist/InitService.js.map +0 -1
  71. package/dist/MountConfig.d.ts.map +0 -1
  72. package/dist/MountConfig.js +0 -7
  73. package/dist/MountConfig.js.map +0 -1
  74. package/dist/Orchestrator.d.ts +0 -56
  75. package/dist/Orchestrator.d.ts.map +0 -1
  76. package/dist/Orchestrator.js +0 -293
  77. package/dist/Orchestrator.js.map +0 -1
  78. package/dist/Output.d.ts +0 -107
  79. package/dist/Output.d.ts.map +0 -1
  80. package/dist/Output.js +0 -95
  81. package/dist/Output.js.map +0 -1
  82. package/dist/PodmanLifecycle.d.ts +0 -17
  83. package/dist/PodmanLifecycle.d.ts.map +0 -1
  84. package/dist/PodmanLifecycle.js +0 -45
  85. package/dist/PodmanLifecycle.js.map +0 -1
  86. package/dist/PromptArgumentSubstitution.d.ts +0 -32
  87. package/dist/PromptArgumentSubstitution.d.ts.map +0 -1
  88. package/dist/PromptArgumentSubstitution.js +0 -104
  89. package/dist/PromptArgumentSubstitution.js.map +0 -1
  90. package/dist/PromptPreprocessor.d.ts +0 -15
  91. package/dist/PromptPreprocessor.d.ts.map +0 -1
  92. package/dist/PromptPreprocessor.js +0 -55
  93. package/dist/PromptPreprocessor.js.map +0 -1
  94. package/dist/PromptResolver.d.ts +0 -21
  95. package/dist/PromptResolver.d.ts.map +0 -1
  96. package/dist/PromptResolver.js +0 -27
  97. package/dist/PromptResolver.js.map +0 -1
  98. package/dist/RecoveryMessage.d.ts +0 -15
  99. package/dist/RecoveryMessage.d.ts.map +0 -1
  100. package/dist/RecoveryMessage.js +0 -81
  101. package/dist/RecoveryMessage.js.map +0 -1
  102. package/dist/SandboxFactory.d.ts +0 -90
  103. package/dist/SandboxFactory.d.ts.map +0 -1
  104. package/dist/SandboxFactory.js +0 -324
  105. package/dist/SandboxFactory.js.map +0 -1
  106. package/dist/SandboxLifecycle.d.ts +0 -65
  107. package/dist/SandboxLifecycle.d.ts.map +0 -1
  108. package/dist/SandboxLifecycle.js +0 -296
  109. package/dist/SandboxLifecycle.js.map +0 -1
  110. package/dist/SandboxProvider.d.ts.map +0 -1
  111. package/dist/SandboxProvider.js +0 -28
  112. package/dist/SandboxProvider.js.map +0 -1
  113. package/dist/SessionStore.d.ts +0 -110
  114. package/dist/SessionStore.d.ts.map +0 -1
  115. package/dist/SessionStore.js +0 -330
  116. package/dist/SessionStore.js.map +0 -1
  117. package/dist/TextDeltaBuffer.d.ts +0 -24
  118. package/dist/TextDeltaBuffer.d.ts.map +0 -1
  119. package/dist/TextDeltaBuffer.js +0 -68
  120. package/dist/TextDeltaBuffer.js.map +0 -1
  121. package/dist/WorktreeManager.d.ts +0 -79
  122. package/dist/WorktreeManager.d.ts.map +0 -1
  123. package/dist/WorktreeManager.js +0 -283
  124. package/dist/WorktreeManager.js.map +0 -1
  125. package/dist/boundedTail.d.ts +0 -48
  126. package/dist/boundedTail.d.ts.map +0 -1
  127. package/dist/boundedTail.js +0 -64
  128. package/dist/boundedTail.js.map +0 -1
  129. package/dist/cli.d.ts +0 -30
  130. package/dist/cli.d.ts.map +0 -1
  131. package/dist/cli.js +0 -340
  132. package/dist/cli.js.map +0 -1
  133. package/dist/createSandbox.d.ts +0 -154
  134. package/dist/createSandbox.d.ts.map +0 -1
  135. package/dist/createSandbox.js +0 -476
  136. package/dist/createSandbox.js.map +0 -1
  137. package/dist/createWorktree.d.ts +0 -154
  138. package/dist/createWorktree.d.ts.map +0 -1
  139. package/dist/createWorktree.js +0 -391
  140. package/dist/createWorktree.js.map +0 -1
  141. package/dist/errors.d.ts +0 -227
  142. package/dist/errors.d.ts.map +0 -1
  143. package/dist/errors.js +0 -81
  144. package/dist/errors.js.map +0 -1
  145. package/dist/extractStructuredOutput.d.ts +0 -23
  146. package/dist/extractStructuredOutput.d.ts.map +0 -1
  147. package/dist/extractStructuredOutput.js +0 -102
  148. package/dist/extractStructuredOutput.js.map +0 -1
  149. package/dist/index.d.ts.map +0 -1
  150. package/dist/interactive.d.ts +0 -74
  151. package/dist/interactive.d.ts.map +0 -1
  152. package/dist/interactive.js +0 -279
  153. package/dist/interactive.js.map +0 -1
  154. package/dist/main.d.ts.map +0 -1
  155. package/dist/mergeProviderEnv.d.ts +0 -13
  156. package/dist/mergeProviderEnv.d.ts.map +0 -1
  157. package/dist/mergeProviderEnv.js +0 -23
  158. package/dist/mergeProviderEnv.js.map +0 -1
  159. package/dist/mountUtils.d.ts +0 -146
  160. package/dist/mountUtils.d.ts.map +0 -1
  161. package/dist/mountUtils.js +0 -301
  162. package/dist/mountUtils.js.map +0 -1
  163. package/dist/raceAbortSignal.d.ts +0 -18
  164. package/dist/raceAbortSignal.d.ts.map +0 -1
  165. package/dist/raceAbortSignal.js +0 -32
  166. package/dist/raceAbortSignal.js.map +0 -1
  167. package/dist/resolveCwd.d.ts +0 -24
  168. package/dist/resolveCwd.d.ts.map +0 -1
  169. package/dist/resolveCwd.js +0 -32
  170. package/dist/resolveCwd.js.map +0 -1
  171. package/dist/resumePrecheck.d.ts +0 -26
  172. package/dist/resumePrecheck.d.ts.map +0 -1
  173. package/dist/resumePrecheck.js +0 -40
  174. package/dist/resumePrecheck.js.map +0 -1
  175. package/dist/run.d.ts +0 -216
  176. package/dist/run.d.ts.map +0 -1
  177. package/dist/run.js +0 -313
  178. package/dist/run.js.map +0 -1
  179. package/dist/sandboxExec.d.ts +0 -12
  180. package/dist/sandboxExec.d.ts.map +0 -1
  181. package/dist/sandboxExec.js +0 -26
  182. package/dist/sandboxExec.js.map +0 -1
  183. package/dist/sandboxes/daytona.d.ts.map +0 -1
  184. package/dist/sandboxes/docker.d.ts.map +0 -1
  185. package/dist/sandboxes/no-sandbox.d.ts.map +0 -1
  186. package/dist/sandboxes/podman.d.ts.map +0 -1
  187. package/dist/sandboxes/test-bind-mount.d.ts +0 -17
  188. package/dist/sandboxes/test-bind-mount.d.ts.map +0 -1
  189. package/dist/sandboxes/test-bind-mount.js +0 -92
  190. package/dist/sandboxes/test-bind-mount.js.map +0 -1
  191. package/dist/sandboxes/test-isolated.d.ts +0 -17
  192. package/dist/sandboxes/test-isolated.d.ts.map +0 -1
  193. package/dist/sandboxes/test-isolated.js +0 -98
  194. package/dist/sandboxes/test-isolated.js.map +0 -1
  195. package/dist/sandboxes/vercel.d.ts.map +0 -1
  196. package/dist/shutdownRegistry.d.ts +0 -30
  197. package/dist/shutdownRegistry.d.ts.map +0 -1
  198. package/dist/shutdownRegistry.js +0 -73
  199. package/dist/shutdownRegistry.js.map +0 -1
  200. package/dist/startSandbox.d.ts +0 -50
  201. package/dist/startSandbox.d.ts.map +0 -1
  202. package/dist/startSandbox.js +0 -117
  203. package/dist/startSandbox.js.map +0 -1
  204. package/dist/syncIn.d.ts +0 -24
  205. package/dist/syncIn.d.ts.map +0 -1
  206. package/dist/syncIn.js +0 -107
  207. package/dist/syncIn.js.map +0 -1
  208. package/dist/syncOut.d.ts +0 -27
  209. package/dist/syncOut.d.ts.map +0 -1
  210. package/dist/syncOut.js +0 -271
  211. package/dist/syncOut.js.map +0 -1
  212. package/dist/templates.d.ts +0 -2
  213. package/dist/templates.d.ts.map +0 -1
  214. package/dist/templates.js +0 -26
  215. package/dist/templates.js.map +0 -1
  216. package/dist/terminalCleanup.d.ts +0 -30
  217. package/dist/terminalCleanup.d.ts.map +0 -1
  218. package/dist/terminalCleanup.js +0 -37
  219. package/dist/terminalCleanup.js.map +0 -1
  220. package/dist/testSandbox.d.ts +0 -8
  221. package/dist/testSandbox.d.ts.map +0 -1
  222. package/dist/testSandbox.js +0 -109
  223. package/dist/testSandbox.js.map +0 -1
  224. package/dist/testSetup.d.ts +0 -2
  225. package/dist/testSetup.d.ts.map +0 -1
  226. package/dist/testSetup.js +0 -29
  227. package/dist/testSetup.js.map +0 -1
@@ -1,63 +0,0 @@
1
- import { FileSystem } from "@effect/platform";
2
- import { Effect } from "effect";
3
- import { join } from "node:path";
4
- const parseEnvFile = (filePath) => Effect.gen(function* () {
5
- const fs = yield* FileSystem.FileSystem;
6
- const content = yield* fs
7
- .readFileString(filePath)
8
- .pipe(Effect.catchAll(() => Effect.succeed(null)));
9
- if (content === null)
10
- return {};
11
- const vars = {};
12
- for (const line of content.split("\n")) {
13
- const trimmed = line.trim();
14
- if (!trimmed || trimmed.startsWith("#"))
15
- continue;
16
- const eqIndex = trimmed.indexOf("=");
17
- if (eqIndex === -1)
18
- continue;
19
- const key = trimmed.slice(0, eqIndex).trim();
20
- let value = trimmed.slice(eqIndex + 1).trim();
21
- const isDoubleQuoted = value.length >= 2 &&
22
- value[0] === '"' &&
23
- value[value.length - 1] === '"';
24
- const isSingleQuoted = value.length >= 2 &&
25
- value[0] === "'" &&
26
- value[value.length - 1] === "'";
27
- if (isDoubleQuoted || isSingleQuoted) {
28
- value = value.slice(1, -1);
29
- }
30
- if (isDoubleQuoted) {
31
- value = value.replace(/\\([nrt\\])/g, (_, ch) => {
32
- const escapes = {
33
- n: "\n",
34
- r: "\r",
35
- t: "\t",
36
- "\\": "\\",
37
- };
38
- return escapes[ch] ?? ch;
39
- });
40
- }
41
- vars[key] = value;
42
- }
43
- return vars;
44
- });
45
- /**
46
- * Resolve all env vars from .env files with process.env fallback.
47
- *
48
- * Precedence: .sandcastle/.env > process.env
49
- * Only keys declared in .sandcastle/.env are resolved from process.env.
50
- * Repo root .env is not part of the resolution chain.
51
- */
52
- export const resolveEnv = (repoDir) => Effect.gen(function* () {
53
- const sandcastleEnv = yield* parseEnvFile(join(repoDir, ".sandcastle", ".env"));
54
- const result = {};
55
- for (const key of Object.keys(sandcastleEnv)) {
56
- const value = sandcastleEnv[key] || process.env[key];
57
- if (value) {
58
- result[key] = value;
59
- }
60
- }
61
- return result;
62
- });
63
- //# sourceMappingURL=EnvResolver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EnvResolver.js","sourceRoot":"","sources":["../src/EnvResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,YAAY,GAAG,CACnB,QAAgB,EACqD,EAAE,CACvE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;IACxC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,EAAE;SACtB,cAAc,CAAC,QAAQ,CAAC;SACxB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACrD,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IAChC,MAAM,IAAI,GAA2B,EAAE,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAClD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,OAAO,KAAK,CAAC,CAAC;YAAE,SAAS;QAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7C,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9C,MAAM,cAAc,GAClB,KAAK,CAAC,MAAM,IAAI,CAAC;YACjB,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG;YAChB,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC;QAClC,MAAM,cAAc,GAClB,KAAK,CAAC,MAAM,IAAI,CAAC;YACjB,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG;YAChB,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC;QAClC,IAAI,cAAc,IAAI,cAAc,EAAE,CAAC;YACrC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,cAAc,EAAE,CAAC;YACnB,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,EAAU,EAAE,EAAE;gBACtD,MAAM,OAAO,GAA2B;oBACtC,CAAC,EAAE,IAAI;oBACP,CAAC,EAAE,IAAI;oBACP,CAAC,EAAE,IAAI;oBACP,IAAI,EAAE,IAAI;iBACX,CAAC;gBACF,OAAO,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YAC3B,CAAC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACpB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC,CAAC;AAEL;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,OAAe,EACsD,EAAE,CACvE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,YAAY,CACvC,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,CACrC,CAAC;IAEF,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrD,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC,CAAC"}
@@ -1,15 +0,0 @@
1
- import { Effect } from "effect";
2
- import { Display } from "./Display.js";
3
- import type { SandboxError } from "./errors.js";
4
- /**
5
- * Formats a tagged SandboxError into a user-friendly message with
6
- * context-specific hints about what went wrong and how to recover.
7
- */
8
- export declare const formatErrorMessage: (error: SandboxError) => string;
9
- /**
10
- * Wraps an effect so that any SandboxError is caught, displayed via the
11
- * Display service as an error-severity status message, then exits the process
12
- * with code 1. Non-SandboxError errors pass through unchanged.
13
- */
14
- export declare const withFriendlyErrors: <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, Exclude<E, SandboxError>, R | Display>;
15
- //# sourceMappingURL=ErrorHandler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ErrorHandler.d.ts","sourceRoot":"","sources":["../src/ErrorHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,iCAuC9B,CAAC;AASF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,4FA6BqB,CAAC"}
@@ -1,85 +0,0 @@
1
- import { Effect } from "effect";
2
- import { Display } from "./Display.js";
3
- /**
4
- * Formats a tagged SandboxError into a user-friendly message with
5
- * context-specific hints about what went wrong and how to recover.
6
- */
7
- export const formatErrorMessage = (error) => {
8
- switch (error._tag) {
9
- case "ExecError":
10
- return `Command failed in sandbox (${error.command}): ${error.message}`;
11
- case "ExecHostError":
12
- return `Command failed on host (${error.command}): ${error.message}`;
13
- case "CopyError":
14
- return `File copy failed: ${error.message}`;
15
- case "DockerError":
16
- return `Docker operation failed: ${error.message}. Is Docker running?`;
17
- case "PodmanError":
18
- return `Podman operation failed: ${error.message}. Is Podman running?`;
19
- case "SyncError":
20
- return `Git sync failed: ${error.message}`;
21
- case "WorktreeError":
22
- return `Git worktree operation failed: ${error.message}`;
23
- case "PromptError":
24
- return `Failed to resolve prompt: ${error.message}`;
25
- case "AgentError":
26
- return `Agent invocation failed: ${error.message}`;
27
- case "ConfigDirError":
28
- return `${error.message}`;
29
- case "InitError":
30
- return `${error.message}`;
31
- case "AgentIdleTimeoutError":
32
- case "WorktreeTimeoutError":
33
- case "ContainerStartTimeoutError":
34
- case "CopyToWorktreeTimeoutError":
35
- case "CopyToWorktreeError":
36
- case "SyncInTimeoutError":
37
- case "HookTimeoutError":
38
- case "GitSetupTimeoutError":
39
- case "PromptExpansionTimeoutError":
40
- case "CommitCollectionTimeoutError":
41
- case "MergeToHostTimeoutError":
42
- case "SessionCaptureError":
43
- case "CwdError":
44
- return error.message;
45
- }
46
- };
47
- const showErrorAndExit = (error) => Effect.gen(function* () {
48
- const d = yield* Display;
49
- yield* d.status(formatErrorMessage(error), "error");
50
- return yield* Effect.sync(() => process.exit(1));
51
- });
52
- /**
53
- * Wraps an effect so that any SandboxError is caught, displayed via the
54
- * Display service as an error-severity status message, then exits the process
55
- * with code 1. Non-SandboxError errors pass through unchanged.
56
- */
57
- export const withFriendlyErrors = (effect) =>
58
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
59
- Effect.catchTags(effect, {
60
- ExecError: showErrorAndExit,
61
- ExecHostError: showErrorAndExit,
62
- CopyError: showErrorAndExit,
63
- DockerError: showErrorAndExit,
64
- PodmanError: showErrorAndExit,
65
- SyncError: showErrorAndExit,
66
- WorktreeError: showErrorAndExit,
67
- PromptError: showErrorAndExit,
68
- AgentError: showErrorAndExit,
69
- ConfigDirError: showErrorAndExit,
70
- InitError: showErrorAndExit,
71
- AgentIdleTimeoutError: showErrorAndExit,
72
- WorktreeTimeoutError: showErrorAndExit,
73
- ContainerStartTimeoutError: showErrorAndExit,
74
- CopyToWorktreeTimeoutError: showErrorAndExit,
75
- CopyToWorktreeError: showErrorAndExit,
76
- SyncInTimeoutError: showErrorAndExit,
77
- HookTimeoutError: showErrorAndExit,
78
- GitSetupTimeoutError: showErrorAndExit,
79
- PromptExpansionTimeoutError: showErrorAndExit,
80
- CommitCollectionTimeoutError: showErrorAndExit,
81
- MergeToHostTimeoutError: showErrorAndExit,
82
- SessionCaptureError: showErrorAndExit,
83
- CwdError: showErrorAndExit,
84
- });
85
- //# sourceMappingURL=ErrorHandler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ErrorHandler.js","sourceRoot":"","sources":["../src/ErrorHandler.ts"],"names":[],"mappings":"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"}
@@ -1,92 +0,0 @@
1
- import { FileSystem } from "@effect/platform";
2
- import { Effect } from "effect";
3
- export interface TemplateMetadata {
4
- name: string;
5
- description: string;
6
- /**
7
- * Host-side npm packages the template's `main` file imports directly (e.g.
8
- * the planner templates import `zod` for their `<plan>` output schema). Init
9
- * offers to install these with the detected package manager so that
10
- * `npx tsx .sandcastle/main.ts` doesn't crash with ERR_MODULE_NOT_FOUND.
11
- */
12
- dependencies?: readonly string[];
13
- }
14
- export declare const listTemplates: () => TemplateMetadata[];
15
- /**
16
- * Host-side npm packages the given template imports directly. Empty when the
17
- * template name is unknown or the template declares no extra dependencies.
18
- */
19
- export declare const getTemplateDependencies: (templateName: string) => readonly string[];
20
- declare const PACKAGE_MANAGERS: readonly ["npm", "pnpm", "yarn", "bun"];
21
- /** A package manager Sandcastle can detect on the host and build install commands for. */
22
- export type PackageManager = (typeof PACKAGE_MANAGERS)[number];
23
- /**
24
- * Detect the host project's package manager. An explicit corepack-style
25
- * `packageManager` field in package.json wins; otherwise the first matching
26
- * lockfile decides. Defaults to npm when nothing matches.
27
- */
28
- export declare const detectPackageManager: (repoDir: string) => Effect.Effect<"bun" | "npm" | "pnpm" | "yarn", never, FileSystem.FileSystem>;
29
- /** Build the command that adds a runtime dependency for the given package manager. */
30
- export declare const addDependencyCommand: (packageManager: "bun" | "npm" | "pnpm" | "yarn", pkg: string) => string;
31
- /**
32
- * Whether the host package.json already declares `pkg` in any of its dependency
33
- * maps. Used so init doesn't offer to install something already present.
34
- */
35
- export declare const hostHasDependency: (repoDir: string, pkg: string) => Effect.Effect<boolean, never, FileSystem.FileSystem>;
36
- export interface AgentEntry {
37
- readonly name: string;
38
- readonly label: string;
39
- readonly defaultModel: string;
40
- readonly factoryImport: string;
41
- readonly dockerfileTemplate: string;
42
- /** Lines to include in the generated `.env.example` for this agent's API key. */
43
- readonly envExample: string;
44
- /**
45
- * Copy-pasteable interactive command that feeds the custom-issue-tracker
46
- * setup prompt to this agent's CLI on the host. Printed in init's next steps
47
- * when the `custom` issue tracker is selected. Runs on the host (the
48
- * sandbox image isn't built yet), so the user must have the CLI installed.
49
- */
50
- readonly setupCommand: string;
51
- }
52
- export declare const listAgents: () => AgentEntry[];
53
- export interface IssueTrackerEntry {
54
- readonly name: string;
55
- readonly label: string;
56
- readonly templateArgs: {
57
- readonly LIST_TASKS_COMMAND: string;
58
- readonly VIEW_TASK_COMMAND: string;
59
- readonly CLOSE_TASK_COMMAND: string;
60
- readonly ISSUE_TRACKER_TOOLS: string;
61
- };
62
- /** Lines to append to `.env.example` for this issue tracker, or empty string if none needed. */
63
- readonly envExample: string;
64
- }
65
- export declare const listIssueTrackers: () => IssueTrackerEntry[];
66
- export declare const getIssueTracker: (name: string) => IssueTrackerEntry | undefined;
67
- export declare const getAgent: (name: string) => AgentEntry | undefined;
68
- export interface SandboxProviderEntry {
69
- readonly name: string;
70
- readonly label: string;
71
- /** Filename written to .sandcastle/ (e.g. "Dockerfile" or "Containerfile") */
72
- readonly containerfileName: string;
73
- /** CLI namespace for build/remove commands (e.g. "docker" or "podman") */
74
- readonly cliNamespace: string;
75
- }
76
- export declare const listSandboxProviders: () => SandboxProviderEntry[];
77
- export declare const getSandboxProvider: (name: string) => SandboxProviderEntry | undefined;
78
- export declare function getNextStepsLines(template: string, mainFilename: string, issueTracker: IssueTrackerEntry, agent: AgentEntry, packageManager: PackageManager): string[];
79
- export interface ScaffoldOptions {
80
- agent: AgentEntry;
81
- model: string;
82
- templateName?: string;
83
- createLabel?: boolean;
84
- issueTracker?: IssueTrackerEntry;
85
- sandboxProvider?: SandboxProviderEntry;
86
- }
87
- export interface ScaffoldResult {
88
- mainFilename: string;
89
- }
90
- export declare const scaffold: (repoDir: string, options: ScaffoldOptions) => Effect.Effect<ScaffoldResult, Error, FileSystem.FileSystem>;
91
- export {};
92
- //# sourceMappingURL=InitService.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InitService.d.ts","sourceRoot":"","sources":["../src/InitService.ts"],"names":[],"mappings":"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"}