@lemoncat7/dsh-partner 1.12.0 → 1.14.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 (142) hide show
  1. package/README.md +22 -2
  2. package/docs/architecture.md +4 -0
  3. package/docs/releases/1.14.0.md +24 -0
  4. package/lib/agent-runtime.d.ts +23 -2
  5. package/lib/agent-runtime.d.ts.map +1 -1
  6. package/lib/agent-runtime.js +45 -282
  7. package/lib/agent-runtime.js.map +1 -1
  8. package/lib/api/features/workspace-api.d.ts.map +1 -1
  9. package/lib/api/features/workspace-api.js +7 -0
  10. package/lib/api/features/workspace-api.js.map +1 -1
  11. package/lib/api/http.d.ts +1 -1
  12. package/lib/api/http.d.ts.map +1 -1
  13. package/lib/api/http.js +2 -2
  14. package/lib/api/http.js.map +1 -1
  15. package/lib/api.js +34 -2
  16. package/lib/api.js.map +1 -1
  17. package/lib/autonomy.d.ts.map +1 -1
  18. package/lib/autonomy.js +13 -5
  19. package/lib/autonomy.js.map +1 -1
  20. package/lib/client-api.d.ts +8 -1
  21. package/lib/client-api.d.ts.map +1 -1
  22. package/lib/client-api.js.map +1 -1
  23. package/lib/client.js +1875 -1379
  24. package/lib/client.js.map +4 -4
  25. package/lib/collaboration/composition.js +7 -3
  26. package/lib/collaboration/composition.js.map +1 -1
  27. package/lib/companions/session-recovery.d.ts +7 -0
  28. package/lib/companions/session-recovery.d.ts.map +1 -0
  29. package/lib/companions/session-recovery.js +22 -0
  30. package/lib/companions/session-recovery.js.map +1 -0
  31. package/lib/concern-domain.d.ts +9 -0
  32. package/lib/concern-domain.d.ts.map +1 -1
  33. package/lib/concern-domain.js.map +1 -1
  34. package/lib/concern-recording.d.ts +20 -0
  35. package/lib/concern-recording.d.ts.map +1 -0
  36. package/lib/concern-recording.js +37 -0
  37. package/lib/concern-recording.js.map +1 -0
  38. package/lib/concern-store.d.ts +20 -1
  39. package/lib/concern-store.d.ts.map +1 -1
  40. package/lib/concern-store.js +170 -1
  41. package/lib/concern-store.js.map +1 -1
  42. package/lib/heartbeat.d.ts +16 -0
  43. package/lib/heartbeat.d.ts.map +1 -1
  44. package/lib/heartbeat.js +70 -5
  45. package/lib/heartbeat.js.map +1 -1
  46. package/lib/memory-errors.d.ts +6 -0
  47. package/lib/memory-errors.d.ts.map +1 -0
  48. package/lib/memory-errors.js +12 -0
  49. package/lib/memory-errors.js.map +1 -0
  50. package/lib/memory-journal.js +4 -4
  51. package/lib/memory-journal.js.map +1 -1
  52. package/lib/memory-reflection.d.ts.map +1 -1
  53. package/lib/memory-reflection.js +11 -3
  54. package/lib/memory-reflection.js.map +1 -1
  55. package/lib/memory-store.d.ts +4 -0
  56. package/lib/memory-store.d.ts.map +1 -1
  57. package/lib/memory-store.js +11 -3
  58. package/lib/memory-store.js.map +1 -1
  59. package/lib/observation-budget.d.ts +10 -0
  60. package/lib/observation-budget.d.ts.map +1 -0
  61. package/lib/observation-budget.js +11 -0
  62. package/lib/observation-budget.js.map +1 -0
  63. package/lib/observation-errors.d.ts +22 -0
  64. package/lib/observation-errors.d.ts.map +1 -0
  65. package/lib/observation-errors.js +37 -0
  66. package/lib/observation-errors.js.map +1 -0
  67. package/lib/observation-executor.d.ts +7 -0
  68. package/lib/observation-executor.d.ts.map +1 -0
  69. package/lib/observation-executor.js +23 -0
  70. package/lib/observation-executor.js.map +1 -0
  71. package/lib/observation-loop.d.ts +17 -0
  72. package/lib/observation-loop.d.ts.map +1 -0
  73. package/lib/observation-loop.js +195 -0
  74. package/lib/observation-loop.js.map +1 -0
  75. package/lib/recording-snapshot.d.ts +11 -0
  76. package/lib/recording-snapshot.d.ts.map +1 -0
  77. package/lib/recording-snapshot.js +19 -0
  78. package/lib/recording-snapshot.js.map +1 -0
  79. package/lib/skills/import-request.d.ts +3 -0
  80. package/lib/skills/import-request.d.ts.map +1 -0
  81. package/lib/skills/import-request.js +26 -0
  82. package/lib/skills/import-request.js.map +1 -0
  83. package/lib/skills/package-zip.d.ts +5 -0
  84. package/lib/skills/package-zip.d.ts.map +1 -0
  85. package/lib/skills/package-zip.js +75 -0
  86. package/lib/skills/package-zip.js.map +1 -0
  87. package/lib/skills/package.d.ts +15 -0
  88. package/lib/skills/package.d.ts.map +1 -0
  89. package/lib/skills/package.js +48 -0
  90. package/lib/skills/package.js.map +1 -0
  91. package/lib/skills/repository.d.ts +2 -0
  92. package/lib/skills/repository.d.ts.map +1 -1
  93. package/lib/skills/repository.js +7 -0
  94. package/lib/skills/repository.js.map +1 -1
  95. package/lib/skills/service.d.ts +2 -0
  96. package/lib/skills/service.d.ts.map +1 -1
  97. package/lib/skills/service.js +10 -2
  98. package/lib/skills/service.js.map +1 -1
  99. package/lib/skills/task-planning.d.ts +2 -2
  100. package/lib/skills/task-planning.d.ts.map +1 -1
  101. package/lib/skills/task-planning.js +8 -1
  102. package/lib/skills/task-planning.js.map +1 -1
  103. package/lib/ui/memory/concern-board.d.ts +4 -2
  104. package/lib/ui/memory/concern-board.d.ts.map +1 -1
  105. package/lib/ui/memory/concern-board.js +17 -6
  106. package/lib/ui/memory/concern-board.js.map +1 -1
  107. package/lib/ui/memory/concern-deletion.d.ts +12 -0
  108. package/lib/ui/memory/concern-deletion.d.ts.map +1 -0
  109. package/lib/ui/memory/concern-deletion.js +43 -0
  110. package/lib/ui/memory/concern-deletion.js.map +1 -0
  111. package/lib/ui/memory/concern-editor.d.ts +8 -0
  112. package/lib/ui/memory/concern-editor.d.ts.map +1 -0
  113. package/lib/ui/memory/concern-editor.js +37 -0
  114. package/lib/ui/memory/concern-editor.js.map +1 -0
  115. package/lib/ui/memory/concern-panel.d.ts.map +1 -1
  116. package/lib/ui/memory/concern-panel.js +51 -12
  117. package/lib/ui/memory/concern-panel.js.map +1 -1
  118. package/lib/ui/memory/concern-record-fields.d.ts +10 -0
  119. package/lib/ui/memory/concern-record-fields.d.ts.map +1 -0
  120. package/lib/ui/memory/concern-record-fields.js +7 -0
  121. package/lib/ui/memory/concern-record-fields.js.map +1 -0
  122. package/lib/ui/memory/job-feedback.d.ts +5 -0
  123. package/lib/ui/memory/job-feedback.d.ts.map +1 -0
  124. package/lib/ui/memory/job-feedback.js +7 -0
  125. package/lib/ui/memory/job-feedback.js.map +1 -0
  126. package/lib/ui/memory/memory-panel.d.ts.map +1 -1
  127. package/lib/ui/memory/memory-panel.js +4 -2
  128. package/lib/ui/memory/memory-panel.js.map +1 -1
  129. package/lib/ui/memory/record-target-picker.d.ts +7 -0
  130. package/lib/ui/memory/record-target-picker.d.ts.map +1 -0
  131. package/lib/ui/memory/record-target-picker.js +33 -0
  132. package/lib/ui/memory/record-target-picker.js.map +1 -0
  133. package/lib/ui/memory/types.d.ts +4 -0
  134. package/lib/ui/memory/types.d.ts.map +1 -1
  135. package/lib/ui/skill-import-dialog.d.ts +5 -0
  136. package/lib/ui/skill-import-dialog.d.ts.map +1 -0
  137. package/lib/ui/skill-import-dialog.js +72 -0
  138. package/lib/ui/skill-import-dialog.js.map +1 -0
  139. package/lib/ui/skills-panel.d.ts.map +1 -1
  140. package/lib/ui/skills-panel.js +3 -1
  141. package/lib/ui/skills-panel.js.map +1 -1
  142. package/package.json +2 -1
@@ -0,0 +1,48 @@
1
+ /** Common validation for browser directory uploads and ZIP packages. */
2
+ export const SKILL_PACKAGE_LIMIT = 32 * 1024 * 1024;
3
+ export const SKILL_FILE_LIMIT = 8 * 1024 * 1024;
4
+ export const SKILL_PACKAGE_FILES = 512;
5
+ export function packagePath(path) {
6
+ const normalized = path.normalize('NFC').replace(/\\/g, '/');
7
+ if (!normalized || normalized.length > 500 || /[\u0000-\u001f\u007f:]/u.test(normalized) || normalized.startsWith('/'))
8
+ throw new Error('Skill 包含无效或绝对路径');
9
+ const parts = normalized.split('/');
10
+ if (parts.some(part => !part || part === '.' || part === '..' || /[. ]$/u.test(part) || /^(con|prn|aux|nul|com[1-9]|lpt[1-9])(?:\.|$)/iu.test(part)))
11
+ throw new Error('Skill 包含不安全的文件路径');
12
+ return normalized;
13
+ }
14
+ export function prepareSkillPackage(input) {
15
+ if (!input.length || input.length > SKILL_PACKAGE_FILES)
16
+ throw new Error(`Skill 包应包含 1–${SKILL_PACKAGE_FILES} 个文件`);
17
+ let total = 0;
18
+ const seen = new Set();
19
+ const files = input.map(file => {
20
+ const path = packagePath(file.path), key = path.toLowerCase();
21
+ if (seen.has(key))
22
+ throw new Error(`Skill 包含重复文件:${path}`);
23
+ seen.add(key);
24
+ total += file.bytes.byteLength;
25
+ if (file.bytes.byteLength > SKILL_FILE_LIMIT || total > SKILL_PACKAGE_LIMIT)
26
+ throw new Error('Skill 文件超过 8 MiB 或展开后的包超过 32 MiB');
27
+ return { path, bytes: file.bytes };
28
+ }).filter(file => !file.path.split('/').some(part => ['__MACOSX', '.DS_Store', '.git', 'node_modules'].includes(part)));
29
+ const documents = files.filter(file => file.path.split('/').at(-1)?.toLowerCase() === 'skill.md');
30
+ const depth = Math.min(...documents.map(file => file.path.split('/').length));
31
+ const roots = documents.filter(file => file.path.split('/').length === depth);
32
+ if (roots.length !== 1)
33
+ throw new Error(roots.length ? '包含多个 Skill,请分别选择每个 Skill 目录或压缩包导入' : '没有找到 SKILL.md,请选择包含该文件的 Skill 目录或 ZIP');
34
+ const main = roots[0];
35
+ if (main.bytes.byteLength > 512 * 1024)
36
+ throw new Error('SKILL.md 超过 512 KiB');
37
+ const prefix = main.path.slice(0, main.path.length - 'SKILL.md'.length);
38
+ const selected = files.filter(file => file.path.startsWith(prefix)).map(file => ({ ...file, path: file === main ? 'SKILL.md' : file.path.slice(prefix.length) }));
39
+ const paths = new Set(selected.map(file => file.path.toLowerCase()));
40
+ for (const file of selected) {
41
+ const parts = file.path.toLowerCase().split('/');
42
+ for (let length = 1; length < parts.length; length++)
43
+ if (paths.has(parts.slice(0, length).join('/')))
44
+ throw new Error('Skill 文件与目录路径冲突');
45
+ }
46
+ return { document: new TextDecoder('utf-8', { fatal: true }).decode(main.bytes), files: selected.filter(file => file.path !== 'SKILL.md') };
47
+ }
48
+ //# sourceMappingURL=package.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package.js","sourceRoot":"","sources":["../../src/skills/package.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { LoadedSkill, PartnerSkill, SkillSourceKind } from './domain.js';
2
+ import { type SkillPackageFile } from './package.js';
2
3
  export declare class SkillRepository {
3
4
  readonly root: string;
4
5
  constructor(root: string);
@@ -11,6 +12,7 @@ export declare class SkillRepository {
11
12
  sourceId?: string;
12
13
  trusted: boolean;
13
14
  now?: number;
15
+ files?: SkillPackageFile[];
14
16
  }): Promise<PartnerSkill>;
15
17
  remove(skill: PartnerSkill): Promise<void>;
