@godv61/dsh-task-engine 0.23.3 → 0.23.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.hook-test.mjs +191 -0
- package/.p0-test.mjs +50 -0
- package/docs/CHANGELOG.md +12 -0
- package/lib/controller.d.ts +23 -6
- package/lib/controller.js +83 -13
- package/lib/controller.js.map +1 -1
- package/package.json +6 -3
- package/scripts/verify-dsh-compat.mjs +145 -0
- package/scripts/verify-package.mjs +136 -0
package/.hook-test.mjs
ADDED
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* End-to-end test for the installed commit-msg hook.
|
|
3
|
+
*
|
|
4
|
+
* The P0 suite asserts on the hook SOURCE (that it disables path quoting, reads
|
|
5
|
+
* NUL-separated paths, bundles the frozen snapshot). Those assertions catch a
|
|
6
|
+
* hand-mirror regressing, but they cannot show the gate actually blocks a commit
|
|
7
|
+
* — a hook that refuses everything, or nothing, passes every one of them.
|
|
8
|
+
*
|
|
9
|
+
* This runs the real bundled hook inside a throwaway git repository and asserts
|
|
10
|
+
* both directions: an illegal commit is refused, a legal one proceeds.
|
|
11
|
+
*
|
|
12
|
+
* Run: `node --test .hook-test.mjs`
|
|
13
|
+
* @module dsh-task-engine/.hook-test
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
import assert from 'node:assert/strict'
|
|
17
|
+
import { execFileSync } from 'node:child_process'
|
|
18
|
+
import { mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs'
|
|
19
|
+
import { tmpdir } from 'node:os'
|
|
20
|
+
import { join, resolve, sep } from 'node:path'
|
|
21
|
+
import { test } from 'node:test'
|
|
22
|
+
|
|
23
|
+
const HOOK = resolve('hooks/commit-msg')
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Git runs a hook by handing it to its own POSIX shell, which resolves
|
|
27
|
+
* `#!/usr/bin/env node` against PATH. On Windows a `node.cmd` shim on PATH is
|
|
28
|
+
* not executable from that shell, so the installed hook is wrapped in a
|
|
29
|
+
* launcher that names the very interpreter running this test. Without it the
|
|
30
|
+
* suite would read as the gate refusing everything, when in truth the hook
|
|
31
|
+
* never started.
|
|
32
|
+
*/
|
|
33
|
+
const NODE = process.execPath.replace(/\\/gu, '/')
|
|
34
|
+
|
|
35
|
+
/** Run a git command in `cwd`, returning stdout (throws on non-zero exit). */
|
|
36
|
+
function git(cwd, args) {
|
|
37
|
+
return execFileSync('git', args, { cwd, encoding: 'utf8', stdio: ['ignore', 'pipe', 'pipe'] })
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Run `git commit` and report whether the hook allowed it.
|
|
42
|
+
* A refused commit surfaces as a non-zero exit whose stderr carries the gate's
|
|
43
|
+
* own Chinese refusal banner.
|
|
44
|
+
*/
|
|
45
|
+
function tryCommit(cwd, message) {
|
|
46
|
+
try {
|
|
47
|
+
execFileSync('git', ['commit', '-m', message], { cwd, encoding: 'utf8', stdio: ['ignore', 'pipe', 'pipe'] })
|
|
48
|
+
return { allowed: true, stderr: '' }
|
|
49
|
+
} catch (error) {
|
|
50
|
+
return { allowed: false, stderr: String(error.stderr ?? '') }
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/** Build a throwaway repository with the real hook installed and one staged file. */
|
|
55
|
+
function repo(name, task) {
|
|
56
|
+
const root = mkdtempSync(join(tmpdir(), `engine-hook-${name}-`))
|
|
57
|
+
git(root, ['init', '-q', '-b', 'main'])
|
|
58
|
+
git(root, ['config', 'user.email', 'test@example.com'])
|
|
59
|
+
git(root, ['config', 'user.name', 'Test'])
|
|
60
|
+
git(root, ['config', 'commit.gpgsign', 'false'])
|
|
61
|
+
mkdirSync(join(root, '.dsh'), { recursive: true })
|
|
62
|
+
mkdirSync(join(root, 'src'), { recursive: true })
|
|
63
|
+
// The gate body stays byte-identical to the shipped hook; only the shebang is
|
|
64
|
+
// replaced, so the test exercises the real gate under a runnable interpreter.
|
|
65
|
+
const gate = readFileSync(HOOK, 'utf8').replace(/^#![^\n]*\n/u, '')
|
|
66
|
+
writeFileSync(join(root, '.git', 'hooks', 'commit-msg'), `#!${NODE}\n${gate}`)
|
|
67
|
+
writeFileSync(join(root, '.git', 'hooks', 'package.json'), '{\n "type": "commonjs"\n}\n')
|
|
68
|
+
writeFileSync(join(root, '.dsh', `task-${task.id}.json`), JSON.stringify(task, null, 2))
|
|
69
|
+
writeFileSync(join(root, 'src', 'app.js'), 'console.log(1)\n')
|
|
70
|
+
git(root, ['add', 'src/app.js'])
|
|
71
|
+
return root
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* A standard-flow task that has reached the commit checkpoint with a declared
|
|
76
|
+
* scope. `代码审核` is the checkpoint stage, and the engine only permits a
|
|
77
|
+
* commit there once that stage's OUTGOING guards already hold — so the fixture
|
|
78
|
+
* must also satisfy the review artifact and the review verdict.
|
|
79
|
+
*/
|
|
80
|
+
function approvedTask(overrides = {}) {
|
|
81
|
+
return {
|
|
82
|
+
schema: 1,
|
|
83
|
+
id: 'HOOK-1',
|
|
84
|
+
title: 'hook probe',
|
|
85
|
+
branch: 'main',
|
|
86
|
+
work_size: 'standard',
|
|
87
|
+
risk_level: 'standard',
|
|
88
|
+
stage: '代码审核',
|
|
89
|
+
requirement_confirmed: true,
|
|
90
|
+
solution_confirmed: true,
|
|
91
|
+
items: [{ id: 'i1', title: 'do the thing', status: 'done', review: { spec: { outcome: 'pass' }, quality: { outcome: 'pass' } } }],
|
|
92
|
+
verification: { passed: true, evidence: [] },
|
|
93
|
+
review: { outcome: 'pass' },
|
|
94
|
+
// The `代码审核 -> 完成` edge requires `review_passed` and `artifacts_present`.
|
|
95
|
+
artifacts: { review: { conclusion: 'looks good', issues: 'none' } },
|
|
96
|
+
files: ['src/app.js'],
|
|
97
|
+
commits: [],
|
|
98
|
+
flow: { flow: 'standard', version: 2, config: null },
|
|
99
|
+
...overrides,
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/** Resolve the standard preset's config the same way the hook does. */
|
|
104
|
+
async function standardConfig() {
|
|
105
|
+
const { resolveFlow } = await import('./lib/workflows.js')
|
|
106
|
+
const resolved = resolveFlow('standard')
|
|
107
|
+
assert.equal(resolved.ok, true, 'the built-in standard preset resolves')
|
|
108
|
+
return resolved.config
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
test('a task at its checkpoint with the right message commits', async () => {
|
|
112
|
+
const config = await standardConfig()
|
|
113
|
+
const root = repo('allow', approvedTask({ flow: { flow: 'standard', version: 2, config } }))
|
|
114
|
+
try {
|
|
115
|
+
const result = tryCommit(root, '【HOOK-1】【TASK】probe the hook')
|
|
116
|
+
assert.equal(result.allowed, true, `expected the commit to proceed, stderr: ${result.stderr}`)
|
|
117
|
+
} finally {
|
|
118
|
+
assert.ok(resolve(root).startsWith(resolve(tmpdir()) + sep))
|
|
119
|
+
rmSync(root, { recursive: true, force: true })
|
|
120
|
+
}
|
|
121
|
+
})
|
|
122
|
+
|
|
123
|
+
test('a message that violates the configured pattern is refused', async () => {
|
|
124
|
+
const config = await standardConfig()
|
|
125
|
+
const root = repo('badmsg', approvedTask({ flow: { flow: 'standard', version: 2, config } }))
|
|
126
|
+
try {
|
|
127
|
+
const result = tryCommit(root, 'no task id here')
|
|
128
|
+
assert.equal(result.allowed, false, 'a malformed summary must be refused')
|
|
129
|
+
assert.match(result.stderr, /提交门禁拒绝/, 'the gate states its own refusal reason')
|
|
130
|
+
} finally {
|
|
131
|
+
rmSync(root, { recursive: true, force: true })
|
|
132
|
+
}
|
|
133
|
+
})
|
|
134
|
+
|
|
135
|
+
test('a commit touching files outside the declared scope is refused', async () => {
|
|
136
|
+
const config = await standardConfig()
|
|
137
|
+
const root = repo('scope', approvedTask({ flow: { flow: 'standard', version: 2, config } }))
|
|
138
|
+
try {
|
|
139
|
+
writeFileSync(join(root, 'src', 'other.js'), 'console.log(2)\n')
|
|
140
|
+
git(root, ['add', 'src/other.js'])
|
|
141
|
+
const result = tryCommit(root, '【HOOK-1】【TASK】probe the hook')
|
|
142
|
+
assert.equal(result.allowed, false, 'an out-of-scope path must be refused')
|
|
143
|
+
assert.match(result.stderr, /任务范围之外/, 'the refusal names the scope violation')
|
|
144
|
+
} finally {
|
|
145
|
+
rmSync(root, { recursive: true, force: true })
|
|
146
|
+
}
|
|
147
|
+
})
|
|
148
|
+
|
|
149
|
+
test('a commit before the checkpoint stage is refused', async () => {
|
|
150
|
+
const config = await standardConfig()
|
|
151
|
+
const root = repo('stage', approvedTask({ stage: '开发', flow: { flow: 'standard', version: 2, config } }))
|
|
152
|
+
try {
|
|
153
|
+
const result = tryCommit(root, '【HOOK-1】【TASK】probe the hook')
|
|
154
|
+
assert.equal(result.allowed, false, 'committing before the checkpoint must be refused')
|
|
155
|
+
assert.match(result.stderr, /提交门禁拒绝/, 'the gate states its refusal reason')
|
|
156
|
+
} finally {
|
|
157
|
+
rmSync(root, { recursive: true, force: true })
|
|
158
|
+
}
|
|
159
|
+
})
|
|
160
|
+
|
|
161
|
+
test('a task whose frozen snapshot was edited is refused', async () => {
|
|
162
|
+
const config = await standardConfig()
|
|
163
|
+
const tampered = { ...config, start_stage: '开发' }
|
|
164
|
+
const root = repo('tamper', approvedTask({
|
|
165
|
+
flow: { flow: 'standard', version: 2, config: tampered, hash: 'not-the-real-hash' },
|
|
166
|
+
}))
|
|
167
|
+
try {
|
|
168
|
+
const result = tryCommit(root, '【HOOK-1】【TASK】probe the hook')
|
|
169
|
+
assert.equal(result.allowed, false, 'a snapshot hash mismatch must be refused')
|
|
170
|
+
assert.match(result.stderr, /hash 不匹配/, 'the refusal names the integrity failure')
|
|
171
|
+
} finally {
|
|
172
|
+
rmSync(root, { recursive: true, force: true })
|
|
173
|
+
}
|
|
174
|
+
})
|
|
175
|
+
|
|
176
|
+
test('touching a sensitive path without a high-risk receipt is refused', async () => {
|
|
177
|
+
const config = await standardConfig()
|
|
178
|
+
const root = repo('sensitive', approvedTask({
|
|
179
|
+
files: ['src/app.js', '.env'],
|
|
180
|
+
flow: { flow: 'standard', version: 2, config },
|
|
181
|
+
}))
|
|
182
|
+
try {
|
|
183
|
+
writeFileSync(join(root, '.env'), 'SECRET=1\n')
|
|
184
|
+
git(root, ['add', '.env'])
|
|
185
|
+
const result = tryCommit(root, '【HOOK-1】【TASK】probe the hook')
|
|
186
|
+
assert.equal(result.allowed, false, 'a sensitive path without a high-risk receipt must be refused')
|
|
187
|
+
assert.match(result.stderr, /敏感路径/, 'the refusal names the sensitive path')
|
|
188
|
+
} finally {
|
|
189
|
+
rmSync(root, { recursive: true, force: true })
|
|
190
|
+
}
|
|
191
|
+
})
|
package/.p0-test.mjs
CHANGED
|
@@ -736,4 +736,54 @@ function memProbe(files) {
|
|
|
736
736
|
assert(JSON.parse(fs._files.get('.dsh/task-CAS-RACE.json')).title === 'concurrent writer', 'CAS preserves the concurrent writer record')
|
|
737
737
|
}
|
|
738
738
|
|
|
739
|
+
// ── 36. 0.23.3: the path guard normalizes BEFORE the forbidden-prefix test ──
|
|
740
|
+
// Testing the raw string let `D:/proj/../../Windows` through: it matches no
|
|
741
|
+
// forbidden prefix as written, yet every later join() resolves it to C:/Windows.
|
|
742
|
+
// NOTE: block 35 above already activated the module-level registry and strict
|
|
743
|
+
// mode, so every path asserted VALID here must be registered first.
|
|
744
|
+
{
|
|
745
|
+
const ctl = await import('./lib/controller.js')
|
|
746
|
+
const valid = ['D:/work/my project', 'D:/mydir/users-guide', 'D:/proj/one/']
|
|
747
|
+
for (const good of valid) ctl.registerWorkspace(good)
|
|
748
|
+
// Must still accept ordinary workspaces, including names that merely look risky.
|
|
749
|
+
for (const good of valid) {
|
|
750
|
+
try {
|
|
751
|
+
ctl.checkedPath(good)
|
|
752
|
+
} catch (error) {
|
|
753
|
+
throw new Error(`checkedPath wrongly rejected a valid workspace "${good}": ${error.message}`)
|
|
754
|
+
}
|
|
755
|
+
}
|
|
756
|
+
assert(ctl.checkedPath('D:/proj/one/') === 'D:/proj/one', 'trailing slash is still normalized away')
|
|
757
|
+
assert(ctl.checkedPath('D:/work/my project') === 'D:/work/my project', 'a space in a workspace name is preserved')
|
|
758
|
+
// Traversal must not smuggle a system directory past the guard.
|
|
759
|
+
await assertThrows(() => ctl.checkedPath('D:/proj/../../Windows'), 'not an allowed workspace', 'traversal into a system dir is rejected after normalization')
|
|
760
|
+
await assertThrows(() => ctl.checkedPath('C:/Users/x/../../Windows'), 'not an allowed workspace', 'traversal out of C:/Users into Windows is rejected')
|
|
761
|
+
await assertThrows(() => ctl.checkedPath('D:/proj/../../../Users'), 'not an allowed workspace', 'traversal into a user tree is rejected')
|
|
762
|
+
// The system list is drive-agnostic: matching only c:/windows left D:/Windows open.
|
|
763
|
+
await assertThrows(() => ctl.checkedPath('D:/Windows'), 'not an allowed workspace', 'a system dir on a non-C drive is rejected')
|
|
764
|
+
await assertThrows(() => ctl.checkedPath('E:/Program Files/x'), 'not an allowed workspace', 'Program Files on any drive is rejected')
|
|
765
|
+
await assertThrows(() => ctl.checkedPath('C:/ProgramData/x'), 'not an allowed workspace', 'ProgramData is rejected')
|
|
766
|
+
// A bare filesystem root is not a workspace.
|
|
767
|
+
await assertThrows(() => ctl.checkedPath('D:/'), 'filesystem root', 'a drive root is rejected')
|
|
768
|
+
await assertThrows(() => ctl.checkedPath('C:/'), 'filesystem root', 'C:/ is rejected')
|
|
769
|
+
// Regression guard for behaviour block 35 already covered.
|
|
770
|
+
await assertThrows(() => ctl.checkedPath('C:/Windows/system32'), 'not an allowed workspace', 'the original system-root case still fails closed')
|
|
771
|
+
await assertThrows(() => ctl.checkedPath('relative/path'), 'must be absolute', 'a relative path is still rejected')
|
|
772
|
+
}
|
|
773
|
+
|
|
774
|
+
// ── 37. 0.23.3: init writes never escape the authorized workspace ──────────
|
|
775
|
+
{
|
|
776
|
+
const ctl = await import('./lib/controller.js')
|
|
777
|
+
assert(typeof ctl.isInside === 'function', 'the containment helper is exported for host integrations')
|
|
778
|
+
// Segment-level comparison: a name-prefix sibling is NOT inside its neighbour.
|
|
779
|
+
assert(ctl.isInside('D:/a/b', 'D:/a/b/c') === true, 'a descendant is inside')
|
|
780
|
+
assert(ctl.isInside('D:/a/b', 'D:/a/b') === true, 'the root itself is inside')
|
|
781
|
+
assert(ctl.isInside('D:/a/b', 'D:/a/bc') === false, 'a name-prefix sibling is NOT inside')
|
|
782
|
+
assert(ctl.isInside('D:/a/b', 'D:/a') === false, 'a parent is not inside')
|
|
783
|
+
assert(ctl.isInside('D:/a/b', 'D:/a/b/../c') === false, 'a traversal out of the workspace is NOT inside')
|
|
784
|
+
const controllerSrc = readFileSync('./lib/controller.js', 'utf8')
|
|
785
|
+
assert(controllerSrc.includes('定位到工作区之外'), 'writeInit refuses a target located outside the workspace')
|
|
786
|
+
assert(controllerSrc.includes('INIT_MAX_ANCESTOR_CLIMB'), 'the ancestor walk is bounded rather than unbounded')
|
|
787
|
+
}
|
|
788
|
+
|
|
739
789
|
console.log(`\nP0 acceptance: ${passed} checks passed`)
|
package/docs/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,18 @@
|
|
|
4
4
|
|
|
5
5
|
按版本查阅功能变化。当前使用方式以[项目首页](../README.md)和使用指南为准;历史条目中的实现方式、限制与测试数量可能已被后续版本替代。
|
|
6
6
|
|
|
7
|
+
## 0.23.5
|
|
8
|
+
|
|
9
|
+
- **修复 `scripts/` 未随包发布,导致两条已声明的 npm script 在安装后无法执行**。`package.json` 声明了 `verify:package` 与 `verify:dsh`,但 `files` 白名单不含 `scripts/**`,用户装包后运行它们会直接 `MODULE_NOT_FOUND`。该问题早于 0.23.3 存在(`verify:package` 一直如此),0.23.4 新增的 `verify:dsh` 只是沿用了同一模式。现在把 `scripts/**` 纳入白名单,并在 `verify:package` 中加断言:包内必须能找到每一条 `package.json` 里声明的 `node <file>` script 目标。
|
|
10
|
+
|
|
11
|
+
## 0.23.4
|
|
12
|
+
|
|
13
|
+
- **关闭两处 Remote 路径边界漏洞**。`checkedPath` 此前用**原始字符串**比对禁止前缀,`D:/proj/../../Windows` 不匹配任何前缀,却被后续 `join()` 解析到 `C:/Windows`;实测 8 个越界样本中旧实现放过 7 个。现在先 `resolve()` 归一化再判断,禁止列表不再绑定盘符(`D:/Windows`、`E:/Program Files` 同样拒绝),并拒绝裸盘符根(`D:/`、`C:/`)。
|
|
14
|
+
- `writeInit` 不再写到工作区之外。`locateInitRoot` 的祖先回溯可能定位到工作区上一级:**读取**该文件是有意的(那才是真正拥有 `AGENTS.md` 的项目),但**写入**不是本工作区的事。现在越界写入直接拒绝并提示改选工作区,与 `dev_task init apply` 的 `assertInsideRoot` 一致;祖先回溯同时加上 8 层上限。新增 `isInside` 按**路径段**而非字符串前缀比较,`D:/a/bc` 不会被误判为在 `D:/a/b` 内。
|
|
15
|
+
- **新增 DSH 契约兼容性检查**(`scripts/verify-dsh-compat.mjs`,`npm run verify:dsh`)。它读取真实 DSH 检出里 typert 协议的类型声明,判断当前契约是 `schema` 还是 `create()`,再断言产物满足它、且 peer 范围确实覆盖该版本。这正是 0.23.3 修复的那类问题——单元测试看不到,因为测试从不通过真实注册表加载 descriptor。CI 新增 `dsh-contract` 作业:对固定基线 `dsh-v0.1.6-alpha.2` 失败即红,对 `master` 仅告警(`continue-on-error`),因此破坏性变更会在发布前暴露。已反向验证:把 peer 范围改回旧值,该检查会失败。
|
|
16
|
+
- **新增提交钩子端到端测试**(`.hook-test.mjs`,6 项)。此前的 P0 断言只检查钩子**源码**的字符串(关闭路径转义、NUL 分隔、捆绑冻结快照),能防手抄回潮,但**无法证明门禁真的拦住了提交**——一个全部拒绝或全部放行的钩子都能通过。新测试在临时 git 仓库里真实执行 `git commit`,双向断言:合法提交放行,消息格式错误、范围外文件、未到检查点、快照被篡改、敏感路径无高风险回执五类均被拒绝且给出对应理由。
|
|
17
|
+
- P0 断言从 126 增至 146;`npm test` 现包含钩子端到端用例(37 → 43 项)。
|
|
18
|
+
|
|
7
19
|
## 0.23.3
|
|
8
20
|
|
|
9
21
|
- **适配 DSH 0.1.6-alpha.2 的 typert strict codec 契约变更**。该版本把 codec 从直接携带 `schema` 改为惰性工厂 `create: () => TypertSchema`,并在注册时硬校验 `typeof codec.create === 'function'`;旧写法会在插件加载阶段抛 `strict codec has no create() factory`,整份 Remote 贡献被拒绝。`src/client/remote.ts` 的 36 个 strict codec 现在**同时携带 `create` 与 `schema`**,因此同一份产物在 0.1.2-rc.1(桌面版)与 0.1.6-alpha.2(源码版)上都能加载。两处内联的 `z.object({...})` 提为具名常量,与文件既有风格一致。
|
package/lib/controller.d.ts
CHANGED
|
@@ -384,12 +384,29 @@ export declare function registerWorkspace(path: string): void;
|
|
|
384
384
|
/** Host integration point: production hosts should call this — unregistered workspaces are then rejected instead of falling back to the legacy check. */
|
|
385
385
|
export declare function enableStrictWorkspaces(): void;
|
|
386
386
|
/**
|
|
387
|
-
* Reject a client-supplied workspace path that is not absolute
|
|
388
|
-
*
|
|
389
|
-
*
|
|
390
|
-
* host's filesystem sandbox
|
|
391
|
-
* policy); this check fails closed on
|
|
392
|
-
* call could name.
|
|
387
|
+
* Reject a client-supplied workspace path that is not absolute, escapes its own
|
|
388
|
+
* directory through `..`, or names a filesystem root or system-wide location;
|
|
389
|
+
* then require the path on the host's workspace allow-list when one is
|
|
390
|
+
* registered. The real containment stays with the host's filesystem sandbox
|
|
391
|
+
* (writes carry a per-call `workspace-write` policy); this check fails closed on
|
|
392
|
+
* the obvious mis-targets a stray client call could name.
|
|
393
|
+
*
|
|
394
|
+
* The path is normalized BEFORE the forbidden-prefix test. Testing the raw
|
|
395
|
+
* string let `D:/proj/../../Windows` through: it matches no forbidden prefix as
|
|
396
|
+
* written, yet every later `join()` resolves it into `C:/Windows`.
|
|
397
|
+
* @param raw - the client-supplied workspace directory.
|
|
398
|
+
* @returns the canonical, POSIX-separated workspace path.
|
|
399
|
+
* @throws {RemoteError} when the path is not an allowed workspace.
|
|
393
400
|
*/
|
|
394
401
|
/** Exported for tests and host integrations: the Remote path guard itself. */
|
|
395
402
|
export declare function checkedPath(raw: string): string;
|
|
403
|
+
/**
|
|
404
|
+
* Whether `candidate` is `root` itself or sits inside it, compared after
|
|
405
|
+
* resolution so `.`/`..` segments and a trailing separator cannot disguise an
|
|
406
|
+
* escape. Compared as a path-segment prefix, not a raw string prefix, so
|
|
407
|
+
* `D:/a/bc` is not treated as being inside `D:/a/b`.
|
|
408
|
+
* @param root - the authorized workspace directory.
|
|
409
|
+
* @param candidate - the directory a write would land in.
|
|
410
|
+
* @returns true when the write stays within the workspace.
|
|
411
|
+
*/
|
|
412
|
+
export declare function isInside(root: string, candidate: string): boolean;
|
package/lib/controller.js
CHANGED
|
@@ -46,7 +46,7 @@ import { existsSync, mkdirSync, readFileSync, readdirSync, rmSync, writeFileSync
|
|
|
46
46
|
import { authorizedWorkspace } from "./workspace-access.js";
|
|
47
47
|
import { prepareImport, commitImport } from "./resource-import.js";
|
|
48
48
|
import { homedir } from 'node:os';
|
|
49
|
-
import { dirname, isAbsolute, join } from 'node:path';
|
|
49
|
+
import { dirname, isAbsolute, join, resolve, sep } from 'node:path';
|
|
50
50
|
import { fileURLToPath } from 'node:url';
|
|
51
51
|
import { createUserMessage } from '@deepseek-ai/dsh-llm';
|
|
52
52
|
import { Remote, RemoteError, TypertRemoteService } from '@deepseek-ai/dsh-typert-protocol';
|
|
@@ -507,6 +507,19 @@ let TaskEngineController = (() => {
|
|
|
507
507
|
error: 'AGENTS.md 已存在且受保护;若确要覆盖,请在该工作台确认覆盖后重试(overwrite: true)。',
|
|
508
508
|
};
|
|
509
509
|
}
|
|
510
|
+
// `locateInitRoot` may resolve ABOVE the authorized workspace (its ancestor
|
|
511
|
+
// walk finds the single owning project). Reading a parent file is useful
|
|
512
|
+
// context, but writing one is not this workspace's business: refuse rather
|
|
513
|
+
// than let a workspace aimed at a child directory edit an unrelated
|
|
514
|
+
// project's governance file. `dev_task init apply` holds itself to the same
|
|
515
|
+
// rule through `assertInsideRoot`.
|
|
516
|
+
if (!isInside(request.path, root)) {
|
|
517
|
+
return {
|
|
518
|
+
ok: false,
|
|
519
|
+
lines,
|
|
520
|
+
error: `AGENTS.md 定位到工作区之外(${join(root, INITFILE)});本工作台只写入所选工作区内,请改选该目录为工作区后再保存。`,
|
|
521
|
+
};
|
|
522
|
+
}
|
|
510
523
|
const target = await fs.resolve(INITFILE, { cwd: root });
|
|
511
524
|
await fs.writeText(target, request.content, undefined, undefined, {
|
|
512
525
|
mode: 'workspace-write',
|
|
@@ -832,12 +845,35 @@ export function enableStrictWorkspaces() {
|
|
|
832
845
|
strictWorkspaces = true;
|
|
833
846
|
}
|
|
834
847
|
/**
|
|
835
|
-
*
|
|
836
|
-
*
|
|
837
|
-
*
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
848
|
+
* System locations that are never a project workspace. Stored WITHOUT a drive
|
|
849
|
+
* letter so one rule covers every volume: matching only `c:/windows` left
|
|
850
|
+
* `D:/Windows` reachable on a machine whose system volume is not C:.
|
|
851
|
+
*/
|
|
852
|
+
const FORBIDDEN_WINDOWS = [
|
|
853
|
+
'windows', 'program files', 'program files (x86)', 'programdata', 'users',
|
|
854
|
+
'$recycle.bin', 'system volume information', 'perflogs', 'recovery',
|
|
855
|
+
];
|
|
856
|
+
/** POSIX system roots, absolute and lower-case. */
|
|
857
|
+
const FORBIDDEN_POSIX = [
|
|
858
|
+
'/etc', '/usr', '/bin', '/sbin', '/lib', '/lib64', '/boot', '/dev', '/proc',
|
|
859
|
+
'/sys', '/var', '/root', '/system', '/library', '/private',
|
|
860
|
+
];
|
|
861
|
+
/** Windows drive-qualified path (`D:` or `D:/…`); the drive is dropped before the prefix test. */
|
|
862
|
+
const DRIVE_QUALIFIED = /^[a-z]:(\/|$)/u;
|
|
863
|
+
/**
|
|
864
|
+
* Reject a client-supplied workspace path that is not absolute, escapes its own
|
|
865
|
+
* directory through `..`, or names a filesystem root or system-wide location;
|
|
866
|
+
* then require the path on the host's workspace allow-list when one is
|
|
867
|
+
* registered. The real containment stays with the host's filesystem sandbox
|
|
868
|
+
* (writes carry a per-call `workspace-write` policy); this check fails closed on
|
|
869
|
+
* the obvious mis-targets a stray client call could name.
|
|
870
|
+
*
|
|
871
|
+
* The path is normalized BEFORE the forbidden-prefix test. Testing the raw
|
|
872
|
+
* string let `D:/proj/../../Windows` through: it matches no forbidden prefix as
|
|
873
|
+
* written, yet every later `join()` resolves it into `C:/Windows`.
|
|
874
|
+
* @param raw - the client-supplied workspace directory.
|
|
875
|
+
* @returns the canonical, POSIX-separated workspace path.
|
|
876
|
+
* @throws {RemoteError} when the path is not an allowed workspace.
|
|
841
877
|
*/
|
|
842
878
|
/** Exported for tests and host integrations: the Remote path guard itself. */
|
|
843
879
|
export function checkedPath(raw) {
|
|
@@ -849,17 +885,43 @@ export function checkedPath(raw) {
|
|
|
849
885
|
if (!isAbsolute(raw)) {
|
|
850
886
|
throw new RemoteError('gateway/internal', `task-engine: workspace path must be absolute: ${raw}`, {});
|
|
851
887
|
}
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
const
|
|
888
|
+
// Canonical form with `.`/`..` resolved. POSIX-separated so the value a caller
|
|
889
|
+
// registers is stable across platforms.
|
|
890
|
+
const normalized = resolve(raw).replace(/\\/gu, '/').replace(/\/+$/u, '') || '/';
|
|
891
|
+
const lower = normalized.toLowerCase();
|
|
892
|
+
if (lower !== '/' && /^[a-z]:$/u.test(lower)) {
|
|
893
|
+
throw new RemoteError('gateway/internal', `task-engine: a filesystem root is not an allowed workspace: ${raw}`, {});
|
|
894
|
+
}
|
|
895
|
+
const forbidden = process.platform === 'win32' ? FORBIDDEN_WINDOWS : FORBIDDEN_POSIX;
|
|
896
|
+
// Windows: strip the drive so C:/Windows and D:/Windows share one rule.
|
|
897
|
+
const key = process.platform === 'win32' && DRIVE_QUALIFIED.test(lower)
|
|
898
|
+
? lower.slice(2).replace(/^\/+/u, '')
|
|
899
|
+
: lower;
|
|
855
900
|
for (const prefix of forbidden) {
|
|
856
|
-
if (
|
|
901
|
+
if (key === prefix || key.startsWith(`${prefix}/`)) {
|
|
857
902
|
throw new RemoteError('gateway/internal', `task-engine: path is not an allowed workspace: ${raw}`, {});
|
|
858
903
|
}
|
|
859
904
|
}
|
|
860
905
|
workspaceRegistry.assertAllowed(normalized);
|
|
861
906
|
return normalized;
|
|
862
907
|
}
|
|
908
|
+
/**
|
|
909
|
+
* Whether `candidate` is `root` itself or sits inside it, compared after
|
|
910
|
+
* resolution so `.`/`..` segments and a trailing separator cannot disguise an
|
|
911
|
+
* escape. Compared as a path-segment prefix, not a raw string prefix, so
|
|
912
|
+
* `D:/a/bc` is not treated as being inside `D:/a/b`.
|
|
913
|
+
* @param root - the authorized workspace directory.
|
|
914
|
+
* @param candidate - the directory a write would land in.
|
|
915
|
+
* @returns true when the write stays within the workspace.
|
|
916
|
+
*/
|
|
917
|
+
export function isInside(root, candidate) {
|
|
918
|
+
const normalizedRoot = resolve(root);
|
|
919
|
+
const normalizedCandidate = resolve(candidate);
|
|
920
|
+
if (normalizedRoot === normalizedCandidate)
|
|
921
|
+
return true;
|
|
922
|
+
const prefix = normalizedRoot.endsWith(sep) ? normalizedRoot : normalizedRoot + sep;
|
|
923
|
+
return normalizedCandidate.startsWith(prefix);
|
|
924
|
+
}
|
|
863
925
|
/** Directories the scan tree never descends into. */
|
|
864
926
|
const SCAN_SKIP = new Set(['node_modules', '.git', 'dist', 'build', 'coverage', 'target', '__pycache__', '.venv', 'venv', '.next', 'out', '.dsh']);
|
|
865
927
|
/** Maximum entries listed per directory in the scan tree; the rest collapse to a count line. */
|
|
@@ -959,7 +1021,9 @@ function locateInitFile(path) {
|
|
|
959
1021
|
if (children.length > 1)
|
|
960
1022
|
return undefined;
|
|
961
1023
|
let current = dirname(path);
|
|
962
|
-
|
|
1024
|
+
// Bounded climb: an unbounded walk from a deep workspace could surface a
|
|
1025
|
+
// distant, unrelated AGENTS.md as "this project's" governance file.
|
|
1026
|
+
for (let level = 0; level < INIT_MAX_ANCESTOR_CLIMB; level++) {
|
|
963
1027
|
const up = join(current, INITFILE);
|
|
964
1028
|
if (existsSync(up))
|
|
965
1029
|
return up;
|
|
@@ -970,7 +1034,13 @@ function locateInitFile(path) {
|
|
|
970
1034
|
}
|
|
971
1035
|
return undefined;
|
|
972
1036
|
}
|
|
973
|
-
/**
|
|
1037
|
+
/** How many directory levels the ancestor walk climbs while hunting for AGENTS.md. */
|
|
1038
|
+
const INIT_MAX_ANCESTOR_CLIMB = 8;
|
|
1039
|
+
/**
|
|
1040
|
+
* Resolve the project root that owns AGENTS.md for a workspace, or the workspace itself.
|
|
1041
|
+
* @param path - absolute workspace directory.
|
|
1042
|
+
* @returns the root that owns AGENTS.md plus whether one was found.
|
|
1043
|
+
*/
|
|
974
1044
|
function locateInitRoot(path) {
|
|
975
1045
|
const file = locateInitFile(path);
|
|
976
1046
|
if (file !== undefined)
|
package/lib/controller.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../src/controller.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../src/controller.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAe,MAAM,SAAS,CAAA;AAC9G,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAElE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,OAAO,EAAE,iBAAiB,EAAwB,MAAM,sBAAsB,CAAA;AAE9E,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AAG3F,OAAO,EAAE,gBAAgB,EAA0D,MAAM,aAAa,CAAA;AACtG,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAsP5C,wFAAwF;AACxF,MAAM,OAAO,GAAG,eAAe,CAAA;AAE/B,iFAAiF;AACjF,MAAM,QAAQ,GAAG,WAAW,CAAA;AAC5B,0EAA0E;AAC1E,MAAM,cAAc,GAAG,GAAG,CAAA;AAC1B,oFAAoF;AACpF,MAAM,wBAAwB,GAAG,MAAM,CAAA;AACvC,8EAA8E;AAC9E,MAAM,kBAAkB,GACtB,wDAAwD;MACtD,4DAA4D;MAC5D,6CAA6C;MAC7C,yCAAyC,CAAA;AAC7C,mEAAmE;AACnE,MAAM,cAAc,GAAG,CAAC,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,YAAY,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAA;AAE/K,yFAAyF;AACzF,MAAM,kBAAkB,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAChF,8BAA8B;AAC9B,MAAM,iBAAiB,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAE9E,0CAA0C;AAC1C,SAAS,OAAO;IACd,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,CAAA;AACxD,CAAC;AAED,mEAAmE;AACnE,SAAS,YAAY,CAAC,GAAW;IAC/B,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;IAC7F,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,qEAAqE;AACrE,SAAS,cAAc;IACrB,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,CAAC,CAAA;IACxC,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;IAC1E,OAAO,QAAQ,CAAC,MAAM,CAAA;AACxB,CAAC;AAED,0DAA0D;AAC1D,SAAS,kBAAkB,CAAC,IAAY;IACtC,OAAO,UAAU,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAA;AAC/D,CAAC;AAED,yDAAyD;AACzD,SAAS,iBAAiB,CAAC,IAAY;IACrC,OAAO,UAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC,CAAA;AAC1D,CAAC;AAED,yCAAyC;AACzC,SAAS,eAAe,CAAC,IAAY,EAAE,WAAmB,EAAE,SAA6B,EAAE,OAAe;IACxG,MAAM,IAAI,GAAG,CAAC,SAAS,IAAI,EAAE,EAAE,gBAAgB,WAAW,EAAE,CAAC,CAAA;IAC7D,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,IAAI,CAAC,IAAI,CAAC,cAAc,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IACnG,OAAO,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,OAAO,CAAC,OAAO,EAAE,IAAI,CAAA;AACjE,CAAC;AAED,sFAAsF;AACtF,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;AAE1F,oGAAoG;AACpG,SAAS,eAAe;IACtB,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;QAAE,OAAO,CAAC,GAAG,CAAC,CAAA;IAC9C,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,MAAM,MAAM,IAAI,0BAA0B,EAAE,CAAC;QAChD,IAAI,UAAU,CAAC,GAAG,MAAM,KAAK,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,KAAK,CAAC,CAAA;IAC5D,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AACD,sEAAsE;AACtE,SAAS,WAAW,CAAC,GAAW,EAAE,MAAc;IAC9C,IAAI,OAAiB,CAAA;IACrB,IAAI,CAAC;QACH,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;IACD,OAAO,OAAO;SACX,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SACpC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;SAC7D,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;AACjD,CAAC;AAED,gGAAgG;AAChG,SAAS,qBAAqB,CAAC,GAAW;IACxC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IACvD,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC9C,IAAI,CAAC,CAAC;QAAE,OAAO,SAAS,CAAA;IACxB,MAAM,IAAI,GAA2B,EAAE,CAAA;IACvC,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC3B,IAAI,CAAC,GAAG,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IACrE,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW;QAAE,OAAO,SAAS,CAAA;IACrD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAA;AAC3D,CAAC;AAED,6EAA6E;AAC7E,SAAS,cAAc,CAAC,GAAW;IACjC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IACvD,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC9C,IAAI,CAAC,CAAC;QAAE,OAAO,SAAS,CAAA;IACxB,MAAM,IAAI,GAA2B,EAAE,CAAA;IACvC,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC3B,IAAI,CAAC,GAAG,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IACrE,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW;QAAE,OAAO,SAAS,CAAA;IACrD,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;QAC/B,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;KAC1C,CAAA;AACH,CAAC;AAED,4FAA4F;AAC5F,SAAS,iBAAiB,CAAC,GAAW,EAAE,MAAc;IACpD,IAAI,OAAiB,CAAA;IACrB,IAAI,CAAC;QACH,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;IACD,MAAM,MAAM,GAAwB,EAAE,CAAA;IACtC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YAAE,SAAQ;QAClC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,CAAA;YACnE,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAA;YACzC,IAAI,MAAM,KAAK,SAAS;gBAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,CAAA;QACvG,CAAC;QAAC,MAAM,CAAC;YACP,2BAA2B;QAC7B,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;AAC5D,CAAC;;sBAOiD,mBAAmB;;;;;;;;;;;;;;;;;;;;;iBAAhD,oBAAqB,SAAQ,WAAmB;;;yCAUlE,MAAM;2CAQN,MAAM;0CAMN,MAAM;gCAsBN,MAAM;iCA0DN,MAAM;sCA0CN,MAAM;qCAiBN,MAAM;qCAkBN,MAAM;oCAiDN,MAAM;qCAmBN,MAAM;wCA+CN,MAAM;sCAkDN,MAAM;wCAyBN,MAAM;oCAgBN,MAAM;qCA0BN,MAAM;qCAuBN,MAAM;oCA0BN,MAAM;uCAuBN,MAAM;sCAiBN,MAAM;YA3eP,0LAAM,aAAa,6DAIlB;YAID,gMAAM,eAAe,6DAEpB;YAID,6LAAM,cAAc,6DAEnB;YAoBD,+JAAM,IAAI,6DAiDT;YASD,kKAAM,KAAK,6DA8BV;YAYD,iLAAM,UAAU,6DAQf;YASD,8KAAM,SAAS,6DAOd;YAWD,8KAAM,SAAS,6DAyCd;YAQD,2KAAM,QAAQ,6DAWb;YAQD,8KAAM,SAAS,6DAsCd;YASD,uLAAM,YAAY,6DA0CjB;YAQD,iLAAM,UAAU,6DAcf;YAWD,uLAAM,YAAY,6DAMjB;YAUD,2KAAM,QAAQ,6DAkBb;YAQD,8KAAM,SAAS,6DAcd;YASD,8KAAM,SAAS,6DAiBd;YASD,2KAAM,QAAQ,6DAab;YAUD,oLAAM,WAAW,6DAQhB;YASD,iLAAM,UAAU,6DAQf;;;QA9fD,YAAY,GAAY;YACtB,KAAK,CAAC,GAAG,EAAE,sBAAsB,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAA;YAF/C,mDAAoB;SAGtC;QAEO,KAAK,CAAC,cAAc,CAAC,IAAY;YACvC,OAAO,mBAAmB,CAAC,IAAI,CAAC,GAAgD,EAAE,IAAI,EAAE,WAAW,CAAC,CAAA;QACtG,CAAC;QAED,4DAA4D;QAE5D,KAAK,CAAC,aAAa,CAAC,OAAiD;YACnE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAA;YACnD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACzD,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAA;QAC5G,CAAC;QAED,kEAAkE;QAElE,KAAK,CAAC,eAAe,CAAC,OAA8B;YAClD,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAC5C,CAAC;QAED,0EAA0E;QAE1E,KAAK,CAAC,cAAc,CAAC,OAA8B;YACjD,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QAC3C,CAAC;QAEO,KAAK,CAAC,cAAc,CAAC,OAA8B,EAAE,MAAe;YAC1E,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;gBAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;gBACjC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,iBAAiB,CAAA;gBACjF,OAAO,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,CAAA;YACtG,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;YACxL,CAAC;QACH,CAAC;QAED;;;;;WAKG;QAEH,KAAK,CAAC,IAAI,CAAC,IAAY;YACrB,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;YACtC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;YACpB,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;YACvC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;YAClG,CAAC;YACD,IAAI,MAAwE,CAAA;YAC5E,IAAI,CAAC;gBACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAqE,CAAA;YAC9F,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,MAAM,EAAE,SAAS;oBACjB,IAAI,EAAE,UAAU;oBAChB,MAAM,EAAE,cAAc,EAAE;oBACxB,QAAQ,EAAE,CAAC,iBAAiB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;iBACtF,CAAA;YACH,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBAC3D,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,MAAM,EAAE,SAAS;oBACjB,IAAI,EAAE,EAAE;oBACR,MAAM,EAAE,cAAc,EAAE;oBACxB,QAAQ,EAAE,CAAC,sGAAsG,CAAC;iBACnH,CAAA;YACH,CAAC;YACD,MAAM,QAAQ,GAAG,WAAW,CAC1B,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,SAAS,CAC5F,CAAA;YACD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,MAAM,EAAE,SAAS;oBACjB,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,MAAM,EAAE,cAAc,EAAE;oBACxB,QAAQ,EAAE,CAAC,iBAAiB,QAAQ,CAAC,IAAI,aAAa,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;iBACzF,CAAA;YACH,CAAC;YACD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;YAClD,OAAO;gBACL,EAAE,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC;gBACzB,MAAM,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;gBACrD,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE;gBACxB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,QAAQ;aACT,CAAA;QACH,CAAC;QAED;;;;;WAKG;QAEH,KAAK,CAAC,KAAK,CAAC,OAAwB;YAClC,OAAO,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACtD,MAAM,QAAQ,GAAG,WAAW,CAC1B,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,SAAS,CAC9F,CAAA;YACD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,MAAM,EAAE,SAAS;oBACjB,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,MAAM,EAAE,cAAc,EAAE;oBACxB,QAAQ,EAAE,CAAC,iBAAiB,QAAQ,CAAC,IAAI,aAAa,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;iBACzF,CAAA;YACH,CAAC;YACD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;YAClD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAA;YAChG,CAAC;YACD,MAAM,OAAO,GAAG;gBACd,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,GAAG,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC5F,CAAA;YACD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;YACpB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;YAC/D,MAAM,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE;gBACjF,IAAI,EAAE,iBAAiB;gBACvB,aAAa,EAAE,OAAO,CAAC,IAAI;aAC5B,CAAC,CAAA;YACF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;QACnG,CAAC;QAED;;;;;;;;WAQG;QAEH,KAAK,CAAC,UAAU,CAAC,IAAY;YAC3B,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;YACtC,MAAM,OAAO,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,SAAS,CAAC,CAAA;YAC1F,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAA;YACjE,MAAM,OAAO,GAAG,iBAAiB,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAA;YAChE,gFAAgF;YAChF,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,EAAE,GAAG,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;YAC7F,OAAO,EAAE,MAAM,EAAE,CAAA;QACnB,CAAC;QAED;;;;;WAKG;QAEH,KAAK,CAAC,SAAS,CAAC,IAAY;YAC1B,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;YACtC,MAAM,OAAO,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,SAAS,CAAC,CAAA;YACnF,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,CAAA;YAC1D,MAAM,OAAO,GAAG,WAAW,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAA;YACzD,MAAM,KAAK,GAAG,CAAC,GAAG,OAAO,EAAE,GAAG,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;YAC5F,OAAO,EAAE,KAAK,EAAE,CAAA;QAClB,CAAC;QAED;;;;;;;WAOG;QAEH,KAAK,CAAC,SAAS,CAAC,IAAY;YAC1B,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;YACtC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;YACpB,MAAM,KAAK,GAAsB,EAAE,CAAA;YACnC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAA;gBACtD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;gBACxC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;oBAC5B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;wBAAE,SAAQ;oBAC9E,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;oBACpF,IAAI,GAAG,KAAK,SAAS;wBAAE,SAAQ;oBAC/B,IAAI,KAAgB,CAAA;oBACpB,IAAI,CAAC;wBACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAc,CAAA;oBACtC,CAAC;oBAAC,MAAM,CAAC;wBACP,MAAM,IAAI,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;oBAC3C,CAAC;oBACD,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,OAAQ,KAA4C,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBAAE,MAAM,IAAI,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;oBAC7O,KAAK,CAAC,IAAI,CAAC;wBACT,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC7D,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC7D,mBAAmB,EAAE,KAAK,CAAC,YAAY,EAAE,MAAM,IAAI,KAAK;wBACxD,cAAc,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,IAAI,SAAS;wBAClD,OAAO,EAAE,KAAK,CAAC,EAAE;wBACjB,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;wBACpB,KAAK,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;4BACtC,EAAE,EAAE,IAAI,CAAC,EAAE;4BACX,KAAK,EAAE,IAAI,CAAC,KAAK;4BACjB,MAAM,EAAE,IAAI,CAAC,MAAM;4BACnB,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;4BACnE,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;yBAC9D,CAAC,CAAC;qBACJ,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,4FAA4F;gBAC5F,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;oBAAE,MAAM,KAAK,CAAA;YAC1F,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,CAAA;QAClB,CAAC;QAED;;;;WAIG;QAEH,KAAK,CAAC,QAAQ,CAAC,IAAY;YACzB,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;YACtC,MAAM,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;YACrC,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;YACvD,IAAI,GAAG,KAAK,SAAS;gBAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;YACtE,OAAO;gBACL,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,GAAG;gBACZ,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC;gBACrB,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;aACzD,CAAA;QACH,CAAC;QAED;;;;WAIG;QAEH,KAAK,CAAC,SAAS,CAAC,OAAyB;YACvC,OAAO,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACtD,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YACxC,IAAI,KAAK,GAAG,cAAc,EAAE,CAAC;gBAC3B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,KAAK,WAAW,cAAc,iBAAiB,EAAE,CAAA;YACpG,CAAC;YACD,MAAM,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAC7C,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;YACpB,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;YACrD,6EAA6E;YAC7E,2EAA2E;YAC3E,oEAAoE;YACpE,IAAI,QAAQ,KAAK,SAAS,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;gBACzD,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,KAAK;oBACL,KAAK,EAAE,yDAAyD;iBACjE,CAAA;YACH,CAAC;YACD,4EAA4E;YAC5E,yEAAyE;YACzE,2EAA2E;YAC3E,oEAAoE;YACpE,4EAA4E;YAC5E,mCAAmC;YACnC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;gBAClC,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,KAAK;oBACL,KAAK,EAAE,sBAAsB,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,iCAAiC;iBACnF,CAAA;YACH,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAA;YACxD,MAAM,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE;gBAChE,IAAI,EAAE,iBAAiB;gBACvB,aAAa,EAAE,OAAO,CAAC,IAAI;aAC5B,CAAC,CAAA;YACF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;QAC5B,CAAC;QAED;;;;;WAKG;QAEH,KAAK,CAAC,YAAY,CAAC,OAA4B;YAC7C,OAAO,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACtD,MAAM,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAC7C,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;YAClC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAC/B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,8DAA8D,EAAE,CAAA;YACpH,CAAC;YACD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;YACtD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC/B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,2CAA2C,EAAE,CAAA;YACjG,CAAC;YACD,MAAM,SAAS,GAAG,YAAY,CAAC,gBAAgB,EAAE,CAAA;YACjD,MAAM,OAAO,GAAoB;gBAC/B,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,MAAM,EAAE,kBAAkB;gBAC1B,QAAQ,EAAE,CAAC,iBAAiB,CAAC;wBAC3B,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,IAAI,qBAAqB,QAAQ,EAAE,EAAE,CAAC;wBAC9E,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;qBACzB,CAAC,CAAC;gBACH,WAAW,EAAE,GAAG;gBAChB,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,wBAAwB,CAAC;aACtD,CAAA;YACD,IAAI,IAAI,GAAG,EAAE,CAAA;YACb,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;gBAClC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBACjC,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;wBAAE,IAAI,IAAI,KAAK,CAAC,IAAI,CAAA;yBAC9C,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;wBAClE,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;oBAC/C,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,EAAE,CAAC;oBACrC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,IAAI,CAAC,KAAK,CAAC,wBAAwB,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;gBACxH,CAAC;gBACD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;YAC5G,CAAC;YACD,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAA;YACxC,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;YAChC,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;QACtD,CAAC;QAED;;;;WAIG;QAEH,KAAK,CAAC,UAAU,CAAC,OAA0B;YACzC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACtF,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACvC,IAAI,IAAI,KAAK,EAAE,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBACrD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,8CAA8C,EAAE,CAAA;YAC7F,CAAC;YACD,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,IAAI,uEAAuE,EAAE,CAAA;YAC9H,CAAC;YACD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,KAAK,SAAS;gBACtC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,aAAa,CAAC;gBACzC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAA;YAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,CAAA;YACzC,OAAO,iBAAiB,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAA;QACtH,CAAC;QAED;;;;;;;WAOG;QAEH,KAAK,CAAC,YAAY,CAAC,OAA4B;YAC7C,MAAM,KAAK,GAA0B,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAA;YAC1J,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;YACjD,IAAI,CAAC,OAAO,CAAC,EAAE;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,QAAQ,EAAE,CAAA;YACjH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,GAAG,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;YAClF,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,MAAM,EAAE,CAAA;QAChK,CAAC;QAED;;;;;;WAMG;QAEH,KAAK,CAAC,QAAQ,CAAC,OAAwB;YACrC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;YAC/B,MAAM,GAAG,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;YACxC,MAAM,KAAK,GAAG,eAAe,EAAE,CAAA;YAC/B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;YACjG,CAAC;YACD,IAAI,OAAiB,CAAA;YACrB,IAAI,CAAC;gBACH,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;YACrD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;YAC5I,CAAC;YACD,MAAM,IAAI,GAAG,OAAO;iBACjB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iBACzE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;iBAC5C,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YAChG,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,CAAA;QAC1G,CAAC;QAED;;;;WAIG;QAEH,KAAK,CAAC,SAAS,CAAC,OAAyB;YACvC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACtF,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACvC,IAAI,IAAI,KAAK,EAAE,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBACjD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,yCAAyC,EAAE,CAAA;YACxF,CAAC;YACD,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,IAAI,sEAAsE,EAAE,CAAA;YAC7H,CAAC;YACD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,KAAK,SAAS;gBACtC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,YAAY,CAAC;gBACxC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAA;YAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,KAAK,CAAC,CAAA;YACrC,OAAO,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,CAAC,CAAA;QACxE,CAAC;QAED;;;;;WAKG;QAEH,KAAK,CAAC,SAAS,CAAC,OAAyB;YACvC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACtF,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACvC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,KAAK,SAAS;gBACtC,CAAC,CAAC,kBAAkB;gBACpB,CAAC,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS;oBAC3B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,aAAa,CAAC;oBACzC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAA;YAC/B,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAA;YAC1D,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,oBAAoB,IAAI,EAAE,EAAE,CAAA;YAC5G,CAAC;YACD,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,CAAA;YAClC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,iCAAiC,IAAI,EAAE,EAAE,CAAA;YACzH,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAA;QAC/H,CAAC;QAED;;;;;WAKG;QAEH,KAAK,CAAC,QAAQ,CAAC,OAAwB;YACrC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACtF,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACvC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,KAAK,SAAS;gBACtC,CAAC,CAAC,iBAAiB;gBACnB,CAAC,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS;oBAC3B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,YAAY,CAAC;oBACxC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAA;YAC9B,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC,CAAA;YACtD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,mBAAmB,IAAI,EAAE,EAAE,CAAA;YAC3E,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,CAAA;QACnD,CAAC;QAED;;;;;;WAMG;QAEH,KAAK,CAAC,WAAW,CAAC,OAA2B;YAC3C,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACtF,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACvC,IAAI,IAAI,KAAK,EAAE;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAA;YAC5F,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,KAAK,SAAS;gBACtC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,aAAa,CAAC;gBACzC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAA;YAC7B,OAAO,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;QAClD,CAAC;QAED;;;;;WAKG;QAEH,KAAK,CAAC,UAAU,CAAC,OAA0B;YACzC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACtF,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACvC,IAAI,IAAI,KAAK,EAAE;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAA;YAC3F,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,KAAK,SAAS;gBACtC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,YAAY,CAAC;gBACxC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAA;YAC5B,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,KAAK,CAAC,EAAE,IAAI,CAAC,CAAA;QAC3D,CAAC;QAED,gFAAgF;QACxE,EAAE;YACR,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAC7B,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;gBACrB,MAAM,IAAI,WAAW,CAAC,kBAAkB,EAAE,6DAA6D,EAAE,EAAE,CAAC,CAAA;YAC9G,CAAC;YACD,OAAO,EAAE,CAAA;QACX,CAAC;;;AA7gBH;;;;GAIG;AACH,oCAygBC;AAED,oFAAoF;AACpF,SAAS,iBAAiB,CAAC,IAAY,EAAE,OAAe,EAAE,IAAY;IACpE,IAAI,CAAC;QACH,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC7C,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QACpC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;IACvG,CAAC;AACH,CAAC;AAED,0EAA0E;AAC1E,SAAS,gBAAgB,CAAC,IAAY;IACpC,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED,0DAA0D;AAC1D,SAAS,kBAAkB,CAAC,IAAY,EAAE,IAAY;IACpD,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAC7B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;IACvG,CAAC;AACH,CAAC;AAED,8FAA8F;AAC9F,SAAS,iBAAiB,CAAC,GAAW,EAAE,IAAY;IAClD,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAC7C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAA;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;IACtG,CAAC;AACH,CAAC;AAED,+FAA+F;AAC/F,KAAK,UAAU,WAAW,CAAC,EAA8B,EAAE,IAAY;IACrE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAA;QACvD,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,iBAAiB;IACJ,OAAO,GAAG,IAAI,GAAG,EAAU,CAAA;IAE5C,QAAQ,CAAC,IAAY;QACnB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAA;IACtC,CAAC;IAED,aAAa,CAAC,IAAY;QACxB,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC;YAAE,OAAM,CAAC,uCAAuC;QAChG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,WAAW,CAAC,kBAAkB,EAAE,uDAAuD,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;QAC9G,CAAC;IACH,CAAC;CACF;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IAC1D,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;AAC/D,CAAC;AAED,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAA;AAEjD,qIAAqI;AACrI,IAAI,gBAAgB,GAAG,KAAK,CAAA;AAE5B,8GAA8G;AAC9G,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;AAClC,CAAC;AAED,yJAAyJ;AACzJ,MAAM,UAAU,sBAAsB;IACpC,gBAAgB,GAAG,IAAI,CAAA;AACzB,CAAC;AAED;;;;GAIG;AACH,MAAM,iBAAiB,GAAG;IACxB,SAAS,EAAE,eAAe,EAAE,qBAAqB,EAAE,aAAa,EAAE,OAAO;IACzE,cAAc,EAAE,2BAA2B,EAAE,UAAU,EAAE,UAAU;CACpE,CAAA;AACD,mDAAmD;AACnD,MAAM,eAAe,GAAG;IACtB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO;IAC3E,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU;CAC3D,CAAA;AACD,kGAAkG;AAClG,MAAM,eAAe,GAAG,gBAAgB,CAAA;AAExC;;;;;;;;;;;;;;GAcG;AACH,8EAA8E;AAC9E,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAAC,IAAI,gBAAgB;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAAC,OAAO,GAAG,CAAA;IAAC,CAAC,CAAC,4DAA4D;IAC5K,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,WAAW,CAAC,kBAAkB,EAAE,iDAAiD,GAAG,EAAE,EAAE,EAAE,CAAC,CAAA;IACvG,CAAC;IACD,+EAA+E;IAC/E,wCAAwC;IACxC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,GAAG,CAAA;IAChF,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,EAAE,CAAA;IACtC,IAAI,KAAK,KAAK,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,WAAW,CAAC,kBAAkB,EAAE,+DAA+D,GAAG,EAAE,EAAE,EAAE,CAAC,CAAA;IACrH,CAAC;IACD,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,eAAe,CAAA;IACpF,wEAAwE;IACxE,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;QACrE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QACrC,CAAC,CAAC,KAAK,CAAA;IACT,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;QAC/B,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,WAAW,CAAC,kBAAkB,EAAE,kDAAkD,GAAG,EAAE,EAAE,EAAE,CAAC,CAAA;QACxG,CAAC;IACH,CAAC;IACD,iBAAiB,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;IAC3C,OAAO,UAAU,CAAA;AACnB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,SAAiB;IACtD,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACpC,MAAM,mBAAmB,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;IAC9C,IAAI,cAAc,KAAK,mBAAmB;QAAE,OAAO,IAAI,CAAA;IACvD,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,GAAG,GAAG,CAAA;IACnF,OAAO,mBAAmB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;AAC/C,CAAC;AAED,qDAAqD;AACrD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAA;AAClJ,gGAAgG;AAChG,MAAM,gBAAgB,GAAG,EAAE,CAAA;AAC3B,qDAAqD;AACrD,MAAM,cAAc,GAAG,CAAC,CAAA;AAExB,kFAAkF;AAClF,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,KAAK,GAAa,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,CAAA;IAClF,SAAS,IAAI,CAAC,GAAW,EAAE,KAAa,EAAE,MAAc;QACtD,IAAI,KAAK,GAAG,cAAc;YAAE,OAAM;QAClC,IAAI,OAAiB,CAAA;QACrB,IAAI,CAAC;YACH,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;QACrD,CAAC;QAAC,MAAM,CAAC;YACP,OAAM;QACR,CAAC;QACD,OAAO,GAAG,OAAO;aACd,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACnC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAClH,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAA;QAChD,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAA;YACjC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YAC3E,IAAI,KAAK;gBAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,MAAM,IAAI,CAAC,CAAA;QAClE,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;QAC5C,IAAI,MAAM,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,OAAO,MAAM,KAAK,CAAC,CAAA;IACzD,CAAC;IACD,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;IACnB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAED,wFAAwF;AACxF,SAAS,WAAW,CAAC,IAAY;IAC/B,MAAM,KAAK,GAAa,CAAC,kBAAkB,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAC1E,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;QAC7C,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,SAAQ;QACpD,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,cAAc,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;IACjE,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AAC3B,CAAC;AAED,mFAAmF;AACnF,SAAS,kBAAkB,CAAC,IAAY;IACtC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;IAC3B,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAA;IACvE,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC,CAAE,CAAC,OAAO,EAAE,CAAA;IAC7B,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,oFAAoF;AACpF,SAAS,SAAS,CAAC,IAAY;IAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAA;AACvD,CAAC;AAED,iFAAiF;AACjF,KAAK,UAAU,UAAU,CAAC,EAA8B,EAAE,IAAY,EAAE,GAAW;IACjF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAA;QACnD,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IACrC,IAAI,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAA;IACzC,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,IAAI,CAAC;QACH,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC/D,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAQ;YAChE,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;YAC9C,IAAI,UAAU,CAAC,KAAK,CAAC;gBAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC7C,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAA;IAC7C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,SAAS,CAAA;IACzC,IAAI,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3B,yEAAyE;IACzE,oEAAoE;IACpE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,uBAAuB,EAAE,KAAK,EAAE,EAAE,CAAC;QAC7D,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAClC,IAAI,UAAU,CAAC,EAAE,CAAC;YAAE,OAAO,EAAE,CAAA;QAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;QAC/B,IAAI,MAAM,KAAK,OAAO;YAAE,MAAK;QAC7B,OAAO,GAAG,MAAM,CAAA;IAClB,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,sFAAsF;AACtF,MAAM,uBAAuB,GAAG,CAAC,CAAA;AAEjC;;;;GAIG;AACH,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;IACjC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;IACnE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;AACrC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@godv61/dsh-task-engine",
|
|
3
|
-
"version": "0.23.
|
|
3
|
+
"version": "0.23.5",
|
|
4
4
|
"description": "Preset-workflow engineering delivery engine for DeepSeek Harness: a `dev_task` tool that hard-gates stage transitions and commit scope/message, per-node skill/rule bindings with progressive disclosure, a workbench to pick a flow preset and mount skills/rules, and preset-scoped activation — the tool and skills activate only for sessions on a preset that names the agent row.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -33,11 +33,13 @@
|
|
|
33
33
|
"skills/**",
|
|
34
34
|
"rules/**",
|
|
35
35
|
"preset/**",
|
|
36
|
+
"scripts/**",
|
|
36
37
|
"docs/**",
|
|
37
38
|
"README.md",
|
|
38
39
|
".p0-test.mjs",
|
|
39
40
|
".resource-test.mjs",
|
|
40
|
-
".workflow-test.mjs"
|
|
41
|
+
".workflow-test.mjs",
|
|
42
|
+
".hook-test.mjs"
|
|
41
43
|
],
|
|
42
44
|
"license": "MIT",
|
|
43
45
|
"publishConfig": {
|
|
@@ -58,8 +60,9 @@
|
|
|
58
60
|
"scripts": {
|
|
59
61
|
"build": "tsc -p tsconfig.json && node build-client.mjs && node build-hook.mjs",
|
|
60
62
|
"typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.client.json --noEmit",
|
|
61
|
-
"test": "node .p0-test.mjs && node --test .resource-test.mjs .workflow-test.mjs",
|
|
63
|
+
"test": "node .p0-test.mjs && node --test .resource-test.mjs .workflow-test.mjs .hook-test.mjs",
|
|
62
64
|
"verify:package": "node scripts/verify-package.mjs",
|
|
65
|
+
"verify:dsh": "node scripts/verify-dsh-compat.mjs",
|
|
63
66
|
"prepare": "npm run build"
|
|
64
67
|
},
|
|
65
68
|
"peerDependencies": {
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DSH codec-contract compatibility check.
|
|
3
|
+
*
|
|
4
|
+
* The plugin's Typert Remote contribution must satisfy whichever strict-codec
|
|
5
|
+
* contract the installed DSH expects. DSH 0.1.6-alpha.2 replaced the
|
|
6
|
+
* materialized `schema` field with a lazy `create: () => TypertSchema` factory
|
|
7
|
+
* and rejects the old shape at plugin load, which took the whole contribution
|
|
8
|
+
* down at boot — a failure the unit tests could not see, because they never
|
|
9
|
+
* load the descriptors through a real registry.
|
|
10
|
+
*
|
|
11
|
+
* npm semver cannot wildcard prereleases, so the peer range enumerates them and
|
|
12
|
+
* a new DSH alpha silently falls outside it; pnpm only warns at install time.
|
|
13
|
+
* This check runs against a real DSH checkout, where the contract actually
|
|
14
|
+
* lives, and fails loudly when the two drift apart again.
|
|
15
|
+
*
|
|
16
|
+
* Run: `node scripts/verify-dsh-compat.mjs [path-to-dsh-checkout]`
|
|
17
|
+
* @module dsh-task-engine/scripts/verify-dsh-compat
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
import { existsSync, readFileSync } from 'node:fs'
|
|
21
|
+
import { join } from 'node:path'
|
|
22
|
+
import { fileURLToPath } from 'node:url'
|
|
23
|
+
|
|
24
|
+
const DEFAULT_DSH_ROOT = 'D:/dsharness/deepseek-harness'
|
|
25
|
+
|
|
26
|
+
const problems = []
|
|
27
|
+
function check(name, ok, detail = '') {
|
|
28
|
+
console.log(`${ok ? 'ok ' : 'FAIL'} ${name}${detail === '' ? '' : `: ${detail}`}`)
|
|
29
|
+
if (!ok) problems.push(name)
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/** Locate the typert protocol package inside a DSH checkout. */
|
|
33
|
+
function protocolDir(root) {
|
|
34
|
+
const candidates = [
|
|
35
|
+
join(root, 'packages', 'typert', 'protocol'),
|
|
36
|
+
join(root, 'node_modules', '@deepseek-ai', 'dsh-typert-protocol'),
|
|
37
|
+
]
|
|
38
|
+
return candidates.find(dir => existsSync(join(dir, 'package.json')))
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
const dshRoot = process.argv[2] ?? DEFAULT_DSH_ROOT
|
|
42
|
+
console.log(`DSH checkout: ${dshRoot}`)
|
|
43
|
+
|
|
44
|
+
if (!existsSync(dshRoot)) {
|
|
45
|
+
// Absent checkout is not a failure: this script is advisory outside CI.
|
|
46
|
+
console.log('ok (skipped) no DSH checkout at that path')
|
|
47
|
+
process.exit(0)
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const dir = protocolDir(dshRoot)
|
|
51
|
+
if (dir === undefined) {
|
|
52
|
+
check('locate the typert protocol package', false, 'not found under the DSH checkout')
|
|
53
|
+
process.exit(1)
|
|
54
|
+
}
|
|
55
|
+
const protocol = JSON.parse(readFileSync(join(dir, 'package.json'), 'utf8'))
|
|
56
|
+
console.log(` typert protocol version: ${protocol.version}`)
|
|
57
|
+
|
|
58
|
+
// 1. Which contract does this DSH expect? Read the type, not a guess.
|
|
59
|
+
const typesPath = [
|
|
60
|
+
join(dir, 'src', 'types.ts'),
|
|
61
|
+
join(dir, 'lib', 'types', 'types.d.ts'),
|
|
62
|
+
].find(path => existsSync(path))
|
|
63
|
+
const typesText = typesPath === undefined ? '' : readFileSync(typesPath, 'utf8')
|
|
64
|
+
const wantsCreate = /readonly create: \(\) => TypertSchema/u.test(typesText)
|
|
65
|
+
const wantsSchema = /readonly schema: TypertSchema/u.test(typesText)
|
|
66
|
+
console.log(` contract: ${wantsCreate ? 'create() factory' : wantsSchema ? 'schema field' : 'unknown'}`)
|
|
67
|
+
|
|
68
|
+
// 2. Our descriptors must satisfy it. Import the built contribution and inspect
|
|
69
|
+
// every strict codec exactly as the DSH registry would.
|
|
70
|
+
const pluginRoot = fileURLToPath(new URL('..', import.meta.url))
|
|
71
|
+
const clientBundle = join(pluginRoot, 'lib', 'client.js')
|
|
72
|
+
if (!existsSync(clientBundle)) {
|
|
73
|
+
check('built client bundle exists', false, 'run `npm run build` first')
|
|
74
|
+
process.exit(1)
|
|
75
|
+
}
|
|
76
|
+
const bundleText = readFileSync(clientBundle, 'utf8')
|
|
77
|
+
const strictCodecs = (bundleText.match(/mode:\s*"strict"/gu) ?? []).length
|
|
78
|
+
const withCreate = (bundleText.match(/create:\s*\(\)\s*=>/gu) ?? []).length
|
|
79
|
+
const withSchema = (bundleText.match(/schema:/gu) ?? []).length
|
|
80
|
+
|
|
81
|
+
check('the bundle carries strict codecs', strictCodecs > 0, `${strictCodecs} found`)
|
|
82
|
+
if (wantsCreate) {
|
|
83
|
+
check('every strict codec provides create()', withCreate >= strictCodecs,
|
|
84
|
+
`${withCreate} of ${strictCodecs}`)
|
|
85
|
+
}
|
|
86
|
+
if (wantsSchema) {
|
|
87
|
+
check('every strict codec provides schema', withSchema >= strictCodecs,
|
|
88
|
+
`${withSchema} of ${strictCodecs}`)
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// 3. The peer range must actually admit the installed DSH version, because npm
|
|
92
|
+
// semver will not match a prerelease the range does not name. Implemented
|
|
93
|
+
// here rather than via the `semver` package: that is a devDependency, so a
|
|
94
|
+
// consumer running this script from the installed tarball has no copy, and
|
|
95
|
+
// the whole point of this check is to run against whatever DSH is present.
|
|
96
|
+
const pkg = JSON.parse(readFileSync(join(pluginRoot, 'package.json'), 'utf8'))
|
|
97
|
+
const range = pkg.peerDependencies['@deepseek-ai/dsh-typert-protocol'] ?? ''
|
|
98
|
+
check(`peer range admits DSH ${protocol.version}`, rangeAdmits(range, protocol.version), range)
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Whether one of a `||`-joined range's comparators admits `version`.
|
|
102
|
+
*
|
|
103
|
+
* npm semver matches a prerelease only when the comparator names a prerelease
|
|
104
|
+
* on the SAME major.minor.patch, which is why enumerating versions is the only
|
|
105
|
+
* way to cover a DSH alpha. This mirrors that rule for the caret and exact
|
|
106
|
+
* forms the manifest actually uses; it is deliberately conservative, and an
|
|
107
|
+
* unrecognized comparator reports `false` so the check fails loudly rather than
|
|
108
|
+
* passing by accident.
|
|
109
|
+
* @param range - the peer range expression.
|
|
110
|
+
* @param version - the installed DSH version to test.
|
|
111
|
+
* @returns true when the range admits the version.
|
|
112
|
+
*/
|
|
113
|
+
function rangeAdmits(range, version) {
|
|
114
|
+
const parse = text => {
|
|
115
|
+
const match = /^(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?$/u.exec(text.trim())
|
|
116
|
+
return match === null
|
|
117
|
+
? undefined
|
|
118
|
+
: { major: +match[1], minor: +match[2], patch: +match[3], pre: match[4] }
|
|
119
|
+
}
|
|
120
|
+
const target = parse(version)
|
|
121
|
+
if (target === undefined) return false
|
|
122
|
+
for (const part of range.split('||').map(text => text.trim()).filter(Boolean)) {
|
|
123
|
+
const caret = /^\^(.+)$/u.exec(part)
|
|
124
|
+
const lower = parse(caret === null ? part : caret[1])
|
|
125
|
+
if (lower === undefined) continue
|
|
126
|
+
// Same prerelease tuple, or a plain release on the same caret line.
|
|
127
|
+
const sameTuple = target.major === lower.major
|
|
128
|
+
&& target.minor === lower.minor
|
|
129
|
+
&& target.patch === lower.patch
|
|
130
|
+
if (lower.pre !== undefined) {
|
|
131
|
+
if (sameTuple) return true
|
|
132
|
+
} else if (target.pre === undefined && target.major === lower.major) {
|
|
133
|
+
if (caret === null ? sameTuple : target.minor >= lower.minor) return true
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return false
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
if (problems.length > 0) {
|
|
140
|
+
console.error(`\n${problems.length} DSH compatibility problem(s)`)
|
|
141
|
+
console.error('A new DSH alpha likely changed the Typert contract. Update src/client/remote.ts')
|
|
142
|
+
console.error('and add the version to peerDependencies before releasing.')
|
|
143
|
+
process.exit(1)
|
|
144
|
+
}
|
|
145
|
+
console.log('\nDSH compatibility verified')
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Black-box verification of the npm tarball before publishing: packs the
|
|
3
|
+
* package, extracts it into a clean temp dir, and proves the published entry
|
|
4
|
+
* points actually work — main import, browser client registration, the bundled
|
|
5
|
+
* `.p0-test.mjs`, the CLI, and the `files` whitelist.
|
|
6
|
+
*
|
|
7
|
+
* Run: `npm run verify:package`
|
|
8
|
+
* @module dsh-task-engine/scripts/verify-package
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import { execSync } from 'node:child_process'
|
|
12
|
+
import { existsSync, mkdtempSync, readFileSync, rmSync } from 'node:fs'
|
|
13
|
+
import { tmpdir } from 'node:os'
|
|
14
|
+
import { join } from 'node:path'
|
|
15
|
+
import { fileURLToPath, pathToFileURL } from 'node:url'
|
|
16
|
+
|
|
17
|
+
const pkgRoot = fileURLToPath(new URL('..', import.meta.url))
|
|
18
|
+
const failures = []
|
|
19
|
+
function check(name, ok, detail = '') {
|
|
20
|
+
console.log(`${ok ? 'ok ' : 'FAIL'} ${name}${detail !== '' ? `: ${detail}` : ''}`)
|
|
21
|
+
if (!ok) failures.push(name)
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// 1. pack
|
|
25
|
+
let tgzName
|
|
26
|
+
try {
|
|
27
|
+
const packed = JSON.parse(execSync('npm pack --json', { cwd: pkgRoot, encoding: 'utf8' }))
|
|
28
|
+
tgzName = packed[0]?.filename
|
|
29
|
+
} catch (error) {
|
|
30
|
+
check('npm pack', false, String(error))
|
|
31
|
+
process.exit(1)
|
|
32
|
+
}
|
|
33
|
+
check('npm pack', typeof tgzName === 'string', tgzName)
|
|
34
|
+
|
|
35
|
+
// 2. extract into a clean temp dir
|
|
36
|
+
const tmp = mkdtempSync(join(tmpdir(), 'dsh-pkg-verify-'))
|
|
37
|
+
const tgzPath = join(pkgRoot, tgzName)
|
|
38
|
+
execSync(`tar -xzf "${tgzPath}"`, { cwd: tmp, stdio: 'pipe' })
|
|
39
|
+
const pkgDir = join(tmp, 'package')
|
|
40
|
+
const listing = execSync(`tar -tzf "${tgzPath}"`, { encoding: 'utf8' })
|
|
41
|
+
.trim().split(/\r?\n/u).map(line => line.replace(/^package\//u, ''))
|
|
42
|
+
check('extract', existsSync(join(pkgDir, 'package.json')))
|
|
43
|
+
|
|
44
|
+
// 3. files whitelist sanity
|
|
45
|
+
for (const required of ['hooks/commit-msg', 'lib/index.js', 'lib/client.js', 'lib/client.d.ts', '.p0-test.mjs', 'preset/enable.mjs', 'README.md', '.resource-test.mjs', '.workflow-test.mjs', '.hook-test.mjs']) {
|
|
46
|
+
check(`tarball contains ${required}`, listing.includes(required))
|
|
47
|
+
}
|
|
48
|
+
check('tarball excludes src sources', !listing.some(line => line.startsWith('src/')))
|
|
49
|
+
check('tarball excludes build scripts', !listing.some(line => line.endsWith('build-client.mjs') || line.endsWith('build-hook.mjs')))
|
|
50
|
+
|
|
51
|
+
// Every `node <file>` script the manifest declares must actually ship, EXCEPT
|
|
52
|
+
// the build-time ones that `prepare` needs in the source tree only. A script
|
|
53
|
+
// whose target is absent from `files` installs fine and then dies with
|
|
54
|
+
// MODULE_NOT_FOUND — which is exactly what verify:package and verify:dsh did
|
|
55
|
+
// until this assertion existed, because neither scripts/ path was published.
|
|
56
|
+
{
|
|
57
|
+
const manifest = JSON.parse(readFileSync(join(pkgRoot, 'package.json'), 'utf8'))
|
|
58
|
+
// Scripts that legitimately run only before publishing, never from a consumer.
|
|
59
|
+
const BUILD_ONLY = new Set(['prepare', 'build'])
|
|
60
|
+
const missing = []
|
|
61
|
+
for (const [name, command] of Object.entries(manifest.scripts ?? {})) {
|
|
62
|
+
if (BUILD_ONLY.has(name)) continue
|
|
63
|
+
for (const match of String(command).matchAll(/\bnode\s+(?:--[^\s]+\s+)*([^\s&|]+)/gu)) {
|
|
64
|
+
const target = match[1].replace(/^\.\//u, '')
|
|
65
|
+
if (!target.endsWith('.mjs') && !target.endsWith('.js')) continue
|
|
66
|
+
if (!listing.includes(target)) missing.push(`${name} -> ${target}`)
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
check('every declared node script ships in the tarball', missing.length === 0, missing.join(', '))
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// 3b. install the tarball into a clean project so peer dependencies resolve,
|
|
73
|
+
// exactly like a real consumer's `npm install`.
|
|
74
|
+
const installDir = mkdtempSync(join(tmpdir(), 'dsh-pkg-install-'))
|
|
75
|
+
import { writeFileSync } from 'node:fs'
|
|
76
|
+
writeFileSync(join(installDir, 'package.json'), JSON.stringify({ name: 'probe', private: true, type: 'module' }))
|
|
77
|
+
try {
|
|
78
|
+
execSync(`npm install "${tgzPath}" --no-audit --no-fund`, { cwd: installDir, encoding: 'utf8', stdio: 'pipe' })
|
|
79
|
+
check('npm install tarball', true)
|
|
80
|
+
} catch (error) {
|
|
81
|
+
check('npm install tarball', false, String(error.stderr ?? error))
|
|
82
|
+
process.exit(1)
|
|
83
|
+
}
|
|
84
|
+
const installedDir = join(installDir, 'node_modules', '@godv61', 'dsh-task-engine')
|
|
85
|
+
|
|
86
|
+
// 4. main entry imports
|
|
87
|
+
try {
|
|
88
|
+
await import(pathToFileURL(join(installedDir, 'lib/index.js')).href)
|
|
89
|
+
check('import main entry', true)
|
|
90
|
+
} catch (error) {
|
|
91
|
+
check('import main entry', false, error instanceof Error ? error.message : String(error))
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// 5. browser client registers through the DSH module loader
|
|
95
|
+
try {
|
|
96
|
+
const registry = { loaded: undefined }
|
|
97
|
+
globalThis.window = { __ModuleLoader__: { load(reg) { registry.loaded = reg } } }
|
|
98
|
+
await import(pathToFileURL(join(installedDir, 'lib/client.js')).href)
|
|
99
|
+
check('client bundle registers via ModuleLoader', registry.loaded?.id === '@godv61/dsh-task-engine')
|
|
100
|
+
} catch (error) {
|
|
101
|
+
check('client bundle registers via ModuleLoader', false, error instanceof Error ? error.message : String(error))
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
// 6. in-package acceptance test
|
|
105
|
+
try {
|
|
106
|
+
const out = execSync('node .p0-test.mjs', { cwd: installedDir, encoding: 'utf8', stdio: 'pipe' })
|
|
107
|
+
check('in-package .p0-test.mjs', /passed/u.test(out), out.trim().split('\n').at(-1))
|
|
108
|
+
} catch (error) {
|
|
109
|
+
check('in-package .p0-test.mjs', false, String(error.stderr ?? error))
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// Resource package behavior from the installed artifact, including the commit
|
|
113
|
+
// hook running for real inside throwaway repositories.
|
|
114
|
+
try {
|
|
115
|
+
const out = execSync('node --test --test-reporter=tap .resource-test.mjs .workflow-test.mjs .hook-test.mjs', { cwd: installedDir, encoding: 'utf8', stdio: 'pipe' })
|
|
116
|
+
check('in-package resource, workflow and hook behavior', /# fail 0/u.test(out))
|
|
117
|
+
} catch (error) { check('in-package resource, workflow and hook behavior', false, String(error.stderr ?? error)) }
|
|
118
|
+
|
|
119
|
+
// 7. CLI parses
|
|
120
|
+
try {
|
|
121
|
+
const cli = join(installedDir, 'preset', 'enable.mjs')
|
|
122
|
+
execSync(`node --check "${cli}"`, { stdio: 'pipe' })
|
|
123
|
+
check('CLI enable.mjs parses', true)
|
|
124
|
+
} catch (error) {
|
|
125
|
+
check('CLI enable.mjs parses', false, String(error.stderr ?? error))
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
rmSync(tmp, { recursive: true, force: true })
|
|
129
|
+
rmSync(installDir, { recursive: true, force: true })
|
|
130
|
+
try { rmSync(tgzPath, { force: true }) } catch { /* keep the tarball when the FS declines */ }
|
|
131
|
+
|
|
132
|
+
if (failures.length > 0) {
|
|
133
|
+
console.error(`\n${failures.length} failure(s)`)
|
|
134
|
+
process.exit(1)
|
|
135
|
+
}
|
|
136
|
+
console.log('\npackage black-box verification passed')
|