opencode-multiagent 0.3.0-next.1 → 0.4.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 (89) hide show
  1. package/AGENTS.md +21 -0
  2. package/CHANGELOG.md +13 -0
  3. package/README.md +4 -4
  4. package/README.tr.md +4 -4
  5. package/agents/AGENTS.md +91 -0
  6. package/agents/auditor.md +59 -17
  7. package/agents/{worker.md → coder.md} +12 -10
  8. package/agents/{scribe.md → docmaster.md} +16 -8
  9. package/agents/executor.md +45 -62
  10. package/agents/planner.md +59 -47
  11. package/agents/reviewer.md +22 -9
  12. package/agents/scout.md +16 -12
  13. package/agents/sec-coder.md +83 -0
  14. package/agents/ui-coder.md +77 -0
  15. package/commands/board.md +17 -0
  16. package/commands/execute.md +8 -7
  17. package/commands/init-deep.md +6 -6
  18. package/commands/init.md +4 -5
  19. package/commands/inspect.md +5 -5
  20. package/commands/plan.md +7 -6
  21. package/commands/quality.md +3 -3
  22. package/commands/review.md +4 -3
  23. package/commands/status.md +4 -3
  24. package/defaults/AGENTS.md +48 -0
  25. package/defaults/opencode-multiagent.json +24 -67
  26. package/defaults/opencode-multiagent.schema.json +16 -0
  27. package/dist/index.js +464 -131
  28. package/dist/opencode-multiagent/compiler.d.ts +8 -2
  29. package/dist/opencode-multiagent/compiler.d.ts.map +1 -1
  30. package/dist/opencode-multiagent/constants.d.ts +12 -0
  31. package/dist/opencode-multiagent/constants.d.ts.map +1 -1
  32. package/dist/opencode-multiagent/correlation.d.ts +21 -0
  33. package/dist/opencode-multiagent/correlation.d.ts.map +1 -0
  34. package/dist/opencode-multiagent/hooks.d.ts.map +1 -1
  35. package/dist/opencode-multiagent/log.d.ts.map +1 -1
  36. package/dist/opencode-multiagent/quality.d.ts +4 -0
  37. package/dist/opencode-multiagent/quality.d.ts.map +1 -1
  38. package/dist/opencode-multiagent/supervision.d.ts +14 -0
  39. package/dist/opencode-multiagent/supervision.d.ts.map +1 -1
  40. package/dist/opencode-multiagent/task-manager.d.ts +8 -2
  41. package/dist/opencode-multiagent/task-manager.d.ts.map +1 -1
  42. package/dist/opencode-multiagent/telemetry.d.ts +2 -0
  43. package/dist/opencode-multiagent/telemetry.d.ts.map +1 -1
  44. package/dist/opencode-multiagent/tools.d.ts +32 -1
  45. package/dist/opencode-multiagent/tools.d.ts.map +1 -1
  46. package/docs/agents.md +67 -179
  47. package/docs/agents.tr.md +68 -179
  48. package/docs/configuration.md +14 -25
  49. package/docs/configuration.tr.md +14 -25
  50. package/docs/usage-guide.md +31 -33
  51. package/docs/usage-guide.tr.md +31 -33
  52. package/examples/opencode.with-overrides.json +2 -2
  53. package/package.json +1 -1
  54. package/skills/AGENTS.md +51 -0
  55. package/skills/advanced-evaluation/manifest.json +1 -1
  56. package/skills/cek-context-engineering/manifest.json +1 -1
  57. package/skills/cek-prompt-engineering/manifest.json +1 -1
  58. package/skills/cek-test-prompt/manifest.json +1 -1
  59. package/skills/cek-thought-based-reasoning/manifest.json +1 -1
  60. package/skills/context-degradation/manifest.json +1 -1
  61. package/skills/debate/manifest.json +1 -1
  62. package/skills/design-first/manifest.json +1 -1
  63. package/skills/dispatching-parallel-agents/manifest.json +1 -1
  64. package/skills/drift-analysis/manifest.json +1 -1
  65. package/skills/evaluation/manifest.json +1 -1
  66. package/skills/parallel-investigation/manifest.json +1 -1
  67. package/skills/reflexion-critique/manifest.json +1 -1
  68. package/skills/reflexion-reflect/manifest.json +1 -1
  69. package/skills/root-cause-analysis/manifest.json +1 -1
  70. package/skills/sadd-judge-with-debate/manifest.json +1 -1
  71. package/skills/structured-code-review/manifest.json +1 -1
  72. package/skills/task-decomposition/manifest.json +1 -1
  73. package/skills/verification-before-completion/manifest.json +1 -1
  74. package/skills/verification-gates/manifest.json +1 -1
  75. package/agents/advisor.md +0 -60
  76. package/agents/critic.md +0 -136
  77. package/agents/deep-worker.md +0 -69
  78. package/agents/devil.md +0 -38
  79. package/agents/heavy-worker.md +0 -72
  80. package/agents/lead.md +0 -147
  81. package/agents/librarian.md +0 -66
  82. package/agents/qa.md +0 -53
  83. package/agents/quick.md +0 -70
  84. package/agents/strategist.md +0 -66
  85. package/agents/ui-heavy-worker.md +0 -66
  86. package/agents/ui-worker.md +0 -74
  87. package/agents/validator.md +0 -50
  88. package/dist/opencode-multiagent/file-lock.d.ts +0 -15
  89. package/dist/opencode-multiagent/file-lock.d.ts.map +0 -1
@@ -10,10 +10,16 @@ type McpPermissionRegistry = {
10
10
  denied: string[];
11
11
  fallback: 'allow' | 'deny';
12
12
  };
13
- export declare function compileAgents(cfg: MergedConfig, dirs: Array<string | undefined>, agentSettings?: GenericRecord): Promise<Map<string, McpPermissionRegistry>>;
13
+ type TaskRoutingRegistry = Map<string, Set<string>>;
14
+ type CompileAgentsResult = {
15
+ mcpRegistry: Map<string, McpPermissionRegistry>;
16
+ taskRouting: TaskRoutingRegistry;
17
+ };
18
+ export declare function compileAgents(cfg: MergedConfig, dirs: Array<string | undefined>, agentSettings?: GenericRecord): Promise<CompileAgentsResult>;
19
+ export declare const isTaskRoutingAllowed: (agent: string, target: string, routing: TaskRoutingRegistry) => boolean;
14
20
  export declare function compileCommands(cfg: MergedConfig, dirs: Array<string | undefined>): Promise<void>;
