Three packages following the new capability-seam pattern (interface / implementation / consumer, now documented in docs/architecture.md): - dsh-bash: abstract BashExecutor service (ctx.bash) + vocabulary types. - dsh-bash-local: local subprocesses — bash -c per call in a detached process group, SIGTERM→SIGKILL group kills, tail-keep truncation with full-stream spill files, model-friendly env, background task registry. - dsh-tool-bash: the bash / bash_output / bash_kill tool schemas with runtime arg validation and background completion notices via agent.inject(). Non-zero exits are reported, not errored. Design surveyed against the bash tools of Claude Code, OpenCode, Codex, and pi (notes in the package READMEs). Permissions/sandbox stay TODO on the tools/execute waterfall seam; stateful-shell alternatives recorded in run.ts.
22 lines
606 B
TypeScript
22 lines
606 B
TypeScript
import { execFileSync } from 'node:child_process'
|
|
import { resolve } from 'node:path'
|
|
|
|
// publint every publishable package (vendor/ is private upstream code and
|
|
// examples/ are not packages; both are out of scope).
|
|
const packages = [
|
|
'packages/llm',
|
|
'packages/session',
|
|
'packages/system-prompt',
|
|
'packages/tools',
|
|
'packages/agent',
|
|
'packages/agent-loop',
|
|
'packages/bash',
|
|
'packages/bash-local',
|
|
'packages/tool-bash',
|
|
]
|
|
|
|
const root = resolve(import.meta.dirname, '..')
|
|
for (const path of packages) {
|
|
execFileSync('node_modules/.bin/publint', [path], { cwd: root, stdio: 'inherit' })
|
|
}
|