|
|
@@ -32,7 +32,6 @@ import { Flag } from "../flag/flag"
|
|
|
import { ulid } from "ulid"
|
|
|
import { spawn } from "child_process"
|
|
|
import { Command } from "../command"
|
|
|
-import { $ } from "bun"
|
|
|
import { pathToFileURL, fileURLToPath } from "url"
|
|
|
import { ConfigMarkdown } from "../config/markdown"
|
|
|
import { SessionSummary } from "./summary"
|
|
|
@@ -48,6 +47,7 @@ import { iife } from "@/util/iife"
|
|
|
import { Shell } from "@/shell/shell"
|
|
|
import { Truncate } from "@/tool/truncate"
|
|
|
import { decodeDataUrl } from "@/util/data-url"
|
|
|
+import { Process } from "@/util/process"
|
|
|
|
|
|
// @ts-ignore
|
|
|
globalThis.AI_SDK_LOG_WARNINGS = false
|
|
|
@@ -1812,15 +1812,13 @@ NOTE: At any point in time through this workflow you should feel free to ask the
|
|
|
template = template + "\n\n" + input.arguments
|
|
|
}
|
|
|
|
|
|
- const shell = ConfigMarkdown.shell(template)
|
|
|
- if (shell.length > 0) {
|
|
|
+ const shellMatches = ConfigMarkdown.shell(template)
|
|
|
+ if (shellMatches.length > 0) {
|
|
|
+ const sh = Shell.preferred()
|
|
|
const results = await Promise.all(
|
|
|
- shell.map(async ([, cmd]) => {
|
|
|
- try {
|
|
|
- return await $`${{ raw: cmd }}`.quiet().nothrow().text()
|
|
|
- } catch (error) {
|
|
|
- return `Error executing command: ${error instanceof Error ? error.message : String(error)}`
|
|
|
- }
|
|
|
+ shellMatches.map(async ([, cmd]) => {
|
|
|
+ const out = await Process.text([cmd], { shell: sh, nothrow: true })
|
|
|
+ return out.text
|
|
|
}),
|
|
|
)
|
|
|
let index = 0
|