@lemoncat7/dsh-partner 1.4.2 → 1.5.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.
Files changed (184) hide show
  1. package/README.md +38 -0
  2. package/docs/architecture.md +99 -0
  3. package/lib/agent-runtime.d.ts +31 -8
  4. package/lib/agent-runtime.d.ts.map +1 -1
  5. package/lib/agent-runtime.js +230 -48
  6. package/lib/agent-runtime.js.map +1 -1
  7. package/lib/api/features/workspace-api.d.ts +18 -0
  8. package/lib/api/features/workspace-api.d.ts.map +1 -0
  9. package/lib/api/features/workspace-api.js +188 -0
  10. package/lib/api/features/workspace-api.js.map +1 -0
  11. package/lib/api/http.d.ts +12 -0
  12. package/lib/api/http.d.ts.map +1 -0
  13. package/lib/api/http.js +53 -0
  14. package/lib/api/http.js.map +1 -0
  15. package/lib/api.d.ts +10 -0
  16. package/lib/api.d.ts.map +1 -1
  17. package/lib/api.js +48 -63
  18. package/lib/api.js.map +1 -1
  19. package/lib/channels/manager.d.ts +4 -1
  20. package/lib/channels/manager.d.ts.map +1 -1
  21. package/lib/channels/manager.js +20 -3
  22. package/lib/channels/manager.js.map +1 -1
  23. package/lib/client-api.d.ts +157 -1
  24. package/lib/client-api.d.ts.map +1 -1
  25. package/lib/client-api.js.map +1 -1
  26. package/lib/client-controller.d.ts +15 -0
  27. package/lib/client-controller.d.ts.map +1 -0
  28. package/lib/client-controller.js +69 -0
  29. package/lib/client-controller.js.map +1 -0
  30. package/lib/client.d.ts.map +1 -1
  31. package/lib/client.js +2702 -885
  32. package/lib/client.js.map +4 -4
  33. package/lib/collaboration/composition.d.ts +27 -0
  34. package/lib/collaboration/composition.d.ts.map +1 -0
  35. package/lib/collaboration/composition.js +345 -0
  36. package/lib/collaboration/composition.js.map +1 -0
  37. package/lib/collaboration/domain.d.ts +38 -0
  38. package/lib/collaboration/domain.d.ts.map +1 -0
  39. package/lib/collaboration/domain.js +3 -0
  40. package/lib/collaboration/domain.js.map +1 -0
  41. package/lib/collaboration/retry-policy.d.ts +4 -0
  42. package/lib/collaboration/retry-policy.d.ts.map +1 -0
  43. package/lib/collaboration/retry-policy.js +18 -0
  44. package/lib/collaboration/retry-policy.js.map +1 -0
  45. package/lib/collaboration/service.d.ts +76 -0
  46. package/lib/collaboration/service.d.ts.map +1 -0
  47. package/lib/collaboration/service.js +370 -0
  48. package/lib/collaboration/service.js.map +1 -0
  49. package/lib/companions/service.d.ts +13 -0
  50. package/lib/companions/service.d.ts.map +1 -0
  51. package/lib/companions/service.js +51 -0
  52. package/lib/companions/service.js.map +1 -0
  53. package/lib/concern-domain.d.ts +8 -1
  54. package/lib/concern-domain.d.ts.map +1 -1
  55. package/lib/concern-domain.js +25 -1
  56. package/lib/concern-domain.js.map +1 -1
  57. package/lib/concern-store.d.ts.map +1 -1
  58. package/lib/concern-store.js +2 -1
  59. package/lib/concern-store.js.map +1 -1
  60. package/lib/concern-tool.d.ts +6 -0
  61. package/lib/concern-tool.d.ts.map +1 -1
  62. package/lib/concern-tool.js +35 -9
  63. package/lib/concern-tool.js.map +1 -1
  64. package/lib/core/collections.d.ts +2 -0
  65. package/lib/core/collections.d.ts.map +1 -0
  66. package/lib/core/collections.js +6 -0
  67. package/lib/core/collections.js.map +1 -0
  68. package/lib/core/semaphore.d.ts +10 -0
  69. package/lib/core/semaphore.d.ts.map +1 -0
  70. package/lib/core/semaphore.js +32 -0
  71. package/lib/core/semaphore.js.map +1 -0
  72. package/lib/core/validation.d.ts +7 -0
  73. package/lib/core/validation.d.ts.map +1 -0
  74. package/lib/core/validation.js +40 -0
  75. package/lib/core/validation.js.map +1 -0
  76. package/lib/domain.d.ts +28 -2
  77. package/lib/domain.d.ts.map +1 -1
  78. package/lib/domain.js +3 -3
  79. package/lib/domain.js.map +1 -1
  80. package/lib/execution/agent-support.d.ts +12 -0
  81. package/lib/execution/agent-support.d.ts.map +1 -0
  82. package/lib/execution/agent-support.js +48 -0
  83. package/lib/execution/agent-support.js.map +1 -0
  84. package/lib/execution/domain.d.ts +17 -0
  85. package/lib/execution/domain.d.ts.map +1 -0
  86. package/lib/execution/domain.js +2 -0
  87. package/lib/execution/domain.js.map +1 -0
  88. package/lib/execution/service.d.ts +52 -0
  89. package/lib/execution/service.d.ts.map +1 -0
  90. package/lib/execution/service.js +175 -0
  91. package/lib/execution/service.js.map +1 -0
  92. package/lib/index.d.ts.map +1 -1
  93. package/lib/index.js +42 -3
  94. package/lib/index.js.map +1 -1
  95. package/lib/memory-reflection.js +2 -2
  96. package/lib/memory-reflection.js.map +1 -1
  97. package/lib/scheduler/domain.d.ts +25 -0
  98. package/lib/scheduler/domain.d.ts.map +1 -0
  99. package/lib/scheduler/domain.js +2 -0
  100. package/lib/scheduler/domain.js.map +1 -0
  101. package/lib/scheduler/service.d.ts +26 -0
  102. package/lib/scheduler/service.d.ts.map +1 -0
  103. package/lib/scheduler/service.js +177 -0
  104. package/lib/scheduler/service.js.map +1 -0
  105. package/lib/skills/builtin.d.ts +7 -0
  106. package/lib/skills/builtin.d.ts.map +1 -0
  107. package/lib/skills/builtin.js +16 -0
  108. package/lib/skills/builtin.js.map +1 -0
  109. package/lib/skills/domain.d.ts +52 -0
  110. package/lib/skills/domain.d.ts.map +1 -0
  111. package/lib/skills/domain.js +2 -0
  112. package/lib/skills/domain.js.map +1 -0
  113. package/lib/skills/loader.d.ts +18 -0
  114. package/lib/skills/loader.d.ts.map +1 -0
  115. package/lib/skills/loader.js +134 -0
  116. package/lib/skills/loader.js.map +1 -0
  117. package/lib/skills/markets/adapters.d.ts +8 -0
  118. package/lib/skills/markets/adapters.d.ts.map +1 -0
  119. package/lib/skills/markets/adapters.js +72 -0
  120. package/lib/skills/markets/adapters.js.map +1 -0
  121. package/lib/skills/markets/builtin.d.ts +10 -0
  122. package/lib/skills/markets/builtin.d.ts.map +1 -0
  123. package/lib/skills/markets/builtin.js +19 -0
  124. package/lib/skills/markets/builtin.js.map +1 -0
  125. package/lib/skills/network.d.ts +14 -0
  126. package/lib/skills/network.d.ts.map +1 -0
  127. package/lib/skills/network.js +174 -0
  128. package/lib/skills/network.js.map +1 -0
  129. package/lib/skills/repository.d.ts +17 -0
  130. package/lib/skills/repository.d.ts.map +1 -0
  131. package/lib/skills/repository.js +76 -0
  132. package/lib/skills/repository.js.map +1 -0
  133. package/lib/skills/service.d.ts +48 -0
  134. package/lib/skills/service.d.ts.map +1 -0
  135. package/lib/skills/service.js +248 -0
  136. package/lib/skills/service.js.map +1 -0
  137. package/lib/skills/zip.d.ts +3 -0
  138. package/lib/skills/zip.d.ts.map +1 -0
  139. package/lib/skills/zip.js +59 -0
  140. package/lib/skills/zip.js.map +1 -0
  141. package/lib/store.d.ts.map +1 -1
  142. package/lib/store.js +69 -3
  143. package/lib/store.js.map +1 -1
  144. package/lib/tasks/domain.d.ts +39 -0
  145. package/lib/tasks/domain.d.ts.map +1 -0
  146. package/lib/tasks/domain.js +3 -0
  147. package/lib/tasks/domain.js.map +1 -0
  148. package/lib/tasks/result.d.ts +14 -0
  149. package/lib/tasks/result.d.ts.map +1 -0
  150. package/lib/tasks/result.js +109 -0
  151. package/lib/tasks/result.js.map +1 -0
  152. package/lib/tasks/service.d.ts +39 -0
  153. package/lib/tasks/service.d.ts.map +1 -0
  154. package/lib/tasks/service.js +334 -0
  155. package/lib/tasks/service.js.map +1 -0
  156. package/lib/ui/companion-access-panel.d.ts +4 -0
  157. package/lib/ui/companion-access-panel.d.ts.map +1 -0
  158. package/lib/ui/companion-access-panel.js +46 -0
  159. package/lib/ui/companion-access-panel.js.map +1 -0
  160. package/lib/ui/companion-create.d.ts +11 -0
  161. package/lib/ui/companion-create.d.ts.map +1 -0
  162. package/lib/ui/companion-create.js +30 -0
  163. package/lib/ui/companion-create.js.map +1 -0
  164. package/lib/ui/partner-components.d.ts +36 -0
  165. package/lib/ui/partner-components.d.ts.map +1 -0
  166. package/lib/ui/partner-components.js +32 -0
  167. package/lib/ui/partner-components.js.map +1 -0
  168. package/lib/ui/schedule-panel.d.ts +5 -0
  169. package/lib/ui/schedule-panel.d.ts.map +1 -0
  170. package/lib/ui/schedule-panel.js +86 -0
  171. package/lib/ui/schedule-panel.js.map +1 -0
  172. package/lib/ui/skills-panel.d.ts +5 -0
  173. package/lib/ui/skills-panel.d.ts.map +1 -0
  174. package/lib/ui/skills-panel.js +236 -0
  175. package/lib/ui/skills-panel.js.map +1 -0
  176. package/lib/ui/task-board-panel.d.ts +2 -0
  177. package/lib/ui/task-board-panel.d.ts.map +1 -0
  178. package/lib/ui/task-board-panel.js +231 -0
  179. package/lib/ui/task-board-panel.js.map +1 -0
  180. package/lib/ui/workspace-components.d.ts +40 -0
  181. package/lib/ui/workspace-components.d.ts.map +1 -0
  182. package/lib/ui/workspace-components.js +61 -0
  183. package/lib/ui/workspace-components.js.map +1 -0
  184. package/package.json +2 -1
