| 108 | `; |
| 109 | |
| 110 | const unixFixtureCommand = (path: string): string => ` |
| 111 | set -eu |
| 112 | rm -rf '${path}' |
| 113 | mkdir -p '${path}/tools' |
| 114 | cat >'${path}/tools/greet.ts' <<'EOF' |
| 115 | ${"import"} { z } from "zod"; |
| 116 | ${"import"} { defineTool } from "executor:app"; |
| 117 | |
| 118 | const Input = z.object({ name: z.string() }); |
| 119 | |
| 120 | export default defineTool({ |
| 121 | description: "Greet", |
| 122 | input: Input, |
| 123 | async handler(input) { |
| 124 | return { greeting: "hello " + input.name }; |
| 125 | }, |
| 126 | }); |
| 127 | EOF |
| 128 | printf '%s' '{"name":"packed-apps-smoke","dependencies":{"zod":"4.3.6"}}' >'${path}/package.json' |
| 129 | : >'${path}/bun.lock' |
| 130 | `; |
| 131 | |
| 132 | const writeFixture = async (path: string): Promise<void> => { |
| 133 | const result = await ssh( |