Set up monorepo infra: Yarn 4 workspaces, tsc -b + dumble build, vitest

Workspaces are vendor/* (Cordis framework vendored as source) and
packages/* (@deepseek-ai/dsh-* harness packages). Dev/test/demo run
unbuilt via tsx + root tsconfig paths; build = tsc -b (declarations)
+ dumble (JS bundles); tests = vitest + vite-tsconfig-paths.
This commit is contained in:
Tianyi Cui
2026-06-11 10:52:45 +08:00
parent 804eede9eb
commit ae2e08b4d6
10 changed files with 2026 additions and 0 deletions
+29
View File
@@ -0,0 +1,29 @@
import { execFileSync } from 'node:child_process'
import { existsSync } from 'node:fs'
import { resolve } from 'node:path'
// Bundle JS for every workspace package with dumble (tsc -b has already
// produced the .d.ts files; dumble reads each package's tsconfig/package.json).
const packages = [
'vendor/cosmokit',
'vendor/schemastery',
'vendor/cordis',
'vendor/loader',
'vendor/include',
'vendor/group',
'vendor/timer',
'vendor/hmr',
'vendor/logger-console',
'packages/llm',
'packages/session',
'packages/system-prompt',
'packages/tools',
'packages/agent',
'packages/agent-loop',
]
const root = resolve(import.meta.dirname, '..')
for (const path of packages) {
if (!existsSync(resolve(root, path, 'tsconfig.json'))) continue
execFileSync('node_modules/.bin/dumble', [path], { cwd: root, stdio: 'inherit' })
}