oh-my-opencode 5.0.0-beta.13 → 5.0.0-beta.14

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 (116) hide show
  1. package/README.ja.md +25 -21
  2. package/README.ko.md +25 -21
  3. package/README.md +26 -22
  4. package/README.ru.md +24 -20
  5. package/README.zh-cn.md +25 -21
  6. package/dist/cli/index.js +12628 -13558
  7. package/dist/cli-node/index.js +12628 -13558
  8. package/dist/features/btw-side/tui-controller-types.d.ts +5 -0
  9. package/dist/features/btw-side/tui-controller.d.ts +8 -3
  10. package/dist/features/btw-side/tui-escape-return.d.ts +12 -0
  11. package/dist/features/btw-side/tui-keymap.d.ts +8 -1
  12. package/dist/features/btw-side/tui-picker-options.d.ts +20 -0
  13. package/dist/features/btw-side/tui-picker.d.ts +9 -0
  14. package/dist/features/btw-side/tui-session-catalog.d.ts +35 -0
  15. package/dist/features/btw-side/tui-side-start.d.ts +1 -1
  16. package/dist/features/opengateway-provider/index.d.ts +13 -0
  17. package/dist/index.js +8462 -6318
  18. package/dist/skills/frontend/SKILL.md +1 -0
  19. package/dist/skills/frontend/references/design/print-paged-media.md +76 -0
  20. package/dist/skills/ulw-research/SKILL.md +1 -1
  21. package/dist/skills/visual-qa/SKILL.md +3 -2
  22. package/dist/tui.js +3993 -5513
  23. package/package.json +22 -22
  24. package/packages/git-bash-mcp/package.json +1 -1
  25. package/packages/lsp-daemon/dist/cli.js +81 -113
  26. package/packages/lsp-daemon/dist/client.js +82 -117
  27. package/packages/lsp-daemon/dist/ensure-daemon.js +1 -0
  28. package/packages/lsp-daemon/dist/index.js +88 -122
  29. package/packages/lsp-daemon/dist/version-reap.js +1 -1
  30. package/packages/lsp-tools-mcp/dist/cli.js +62 -93
  31. package/packages/lsp-tools-mcp/dist/lsp/manager.js +62 -92
  32. package/packages/lsp-tools-mcp/dist/mcp.js +64 -95
  33. package/packages/lsp-tools-mcp/dist/request-context.js +11 -12
  34. package/packages/lsp-tools-mcp/dist/tools.js +73 -104
  35. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  36. package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +30 -29
  37. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  38. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  39. package/packages/omo-codex/plugin/components/bootstrap/src/hook.ts +1 -0
  40. package/packages/omo-codex/plugin/components/codegraph/dist/cli.js +81 -64
  41. package/packages/omo-codex/plugin/components/codegraph/dist/serve.js +81 -65
  42. package/packages/omo-codex/plugin/components/codegraph/package.json +4 -4
  43. package/packages/omo-codex/plugin/components/codegraph/src/mcp-bridge.ts +1 -0
  44. package/packages/omo-codex/plugin/components/codegraph/src/session-start-hook-runtime.ts +1 -0
  45. package/packages/omo-codex/plugin/components/comment-checker/dist/cli.js +2 -1
  46. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  47. package/packages/omo-codex/plugin/components/comment-checker/package.json +5 -5
  48. package/packages/omo-codex/plugin/components/comment-checker/src/runner.ts +1 -0
  49. package/packages/omo-codex/plugin/components/git-bash/AGENTS.md +1 -1
  50. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  51. package/packages/omo-codex/plugin/components/git-bash/package.json +3 -4
  52. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  53. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +5 -5
  54. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +3 -3
  55. package/packages/omo-codex/plugin/components/lsp/dist/cli.js +70 -107
  56. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  57. package/packages/omo-codex/plugin/components/lsp/package.json +5 -5
  58. package/packages/omo-codex/plugin/components/lsp/src/cli.ts +1 -1
  59. package/packages/omo-codex/plugin/components/rules/dist/cli.js +14 -12
  60. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  61. package/packages/omo-codex/plugin/components/rules/package.json +7 -7
  62. package/packages/omo-codex/plugin/components/start-work-continuation/hooks/hooks.json +2 -2
  63. package/packages/omo-codex/plugin/components/start-work-continuation/package.json +5 -5
  64. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  65. package/packages/omo-codex/plugin/components/teammode/package.json +5 -5
  66. package/packages/omo-codex/plugin/components/telemetry/dist/cli.js +25 -25
  67. package/packages/omo-codex/plugin/components/telemetry/dist/posthog.js +31 -31
  68. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  69. package/packages/omo-codex/plugin/components/telemetry/package.json +5 -5
  70. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  71. package/packages/omo-codex/plugin/components/ultrawork/package.json +5 -5
  72. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.js +1 -3
  73. package/packages/omo-codex/plugin/components/ulw-loop/dist/paths.js +1 -1
  74. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +4 -4
  75. package/packages/omo-codex/plugin/components/ulw-loop/package.json +5 -5
  76. package/packages/omo-codex/plugin/components/ulw-loop/src/paths.ts +1 -1
  77. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-create-goals.test.ts +25 -0
  78. package/packages/omo-codex/plugin/components/ulw-loop/test/paths.test.ts +9 -0
  79. package/packages/omo-codex/plugin/components/ulw-loop/vitest.config.ts +1 -0
  80. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  81. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  82. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  83. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-codegraph-init-guidance.json +1 -1
  84. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  85. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  86. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  87. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  88. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  89. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  90. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  91. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  92. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  93. package/packages/omo-codex/plugin/hooks/session-start-checking-codegraph-bootstrap.json +1 -1
  94. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  95. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  96. package/packages/omo-codex/plugin/hooks/stop-checking-start-work-continuation.json +1 -1
  97. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  98. package/packages/omo-codex/plugin/hooks/subagent-stop-checking-start-work-continuation.json +1 -1
  99. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  100. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  101. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  102. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  103. package/packages/omo-codex/plugin/package-lock.json +661 -375
  104. package/packages/omo-codex/plugin/package.json +1 -1
  105. package/packages/omo-codex/plugin/shared/package.json +2 -3
  106. package/packages/omo-codex/plugin/skills/frontend/SKILL.md +1 -0
  107. package/packages/omo-codex/plugin/skills/frontend/references/design/print-paged-media.md +76 -0
  108. package/packages/omo-codex/plugin/skills/ulw-research/SKILL.md +1 -1
  109. package/packages/omo-codex/plugin/skills/visual-qa/SKILL.md +3 -2
  110. package/packages/omo-codex/scripts/install-dist/install-local.mjs +53 -53
  111. package/packages/shared-skills/skills/frontend/SKILL.md +1 -0
  112. package/packages/shared-skills/skills/frontend/references/design/print-paged-media.md +76 -0
  113. package/packages/shared-skills/skills/ulw-research/SKILL.md +1 -1
  114. package/packages/shared-skills/skills/visual-qa/SKILL.md +3 -2
  115. package/script/qa/web-terminal-visual-qa.mjs +2 -0
  116. package/script/qa/xterm-live-terminal.mjs +18 -2
