@zaalipro/dsh-workflows 0.1.0-rc.12
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/LICENSE +21 -0
- package/NOTICE.md +224 -0
- package/README.i18n.yaml +4 -0
- package/README.md +111 -0
- package/README.zh.md +111 -0
- package/cordis.patch.yml +10 -0
- package/docs/architecture.i18n.yaml +4 -0
- package/docs/architecture.md +177 -0
- package/docs/architecture.zh.md +177 -0
- package/docs/testing.i18n.yaml +4 -0
- package/docs/testing.md +125 -0
- package/docs/testing.zh.md +125 -0
- package/docs/user-guide.i18n.yaml +4 -0
- package/docs/user-guide.md +351 -0
- package/docs/user-guide.zh.md +351 -0
- package/lib/client-types/WorkflowMemberInspector.d.ts +28 -0
- package/lib/client-types/WorkflowMemberInspector.d.ts.map +1 -0
- package/lib/client-types/WorkflowMemberInspector.js +181 -0
- package/lib/client-types/WorkflowMemberInspector.js.map +1 -0
- package/lib/client-types/WorkflowRunPanel.d.ts +43 -0
- package/lib/client-types/WorkflowRunPanel.d.ts.map +1 -0
- package/lib/client-types/WorkflowRunPanel.js +130 -0
- package/lib/client-types/WorkflowRunPanel.js.map +1 -0
- package/lib/client-types/WorkflowsDashboard.d.ts +49 -0
- package/lib/client-types/WorkflowsDashboard.d.ts.map +1 -0
- package/lib/client-types/WorkflowsDashboard.js +942 -0
- package/lib/client-types/WorkflowsDashboard.js.map +1 -0
- package/lib/client-types/adapter.d.ts +60 -0
- package/lib/client-types/adapter.d.ts.map +1 -0
- package/lib/client-types/adapter.js +117 -0
- package/lib/client-types/adapter.js.map +1 -0
- package/lib/client-types/chat-renderer.d.ts +10 -0
- package/lib/client-types/chat-renderer.d.ts.map +1 -0
- package/lib/client-types/chat-renderer.js +11 -0
- package/lib/client-types/chat-renderer.js.map +1 -0
- package/lib/client-types/contract.d.ts +210 -0
- package/lib/client-types/contract.d.ts.map +1 -0
- package/lib/client-types/contract.js +37 -0
- package/lib/client-types/contract.js.map +1 -0
- package/lib/client-types/controller.d.ts +83 -0
- package/lib/client-types/controller.d.ts.map +1 -0
- package/lib/client-types/controller.js +705 -0
- package/lib/client-types/controller.js.map +1 -0
- package/lib/client-types/index.d.ts +19 -0
- package/lib/client-types/index.d.ts.map +1 -0
- package/lib/client-types/index.js +731 -0
- package/lib/client-types/index.js.map +1 -0
- package/lib/client-types/locales.d.ts +257 -0
- package/lib/client-types/locales.d.ts.map +1 -0
- package/lib/client-types/locales.js +270 -0
- package/lib/client-types/locales.js.map +1 -0
- package/lib/client-types/slot-components.d.ts +38 -0
- package/lib/client-types/slot-components.d.ts.map +1 -0
- package/lib/client-types/slot-components.js +22 -0
- package/lib/client-types/slot-components.js.map +1 -0
- package/lib/client-types/store.d.ts +69 -0
- package/lib/client-types/store.d.ts.map +1 -0
- package/lib/client-types/store.js +135 -0
- package/lib/client-types/store.js.map +1 -0
- package/lib/client-types/workflow-definition.d.ts +52 -0
- package/lib/client-types/workflow-definition.d.ts.map +1 -0
- package/lib/client-types/workflow-definition.js +135 -0
- package/lib/client-types/workflow-definition.js.map +1 -0
- package/lib/client.js +11065 -0
- package/lib/client.js.map +1 -0
- package/lib/compat-engine/index.js +1926 -0
- package/lib/compat-engine/index.js.map +1 -0
- package/lib/compat-engine/worker.cjs +1500 -0
- package/lib/compat-engine/worker.cjs.map +1 -0
- package/lib/typert.host.d.ts +3 -0
- package/lib/typert.host.js +1709 -0
- package/lib/typert.remote-client.d.ts +57 -0
- package/lib/typert.remote-client.js +1662 -0
- package/lib/types/commands/aliases.d.ts +4 -0
- package/lib/types/commands/aliases.d.ts.map +1 -0
- package/lib/types/commands/aliases.js +25 -0
- package/lib/types/commands/aliases.js.map +1 -0
- package/lib/types/commands/index.d.ts +66 -0
- package/lib/types/commands/index.d.ts.map +1 -0
- package/lib/types/commands/index.js +550 -0
- package/lib/types/commands/index.js.map +1 -0
- package/lib/types/commands/parser.d.ts +17 -0
- package/lib/types/commands/parser.d.ts.map +1 -0
- package/lib/types/commands/parser.js +45 -0
- package/lib/types/commands/parser.js.map +1 -0
- package/lib/types/config.d.ts +71 -0
- package/lib/types/config.d.ts.map +1 -0
- package/lib/types/config.js +109 -0
- package/lib/types/config.js.map +1 -0
- package/lib/types/index.d.ts +41 -0
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/index.js +483 -0
- package/lib/types/index.js.map +1 -0
- package/lib/types/invariant.d.ts +21 -0
- package/lib/types/invariant.d.ts.map +1 -0
- package/lib/types/invariant.js +85 -0
- package/lib/types/invariant.js.map +1 -0
- package/lib/types/registry/definition.d.ts +24 -0
- package/lib/types/registry/definition.d.ts.map +1 -0
- package/lib/types/registry/definition.js +189 -0
- package/lib/types/registry/definition.js.map +1 -0
- package/lib/types/registry/index.d.ts +100 -0
- package/lib/types/registry/index.d.ts.map +1 -0
- package/lib/types/registry/index.js +899 -0
- package/lib/types/registry/index.js.map +1 -0
- package/lib/types/registry/names.d.ts +19 -0
- package/lib/types/registry/names.d.ts.map +1 -0
- package/lib/types/registry/names.js +69 -0
- package/lib/types/registry/names.js.map +1 -0
- package/lib/types/registry/remote.d.ts +15 -0
- package/lib/types/registry/remote.d.ts.map +1 -0
- package/lib/types/registry/remote.js +128 -0
- package/lib/types/registry/remote.js.map +1 -0
- package/lib/types/registry/roots.d.ts +44 -0
- package/lib/types/registry/roots.d.ts.map +1 -0
- package/lib/types/registry/roots.js +118 -0
- package/lib/types/registry/roots.js.map +1 -0
- package/lib/types/registry/types.d.ts +62 -0
- package/lib/types/registry/types.d.ts.map +1 -0
- package/lib/types/registry/types.js +2 -0
- package/lib/types/registry/types.js.map +1 -0
- package/lib/types/registry/watchers.d.ts +70 -0
- package/lib/types/registry/watchers.d.ts.map +1 -0
- package/lib/types/registry/watchers.js +152 -0
- package/lib/types/registry/watchers.js.map +1 -0
- package/lib/types/remote-events.d.ts +42 -0
- package/lib/types/remote-events.d.ts.map +1 -0
- package/lib/types/remote-events.js +21 -0
- package/lib/types/remote-events.js.map +1 -0
- package/lib/types/run-recorder.d.ts +44 -0
- package/lib/types/run-recorder.d.ts.map +1 -0
- package/lib/types/run-recorder.js +356 -0
- package/lib/types/run-recorder.js.map +1 -0
- package/lib/types/supervisor/canned-validate.d.ts +25 -0
- package/lib/types/supervisor/canned-validate.d.ts.map +1 -0
- package/lib/types/supervisor/canned-validate.js +122 -0
- package/lib/types/supervisor/canned-validate.js.map +1 -0
- package/lib/types/supervisor/completion-notice.d.ts +49 -0
- package/lib/types/supervisor/completion-notice.d.ts.map +1 -0
- package/lib/types/supervisor/completion-notice.js +281 -0
- package/lib/types/supervisor/completion-notice.js.map +1 -0
- package/lib/types/supervisor/cursors.d.ts +68 -0
- package/lib/types/supervisor/cursors.d.ts.map +1 -0
- package/lib/types/supervisor/cursors.js +158 -0
- package/lib/types/supervisor/cursors.js.map +1 -0
- package/lib/types/supervisor/engine-compat.d.ts +48 -0
- package/lib/types/supervisor/engine-compat.d.ts.map +1 -0
- package/lib/types/supervisor/engine-compat.js +116 -0
- package/lib/types/supervisor/engine-compat.js.map +1 -0
- package/lib/types/supervisor/index.d.ts +183 -0
- package/lib/types/supervisor/index.d.ts.map +1 -0
- package/lib/types/supervisor/index.js +2040 -0
- package/lib/types/supervisor/index.js.map +1 -0
- package/lib/types/supervisor/parallel-compat.d.ts +36 -0
- package/lib/types/supervisor/parallel-compat.d.ts.map +1 -0
- package/lib/types/supervisor/parallel-compat.js +180 -0
- package/lib/types/supervisor/parallel-compat.js.map +1 -0
- package/lib/types/supervisor/remote.d.ts +25 -0
- package/lib/types/supervisor/remote.d.ts.map +1 -0
- package/lib/types/supervisor/remote.js +478 -0
- package/lib/types/supervisor/remote.js.map +1 -0
- package/lib/types/supervisor/storage/bounded-file.d.ts +41 -0
- package/lib/types/supervisor/storage/bounded-file.d.ts.map +1 -0
- package/lib/types/supervisor/storage/bounded-file.js +186 -0
- package/lib/types/supervisor/storage/bounded-file.js.map +1 -0
- package/lib/types/supervisor/storage/details-codec.d.ts +14 -0
- package/lib/types/supervisor/storage/details-codec.d.ts.map +1 -0
- package/lib/types/supervisor/storage/details-codec.js +359 -0
- package/lib/types/supervisor/storage/details-codec.js.map +1 -0
- package/lib/types/supervisor/storage/index.d.ts +26 -0
- package/lib/types/supervisor/storage/index.d.ts.map +1 -0
- package/lib/types/supervisor/storage/index.js +100 -0
- package/lib/types/supervisor/storage/index.js.map +1 -0
- package/lib/types/supervisor/storage/lease.d.ts +34 -0
- package/lib/types/supervisor/storage/lease.d.ts.map +1 -0
- package/lib/types/supervisor/storage/lease.js +289 -0
- package/lib/types/supervisor/storage/lease.js.map +1 -0
- package/lib/types/supervisor/storage/manifest-codec.d.ts +10 -0
- package/lib/types/supervisor/storage/manifest-codec.d.ts.map +1 -0
- package/lib/types/supervisor/storage/manifest-codec.js +335 -0
- package/lib/types/supervisor/storage/manifest-codec.js.map +1 -0
- package/lib/types/supervisor/storage/manifest-store.d.ts +99 -0
- package/lib/types/supervisor/storage/manifest-store.d.ts.map +1 -0
- package/lib/types/supervisor/storage/manifest-store.js +1606 -0
- package/lib/types/supervisor/storage/manifest-store.js.map +1 -0
- package/lib/types/supervisor/storage/manifest-types.d.ts +269 -0
- package/lib/types/supervisor/storage/manifest-types.d.ts.map +1 -0
- package/lib/types/supervisor/storage/manifest-types.js +2 -0
- package/lib/types/supervisor/storage/manifest-types.js.map +1 -0
- package/lib/types/supervisor/storage/private-root.d.ts +143 -0
- package/lib/types/supervisor/storage/private-root.d.ts.map +1 -0
- package/lib/types/supervisor/storage/private-root.js +860 -0
- package/lib/types/supervisor/storage/private-root.js.map +1 -0
- package/lib/types/supervisor/storage/recovery.d.ts +14 -0
- package/lib/types/supervisor/storage/recovery.d.ts.map +1 -0
- package/lib/types/supervisor/storage/recovery.js +126 -0
- package/lib/types/supervisor/storage/recovery.js.map +1 -0
- package/lib/types/supervisor/storage/run-files.d.ts +67 -0
- package/lib/types/supervisor/storage/run-files.d.ts.map +1 -0
- package/lib/types/supervisor/storage/run-files.js +346 -0
- package/lib/types/supervisor/storage/run-files.js.map +1 -0
- package/lib/types/supervisor/types.d.ts +295 -0
- package/lib/types/supervisor/types.d.ts.map +1 -0
- package/lib/types/supervisor/types.js +3 -0
- package/lib/types/supervisor/types.js.map +1 -0
- package/lib/types/supervisor/value-view.d.ts +19 -0
- package/lib/types/supervisor/value-view.d.ts.map +1 -0
- package/lib/types/supervisor/value-view.js +183 -0
- package/lib/types/supervisor/value-view.js.map +1 -0
- package/lib/types/tool/index.d.ts +86 -0
- package/lib/types/tool/index.d.ts.map +1 -0
- package/lib/types/tool/index.js +810 -0
- package/lib/types/tool/index.js.map +1 -0
- package/lib/types/tool/schema.d.ts +158 -0
- package/lib/types/tool/schema.d.ts.map +1 -0
- package/lib/types/tool/schema.js +137 -0
- package/lib/types/tool/schema.js.map +1 -0
- package/lib/types/types.d.ts +9 -0
- package/lib/types/types.d.ts.map +1 -0
- package/lib/types/types.js +3 -0
- package/lib/types/types.js.map +1 -0
- package/lib/types/user-questions.d.ts +9 -0
- package/lib/types/user-questions.d.ts.map +1 -0
- package/lib/types/user-questions.js +91 -0
- package/lib/types/user-questions.js.map +1 -0
- package/package.json +291 -0
- package/skills/create-workflow/SKILL.md +166 -0
- package/vendor/workflow-engine/LICENSE +21 -0
- package/vendor/workflow-engine/README.md +1 -0
package/package.json
ADDED
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@zaalipro/dsh-workflows",
|
|
3
|
+
"version": "0.1.0-rc.12",
|
|
4
|
+
"description": "Installable saved-workflow and supervised-run product for DeepSeek Harness",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"engines": {
|
|
8
|
+
"node": "^22.19.0 || >=24.0.0"
|
|
9
|
+
},
|
|
10
|
+
"packageManager": "pnpm@11.7.0",
|
|
11
|
+
"publishConfig": {
|
|
12
|
+
"access": "public"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"lib/types",
|
|
16
|
+
"lib/compat-engine",
|
|
17
|
+
"lib/client-types",
|
|
18
|
+
"lib/client.js",
|
|
19
|
+
"lib/client.js.map",
|
|
20
|
+
"lib/typert.host.js",
|
|
21
|
+
"lib/typert.host.d.ts",
|
|
22
|
+
"lib/typert.remote-client.js",
|
|
23
|
+
"lib/typert.remote-client.d.ts",
|
|
24
|
+
"skills",
|
|
25
|
+
"cordis.patch.yml",
|
|
26
|
+
"README.md",
|
|
27
|
+
"README.zh.md",
|
|
28
|
+
"README.i18n.yaml",
|
|
29
|
+
"docs",
|
|
30
|
+
"LICENSE",
|
|
31
|
+
"NOTICE.md",
|
|
32
|
+
"vendor/workflow-engine/LICENSE",
|
|
33
|
+
"vendor/workflow-engine/README.md",
|
|
34
|
+
"package.json"
|
|
35
|
+
],
|
|
36
|
+
"main": "./lib/types/index.js",
|
|
37
|
+
"types": "./lib/types/index.d.ts",
|
|
38
|
+
"exports": {
|
|
39
|
+
".": {
|
|
40
|
+
"types": "./lib/types/index.d.ts",
|
|
41
|
+
"import": "./lib/types/index.js",
|
|
42
|
+
"default": "./lib/types/index.js"
|
|
43
|
+
},
|
|
44
|
+
"./registry": {
|
|
45
|
+
"types": "./lib/types/registry/index.d.ts",
|
|
46
|
+
"default": "./lib/types/registry/index.js"
|
|
47
|
+
},
|
|
48
|
+
"./supervisor": {
|
|
49
|
+
"types": "./lib/types/supervisor/index.d.ts",
|
|
50
|
+
"default": "./lib/types/supervisor/index.js"
|
|
51
|
+
},
|
|
52
|
+
"./run-recorder": {
|
|
53
|
+
"types": "./lib/types/run-recorder.d.ts",
|
|
54
|
+
"default": "./lib/types/run-recorder.js"
|
|
55
|
+
},
|
|
56
|
+
"./user-questions": {
|
|
57
|
+
"types": "./lib/types/user-questions.d.ts",
|
|
58
|
+
"default": "./lib/types/user-questions.js"
|
|
59
|
+
},
|
|
60
|
+
"./commands": {
|
|
61
|
+
"types": "./lib/types/commands/index.d.ts",
|
|
62
|
+
"default": "./lib/types/commands/index.js"
|
|
63
|
+
},
|
|
64
|
+
"./tool": {
|
|
65
|
+
"types": "./lib/types/tool/index.d.ts",
|
|
66
|
+
"default": "./lib/types/tool/index.js"
|
|
67
|
+
},
|
|
68
|
+
"./client": {
|
|
69
|
+
"types": "./lib/client-types/index.d.ts",
|
|
70
|
+
"default": "./lib/client.js"
|
|
71
|
+
},
|
|
72
|
+
"./types": {
|
|
73
|
+
"types": "./lib/types/types.d.ts",
|
|
74
|
+
"default": "./lib/types/types.js"
|
|
75
|
+
},
|
|
76
|
+
"./invariant": {
|
|
77
|
+
"types": "./lib/types/invariant.d.ts",
|
|
78
|
+
"default": "./lib/types/invariant.js"
|
|
79
|
+
},
|
|
80
|
+
"./typert": {
|
|
81
|
+
"types": "./lib/typert.host.d.ts",
|
|
82
|
+
"default": "./lib/typert.host.js"
|
|
83
|
+
},
|
|
84
|
+
"./remote": {
|
|
85
|
+
"types": "./lib/typert.remote-client.d.ts",
|
|
86
|
+
"default": "./lib/typert.remote-client.js"
|
|
87
|
+
},
|
|
88
|
+
"./cordis.patch.yml": "./cordis.patch.yml",
|
|
89
|
+
"./skills/create-workflow/SKILL.md": "./skills/create-workflow/SKILL.md",
|
|
90
|
+
"./package.json": "./package.json"
|
|
91
|
+
},
|
|
92
|
+
"sideEffects": false,
|
|
93
|
+
"scripts": {
|
|
94
|
+
"typecheck:host": "node node_modules/typescript/bin/tsc -p tsconfig.host.json --noEmit",
|
|
95
|
+
"typecheck": "node node_modules/typescript/bin/tsc -b --pretty false && node node_modules/typescript/bin/tsc -p tsconfig.compat-engine.json --pretty false",
|
|
96
|
+
"lint": "node node_modules/typescript/bin/tsc -b --pretty false",
|
|
97
|
+
"test:unit": "vitest run --exclude=\"tests/packed-consumer.spec.ts\"",
|
|
98
|
+
"test": "vitest run --exclude=\"tests/packed-consumer.spec.ts\"",
|
|
99
|
+
"test:browser": "vitest run tests/browser-smoke.spec.ts --reporter=dot",
|
|
100
|
+
"test:stress": "vitest run tests/race-stress.spec.ts tests/storage-stress.spec.ts tests/client-race-stress.client.spec.ts --reporter=dot",
|
|
101
|
+
"test:packed-consumer": "vitest run tests/packed-consumer.spec.ts --reporter=dot",
|
|
102
|
+
"test:e2e": "vitest run tests/real-provider.spec.ts --reporter=dot",
|
|
103
|
+
"test:snapshot": "vitest run tests/keyless-snapshot.spec.ts tests/dashboard-snapshot.client.spec.tsx --reporter=dot",
|
|
104
|
+
"build": "node scripts/build.mjs",
|
|
105
|
+
"verify:package": "node scripts/verify-package.mjs --source .",
|
|
106
|
+
"verify:docs": "node scripts/verify-docs.mjs",
|
|
107
|
+
"doc-sync": "node scripts/verify-docs.mjs",
|
|
108
|
+
"check:release": "node scripts/check-release.mjs",
|
|
109
|
+
"test:coverage": "vitest run --exclude=\"tests/keyless-snapshot.spec.ts\" --exclude=\"tests/dashboard-snapshot.client.spec.tsx\" --exclude=\"tests/packed-consumer.spec.ts\" --exclude=\"tests/browser-smoke.spec.ts\" --exclude=\"tests/race-stress.spec.ts\" --exclude=\"tests/storage-stress.spec.ts\" --exclude=\"tests/client-race-stress.client.spec.ts\" --exclude=\"tests/real-provider.spec.ts\" --coverage.enabled=true --coverage.provider=v8 --coverage.thresholds.statements=80 --coverage.thresholds.branches=80 --coverage.thresholds.functions=80 --coverage.thresholds.lines=80"
|
|
110
|
+
},
|
|
111
|
+
"dependencies": {
|
|
112
|
+
"@deepseek-ai/schemastery": "3.18.2",
|
|
113
|
+
"chokidar": "4.0.3",
|
|
114
|
+
"clsx": "2.1.1",
|
|
115
|
+
"fs-native-extensions": "1.5.0",
|
|
116
|
+
"zod": "4.4.3"
|
|
117
|
+
},
|
|
118
|
+
"peerDependencies": {
|
|
119
|
+
"@deepseek-ai/cordis": ">=4.0.2",
|
|
120
|
+
"@deepseek-ai/dsh-agent": "0.1.6-alpha.1",
|
|
121
|
+
"@deepseek-ai/dsh-api-remotes": "0.1.6-alpha.1",
|
|
122
|
+
"@deepseek-ai/dsh-client-connection": "0.1.6-alpha.1",
|
|
123
|
+
"@deepseek-ai/dsh-client-locale": "0.1.6-alpha.1",
|
|
124
|
+
"@deepseek-ai/dsh-client-ui-chat": "0.1.6-alpha.1",
|
|
125
|
+
"@deepseek-ai/dsh-client-ui-commands": "0.1.6-alpha.1",
|
|
126
|
+
"@deepseek-ai/dsh-client-ui-conversation": "0.1.6-alpha.1",
|
|
127
|
+
"@deepseek-ai/dsh-client-ui-input-trigger": "0.1.6-alpha.1",
|
|
128
|
+
"@deepseek-ai/dsh-client-ui-layout": "0.1.6-alpha.1",
|
|
129
|
+
"@deepseek-ai/dsh-commands": "0.1.6-alpha.1",
|
|
130
|
+
"@deepseek-ai/dsh-fs": "0.1.6-alpha.1",
|
|
131
|
+
"@deepseek-ai/dsh-llm": "0.1.6-alpha.1",
|
|
132
|
+
"@deepseek-ai/dsh-session": "0.1.6-alpha.1",
|
|
133
|
+
"@deepseek-ai/dsh-skill": "0.1.6-alpha.1",
|
|
134
|
+
"@deepseek-ai/dsh-subagent": "0.1.6-alpha.1",
|
|
135
|
+
"@deepseek-ai/dsh-tools": "0.1.6-alpha.1",
|
|
136
|
+
"@deepseek-ai/dsh-typert-protocol": "0.1.6-alpha.1",
|
|
137
|
+
"@deepseek-ai/dsh-user-questions": "0.1.6-alpha.1",
|
|
138
|
+
"@deepseek-ai/dsh-util-values": "0.1.6-alpha.1",
|
|
139
|
+
"@deepseek-ai/dsh-workflow": "0.1.6-alpha.1",
|
|
140
|
+
"@deepseek-ai/dsh-workflow-ptc": "0.1.6-alpha.1",
|
|
141
|
+
"react": ">=18.2.0"
|
|
142
|
+
},
|
|
143
|
+
"peerDependenciesMeta": {
|
|
144
|
+
"@deepseek-ai/cordis": {
|
|
145
|
+
"optional": true
|
|
146
|
+
},
|
|
147
|
+
"@deepseek-ai/dsh-agent": {
|
|
148
|
+
"optional": true
|
|
149
|
+
},
|
|
150
|
+
"@deepseek-ai/dsh-api-remotes": {
|
|
151
|
+
"optional": true
|
|
152
|
+
},
|
|
153
|
+
"@deepseek-ai/dsh-client-connection": {
|
|
154
|
+
"optional": true
|
|
155
|
+
},
|
|
156
|
+
"@deepseek-ai/dsh-client-locale": {
|
|
157
|
+
"optional": true
|
|
158
|
+
},
|
|
159
|
+
"@deepseek-ai/dsh-client-ui-chat": {
|
|
160
|
+
"optional": true
|
|
161
|
+
},
|
|
162
|
+
"@deepseek-ai/dsh-client-ui-commands": {
|
|
163
|
+
"optional": true
|
|
164
|
+
},
|
|
165
|
+
"@deepseek-ai/dsh-client-ui-conversation": {
|
|
166
|
+
"optional": true
|
|
167
|
+
},
|
|
168
|
+
"@deepseek-ai/dsh-client-ui-input-trigger": {
|
|
169
|
+
"optional": true
|
|
170
|
+
},
|
|
171
|
+
"@deepseek-ai/dsh-client-ui-layout": {
|
|
172
|
+
"optional": true
|
|
173
|
+
},
|
|
174
|
+
"@deepseek-ai/dsh-commands": {
|
|
175
|
+
"optional": true
|
|
176
|
+
},
|
|
177
|
+
"@deepseek-ai/dsh-fs": {
|
|
178
|
+
"optional": true
|
|
179
|
+
},
|
|
180
|
+
"@deepseek-ai/dsh-llm": {
|
|
181
|
+
"optional": true
|
|
182
|
+
},
|
|
183
|
+
"@deepseek-ai/dsh-session": {
|
|
184
|
+
"optional": true
|
|
185
|
+
},
|
|
186
|
+
"@deepseek-ai/dsh-util-values": {
|
|
187
|
+
"optional": true
|
|
188
|
+
},
|
|
189
|
+
"@deepseek-ai/dsh-skill": {
|
|
190
|
+
"optional": true
|
|
191
|
+
},
|
|
192
|
+
"@deepseek-ai/dsh-subagent": {
|
|
193
|
+
"optional": true
|
|
194
|
+
},
|
|
195
|
+
"@deepseek-ai/dsh-tools": {
|
|
196
|
+
"optional": true
|
|
197
|
+
},
|
|
198
|
+
"@deepseek-ai/dsh-typert-protocol": {
|
|
199
|
+
"optional": true
|
|
200
|
+
},
|
|
201
|
+
"@deepseek-ai/dsh-user-questions": {
|
|
202
|
+
"optional": true
|
|
203
|
+
},
|
|
204
|
+
"@deepseek-ai/dsh-workflow": {
|
|
205
|
+
"optional": true
|
|
206
|
+
},
|
|
207
|
+
"@deepseek-ai/dsh-workflow-ptc": {
|
|
208
|
+
"optional": true
|
|
209
|
+
},
|
|
210
|
+
"react": {
|
|
211
|
+
"optional": true
|
|
212
|
+
}
|
|
213
|
+
},
|
|
214
|
+
"devDependencies": {
|
|
215
|
+
"@deepseek-ai/cordis": "4.0.2",
|
|
216
|
+
"@deepseek-ai/cordis-plugin-group": "1.0.2",
|
|
217
|
+
"@deepseek-ai/cordis-plugin-hmr": "1.0.17",
|
|
218
|
+
"@deepseek-ai/cordis-plugin-include": "1.0.7",
|
|
219
|
+
"@deepseek-ai/cordis-plugin-loader": "1.0.3",
|
|
220
|
+
"@deepseek-ai/dsh": "0.1.6-alpha.1",
|
|
221
|
+
"@deepseek-ai/dsh-agent": "0.1.6-alpha.1",
|
|
222
|
+
"@deepseek-ai/dsh-anonymous-user-id": "0.1.6-alpha.1",
|
|
223
|
+
"@deepseek-ai/dsh-api-remotes": "0.1.6-alpha.1",
|
|
224
|
+
"@deepseek-ai/dsh-client-connection": "0.1.6-alpha.1",
|
|
225
|
+
"@deepseek-ai/dsh-client-locale": "0.1.6-alpha.1",
|
|
226
|
+
"@deepseek-ai/dsh-client-ui-chat": "0.1.6-alpha.1",
|
|
227
|
+
"@deepseek-ai/dsh-client-ui-commands": "0.1.6-alpha.1",
|
|
228
|
+
"@deepseek-ai/dsh-client-ui-conversation": "0.1.6-alpha.1",
|
|
229
|
+
"@deepseek-ai/dsh-client-ui-input-trigger": "0.1.6-alpha.1",
|
|
230
|
+
"@deepseek-ai/dsh-client-ui-layout": "0.1.6-alpha.1",
|
|
231
|
+
"@deepseek-ai/dsh-commands": "0.1.6-alpha.1",
|
|
232
|
+
"@deepseek-ai/dsh-fs": "0.1.6-alpha.1",
|
|
233
|
+
"@deepseek-ai/dsh-invariants": "0.1.6-alpha.1",
|
|
234
|
+
"@deepseek-ai/dsh-jobs": "0.1.6-alpha.1",
|
|
235
|
+
"@deepseek-ai/dsh-llm": "0.1.6-alpha.1",
|
|
236
|
+
"@deepseek-ai/dsh-output-retention": "0.1.6-alpha.1",
|
|
237
|
+
"@deepseek-ai/dsh-sandbox": "0.1.6-alpha.1",
|
|
238
|
+
"@deepseek-ai/dsh-session": "0.1.6-alpha.1",
|
|
239
|
+
"@deepseek-ai/dsh-session-persistence": "0.1.6-alpha.1",
|
|
240
|
+
"@deepseek-ai/dsh-settings": "0.1.6-alpha.1",
|
|
241
|
+
"@deepseek-ai/dsh-skill": "0.1.6-alpha.1",
|
|
242
|
+
"@deepseek-ai/dsh-spill": "0.1.6-alpha.1",
|
|
243
|
+
"@deepseek-ai/dsh-spill-local": "0.1.6-alpha.1",
|
|
244
|
+
"@deepseek-ai/dsh-spill-policy": "0.1.6-alpha.1",
|
|
245
|
+
"@deepseek-ai/dsh-subagent": "0.1.6-alpha.1",
|
|
246
|
+
"@deepseek-ai/dsh-tools": "0.1.6-alpha.1",
|
|
247
|
+
"@deepseek-ai/dsh-typert-generator": "0.1.6-alpha.1",
|
|
248
|
+
"@deepseek-ai/dsh-typert-protocol": "0.1.6-alpha.1",
|
|
249
|
+
"@deepseek-ai/dsh-user-questions": "0.1.6-alpha.1",
|
|
250
|
+
"@deepseek-ai/dsh-util-values": "0.1.6-alpha.1",
|
|
251
|
+
"@deepseek-ai/dsh-workflow": "0.1.6-alpha.1",
|
|
252
|
+
"@deepseek-ai/dsh-workflow-ptc": "0.1.6-alpha.1",
|
|
253
|
+
"@types/node": "^22.19.0",
|
|
254
|
+
"@types/react": "^19.0.0",
|
|
255
|
+
"@types/react-dom": "^19.0.0",
|
|
256
|
+
"@vitest/coverage-v8": "3.2.7",
|
|
257
|
+
"jsdom": "^30.0.1",
|
|
258
|
+
"lightningcss": "1.33.0",
|
|
259
|
+
"react": "^19.0.0",
|
|
260
|
+
"react-dom": "^19.0.0",
|
|
261
|
+
"tsdown": "0.22.14",
|
|
262
|
+
"tsx": "^4.19.0",
|
|
263
|
+
"typescript": "^5.8.0",
|
|
264
|
+
"vitest": "^3.2.0",
|
|
265
|
+
"yaml": "2.8.1"
|
|
266
|
+
},
|
|
267
|
+
"dsh": {
|
|
268
|
+
"compatibility": {
|
|
269
|
+
"host": "@deepseek-ai/dsh",
|
|
270
|
+
"versions": [
|
|
271
|
+
"0.1.6-alpha.1"
|
|
272
|
+
],
|
|
273
|
+
"evaluator": "plugin-compat-engine-v1"
|
|
274
|
+
},
|
|
275
|
+
"bundle": {
|
|
276
|
+
"patch": "./cordis.patch.yml"
|
|
277
|
+
},
|
|
278
|
+
"client": {
|
|
279
|
+
"inject": [
|
|
280
|
+
"@deepseek-ai/dsh-api-remotes",
|
|
281
|
+
"@deepseek-ai/dsh-client-ui-chat",
|
|
282
|
+
"@deepseek-ai/dsh-client-locale",
|
|
283
|
+
"@deepseek-ai/dsh-client-ui-commands",
|
|
284
|
+
"@deepseek-ai/dsh-client-ui-conversation",
|
|
285
|
+
"@deepseek-ai/dsh-client-ui-input-trigger",
|
|
286
|
+
"@deepseek-ai/dsh-client-ui-layout"
|
|
287
|
+
],
|
|
288
|
+
"platform": "web"
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: create-workflow
|
|
3
|
+
description: Author, smoke-check, and save a new saved workflow (invoke via /create-workflow).
|
|
4
|
+
user-invocable: true
|
|
5
|
+
model-invocable: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# create-workflow
|
|
9
|
+
|
|
10
|
+
Author a saved workflow: a deterministic JavaScript orchestration script that fans out subagents. The script — not the model turn — holds the loop, the fan-out, the branching, and the intermediate results; child agents do the judgment, the script shards work and verifies. Do not write Rhai.
|
|
11
|
+
|
|
12
|
+
**This turn fails unless `.dsh/workflows/<name>.workflow.json` exists.** Chat, repo walks, interviews, and live child launches are not a saved workflow.
|
|
13
|
+
|
|
14
|
+
## Fast path (default)
|
|
15
|
+
|
|
16
|
+
If `/create-workflow` already states a usable objective (what to do, and optionally how many agents / what fans out), skip the interview. Do not call `ask_user_question`. Do not explore the workspace first — child agents inspect the code at run time.
|
|
17
|
+
|
|
18
|
+
In this same turn after the skill is loaded:
|
|
19
|
+
|
|
20
|
+
1. Infer a kebab `meta.name`, project save scope (`.dsh/workflows/`) unless the user asks for a global/user workflow, and a simple fan-out. If they named an agent count, stay at or under it (default 8). Add adversarial verification only when it still fits that budget; otherwise skip it and say so.
|
|
21
|
+
2. Author the `{ meta, script }` envelope as **plain JavaScript** (commas in object/array literals, never semicolons — `{ a: 1, b: 2 }` not `{ a: 1; b: 2 }`). `Unexpected token ';'` means you put `;` inside `{ ... }`. Prefer `complete(value)`. When output cardinality matters, declare it with the supported inclusive `minItems`/`maxItems` array bounds instead of relying only on prompt wording or clipping.
|
|
22
|
+
3. Call the workflow tool with inline `script` + `meta`. Inline script **defaults to `validate_only`** (canned stubs, no live children) and **SAVES** after a passing smoke. Omit `save_scope` for project scope, or pass `save_scope: "user"` for `<dshHome>/workflows/`; user scope works even when the Session has no cwd. Do not pass `validate_only: false`. Do not launch `/workflow <name>` yet.
|
|
23
|
+
4. If smoke fails with a parse error, fix commas and retry once. A successful inline authoring result always includes `saved_path`. If validation or saving fails (including a missing project cwd), report the error and fix or retry it; do not claim success or write a second, unvalidated copy manually. Use `save_scope: "user"` when a cwd-independent save is intended.
|
|
24
|
+
5. Report the path, smoke limits, and `/workflow <name>`. Offer a live launch; do not start children until the user agrees.
|
|
25
|
+
|
|
26
|
+
Copy this call shape (plain JS, commas, no `validate_only: false`):
|
|
27
|
+
|
|
28
|
+
```js
|
|
29
|
+
workflow({
|
|
30
|
+
meta: { name: "review-changes", description: "Review a diff and verify findings" },
|
|
31
|
+
script: "phase(\"Review\");\ncomplete({ ok: true });",
|
|
32
|
+
save_scope: "project",
|
|
33
|
+
})
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Ask in ordinary chat (not a picker) only when the objective is empty or contradictory. One short question max.
|
|
37
|
+
|
|
38
|
+
## Required seven-stage procedure
|
|
39
|
+
|
|
40
|
+
Use this only when the fast path cannot run because the objective is missing. Do not interview a user who already gave a brief.
|
|
41
|
+
|
|
42
|
+
1. **Gather intent.** If the user already stated the objective, fan-out, and agent budget, skip this stage. Otherwise ask in chat for the missing piece only.
|
|
43
|
+
2. **Design fan-out.** Identify independent agents, concurrency, labels, phase grouping, and maximum fan-out.
|
|
44
|
+
3. **Design verification.** Add an adversarial or independent verification stage when the budget allows; missing, failed, or unusable verification is not a confirming vote. Require concrete evidence.
|
|
45
|
+
4. **Choose the artifact and tolerance.** Decide whether results live inline or in scratch files and how `null` child failures affect the result. Optional advice may fail open; a proof gate fails closed.
|
|
46
|
+
5. **Choose identity and scope.** Pick a lowercase kebab name (at most 64 UTF-16 code units, `^[a-z](?:[a-z0-9]*)(?:-[a-z0-9]+)*$`) and project (`.dsh/workflows/`, default, shareable) or user (`<dshHome>/workflows/`) save scope. Do not use `pause`, `resume`, `save`, `stop`, `workflow`, `workflows`, `create-workflow`, or a Windows device basename. When a name collides with another slash command, the existing command keeps `/<name>` and the saved workflow is advertised as `/workflow-<name>`; the host repeats the `workflow-` prefix if that name is also occupied. Canonical `/workflow <name>` always works.
|
|
47
|
+
6. **Author and validate.** Write the strict envelope, then run inline `validate_only` with representative args and the chosen `save_scope` (`project` or `user`). Validation parses the entire script, then executes one args-selected canned path; it does not exercise all branches, live tools, or every possible agent output. A gate ends the smoke as `would pause: <message>`.
|
|
48
|
+
7. **Publish and report.** Save only after validation succeeds. Report the file path, smoke result and its limits, launch syntax (`/<name>` or `/workflow <name> ...`), and maximum fan-out. Offer, but do not force, a real background launch watched in `/workflows`. If they decline, say only the path-specific smoke check ran.
|
|
49
|
+
|
|
50
|
+
## File format
|
|
51
|
+
|
|
52
|
+
A flat `<name>.workflow.json` file contains exactly `meta` and `script`. Metadata contains only `name`, `description`, optional `whenToUse`, and optional `phases`; a phase contains only `title`, optional `detail`, `provider`, and `model`. Metadata is JSON data beside the script and is never evaluated. Filename must equal `<meta.name>.workflow.json`. Unknown envelope, meta, or phase fields fail the whole observation.
|
|
53
|
+
|
|
54
|
+
```json
|
|
55
|
+
{
|
|
56
|
+
"meta": {
|
|
57
|
+
"name": "review-changes",
|
|
58
|
+
"description": "Review a diff across dimensions, adversarially verify each finding",
|
|
59
|
+
"whenToUse": "After a large diff, before merge",
|
|
60
|
+
"phases": [
|
|
61
|
+
{ "title": "Review", "detail": "one reviewer per dimension" },
|
|
62
|
+
{ "title": "Verify", "detail": "one skeptic per finding" }
|
|
63
|
+
]
|
|
64
|
+
},
|
|
65
|
+
"script": "// plain JS body, top-level await, complete(value) or return value"
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## JavaScript hooks
|
|
70
|
+
|
|
71
|
+
- `agent(prompt, { label?, phase?, schema?, provider?, model? })` returns final text or a schema-validated JSON object; an ordinary child failure returns `null`.
|
|
72
|
+
- `parallel(thunksOrJobs)` is a barrier and preserves slot order. Items are zero-arg functions or job maps `{ prompt, label?, phase?, schema?, provider?, model? }`. Declarative job panels preflight the unreplayed panel atomically; arbitrary thunks use per-call admission. Failed slots resolve `null`.
|
|
73
|
+
- `pipeline(items, ...stages)` advances items independently and preserves input order.
|
|
74
|
+
- `phase(title)` and `log(message)` publish bounded progress.
|
|
75
|
+
- `complete(jsonValue)` settles the first valid JSON result and stops later hooks. Prefer `complete()` over falling through. Stock workers have no native `complete`; this package injects one. `return jsonValue` also settles the run.
|
|
76
|
+
- `await await_user(kind, message)` commits an acknowledged gate; `await pause(kind, message)` repeats after resume while its condition is unchanged. Both hooks are asynchronous and must be awaited.
|
|
77
|
+
- `budget()` returns `{ total, spent, reserved: 0, remaining }`.
|
|
78
|
+
- `write_scratch_file(name, content)` and `read_scratch_file(name)` use one safe filename.
|
|
79
|
+
|
|
80
|
+
Supported schemas use `type`, `properties`, `required`, `additionalProperties`, `items`, `minItems`, `maxItems`, `enum`, `const`, and `oneOf`. `minItems` and `maxItems` are inclusive array-length bounds. Each must be a non-negative safe integer (not `-0`), may appear only on a `type: "array"` node, must satisfy `minItems <= maxItems`, and is forbidden beside `oneOf`. The package validates the authored schema before any child starts, removes only these two keywords from the provider-facing copy for stock RC2, and post-validates the returned structured value against the authored bounds.
|
|
81
|
+
|
|
82
|
+
Replay uses immutable script, args, and a committed checkpoint. Replayed and schema-correction calls spend zero, but an external effect whose result was not committed can repeat. Keep prompts and external operations idempotent. Replay-capable scripts cannot use `Date`, `Math.random`, `Atomics`, `SharedArrayBuffer`, `WeakRef`, or `FinalizationRegistry`. There is no nested workflow hook.
|
|
83
|
+
|
|
84
|
+
Default scratch quotas are 4,096 operations, 64 pending operations, 64 files, 1 MiB per file, and 8 MiB total. Default agent budget is 128 and the hard maximum is 1,024.
|
|
85
|
+
|
|
86
|
+
## Good patterns
|
|
87
|
+
|
|
88
|
+
- Build the fan-out work-list the simplest deterministic way (a fixed list, `args`, a file walk). Spend agents on judgment, not on deciding scope.
|
|
89
|
+
- If an agent discovers the work-list, treat it as untrusted: re-filter it in plain JavaScript against the invariant (for example, keep only paths under `args.root`) before sharding.
|
|
90
|
+
- Plan → parallel fan-out → synthesize.
|
|
91
|
+
- Adversarial verification: independent skeptics prompted to refute each finding. Missing, failed, or unusable verification is not a confirming vote; require concrete evidence.
|
|
92
|
+
- Loop until dry: spawn finders until two consecutive rounds surface nothing new; fingerprint each round to detect stalls.
|
|
93
|
+
- Vote panels: N skeptics per item in one flat `parallel()`, regroup by index arithmetic.
|
|
94
|
+
- Failure policy by purpose: optional advice may fail open; a proof gate fails closed.
|
|
95
|
+
|
|
96
|
+
## Pitfalls that actually happen
|
|
97
|
+
|
|
98
|
+
- Terse prompts return empty structured objects without using tools. Command tool use; say what a valid empty answer requires.
|
|
99
|
+
- Guard every agent output against the schema value itself: for example, `r != null && Array.isArray(r.findings)`. A schema-backed `agent()` returns that structured object directly; failed `parallel()` slots are `null`.
|
|
100
|
+
- Meta is pure data — no computed meta.
|
|
101
|
+
- Keep `meta.phases` titles in sync with `phase()` calls.
|
|
102
|
+
- `pause()` in a result-derived branch re-fires forever; use `await_user` for resumable human gates.
|
|
103
|
+
- Silent truncation is not coverage; `log()` whatever a `MAX_*` cap dropped.
|
|
104
|
+
- Agents do not enforce invariants — the script does. Filter and assert in JavaScript.
|
|
105
|
+
- A complete `/create-workflow` brief is enough — do not stall on `ask_user_question` or a repo walk.
|
|
106
|
+
- Do not pass `validate_only: false` while authoring. That launches live children and the parent tool call can sit for tens of minutes. Inline script already defaults to smoke + save.
|
|
107
|
+
- When an array count is an invariant, use valid `minItems`/`maxItems`; prompt wording may guide generation but is not enforcement.
|
|
108
|
+
- Do not put `meta` in JavaScript, use TypeScript/export syntax, add unsupported agent options such as `fork_context`, mix thunk and declarative parallel forms in one call, assume `null` is success, omit verification, hide truncation, use nondeterministic globals, use nested workflows, or claim validate-only exhaustively proves the workflow.
|
|
109
|
+
|
|
110
|
+
## Example (review-changes)
|
|
111
|
+
|
|
112
|
+
Meta is JSON data beside this body in the `{ "meta", "script" }` envelope:
|
|
113
|
+
|
|
114
|
+
```json
|
|
115
|
+
{
|
|
116
|
+
"name": "review-changes",
|
|
117
|
+
"description": "Review a diff across dimensions, adversarially verify each finding",
|
|
118
|
+
"whenToUse": "After a large diff, before merge",
|
|
119
|
+
"phases": [
|
|
120
|
+
{ "title": "Review", "detail": "one reviewer per dimension" },
|
|
121
|
+
{ "title": "Verify", "detail": "one skeptic per finding" }
|
|
122
|
+
]
|
|
123
|
+
}
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
```js
|
|
127
|
+
const findingsSchema = { type: "object", required: ["findings"],
|
|
128
|
+
properties: { findings: { type: "array", maxItems: 8,
|
|
129
|
+
items: { type: "object", required: ["file", "issue"],
|
|
130
|
+
properties: { file: { type: "string" }, issue: { type: "string" } } } } } };
|
|
131
|
+
const verdictSchema = { type: "object", required: ["real", "reason", "evidence"],
|
|
132
|
+
properties: { real: { type: "boolean" }, reason: { type: "string" },
|
|
133
|
+
evidence: { type: "string" } } };
|
|
134
|
+
|
|
135
|
+
const target = args && args.target;
|
|
136
|
+
if (target == null) await pause("verification", "Pass args.target — the diff, branch, or path to review.");
|
|
137
|
+
|
|
138
|
+
phase("Review");
|
|
139
|
+
const dimensions = ["correctness bugs", "error handling gaps", "performance problems"];
|
|
140
|
+
const results = await parallel(dimensions.map((d) => async () => await agent(
|
|
141
|
+
"Review " + target + " for " + d + ". Use read-only tools to inspect the actual code — " +
|
|
142
|
+
"do not answer from memory. Report at most 8 concrete findings as {file, issue}; " +
|
|
143
|
+
"an empty list is valid only after you have read the code.",
|
|
144
|
+
{ label: "review:" + d, schema: findingsSchema })));
|
|
145
|
+
|
|
146
|
+
const findings = [];
|
|
147
|
+
for (const r of results) {
|
|
148
|
+
if (r != null && Array.isArray(r.findings)) for (const f of r.findings) findings.push(f);
|
|
149
|
+
}
|
|
150
|
+
if (findings.length === 0) complete({ summary: "No findings.", confirmed: [] });
|
|
151
|
+
|
|
152
|
+
phase("Verify");
|
|
153
|
+
const verdicts = await parallel(findings.map((f) => async () => await agent(
|
|
154
|
+
"Adversarially verify this review finding by reading the shipped code: \"" +
|
|
155
|
+
f.issue + "\" in " + f.file + ". Set real=true only with concrete evidence you " +
|
|
156
|
+
"independently inspected. Otherwise default real=false.",
|
|
157
|
+
{ label: "verify:" + f.file, schema: verdictSchema })));
|
|
158
|
+
|
|
159
|
+
const confirmed = [];
|
|
160
|
+
for (let i = 0; i < verdicts.length; i++) {
|
|
161
|
+
const v = verdicts[i];
|
|
162
|
+
if (v != null && v.real === true && v.evidence) confirmed.push(findings[i]);
|
|
163
|
+
}
|
|
164
|
+
log(String(confirmed.length) + "/" + String(findings.length) + " findings survived verification");
|
|
165
|
+
complete({ summary: String(confirmed.length) + " confirmed findings", confirmed });
|
|
166
|
+
```
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 DeepSeek
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Vendored from DeepSeek Harness workflow-worker-thread (MIT), enhanced workflow implementation commit 391c829343. Adapted for @zaalipro/dsh-workflows stock-host compatibility.
|