This is Flowglad's fork of
vercel-labs/just-bash. We carry one patch that fixes an issue encountered while embedding just-bash in our reasoning agent. The patch lives at TypeScript-source level on theflowglad-mainbranch (this repo's default) and is reflected in the committeddist/. Consumers must pin a package-root tag namedv<upstream>-fgp.<n>(for example,v2.14.3-fgp.1), not the branch and not a monorepo-root tag.
Patch What it fixes Upstream PR sqlite3-dot-commandssql.js doesn't implement sqlite3's CLI dot-commands ( .tables,.schema,.mode,.read,.separator,.quit, etc.), so agent scripts pasted from realsqlite3sessions hit syntax errors. We carry a preprocessor (commands/sqlite3/dot-commands.ts) that translates each dot-command to equivalent SQL, formatter-state mutations, recursive.readinlining, or actionable in-band error messages before handing the script to the worker. (The originalsqlite3-workerbundling bug was upstreamed in vercel-labs#190.)vercel-labs#249 The
awk-comma-continuationpatch (upstreamed in vercel-labs#206) and thejq-permissive-control-charspatch (upstreamed in vercel-labs#214) have been retired — those issues are fixed in upstream and our source matches it byte-for-byte.Tags are cut automatically. Any push to
flowglad-mainthat touchespackages/just-bash/**triggers.github/workflows/auto-tag.yml, which computes the nextv<package-version>-fgp.<n>(incrementing<n>from the highest existing tag for that version), runspnpm flowglad:tag --push, and — if thePROVISIONING_AGENT_PR_TOKENsecret is set — opens a PR toflowglad/provisioning-agentupdating the pinnedjust-bashdependency to the new tag. Add[skip auto-tag]to a commit message to opt out, or use the workflow'sworkflow_dispatchtrigger with atag_overrideinput to force a specific tag.git fetch upstream git merge upstream/main pnpm install --frozen-lockfile pnpm --filter just-bash build pnpm --filter just-bash typecheck pnpm --filter just-bash exec vitest run src/commands/sqlite3/sqlite3.test.ts src/commands/python3/python3.optin.test.ts git add packages/just-bash/package.json packages/just-bash/src packages/just-bash/vendor git add -f packages/just-bash/dist git commit -m "sync: upstream <sha>" git push origin flowglad-mainPushing the sync commit lets
auto-tag.ymlcut the next tag.pnpm flowglad:tagis still the underlying mechanism — it refuses dirty worktrees, requires the tag name to match the package version, creates apackages/just-bashsubtree tag, embeds a hydrated CPython WASM blob when the subtree contains a Git LFS pointer, and runs a clean Bun install smoke before publishing. Run it locally for emergency / out-of-band releases. Seedocs/FLOWGLAD_RELEASE.mdfor the full procedure.
This repository hosts the just-bash package and its examples.
| Package | Path | Description |
|---|---|---|
just-bash |
packages/just-bash |
A simulated bash environment with virtual filesystem |
See the package's own README for usage documentation.
packages/ publishable npm packages
examples/ example consumers (bash-agent, cjs-consumer, website)
.github/ CI workflows
pnpm install # install all workspace deps
pnpm build # build all packages
pnpm test:run # run unit + comparison tests
pnpm test:dist # smoke-test the bundled output
pnpm lint # biome + per-package banned-pattern checks
pnpm typecheck # tsc across all packagesPer-package commands run via pnpm --filter <name> <script> — e.g.
pnpm --filter just-bash test:wasm.