@ai-hero/sandcastle 0.5.0 → 0.5.4

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 (130) hide show
  1. package/README.md +104 -61
  2. package/dist/AgentProvider.d.ts +17 -1
  3. package/dist/AgentProvider.d.ts.map +1 -1
  4. package/dist/AgentProvider.js +75 -6
  5. package/dist/AgentProvider.js.map +1 -1
  6. package/dist/AgentStreamEmitter.d.ts +36 -0
  7. package/dist/AgentStreamEmitter.d.ts.map +1 -0
  8. package/dist/AgentStreamEmitter.js +21 -0
  9. package/dist/AgentStreamEmitter.js.map +1 -0
  10. package/dist/Display.js +1 -1
  11. package/dist/Display.js.map +1 -1
  12. package/dist/DockerLifecycle.d.ts +0 -10
  13. package/dist/DockerLifecycle.d.ts.map +1 -1
  14. package/dist/DockerLifecycle.js +0 -22
  15. package/dist/DockerLifecycle.js.map +1 -1
  16. package/dist/ErrorHandler.d.ts.map +1 -1
  17. package/dist/ErrorHandler.js +2 -0
  18. package/dist/ErrorHandler.js.map +1 -1
  19. package/dist/InitService.d.ts.map +1 -1
  20. package/dist/InitService.js +3 -1
  21. package/dist/InitService.js.map +1 -1
  22. package/dist/MountConfig.d.ts +1 -2
  23. package/dist/MountConfig.d.ts.map +1 -1
  24. package/dist/Orchestrator.d.ts +11 -5
  25. package/dist/Orchestrator.d.ts.map +1 -1
  26. package/dist/Orchestrator.js +81 -13
  27. package/dist/Orchestrator.js.map +1 -1
  28. package/dist/PodmanLifecycle.d.ts +0 -10
  29. package/dist/PodmanLifecycle.d.ts.map +1 -1
  30. package/dist/PodmanLifecycle.js +0 -22
  31. package/dist/PodmanLifecycle.js.map +1 -1
  32. package/dist/PromptArgumentSubstitution.d.ts +6 -0
  33. package/dist/PromptArgumentSubstitution.d.ts.map +1 -1
  34. package/dist/PromptArgumentSubstitution.js +32 -6
  35. package/dist/PromptArgumentSubstitution.js.map +1 -1
  36. package/dist/PromptPreprocessor.d.ts +8 -0
  37. package/dist/PromptPreprocessor.d.ts.map +1 -1
  38. package/dist/PromptPreprocessor.js +13 -9
  39. package/dist/PromptPreprocessor.js.map +1 -1
  40. package/dist/PromptResolver.d.ts +13 -1
  41. package/dist/PromptResolver.d.ts.map +1 -1
  42. package/dist/PromptResolver.js +3 -2
  43. package/dist/PromptResolver.js.map +1 -1
  44. package/dist/SandboxFactory.d.ts +5 -5
  45. package/dist/SandboxFactory.d.ts.map +1 -1
  46. package/dist/SandboxFactory.js +20 -10
  47. package/dist/SandboxFactory.js.map +1 -1
  48. package/dist/SandboxLifecycle.d.ts +4 -1
  49. package/dist/SandboxLifecycle.d.ts.map +1 -1
  50. package/dist/SandboxLifecycle.js +40 -12
  51. package/dist/SandboxLifecycle.js.map +1 -1
  52. package/dist/SandboxProvider.d.ts +30 -0
  53. package/dist/SandboxProvider.d.ts.map +1 -1
  54. package/dist/SandboxProvider.js +1 -0
  55. package/dist/SandboxProvider.js.map +1 -1
  56. package/dist/SessionPaths.d.ts +26 -0
  57. package/dist/SessionPaths.d.ts.map +1 -0
  58. package/dist/SessionPaths.js +20 -0
  59. package/dist/SessionPaths.js.map +1 -0
  60. package/dist/SessionStore.d.ts +2 -3
  61. package/dist/SessionStore.d.ts.map +1 -1
  62. package/dist/SessionStore.js +17 -15
  63. package/dist/SessionStore.js.map +1 -1
  64. package/dist/WorktreeManager.d.ts +6 -3
  65. package/dist/WorktreeManager.d.ts.map +1 -1
  66. package/dist/WorktreeManager.js +47 -5
  67. package/dist/WorktreeManager.js.map +1 -1
  68. package/dist/createSandbox.d.ts +32 -3
  69. package/dist/createSandbox.d.ts.map +1 -1
  70. package/dist/createSandbox.js +125 -58
  71. package/dist/createSandbox.js.map +1 -1
  72. package/dist/createWorktree.d.ts +32 -4
  73. package/dist/createWorktree.d.ts.map +1 -1
  74. package/dist/createWorktree.js +88 -27
  75. package/dist/createWorktree.js.map +1 -1
  76. package/dist/errors.d.ts +4 -2
  77. package/dist/errors.d.ts.map +1 -1
  78. package/dist/errors.js +2 -0
  79. package/dist/errors.js.map +1 -1
  80. package/dist/index.d.ts +5 -2
  81. package/dist/index.d.ts.map +1 -1
  82. package/dist/index.js +2 -0
  83. package/dist/index.js.map +1 -1
  84. package/dist/interactive.d.ts +19 -0
  85. package/dist/interactive.d.ts.map +1 -1
  86. package/dist/interactive.js +34 -14
  87. package/dist/interactive.js.map +1 -1
  88. package/dist/mountUtils.d.ts +104 -0
  89. package/dist/mountUtils.d.ts.map +1 -0
  90. package/dist/mountUtils.js +245 -0
  91. package/dist/mountUtils.js.map +1 -0
  92. package/dist/raceAbortSignal.d.ts +18 -0
  93. package/dist/raceAbortSignal.d.ts.map +1 -0
  94. package/dist/raceAbortSignal.js +32 -0
  95. package/dist/raceAbortSignal.js.map +1 -0
  96. package/dist/resolveCwd.d.ts +24 -0
  97. package/dist/resolveCwd.d.ts.map +1 -0
  98. package/dist/resolveCwd.js +32 -0
  99. package/dist/resolveCwd.js.map +1 -0
  100. package/dist/run.d.ts +56 -5
  101. package/dist/run.d.ts.map +1 -1
  102. package/dist/run.js +72 -21
  103. package/dist/run.js.map +1 -1
  104. package/dist/sandboxes/docker.d.ts +2 -6
  105. package/dist/sandboxes/docker.d.ts.map +1 -1
  106. package/dist/sandboxes/docker.js +44 -78
  107. package/dist/sandboxes/docker.js.map +1 -1
  108. package/dist/sandboxes/no-sandbox.d.ts.map +1 -1
  109. package/dist/sandboxes/no-sandbox.js +9 -1
  110. package/dist/sandboxes/no-sandbox.js.map +1 -1
  111. package/dist/sandboxes/podman.d.ts +19 -8
  112. package/dist/sandboxes/podman.d.ts.map +1 -1
  113. package/dist/sandboxes/podman.js +49 -87
  114. package/dist/sandboxes/podman.js.map +1 -1
  115. package/dist/startSandbox.d.ts.map +1 -1
  116. package/dist/startSandbox.js +8 -3
  117. package/dist/startSandbox.js.map +1 -1
  118. package/dist/templates/parallel-planner/implement-prompt.md +1 -1
  119. package/dist/templates/parallel-planner-with-review/implement-prompt.md +1 -1
  120. package/dist/templates/parallel-planner-with-review/main.mts +8 -1
  121. package/dist/templates/parallel-planner-with-review/review-prompt.md +2 -2
  122. package/dist/templates/sequential-reviewer/review-prompt.md +2 -2
  123. package/dist/testSandbox.d.ts.map +1 -1
  124. package/dist/testSandbox.js +38 -48
  125. package/dist/testSandbox.js.map +1 -1
  126. package/dist/testSetup.d.ts +2 -0
  127. package/dist/testSetup.d.ts.map +1 -0
  128. package/dist/testSetup.js +29 -0
  129. package/dist/testSetup.js.map +1 -0
  130. package/package.json +1 -1
