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
@@ -29,22 +29,15 @@ var STOP_SIGKILL_GRACE_MS = 1000;
29
29
 
30
30
  // ../lsp-core/src/lsp/errors.ts
31
31
  class LspConnectionClosedError extends Error {
32
- serverId;
33
- root;
34
- name = "LspConnectionClosedError";
35
32
  constructor(serverId, root, message) {
36
33
  super(message ?? `LSP connection closed for ${serverId} at ${root}`);
37
34
  this.serverId = serverId;
38
35
  this.root = root;
36
+ this.name = "LspConnectionClosedError";
39
37
  }
40
38
  }
41
39
 
42
40
  class LspProcessExitedError extends Error {
43
- serverId;
44
- root;
45
- exitCode;
46
- stderrTail;
47
- name = "LspProcessExitedError";
48
41
  constructor(serverId, root, exitCode, stderrTail) {
49
42
  const stderrSuffix = stderrTail ? `
50
43
  stderr tail: ${stderrTail}` : "";
@@ -53,46 +46,49 @@ stderr tail: ${stderrTail}` : "";
53
46
  this.root = root;
54
47
  this.exitCode = exitCode;
55
48
  this.stderrTail = stderrTail;
49
+ this.name = "LspProcessExitedError";
56
50
  }
57
51
  }
58
52
 
59
53
  class LspRequestTimeoutError extends Error {
60
- method;
61
- stderrTail;
62
- name = "LspRequestTimeoutError";
63
54
  constructor(method, stderrTail) {
64
55
  const stderrSuffix = stderrTail ? `
65
56
  recent stderr: ${stderrTail}` : "";
66
57
  super(`LSP request timeout (method: ${method})${stderrSuffix}`);
67
58
  this.method = method;
68
59
  this.stderrTail = stderrTail;
60
+ this.name = "LspRequestTimeoutError";
69
61
  }
70
62
  }
71
63
 
72
64
  class LspInvalidPathError extends Error {
73
- name = "LspInvalidPathError";
65
+ constructor() {
66
+ super(...arguments);
67
+ this.name = "LspInvalidPathError";
68
+ }
74
69
  }
75
70
 
76
71
  class LspServerLookupError extends Error {
77
- lookup;
78
- name = "LspServerLookupError";
79
72
  constructor(message, lookup) {
80
73
  super(message);
81
74
  this.lookup = lookup;
75
+ this.name = "LspServerLookupError";
82
76
  }
83
77
  }
84
78
 
85
79
  class LspServerInitializingError extends Error {
86
- originalError;
87
- name = "LspServerInitializingError";
88
80
  constructor(originalError) {
89
81
  super(`LSP server is still initializing. Please retry in a few seconds. Original error: ${originalError.message}`);
90
82
  this.originalError = originalError;
83
+ this.name = "LspServerInitializingError";
91
84
  }
92
85
  }
93
86
 
94
87
  class LspProcessSpawnError extends Error {
95
- name = "LspProcessSpawnError";
88
+ constructor() {
89
+ super(...arguments);
90
+ this.name = "LspProcessSpawnError";
91
+ }
96
92
  }
97
93
  function isLspDeadConnectionError(err) {
98
94
  return err instanceof LspConnectionClosedError || err instanceof LspProcessExitedError;
@@ -108,20 +104,31 @@ var METHOD_NOT_FOUND = -32601;
108
104
  var INTERNAL_ERROR = -32603;
109
105
 
110
106
  class JsonRpcConnection {
111
- reader;
112
- writer;
113
- pendingRequests = new Map;
114
- notificationHandlers = new Map;
115
- requestHandlers = new Map;
116
- closeHandlers = [];
117
- errorHandlers = [];
118
- inputBuffer = Buffer.alloc(0);
119
- nextRequestId = 1;
120
- listening = false;
121
- disposed = false;
122
107
  constructor(reader, writer) {
123
108
  this.reader = reader;
124
109
  this.writer = writer;
110
+ this.pendingRequests = new Map;
111
+ this.notificationHandlers = new Map;
112
+ this.requestHandlers = new Map;
113
+ this.closeHandlers = [];
114
+ this.errorHandlers = [];
115
+ this.inputBuffer = Buffer.alloc(0);
116
+ this.nextRequestId = 1;
117
+ this.listening = false;
118
+ this.disposed = false;
119
+ this.handleData = (chunk) => {
120
+ const chunkBuffer = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk, "utf8");
121
+ this.inputBuffer = Buffer.concat([this.inputBuffer, chunkBuffer]);
122
+ this.drainInputBuffer();
123
+ };
124
+ this.handleClose = () => {
125
+ for (const handler of this.closeHandlers) {
126
+ handler();
127
+ }
128
+ };
129
+ this.handleStreamError = (error) => {
130
+ this.emitError(error);
131
+ };
125
132
  }
126
133
  listen() {
127
134
  if (this.listening)
@@ -242,19 +249,6 @@ class JsonRpcConnection {
242
249
  this.notificationHandlers.clear();
243
250
  this.requestHandlers.clear();
244
251
  }
245
- handleData = (chunk) => {
246
- const chunkBuffer = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk, "utf8");
247
- this.inputBuffer = Buffer.concat([this.inputBuffer, chunkBuffer]);
248
- this.drainInputBuffer();
249
- };
250
- handleClose = () => {
251
- for (const handler of this.closeHandlers) {
252
- handler();
253
- }
254
- };
255
- handleStreamError = (error) => {
256
- this.emitError(error);
257
- };
258
252
  drainInputBuffer() {
259
253
  while (true) {
260
254
  const headerEnd = this.inputBuffer.indexOf(HEADER_SEPARATOR);
@@ -602,31 +596,25 @@ function isPosition(value) {
602
596
 
603
597
  // ../lsp-core/src/lsp/transport.ts
604
598
  class LspClientNotStartedError extends Error {
605
- serverId;
606
- root;
607
- name = "LspClientNotStartedError";
608
599
  constructor(serverId, root) {
609
600
  super("LSP client not started");
610
601
  this.serverId = serverId;
611
602
  this.root = root;
603
+ this.name = "LspClientNotStartedError";
612
604
  }
613
605
  }
614
606
 
615
607
  class LspClientTransport {
616
- root;
617
- server;
618
- proc = null;
619
- connection = null;
620
- stderrBuffer = [];
621
- processExited = false;
622
- diagnosticsStore = new Map;
623
- requestTimeoutMs;
624
- initializeTimeoutMs;
625
- workspaceApplyEditHandler = null;
626
- diagnosticPullSupported = false;
627
608
  constructor(root, server, timeouts = {}) {
628
609
  this.root = root;
629
610
  this.server = server;
611
+ this.proc = null;
612
+ this.connection = null;
613
+ this.stderrBuffer = [];
614
+ this.processExited = false;
615
+ this.diagnosticsStore = new Map;
616
+ this.workspaceApplyEditHandler = null;
617
+ this.diagnosticPullSupported = false;
630
618
  this.requestTimeoutMs = timeouts.requestTimeoutMs ?? REQUEST_TIMEOUT_MS;
631
619
  this.initializeTimeoutMs = timeouts.initializeTimeoutMs ?? INIT_TIMEOUT_MS;
632
620
  }
@@ -1133,16 +1121,12 @@ function movedPath(candidate, oldPath, newPath) {
1133
1121
  }
1134
1122
 
1135
1123
  class WorkspaceDocumentState {
1136
- sendNotification;
1137
- clearDiagnostics;
1138
- openDocuments = new Map;
1139
- openByUri = new Map;
1140
- openPromises = new Map;
1141
- now;
1142
- versionlessPublishQuiescenceMs;
1143
1124
  constructor(sendNotification, clearDiagnostics, options = {}) {
1144
1125
  this.sendNotification = sendNotification;
1145
1126
  this.clearDiagnostics = clearDiagnostics;
1127
+ this.openDocuments = new Map;
1128
+ this.openByUri = new Map;
1129
+ this.openPromises = new Map;
1146
1130
  this.now = options.now ?? (() => Date.now());
1147
1131
  this.versionlessPublishQuiescenceMs = options.versionlessPublishQuiescenceMs ?? DEFAULT_VERSIONLESS_PUBLISH_QUIESCENCE_MS;
1148
1132
  }
@@ -1406,13 +1390,11 @@ import { dirname, isAbsolute, relative as relative2, resolve as resolve2 } from
1406
1390
  import { fileURLToPath } from "node:url";
1407
1391
 
1408
1392
  class WorkspaceEditPathError extends Error {
1409
- path;
1410
- detail;
1411
- name = "WorkspaceEditPathError";
1412
1393
  constructor(path, detail) {
1413
1394
  super(`${detail}: ${path}`);
1414
1395
  this.path = path;
1415
1396
  this.detail = detail;
1397
+ this.name = "WorkspaceEditPathError";
1416
1398
  }
1417
1399
  }
1418
1400
  function isPathInsideWorkspace(filePath, workspaceRoot) {
@@ -1704,13 +1686,11 @@ function canonicalFingerprint(operations) {
1704
1686
 
1705
1687
  // ../lsp-core/src/lsp/workspace-edit-types.ts
1706
1688
  class WorkspaceEditValidationError extends Error {
1707
- changeIndex;
1708
- detail;
1709
- name = "WorkspaceEditValidationError";
1710
1689
  constructor(changeIndex, detail) {
1711
1690
  super(`change ${changeIndex}: ${detail}`);
1712
1691
  this.changeIndex = changeIndex;
1713
1692
  this.detail = detail;
1693
+ this.name = "WorkspaceEditValidationError";
1714
1694
  }
1715
1695
  }
1716
1696
 
@@ -2208,10 +2188,9 @@ function simulateDelete(operation, virtual) {
2208
2188
  import { existsSync as existsSync4, lstatSync as lstatSync3, readdirSync as readdirSync2 } from "node:fs";
2209
2189
  import { dirname as dirname3, resolve as resolve4 } from "node:path";
2210
2190
  class WorkspaceSnapshotBuilder {
2211
- workspaceRoot;
2212
- snapshots = new Map;
2213
2191
  constructor(workspaceRoot) {
2214
2192
  this.workspaceRoot = workspaceRoot;
2193
+ this.snapshots = new Map;
2215
2194
  }
2216
2195
  build(operations) {
2217
2196
  this.add(this.workspaceRoot, false);
@@ -2255,8 +2234,10 @@ function snapshotOperations(operations, workspaceRoot) {
2255
2234
 
2256
2235
  // ../lsp-core/src/lsp/workspace-edit-plan.ts
2257
2236
  class PlanPathIndex {
2258
- firstChangeByPath = new Map;
2259
- reportedPathByCanonical = new Map;
2237
+ constructor() {
2238
+ this.firstChangeByPath = new Map;
2239
+ this.reportedPathByCanonical = new Map;
2240
+ }
2260
2241
  build(operations) {
2261
2242
  for (const operation of operations) {
2262
2243
  switch (operation.kind) {
@@ -2345,14 +2326,11 @@ function isRecord3(value) {
2345
2326
  }
2346
2327
 
2347
2328
  class WorkspaceMutationController {
2348
- workspaceRoot;
2349
- documents;
2350
- activeLease = null;
2351
- nextLeaseId = 1;
2352
- io;
2353
2329
  constructor(workspaceRoot, documents) {
2354
2330
  this.workspaceRoot = workspaceRoot;
2355
2331
  this.documents = documents;
2332
+ this.activeLease = null;
2333
+ this.nextLeaseId = 1;
2356
2334
  }
2357
2335
  setIo(io) {
2358
2336
  this.io = io;
@@ -2465,12 +2443,9 @@ var DIAGNOSTICS_FRESHNESS_TIMEOUT_MS = 3000;
2465
2443
  var VERSIONLESS_PUBLISH_QUIESCENCE_MS = 250;
2466
2444
 
2467
2445
  class LspClient extends LspClientConnection {
2468
- diagnosticPullErrors = [];
2469
- documents;
2470
- workspaceMutations;
2471
- diagnosticsFreshnessTimeoutMs;
2472
2446
  constructor(root, server, options = {}) {
2473
2447
  super(root, server, options);
2448
+ this.diagnosticPullErrors = [];
2474
2449
  this.diagnosticsFreshnessTimeoutMs = options.diagnosticsFreshnessTimeoutMs ?? DIAGNOSTICS_FRESHNESS_TIMEOUT_MS;
2475
2450
  this.documents = new WorkspaceDocumentState((method, params) => this.sendNotification(method, params), (uri) => this.diagnosticsStore.delete(uri), {
2476
2451
  versionlessPublishQuiescenceMs: options.versionlessPublishQuiescenceMs ?? VERSIONLESS_PUBLISH_QUIESCENCE_MS
@@ -2770,16 +2745,11 @@ function awaitWithSignal(promise, signal) {
2770
2745
  }
2771
2746
 
2772
2747
  class LspManager {
2773
- clients = new Map;
2774
- reaperHandle = null;
2775
- signalDisposer = null;
2776
- disposed = false;
2777
- idleTimeoutMs;
2778
- initTimeoutMs;
2779
- reaperIntervalMs;
2780
- clientFactory;
2781
- now;
2782
2748
  constructor(options = {}) {
2749
+ this.clients = new Map;
2750
+ this.reaperHandle = null;
2751
+ this.signalDisposer = null;
2752
+ this.disposed = false;
2783
2753
  this.idleTimeoutMs = options.idleTimeoutMs ?? IDLE_TIMEOUT_MS;
2784
2754
  this.initTimeoutMs = options.initTimeoutMs ?? INIT_TIMEOUT_MS;
2785
2755
  this.reaperIntervalMs = options.reaperIntervalMs ?? REAPER_INTERVAL_MS;
@@ -3022,18 +2992,17 @@ import { homedir } from "node:os";
3022
2992
  import { basename as basename2, delimiter as delimiter2, dirname as dirname4, isAbsolute as isAbsolute2, join as join2, relative as relative4, resolve as resolve6 } from "node:path";
3023
2993
 
3024
2994
  class LspRequestContextParseError extends Error {
3025
- code;
3026
- name = "LspRequestContextParseError";
3027
2995
  constructor(code, message) {
3028
2996
  super(message);
3029
2997
  this.code = code;
2998
+ this.name = "LspRequestContextParseError";
3030
2999
  }
3031
3000
  }
3032
3001
 
3033
3002
  class LspRequestContextUnavailableError extends Error {
3034
- name = "LspRequestContextUnavailableError";
3035
3003
  constructor() {
3036
3004
  super("LSP request context is required. Standalone MCP startup must install one with runWithRequestContext(createStandaloneMcpRequestContext()).");
3005
+ this.name = "LspRequestContextUnavailableError";
3037
3006
  }
3038
3007
  }
3039
3008
  var storage = new AsyncLocalStorage;
@@ -3191,7 +3160,6 @@ function isPlainRecord(value) {
3191
3160
 
3192
3161
  // src/daemon-request-error.ts
3193
3162
  class DaemonRequestError extends Error {
3194
- requestWritten;
3195
3163
  constructor(message, requestWritten) {
3196
3164
  super(message);
3197
3165
  this.name = "DaemonRequestError";
@@ -3214,7 +3182,6 @@ class DaemonRequestCancelledError extends DaemonRequestError {
3214
3182
  }
3215
3183
 
3216
3184
  class DaemonRequestTimedOutError extends DaemonRequestError {
3217
- timeoutMs;
3218
3185
  constructor(requestWritten, timeoutMs) {
3219
3186
  super("daemon request timed out", requestWritten);
3220
3187
  this.name = "DaemonRequestTimedOutError";
@@ -3293,14 +3260,12 @@ var PROTOCOL_ERROR_CODE = -32002;
3293
3260
  var AUTH_TOKEN_BYTES = 32;
3294
3261
 
3295
3262
  class UnsafePrivateDirectoryError extends Error {
3296
- path;
3297
- reason;
3298
- name = "UnsafePrivateDirectoryError";
3299
- code = "unsafe_private_directory";
3300
3263
  constructor(path, reason) {
3301
3264
  super(`unsafe private directory ${path}: ${reason}`);
3302
3265
  this.path = path;
3303
3266
  this.reason = reason;
3267
+ this.name = "UnsafePrivateDirectoryError";
3268
+ this.code = "unsafe_private_directory";
3304
3269
  }
3305
3270
  }
3306
3271
  function authEnvelope(token) {
@@ -3484,20 +3449,18 @@ var OMO_LSP_DAEMON_VERSION = "OMO_LSP_DAEMON_VERSION";
3484
3449
  var DAEMON_VERSION_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._+-]{0,127}$/;
3485
3450
 
3486
3451
  class InvalidRuntimeOverrideError extends Error {
3487
- code = "invalid_runtime_override";
3488
- reason;
3489
3452
  constructor(reason, message) {
3490
3453
  super(message);
3454
+ this.code = "invalid_runtime_override";
3491
3455
  this.name = "InvalidRuntimeOverrideError";
3492
3456
  this.reason = reason;
3493
3457
  }
3494
3458
  }
3495
3459
 
3496
3460
  class InvalidDaemonVersionError extends Error {
3497
- code = "invalid_daemon_version";
3498
- version;
3499
3461
  constructor(version) {
3500
3462
  super("LSP daemon version must match [A-Za-z0-9][A-Za-z0-9._+-]{0,127}");
3463
+ this.code = "invalid_daemon_version";
3501
3464
  this.name = "InvalidDaemonVersionError";
3502
3465
  this.version = version;
3503
3466
  }
@@ -3543,10 +3506,9 @@ var requireFromHere = createRequire(import.meta.url);
3543
3506
  var MAX_SOCKET_PATH_LENGTH = 100;
3544
3507
 
3545
3508
  class InvalidDaemonDirectoryError extends Error {
3546
- code = "invalid_daemon_directory";
3547
- directory;
3548
3509
  constructor(directory) {
3549
3510
  super(`${OMO_LSP_DAEMON_DIR} must be an absolute path`);
3511
+ this.code = "invalid_daemon_directory";
3550
3512
  this.name = "InvalidDaemonDirectoryError";
3551
3513
  this.directory = directory;
3552
3514
  }
@@ -3741,7 +3703,8 @@ function spawnDaemonProcess(paths) {
3741
3703
  try {
3742
3704
  const child = spawn2(resolveDaemonNodeExecutable(), [paths.cliPath, "daemon"], {
3743
3705
  detached: true,
3744
- stdio: ["ignore", logFd, logFd]
3706
+ stdio: ["ignore", logFd, logFd],
3707
+ windowsHide: true
3745
3708
  });
3746
3709
  child.once("spawn", () => closeSync2(logFd));
3747
3710
  child.once("error", (error) => {
@@ -5863,7 +5826,10 @@ function requestedProtocolVersion(params) {
5863
5826
  var CONTEXT_KEY = "_context";
5864
5827
 
5865
5828
  class InvalidDaemonRequestError extends Error {
5866
- name = "InvalidDaemonRequestError";
5829
+ constructor() {
5830
+ super(...arguments);
5831
+ this.name = "InvalidDaemonRequestError";
5832
+ }
5867
5833
  }
5868
5834
  function extractRequestContext(raw) {
5869
5835
  if (!isPlainRecord(raw) || raw["method"] !== "tools/call")
@@ -6256,20 +6222,20 @@ function projectRootFromOpenCodeConfigPath(path2) {
6256
6222
  return dirname10(configDir);
6257
6223
  }
6258
6224
  export {
6259
- validateDaemonVersion,
6260
- runMcpStdioProxy,
6261
- resolveDaemonRuntime,
6262
- probeDaemon,
6263
- ensureDaemonRunning,
6264
- disposeDefaultLspManager,
6265
- daemonPaths,
6266
- currentRequestContext,
6267
- callToolViaDaemon,
6268
- callDiagnosticsViaDaemon,
6269
- OMO_LSP_DAEMON_VERSION,
6270
- OMO_LSP_DAEMON_DIR,
6271
- OMO_LSP_DAEMON_CLI,
6272
- InvalidRuntimeOverrideError,
6225
+ InvalidDaemonDirectoryError,
6273
6226
  InvalidDaemonVersionError,
6274
- InvalidDaemonDirectoryError
6227
+ InvalidRuntimeOverrideError,
6228
+ OMO_LSP_DAEMON_CLI,
6229
+ OMO_LSP_DAEMON_DIR,
6230
+ OMO_LSP_DAEMON_VERSION,
6231
+ callDiagnosticsViaDaemon,
6232
+ callToolViaDaemon,
6233
+ currentRequestContext,
6234
+ daemonPaths,
6235
+ disposeDefaultLspManager,
6236
+ ensureDaemonRunning,
6237
+ probeDaemon,
6238
+ resolveDaemonRuntime,
6239
+ runMcpStdioProxy,
6240
+ validateDaemonVersion
6275
6241
  };
@@ -149,7 +149,7 @@ function defaultReadProcFile(path) {
149
149
  }
150
150
  function defaultExecuteForStdout(file, args) {
151
151
  return new Promise((resolve) => {
152
- execFile(file, [...args], { encoding: "utf8", maxBuffer: 1024 * 1024, timeout: 1_000 }, (error, stdout) => {
152
+ execFile(file, [...args], { encoding: "utf8", maxBuffer: 1024 * 1024, timeout: 1_000, windowsHide: true }, (error, stdout) => {
153
153
  if (error !== null) {
154
154
  resolve(null);
155
155
  return;