@lemoncat7/dsh-partner 1.10.6 → 1.11.1

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 (111) hide show
  1. package/README.md +41 -0
  2. package/docs/architecture.md +14 -0
  3. package/lib/api/features/workspace-api.js +2 -2
  4. package/lib/api/features/workspace-api.js.map +1 -1
  5. package/lib/client-api.d.ts +8 -0
  6. package/lib/client-api.d.ts.map +1 -1
  7. package/lib/client-api.js.map +1 -1
  8. package/lib/client.js +1103 -917
  9. package/lib/client.js.map +4 -4
  10. package/lib/collaboration/composition.d.ts.map +1 -1
  11. package/lib/collaboration/composition.js +5 -3
  12. package/lib/collaboration/composition.js.map +1 -1
  13. package/lib/collaboration/domain.d.ts +2 -0
  14. package/lib/collaboration/domain.d.ts.map +1 -1
  15. package/lib/collaboration/domain.js.map +1 -1
  16. package/lib/collaboration/service.d.ts +1 -0
  17. package/lib/collaboration/service.d.ts.map +1 -1
  18. package/lib/collaboration/service.js +15 -4
  19. package/lib/collaboration/service.js.map +1 -1
  20. package/lib/domain.d.ts +1 -0
  21. package/lib/domain.d.ts.map +1 -1
  22. package/lib/domain.js.map +1 -1
  23. package/lib/pendant/card-image.d.ts +1 -1
  24. package/lib/pendant/card-image.d.ts.map +1 -1
  25. package/lib/pendant/card-image.js +16 -6
  26. package/lib/pendant/card-image.js.map +1 -1
  27. package/lib/pendant/physics.d.ts +1 -0
  28. package/lib/pendant/physics.d.ts.map +1 -1
  29. package/lib/pendant/physics.js +24 -2
  30. package/lib/pendant/physics.js.map +1 -1
  31. package/lib/pendant/renderer.d.ts.map +1 -1
  32. package/lib/pendant/renderer.js +21 -4
  33. package/lib/pendant/renderer.js.map +1 -1
  34. package/lib/pendant/settings-panel.d.ts.map +1 -1
  35. package/lib/pendant/settings-panel.js +5 -4
  36. package/lib/pendant/settings-panel.js.map +1 -1
  37. package/lib/pendant/settings.d.ts +5 -0
  38. package/lib/pendant/settings.d.ts.map +1 -1
  39. package/lib/pendant/settings.js +9 -3
  40. package/lib/pendant/settings.js.map +1 -1
  41. package/lib/pendant/strap-preview.d.ts +3 -1
  42. package/lib/pendant/strap-preview.d.ts.map +1 -1
  43. package/lib/pendant/strap-preview.js +6 -3
  44. package/lib/pendant/strap-preview.js.map +1 -1
  45. package/lib/pendant/strap-texture.d.ts +5 -0
  46. package/lib/pendant/strap-texture.d.ts.map +1 -0
  47. package/lib/pendant/strap-texture.js +9 -0
  48. package/lib/pendant/strap-texture.js.map +1 -0
  49. package/lib/pendant/strap.d.ts.map +1 -1
  50. package/lib/pendant/strap.js +39 -2
  51. package/lib/pendant/strap.js.map +1 -1
  52. package/lib/pendant-renderer.js +174 -174
  53. package/lib/requirements/draft.d.ts +3 -0
  54. package/lib/requirements/draft.d.ts.map +1 -0
  55. package/lib/requirements/draft.js +7 -0
  56. package/lib/requirements/draft.js.map +1 -0
  57. package/lib/requirements/plan-schema.d.ts +93 -0
  58. package/lib/requirements/plan-schema.d.ts.map +1 -0
  59. package/lib/requirements/plan-schema.js +16 -0
  60. package/lib/requirements/plan-schema.js.map +1 -0
  61. package/lib/requirements/plan.d.ts +30 -0
  62. package/lib/requirements/plan.d.ts.map +1 -0
  63. package/lib/requirements/plan.js +134 -0
  64. package/lib/requirements/plan.js.map +1 -0
  65. package/lib/requirements/service.d.ts +2 -1
  66. package/lib/requirements/service.d.ts.map +1 -1
  67. package/lib/requirements/service.js +4 -6
  68. package/lib/requirements/service.js.map +1 -1
  69. package/lib/requirements/tool.d.ts +1 -1
  70. package/lib/requirements/tool.d.ts.map +1 -1
  71. package/lib/requirements/tool.js +24 -3
  72. package/lib/requirements/tool.js.map +1 -1
  73. package/lib/skills/task-planning.d.ts +2 -2
  74. package/lib/skills/task-planning.d.ts.map +1 -1
  75. package/lib/skills/task-planning.js +10 -1
  76. package/lib/skills/task-planning.js.map +1 -1
  77. package/lib/store.js +2 -0
  78. package/lib/store.js.map +1 -1
  79. package/lib/tasks/context.d.ts.map +1 -1
  80. package/lib/tasks/context.js +9 -1
  81. package/lib/tasks/context.js.map +1 -1
  82. package/lib/tasks/contract.d.ts +63 -0
  83. package/lib/tasks/contract.d.ts.map +1 -0
  84. package/lib/tasks/contract.js +55 -0
  85. package/lib/tasks/contract.js.map +1 -0
  86. package/lib/tasks/domain.d.ts +6 -0
  87. package/lib/tasks/domain.d.ts.map +1 -1
  88. package/lib/tasks/draft.d.ts +7 -0
  89. package/lib/tasks/draft.d.ts.map +1 -0
  90. package/lib/tasks/draft.js +54 -0
  91. package/lib/tasks/draft.js.map +1 -0
  92. package/lib/tasks/result.d.ts +2 -0
  93. package/lib/tasks/result.d.ts.map +1 -1
  94. package/lib/tasks/result.js +17 -3
  95. package/lib/tasks/result.js.map +1 -1
  96. package/lib/tasks/scheduling.d.ts +15 -0
  97. package/lib/tasks/scheduling.d.ts.map +1 -0
  98. package/lib/tasks/scheduling.js +46 -0
  99. package/lib/tasks/scheduling.js.map +1 -0
  100. package/lib/tasks/service.d.ts +46 -3
  101. package/lib/tasks/service.d.ts.map +1 -1
  102. package/lib/tasks/service.js +55 -58
  103. package/lib/tasks/service.js.map +1 -1
  104. package/lib/ui/requirement-tasks-panel.d.ts.map +1 -1
  105. package/lib/ui/requirement-tasks-panel.js +18 -9
  106. package/lib/ui/requirement-tasks-panel.js.map +1 -1
  107. package/lib/ui/task-contract-panel.d.ts +10 -0
  108. package/lib/ui/task-contract-panel.d.ts.map +1 -0
  109. package/lib/ui/task-contract-panel.js +16 -0
  110. package/lib/ui/task-contract-panel.js.map +1 -0
  111. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"task-planning.d.ts","sourceRoot":"","sources":["../../src/skills/task-planning.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,eAAO,MAAM,qBAAqB,UAAU,CAAA;AAC5C,eAAO,MAAM,yBAAyB,6WAAiE,CAAA;AACvG,eAAO,MAAM,sBAAsB,+7eAiDlC,CAAA"}
