@agentuity/opencode 0.1.39 → 0.1.41

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 (161) hide show
  1. package/README.md +321 -9
  2. package/dist/agents/architect.d.ts +4 -0
  3. package/dist/agents/architect.d.ts.map +1 -0
  4. package/dist/agents/architect.js +259 -0
  5. package/dist/agents/architect.js.map +1 -0
  6. package/dist/agents/builder.d.ts +1 -1
  7. package/dist/agents/builder.d.ts.map +1 -1
  8. package/dist/agents/builder.js +44 -1
  9. package/dist/agents/builder.js.map +1 -1
  10. package/dist/agents/index.d.ts.map +1 -1
  11. package/dist/agents/index.js +6 -0
  12. package/dist/agents/index.js.map +1 -1
  13. package/dist/agents/lead.d.ts +1 -1
  14. package/dist/agents/lead.d.ts.map +1 -1
  15. package/dist/agents/lead.js +183 -19
  16. package/dist/agents/lead.js.map +1 -1
  17. package/dist/agents/planner.d.ts +4 -0
  18. package/dist/agents/planner.d.ts.map +1 -0
  19. package/dist/agents/planner.js +158 -0
  20. package/dist/agents/planner.js.map +1 -0
  21. package/dist/agents/runner.d.ts +4 -0
  22. package/dist/agents/runner.d.ts.map +1 -0
  23. package/dist/agents/runner.js +364 -0
  24. package/dist/agents/runner.js.map +1 -0
  25. package/dist/agents/types.d.ts +5 -1
  26. package/dist/agents/types.d.ts.map +1 -1
  27. package/dist/background/concurrency.d.ts +36 -0
  28. package/dist/background/concurrency.d.ts.map +1 -0
  29. package/dist/background/concurrency.js +92 -0
  30. package/dist/background/concurrency.js.map +1 -0
  31. package/dist/background/index.d.ts +5 -0
  32. package/dist/background/index.d.ts.map +1 -0
  33. package/dist/background/index.js +4 -0
  34. package/dist/background/index.js.map +1 -0
  35. package/dist/background/manager.d.ts +54 -0
  36. package/dist/background/manager.d.ts.map +1 -0
  37. package/dist/background/manager.js +409 -0
  38. package/dist/background/manager.js.map +1 -0
  39. package/dist/background/types.d.ts +47 -0
  40. package/dist/background/types.d.ts.map +1 -0
  41. package/dist/background/types.js +2 -0
  42. package/dist/background/types.js.map +1 -0
  43. package/dist/config/index.d.ts +2 -0
  44. package/dist/config/index.d.ts.map +1 -1
  45. package/dist/config/index.js +2 -0
  46. package/dist/config/index.js.map +1 -1
  47. package/dist/config/loader.d.ts +24 -0
  48. package/dist/config/loader.d.ts.map +1 -1
  49. package/dist/config/loader.js +102 -23
  50. package/dist/config/loader.js.map +1 -1
  51. package/dist/config/presets.d.ts +16 -0
  52. package/dist/config/presets.d.ts.map +1 -0
  53. package/dist/config/presets.js +20 -0
  54. package/dist/config/presets.js.map +1 -0
  55. package/dist/config/validation.d.ts +26 -0
  56. package/dist/config/validation.d.ts.map +1 -0
  57. package/dist/config/validation.js +48 -0
  58. package/dist/config/validation.js.map +1 -0
  59. package/dist/index.d.ts +1 -1
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js.map +1 -1
  62. package/dist/plugin/hooks/keyword.d.ts.map +1 -1
  63. package/dist/plugin/hooks/keyword.js +3 -0
  64. package/dist/plugin/hooks/keyword.js.map +1 -1
  65. package/dist/plugin/plugin.d.ts.map +1 -1
  66. package/dist/plugin/plugin.js +297 -36
  67. package/dist/plugin/plugin.js.map +1 -1
  68. package/dist/skills/frontmatter.d.ts +7 -0
  69. package/dist/skills/frontmatter.d.ts.map +1 -0
  70. package/dist/skills/frontmatter.js +17 -0
  71. package/dist/skills/frontmatter.js.map +1 -0
  72. package/dist/skills/index.d.ts +4 -0
  73. package/dist/skills/index.d.ts.map +1 -0
  74. package/dist/skills/index.js +4 -0
  75. package/dist/skills/index.js.map +1 -0
  76. package/dist/skills/loader.d.ts +20 -0
  77. package/dist/skills/loader.d.ts.map +1 -0
  78. package/dist/skills/loader.js +152 -0
  79. package/dist/skills/loader.js.map +1 -0
  80. package/dist/skills/types.d.ts +41 -0
  81. package/dist/skills/types.d.ts.map +1 -0
  82. package/dist/skills/types.js +2 -0
  83. package/dist/skills/types.js.map +1 -0
  84. package/dist/tmux/decision-engine.d.ts +24 -0
  85. package/dist/tmux/decision-engine.d.ts.map +1 -0
  86. package/dist/tmux/decision-engine.js +193 -0
  87. package/dist/tmux/decision-engine.js.map +1 -0
  88. package/dist/tmux/executor.d.ts +56 -0
  89. package/dist/tmux/executor.d.ts.map +1 -0
  90. package/dist/tmux/executor.js +231 -0
  91. package/dist/tmux/executor.js.map +1 -0
  92. package/dist/tmux/index.d.ts +7 -0
  93. package/dist/tmux/index.d.ts.map +1 -0
  94. package/dist/tmux/index.js +7 -0
  95. package/dist/tmux/index.js.map +1 -0
  96. package/dist/tmux/manager.d.ts +80 -0
  97. package/dist/tmux/manager.d.ts.map +1 -0
  98. package/dist/tmux/manager.js +276 -0
  99. package/dist/tmux/manager.js.map +1 -0
  100. package/dist/tmux/state-query.d.ts +7 -0
  101. package/dist/tmux/state-query.d.ts.map +1 -0
  102. package/dist/tmux/state-query.js +67 -0
  103. package/dist/tmux/state-query.js.map +1 -0
  104. package/dist/tmux/types.d.ts +96 -0
  105. package/dist/tmux/types.d.ts.map +1 -0
  106. package/dist/tmux/types.js +8 -0
  107. package/dist/tmux/types.js.map +1 -0
  108. package/dist/tmux/utils.d.ts +32 -0
  109. package/dist/tmux/utils.d.ts.map +1 -0
  110. package/dist/tmux/utils.js +80 -0
  111. package/dist/tmux/utils.js.map +1 -0
  112. package/dist/tools/background.d.ts +61 -0
  113. package/dist/tools/background.d.ts.map +1 -0
  114. package/dist/tools/background.js +78 -0
  115. package/dist/tools/background.js.map +1 -0
  116. package/dist/tools/delegate.d.ts +6 -0
  117. package/dist/tools/delegate.d.ts.map +1 -1
  118. package/dist/tools/delegate.js +8 -2
  119. package/dist/tools/delegate.js.map +1 -1
  120. package/dist/tools/index.d.ts +1 -0
  121. package/dist/tools/index.d.ts.map +1 -1
  122. package/dist/tools/index.js +1 -0
  123. package/dist/tools/index.js.map +1 -1
  124. package/dist/types.d.ts +118 -18
  125. package/dist/types.d.ts.map +1 -1
  126. package/dist/types.js +49 -7
  127. package/dist/types.js.map +1 -1
  128. package/package.json +4 -3
  129. package/src/agents/architect.ts +262 -0
  130. package/src/agents/builder.ts +44 -1
  131. package/src/agents/index.ts +6 -0
  132. package/src/agents/lead.ts +183 -19
  133. package/src/agents/planner.ts +161 -0
  134. package/src/agents/runner.ts +367 -0
  135. package/src/agents/types.ts +5 -1
  136. package/src/background/concurrency.ts +116 -0
  137. package/src/background/index.ts +4 -0
  138. package/src/background/manager.ts +478 -0
  139. package/src/background/types.ts +52 -0
  140. package/src/config/index.ts +2 -0
  141. package/src/config/loader.ts +128 -31
  142. package/src/config/presets.ts +21 -0
  143. package/src/config/validation.ts +70 -0
  144. package/src/index.ts +1 -0
  145. package/src/plugin/hooks/keyword.ts +3 -0
  146. package/src/plugin/plugin.ts +323 -42
  147. package/src/skills/frontmatter.ts +25 -0
  148. package/src/skills/index.ts +3 -0
  149. package/src/skills/loader.ts +185 -0
  150. package/src/skills/types.ts +43 -0
  151. package/src/tmux/decision-engine.ts +246 -0
  152. package/src/tmux/executor.ts +286 -0
  153. package/src/tmux/index.ts +11 -0
  154. package/src/tmux/manager.ts +331 -0
  155. package/src/tmux/state-query.ts +74 -0
  156. package/src/tmux/types.ts +106 -0
  157. package/src/tmux/utils.ts +85 -0
  158. package/src/tools/background.ts +145 -0
  159. package/src/tools/delegate.ts +8 -2
  160. package/src/tools/index.ts +9 -0
  161. package/src/types.ts +88 -15
