@reinamaccredy/maestro 1.0.1 → 1.2.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 (172) hide show
  1. package/bin/maestro.js +4 -4
  2. package/bin/platform.js +4 -4
  3. package/bin/platform.test.ts +13 -13
  4. package/dist/agents/execution/index.d.ts +4 -0
  5. package/dist/agents/{scribe.d.ts → execution/scribe.d.ts} +1 -1
  6. package/dist/agents/{soloist.d.ts → execution/soloist.d.ts} +1 -1
  7. package/dist/agents/{virtuoso.d.ts → execution/virtuoso.d.ts} +1 -1
  8. package/dist/agents/index.d.ts +6 -1
  9. package/dist/agents/{arranger.d.ts → orchestration/arranger.d.ts} +1 -1
  10. package/dist/agents/{conductor.d.ts → orchestration/conductor.d.ts} +3 -3
  11. package/dist/agents/orchestration/index.d.ts +4 -0
  12. package/dist/agents/{maestro.d.ts → orchestration/maestro.d.ts} +1 -1
  13. package/dist/agents/{maestro-prompt-builder.d.ts → orchestration/prompt-builder.d.ts} +1 -1
  14. package/dist/agents/{designer.d.ts → planning/designer.d.ts} +1 -1
  15. package/dist/agents/planning/index.d.ts +3 -0
  16. package/dist/agents/{analyst.d.ts → research/analyst.d.ts} +1 -1
  17. package/dist/agents/{archivist.d.ts → research/archivist.d.ts} +1 -1
  18. package/dist/agents/research/index.d.ts +3 -0
  19. package/dist/agents/{scout.d.ts → research/scout.d.ts} +1 -1
  20. package/dist/agents/{critic.d.ts → review/critic.d.ts} +1 -1
  21. package/dist/agents/review/index.d.ts +1 -0
  22. package/dist/agents/utils.d.ts +1 -1
  23. package/dist/cli/doctor/constants.d.ts +1 -1
  24. package/dist/cli/index.js +49 -45
  25. package/dist/features/{background-agent → background/agent}/concurrency.d.ts +1 -1
  26. package/dist/features/{background-agent → background/agent}/manager.d.ts +1 -1
  27. package/dist/features/background/index.d.ts +2 -0
  28. package/dist/features/{task-toast-manager → background/toast-manager}/manager.d.ts +1 -1
  29. package/dist/features/builtin-commands/types.d.ts +1 -1
  30. package/dist/features/loaders/index.d.ts +4 -0
  31. package/dist/features/{claude-code-plugin-loader → loaders/plugin-loader}/loader.d.ts +2 -2
  32. package/dist/features/{claude-code-plugin-loader → loaders/plugin-loader}/types.d.ts +1 -1
  33. package/dist/features/opencode-skill-loader/loader.d.ts +1 -1
  34. package/dist/features/opencode-skill-loader/types.d.ts +1 -1
  35. package/dist/features/skill-mcp-manager/manager.d.ts +1 -1
  36. package/dist/features/skill-mcp-manager/types.d.ts +1 -1
  37. package/dist/features/state/index.d.ts +2 -0
  38. package/dist/hooks/context/index.d.ts +4 -0
  39. package/dist/hooks/{anthropic-context-window-limit-recovery → error-recovery/anthropic-context-window-limit-recovery}/executor.d.ts +1 -1
  40. package/dist/hooks/{anthropic-context-window-limit-recovery → error-recovery/anthropic-context-window-limit-recovery}/index.d.ts +1 -1
  41. package/dist/hooks/{anthropic-context-window-limit-recovery → error-recovery/anthropic-context-window-limit-recovery}/pruning-executor.d.ts +1 -1
  42. package/dist/hooks/error-recovery/index.d.ts +3 -0
  43. package/dist/hooks/index.d.ts +6 -25
  44. package/dist/hooks/{auto-slash-command → input/auto-slash-command}/executor.d.ts +1 -1
  45. package/dist/hooks/{auto-slash-command → input/auto-slash-command}/index.d.ts +1 -1
  46. package/dist/hooks/input/index.d.ts +3 -0
  47. package/dist/hooks/{keyword-detector → input/keyword-detector}/index.d.ts +1 -1
  48. package/dist/hooks/{auto-update-checker → lifecycle/auto-update-checker}/constants.d.ts +2 -2
  49. package/dist/hooks/lifecycle/index.d.ts +3 -0
  50. package/dist/hooks/{session-recovery → lifecycle/session-recovery}/index.d.ts +1 -1
  51. package/dist/hooks/{background-compaction → system/background-compaction}/index.d.ts +1 -1
  52. package/dist/hooks/{background-notification → system/background-notification}/index.d.ts +1 -1
  53. package/dist/hooks/{background-notification → system/background-notification}/types.d.ts +1 -1
  54. package/dist/hooks/system/index.d.ts +8 -0
  55. package/dist/hooks/{maestro-orchestrator → system/maestro-orchestrator}/index.d.ts +1 -1
  56. package/dist/hooks/{ralph-loop → system/ralph-loop}/types.d.ts +1 -1
  57. package/dist/hooks/todo-continuation-enforcer.d.ts +1 -1
  58. package/dist/hooks/{comment-checker → tool-intercept/comment-checker}/downloader.d.ts +1 -1
  59. package/dist/hooks/{comment-checker → tool-intercept/comment-checker}/index.d.ts +1 -1
  60. package/dist/hooks/tool-intercept/index.d.ts +4 -0
  61. package/dist/index.js +12334 -12297
  62. package/dist/shared/config-path.d.ts +2 -2
  63. package/dist/shared/external-plugin-detector.d.ts +1 -1
  64. package/dist/shared/index.d.ts +1 -0
  65. package/dist/shared/platform-detection.d.ts +42 -0
  66. package/dist/shared/system-directive.d.ts +2 -2
  67. package/dist/tools/background-task/tools.d.ts +1 -1
  68. package/dist/tools/call-omo-agent/tools.d.ts +1 -1
  69. package/dist/tools/delegate-task/tools.d.ts +1 -1
  70. package/dist/tools/index.d.ts +1 -1
  71. package/package.json +1 -1
  72. package/postinstall.mjs +97 -4
  73. /package/dist/agents/{build-prompt.d.ts → execution/build-prompt.d.ts} +0 -0
  74. /package/dist/agents/{composer.d.ts → planning/composer.d.ts} +0 -0
  75. /package/dist/agents/{plan-prompt.d.ts → planning/plan-prompt.d.ts} +0 -0
  76. /package/dist/features/{background-agent → background/agent}/index.d.ts +0 -0
  77. /package/dist/features/{background-agent → background/agent}/types.d.ts +0 -0
  78. /package/dist/features/{task-toast-manager → background/toast-manager}/index.d.ts +0 -0
  79. /package/dist/features/{task-toast-manager → background/toast-manager}/types.d.ts +0 -0
  80. /package/dist/features/{claude-code-agent-loader → loaders/agent-loader}/index.d.ts +0 -0
  81. /package/dist/features/{claude-code-agent-loader → loaders/agent-loader}/loader.d.ts +0 -0
  82. /package/dist/features/{claude-code-agent-loader → loaders/agent-loader}/types.d.ts +0 -0
  83. /package/dist/features/{claude-code-command-loader → loaders/command-loader}/index.d.ts +0 -0
  84. /package/dist/features/{claude-code-command-loader → loaders/command-loader}/loader.d.ts +0 -0
  85. /package/dist/features/{claude-code-command-loader → loaders/command-loader}/types.d.ts +0 -0
  86. /package/dist/features/{claude-code-mcp-loader → loaders/mcp-loader}/env-expander.d.ts +0 -0
  87. /package/dist/features/{claude-code-mcp-loader → loaders/mcp-loader}/index.d.ts +0 -0
  88. /package/dist/features/{claude-code-mcp-loader → loaders/mcp-loader}/loader.d.ts +0 -0
  89. /package/dist/features/{claude-code-mcp-loader → loaders/mcp-loader}/transformer.d.ts +0 -0
  90. /package/dist/features/{claude-code-mcp-loader → loaders/mcp-loader}/types.d.ts +0 -0
  91. /package/dist/features/{claude-code-plugin-loader → loaders/plugin-loader}/index.d.ts +0 -0
  92. /package/dist/features/{boulder-state → state/boulder-state}/constants.d.ts +0 -0
  93. /package/dist/features/{boulder-state → state/boulder-state}/index.d.ts +0 -0
  94. /package/dist/features/{boulder-state → state/boulder-state}/storage.d.ts +0 -0
  95. /package/dist/features/{boulder-state → state/boulder-state}/types.d.ts +0 -0
  96. /package/dist/features/{claude-code-session-state → state/session-state}/index.d.ts +0 -0
  97. /package/dist/features/{claude-code-session-state → state/session-state}/state.d.ts +0 -0
  98. /package/dist/hooks/{compaction-context-injector → context/compaction-context-injector}/index.d.ts +0 -0
  99. /package/dist/hooks/{directory-agents-injector → context/directory-agents-injector}/constants.d.ts +0 -0
  100. /package/dist/hooks/{directory-agents-injector → context/directory-agents-injector}/index.d.ts +0 -0
  101. /package/dist/hooks/{directory-agents-injector → context/directory-agents-injector}/storage.d.ts +0 -0
  102. /package/dist/hooks/{directory-agents-injector → context/directory-agents-injector}/types.d.ts +0 -0
  103. /package/dist/hooks/{directory-readme-injector → context/directory-readme-injector}/constants.d.ts +0 -0
  104. /package/dist/hooks/{directory-readme-injector → context/directory-readme-injector}/index.d.ts +0 -0
  105. /package/dist/hooks/{directory-readme-injector → context/directory-readme-injector}/storage.d.ts +0 -0
  106. /package/dist/hooks/{directory-readme-injector → context/directory-readme-injector}/types.d.ts +0 -0
  107. /package/dist/hooks/{rules-injector → context/rules-injector}/constants.d.ts +0 -0
  108. /package/dist/hooks/{rules-injector → context/rules-injector}/finder.d.ts +0 -0
  109. /package/dist/hooks/{rules-injector → context/rules-injector}/index.d.ts +0 -0
  110. /package/dist/hooks/{rules-injector → context/rules-injector}/matcher.d.ts +0 -0
  111. /package/dist/hooks/{rules-injector → context/rules-injector}/parser.d.ts +0 -0
  112. /package/dist/hooks/{rules-injector → context/rules-injector}/storage.d.ts +0 -0
  113. /package/dist/hooks/{rules-injector → context/rules-injector}/types.d.ts +0 -0
  114. /package/dist/hooks/{anthropic-context-window-limit-recovery → error-recovery/anthropic-context-window-limit-recovery}/parser.d.ts +0 -0
  115. /package/dist/hooks/{anthropic-context-window-limit-recovery → error-recovery/anthropic-context-window-limit-recovery}/pruning-deduplication.d.ts +0 -0
  116. /package/dist/hooks/{anthropic-context-window-limit-recovery → error-recovery/anthropic-context-window-limit-recovery}/pruning-purge-errors.d.ts +0 -0
  117. /package/dist/hooks/{anthropic-context-window-limit-recovery → error-recovery/anthropic-context-window-limit-recovery}/pruning-storage.d.ts +0 -0
  118. /package/dist/hooks/{anthropic-context-window-limit-recovery → error-recovery/anthropic-context-window-limit-recovery}/pruning-supersede.d.ts +0 -0
  119. /package/dist/hooks/{anthropic-context-window-limit-recovery → error-recovery/anthropic-context-window-limit-recovery}/pruning-types.d.ts +0 -0
  120. /package/dist/hooks/{anthropic-context-window-limit-recovery → error-recovery/anthropic-context-window-limit-recovery}/storage.d.ts +0 -0
  121. /package/dist/hooks/{anthropic-context-window-limit-recovery → error-recovery/anthropic-context-window-limit-recovery}/types.d.ts +0 -0
  122. /package/dist/hooks/{delegate-task-retry → error-recovery/delegate-task-retry}/index.d.ts +0 -0
  123. /package/dist/hooks/{edit-error-recovery → error-recovery/edit-error-recovery}/index.d.ts +0 -0
  124. /package/dist/hooks/{auto-slash-command → input/auto-slash-command}/constants.d.ts +0 -0
  125. /package/dist/hooks/{auto-slash-command → input/auto-slash-command}/detector.d.ts +0 -0
  126. /package/dist/hooks/{auto-slash-command → input/auto-slash-command}/types.d.ts +0 -0
  127. /package/dist/hooks/{empty-message-sanitizer → input/empty-message-sanitizer}/index.d.ts +0 -0
  128. /package/dist/hooks/{keyword-detector → input/keyword-detector}/constants.d.ts +0 -0
  129. /package/dist/hooks/{keyword-detector → input/keyword-detector}/detector.d.ts +0 -0
  130. /package/dist/hooks/{keyword-detector → input/keyword-detector}/types.d.ts +0 -0
  131. /package/dist/hooks/{auto-update-checker → lifecycle/auto-update-checker}/cache.d.ts +0 -0
  132. /package/dist/hooks/{auto-update-checker → lifecycle/auto-update-checker}/checker.d.ts +0 -0
  133. /package/dist/hooks/{auto-update-checker → lifecycle/auto-update-checker}/index.d.ts +0 -0
  134. /package/dist/hooks/{auto-update-checker → lifecycle/auto-update-checker}/types.d.ts +0 -0
  135. /package/dist/hooks/{session-recovery → lifecycle/session-recovery}/constants.d.ts +0 -0
  136. /package/dist/hooks/{session-recovery → lifecycle/session-recovery}/storage.d.ts +0 -0
  137. /package/dist/hooks/{session-recovery → lifecycle/session-recovery}/types.d.ts +0 -0
  138. /package/dist/hooks/{start-work → lifecycle/start-work}/index.d.ts +0 -0
  139. /package/dist/hooks/{agent-usage-reminder → system/agent-usage-reminder}/constants.d.ts +0 -0
  140. /package/dist/hooks/{agent-usage-reminder → system/agent-usage-reminder}/index.d.ts +0 -0
  141. /package/dist/hooks/{agent-usage-reminder → system/agent-usage-reminder}/storage.d.ts +0 -0
  142. /package/dist/hooks/{agent-usage-reminder → system/agent-usage-reminder}/types.d.ts +0 -0
  143. /package/dist/hooks/{interactive-bash-session → system/interactive-bash-session}/constants.d.ts +0 -0
  144. /package/dist/hooks/{interactive-bash-session → system/interactive-bash-session}/index.d.ts +0 -0
  145. /package/dist/hooks/{interactive-bash-session → system/interactive-bash-session}/storage.d.ts +0 -0
  146. /package/dist/hooks/{interactive-bash-session → system/interactive-bash-session}/types.d.ts +0 -0
  147. /package/dist/hooks/{non-interactive-env → system/non-interactive-env}/constants.d.ts +0 -0
  148. /package/dist/hooks/{non-interactive-env → system/non-interactive-env}/detector.d.ts +0 -0
  149. /package/dist/hooks/{non-interactive-env → system/non-interactive-env}/index.d.ts +0 -0
  150. /package/dist/hooks/{non-interactive-env → system/non-interactive-env}/types.d.ts +0 -0
  151. /package/dist/hooks/{ralph-loop → system/ralph-loop}/constants.d.ts +0 -0
  152. /package/dist/hooks/{ralph-loop → system/ralph-loop}/index.d.ts +0 -0
  153. /package/dist/hooks/{ralph-loop → system/ralph-loop}/storage.d.ts +0 -0
  154. /package/dist/hooks/{task-resume-info → system/task-resume-info}/index.d.ts +0 -0
  155. /package/dist/hooks/{comment-checker → tool-intercept/comment-checker}/cli.d.ts +0 -0
  156. /package/dist/hooks/{comment-checker → tool-intercept/comment-checker}/constants.d.ts +0 -0
  157. /package/dist/hooks/{comment-checker → tool-intercept/comment-checker}/filters/bdd.d.ts +0 -0
  158. /package/dist/hooks/{comment-checker → tool-intercept/comment-checker}/filters/directive.d.ts +0 -0
  159. /package/dist/hooks/{comment-checker → tool-intercept/comment-checker}/filters/docstring.d.ts +0 -0
  160. /package/dist/hooks/{comment-checker → tool-intercept/comment-checker}/filters/index.d.ts +0 -0
  161. /package/dist/hooks/{comment-checker → tool-intercept/comment-checker}/filters/shebang.d.ts +0 -0
  162. /package/dist/hooks/{comment-checker → tool-intercept/comment-checker}/output/formatter.d.ts +0 -0
  163. /package/dist/hooks/{comment-checker → tool-intercept/comment-checker}/output/index.d.ts +0 -0
  164. /package/dist/hooks/{comment-checker → tool-intercept/comment-checker}/output/xml-builder.d.ts +0 -0
  165. /package/dist/hooks/{comment-checker → tool-intercept/comment-checker}/types.d.ts +0 -0
  166. /package/dist/hooks/{composer-md-only → tool-intercept/composer-md-only}/constants.d.ts +0 -0
  167. /package/dist/hooks/{composer-md-only → tool-intercept/composer-md-only}/index.d.ts +0 -0
  168. /package/dist/hooks/{think-mode → tool-intercept/think-mode}/detector.d.ts +0 -0
  169. /package/dist/hooks/{think-mode → tool-intercept/think-mode}/index.d.ts +0 -0
  170. /package/dist/hooks/{think-mode → tool-intercept/think-mode}/switcher.d.ts +0 -0
  171. /package/dist/hooks/{think-mode → tool-intercept/think-mode}/types.d.ts +0 -0
  172. /package/dist/hooks/{thinking-block-validator → tool-intercept/thinking-block-validator}/index.d.ts +0 -0