15
21
  export declare const applyBuiltInAgentPolicy: (cfg: MergedConfig) => Promise<void>;
16
22
  export declare const applyPermissionDefaults: (cfg: MergedConfig) => void;
17
23
  export declare const matchesMcpPermission: (tool: string, registry?: McpPermissionRegistry) => boolean;
18
- export type { MergedConfig, McpPermissionRegistry };
24
+ export type { MergedConfig, McpPermissionRegistry, TaskRoutingRegistry };
19
25
  //# sourceMappingURL=compiler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../src/opencode-multiagent/compiler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,KAAK,YAAY,GAAG,aAAa,GAAG;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;CAC5B,CAAC;AAsBF,wBAAsB,aAAa,CACjC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,EAC/B,aAAa,GAAE,aAAkB,GAChC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAwC7C;AAED,wBAAsB,eAAe,CACnC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED,eAAO,MAAM,uBAAuB,GAAU,KAAK,YAAY,KAAG,OAAO,CAAC,IAAI,CAqC7E,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,KAAK,YAAY,KAAG,IAc3D,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,MAAM,MAAM,EAAE,WAAW,qBAAqB,KAAG,OAWrF,CAAC;AAEF,YAAY,EAAE,YAAY,EAAE,qBAAqB,EAAE,CAAC"}
