@rafaeltab/sandcastle 0.13.0-fork.0

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 (64) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1410 -0
  3. package/dist/MountConfig-CmXclHA5.d.ts +26 -0
  4. package/dist/SandboxProvider-EkSMuBp8.d.ts +243 -0
  5. package/dist/chunk-62WN33RK.js +104 -0
  6. package/dist/chunk-62WN33RK.js.map +1 -0
  7. package/dist/chunk-BBMMM5CR.js +23 -0
  8. package/dist/chunk-BBMMM5CR.js.map +1 -0
  9. package/dist/chunk-BIWNFKGV.js +22 -0
  10. package/dist/chunk-BIWNFKGV.js.map +1 -0
  11. package/dist/chunk-CP3TYXZA.js +362 -0
  12. package/dist/chunk-CP3TYXZA.js.map +1 -0
  13. package/dist/chunk-DJRHWPEH.js +25569 -0
  14. package/dist/chunk-DJRHWPEH.js.map +1 -0
  15. package/dist/chunk-NGBM7T3E.js +76 -0
  16. package/dist/chunk-NGBM7T3E.js.map +1 -0
  17. package/dist/chunk-VOG34SRF.js +27012 -0
  18. package/dist/chunk-VOG34SRF.js.map +1 -0
  19. package/dist/index.d.ts +1051 -0
  20. package/dist/index.js +3485 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/main.d.ts +1 -0
  23. package/dist/main.js +19367 -0
  24. package/dist/main.js.map +1 -0
  25. package/dist/mountUtils-CCA-bbpK.d.ts +25 -0
  26. package/dist/sandboxes/daytona.d.ts +60 -0
  27. package/dist/sandboxes/daytona.js +136 -0
  28. package/dist/sandboxes/daytona.js.map +1 -0
  29. package/dist/sandboxes/docker.d.ts +110 -0
  30. package/dist/sandboxes/docker.js +9 -0
  31. package/dist/sandboxes/docker.js.map +1 -0
  32. package/dist/sandboxes/no-sandbox.d.ts +38 -0
  33. package/dist/sandboxes/no-sandbox.js +7 -0
  34. package/dist/sandboxes/no-sandbox.js.map +1 -0
  35. package/dist/sandboxes/podman.d.ts +124 -0
  36. package/dist/sandboxes/podman.js +299 -0
  37. package/dist/sandboxes/podman.js.map +1 -0
  38. package/dist/sandboxes/vercel.d.ts +104 -0
  39. package/dist/sandboxes/vercel.js +189 -0
  40. package/dist/sandboxes/vercel.js.map +1 -0
  41. package/dist/templates/blank/main.mts +12 -0
  42. package/dist/templates/blank/prompt.md +12 -0
  43. package/dist/templates/blank/template.json +4 -0
  44. package/dist/templates/parallel-planner/implement-prompt.md +62 -0
  45. package/dist/templates/parallel-planner/main.mts +204 -0
  46. package/dist/templates/parallel-planner/merge-prompt.md +26 -0
  47. package/dist/templates/parallel-planner/plan-prompt.md +37 -0
  48. package/dist/templates/parallel-planner/template.json +4 -0
  49. package/dist/templates/parallel-planner-with-review/CODING_STANDARDS.md +27 -0
  50. package/dist/templates/parallel-planner-with-review/implement-prompt.md +62 -0
  51. package/dist/templates/parallel-planner-with-review/main.mts +226 -0
  52. package/dist/templates/parallel-planner-with-review/merge-prompt.md +26 -0
  53. package/dist/templates/parallel-planner-with-review/plan-prompt.md +37 -0
  54. package/dist/templates/parallel-planner-with-review/review-prompt.md +55 -0
  55. package/dist/templates/parallel-planner-with-review/template.json +4 -0
  56. package/dist/templates/sequential-reviewer/CODING_STANDARDS.md +27 -0
  57. package/dist/templates/sequential-reviewer/implement-prompt.md +53 -0
  58. package/dist/templates/sequential-reviewer/main.mts +119 -0
  59. package/dist/templates/sequential-reviewer/review-prompt.md +55 -0
  60. package/dist/templates/sequential-reviewer/template.json +4 -0
  61. package/dist/templates/simple-loop/main.mts +50 -0
  62. package/dist/templates/simple-loop/prompt.md +53 -0
  63. package/dist/templates/simple-loop/template.json +4 -0
  64. package/package.json +107 -0