package/dist/cli/index.js CHANGED
@@ -4888,7 +4888,7 @@ function log(message, data) {
4888
4888
  }
4889
4889
  var logFile;
4890
4890
  var init_logger = __esm(() => {
4891
- logFile = path.join(os.tmpdir(), "oh-my-opencode.log");
4891
+ logFile = path.join(os.tmpdir(), "maestro.log");
4892
4892
  });
4893
4893
 
4894
4894
  // src/shared/deep-merge.ts
@@ -5918,7 +5918,7 @@ function getOpenCodeConfigPaths(options) {
5918
5918
  configJson: join2(configDir, "opencode.json"),
5919
5919
  configJsonc: join2(configDir, "opencode.jsonc"),
5920
5920
  packageJson: join2(configDir, "package.json"),
5921
- omoConfig: join2(configDir, "oh-my-opencode.json")
5921
+ omoConfig: join2(configDir, "maestro.json")
5922
5922
  };
5923
5923
  }
5924
5924
  var TAURI_APP_IDENTIFIER = "ai.opencode.desktop", TAURI_APP_IDENTIFIER_DEV = "ai.opencode.desktop.dev";
@@ -5948,6 +5948,9 @@ var init_system_directive = () => {};
5948
5948
  // src/shared/agent-tool-restrictions.ts