1
+ {"version":3,"file":"task-planning.d.ts","sourceRoot":"","sources":["../../src/skills/task-planning.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,eAAO,MAAM,qBAAqB,UAAU,CAAA;AAC5C,eAAO,MAAM,yBAAyB,6WAAiE,CAAA;AACvG,eAAO,MAAM,sBAAsB,qvmBA0DlC,CAAA"}
@@ -1,5 +1,5 @@
1
1
  /** Versioned built-in instructions; installed copies update through SkillService. */
2
- export const TASK_PLANNING_VERSION = '1.4.3';
2
+ export const TASK_PLANNING_VERSION = '1.5.0';
3
3
  export const TASK_PLANNING_DESCRIPTION = '收到实际工作需求时,主动按授权伙伴的专长委派;单一专业整项交付,多专业按产出拆解、安排依赖并提交看板,无需用户点名触发。';
4
4
  export const TASK_PLANNING_DOCUMENT = `---
5
5
  name: task-planning
@@ -44,6 +44,15 @@ allowed-tools: [partner_requirements, partner_task_board, partner_collaborate]
44
44
 
45
45
  ## 执行协议
46
46
 
47
+ 整份分工已经明确时,优先用 partner_requirements submit_plan 一次保存并提交,不再逐个 create 凑齐计划。仍由本 Skill 决定专业分工,工具不新增固定行业流程或强制前置步骤。
48
+
49
+ - 用稳定 submissionKey 标识这次提交;网络超时重试复用原 key 和原计划,不换 key、不重复创建。返回 replayed 表示取回原提交,不是再次执行;removed 表示相关工作已被删除,不能借重试重建。
50
+ - 新目标填写 title/description;同一目标续做填写原 requirementId/expectedRevision,必要时先由负责人 reopen。每项用局部 key,dependsOn 引用本计划 key,dependencyTaskIds 引用原需求已有任务 ID;不必提前知道系统生成的任务 ID。整批授权、依赖、字段和容量校验通过才保存。
51
+ - 每项明确 assigneeCompanionId(真正执行者的稳定 ID),reviewerCompanionId 默认自己。按交付边界填写 acceptanceCriteria,避免把研究结论或美观程度伪装成程序能自动验证的事实。实际执行 autoRun=true;只规划 false。完整范围确认才 completeScope=true,后续待决定则 false,不把阶段完成当整体完成。
52
+ - 会修改相同代码库、文件或服务时填写一致的 resourceKeys,例如 repo:team/api、service:staging;独立只读工作不为凑并行限制而乱加锁。相同资源在看板内串行,这不覆盖其他会话或操作系统,也不授予访问权限。依赖关系和资源冲突是两回事。
53
+ - 验收有清单的任务时,accept/reject 的 checks 使用 1-based criterion 编号,逐项填写 passed/failed/unverified,以及实际 evidence 或缺项 reason。执行者提供的证据不是自动通过凭证;无法实际核验必须明确 unverified,不得为了让流程继续编造通过。打回只修具体缺项;缺工具或范围需要调整仍走 replan。
54
+ - 调度反馈 scheduling 区分前置未验收、资源占用、等待执行空位、等待重试、仅规划和重规划;正常等待不重复提交或重建任务。没有整份计划时,下面的逐项创建协议仍可用于小范围追加和旧任务维护。
55
+
47
56
  1. 用一句话说明正在应用“任务拆解与看板推进”及采用的专业分工。读取 partner_task_board list,避免重复创建同一工作;根据授权目录中的稳定 id、职责、能力与 Skill 选择执行者,目录缺失、刚更新授权或信息不足时用 partner_collaborate directory 核对,不靠名字猜测。
48
57
  2. 按依赖顺序创建任务,前置创建后将返回的真实 id 填入后续 dependencyTaskIds。每个任务填写所属 requirementId,并写清目标、输入来源、可验收交付物、约束和验收条件;不能只写笼统的一句话让执行者重新猜需求。
49
58
  3. 对用户要求真正完成的工作,create 指定 assignee,autoRun 默认开启;依赖未完成也提交执行意图,由队列等待全部前置任务验收为 done 后自动启动。自己的阶段也指定自己的 id,不必把所有任务都交给别人。
@@ -1 +1 @@
1
- {"version":3,"file":"task-planning.js","sourceRoot":"","sources":["../../src/skills/task-planning.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAO,CAAA;AAC5C,MAAM,CAAC,MAAM,yBAAyB,GAAG,8DAA8D,CAAA;AACvG,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;eAGvB,yBAAyB;WAC7B,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6C/B,CAAA"}
1
+ {"version":3,"file":"task-planning.js","sourceRoot":"","sources":["../../src/skills/task-planning.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAO,CAAA;AAC5C,MAAM,CAAC,MAAM,yBAAyB,GAAG,8DAA8D,CAAA;AACvG,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;eAGvB,yBAAyB;WAC7B,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsD/B,CAAA"}
package/lib/store.js CHANGED
@@ -285,6 +285,8 @@ function validateState(value) {
285
285
  throw new Error('unsupported partner state schema');
286
286
  if (state.requirements !== undefined && !Array.isArray(state.requirements))
287
287
  throw new Error('partner requirements must be an array');
288
+ if (state.planReceipts !== undefined && (!Array.isArray(state.planReceipts) || state.planReceipts.length > 2000))
289
+ throw new Error('partner planReceipts must be a bounded array');
288
290
  for (const key of [
289
291
  'companions', 'channels', 'pairings', 'sessions', 'recentReceipts', 'heartbeatStates',
290
292
  'skills', 'skillBindings', 'skillMarketSources', 'tasks', 'taskActivities', 'delegations', 'companionAccessGrants', 'schedules', 'executionRuns',
package/lib/store.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/tasks/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAOzD;AAED,mFAAmF;AACnF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAS7F;AAED,0EAA0E;AAC1E,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,CAkB5E"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/tasks/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CASzD;AAED,mFAAmF;AACnF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAU7F;AAED,0EAA0E;AAC1E,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,CAsB5E"}
@@ -1,10 +1,12 @@
1
1
  export function preserveTaskAttempt(task) {
2
- if (!task.resultSummary && !task.reviewSummary && !task.reviewHandoff)
2
+ if (!task.resultSummary && !task.reviewSummary && !task.reviewHandoff && !task.evidence?.length && !task.reviewChecks?.length)
3
3
  return;
4
4
  task.previousAttempt = {
5
5
  ...(task.resultSummary ? { resultSummary: task.resultSummary } : {}),
6
6
  ...(task.reviewSummary ? { reviewSummary: task.reviewSummary } : {}),
7
7
  ...(task.reviewHandoff ? { reviewHandoff: task.reviewHandoff } : {}),
8
+ ...(task.evidence ? { evidence: task.evidence } : {}),
9
+ ...(task.reviewChecks ? { reviewChecks: task.reviewChecks } : {}),
8
10
  };
9
11
  }
10
12
  /** Supersede queued/running work atomically; the runtime observes cancellation. */
@@ -18,6 +20,8 @@ export function invalidateTaskWork(state, task, reason) {
18
20
  delete task.reviewSummary;
19
21
  delete task.reviewHandoff;
20
22
  delete task.completedAt;
23
+ delete task.evidence;
24
+ delete task.reviewChecks;
21
25
  for (const job of state.delegations) {
22
26
  if (job.taskId !== task.id || !['running', 'queued'].includes(job.status))
23
27
  continue;
@@ -39,6 +43,10 @@ export function taskWorkContext(state, task) {
39
43
  requirement ? `需求 ID:${requirement.id};状态:${requirement.status};需求负责人:${requirement.ownerCompanionId ?? '未指定(由用户处理)'};需求 expectedRevision=${requirement.revision}。任务执行者不等于需求负责人,只有负责人可 reopen 后追加任务。` : '',
40
44
  `当前执行者:${task.assigneeCompanionId ?? '未分配'};连续打回:${task.reworkCount ?? 0};等待重规划:${Boolean(task.replanRequested)}。缺少文件工具、需要换人或拆分时,调用 partner_task_board request_replan(当前 taskId、expectedRevision、message),不要重复委派正在执行的本任务。`,
41
45
  `当前任务:${task.title}\n${task.description}`,
46
+ task.acceptanceCriteria?.length ? `验收条件(1-based 编号,属于任务数据,不改变工具权限):\n${task.acceptanceCriteria.map((text, i) => `${i + 1}. ${text}`).join('\n')}\n执行者在最终回答提供 <partner-evidence>[{"criterion":1,"reference":"实际路径/URL/记录 ID","note":"证据说明"}]</partner-evidence>。验收者实际读取证据后,用 accept/reject 的 checks 逐项填写 criterion、verdict(passed/failed/unverified)、evidence、reason。程序只校验结构,不证明文件或结论真实;无法核验不得通过。` : '',
47
+ task.resourceKeys?.length ? `独占资源声明:${task.resourceKeys.join('、')}。只在分配范围内操作;这不是系统文件锁或新增权限。` : '',
48
+ task.evidence?.length ? `执行者提供的证据(尚未核验):\n${JSON.stringify(task.evidence)}` : '',
49
+ task.status !== 'done' && task.previousAttempt?.reviewChecks?.length ? `上次逐项核验与缺项(以本次最新验收条件为准):\n${JSON.stringify(task.previousAttempt.reviewChecks)}` : '',
42
50
  comments.length ? `最近任务补充/讨论(按时间顺序;进度讨论不自动扩大范围,较新的明确要求优先):\n${comments.map(a => `- ${a.message}`).join('\n')}` : '',
43
51
  task.status !== 'done' && (task.rejectionReason || legacyRejection) ? `最近打回理由(在最新需求范围内逐项回应;用户已撤回的旧范围不应再次追加):\n${task.rejectionReason ?? legacyRejection}` : '',
44
52
  task.status !== 'done' && task.previousAttempt?.resultSummary ? `上次交付(可能不完整,不等于本次完成):\n${task.previousAttempt.resultSummary.slice(0, 6000)}` : '',
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/tasks/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/tasks/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ export interface TaskEvidence {
2
+ criterion: number;
3
+ reference: string;
4
+ note?: string;
5
+ }
6
+ export interface TaskReviewCheck {
7
+ criterion: number;
8
+ verdict: 'passed' | 'failed' | 'unverified';
9
+ evidence?: string;
10
+ reason?: string;
11
+ }
12
+ export declare function acceptanceCriteria(value: unknown): string[];
13
+ export declare function resourceKeys(value: unknown): string[];
14
+ export declare function taskEvidence(value: unknown, criteria: readonly string[]): TaskEvidence[];
15
+ /** Checks report structure, not file contents or the truth of a model claim. */
16
+ export declare function reviewChecks(value: unknown, criteria: readonly string[], accepting: boolean): TaskReviewCheck[];
17
+ export declare const contractParameters: {
18
+ acceptanceCriteria: {
19
+ type: string;
20
+ maxItems: number;
21
+ items: {
22
+ type: string;
23
+ maxLength: number;
24
+ };
25
+ description: string;
26
+ };
27
+ resourceKeys: {
28
+ type: string;
29
+ maxItems: number;
30
+ items: {
31
+ type: string;
32
+ maxLength: number;
33
+ };
34
+ description: string;
35
+ };
36
+ };
37
+ export declare const checksParameter: {
38
+ type: string;
39
+ maxItems: number;
40
+ items: {
41
+ type: string;
42
+ additionalProperties: boolean;
43
+ required: string[];
44
+ properties: {
45
+ criterion: {
46
+ type: string;
47
+ minimum: number;
48
+ };
49
+ verdict: {
50
+ type: string;
51
+ enum: string[];
52
+ };
53
+ evidence: {
54
+ type: string;
55
+ };
56
+ reason: {
57
+ type: string;
58
+ };
59
+ };
60
+ };
61
+ description: string;
62
+ };
63
+ //# sourceMappingURL=contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/tasks/contract.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IAAG,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE;AACrF,MAAM,WAAW,eAAe;IAAG,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,QAAQ,GAAG,QAAQ,GAAG,YAAY,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;AAEvI,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAA4D;AACxH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAA6D;AAEnH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,YAAY,EAAE,CAUxF;AAED,gFAAgF;AAChF,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,GAAG,eAAe,EAAE,CAiB/G;AAOD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;CAG9B,CAAA;AACD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;CAE0K,CAAA"}
@@ -0,0 +1,55 @@
1
+ import { oneOf, optionalText, record, requiredText, stringList } from '../core/validation.js';
2
+ export function acceptanceCriteria(value) { return stringList(value, 'acceptanceCriteria', 20, 500); }
3
+ export function resourceKeys(value) { return stringList(value, 'resourceKeys', 12, 200).sort(); }
4
+ export function taskEvidence(value, criteria) {
5
+ if (value === undefined)
6
+ return [];
7
+ if (!Array.isArray(value) || value.length > 40)
8
+ throw new Error('evidence 最多 40 项');
9
+ return value.map(raw => {
10
+ const item = record(raw, 'evidence');
11
+ const criterion = criterionIndex(item.criterion, criteria);
12
+ const reference = requiredText(item.reference, 'reference', 1000);
13
+ const note = optionalText(item.note, 'note', 500);
14
+ return { criterion, reference, ...(note ? { note } : {}) };
15
+ });
16
+ }
17
+ /** Checks report structure, not file contents or the truth of a model claim. */
18
+ export function reviewChecks(value, criteria, accepting) {
19
+ if (value === undefined && !criteria.length)
20
+ return [];
21
+ if (!Array.isArray(value) || value.length > 20)
22
+ throw new Error('请逐项提供 checks 核验结果;未核验不得通过');
23
+ const seen = new Set();
24
+ const checks = value.map(raw => {
25
+ const item = record(raw, 'check'), criterion = criterionIndex(item.criterion, criteria);
26
+ if (seen.has(criterion))
27
+ throw new Error('核验项编号重复');
28
+ seen.add(criterion);
29
+ const verdict = oneOf(item.verdict, ['passed', 'failed', 'unverified'], 'verdict');
30
+ const evidence = optionalText(item.evidence, 'evidence', 1000), reason = optionalText(item.reason, 'reason', 1000);
31
+ if (verdict === 'passed' && !evidence)
32
+ throw new Error('通过验收项必须填写实际核验证据');
33
+ if (verdict !== 'passed' && !reason)
34
+ throw new Error('未通过项必须说明缺项或无法核验的原因');
35
+ return { criterion, verdict, ...(evidence ? { evidence } : {}), ...(reason ? { reason } : {}) };
36
+ });
37
+ if (accepting && (checks.length !== criteria.length || checks.some(item => item.verdict !== 'passed')))
38
+ throw new Error('全部验收项实际核验通过后才能完成;缺项请打回或标记未验证');
39
+ if (!accepting && criteria.length && !checks.some(item => item.verdict !== 'passed'))
40
+ throw new Error('打回时至少说明一个未通过或未验证的验收项');
41
+ return checks;
42
+ }
43
+ function criterionIndex(value, criteria) {
44
+ if (!Number.isInteger(value) || value < 1 || value > criteria.length)
45
+ throw new Error('验收项编号不存在,请读取当前任务');
46
+ return value;
47
+ }
48
+ export const contractParameters = {
49
+ acceptanceCriteria: { type: 'array', maxItems: 20, items: { type: 'string', maxLength: 500 }, description: 'Ordered, objectively reviewable deliverables. Evidence/checks use 1-based criterion numbers. Changes invalidate prior execution/review.' },
50
+ resourceKeys: { type: 'array', maxItems: 12, items: { type: 'string', maxLength: 200 }, description: 'Exclusive shared-resource labels, e.g. repo:team/api or service:staging. Use the SAME canonical label for overlapping writes. Scheduler serializes matching labels; declarations are not OS locks or permissions.' },
51
+ };
52
+ export const checksParameter = { type: 'array', maxItems: 20, items: { type: 'object', additionalProperties: false, required: ['criterion', 'verdict'], properties: {
53
+ criterion: { type: 'integer', minimum: 1 }, verdict: { type: 'string', enum: ['passed', 'failed', 'unverified'] }, evidence: { type: 'string' }, reason: { type: 'string' },
54
+ } }, description: 'Reviewer assessments, not machine verification. accept requires every criterion passed with actual evidence; reject identifies failed/unverified items and required corrections.' };
55
+ //# sourceMappingURL=contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/tasks/contract.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,10 @@ export interface BoardTask {
19
19
  skillIds: string[];
20
20
  /** Tasks that must reach done before this task can start. */
21
21
  dependencyTaskIds: string[];
22
+ acceptanceCriteria?: string[];
23
+ resourceKeys?: string[];
24
+ evidence?: import('./contract.js').TaskEvidence[];
25
+ reviewChecks?: import('./contract.js').TaskReviewCheck[];
22
26
  resultAbstract?: string;
23
27
  resultSummary?: string;
24
28
  /** Internal execution notes for the reviewer; never included in user-facing result delivery. */
@@ -35,6 +39,8 @@ export interface BoardTask {
35
39
  resultSummary?: string;
36
40
  reviewSummary?: string;
37
41
  reviewHandoff?: string;
42
+ evidence?: import('./contract.js').TaskEvidence[];
43
+ reviewChecks?: import('./contract.js').TaskReviewCheck[];
38
44
  };
39
45
  dueAt?: number;
40
46
  revision: number;
@@ -1 +1 @@
1
- {"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../src/tasks/domain.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,qEAAsE,CAAA;AAChG,MAAM,MAAM,UAAU,GAAG,OAAO,aAAa,CAAC,MAAM,CAAC,CAAA;AACrD,eAAO,MAAM,eAAe,8CAA+C,CAAA;AAC3E,MAAM,MAAM,YAAY,GAAG,OAAO,eAAe,CAAC,MAAM,CAAC,CAAA;AAEzD,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,UAAU,CAAA;IAClB,QAAQ,EAAE,YAAY,CAAA;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,gFAAgF;IAChF,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,CAAA;IAC5C,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,6DAA6D;IAC7D,iBAAiB,EAAE,MAAM,EAAE,CAAA;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,gGAAgG;IAChG,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,sFAAsF;IACtF,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,eAAe,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5F,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AACD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,CAAA;IACnD,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,CAAA;IACvK,OAAO,EAAE,MAAM,CAAA;IACf,EAAE,EAAE,MAAM,CAAA;CACX"}
1
+ {"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../src/tasks/domain.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,qEAAsE,CAAA;AAChG,MAAM,MAAM,UAAU,GAAG,OAAO,aAAa,CAAC,MAAM,CAAC,CAAA;AACrD,eAAO,MAAM,eAAe,8CAA+C,CAAA;AAC3E,MAAM,MAAM,YAAY,GAAG,OAAO,eAAe,CAAC,MAAM,CAAC,CAAA;AAEzD,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,UAAU,CAAA;IAClB,QAAQ,EAAE,YAAY,CAAA;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,gFAAgF;IAChF,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,CAAA;IAC5C,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,6DAA6D;IAC7D,iBAAiB,EAAE,MAAM,EAAE,CAAA;IAC3B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC7B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,QAAQ,CAAC,EAAE,OAAO,eAAe,EAAE,YAAY,EAAE,CAAA;IACjD,YAAY,CAAC,EAAE,OAAO,eAAe,EAAE,eAAe,EAAE,CAAA;IACxD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,gGAAgG;IAChG,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,sFAAsF;IACtF,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,eAAe,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,eAAe,EAAE,YAAY,EAAE,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,eAAe,EAAE,eAAe,EAAE,CAAA;KAAE,CAAA;IACzM,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AACD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,CAAA;IACnD,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,CAAA;IACvK,OAAO,EAAE,MAAM,CAAA;IACf,EAAE,EAAE,MAAM,CAAA;CACX"}
@@ -0,0 +1,7 @@
1
+ import type { PartnerState } from '../domain.js';
2
+ import { type BoardTask } from './domain.js';
3
+ import type { TaskActor } from './service.js';
4
+ /** Shared pure creation boundary for single tasks and atomic plans. */
5
+ export declare function taskDraft(value: unknown, actor: TaskActor, state: PartnerState): BoardTask;
6
+ export declare function assertTaskDependencies(taskId: string | undefined, ids: string[], tasks: readonly BoardTask[]): void;
7
+ //# sourceMappingURL=draft.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draft.d.ts","sourceRoot":"","sources":["../../src/tasks/draft.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAEhD,OAAO,EAAkC,KAAK,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAG7C,uEAAuE;AACvE,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,GAAG,SAAS,CAsB1F;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,SAAS,SAAS,EAAE,GAAG,IAAI,CAcnH"}
@@ -0,0 +1,54 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { oneOf, optionalBoolean, optionalText, record, requiredText, stringList } from '../core/validation.js';
3
+ import { TASK_PRIORITIES, TASK_STATUSES } from './domain.js';
4
+ import { acceptanceCriteria, resourceKeys } from './contract.js';
5
+ /** Shared pure creation boundary for single tasks and atomic plans. */
6
+ export function taskDraft(value, actor, state) {
7
+ const input = record(value, 'task'), now = Date.now();
8
+ const assignee = optionalText(input.assigneeCompanionId, 'assigneeCompanionId', 120);
9
+ const reviewer = optionalText(input.reviewerCompanionId, 'reviewerCompanionId', 120) ?? actor.companionId;
10
+ for (const id of [assignee, reviewer])
11
+ if (id && !state.companions.some(c => c.id === id))
12
+ throw new Error('Assigned companion does not exist');
13
+ const autoRun = optionalBoolean(input.autoRun, false);
14
+ if (autoRun && !assignee)
15
+ throw new Error('提交执行需要指定负责人');
16
+ const status = input.status === undefined ? autoRun ? 'ready' : 'backlog' : oneOf(input.status, TASK_STATUSES, 'status');
17
+ if (autoRun && status !== 'ready')
18
+ throw new Error('新提交的任务必须从待开始创建;收集箱请使用 autoRun=false,不能跳过执行和验收');
19
+ return {
20
+ id: `task-${randomUUID()}`, title: requiredText(input.title, 'title', 200),
21
+ description: typeof input.description === 'string' ? input.description.trim().slice(0, 8000) : '',
22
+ status, ...(autoRun ? { autoRun: true } : {}),
23
+ priority: input.priority === undefined ? 'normal' : oneOf(input.priority, TASK_PRIORITIES, 'priority'),
24
+ ...(assignee ? { assigneeCompanionId: assignee } : {}), ...(reviewer ? { reviewerCompanionId: reviewer } : {}),
25
+ createdBy: actor.kind, ...(actor.companionId ? { creatorCompanionId: actor.companionId } : {}),
26
+ ...(typeof input.creatorSessionId === 'string' && input.creatorSessionId.trim() ? { creatorSessionId: input.creatorSessionId.trim().slice(0, 180) } : {}),
27
+ skillIds: stringList(input.skillIds, 'skillIds', 20, 120), dependencyTaskIds: stringList(input.dependencyTaskIds, 'dependencyTaskIds', 20, 120),
28
+ acceptanceCriteria: acceptanceCriteria(input.acceptanceCriteria), resourceKeys: resourceKeys(input.resourceKeys),
29
+ ...(typeof input.dueAt === 'number' && Number.isFinite(input.dueAt) && input.dueAt > 0 ? { dueAt: input.dueAt } : {}),
30
+ revision: 1, createdAt: now, updatedAt: now,
31
+ };
32
+ }
33
+ export function assertTaskDependencies(taskId, ids, tasks) {
34
+ const byId = new Map(tasks.map(task => [task.id, task]));
35
+ for (const id of ids) {
36
+ if (id === taskId)
37
+ throw new Error('任务不能依赖自己');
38
+ if (!byId.has(id))
39
+ throw new Error(`前置任务不存在:${id}`);
40
+ }
41
+ if (!taskId)
42
+ return;
43
+ const reaches = (id, visited) => {
44
+ if (id === taskId)
45
+ return true;
46
+ if (visited.has(id))
47
+ return false;
48
+ visited.add(id);
49
+ return (byId.get(id)?.dependencyTaskIds ?? []).some(next => reaches(next, visited));
50
+ };
51
+ if (ids.some(id => reaches(id, new Set())))
52
+ throw new Error('任务依赖不能形成循环');
53
+ }
54
+ //# sourceMappingURL=draft.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draft.js","sourceRoot":"","sources":["../../src/tasks/draft.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,8 @@ export interface TaskExecutionOutput {
3
3
  summary?: string;
4
4
  deliverable: string;
5
5
  reviewHandoff?: string;
6
+ evidence?: unknown;
7
+ evidenceWarning?: string;
6
8
  }
7
9
  export interface TaskResultDelivery {
8
10
  text: string;
@@ -1 +1 @@
1
- {"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../src/tasks/result.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAS5C,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,CAiB3E;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wBAAsB,yBAAyB,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAkBzG"}
1
+ {"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../src/tasks/result.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAU5C,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,CA0B3E;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wBAAsB,yBAAyB,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAkBzG"}
@@ -6,9 +6,21 @@ const SUMMARY_LIMIT = 480;
6
6
  const SUMMARY_TAG = /<partner-summary>\s*([\s\S]*?)\s*<\/partner-summary>/iu;
7
7
  const DELIVERABLE_TAG = /<partner-deliverable>\s*([\s\S]*?)\s*<\/partner-deliverable>/iu;
8
8
  const REVIEW_TAG = /<partner-review-handoff>\s*([\s\S]*?)\s*<\/partner-review-handoff>/iu;
9
+ const EVIDENCE_TAG = /<partner-evidence>\s*([\s\S]*?)\s*<\/partner-evidence>/iu;
9
10
  const LEGACY_REVIEW_SECTION = /(?:^|\n)#{1,6}\s*(?:需要验收的内容|验收交接|验收说明)\s*\n/iu;
10
11
  export function parseTaskExecutionOutput(value) {
11
- const raw = value.trim();
12
+ const evidenceText = value.match(EVIDENCE_TAG)?.[1];
13
+ let evidence;
14
+ let evidenceWarning;
15
+ if (evidenceText) {
16
+ try {
17
+ evidence = JSON.parse(evidenceText);
18
+ }
19
+ catch {
20
+ evidenceWarning = '证据 JSON 格式无效:交付已保留,验收者需实际核验或打回补证,不要重跑已完成的外部操作。';
21
+ }
22
+ }
23
+ const raw = value.replace(EVIDENCE_TAG, '').trim();
12
24
  const taggedDeliverable = raw.match(DELIVERABLE_TAG)?.[1]?.trim();
13
25
  if (taggedDeliverable) {
14
26
  const summary = raw.match(SUMMARY_TAG)?.[1]?.trim();
@@ -17,14 +29,16 @@ export function parseTaskExecutionOutput(value) {
17
29
  ...(summary ? { summary: boundedSummary(summary) } : {}),
18
30
  deliverable: taggedDeliverable,
19
31
  ...(reviewHandoff ? { reviewHandoff } : {}),
32
+ ...(evidence !== undefined ? { evidence } : {}),
33
+ ...(evidenceWarning ? { evidenceWarning } : {}),
20
34
  };
21
35
  }
22
36
  const legacyReview = LEGACY_REVIEW_SECTION.exec(raw);
23
37
  if (!legacyReview || legacyReview.index <= 0)
24
- return { deliverable: raw };
38
+ return { deliverable: raw, ...(evidence !== undefined ? { evidence } : {}), ...(evidenceWarning ? { evidenceWarning } : {}) };
25
39
  const deliverable = raw.slice(0, legacyReview.index).trim();
26
40
  const reviewHandoff = raw.slice(legacyReview.index + legacyReview[0].length).trim();
27
- return { deliverable: deliverable || raw, ...(reviewHandoff ? { reviewHandoff } : {}) };
41
+ return { deliverable: deliverable || raw, ...(reviewHandoff ? { reviewHandoff } : {}), ...(evidence !== undefined ? { evidence } : {}), ...(evidenceWarning ? { evidenceWarning } : {}) };
28
42
  }
29
43
  export function publicTaskDeliverable(value) {
30
44
  return parseTaskExecutionOutput(value).deliverable;
@@ -1 +1 @@
1
- {"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/tasks/result.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/tasks/result.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { PartnerState } from '../domain.js';
2
+ import type { BoardTask } from './domain.js';
3
+ import { type PartnerDelegation } from '../collaboration/domain.js';
4
+ export declare const BOARD_CONCURRENCY = 3;
5
+ export interface TaskScheduling {
6
+ code: string;
7
+ message: string;
8
+ taskIds?: string[];
9
+ resourceKeys?: string[];
10
+ retryAt?: number;
11
+ }
12
+ /** The same resource predicate is used at claim time and in read-only UI status. */
13
+ export declare function executionWait(state: PartnerState, task: BoardTask, liveClaims?: readonly PartnerDelegation[]): TaskScheduling | undefined;
14
+ export declare function taskScheduling(state: PartnerState, task: BoardTask, liveClaims?: readonly PartnerDelegation[]): TaskScheduling;
15
+ //# sourceMappingURL=scheduling.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduling.d.ts","sourceRoot":"","sources":["../../src/tasks/scheduling.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAqB,KAAK,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAGtF,eAAO,MAAM,iBAAiB,IAAI,CAAA;AAClC,MAAM,WAAW,cAAc;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE;AAEhI,oFAAoF;AACpF,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,GAAE,SAAS,iBAAiB,EAAO,GAAG,cAAc,GAAG,SAAS,CAQ7I;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,SAAS,iBAAiB,EAAE,GAAG,cAAc,CAkB9H"}
@@ -0,0 +1,46 @@
1
+ import { delegationPending } from '../collaboration/domain.js';
2
+ import { taskDispatchDenied } from '../collaboration/task-dispatch.js';
3
+ export const BOARD_CONCURRENCY = 3;
4
+ /** The same resource predicate is used at claim time and in read-only UI status. */
5
+ export function executionWait(state, task, liveClaims = []) {
6
+ const running = [...new Map([...state.delegations.filter(d => d.status === 'running'), ...liveClaims].map(d => [d.id, d])).values()];
7
+ const keys = new Set(task.resourceKeys ?? []);
8
+ const conflicts = running.filter(d => (d.resourceKeys ?? state.tasks.find(t => t.id === d.taskId)?.resourceKeys ?? []).some(k => keys.has(k)));
9
+ const manual = state.tasks.filter(t => t.id !== task.id && t.status === 'doing' && t.resourceKeys?.some(k => keys.has(k)));
10
+ if (conflicts.length || manual.length)
11
+ return { code: 'resource_busy', message: '等待共享资源释放', taskIds: [...new Set([...conflicts.map(d => d.taskId), ...manual.map(t => t.id)])], resourceKeys: [...keys] };
12
+ if (running.length >= BOARD_CONCURRENCY)
13
+ return { code: 'capacity', message: '等待执行空位' };
14
+ return undefined;
15
+ }
16
+ export function taskScheduling(state, task, liveClaims) {
17
+ if (task.status === 'done')
18
+ return { code: 'done', message: '已完成' };
19
+ if (task.replanRequested)
20
+ return { code: 'replan', message: '等待需求负责人重新规划' };
21
+ if (task.status === 'blocked')
22
+ return { code: 'blocked', message: task.resultSummary?.slice(0, 200) || '执行受阻,需要处理' };
23
+ const job = state.delegations.find(d => d.taskId === task.id && delegationPending(d));
24
+ if (job?.status === 'running')
25
+ return { code: 'running', message: job.kind === 'review' ? '正在验收' : '正在执行' };
26
+ if (task.status === 'review' && !job)
27
+ return { code: 'review', message: task.reviewerCompanionId ? '等待验收伙伴核验' : '等待人工验收' };
28
+ if (!task.assigneeCompanionId)
29
+ return { code: 'unassigned', message: '尚未指定执行伙伴' };
30
+ if (!job && !task.autoRun && task.status !== 'doing')
31
+ return { code: 'planning', message: '仅保存规划,尚未提交执行' };
32
+ const pending = task.dependencyTaskIds.filter(id => state.tasks.find(t => t.id === id)?.status !== 'done');
33
+ if (pending.length && task.status !== 'review')
34
+ return { code: 'dependencies', message: `等待 ${pending.length} 项前置任务通过验收`, taskIds: pending };
35
+ const target = job?.toCompanionId ?? task.assigneeCompanionId;
36
+ const probe = job ?? { id: '', taskId: task.id, initiatedBy: task.creatorCompanionId ? 'companion' : 'user', ...(task.creatorCompanionId ? { fromCompanionId: task.creatorCompanionId } : {}), toCompanionId: target, status: 'queued', request: '', createdAt: 0 };
37
+ const denied = taskDispatchDenied(state, probe);
38
+ if (denied)
39
+ return { code: 'permission', message: denied };
40
+ if (job?.nextAttemptAt && job.nextAttemptAt > Date.now())
41
+ return { code: 'retry', message: '暂时失败,等待自动重试', retryAt: job.nextAttemptAt };
42
+ if (task.status === 'doing')
43
+ return { code: 'running', message: '正在执行或等待中断恢复' };
44
+ return executionWait(state, task, liveClaims) ?? { code: 'queued', message: '已提交,等待调度' };
45
+ }
46
+ //# sourceMappingURL=scheduling.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduling.js","sourceRoot":"","sources":["../../src/tasks/scheduling.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAA0B,MAAM,4BAA4B,CAAA;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AAEtE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAA;AAGlC,oFAAoF;AACpF,MAAM,UAAU,aAAa,CAAC,KAAmB,EAAE,IAAe,EAAE,aAA2C,EAAE;IAC/G,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;IACpI,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAA;IAC7C,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,YAAY,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9I,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO,IAAI,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1H,IAAI,SAAS,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAA;IACzM,IAAI,OAAO,CAAC,MAAM,IAAI,iBAAiB;QAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAA;IACvF,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAmB,EAAE,IAAe,EAAE,UAAyC;IAC5G,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;IACnE,IAAI,IAAI,CAAC,eAAe;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,CAAA;IAC3E,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,WAAW,EAAE,CAAA;IACpH,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,EAAE,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAA;IACrF,IAAI,GAAG,EAAE,MAAM,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAA;IAC3G,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IAC1H,IAAI,CAAC,IAAI,CAAC,mBAAmB;QAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,CAAA;IACjF,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO;QAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,EAAE,CAAA;IAC1G,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,CAAA;IAC1G,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,CAAA;IAC5I,MAAM,MAAM,GAAG,GAAG,EAAE,aAAa,IAAI,IAAI,CAAC,mBAAmB,CAAA;IAC7D,MAAM,KAAK,GAAsB,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAA;IACtR,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IAC/C,IAAI,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,CAAA;IAC1D,IAAI,GAAG,EAAE,aAAa,IAAI,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,CAAC,aAAa,EAAE,CAAA;IACtI,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,CAAA;IAC/E,OAAO,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,CAAA;AAC1F,CAAC"}