opencode-orchestrator 1.2.34 → 1.2.35

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 (275) hide show
  1. package/README.md +91 -41
  2. package/dist/core/agents/agent-registry.d.ts +28 -0
  3. package/dist/core/agents/concurrency.d.ts +38 -0
  4. package/dist/core/agents/config.d.ts +9 -0
  5. package/dist/core/agents/consts/index.d.ts +4 -0
  6. package/dist/core/agents/index.d.ts +2 -3
  7. package/dist/core/agents/interfaces/session-pool.interface.d.ts +0 -7
  8. package/dist/core/agents/manager/event-handler.d.ts +35 -0
  9. package/dist/core/agents/manager/index.d.ts +10 -0
  10. package/dist/core/agents/manager/task-cleaner.d.ts +29 -0
  11. package/dist/core/agents/manager/task-launcher.d.ts +35 -0
  12. package/dist/core/agents/manager/task-poller.d.ts +28 -0
  13. package/dist/core/agents/manager/task-resumer.d.ts +18 -0
  14. package/dist/core/agents/manager.d.ts +41 -9
  15. package/dist/core/agents/persistence/task-wal.d.ts +26 -0
  16. package/dist/core/agents/session-pool.d.ts +0 -10
  17. package/dist/core/agents/task-store.d.ts +54 -0
  18. package/dist/core/cleanup/cleanup-scheduler.d.ts +11 -0
  19. package/dist/core/context/context-window-monitor.d.ts +66 -0
  20. package/dist/core/context/index.d.ts +6 -0
  21. package/dist/core/loop/formatters.d.ts +17 -0
  22. package/dist/core/loop/interfaces/index.d.ts +5 -0
  23. package/dist/core/loop/interfaces/todo-stats.d.ts +11 -0
  24. package/dist/core/loop/interfaces/todo.d.ts +13 -0
  25. package/dist/core/loop/interfaces.d.ts +7 -0
  26. package/dist/core/loop/mission-loop-handler.d.ts +25 -0
  27. package/dist/core/loop/mission-loop.d.ts +48 -0
  28. package/dist/core/loop/parser.d.ts +8 -0
  29. package/dist/core/loop/stats.d.ts +24 -0
  30. package/dist/core/loop/todo-continuation.d.ts +39 -0
  31. package/dist/core/loop/todo-enforcer.d.ts +9 -0
  32. package/dist/core/loop/todo-manager.d.ts +22 -0
  33. package/dist/core/loop/types/index.d.ts +5 -0
  34. package/dist/core/loop/types/todo-priority.d.ts +4 -0
  35. package/dist/core/loop/types/todo-status.d.ts +4 -0
  36. package/dist/core/loop/verification.d.ts +22 -0
  37. package/dist/core/memory/interfaces.d.ts +33 -0
  38. package/dist/core/memory/memory-manager.d.ts +40 -0
  39. package/dist/core/metrics/collector.d.ts +27 -0
  40. package/dist/core/notification/os-notify/index.d.ts +7 -0
  41. package/dist/core/notification/os-notify/notifier.d.ts +7 -0
  42. package/dist/core/notification/os-notify/platform-resolver.d.ts +7 -0
  43. package/dist/core/notification/os-notify/platform.d.ts +7 -0
  44. package/dist/core/notification/os-notify/sound-player.d.ts +7 -0
  45. package/dist/core/notification/os-notify/todo-checker.d.ts +5 -0
  46. package/dist/core/notification/task-toast-manager.d.ts +127 -0
  47. package/dist/core/notification/toast-core.d.ts +36 -0
  48. package/dist/core/notification/toast.d.ts +9 -0
  49. package/dist/core/orchestrator/index.d.ts +6 -0
  50. package/dist/core/orchestrator/interfaces/index.d.ts +4 -0
  51. package/dist/core/orchestrator/interfaces/session-state.d.ts +11 -0
  52. package/dist/core/orchestrator/session-manager.d.ts +31 -0
  53. package/dist/core/orchestrator/state.d.ts +10 -0
  54. package/dist/core/orchestrator/types/index.d.ts +4 -0
  55. package/dist/core/orchestrator/types/task-status.d.ts +5 -0
  56. package/dist/core/plugins/interfaces.d.ts +30 -0
  57. package/dist/core/plugins/plugin-manager.d.ts +21 -0
  58. package/dist/core/progress/calculator.d.ts +11 -0
  59. package/dist/core/progress/formatters.d.ts +20 -0
  60. package/dist/core/progress/interfaces/index.d.ts +8 -0
  61. package/dist/core/progress/interfaces/progress-snapshot.d.ts +15 -0
  62. package/dist/core/progress/interfaces/snapshot-input.d.ts +13 -0
  63. package/dist/core/progress/interfaces/step-progress.d.ts +7 -0
  64. package/dist/core/progress/interfaces/task-progress.d.ts +10 -0
  65. package/dist/core/progress/interfaces/todo-progress.d.ts +9 -0
  66. package/dist/core/progress/interfaces.d.ts +6 -0
  67. package/dist/core/progress/progress-notifier.d.ts +14 -0
  68. package/dist/core/progress/state-broadcaster.d.ts +29 -0
  69. package/dist/core/progress/store.d.ts +28 -0
  70. package/dist/core/progress/tracker.d.ts +11 -0
  71. package/dist/core/queue/async-queue.d.ts +46 -0
  72. package/dist/core/queue/async-utils.d.ts +20 -0
  73. package/dist/core/queue/index.d.ts +8 -0
  74. package/dist/core/queue/work-pool.d.ts +19 -0
  75. package/dist/core/recovery/auto-recovery.d.ts +9 -0
  76. package/dist/core/recovery/constants.d.ts +9 -0
  77. package/dist/core/recovery/handler.d.ts +27 -0
  78. package/dist/core/recovery/interfaces/error-context.d.ts +11 -0
  79. package/dist/core/recovery/interfaces/error-pattern.d.ts +10 -0
  80. package/dist/core/recovery/interfaces/index.d.ts +8 -0
  81. package/dist/core/recovery/interfaces/recovery-action.d.ts +25 -0
  82. package/dist/core/recovery/interfaces/recovery-record.d.ts +10 -0
  83. package/dist/core/recovery/interfaces/recovery-stats.d.ts +9 -0
  84. package/dist/core/recovery/interfaces.d.ts +6 -0
  85. package/dist/core/recovery/patterns.d.ts +8 -0
  86. package/dist/core/recovery/retry.d.ts +59 -0
  87. package/dist/core/recovery/session-recovery.d.ts +30 -0
  88. package/dist/core/session/interfaces/context-stats.d.ts +9 -0
  89. package/dist/core/session/interfaces/index.d.ts +8 -0
  90. package/dist/core/session/interfaces/shared-context.d.ts +15 -0
  91. package/dist/core/session/interfaces/shared-decision.d.ts +10 -0
  92. package/dist/core/session/interfaces/shared-document.d.ts +9 -0
  93. package/dist/core/session/interfaces/shared-finding.d.ts +10 -0
  94. package/dist/core/session/interfaces.d.ts +6 -0
  95. package/dist/core/session/shared-context.d.ts +8 -0
  96. package/dist/core/session/store.d.ts +44 -0
  97. package/dist/core/session/summary.d.ts +7 -0
  98. package/dist/core/sync/todo-parser.d.ts +5 -0
  99. package/dist/core/sync/todo-sync-service.d.ts +35 -0
  100. package/dist/core/task/interfaces/index.d.ts +8 -0
  101. package/dist/core/task/interfaces/task-hierarchy.d.ts +9 -0
  102. package/dist/core/task/interfaces/task-input.d.ts +11 -0
  103. package/dist/core/task/interfaces/task-node.d.ts +20 -0
  104. package/dist/core/task/interfaces/task-progress.d.ts +11 -0
  105. package/dist/core/task/interfaces.d.ts +6 -0
  106. package/dist/core/task/parser.d.ts +8 -0
  107. package/dist/core/task/scheduler.d.ts +12 -0
  108. package/dist/core/task/store.d.ts +32 -0
  109. package/dist/core/task/summary.d.ts +7 -0
  110. package/dist/core/task/task-decomposer.d.ts +10 -0
  111. package/dist/core/todo/todo-manager.d.ts +36 -0
  112. package/dist/hooks/compatibility/external-plugin.d.ts +10 -0
  113. package/dist/hooks/constants.d.ts +27 -0
  114. package/dist/hooks/custom/agent-ui.d.ts +20 -0
  115. package/dist/hooks/custom/memory-gate.d.ts +21 -0
  116. package/dist/hooks/custom/metrics.d.ts +14 -0
  117. package/dist/hooks/custom/resource-control.d.ts +13 -0
  118. package/dist/hooks/custom/secret-scanner.d.ts +19 -0
  119. package/dist/hooks/custom/strict-role-guard.d.ts +21 -0
  120. package/dist/hooks/custom/user-activity.d.ts +11 -0
  121. package/dist/hooks/features/mission-loop.d.ts +18 -0
  122. package/dist/hooks/features/sanity-check.d.ts +15 -0
  123. package/dist/hooks/index.d.ts +5 -0
  124. package/dist/hooks/registry.d.ts +37 -0
  125. package/dist/hooks/types.d.ts +72 -0
  126. package/dist/index.d.ts +8 -0
  127. package/dist/index.js +27188 -6225
  128. package/dist/plugin-handlers/assistant-done-handler.d.ts +12 -0
  129. package/dist/plugin-handlers/chat-message-handler.d.ts +30 -0
  130. package/dist/plugin-handlers/config-handler.d.ts +9 -0
  131. package/dist/plugin-handlers/event-handler.d.ts +18 -0
  132. package/dist/plugin-handlers/index.d.ts +9 -0
  133. package/dist/plugin-handlers/interfaces/assistant-done-context.d.ts +12 -0
  134. package/dist/plugin-handlers/interfaces/chat-message-context.d.ts +12 -0
  135. package/dist/plugin-handlers/interfaces/event-handler-context.d.ts +14 -0
  136. package/dist/plugin-handlers/interfaces/index.d.ts +12 -0
  137. package/dist/plugin-handlers/interfaces/orchestrator-state.d.ts +14 -0
  138. package/dist/plugin-handlers/interfaces/session-compacting.d.ts +19 -0
  139. package/dist/plugin-handlers/interfaces/session-state.d.ts +15 -0
  140. package/dist/plugin-handlers/interfaces/system-transform.d.ts +17 -0
  141. package/dist/plugin-handlers/interfaces/tool-execute-context.d.ts +8 -0
  142. package/dist/plugin-handlers/interfaces/tool-hook.d.ts +14 -0
  143. package/dist/plugin-handlers/session-compacting-handler.d.ts +14 -0
  144. package/dist/plugin-handlers/system-transform-handler.d.ts +14 -0
  145. package/dist/plugin-handlers/tool-execute-handler.d.ts +14 -0
  146. package/dist/plugin-handlers/tool-execute-pre-handler.d.ts +8 -0
  147. package/dist/scripts/postinstall.js +29 -125
  148. package/dist/shared/command/index.d.ts +0 -1
  149. package/dist/shared/constants/system-messages.d.ts +4 -4
  150. package/dist/shared/core/constants/index.d.ts +0 -4
  151. package/dist/shared/errors/constants/error-patterns.d.ts +13 -0
  152. package/dist/shared/errors/constants/error-type.d.ts +13 -0
  153. package/dist/shared/errors/constants/index.d.ts +5 -0
  154. package/dist/shared/errors/detection.d.ts +5 -0
  155. package/dist/shared/errors/index.d.ts +7 -0
  156. package/dist/shared/errors/retry.d.ts +7 -0
  157. package/dist/shared/errors/types/error-pattern-type.d.ts +5 -0
  158. package/dist/shared/errors/types/index.d.ts +4 -0
  159. package/dist/shared/index.d.ts +8 -7
  160. package/dist/shared/loop/constants/index.d.ts +7 -0
  161. package/dist/shared/loop/constants/labels.d.ts +33 -0
  162. package/dist/shared/loop/constants/loop.d.ts +17 -0
  163. package/dist/shared/loop/constants/mission-control.d.ts +20 -0
  164. package/dist/shared/loop/constants/todo-status.d.ts +9 -0
  165. package/dist/shared/loop/index.d.ts +6 -0
  166. package/dist/shared/loop/interfaces/index.d.ts +6 -0
  167. package/dist/shared/loop/interfaces/mission-loop.d.ts +29 -0
  168. package/dist/shared/loop/interfaces/todo-stats.d.ts +11 -0
  169. package/dist/shared/loop/interfaces/todo.d.ts +13 -0
  170. package/dist/shared/loop/types/index.d.ts +5 -0
  171. package/dist/shared/loop/types/todo-priority.d.ts +4 -0
  172. package/dist/shared/loop/types/todo-status.d.ts +4 -0
  173. package/dist/shared/message/constants/index.d.ts +8 -0
  174. package/dist/shared/message/constants/message-roles.d.ts +23 -0
  175. package/dist/shared/message/constants/part-types.d.ts +13 -0
  176. package/dist/shared/message/constants/plugin-hooks.d.ts +15 -0
  177. package/dist/shared/message/constants/prompts.d.ts +8 -0
  178. package/dist/shared/message/constants/slash-commands.d.ts +21 -0
  179. package/dist/shared/message/index.d.ts +4 -0
  180. package/dist/shared/notification/constants/index.d.ts +3 -0
  181. package/dist/shared/notification/constants/toast-duration.d.ts +19 -0
  182. package/dist/shared/notification/constants/toast-variants.d.ts +10 -0
  183. package/dist/shared/notification/constants/tui.const.d.ts +24 -0
  184. package/dist/shared/notification/index.d.ts +7 -0
  185. package/dist/shared/notification/interfaces/index.d.ts +6 -0
  186. package/dist/shared/notification/interfaces/task-toast.interface.d.ts +18 -0
  187. package/dist/shared/notification/interfaces/toast-message.d.ts +13 -0
  188. package/dist/shared/notification/interfaces/toast-options.d.ts +10 -0
  189. package/dist/shared/notification/os-notify/constants/index.d.ts +6 -0
  190. package/dist/shared/notification/os-notify/constants/notification-command-keys.d.ts +11 -0
  191. package/dist/shared/notification/os-notify/constants/notification-commands.d.ts +11 -0
  192. package/dist/shared/notification/os-notify/constants/notification-defaults.d.ts +5 -0
  193. package/dist/shared/notification/os-notify/index.d.ts +6 -0
  194. package/dist/shared/notification/os-notify/interfaces/index.d.ts +5 -0
  195. package/dist/shared/notification/os-notify/interfaces/notification-config.d.ts +15 -0
  196. package/dist/shared/notification/os-notify/interfaces/notification-state.d.ts +13 -0
  197. package/dist/shared/notification/os-notify/types/index.d.ts +4 -0
  198. package/dist/shared/notification/os-notify/types/notification-commands.d.ts +5 -0
  199. package/dist/shared/notification/presets/index.d.ts +9 -0
  200. package/dist/shared/notification/presets/mission.d.ts +5 -0
  201. package/dist/shared/notification/presets/parallel.d.ts +6 -0
  202. package/dist/shared/notification/presets/session.d.ts +6 -0
  203. package/dist/shared/notification/presets/task-lifecycle.d.ts +7 -0
  204. package/dist/shared/notification/presets/tools.d.ts +6 -0
  205. package/dist/shared/notification/presets/warnings.d.ts +7 -0
  206. package/dist/shared/notification/types/index.d.ts +4 -0
  207. package/dist/shared/notification/types/toast-variant.d.ts +4 -0
  208. package/dist/shared/os/constants/index.d.ts +4 -0
  209. package/dist/shared/{core/constants/os.d.ts → os/constants/platform.d.ts} +3 -4
  210. package/dist/shared/os/index.d.ts +5 -0
  211. package/dist/shared/os/types/index.d.ts +4 -0
  212. package/dist/shared/os/types/platform.d.ts +5 -0
  213. package/dist/shared/prompt/constants/tags.d.ts +0 -4
  214. package/dist/shared/prompt/index.d.ts +0 -1
  215. package/dist/shared/recovery/constants/history.d.ts +11 -0
  216. package/dist/shared/recovery/constants/index.d.ts +6 -0
  217. package/dist/shared/recovery/constants/recovery-level.d.ts +15 -0
  218. package/dist/shared/recovery/constants/recovery.d.ts +13 -0
  219. package/dist/shared/recovery/index.d.ts +6 -0
  220. package/dist/shared/recovery/interfaces/error-context.d.ts +11 -0
  221. package/dist/shared/recovery/interfaces/index.d.ts +5 -0
  222. package/dist/shared/recovery/interfaces/recovery-record.d.ts +10 -0
  223. package/dist/shared/recovery/types/index.d.ts +4 -0
  224. package/dist/shared/recovery/types/recovery-action.d.ts +4 -0
  225. package/dist/shared/session/constants/events/index.d.ts +0 -5
  226. package/dist/shared/session/constants/index.d.ts +0 -2
  227. package/dist/shared/session/index.d.ts +0 -1
  228. package/dist/shared/task/constants/parallel-task.d.ts +4 -5
  229. package/dist/shared/verification/constants/categories.d.ts +95 -0
  230. package/dist/shared/verification/constants/checklist.d.ts +16 -0
  231. package/dist/shared/verification/constants/index.d.ts +7 -0
  232. package/dist/shared/verification/constants/patterns.d.ts +19 -0
  233. package/dist/shared/verification/constants/signals.d.ts +10 -0
  234. package/dist/shared/verification/index.d.ts +8 -0
  235. package/dist/shared/verification/interfaces/checklist-item.d.ts +21 -0
  236. package/dist/shared/verification/interfaces/checklist-verification-result.d.ts +24 -0
  237. package/dist/shared/verification/interfaces/index.d.ts +7 -0
  238. package/dist/shared/verification/interfaces/verification-checklist.d.ts +19 -0
  239. package/dist/shared/verification/interfaces/verification-result.d.ts +29 -0
  240. package/dist/shared/verification/types/checklist-category.d.ts +18 -0
  241. package/dist/shared/verification/types/index.d.ts +4 -0
  242. package/dist/tools/parallel/list-agents.d.ts +1 -1
  243. package/dist/tools/parallel/show-metrics.d.ts +10 -0
  244. package/dist/tools/parallel/update-todo.d.ts +7 -0
  245. package/dist/utils/common.d.ts +5 -3
  246. package/dist/utils/compatibility/claude.d.ts +9 -0
  247. package/dist/utils/formatting/elapsed-time.d.ts +4 -0
  248. package/dist/utils/formatting/index.d.ts +5 -0
  249. package/dist/utils/formatting/timestamp.d.ts +4 -0
  250. package/dist/utils/parsing/index.d.ts +4 -0
  251. package/dist/utils/parsing/slash-command.d.ts +7 -0
  252. package/dist/utils/sanity/checker.d.ts +8 -0
  253. package/dist/utils/sanity/constants/escalation-prompt.d.ts +4 -0
  254. package/dist/utils/sanity/constants/index.d.ts +6 -0
  255. package/dist/utils/sanity/constants/recovery-prompt.d.ts +4 -0
  256. package/dist/utils/sanity/constants/severity.d.ts +8 -0
  257. package/dist/utils/sanity/index.d.ts +7 -0
  258. package/dist/utils/sanity/interfaces/index.d.ts +4 -0
  259. package/dist/utils/sanity/interfaces/sanity-result.d.ts +9 -0
  260. package/dist/utils/sanity/types/index.d.ts +4 -0
  261. package/dist/utils/sanity/types/severity.d.ts +5 -0
  262. package/package.json +3 -3
  263. package/dist/core/agents/adaptive-concurrency.d.ts +0 -57
  264. package/dist/core/agents/unified-task-executor.d.ts +0 -27
  265. package/dist/core/mission/mission-controller.d.ts +0 -53
  266. package/dist/core/resource/resource-tracker.d.ts +0 -61
  267. package/dist/shared/command/constants/names.d.ts +0 -8
  268. package/dist/shared/core/constants/labels.d.ts +0 -12
  269. package/dist/shared/core/constants/mission.d.ts +0 -8
  270. package/dist/shared/core/constants/signals.d.ts +0 -22
  271. package/dist/shared/prompt/constants/prompts.d.ts +0 -7
  272. package/dist/shared/session/constants/events/hook-events.d.ts +0 -9
  273. package/dist/shared/session/constants/message.d.ts +0 -15
  274. package/dist/shared/session/constants/status.d.ts +0 -9
  275. /package/dist/{shared/task/constants/task-status.d.ts → core/agents/consts/task-status.const.d.ts} +0 -0
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Session Retry Utilities
3
+ *
4
+ * Provides sophisticated retry logic for API errors including:
5
+ * - retry-after header parsing
6
+ * - Exponential backoff
7
+ * - Retryable error detection
8
+ *
9
+ * Inspired by OpenCode's SessionRetry system.
10
+ */
11
+ /** Initial delay for retries (ms) */
12
+ export declare const RETRY_INITIAL_DELAY = 2000;
13
+ /** Backoff multiplier */
14
+ export declare const RETRY_BACKOFF_FACTOR = 2;
15
+ /** Max delay when no headers (30 seconds) */
16
+ export declare const RETRY_MAX_DELAY_NO_HEADERS = 30000;
17
+ /** Absolute max delay for setTimeout (max 32-bit signed int) */
18
+ export declare const RETRY_MAX_DELAY = 2147483647;
19
+ /** Max retry attempts */
20
+ export declare const MAX_RETRY_ATTEMPTS = 5;
21
+ export interface APIErrorData {
22
+ isRetryable?: boolean;
23
+ message?: string;
24
+ responseHeaders?: Record<string, string>;
25
+ status?: number;
26
+ }
27
+ export interface RetryConfig {
28
+ maxAttempts?: number;
29
+ initialDelay?: number;
30
+ maxDelay?: number;
31
+ backoffFactor?: number;
32
+ }
33
+ /**
34
+ * Sleep with abort signal support
35
+ */
36
+ export declare function sleep(ms: number, signal?: AbortSignal): Promise<void>;
37
+ /**
38
+ * Calculate retry delay from attempt number and optional error data
39
+ *
40
+ * Priority:
41
+ * 1. retry-after-ms header
42
+ * 2. retry-after header (seconds or HTTP date)
43
+ * 3. Exponential backoff
44
+ */
45
+ export declare function calculateDelay(attempt: number, errorData?: APIErrorData): number;
46
+ /**
47
+ * Check if an error is retryable
48
+ *
49
+ * Returns a human-readable reason if retryable, undefined otherwise.
50
+ */
51
+ export declare function isRetryable(error: unknown): string | undefined;
52
+ /**
53
+ * Retry an async operation with exponential backoff
54
+ */
55
+ export declare function withRetry<T>(operation: () => Promise<T>, config?: RetryConfig, signal?: AbortSignal): Promise<T>;
56
+ /**
57
+ * Format delay for human readability
58
+ */
59
+ export declare function formatDelay(ms: number): string;
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Session Recovery Event Handler
3
+ *
4
+ * Integrates with the OpenCode event system to automatically recover from session errors.
5
+ *
6
+ * Supported error types:
7
+ * - tool_result_missing: Tool crashed, inject error message
8
+ * - thinking_block_order: Thinking block ordering issue
9
+ * - rate_limit: API rate limiting
10
+ * - context_overflow: Token limit exceeded
11
+ */
12
+ import type { PluginInput } from "@opencode-ai/plugin";
13
+ type OpencodeClient = PluginInput["client"];
14
+ /**
15
+ * Handle session error event and attempt recovery
16
+ */
17
+ export declare function handleSessionError(client: OpencodeClient, sessionID: string, error: unknown, properties?: Record<string, unknown>): Promise<boolean>;
18
+ /**
19
+ * Mark that recovery is complete for a session
20
+ */
21
+ export declare function markRecoveryComplete(sessionID: string): void;
22
+ /**
23
+ * Clean up session recovery state
24
+ */
25
+ export declare function cleanupSessionRecovery(sessionID: string): void;
26
+ /**
27
+ * Check if session is currently recovering
28
+ */
29
+ export declare function isSessionRecovering(sessionID: string): boolean;
30
+ export {};
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Context Stats Interface
3
+ */
4
+ export interface ContextStats {
5
+ totalContexts: number;
6
+ totalDocuments: number;
7
+ totalFindings: number;
8
+ totalDecisions: number;
9
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Session Interfaces - Index
3
+ */
4
+ export type { SharedDocument } from "./shared-document.js";
5
+ export type { SharedFinding } from "./shared-finding.js";
6
+ export type { SharedDecision } from "./shared-decision.js";
7
+ export type { SharedContext } from "./shared-context.js";
8
+ export type { ContextStats } from "./context-stats.js";
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Shared Context Interface
3
+ */
4
+ import type { SharedDocument } from "./shared-document.js";
5
+ import type { SharedFinding } from "./shared-finding.js";
6
+ import type { SharedDecision } from "./shared-decision.js";
7
+ export interface SharedContext {
8
+ sessionId: string;
9
+ parentId?: string;
10
+ documents: Map<string, SharedDocument>;
11
+ findings: SharedFinding[];
12
+ decisions: Map<string, SharedDecision>;
13
+ createdAt: Date;
14
+ updatedAt: Date;
15
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Shared Decision Interface
3
+ */
4
+ export interface SharedDecision {
5
+ id: string;
6
+ question: string;
7
+ answer: string;
8
+ rationale: string;
9
+ decidedAt: Date;
10
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Shared Document Interface
3
+ */
4
+ export interface SharedDocument {
5
+ url: string;
6
+ filename: string;
7
+ title: string;
8
+ cachedAt: Date;
9
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Shared Finding Interface
3
+ */
4
+ export interface SharedFinding {
5
+ id: string;
6
+ content: string;
7
+ source: string;
8
+ timestamp: Date;
9
+ category: "pattern" | "api" | "config" | "warning" | "decision";
10
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Shared Context Interfaces
3
+ *
4
+ * Re-exports for backward compatibility.
5
+ */
6
+ export * from "./interfaces/index.js";
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Session Shared Context
3
+ *
4
+ * Enables context sharing between parent and child sessions
5
+ */
6
+ export type { SharedDocument, SharedFinding, SharedDecision, SharedContext, ContextStats, } from "./interfaces.js";
7
+ export { create, get, getMerged, addDocument, addFinding, addDecision, getChildren, clear, clearAll, getStats, } from "./store.js";
8
+ export { getSummary } from "./summary.js";
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Context Store - Session context data management
3
+ */
4
+ import type { SharedContext, SharedDocument, SharedFinding, SharedDecision, ContextStats } from "./interfaces.js";
5
+ /**
6
+ * Create a new shared context for a session
7
+ */
8
+ export declare function create(sessionId: string, parentId?: string): SharedContext;
9
+ /**
10
+ * Get shared context for a session
11
+ */
12
+ export declare function get(sessionId: string): SharedContext | undefined;
13
+ /**
14
+ * Get merged context (includes parent context)
15
+ */
16
+ export declare function getMerged(sessionId: string): SharedContext | undefined;
17
+ /**
18
+ * Add a document to the shared context
19
+ */
20
+ export declare function addDocument(sessionId: string, doc: SharedDocument): void;
21
+ /**
22
+ * Add a finding to the shared context
23
+ */
24
+ export declare function addFinding(sessionId: string, finding: Omit<SharedFinding, "id" | "timestamp">): void;
25
+ /**
26
+ * Record a decision
27
+ */
28
+ export declare function addDecision(sessionId: string, decision: Omit<SharedDecision, "id" | "decidedAt">): void;
29
+ /**
30
+ * Get all child session IDs
31
+ */
32
+ export declare function getChildren(parentId: string): string[];
33
+ /**
34
+ * Clear context for a session
35
+ */
36
+ export declare function clear(sessionId: string): void;
37
+ /**
38
+ * Clear all contexts
39
+ */
40
+ export declare function clearAll(): void;
41
+ /**
42
+ * Get stats
43
+ */
44
+ export declare function getStats(): ContextStats;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Context Summary - Generate prompt summaries
3
+ */
4
+ /**
5
+ * Get context summary for injection into prompts
6
+ */
7
+ export declare function getSummary(sessionId: string): string;
@@ -0,0 +1,5 @@
1
+ import { type Todo } from "../../shared/index.js";
2
+ /**
3
+ * Parses markdown content into Todo objects
4
+ */
5
+ export declare function parseTodoMd(content: string): Todo[];
@@ -0,0 +1,35 @@
1
+ import type { PluginInput } from "@opencode-ai/plugin";
2
+ type OpencodeClient = PluginInput["client"];
3
+ interface TrackedTaskTodo {
4
+ id: string;
5
+ description: string;
6
+ status: string;
7
+ agent: string;
8
+ isBackground: boolean;
9
+ parentSessionID?: string;
10
+ }
11
+ export declare class TodoSyncService {
12
+ private client;
13
+ private directory;
14
+ private todoPath;
15
+ private fileTodos;
16
+ private taskTodos;
17
+ private updateTimeout;
18
+ private watcher;
19
+ private activeSessions;
20
+ constructor(client: OpencodeClient, directory: string);
21
+ start(): Promise<void>;
22
+ registerSession(sessionID: string): void;
23
+ unregisterSession(sessionID: string): void;
24
+ private reloadFileTodos;
25
+ /**
26
+ * Called by TaskToastManager when tasks change
27
+ */
28
+ updateTaskStatus(task: TrackedTaskTodo): void;
29
+ removeTask(taskId: string): void;
30
+ private broadcastUpdate;
31
+ private scheduleUpdate;
32
+ private sendTodosToSession;
33
+ stop(): void;
34
+ }
35
+ export {};
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Task Interfaces - Index
3
+ */
4
+ export type { TaskNode, TaskStatus } from "./task-node.js";
5
+ export type { TaskHierarchy } from "./task-hierarchy.js";
6
+ export type { TaskProgress } from "./task-progress.js";
7
+ export type { TaskInput } from "./task-input.js";
8
+ export { TASK_STATUS } from "../../../shared/index.js";
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Task Hierarchy Interface
3
+ */
4
+ import type { TaskNode } from "./task-node.js";
5
+ export interface TaskHierarchy {
6
+ rootId: string;
7
+ nodes: Map<string, TaskNode>;
8
+ parallelGroups: Map<string, string[]>;
9
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Task Input Interface
3
+ */
4
+ export interface TaskInput {
5
+ description: string;
6
+ level: number;
7
+ parentId?: string;
8
+ agent?: string;
9
+ parallelGroup?: string;
10
+ dependsOn?: string[];
11
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Task Node Interface
3
+ */
4
+ import type { ParallelTaskStatus } from "../../../shared/task/types/index.js";
5
+ export type TaskStatus = ParallelTaskStatus;
6
+ export interface TaskNode {
7
+ id: string;
8
+ description: string;
9
+ level: number;
10
+ parent?: string;
11
+ children: string[];
12
+ status: TaskStatus;
13
+ agent?: string;
14
+ parallelGroup?: string;
15
+ dependsOn: string[];
16
+ createdAt: Date;
17
+ startedAt?: Date;
18
+ completedAt?: Date;
19
+ result?: string;
20
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Task Progress Interface
3
+ */
4
+ export interface TaskProgress {
5
+ total: number;
6
+ pending: number;
7
+ running: number;
8
+ completed: number;
9
+ failed: number;
10
+ percentage: number;
11
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Task Decomposer Interfaces
3
+ *
4
+ * Re-exports for backward compatibility.
5
+ */
6
+ export * from "./interfaces/index.js";
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Task Parser - Parse hierarchy from Planner output
3
+ */
4
+ import type { TaskHierarchy } from "./interfaces.js";
5
+ /**
6
+ * Parse task hierarchy from text (Planner output)
7
+ */
8
+ export declare function parseFromText(sessionId: string, text: string): TaskHierarchy;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Task Scheduler - Execution order and dependencies
3
+ */
4
+ import type { TaskNode } from "./interfaces.js";
5
+ /**
6
+ * Get next executable tasks (respecting dependencies)
7
+ */
8
+ export declare function getNextTasks(sessionId: string): TaskNode[];
9
+ /**
10
+ * Get parallel group tasks that can run together
11
+ */
12
+ export declare function getParallelBatch(sessionId: string, groupId: string): TaskNode[];
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Task Store - Hierarchy data management
3
+ */
4
+ import type { TaskNode, TaskHierarchy, TaskInput, TaskStatus, TaskProgress } from "./interfaces.js";
5
+ /**
6
+ * Create a new task hierarchy
7
+ */
8
+ export declare function create(sessionId: string, rootDescription: string): TaskHierarchy;
9
+ /**
10
+ * Get hierarchy for session
11
+ */
12
+ export declare function getHierarchy(sessionId: string): TaskHierarchy | undefined;
13
+ /**
14
+ * Add a task node
15
+ */
16
+ export declare function addTask(sessionId: string, task: TaskInput): TaskNode;
17
+ /**
18
+ * Update task status
19
+ */
20
+ export declare function updateStatus(sessionId: string, taskId: string, status: TaskStatus, result?: string): void;
21
+ /**
22
+ * Clear hierarchy
23
+ */
24
+ export declare function clear(sessionId: string): void;
25
+ /**
26
+ * Check if all tasks are complete
27
+ */
28
+ export declare function isComplete(sessionId: string): boolean;
29
+ /**
30
+ * Get progress statistics
31
+ */
32
+ export declare function getProgress(sessionId: string): TaskProgress;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Task Summary - Generate prompt summaries
3
+ */
4
+ /**
5
+ * Get hierarchy summary for prompts
6
+ */
7
+ export declare function getSummary(sessionId: string): string;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Task Decomposer
3
+ *
4
+ * Automatically decomposes complex tasks into hierarchical subtasks
5
+ */
6
+ export type { TaskStatus, TaskNode, TaskHierarchy, TaskProgress, TaskInput, } from "./interfaces.js";
7
+ export { create, getHierarchy, addTask, updateStatus, clear, isComplete, getProgress, } from "./store.js";
8
+ export { getNextTasks, getParallelBatch, } from "./scheduler.js";
9
+ export { parseFromText } from "./parser.js";
10
+ export { getSummary } from "./summary.js";
@@ -0,0 +1,36 @@
1
+ /**
2
+ * TodoManager - MVCC-based Optimistic Locking with Mutex for TODO Synchronization
3
+ */
4
+ export interface TodoVersion {
5
+ version: number;
6
+ timestamp: number;
7
+ author: string;
8
+ }
9
+ export interface TodoData {
10
+ content: string;
11
+ version: TodoVersion;
12
+ }
13
+ export declare class TodoManager {
14
+ private static _instance;
15
+ private directory;
16
+ private todoPath;
17
+ private versionPath;
18
+ private historyPath;
19
+ private updateMutex;
20
+ private constructor();
21
+ static getInstance(directory?: string): TodoManager;
22
+ setDirectory(dir: string): void;
23
+ readWithVersion(): Promise<TodoData>;
24
+ /**
25
+ * Update TODO with both MVCC (for logical consistency) and Mutex (for atomicity)
26
+ */
27
+ update(expectedVersion: number, updater: (content: string) => string, author: string): Promise<{
28
+ success: boolean;
29
+ currentVersion: number;
30
+ conflict?: boolean;
31
+ }>;
32
+ private _internalUpdate;
33
+ updateItem(searchText: string, newStatus: string, author?: string): Promise<boolean>;
34
+ addSubTask(parentText: string, subTaskText: string, author?: string): Promise<boolean>;
35
+ private logChange;
36
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * External Plugin Compatibility Hook
3
+ *
4
+ * Detects if other major plugins are present and ensures orchestrator plays nicely.
5
+ */
6
+ import type { ChatMessageHook, AssistantDoneHook, HookContext } from "../types.js";
7
+ export declare class ExternalPluginCompatHook implements ChatMessageHook, AssistantDoneHook {
8
+ name: string;
9
+ execute(ctx: HookContext, input: any): Promise<any>;
10
+ }
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Hook Constants
3
+ * Defines strict constant values for hook actions and statuses.
4
+ */
5
+ export declare const HOOK_ACTIONS: {
6
+ readonly CONTINUE: "continue";
7
+ readonly STOP: "stop";
8
+ readonly ALLOW: "allow";
9
+ readonly BLOCK: "block";
10
+ readonly MODIFY: "modify";
11
+ readonly INJECT: "inject";
12
+ readonly PROCESS: "process";
13
+ readonly INTERCEPT: "intercept";
14
+ };
15
+ export declare const HOOK_NAMES: {
16
+ readonly MEMORY_GATE: "MemoryGate";
17
+ readonly METRICS_TELEMETRY: "MetricsTelemetry";
18
+ readonly SANITY_CHECK: "SanityCheck";
19
+ readonly MISSION_LOOP: "MissionLoop";
20
+ readonly MISSION_CONTROL: "MissionControl";
21
+ readonly STRICT_ROLE_GUARD: "StrictRoleGuard";
22
+ readonly SECRET_SCANNER: "SecretScanner";
23
+ readonly AGENT_UI: "AgentUI";
24
+ readonly RESOURCE_CONTROL: "ResourceControl";
25
+ readonly USER_ACTIVITY: "UserActivity";
26
+ readonly SLASH_COMMAND: "SlashCommandDispatcher";
27
+ };
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Agent UI Hook
3
+ *
4
+ * Decorates tool outputs with UI elements:
5
+ * - Agent headers (e.g. [P] PLANNER Working...)
6
+ * - Task ID tracking
7
+ */
8
+ import type { PostToolUseHook, HookContext } from "../types.js";
9
+ export declare class AgentUIHook implements PostToolUseHook {
10
+ name: "AgentUI";
11
+ execute(ctx: HookContext, tool: string, input: any, output: {
12
+ title: string;
13
+ output: string;
14
+ metadata: any;
15
+ }): Promise<{
16
+ output?: undefined;
17
+ } | {
18
+ output: string;
19
+ }>;
20
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * MemoryGate Hook - Intercepts tool usage and turn completion to maintain memory.
3
+ */
4
+ import { PostToolUseHook, AssistantDoneHook, HookContext } from "../types.js";
5
+ export declare class MemoryGateHook implements PostToolUseHook, AssistantDoneHook {
6
+ name: "MemoryGate";
7
+ private memoryManager;
8
+ execute(context: HookContext, toolOrText: string, input?: any, output?: {
9
+ title: string;
10
+ output: string;
11
+ metadata: any;
12
+ }): Promise<any>;
13
+ /**
14
+ * Post-Tool: Capture tool outputs to TASK memory
15
+ */
16
+ private handlePostTool;
17
+ /**
18
+ * Assistant Done: Capture turn summary to MISSION memory if important
19
+ */
20
+ private handleAssistantDone;
21
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * MetricsHook - Collects telemetry during mission execution
3
+ */
4
+ import { PreToolUseHook, PostToolUseHook, AssistantDoneHook, HookContext } from "../types.js";
5
+ export declare class MetricsHook implements PreToolUseHook, PostToolUseHook, AssistantDoneHook {
6
+ name: "MetricsTelemetry";
7
+ private startTimes;
8
+ private metrics;
9
+ execute(context: HookContext, toolOrText: string, input?: any, output?: {
10
+ title: string;
11
+ output: string;
12
+ metadata: any;
13
+ }): Promise<any>;
14
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Resource Control Hook
3
+ *
4
+ * Unifies resource tracking, monitoring, and active memory compaction.
5
+ * Replaces separate ResourceUsageHook and MemoryCompactionHook.
6
+ */
7
+ import type { PostToolUseHook, AssistantDoneHook, HookContext } from "../types.js";
8
+ export declare class ResourceControlHook implements PostToolUseHook, AssistantDoneHook {
9
+ name: "ResourceControl";
10
+ private lastCompactionTime;
11
+ execute(ctx: HookContext, toolOrText: string, input?: any, output?: any): Promise<any>;
12
+ private checkMemoryHealth;
13
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Secret Scanner Hook
3
+ *
4
+ * Scans tool outputs for potential secrets (API Keys, etc) and masks them.
5
+ * This prevents leaking secrets into the context window or logs.
6
+ */
7
+ import type { PostToolUseHook, HookContext } from "../types.js";
8
+ export declare class SecretScannerHook implements PostToolUseHook {
9
+ name: "SecretScanner";
10
+ execute(ctx: HookContext, tool: string, input: any, output: {
11
+ title: string;
12
+ output: string;
13
+ metadata: any;
14
+ }): Promise<{
15
+ output: string;
16
+ } | {
17
+ output?: undefined;
18
+ }>;
19
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Strict Role Guard Hook
3
+ *
4
+ * Enforces role-based access control (RBAC) for agents.
5
+ * - Planner: Cannot write code or run commands.
6
+ * - Reviewer: Cannot write code (only review).
7
+ */
8
+ import type { PreToolUseHook, HookContext } from "../types.js";
9
+ export declare class StrictRoleGuardHook implements PreToolUseHook {
10
+ name: "StrictRoleGuard";
11
+ execute(ctx: HookContext, tool: string, args: any): Promise<{
12
+ action: "block";
13
+ reason: "Fork bomb detected.";
14
+ } | {
15
+ action: "block";
16
+ reason: "Root deletion blocked.";
17
+ } | {
18
+ action: "allow";
19
+ reason?: undefined;
20
+ }>;
21
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * User Activity Hook
3
+ *
4
+ * Tracks user interaction (chat messages) to pause auto-continuation/loops
5
+ * and update activity timestamps.
6
+ */
7
+ import type { ChatMessageHook, HookContext } from "../types.js";
8
+ export declare class UserActivityHook implements ChatMessageHook {
9
+ name: "UserActivity";
10
+ execute(ctx: HookContext, message: string): Promise<any>;
11
+ }
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Mission Loop Hook
3
+ *
4
+ * Handles:
5
+ * - Persistent execution until all TODOs are verified
6
+ * - Auto-continuation injection (Loop)
7
+ * - User cancellation detection
8
+ */
9
+ import type { AssistantDoneHook, ChatMessageHook, HookContext } from "../types.js";
10
+ export declare class MissionControlHook implements AssistantDoneHook, ChatMessageHook {
11
+ name: "MissionLoop";
12
+ execute(ctx: HookContext, text: string): Promise<any>;
13
+ private handleChatCommand;
14
+ private handleMissionProgress;
15
+ private buildContinuationResponse;
16
+ private handleMissionComplete;
17
+ private sendCompletionNotification;
18
+ }