@@ -0,0 +1,67 @@
1
+ import { runTmuxCommand } from './utils';
2
+ /**
3
+ * Query the current tmux window state
4
+ * Returns information about all panes in the current window
5
+ */
6
+ export async function queryWindowState(sourcePaneId) {
7
+ const result = await runTmuxCommand([
8
+ 'list-panes',
9
+ '-t',
10
+ sourcePaneId,
11
+ '-F',
12
+ '#{pane_id},#{pane_width},#{pane_height},#{pane_left},#{pane_top},#{pane_title},#{pane_active},#{window_width},#{window_height}',
13
+ ]);
14
+ if (!result.success) {
15
+ return null;
16
+ }
17
+ const lines = result.output
18
+ .split('\n')
19
+ .map((line) => line.trim())
20
+ .filter(Boolean);
21
+ if (lines.length === 0)
22
+ return null;
23
+ const panes = [];
24
+ let windowWidth = 0;
25
+ let windowHeight = 0;
26
+ for (const line of lines) {
27
+ const parts = line.split(',');
28
+ if (parts.length < 9)
29
+ continue;
30
+ const windowWidthValue = Number(parts[parts.length - 2]);
31
+ const windowHeightValue = Number(parts[parts.length - 1]);
32
+ const isActiveValue = parts[parts.length - 3] === '1';
33
+ const title = parts.slice(5, parts.length - 3).join(',');
34
+ const width = Number(parts[1]);
35
+ const height = Number(parts[2]);
36
+ const left = Number(parts[3]);
37
+ const top = Number(parts[4]);
38
+ if ([width, height, left, top].some((value) => Number.isNaN(value))) {
39
+ continue;
40
+ }
41
+ const paneInfo = {
42
+ paneId: parts[0],
43
+ width,
44
+ height,
45
+ left,
46
+ top,
47
+ title,
48
+ isActive: isActiveValue,
49
+ };
50
+ if (!Number.isNaN(windowWidthValue))
51
+ windowWidth = windowWidthValue;
52
+ if (!Number.isNaN(windowHeightValue))
53
+ windowHeight = windowHeightValue;
54
+ panes.push(paneInfo);
55
+ }
56
+ if (panes.length === 0)
57
+ return null;
58
+ const mainPane = panes.find((pane) => pane.paneId === sourcePaneId) ?? null;
59
+ const agentPanes = panes.filter((pane) => pane.paneId !== sourcePaneId);
60
+ return {
61
+ windowWidth,
62
+ windowHeight,
63
+ mainPane,
64
+ agentPanes,
65
+ };
66
+ }
67
+ //# sourceMappingURL=state-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-query.js","sourceRoot":"","sources":["../../src/tmux/state-query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Information about a tmux pane
3
+ */
4
+ export interface TmuxPaneInfo {
5
+ paneId: string;
6
+ width: number;
7
+ height: number;
8
+ left: number;
9
+ top: number;
10
+ title: string;
11
+ isActive: boolean;
12
+ }
13
+ /**
14
+ * Current state of the tmux window
15
+ */
16
+ export interface WindowState {
17
+ windowWidth: number;
18
+ windowHeight: number;
19
+ mainPane: TmuxPaneInfo | null;
20
+ agentPanes: TmuxPaneInfo[];
21
+ }
22
+ /**
23
+ * Tracked session for a background agent in tmux
24
+ */
25
+ export interface TrackedSession {
26
+ sessionId: string;
27
+ paneId: string;
28
+ description: string;
29
+ createdAt: Date;
30
+ lastSeenAt: Date;
31
+ }
32
+ /**
33
+ * Direction for splitting panes
34
+ */
35
+ export type SplitDirection = '-h' | '-v';
36
+ /**
37
+ * Actions for managing panes
38
+ */
39
+ export type PaneAction = {
40
+ type: 'spawn';
41
+ sessionId: string;
42
+ description: string;
43
+ targetPaneId: string;
44
+ splitDirection: SplitDirection;
45
+ } | {
46
+ type: 'close';
47
+ paneId: string;
48
+ sessionId: string;
49
+ } | {
50
+ type: 'replace';
51
+ paneId: string;
52
+ oldSessionId: string;
53
+ newSessionId: string;
54
+ description: string;
55
+ };
56
+ /**
57
+ * Decision result from the spawn decision engine
58
+ */
59
+ export interface SpawnDecision {
60
+ canSpawn: boolean;
61
+ actions: PaneAction[];
62
+ reason?: string;
63
+ }
64
+ /**
65
+ * Capacity configuration for pane layout
66
+ */
67
+ export interface CapacityConfig {
68
+ mainPaneMinWidth: number;
69
+ agentPaneMinWidth: number;
70
+ }
71
+ /**
72
+ * Session mapping for decision engine
73
+ */
74
+ export interface SessionMapping {
75
+ sessionId: string;
76
+ paneId: string;
77
+ createdAt: Date;
78
+ }
79
+ /**
80
+ * Configuration for tmux integration
81
+ *
82
+ * Agents spawn in a dedicated "Agents" window with tiled grid layout.
83
+ * This keeps the main pane untouched while grouping all agent panes together.
84
+ */
85
+ export interface TmuxConfig {
86
+ enabled: boolean;
87
+ maxPanes: number;
88
+ mainPaneMinWidth: number;
89
+ agentPaneMinWidth: number;
90
+ }
91
+ export declare const MIN_PANE_WIDTH = 52;
92
+ export declare const MIN_PANE_HEIGHT = 11;
93
+ export declare const POLL_INTERVAL_MS = 2000;
94
+ export declare const SESSION_MISSING_GRACE_MS = 5000;
95
+ export declare const SESSION_TIMEOUT_MS: number;
96
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tmux/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,YAAY,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,EAAE,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,IAAI,CAAC;AAEzC;;GAEG;AACH,MAAM,MAAM,UAAU,GACnB;IACA,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,cAAc,CAAC;CAC9B,GACD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACpD;IACA,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACnB,CAAC;AAEL;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;CAChB;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;CAC1B;AAGD,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,eAAe,KAAK,CAAC;AAGlC,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAC7C,eAAO,MAAM,kBAAkB,QAAiB,CAAC"}
@@ -0,0 +1,8 @@
1
+ // Minimum pane dimensions
2
+ export const MIN_PANE_WIDTH = 52;
3
+ export const MIN_PANE_HEIGHT = 11;
4
+ // Polling intervals
5
+ export const POLL_INTERVAL_MS = 2000;
6
+ export const SESSION_MISSING_GRACE_MS = 5000;
7
+ export const SESSION_TIMEOUT_MS = 10 * 60 * 1000;
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tmux/types.ts"],"names":[],"mappings":"AAkGA,0BAA0B;AAC1B,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AACjC,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAC;AAElC,oBAAoB;AACpB,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AACrC,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC;AAC7C,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Check if running inside a tmux session
3
+ */
4
+ export declare function isInsideTmux(): boolean;
5
+ /**
6
+ * Get the current pane ID
7
+ */
8
+ export declare function getCurrentPaneId(): string | undefined;
9
+ /**
10
+ * Get the path to the tmux binary
11
+ */
12
+ export declare function getTmuxPath(): Promise<string | null>;
13
+ /**
14
+ * Run a tmux command and return output
15
+ */
16
+ export declare function runTmuxCommand(args: string[]): Promise<{
17
+ success: boolean;
18
+ output: string;
19
+ }>;
20
+ /**
21
+ * Run a tmux command synchronously (for shutdown scenarios)
22
+ * Uses spawnSync to ensure completion before process exit
23
+ */
24
+ export declare function runTmuxCommandSync(args: string[]): {
25
+ success: boolean;
26
+ output: string;
27
+ };
28
+ /**
29
+ * Get the path to the tmux binary synchronously
30
+ */
31
+ export declare function getTmuxPathSync(): string | null;
32
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/tmux/utils.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,SAAS,CAErD;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAS1D;AAED;;GAEG;AACH,wBAAsB,cAAc,CACnC,IAAI,EAAE,MAAM,EAAE,GACZ,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAa/C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAgBvF;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,GAAG,IAAI,CAS/C"}
@@ -0,0 +1,80 @@
1
+ import { spawn, spawnSync } from 'bun';
2
+ /**
3
+ * Check if running inside a tmux session
4
+ */
5
+ export function isInsideTmux() {
6
+ return !!process.env.TMUX;
7
+ }
8
+ /**
9
+ * Get the current pane ID
10
+ */
11
+ export function getCurrentPaneId() {
12
+ return process.env.TMUX_PANE;
13
+ }
14
+ /**
15
+ * Get the path to the tmux binary
16
+ */
17
+ export async function getTmuxPath() {
18
+ try {
19
+ const proc = spawn(['which', 'tmux'], { stdout: 'pipe' });
20
+ await proc.exited;
21
+ const output = await new Response(proc.stdout).text();
22
+ return output.trim() || null;
23
+ }
24
+ catch {
25
+ return null;
26
+ }
27
+ }
28
+ /**
29
+ * Run a tmux command and return output
30
+ */
31
+ export async function runTmuxCommand(args) {
32
+ const tmux = await getTmuxPath();
33
+ if (!tmux)
34
+ return { success: false, output: 'tmux not found' };
35
+ const proc = spawn([tmux, ...args], { stdout: 'pipe', stderr: 'pipe' });
36
+ const exitCode = await proc.exited;
37
+ const stdout = await new Response(proc.stdout).text();
38
+ const stderr = await new Response(proc.stderr).text();
39
+ return {
40
+ success: exitCode === 0,
41
+ output: exitCode === 0 ? stdout.trim() : stderr.trim(),
42
+ };
43
+ }
44
+ /**
45
+ * Run a tmux command synchronously (for shutdown scenarios)
46
+ * Uses spawnSync to ensure completion before process exit
47
+ */
48
+ export function runTmuxCommandSync(args) {
49
+ const tmux = getTmuxPathSync();
50
+ if (!tmux)
51
+ return { success: false, output: 'tmux not found' };
52
+ try {
53
+ const result = spawnSync([tmux, ...args], { timeout: 2000 });
54
+ const stdout = result.stdout?.toString() ?? '';
55
+ const stderr = result.stderr?.toString() ?? '';
56
+ return {
57
+ success: result.exitCode === 0,
58
+ output: result.exitCode === 0 ? stdout.trim() : stderr.trim(),
59
+ };
60
+ }
61
+ catch {
62
+ return { success: false, output: 'tmux command failed' };
63
+ }
64
+ }
65
+ /**
66
+ * Get the path to the tmux binary synchronously
67
+ */
68
+ export function getTmuxPathSync() {
69
+ try {
70
+ const result = spawnSync(['which', 'tmux']);
71
+ if (result.exitCode !== 0)
72
+ return null;
73
+ const output = result.stdout?.toString() ?? '';
74
+ return output.trim() || null;
75
+ }
76
+ catch {
77
+ return null;
78
+ }
79
+ }
80
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/tmux/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import { z } from 'zod';
2
+ import type { ToolContext } from '@opencode-ai/plugin';
3
+ import type { BackgroundManager } from '../background';
4
+ export declare const BackgroundTaskArgsSchema: z.ZodObject<{
5
+ agent: z.ZodEnum<{
6
+ lead: "lead";
7
+ scout: "scout";
8
+ builder: "builder";
9
+ architect: "architect";
10
+ reviewer: "reviewer";
11
+ memory: "memory";
12
+ expert: "expert";
13
+ planner: "planner";
14
+ runner: "runner";
15
+ }>;
16
+ task: z.ZodString;
17
+ description: z.ZodOptional<z.ZodString>;
18
+ }, z.core.$strip>;
19
+ export declare const BackgroundOutputArgsSchema: z.ZodObject<{
20
+ task_id: z.ZodString;
21
+ }, z.core.$strip>;
22
+ export declare const BackgroundCancelArgsSchema: z.ZodObject<{
23
+ task_id: z.ZodString;
24
+ }, z.core.$strip>;
25
+ export type BackgroundTaskArgs = z.infer<typeof BackgroundTaskArgsSchema>;
26
+ export type BackgroundOutputArgs = z.infer<typeof BackgroundOutputArgsSchema>;
27
+ export type BackgroundCancelArgs = z.infer<typeof BackgroundCancelArgsSchema>;
28
+ export declare function createBackgroundTools(manager: BackgroundManager): {
29
+ backgroundTaskTool: {
30
+ name: string;
31
+ description: string;
32
+ args: typeof BackgroundTaskArgsSchema;
33
+ execute: (args: BackgroundTaskArgs, context: ToolContext) => Promise<{
34
+ taskId: string;
35
+ status: string;
36
+ message: string;
37
+ }>;
38
+ };
39
+ backgroundOutputTool: {
40
+ name: string;
41
+ description: string;
42
+ args: typeof BackgroundOutputArgsSchema;
43
+ execute: (args: BackgroundOutputArgs) => Promise<{
44
+ taskId: string;
45
+ status: string;
46
+ result?: string;
47
+ error?: string;
48
+ }>;
49
+ };
50
+ backgroundCancelTool: {
51
+ name: string;
52
+ description: string;
53
+ args: typeof BackgroundCancelArgsSchema;
54
+ execute: (args: BackgroundCancelArgs) => Promise<{
55
+ taskId: string;
56
+ success: boolean;
57
+ message: string;
58
+ }>;
59
+ };
60
+ };
61
+ //# sourceMappingURL=background.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"background.d.ts","sourceRoot":"","sources":["../../src/tools/background.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;iBAInC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;iBAErC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;iBAErC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,iBAAiB,GAAG;IAClE,kBAAkB,EAAE;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,OAAO,wBAAwB,CAAC;QACtC,OAAO,EAAE,CACR,IAAI,EAAE,kBAAkB,EACxB,OAAO,EAAE,WAAW,KAChB,OAAO,CAAC;YACZ,MAAM,EAAE,MAAM,CAAC;YACf,MAAM,EAAE,MAAM,CAAC;YACf,OAAO,EAAE,MAAM,CAAC;SAChB,CAAC,CAAC;KACH,CAAC;IACF,oBAAoB,EAAE;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,OAAO,0BAA0B,CAAC;QACxC,OAAO,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,OAAO,CAAC;YAChD,MAAM,EAAE,MAAM,CAAC;YACf,MAAM,EAAE,MAAM,CAAC;YACf,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,KAAK,CAAC,EAAE,MAAM,CAAC;SACf,CAAC,CAAC;KACH,CAAC;IACF,oBAAoB,EAAE;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,OAAO,0BAA0B,CAAC;QACxC,OAAO,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,OAAO,CAAC;YAChD,MAAM,EAAE,MAAM,CAAC;YACf,OAAO,EAAE,OAAO,CAAC;YACjB,OAAO,EAAE,MAAM,CAAC;SAChB,CAAC,CAAC;KACH,CAAC;CACF,CA+EA"}
@@ -0,0 +1,78 @@
1
+ import { z } from 'zod';
2
+ import { AgentRoleSchema } from '../types';
3
+ import { agents } from '../agents';
4
+ export const BackgroundTaskArgsSchema = z.object({
5
+ agent: AgentRoleSchema.describe('Agent role to run the task'),
6
+ task: z.string().describe('Task prompt to run in the background'),
7
+ description: z.string().optional().describe('Short description of the task'),
8
+ });
9
+ export const BackgroundOutputArgsSchema = z.object({
10
+ task_id: z.string().describe('Background task ID'),
11
+ });
12
+ export const BackgroundCancelArgsSchema = z.object({
13
+ task_id: z.string().describe('Background task ID'),
14
+ });
15
+ export function createBackgroundTools(manager) {
16
+ const backgroundTaskTool = {
17
+ name: 'background_task',
18
+ description: 'Launch a task to run in the background.',
19
+ args: BackgroundTaskArgsSchema,
20
+ async execute(args, context) {
21
+ const agentName = resolveAgentName(args.agent);
22
+ const task = await manager.launch({
23
+ description: args.description ?? args.task,
24
+ prompt: args.task,
25
+ agent: agentName,
26
+ parentSessionId: context.sessionID,
27
+ parentMessageId: context.messageID,
28
+ });
29
+ return {
30
+ taskId: task.id,
31
+ status: task.status,
32
+ message: task.status === 'error'
33
+ ? (task.error ?? 'Failed to launch background task.')
34
+ : 'Background task launched.',
35
+ };
36
+ },
37
+ };
38
+ const backgroundOutputTool = {
39
+ name: 'background_output',
40
+ description: 'Retrieve output for a background task.',
41
+ args: BackgroundOutputArgsSchema,
42
+ async execute(args) {
43
+ const task = manager.getTask(args.task_id);
44
+ if (!task) {
45
+ return {
46
+ taskId: args.task_id,
47
+ status: 'error',
48
+ error: 'Task not found.',
49
+ };
50
+ }
51
+ return {
52
+ taskId: task.id,
53
+ status: task.status,
54
+ result: task.result,
55
+ error: task.error,
56
+ };
57
+ },
58
+ };
59
+ const backgroundCancelTool = {
60
+ name: 'background_cancel',
61
+ description: 'Cancel a running background task.',
62
+ args: BackgroundCancelArgsSchema,
63
+ async execute(args) {
64
+ const success = manager.cancel(args.task_id);
65
+ return {
66
+ taskId: args.task_id,
67
+ success,
68
+ message: success ? 'Background task cancelled.' : 'Unable to cancel task.',
69
+ };
70
+ },
71
+ };
72
+ return { backgroundTaskTool, backgroundOutputTool, backgroundCancelTool };
73
+ }
74
+ function resolveAgentName(role) {
75
+ const agent = agents[role];
76
+ return agent?.displayName ?? role;
77
+ }
78
+ //# sourceMappingURL=background.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"background.js","sourceRoot":"","sources":["../../src/tools/background.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,12 @@ export declare const DelegateArgsSchema: z.ZodObject<{
3
3
  agent: z.ZodEnum<{
4
4
  scout: "scout";
5
5
  builder: "builder";
6
+ architect: "architect";
6
7
  reviewer: "reviewer";
7
8
  memory: "memory";
8
9
  expert: "expert";
10
+ planner: "planner";
11
+ runner: "runner";
9
12
  }>;