1
+ {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../src/opencode-multiagent/compiler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,KAAK,YAAY,GAAG,aAAa,GAAG;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;CAC5B,CAAC;AAWF,KAAK,mBAAmB,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AA2BpD,KAAK,mBAAmB,GAAG;IACzB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAChD,WAAW,EAAE,mBAAmB,CAAC;CAClC,CAAC;AAEF,wBAAsB,aAAa,CACjC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,EAC/B,aAAa,GAAE,aAAkB,GAChC,OAAO,CAAC,mBAAmB,CAAC,CAwC9B;AAED,eAAO,MAAM,oBAAoB,GAC/B,OAAO,MAAM,EACb,QAAQ,MAAM,EACd,SAAS,mBAAmB,KAC3B,OAKF,CAAC;AAEF,wBAAsB,eAAe,CACnC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED,eAAO,MAAM,uBAAuB,GAAU,KAAK,YAAY,KAAG,OAAO,CAAC,IAAI,CAqC7E,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,KAAK,YAAY,KAAG,IAc3D,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,MAAM,MAAM,EAAE,WAAW,qBAAqB,KAAG,OAWrF,CAAC;AAEF,YAAY,EAAE,YAAY,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,CAAC"}
@@ -29,6 +29,9 @@ export declare const defaultProfiles: {
29
29
  telemetry: boolean;
30
30
  supervision: boolean;
31
31
  quality_gate: boolean;
32
+ task_lifecycle: boolean;
33
+ quality_gate_enforcement: boolean;
34
+ concurrency_limit: number;
32
35
  experimental: {
33
36
  chat_system_transform: boolean;
34
37
  chat_messages_transform: boolean;
@@ -46,6 +49,9 @@ export declare const defaultProfiles: {
46
49
  telemetry: boolean;
47
50
  supervision: boolean;
48
51
  quality_gate: boolean;
52
+ task_lifecycle: boolean;
53
+ quality_gate_enforcement: boolean;
54
+ concurrency_limit: number;
49
55
  skill_sources: string[];
50
56
  skill_injection: boolean;
51
57
  experimental: {
@@ -65,6 +71,9 @@ export declare const defaultProfiles: {
65
71
  telemetry: boolean;
66
72
  supervision: boolean;
67
73
  quality_gate: boolean;
74
+ task_lifecycle: boolean;
75
+ quality_gate_enforcement: boolean;
76
+ concurrency_limit: number;
68
77
  experimental: {
69
78
  chat_system_transform: boolean;
70
79
  chat_messages_transform: boolean;
@@ -84,6 +93,9 @@ export declare const defaultFlags: {
84
93
  telemetry: boolean;
85
94
  supervision: boolean;
86
95
  quality_gate: boolean;
96
+ task_lifecycle: boolean;
97
+ quality_gate_enforcement: boolean;
98
+ concurrency_limit: number;
87
99
  skill_sources: string[];
88
100
  skill_injection: boolean;
89
101
  compiler: {
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/opencode-multiagent/constants.ts"],"names":[],"mappings":"AA4BA,eAAO,MAAM,UAAU,wBAAwB,CAAC;AAChD,eAAO,MAAM,UAAU,WAAW,CAAC;AAEnC,eAAO,MAAM,WAAW,QAAyC,CAAC;AAClE,eAAO,MAAM,SAAS,QAA+B,CAAC;AACtD,eAAO,MAAM,eAAe,QAA8B,CAAC;AAC3D,eAAO,MAAM,iBAAiB,QAAgC,CAAC;AAC/D,eAAO,MAAM,UAAU,QAA4B,CAAC;AACpD,eAAO,MAAM,WAAW,QAA0C,CAAC;AACnE,eAAO,MAAM,YAAY,QAAwC,CAAC;AAElE,eAAO,MAAM,WAAW,QAAsB,CAAC;AAC/C,eAAO,MAAM,mBAAmB,QAA4D,CAAC;AAC7F,eAAO,MAAM,gBAAgB,QAA8B,CAAC;AAC5D,eAAO,MAAM,kBAAkB,QAAgC,CAAC;AAChE,eAAO,MAAM,gBAAgB,QAA8B,CAAC;AAE5D,eAAO,MAAM,iBAAiB,aAa5B,CAAC;AAEH,eAAO,MAAM,qBAAqB,aAOhC,CAAC;AAEH,eAAO,MAAM,iBAAiB,aAA8D,CAAC;AAC7F,eAAO,MAAM,eAAe,UAA0D,CAAC;AACvF,eAAO,MAAM,kBAAkB,QACqF,CAAC;AAErH,eAAO,MAAM,eAAe,UAO3B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0D3B,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCxB,CAAC;AAEF,eAAO,MAAM,oBAAoB,UAA0C,CAAC;AAE5E,eAAO,MAAM,sBAAsB,QAAsD,CAAC;AAC1F,eAAO,MAAM,oBAAoB,UAOhC,CAAC;AACF,eAAO,MAAM,mBAAmB,UAA4B,CAAC;AAE7D,eAAO,MAAM,wBAAwB,UAoBpC,CAAC;AACF,eAAO,MAAM,iBAAiB,UAS7B,CAAC;AAEF,eAAO,MAAM,gBAAgB,0GAC4E,CAAC;AAE1G,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC;AAC/C,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/opencode-multiagent/constants.ts"],"names":[],"mappings":"AA4BA,eAAO,MAAM,UAAU,wBAAwB,CAAC;AAChD,eAAO,MAAM,UAAU,WAAW,CAAC;AAEnC,eAAO,MAAM,WAAW,QAAyC,CAAC;AAClE,eAAO,MAAM,SAAS,QAA+B,CAAC;AACtD,eAAO,MAAM,eAAe,QAA8B,CAAC;AAC3D,eAAO,MAAM,iBAAiB,QAAgC,CAAC;AAC/D,eAAO,MAAM,UAAU,QAA4B,CAAC;AACpD,eAAO,MAAM,WAAW,QAA0C,CAAC;AACnE,eAAO,MAAM,YAAY,QAAwC,CAAC;AAElE,eAAO,MAAM,WAAW,QAAsB,CAAC;AAC/C,eAAO,MAAM,mBAAmB,QAA4D,CAAC;AAC7F,eAAO,MAAM,gBAAgB,QAA8B,CAAC;AAC5D,eAAO,MAAM,kBAAkB,QAAgC,CAAC;AAChE,eAAO,MAAM,gBAAgB,QAA8B,CAAC;AAE5D,eAAO,MAAM,iBAAiB,aAW5B,CAAC;AAEH,eAAO,MAAM,qBAAqB,aAKhC,CAAC;AAEH,eAAO,MAAM,iBAAiB,aAA8D,CAAC;AAC7F,eAAO,MAAM,eAAe,UAA0D,CAAC;AACvF,eAAO,MAAM,kBAAkB,QACqF,CAAC;AAErH,eAAO,MAAM,eAAe,UAO3B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmE3B,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCxB,CAAC;AAEF,eAAO,MAAM,oBAAoB,UAA0C,CAAC;AAE5E,eAAO,MAAM,sBAAsB,QAAsD,CAAC;AAC1F,eAAO,MAAM,oBAAoB,UAOhC,CAAC;AACF,eAAO,MAAM,mBAAmB,UAA4B,CAAC;AAE7D,eAAO,MAAM,wBAAwB,UAoBpC,CAAC;AACF,eAAO,MAAM,iBAAiB,UAS7B,CAAC;AAEF,eAAO,MAAM,gBAAgB,0GAC4E,CAAC;AAE1G,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC;AAC/C,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Task↔Session correlation layer.
3
+ * Bridges task board entries with child sessions by recording dispatch intents
4
+ * and matching them to session.created events.
5
+ */
6
+ type SessionTaskLink = {
7
+ taskID: string;
8
+ childSessionID: string;
9
+ parentSessionID: string;
10
+ linkedAt: number;
11
+ };
12
+ export declare const createCorrelationController: () => {
13
+ recordIntent: (parentSessionID: string, taskID: string, targetAgent: string) => void;
14
+ tryCorrelate: (parentSessionID: string, childSessionID: string, agentHint?: string) => SessionTaskLink | undefined;
15
+ getLink: (childSessionID: string) => SessionTaskLink | undefined;
16
+ getLinkByTask: (taskID: string) => SessionTaskLink | undefined;
17
+ removeLink: (childSessionID: string) => SessionTaskLink | undefined;
18
+ };
19
+ export type CorrelationController = ReturnType<typeof createCorrelationController>;
20
+ export {};
21
+ //# sourceMappingURL=correlation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"correlation.d.ts","sourceRoot":"","sources":["../../src/opencode-multiagent/correlation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,KAAK,eAAe,GAAG;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAIF,eAAO,MAAM,2BAA2B;oCAYC,MAAM,UAAU,MAAM,eAAe,MAAM,KAAG,IAAI;oCAoBtE,MAAM,kBACP,MAAM,cACV,MAAM,KACjB,eAAe,GAAG,SAAS;8BAqCG,MAAM,KAAG,eAAe,GAAG,SAAS;4BAKtC,MAAM,KAAG,eAAe,GAAG,SAAS;iCAO/B,MAAM,KAAG,eAAe,GAAG,SAAS;CASzE,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAC,OAAO,2BAA2B,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/opencode-multiagent/hooks.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAgCjD;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG;IAClC,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,yDAAyD;IACzD,cAAc,CAAC,EAAE,CACf,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,EAC7C,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,KACxC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,wDAAwD;IACxD,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE;QACjC,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpB,sEAAsE;IACtE,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClG,gEAAgE;IAChE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzF,uDAAuD;IACvD,oCAAoC,CAAC,EAAE,CACrC,KAAK,EAAE,OAAO,EACd,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,KACzB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,mEAAmE;IACnE,sCAAsC,CAAC,EAAE,CACvC,KAAK,EAAE,OAAO,EACd,MAAM,EAAE;QAAE,QAAQ,EAAE,KAAK,CAAC;YAAE,IAAI,CAAC,EAAE;gBAAE,IAAI,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,KAAK,EAAE,OAAO,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE,KACxE,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,uEAAuE;IACvE,iCAAiC,CAAC,EAAE,CAClC,KAAK,EAAE,OAAO,EACd,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,KAC1B,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,6DAA6D;IAC7D,4BAA4B,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5F,CAAC;AAGF,KAAK,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAezC,eAAO,MAAM,iBAAiB,GAAI,gDAK/B;IAGD,MAAM,EAAE,GAAG,CAAC;IACZ,KAAK,EAAE,aAAa,CAAC;IACrB,aAAa,EAAE,aAAa,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,KAAG,aAwdH,CAAC"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/opencode-multiagent/hooks.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAiCjD;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG;IAClC,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,yDAAyD;IACzD,cAAc,CAAC,EAAE,CACf,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,EAC7C,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,KACxC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,wDAAwD;IACxD,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE;QACjC,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpB,sEAAsE;IACtE,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClG,gEAAgE;IAChE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzF,uDAAuD;IACvD,oCAAoC,CAAC,EAAE,CACrC,KAAK,EAAE,OAAO,EACd,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,KACzB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,mEAAmE;IACnE,sCAAsC,CAAC,EAAE,CACvC,KAAK,EAAE,OAAO,EACd,MAAM,EAAE;QAAE,QAAQ,EAAE,KAAK,CAAC;YAAE,IAAI,CAAC,EAAE;gBAAE,IAAI,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,KAAK,EAAE,OAAO,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE,KACxE,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,uEAAuE;IACvE,iCAAiC,CAAC,EAAE,CAClC,KAAK,EAAE,OAAO,EACd,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,KAC1B,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,6DAA6D;IAC7D,4BAA4B,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5F,CAAC;AAGF,KAAK,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAezC,eAAO,MAAM,iBAAiB,GAAI,gDAK/B;IAGD,MAAM,EAAE,GAAG,CAAC;IACZ,KAAK,EAAE,aAAa,CAAC;IACrB,aAAa,EAAE,aAAa,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,KAAG,aAkkBH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/opencode-multiagent/log.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,IAAI,GAAU,MAAM,MAAM,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,OAAO,CAAC,IAAI,CAOvF,CAAC"}
1
+ {"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/opencode-multiagent/log.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,IAAI,GAAU,MAAM,MAAM,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,OAAO,CAAC,IAAI,CAOvF,CAAC"}
@@ -9,6 +9,10 @@ export declare const createQualityController: ({ flags, client, }: {
9
9
  }) => Promise<void>;
10
10
  recordQualityEvidence: (sessionID: string | undefined, command: unknown) => void;
11
11
  trackEdit: (sessionID: string | undefined, filePath: string | undefined) => void;
12
+ hasQualityEvidence: (sessionID: string) => {
13
+ passed: boolean;
14
+ reason?: string;
15
+ };
12
16
  cleanup: () => void;
13
17
  };
14
18
  //# sourceMappingURL=quality.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"quality.d.ts","sourceRoot":"","sources":["../../src/opencode-multiagent/quality.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAU/C,eAAO,MAAM,uBAAuB,GAAI,oBAGrC;IACD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,MAAM,EAAE,YAAY,CAAC;CACtB;gCAoC0C;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,GAAG,CAAA;KAAE,KAAG,OAAO,CAAC,IAAI,CAAC;uCARlD,MAAM,GAAG,SAAS,WAAW,OAAO,KAAG,IAAI;2BATvD,MAAM,GAAG,SAAS,YAAY,MAAM,GAAG,SAAS,KAAG,IAAI;;CAwFtF,CAAC"}
1
+ {"version":3,"file":"quality.d.ts","sourceRoot":"","sources":["../../src/opencode-multiagent/quality.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAU/C,eAAO,MAAM,uBAAuB,GAAI,oBAGrC;IACD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,MAAM,EAAE,YAAY,CAAC;CACtB;gCAoC0C;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,GAAG,CAAA;KAAE,KAAG,OAAO,CAAC,IAAI,CAAC;uCARlD,MAAM,GAAG,SAAS,WAAW,OAAO,KAAG,IAAI;2BATvD,MAAM,GAAG,SAAS,YAAY,MAAM,GAAG,SAAS,KAAG,IAAI;oCAmFxE,MAAM,KAChB;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;;CAiBxC,CAAC"}
@@ -1,4 +1,12 @@
1
1
  import type { PromptClient } from './types.ts';
2
+ type ChildInfo = {
3
+ parentID: string;
4
+ agentName: string | null;
5
+ lastActivity: number;
6
+ remindedAt: number;
7
+ lastToolErrorAt: number;
8
+ hasUnverifiedEdits: boolean;
9
+ };
2
10
  export declare const createSupervisionController: ({ flags, client, }: {
3
11
  flags: Record<string, any>;
4
12
  client: PromptClient;
@@ -8,5 +16,11 @@ export declare const createSupervisionController: ({ flags, client, }: {
8
16
  properties?: any;
9
17
  }) => Promise<void>;
10
18
  cleanup: () => void;
19
+ recordToolError: (sessionID: string) => void;
20
+ recordVerification: (sessionID: string) => void;
21
+ getActiveChildCount: (parentID: string) => number;
22
+ getChildInfo(sessionID: string): ChildInfo | undefined;
23
+ getParentID(sessionID: string): string | undefined;
11
24
  };
25
+ export {};
12
26
  //# sourceMappingURL=supervision.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"supervision.d.ts","sourceRoot":"","sources":["../../src/opencode-multiagent/supervision.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAS/C,eAAO,MAAM,2BAA2B,GAAI,oBAGzC;IACD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,MAAM,EAAE,YAAY,CAAC;CACtB;+BA+ByC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,GAAG,CAAA;KAAE,KAAG,OAAO,CAAC,IAAI,CAAC;;CA4F5F,CAAC"}
1
+ {"version":3,"file":"supervision.d.ts","sourceRoot":"","sources":["../../src/opencode-multiagent/supervision.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,KAAK,SAAS,GAAG;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,2BAA2B,GAAI,oBAGzC;IACD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,MAAM,EAAE,YAAY,CAAC;CACtB;+BA+ByC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,GAAG,CAAA;KAAE,KAAG,OAAO,CAAC,IAAI,CAAC;;iCAwGvD,MAAM,KAAG,IAAI;oCAKV,MAAM,KAAG,IAAI;oCAKb,MAAM,KAAG,MAAM;4BAU5B,MAAM,GAAG,SAAS,GAAG,SAAS;2BAG/B,MAAM,GAAG,MAAM,GAAG,SAAS;CAIrD,CAAC"}
@@ -11,6 +11,7 @@ type Task = {
11
11
  createdBy?: string;
12
12
  dependencies: string[];
13
13
  result?: string;
14
+ sessionID?: string;
14
15
  createdAt: number;
15
16
  updatedAt: number;
16
17
  };
@@ -32,16 +33,21 @@ type TaskFilter = {
32
33
  assignedAgent?: string;
33
34
  };
34
35
  /**
35
- * In-memory task board with optional JSON persistence under .opencode/tasks/taskboard.json.
36
- * All mutating operations fire-and-forget a persist() call failures are non-fatal.
36
+ * In-memory task board with debounced JSON persistence under .magent/board.json.
37
+ * Persistence is serialized to prevent stale-write races during parallel agent execution.
37
38
  */
38
39
  export declare const createTaskManager: (projectRoot?: string) => {
39
40
  create: (input: CreateTaskInput) => Task;
40
41
  update: (taskID: string, input: UpdateTaskInput) => Task | {
41
42
  error: string;
42
43
  };
44
+ get: (taskID: string) => Task | {
45
+ error: string;
46
+ };
43
47
  list: (filter?: TaskFilter) => Task[];
44
48
  load: () => Promise<void>;
49
+ getActiveSummary: () => string;
50
+ linkSession: (taskID: string, sessionID: string) => boolean;
45
51
  };
46
52
  export type TaskManager = ReturnType<typeof createTaskManager>;
47
53
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"task-manager.d.ts","sourceRoot":"","sources":["../../src/opencode-multiagent/task-manager.ts"],"names":[],"mappings":"AAGA,KAAK,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAC7F,KAAK,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AAE9C,KAAK,IAAI,GAAG;IACV,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,YAAY,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,cAAc,MAAM;oBAiC7B,eAAe,KAAG,IAAI;qBAkBrB,MAAM,SAAS,eAAe,KAAG,IAAI,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE;oBAW1D,UAAU,KAAG,IAAI,EAAE;gBAxCnB,OAAO,CAAC,IAAI,CAAC;CAmDrC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
1
+ {"version":3,"file":"task-manager.d.ts","sourceRoot":"","sources":["../../src/opencode-multiagent/task-manager.ts"],"names":[],"mappings":"AAGA,KAAK,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAC7F,KAAK,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AAE9C,KAAK,IAAI,GAAG;IACV,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,YAAY,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,cAAc,MAAM;oBA+F7B,eAAe,KAAG,IAAI;qBAkBrB,MAAM,SAAS,eAAe,KAAG,IAAI,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE;kBA0B5D,MAAM,KAAG,IAAI,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE;oBAM/B,UAAU,KAAG,IAAI,EAAE;gBAlGnB,OAAO,CAAC,IAAI,CAAC;4BA4GP,MAAM;0BAWN,MAAM,aAAa,MAAM,KAAG,OAAO;CAUjE,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
@@ -9,6 +9,7 @@ type SessionTelemetryState = {
9
9
  filesEdited: number;
10
10
  tasksDispatched: number;
11
11
  permissionDenied: number;
12
+ flushed: boolean;
12
13
  };
13
14
  export declare const createTelemetryController: ({ flags }: {
14
15
  flags: Record<string, any>;
@@ -21,6 +22,7 @@ export declare const createTelemetryController: ({ flags }: {
21
22
  trackTaskDispatch(sessionID: string | undefined, extra?: Partial<SessionTelemetryState>): void;
22
23
  trackPermissionDenied(sessionID: string | undefined, extra?: Partial<SessionTelemetryState>): void;
23
24
  flushSession(sessionID: string, reason?: string): Promise<void>;
25
+ flushAll(): Promise<void>;
24
26
  };
25
27
  export {};
26
28
  //# sourceMappingURL=telemetry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/opencode-multiagent/telemetry.ts"],"names":[],"mappings":"AAGA,KAAK,qBAAqB,GAAG;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,WAAW;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE;;+BAoClE,MAAM,GAAG,SAAS,UACtB,OAAO,CAAC,qBAAqB,CAAC,GACpC,IAAI;yBAIc,MAAM,GAAG,SAAS,GAAG,IAAI;6BAKrB,MAAM,GAAG,SAAS,UAAS,OAAO,CAAC,qBAAqB,CAAC,GAAQ,IAAI;8BAMjF,MAAM,GAAG,SAAS,UACtB,OAAO,CAAC,qBAAqB,CAAC,GACpC,IAAI;iCAMM,MAAM,GAAG,SAAS,UACtB,OAAO,CAAC,qBAAqB,CAAC,GACpC,IAAI;qCAMM,MAAM,GAAG,SAAS,UACtB,OAAO,CAAC,qBAAqB,CAAC,GACpC,IAAI;4BAKuB,MAAM,oBAA+B,OAAO,CAAC,IAAI,CAAC;CAmBnF,CAAC"}
1
+ {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/opencode-multiagent/telemetry.ts"],"names":[],"mappings":"AAGA,KAAK,qBAAqB,GAAG;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,WAAW;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE;;+BAwClE,MAAM,GAAG,SAAS,UACtB,OAAO,CAAC,qBAAqB,CAAC,GACpC,IAAI;yBAIc,MAAM,GAAG,SAAS,GAAG,IAAI;6BAMjC,MAAM,GAAG,SAAS,UACtB,OAAO,CAAC,qBAAqB,CAAC,GACpC,IAAI;8BAMM,MAAM,GAAG,SAAS,UACtB,OAAO,CAAC,qBAAqB,CAAC,GACpC,IAAI;iCAMM,MAAM,GAAG,SAAS,UACtB,OAAO,CAAC,qBAAqB,CAAC,GACpC,IAAI;qCAMM,MAAM,GAAG,SAAS,UACtB,OAAO,CAAC,qBAAqB,CAAC,GACpC,IAAI;4BAKuB,MAAM,oBAA+B,OAAO,CAAC,IAAI,CAAC;gBAmB9D,OAAO,CAAC,IAAI,CAAC;CAOlC,CAAC"}
@@ -1,5 +1,13 @@
1
+ import type { CorrelationController } from './correlation.ts';
1
2
  import type { TaskManager } from './task-manager.ts';
2
- export declare const createTaskTools: (taskManager: TaskManager, taskManagerReady: Promise<void>) => {
3
+ type QualityChecker = {
4
+ hasQualityEvidence(sessionID: string): {
5
+ passed: boolean;
6
+ reason?: string;
7
+ };
8
+ };
9
+ type GenericRecord = Record<string, any>;
10
+ export declare const createTaskTools: (taskManager: TaskManager, taskManagerReady: Promise<void>, correlation?: CorrelationController, quality?: QualityChecker, flags?: GenericRecord) => {
3
11
  task_create: {
4
12
  description: string;
5
13
  args: {
@@ -21,6 +29,17 @@ export declare const createTaskTools: (taskManager: TaskManager, taskManagerRead
21
29
  priority?: "high" | "medium" | "low" | undefined;
22
30
  }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
23
31
  };
32
+ task_dispatch: {
33
+ description: string;
34
+ args: {
35
+ taskID: import("zod").ZodString;
36
+ notes: import("zod").ZodOptional<import("zod").ZodString>;
37
+ };
38
+ execute(args: {
39
+ taskID: string;
40
+ notes?: string | undefined;
41
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
42
+ };
24
43
  task_update: {
25
44
  description: string;
26
45
  args: {
@@ -34,11 +53,22 @@ export declare const createTaskTools: (taskManager: TaskManager, taskManagerRead
34
53
  completed: "completed";
35
54
  }>;
36
55
  result: import("zod").ZodOptional<import("zod").ZodString>;
56
+ force: import("zod").ZodOptional<import("zod").ZodBoolean>;
37
57
  };
38
58
  execute(args: {
39
59
  taskID: string;
40
60
  status: "blocked" | "failed" | "pending" | "claimed" | "in_progress" | "completed";
41
61
  result?: string | undefined;
62
+ force?: boolean | undefined;
63
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
64
+ };
65
+ task_get: {
66
+ description: string;
67
+ args: {
68
+ taskID: import("zod").ZodString;
69
+ };
70
+ execute(args: {
71
+ taskID: string;
42
72
  }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
43
73
  };
44
74
  task_list: {
@@ -53,4 +83,5 @@ export declare const createTaskTools: (taskManager: TaskManager, taskManagerRead
53
83
  }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
54
84
  };
55
85
  };
86
+ export {};
56
87
  //# sourceMappingURL=tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/opencode-multiagent/tools.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,eAAO,MAAM,eAAe,GAAI,aAAa,WAAW,EAAE,kBAAkB,OAAO,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0DvF,CAAC"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/opencode-multiagent/tools.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,KAAK,cAAc,GAAG;IACpB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7E,CAAC;AAEF,KAAK,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEzC,eAAO,MAAM,eAAe,GAC1B,aAAa,WAAW,EACxB,kBAAkB,OAAO,CAAC,IAAI,CAAC,EAC/B,cAAc,qBAAqB,EACnC,UAAU,cAAc,EACxB,QAAQ,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyJrB,CAAC"}
package/docs/agents.md CHANGED
@@ -4,10 +4,10 @@
4
4
 
5
5
  # Agent Reference
6
6
 
7
- `opencode-multiagent` ships 20 bundled agents:
7
+ `opencode-multiagent` ships 9 bundled agents:
8
8
 
9
- - 4 primary agents
10
- - 16 subagents
9
+ - 2 primary agents
10
+ - 7 subagents
11
11
 
12
12
  All bundled agents currently default to `temperature: 0`.
13
13
 
@@ -15,244 +15,132 @@ All bundled agents currently default to `temperature: 0`.
15
15
 
16
16
  The system is intentionally layered:
17
17
 
18
- - `lead` owns user-facing routing
19
- - `critic` challenges a route or inspects repo state
20
- - `planner` creates durable plans for larger work
21
- - `executor` turns a plan into bounded worker execution
18
+ - `planner` owns user-facing triage, planning, challenge, and inspection
19
+ - `executor` turns an approved plan into bounded subagent execution
22
20
  - specialized subagents handle coding, review, research, and documentation slices
23
21
 
24
22
  ## High-Level Hierarchy
25
23
 
26
24
  ```text
27
- user
28
- -> lead
29
- -> critic
30
- -> devil
31
- -> strategist
32
- -> planner
33
- -> strategist
34
- -> auditor
35
- -> devil
36
- -> scribe / librarian / reviewer / scout
37
- -> executor
38
- -> quick / worker / heavy-worker / deep-worker
39
- -> ui-worker / ui-heavy-worker
40
- -> reviewer
41
- -> validator
42
- -> qa
43
- -> advisor
44
- -> scout
45
- -> scribe
46
- -> planner (escalation after repeated QA failures)
47
- -> librarian
48
- -> scout
49
- -> scribe
25
+ planner (triage + planning + inspection)
26
+ ├── executor (execution coordination)
27
+ │ ├── coder (standard coding) -> reviewer, scout
28
+ │ ├── ui-coder (UI/UX coding) -> reviewer, scout
29
+ │ ├── sec-coder (security coding) -> reviewer, scout
30
+ │ ├── reviewer (quality gate)
31
+ │ ├── scout (research)
32
+ │ └── docmaster (.magent + docs + GitHub)
33
+ ├── auditor (plan gap finder)
34
+ ├── scout (research)
35
+ ├── reviewer (evidence)
36
+ └── docmaster (plan persistence)
50
37
  ```
51
38
 
52
39
  ## Primary Agents
53
40
 
54
- ### `lead`
55
-
56
- - Mode: `primary`
57
- - Default model: `anthropic/claude-opus-4-6`
58
- - Steps: `500`
59
- - Purpose: single user-facing entry point that owns the full request lifecycle
60
- - Best for: deciding the lightest safe route, delegating work, integrating results, and responding to the user
61
-
62
- ### `critic`
63
-
64
- - Mode: `primary`
65
- - Default model: `openai/gpt-5.4`
66
- - Steps: `200`
67
- - Purpose: challenge agent and inspection agent
68
- - Best for: pressure-testing a route before work starts, or inspecting repo memory and plugin state without implementing changes
69
-
70
41
  ### `planner`
71
42
 
72
43
  - Mode: `primary`
73
44
  - Default model: `anthropic/claude-opus-4-6`
74
- - Steps: `100`
75
- - Purpose: writes durable, execution-ready plans without implementing code
76
- - Best for: larger, cross-cutting, risky, or multi-phase work that needs a stable plan in `.magent/plans/`
45
+ - Steps: `200`
46
+ - Purpose: triage, planning, challenge, and inspection
47
+ - Best for: deciding the lightest safe route, writing durable execution plans, challenging assumptions, inspecting repository state without implementing changes, and integrating results for the user
77
48
 
78
49
  ### `executor`
79
50
 
80
51
  - Mode: `primary`
81
52
  - Default model: `anthropic/claude-sonnet-4-6`
82
53
  - Steps: `200`
83
- - Purpose: runs the approved plan by dispatching bounded worker tasks and enforcing validation tiers
84
- - Best for: orchestrating implementation, task board updates, reviewer passes, validator runs, and QA gates
54
+ - Purpose: execution orchestration
55
+ - Best for: running an approved plan by dispatching bounded coding tasks, coordinating reviewer and scout passes, and enforcing quality gates
85
56
 
86
- ## Coding Workers
57
+ ## Coding Agents
87
58
 
88
- ### `quick`
59
+ ### `coder`
89
60
 
90
61
  - Mode: `subagent`
91
- - Default model: `opencode-go/minimax-m2.5`
92
- - Steps: `16`
93
- - Purpose: very fast worker for tiny, explicit, low-risk edits
94
- - Use when: the task is literal, local, and clearly bounded
95
-
96
- ### `worker`
97
-
98
- - Mode: `subagent`
99
- - Default model: `openai/gpt-5.3-codex`
100
- - Steps: `30`
101
- - Purpose: standard worker for normal bounded implementation work
102
- - Use when: you need the default coding path for non-UI work without the highest risk level
103
-
104
- ### `heavy-worker`
105
-
106
- - Mode: `subagent`
107
- - Default model: `openai/gpt-5.4`
62
+ - Default model: `anthropic/claude-sonnet-4-6`
108
63
  - Steps: `40`
109
- - Purpose: heavy coding worker for risky, cross-cutting, or security-sensitive implementation
110
- - Use when: the change touches multiple modules, high-risk runtime behavior, or sensitive logic
64
+ - Purpose: standard coding work
65
+ - Use when: the task is a bounded, non-UI, non-security-sensitive implementation slice
111
66
 
112
- ### `deep-worker`
67
+ ### `ui-coder`
113
68
 
114
69
  - Mode: `subagent`
115
- - Default model: `anthropic/claude-opus-4-6`
116
- - Steps: `60`
117
- - Purpose: long-horizon single-owner worker for ambiguous or reasoning-heavy coding tasks
118
- - Use when: a task needs more local analysis, flow tracing, or careful multi-step implementation inside one bounded slice
119
-
120
- ### `ui-worker`
121
-
122
- - Mode: `subagent`
123
- - Default model: `anthropic/claude-opus-4-6`
124
- - Steps: `30`
125
- - Purpose: normal-complexity UI and UX worker
70
+ - Default model: `anthropic/claude-sonnet-4-6`
71
+ - Steps: `40`
72
+ - Purpose: UI and UX work
126
73
  - Use when: the work is mainly components, view-local state, layout, accessibility, or responsive behavior
127
74
 
128
- ### `ui-heavy-worker`
75
+ ### `sec-coder`
129
76
 
130
77
  - Mode: `subagent`
131
78
  - Default model: `anthropic/claude-opus-4-6`
132
- - Steps: `40`
133
- - Purpose: heavy UI and UX worker for broad or stateful interface changes
134
- - Use when: the work spans multiple screens, complex flows, or coordinated interaction behavior
79
+ - Steps: `60`
80
+ - Purpose: security-sensitive work
81
+ - Use when: the change touches authentication, authorization, cryptography, secrets handling, or other high-risk runtime behavior
135
82
 
136
- ## Quality and Review Agents
83
+ ## Quality Agents
137
84
 
138
85
  ### `reviewer`
139
86
 
140
87
  - Mode: `subagent`
141
- - Default model: `github-copilot/grok-code-fast-1`
142
- - Steps: `24`
143
- - Purpose: read-only local code reviewer for small bounded slices
144
- - Best for: reviewing 1-3 files or a focused diff slice before implementation is reported as done
145
-
146
- ### `validator`
147
-
148
- - Mode: `subagent`
149
- - Default model: `openai/gpt-5.3-codex`
150
- - Steps: `24`
151
- - Purpose: bounded verification worker that runs the smallest meaningful commands
152
- - Best for: tests, builds, lint, and type checks that provide runtime evidence for a claimed change
153
-
154
- ### `qa`
155
-
156
- - Mode: `subagent`
157
- - Default model: `openai/gpt-5.4`
158
- - Steps: `24`
159
- - Purpose: read-only quality gate that returns a final acceptance decision
160
- - Best for: higher-risk work where the system needs an explicit OKAY or REJECT verdict after validation
88
+ - Default model: `anthropic/claude-sonnet-4-6`
89
+ - Steps: `30`
90
+ - Purpose: code review, QA, and validation
91
+ - Best for: reviewing code changes, running build and test evidence, and issuing an acceptance verdict before work is reported as done
161
92
 
162
93
  ### `auditor`
163
94
 
164
95
  - Mode: `subagent`
165
- - Default model: `openai/gpt-5.4`
166
- - Steps: `24`
167
- - Purpose: aggressive read-only plan auditor
96
+ - Default model: `anthropic/claude-opus-4-6`
97
+ - Steps: `40`
98
+ - Purpose: stubborn plan gap finder
168
99
  - Best for: finding missing steps, weak acceptance criteria, sequencing failures, and verification gaps before execution starts
169
100
 
170
- ### `devil`
171
-
172
- - Mode: `subagent`
173
- - Default model: `anthropic/claude-sonnet-4-6`
174
- - Steps: `8`
175
- - Purpose: pure devil's-advocate reasoning agent with no tools
176
- - Best for: attacking assumptions, pointing out blind spots, and generating counter-arguments quickly
177
-
178
- ## Research and Advisory Agents
101
+ ## Research Agent
179
102
 
180
103
  ### `scout`
181
104
 
182
105
  - Mode: `subagent`
183
106
  - Default model: `anthropic/claude-sonnet-4-6`
184
- - Steps: `24`
185
- - Purpose: fast read-only repository mapper
186
- - Best for: file discovery, symbol tracing, codebase structure questions, and git-aware local exploration
187
-
188
- ### `librarian`
189
-
190
- - Mode: `subagent`
191
- - Default model: `anthropic/claude-sonnet-4-6`
192
- - Steps: `24`
193
- - Purpose: external research and documentation agent
194
- - Best for: live documentation lookup, external comparisons, API research, and evidence gathering outside the repo
195
-
196
- ### `advisor`
197
-
198
- - Mode: `subagent`
199
- - Default model: `openai/gpt-5.4`
200
- - Steps: `20`
201
- - Purpose: read-only coding advisor for blocked or low-confidence implementation work
202
- - Best for: unblocking a worker, choosing between local implementation paths, or clarifying a risky decision without editing code
203
-
204
- ### `strategist`
205
-
206
- - Mode: `subagent`
207
- - Default model: `anthropic/claude-opus-4-6`
208
- - Steps: `20`
209
- - Purpose: judgment-first plan and architecture advisor
210
- - Best for: validating direction, comparing approaches, surfacing architectural risks, and deciding whether a plan should proceed or change
107
+ - Steps: `30`
108
+ - Purpose: file discovery and external research
109
+ - Best for: repository mapping, symbol tracing, codebase structure questions, git-aware local exploration, and live documentation or API lookup
211
110
 
212
111
  ## Documentation Agent
213
112
 
214
- ### `scribe`
113
+ ### `docmaster`
215
114
 
216
115
  - Mode: `subagent`
217
116
  - Default model: `anthropic/claude-sonnet-4-6`
218
117
  - Steps: `30`
219
118
  - Purpose: documentation writer and `.magent` artifact manager
220
- - Best for: writing or updating `README.md`, `AGENTS.md`, `CHANGELOG.md`, `CONTRIBUTING.md`, `docs/**`, and `.magent/**` artifacts
119
+ - Best for: writing or updating `README.md`, `AGENTS.md`, `CHANGELOG.md`, `CONTRIBUTING.md`, `docs/**`, `.magent/**` artifacts, and GitHub workflow files
221
120
 
222
121
  ## Agent Categories at a Glance
223
122
 
224
- | Category | Agents |
225
- | --------------------- | -------------------------------------------------------------------------------- |
226
- | Primary orchestration | `lead`, `critic`, `planner`, `executor` |
227
- | Coding workers | `quick`, `worker`, `heavy-worker`, `deep-worker`, `ui-worker`, `ui-heavy-worker` |
228
- | Quality and review | `reviewer`, `validator`, `qa`, `auditor`, `devil` |
229
- | Research and advisory | `scout`, `librarian`, `advisor`, `strategist` |
230
- | Documentation | `scribe` |
123
+ | Category | Agents |
124
+ | --------------------- | --------------------------------- |
125
+ | Primary orchestration | `planner`, `executor` |
126
+ | Coding | `coder`, `ui-coder`, `sec-coder` |
127
+ | Quality | `reviewer`, `auditor` |
128
+ | Research | `scout` |
129
+ | Documentation | `docmaster` |
231
130
 
232
131
  ## Summary Table
233
132
 
234
- | Agent | Category | Mode | Model | Steps | Primary use |
235
- | ----------------- | ------------- | ---------- | --------------------------------- | ----- | ------------------------------------------- |
236
- | `lead` | Primary | `primary` | `anthropic/claude-opus-4-6` | `500` | User-facing routing and lifecycle ownership |
237
- | `critic` | Primary | `primary` | `openai/gpt-5.4` | `200` | Challenge and inspection |
238
- | `planner` | Primary | `primary` | `anthropic/claude-opus-4-6` | `100` | Durable plan authoring |
239
- | `executor` | Primary | `primary` | `anthropic/claude-sonnet-4-6` | `200` | Execution orchestration and validation |
240
- | `quick` | Coding | `subagent` | `opencode-go/minimax-m2.5` | `16` | Tiny explicit edits |
241
- | `worker` | Coding | `subagent` | `openai/gpt-5.3-codex` | `30` | Default bounded coding work |
242
- | `heavy-worker` | Coding | `subagent` | `openai/gpt-5.4` | `40` | Risky cross-cutting implementation |
243
- | `deep-worker` | Coding | `subagent` | `anthropic/claude-opus-4-6` | `60` | Reasoning-heavy single-owner coding |
244
- | `ui-worker` | Coding | `subagent` | `anthropic/claude-opus-4-6` | `30` | Standard UI and UX work |
245
- | `ui-heavy-worker` | Coding | `subagent` | `anthropic/claude-opus-4-6` | `40` | Broad UI flows and advanced state |
246
- | `reviewer` | Quality | `subagent` | `github-copilot/grok-code-fast-1` | `24` | Read-only code review |
247
- | `validator` | Quality | `subagent` | `openai/gpt-5.3-codex` | `24` | Verification command execution |
248
- | `qa` | Quality | `subagent` | `openai/gpt-5.4` | `24` | Final quality gate |
249
- | `auditor` | Quality | `subagent` | `openai/gpt-5.4` | `24` | Plan auditing |
250
- | `devil` | Quality | `subagent` | `anthropic/claude-sonnet-4-6` | `8` | Counter-arguments and blind spots |
251
- | `scout` | Research | `subagent` | `anthropic/claude-sonnet-4-6` | `24` | Local repo exploration |
252
- | `librarian` | Research | `subagent` | `anthropic/claude-sonnet-4-6` | `24` | External research |
253
- | `advisor` | Advisory | `subagent` | `openai/gpt-5.4` | `20` | Local implementation advice |
254
- | `strategist` | Advisory | `subagent` | `anthropic/claude-opus-4-6` | `20` | Architecture and direction advice |
255
- | `scribe` | Documentation | `subagent` | `anthropic/claude-sonnet-4-6` | `30` | Docs and `.magent` writing |
133
+ | Agent | Category | Mode | Model | Steps | Primary use |
134
+ | ----------- | ------------- | ---------- | ----------------------------- | ----- | ---------------------------------------- |
135
+ | `planner` | Primary | `primary` | `anthropic/claude-opus-4-6` | `200` | Triage, planning, challenge, inspection |
136
+ | `executor` | Primary | `primary` | `anthropic/claude-sonnet-4-6` | `200` | Execution orchestration |
137
+ | `coder` | Coding | `subagent` | `anthropic/claude-sonnet-4-6` | `40` | Standard bounded coding work |
138
+ | `ui-coder` | Coding | `subagent` | `anthropic/claude-sonnet-4-6` | `40` | UI and UX work |
139
+ | `sec-coder` | Coding | `subagent` | `anthropic/claude-opus-4-6` | `60` | Security-sensitive implementation |
140
+ | `reviewer` | Quality | `subagent` | `anthropic/claude-sonnet-4-6` | `30` | Code review, QA, and validation |
141
+ | `auditor` | Quality | `subagent` | `anthropic/claude-opus-4-6` | `40` | Plan gap finding before execution |
142
+ | `scout` | Research | `subagent` | `anthropic/claude-sonnet-4-6` | `30` | File discovery and external research |
143
+ | `docmaster` | Documentation | `subagent` | `anthropic/claude-sonnet-4-6` | `30` | Docs and `.magent` writing |
256
144
 
257
145
  ## Related Docs
258
146