@@ -0,0 +1,370 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { appendBounded } from '../core/collections.js';
3
+ import { requiredText } from '../core/validation.js';
4
+ import { parseTaskExecutionOutput } from '../tasks/result.js';
5
+ import { delegationKind, delegationPending } from './domain.js';
6
+ import { canRetryDelegation, delegationRetryDelay, retryDelayLabel } from './retry-policy.js';
7
+ const RECOVERY_TICK_MS = 5_000;
8
+ const RECOVERY_CONCURRENCY = 3;
9
+ /** Owns durable partner work orchestration. Pending records are safe to reclaim after a process restart. */
10
+ export class PartnerCollaborationService {
11
+ store;
12
+ skills;
13
+ tasks;
14
+ executor;
15
+ sessionExecutor;
16
+ active = new Map();
17
+ timer;
18
+ started = false;
19
+ closing = false;
20
+ accessChangeNotifier;
21
+ constructor(store, skills, tasks, executor) {
22
+ this.store = store;
23
+ this.skills = skills;
24
+ this.tasks = tasks;
25
+ this.executor = executor;
26
+ }
27
+ setSessionExecutor(executor) {
28
+ this.sessionExecutor = executor;
29
+ }
30
+ setAccessChangeNotifier(notifier) {
31
+ this.accessChangeNotifier = notifier;
32
+ }
33
+ async start() {
34
+ if (this.started)
35
+ return;
36
+ this.started = true;
37
+ this.closing = false;
38
+ await this.reconcileInterruptedWork();
39
+ await this.tick();
40
+ this.timer = setInterval(() => { void this.tick(); }, RECOVERY_TICK_MS);
41
+ this.timer.unref?.();
42
+ }
43
+ beginShutdown() {
44
+ this.closing = true;
45
+ if (this.timer)
46
+ clearInterval(this.timer);
47
+ this.timer = undefined;
48
+ }
49
+ async close() {
50
+ this.beginShutdown();
51
+ await Promise.allSettled([...this.active.values()]);
52
+ this.active.clear();
53
+ }
54
+ directory() {
55
+ const state = this.store.snapshot();
56
+ const running = new Set([
57
+ ...state.executionRuns.filter(item => item.status === 'running').map(item => item.ownerCompanionId),
58
+ ...state.delegations.filter(delegationPending).map(item => item.toCompanionId),
59
+ ]);
60
+ return state.companions.map(companion => ({
61
+ id: companion.id, name: companion.name, role: companion.role, description: companion.description,
62
+ capabilities: companion.capabilities, enabledSkills: this.skills.bindings(companion.id, state).map(skill => ({ id: skill.id, name: skill.displayName })),
63
+ availability: running.has(companion.id) ? 'busy' : 'available',
64
+ }));
65
+ }
66
+ directoryFor(companionId) {
67
+ this.requireCompanion(companionId);
68
+ const allowed = new Set(this.store.snapshot().companionAccessGrants.filter(grant => grant.fromCompanionId === companionId).map(grant => grant.toCompanionId));
69
+ return this.directory().filter(entry => allowed.has(entry.id));
70
+ }
71
+ accessTargetIds(companionId) {
72
+ this.requireCompanion(companionId);
73
+ return this.store.snapshot().companionAccessGrants.filter(grant => grant.fromCompanionId === companionId).map(grant => grant.toCompanionId);
74
+ }
75
+ accessGrants() {
76
+ return this.store.snapshot().companionAccessGrants;
77
+ }
78
+ canAccess(fromCompanionId, toCompanionId) {
79
+ return this.store.snapshot().companionAccessGrants.some(grant => grant.fromCompanionId === fromCompanionId && grant.toCompanionId === toCompanionId);
80
+ }
81
+ async replaceAccessTargets(fromCompanionId, targetIds) {
82
+ this.requireCompanion(fromCompanionId);
83
+ const unique = [...new Set(targetIds)];
84
+ if (unique.includes(fromCompanionId))
85
+ throw new Error('伙伴不能授权访问自己');
86
+ const state = this.store.snapshot();
87
+ if (unique.length > Math.min(100, state.companions.length - 1))
88
+ throw new Error('伙伴授权数量超出限制');
89
+ for (const id of unique)
90
+ if (!state.companions.some(companion => companion.id === id))
91
+ throw new Error(`伙伴 ${id} 不存在`);
92
+ const now = Date.now();
93
+ await this.store.update(draft => {
94
+ const previous = new Map(draft.companionAccessGrants.filter(grant => grant.fromCompanionId === fromCompanionId).map(grant => [grant.toCompanionId, grant]));
95
+ draft.companionAccessGrants = draft.companionAccessGrants.filter(grant => grant.fromCompanionId !== fromCompanionId);
96
+ draft.companionAccessGrants.push(...unique.map(toCompanionId => previous.get(toCompanionId) ?? { fromCompanionId, toCompanionId, createdAt: now }));
97
+ });
98
+ return unique;
99
+ }
100
+ /** Persist one directed access roster and recompose the grantee atomically. */
101
+ async updateAccessTargets(fromCompanionId, targetIds) {
102
+ const previous = this.accessTargetIds(fromCompanionId);
103
+ const next = await this.replaceAccessTargets(fromCompanionId, targetIds);
104
+ try {
105
+ await this.accessChangeNotifier?.(fromCompanionId);
106
+ return next;
107
+ }
108
+ catch (error) {
109
+ await this.replaceAccessTargets(fromCompanionId, previous);
110
+ await this.accessChangeNotifier?.(fromCompanionId).catch(() => { });
111
+ throw error;
112
+ }
113
+ }
114
+ resolveCompanion(reference) {
115
+ const normalized = reference.trim().replace(/^@/, '').toLocaleLowerCase();
116
+ const matches = this.store.snapshot().companions.filter(item => item.id.toLocaleLowerCase() === normalized || item.name.toLocaleLowerCase() === normalized);
117
+ if (matches.length === 0)
118
+ throw new Error(`找不到伙伴 ${reference}`);
119
+ if (matches.length > 1)
120
+ throw new Error(`伙伴名称 ${reference} 不唯一,请使用伙伴 id`);
121
+ return matches[0];
122
+ }
123
+ async delegate(input) {
124
+ const task = this.tasks.assertStartable(input.taskId);
125
+ const from = input.initiatedBy === 'companion' ? this.requireCompanion(input.fromCompanionId ?? '') : undefined;
126
+ const to = this.resolveCompanion(input.to);
127
+ if (from?.id === to.id)
128
+ throw new Error('伙伴不能把任务委派给自己');
129
+ if (from && !this.canAccess(from.id, to.id))
130
+ throw new Error(`伙伴「${from.name}」未获授权访问 @${to.name}`);
131
+ const request = requiredText(input.request, 'request', 8000);
132
+ const delegation = {
133
+ id: `delegation-${randomUUID()}`, kind: 'task', taskId: task.id, initiatedBy: input.initiatedBy,
134
+ ...(from ? { fromCompanionId: from.id } : {}), toCompanionId: to.id, request, status: 'queued', attempts: 0, nextAttemptAt: Date.now() + 60_000,
135
+ ...(input.parentSessionId ? { parentSessionId: input.parentSessionId } : {}), createdAt: Date.now(),
136
+ };
137
+ await this.saveNew(delegation);
138
+ try {
139
+ const current = this.tasks.require(task.id);
140
+ await this.tasks.update(task.id, { expectedRevision: current.revision, status: 'doing', assigneeCompanionId: to.id }, from ? { kind: 'companion', companionId: from.id } : { kind: 'user' });
141
+ await this.mutate(delegation.id, item => { item.nextAttemptAt = Date.now(); });
142
+ }
143
+ catch (error) {
144
+ await this.cancel(delegation.id, `委派没有完成提交:${errorMessage(error)}`).catch(() => { });
145
+ throw error;
146
+ }
147
+ const claimed = await this.claim(delegation.id);
148
+ if (claimed)
149
+ this.launch(claimed);
150
+ return structuredClone(claimed ?? delegation);
151
+ }
152
+ async reviewTask(input) {
153
+ const task = this.tasks.require(input.taskId);
154
+ if (task.status !== 'review')
155
+ throw new Error('只有待验收任务可以交给伙伴核验');
156
+ if (this.store.snapshot().delegations.some(item => delegationKind(item) === 'review' && item.taskId === task.id && delegationPending(item)))
157
+ throw new Error('这个任务正在核验中');
158
+ const reviewer = this.resolveCompanion(input.to);
159
+ if (task.reviewerCompanionId && task.reviewerCompanionId !== reviewer.id)
160
+ throw new Error('请选择任务中指定的验收伙伴');
161
+ if (!task.reviewerCompanionId)
162
+ await this.tasks.update(task.id, { expectedRevision: task.revision, reviewerCompanionId: reviewer.id }, { kind: 'user' });
163
+ const delegation = {
164
+ id: `delegation-${randomUUID()}`, kind: 'review', taskId: task.id, initiatedBy: 'user', toCompanionId: reviewer.id,
165
+ request: `核验看板任务:${task.title}`, status: 'queued', attempts: 0, nextAttemptAt: Date.now(), createdAt: Date.now(),
166
+ };
167
+ await this.saveNew(delegation);
168
+ const claimed = await this.claim(delegation.id);
169
+ if (claimed)
170
+ this.launch(claimed);
171
+ return { accepted: true };
172
+ }
173
+ async reconcileInterruptedWork() {
174
+ const recovered = [];
175
+ const now = Date.now();
176
+ await this.store.update(state => {
177
+ for (const item of state.delegations) {
178
+ const task = state.tasks.find(value => value.id === item.taskId);
179
+ const lostResult = delegationKind(item) === 'task' && item.status === 'canceled'
180
+ && item.error?.includes('忽略旧执行结果') === true && task?.status === 'review' && !task.resultSummary;
181
+ if (lostResult && task) {
182
+ task.status = 'doing';
183
+ task.revision += 1;
184
+ task.updatedAt = now;
185
+ delete task.reviewSummary;
186
+ delete task.completedAt;
187
+ item.status = 'queued';
188
+ item.nextAttemptAt = now;
189
+ item.error = '旧版协调器丢弃了提前进入待验收的执行结果,任务已重新进入恢复队列';
190
+ delete item.completedAt;
191
+ recovered.push({ taskId: item.taskId, kind: 'task', repairedLostResult: true });
192
+ continue;
193
+ }
194
+ if (item.status !== 'running')
195
+ continue;
196
+ item.status = 'queued';
197
+ item.attempts = Math.max(1, item.attempts ?? 0);
198
+ item.nextAttemptAt = now;
199
+ item.error = 'DSH 服务或执行进程中断,任务已进入恢复队列';
200
+ delete item.completedAt;
201
+ recovered.push({ taskId: item.taskId, kind: delegationKind(item) });
202
+ }
203
+ });
204
+ for (const item of recovered)
205
+ await this.tasks.recordRecovery(item.taskId, item.repairedLostResult ? '检测到旧版协调器未保存执行结果,已重新接管任务' : item.kind === 'review' ? '服务恢复后已重新接管未完成的伙伴验收' : '服务恢复后已重新接管未完成的伙伴任务', false);
206
+ }
207
+ async tick() {
208
+ if (this.closing || this.active.size >= RECOVERY_CONCURRENCY)
209
+ return;
210
+ const now = Date.now();
211
+ const candidates = this.store.snapshot().delegations
212
+ .filter(item => item.status === 'queued' && (item.nextAttemptAt ?? 0) <= now && !this.active.has(item.id))
213
+ .sort((left, right) => (left.nextAttemptAt ?? left.createdAt) - (right.nextAttemptAt ?? right.createdAt))
214
+ .slice(0, RECOVERY_CONCURRENCY - this.active.size);
215
+ for (const candidate of candidates) {
216
+ const claimed = await this.claim(candidate.id);
217
+ if (claimed)
218
+ this.launch(claimed);
219
+ }
220
+ }
221
+ async claim(id) {
222
+ let output;
223
+ await this.store.update(state => {
224
+ const item = state.delegations.find(value => value.id === id);
225
+ if (!item || item.status !== 'queued' || (item.nextAttemptAt ?? 0) > Date.now())
226
+ return;
227
+ const now = Date.now();
228
+ item.status = 'running';
229
+ item.attempts = (item.attempts ?? 0) + 1;
230
+ item.lastAttemptAt = now;
231
+ item.startedAt ??= now;
232
+ delete item.nextAttemptAt;
233
+ delete item.completedAt;
234
+ output = structuredClone(item);
235
+ });
236
+ return output;
237
+ }
238
+ launch(delegation) {
239
+ if (this.active.has(delegation.id))
240
+ return;
241
+ const promise = this.executeClaimed(delegation).catch(() => { }).finally(() => { this.active.delete(delegation.id); });
242
+ this.active.set(delegation.id, promise);
243
+ }
244
+ async executeClaimed(delegation) {
245
+ try {
246
+ const task = this.tasks.require(delegation.taskId);
247
+ const kind = delegationKind(delegation);
248
+ if ((kind === 'task' && task.status !== 'doing') || (kind === 'review' && task.status !== 'review')) {
249
+ await this.cancel(delegation.id, `任务状态已经变为 ${task.status},不再恢复旧执行`);
250
+ return;
251
+ }
252
+ const to = this.requireCompanion(delegation.toCompanionId);
253
+ const prompt = kind === 'review' ? reviewPrompt(task) : taskPrompt(task, delegation, to, this.optionalCompanion(delegation.fromCompanionId));
254
+ const result = this.sessionExecutor
255
+ ? await this.sessionExecutor.execute({
256
+ sourceId: kind === 'review' ? `review:${task.id}:${delegation.id}` : delegation.id,
257
+ companion: to, prompt, ...(delegation.parentSessionId ? { parentSessionId: delegation.parentSessionId } : {}),
258
+ })
259
+ : await this.executor.execute({
260
+ kind: kind === 'review' ? 'review' : 'delegation', sourceId: delegation.id, companion: to, prompt,
261
+ ...(delegation.parentSessionId ? { parentSessionId: delegation.parentSessionId } : {}), destroyAfterRun: true,
262
+ });
263
+ const latest = this.tasks.require(task.id);
264
+ if (kind === 'review') {
265
+ if (latest.status !== 'review') {
266
+ await this.cancel(delegation.id, `任务状态已经变为 ${latest.status},忽略旧验收结果`);
267
+ return;
268
+ }
269
+ await this.tasks.recordReview(task.id, result.output, { kind: 'companion', companionId: to.id });
270
+ }
271
+ else {
272
+ if (latest.status !== 'doing' && latest.status !== 'review') {
273
+ await this.cancel(delegation.id, `任务状态已经变为 ${latest.status},忽略旧执行结果`);
274
+ return;
275
+ }
276
+ await this.tasks.completeExecution(task.id, parseTaskExecutionOutput(result.output), { kind: 'companion', companionId: to.id });
277
+ }
278
+ await this.complete(delegation.id, result.run.id, result.output);
279
+ }
280
+ catch (error) {
281
+ if (this.closing)
282
+ await this.retry(delegation, error, true);
283
+ else if (canRetryDelegation(error, delegation.attempts ?? 1))
284
+ await this.retry(delegation, error, false);
285
+ else
286
+ await this.fail(delegation, error);
287
+ }
288
+ }
289
+ async retry(delegation, error, immediate) {
290
+ const message = errorMessage(error);
291
+ const delay = immediate ? 0 : delegationRetryDelay(delegation.attempts ?? 1);
292
+ const nextAttemptAt = Date.now() + delay;
293
+ await this.mutate(delegation.id, item => {
294
+ item.status = 'queued';
295
+ item.nextAttemptAt = nextAttemptAt;
296
+ item.error = message;
297
+ delete item.completedAt;
298
+ });
299
+ await this.tasks.recordRecovery(delegation.taskId, immediate ? '服务正在停止,执行已安全放回恢复队列' : `执行环境暂时不可用,将在约 ${retryDelayLabel(delay)}后自动重试(第 ${delegation.attempts ?? 1} 次失败)`, true);
300
+ }
301
+ async complete(id, runId, output) {
302
+ await this.mutate(id, item => {
303
+ item.status = 'completed';
304
+ item.completedAt = Date.now();
305
+ item.executionRunId = runId;
306
+ item.resultSummary = output.slice(0, 2400);
307
+ delete item.nextAttemptAt;
308
+ delete item.error;
309
+ });
310
+ }
311
+ async cancel(id, reason) {
312
+ await this.mutate(id, item => { item.status = 'canceled'; item.completedAt = Date.now(); item.error = reason; delete item.nextAttemptAt; });
313
+ }
314
+ async fail(delegation, error) {
315
+ const reason = errorMessage(error);
316
+ await this.mutate(delegation.id, item => { item.status = 'failed'; item.completedAt = Date.now(); item.error = reason; delete item.nextAttemptAt; });
317
+ const current = this.tasks.require(delegation.taskId);
318
+ if (delegationKind(delegation) === 'task') {
319
+ if (current.status === 'doing')
320
+ await this.tasks.failExecution(current.id, reason, { kind: 'companion', companionId: delegation.toCompanionId }).catch(() => { });
321
+ }
322
+ else if (current.status === 'review') {
323
+ await this.tasks.comment(current.id, `验收执行失败:${reason}`, { kind: 'companion', companionId: delegation.toCompanionId }).catch(() => { });
324
+ }
325
+ }
326
+ requireCompanion(id) {
327
+ const companion = this.store.snapshot().companions.find(item => item.id === id);
328
+ if (!companion)
329
+ throw new Error('Companion does not exist');
330
+ return companion;
331
+ }
332
+ optionalCompanion(id) {
333
+ return id ? this.store.snapshot().companions.find(item => item.id === id) : undefined;
334
+ }
335
+ async saveNew(value) {
336
+ await this.store.update(state => { appendBounded(state.delegations, structuredClone(value), 500); });
337
+ }
338
+ async mutate(id, change) {
339
+ await this.store.update(state => {
340
+ const item = state.delegations.find(value => value.id === id);
341
+ if (item)
342
+ change(item);
343
+ });
344
+ }
345
+ }
346
+ function taskPrompt(task, delegation, to, from) {
347
+ const recovery = (delegation.attempts ?? 1) > 1
348
+ ? `这是中断后的第 ${delegation.attempts} 次恢复执行。先检查工作目录、看板和外部目标中是否已有产出,避免重复写入、重复提交、重复发布或重复通知;已经完成的部分只需核验并汇报。`
349
+ : '';
350
+ return [
351
+ from ? `你收到伙伴「${from.name}」委派的看板任务。` : '你收到用户从伙伴任务看板直接委派的任务。',
352
+ `任务:${task.title}`,
353
+ task.description ? `任务说明:${task.description}` : '',
354
+ `委派要求:${delegation.request}`,
355
+ recovery,
356
+ `当前执行伙伴:${to.name}。请真正完成能够完成的工作。最终回复必须用下面三个标签分离渠道摘要、完整交付物和内部验收交接:\n<partner-summary>\n一至三句可直接发给用户的短结论\n</partner-summary>\n<partner-deliverable>\n只写用户最终需要的产出、证据、来源和必要限制\n</partner-deliverable>\n<partner-review-handoff>\n只写给验收者的核验点、待确认项与风险\n</partner-review-handoff>\n不要访问其他伙伴的私有会话或记忆。`,
357
+ ].filter(Boolean).join('\n\n');
358
+ }
359
+ function reviewPrompt(task) {
360
+ return [
361
+ '你收到一个伙伴看板任务的独立验收请求。请根据任务要求和执行结果核验真实性、完整性与可复现性。',
362
+ `任务:${task.title}`,
363
+ task.description ? `任务说明:${task.description}` : '',
364
+ task.resultSummary ? `执行结果:\n${task.resultSummary}` : '执行者没有提交可见结果,请明确指出。',
365
+ task.reviewHandoff ? `执行者验收交接:\n${task.reviewHandoff}` : '',
366
+ '请输出:验收结论建议(通过或打回)、核验证据、缺失项,以及若打回应如何修正。你只提供核验意见,最终通过或打回由用户决定。',
367
+ ].filter(Boolean).join('\n\n');
368
+ }
369
+ function errorMessage(error) { return error instanceof Error ? error.message : String(error); }
370
+ //# sourceMappingURL=service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/collaboration/service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { type Companion } from '../domain.js';
2
+ import type { PartnerStore } from '../store.js';
3
+ type SessionProvisioner = (companionId: string) => Promise<unknown>;
4
+ /** Owns the atomic identity + initial local-session creation boundary. */
5
+ export declare class CompanionService {
6
+ private readonly store;
7
+ private provisionSession?;
8
+ constructor(store: PartnerStore);
9
+ setSessionProvisioner(provisioner: SessionProvisioner): void;
10
+ create(value: unknown): Promise<Companion>;
11
+ }
12
+ export {};
13
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/companions/service.ts"],"names":[],"mappings":"AACA,OAAO,EAA+C,KAAK,SAAS,EAAE,MAAM,cAAc,CAAA;AAC1F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE/C,KAAK,kBAAkB,GAAG,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;AAEnE,0EAA0E;AAC1E,qBAAa,gBAAgB;IAGf,OAAO,CAAC,QAAQ,CAAC,KAAK;IAFlC,OAAO,CAAC,gBAAgB,CAAC,CAAoB;gBAEhB,KAAK,EAAE,YAAY;IAEhD,qBAAqB,CAAC,WAAW,EAAE,kBAAkB,GAAG,IAAI;IAItD,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC;CAwBjD"}
@@ -0,0 +1,51 @@
1
+ import { randomBytes } from 'node:crypto';
2
+ import { DEFAULT_AUTOMATION, normalizeCompanionDraft } from '../domain.js';
3
+ /** Owns the atomic identity + initial local-session creation boundary. */
4
+ export class CompanionService {
5
+ store;
6
+ provisionSession;
7
+ constructor(store) {
8
+ this.store = store;
9
+ }
10
+ setSessionProvisioner(provisioner) {
11
+ this.provisionSession = provisioner;
12
+ }
13
+ async create(value) {
14
+ if (!this.provisionSession)
15
+ throw new Error('伙伴会话服务尚未就绪');
16
+ const draft = normalizeCompanionDraft({ ...identityRecord(value), capabilities: [] });
17
+ const now = Date.now();
18
+ const companion = {
19
+ ...draft,
20
+ id: `companion-${randomBytes(10).toString('hex')}`,
21
+ capabilities: [],
22
+ automation: structuredClone(DEFAULT_AUTOMATION),
23
+ createdAt: now,
24
+ updatedAt: now,
25
+ };
26
+ await this.store.update(state => { state.companions.push(companion); });
27
+ try {
28
+ await this.provisionSession(companion.id);
29
+ }
30
+ catch (error) {
31
+ await this.store.update(state => {
32
+ state.companions = state.companions.filter(item => item.id !== companion.id);
33
+ state.sessions = state.sessions.filter(item => item.companionId !== companion.id);
34
+ }).catch(() => { });
35
+ throw error;
36
+ }
37
+ return companion;
38
+ }
39
+ }
40
+ function identityRecord(value) {
41
+ if (typeof value !== 'object' || value === null || Array.isArray(value))
42
+ throw new Error('companion must be an object');
43
+ const input = value;
44
+ return {
45
+ name: input.name,
46
+ role: input.role,
47
+ description: input.description,
48
+ instructions: input.instructions,
49
+ };
50
+ }
51
+ //# sourceMappingURL=service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/companions/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAkB,MAAM,cAAc,CAAA;AAK1F,0EAA0E;AAC1E,MAAM,OAAO,gBAAgB;IAGE;IAFrB,gBAAgB,CAAqB;IAE7C,YAA6B,KAAmB;QAAnB,UAAK,GAAL,KAAK,CAAc;IAAG,CAAC;IAEpD,qBAAqB,CAAC,WAA+B;QACnD,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAA;IACrC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAc;QACzB,IAAI,CAAC,IAAI,CAAC,gBAAgB;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAA;QACzD,MAAM,KAAK,GAAG,uBAAuB,CAAC,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAA;QACrF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,MAAM,SAAS,GAAc;YAC3B,GAAG,KAAK;YACR,EAAE,EAAE,aAAa,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YAClD,YAAY,EAAE,EAAE;YAChB,UAAU,EAAE,eAAe,CAAC,kBAAkB,CAAC;YAC/C,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,GAAG;SACf,CAAA;QACD,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;QACtE,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;gBAC9B,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,CAAC,CAAA;gBAC5E,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,EAAE,CAAC,CAAA;YACnF,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;YAClB,MAAM,KAAK,CAAA;QACb,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;CACF;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;IACvH,MAAM,KAAK,GAAG,KAAgC,CAAA;IAC9C,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,YAAY,EAAE,KAAK,CAAC,YAAY;KACjC,CAAA;AACH,CAAC"}
@@ -51,7 +51,14 @@ export declare const MAX_IMPLICIT_CONCERNS_PER_BATCH = 2;
51
51
  * persisted. Lifecycle operations remain available so stale concerns can be