@@ -0,0 +1,53 @@
1
+ # Context
2
+
3
+ ## Open issues
4
+
5
+ !`{{LIST_TASKS_COMMAND}}`
6
+
7
+ The list above has already been filtered to issues ready for work and is the sole source of truth for what work exists. Do not run your own unfiltered query to find more issues — if the list is empty, there is nothing to do.
8
+
9
+ ## Recent RALPH commits (last 10)
10
+
11
+ !`git log --oneline --grep="RALPH" -10`
12
+
13
+ # Task
14
+
15
+ You are RALPH — an autonomous coding agent working through issues one at a time.
16
+
17
+ ## Priority order
18
+
19
+ Work on issues in this order:
20
+
21
+ 1. **Bug fixes** — broken behaviour affecting users
22
+ 2. **Tracer bullets** — thin end-to-end slices that prove an approach works
23
+ 3. **Polish** — improving existing functionality (error messages, UX, docs)
24
+ 4. **Refactors** — internal cleanups with no user-visible change
25
+
26
+ Pick the highest-priority open issue that is not blocked by another open issue.
27
+
28
+ ## Workflow
29
+
30
+ 1. **Explore** — read the issue carefully. Pull in the parent PRD if referenced. Read the relevant source files and tests before writing any code.
31
+ 2. **Plan** — decide what to change and why. Keep the change as small as possible.
32
+ 3. **Execute** — use RGR (Red → Green → Repeat → Refactor): write a failing test first, then write the implementation to pass it.
33
+ 4. **Verify** — run `npm run typecheck` and `npm run test` before committing. Fix any failures before proceeding.
34
+ 5. **Commit** — make a single git commit. The message MUST:
35
+ - Start with `RALPH:` prefix
36
+ - Include the task completed and any PRD reference
37
+ - List key decisions made
38
+ - List files changed
39
+ - Note any blockers for the next iteration
40
+ 6. **Close** — close the issue with `{{CLOSE_TASK_COMMAND}}` explaining what was done.
41
+
42
+ ## Rules
43
+
44
+ - Work on **one issue per iteration**. Do not attempt multiple issues in a single iteration.
45
+ - Do not close an issue until you have committed the fix and verified tests pass.
46
+ - Do not leave commented-out code or TODO comments in committed code.
47
+ - If you are blocked (missing context, failing tests you cannot fix, external dependency), leave a comment on the issue and move on — do not close it.
48
+
49
+ # Done
50
+
51
+ When all actionable issues are complete (or you are blocked on all remaining ones), or the open-issues block at the top of this prompt is empty, output the completion signal:
52
+
53
+ <promise>COMPLETE</promise>
@@ -0,0 +1,4 @@
1
+ {
2
+ "name": "simple-loop",
3
+ "description": "Picks issues one by one and closes them"
4
+ }
package/package.json ADDED
@@ -0,0 +1,107 @@
1
+ {
2
+ "name": "@rafaeltab/sandcastle",
3
+ "version": "0.13.0-fork.0",
4
+ "description": "CLI for orchestrating AI agents in isolated sandbox environments",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "import": "./dist/index.js",
11
+ "types": "./dist/index.d.ts"
12
+ },
13
+ "./sandboxes/docker": {
14
+ "import": "./dist/sandboxes/docker.js",
15
+ "types": "./dist/sandboxes/docker.d.ts"
16
+ },
17
+ "./sandboxes/vercel": {
18
+ "import": "./dist/sandboxes/vercel.js",
19
+ "types": "./dist/sandboxes/vercel.d.ts"
20
+ },
21
+ "./sandboxes/podman": {
22
+ "import": "./dist/sandboxes/podman.js",
23
+ "types": "./dist/sandboxes/podman.d.ts"
24
+ },
25
+ "./sandboxes/daytona": {
26
+ "import": "./dist/sandboxes/daytona.js",
27
+ "types": "./dist/sandboxes/daytona.d.ts"
28
+ },
29
+ "./sandboxes/no-sandbox": {
30
+ "import": "./dist/sandboxes/no-sandbox.js",
31
+ "types": "./dist/sandboxes/no-sandbox.d.ts"
32
+ }
33
+ },
34
+ "bin": {
35
+ "sandcastle": "dist/main.js"
36
+ },
37
+ "scripts": {
38
+ "build": "tsup",
39
+ "postbuild": "rm -rf dist/templates && cp -r src/templates dist/templates && node scripts/check-public-types-effect-free.mjs",
40
+ "test": "vitest run",
41
+ "test:watch": "vitest",
42
+ "typecheck": "tsgo --noEmit",
43
+ "format": "prettier --write .",
44
+ "format:check": "prettier --check .",
45
+ "prepare": "husky",
46
+ "release": "changeset publish",
47
+ "sandcastle": "npm run build && tsx .sandcastle/run.ts",
48
+ "test-podman": "npm run build && tsx --env-file=.sandcastle/.env .sandcastle/test-podman.ts",
49
+ "test-vercel": "npm run build && tsx --env-file=.sandcastle/.env .sandcastle/test-vercel.ts",
50
+ "test-interactive": "npm run build && tsx --env-file=.sandcastle/.env .sandcastle/test-interactive.ts"
51
+ },
52
+ "keywords": [
53
+ "cli",
54
+ "sandbox",
55
+ "docker",
56
+ "ai",
57
+ "agent"
58
+ ],
59
+ "packageManager": "npm@10.9.2",
60
+ "repository": {
61
+ "type": "git",
62
+ "url": "https://github.com/zero-two-rafaeltab/sandcastle"
63
+ },
64
+ "license": "MIT",
65
+ "devDependencies": {
66
+ "@changesets/cli": "^2.30.0",
67
+ "@daytona/sdk": "^0.164.0",
68
+ "@effect/cli": "^0.74.0",
69
+ "@effect/platform": "^0.95.0",
70
+ "@effect/platform-node": "^0.105.0",
71
+ "@effect/printer": "^0.48.0",
72
+ "@effect/printer-ansi": "^0.48.0",
73
+ "@types/node": "^25.5.0",
74
+ "@typescript/native-preview": "^7.0.0-dev.20260317.1",
75
+ "effect": "^3.20.0",
76
+ "husky": "^9.1.7",
77
+ "lint-staged": "^15.5.1",
78
+ "prettier": "^3.5.3",
79
+ "tsup": "^8.5.1",
80
+ "tsx": "^4.21.0",
81
+ "typescript": "^6.0.3",
82
+ "vitest": "^3.2.0",
83
+ "zod": "^4.4.3"
84
+ },
85
+ "dependencies": {
86
+ "@clack/prompts": "^1.1.0"
87
+ },
88
+ "peerDependencies": {
89
+ "@daytona/sdk": "^0.164.0",
90
+ "@vercel/sandbox": ">=2.0.0 <4"
91
+ },
92
+ "peerDependenciesMeta": {
93
+ "@vercel/sandbox": {
94
+ "optional": true
95
+ },
96
+ "@daytona/sdk": {
97
+ "optional": true
98
+ }
99
+ },
100
+ "files": [
101
+ "dist"
102
+ ],
103
+ "publishConfig": {
104
+ "access": "public",
105
+ "tag": "preview"
106
+ }
107
+ }