refactor(packages): dissolve ui/ and rename sdk/ to scaffold/

git mv per the regrouping RFC: the five human-collaboration seams and
tui join packages/interaction/, app-boot becomes packages/boot/, and
jsonrpc joins the renamed scaffold/ (formerly sdk/) as its server half
beside client/protocol/create-sdk/helper/scripts/telemetry, whose
folders drop the legacy sdk- prefix. Three new group README triplets
replace the ui/ and sdk/ ones; tsconfig references/paths/globs,
knip keys, vitest globs, gate scripts, catalogs, docs, and the
lockfile follow. Adds the four settled FIXME rename markers
(dsh-sdk-server, dsh-sdk-telemetry, dsh-sdk-helper, dsh-sdk-scripts).

The scaffold folders diverge from their npm names until those renames
land, so tsconfig.base.json maps the three affected names explicitly
beside the group wildcard. Also repairs two pre-existing stale-path
classes the strengthened sweep surfaced: docs/web-styling.md's retired
web-ui host package and type-model spec fixture-literal joins.

app-boot's three Loader-composition specs time out at the default 5s
under full-suite parallel load on this filesystem (pre-existing;
pass isolated with --testTimeout=30000); interaction/scaffold/boot
suites otherwise green (687 passed).
This commit is contained in:
Tianyi Cui
2026-07-30 03:13:49 +08:00
parent 7e445c3a67
commit 3fc35c91ff
351 changed files with 368 additions and 311 deletions
@@ -0,0 +1,28 @@
import { execFile } from 'node:child_process'
import { existsSync } from 'node:fs'
import { join } from 'node:path'
import { fileURLToPath } from 'node:url'
import { promisify } from 'node:util'
import { describe, expect, it } from 'vitest'
const execFileAsync = promisify(execFile)
const repoRoot = fileURLToPath(new URL('../../../../', import.meta.url))
const createBin = join(repoRoot, 'packages/scaffold/create-sdk/lib/bin.js')
const scriptsBin = join(repoRoot, 'packages/scaffold/scripts/lib/bin.js')
describe.skipIf(!existsSync(createBin) || !existsSync(scriptsBin))(
'SDK built artifacts',
() => {
it('runs the published dsh-sdk bin help path under plain Node', async () => {
const result = await execFileAsync(process.execPath, [scriptsBin, '--help'], { encoding: 'utf8' })
expect(result.stdout).toContain('Usage: dsh-sdk <command>')
expect(result.stderr).toBe('')
})
it('runs the published create-sdk bin help path under plain Node', async () => {
const result = await execFileAsync(process.execPath, [createBin, '--help'], { encoding: 'utf8' })
expect(result.stdout).toContain('Usage: create-sdk [directory]')
expect(result.stderr).toBe('')
})
},
)