5949
5949
  var init_agent_tool_restrictions = () => {};
5950
5950
 
5951
+ // src/shared/platform-detection.ts
5952
+ var init_platform_detection = () => {};
5953
+
5951
5954
  // src/shared/index.ts
5952
5955
  var init_shared = __esm(() => {
5953
5956
  init_frontmatter();
@@ -5972,6 +5975,7 @@ var init_shared = __esm(() => {
5972
5975
  init_session_cursor();
5973
5976
  init_system_directive();
5974
5977
  init_agent_tool_restrictions();
5978
+ init_platform_detection();
5975
5979
  });
5976
5980
 
5977
5981
  // src/cli/config-manager.ts
@@ -6175,7 +6179,7 @@ function deepMerge(target, source) {
6175
6179
  }
6176
6180
  function generateOmoConfig(installConfig) {
6177
6181
  const config = {
6178
- $schema: "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json"
6182
+ $schema: "https://raw.githubusercontent.com/ReinaMacCredy/maestro/main/assets/maestro.schema.json"
6179
6183
  };
6180
6184
  const agents = {};
6181
6185
  if (!installConfig.hasClaude) {
@@ -6273,7 +6277,7 @@ function writeOmoConfig(installConfig) {
6273
6277
  }
6274
6278
  return { success: true, configPath: omoConfigPath };
6275
6279
  } catch (err) {
6276
- return { success: false, configPath: omoConfigPath, error: formatErrorWithSuggestion(err, "write oh-my-opencode config") };
6280
+ return { success: false, configPath: omoConfigPath, error: formatErrorWithSuggestion(err, "write maestro config") };
6277
6281
  }
6278
6282
  }
6279
6283
  async function findOpenCodeBinaryWithVersion() {
@@ -6428,7 +6432,7 @@ function detectCurrentConfig() {
6428
6432
  }
6429
6433
  const openCodeConfig = parseResult.config;
6430
6434
  const plugins = openCodeConfig.plugin ?? [];
6431
- result.isInstalled = plugins.some((p2) => p2.startsWith("oh-my-opencode"));
6435
+ result.isInstalled = plugins.some((p2) => p2.startsWith("maestro"));
6432
6436
  if (!result.isInstalled) {
6433
6437
  return result;
6434
6438
  }
@@ -6468,7 +6472,7 @@ function detectCurrentConfig() {
6468
6472
  } catch {}
6469
6473
  return result;
6470
6474
  }
6471
- var OPENCODE_BINARIES, configContext = null, BUN_INSTALL_TIMEOUT_SECONDS = 60, BUN_INSTALL_TIMEOUT_MS, NPM_FETCH_TIMEOUT_MS = 5000, PACKAGE_NAME = "oh-my-opencode", PRIORITIZED_TAGS, ANTIGRAVITY_PROVIDER_CONFIG;
6475
+ var OPENCODE_BINARIES, configContext = null, BUN_INSTALL_TIMEOUT_SECONDS = 60, BUN_INSTALL_TIMEOUT_MS, NPM_FETCH_TIMEOUT_MS = 5000, PACKAGE_NAME = "maestro", PRIORITIZED_TAGS, ANTIGRAVITY_PROVIDER_CONFIG;
6472
6476
  var init_config_manager = __esm(() => {
6473
6477
  init_shared();
6474
6478
  OPENCODE_BINARIES = ["opencode", "opencode-desktop"];
@@ -6503,7 +6507,7 @@ var init_config_manager = __esm(() => {
6503
6507
  };
6504
6508
  });
6505
6509
 
6506
- // src/hooks/auto-update-checker/constants.ts
6510
+ // src/hooks/lifecycle/auto-update-checker/constants.ts
6507
6511
  import * as path2 from "path";
6508
6512
  import * as os2 from "os";
6509
6513
  import * as fs2 from "fs";
@@ -6531,7 +6535,7 @@ function getWindowsAppdataDir() {
6531
6535
  return null;
6532
6536
  return process.env.APPDATA ?? path2.join(os2.homedir(), "AppData", "Roaming");
6533
6537
  }
6534
- var PACKAGE_NAME2 = "oh-my-opencode", NPM_REGISTRY_URL, NPM_FETCH_TIMEOUT = 5000, CACHE_DIR, VERSION_FILE, INSTALLED_PACKAGE_JSON, USER_CONFIG_DIR, USER_OPENCODE_CONFIG, USER_OPENCODE_CONFIG_JSONC;
6538
+ var PACKAGE_NAME2 = "maestro", NPM_REGISTRY_URL, NPM_FETCH_TIMEOUT = 5000, CACHE_DIR, VERSION_FILE, INSTALLED_PACKAGE_JSON, USER_CONFIG_DIR, USER_OPENCODE_CONFIG, USER_OPENCODE_CONFIG_JSONC;
6535
6539
  var init_constants = __esm(() => {
6536
6540
  NPM_REGISTRY_URL = `https://registry.npmjs.org/-/package/${PACKAGE_NAME2}/dist-tags`;
6537
6541
  CACHE_DIR = getCacheDir();
@@ -6542,7 +6546,7 @@ var init_constants = __esm(() => {
6542
6546
  USER_OPENCODE_CONFIG_JSONC = path2.join(USER_CONFIG_DIR, "opencode", "opencode.jsonc");
6543
6547
  });
6544
6548
 
6545
- // src/hooks/auto-update-checker/cache.ts
6549
+ // src/hooks/lifecycle/auto-update-checker/cache.ts
6546
6550
  import * as fs3 from "fs";
6547
6551
  import * as path3 from "path";
6548
6552
  function stripTrailingCommas(json2) {
@@ -6615,7 +6619,7 @@ var init_cache = __esm(() => {
6615
6619
  init_logger();
6616
6620
  });
6617
6621
 
6618
- // src/hooks/auto-update-checker/index.ts
6622
+ // src/hooks/lifecycle/auto-update-checker/index.ts
6619
6623
  var exports_auto_update_checker = {};
6620
6624
  __export(exports_auto_update_checker, {
6621
6625
  isPrereleaseVersion: () => isPrereleaseVersion,
@@ -6837,7 +6841,7 @@ var init_auto_update_checker = __esm(() => {
6837
6841
  MAESTRO_SPINNER = ["\xB7", "\u2022", "\u25CF", "\u25CB", "\u25CC", "\u25E6", " "];
6838
6842
  });
6839
6843
 
6840
- // src/hooks/auto-update-checker/checker.ts
6844
+ // src/hooks/lifecycle/auto-update-checker/checker.ts
6841
6845
  import * as fs4 from "fs";
6842
6846
  import * as path4 from "path";
6843
6847
  import { fileURLToPath } from "url";
@@ -7672,7 +7676,7 @@ var import_picocolors2 = __toESM(require_picocolors(), 1);
7672
7676
  // package.json
7673
7677
  var package_default = {
7674
7678
  name: "@reinamaccredy/maestro",
7675
- version: "1.0.1",
7679
+ version: "1.2.0",
7676
7680
  description: "Maestro - Context-driven development for AI coding agents with music-themed orchestration",
7677
7681
  main: "dist/index.js",
7678
7682
  types: "dist/index.d.ts",
@@ -7954,7 +7958,7 @@ async function runNonTuiInstall(args) {
7954
7958
  console.log(` ${SYMBOLS.bullet} ${err}`);
7955
7959
  }
7956
7960
  console.log();
7957
- printInfo("Usage: bunx oh-my-opencode install --no-tui --claude=<no|yes|max20> --chatgpt=<no|yes> --gemini=<no|yes> --copilot=<no|yes>");
7961
+ printInfo("Usage: bunx maestro install --no-tui --claude=<no|yes|max20> --chatgpt=<no|yes> --gemini=<no|yes> --copilot=<no|yes>");
7958
7962
  console.log();
7959
7963
  return 1;
7960
7964
  }
@@ -7977,7 +7981,7 @@ async function runNonTuiInstall(args) {
7977
7981
  printInfo(`Current config: Claude=${initial.claude}, ChatGPT=${initial.chatgpt}, Gemini=${initial.gemini}`);
7978
7982
  }
7979
7983
  const config = argsToConfig(args);
7980
- printStep(step++, totalSteps, "Adding oh-my-opencode plugin...");
7984
+ printStep(step++, totalSteps, "Adding maestro plugin...");
7981
7985
  const pluginResult = await addPluginToOpenCodeConfig(VERSION);
7982
7986
  if (!pluginResult.success) {
7983
7987
  printError(`Failed: ${pluginResult.error}`);
@@ -8002,7 +8006,7 @@ async function runNonTuiInstall(args) {
8002
8006
  } else {
8003
8007
  step += 2;
8004
8008
  }
8005
- printStep(step++, totalSteps, "Writing oh-my-opencode configuration...");
8009
+ printStep(step++, totalSteps, "Writing maestro configuration...");
8006
8010
  const omoResult = writeOmoConfig(config);
8007
8011
  if (!omoResult.success) {
8008
8012
  printError(`Failed: ${omoResult.error}`);
@@ -8020,7 +8024,7 @@ async function runNonTuiInstall(args) {
8020
8024
  ` + `All features work like magic\u2014parallel agents, background tasks,
8021
8025
  ` + `deep exploration, and relentless execution until completion.`, "\uD83E\uDE84 The Magic Word");
8022
8026
  console.log(`${SYMBOLS.star} ${import_picocolors2.default.yellow("If you found this helpful, consider starring the repo!")}`);
8023
- console.log(` ${import_picocolors2.default.dim("gh repo star code-yeongyu/oh-my-opencode")}`);
8027
+ console.log(` ${import_picocolors2.default.dim("gh repo star ReinaMacCredy/maestro")}`);
8024
8028
  console.log();
8025
8029
  console.log(import_picocolors2.default.dim("oMoMoMoMo... Enjoy!"));
8026
8030
  console.log();
@@ -8059,7 +8063,7 @@ async function install(args) {
8059
8063
  const config = await runTuiMode(detected);
8060
8064
  if (!config)
8061
8065
  return 1;
8062
- s.start("Adding oh-my-opencode to OpenCode config");
8066
+ s.start("Adding maestro to OpenCode config");
8063
8067
  const pluginResult = await addPluginToOpenCodeConfig(VERSION);
8064
8068
  if (!pluginResult.success) {
8065
8069
  s.stop(`Failed to add plugin: ${pluginResult.error}`);
@@ -8085,7 +8089,7 @@ async function install(args) {
8085
8089
  }
8086
8090
  s.stop(`Provider config added to ${import_picocolors2.default.cyan(providerResult.configPath)}`);
8087
8091
  }
8088
- s.start("Writing oh-my-opencode configuration");
8092
+ s.start("Writing maestro configuration");
8089
8093
  const omoResult = writeOmoConfig(config);
8090
8094
  if (!omoResult.success) {
8091
8095
  s.stop(`Failed to write config: ${omoResult.error}`);
@@ -8103,7 +8107,7 @@ async function install(args) {
8103
8107
  ` + `All features work like magic\u2014parallel agents, background tasks,
8104
8108
  ` + `deep exploration, and relentless execution until completion.`, "\uD83E\uDE84 The Magic Word");
8105
8109
  M2.message(`${import_picocolors2.default.yellow("\u2605")} If you found this helpful, consider starring the repo!`);
8106
- M2.message(` ${import_picocolors2.default.dim("gh repo star code-yeongyu/oh-my-opencode")}`);
8110
+ M2.message(` ${import_picocolors2.default.dim("gh repo star ReinaMacCredy/maestro")}`);
8107
8111
  Se(import_picocolors2.default.green("oMoMoMoMo... Enjoy!"));
8108
8112
  if ((config.hasClaude || config.hasChatGPT || config.hasGemini || config.hasCopilot) && !args.skipAuth) {
8109
8113
  const providers = [];
@@ -9898,7 +9902,7 @@ Interrupted. Shutting down...`));
9898
9902
  });
9899
9903
  try {
9900
9904
  const sessionRes = await client3.session.create({
9901
- body: { title: "oh-my-opencode run" }
9905
+ body: { title: "maestro run" }
9902
9906
  });
9903
9907
  const sessionID = sessionRes.data?.id;
9904
9908
  if (!sessionID) {
@@ -9983,7 +9987,7 @@ var SYMBOLS2 = {
9983
9987
  function formatVersionOutput(info) {
9984
9988
  const lines = [];
9985
9989
  lines.push("");
9986
- lines.push(import_picocolors6.default.bold(import_picocolors6.default.white("oh-my-opencode Version Information")));
9990
+ lines.push(import_picocolors6.default.bold(import_picocolors6.default.white("Maestro Version Information")));
9987
9991
  lines.push(import_picocolors6.default.dim("\u2500".repeat(50)));
9988
9992
  lines.push("");
9989
9993
  if (info.currentVersion) {
@@ -10001,7 +10005,7 @@ function formatVersionOutput(info) {
10001
10005
  break;
10002
10006
  case "outdated":
10003
10007
  lines.push(` ${SYMBOLS2.warn} ${import_picocolors6.default.yellow("Update available")}`);
10004
- lines.push(` ${import_picocolors6.default.dim("Run:")} ${import_picocolors6.default.cyan("cd ~/.config/opencode && bun update oh-my-opencode")}`);
10008
+ lines.push(` ${import_picocolors6.default.dim("Run:")} ${import_picocolors6.default.cyan("cd ~/.config/opencode && bun update @reinamaccredy/maestro")}`);
10005
10009
  break;
10006
10010
  case "local-dev":
10007
10011
  lines.push(` ${SYMBOLS2.dev} ${import_picocolors6.default.cyan("Running in local development mode")}`);
@@ -10178,7 +10182,7 @@ var EXIT_CODES = {
10178
10182
  FAILURE: 1
10179
10183
  };
10180
10184
  var MIN_OPENCODE_VERSION = "1.0.150";
10181
- var PACKAGE_NAME3 = "oh-my-opencode";
10185
+ var PACKAGE_NAME3 = "maestro";
10182
10186
  var OPENCODE_BINARIES2 = ["opencode", "opencode-desktop"];
10183
10187
 
10184
10188
  // src/cli/doctor/checks/opencode.ts
@@ -10401,7 +10405,7 @@ async function checkPluginRegistration() {
10401
10405
  status: "fail",
10402
10406
  message: "OpenCode config file not found",
10403
10407
  details: [
10404
- "Run: bunx oh-my-opencode install",
10408
+ "Run: bunx maestro install",
10405
10409
  `Expected: ${expectedPaths.configJson} or ${expectedPaths.configJsonc}`
10406
10410
  ]
10407
10411
  };
@@ -10412,7 +10416,7 @@ async function checkPluginRegistration() {
10412
10416
  status: "fail",
10413
10417
  message: "Plugin not registered in config",
10414
10418
  details: [
10415
- "Run: bunx oh-my-opencode install",
10419
+ "Run: bunx maestro install",
10416
10420
  `Config: ${info.configPath}`
10417
10421
  ]
10418
10422
  };
@@ -24395,7 +24399,7 @@ async function checkAuthProvider(providerId) {
24395
24399
  message: "Auth plugin not installed",
24396
24400
  details: [
24397
24401
  `Plugin: ${AUTH_PLUGINS[providerId].plugin}`,
24398
- "Run: bunx oh-my-opencode install"
24402
+ "Run: bunx maestro install"
24399
24403
  ]
24400
24404
  };
24401
24405
  }
@@ -25017,7 +25021,7 @@ async function checkVersionStatus() {
25017
25021
  name: CHECK_NAMES[CHECK_IDS.VERSION_STATUS],
25018
25022
  status: "warn",
25019
25023
  message: "Unable to determine current version",
25020
- details: ["Run: bunx oh-my-opencode get-local-version"]
25024
+ details: ["Run: bunx maestro get-local-version"]
25021
25025
  };
25022
25026
  }
25023
25027
  if (!info.latestVersion) {
@@ -25033,7 +25037,7 @@ async function checkVersionStatus() {
25033
25037
  name: CHECK_NAMES[CHECK_IDS.VERSION_STATUS],
25034
25038
  status: "warn",
25035
25039
  message: `Update available: ${info.currentVersion} -> ${info.latestVersion}`,
25036
- details: ["Run: cd ~/.config/opencode && bun update oh-my-opencode"]
25040
+ details: ["Run: cd ~/.config/opencode && bun update @reinamaccredy/maestro"]
25037
25041
  };
25038
25042
  }
25039
25043
  return {
@@ -25249,12 +25253,12 @@ async function doctor(options = {}) {
25249
25253
  // src/cli/index.ts
25250
25254
  var VERSION2 = package_default.version;
25251
25255
  var program2 = new Command;
25252
- program2.name("oh-my-opencode").description("The ultimate OpenCode plugin - multi-model orchestration, LSP tools, and more").version(VERSION2, "-v, --version", "Show version number");
25253
- program2.command("install").description("Install and configure oh-my-opencode with interactive setup").option("--no-tui", "Run in non-interactive mode (requires all options)").option("--claude <value>", "Claude subscription: no, yes, max20").option("--chatgpt <value>", "ChatGPT subscription: no, yes").option("--gemini <value>", "Gemini integration: no, yes").option("--copilot <value>", "GitHub Copilot subscription: no, yes").option("--skip-auth", "Skip authentication setup hints").addHelpText("after", `
25256
+ program2.name("maestro").description("The ultimate OpenCode plugin - multi-model orchestration, LSP tools, and more").version(VERSION2, "-v, --version", "Show version number");
25257
+ program2.command("install").description("Install and configure maestro with interactive setup").option("--no-tui", "Run in non-interactive mode (requires all options)").option("--claude <value>", "Claude subscription: no, yes, max20").option("--chatgpt <value>", "ChatGPT subscription: no, yes").option("--gemini <value>", "Gemini integration: no, yes").option("--copilot <value>", "GitHub Copilot subscription: no, yes").option("--skip-auth", "Skip authentication setup hints").addHelpText("after", `
25254
25258
  Examples:
25255
- $ bunx oh-my-opencode install
25256
- $ bunx oh-my-opencode install --no-tui --claude=max20 --chatgpt=yes --gemini=yes --copilot=no
25257
- $ bunx oh-my-opencode install --no-tui --claude=no --chatgpt=no --gemini=no --copilot=yes
25259
+ $ bunx maestro install
25260
+ $ bunx maestro install --no-tui --claude=max20 --chatgpt=yes --gemini=yes --copilot=no
25261
+ $ bunx maestro install --no-tui --claude=no --chatgpt=no --gemini=no --copilot=yes
25258
25262
 
25259
25263
  Model Providers:
25260
25264
  Claude Required for Maestro (main orchestrator) and Archivist agents
@@ -25274,9 +25278,9 @@ Model Providers:
25274
25278
  });
25275
25279
  program2.command("run <message>").description("Run opencode with todo/background task completion enforcement").option("-a, --agent <name>", "Agent to use (default: Maestro)").option("-d, --directory <path>", "Working directory").option("-t, --timeout <ms>", "Timeout in milliseconds (default: 30 minutes)", parseInt).addHelpText("after", `
25276
25280
  Examples:
25277
- $ bunx oh-my-opencode run "Fix the bug in index.ts"
25278
- $ bunx oh-my-opencode run --agent Maestro "Implement feature X"
25279
- $ bunx oh-my-opencode run --timeout 3600000 "Large refactoring task"
25281
+ $ bunx maestro run "Fix the bug in index.ts"
25282
+ $ bunx maestro run --agent Maestro "Implement feature X"
25283
+ $ bunx maestro run --timeout 3600000 "Large refactoring task"
25280
25284
 
25281
25285
  Unlike 'opencode run', this command waits until:
25282
25286
  - All todos are completed or cancelled
@@ -25293,9 +25297,9 @@ Unlike 'opencode run', this command waits until:
25293
25297
  });
25294
25298
  program2.command("get-local-version").description("Show current installed version and check for updates").option("-d, --directory <path>", "Working directory to check config from").option("--json", "Output in JSON format for scripting").addHelpText("after", `
25295
25299
  Examples:
25296
- $ bunx oh-my-opencode get-local-version
25297
- $ bunx oh-my-opencode get-local-version --json
25298
- $ bunx oh-my-opencode get-local-version --directory /path/to/project
25300
+ $ bunx maestro get-local-version
25301
+ $ bunx maestro get-local-version --json
25302
+ $ bunx maestro get-local-version --directory /path/to/project
25299
25303
 
25300
25304
  This command shows:
25301
25305
  - Current installed version
@@ -25310,12 +25314,12 @@ This command shows:
25310
25314
  const exitCode = await getLocalVersion(versionOptions);
25311
25315
  process.exit(exitCode);
25312
25316
  });
25313
- program2.command("doctor").description("Check oh-my-opencode installation health and diagnose issues").option("--verbose", "Show detailed diagnostic information").option("--json", "Output results in JSON format").option("--category <category>", "Run only specific category").addHelpText("after", `
25317
+ program2.command("doctor").description("Check maestro installation health and diagnose issues").option("--verbose", "Show detailed diagnostic information").option("--json", "Output results in JSON format").option("--category <category>", "Run only specific category").addHelpText("after", `
25314
25318
  Examples:
25315
- $ bunx oh-my-opencode doctor
25316
- $ bunx oh-my-opencode doctor --verbose
25317
- $ bunx oh-my-opencode doctor --json
25318
- $ bunx oh-my-opencode doctor --category authentication
25319
+ $ bunx maestro doctor
25320
+ $ bunx maestro doctor --verbose
25321
+ $ bunx maestro doctor --json
25322
+ $ bunx maestro doctor --category authentication
25319
25323
 
25320
25324
  Categories:
25321
25325
  installation Check OpenCode and plugin installation
@@ -25334,6 +25338,6 @@ Categories:
25334
25338
  process.exit(exitCode);
25335
25339
  });
25336
25340
  program2.command("version").description("Show version information").action(() => {
25337
- console.log(`oh-my-opencode v${VERSION2}`);
25341
+ console.log(`maestro v${VERSION2}`);
25338
25342
  });
25339
25343
  program2.parse();
@@ -1,4 +1,4 @@
1
- import type { BackgroundTaskConfig } from "../../config/schema";
1
+ import type { BackgroundTaskConfig } from "../../../config/schema";
2
2
  export declare class ConcurrencyManager {
3
3
  private config?;
4
4
  private counts;
@@ -1,6 +1,6 @@
1
1
  import type { PluginInput } from "@opencode-ai/plugin";
2
2
  import type { BackgroundTask, LaunchInput, ResumeInput } from "./types";
3
- import type { BackgroundTaskConfig } from "../../config/schema";
3
+ import type { BackgroundTaskConfig } from "../../../config/schema";
4
4
  interface EventProperties {
5
5
  sessionID?: string;
6
6
  info?: {
@@ -0,0 +1,2 @@
1
+ export * from "./agent";
2
+ export * from "./toast-manager";
@@ -1,6 +1,6 @@
1
1
  import type { PluginInput } from "@opencode-ai/plugin";
2
2
  import type { TrackedTask, TaskStatus, ModelFallbackInfo } from "./types";
3
- import type { ConcurrencyManager } from "../background-agent/concurrency";
3
+ import type { ConcurrencyManager } from "../agent/concurrency";
4
4
  type OpencodeClient = PluginInput["client"];
5
5
  export declare class TaskToastManager {
6
6
  private tasks;
@@ -1,4 +1,4 @@
1
- import type { CommandDefinition } from "../claude-code-command-loader";
1
+ import type { CommandDefinition } from "../loaders/command-loader";
2
2
  export type BuiltinCommandName = "init-deep" | "ralph-loop" | "cancel-ralph" | "refactor" | "start-work";
3
3
  export interface BuiltinCommandConfig {
4
4
  disabled_commands?: BuiltinCommandName[];
@@ -0,0 +1,4 @@
1
+ export * from "./agent-loader";
2
+ export * from "./command-loader";
3
+ export * from "./mcp-loader";
4
+ export * from "./plugin-loader";
@@ -1,6 +1,6 @@
1
1
  import type { AgentConfig } from "@opencode-ai/sdk";
2
- import type { CommandDefinition } from "../claude-code-command-loader/types";
3
- import type { McpServerConfig } from "../claude-code-mcp-loader/types";
2
+ import type { CommandDefinition } from "../command-loader/types";
3
+ import type { McpServerConfig } from "../mcp-loader/types";
4
4
  import type { LoadedPlugin, PluginLoadResult, PluginLoadError, HooksConfig, PluginLoaderOptions } from "./types";
5
5
  export declare function discoverInstalledPlugins(options?: PluginLoaderOptions): PluginLoadResult;
6
6
  export declare function loadPluginCommands(plugins: LoadedPlugin[]): Record<string, CommandDefinition>;
@@ -176,7 +176,7 @@ export interface ClaudeSettings {
176
176
  */
177
177
  export interface PluginLoaderOptions {
178
178
  /**
179
- * Override enabled plugins from oh-my-opencode config.
179
+ * Override enabled plugins from maestro config.
180
180
  * Key format: "pluginName@marketplace" (e.g., "shell-scripting@claude-code-workflows")
181
181
  * Value: true = enabled, false = disabled
182
182
  *
@@ -1,4 +1,4 @@
1
- import type { CommandDefinition } from "../claude-code-command-loader/types";
1
+ import type { CommandDefinition } from "../loaders/command-loader/types";
2
2
  import type { LoadedSkill } from "./types";
3
3
  export declare function loadUserSkills(): Promise<Record<string, CommandDefinition>>;
4
4
  export declare function loadProjectSkills(): Promise<Record<string, CommandDefinition>>;
@@ -1,4 +1,4 @@
1
- import type { CommandDefinition } from "../claude-code-command-loader/types";
1
+ import type { CommandDefinition } from "../loaders/command-loader/types";
2
2
  import type { SkillMcpConfig } from "../skill-mcp-manager/types";
3
3
  export type SkillScope = "builtin" | "config" | "user" | "project" | "opencode" | "opencode-project";
4
4
  export interface SkillMetadata {
@@ -1,6 +1,6 @@
1
1
  import { Client } from "@modelcontextprotocol/sdk/client/index.js";
2
2
  import type { Tool, Resource, Prompt } from "@modelcontextprotocol/sdk/types.js";
3
- import type { ClaudeCodeMcpServer } from "../claude-code-mcp-loader/types";
3
+ import type { ClaudeCodeMcpServer } from "../loaders/mcp-loader/types";
4
4
  import type { SkillMcpClientInfo, SkillMcpServerContext } from "./types";
5
5
  export declare class SkillMcpManager {
6
6
  private clients;
@@ -1,4 +1,4 @@
1
- import type { ClaudeCodeMcpServer } from "../claude-code-mcp-loader/types";
1
+ import type { ClaudeCodeMcpServer } from "../loaders/mcp-loader/types";
2
2
  export type SkillMcpConfig = Record<string, ClaudeCodeMcpServer>;
3
3
  export interface SkillMcpClientInfo {
4
4
  serverName: string;
@@ -0,0 +1,2 @@
1
+ export * from "./boulder-state";
2
+ export * from "./session-state";
@@ -0,0 +1,4 @@
1
+ export { createDirectoryAgentsInjectorHook } from "./directory-agents-injector";
2
+ export { createDirectoryReadmeInjectorHook } from "./directory-readme-injector";
3
+ export { createRulesInjectorHook } from "./rules-injector";
4
+ export { createCompactionContextInjector } from "./compaction-context-injector";
@@ -1,4 +1,4 @@
1
1
  import type { AutoCompactState } from "./types";
2
- import type { ExperimentalConfig } from "../../config";
2
+ import type { ExperimentalConfig } from "../../../config";
3
3
  export declare function getLastAssistant(sessionID: string, client: any, directory: string): Promise<Record<string, unknown> | null>;
4
4
  export declare function executeCompact(sessionID: string, msg: Record<string, unknown>, autoCompactState: AutoCompactState, client: any, directory: string, experimental?: ExperimentalConfig): Promise<void>;
@@ -1,5 +1,5 @@
1
1
  import type { PluginInput } from "@opencode-ai/plugin";
2
- import type { ExperimentalConfig } from "../../config";
2
+ import type { ExperimentalConfig } from "../../../config";
3
3
  export interface AnthropicContextWindowLimitRecoveryOptions {
4
4
  experimental?: ExperimentalConfig;
5
5
  }
@@ -1,3 +1,3 @@
1
- import type { DynamicContextPruningConfig } from "../../config";
1
+ import type { DynamicContextPruningConfig } from "../../../config";
2
2
  import type { PruningResult } from "./pruning-types";
3
3
  export declare function executeDynamicContextPruning(sessionID: string, config: DynamicContextPruningConfig, client: any): Promise<PruningResult>;
@@ -0,0 +1,3 @@
1
+ export { createEditErrorRecoveryHook } from "./edit-error-recovery";
2
+ export { createDelegateTaskRetryHook } from "./delegate-task-retry";
3
+ export { createAnthropicContextWindowLimitRecoveryHook, type AnthropicContextWindowLimitRecoveryOptions } from "./anthropic-context-window-limit-recovery";
@@ -1,31 +1,12 @@
1
1
  export { createTodoContinuationEnforcer, type TodoContinuationEnforcer } from "./todo-continuation-enforcer";
2
2
  export { createContextWindowMonitorHook } from "./context-window-monitor";
3
3
  export { createSessionNotification } from "./session-notification";
4
- export { createSessionRecoveryHook, type SessionRecoveryHook, type SessionRecoveryOptions } from "./session-recovery";
5
- export { createCommentCheckerHooks } from "./comment-checker";
6
4
  export { createToolOutputTruncatorHook } from "./tool-output-truncator";
7
- export { createDirectoryAgentsInjectorHook } from "./directory-agents-injector";
8
- export { createDirectoryReadmeInjectorHook } from "./directory-readme-injector";
9
5
  export { createEmptyTaskResponseDetectorHook } from "./empty-task-response-detector";
10
- export { createAnthropicContextWindowLimitRecoveryHook, type AnthropicContextWindowLimitRecoveryOptions } from "./anthropic-context-window-limit-recovery";
11
- export { createCompactionContextInjector } from "./compaction-context-injector";
12
- export { createThinkModeHook } from "./think-mode";
13
6
  export { createClaudeCodeHooksHook } from "./claude-code-hooks";
14
- export { createRulesInjectorHook } from "./rules-injector";
15
- export { createBackgroundNotificationHook } from "./background-notification";
16
- export { createBackgroundCompactionHook } from "./background-compaction";
17
- export { createAutoUpdateCheckerHook } from "./auto-update-checker";
18
- export { createAgentUsageReminderHook } from "./agent-usage-reminder";
19
- export { createKeywordDetectorHook } from "./keyword-detector";
20
- export { createNonInteractiveEnvHook } from "./non-interactive-env";
21
- export { createInteractiveBashSessionHook } from "./interactive-bash-session";
22
- export { createEmptyMessageSanitizerHook } from "./empty-message-sanitizer";
23
- export { createThinkingBlockValidatorHook } from "./thinking-block-validator";
24
- export { createRalphLoopHook, type RalphLoopHook } from "./ralph-loop";
25
- export { createAutoSlashCommandHook } from "./auto-slash-command";
26
- export { createEditErrorRecoveryHook } from "./edit-error-recovery";
27
- export { createComposerMdOnlyHook } from "./composer-md-only";
28
- export { createTaskResumeInfoHook } from "./task-resume-info";
29
- export { createStartWorkHook } from "./start-work";
30
- export { createMaestroOrchestratorHook } from "./maestro-orchestrator";
31
- export { createDelegateTaskRetryHook } from "./delegate-task-retry";
7
+ export * from "./lifecycle";
8
+ export * from "./input";
9
+ export * from "./tool-intercept";
10
+ export * from "./error-recovery";
11
+ export * from "./context";
12
+ export * from "./system";
@@ -1,4 +1,4 @@
1
- import { type LoadedSkill } from "../../features/opencode-skill-loader";
1
+ import { type LoadedSkill } from "../../../features/opencode-skill-loader";
2
2
  import type { ParsedSlashCommand } from "./types";
3
3
  export interface ExecutorOptions {
4
4
  skills?: LoadedSkill[];
@@ -1,5 +1,5 @@
1
1
  import type { AutoSlashCommandHookInput, AutoSlashCommandHookOutput } from "./types";
2
- import type { LoadedSkill } from "../../features/opencode-skill-loader";
2
+ import type { LoadedSkill } from "../../../features/opencode-skill-loader";
3
3
  export * from "./detector";
4
4
  export * from "./executor";
5
5
  export * from "./constants";
@@ -0,0 +1,3 @@
1
+ export { createKeywordDetectorHook } from "./keyword-detector";
2
+ export { createAutoSlashCommandHook } from "./auto-slash-command";
3
+ export { createEmptyMessageSanitizerHook } from "./empty-message-sanitizer";
@@ -1,5 +1,5 @@
1
1
  import type { PluginInput } from "@opencode-ai/plugin";
2
- import type { ContextCollector } from "../../features/context-injector";
2
+ import type { ContextCollector } from "../../../features/context-injector";
3
3
  export * from "./detector";
4
4
  export * from "./constants";
5
5
  export * from "./types";
@@ -1,5 +1,5 @@
1
- export declare const PACKAGE_NAME = "oh-my-opencode";
2
- export declare const NPM_REGISTRY_URL = "https://registry.npmjs.org/-/package/oh-my-opencode/dist-tags";
1
+ export declare const PACKAGE_NAME = "maestro";
2
+ export declare const NPM_REGISTRY_URL = "https://registry.npmjs.org/-/package/maestro/dist-tags";
3
3
  export declare const NPM_FETCH_TIMEOUT = 5000;
4
4
  export declare const CACHE_DIR: string;
5
5
  export declare const VERSION_FILE: string;
@@ -0,0 +1,3 @@
1
+ export { createStartWorkHook } from "./start-work";
2
+ export { createSessionRecoveryHook, type SessionRecoveryHook, type SessionRecoveryOptions } from "./session-recovery";
3
+ export { createAutoUpdateCheckerHook } from "./auto-update-checker";
@@ -1,5 +1,5 @@
1
1
  import type { PluginInput } from "@opencode-ai/plugin";
2
- import type { ExperimentalConfig } from "../../config";
2
+ import type { ExperimentalConfig } from "../../../config";
3
3
  export interface SessionRecoveryOptions {
4
4
  experimental?: ExperimentalConfig;
5
5
  }
@@ -1,4 +1,4 @@
1
- import type { BackgroundManager } from "../../features/background-agent";
1
+ import type { BackgroundManager } from "../../../features/background/agent";
2
2
  interface CompactingInput {
3
3
  sessionID: string;
4
4
  }
@@ -1,4 +1,4 @@
1
- import type { BackgroundManager } from "../../features/background-agent";
1
+ import type { BackgroundManager } from "../../../features/background/agent";
2
2
  interface Event {
3
3
  type: string;
4
4
  properties?: Record<string, unknown>;
@@ -1,4 +1,4 @@
1
- import type { BackgroundTask } from "../../features/background-agent";
1
+ import type { BackgroundTask } from "../../../features/background/agent";
2
2
  export interface BackgroundNotificationHookConfig {
3
3
  formatNotification?: (tasks: BackgroundTask[]) => string;
4
4
  }
@@ -0,0 +1,8 @@
1
+ export { createMaestroOrchestratorHook } from "./maestro-orchestrator";
2
+ export { createBackgroundCompactionHook } from "./background-compaction";
3
+ export { createBackgroundNotificationHook } from "./background-notification";
4
+ export { createNonInteractiveEnvHook } from "./non-interactive-env";
5
+ export { createInteractiveBashSessionHook } from "./interactive-bash-session";
6
+ export { createRalphLoopHook, type RalphLoopHook } from "./ralph-loop";
7
+ export { createTaskResumeInfoHook } from "./task-resume-info";
8
+ export { createAgentUsageReminderHook } from "./agent-usage-reminder";
@@ -1,5 +1,5 @@
1
1
  import type { PluginInput } from "@opencode-ai/plugin";
2
- import type { BackgroundManager } from "../../features/background-agent";
2
+ import type { BackgroundManager } from "../../../features/background/agent";
3
3
  export declare const HOOK_NAME = "maestro-orchestrator";
4
4
  interface ToolExecuteAfterInput {
5
5
  tool: string;
@@ -1,4 +1,4 @@
1
- import type { RalphLoopConfig } from "../../config";
1
+ import type { RalphLoopConfig } from "../../../config";
2
2
  export interface RalphLoopState {
3
3
  active: boolean;
4
4
  iteration: number;
@@ -1,5 +1,5 @@
1
1
  import type { PluginInput } from "@opencode-ai/plugin";
2
- import type { BackgroundManager } from "../features/background-agent";
2
+ import type { BackgroundManager } from "../features/background/agent";
3
3
  export interface TodoContinuationEnforcerOptions {
4
4
  backgroundManager?: BackgroundManager;
5
5
  skipAgents?: string[];
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Get the cache directory for oh-my-opencode binaries.
2
+ * Get the cache directory for maestro binaries.
3
3
  * On Windows: Uses %LOCALAPPDATA% or %APPDATA% (Windows conventions)
4
4
  * On Unix: Follows XDG Base Directory Specification
5
5
  */