dsh 0.2.0-rc.2: in-container update (experimental channel), path-agnostic compose, upstream patches adapted to 0.1.x/0.2.x

This commit is contained in:
hermes committed 2026-10-01 19:21:19 +00:00
commit e6dcef9bf5
302 files changed
+75178

No files matched your search

@@ -0,0 +1,53 @@
import { mkdir, rename, rm, writeFile } from 'node:fs/promises'
import { join } from 'node:path'
import { Context } from '/run/dsh-platform/views/runtime/package/node_modules/@deepseek-ai/cordis/lib/index.js'
import SkillRegistry from '/run/dsh-platform/views/runtime/package/node_modules/@deepseek-ai/dsh-skill/lib/index.js'
import * as SkillFileSystem from '/run/dsh-platform/views/runtime/package/node_modules/@deepseek-ai/dsh-skill-filesystem/lib/index.js'
import LocalFileSystem from '/run/dsh-platform/views/runtime/package/node_modules/@deepseek-ai/dsh-fs-local/lib/index.js'
const dshHome = process.env.DSH_HOME ?? '/data/dsh'
const workspace = process.env.DSH_DEFAULT_WORKSPACE ?? '/workspace'
const skillRoot = join(dshHome, 'skills')
const activePath = join(skillRoot, 'smoke-user-skill')
const disabledPath = join(skillRoot, '.disabled', 'smoke-user-skill')
async function waitForSkill(context, expected) {
for (let attempt = 0; attempt < 100; attempt += 1) {
const values = await context.skills?.list({ cwd: workspace })
if (values !== undefined && values.some(value => value.name === 'smoke-user-skill') === expected) return
await new Promise(resolve => setTimeout(resolve, 50))
}
throw new Error(`user skill watcher did not report expected=${expected}`)
}
await rm(activePath, { recursive: true, force: true })
await rm(disabledPath, { recursive: true, force: true })
await mkdir(activePath, { recursive: true })
await writeFile(join(activePath, 'SKILL.md'), `---
name: smoke-user-skill
description: Smoke-test user skill watcher behavior.
---
# Smoke User Skill
`)
const context = new Context()
context.plugin(SkillRegistry)
context.plugin(LocalFileSystem, { cwd: workspace })
context.plugin(SkillFileSystem, {
dshHome,
agentsHome: process.env.DSH_AGENTS_HOME ?? '/home/node/.agents',
bundledSkillDir: process.env.DSH_BUNDLED_SKILL_DIR ?? '/run/dsh-platform/views/skills',
})
await waitForSkill(context, true)
await mkdir(join(skillRoot, '.disabled'), { recursive: true })
await rename(activePath, disabledPath)
await waitForSkill(context, false)
await rename(disabledPath, activePath)
await waitForSkill(context, true)
await rm(activePath, { recursive: true })
await waitForSkill(context, false)
console.log(JSON.stringify({ discovered: true, disabled: true, enabled: true, deleted: true }))
process.exit(0)