16
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../src/skills/repository.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAI7E,qBAAa,eAAe;IACd,QAAQ,CAAC,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM;IAE3B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,IAAI,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ/C,OAAO,CAAC,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,eAAe,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IA+BnJ,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;CAKjD"}
1
+ {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../src/skills/repository.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7E,OAAO,EAAuB,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAIzE,qBAAa,eAAe;IACd,QAAQ,CAAC,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM;IAE3B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,IAAI,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ/C,OAAO,CAAC,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,eAAe,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAqC/K,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;CAKjD"}
@@ -2,6 +2,7 @@ import { randomUUID } from 'node:crypto';
2
2
  import { mkdir, rename, rm, writeFile } from 'node:fs/promises';
3
3
  import { dirname, isAbsolute, join, relative, resolve, sep } from 'node:path';
4
4
  import { loadSkill, skillMetadata } from './loader.js';
5
+ import { prepareSkillPackage } from './package.js';
5
6
  const SAFE_ID = /^[a-z0-9][a-z0-9._-]{0,119}$/i;
6
7
  export class SkillRepository {
7
8
  root;
@@ -23,6 +24,7 @@ export class SkillRepository {
23
24
  throw new Error('Skill id is invalid');
24
25
  if (Buffer.byteLength(input.document) > 512 * 1024)
25
26
  throw new Error('SKILL.md exceeds the 512 KiB limit');
27
+ const resources = input.files ? prepareSkillPackage([{ path: 'SKILL.md', bytes: Buffer.from(input.document) }, ...input.files]).files : [];
26
28
  await this.initialize();
27
29
  const now = input.now ?? Date.now();
28
30
  const target = join(this.root, input.id);
@@ -31,6 +33,11 @@ export class SkillRepository {
31
33
  await mkdir(temporary, { recursive: false, mode: 0o700 });
32
34
  try {
33
35
  await writeFile(join(temporary, 'SKILL.md'), input.document, { encoding: 'utf8', mode: 0o600, flag: 'wx' });
36
+ for (const file of resources) {
37
+ const destination = join(temporary, file.path);
38
+ await mkdir(dirname(destination), { recursive: true, mode: 0o700 });
39
+ await writeFile(destination, file.bytes, { mode: 0o600, flag: 'wx' });
40
+ }
34
41
  const loaded = await loadSkill({
35
42
  id: input.id, rootPath: temporary, source: input.source, ...(input.sourceId ? { sourceId: input.sourceId } : {}),
36
43
  trusted: input.trusted, installedAt: now, updatedAt: now,
@@ -1 +1 @@
1
- {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/skills/repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/skills/repository.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import type { Companion, PartnerState } from '../domain.js';
2
2
  import type { PartnerStore } from '../store.js';
3
3
  import type { LoadedSkill, MarketSkillEntry, PartnerSkill, SkillMarketSource } from './domain.js';
4
4
  import { SkillRepository } from './repository.js';
5
+ import { type SkillPackageFile } from './package.js';
5
6
  export declare class SkillService {
6
7
  private readonly store;
7
8
  readonly repository: SkillRepository;
@@ -12,6 +13,7 @@ export declare class SkillService {
12
13
  bindings(companionId: string, state?: Pick<PartnerState, 'skills' | 'skillBindings'>): PartnerSkill[];
13
14
  load(skillId: string): Promise<LoadedSkill>;
14
15
  installLocal(document: string, id?: string): Promise<PartnerSkill>;
16
+ importPackage(input: Uint8Array | SkillPackageFile[]): Promise<PartnerSkill>;
15
17
  private installLocalLocked;
16
18
  uninstall(skillId: string): Promise<void>;
17
19
  private uninstallLocked;
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/skills/service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAG/C,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAEjG,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAYjD,qBAAa,YAAY;IAIX,OAAO,CAAC,QAAQ,CAAC,KAAK;IAAgB,QAAQ,CAAC,UAAU,EAAE,eAAe;IAHtF,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiC;IACvD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwB;gBAErB,KAAK,EAAE,YAAY,EAAW,UAAU,EAAE,eAAe;IAEhF,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAejC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,GAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,eAAe,CAAyB,GAAG,YAAY,EAAE;IAKtH,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ3C,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;YAI1D,kBAAkB;IAU1B,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAIjC,eAAe;IAUvB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAUjF,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAe3D,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASzD,eAAe,IAAI;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;IAIlC,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAQlE,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,IAAI,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAc9G,MAAM,CAAC,KAAK,UAAQ,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;QAAC,OAAO,EAAE,gBAAgB,EAAE,CAAC;QAAC,MAAM,EAAE,KAAK,CAAC;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IAWjJ,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;YAI/D,mBAAmB;YA6BnB,UAAU;YAQV,WAAW;IAMzB,OAAO,CAAC,qBAAqB;CAI9B;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,WAAW,GAAE,WAAW,CAAC,MAAM,CAAa,GAAG,MAAM,CAMtI"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/skills/service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAG/C,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAEjG,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAIjD,OAAO,EAAuB,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAUzE,qBAAa,YAAY;IAIX,OAAO,CAAC,QAAQ,CAAC,KAAK;IAAgB,QAAQ,CAAC,UAAU,EAAE,eAAe;IAHtF,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiC;IACvD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwB;gBAErB,KAAK,EAAE,YAAY,EAAW,UAAU,EAAE,eAAe;IAEhF,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAejC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,GAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,eAAe,CAAyB,GAAG,YAAY,EAAE;IAKtH,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ3C,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAIlE,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,gBAAgB,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;YAOpE,kBAAkB;IAU1B,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAIjC,eAAe;IAUvB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAUjF,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAe3D,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASzD,eAAe,IAAI;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;IAIlC,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAQlE,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,IAAI,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAc9G,MAAM,CAAC,KAAK,UAAQ,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;QAAC,OAAO,EAAE,gBAAgB,EAAE,CAAC;QAAC,MAAM,EAAE,KAAK,CAAC;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IAWjJ,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;YAI/D,mBAAmB;YA6BnB,UAAU;YAQV,WAAW;IAMzB,OAAO,CAAC,qBAAqB;CAI9B;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,WAAW,GAAE,WAAW,CAAC,MAAM,CAAa,GAAG,MAAM,CAMtI"}
@@ -5,6 +5,8 @@ import { sha256 } from './loader.js';
5
5
  import { BUILTIN_SKILLS, BUILTIN_SKILL_SOURCE } from './builtin.js';
6
6
  import { marketRequest, parseMarketResponse } from './markets/adapters.js';
7
7
  import { extractSkillMarkdown } from './zip.js';
8
+ import { prepareSkillPackage } from './package.js';
9
+ import { readSkillZip } from './package-zip.js';
8
10
  import { normalizeProxyUrl, requestRemoteBytes, requestRemoteText } from './network.js';
9
11
  const MARKET_CACHE_MS = 5 * 60_000;
10
12
  const MAX_MARKET_BYTES = 1024 * 1024;
@@ -51,10 +53,16 @@ export class SkillService {
51
53
  async installLocal(document, id) {
52
54
  return this.mutations.use(() => this.installLocalLocked(document, id));
53
55
  }
54
- async installLocalLocked(document, id) {
56
+ async importPackage(input) {
57
+ return this.mutations.use(async () => {
58
+ const bundle = Array.isArray(input) ? prepareSkillPackage(input) : await readSkillZip(input);
59
+ return this.installLocalLocked(bundle.document, undefined, bundle.files);
60
+ });
61
+ }
62
+ async installLocalLocked(document, id, files) {
55
63
  const skillId = id ? requiredText(id, 'skill id', 120) : `skill-${randomUUID()}`;
56
64
  this.assertInstallCapacity(skillId);
57
- const installed = await this.repository.install({ id: skillId, document, source: 'local', trusted: true });
65
+ const installed = await this.repository.install({ id: skillId, document, source: 'local', trusted: true, ...(files ? { files } : {}) });
58
66
  await this.store.update(state => {
59
67
  state.skills = [...state.skills.filter(item => item.id !== installed.id), installed];
60
68
  });
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/skills/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/skills/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAGxC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,EAAE,mBAAmB,EAAyB,MAAM,cAAc,CAAA;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAEvF,MAAM,eAAe,GAAG,CAAC,GAAG,MAAM,CAAA;AAClC,MAAM,gBAAgB,GAAG,IAAI,GAAG,IAAI,CAAA;AACpC,MAAM,eAAe,GAAG,GAAG,GAAG,IAAI,CAAA;AAIlC,MAAM,OAAO,YAAY;IAIM;IAA8B;IAH1C,KAAK,GAAG,IAAI,GAAG,EAAuB,CAAA;IACtC,SAAS,GAAG,IAAI,cAAc,CAAC,CAAC,CAAC,CAAA;IAElD,YAA6B,KAAmB,EAAW,UAA2B;QAAzD,UAAK,GAAL,KAAK,CAAc;QAAW,eAAU,GAAV,UAAU,CAAiB;IAAG,CAAC;IAE1F,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAA;QAClC,MAAM,YAAY,GAAmB,EAAE,CAAA;QACvC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC;YACjD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;gBAAE,SAAQ;YACxC,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YAC5C,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,QAAQ,KAAK,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;gBAAE,SAAQ;YACrE,YAAY,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,oBAAoB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QAClK,CAAC;QACD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;gBAC3D,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;gBAClE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAA;YACvE,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,QAAQ,CAAC,WAAmB,EAAE,QAAwD,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;QACzG,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,KAAK,WAAW,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;QACvI,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;IAC1D,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAe;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,OAAO,CAAC,CAAA;QAC5E,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;QACrD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAChD,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAA;QAC/H,OAAO,MAAM,CAAA;IACf,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAAgB,EAAE,EAAW;QAC9C,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAA;IACxE,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAsC;QACxD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;YACnC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,KAAK,CAAC,CAAA;YAC5F,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;QAC1E,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,QAAgB,EAAE,EAAW,EAAE,KAA0B;QACxF,MAAM,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,EAAE,EAAE,CAAA;QAChF,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAA;QACnC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;QACvI,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YAC9B,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;QACtF,CAAC,CAAC,CAAA;QACF,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAe;QAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAA;IAChE,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,OAAe;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,OAAO,CAAC,CAAA;QAC5E,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;QACrD,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YAC9B,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,OAAO,CAAC,CAAA;YAC/D,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,CAAA;QACpF,CAAC,CAAC,CAAA;QACF,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACrC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,WAAmB,EAAE,OAAe,EAAE,OAAgB;QACrE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAA;QACnC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,WAAW,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;QACxG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,OAAO,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;QAC9F,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YAC9B,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,KAAK,WAAW,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAA;YACzH,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAA;QAC7D,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,KAAc;QAClC,MAAM,KAAK,GAAG,KAAgC,CAAA;QAC9C,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAA;QAC7E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,MAAM,MAAM,GAAsB;YAChC,EAAE,EAAE,UAAU,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ;YACtG,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG;SAC9H,CAAA;QACD,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YAC9B,IAAI,KAAK,CAAC,kBAAkB,CAAC,MAAM,IAAI,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;YAC/F,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACvC,CAAC,CAAC,CAAA;QACF,OAAO,MAAM,CAAA;IACf,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,QAAgB;QACvC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAA;YAC1E,IAAI,MAAM,EAAE,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;YACtF,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAA;QAC1F,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC7B,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,kBAAkB,CAAA;IACjD,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,KAAc;QACrC,MAAM,KAAK,GAAG,KAAgC,CAAA;QAC9C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAClD,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,kBAAkB,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA,CAAC,CAAC,CAAC,CAAA;QAC7F,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;QAClB,OAAO,IAAI,CAAC,eAAe,EAAE,CAAA;IAC/B,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAc;QAC9B,MAAM,KAAK,GAAG,KAAgC,CAAA;QAC9C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACrF,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAC5B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;QACnG,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAwD,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,WAAW,CAAC,CAAA;QACjI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;YAC/J,MAAM,IAAI,KAAK,CAAC,kBAAkB,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAA;QAChF,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAA;IACpK,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACrF,MAAM,MAAM,GAA+C,EAAE,CAAA;QAC7D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;YAC1D,IAAI,CAAC;gBAAC,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;YAAC,CAAC;YACnD,OAAO,KAAK,EAAE,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAAC,OAAO,EAAE,CAAA;YAAC,CAAC;QAClI,CAAC,CAAC,CAAC,CAAA;QACH,MAAM,OAAO,GAAG,iBAAiB,CAAC,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;QAC7G,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAA;IACrC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,QAAgB,EAAE,OAAe;QACnD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAA;IAC9E,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,QAAgB,EAAE,OAAe;QACjE,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAA;QACnC,IAAI,QAAQ,KAAK,oBAAoB,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAC3C,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;YAC9D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,oBAAoB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;YAC9J,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;gBAC9B,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;YACtF,CAAC,CAAC,CAAA;YACF,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,CAAA;QAC1G,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;QAClE,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,OAAO,CAAC,CAAA;QACtF,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;QAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAA;QAChD,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,KAAK,KAAK;YAC1C,CAAC,CAAC,MAAM,iBAAiB,CAAC,KAAK,CAAC,QAAQ,EAAE,eAAe,EAAE,QAAQ,CAAC;YACpE,CAAC,CAAC,MAAM,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;QACzE,IAAI,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;QACnI,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAC9C,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO;SACvF,CAAC,CAAA;QACF,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YAC9B,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;QACtF,CAAC,CAAC,CAAA;QACF,OAAO,SAAS,CAAA;IAClB,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,MAAyB,EAAE,KAAc;QAChE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACxC,IAAI,CAAC,KAAK,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE;YAAE,OAAO,MAAM,CAAC,OAAO,CAAA;QAC5E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,CAAA;QAC/E,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,eAAe,EAAE,CAAC,CAAA;QAC/E,OAAO,OAAO,CAAA;IAChB,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,MAAyB,EAAE,QAAiB;QACpE,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;QACrC,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,gBAAgB,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QAClF,OAAO,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAA;IACrD,CAAC;IAEO,qBAAqB,CAAC,OAAe;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAA;QAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IACzH,CAAC;CACF;AAED,MAAM,UAAU,mBAAmB,CAAC,SAAoB,EAAE,MAAsB,EAAE,cAAmC,IAAI,GAAG,EAAE;IAC5H,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAChF,OAAO;QACL,+KAA+K;QAC/K,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;KACnL,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,GAAW,EAAE,KAAa,EAAE,OAAoB,EAAE,EAAE,QAAiB;IAC5F,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,2CAA2C,CAAC,CAAA;IAC9F,OAAO,iBAAiB,CAAC;QACvB,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO;QACnE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClC,CAAC,CAAA;AACJ,CAAC;AACD,KAAK,UAAU,iBAAiB,CAAC,GAAW,EAAE,KAAa,EAAE,QAAiB;IAC5E,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC;QACrC,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM;QACpE,OAAO,EAAE,EAAE,MAAM,EAAE,0CAA0C,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnG,CAAC,CAAA;IACF,OAAO,oBAAoB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AAC3C,CAAC;AACD,SAAS,YAAY,CAAC,KAAa;IACjC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAA;IAC1B,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;IACpH,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC;IAAC,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAA;IACpC,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAA;AACvB,CAAC;AACD,SAAS,iBAAiB,CAAC,KAAa;IACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,iBAAiB,EAAE,CAAA;IAC1E,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IACvF,OAAO,QAAQ,CAAA;AACjB,CAAC;AACD,SAAS,iBAAiB,CAAC,OAA2B;IACpD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,CAAA,CAAC,CAAC,CAAC,CAAA;AAC9I,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /** Versioned built-in instructions; installed copies update through SkillService. */
2
- export declare const TASK_PLANNING_VERSION = "1.5.0";
2
+ export declare const TASK_PLANNING_VERSION = "1.6.0";
3
3
  export declare const TASK_PLANNING_DESCRIPTION = "\u6536\u5230\u5B9E\u9645\u5DE5\u4F5C\u9700\u6C42\u65F6\uFF0C\u4E3B\u52A8\u6309\u6388\u6743\u4F19\u4F34\u7684\u4E13\u957F\u59D4\u6D3E\uFF1B\u5355\u4E00\u4E13\u4E1A\u6574\u9879\u4EA4\u4ED8\uFF0C\u591A\u4E13\u4E1A\u6309\u4EA7\u51FA\u62C6\u89E3\u3001\u5B89\u6392\u4F9D\u8D56\u5E76\u63D0\u4EA4\u770B\u677F\uFF0C\u65E0\u9700\u7528\u6237\u70B9\u540D\u89E6\u53D1\u3002";
4
- export declare const TASK_PLANNING_DOCUMENT = "---\nname: task-planning\ndisplay-name: \u4EFB\u52A1\u62C6\u89E3\u4E0E\u770B\u677F\u63A8\u8FDB\ndescription: \u6536\u5230\u5B9E\u9645\u5DE5\u4F5C\u9700\u6C42\u65F6\uFF0C\u4E3B\u52A8\u6309\u6388\u6743\u4F19\u4F34\u7684\u4E13\u957F\u59D4\u6D3E\uFF1B\u5355\u4E00\u4E13\u4E1A\u6574\u9879\u4EA4\u4ED8\uFF0C\u591A\u4E13\u4E1A\u6309\u4EA7\u51FA\u62C6\u89E3\u3001\u5B89\u6392\u4F9D\u8D56\u5E76\u63D0\u4EA4\u770B\u677F\uFF0C\u65E0\u9700\u7528\u6237\u70B9\u540D\u89E6\u53D1\u3002\nversion: 1.5.0\ncontext: inline\nallowed-tools: [partner_requirements, partner_task_board, partner_collaborate]\n---\n# \u4E13\u4E1A\u5206\u5DE5\u4E0E\u770B\u677F\u63A8\u8FDB\n\n\u4E13\u4E1A\u7684\u4E8B\u4EA4\u7ED9\u4E13\u4E1A\u7684\u4F19\u4F34\u3002\u6536\u5230\u5B9E\u9645\u5DE5\u4F5C\u8BF7\u6C42\u65F6\uFF0C\u5148\u5339\u914D\u6240\u9700\u4E13\u957F\u4E0E\u5F53\u524D\u5DF2\u6388\u6743\u4F19\u4F34\u7684\u804C\u8D23\u3001\u5B9E\u9645\u80FD\u529B\u548C\u5DF2\u542F\u7528 Skill\uFF0C\u518D\u51B3\u5B9A\u8C01\u6267\u884C\u3001\u662F\u5426\u62C6\u5206\u3002\u4E0D\u8981\u5148\u81EA\u5DF1\u505A\u5B8C\uFF0C\u518D\u8865\u770B\u677F\u8BB0\u5F55\u3002\u7528\u6237\u5DF2\u6388\u6743\u534F\u4F5C\u5E76\u63D0\u51FA\u5DE5\u4F5C\u76EE\u6807\u65F6\uFF0C\u4E0D\u9700\u8981\u518D\u8BE2\u95EE\u201C\u8981\u4E0D\u8981\u62C6\u89E3\u201D\u6216\u7B49\u5F85\u7528\u6237\u9010\u4E2A @\u3002\n\n## \u5206\u5DE5\u51B3\u7B56\n\n- \u5206\u5DE5\u5B57\u6BB5\u4E0D\u53EF\u98A0\u5012\uFF1A\u4F60\uFF08A\uFF09\u628A\u5DE5\u4F5C\u4EA4\u7ED9\u4E13\u4E1A\u4F19\u4F34 B \u65F6\uFF0Cassignee=B\uFF08\u5B9E\u9645\u6267\u884C\u8005\uFF09\uFF0Creviewer=A\uFF08\u9A8C\u6536\u8005\uFF0C\u521B\u5EFA\u65F6\u53EF\u7701\u7565\u5E76\u9ED8\u8BA4\u81EA\u5DF1\uFF09\u3002\u9700\u6C42 owner \u662F\u7EDF\u7B79\u6536\u5C3E\u8D1F\u8D23\u4EBA\uFF0C\u4E0D\u7B49\u4E8E\u5B50\u4EFB\u52A1\u6267\u884C\u8005\u3002\u53EA\u6709\u81EA\u5DF1\u5B9E\u9645\u505A\u5DE5\u4F5C\u624D\u628A assignee \u586B\u6210\u81EA\u5DF1\uFF1B\u4E0D\u8981\u628A\u88AB\u59D4\u6D3E\u7684\u4EBA\u586B\u6210 reviewer\u3002\n- \u7528\u6237\u8981\u6C42\u5B9E\u9645\u5B8C\u6210\u65F6\u4F7F\u7528 autoRun=true\uFF1B\u53EA\u6709\u660E\u786E\u53EA\u89C4\u5212\u6216\u7B49\u5F85\u786E\u8BA4\u624D\u7528 false\u3002status=ready \u52A0 autoRun=false \u4ECD\u7136\u53EA\u4FDD\u5B58\u3001\u4E0D\u6267\u884C\u3002\u521B\u5EFA\u6216\u66F4\u65B0\u540E\u6838\u5BF9\u8FD4\u56DE\u7684 assignment \u4E2D\u6267\u884C\u8005\u3001\u9A8C\u6536\u8005\u548C\u81EA\u52A8\u6267\u884C\u72B6\u6001\u518D\u6C47\u62A5\uFF1B\u53D1\u73B0\u586B\u9519\uFF0C\u5E94\u8BFB\u53D6\u6700\u65B0 revision \u540E update \u539F\u4EFB\u52A1\uFF0C\u4E0D\u91CD\u590D\u521B\u5EFA\u3002\u5DF2\u63D0\u4EA4\u6216\u6392\u961F\u4E0D\u7B49\u4E8E\u5DF2\u5B8C\u6210\u3002\n\n- \u5DF2\u6536\u5230\u5177\u4F53\u770B\u677F\u4EFB\u52A1\u65F6\uFF0C\u4F60\u9996\u5148\u662F\u8BE5\u4EFB\u52A1\u6267\u884C\u8005\uFF0C\u4E0D\u662F\u9700\u6C42\u8D1F\u8D23\u4EBA\u3002\u4E0D\u8981\u628A\u6B63\u5728\u6267\u884C\u7684\u540C\u4E00 taskId \u518D delegate \u7ED9\u522B\u4EBA\u3002\u53D1\u73B0\u7F3A\u5C11\u771F\u5B9E\u6587\u4EF6\u5DE5\u5177\u3001\u9700\u8981\u6362\u4EBA\u6216\u62C6\u5206\u65F6\uFF0C\u8C03\u7528 partner_task_board request_replan\uFF08taskId\u3001expectedRevision\u3001message\uFF09\uFF0C\u8BF4\u660E\u7F3A\u53E3\u4E0E\u4FDD\u7559\u7684\u4EA7\u51FA\uFF0C\u968F\u540E\u7ED3\u675F\u672C\u8F6E\u3002\u4E0D\u5F97\u6539 state.json\u3001\u4F2A\u9020\u6587\u4EF6\u4EA4\u4ED8\u6216\u6301\u7EED\u91CD\u590D\u5931\u8D25\u8C03\u7528\u3002\n- \u9A8C\u6536\u666E\u901A\u7F3A\u9879\u7528 reject \u7684 reworkMode=rework\uFF1B\u7F3A\u5DE5\u5177\u3001\u9700\u91CD\u65B0\u62C6\u5206/\u6362\u4EBA\u7528 reworkMode=replan\u3002\u8FDE\u7EED\u4E09\u6B21\u6253\u56DE\u81EA\u52A8\u6682\u505C\uFF0C\u7531\u9700\u6C42\u8D1F\u8D23\u4EBA\u6838\u5B9E\u539F\u56E0\u5E76\u8C03\u6574\u3002\u53EA\u6709\u8D1F\u8D23\u4EBA\u53EF reopen \u539F\u9700\u6C42\u8FFD\u52A0\u4EFB\u52A1\uFF1B\u8C03\u6574\u539F\u4EFB\u52A1\u540E\u663E\u5F0F update autoRun=true \u6062\u590D\uFF0C\u4E0D\u80FD\u539F\u6837\u91CD\u8BD5\u4EE3\u66FF\u89E3\u51B3\u95EE\u9898\u3002\n- \u8981\u6C42\u771F\u5B9E\u6587\u4EF6\u65F6\u5FC5\u987B\u6838\u9A8C\u8DEF\u5F84\u3001\u5B9E\u9645\u5185\u5BB9\u4E0E\u76F8\u5173\u8FD0\u884C\u7ED3\u679C\uFF1B\u6587\u5B57\u8BA1\u5212\u3001\u58F0\u79F0\u201C\u5DF2\u7ECF\u521B\u5EFA\u201D\u548C\u89D2\u8272\u63CF\u8FF0\u5747\u4E0D\u80FD\u4EE3\u66FF\u6587\u4EF6\u8BC1\u636E\u3002\u6838\u9A8C\u5DE5\u5177\u4E0D\u53EF\u7528\u65F6\u660E\u786E\u62A5\u963B\u585E\uFF0C\u4E0D\u731C\u6D4B\u901A\u8FC7\u6216\u539F\u6837\u5FAA\u73AF\u6253\u56DE\u3002\n\n- \u6709\u804C\u8D23\u548C\u6267\u884C\u80FD\u529B\u5339\u914D\u7684\u4E13\u4E1A\u4F19\u4F34\u65F6\uFF0C\u4F18\u5148\u4EA4\u7ED9\u8BE5\u4F19\u4F34\uFF0C\u5373\u4F7F\u4F60\u4E5F\u80FD\u5B8C\u6210\u3001\u5DE5\u4F5C\u770B\u8D77\u6765\u7B80\u5355\u6216\u53EA\u6709\u4E00\u4E2A\u4EA4\u4ED8\u7269\u3002\u4F60\u8D1F\u8D23\u6F84\u6E05\u5FC5\u8981\u8F93\u5165\u3001\u5206\u914D\u3001\u9A8C\u6536\u548C\u6700\u7EC8\u6C47\u603B\uFF0C\u4E0D\u91CD\u590D\u6267\u884C\u5DF2\u7ECF\u59D4\u6D3E\u7684\u5DE5\u4F5C\u3002\n- \u5355\u4E00\u4E13\u4E1A\u5373\u53EF\u5B8C\u6210\uFF1A\u521B\u5EFA\u4E00\u4E2A\u5B8C\u6574\u4EFB\u52A1\u4EA4\u7ED9\u8BE5\u4E13\u4E1A\u4F19\u4F34\uFF0C\u4E0D\u4E3A\u201C\u62C6\u89E3\u201D\u51D1\u6570\u91CF\u3002\u591A\u4E2A\u4E13\u4E1A\u3001\u53EF\u72EC\u7ACB\u9A8C\u6536\u7684\u4EA7\u51FA\u6216\u771F\u5B9E\u524D\u7F6E\u4F9D\u8D56\uFF1A\u6309\u4EA4\u4ED8\u8FB9\u754C\u62C6\u5206\uFF0C\u72EC\u7ACB\u5DE5\u4F5C\u5E76\u884C\u3001\u4F9D\u8D56\u5DE5\u4F5C\u4E32\u884C\uFF0C\u4E0D\u628A\u5185\u90E8\u63A8\u7406\u6B65\u9AA4\u62C6\u6210\u4EFB\u52A1\u3002\n- \u9009\u62E9\u4F9D\u636E\u662F\u6388\u6743\u76EE\u5F55\u4E2D\u7684\u804C\u8D23\u3001\u80FD\u529B\u548C\u5DF2\u542F\u7528 Skill\uFF0C\u4E0D\u662F\u540D\u5B57\u6216\u201C\u7A7A\u95F2\u201D\u6807\u7B7E\u3002\u6709\u591A\u4E2A\u5408\u9002\u6267\u884C\u8005\u65F6\u7ED3\u5408\u5339\u914D\u7A0B\u5EA6\u548C\u8D1F\u8F7D\u9009\u62E9\uFF1B\u4E13\u4E1A\u4F19\u4F34\u5FD9\u788C\u53EF\u6B63\u5E38\u6392\u961F\uFF0C\u4E0D\u56E0 busy \u5C31\u9ED8\u8BA4\u81EA\u5DF1\u63A5\u7BA1\u3002\u6388\u6743\u76EE\u5F55\u4E0D\u662F\u5B9E\u65F6\u8D1F\u8F7D\u627F\u8BFA\uFF0C\u9700\u8981\u65F6\u91CD\u65B0\u67E5\u8BE2\u3002\n- \u6CA1\u6709\u5339\u914D\u4E14\u83B7\u6388\u6743\u7684\u4E13\u4E1A\u4F19\u4F34\u65F6\uFF0C\u624D\u7531\u81EA\u5DF1\u5728\u80FD\u529B\u8303\u56F4\u5185\u5B8C\u6210\uFF1B\u7F3A\u5C11\u5FC5\u8981\u80FD\u529B\u6216\u5173\u952E\u8F93\u5165\u5C31\u8BF4\u660E\u5177\u4F53\u7F3A\u53E3\uFF0C\u4E0D\u865A\u6784\u5206\u5DE5\uFF0C\u4E5F\u4E0D\u64C5\u81EA\u521B\u5EFA\u4F19\u4F34\u3001\u542F\u7528\u80FD\u529B\u6216\u6269\u5927\u6388\u6743\u3002\u81EA\u5DF1\u7684\u72EC\u7ACB\u4EA4\u4ED8\u9636\u6BB5\u4E5F\u53EF\u8FDB\u5165\u770B\u677F\u3002\n- \u4F8B\u5982\u201C\u591A\u6765\u6E90\u6536\u96C6 + \u771F\u5B9E\u6027\u6838\u9A8C + \u7ED3\u8BBA\u6574\u7406 + \u5185\u5BB9\u65B9\u5411\u201D\uFF0C\u5E94\u533A\u5206\u8BC1\u636E\u6536\u96C6\u3001\u6838\u9A8C\u548C\u7EFC\u5408\u4EA4\u4ED8\uFF0C\u5E76\u5EFA\u7ACB\u771F\u5B9E\u4F9D\u8D56\uFF1B\u5F00\u53D1\u9700\u6C42\u53EF\u4EE5\u4F9D\u636E\u9700\u6C42\u6F84\u6E05\u3001\u67B6\u6784\u3001\u5B9E\u73B0\u3001\u6D4B\u8BD5\u7B49\u5B9E\u9645\u4EA4\u4ED8\u9009\u62E9\u9636\u6BB5\uFF0C\u4E0D\u56FA\u5B9A\u9636\u6BB5\u6216\u4EFB\u52A1\u6570\u91CF\u3002\n\n## \u9002\u7528\u8FB9\u754C\n\n- \u95F2\u804A\u3001\u6982\u5FF5\u89E3\u91CA\u6216\u5BF9\u5F53\u524D\u7ED3\u679C\u7684\u8FFD\u95EE\u53EF\u76F4\u63A5\u7B54\u590D\uFF0C\u4E0D\u662F\u6BCF\u53E5\u8BDD\u90FD\u8981\u521B\u5EFA\u770B\u677F\u3002\u201C\u6574\u7406\u4E00\u4EFD\u8D44\u6599\u3001\u68C0\u67E5\u8FD9\u4E2A\u95EE\u9898\u3001\u5B9E\u73B0\u8FD9\u4E2A\u529F\u80FD\u201D\u5C5E\u4E8E\u5B9E\u9645\u4EA4\u4ED8\uFF0C\u4E0D\u80FD\u4EC5\u4EE5\u201C\u6211\u4F1A\u505A\u3001\u4EFB\u52A1\u7B80\u5355\u201D\u4E3A\u7531\u8DF3\u8FC7\u4E13\u4E1A\u5339\u914D\u3002\n- \u7528\u6237\u660E\u786E\u201C\u4F60\u81EA\u5DF1\u505A\u3001\u4E0D\u8981\u59D4\u6D3E\u201D\u65F6\u9075\u5FAA\u6307\u5B9A\u5206\u5DE5\uFF1B\u201C\u53EA\u8BA8\u8BBA\u3001\u53EA\u89C4\u5212\u3001\u7B49\u6211\u786E\u8BA4\u3001\u4E0D\u8981\u6267\u884C\u201D\u65F6\u4E0D\u63D0\u4EA4\u6267\u884C\u3002\u4EC5\u8981\u6C42\u62C6\u89E3\u65B9\u6848\u65F6\u8F93\u51FA\u8BA1\u5212\u6216\u4FDD\u5B58\u4E0D\u6267\u884C\u7684\u770B\u677F\uFF1B\u8981\u6C42\u5B8C\u6210\u5DE5\u4F5C\uFF08\u5305\u62EC\u201C\u62C6\u89E3\u5E76\u5904\u7406\u201D\uFF09\u65F6\u63D0\u4EA4\u771F\u5B9E\u6267\u884C\uFF0C\u4E0D\u80FD\u56E0\u4E3A\u51FA\u73B0\u201C\u62C6\u89E3\u201D\u5C31\u9ED8\u8BA4\u53EA\u89C4\u5212\u3002\n- \u5DF2\u6536\u5230\u660E\u786E\u8303\u56F4\u7684\u770B\u677F\u5B50\u4EFB\u52A1\u65F6\uFF0C\u4F60\u5DF2\u7ECF\u662F\u8BE5\u9636\u6BB5\u6267\u884C\u8005\uFF0C\u5B8C\u6210\u8BE5\u8303\u56F4\uFF0C\u4E0D\u628A\u540C\u4E00\u4EFB\u52A1\u91CD\u65B0\u8F6C\u6D3E\u6216\u65E0\u9650\u9012\u5F52\u62C6\u89E3\u3002\u82E5\u5B9E\u9645\u7F3A\u5C11\u80FD\u529B\u6216\u53D1\u73B0\u8303\u56F4\u5916\u5DE5\u4F5C\uFF0C\u5411\u521B\u5EFA\u8005\u8BF4\u660E\u5177\u4F53\u7F3A\u53E3\uFF0C\u7531\u5176\u8C03\u6574\u5206\u5DE5\uFF1B\u9A8C\u6536\u56DE\u8C03\u6309\u9A8C\u6536\u534F\u8BAE\u5904\u7406\uFF0C\u4E0D\u5F53\u4F5C\u65B0\u7684\u5DE5\u4F5C\u8BF7\u6C42\u3002\n- \u5177\u5907 Skill \u6216\u67D0\u4F19\u4F34\u53EF\u7528\u4E0D\u4EE3\u8868\u83B7\u5F97\u65B0\u6743\u9650\uFF1B\u5916\u90E8\u53D1\u5E03\u3001\u5220\u9664\u7B49\u52A8\u4F5C\u4ECD\u670D\u4ECE\u7528\u6237\u6388\u6743\u4E0E DSH \u5DE5\u5177\u6743\u9650\u3002\n\n## \u9700\u6C42\u5F52\u5C5E\u4E0E\u6536\u5C3E\n\n- \u4E00\u6B21\u7528\u6237\u4EA4\u4ED8\u76EE\u6807\u5BF9\u5E94\u4E00\u4E2A\u9700\u6C42\u5757\u3002\u7528\u6237\u8BF4\u201C\u7EE7\u7EED\u3001\u4E0B\u4E00\u6B65\u3001\u5728\u521A\u624D\u65B9\u6848\u4E0A\u505A\u89C6\u89C9/\u5B9E\u73B0\u201D\u65F6\uFF0C\u5148\u67E5\u539F\u4EFB\u52A1\u7684 requirementId \u5E76\u590D\u7528\u8BE5\u9700\u6C42\uFF1B\u6362\u4E13\u4E1A\u4F19\u4F34\u6216\u8FDB\u5165\u4E0B\u4E00\u9636\u6BB5\u4E0D\u7B49\u4E8E\u65B0\u9700\u6C42\u3002\u53EA\u6709\u72EC\u7ACB\u4EA4\u4ED8\u76EE\u6807\u624D create \u9700\u6C42\uFF0C\u4E0D\u80FD\u56E0\u6F0F\u586B\u5F52\u5C5E\u53E6\u5EFA\u3002\u5404\u4EFB\u52A1\u521B\u5EFA\u5FC5\u987B\u660E\u786E\u586B\u5199 requirementId\uFF1BdependencyTaskIds \u53EA\u8868\u793A\u5148\u540E\u5173\u7CFB\uFF0C\u4E0D\u80FD\u4EE3\u66FF\u5F52\u5C5E\u3002\u591A\u4E2A\u539F\u9700\u6C42\u90FD\u53EF\u80FD\u5339\u914D\u65F6\u6838\u5BF9\u7528\u6237\u4E0A\u4E0B\u6587\uFF0C\u4E0D\u51ED\u6807\u9898\u731C\u6D4B\u5408\u5E76\u3002\n- \u8FFD\u52A0\u4EFB\u52A1\u4E0D\u662F\u4FEE\u6539\u5DF2\u5B8C\u6210\u4EFB\u52A1\uFF1A\u89C4\u5212\u6001\u76F4\u63A5\u5F80\u539F\u9700\u6C42\u6DFB\u52A0\uFF1B\u5DF2\u63D0\u4EA4\u6216\u5DF2\u5F52\u6863\u65F6\uFF0C\u7531\u8D1F\u8D23\u4EBA\u660E\u786E reopen \u540E\u8FFD\u52A0\uFF1B\u53EF\u4EE5\u9644 title/description \u8BF4\u660E\u65B0\u589E\u9636\u6BB5\u7684\u6574\u4F53\u8303\u56F4\uFF0C\u4FDD\u7559\u5386\u53F2\u6210\u679C\uFF0C\u4E0D\u91CD\u8DD1\u5DF2\u9A8C\u6536\u4EFB\u52A1\u3002\u53EA\u5728\u7528\u6237\u6539\u53D8\u65E7\u4EA4\u4ED8\u7684\u9A8C\u6536\u8981\u6C42\u65F6\u7528 update \u6539\u5199\u76F8\u5E94\u9700\u6C42/\u4EFB\u52A1\u3002\u786E\u8BA4\u5168\u90E8\u76EE\u6807\u8303\u56F4\u5DF2\u5B89\u6392\u540E\u518D submit\uFF1B\u5982\u679C\u5F53\u524D\u53EA\u63A8\u8FDB\u4E00\u9636\u6BB5\u3001\u540E\u7EED\u5F85\u7528\u6237\u51B3\u5B9A\uFF0C\u53EF\u4EE5\u4FDD\u6301\u89C4\u5212\u6001\uFF0C\u4E0D\u628A\u9636\u6BB5\u5B8C\u6210\u5F53\u6210\u6574\u4F53\u5B8C\u6210\u3002\u5B50\u4EFB\u52A1\u6267\u884C\u8005\u53EA\u5B8C\u6210\u53D7\u6D3E\u8303\u56F4\uFF0C\u4E0D\u53E6\u62C6\u4E00\u5957\u91CD\u590D\u4EFB\u52A1\u3002\n- \u5B50\u4EFB\u52A1\u6267\u884C\u3001\u8FD4\u5DE5\u3001\u9A8C\u6536\u4E0D\u5355\u72EC\u901A\u77E5\u7528\u6237\u3002\u4EC5\u5F53\u9700\u6C42\u53EA\u5269\u5DF2\u5B8C\u6210/\u53D7\u963B\u4EFB\u52A1\u4E14\u6CA1\u6709\u6392\u961F\u6267\u884C\u65F6\uFF0C\u7CFB\u7EDF\u7EDF\u4E00\u6C47\u62A5\u6210\u679C\u6216\u963B\u585E\uFF1B\u5F85\u5F00\u59CB\u3001\u6267\u884C\u4E2D\u3001\u5F85\u9A8C\u6536\u4E0D\u89E6\u53D1\u9636\u6BB5\u901A\u77E5\u3002\u9636\u6BB5\u901A\u77E5\u4E0D\u4F9D\u8D56\u5F52\u6863\u3002\u5B8C\u6574\u8303\u56F4\u5DF2\u786E\u8BA4\u4E14\u5168\u90E8\u9A8C\u6536\u5B8C\u6210\u624D\u603B\u7ED3\u5F52\u6863\uFF1B\u8D1F\u8D23\u4EBA\u4E5F\u53EF\u7528 finish \u660E\u786E\u5B8C\u6210\u3002\u53D6\u6D88/\u5220\u9664\u7684\u5DE5\u4F5C\u4E0D\u7B97\u6210\u529F\uFF0C\u4E0D\u5F97\u7528\u5220\u9664\u672A\u5B8C\u6210\u4EFB\u52A1\u4F2A\u9020\u9700\u6C42\u5B8C\u6210\u3002\n- \u672C\u6280\u80FD\u5C5E\u4E8E\u4F19\u4F34\u63D2\u4EF6\uFF0C\u5DF2\u6CE8\u5165\u5C31\u76F4\u63A5\u5E94\u7528\uFF1B\u9700\u8981\u8BFB\u53D6\u65F6\u4F7F\u7528 partner_skill load\uFF0C\u4E0D\u80FD\u8C03\u7528\u539F\u751F skill(name=\"task-planning\")\u3002\n\n## \u6267\u884C\u534F\u8BAE\n\n\u6574\u4EFD\u5206\u5DE5\u5DF2\u7ECF\u660E\u786E\u65F6\uFF0C\u4F18\u5148\u7528 partner_requirements submit_plan \u4E00\u6B21\u4FDD\u5B58\u5E76\u63D0\u4EA4\uFF0C\u4E0D\u518D\u9010\u4E2A create \u51D1\u9F50\u8BA1\u5212\u3002\u4ECD\u7531\u672C Skill \u51B3\u5B9A\u4E13\u4E1A\u5206\u5DE5\uFF0C\u5DE5\u5177\u4E0D\u65B0\u589E\u56FA\u5B9A\u884C\u4E1A\u6D41\u7A0B\u6216\u5F3A\u5236\u524D\u7F6E\u6B65\u9AA4\u3002\n\n- \u7528\u7A33\u5B9A submissionKey \u6807\u8BC6\u8FD9\u6B21\u63D0\u4EA4\uFF1B\u7F51\u7EDC\u8D85\u65F6\u91CD\u8BD5\u590D\u7528\u539F key \u548C\u539F\u8BA1\u5212\uFF0C\u4E0D\u6362 key\u3001\u4E0D\u91CD\u590D\u521B\u5EFA\u3002\u8FD4\u56DE replayed \u8868\u793A\u53D6\u56DE\u539F\u63D0\u4EA4\uFF0C\u4E0D\u662F\u518D\u6B21\u6267\u884C\uFF1Bremoved \u8868\u793A\u76F8\u5173\u5DE5\u4F5C\u5DF2\u88AB\u5220\u9664\uFF0C\u4E0D\u80FD\u501F\u91CD\u8BD5\u91CD\u5EFA\u3002\n- \u65B0\u76EE\u6807\u586B\u5199 title/description\uFF1B\u540C\u4E00\u76EE\u6807\u7EED\u505A\u586B\u5199\u539F requirementId/expectedRevision\uFF0C\u5FC5\u8981\u65F6\u5148\u7531\u8D1F\u8D23\u4EBA reopen\u3002\u6BCF\u9879\u7528\u5C40\u90E8 key\uFF0CdependsOn \u5F15\u7528\u672C\u8BA1\u5212 key\uFF0CdependencyTaskIds \u5F15\u7528\u539F\u9700\u6C42\u5DF2\u6709\u4EFB\u52A1 ID\uFF1B\u4E0D\u5FC5\u63D0\u524D\u77E5\u9053\u7CFB\u7EDF\u751F\u6210\u7684\u4EFB\u52A1 ID\u3002\u6574\u6279\u6388\u6743\u3001\u4F9D\u8D56\u3001\u5B57\u6BB5\u548C\u5BB9\u91CF\u6821\u9A8C\u901A\u8FC7\u624D\u4FDD\u5B58\u3002\n- \u6BCF\u9879\u660E\u786E assigneeCompanionId\uFF08\u771F\u6B63\u6267\u884C\u8005\u7684\u7A33\u5B9A ID\uFF09\uFF0CreviewerCompanionId \u9ED8\u8BA4\u81EA\u5DF1\u3002\u6309\u4EA4\u4ED8\u8FB9\u754C\u586B\u5199 acceptanceCriteria\uFF0C\u907F\u514D\u628A\u7814\u7A76\u7ED3\u8BBA\u6216\u7F8E\u89C2\u7A0B\u5EA6\u4F2A\u88C5\u6210\u7A0B\u5E8F\u80FD\u81EA\u52A8\u9A8C\u8BC1\u7684\u4E8B\u5B9E\u3002\u5B9E\u9645\u6267\u884C autoRun=true\uFF1B\u53EA\u89C4\u5212 false\u3002\u5B8C\u6574\u8303\u56F4\u786E\u8BA4\u624D completeScope=true\uFF0C\u540E\u7EED\u5F85\u51B3\u5B9A\u5219 false\uFF0C\u4E0D\u628A\u9636\u6BB5\u5B8C\u6210\u5F53\u6574\u4F53\u5B8C\u6210\u3002\n- \u4F1A\u4FEE\u6539\u76F8\u540C\u4EE3\u7801\u5E93\u3001\u6587\u4EF6\u6216\u670D\u52A1\u65F6\u586B\u5199\u4E00\u81F4\u7684 resourceKeys\uFF0C\u4F8B\u5982 repo:team/api\u3001service:staging\uFF1B\u72EC\u7ACB\u53EA\u8BFB\u5DE5\u4F5C\u4E0D\u4E3A\u51D1\u5E76\u884C\u9650\u5236\u800C\u4E71\u52A0\u9501\u3002\u76F8\u540C\u8D44\u6E90\u5728\u770B\u677F\u5185\u4E32\u884C\uFF0C\u8FD9\u4E0D\u8986\u76D6\u5176\u4ED6\u4F1A\u8BDD\u6216\u64CD\u4F5C\u7CFB\u7EDF\uFF0C\u4E5F\u4E0D\u6388\u4E88\u8BBF\u95EE\u6743\u9650\u3002\u4F9D\u8D56\u5173\u7CFB\u548C\u8D44\u6E90\u51B2\u7A81\u662F\u4E24\u56DE\u4E8B\u3002\n- \u9A8C\u6536\u6709\u6E05\u5355\u7684\u4EFB\u52A1\u65F6\uFF0Caccept/reject \u7684 checks \u4F7F\u7528 1-based criterion \u7F16\u53F7\uFF0C\u9010\u9879\u586B\u5199 passed/failed/unverified\uFF0C\u4EE5\u53CA\u5B9E\u9645 evidence \u6216\u7F3A\u9879 reason\u3002\u6267\u884C\u8005\u63D0\u4F9B\u7684\u8BC1\u636E\u4E0D\u662F\u81EA\u52A8\u901A\u8FC7\u51ED\u8BC1\uFF1B\u65E0\u6CD5\u5B9E\u9645\u6838\u9A8C\u5FC5\u987B\u660E\u786E unverified\uFF0C\u4E0D\u5F97\u4E3A\u4E86\u8BA9\u6D41\u7A0B\u7EE7\u7EED\u7F16\u9020\u901A\u8FC7\u3002\u6253\u56DE\u53EA\u4FEE\u5177\u4F53\u7F3A\u9879\uFF1B\u7F3A\u5DE5\u5177\u6216\u8303\u56F4\u9700\u8981\u8C03\u6574\u4ECD\u8D70 replan\u3002\n- \u8C03\u5EA6\u53CD\u9988 scheduling \u533A\u5206\u524D\u7F6E\u672A\u9A8C\u6536\u3001\u8D44\u6E90\u5360\u7528\u3001\u7B49\u5F85\u6267\u884C\u7A7A\u4F4D\u3001\u7B49\u5F85\u91CD\u8BD5\u3001\u4EC5\u89C4\u5212\u548C\u91CD\u89C4\u5212\uFF1B\u6B63\u5E38\u7B49\u5F85\u4E0D\u91CD\u590D\u63D0\u4EA4\u6216\u91CD\u5EFA\u4EFB\u52A1\u3002\u6CA1\u6709\u6574\u4EFD\u8BA1\u5212\u65F6\uFF0C\u4E0B\u9762\u7684\u9010\u9879\u521B\u5EFA\u534F\u8BAE\u4ECD\u53EF\u7528\u4E8E\u5C0F\u8303\u56F4\u8FFD\u52A0\u548C\u65E7\u4EFB\u52A1\u7EF4\u62A4\u3002\n\n1. \u7528\u4E00\u53E5\u8BDD\u8BF4\u660E\u6B63\u5728\u5E94\u7528\u201C\u4EFB\u52A1\u62C6\u89E3\u4E0E\u770B\u677F\u63A8\u8FDB\u201D\u53CA\u91C7\u7528\u7684\u4E13\u4E1A\u5206\u5DE5\u3002\u8BFB\u53D6 partner_task_board list\uFF0C\u907F\u514D\u91CD\u590D\u521B\u5EFA\u540C\u4E00\u5DE5\u4F5C\uFF1B\u6839\u636E\u6388\u6743\u76EE\u5F55\u4E2D\u7684\u7A33\u5B9A id\u3001\u804C\u8D23\u3001\u80FD\u529B\u4E0E Skill \u9009\u62E9\u6267\u884C\u8005\uFF0C\u76EE\u5F55\u7F3A\u5931\u3001\u521A\u66F4\u65B0\u6388\u6743\u6216\u4FE1\u606F\u4E0D\u8DB3\u65F6\u7528 partner_collaborate directory \u6838\u5BF9\uFF0C\u4E0D\u9760\u540D\u5B57\u731C\u6D4B\u3002\n2. \u6309\u4F9D\u8D56\u987A\u5E8F\u521B\u5EFA\u4EFB\u52A1\uFF0C\u524D\u7F6E\u521B\u5EFA\u540E\u5C06\u8FD4\u56DE\u7684\u771F\u5B9E id \u586B\u5165\u540E\u7EED dependencyTaskIds\u3002\u6BCF\u4E2A\u4EFB\u52A1\u586B\u5199\u6240\u5C5E requirementId\uFF0C\u5E76\u5199\u6E05\u76EE\u6807\u3001\u8F93\u5165\u6765\u6E90\u3001\u53EF\u9A8C\u6536\u4EA4\u4ED8\u7269\u3001\u7EA6\u675F\u548C\u9A8C\u6536\u6761\u4EF6\uFF1B\u4E0D\u80FD\u53EA\u5199\u7B3C\u7EDF\u7684\u4E00\u53E5\u8BDD\u8BA9\u6267\u884C\u8005\u91CD\u65B0\u731C\u9700\u6C42\u3002\n3. \u5BF9\u7528\u6237\u8981\u6C42\u771F\u6B63\u5B8C\u6210\u7684\u5DE5\u4F5C\uFF0Ccreate \u6307\u5B9A assignee\uFF0CautoRun \u9ED8\u8BA4\u5F00\u542F\uFF1B\u4F9D\u8D56\u672A\u5B8C\u6210\u4E5F\u63D0\u4EA4\u6267\u884C\u610F\u56FE\uFF0C\u7531\u961F\u5217\u7B49\u5F85\u5168\u90E8\u524D\u7F6E\u4EFB\u52A1\u9A8C\u6536\u4E3A done \u540E\u81EA\u52A8\u542F\u52A8\u3002\u81EA\u5DF1\u7684\u9636\u6BB5\u4E5F\u6307\u5B9A\u81EA\u5DF1\u7684 id\uFF0C\u4E0D\u5FC5\u628A\u6240\u6709\u4EFB\u52A1\u90FD\u4EA4\u7ED9\u522B\u4EBA\u3002\n4. \u53EA\u89C4\u5212\u65F6\u660E\u786E autoRun=false\uFF1B\u6CA1\u6709\u8D1F\u8D23\u4EBA\u5219\u4FDD\u6301\u672A\u63D0\u4EA4\u3002\u5DF2\u6709\u4EFB\u52A1\u9700\u8981\u6267\u884C\u65F6\u7528 partner_collaborate delegate\uFF0C\u4E0D\u8981\u91CD\u590D\u5EFA\u4EFB\u52A1\u3002\u5DE5\u5177\u4EC5\u8FD4\u56DE submitted/queued \u8868\u793A\u5DF2\u6392\u961F\uFF0C\u4E0D\u4EE3\u8868\u5DF2\u7ECF\u5B8C\u6210\u3002\n5. \u6CA1\u6709\u7279\u6B8A\u6307\u5B9A\u65F6\u9A8C\u6536\u8005\u662F\u521B\u5EFA\u4F19\u4F34\u3002\u4EFB\u52A1\u5206\u914D\u540E\u7ACB\u5373\u8FD4\u56DE\u7CBE\u7B80\u5206\u5DE5\u8868\u53CA\u6240\u5C5E\u539F\u9700\u6C42\uFF1A\u4EFB\u52A1\u3001\u8D1F\u8D23\u4EBA\u3001\u4F9D\u8D56\u3001\u6267\u884C/\u7B49\u5F85\u72B6\u6001\u3001\u9A8C\u6536\u5B89\u6392\uFF1B\u662F\u5426 submit \u6309\u4E0A\u8FF0\u8303\u56F4\u786E\u8BA4\u89C4\u5219\u5224\u65AD\uFF0C\u4E0D\u5FAA\u73AF\u67E5\u8BE2\u3001\u4E0D\u963B\u585E\u7B49\u5F85\u6267\u884C\u7ED3\u679C\u3002\n6. \u6536\u5230\u9A8C\u6536\u56DE\u8C03\u65F6\u6838\u5BF9\u5B9E\u9645\u4EA7\u51FA\uFF0C\u901A\u8FC7\u8C03\u7528 accept\uFF0C\u4E0D\u901A\u8FC7\u8C03\u7528 reject \u5E76\u8BF4\u660E\u5177\u4F53\u5DEE\u8DDD\uFF1B\u5DF2\u63D0\u4EA4\u7684\u540E\u7EED\u4EFB\u52A1\u4F1A\u81EA\u52A8\u63A5\u7EED\u3002\u9700\u6C42\u5B8C\u6210\u540E\u6309\u771F\u5B9E\u7ED3\u679C\u7EDF\u4E00\u6C47\u62A5\uFF0C\u4E0D\u7528\u5B50\u4EFB\u52A1\u8FDB\u5C55\u66FF\u4EE3\u6574\u4F53\u9A8C\u6536\u7ED3\u8BBA\u3002\n";
4
+ export declare const TASK_PLANNING_DOCUMENT = "---\nname: task-planning\ndisplay-name: \u4EFB\u52A1\u62C6\u89E3\u4E0E\u770B\u677F\u63A8\u8FDB\ndescription: \u6536\u5230\u5B9E\u9645\u5DE5\u4F5C\u9700\u6C42\u65F6\uFF0C\u4E3B\u52A8\u6309\u6388\u6743\u4F19\u4F34\u7684\u4E13\u957F\u59D4\u6D3E\uFF1B\u5355\u4E00\u4E13\u4E1A\u6574\u9879\u4EA4\u4ED8\uFF0C\u591A\u4E13\u4E1A\u6309\u4EA7\u51FA\u62C6\u89E3\u3001\u5B89\u6392\u4F9D\u8D56\u5E76\u63D0\u4EA4\u770B\u677F\uFF0C\u65E0\u9700\u7528\u6237\u70B9\u540D\u89E6\u53D1\u3002\nversion: 1.6.0\ncontext: inline\nallowed-tools: [partner_requirements, partner_task_board, partner_collaborate]\n---\n# \u4E13\u4E1A\u5206\u5DE5\u4E0E\u770B\u677F\u63A8\u8FDB\n\n\u4E13\u4E1A\u7684\u4E8B\u4EA4\u7ED9\u4E13\u4E1A\u7684\u4F19\u4F34\u3002\u6536\u5230\u5B9E\u9645\u5DE5\u4F5C\u8BF7\u6C42\u65F6\uFF0C\u5148\u5339\u914D\u6240\u9700\u4E13\u957F\u4E0E\u5F53\u524D\u5DF2\u6388\u6743\u4F19\u4F34\u7684\u804C\u8D23\u3001\u5B9E\u9645\u80FD\u529B\u548C\u5DF2\u542F\u7528 Skill\uFF0C\u518D\u51B3\u5B9A\u8C01\u6267\u884C\u3001\u662F\u5426\u62C6\u5206\u3002\u4E0D\u8981\u5148\u81EA\u5DF1\u505A\u5B8C\uFF0C\u518D\u8865\u770B\u677F\u8BB0\u5F55\u3002\u7528\u6237\u5DF2\u6388\u6743\u534F\u4F5C\u5E76\u63D0\u51FA\u5DE5\u4F5C\u76EE\u6807\u65F6\uFF0C\u4E0D\u9700\u8981\u518D\u8BE2\u95EE\u201C\u8981\u4E0D\u8981\u62C6\u89E3\u201D\u6216\u7B49\u5F85\u7528\u6237\u9010\u4E2A @\u3002\n\n## \u770B\u677F\u59D4\u6D3E\u4E0E\u4E34\u65F6\u5B50 Agent \u7684\u533A\u522B\n\n- \u672C\u6280\u80FD\u6240\u8BF4\u7684\u201C\u5206\u89E3\u4EFB\u52A1\u3001\u4E13\u4E1A\u5206\u5DE5\u201D\u662F\u521B\u5EFA\u6301\u4E45\u5316\u9700\u6C42\u548C\u770B\u677F\u4EFB\u52A1\uFF0C\u518D\u6307\u6D3E\u5DF2\u6388\u6743\u7684\u4F19\u4F34\uFF0C\u4E0D\u662F\u8C03\u7528\u539F\u751F Agent / subagent / spawn_agent \u5E76\u884C\u7814\u7A76\u3002\u4E34\u65F6\u5B50 Agent \u4E0D\u4F1A\u81EA\u52A8\u6210\u4E3A\u770B\u677F\u4EFB\u52A1\uFF0C\u4E5F\u4E0D\u5177\u5907\u8BE5\u9700\u6C42\u7684\u4F9D\u8D56\u3001\u9A8C\u6536\u3001\u6062\u590D\u548C\u6E20\u9053\u6C47\u603B\u6D41\u7A0B\uFF1B\u4E0D\u80FD\u628A\u542F\u52A8\u5B50 Agent \u62A5\u544A\u6210\u201C\u5DF2\u5B8C\u6210\u770B\u677F\u5206\u5DE5\u201D\u3002\n- \u7528\u6237\u660E\u786E\u8981\u6C42\u201C\u91CD\u65B0\u8BBE\u8BA1\u4E00\u4E0B\uFF0C\u5206\u89E3\u4EFB\u52A1\uFF0C\u597D\u597D\u8C03\u7814\uFF0C\u786E\u8BA4\u53EF\u884C\u6027\u201D\u7B49\u5B9E\u9645\u4EA4\u4ED8\u65F6\uFF0C\u5148\u590D\u7528\u6216\u521B\u5EFA\u9700\u6C42\uFF0C\u6309\u8C03\u7814\u8BC1\u636E\u3001\u53EF\u884C\u6027\u9A8C\u8BC1\u3001\u8BBE\u8BA1\u4EA7\u51FA\u7B49\u771F\u5B9E\u4EA4\u4ED8\u8FB9\u754C\u63D0\u4EA4\u770B\u677F\u5206\u5DE5\u3002\u9700\u8981\u8C03\u7814\u624D\u80FD\u786E\u5B9A\u5B9E\u73B0\u65B9\u6848\uFF0C\u53EF\u4EE5\u5148\u63D0\u4EA4\u8C03\u7814\u4E0E\u9A8C\u8BC1\u4EFB\u52A1\uFF0C\u540E\u7EED\u5728\u539F\u9700\u6C42\u8FFD\u52A0\u5B9E\u73B0\u4EFB\u52A1\uFF1B\u4E0D\u80FD\u4EE5\u201C\u5148\u8C03\u7814\u201D\u4E3A\u7531\u5148\u5F00\u4E00\u6279\u4E34\u65F6\u5B50 Agent \u7ED5\u8FC7\u770B\u677F\u3002\n- \u53EA\u6709\u7528\u6237\u660E\u786E\u6307\u5B9A\u4E34\u65F6\u5B50 Agent\uFF0C\u6216\u5DF2\u7ECF\u627F\u63A5\u4E00\u4E2A\u770B\u677F\u4EFB\u52A1\u3001\u5728\u5141\u8BB8\u7684\u5DE5\u5177\u6743\u9650\u5185\u505A\u8303\u56F4\u5185\u8F85\u52A9\u5DE5\u4F5C\u65F6\uFF0C\u624D\u53EF\u9009\u62E9\u539F\u751F\u5B50 Agent\u3002\u8F85\u52A9\u7ED3\u679C\u4ECD\u7531\u8BE5\u770B\u677F\u4EFB\u52A1\u6267\u884C\u8005\u8D1F\u8D23\uFF0C\u4E0D\u66FF\u4EE3\u4EFB\u52A1\u5F52\u5C5E\u3001\u9A8C\u6536\u548C\u4EA4\u4ED8\uFF0C\u4E5F\u4E0D\u5F97\u6269\u5927\u4F19\u4F34\u95F4\u6388\u6743\u3002\n- \u770B\u677F\u5DE5\u5177\u4E0D\u53EF\u7528\u3001\u6388\u6743\u4F19\u4F34\u4E0D\u5339\u914D\u6216\u7F3A\u5C11\u6267\u884C\u80FD\u529B\u65F6\uFF0C\u8BF4\u660E\u5177\u4F53\u7F3A\u53E3\uFF1B\u4E0D\u6697\u4E2D\u5207\u6362\u6210\u5B50 Agent \u5192\u5145\u4F19\u4F34\u59D4\u6D3E\u3002\u4EC5\u89C4\u5212\u4ECD\u6309\u7528\u6237\u8981\u6C42\u4E0D\u542F\u52A8\u6267\u884C\u3002\n\n## \u5206\u5DE5\u51B3\u7B56\n\n- \u5206\u5DE5\u5B57\u6BB5\u4E0D\u53EF\u98A0\u5012\uFF1A\u4F60\uFF08A\uFF09\u628A\u5DE5\u4F5C\u4EA4\u7ED9\u4E13\u4E1A\u4F19\u4F34 B \u65F6\uFF0Cassignee=B\uFF08\u5B9E\u9645\u6267\u884C\u8005\uFF09\uFF0Creviewer=A\uFF08\u9A8C\u6536\u8005\uFF0C\u521B\u5EFA\u65F6\u53EF\u7701\u7565\u5E76\u9ED8\u8BA4\u81EA\u5DF1\uFF09\u3002\u9700\u6C42 owner \u662F\u7EDF\u7B79\u6536\u5C3E\u8D1F\u8D23\u4EBA\uFF0C\u4E0D\u7B49\u4E8E\u5B50\u4EFB\u52A1\u6267\u884C\u8005\u3002\u53EA\u6709\u81EA\u5DF1\u5B9E\u9645\u505A\u5DE5\u4F5C\u624D\u628A assignee \u586B\u6210\u81EA\u5DF1\uFF1B\u4E0D\u8981\u628A\u88AB\u59D4\u6D3E\u7684\u4EBA\u586B\u6210 reviewer\u3002\n- \u7528\u6237\u8981\u6C42\u5B9E\u9645\u5B8C\u6210\u65F6\u4F7F\u7528 autoRun=true\uFF1B\u53EA\u6709\u660E\u786E\u53EA\u89C4\u5212\u6216\u7B49\u5F85\u786E\u8BA4\u624D\u7528 false\u3002status=ready \u52A0 autoRun=false \u4ECD\u7136\u53EA\u4FDD\u5B58\u3001\u4E0D\u6267\u884C\u3002\u521B\u5EFA\u6216\u66F4\u65B0\u540E\u6838\u5BF9\u8FD4\u56DE\u7684 assignment \u4E2D\u6267\u884C\u8005\u3001\u9A8C\u6536\u8005\u548C\u81EA\u52A8\u6267\u884C\u72B6\u6001\u518D\u6C47\u62A5\uFF1B\u53D1\u73B0\u586B\u9519\uFF0C\u5E94\u8BFB\u53D6\u6700\u65B0 revision \u540E update \u539F\u4EFB\u52A1\uFF0C\u4E0D\u91CD\u590D\u521B\u5EFA\u3002\u5DF2\u63D0\u4EA4\u6216\u6392\u961F\u4E0D\u7B49\u4E8E\u5DF2\u5B8C\u6210\u3002\n\n- \u5DF2\u6536\u5230\u5177\u4F53\u770B\u677F\u4EFB\u52A1\u65F6\uFF0C\u4F60\u9996\u5148\u662F\u8BE5\u4EFB\u52A1\u6267\u884C\u8005\uFF0C\u4E0D\u662F\u9700\u6C42\u8D1F\u8D23\u4EBA\u3002\u4E0D\u8981\u628A\u6B63\u5728\u6267\u884C\u7684\u540C\u4E00 taskId \u518D delegate \u7ED9\u522B\u4EBA\u3002\u53D1\u73B0\u7F3A\u5C11\u771F\u5B9E\u6587\u4EF6\u5DE5\u5177\u3001\u9700\u8981\u6362\u4EBA\u6216\u62C6\u5206\u65F6\uFF0C\u8C03\u7528 partner_task_board request_replan\uFF08taskId\u3001expectedRevision\u3001message\uFF09\uFF0C\u8BF4\u660E\u7F3A\u53E3\u4E0E\u4FDD\u7559\u7684\u4EA7\u51FA\uFF0C\u968F\u540E\u7ED3\u675F\u672C\u8F6E\u3002\u4E0D\u5F97\u6539 state.json\u3001\u4F2A\u9020\u6587\u4EF6\u4EA4\u4ED8\u6216\u6301\u7EED\u91CD\u590D\u5931\u8D25\u8C03\u7528\u3002\n- \u9A8C\u6536\u666E\u901A\u7F3A\u9879\u7528 reject \u7684 reworkMode=rework\uFF1B\u7F3A\u5DE5\u5177\u3001\u9700\u91CD\u65B0\u62C6\u5206/\u6362\u4EBA\u7528 reworkMode=replan\u3002\u8FDE\u7EED\u4E09\u6B21\u6253\u56DE\u81EA\u52A8\u6682\u505C\uFF0C\u7531\u9700\u6C42\u8D1F\u8D23\u4EBA\u6838\u5B9E\u539F\u56E0\u5E76\u8C03\u6574\u3002\u53EA\u6709\u8D1F\u8D23\u4EBA\u53EF reopen \u539F\u9700\u6C42\u8FFD\u52A0\u4EFB\u52A1\uFF1B\u8C03\u6574\u539F\u4EFB\u52A1\u540E\u663E\u5F0F update autoRun=true \u6062\u590D\uFF0C\u4E0D\u80FD\u539F\u6837\u91CD\u8BD5\u4EE3\u66FF\u89E3\u51B3\u95EE\u9898\u3002\n- \u8981\u6C42\u771F\u5B9E\u6587\u4EF6\u65F6\u5FC5\u987B\u6838\u9A8C\u8DEF\u5F84\u3001\u5B9E\u9645\u5185\u5BB9\u4E0E\u76F8\u5173\u8FD0\u884C\u7ED3\u679C\uFF1B\u6587\u5B57\u8BA1\u5212\u3001\u58F0\u79F0\u201C\u5DF2\u7ECF\u521B\u5EFA\u201D\u548C\u89D2\u8272\u63CF\u8FF0\u5747\u4E0D\u80FD\u4EE3\u66FF\u6587\u4EF6\u8BC1\u636E\u3002\u6838\u9A8C\u5DE5\u5177\u4E0D\u53EF\u7528\u65F6\u660E\u786E\u62A5\u963B\u585E\uFF0C\u4E0D\u731C\u6D4B\u901A\u8FC7\u6216\u539F\u6837\u5FAA\u73AF\u6253\u56DE\u3002\n\n- \u6709\u804C\u8D23\u548C\u6267\u884C\u80FD\u529B\u5339\u914D\u7684\u4E13\u4E1A\u4F19\u4F34\u65F6\uFF0C\u4F18\u5148\u4EA4\u7ED9\u8BE5\u4F19\u4F34\uFF0C\u5373\u4F7F\u4F60\u4E5F\u80FD\u5B8C\u6210\u3001\u5DE5\u4F5C\u770B\u8D77\u6765\u7B80\u5355\u6216\u53EA\u6709\u4E00\u4E2A\u4EA4\u4ED8\u7269\u3002\u4F60\u8D1F\u8D23\u6F84\u6E05\u5FC5\u8981\u8F93\u5165\u3001\u5206\u914D\u3001\u9A8C\u6536\u548C\u6700\u7EC8\u6C47\u603B\uFF0C\u4E0D\u91CD\u590D\u6267\u884C\u5DF2\u7ECF\u59D4\u6D3E\u7684\u5DE5\u4F5C\u3002\n- \u5355\u4E00\u4E13\u4E1A\u5373\u53EF\u5B8C\u6210\uFF1A\u521B\u5EFA\u4E00\u4E2A\u5B8C\u6574\u4EFB\u52A1\u4EA4\u7ED9\u8BE5\u4E13\u4E1A\u4F19\u4F34\uFF0C\u4E0D\u4E3A\u201C\u62C6\u89E3\u201D\u51D1\u6570\u91CF\u3002\u591A\u4E2A\u4E13\u4E1A\u3001\u53EF\u72EC\u7ACB\u9A8C\u6536\u7684\u4EA7\u51FA\u6216\u771F\u5B9E\u524D\u7F6E\u4F9D\u8D56\uFF1A\u6309\u4EA4\u4ED8\u8FB9\u754C\u62C6\u5206\uFF0C\u72EC\u7ACB\u5DE5\u4F5C\u5E76\u884C\u3001\u4F9D\u8D56\u5DE5\u4F5C\u4E32\u884C\uFF0C\u4E0D\u628A\u5185\u90E8\u63A8\u7406\u6B65\u9AA4\u62C6\u6210\u4EFB\u52A1\u3002\n- \u9009\u62E9\u4F9D\u636E\u662F\u6388\u6743\u76EE\u5F55\u4E2D\u7684\u804C\u8D23\u3001\u80FD\u529B\u548C\u5DF2\u542F\u7528 Skill\uFF0C\u4E0D\u662F\u540D\u5B57\u6216\u201C\u7A7A\u95F2\u201D\u6807\u7B7E\u3002\u6709\u591A\u4E2A\u5408\u9002\u6267\u884C\u8005\u65F6\u7ED3\u5408\u5339\u914D\u7A0B\u5EA6\u548C\u8D1F\u8F7D\u9009\u62E9\uFF1B\u4E13\u4E1A\u4F19\u4F34\u5FD9\u788C\u53EF\u6B63\u5E38\u6392\u961F\uFF0C\u4E0D\u56E0 busy \u5C31\u9ED8\u8BA4\u81EA\u5DF1\u63A5\u7BA1\u3002\u6388\u6743\u76EE\u5F55\u4E0D\u662F\u5B9E\u65F6\u8D1F\u8F7D\u627F\u8BFA\uFF0C\u9700\u8981\u65F6\u91CD\u65B0\u67E5\u8BE2\u3002\n- \u6CA1\u6709\u5339\u914D\u4E14\u83B7\u6388\u6743\u7684\u4E13\u4E1A\u4F19\u4F34\u65F6\uFF0C\u624D\u7531\u81EA\u5DF1\u5728\u80FD\u529B\u8303\u56F4\u5185\u5B8C\u6210\uFF1B\u7F3A\u5C11\u5FC5\u8981\u80FD\u529B\u6216\u5173\u952E\u8F93\u5165\u5C31\u8BF4\u660E\u5177\u4F53\u7F3A\u53E3\uFF0C\u4E0D\u865A\u6784\u5206\u5DE5\uFF0C\u4E5F\u4E0D\u64C5\u81EA\u521B\u5EFA\u4F19\u4F34\u3001\u542F\u7528\u80FD\u529B\u6216\u6269\u5927\u6388\u6743\u3002\u81EA\u5DF1\u7684\u72EC\u7ACB\u4EA4\u4ED8\u9636\u6BB5\u4E5F\u53EF\u8FDB\u5165\u770B\u677F\u3002\n- \u4F8B\u5982\u201C\u591A\u6765\u6E90\u6536\u96C6 + \u771F\u5B9E\u6027\u6838\u9A8C + \u7ED3\u8BBA\u6574\u7406 + \u5185\u5BB9\u65B9\u5411\u201D\uFF0C\u5E94\u533A\u5206\u8BC1\u636E\u6536\u96C6\u3001\u6838\u9A8C\u548C\u7EFC\u5408\u4EA4\u4ED8\uFF0C\u5E76\u5EFA\u7ACB\u771F\u5B9E\u4F9D\u8D56\uFF1B\u5F00\u53D1\u9700\u6C42\u53EF\u4EE5\u4F9D\u636E\u9700\u6C42\u6F84\u6E05\u3001\u67B6\u6784\u3001\u5B9E\u73B0\u3001\u6D4B\u8BD5\u7B49\u5B9E\u9645\u4EA4\u4ED8\u9009\u62E9\u9636\u6BB5\uFF0C\u4E0D\u56FA\u5B9A\u9636\u6BB5\u6216\u4EFB\u52A1\u6570\u91CF\u3002\n\n## \u9002\u7528\u8FB9\u754C\n\n- \u95F2\u804A\u3001\u6982\u5FF5\u89E3\u91CA\u6216\u5BF9\u5F53\u524D\u7ED3\u679C\u7684\u8FFD\u95EE\u53EF\u76F4\u63A5\u7B54\u590D\uFF0C\u4E0D\u662F\u6BCF\u53E5\u8BDD\u90FD\u8981\u521B\u5EFA\u770B\u677F\u3002\u201C\u6574\u7406\u4E00\u4EFD\u8D44\u6599\u3001\u68C0\u67E5\u8FD9\u4E2A\u95EE\u9898\u3001\u5B9E\u73B0\u8FD9\u4E2A\u529F\u80FD\u201D\u5C5E\u4E8E\u5B9E\u9645\u4EA4\u4ED8\uFF0C\u4E0D\u80FD\u4EC5\u4EE5\u201C\u6211\u4F1A\u505A\u3001\u4EFB\u52A1\u7B80\u5355\u201D\u4E3A\u7531\u8DF3\u8FC7\u4E13\u4E1A\u5339\u914D\u3002\n- \u7528\u6237\u660E\u786E\u201C\u4F60\u81EA\u5DF1\u505A\u3001\u4E0D\u8981\u59D4\u6D3E\u201D\u65F6\u9075\u5FAA\u6307\u5B9A\u5206\u5DE5\uFF1B\u201C\u53EA\u8BA8\u8BBA\u3001\u53EA\u89C4\u5212\u3001\u7B49\u6211\u786E\u8BA4\u3001\u4E0D\u8981\u6267\u884C\u201D\u65F6\u4E0D\u63D0\u4EA4\u6267\u884C\u3002\u4EC5\u8981\u6C42\u62C6\u89E3\u65B9\u6848\u65F6\u8F93\u51FA\u8BA1\u5212\u6216\u4FDD\u5B58\u4E0D\u6267\u884C\u7684\u770B\u677F\uFF1B\u8981\u6C42\u5B8C\u6210\u5DE5\u4F5C\uFF08\u5305\u62EC\u201C\u62C6\u89E3\u5E76\u5904\u7406\u201D\uFF09\u65F6\u63D0\u4EA4\u771F\u5B9E\u6267\u884C\uFF0C\u4E0D\u80FD\u56E0\u4E3A\u51FA\u73B0\u201C\u62C6\u89E3\u201D\u5C31\u9ED8\u8BA4\u53EA\u89C4\u5212\u3002\n- \u5DF2\u6536\u5230\u660E\u786E\u8303\u56F4\u7684\u770B\u677F\u5B50\u4EFB\u52A1\u65F6\uFF0C\u4F60\u5DF2\u7ECF\u662F\u8BE5\u9636\u6BB5\u6267\u884C\u8005\uFF0C\u5B8C\u6210\u8BE5\u8303\u56F4\uFF0C\u4E0D\u628A\u540C\u4E00\u4EFB\u52A1\u91CD\u65B0\u8F6C\u6D3E\u6216\u65E0\u9650\u9012\u5F52\u62C6\u89E3\u3002\u82E5\u5B9E\u9645\u7F3A\u5C11\u80FD\u529B\u6216\u53D1\u73B0\u8303\u56F4\u5916\u5DE5\u4F5C\uFF0C\u5411\u521B\u5EFA\u8005\u8BF4\u660E\u5177\u4F53\u7F3A\u53E3\uFF0C\u7531\u5176\u8C03\u6574\u5206\u5DE5\uFF1B\u9A8C\u6536\u56DE\u8C03\u6309\u9A8C\u6536\u534F\u8BAE\u5904\u7406\uFF0C\u4E0D\u5F53\u4F5C\u65B0\u7684\u5DE5\u4F5C\u8BF7\u6C42\u3002\n- \u5177\u5907 Skill \u6216\u67D0\u4F19\u4F34\u53EF\u7528\u4E0D\u4EE3\u8868\u83B7\u5F97\u65B0\u6743\u9650\uFF1B\u5916\u90E8\u53D1\u5E03\u3001\u5220\u9664\u7B49\u52A8\u4F5C\u4ECD\u670D\u4ECE\u7528\u6237\u6388\u6743\u4E0E DSH \u5DE5\u5177\u6743\u9650\u3002\n\n## \u9700\u6C42\u5F52\u5C5E\u4E0E\u6536\u5C3E\n\n- \u4E00\u6B21\u7528\u6237\u4EA4\u4ED8\u76EE\u6807\u5BF9\u5E94\u4E00\u4E2A\u9700\u6C42\u5757\u3002\u7528\u6237\u8BF4\u201C\u7EE7\u7EED\u3001\u4E0B\u4E00\u6B65\u3001\u5728\u521A\u624D\u65B9\u6848\u4E0A\u505A\u89C6\u89C9/\u5B9E\u73B0\u201D\u65F6\uFF0C\u5148\u67E5\u539F\u4EFB\u52A1\u7684 requirementId \u5E76\u590D\u7528\u8BE5\u9700\u6C42\uFF1B\u6362\u4E13\u4E1A\u4F19\u4F34\u6216\u8FDB\u5165\u4E0B\u4E00\u9636\u6BB5\u4E0D\u7B49\u4E8E\u65B0\u9700\u6C42\u3002\u53EA\u6709\u72EC\u7ACB\u4EA4\u4ED8\u76EE\u6807\u624D create \u9700\u6C42\uFF0C\u4E0D\u80FD\u56E0\u6F0F\u586B\u5F52\u5C5E\u53E6\u5EFA\u3002\u5404\u4EFB\u52A1\u521B\u5EFA\u5FC5\u987B\u660E\u786E\u586B\u5199 requirementId\uFF1BdependencyTaskIds \u53EA\u8868\u793A\u5148\u540E\u5173\u7CFB\uFF0C\u4E0D\u80FD\u4EE3\u66FF\u5F52\u5C5E\u3002\u591A\u4E2A\u539F\u9700\u6C42\u90FD\u53EF\u80FD\u5339\u914D\u65F6\u6838\u5BF9\u7528\u6237\u4E0A\u4E0B\u6587\uFF0C\u4E0D\u51ED\u6807\u9898\u731C\u6D4B\u5408\u5E76\u3002\n- \u8FFD\u52A0\u4EFB\u52A1\u4E0D\u662F\u4FEE\u6539\u5DF2\u5B8C\u6210\u4EFB\u52A1\uFF1A\u89C4\u5212\u6001\u76F4\u63A5\u5F80\u539F\u9700\u6C42\u6DFB\u52A0\uFF1B\u5DF2\u63D0\u4EA4\u6216\u5DF2\u5F52\u6863\u65F6\uFF0C\u7531\u8D1F\u8D23\u4EBA\u660E\u786E reopen \u540E\u8FFD\u52A0\uFF1B\u53EF\u4EE5\u9644 title/description \u8BF4\u660E\u65B0\u589E\u9636\u6BB5\u7684\u6574\u4F53\u8303\u56F4\uFF0C\u4FDD\u7559\u5386\u53F2\u6210\u679C\uFF0C\u4E0D\u91CD\u8DD1\u5DF2\u9A8C\u6536\u4EFB\u52A1\u3002\u53EA\u5728\u7528\u6237\u6539\u53D8\u65E7\u4EA4\u4ED8\u7684\u9A8C\u6536\u8981\u6C42\u65F6\u7528 update \u6539\u5199\u76F8\u5E94\u9700\u6C42/\u4EFB\u52A1\u3002\u786E\u8BA4\u5168\u90E8\u76EE\u6807\u8303\u56F4\u5DF2\u5B89\u6392\u540E\u518D submit\uFF1B\u5982\u679C\u5F53\u524D\u53EA\u63A8\u8FDB\u4E00\u9636\u6BB5\u3001\u540E\u7EED\u5F85\u7528\u6237\u51B3\u5B9A\uFF0C\u53EF\u4EE5\u4FDD\u6301\u89C4\u5212\u6001\uFF0C\u4E0D\u628A\u9636\u6BB5\u5B8C\u6210\u5F53\u6210\u6574\u4F53\u5B8C\u6210\u3002\u5B50\u4EFB\u52A1\u6267\u884C\u8005\u53EA\u5B8C\u6210\u53D7\u6D3E\u8303\u56F4\uFF0C\u4E0D\u53E6\u62C6\u4E00\u5957\u91CD\u590D\u4EFB\u52A1\u3002\n- \u5B50\u4EFB\u52A1\u6267\u884C\u3001\u8FD4\u5DE5\u3001\u9A8C\u6536\u4E0D\u5355\u72EC\u901A\u77E5\u7528\u6237\u3002\u4EC5\u5F53\u9700\u6C42\u53EA\u5269\u5DF2\u5B8C\u6210/\u53D7\u963B\u4EFB\u52A1\u4E14\u6CA1\u6709\u6392\u961F\u6267\u884C\u65F6\uFF0C\u7CFB\u7EDF\u7EDF\u4E00\u6C47\u62A5\u6210\u679C\u6216\u963B\u585E\uFF1B\u5F85\u5F00\u59CB\u3001\u6267\u884C\u4E2D\u3001\u5F85\u9A8C\u6536\u4E0D\u89E6\u53D1\u9636\u6BB5\u901A\u77E5\u3002\u9636\u6BB5\u901A\u77E5\u4E0D\u4F9D\u8D56\u5F52\u6863\u3002\u5B8C\u6574\u8303\u56F4\u5DF2\u786E\u8BA4\u4E14\u5168\u90E8\u9A8C\u6536\u5B8C\u6210\u624D\u603B\u7ED3\u5F52\u6863\uFF1B\u8D1F\u8D23\u4EBA\u4E5F\u53EF\u7528 finish \u660E\u786E\u5B8C\u6210\u3002\u53D6\u6D88/\u5220\u9664\u7684\u5DE5\u4F5C\u4E0D\u7B97\u6210\u529F\uFF0C\u4E0D\u5F97\u7528\u5220\u9664\u672A\u5B8C\u6210\u4EFB\u52A1\u4F2A\u9020\u9700\u6C42\u5B8C\u6210\u3002\n- \u672C\u6280\u80FD\u5C5E\u4E8E\u4F19\u4F34\u63D2\u4EF6\uFF0C\u5DF2\u6CE8\u5165\u5C31\u76F4\u63A5\u5E94\u7528\uFF1B\u9700\u8981\u8BFB\u53D6\u65F6\u4F7F\u7528 partner_skill load\uFF0C\u4E0D\u80FD\u8C03\u7528\u539F\u751F skill(name=\"task-planning\")\u3002\n\n## \u6267\u884C\u534F\u8BAE\n\n\u6574\u4EFD\u5206\u5DE5\u5DF2\u7ECF\u660E\u786E\u65F6\uFF0C\u4F18\u5148\u7528 partner_requirements submit_plan \u4E00\u6B21\u4FDD\u5B58\u5E76\u63D0\u4EA4\uFF0C\u4E0D\u518D\u9010\u4E2A create \u51D1\u9F50\u8BA1\u5212\u3002\u4ECD\u7531\u672C Skill \u51B3\u5B9A\u4E13\u4E1A\u5206\u5DE5\uFF0C\u5DE5\u5177\u4E0D\u65B0\u589E\u56FA\u5B9A\u884C\u4E1A\u6D41\u7A0B\u6216\u5F3A\u5236\u524D\u7F6E\u6B65\u9AA4\u3002\n\n- \u7528\u7A33\u5B9A submissionKey \u6807\u8BC6\u8FD9\u6B21\u63D0\u4EA4\uFF1B\u7F51\u7EDC\u8D85\u65F6\u91CD\u8BD5\u590D\u7528\u539F key \u548C\u539F\u8BA1\u5212\uFF0C\u4E0D\u6362 key\u3001\u4E0D\u91CD\u590D\u521B\u5EFA\u3002\u8FD4\u56DE replayed \u8868\u793A\u53D6\u56DE\u539F\u63D0\u4EA4\uFF0C\u4E0D\u662F\u518D\u6B21\u6267\u884C\uFF1Bremoved \u8868\u793A\u76F8\u5173\u5DE5\u4F5C\u5DF2\u88AB\u5220\u9664\uFF0C\u4E0D\u80FD\u501F\u91CD\u8BD5\u91CD\u5EFA\u3002\n- \u65B0\u76EE\u6807\u586B\u5199 title/description\uFF1B\u540C\u4E00\u76EE\u6807\u7EED\u505A\u586B\u5199\u539F requirementId/expectedRevision\uFF0C\u5FC5\u8981\u65F6\u5148\u7531\u8D1F\u8D23\u4EBA reopen\u3002\u6BCF\u9879\u7528\u5C40\u90E8 key\uFF0CdependsOn \u5F15\u7528\u672C\u8BA1\u5212 key\uFF0CdependencyTaskIds \u5F15\u7528\u539F\u9700\u6C42\u5DF2\u6709\u4EFB\u52A1 ID\uFF1B\u4E0D\u5FC5\u63D0\u524D\u77E5\u9053\u7CFB\u7EDF\u751F\u6210\u7684\u4EFB\u52A1 ID\u3002\u6574\u6279\u6388\u6743\u3001\u4F9D\u8D56\u3001\u5B57\u6BB5\u548C\u5BB9\u91CF\u6821\u9A8C\u901A\u8FC7\u624D\u4FDD\u5B58\u3002\n- \u6BCF\u9879\u660E\u786E assigneeCompanionId\uFF08\u771F\u6B63\u6267\u884C\u8005\u7684\u7A33\u5B9A ID\uFF09\uFF0CreviewerCompanionId \u9ED8\u8BA4\u81EA\u5DF1\u3002\u6309\u4EA4\u4ED8\u8FB9\u754C\u586B\u5199 acceptanceCriteria\uFF0C\u907F\u514D\u628A\u7814\u7A76\u7ED3\u8BBA\u6216\u7F8E\u89C2\u7A0B\u5EA6\u4F2A\u88C5\u6210\u7A0B\u5E8F\u80FD\u81EA\u52A8\u9A8C\u8BC1\u7684\u4E8B\u5B9E\u3002\u5B9E\u9645\u6267\u884C autoRun=true\uFF1B\u53EA\u89C4\u5212 false\u3002\u5B8C\u6574\u8303\u56F4\u786E\u8BA4\u624D completeScope=true\uFF0C\u540E\u7EED\u5F85\u51B3\u5B9A\u5219 false\uFF0C\u4E0D\u628A\u9636\u6BB5\u5B8C\u6210\u5F53\u6574\u4F53\u5B8C\u6210\u3002\n- \u4F1A\u4FEE\u6539\u76F8\u540C\u4EE3\u7801\u5E93\u3001\u6587\u4EF6\u6216\u670D\u52A1\u65F6\u586B\u5199\u4E00\u81F4\u7684 resourceKeys\uFF0C\u4F8B\u5982 repo:team/api\u3001service:staging\uFF1B\u72EC\u7ACB\u53EA\u8BFB\u5DE5\u4F5C\u4E0D\u4E3A\u51D1\u5E76\u884C\u9650\u5236\u800C\u4E71\u52A0\u9501\u3002\u76F8\u540C\u8D44\u6E90\u5728\u770B\u677F\u5185\u4E32\u884C\uFF0C\u8FD9\u4E0D\u8986\u76D6\u5176\u4ED6\u4F1A\u8BDD\u6216\u64CD\u4F5C\u7CFB\u7EDF\uFF0C\u4E5F\u4E0D\u6388\u4E88\u8BBF\u95EE\u6743\u9650\u3002\u4F9D\u8D56\u5173\u7CFB\u548C\u8D44\u6E90\u51B2\u7A81\u662F\u4E24\u56DE\u4E8B\u3002\n- \u9A8C\u6536\u6709\u6E05\u5355\u7684\u4EFB\u52A1\u65F6\uFF0Caccept/reject \u7684 checks \u4F7F\u7528 1-based criterion \u7F16\u53F7\uFF0C\u9010\u9879\u586B\u5199 passed/failed/unverified\uFF0C\u4EE5\u53CA\u5B9E\u9645 evidence \u6216\u7F3A\u9879 reason\u3002\u6267\u884C\u8005\u63D0\u4F9B\u7684\u8BC1\u636E\u4E0D\u662F\u81EA\u52A8\u901A\u8FC7\u51ED\u8BC1\uFF1B\u65E0\u6CD5\u5B9E\u9645\u6838\u9A8C\u5FC5\u987B\u660E\u786E unverified\uFF0C\u4E0D\u5F97\u4E3A\u4E86\u8BA9\u6D41\u7A0B\u7EE7\u7EED\u7F16\u9020\u901A\u8FC7\u3002\u6253\u56DE\u53EA\u4FEE\u5177\u4F53\u7F3A\u9879\uFF1B\u7F3A\u5DE5\u5177\u6216\u8303\u56F4\u9700\u8981\u8C03\u6574\u4ECD\u8D70 replan\u3002\n- \u8C03\u5EA6\u53CD\u9988 scheduling \u533A\u5206\u524D\u7F6E\u672A\u9A8C\u6536\u3001\u8D44\u6E90\u5360\u7528\u3001\u7B49\u5F85\u6267\u884C\u7A7A\u4F4D\u3001\u7B49\u5F85\u91CD\u8BD5\u3001\u4EC5\u89C4\u5212\u548C\u91CD\u89C4\u5212\uFF1B\u6B63\u5E38\u7B49\u5F85\u4E0D\u91CD\u590D\u63D0\u4EA4\u6216\u91CD\u5EFA\u4EFB\u52A1\u3002\u6CA1\u6709\u6574\u4EFD\u8BA1\u5212\u65F6\uFF0C\u4E0B\u9762\u7684\u9010\u9879\u521B\u5EFA\u534F\u8BAE\u4ECD\u53EF\u7528\u4E8E\u5C0F\u8303\u56F4\u8FFD\u52A0\u548C\u65E7\u4EFB\u52A1\u7EF4\u62A4\u3002\n\n1. \u7528\u4E00\u53E5\u8BDD\u8BF4\u660E\u6B63\u5728\u5E94\u7528\u201C\u4EFB\u52A1\u62C6\u89E3\u4E0E\u770B\u677F\u63A8\u8FDB\u201D\u53CA\u91C7\u7528\u7684\u4E13\u4E1A\u5206\u5DE5\u3002\u8BFB\u53D6 partner_task_board list\uFF0C\u907F\u514D\u91CD\u590D\u521B\u5EFA\u540C\u4E00\u5DE5\u4F5C\uFF1B\u6839\u636E\u6388\u6743\u76EE\u5F55\u4E2D\u7684\u7A33\u5B9A id\u3001\u804C\u8D23\u3001\u80FD\u529B\u4E0E Skill \u9009\u62E9\u6267\u884C\u8005\uFF0C\u76EE\u5F55\u7F3A\u5931\u3001\u521A\u66F4\u65B0\u6388\u6743\u6216\u4FE1\u606F\u4E0D\u8DB3\u65F6\u7528 partner_collaborate directory \u6838\u5BF9\uFF0C\u4E0D\u9760\u540D\u5B57\u731C\u6D4B\u3002\n2. \u6309\u4F9D\u8D56\u987A\u5E8F\u521B\u5EFA\u4EFB\u52A1\uFF0C\u524D\u7F6E\u521B\u5EFA\u540E\u5C06\u8FD4\u56DE\u7684\u771F\u5B9E id \u586B\u5165\u540E\u7EED dependencyTaskIds\u3002\u6BCF\u4E2A\u4EFB\u52A1\u586B\u5199\u6240\u5C5E requirementId\uFF0C\u5E76\u5199\u6E05\u76EE\u6807\u3001\u8F93\u5165\u6765\u6E90\u3001\u53EF\u9A8C\u6536\u4EA4\u4ED8\u7269\u3001\u7EA6\u675F\u548C\u9A8C\u6536\u6761\u4EF6\uFF1B\u4E0D\u80FD\u53EA\u5199\u7B3C\u7EDF\u7684\u4E00\u53E5\u8BDD\u8BA9\u6267\u884C\u8005\u91CD\u65B0\u731C\u9700\u6C42\u3002\n3. \u5BF9\u7528\u6237\u8981\u6C42\u771F\u6B63\u5B8C\u6210\u7684\u5DE5\u4F5C\uFF0Ccreate \u6307\u5B9A assignee\uFF0CautoRun \u9ED8\u8BA4\u5F00\u542F\uFF1B\u4F9D\u8D56\u672A\u5B8C\u6210\u4E5F\u63D0\u4EA4\u6267\u884C\u610F\u56FE\uFF0C\u7531\u961F\u5217\u7B49\u5F85\u5168\u90E8\u524D\u7F6E\u4EFB\u52A1\u9A8C\u6536\u4E3A done \u540E\u81EA\u52A8\u542F\u52A8\u3002\u81EA\u5DF1\u7684\u9636\u6BB5\u4E5F\u6307\u5B9A\u81EA\u5DF1\u7684 id\uFF0C\u4E0D\u5FC5\u628A\u6240\u6709\u4EFB\u52A1\u90FD\u4EA4\u7ED9\u522B\u4EBA\u3002\n4. \u53EA\u89C4\u5212\u65F6\u660E\u786E autoRun=false\uFF1B\u6CA1\u6709\u8D1F\u8D23\u4EBA\u5219\u4FDD\u6301\u672A\u63D0\u4EA4\u3002\u5DF2\u6709\u4EFB\u52A1\u9700\u8981\u6267\u884C\u65F6\u7528 partner_collaborate delegate\uFF0C\u4E0D\u8981\u91CD\u590D\u5EFA\u4EFB\u52A1\u3002\u5DE5\u5177\u4EC5\u8FD4\u56DE submitted/queued \u8868\u793A\u5DF2\u6392\u961F\uFF0C\u4E0D\u4EE3\u8868\u5DF2\u7ECF\u5B8C\u6210\u3002\n5. \u6CA1\u6709\u7279\u6B8A\u6307\u5B9A\u65F6\u9A8C\u6536\u8005\u662F\u521B\u5EFA\u4F19\u4F34\u3002\u4EFB\u52A1\u5206\u914D\u540E\u7ACB\u5373\u8FD4\u56DE\u7CBE\u7B80\u5206\u5DE5\u8868\u53CA\u6240\u5C5E\u539F\u9700\u6C42\uFF1A\u4EFB\u52A1\u3001\u8D1F\u8D23\u4EBA\u3001\u4F9D\u8D56\u3001\u6267\u884C/\u7B49\u5F85\u72B6\u6001\u3001\u9A8C\u6536\u5B89\u6392\uFF1B\u662F\u5426 submit \u6309\u4E0A\u8FF0\u8303\u56F4\u786E\u8BA4\u89C4\u5219\u5224\u65AD\uFF0C\u4E0D\u5FAA\u73AF\u67E5\u8BE2\u3001\u4E0D\u963B\u585E\u7B49\u5F85\u6267\u884C\u7ED3\u679C\u3002\n6. \u6536\u5230\u9A8C\u6536\u56DE\u8C03\u65F6\u6838\u5BF9\u5B9E\u9645\u4EA7\u51FA\uFF0C\u901A\u8FC7\u8C03\u7528 accept\uFF0C\u4E0D\u901A\u8FC7\u8C03\u7528 reject \u5E76\u8BF4\u660E\u5177\u4F53\u5DEE\u8DDD\uFF1B\u5DF2\u63D0\u4EA4\u7684\u540E\u7EED\u4EFB\u52A1\u4F1A\u81EA\u52A8\u63A5\u7EED\u3002\u9700\u6C42\u5B8C\u6210\u540E\u6309\u771F\u5B9E\u7ED3\u679C\u7EDF\u4E00\u6C47\u62A5\uFF0C\u4E0D\u7528\u5B50\u4EFB\u52A1\u8FDB\u5C55\u66FF\u4EE3\u6574\u4F53\u9A8C\u6536\u7ED3\u8BBA\u3002\n";
5
5
  //# sourceMappingURL=task-planning.d.ts.map
@@ -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,qvmBA0DlC,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,yvrBAiElC,CAAA"}
@@ -1,5 +1,5 @@
1
1
  /** Versioned built-in instructions; installed copies update through SkillService. */
2
- export const TASK_PLANNING_VERSION = '1.5.0';
2
+ export const TASK_PLANNING_VERSION = '1.6.0';
3
3
  export const TASK_PLANNING_DESCRIPTION = '收到实际工作需求时,主动按授权伙伴的专长委派;单一专业整项交付,多专业按产出拆解、安排依赖并提交看板,无需用户点名触发。';
4
4
  export const TASK_PLANNING_DOCUMENT = `---
5
5
  name: task-planning
@@ -13,6 +13,13 @@ allowed-tools: [partner_requirements, partner_task_board, partner_collaborate]
13
13
 
14
14
  专业的事交给专业的伙伴。收到实际工作请求时,先匹配所需专长与当前已授权伙伴的职责、实际能力和已启用 Skill,再决定谁执行、是否拆分。不要先自己做完,再补看板记录。用户已授权协作并提出工作目标时,不需要再询问“要不要拆解”或等待用户逐个 @。
15
15
 
16
+ ## 看板委派与临时子 Agent 的区别
17
+
18
+ - 本技能所说的“分解任务、专业分工”是创建持久化需求和看板任务,再指派已授权的伙伴,不是调用原生 Agent / subagent / spawn_agent 并行研究。临时子 Agent 不会自动成为看板任务,也不具备该需求的依赖、验收、恢复和渠道汇总流程;不能把启动子 Agent 报告成“已完成看板分工”。
19
+ - 用户明确要求“重新设计一下,分解任务,好好调研,确认可行性”等实际交付时,先复用或创建需求,按调研证据、可行性验证、设计产出等真实交付边界提交看板分工。需要调研才能确定实现方案,可以先提交调研与验证任务,后续在原需求追加实现任务;不能以“先调研”为由先开一批临时子 Agent 绕过看板。
20
+ - 只有用户明确指定临时子 Agent,或已经承接一个看板任务、在允许的工具权限内做范围内辅助工作时,才可选择原生子 Agent。辅助结果仍由该看板任务执行者负责,不替代任务归属、验收和交付,也不得扩大伙伴间授权。
21
+ - 看板工具不可用、授权伙伴不匹配或缺少执行能力时,说明具体缺口;不暗中切换成子 Agent 冒充伙伴委派。仅规划仍按用户要求不启动执行。
22
+
16
23
  ## 分工决策
17
24
 
18
25
  - 分工字段不可颠倒:你(A)把工作交给专业伙伴 B 时,assignee=B(实际执行者),reviewer=A(验收者,创建时可省略并默认自己)。需求 owner 是统筹收尾负责人,不等于子任务执行者。只有自己实际做工作才把 assignee 填成自己;不要把被委派的人填成 reviewer。
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsD/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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6D/B,CAAA"}
@@ -1,11 +1,13 @@
1
1
  import { type ConcernActivityView, type ConcernView } from '../../client-api.js';
2
- export declare function ConcernBoard({ companionId, activity, value, busy, onValue, onAdd, onCheck, onAct }: {
2
+ import type { ConcernRecordTargetView } from '../../client-api.js';
3
+ export declare function ConcernBoard({ companionId, activity, value, busy, onValue, onAdd, onCheck, onAct, onEdited }: {
3
4
  companionId: string;
4
5
  activity: ConcernActivityView;
5
6
  value: string;
6
7
  busy: boolean;
7
8
  onValue(value: string): void;
8
- onAdd(): void;
9
+ onAdd(target?: ConcernRecordTargetView, reason?: string): Promise<boolean>;
10
+ onEdited(): Promise<void>;
9
11
  onCheck(item: ConcernView): void;
10
12
  onAct(item: ConcernView, action: 'watch' | 'ignore' | 'prioritize' | 'resolve'): void;
11
13
  }): JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"concern-board.d.ts","sourceRoot":"","sources":["../../../src/ui/memory/concern-board.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAM,KAAK,mBAAmB,EAAE,KAAK,WAAW,EAAsD,MAAM,qBAAqB,CAAA;AAGxI,wBAAgB,YAAY,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;IACnG,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,mBAAmB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,IAAI,IAAI,CAAA;IAC7H,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAAA;IAChC,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,GAAG,QAAQ,GAAG,YAAY,GAAG,SAAS,GAAG,IAAI,CAAA;CACtF,GAAG,GAAG,CAAC,OAAO,CAiFd"}
1
+ {"version":3,"file":"concern-board.d.ts","sourceRoot":"","sources":["../../../src/ui/memory/concern-board.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAM,KAAK,mBAAmB,EAAE,KAAK,WAAW,EAAsD,MAAM,qBAAqB,CAAA;AAMxI,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAClE,wBAAgB,YAAY,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;IAC7G,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,mBAAmB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,CAAC,MAAM,CAAC,EAAE,uBAAuB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC1L,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACzB,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAAA;IAChC,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,GAAG,QAAQ,GAAG,YAAY,GAAG,SAAS,GAAG,IAAI,CAAA;CACtF,GAAG,GAAG,CAAC,OAAO,CAyFd"}
@@ -4,12 +4,18 @@ import { IconCheckOutline14, IconChevronDownOutline14, IconPlusOutline16, IconLi
4
4
  import { api } from '../../client-api.js';
5
5
  import { futureTime } from '../../time-format.js';
6
6
  import { errorMessage as message } from '../workspace-components.js';
7
- export function ConcernBoard({ companionId, activity, value, busy, onValue, onAdd, onCheck, onAct }) {
7
+ import { ConcernDeleteButton, ArchivedConcerns } from './concern-deletion.js';
8
+ import { ConcernEditor } from './concern-editor.js';
9
+ import { ConcernRecordFields } from './concern-record-fields.js';
10
+ export function ConcernBoard({ companionId, activity, value, busy, onValue, onAdd, onCheck, onAct, onEdited }) {
8
11
  const visible = activity.concerns.filter(item => item.state !== 'archived');
9
12
  const active = visible.filter(item => item.state !== 'resolved');
10
13
  const resolved = visible.filter(item => item.state === 'resolved');
11
14
  const latest = new Map([...activity.observations].reverse().map(item => [item.concernId, item]));
15
+ const [editing, setEditing] = useState();
12
16
  const [composing, setComposing] = useState(false);
17
+ const [reason, setReason] = useState('');
18
+ const [recordTarget, setRecordTarget] = useState();
13
19
  const [expandedId, setExpandedId] = useState();
14
20
  const [visibleCount, setVisibleCount] = useState(5);
15
21
  const [mention, setMention] = useState();
@@ -48,7 +54,12 @@ export function ConcernBoard({ companionId, activity, value, busy, onValue, onAd
48
54
  }, 150);
49
55
  return () => { window.clearTimeout(timer); controller.abort(); };
50
56
  }, [companionId, mention?.query, suggestionsOpen]);
51
- const submit = (event) => { event.preventDefault(); onAdd(); setComposing(false); setMention(undefined); };
57
+ const submit = (event) => { event.preventDefault(); void onAdd(recordTarget, reason).then(ok => { if (ok) {
58
+ setComposing(false);
59
+ setMention(undefined);
60
+ setRecordTarget(undefined);
61
+ setReason('');
62
+ } }); };
52
63
  const chooseSource = (source) => {
53
64
  if (mention === undefined)
54
65
  return;
@@ -59,7 +70,7 @@ export function ConcernBoard({ companionId, activity, value, busy, onValue, onAd
59
70
  setSources([]);
60
71
  window.requestAnimationFrame(() => { inputRef.current?.focus(); inputRef.current?.setSelectionRange(cursor, cursor); });
61
72
  };
62
- return _jsxs("section", { className: "dsh-partner-concern-board", "aria-labelledby": "partner-concerns-title", children: [_jsxs("header", { children: [_jsxs("span", { children: [_jsxs("strong", { id: "partner-concerns-title", children: ["\u4F19\u4F34\u5728\u610F\u7684\u4E8B ", _jsx("b", { children: active.length })] }), _jsx("p", { children: "\u5C1A\u672A\u95ED\u73AF\u3001\u503C\u5F97\u7EE7\u7EED\u7559\u610F\u7684\u4E8B\u60C5" })] }), _jsxs("button", { type: "button", "aria-expanded": composing, onClick: () => setComposing(current => !current), children: [_jsx(IconPlusOutline16, { size: 14 }), "\u4EA4\u4EE3\u4E00\u4EF6\u4E8B"] })] }), composing && _jsxs("form", { className: "dsh-partner-concern-compose", onSubmit: submit, children: [_jsxs("label", { children: [_jsx("span", { children: "\u9700\u8981\u7559\u610F\u7684\u4E8B" }), _jsxs("div", { className: "dsh-partner-concern-input-wrap", children: [_jsx("input", { ref: inputRef, autoFocus: true, value: value, maxLength: 300, placeholder: "\u8F93\u5165 @ \u9009\u62E9\u6587\u4EF6\u6216\u77E5\u8BC6\u6587\u6863", role: "combobox", "aria-autocomplete": "list", "aria-expanded": suggestionsOpen, "aria-controls": suggestionsOpen ? listboxId : undefined, "aria-activedescendant": suggestionsOpen && sources[activeSource] ? `${listboxId}-option-${activeSource}` : undefined, onChange: event => { onValue(event.target.value); setMention(activeMention(event.target.value, event.target.selectionStart ?? event.target.value.length)); }, onClick: event => setMention(activeMention(event.currentTarget.value, event.currentTarget.selectionStart ?? event.currentTarget.value.length)), onKeyDown: event => {
73
+ return _jsxs("section", { className: "dsh-partner-concern-board", "aria-labelledby": "partner-concerns-title", children: [_jsxs("header", { children: [_jsxs("span", { children: [_jsxs("strong", { id: "partner-concerns-title", children: ["\u4F19\u4F34\u5728\u610F\u7684\u4E8B ", _jsx("b", { children: active.length })] }), _jsx("p", { children: "\u5C1A\u672A\u95ED\u73AF\u3001\u503C\u5F97\u7EE7\u7EED\u7559\u610F\u7684\u4E8B\u60C5" })] }), _jsxs("button", { type: "button", "aria-expanded": composing, onClick: () => { setEditing(undefined); setComposing(current => !current); }, children: [_jsx(IconPlusOutline16, { size: 14 }), "\u4EA4\u4EE3\u4E00\u4EF6\u4E8B"] })] }), editing && _jsx(ConcernEditor, { companionId: companionId, item: editing, close: () => setEditing(undefined), saved: onEdited }, editing.id), composing && _jsxs("form", { className: "dsh-partner-concern-compose", "aria-label": "\u65B0\u589E\u5173\u6CE8", "aria-busy": busy, onSubmit: submit, children: [_jsxs("header", { className: "dsh-partner-concern-form-heading", children: [_jsx("strong", { children: "\u4EA4\u4EE3\u4E00\u4EF6\u4E8B" }), _jsx("p", { children: "\u5148\u8BF4\u8981\u5173\u6CE8\u4EC0\u4E48\uFF0C\u518D\u8865\u5145\u68C0\u67E5\u65B9\u5F0F\u548C\u8BB0\u5F55\u4F4D\u7F6E\u3002" })] }), _jsxs("label", { children: [_jsx("span", { children: "\u9700\u8981\u7559\u610F\u7684\u4E8B" }), _jsxs("div", { className: "dsh-partner-concern-input-wrap", children: [_jsx("input", { ref: inputRef, autoFocus: true, value: value, maxLength: 300, placeholder: "\u8F93\u5165 @ \u9009\u62E9\u6587\u4EF6\u6216\u77E5\u8BC6\u6587\u6863", role: "combobox", "aria-autocomplete": "list", "aria-expanded": suggestionsOpen, "aria-controls": suggestionsOpen ? listboxId : undefined, "aria-activedescendant": suggestionsOpen && sources[activeSource] ? `${listboxId}-option-${activeSource}` : undefined, onChange: event => { onValue(event.target.value); setMention(activeMention(event.target.value, event.target.selectionStart ?? event.target.value.length)); }, onClick: event => setMention(activeMention(event.currentTarget.value, event.currentTarget.selectionStart ?? event.currentTarget.value.length)), onKeyDown: event => {
63
74
  if (!suggestionsOpen)
64
75
  return;
65
76
  if (event.key === 'ArrowDown') {
@@ -78,12 +89,12 @@ export function ConcernBoard({ companionId, activity, value, busy, onValue, onAd
78
89
  event.preventDefault();
79
90
  setMention(undefined);
80
91
  }
81
- } }), suggestionsOpen && _jsx("div", { id: listboxId, className: "dsh-partner-concern-sources", role: "listbox", "aria-label": "\u53EF\u5F15\u7528\u7684\u6587\u4EF6\u4E0E\u77E5\u8BC6\u6587\u6863", children: sourcesLoading ? _jsx("p", { role: "status", children: "\u6B63\u5728\u67E5\u627E\u53EF\u5F15\u7528\u5185\u5BB9\u2026" }) : sourceError ? _jsxs("p", { role: "status", children: ["\u5019\u9009\u52A0\u8F7D\u5931\u8D25\uFF1A", sourceError] }) : sources.length === 0 ? _jsx("p", { role: "status", children: "\u6CA1\u6709\u627E\u5230\u5339\u914D\u7684\u6587\u4EF6\u6216\u5DF2\u6302\u8F7D\u77E5\u8BC6\u6587\u6863" }) : _jsx(_Fragment, { children: sources.map((source, index) => _jsxs("button", { type: "button", role: "option", id: `${listboxId}-option-${index}`, "aria-selected": index === activeSource, "data-kind": source.kind, onMouseDown: event => event.preventDefault(), onMouseEnter: () => setActiveSource(index), onClick: () => chooseSource(source), children: [_jsx("span", { children: source.kind === 'file' ? _jsx(IconDataOutline16, { size: 15 }) : _jsx(IconLinkOutline16, { size: 15 }) }), _jsx("strong", { children: source.label }), _jsx("small", { children: source.detail })] }, `${source.kind}:${source.token}`)) }) })] }), _jsxs("small", { className: "dsh-partner-concern-compose-hint", children: ["\u8F93\u5165 ", _jsx("b", { children: "@" }), " \u4F1A\u5217\u51FA\u5F53\u524D\u4F1A\u8BDD\u6587\u4EF6\u548C\u5DF2\u6302\u8F7D\u7684\u77E5\u8BC6\u6587\u6863\uFF0C\u4E5F\u53EF\u4EE5\u7EE7\u7EED\u8F93\u5165\u5173\u952E\u8BCD\u7B5B\u9009\u3002"] })] }), _jsxs("div", { children: [_jsx("button", { type: "button", onClick: () => { setComposing(false); setMention(undefined); onValue(''); }, children: "\u53D6\u6D88" }), _jsx("button", { type: "submit", className: "is-primary", disabled: busy || !value.trim(), children: "\u8BA9\u4F19\u4F34\u8BB0\u7740" })] })] }), _jsx("div", { className: "dsh-partner-concern-list", role: "list", children: active.length === 0 ? _jsx("p", { className: "dsh-partner-concern-empty", children: "\u6700\u8FD1\u6CA1\u6709\u672A\u95ED\u73AF\u7684\u4E8B\u3002\u4F60\u4E5F\u53EF\u4EE5\u76F4\u63A5\u5BF9\u4F19\u4F34\u8BF4\u201C\u8FD9\u4E2A\u5E2E\u6211\u7559\u610F\u201D\u3002" }) : shown.map(item => {
92
+ } }), suggestionsOpen && _jsx("div", { id: listboxId, className: "dsh-partner-concern-sources", role: "listbox", "aria-label": "\u53EF\u5F15\u7528\u7684\u6587\u4EF6\u4E0E\u77E5\u8BC6\u6587\u6863", children: sourcesLoading ? _jsx("p", { role: "status", children: "\u6B63\u5728\u67E5\u627E\u53EF\u5F15\u7528\u5185\u5BB9\u2026" }) : sourceError ? _jsxs("p", { role: "status", children: ["\u5019\u9009\u52A0\u8F7D\u5931\u8D25\uFF1A", sourceError] }) : sources.length === 0 ? _jsx("p", { role: "status", children: "\u6CA1\u6709\u627E\u5230\u5339\u914D\u7684\u6587\u4EF6\u6216\u5DF2\u6302\u8F7D\u77E5\u8BC6\u6587\u6863" }) : _jsx(_Fragment, { children: sources.map((source, index) => _jsxs("button", { type: "button", role: "option", id: `${listboxId}-option-${index}`, "aria-selected": index === activeSource, "data-kind": source.kind, onMouseDown: event => event.preventDefault(), onMouseEnter: () => setActiveSource(index), onClick: () => chooseSource(source), children: [_jsx("span", { children: source.kind === 'file' ? _jsx(IconDataOutline16, { size: 15 }) : _jsx(IconLinkOutline16, { size: 15 }) }), _jsx("strong", { children: source.label }), _jsx("small", { children: source.detail })] }, `${source.kind}:${source.token}`)) }) })] }), _jsxs("small", { className: "dsh-partner-concern-compose-hint", children: ["\u8F93\u5165 ", _jsx("b", { children: "@" }), " \u9009\u62E9\u68C0\u67E5\u4F9D\u636E\uFF1A\u5F53\u524D\u4F1A\u8BDD\u6587\u4EF6\u6216\u5DF2\u6302\u8F7D\u77E5\u8BC6\u6587\u6863\u3002\u4F9D\u636E\u53EA\u8BFB\uFF0C\u4E0D\u4F5C\u4E3A\u8BB0\u5F55\u4F4D\u7F6E\u3002"] })] }), _jsx(ConcernRecordFields, { companionId: companionId, reason: reason, onReason: setReason, target: recordTarget, onTarget: setRecordTarget }), _jsxs("div", { children: [_jsx("button", { type: "button", onClick: () => { setComposing(false); setMention(undefined); setRecordTarget(undefined); setReason(''); onValue(''); }, children: "\u53D6\u6D88" }), _jsx("button", { type: "submit", className: "is-primary", disabled: busy || !value.trim(), children: "\u8BA9\u4F19\u4F34\u8BB0\u7740" })] })] }), _jsx("div", { className: "dsh-partner-concern-list", role: "list", children: active.length === 0 ? _jsx("p", { className: "dsh-partner-concern-empty", children: "\u6700\u8FD1\u6CA1\u6709\u672A\u95ED\u73AF\u7684\u4E8B\u3002\u4F60\u4E5F\u53EF\u4EE5\u76F4\u63A5\u5BF9\u4F19\u4F34\u8BF4\u201C\u8FD9\u4E2A\u5E2E\u6211\u7559\u610F\u201D\u3002" }) : shown.map(item => {
82
93
  const observation = latest.get(item.id);
83
94
  const expanded = expandedId === item.id;
84
95
  const status = observation ? concernObservationStatus(observation) : item.state === 'active' ? '正在留意' : '暂时记着';
85
- return _jsxs("article", { role: "listitem", "data-state": item.state, "data-expanded": expanded, children: [_jsxs("button", { type: "button", className: "dsh-partner-concern-row", "aria-expanded": expanded, onClick: () => setExpandedId(current => current === item.id ? undefined : item.id), children: [_jsxs("span", { className: "dsh-partner-concern-state", children: [_jsx("i", {}), status] }), _jsxs("span", { className: "dsh-partner-concern-copy", children: [_jsx("strong", { children: item.subject }), _jsx("small", { children: observation ? observation.event : item.reason })] }), _jsxs("span", { className: "dsh-partner-concern-time", title: `计划于 ${new Date(item.nextCheckAt).toLocaleString()} 再次留意`, children: [_jsx("small", { children: "\u4E0B\u6B21\u7559\u610F" }), _jsx("strong", { children: futureTime(item.nextCheckAt) })] }), _jsx(IconChevronDownOutline14, { size: 14 })] }), expanded && _jsxs("div", { className: "dsh-partner-concern-detail", children: [_jsx("p", { children: item.reason }), observation && _jsxs(_Fragment, { children: [_jsx("blockquote", { children: observation.event }), _jsxs("div", { className: "dsh-partner-concern-decision", "data-decision": observation.decision, children: [_jsx("strong", { children: concernObservationStatus(observation) }), _jsx("span", { children: observation.decisionReason || concernObservationExplanation(observation) }), _jsxs("small", { children: ["\u6253\u6270\u5206\u6570 ", Math.round(observation.interruptScore * 100), observation.notificationRuleEffect !== 'auto' && observation.notificationRuleReason ? ` · 知识规则:${observation.notificationRuleReason}` : ''] })] })] }), item.resources.length > 0 && _jsx("div", { className: "dsh-partner-concern-resources", children: item.resources.map(resource => _jsxs("span", { children: [resource.kind === 'file' ? '文件' : '知识', " \u00B7 ", resource.label] }, `${resource.kind}:${resource.locator}`)) }), _jsxs("small", { children: [item.origin === 'explicit' ? '你明确交代' : '伙伴从对话中注意到', " \u00B7 ", watchKindLabel(item.watchKind)] }), _jsxs("div", { className: "dsh-partner-concern-actions", "aria-label": `${item.subject} 的操作`, children: [_jsx("button", { type: "button", disabled: busy, onClick: () => onCheck(item), children: "\u7ACB\u5373\u68C0\u67E5\u8FD9\u6761" }), _jsx("button", { type: "button", disabled: busy, onClick: () => onAct(item, 'watch'), children: "\u7EE7\u7EED\u7559\u610F" }), _jsx("button", { type: "button", disabled: busy, onClick: () => onAct(item, 'prioritize'), children: "\u63D0\u9AD8\u5173\u6CE8" }), _jsx("button", { type: "button", disabled: busy, onClick: () => onAct(item, 'resolve'), children: "\u5DF2\u7ECF\u89E3\u51B3" }), _jsx("button", { type: "button", className: "is-danger", disabled: busy, onClick: () => onAct(item, 'ignore'), children: "\u522B\u7BA1\u8FD9\u4E2A" })] })] })] }, item.id);
86
- }) }), (active.length > shown.length || visibleCount > 5) && _jsx("div", { className: "dsh-partner-concern-more", children: active.length > shown.length ? _jsxs("button", { type: "button", onClick: () => setVisibleCount(count => Math.min(active.length, count + 20)), children: ["\u518D\u663E\u793A ", Math.min(20, active.length - shown.length), " \u6761"] }) : _jsx("button", { type: "button", onClick: () => setVisibleCount(5), children: "\u6536\u8D77\u5217\u8868" }) }), resolved.length > 0 && _jsxs("details", { className: "dsh-partner-concern-resolved", children: [_jsxs("summary", { children: ["\u5DF2\u7ECF\u89E3\u51B3 ", _jsx("b", { children: resolved.length })] }), _jsx("div", { children: resolved.slice(0, 30).map(item => _jsxs("article", { children: [_jsx("span", { children: _jsx(IconCheckOutline14, { size: 13 }) }), _jsx("strong", { children: item.subject }), _jsx("button", { type: "button", disabled: busy, onClick: () => onAct(item, 'watch'), children: "\u91CD\u65B0\u7559\u610F" })] }, item.id)) })] })] });
96
+ return _jsxs("article", { role: "listitem", "data-state": item.state, "data-expanded": expanded, children: [expanded && _jsxs("p", { className: "dsh-partner-record-summary", children: ["\u8BB0\u5F55\u4F4D\u7F6E\uFF1A", item.recordTarget ? `${item.recordTarget.kind === 'file' ? '本地文件' : '笔记文档'} · ${item.recordTarget.label}` : '伙伴内部观察记录(不创建文档、不回写依据)'] }), _jsxs("button", { type: "button", className: "dsh-partner-concern-row", "aria-expanded": expanded, onClick: () => setExpandedId(current => current === item.id ? undefined : item.id), children: [_jsxs("span", { className: "dsh-partner-concern-state", children: [_jsx("i", {}), status] }), _jsxs("span", { className: "dsh-partner-concern-copy", children: [_jsx("strong", { children: item.subject }), _jsx("small", { children: observation ? observation.event : item.reason })] }), _jsxs("span", { className: "dsh-partner-concern-time", title: `计划于 ${new Date(item.nextCheckAt).toLocaleString()} 再次留意`, children: [_jsx("small", { children: "\u4E0B\u6B21\u7559\u610F" }), _jsx("strong", { children: futureTime(item.nextCheckAt) })] }), _jsx(IconChevronDownOutline14, { size: 14 })] }), expanded && _jsxs("div", { className: "dsh-partner-concern-detail", children: [_jsx("p", { children: item.reason }), observation && _jsxs(_Fragment, { children: [_jsx("blockquote", { children: observation.event }), _jsxs("div", { className: "dsh-partner-concern-decision", "data-decision": observation.decision, children: [_jsx("strong", { children: concernObservationStatus(observation) }), _jsx("span", { children: observation.decisionReason || concernObservationExplanation(observation) }), _jsxs("small", { children: ["\u6253\u6270\u5206\u6570 ", Math.round(observation.interruptScore * 100), observation.notificationRuleEffect !== 'auto' && observation.notificationRuleReason ? ` · 知识规则:${observation.notificationRuleReason}` : ''] })] })] }), item.resources.length > 0 && _jsx("div", { className: "dsh-partner-concern-resources", children: item.resources.map(resource => _jsxs("span", { children: [resource.kind === 'file' ? '文件' : '知识', " \u00B7 ", resource.label] }, `${resource.kind}:${resource.locator}`)) }), _jsxs("small", { children: [item.origin === 'explicit' ? '你明确交代' : '伙伴从对话中注意到', " \u00B7 ", watchKindLabel(item.watchKind)] }), _jsxs("div", { className: "dsh-partner-concern-actions", "aria-label": `${item.subject} 的操作`, children: [_jsx("button", { type: "button", onClick: () => { setComposing(false); setEditing(item); }, children: "\u7F16\u8F91" }), _jsx("button", { type: "button", disabled: busy, onClick: () => onCheck(item), children: "\u7ACB\u5373\u68C0\u67E5\u8FD9\u6761" }), _jsx("button", { type: "button", disabled: busy, onClick: () => onAct(item, 'watch'), children: "\u7EE7\u7EED\u7559\u610F" }), _jsx("button", { type: "button", disabled: busy, onClick: () => onAct(item, 'prioritize'), children: "\u63D0\u9AD8\u5173\u6CE8" }), _jsx("button", { type: "button", disabled: busy, onClick: () => onAct(item, 'resolve'), children: "\u5DF2\u7ECF\u89E3\u51B3" }), _jsx(ConcernDeleteButton, { companionId: companionId, item: item, disabled: busy, onDeleted: onEdited })] })] })] }, item.id);
97
+ }) }), (active.length > shown.length || visibleCount > 5) && _jsx("div", { className: "dsh-partner-concern-more", children: active.length > shown.length ? _jsxs("button", { type: "button", onClick: () => setVisibleCount(count => Math.min(active.length, count + 20)), children: ["\u518D\u663E\u793A ", Math.min(20, active.length - shown.length), " \u6761"] }) : _jsx("button", { type: "button", onClick: () => setVisibleCount(5), children: "\u6536\u8D77\u5217\u8868" }) }), resolved.length > 0 && _jsxs("details", { className: "dsh-partner-concern-resolved", children: [_jsxs("summary", { children: ["\u5DF2\u7ECF\u89E3\u51B3 ", _jsx("b", { children: resolved.length })] }), _jsx("div", { children: resolved.slice(0, 30).map(item => _jsxs("article", { children: [_jsx("span", { children: _jsx(IconCheckOutline14, { size: 13 }) }), _jsx("strong", { children: item.subject }), _jsx("button", { type: "button", disabled: busy, onClick: () => onAct(item, 'watch'), children: "\u91CD\u65B0\u7559\u610F" }), _jsx(ConcernDeleteButton, { companionId: companionId, item: item, disabled: busy, onDeleted: onEdited })] }, item.id)) })] }), _jsx(ArchivedConcerns, { companionId: companionId, onChanged: onEdited })] });
87
98
  }
88
99
  function activeMention(value, cursor) {
89
100
  const prefix = value.slice(0, cursor);
@@ -1 +1 @@
1
- {"version":3,"file":"concern-board.js","sourceRoot":"","sources":["../../../src/ui/memory/concern-board.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"concern-board.js","sourceRoot":"","sources":["../../../src/ui/memory/concern-board.tsx"],"names":[],"mappings":"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"}