10
13
  task: z.ZodString;
11
14
  context: z.ZodOptional<z.ZodString>;
@@ -19,9 +22,12 @@ export declare const delegateTool: {
19
22
  agent: z.ZodEnum<{
20
23
  scout: "scout";
21
24
  builder: "builder";
25
+ architect: "architect";
22
26
  reviewer: "reviewer";
23
27
  memory: "memory";
24
28
  expert: "expert";
29
+ planner: "planner";
30
+ runner: "runner";
25
31
  }>;
26
32
  task: z.ZodString;
27
33
  context: z.ZodOptional<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"delegate.d.ts","sourceRoot":"","sources":["../../src/tools/delegate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,kBAAkB;;;;;;;;;;;iBAU7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAY9D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;kBAeJ,YAAY,YAAY,OAAO,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAgBjF,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"delegate.d.ts","sourceRoot":"","sources":["../../src/tools/delegate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;iBAU7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAe9D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;kBAkBJ,YAAY,YAAY,OAAO,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAgBjF,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -2,7 +2,7 @@ import { z } from 'zod';
2
2
  // Schema for the delegate tool
3
3
  export const DelegateArgsSchema = z.object({
4
4
  agent: z
5
- .enum(['scout', 'builder', 'reviewer', 'memory', 'expert'])
5
+ .enum(['scout', 'builder', 'architect', 'reviewer', 'memory', 'expert', 'planner', 'runner'])
6
6
  .describe('The agent to delegate to'),
7
7
  task: z.string().describe('Clear description of the task to delegate'),
8
8
  context: z.string().optional().describe('Additional context from previous tasks'),
@@ -16,9 +16,12 @@ const AGENT_MENTIONS = {
16
16
  lead: '@Agentuity Coder Lead',
17
17
  scout: '@Agentuity Coder Scout',
18
18
  builder: '@Agentuity Coder Builder',
19
+ architect: '@Agentuity Coder Architect',
19
20
  reviewer: '@Agentuity Coder Reviewer',
20
21
  memory: '@Agentuity Coder Memory',
21
22
  expert: '@Agentuity Coder Expert',
23
+ planner: '@Agentuity Coder Planner',
24
+ runner: '@Agentuity Coder Runner',
22
25
  };
23
26
  export const delegateTool = {
24
27
  name: 'coder_delegate',
@@ -26,10 +29,13 @@ export const delegateTool = {
26
29
 
27
30
  Use this to:
28
31
  - Scout: Explore codebase, find patterns, research documentation
29
- - Builder: Implement features, write code, run tests
32
+ - Builder: Implement features, write code, run tests (interactive work)
33
+ - Architect: Complex autonomous tasks, Cadence mode, deep reasoning (GPT Codex)
30
34
  - Reviewer: Review changes, catch issues, apply fixes
31
35
  - Memory: Store context, remember decisions across sessions
32
36
  - Expert: Get help with Agentuity CLI and cloud services
37
+ - Planner: Strategic advisor for complex architecture and deep planning (read-only)
38
+ - Runner: Run lint/build/test/typecheck/format/clean/install commands, returns structured results
33
39
 
34
40
  The task will be executed by the specified agent and the result returned.`,
35
41
  args: DelegateArgsSchema,
@@ -1 +1 @@
1
- {"version":3,"file":"delegate.js","sourceRoot":"","sources":["../../src/tools/delegate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,+BAA+B;AAC/B,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,KAAK,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;SAC1D,QAAQ,CAAC,0BAA0B,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IACtE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;IACjF,aAAa,EAAE,CAAC;SACd,OAAO,EAAE;SACT,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CAAC,kDAAkD,CAAC;CAC9D,CAAC,CAAC;AAIH,oCAAoC;AACpC,MAAM,cAAc,GAA8B;IACjD,IAAI,EAAE,uBAAuB;IAC7B,KAAK,EAAE,wBAAwB;IAC/B,OAAO,EAAE,0BAA0B;IACnC,QAAQ,EAAE,2BAA2B;IACrC,MAAM,EAAE,yBAAyB;IACjC,MAAM,EAAE,yBAAyB;CACjC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG;IAC3B,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE;;;;;;;;;0EAS4D;IAEzE,IAAI,EAAE,kBAAkB;IAExB,KAAK,CAAC,OAAO,CAAC,IAAkB,EAAE,QAAiB;QAClD,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,KAAkB,CAAC,CAAC;QAExD,8BAA8B;QAC9B,IAAI,MAAM,GAAG,GAAG,OAAO,gBAAgB,IAAI,CAAC,IAAI,EAAE,CAAC;QAEnD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,GAAG,GAAG,OAAO,mBAAmB,IAAI,CAAC,OAAO,gBAAgB,IAAI,CAAC,IAAI,EAAE,CAAC;QAC/E,CAAC;QAED,4EAA4E;QAC5E,4DAA4D;QAC5D,OAAO;YACN,MAAM,EAAE,iEAAiE,MAAM,WAAW,IAAI,CAAC,KAAK,+BAA+B;SACnI,CAAC;IACH,CAAC;CACD,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"delegate.js","sourceRoot":"","sources":["../../src/tools/delegate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,+BAA+B;AAC/B,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,KAAK,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;SAC5F,QAAQ,CAAC,0BAA0B,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IACtE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;IACjF,aAAa,EAAE,CAAC;SACd,OAAO,EAAE;SACT,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CAAC,kDAAkD,CAAC;CAC9D,CAAC,CAAC;AAIH,oCAAoC;AACpC,MAAM,cAAc,GAA8B;IACjD,IAAI,EAAE,uBAAuB;IAC7B,KAAK,EAAE,wBAAwB;IAC/B,OAAO,EAAE,0BAA0B;IACnC,SAAS,EAAE,4BAA4B;IACvC,QAAQ,EAAE,2BAA2B;IACrC,MAAM,EAAE,yBAAyB;IACjC,MAAM,EAAE,yBAAyB;IACjC,OAAO,EAAE,0BAA0B;IACnC,MAAM,EAAE,yBAAyB;CACjC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG;IAC3B,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE;;;;;;;;;;;;0EAY4D;IAEzE,IAAI,EAAE,kBAAkB;IAExB,KAAK,CAAC,OAAO,CAAC,IAAkB,EAAE,QAAiB;QAClD,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,KAAkB,CAAC,CAAC;QAExD,8BAA8B;QAC9B,IAAI,MAAM,GAAG,GAAG,OAAO,gBAAgB,IAAI,CAAC,IAAI,EAAE,CAAC;QAEnD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,GAAG,GAAG,OAAO,mBAAmB,IAAI,CAAC,OAAO,gBAAgB,IAAI,CAAC,IAAI,EAAE,CAAC;QAC/E,CAAC;QAED,4EAA4E;QAC5E,4DAA4D;QAC5D,OAAO;YACN,MAAM,EAAE,iEAAiE,MAAM,WAAW,IAAI,CAAC,KAAK,+BAA+B;SACnI,CAAC;IACH,CAAC;CACD,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export { delegateTool, DelegateArgsSchema, type DelegateArgs } from './delegate';
2
+ export { createBackgroundTools, BackgroundTaskArgsSchema, BackgroundOutputArgsSchema, BackgroundCancelArgsSchema, type BackgroundTaskArgs, type BackgroundOutputArgs, type BackgroundCancelArgs, } from './background';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AACjF,OAAO,EACN,qBAAqB,EACrB,wBAAwB,EACxB,0BAA0B,EAC1B,0BAA0B,EAC1B,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,GACzB,MAAM,cAAc,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export { delegateTool, DelegateArgsSchema } from './delegate';
2
+ export { createBackgroundTools, BackgroundTaskArgsSchema, BackgroundOutputArgsSchema, BackgroundCancelArgsSchema, } from './background';
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAqB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAqB,MAAM,YAAY,CAAC;AACjF,OAAO,EACN,qBAAqB,EACrB,wBAAwB,EACxB,0BAA0B,EAC1B,0BAA0B,GAI1B,MAAM,cAAc,CAAC"}