dsh-plugin-teamflow 0.1.9 → 0.2.0
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/CHANGELOG.md +252 -185
- package/README.en.md +57 -62
- package/README.md +50 -76
- package/lib/client.js +207 -38
- package/lib/descriptors.mjs +5 -1
- package/lib/host.mjs +2277 -241
- package/lib/store.mjs +22 -0
- package/package.json +134 -134
package/lib/store.mjs
CHANGED
|
@@ -106,6 +106,7 @@ function serializeJournal(journal) {
|
|
|
106
106
|
status: journal.status,
|
|
107
107
|
requirement: journal.requirement,
|
|
108
108
|
options: journal.options,
|
|
109
|
+
engine: journal.engine || null,
|
|
109
110
|
workspace: journal.workspace || null,
|
|
110
111
|
workspacePath: journal.workspacePath || null,
|
|
111
112
|
ownerSession: journal.ownerSession || null,
|
|
@@ -115,6 +116,8 @@ function serializeJournal(journal) {
|
|
|
115
116
|
blueprint: journal.blueprint || null,
|
|
116
117
|
reqId: journal.reqId || null,
|
|
117
118
|
runDocs: journal.runDocs || null,
|
|
119
|
+
branch: journal.branch || null,
|
|
120
|
+
mergeStatus: journal.mergeStatus || null,
|
|
118
121
|
taskId: journal.taskId || null,
|
|
119
122
|
taskMap: journal.taskMap || {},
|
|
120
123
|
agentsStarted: journal.agentsStarted || 0,
|
|
@@ -123,6 +126,19 @@ function serializeJournal(journal) {
|
|
|
123
126
|
* 「结论被强制为需人工裁定、不要据此合回」的显式提示(持久化:重启/resume 后仍可判)。 */
|
|
124
127
|
knownIssuesAcceptance: journal.knownIssuesAcceptance === true,
|
|
125
128
|
cancelled: journal.cancelled === true,
|
|
129
|
+
/** 取消来源(ui=界面按钮/人工,tool=模型工具,unknown=历史 run):主线程据此判断「谁停的」。 */
|
|
130
|
+
cancelSource: journal.cancelSource || null,
|
|
131
|
+
cancelRequestedAt: journal.cancelRequestedAt || null,
|
|
132
|
+
/** 需求澄清闸门(2026-09-16 Phase 1):分诊裁决(intent/blockers)+ PRD 假设段 + 澄清答复。
|
|
133
|
+
* 裁决是 shadow 埋点(Phase 2 定闸门强度的数据源);假设段是「agent 替你决定了什么」的可见化。 */
|
|
134
|
+
triage: journal.triage || null,
|
|
135
|
+
assumptions: journal.assumptions || null,
|
|
136
|
+
hostResearch: journal.hostResearch === true,
|
|
137
|
+
hostContract: journal.hostContract || null,
|
|
138
|
+
installEnv: journal.installEnv || null,
|
|
139
|
+
requirementSupplement: journal.requirementSupplement || null,
|
|
140
|
+
/** 外部供应商故障标记(限流/无额度/上游故障/超时):run 落可续跑中断态时置位,汇报据此讲清「非交付缺陷」。 */
|
|
141
|
+
externalFailure: journal.externalFailure === true,
|
|
126
142
|
interrupted: journal.interrupted === true,
|
|
127
143
|
interruptedAt: journal.interruptedAt || null,
|
|
128
144
|
supersededBy: journal.supersededBy || null,
|
|
@@ -134,6 +150,9 @@ function serializeJournal(journal) {
|
|
|
134
150
|
label: s.label,
|
|
135
151
|
phase: s.phase,
|
|
136
152
|
taskKey: s.taskKey || null,
|
|
153
|
+
taskIds: Array.isArray(s.taskIds) && s.taskIds.length ? s.taskIds : null,
|
|
154
|
+
provider: s.provider || null,
|
|
155
|
+
model: s.model || null,
|
|
137
156
|
status: s.status,
|
|
138
157
|
outcome: s.outcome || null,
|
|
139
158
|
childId: s.childId || null,
|
|
@@ -142,6 +161,9 @@ function serializeJournal(journal) {
|
|
|
142
161
|
usage: s.usage || null,
|
|
143
162
|
handoff: clip(s.handoff || "", 2e3),
|
|
144
163
|
summary: clip(s.summary || "", 3e3),
|
|
164
|
+
guardReason: s.guardReason || null,
|
|
165
|
+
guardOutcome: s.guardOutcome || null,
|
|
166
|
+
envUnavailable: s.envUnavailable || null,
|
|
145
167
|
output: clip(s.output || s.summary || "", STAGE_OUTPUT_CLIP),
|
|
146
168
|
verifyEvidence: s.verifyEvidence ? clip(s.verifyEvidence, 8e3) : null
|
|
147
169
|
})),
|
package/package.json
CHANGED
|
@@ -1,134 +1,134 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "dsh-plugin-teamflow",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "TeamFlow 团队研发流水线(TypeScript):需求→PRD→设计→架构→技术方案→并行开发→QA→验收;backlog 持久化 + 断点续跑 + 完成汇报 + 防假交付;Web 团队工作台(conversation.view tab + 拖拽看板)",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"main": "./lib/host.mjs",
|
|
7
|
-
"exports": {
|
|
8
|
-
".": "./lib/host.mjs",
|
|
9
|
-
"./host": "./lib/host.mjs",
|
|
10
|
-
"./client": "./lib/client.js",
|
|
11
|
-
"./store": "./lib/store.mjs",
|
|
12
|
-
"./descriptors": "./lib/descriptors.mjs",
|
|
13
|
-
"./package.json": "./package.json"
|
|
14
|
-
},
|
|
15
|
-
"engines": {
|
|
16
|
-
"node": ">=22.18",
|
|
17
|
-
"dsh": ">=0.1.
|
|
18
|
-
},
|
|
19
|
-
"dsh": {
|
|
20
|
-
"manifestVersion": 1,
|
|
21
|
-
"bundle": {
|
|
22
|
-
"patch": "./cordis.patch.yml"
|
|
23
|
-
},
|
|
24
|
-
"client": {
|
|
25
|
-
"platform": "web",
|
|
26
|
-
"inject": [
|
|
27
|
-
"@deepseek-ai/dsh-client-locale",
|
|
28
|
-
"@deepseek-ai/dsh-client-modules",
|
|
29
|
-
"@deepseek-ai/dsh-client-ui-conversation",
|
|
30
|
-
"@deepseek-ai/dsh-client-ui-layout",
|
|
31
|
-
"@deepseek-ai/dsh-client-ui-sidebar",
|
|
32
|
-
"@deepseek-ai/dsh-client-ui-sidebar-right"
|
|
33
|
-
],
|
|
34
|
-
"immediately": false
|
|
35
|
-
}
|
|
36
|
-
},
|
|
37
|
-
"scripts": {
|
|
38
|
-
"bundle": "tsdown && tsdown -c tsdown.host.config.ts",
|
|
39
|
-
"bundle:host": "tsdown -c tsdown.host.config.ts",
|
|
40
|
-
"bundle:client": "tsdown",
|
|
41
|
-
"watch": "tsdown --watch",
|
|
42
|
-
"deploy": "node deploy.mjs",
|
|
43
|
-
"typecheck": "tsc --noEmit",
|
|
44
|
-
"test": "node test/smoke.js && node test/locale.test.js && node test/verdict.test.js && node test/stages.test.js && node test/journal.test.js && node test/runlogs.test.js && node test/diagnostic.test.js && node test/evidence.test.js && node test/metering.test.js && node test/gitignore.test.js && node test/commit-path.test.js && node test/product-scope.test.js && node test/prompt-contract.test.js && node test/conformance.test.js",
|
|
45
|
-
"prepublishOnly": "npx tsdown && npx tsdown -c tsdown.host.config.ts && node test/smoke.js && node test/locale.test.js && node test/verdict.test.js && node test/stages.test.js && node test/journal.test.js && node test/runlogs.test.js && node test/diagnostic.test.js && node test/evidence.test.js && node test/metering.test.js && node test/gitignore.test.js && node test/commit-path.test.js && node test/product-scope.test.js && node test/prompt-contract.test.js && node test/conformance.test.js"
|
|
46
|
-
},
|
|
47
|
-
"files": [
|
|
48
|
-
"lib",
|
|
49
|
-
"cordis.patch.yml",
|
|
50
|
-
"README.md",
|
|
51
|
-
"README.en.md",
|
|
52
|
-
"CHANGELOG.md"
|
|
53
|
-
],
|
|
54
|
-
"keywords": [
|
|
55
|
-
"dsh",
|
|
56
|
-
"deepseek-harness",
|
|
57
|
-
"plugin",
|
|
58
|
-
"teamflow",
|
|
59
|
-
"multi-agent",
|
|
60
|
-
"pipeline",
|
|
61
|
-
"agent-team",
|
|
62
|
-
"llm-agent",
|
|
63
|
-
"kanban",
|
|
64
|
-
"coding-agent"
|
|
65
|
-
],
|
|
66
|
-
"dependencies": {},
|
|
67
|
-
"devDependencies": {
|
|
68
|
-
"@types/node": "^26.2.0",
|
|
69
|
-
"@types/react": "^18.3.31",
|
|
70
|
-
"tsdown": "^0.22.2",
|
|
71
|
-
"typescript": "^6.0.3"
|
|
72
|
-
},
|
|
73
|
-
"peerDependencies": {
|
|
74
|
-
"react": "^18.2.0",
|
|
75
|
-
"@deepseek-ai/dsh-base": "*",
|
|
76
|
-
"@deepseek-ai/dsh-client-locale": "*",
|
|
77
|
-
"@deepseek-ai/dsh-client-modules": "*",
|
|
78
|
-
"@deepseek-ai/dsh-client-ui-conversation": "*",
|
|
79
|
-
"@deepseek-ai/dsh-client-ui-layout": "*",
|
|
80
|
-
"@deepseek-ai/dsh-client-ui-sidebar": "*",
|
|
81
|
-
"@deepseek-ai/dsh-client-ui-sidebar-right": "*",
|
|
82
|
-
"@deepseek-ai/dsh-llm": "*",
|
|
83
|
-
"@deepseek-ai/dsh-tools": "*",
|
|
84
|
-
"@deepseek-ai/dsh-typert-protocol": "*",
|
|
85
|
-
"@deepseek-ai/dsh-util-workspace-path": "*"
|
|
86
|
-
},
|
|
87
|
-
"peerDependenciesMeta": {
|
|
88
|
-
"@deepseek-ai/dsh-base": {
|
|
89
|
-
"optional": true
|
|
90
|
-
},
|
|
91
|
-
"@deepseek-ai/dsh-client-locale": {
|
|
92
|
-
"optional": true
|
|
93
|
-
},
|
|
94
|
-
"@deepseek-ai/dsh-client-modules": {
|
|
95
|
-
"optional": true
|
|
96
|
-
},
|
|
97
|
-
"@deepseek-ai/dsh-client-ui-conversation": {
|
|
98
|
-
"optional": true
|
|
99
|
-
},
|
|
100
|
-
"@deepseek-ai/dsh-client-ui-layout": {
|
|
101
|
-
"optional": true
|
|
102
|
-
},
|
|
103
|
-
"@deepseek-ai/dsh-client-ui-sidebar": {
|
|
104
|
-
"optional": true
|
|
105
|
-
},
|
|
106
|
-
"@deepseek-ai/dsh-client-ui-sidebar-right": {
|
|
107
|
-
"optional": true
|
|
108
|
-
},
|
|
109
|
-
"@deepseek-ai/dsh-llm": {
|
|
110
|
-
"optional": true
|
|
111
|
-
},
|
|
112
|
-
"@deepseek-ai/dsh-tools": {
|
|
113
|
-
"optional": true
|
|
114
|
-
},
|
|
115
|
-
"@deepseek-ai/dsh-typert-protocol": {
|
|
116
|
-
"optional": true
|
|
117
|
-
},
|
|
118
|
-
"@deepseek-ai/dsh-util-workspace-path": {
|
|
119
|
-
"optional": true
|
|
120
|
-
},
|
|
121
|
-
"react": {
|
|
122
|
-
"optional": true
|
|
123
|
-
}
|
|
124
|
-
},
|
|
125
|
-
"license": "MIT",
|
|
126
|
-
"repository": {
|
|
127
|
-
"type": "git",
|
|
128
|
-
"url": "https://github.com/MichaelShii/dsh-plugin-teamflow.git"
|
|
129
|
-
},
|
|
130
|
-
"homepage": "https://github.com/MichaelShii/dsh-plugin-teamflow",
|
|
131
|
-
"bugs": {
|
|
132
|
-
"url": "https://github.com/MichaelShii/dsh-plugin-teamflow/issues"
|
|
133
|
-
}
|
|
134
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "dsh-plugin-teamflow",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "TeamFlow 团队研发流水线(TypeScript):需求→PRD→设计→架构→技术方案→并行开发→QA→验收;backlog 持久化 + 断点续跑 + 完成汇报 + 防假交付;Web 团队工作台(conversation.view tab + 拖拽看板)",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./lib/host.mjs",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": "./lib/host.mjs",
|
|
9
|
+
"./host": "./lib/host.mjs",
|
|
10
|
+
"./client": "./lib/client.js",
|
|
11
|
+
"./store": "./lib/store.mjs",
|
|
12
|
+
"./descriptors": "./lib/descriptors.mjs",
|
|
13
|
+
"./package.json": "./package.json"
|
|
14
|
+
},
|
|
15
|
+
"engines": {
|
|
16
|
+
"node": ">=22.18",
|
|
17
|
+
"dsh": ">=0.1.7-alpha.1 <0.2.0"
|
|
18
|
+
},
|
|
19
|
+
"dsh": {
|
|
20
|
+
"manifestVersion": 1,
|
|
21
|
+
"bundle": {
|
|
22
|
+
"patch": "./cordis.patch.yml"
|
|
23
|
+
},
|
|
24
|
+
"client": {
|
|
25
|
+
"platform": "web",
|
|
26
|
+
"inject": [
|
|
27
|
+
"@deepseek-ai/dsh-client-locale",
|
|
28
|
+
"@deepseek-ai/dsh-client-modules",
|
|
29
|
+
"@deepseek-ai/dsh-client-ui-conversation",
|
|
30
|
+
"@deepseek-ai/dsh-client-ui-layout",
|
|
31
|
+
"@deepseek-ai/dsh-client-ui-sidebar",
|
|
32
|
+
"@deepseek-ai/dsh-client-ui-sidebar-right"
|
|
33
|
+
],
|
|
34
|
+
"immediately": false
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"scripts": {
|
|
38
|
+
"bundle": "tsdown && tsdown -c tsdown.host.config.ts",
|
|
39
|
+
"bundle:host": "tsdown -c tsdown.host.config.ts",
|
|
40
|
+
"bundle:client": "tsdown",
|
|
41
|
+
"watch": "tsdown --watch",
|
|
42
|
+
"deploy": "node deploy.mjs",
|
|
43
|
+
"typecheck": "tsc --noEmit",
|
|
44
|
+
"test": "node test/smoke.js && node test/locale.test.js && node test/verdict.test.js && node test/stages.test.js && node test/journal.test.js && node test/runlogs.test.js && node test/cancel.test.js && node test/diagnostic.test.js && node test/evidence.test.js && node test/metering.test.js && node test/gitignore.test.js && node test/commit-path.test.js && node test/product-scope.test.js && node test/state.test.js && node test/dev-task-id.test.js && node test/triage-gate.test.js && node test/instruction-budget.test.js && node test/prompt-contract.test.js && node test/conformance.test.js && node test/changelog.test.js && node test/client-host-api.test.js",
|
|
45
|
+
"prepublishOnly": "npx tsdown && npx tsdown -c tsdown.host.config.ts && node test/smoke.js && node test/locale.test.js && node test/verdict.test.js && node test/stages.test.js && node test/journal.test.js && node test/runlogs.test.js && node test/cancel.test.js && node test/diagnostic.test.js && node test/evidence.test.js && node test/metering.test.js && node test/gitignore.test.js && node test/commit-path.test.js && node test/product-scope.test.js && node test/state.test.js && node test/dev-task-id.test.js && node test/triage-gate.test.js && node test/instruction-budget.test.js && node test/prompt-contract.test.js && node test/conformance.test.js && node test/changelog.test.js && node test/client-host-api.test.js"
|
|
46
|
+
},
|
|
47
|
+
"files": [
|
|
48
|
+
"lib",
|
|
49
|
+
"cordis.patch.yml",
|
|
50
|
+
"README.md",
|
|
51
|
+
"README.en.md",
|
|
52
|
+
"CHANGELOG.md"
|
|
53
|
+
],
|
|
54
|
+
"keywords": [
|
|
55
|
+
"dsh",
|
|
56
|
+
"deepseek-harness",
|
|
57
|
+
"plugin",
|
|
58
|
+
"teamflow",
|
|
59
|
+
"multi-agent",
|
|
60
|
+
"pipeline",
|
|
61
|
+
"agent-team",
|
|
62
|
+
"llm-agent",
|
|
63
|
+
"kanban",
|
|
64
|
+
"coding-agent"
|
|
65
|
+
],
|
|
66
|
+
"dependencies": {},
|
|
67
|
+
"devDependencies": {
|
|
68
|
+
"@types/node": "^26.2.0",
|
|
69
|
+
"@types/react": "^18.3.31",
|
|
70
|
+
"tsdown": "^0.22.2",
|
|
71
|
+
"typescript": "^6.0.3"
|
|
72
|
+
},
|
|
73
|
+
"peerDependencies": {
|
|
74
|
+
"react": "^18.2.0",
|
|
75
|
+
"@deepseek-ai/dsh-base": "*",
|
|
76
|
+
"@deepseek-ai/dsh-client-locale": "*",
|
|
77
|
+
"@deepseek-ai/dsh-client-modules": "*",
|
|
78
|
+
"@deepseek-ai/dsh-client-ui-conversation": "*",
|
|
79
|
+
"@deepseek-ai/dsh-client-ui-layout": "*",
|
|
80
|
+
"@deepseek-ai/dsh-client-ui-sidebar": "*",
|
|
81
|
+
"@deepseek-ai/dsh-client-ui-sidebar-right": "*",
|
|
82
|
+
"@deepseek-ai/dsh-llm": "*",
|
|
83
|
+
"@deepseek-ai/dsh-tools": "*",
|
|
84
|
+
"@deepseek-ai/dsh-typert-protocol": "*",
|
|
85
|
+
"@deepseek-ai/dsh-util-workspace-path": "*"
|
|
86
|
+
},
|
|
87
|
+
"peerDependenciesMeta": {
|
|
88
|
+
"@deepseek-ai/dsh-base": {
|
|
89
|
+
"optional": true
|
|
90
|
+
},
|
|
91
|
+
"@deepseek-ai/dsh-client-locale": {
|
|
92
|
+
"optional": true
|
|
93
|
+
},
|
|
94
|
+
"@deepseek-ai/dsh-client-modules": {
|
|
95
|
+
"optional": true
|
|
96
|
+
},
|
|
97
|
+
"@deepseek-ai/dsh-client-ui-conversation": {
|
|
98
|
+
"optional": true
|
|
99
|
+
},
|
|
100
|
+
"@deepseek-ai/dsh-client-ui-layout": {
|
|
101
|
+
"optional": true
|
|
102
|
+
},
|
|
103
|
+
"@deepseek-ai/dsh-client-ui-sidebar": {
|
|
104
|
+
"optional": true
|
|
105
|
+
},
|
|
106
|
+
"@deepseek-ai/dsh-client-ui-sidebar-right": {
|
|
107
|
+
"optional": true
|
|
108
|
+
},
|
|
109
|
+
"@deepseek-ai/dsh-llm": {
|
|
110
|
+
"optional": true
|
|
111
|
+
},
|
|
112
|
+
"@deepseek-ai/dsh-tools": {
|
|
113
|
+
"optional": true
|
|
114
|
+
},
|
|
115
|
+
"@deepseek-ai/dsh-typert-protocol": {
|
|
116
|
+
"optional": true
|
|
117
|
+
},
|
|
118
|
+
"@deepseek-ai/dsh-util-workspace-path": {
|
|
119
|
+
"optional": true
|
|
120
|
+
},
|
|
121
|
+
"react": {
|
|
122
|
+
"optional": true
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
"license": "MIT",
|
|
126
|
+
"repository": {
|
|
127
|
+
"type": "git",
|
|
128
|
+
"url": "https://github.com/MichaelShii/dsh-plugin-teamflow.git"
|
|
129
|
+
},
|
|
130
|
+
"homepage": "https://github.com/MichaelShii/dsh-plugin-teamflow",
|
|
131
|
+
"bugs": {
|
|
132
|
+
"url": "https://github.com/MichaelShii/dsh-plugin-teamflow/issues"
|
|
133
|
+
}
|
|
134
|
+
}
|