@@ -36,28 +36,6 @@ export const buildImage = (imageName, containerfileDir, options) => Effect.gen(f
36
36
  yield* podmanExec(["build", "-t", imageName, resolve(containerfileDir)]);
37
37
  }
38
38
  });
39
- /**
40
- * Fix ownership of a directory inside the container.
41
- * Runs as root so the target owner can write to the path.
42
- *
43
- * Non-fatal: if chown fails (e.g. read-only mount), a warning is logged
44
- * but the error is not propagated. Matches Docker provider semantics.
45
- *
46
- * @param owner - chown-compatible owner spec, e.g. "1000:1000"
47
- */
48
- export const chownInContainer = (containerName, owner, path) => Effect.asVoid(podmanExec([
49
- "exec",
50
- "-u",
51
- "root",
52
- containerName,
53
- "chown",
54
- "-R",
55
- owner,
56
- path,
57
- ])).pipe(Effect.catchAll((error) => {
58
- console.warn(`chown -R ${owner} ${path} in container ${containerName} failed (non-fatal): ${error.message}`);
59
- return Effect.void;
60
- }));
61
39
  /**
62
40
  * Remove a Podman image.
63
41
  */
@@ -1 +1 @@
1
- {"version":3,"file":"PodmanLifecycle.js","sourceRoot":"","sources":["../src/PodmanLifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,UAAU,GAAG,CAAC,IAAc,EAAsC,EAAE,CACxE,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE;IACtB,QAAQ,CACN,QAAQ,EACR,IAAI,EACJ,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,EAC/B,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QACxB,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,CACJ,MAAM,CAAC,IAAI,CACT,IAAI,WAAW,CAAC;gBACd,OAAO,EAAE,UAAU,IAAI,CAAC,CAAC,CAAC,YAAY,MAAM,EAAE,QAAQ,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE;aAC5E,CAAC,CACH,CACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEL;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,SAAiB,EACjB,gBAAwB,EACxB,OAA6C,EACX,EAAE,CACpC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,IAAI,OAAO,EAAE,aAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,CAAC,UAAU,CAAC;YAChB,OAAO;YACP,IAAI;YACJ,SAAS;YACT,IAAI;YACJ,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;YAC9B,OAAO,CAAC,GAAG,EAAE;SACd,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC,CAAC,CAAC;AAEL;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,aAAqB,EACrB,KAAa,EACb,IAAY,EACS,EAAE,CACvB,MAAM,CAAC,MAAM,CACX,UAAU,CAAC;IACT,MAAM;IACN,IAAI;IACJ,MAAM;IACN,aAAa;IACb,OAAO;IACP,IAAI;IACJ,KAAK;IACL,IAAI;CACL,CAAC,CACH,CAAC,IAAI,CACJ,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE;IACxB,OAAO,CAAC,IAAI,CACV,YAAY,KAAK,IAAI,IAAI,iBAAiB,aAAa,wBAAwB,KAAK,CAAC,OAAO,EAAE,CAC/F,CAAC;IACF,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC,CAAC,CACH,CAAC;AAEJ;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,SAAiB,EACiB,EAAE,CACpC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"PodmanLifecycle.js","sourceRoot":"","sources":["../src/PodmanLifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,UAAU,GAAG,CAAC,IAAc,EAAsC,EAAE,CACxE,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE;IACtB,QAAQ,CACN,QAAQ,EACR,IAAI,EACJ,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,EAC/B,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QACxB,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,CACJ,MAAM,CAAC,IAAI,CACT,IAAI,WAAW,CAAC;gBACd,OAAO,EAAE,UAAU,IAAI,CAAC,CAAC,CAAC,YAAY,MAAM,EAAE,QAAQ,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE;aAC5E,CAAC,CACH,CACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEL;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,SAAiB,EACjB,gBAAwB,EACxB,OAA6C,EACX,EAAE,CACpC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,IAAI,OAAO,EAAE,aAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,CAAC,UAAU,CAAC;YAChB,OAAO;YACP,IAAI;YACJ,SAAS;YACT,IAAI;YACJ,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;YAC9B,OAAO,CAAC,GAAG,EAAE;SACd,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC,CAAC,CAAC;AAEL;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,SAAiB,EACiB,EAAE,CACpC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC"}
@@ -16,6 +16,12 @@ export declare const BUILT_IN_PROMPT_ARG_KEYS: readonly ["SOURCE_BRANCH", "TARGE
16
16
  * Validates that the user has not provided any built-in prompt argument keys.
17
17
  * Fails with a PromptError if any built-in key is found in `args`.
18
18
  */
19
+ /**
20
+ * Fails if the user passed any `promptArgs` alongside an inline prompt.
21
+ * Inline prompts are delivered to the agent verbatim, so `promptArgs` would
22
+ * silently do nothing. An empty object is treated as absent.
23
+ */
24
+ export declare const validateNoArgsWithInlinePrompt: (args: PromptArgs) => Effect.Effect<void, PromptError, never>;
19
25
  export declare const validateNoBuiltInArgOverride: (args: PromptArgs) => Effect.Effect<void, PromptError, never>;
20
26
  /**
21
27
  * Scans a prompt for `{{KEY}}` placeholders and returns the keys that are
@@ -1 +1 @@
1
- {"version":3,"file":"PromptArgumentSubstitution.d.ts","sourceRoot":"","sources":["../src/PromptArgumentSubstitution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,wBAAwB,6CAG3B,CAAC;AAIX;;;GAGG;AACH,eAAO,MAAM,4BAA4B,+DAaxC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,wDAmBpC,CAAC;AAEF,eAAO,MAAM,oBAAoB,iIA8ChC,CAAC"}
1
+ {"version":3,"file":"PromptArgumentSubstitution.d.ts","sourceRoot":"","sources":["../src/PromptArgumentSubstitution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAK1C;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,wBAAwB,6CAG3B,CAAC;AAIX;;;GAGG;AACH;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,+DAU1C,CAAC;AAEF,eAAO,MAAM,4BAA4B,+DAaxC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,wDAmBpC,CAAC;AAEF,eAAO,MAAM,oBAAoB,iIA4DhC,CAAC"}
@@ -1,6 +1,8 @@
1
1
  import { Effect } from "effect";
2
2
  import { Display } from "./Display.js";
3
3
  import { PromptError } from "./errors.js";
4
+ import { SHELL_BLOCK_MARKER } from "./PromptPreprocessor.js";
5
+ const SHELL_BLOCK_PATTERN = /!`([^`]+)`/g;
4
6
  /**
5
7
  * Prompt argument keys that Sandcastle injects automatically.
6
8
  * These cannot be overridden via `promptArgs`.
@@ -14,6 +16,18 @@ const PLACEHOLDER_PATTERN = /\{\{\s*([A-Za-z_][A-Za-z0-9_]*)\s*\}\}/g;
14
16
  * Validates that the user has not provided any built-in prompt argument keys.
15
17
  * Fails with a PromptError if any built-in key is found in `args`.
16
18
  */
19
+ /**
20
+ * Fails if the user passed any `promptArgs` alongside an inline prompt.
21
+ * Inline prompts are delivered to the agent verbatim, so `promptArgs` would
22
+ * silently do nothing. An empty object is treated as absent.
23
+ */
24
+ export const validateNoArgsWithInlinePrompt = (args) => {
25
+ if (Object.keys(args).length === 0)
26
+ return Effect.void;
27
+ return Effect.fail(new PromptError({
28
+ message: 'promptArgs is only supported with promptFile. Inline prompts (prompt: "...") are passed to the agent as-is — interpolate values directly in JavaScript, or switch to promptFile to use {{KEY}} substitution.',
29
+ }));
30
+ };
17
31
  export const validateNoBuiltInArgOverride = (args) => {
18
32
  for (const key of BUILT_IN_PROMPT_ARG_KEYS) {
19
33
  if (key in args) {
@@ -47,9 +61,21 @@ export const findMissingPromptArgKeys = (prompt, providedArgs) => {
47
61
  return missing;
48
62
  };
49
63
  export const substitutePromptArgs = (prompt, args, silentKeys) => {
50
- const matches = [...prompt.matchAll(PLACEHOLDER_PATTERN)];
51
- if (matches.length === 0 && Object.keys(args).length === 0) {
52
- return Effect.succeed(prompt);
64
+ // Mark shell blocks written in the raw template so the preprocessor can
65
+ // distinguish them from `!`...`` patterns that arrive via arg substitution.
66
+ // Strip any markers already present in raw input so they can't be forged.
67
+ const markedPrompt = prompt
68
+ .replaceAll(SHELL_BLOCK_MARKER, "")
69
+ .replace(SHELL_BLOCK_PATTERN, `!${SHELL_BLOCK_MARKER}\`$1\``);
70
+ const sanitizedArgs = Object.fromEntries(Object.entries(args).map(([key, value]) => [
71
+ key,
72
+ typeof value === "string"
73
+ ? value.replaceAll(SHELL_BLOCK_MARKER, "")
74
+ : value,
75
+ ]));
76
+ const matches = [...markedPrompt.matchAll(PLACEHOLDER_PATTERN)];
77
+ if (matches.length === 0 && Object.keys(sanitizedArgs).length === 0) {
78
+ return Effect.succeed(markedPrompt);
53
79
  }
54
80
  return Effect.gen(function* () {
55
81
  const display = yield* Display;
@@ -57,7 +83,7 @@ export const substitutePromptArgs = (prompt, args, silentKeys) => {
57
83
  const referencedKeys = new Set(matches.map((m) => m[1]));
58
84
  // Check for missing keys (placeholder in prompt but no matching arg)
59
85
  for (const key of referencedKeys) {
60
- if (!(key in args)) {
86
+ if (!(key in sanitizedArgs)) {
61
87
  return yield* Effect.fail(new PromptError({
62
88
  message: `Prompt argument "{{${key}}}" has no matching value in promptArgs`,
63
89
  }));
@@ -65,13 +91,13 @@ export const substitutePromptArgs = (prompt, args, silentKeys) => {
65
91
  }
66
92
  // Warn about unused keys (arg provided but no matching placeholder)
67
93
  // Skip keys listed in silentKeys (e.g. built-in args)
68
- for (const key of Object.keys(args)) {
94
+ for (const key of Object.keys(sanitizedArgs)) {
69
95
  if (!referencedKeys.has(key) && !silentKeys?.has(key)) {
70
96
  yield* display.status(`Prompt argument "${key}" was provided but not referenced in the prompt`, "warn");
71
97
  }
72
98
  }
73
99
  // Replace all placeholders with their values
74
- const result = prompt.replace(PLACEHOLDER_PATTERN, (_match, key) => args[key].toString());
100
+ const result = markedPrompt.replace(PLACEHOLDER_PATTERN, (_match, key) => sanitizedArgs[key].toString());
75
101
  return result;
76
102
  });
77
103
  };
@@ -1 +1 @@
1
- {"version":3,"file":"PromptArgumentSubstitution.js","sourceRoot":"","sources":["../src/PromptArgumentSubstitution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PromptArgumentSubstitution.js","sourceRoot":"","sources":["../src/PromptArgumentSubstitution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,mBAAmB,GAAG,aAAa,CAAC;AAS1C;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,eAAe;IACf,eAAe;CACP,CAAC;AAEX,MAAM,mBAAmB,GAAG,yCAAyC,CAAC;AAEtE;;;GAGG;AACH;;;;GAIG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAC5C,IAAgB,EACkB,EAAE;IACpC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC;IACvD,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,WAAW,CAAC;QACd,OAAO,EACL,8MAA8M;KACjN,CAAC,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC1C,IAAgB,EACkB,EAAE;IACpC,KAAK,MAAM,GAAG,IAAI,wBAAwB,EAAE,CAAC;QAC3C,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YAChB,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,WAAW,CAAC;gBACd,OAAO,EAAE,IAAI,GAAG,yEAAyE;aAC1F,CAAC,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,MAAc,EACd,YAAwB,EACd,EAAE;IACZ,MAAM,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,IAAI,GAAG,CAAS,wBAAwB,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;QAClB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAClC,IAAI,GAAG,IAAI,YAAY;YAAE,SAAS;QAClC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,MAAc,EACd,IAAgB,EAChB,UAAgC,EACa,EAAE;IAC/C,wEAAwE;IACxE,4EAA4E;IAC5E,0EAA0E;IAC1E,MAAM,YAAY,GAAG,MAAM;SACxB,UAAU,CAAC,kBAAkB,EAAE,EAAE,CAAC;SAClC,OAAO,CAAC,mBAAmB,EAAE,IAAI,kBAAkB,QAAQ,CAAC,CAAC;IAChE,MAAM,aAAa,GAAe,MAAM,CAAC,WAAW,CAClD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;QACzC,GAAG;QACH,OAAO,KAAK,KAAK,QAAQ;YACvB,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,kBAAkB,EAAE,EAAE,CAAC;YAC1C,CAAC,CAAC,KAAK;KACV,CAAC,CACH,CAAC;IACF,MAAM,OAAO,GAAG,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAEhE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpE,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACzB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC;QAE/B,4CAA4C;QAC5C,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC;QAE1D,qEAAqE;QACrE,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;YACjC,IAAI,CAAC,CAAC,GAAG,IAAI,aAAa,CAAC,EAAE,CAAC;gBAC5B,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,IAAI,WAAW,CAAC;oBACd,OAAO,EAAE,sBAAsB,GAAG,yCAAyC;iBAC5E,CAAC,CACH,CAAC;YACJ,CAAC;QACH,CAAC;QAED,oEAAoE;QACpE,sDAAsD;QACtD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtD,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,CACnB,oBAAoB,GAAG,iDAAiD,EACxE,MAAM,CACP,CAAC;YACJ,CAAC;QACH,CAAC;QAED,6CAA6C;QAC7C,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CACvE,aAAa,CAAC,GAAa,CAAE,CAAC,QAAQ,EAAE,CACzC,CAAC;QAEF,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -3,5 +3,13 @@ import { Display } from "./Display.js";
3
3
  import { PromptError, PromptExpansionTimeoutError } from "./errors.js";
4
4
  import type { ExecError } from "./errors.js";
5
5
  import type { SandboxService } from "./SandboxFactory.js";
6
+ /**
7
+ * @internal
8
+ * Marker inserted between `!` and the opening backtick for shell blocks that
9
+ * appear in the raw template. The preprocessor only executes marked blocks, so
10
+ * `!`...`` patterns arriving via argument substitution are treated as data.
11
+ * Used only by `substitutePromptArgs`; not part of the public API.
12
+ */
13
+ export declare const SHELL_BLOCK_MARKER = "\u0001";
6
14
  export declare const preprocessPrompt: (prompt: string, sandbox: SandboxService, cwd: string) => Effect.Effect<string, ExecError | PromptError | PromptExpansionTimeoutError, Display>;
7
15
  //# sourceMappingURL=PromptPreprocessor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PromptPreprocessor.d.ts","sourceRoot":"","sources":["../src/PromptPreprocessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EACL,WAAW,EACX,2BAA2B,EAE5B,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAI1D,eAAO,MAAM,gBAAgB,iJA2E5B,CAAC"}
1
+ {"version":3,"file":"PromptPreprocessor.d.ts","sourceRoot":"","sources":["../src/PromptPreprocessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EACL,WAAW,EACX,2BAA2B,EAE5B,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAI1D;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,WAAS,CAAC;AAOzC,eAAO,MAAM,gBAAgB,iJAqE5B,CAAC"}
@@ -2,19 +2,23 @@ import { Effect } from "effect";
2
2
  import { Display } from "./Display.js";
3
3
  import { PromptError, PromptExpansionTimeoutError, withTimeout, } from "./errors.js";
4
4
  const PROMPT_EXPANSION_TIMEOUT_MS = 30_000;
5
+ /**
6
+ * @internal
7
+ * Marker inserted between `!` and the opening backtick for shell blocks that
8
+ * appear in the raw template. The preprocessor only executes marked blocks, so
9
+ * `!`...`` patterns arriving via argument substitution are treated as data.
10
+ * Used only by `substitutePromptArgs`; not part of the public API.
11
+ */
12
+ export const SHELL_BLOCK_MARKER = "\x01";
13
+ const MARKED_SHELL_BLOCK_PATTERN = new RegExp(`!${SHELL_BLOCK_MARKER}\`([^\`]+)\``, "g");
5
14
  export const preprocessPrompt = (prompt, sandbox, cwd) => {
6
- const pattern = /!`([^`]+)`/g;
7
- const matches = [...prompt.matchAll(pattern)];
15
+ const matches = [...prompt.matchAll(MARKED_SHELL_BLOCK_PATTERN)];
8
16
  if (matches.length === 0) {
9
- return Effect.succeed(prompt);
17
+ return Effect.succeed(prompt.replaceAll(SHELL_BLOCK_MARKER, ""));
10
18
  }
11
19
  return Effect.gen(function* () {
12
20
  const display = yield* Display;
13
21
  return yield* display.taskLog("Expanding shell expressions", (message) => Effect.gen(function* () {
14
- // Log all commands upfront in document order
15
- for (const match of matches) {
16
- message(match[1]);
17
- }
18
22
  // Execute all commands in parallel
19
23
  const results = yield* Effect.all(matches.map((match) => {
20
24
  const command = match[1];
@@ -32,7 +36,7 @@ export const preprocessPrompt = (prompt, sandbox, cwd) => {
32
36
  for (let i = 0; i < matches.length; i++) {
33
37
  const command = matches[i][1];
34
38
  const tokens = Math.ceil(results[i].length / 4);
35
- message(`${command} \u2192 ~${tokens} tokens`);
39
+ message(`${command} ~${tokens} tokens`);
36
40
  }
37
41
  // Replace all matches using original indices (process in reverse to preserve positions)
38
42
  let result = prompt;
@@ -44,7 +48,7 @@ export const preprocessPrompt = (prompt, sandbox, cwd) => {
44
48
  results[i] +
45
49
  result.slice(index + match[0].length);
46
50
  }
47
- return result;
51
+ return result.replaceAll(SHELL_BLOCK_MARKER, "");
48
52
  }));
49
53
  });
50
54
  };
@@ -1 +1 @@
1
- {"version":3,"file":"PromptPreprocessor.js","sourceRoot":"","sources":["../src/PromptPreprocessor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PromptPreprocessor.js","sourceRoot":"","sources":["../src/PromptPreprocessor.ts"],"names":[],"mappings":"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"}
@@ -5,5 +5,17 @@ export interface ResolvePromptOptions {
5
5
  readonly prompt?: string;
6
6
  readonly promptFile?: string;
7
7
  }
8
- export declare const resolvePrompt: (options: ResolvePromptOptions) => Effect.Effect<string, PromptError, FileSystem.FileSystem>;
8
+ /**
9
+ * The resolved prompt text plus the source it came from.
10
+ *
11
+ * - `inline`: came from `prompt: "..."` — delivered to the agent verbatim.
12
+ * No prompt argument substitution, no prompt expansion, no built-in args.
13
+ * - `template`: came from `promptFile` — eligible for `{{KEY}}` substitution
14
+ * and `` !`command` `` expansion.
15
+ */
16
+ export interface ResolvedPrompt {
17
+ readonly text: string;
18
+ readonly source: "inline" | "template";
19
+ }
20
+ export declare const resolvePrompt: (options: ResolvePromptOptions) => Effect.Effect<ResolvedPrompt, PromptError, FileSystem.FileSystem>;
9
21
  //# sourceMappingURL=PromptResolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PromptResolver.d.ts","sourceRoot":"","sources":["../src/PromptResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,eAAO,MAAM,aAAa,8FAsCzB,CAAC"}
1
+ {"version":3,"file":"PromptResolver.d.ts","sourceRoot":"","sources":["../src/PromptResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC;CACxC;AAED,eAAO,MAAM,aAAa,sGAuCzB,CAAC"}
@@ -9,7 +9,7 @@ export const resolvePrompt = (options) => {
9
9
  }));
10
10
  }
11
11
  if (prompt !== undefined) {
12
- return Effect.succeed(prompt);
12
+ return Effect.succeed({ text: prompt, source: "inline" });
13
13
  }
14
14
  if (promptFile === undefined) {
15
15
  return Effect.fail(new PromptError({
@@ -18,9 +18,10 @@ export const resolvePrompt = (options) => {
18
18
  }
19
19
  return Effect.gen(function* () {
20
20
  const fs = yield* FileSystem.FileSystem;
21
- return yield* fs.readFileString(promptFile).pipe(Effect.catchAll((e) => Effect.fail(new PromptError({
21
+ const text = yield* fs.readFileString(promptFile).pipe(Effect.catchAll((e) => Effect.fail(new PromptError({
22
22
  message: `Failed to read prompt from ${promptFile}: ${e}`,
23
23
  }))));
24
+ return { text, source: "template" };
24
25
  });
25
26
  };
26
27
  //# sourceMappingURL=PromptResolver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PromptResolver.js","sourceRoot":"","sources":["../src/PromptResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAO1C,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,OAA6B,EAC8B,EAAE;IAC7D,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAEvC,IAAI,MAAM,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QACrD,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,WAAW,CAAC;YACd,OAAO,EAAE,gDAAgD;SAC1D,CAAC,CACH,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,WAAW,CAAC;YACd,OAAO,EACL,iHAAiH;SACpH,CAAC,CACH,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACzB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;QACxC,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,IAAI,CAC9C,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CACpB,MAAM,CAAC,IAAI,CACT,IAAI,WAAW,CAAC;YACd,OAAO,EAAE,8BAA8B,UAAU,KAAK,CAAC,EAAE;SAC1D,CAAC,CACH,CACF,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
1
+ {"version":3,"file":"PromptResolver.js","sourceRoot":"","sources":["../src/PromptResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAoB1C,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,OAA6B,EACsC,EAAE;IACrE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAEvC,IAAI,MAAM,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QACrD,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,WAAW,CAAC;YACd,OAAO,EAAE,gDAAgD;SAC1D,CAAC,CACH,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,WAAW,CAAC;YACd,OAAO,EACL,iHAAiH;SACpH,CAAC,CACH,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACzB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;QACxC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,IAAI,CACpD,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CACpB,MAAM,CAAC,IAAI,CACT,IAAI,WAAW,CAAC;YACd,OAAO,EAAE,8BAA8B,UAAU,KAAK,CAAC,EAAE;SAC1D,CAAC,CACH,CACF,CACF,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAmB,EAAE,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -15,6 +15,7 @@ export interface SandboxService {
15
15
  onLine?: (line: string) => void;
16
16
  cwd?: string;
17
17
  sudo?: boolean;
18
+ stdin?: string;
18
19
  }) => Effect.Effect<ExecResult, ExecError>;
19
20
  /** Copy a file or directory from the host into the sandbox. */
20
21
  readonly copyIn: (hostPath: string, sandboxPath: string) => Effect.Effect<void, CopyError>;
@@ -36,9 +37,8 @@ export interface SandboxInfo {
36
37
  readonly hostWorktreePath?: string;
37
38
  /** Absolute path to the worktree inside the sandbox, as reported by the provider. */
38
39
  readonly sandboxRepoPath: string;
39
- /** Sync changes from the sandbox to the host worktree.
40
- * For isolated providers, runs syncOut. For bind-mount providers, this is a no-op. */
41
- readonly applyToHost: () => Effect.Effect<void, SyncError>;
40
+ /** Sync changes from the sandbox to the host worktree (isolated providers only). */
41
+ readonly applyToHost?: () => Effect.Effect<void, SyncError>;
42
42
  /** The bind-mount sandbox handle, available when the provider is a bind-mount provider. Used for session capture. */
43
43
  readonly bindMountHandle?: BindMountSandboxHandle;
44
44
  }
@@ -63,10 +63,10 @@ declare const SandboxConfig_base: Context.TagClass<SandboxConfig, "SandboxConfig
63
63
  readonly sandboxProvider: SandboxProvider;
64
64
  /** Branch strategy — controls how the agent's changes relate to branches. */
65
65
  readonly branchStrategy: BranchStrategy;
66
- /** When false, reuse an existing worktree instead of failing on collision. Default: true. */
67
- readonly throwOnDuplicateWorktree?: boolean | undefined;
68
66
  /** Lifecycle hooks grouped by execution location (host or sandbox). */
69
67
  readonly hooks?: SandboxHooks | undefined;
68
+ /** AbortSignal threaded to lifecycle hooks so they can cooperatively cancel. */
69
+ readonly signal?: AbortSignal | undefined;
70
70
  }>;
71
71
  export declare class SandboxConfig extends SandboxConfig_base {
72
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SandboxFactory.d.ts","sourceRoot":"","sources":["../src/SandboxFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAQ,KAAK,EAAE,MAAM,QAAQ,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAGL,SAAS,EACT,SAAS,EACT,SAAS,EAGT,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EAEd,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAIxE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,CACb,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,KACxE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAE1C,+DAA+D;IAC/D,QAAQ,CAAC,MAAM,EAAE,CACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,KAChB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAEpC,uDAAuD;IACvD,QAAQ,CAAC,WAAW,EAAE,CACpB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,KACb,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;CACrC;;AAED,qBAAa,OAAQ,SAAQ,YAG1B;CAAG;AAmCN;;;GAGG;AACH,eAAO,MAAM,0BAA0B,kHAkCnC,CAAC;AAEL,8EAA8E;AAC9E,eAAO,MAAM,gBAAgB,0BAA0B,CAAC;AAExD,MAAM,WAAW,WAAW;IAC1B,4EAA4E;IAC5E,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,qFAAqF;IACrF,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC;2FACuF;IACvF,QAAQ,CAAC,WAAW,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3D,qHAAqH;IACrH,QAAQ,CAAC,eAAe,CAAC,EAAE,sBAAsB,CAAC;CACnD;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,6GAA6G;IAC7G,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;CACzC;;2BAK0B,CAAC,EAAE,CAAC,EAAE,CAAC;;AAHlC,qBAAa,cAAe,SAAQ,mBAWjC;CAAG;;;;IAOF,2FAA2F;;IAE3F,gGAAgG;;IAEhG,sEAAsE;;IAEtE,6EAA6E;;IAE7E,6FAA6F;;IAE7F,uEAAuE;;;AAf3E,qBAAa,aAAc,SAAQ,kBAkBhC;CAAG;AAqEN,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,wFAwBzB,CAAC;AAUL,eAAO,MAAM,4BAA4B;;CA6QxC,CAAC"}
1
+ {"version":3,"file":"SandboxFactory.d.ts","sourceRoot":"","sources":["../src/SandboxFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAQ,KAAK,EAAE,MAAM,QAAQ,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAGL,SAAS,EACT,SAAS,EACT,SAAS,EAGT,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EAEd,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAKxE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,CACb,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,KACE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAE1C,+DAA+D;IAC/D,QAAQ,CAAC,MAAM,EAAE,CACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,KAChB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAEpC,uDAAuD;IACvD,QAAQ,CAAC,WAAW,EAAE,CACpB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,KACb,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;CACrC;;AAED,qBAAa,OAAQ,SAAQ,YAG1B;CAAG;AAmCN;;;GAGG;AACH,eAAO,MAAM,0BAA0B,kHAkCnC,CAAC;AAEL,8EAA8E;AAC9E,eAAO,MAAM,gBAAgB,0BAA0B,CAAC;AAExD,MAAM,WAAW,WAAW;IAC1B,4EAA4E;IAC5E,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,qFAAqF;IACrF,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,oFAAoF;IACpF,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC5D,qHAAqH;IACrH,QAAQ,CAAC,eAAe,CAAC,EAAE,sBAAsB,CAAC;CACnD;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,6GAA6G;IAC7G,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;CACzC;;2BAK0B,CAAC,EAAE,CAAC,EAAE,CAAC;;AAHlC,qBAAa,cAAe,SAAQ,mBAWjC;CAAG;;;;IAOF,2FAA2F;;IAE3F,gGAAgG;;IAEhG,sEAAsE;;IAEtE,6EAA6E;;IAE7E,uEAAuE;;IAEvE,gFAAgF;;;AAfpF,qBAAa,aAAc,SAAQ,kBAkBhC;CAAG;AAqEN,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,wFAwBzB,CAAC;AAUL,eAAO,MAAM,4BAA4B;;CA2SxC,CAAC"}
@@ -8,6 +8,7 @@ import { Display } from "./Display.js";
8
8
  import { runHostHooks } from "./SandboxLifecycle.js";
9
9
  import { startSandbox } from "./startSandbox.js";
10
10
  import { syncOut } from "./syncOut.js";
11
+ import { patchGitMountsForWindows } from "./mountUtils.js";
11
12
  export class Sandbox extends Context.Tag("Sandbox")() {
12
13
  }
13
14
  const getCopyIn = (handle) => {
@@ -136,7 +137,7 @@ export const resolveGitMounts = (gitPath) => Effect.gen(function* () {
136
137
  });
137
138
  export const WorktreeDockerSandboxFactory = {
138
139
  layer: Layer.effect(SandboxFactory, Effect.gen(function* () {
139
- const { env, hostRepoDir, copyToWorktree: copyPaths, name, sandboxProvider, branchStrategy, throwOnDuplicateWorktree, hooks, } = yield* SandboxConfig;
140
+ const { env, hostRepoDir, copyToWorktree: copyPaths, name, sandboxProvider, branchStrategy, hooks, signal, } = yield* SandboxConfig;
140
141
  const isHeadMode = branchStrategy.type === "head";
141
142
  const branch = branchStrategy.type === "branch" ? branchStrategy.branch : undefined;
142
143
  const fileSystem = yield* FileSystem.FileSystem;
@@ -145,10 +146,7 @@ export const WorktreeDockerSandboxFactory = {
145
146
  const pruneAndCreate = () => WorktreeManager.pruneStale(hostRepoDir).pipe(Effect.catchAll((e) => Effect.sync(() => {
146
147
  console.error("[sandcastle] Warning: failed to prune stale worktrees:", e.message);
147
148
  })), Effect.andThen(branch
148
- ? WorktreeManager.create(hostRepoDir, {
149
- branch,
150
- throwOnDuplicateWorktree,
151
- })
149
+ ? WorktreeManager.create(hostRepoDir, { branch })
152
150
  : WorktreeManager.create(hostRepoDir, { name })), Effect.provideService(FileSystem.FileSystem, fileSystem));
153
151
  return {
154
152
  withSandbox: (makeEffect) => {
@@ -158,7 +156,7 @@ export const WorktreeDockerSandboxFactory = {
158
156
  return Effect.acquireUseRelease(
159
157
  // Acquire: prune stale worktrees, create worktree, run host hooks, then start sandbox
160
158
  pruneAndCreate().pipe(Effect.tap((worktreeInfo) => hooks?.host?.onWorktreeReady?.length
161
- ? runHostHooks(hooks.host.onWorktreeReady, worktreeInfo.path)
159
+ ? runHostHooks(hooks.host.onWorktreeReady, worktreeInfo.path, signal)
162
160
  : Effect.void), Effect.flatMap((worktreeInfo) => startSandbox({
163
161
  provider: sandboxProvider,
164
162
  hostRepoDir: worktreeInfo.path,
@@ -191,9 +189,16 @@ export const WorktreeDockerSandboxFactory = {
191
189
  // Head mode: bind-mount host directory directly, no worktree
192
190
  const gitPath = join(hostRepoDir, ".git");
193
191
  return (hooks?.host?.onWorktreeReady?.length
194
- ? runHostHooks(hooks.host.onWorktreeReady, hostRepoDir)
192
+ ? runHostHooks(hooks.host.onWorktreeReady, hostRepoDir, signal)
195
193
  : Effect.void).pipe(Effect.andThen(resolveGitMounts(gitPath)), Effect.provideService(FileSystem.FileSystem, fileSystem), Effect.mapError((e) => new WorktreeError({
196
194
  message: `Failed to resolve git mounts: ${e}`,
195
+ })), Effect.flatMap((gitMounts) =>
196
+ // Patch git mounts for Windows worktree compatibility (ADR-0006)
197
+ Effect.tryPromise({
198
+ try: () => patchGitMountsForWindows(gitMounts, hostRepoDir, SANDBOX_REPO_DIR),
199
+ catch: (e) => new WorktreeError({
200
+ message: `Failed to patch git mounts: ${e instanceof Error ? e.message : String(e)}`,
201
+ }),
197
202
  })), Effect.flatMap((gitMounts) => Effect.acquireUseRelease(startSandbox({
198
203
  provider: sandboxProvider,
199
204
  hostRepoDir,
@@ -206,7 +211,6 @@ export const WorktreeDockerSandboxFactory = {
206
211
  ({ sandboxLayer, worktreePath, handle }) => makeEffect({
207
212
  hostWorktreePath: hostRepoDir,
208
213
  sandboxRepoPath: worktreePath,
209
- applyToHost: () => Effect.void,
210
214
  bindMountHandle: handle,
211
215
  }).pipe(Effect.provide(sandboxLayer)),
212
216
  // Release
@@ -227,11 +231,18 @@ export const WorktreeDockerSandboxFactory = {
227
231
  pruneAndCreate().pipe(Effect.flatMap((worktreeInfo) => (copyPaths && copyPaths.length > 0
228
232
  ? display.spinner("Copying to worktree", copyToWorktree(copyPaths, hostRepoDir, worktreeInfo.path))
229
233
  : Effect.succeed(undefined)).pipe(Effect.map(() => worktreeInfo))), Effect.tap((worktreeInfo) => hooks?.host?.onWorktreeReady?.length
230
- ? runHostHooks(hooks.host.onWorktreeReady, worktreeInfo.path)
234
+ ? runHostHooks(hooks.host.onWorktreeReady, worktreeInfo.path, signal)
231
235
  : Effect.void), Effect.flatMap((worktreeInfo) => {
232
236
  const gitPath = join(hostRepoDir, ".git");
233
237
  return resolveGitMounts(gitPath).pipe(Effect.provideService(FileSystem.FileSystem, fileSystem), Effect.mapError((e) => new WorktreeError({
234
238
  message: `Failed to resolve git mounts: ${e}`,
239
+ })),
240
+ // Patch git mounts for Windows worktree compatibility (ADR-0006)
241
+ Effect.flatMap((gitMounts) => Effect.tryPromise({
242
+ try: () => patchGitMountsForWindows(gitMounts, worktreeInfo.path, SANDBOX_REPO_DIR),
243
+ catch: (e) => new WorktreeError({
244
+ message: `Failed to patch git mounts: ${e instanceof Error ? e.message : String(e)}`,
245
+ }),
235
246
  })), Effect.flatMap((gitMounts) =>
236
247
  // sandboxProvider is guaranteed bind-mount here
237
248
  // (isolated providers return early above)
@@ -253,7 +264,6 @@ export const WorktreeDockerSandboxFactory = {
253
264
  ({ worktreeInfo, sandboxLayer, worktreePath, handle }) => makeEffect({
254
265
  hostWorktreePath: worktreeInfo.path,
255
266
  sandboxRepoPath: worktreePath,
256
- applyToHost: () => Effect.void,
257
267
  bindMountHandle: handle,
258
268
  }).pipe(Effect.provide(sandboxLayer)),
259
269
  // Release: close provider handle, then remove/preserve worktree based on dirty state.
@@ -1 +1 @@
1
- {"version":3,"file":"SandboxFactory.js","sourceRoot":"","sources":["../src/SandboxFactory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SandboxFactory.js","sourceRoot":"","sources":["../src/SandboxFactory.ts"],"names":[],"mappings":"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"}
@@ -25,7 +25,7 @@ export type SandboxHooks = {
25
25
  */
26
26
  export declare const runHostHooks: (hooks: readonly {
27
27
  readonly command: string;
28
- }[], cwd: string) => Effect.Effect<void, ExecError | HookTimeoutError, never>;
28
+ }[], cwd: string, signal?: AbortSignal | undefined) => Effect.Effect<void, ExecError | HookTimeoutError, never>;
29
29
  export interface SandboxLifecycleOptions {
30
30
  readonly hostRepoDir: string;
31
31
  readonly sandboxRepoDir: string;
@@ -38,6 +38,9 @@ export interface SandboxLifecycleOptions {
38
38
  * For isolated providers, this syncs changes from the sandbox to the host worktree.
39
39
  * For bind-mount providers, this is a no-op (filesystem is already shared). */
40
40
  readonly applyToHost?: () => Effect.Effect<void, SyncError>;
41
+ /** AbortSignal passed through to lifecycle hooks so they can cooperatively cancel.
42
+ * When omitted, hooks receive a never-aborted signal. */
43
+ readonly signal?: AbortSignal;
41
44
  }
42
45
  export interface SandboxContext {
43
46
  readonly sandbox: SandboxService;
@@ -1 +1 @@
1
- {"version":3,"file":"SandboxLifecycle.d.ts","sourceRoot":"","sources":["../src/SandboxLifecycle.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAEL,SAAS,EAET,gBAAgB,EAEhB,SAAS,EAET,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,OAAO,EAEP,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AA0C7B,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE;QACd,QAAQ,CAAC,eAAe,CAAC,EAAE,aAAa,CAAC;YACvC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;SAC1B,CAAC,CAAC;QACH,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC;YACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;SAC1B,CAAC,CAAC;KACJ,CAAC;IACF,QAAQ,CAAC,OAAO,CAAC,EAAE;QACjB,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC;YACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;YACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;SACzB,CAAC,CAAC;KACJ,CAAC;CACH,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY;;6EAyBrB,CAAC;AAEL,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;yFACqF;IACrF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC;;oFAEgF;IAChF,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB,CAAC,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACrC;AAED,eAAO,MAAM,oBAAoB,GAAI,CAAC,kMAoSlC,CAAC"}
1
+ {"version":3,"file":"SandboxLifecycle.d.ts","sourceRoot":"","sources":["../src/SandboxLifecycle.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAEL,SAAS,EAET,gBAAgB,EAEhB,SAAS,EAET,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,OAAO,EAEP,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AA0C7B,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE;QACd,QAAQ,CAAC,eAAe,CAAC,EAAE,aAAa,CAAC;YACvC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;SAC1B,CAAC,CAAC;QACH,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC;YACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;SAC1B,CAAC,CAAC;KACJ,CAAC;IACF,QAAQ,CAAC,OAAO,CAAC,EAAE;QACjB,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC;YACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;YACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;SACzB,CAAC,CAAC;KACJ,CAAC;CACH,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY;;+GA0BrB,CAAC;AAEL,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;yFACqF;IACrF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC;;oFAEgF;IAChF,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC5D;8DAC0D;IAC1D,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB,CAAC,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACrC;AAED,eAAO,MAAM,oBAAoB,GAAI,CAAC,kMAwVlC,CAAC"}