oh-my-opencode 5.0.0-beta.21 → 5.0.0-beta.23
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/dist/cli/index.js +290 -288
- package/dist/cli-node/index.js +290 -288
- package/dist/index.js +1675 -1657
- package/dist/skills/debugging/SKILL.md +2 -0
- package/dist/skills/debugging/references/methodology/00-setup.md +12 -0
- package/dist/skills/debugging/references/methodology/02-investigate.md +21 -0
- package/dist/skills/debugging/references/runtimes/go.md +15 -1
- package/dist/skills/debugging/references/runtimes/native-binary.md +38 -0
- package/dist/skills/debugging/references/runtimes/node.md +25 -0
- package/dist/skills/debugging/references/runtimes/python.md +13 -0
- package/dist/skills/debugging/references/runtimes/rust.md +41 -0
- package/dist/skills/debugging/references/scripts/dap.mjs +267 -0
- package/dist/skills/debugging/references/scripts/dap.test.ts +86 -0
- package/dist/skills/debugging/references/scripts/fixture-adapter.mjs +59 -0
- package/dist/skills/debugging/references/tools/dap.md +103 -0
- package/dist/skills/debugging/references/tools/frida.md +193 -0
- package/dist/tools/delegate-task/types.d.ts +3 -0
- package/dist/tui.js +131 -147
- package/package.json +18 -15
- package/packages/lsp-core/src/index.ts +1 -0
- package/packages/lsp-core/src/lsp/client-wrapper.ts +25 -5
- package/packages/lsp-core/src/lsp/client.ts +26 -0
- package/packages/lsp-core/src/lsp/connection.ts +16 -0
- package/packages/lsp-core/src/lsp/constants.ts +1 -0
- package/packages/lsp-core/src/lsp/format-document.test.ts +143 -0
- package/packages/lsp-core/src/lsp/format-document.ts +90 -0
- package/packages/lsp-core/src/lsp/manager-max-clients.test.ts +151 -0
- package/packages/lsp-core/src/lsp/manager.ts +34 -1
- package/packages/lsp-core/src/lsp/server-definitions.ts +29 -0
- package/packages/lsp-core/src/lsp/server-installation.test.ts +376 -0
- package/packages/lsp-core/src/lsp/server-installation.ts +200 -27
- package/packages/lsp-core/src/lsp/server-resolution-local-binary.test.ts +170 -0
- package/packages/lsp-core/src/lsp/server-resolution.ts +18 -5
- package/packages/lsp-core/src/lsp/transport.ts +9 -0
- package/packages/lsp-core/src/lsp/types.ts +8 -0
- package/packages/lsp-core/src/tool-surface.test.ts +13 -1
- package/packages/lsp-core/src/tools/definitions.ts +14 -0
- package/packages/lsp-core/src/tools/format.test.ts +56 -0
- package/packages/lsp-core/src/tools/format.ts +56 -0
- package/packages/lsp-core/src/tools/index.ts +1 -0
- package/packages/lsp-core/src/tools/types.ts +10 -0
- package/packages/lsp-daemon/dist/cli.js +432 -144
- package/packages/lsp-daemon/dist/client.d.ts +10 -0
- package/packages/lsp-daemon/dist/client.js +401 -107
- package/packages/lsp-daemon/dist/daemon-client.d.ts +1 -0
- package/packages/lsp-daemon/dist/daemon-client.js +3 -0
- package/packages/lsp-daemon/dist/index.js +395 -107
- package/packages/lsp-daemon/package.json +1 -1
- package/packages/lsp-tools-mcp/dist/cli.js +384 -99
- package/packages/lsp-tools-mcp/dist/lsp/manager.js +53 -0
- package/packages/lsp-tools-mcp/dist/mcp.js +384 -99
- package/packages/lsp-tools-mcp/dist/tools.js +385 -99
- package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +2 -2
- 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/codegraph/dist/cli.js +69 -35
- package/packages/omo-codex/plugin/components/codegraph/dist/serve.js +21 -2
- package/packages/omo-codex/plugin/components/codegraph/package.json +1 -1
- package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/comment-checker/package.json +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 +1 -1
- 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 +1 -1
- package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +3 -3
- package/packages/omo-codex/plugin/components/lsp/dist/cli.js +404 -121
- package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
- package/packages/omo-codex/plugin/components/rules/dist/cli.js +3 -3
- package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
- package/packages/omo-codex/plugin/components/rules/package.json +1 -1
- package/packages/omo-codex/plugin/components/rules/src/post-compact-budget.ts +3 -3
- package/packages/omo-codex/plugin/components/rules/test/post-compact-budget.test.ts +4 -4
- package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
- package/packages/omo-codex/plugin/components/telemetry/dist/cli.js +30 -15
- package/packages/omo-codex/plugin/components/telemetry/dist/posthog.js +30 -15
- package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-commands.js +5 -1
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-output.d.ts +2 -1
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-output.js +11 -1
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.js +22 -10
- package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +4 -4
- package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/src/cli-commands.ts +5 -1
- package/packages/omo-codex/plugin/components/ulw-loop/src/cli-output.ts +13 -1
- package/packages/omo-codex/plugin/components/ulw-loop/src/cli.ts +3 -5
- package/packages/omo-codex/plugin/components/ulw-loop/test/cli-entrypoint.test.ts +26 -2
- 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-ulw-execute-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-ulw-execute-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/model-catalog.json +3 -3
- package/packages/omo-codex/plugin/package-lock.json +13 -13
- package/packages/omo-codex/plugin/package.json +1 -1
- package/packages/omo-codex/plugin/scripts/migrate-codex-config/catalog.mjs +3 -3
- package/packages/omo-codex/plugin/skills/debugging/SKILL.md +2 -0
- package/packages/omo-codex/plugin/skills/debugging/references/methodology/00-setup.md +12 -0
- package/packages/omo-codex/plugin/skills/debugging/references/methodology/02-investigate.md +21 -0
- package/packages/omo-codex/plugin/skills/debugging/references/runtimes/go.md +15 -1
- package/packages/omo-codex/plugin/skills/debugging/references/runtimes/native-binary.md +38 -0
- package/packages/omo-codex/plugin/skills/debugging/references/runtimes/node.md +25 -0
- package/packages/omo-codex/plugin/skills/debugging/references/runtimes/python.md +13 -0
- package/packages/omo-codex/plugin/skills/debugging/references/runtimes/rust.md +41 -0
- package/packages/omo-codex/plugin/skills/debugging/references/scripts/dap.mjs +267 -0
- package/packages/omo-codex/plugin/skills/debugging/references/scripts/fixture-adapter.mjs +59 -0
- package/packages/omo-codex/plugin/skills/debugging/references/tools/dap.md +103 -0
- package/packages/omo-codex/plugin/skills/debugging/references/tools/frida.md +193 -0
- package/packages/omo-codex/plugin/test/aggregate-model-catalog.test.mjs +1 -1
- package/packages/omo-codex/plugin/test/auto-update.test.mjs +2 -2
- package/packages/omo-codex/plugin/test/migrate-codex-config.test.mjs +8 -8
- package/packages/omo-codex/scripts/install-config-reasoning.test.mjs +2 -2
- package/packages/omo-codex/scripts/install-dist/install-local.mjs +38 -23
- package/packages/shared-skills/skills/debugging/SKILL.md +2 -0
- package/packages/shared-skills/skills/debugging/references/methodology/00-setup.md +12 -0
- package/packages/shared-skills/skills/debugging/references/methodology/02-investigate.md +21 -0
- package/packages/shared-skills/skills/debugging/references/runtimes/go.md +15 -1
- package/packages/shared-skills/skills/debugging/references/runtimes/native-binary.md +38 -0
- package/packages/shared-skills/skills/debugging/references/runtimes/node.md +25 -0
- package/packages/shared-skills/skills/debugging/references/runtimes/python.md +13 -0
- package/packages/shared-skills/skills/debugging/references/runtimes/rust.md +41 -0
- package/packages/shared-skills/skills/debugging/references/scripts/dap.mjs +267 -0
- package/packages/shared-skills/skills/debugging/references/scripts/dap.test.ts +86 -0
- package/packages/shared-skills/skills/debugging/references/scripts/fixture-adapter.mjs +59 -0
- package/packages/shared-skills/skills/debugging/references/tools/dap.md +103 -0
- package/packages/shared-skills/skills/debugging/references/tools/frida.md +193 -0
|
@@ -23,6 +23,7 @@ var DEFAULT_MAX_DIRECTORY_FILES = 50;
|
|
|
23
23
|
var REQUEST_TIMEOUT_MS = 15000;
|
|
24
24
|
var INIT_TIMEOUT_MS = 60000;
|
|
25
25
|
var IDLE_TIMEOUT_MS = 5 * 60000;
|
|
26
|
+
var MAX_RESIDENT_CLIENTS = 6;
|
|
26
27
|
var REAPER_INTERVAL_MS = 60000;
|
|
27
28
|
var STOP_HARD_KILL_TIMEOUT_MS = 5000;
|
|
28
29
|
var STOP_SIGKILL_GRACE_MS = 1000;
|
|
@@ -615,6 +616,7 @@ class LspClientTransport {
|
|
|
615
616
|
this.diagnosticsStore = new Map;
|
|
616
617
|
this.workspaceApplyEditHandler = null;
|
|
617
618
|
this.diagnosticPullSupported = false;
|
|
619
|
+
this.documentFormattingSupported = false;
|
|
618
620
|
this.requestTimeoutMs = timeouts.requestTimeoutMs ?? REQUEST_TIMEOUT_MS;
|
|
619
621
|
this.initializeTimeoutMs = timeouts.initializeTimeoutMs ?? INIT_TIMEOUT_MS;
|
|
620
622
|
}
|
|
@@ -636,6 +638,12 @@ class LspClientTransport {
|
|
|
636
638
|
isDiagnosticPullSupported() {
|
|
637
639
|
return this.diagnosticPullSupported;
|
|
638
640
|
}
|
|
641
|
+
setDocumentFormattingSupported(supported) {
|
|
642
|
+
this.documentFormattingSupported = supported;
|
|
643
|
+
}
|
|
644
|
+
isDocumentFormattingSupported() {
|
|
645
|
+
return this.documentFormattingSupported;
|
|
646
|
+
}
|
|
639
647
|
handlePublishDiagnostics(params) {
|
|
640
648
|
this.diagnosticsStore.set(params.uri, [...params.diagnostics]);
|
|
641
649
|
}
|
|
@@ -849,6 +857,14 @@ function supportsDiagnosticPull(capabilities) {
|
|
|
849
857
|
return false;
|
|
850
858
|
return Object.hasOwn(capabilities, "diagnosticProvider");
|
|
851
859
|
}
|
|
860
|
+
function supportsDocumentFormatting(capabilities) {
|
|
861
|
+
if (capabilities === undefined)
|
|
862
|
+
return false;
|
|
863
|
+
const provider = capabilities.documentFormattingProvider;
|
|
864
|
+
if (provider === undefined || provider === null || provider === false)
|
|
865
|
+
return false;
|
|
866
|
+
return provider === true || typeof provider === "object";
|
|
867
|
+
}
|
|
852
868
|
|
|
853
869
|
class LspClientConnection extends LspClientTransport {
|
|
854
870
|
async initialize() {
|
|
@@ -865,6 +881,7 @@ class LspClientConnection extends LspClientTransport {
|
|
|
865
881
|
references: {},
|
|
866
882
|
documentSymbol: { hierarchicalDocumentSymbolSupport: true },
|
|
867
883
|
publishDiagnostics: {},
|
|
884
|
+
formatting: { dynamicRegistration: false },
|
|
868
885
|
rename: {
|
|
869
886
|
prepareSupport: true,
|
|
870
887
|
prepareSupportDefaultBehavior: 1
|
|
@@ -906,6 +923,7 @@ class LspClientConnection extends LspClientTransport {
|
|
|
906
923
|
initializationOptions: this.server.initialization
|
|
907
924
|
}, { timeoutMs: this.initializeTimeoutMs });
|
|
908
925
|
this.setDiagnosticPullSupported(supportsDiagnosticPull(result?.capabilities));
|
|
926
|
+
this.setDocumentFormattingSupported(supportsDocumentFormatting(result?.capabilities));
|
|
909
927
|
await this.sendNotification("initialized", {});
|
|
910
928
|
await this.sendNotification("workspace/didChangeConfiguration", {
|
|
911
929
|
settings: { json: { validate: { enable: true } } }
|
|
@@ -2500,6 +2518,18 @@ class LspClient extends LspClientConnection {
|
|
|
2500
2518
|
textDocument: { uri: pathToFileURL3(absPath).href }
|
|
2501
2519
|
}, options);
|
|
2502
2520
|
}
|
|
2521
|
+
async formatDocument(filePath, options, signal) {
|
|
2522
|
+
if (!this.isDocumentFormattingSupported())
|
|
2523
|
+
return null;
|
|
2524
|
+
const absPath = this.resolveWorkspacePath(filePath);
|
|
2525
|
+
await this.openFile(absPath);
|
|
2526
|
+
const requestOptions = signal === undefined ? {} : { signal };
|
|
2527
|
+
const edits = await this.sendRequest("textDocument/formatting", {
|
|
2528
|
+
textDocument: { uri: pathToFileURL3(absPath).href },
|
|
2529
|
+
options
|
|
2530
|
+
}, requestOptions);
|
|
2531
|
+
return edits ?? [];
|
|
2532
|
+
}
|
|
2503
2533
|
async workspaceSymbols(query, signal) {
|
|
2504
2534
|
const options = signal === undefined ? {} : { signal };
|
|
2505
2535
|
return this.sendRequest("workspace/symbol", { query }, options);
|
|
@@ -2752,6 +2782,7 @@ class LspManager {
|
|
|
2752
2782
|
this.disposed = false;
|
|
2753
2783
|
this.idleTimeoutMs = options.idleTimeoutMs ?? IDLE_TIMEOUT_MS;
|
|
2754
2784
|
this.initTimeoutMs = options.initTimeoutMs ?? INIT_TIMEOUT_MS;
|
|
2785
|
+
this.maxResidentClients = options.maxResidentClients ?? MAX_RESIDENT_CLIENTS;
|
|
2755
2786
|
this.reaperIntervalMs = options.reaperIntervalMs ?? REAPER_INTERVAL_MS;
|
|
2756
2787
|
this.clientFactory = options.clientFactory ?? ((root, server) => new LspClient(root, server));
|
|
2757
2788
|
this.now = options.now ?? (() => Date.now());
|
|
@@ -2785,6 +2816,26 @@ class LspManager {
|
|
|
2785
2816
|
}
|
|
2786
2817
|
}
|
|
2787
2818
|
}
|
|
2819
|
+
evictForAdmission() {
|
|
2820
|
+
while (this.clients.size >= this.maxResidentClients) {
|
|
2821
|
+
const victim = this.leastRecentlyUsedIdleClient();
|
|
2822
|
+
if (!victim)
|
|
2823
|
+
return;
|
|
2824
|
+
this.clients.delete(victim.key);
|
|
2825
|
+
stopClientBestEffort(victim.managed.client);
|
|
2826
|
+
}
|
|
2827
|
+
}
|
|
2828
|
+
leastRecentlyUsedIdleClient() {
|
|
2829
|
+
let candidate = null;
|
|
2830
|
+
for (const [key, managed] of this.clients) {
|
|
2831
|
+
if (managed.refCount > 0 || managed.pendingWaiters > 0 || managed.isInitializing)
|
|
2832
|
+
continue;
|
|
2833
|
+
if (candidate === null || managed.lastUsedAt < candidate.managed.lastUsedAt) {
|
|
2834
|
+
candidate = { key, managed };
|
|
2835
|
+
}
|
|
2836
|
+
}
|
|
2837
|
+
return candidate;
|
|
2838
|
+
}
|
|
2788
2839
|
async tryDeleteIfOrphaned(key, managed) {
|
|
2789
2840
|
if (managed.refCount === 0 && managed.pendingWaiters === 0 && !managed.isInitializing && this.clients.get(key) === managed) {
|
|
2790
2841
|
this.clients.delete(key);
|
|
@@ -2831,6 +2882,7 @@ class LspManager {
|
|
|
2831
2882
|
managed.lastUsedAt = this.now();
|
|
2832
2883
|
return managed.client;
|
|
2833
2884
|
}
|
|
2885
|
+
this.evictForAdmission();
|
|
2834
2886
|
const client = this.clientFactory(root, server);
|
|
2835
2887
|
const initStartedAt = this.now();
|
|
2836
2888
|
const initPromise = (async () => {
|
|
@@ -2893,6 +2945,7 @@ class LspManager {
|
|
|
2893
2945
|
const key = this.getKey(root, server.id);
|
|
2894
2946
|
if (this.clients.has(key))
|
|
2895
2947
|
return;
|
|
2948
|
+
this.evictForAdmission();
|
|
2896
2949
|
const client = this.clientFactory(root, server);
|
|
2897
2950
|
const initStartedAt = this.now();
|
|
2898
2951
|
const initPromise = (async () => {
|