@@ -9,18 +9,17 @@ import { homedir } from "node:os";
9
9
  import { basename, delimiter, dirname, isAbsolute, join, relative, resolve } from "node:path";
10
10
 
11
11
  class LspRequestContextParseError extends Error {
12
- code;
13
- name = "LspRequestContextParseError";
14
12
  constructor(code, message) {
15
13
  super(message);
16
14
  this.code = code;
15
+ this.name = "LspRequestContextParseError";
17
16
  }
18
17
  }
19
18
 
20
19
  class LspRequestContextUnavailableError extends Error {
21
- name = "LspRequestContextUnavailableError";
22
20
  constructor() {
23
21
  super("LSP request context is required. Standalone MCP startup must install one with runWithRequestContext(createStandaloneMcpRequestContext()).");
22
+ this.name = "LspRequestContextUnavailableError";
24
23
  }
25
24
  }
26
25
  var storage = new AsyncLocalStorage;
@@ -193,22 +192,15 @@ function effectiveExtension(filePath) {
193
192
 
194
193
  // ../lsp-core/src/lsp/errors.ts
195
194
  class LspConnectionClosedError extends Error {
196
- serverId;
197
- root;
198
- name = "LspConnectionClosedError";
199
195
  constructor(serverId, root, message) {
200
196
  super(message ?? `LSP connection closed for ${serverId} at ${root}`);
201
197
  this.serverId = serverId;
202
198
  this.root = root;
199
+ this.name = "LspConnectionClosedError";
203
200
  }
204
201
  }
205
202
 
206
203
  class LspProcessExitedError extends Error {
207
- serverId;
208
- root;
209
- exitCode;
210
- stderrTail;
211
- name = "LspProcessExitedError";
212
204
  constructor(serverId, root, exitCode, stderrTail) {
213
205
  const stderrSuffix = stderrTail ? `
214
206
  stderr tail: ${stderrTail}` : "";
@@ -217,46 +209,49 @@ stderr tail: ${stderrTail}` : "";
217
209
  this.root = root;
218
210
  this.exitCode = exitCode;
219
211
  this.stderrTail = stderrTail;
212
+ this.name = "LspProcessExitedError";
220
213
  }
221
214
  }
222
215
 
223
216
  class LspRequestTimeoutError extends Error {
224
- method;
225
- stderrTail;
226
- name = "LspRequestTimeoutError";
227
217
  constructor(method, stderrTail) {
228
218
  const stderrSuffix = stderrTail ? `
229
219
  recent stderr: ${stderrTail}` : "";
230
220
  super(`LSP request timeout (method: ${method})${stderrSuffix}`);
231
221
  this.method = method;
232
222
  this.stderrTail = stderrTail;
223
+ this.name = "LspRequestTimeoutError";
233
224
  }
234
225
  }
235
226
 
236
227
  class LspInvalidPathError extends Error {
237
- name = "LspInvalidPathError";
228
+ constructor() {
229
+ super(...arguments);
230
+ this.name = "LspInvalidPathError";
231
+ }
238
232
  }
239
233
 
240
234
  class LspServerLookupError extends Error {
241
- lookup;
242
- name = "LspServerLookupError";
243
235
  constructor(message, lookup) {
244
236
  super(message);
245
237
  this.lookup = lookup;
238
+ this.name = "LspServerLookupError";
246
239
  }
247
240
  }
248
241
 
249
242
  class LspServerInitializingError extends Error {
250
- originalError;
251
- name = "LspServerInitializingError";
252
243
  constructor(originalError) {
253
244
  super(`LSP server is still initializing. Please retry in a few seconds. Original error: ${originalError.message}`);
254
245
  this.originalError = originalError;
246
+ this.name = "LspServerInitializingError";
255
247
  }
256
248
  }
257
249
 
258
250
  class LspProcessSpawnError extends Error {
259
- name = "LspProcessSpawnError";
251
+ constructor() {
252
+ super(...arguments);
253
+ this.name = "LspProcessSpawnError";
254
+ }
260
255
  }
261
256
  function isLspDeadConnectionError(err) {
262
257
  return err instanceof LspConnectionClosedError || err instanceof LspProcessExitedError;
@@ -301,20 +296,31 @@ var METHOD_NOT_FOUND = -32601;
301
296
  var INTERNAL_ERROR = -32603;
302
297
 
303
298
  class JsonRpcConnection {
304
- reader;
305
- writer;
306
- pendingRequests = new Map;
307
- notificationHandlers = new Map;
308
- requestHandlers = new Map;
309
- closeHandlers = [];
310
- errorHandlers = [];
311
- inputBuffer = Buffer.alloc(0);
312
- nextRequestId = 1;
313
- listening = false;
314
- disposed = false;
315
299
  constructor(reader, writer) {
316
300
  this.reader = reader;
317
301
  this.writer = writer;
302
+ this.pendingRequests = new Map;
303
+ this.notificationHandlers = new Map;
304
+ this.requestHandlers = new Map;
305
+ this.closeHandlers = [];
306
+ this.errorHandlers = [];
307
+ this.inputBuffer = Buffer.alloc(0);
308
+ this.nextRequestId = 1;
309
+ this.listening = false;
310
+ this.disposed = false;
311
+ this.handleData = (chunk) => {
312
+ const chunkBuffer = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk, "utf8");
313
+ this.inputBuffer = Buffer.concat([this.inputBuffer, chunkBuffer]);
314
+ this.drainInputBuffer();
315
+ };
316
+ this.handleClose = () => {
317
+ for (const handler of this.closeHandlers) {
318
+ handler();
319
+ }
320
+ };
321
+ this.handleStreamError = (error) => {
322
+ this.emitError(error);
323
+ };
318
324
  }
319
325
  listen() {
320
326
  if (this.listening)
@@ -435,19 +441,6 @@ class JsonRpcConnection {
435
441
  this.notificationHandlers.clear();
436
442
  this.requestHandlers.clear();
437
443
  }
438
- handleData = (chunk) => {
439
- const chunkBuffer = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk, "utf8");
440
- this.inputBuffer = Buffer.concat([this.inputBuffer, chunkBuffer]);
441
- this.drainInputBuffer();
442
- };
443
- handleClose = () => {
444
- for (const handler of this.closeHandlers) {
445
- handler();
446
- }
447
- };
448
- handleStreamError = (error) => {
449
- this.emitError(error);
450
- };
451
444
  drainInputBuffer() {
452
445
  while (true) {
453
446
  const headerEnd = this.inputBuffer.indexOf(HEADER_SEPARATOR);
@@ -795,31 +788,25 @@ function isPosition(value) {
795
788
 
796
789
  // ../lsp-core/src/lsp/transport.ts
797
790
  class LspClientNotStartedError extends Error {
798
- serverId;
799
- root;
800
- name = "LspClientNotStartedError";
801
791
  constructor(serverId, root) {
802
792
  super("LSP client not started");
803
793
  this.serverId = serverId;
804
794
  this.root = root;
795
+ this.name = "LspClientNotStartedError";
805
796
  }
806
797
  }
807
798
 
808
799
  class LspClientTransport {
809
- root;
810
- server;
811
- proc = null;
812
- connection = null;
813
- stderrBuffer = [];
814
- processExited = false;
815
- diagnosticsStore = new Map;
816
- requestTimeoutMs;
817
- initializeTimeoutMs;
818
- workspaceApplyEditHandler = null;
819
- diagnosticPullSupported = false;
820
800
  constructor(root, server, timeouts = {}) {
821
801
  this.root = root;
822
802
  this.server = server;
803
+ this.proc = null;
804
+ this.connection = null;
805
+ this.stderrBuffer = [];
806
+ this.processExited = false;
807
+ this.diagnosticsStore = new Map;
808
+ this.workspaceApplyEditHandler = null;
809
+ this.diagnosticPullSupported = false;
823
810
  this.requestTimeoutMs = timeouts.requestTimeoutMs ?? REQUEST_TIMEOUT_MS;
824
811
  this.initializeTimeoutMs = timeouts.initializeTimeoutMs ?? INIT_TIMEOUT_MS;
825
812
  }
@@ -1316,16 +1303,12 @@ function movedPath(candidate, oldPath, newPath) {
1316
1303
  }
1317
1304
 
1318
1305
  class WorkspaceDocumentState {
1319
- sendNotification;
1320
- clearDiagnostics;
1321
- openDocuments = new Map;
1322
- openByUri = new Map;
1323
- openPromises = new Map;
1324
- now;
1325
- versionlessPublishQuiescenceMs;
1326
1306
  constructor(sendNotification, clearDiagnostics, options = {}) {
1327
1307
  this.sendNotification = sendNotification;
1328
1308
  this.clearDiagnostics = clearDiagnostics;
1309
+ this.openDocuments = new Map;
1310
+ this.openByUri = new Map;
1311
+ this.openPromises = new Map;
1329
1312
  this.now = options.now ?? (() => Date.now());
1330
1313
  this.versionlessPublishQuiescenceMs = options.versionlessPublishQuiescenceMs ?? DEFAULT_VERSIONLESS_PUBLISH_QUIESCENCE_MS;
1331
1314
  }
@@ -1589,13 +1572,11 @@ import { dirname as dirname2, isAbsolute as isAbsolute2, relative as relative3,
1589
1572
  import { fileURLToPath } from "node:url";
1590
1573
 
1591
1574
  class WorkspaceEditPathError extends Error {
1592
- path;
1593
- detail;
1594
- name = "WorkspaceEditPathError";
1595
1575
  constructor(path, detail) {
1596
1576
  super(`${detail}: ${path}`);
1597
1577
  this.path = path;
1598
1578
  this.detail = detail;
1579
+ this.name = "WorkspaceEditPathError";
1599
1580
  }
1600
1581
  }
1601
1582
  function isPathInsideWorkspace(filePath, workspaceRoot) {
@@ -1887,13 +1868,11 @@ function canonicalFingerprint(operations) {
1887
1868
 
1888
1869
  // ../lsp-core/src/lsp/workspace-edit-types.ts
1889
1870
  class WorkspaceEditValidationError extends Error {
1890
- changeIndex;
1891
- detail;
1892
- name = "WorkspaceEditValidationError";
1893
1871
  constructor(changeIndex, detail) {
1894
1872
  super(`change ${changeIndex}: ${detail}`);
1895
1873
  this.changeIndex = changeIndex;
1896
1874
  this.detail = detail;
1875
+ this.name = "WorkspaceEditValidationError";
1897
1876
  }
1898
1877
  }
1899
1878
 
@@ -2391,10 +2370,9 @@ function simulateDelete(operation, virtual) {
2391
2370
  import { existsSync as existsSync5, lstatSync as lstatSync3, readdirSync as readdirSync2 } from "node:fs";
2392
2371
  import { dirname as dirname4, resolve as resolve5 } from "node:path";
2393
2372
  class WorkspaceSnapshotBuilder {
2394
- workspaceRoot;
2395
- snapshots = new Map;
2396
2373
  constructor(workspaceRoot) {
2397
2374
  this.workspaceRoot = workspaceRoot;
2375
+ this.snapshots = new Map;
2398
2376
  }
2399
2377
  build(operations) {
2400
2378
  this.add(this.workspaceRoot, false);
@@ -2438,8 +2416,10 @@ function snapshotOperations(operations, workspaceRoot) {
2438
2416
 
2439
2417
  // ../lsp-core/src/lsp/workspace-edit-plan.ts
2440
2418
  class PlanPathIndex {
2441
- firstChangeByPath = new Map;
2442
- reportedPathByCanonical = new Map;
2419
+ constructor() {
2420
+ this.firstChangeByPath = new Map;
2421
+ this.reportedPathByCanonical = new Map;
2422
+ }
2443
2423
  build(operations) {
2444
2424
  for (const operation of operations) {
2445
2425
  switch (operation.kind) {
@@ -2528,14 +2508,11 @@ function isRecord4(value) {
2528
2508
  }
2529
2509
 
2530
2510
  class WorkspaceMutationController {
2531
- workspaceRoot;
2532
- documents;
2533
- activeLease = null;
2534
- nextLeaseId = 1;
2535
- io;
2536
2511
  constructor(workspaceRoot, documents) {
2537
2512
  this.workspaceRoot = workspaceRoot;
2538
2513
  this.documents = documents;
2514
+ this.activeLease = null;
2515
+ this.nextLeaseId = 1;
2539
2516
  }
2540
2517
  setIo(io) {
2541
2518
  this.io = io;
@@ -2648,12 +2625,9 @@ var DIAGNOSTICS_FRESHNESS_TIMEOUT_MS = 3000;
2648
2625
  var VERSIONLESS_PUBLISH_QUIESCENCE_MS = 250;
2649
2626
 
2650
2627
  class LspClient extends LspClientConnection {
2651
- diagnosticPullErrors = [];
2652
- documents;
2653
- workspaceMutations;
2654
- diagnosticsFreshnessTimeoutMs;
2655
2628
  constructor(root, server, options = {}) {
2656
2629
  super(root, server, options);
2630
+ this.diagnosticPullErrors = [];
2657
2631
  this.diagnosticsFreshnessTimeoutMs = options.diagnosticsFreshnessTimeoutMs ?? DIAGNOSTICS_FRESHNESS_TIMEOUT_MS;
2658
2632
  this.documents = new WorkspaceDocumentState((method, params) => this.sendNotification(method, params), (uri) => this.diagnosticsStore.delete(uri), {
2659
2633
  versionlessPublishQuiescenceMs: options.versionlessPublishQuiescenceMs ?? VERSIONLESS_PUBLISH_QUIESCENCE_MS
@@ -2953,16 +2927,11 @@ function awaitWithSignal(promise, signal) {
2953
2927
  }
2954
2928
 
2955
2929
  class LspManager {
2956
- clients = new Map;
2957
- reaperHandle = null;
2958
- signalDisposer = null;
2959
- disposed = false;
2960
- idleTimeoutMs;
2961
- initTimeoutMs;
2962
- reaperIntervalMs;
2963
- clientFactory;
2964
- now;
2965
2930
  constructor(options = {}) {
2931
+ this.clients = new Map;
2932
+ this.reaperHandle = null;
2933
+ this.signalDisposer = null;
2934
+ this.disposed = false;
2966
2935
  this.idleTimeoutMs = options.idleTimeoutMs ?? IDLE_TIMEOUT_MS;
2967
2936
  this.initTimeoutMs = options.initTimeoutMs ?? INIT_TIMEOUT_MS;
2968
2937
  this.reaperIntervalMs = options.reaperIntervalMs ?? REAPER_INTERVAL_MS;
@@ -4830,16 +4799,16 @@ function coerceToolArguments(value) {
4830
4799
  return isRecord7(value) ? value : {};
4831
4800
  }
4832
4801
  export {
4833
- isRecord7 as isRecord,
4834
- executeLspTool,
4835
- executeLspSymbols,
4836
- executeLspStatus,
4837
- executeLspRename,
4838
- executeLspPrepareRename,
4839
- executeLspInstallDecision,
4840
- executeLspGotoDefinition,
4841
- executeLspFindReferences,
4842
- executeLspDiagnostics,
4802
+ LSP_MCP_TOOLS,
4843
4803
  coerceToolArguments,
4844
- LSP_MCP_TOOLS
4804
+ executeLspDiagnostics,
4805
+ executeLspFindReferences,
4806
+ executeLspGotoDefinition,
4807
+ executeLspInstallDecision,
4808
+ executeLspPrepareRename,
4809
+ executeLspRename,
4810
+ executeLspStatus,
4811
+ executeLspSymbols,
4812
+ executeLspTool,
4813
+ isRecord7 as isRecord
4845
4814
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omo",
3
- "version": "5.0.0-beta.13",
3
+ "version": "5.0.0-beta.14",
4
4
  "description": "One Codex plugin namespace for Yeongyu's local Codex components.",
5
5
  "author": {
6
6
  "name": "Yeongyu Kim",
@@ -4116,7 +4116,8 @@ function spawnDetachedWorker(invocation) {
4116
4116
  const child = spawn(invocation.command, [...invocation.args], {
4117
4117
  detached: true,
4118
4118
  env: invocation.env,
4119
- stdio: "ignore"
4119
+ stdio: "ignore",
4120
+ windowsHide: true
4120
4121
  });
4121
4122
  child.unref();
4122
4123
  }
@@ -4222,33 +4223,33 @@ if (isProcessEntry()) {
4222
4223
  });
4223
4224
  }
4224
4225
  export {
4225
- sgProvisionDestination,
4226
- runWorkerSetup,
4227
- runSgProvision,
4228
- runSessionStartHook,
4229
- runBootstrapWorker,
4230
- resolvePluginDataRoot,
4231
- resolveCodexHome,
4232
- resolveBootstrapStatePath,
4233
- resolveBootstrapLockPath,
4234
- readPluginVersion,
4235
- readBootstrapState,
4236
- parseWorkerFlags,
4237
- parseBootstrapState,
4238
- executeSessionStartHook,
4239
- detectInstallFlowFromEnvironment,
4240
- detectInstallFlowForTest,
4241
- detectInstallFlowDetailed,
4242
- detectInstallFlow,
4243
- defaultWorkerSteps,
4244
- bootstrapLocks,
4245
- appendBootstrapLog,
4246
- SG_PROVISION_COMPONENT,
4247
- SG_FORCE_PROVISION_ENV_KEY,
4248
- SETUP_PLUGIN_NAME,
4249
- SETUP_MARKETPLACE_NAME,
4250
- INSTALL_SNAPSHOT_FILENAME,
4251
- GIT_BASH_INSTALL_HINT,
4226
+ BOOTSTRAP_DOCTOR_HINT,
4252
4227
  BOOTSTRAP_RESTART_NOTICE,
4253
- BOOTSTRAP_DOCTOR_HINT
4228
+ GIT_BASH_INSTALL_HINT,
4229
+ INSTALL_SNAPSHOT_FILENAME,
4230
+ SETUP_MARKETPLACE_NAME,
4231
+ SETUP_PLUGIN_NAME,
4232
+ SG_FORCE_PROVISION_ENV_KEY,
4233
+ SG_PROVISION_COMPONENT,
4234
+ appendBootstrapLog,
4235
+ bootstrapLocks,
4236
+ defaultWorkerSteps,
4237
+ detectInstallFlow,
4238
+ detectInstallFlowDetailed,
4239
+ detectInstallFlowForTest,
4240
+ detectInstallFlowFromEnvironment,
4241
+ executeSessionStartHook,
4242
+ parseBootstrapState,
4243
+ parseWorkerFlags,
4244
+ readBootstrapState,
4245
+ readPluginVersion,
4246
+ resolveBootstrapLockPath,
4247
+ resolveBootstrapStatePath,
4248
+ resolveCodexHome,
4249
+ resolvePluginDataRoot,
4250
+ runBootstrapWorker,
4251
+ runSessionStartHook,
4252
+ runSgProvision,
4253
+ runWorkerSetup,
4254
+ sgProvisionDestination
4254
4255
  };
@@ -8,7 +8,7 @@
8
8
  "command": "node \"${PLUGIN_ROOT}/components/bootstrap/dist/cli.js\" hook session-start",
9
9
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\bootstrap.ps1\"",
10
10
  "timeout": 30,
11
- "statusMessage": "(OmO 5.0.0-beta.13) Checking Bootstrap Provisioning"
11
+ "statusMessage": "(OmO 5.0.0-beta.14) Checking Bootstrap Provisioning"
12
12
  }
13
13
  ]
14
14
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sisyphuslabs/codex-bootstrap",
3
- "version": "5.0.0-beta.13",
3
+ "version": "5.0.0-beta.14",
4
4
  "description": "Codex SessionStart bootstrap component that provisions LazyCodex runtime dependencies from a detached worker.",
5
5
  "type": "module",
6
6
  "private": true,
@@ -81,6 +81,7 @@ function spawnDetachedWorker(invocation: WorkerSpawnInvocation): void {
81
81
  detached: true,
82
82
  env: invocation.env,
83
83
  stdio: "ignore",
84
+ windowsHide: true,
84
85
  });
85
86
  child.unref();
86
87
  }
@@ -483,69 +483,69 @@ function config(newConfig) {
483
483
  // ../../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/core/util.js
484
484
  var exports_util = {};
485
485
  __export(exports_util, {
486
- unwrapMessage: () => unwrapMessage,
487
- uint8ArrayToHex: () => uint8ArrayToHex,
488
- uint8ArrayToBase64url: () => uint8ArrayToBase64url,
489
- uint8ArrayToBase64: () => uint8ArrayToBase64,
490
- stringifyPrimitive: () => stringifyPrimitive,
491
- slugify: () => slugify,
492
- shallowClone: () => shallowClone,
493
- safeExtend: () => safeExtend,
494
- required: () => required,
495
- randomString: () => randomString,
496
- propertyKeyTypes: () => propertyKeyTypes,
497
- promiseAllObject: () => promiseAllObject,
498
- primitiveTypes: () => primitiveTypes,
499
- prefixIssues: () => prefixIssues,
500
- pick: () => pick,
501
- partial: () => partial,
502
- parsedType: () => parsedType,
503
- optionalKeys: () => optionalKeys,
504
- omit: () => omit,
505
- objectClone: () => objectClone,
506
- numKeys: () => numKeys,
507
- nullish: () => nullish,
508
- normalizeParams: () => normalizeParams,
509
- mergeDefs: () => mergeDefs,
510
- merge: () => merge,
511
- jsonStringifyReplacer: () => jsonStringifyReplacer,
512
- joinValues: () => joinValues,
513
- issue: () => issue,
514
- isPlainObject: () => isPlainObject,
515
- isObject: () => isObject,
516
- hexToUint8Array: () => hexToUint8Array,
517
- getSizableOrigin: () => getSizableOrigin,
518
- getParsedType: () => getParsedType,
519
- getLengthableOrigin: () => getLengthableOrigin,
520
- getEnumValues: () => getEnumValues,
521
- getElementAtPath: () => getElementAtPath,
522
- floatSafeRemainder: () => floatSafeRemainder,
523
- finalizeIssue: () => finalizeIssue,
524
- extend: () => extend,
525
- explicitlyAborted: () => explicitlyAborted,
526
- escapeRegex: () => escapeRegex,
527
- esc: () => esc,
528
- defineLazy: () => defineLazy,
529
- createTransparentProxy: () => createTransparentProxy,
530
- cloneDef: () => cloneDef,
531
- clone: () => clone,
532
- cleanRegex: () => cleanRegex,
533
- cleanEnum: () => cleanEnum,
534
- captureStackTrace: () => captureStackTrace,
535
- cached: () => cached,
536
- base64urlToUint8Array: () => base64urlToUint8Array,
537
- base64ToUint8Array: () => base64ToUint8Array,
538
- assignProp: () => assignProp,
539
- assertNotEqual: () => assertNotEqual,
540
- assertNever: () => assertNever,
541
- assertIs: () => assertIs,
542
- assertEqual: () => assertEqual,
543
- assert: () => assert,
544
- allowsEval: () => allowsEval,
545
- aborted: () => aborted,
546
- NUMBER_FORMAT_RANGES: () => NUMBER_FORMAT_RANGES,
486
+ BIGINT_FORMAT_RANGES: () => BIGINT_FORMAT_RANGES,
547
487
  Class: () => Class,
548
- BIGINT_FORMAT_RANGES: () => BIGINT_FORMAT_RANGES
488
+ NUMBER_FORMAT_RANGES: () => NUMBER_FORMAT_RANGES,
489
+ aborted: () => aborted,
490
+ allowsEval: () => allowsEval,
491
+ assert: () => assert,
492
+ assertEqual: () => assertEqual,
493
+ assertIs: () => assertIs,
494
+ assertNever: () => assertNever,
495
+ assertNotEqual: () => assertNotEqual,
496
+ assignProp: () => assignProp,
497
+ base64ToUint8Array: () => base64ToUint8Array,
498
+ base64urlToUint8Array: () => base64urlToUint8Array,
499
+ cached: () => cached,
500
+ captureStackTrace: () => captureStackTrace,
501
+ cleanEnum: () => cleanEnum,
502
+ cleanRegex: () => cleanRegex,
503
+ clone: () => clone,
504
+ cloneDef: () => cloneDef,
505
+ createTransparentProxy: () => createTransparentProxy,
506
+ defineLazy: () => defineLazy,
507
+ esc: () => esc,
508
+ escapeRegex: () => escapeRegex,
509
+ explicitlyAborted: () => explicitlyAborted,
510
+ extend: () => extend,
511
+ finalizeIssue: () => finalizeIssue,
512
+ floatSafeRemainder: () => floatSafeRemainder,
513
+ getElementAtPath: () => getElementAtPath,
514
+ getEnumValues: () => getEnumValues,
515
+ getLengthableOrigin: () => getLengthableOrigin,
516
+ getParsedType: () => getParsedType,
517
+ getSizableOrigin: () => getSizableOrigin,
518
+ hexToUint8Array: () => hexToUint8Array,
519
+ isObject: () => isObject,
520
+ isPlainObject: () => isPlainObject,
521
+ issue: () => issue,
522
+ joinValues: () => joinValues,
523
+ jsonStringifyReplacer: () => jsonStringifyReplacer,
524
+ merge: () => merge,
525
+ mergeDefs: () => mergeDefs,
526
+ normalizeParams: () => normalizeParams,
527
+ nullish: () => nullish,
528
+ numKeys: () => numKeys,
529
+ objectClone: () => objectClone,
530
+ omit: () => omit,
531
+ optionalKeys: () => optionalKeys,
532
+ parsedType: () => parsedType,
533
+ partial: () => partial,
534
+ pick: () => pick,
535
+ prefixIssues: () => prefixIssues,
536
+ primitiveTypes: () => primitiveTypes,
537
+ promiseAllObject: () => promiseAllObject,
538
+ propertyKeyTypes: () => propertyKeyTypes,
539
+ randomString: () => randomString,
540
+ required: () => required,
541
+ safeExtend: () => safeExtend,
542
+ shallowClone: () => shallowClone,
543
+ slugify: () => slugify,
544
+ stringifyPrimitive: () => stringifyPrimitive,
545
+ uint8ArrayToBase64: () => uint8ArrayToBase64,
546
+ uint8ArrayToBase64url: () => uint8ArrayToBase64url,
547
+ uint8ArrayToHex: () => uint8ArrayToHex,
548
+ unwrapMessage: () => unwrapMessage
549
549
  });
550
550
  function assertEqual(val) {
551
551
  return val;
@@ -5549,6 +5549,17 @@ var OmoCodegraphSettingsSchema = OmoCodegraphSettingsLayerSchema.extend({
5549
5549
  telemetry: boolean2().default(false)
5550
5550
  }).strict();
5551
5551
 
5552
+ // ../../omo-config-core/src/schema/git-master.ts
5553
+ var OmoGitMasterSettingsShape = {
5554
+ commit_footer: union([boolean2(), string2()]),
5555
+ include_co_authored_by: boolean2()
5556
+ };
5557
+ var OmoGitMasterSettingsLayerSchema = object(OmoGitMasterSettingsShape).partial().strict();
5558
+ var OmoGitMasterSettingsSchema = OmoGitMasterSettingsLayerSchema.extend({
5559
+ commit_footer: union([boolean2(), string2()]).default(true),
5560
+ include_co_authored_by: boolean2().default(true)
5561
+ }).strict();
5562
+
5552
5563
  // ../../omo-config-core/src/schema/memory.ts
5553
5564
  var OmoMemoryReflectionTriggerSchema = object({
5554
5565
  step_count: number2().int().nonnegative().default(25),
@@ -5874,6 +5885,7 @@ var OmoTypedHarnessConfigSchema = object({
5874
5885
  categories: OmoCategoriesConfigSchema.optional(),
5875
5886
  agents: OmoAgentsConfigSchema.optional(),
5876
5887
  codegraph: OmoCodegraphSettingsLayerSchema.optional(),
5888
+ git_master: OmoGitMasterSettingsLayerSchema.optional(),
5877
5889
  task: OmoTaskSettingsLayerSchema.optional(),
5878
5890
  teams: OmoTeamsConfigLayerSchema.optional(),
5879
5891
  models: OmoModelCatalogLayerSchema.optional(),
@@ -5884,6 +5896,7 @@ var OmoConfigProfileSchema = object({
5884
5896
  categories: OmoCategoriesConfigSchema.optional(),
5885
5897
  agents: OmoAgentsConfigSchema.optional(),
5886
5898
  codegraph: OmoCodegraphSettingsLayerSchema.optional(),
5899
+ git_master: OmoGitMasterSettingsLayerSchema.optional(),
5887
5900
  task: OmoTaskSettingsLayerSchema.optional(),
5888
5901
  teams: OmoTeamsConfigLayerSchema.optional(),
5889
5902
  models: OmoModelCatalogLayerSchema.optional(),
@@ -5898,6 +5911,7 @@ var OmoConfigSchema = object({
5898
5911
  categories: OmoCategoriesConfigSchema.optional(),
5899
5912
  agents: OmoAgentsConfigSchema.optional(),
5900
5913
  codegraph: OmoCodegraphSettingsSchema.optional(),
5914
+ git_master: OmoGitMasterSettingsSchema.optional(),
5901
5915
  task: OmoTaskSettingsSchema.optional(),
5902
5916
  teams: OmoTeamsConfigSchema.optional(),
5903
5917
  models: OmoModelCatalogSchema.optional(),
@@ -5915,6 +5929,7 @@ var OmoConfigLayerSchema = object({
5915
5929
  categories: OmoCategoriesConfigSchema.optional(),
5916
5930
  agents: OmoAgentsConfigSchema.optional(),
5917
5931
  codegraph: OmoCodegraphSettingsLayerSchema.optional(),
5932
+ git_master: OmoGitMasterSettingsLayerSchema.optional(),
5918
5933
  task: OmoTaskSettingsLayerSchema.optional(),
5919
5934
  teams: OmoTeamsConfigLayerSchema.optional(),
5920
5935
  models: OmoModelCatalogLayerSchema.optional(),
@@ -9743,7 +9758,8 @@ function spawnDetachedSessionStartWorker(invocation) {
9743
9758
  const child = spawn(invocation.command, [...invocation.args], {
9744
9759
  detached: true,
9745
9760
  env: invocation.env,
9746
- stdio: "ignore"
9761
+ stdio: "ignore",
9762
+ windowsHide: true
9747
9763
  });
9748
9764
  child.unref();
9749
9765
  }
@@ -11707,7 +11723,8 @@ async function runBridgedCodegraphProcess(command, args, options) {
11707
11723
  const child = spawn3(invocation.command, invocation.args, {
11708
11724
  cwd: options.cwd,
11709
11725
  env: options.env,
11710
- stdio: ["pipe", "pipe", "inherit"]
11726
+ stdio: ["pipe", "pipe", "inherit"],
11727
+ windowsHide: true
11711
11728
  });
11712
11729
  const childInput = child.stdin;
11713
11730
  const childOutput = child.stdout;