52
52
  * closed even when a later model response has lower confidence.
53
53
  */
54
- export declare function implicitConcernRejection(candidate: ConcernCandidate): string | undefined;
54
+ export declare function implicitConcernRejection(candidate: ConcernCandidate, directEvidence?: string): string | undefined;
55
+ /**
56
+ * A new implicit concern needs direct evidence that something survives the
57
+ * current turn. Topic importance alone is deliberately insufficient: ordinary
58
+ * research, search, summarization and one-shot execution must not create a
59
+ * background watch.
60
+ */
61
+ export declare function hasSustainedConcernEvidence(value: string): boolean;
55
62
  export interface ConcernObservationCandidate {
56
63
  concernId: string;
57
64
  changed: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"concern-domain.d.ts","sourceRoot":"","sources":["../src/concern-domain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"concern-domain.d.ts","sourceRoot":"","sources":["../src/concern-domain.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ export const MAX_IMPLICIT_CONCERNS_PER_BATCH = 2;
8
8
  * persisted. Lifecycle operations remain available so stale concerns can be
9
9
  * closed even when a later model response has lower confidence.
10
10
  */
11
- export function implicitConcernRejection(candidate) {
11
+ export function implicitConcernRejection(candidate, directEvidence) {
12
12
  if (candidate.operation !== 'upsert')
13
13
  return undefined;
14
14
  const subjectLength = [...normalizeConcernSubject(candidate.subject)].length;
@@ -26,8 +26,32 @@ export function implicitConcernRejection(candidate) {
26
26
  return '证据置信度不足';
27
27
  if (priority * .55 + confidence * .45 < IMPLICIT_CONCERN_MIN_SCORE)
28
28
  return '综合关注分数不足';
29
+ if (directEvidence !== undefined && !hasSustainedConcernEvidence(directEvidence))
30
+ return '当前用户原话没有未闭环、等待结果或持续观察的证据';
29
31
  return undefined;
30
32
  }
33
+ /**
34
+ * A new implicit concern needs direct evidence that something survives the
35
+ * current turn. Topic importance alone is deliberately insufficient: ordinary
36
+ * research, search, summarization and one-shot execution must not create a
37
+ * background watch.
38
+ */
39
+ export function hasSustainedConcernEvidence(value) {
40
+ const text = value.normalize('NFKC').toLocaleLowerCase('zh-CN').replace(/\s+/gu, ' ').trim();
41
+ if (!text)
42
+ return false;
43
+ return [
44
+ /(?:还|仍|依旧|一直|再次|又).{0,24}(?:没|未|不|失败|异常|问题|卡住|报错|无效|不稳)/u,
45
+ /(?:反复|频繁|偶尔|偶发|时不时|多次).{0,24}(?:失败|异常|问题|报错|不稳|丢失|复现)/u,
46
+ /(?:没|未|尚未).{0,24}(?:完成|解决|修复|结束|闭环|确认|通过)/u,
47
+ /(?:临时|暂时|先凑合|先这样|权宜|workaround)/iu,
48
+ /(?:等待|等着|等候|等).{0,20}(?:发布|更新|回复|结果|审核|合并|上线|修复|处理|通知)/u,
49
+ /(?:持续|定期|长期|后续).{0,24}(?:关注|留意|跟进|观察|检查|追踪|监控)/u,
50
+ /(?:关注|留意|跟进|盯着|追踪|监控).{0,24}(?:动态|变化|进展|更新|消息|发布|结果)/u,
51
+ /(?:有|出现).{0,10}(?:新消息|新变化|新进展|更新).{0,16}(?:告诉|通知|提醒)/u,
52
+ /(?:still|again|not yet|unresolved|waiting for|keep an eye on|monitor|track|follow up|temporary workaround)/iu,
53
+ ].some(pattern => pattern.test(text));
54
+ }
31
55
  export function concernInterval(priority, origin) {
32
56
  const hours = priority >= .85 ? 3 : priority >= .65 ? 8 : priority >= .4 ? 24 : 72;
33
57
  return hours * 3_600_000 * (origin === 'explicit' ? .75 : 1);
@@ -1 +1 @@
1
- {"version":3,"file":"concern-domain.js","sourceRoot":"","sources":["../src/concern-domain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"concern-domain.js","sourceRoot":"","sources":["../src/concern-domain.ts"],"names":[],"mappings":"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"}