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.
- package/README.ja.md +25 -21
- package/README.ko.md +25 -21
- package/README.md +26 -22
- package/README.ru.md +24 -20
- package/README.zh-cn.md +25 -21
- package/dist/cli/index.js +12628 -13558
- package/dist/cli-node/index.js +12628 -13558
- package/dist/features/btw-side/tui-controller-types.d.ts +5 -0
- package/dist/features/btw-side/tui-controller.d.ts +8 -3
- package/dist/features/btw-side/tui-escape-return.d.ts +12 -0
- package/dist/features/btw-side/tui-keymap.d.ts +8 -1
- package/dist/features/btw-side/tui-picker-options.d.ts +20 -0
- package/dist/features/btw-side/tui-picker.d.ts +9 -0
- package/dist/features/btw-side/tui-session-catalog.d.ts +35 -0
- package/dist/features/btw-side/tui-side-start.d.ts +1 -1
- package/dist/features/opengateway-provider/index.d.ts +13 -0
- package/dist/index.js +8462 -6318
- package/dist/skills/frontend/SKILL.md +1 -0
- package/dist/skills/frontend/references/design/print-paged-media.md +76 -0
- package/dist/skills/ulw-research/SKILL.md +1 -1
- package/dist/skills/visual-qa/SKILL.md +3 -2
- package/dist/tui.js +3993 -5513
- package/package.json +22 -22
- package/packages/git-bash-mcp/package.json +1 -1
- package/packages/lsp-daemon/dist/cli.js +81 -113
- package/packages/lsp-daemon/dist/client.js +82 -117
- package/packages/lsp-daemon/dist/ensure-daemon.js +1 -0
- package/packages/lsp-daemon/dist/index.js +88 -122
- package/packages/lsp-daemon/dist/version-reap.js +1 -1
- package/packages/lsp-tools-mcp/dist/cli.js +62 -93
- package/packages/lsp-tools-mcp/dist/lsp/manager.js +62 -92
- package/packages/lsp-tools-mcp/dist/mcp.js +64 -95
- package/packages/lsp-tools-mcp/dist/request-context.js +11 -12
- package/packages/lsp-tools-mcp/dist/tools.js +73 -104
- package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +30 -29
- package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/src/hook.ts +1 -0
- package/packages/omo-codex/plugin/components/codegraph/dist/cli.js +81 -64
- package/packages/omo-codex/plugin/components/codegraph/dist/serve.js +81 -65
- package/packages/omo-codex/plugin/components/codegraph/package.json +4 -4
- package/packages/omo-codex/plugin/components/codegraph/src/mcp-bridge.ts +1 -0
- package/packages/omo-codex/plugin/components/codegraph/src/session-start-hook-runtime.ts +1 -0
- package/packages/omo-codex/plugin/components/comment-checker/dist/cli.js +2 -1
- package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/comment-checker/package.json +5 -5
- package/packages/omo-codex/plugin/components/comment-checker/src/runner.ts +1 -0
- package/packages/omo-codex/plugin/components/git-bash/AGENTS.md +1 -1
- package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/git-bash/package.json +3 -4
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +5 -5
- package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +3 -3
- package/packages/omo-codex/plugin/components/lsp/dist/cli.js +70 -107
- package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/lsp/package.json +5 -5
- package/packages/omo-codex/plugin/components/lsp/src/cli.ts +1 -1
- package/packages/omo-codex/plugin/components/rules/dist/cli.js +14 -12
- package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
- package/packages/omo-codex/plugin/components/rules/package.json +7 -7
- package/packages/omo-codex/plugin/components/start-work-continuation/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/start-work-continuation/package.json +5 -5
- package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/teammode/package.json +5 -5
- package/packages/omo-codex/plugin/components/telemetry/dist/cli.js +25 -25
- package/packages/omo-codex/plugin/components/telemetry/dist/posthog.js +31 -31
- package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/telemetry/package.json +5 -5
- package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/package.json +5 -5
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.js +1 -3
- package/packages/omo-codex/plugin/components/ulw-loop/dist/paths.js +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +4 -4
- package/packages/omo-codex/plugin/components/ulw-loop/package.json +5 -5
- package/packages/omo-codex/plugin/components/ulw-loop/src/paths.ts +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/test/cli-create-goals.test.ts +25 -0
- package/packages/omo-codex/plugin/components/ulw-loop/test/paths.test.ts +9 -0
- package/packages/omo-codex/plugin/components/ulw-loop/vitest.config.ts +1 -0
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-codegraph-init-guidance.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-checking-codegraph-bootstrap.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
- package/packages/omo-codex/plugin/hooks/stop-checking-start-work-continuation.json +1 -1
- package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
- package/packages/omo-codex/plugin/hooks/subagent-stop-checking-start-work-continuation.json +1 -1
- package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
- package/packages/omo-codex/plugin/package-lock.json +661 -375
- package/packages/omo-codex/plugin/package.json +1 -1
- package/packages/omo-codex/plugin/shared/package.json +2 -3
- package/packages/omo-codex/plugin/skills/frontend/SKILL.md +1 -0
- package/packages/omo-codex/plugin/skills/frontend/references/design/print-paged-media.md +76 -0
- package/packages/omo-codex/plugin/skills/ulw-research/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/visual-qa/SKILL.md +3 -2
- package/packages/omo-codex/scripts/install-dist/install-local.mjs +53 -53
- package/packages/shared-skills/skills/frontend/SKILL.md +1 -0
- package/packages/shared-skills/skills/frontend/references/design/print-paged-media.md +76 -0
- package/packages/shared-skills/skills/ulw-research/SKILL.md +1 -1
- package/packages/shared-skills/skills/visual-qa/SKILL.md +3 -2
- package/script/qa/web-terminal-visual-qa.mjs +2 -0
- 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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
2442
|
-
|
|
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
|
-
|
|
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
|
-
|
|
4804
|
+
executeLspDiagnostics,
|
|
4805
|
+
executeLspFindReferences,
|
|
4806
|
+
executeLspGotoDefinition,
|
|
4807
|
+
executeLspInstallDecision,
|
|
4808
|
+
executeLspPrepareRename,
|
|
4809
|
+
executeLspRename,
|
|
4810
|
+
executeLspStatus,
|
|
4811
|
+
executeLspSymbols,
|
|
4812
|
+
executeLspTool,
|
|
4813
|
+
isRecord7 as isRecord
|
|
4845
4814
|
};
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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,
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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;
|