oh-my-opencode 5.1.38 → 5.1.40
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 +206 -187
- package/dist/cli-node/index.js +206 -187
- package/dist/index.js +183 -171
- package/dist/skills/browser/runtime/omowright/manifest.json +1 -1
- package/dist/skills/git-master/SKILL.md +1 -1
- package/dist/skills/ulw-plan/SKILL.md +1 -1
- package/dist/skills/ulw-plan/references/full-workflow.md +5 -4
- package/dist/tui.js +29 -22
- package/package.json +15 -14
- package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +8 -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/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 +2 -2
- 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/hooks/hooks.json +4 -4
- package/packages/omo-codex/plugin/components/rules/package.json +1 -1
- 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 +157 -151
- package/packages/omo-codex/plugin/components/telemetry/dist/posthog.js +157 -151
- 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/ultrawork/skills/ulw-plan/SKILL.md +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/full-workflow.md +5 -4
- package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +5 -5
- package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
- 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-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/post-tool-use-recording-spawn-admission.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-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-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 +12 -12
- package/packages/omo-codex/plugin/package.json +1 -1
- package/packages/omo-codex/plugin/skills/browser/runtime/omowright/manifest.json +1 -1
- package/packages/omo-codex/plugin/skills/git-master/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/ulw-plan/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/ulw-plan/references/full-workflow.md +5 -4
- package/packages/omo-codex/scripts/install-dist/install-local.mjs +179 -168
- package/packages/shared-skills/skills/browser/runtime/omowright/manifest.json +1 -1
- package/packages/shared-skills/skills/git-master/SKILL.md +1 -1
- package/packages/shared-skills/skills/ulw-plan/SKILL.md +1 -1
- package/packages/shared-skills/skills/ulw-plan/references/full-workflow.md +5 -4
package/dist/index.js
CHANGED
|
@@ -84955,14 +84955,20 @@ var OmoComputerSettingsSchema = OmoComputerSettingsLayerSchema;
|
|
|
84955
84955
|
|
|
84956
84956
|
// packages/omo-config-core/src/schema/git-master.ts
|
|
84957
84957
|
import * as z6 from "zod";
|
|
84958
|
+
var GIT_ENV_ASSIGNMENT_PATTERN = /^(?:[A-Za-z_][A-Za-z0-9_]*=[A-Za-z0-9_-]*)(?: [A-Za-z_][A-Za-z0-9_]*=[A-Za-z0-9_-]*)*$/;
|
|
84959
|
+
var GitEnvPrefixSchema = z6.string().refine((value) => value === "" || GIT_ENV_ASSIGNMENT_PATTERN.test(value), {
|
|
84960
|
+
message: 'git_env_prefix must be empty or use shell-safe env assignments like "GIT_MASTER=1"'
|
|
84961
|
+
});
|
|
84958
84962
|
var OmoGitMasterSettingsShape = {
|
|
84959
84963
|
commit_footer: z6.union([z6.boolean(), z6.string()]),
|
|
84960
|
-
include_co_authored_by: z6.boolean()
|
|
84964
|
+
include_co_authored_by: z6.boolean(),
|
|
84965
|
+
git_env_prefix: GitEnvPrefixSchema
|
|
84961
84966
|
};
|
|
84962
84967
|
var OmoGitMasterSettingsLayerSchema = z6.object(OmoGitMasterSettingsShape).partial().strict();
|
|
84963
84968
|
var OmoGitMasterSettingsSchema = OmoGitMasterSettingsLayerSchema.extend({
|
|
84964
84969
|
commit_footer: z6.union([z6.boolean(), z6.string()]).default(false),
|
|
84965
|
-
include_co_authored_by: z6.boolean().default(false)
|
|
84970
|
+
include_co_authored_by: z6.boolean().default(false),
|
|
84971
|
+
git_env_prefix: GitEnvPrefixSchema.default("GIT_MASTER=1")
|
|
84966
84972
|
}).strict();
|
|
84967
84973
|
|
|
84968
84974
|
// packages/omo-config-core/src/schema/harness.ts
|
|
@@ -87797,7 +87803,7 @@ init_src();
|
|
|
87797
87803
|
// package.json
|
|
87798
87804
|
var package_default = {
|
|
87799
87805
|
name: "oh-my-opencode",
|
|
87800
|
-
version: "5.1.
|
|
87806
|
+
version: "5.1.40",
|
|
87801
87807
|
description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
|
|
87802
87808
|
main: "./dist/index.js",
|
|
87803
87809
|
types: "dist/index.d.ts",
|
|
@@ -87974,7 +87980,7 @@ var package_default = {
|
|
|
87974
87980
|
},
|
|
87975
87981
|
devDependencies: {
|
|
87976
87982
|
"@clack/prompts": "^1.8.1",
|
|
87977
|
-
"@code-yeongyu/senpi": "2026.10.19",
|
|
87983
|
+
"@code-yeongyu/senpi": "2026.10.19-2",
|
|
87978
87984
|
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
87979
87985
|
"@oh-my-opencode/agents-md-core": "workspace:*",
|
|
87980
87986
|
"@oh-my-opencode/ast-grep-mcp": "workspace:*",
|
|
@@ -88015,6 +88021,7 @@ var package_default = {
|
|
|
88015
88021
|
"@opentui/core": "^0.5.11",
|
|
88016
88022
|
"@opentui/keymap": "^0.5.11",
|
|
88017
88023
|
"@types/js-yaml": "^4.0.9",
|
|
88024
|
+
"@types/node": "26.6.2",
|
|
88018
88025
|
"@types/picomatch": "^4.0.3",
|
|
88019
88026
|
"@typescript/native-preview": "7.0.0-dev.20260707.2",
|
|
88020
88027
|
"@typescript/typescript6": "6.0.2",
|
|
@@ -88034,18 +88041,18 @@ var package_default = {
|
|
|
88034
88041
|
typescript: "^7.0.2"
|
|
88035
88042
|
},
|
|
88036
88043
|
optionalDependencies: {
|
|
88037
|
-
"oh-my-opencode-darwin-arm64": "5.1.
|
|
88038
|
-
"oh-my-opencode-darwin-x64": "5.1.
|
|
88039
|
-
"oh-my-opencode-darwin-x64-baseline": "5.1.
|
|
88040
|
-
"oh-my-opencode-linux-arm64": "5.1.
|
|
88041
|
-
"oh-my-opencode-linux-arm64-musl": "5.1.
|
|
88042
|
-
"oh-my-opencode-linux-x64": "5.1.
|
|
88043
|
-
"oh-my-opencode-linux-x64-baseline": "5.1.
|
|
88044
|
-
"oh-my-opencode-linux-x64-musl": "5.1.
|
|
88045
|
-
"oh-my-opencode-linux-x64-musl-baseline": "5.1.
|
|
88046
|
-
"oh-my-opencode-windows-arm64": "5.1.
|
|
88047
|
-
"oh-my-opencode-windows-x64": "5.1.
|
|
88048
|
-
"oh-my-opencode-windows-x64-baseline": "5.1.
|
|
88044
|
+
"oh-my-opencode-darwin-arm64": "5.1.40",
|
|
88045
|
+
"oh-my-opencode-darwin-x64": "5.1.40",
|
|
88046
|
+
"oh-my-opencode-darwin-x64-baseline": "5.1.40",
|
|
88047
|
+
"oh-my-opencode-linux-arm64": "5.1.40",
|
|
88048
|
+
"oh-my-opencode-linux-arm64-musl": "5.1.40",
|
|
88049
|
+
"oh-my-opencode-linux-x64": "5.1.40",
|
|
88050
|
+
"oh-my-opencode-linux-x64-baseline": "5.1.40",
|
|
88051
|
+
"oh-my-opencode-linux-x64-musl": "5.1.40",
|
|
88052
|
+
"oh-my-opencode-linux-x64-musl-baseline": "5.1.40",
|
|
88053
|
+
"oh-my-opencode-windows-arm64": "5.1.40",
|
|
88054
|
+
"oh-my-opencode-windows-x64": "5.1.40",
|
|
88055
|
+
"oh-my-opencode-windows-x64-baseline": "5.1.40"
|
|
88049
88056
|
},
|
|
88050
88057
|
overrides: {
|
|
88051
88058
|
hono: "^4.13.8",
|
|
@@ -88762,13 +88769,13 @@ var GoalConfigSchema = z32.object({
|
|
|
88762
88769
|
});
|
|
88763
88770
|
// packages/skills-loader-core/src/config/git-env-prefix.ts
|
|
88764
88771
|
import { z as z33 } from "zod";
|
|
88765
|
-
var
|
|
88772
|
+
var GIT_ENV_ASSIGNMENT_PATTERN2 = /^(?:[A-Za-z_][A-Za-z0-9_]*=[A-Za-z0-9_-]*)(?: [A-Za-z_][A-Za-z0-9_]*=[A-Za-z0-9_-]*)*$/;
|
|
88766
88773
|
var GIT_ENV_PREFIX_VALIDATION_MESSAGE = 'git_env_prefix must be empty or use shell-safe env assignments like "GIT_MASTER=1"';
|
|
88767
88774
|
function isValidGitEnvPrefix(value) {
|
|
88768
88775
|
if (value === "") {
|
|
88769
88776
|
return true;
|
|
88770
88777
|
}
|
|
88771
|
-
return
|
|
88778
|
+
return GIT_ENV_ASSIGNMENT_PATTERN2.test(value);
|
|
88772
88779
|
}
|
|
88773
88780
|
function assertValidGitEnvPrefix(value) {
|
|
88774
88781
|
if (!isValidGitEnvPrefix(value)) {
|
|
@@ -88776,13 +88783,13 @@ function assertValidGitEnvPrefix(value) {
|
|
|
88776
88783
|
}
|
|
88777
88784
|
return value;
|
|
88778
88785
|
}
|
|
88779
|
-
var
|
|
88786
|
+
var GitEnvPrefixSchema2 = z33.string().refine(isValidGitEnvPrefix, { message: GIT_ENV_PREFIX_VALIDATION_MESSAGE }).default("GIT_MASTER=1");
|
|
88780
88787
|
// packages/omo-opencode/src/config/schema/git-master.ts
|
|
88781
88788
|
import { z as z34 } from "zod";
|
|
88782
88789
|
var GitMasterConfigSchema = z34.object({
|
|
88783
88790
|
commit_footer: z34.union([z34.boolean(), z34.string()]).default(false),
|
|
88784
88791
|
include_co_authored_by: z34.boolean().default(false),
|
|
88785
|
-
git_env_prefix:
|
|
88792
|
+
git_env_prefix: GitEnvPrefixSchema2
|
|
88786
88793
|
});
|
|
88787
88794
|
// packages/omo-opencode/src/config/schema/hooks.ts
|
|
88788
88795
|
import { z as z35 } from "zod";
|
|
@@ -178794,6 +178801,157 @@ function getTelemetryHost(env = process.env, defaultHost = DEFAULT_POSTHOG_HOST)
|
|
|
178794
178801
|
return env["POSTHOG_HOST"]?.trim() || defaultHost;
|
|
178795
178802
|
}
|
|
178796
178803
|
|
|
178804
|
+
// packages/telemetry-core/src/machine-id.ts
|
|
178805
|
+
import { createHash as createHash8 } from "crypto";
|
|
178806
|
+
import os6 from "os";
|
|
178807
|
+
function getDefaultTelemetryOsProvider() {
|
|
178808
|
+
return os6;
|
|
178809
|
+
}
|
|
178810
|
+
function getTelemetryDistinctId(machineIdPrefix, osProvider = getDefaultTelemetryOsProvider()) {
|
|
178811
|
+
return createHash8("sha256").update(`${machineIdPrefix}${osProvider.hostname()}`).digest("hex");
|
|
178812
|
+
}
|
|
178813
|
+
|
|
178814
|
+
// packages/telemetry-core/src/injected-client.ts
|
|
178815
|
+
var NO_OP_CLIENT = {
|
|
178816
|
+
enabled: false,
|
|
178817
|
+
trackActive: () => {
|
|
178818
|
+
return;
|
|
178819
|
+
},
|
|
178820
|
+
flush: async () => {
|
|
178821
|
+
return;
|
|
178822
|
+
},
|
|
178823
|
+
shutdown: async () => {
|
|
178824
|
+
return;
|
|
178825
|
+
}
|
|
178826
|
+
};
|
|
178827
|
+
function isTelemetryClientEnabled(input) {
|
|
178828
|
+
const env = input.env ?? process.env;
|
|
178829
|
+
return !shouldDisableTelemetry({ env, productEnvPrefix: input.product.productEnvPrefix }) && hasTelemetryApiKey(env, input.product.defaultApiKey);
|
|
178830
|
+
}
|
|
178831
|
+
function createTelemetryClient(input) {
|
|
178832
|
+
if (!isTelemetryClientEnabled(input)) {
|
|
178833
|
+
return NO_OP_CLIENT;
|
|
178834
|
+
}
|
|
178835
|
+
const transport = createTransport(input);
|
|
178836
|
+
if (transport === null) {
|
|
178837
|
+
return NO_OP_CLIENT;
|
|
178838
|
+
}
|
|
178839
|
+
const sharedProperties = getSharedProperties(input);
|
|
178840
|
+
return {
|
|
178841
|
+
enabled: true,
|
|
178842
|
+
trackActive: ({ dayUTC, distinctId, reason }) => {
|
|
178843
|
+
try {
|
|
178844
|
+
transport.capture({
|
|
178845
|
+
distinctId,
|
|
178846
|
+
event: input.product.eventName,
|
|
178847
|
+
properties: {
|
|
178848
|
+
...sharedProperties,
|
|
178849
|
+
$process_person_profile: false,
|
|
178850
|
+
day_utc: dayUTC,
|
|
178851
|
+
reason
|
|
178852
|
+
}
|
|
178853
|
+
});
|
|
178854
|
+
} catch (error) {
|
|
178855
|
+
input.diagnostics?.({
|
|
178856
|
+
event: "telemetry_capture_failed",
|
|
178857
|
+
source: input.source,
|
|
178858
|
+
error,
|
|
178859
|
+
errorKind: error instanceof Error ? "error" : "non_error"
|
|
178860
|
+
});
|
|
178861
|
+
}
|
|
178862
|
+
},
|
|
178863
|
+
flush: async () => {
|
|
178864
|
+
if (transport.flush === undefined) {
|
|
178865
|
+
return;
|
|
178866
|
+
}
|
|
178867
|
+
await transport.flush();
|
|
178868
|
+
},
|
|
178869
|
+
shutdown: async () => {
|
|
178870
|
+
try {
|
|
178871
|
+
await transport.shutdown();
|
|
178872
|
+
} catch (error) {
|
|
178873
|
+
input.diagnostics?.({
|
|
178874
|
+
event: "telemetry_shutdown_failed",
|
|
178875
|
+
source: input.source,
|
|
178876
|
+
error,
|
|
178877
|
+
errorKind: error instanceof Error ? "error" : "non_error"
|
|
178878
|
+
});
|
|
178879
|
+
}
|
|
178880
|
+
}
|
|
178881
|
+
};
|
|
178882
|
+
}
|
|
178883
|
+
function createTransport(input) {
|
|
178884
|
+
const env = input.env ?? process.env;
|
|
178885
|
+
const factory = input.transportFactory;
|
|
178886
|
+
try {
|
|
178887
|
+
return factory(getTelemetryApiKey(env, input.product.defaultApiKey), {
|
|
178888
|
+
enableExceptionAutocapture: false,
|
|
178889
|
+
enableLocalEvaluation: false,
|
|
178890
|
+
strictLocalEvaluation: true,
|
|
178891
|
+
disableRemoteConfig: true,
|
|
178892
|
+
flushAt: 1,
|
|
178893
|
+
flushInterval: 0,
|
|
178894
|
+
host: getTelemetryHost(env, input.product.defaultHost),
|
|
178895
|
+
disableGeoip: input.product.disableGeoip ?? false,
|
|
178896
|
+
...input.product.transportOptions
|
|
178897
|
+
});
|
|
178898
|
+
} catch (error) {
|
|
178899
|
+
input.diagnostics?.({
|
|
178900
|
+
event: "telemetry_posthog_init_failed",
|
|
178901
|
+
source: input.source,
|
|
178902
|
+
error,
|
|
178903
|
+
errorKind: error instanceof Error ? "error" : "non_error"
|
|
178904
|
+
});
|
|
178905
|
+
return null;
|
|
178906
|
+
}
|
|
178907
|
+
}
|
|
178908
|
+
function getSharedProperties(input) {
|
|
178909
|
+
const osProvider = input.osProvider ?? getDefaultTelemetryOsProvider();
|
|
178910
|
+
const cpuInfo = getSafeCpuInfo(osProvider, input);
|
|
178911
|
+
return {
|
|
178912
|
+
platform: input.product.platform,
|
|
178913
|
+
product_name: input.product.productName,
|
|
178914
|
+
package_name: input.product.packageName,
|
|
178915
|
+
package_version: input.product.packageVersion,
|
|
178916
|
+
runtime: "bun",
|
|
178917
|
+
runtime_version: process.versions.bun ?? process.version,
|
|
178918
|
+
source: input.source,
|
|
178919
|
+
$os: osProvider.platform(),
|
|
178920
|
+
$os_version: osProvider.release(),
|
|
178921
|
+
os_arch: osProvider.arch(),
|
|
178922
|
+
os_type: osProvider.type(),
|
|
178923
|
+
cpu_count: cpuInfo.count,
|
|
178924
|
+
cpu_model: cpuInfo.model,
|
|
178925
|
+
total_memory_gb: Math.round(osProvider.totalmem() / 1024 / 1024 / 1024),
|
|
178926
|
+
locale: Intl.DateTimeFormat().resolvedOptions().locale,
|
|
178927
|
+
timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
|
|
178928
|
+
shell: process.env.SHELL,
|
|
178929
|
+
ci: Boolean(process.env.CI),
|
|
178930
|
+
terminal: process.env.TERM_PROGRAM,
|
|
178931
|
+
...input.product.additionalProperties
|
|
178932
|
+
};
|
|
178933
|
+
}
|
|
178934
|
+
function getSafeCpuInfo(osProvider, input) {
|
|
178935
|
+
try {
|
|
178936
|
+
const cpuInfo = osProvider.cpus();
|
|
178937
|
+
return {
|
|
178938
|
+
count: cpuInfo.length,
|
|
178939
|
+
model: cpuInfo[0]?.model
|
|
178940
|
+
};
|
|
178941
|
+
} catch (error) {
|
|
178942
|
+
input.diagnostics?.({
|
|
178943
|
+
event: "telemetry_cpu_info_unavailable",
|
|
178944
|
+
source: "shared",
|
|
178945
|
+
error,
|
|
178946
|
+
errorKind: error instanceof Error ? "error" : "non_error"
|
|
178947
|
+
});
|
|
178948
|
+
return {
|
|
178949
|
+
count: 0,
|
|
178950
|
+
model: undefined
|
|
178951
|
+
};
|
|
178952
|
+
}
|
|
178953
|
+
}
|
|
178954
|
+
|
|
178797
178955
|
// node_modules/.bun/posthog-node@5.52.4/node_modules/posthog-node/dist/extensions/error-tracking/modifiers/module.node.mjs
|
|
178798
178956
|
import { dirname as dirname51, posix as posix12, sep as sep4 } from "path";
|
|
178799
178957
|
function createModulerModifier() {
|
|
@@ -187860,30 +188018,7 @@ class PostHog extends PostHogBackendClient {
|
|
|
187860
188018
|
}
|
|
187861
188019
|
}
|
|
187862
188020
|
|
|
187863
|
-
// packages/telemetry-core/src/
|
|
187864
|
-
import { createHash as createHash8 } from "crypto";
|
|
187865
|
-
import os6 from "os";
|
|
187866
|
-
function getDefaultTelemetryOsProvider() {
|
|
187867
|
-
return os6;
|
|
187868
|
-
}
|
|
187869
|
-
function getTelemetryDistinctId(machineIdPrefix, osProvider = getDefaultTelemetryOsProvider()) {
|
|
187870
|
-
return createHash8("sha256").update(`${machineIdPrefix}${osProvider.hostname()}`).digest("hex");
|
|
187871
|
-
}
|
|
187872
|
-
|
|
187873
|
-
// packages/telemetry-core/src/posthog-client.ts
|
|
187874
|
-
var NO_OP_CLIENT = {
|
|
187875
|
-
enabled: false,
|
|
187876
|
-
trackActive: () => {
|
|
187877
|
-
return;
|
|
187878
|
-
},
|
|
187879
|
-
flush: async () => {
|
|
187880
|
-
return;
|
|
187881
|
-
},
|
|
187882
|
-
shutdown: async () => {
|
|
187883
|
-
return;
|
|
187884
|
-
}
|
|
187885
|
-
};
|
|
187886
|
-
|
|
188021
|
+
// packages/telemetry-core/src/posthog-transport.ts
|
|
187887
188022
|
class PostHogTelemetryTransport {
|
|
187888
188023
|
#client;
|
|
187889
188024
|
constructor(apiKey, options) {
|
|
@@ -187902,132 +188037,9 @@ class PostHogTelemetryTransport {
|
|
|
187902
188037
|
function createDefaultPostHogTransport(apiKey, options) {
|
|
187903
188038
|
return new PostHogTelemetryTransport(apiKey, options);
|
|
187904
188039
|
}
|
|
187905
|
-
|
|
187906
|
-
|
|
187907
|
-
return
|
|
187908
|
-
}
|
|
187909
|
-
function createTelemetryClient(input) {
|
|
187910
|
-
if (!isTelemetryClientEnabled(input)) {
|
|
187911
|
-
return NO_OP_CLIENT;
|
|
187912
|
-
}
|
|
187913
|
-
const transport = createTransport(input);
|
|
187914
|
-
if (transport === null) {
|
|
187915
|
-
return NO_OP_CLIENT;
|
|
187916
|
-
}
|
|
187917
|
-
const sharedProperties = getSharedProperties(input);
|
|
187918
|
-
return {
|
|
187919
|
-
enabled: true,
|
|
187920
|
-
trackActive: ({ dayUTC, distinctId, reason }) => {
|
|
187921
|
-
try {
|
|
187922
|
-
transport.capture({
|
|
187923
|
-
distinctId,
|
|
187924
|
-
event: input.product.eventName,
|
|
187925
|
-
properties: {
|
|
187926
|
-
...sharedProperties,
|
|
187927
|
-
$process_person_profile: false,
|
|
187928
|
-
day_utc: dayUTC,
|
|
187929
|
-
reason
|
|
187930
|
-
}
|
|
187931
|
-
});
|
|
187932
|
-
} catch (error) {
|
|
187933
|
-
input.diagnostics?.({
|
|
187934
|
-
event: "telemetry_capture_failed",
|
|
187935
|
-
source: input.source,
|
|
187936
|
-
error,
|
|
187937
|
-
errorKind: error instanceof Error ? "error" : "non_error"
|
|
187938
|
-
});
|
|
187939
|
-
}
|
|
187940
|
-
},
|
|
187941
|
-
flush: async () => {
|
|
187942
|
-
if (transport.flush === undefined) {
|
|
187943
|
-
return;
|
|
187944
|
-
}
|
|
187945
|
-
await transport.flush();
|
|
187946
|
-
},
|
|
187947
|
-
shutdown: async () => {
|
|
187948
|
-
try {
|
|
187949
|
-
await transport.shutdown();
|
|
187950
|
-
} catch (error) {
|
|
187951
|
-
input.diagnostics?.({
|
|
187952
|
-
event: "telemetry_shutdown_failed",
|
|
187953
|
-
source: input.source,
|
|
187954
|
-
error,
|
|
187955
|
-
errorKind: error instanceof Error ? "error" : "non_error"
|
|
187956
|
-
});
|
|
187957
|
-
}
|
|
187958
|
-
}
|
|
187959
|
-
};
|
|
187960
|
-
}
|
|
187961
|
-
function createTransport(input) {
|
|
187962
|
-
const env = input.env ?? process.env;
|
|
187963
|
-
const factory = input.transportFactory ?? createDefaultPostHogTransport;
|
|
187964
|
-
try {
|
|
187965
|
-
return factory(getTelemetryApiKey(env, input.product.defaultApiKey), {
|
|
187966
|
-
enableExceptionAutocapture: false,
|
|
187967
|
-
enableLocalEvaluation: false,
|
|
187968
|
-
strictLocalEvaluation: true,
|
|
187969
|
-
disableRemoteConfig: true,
|
|
187970
|
-
flushAt: 1,
|
|
187971
|
-
flushInterval: 0,
|
|
187972
|
-
host: getTelemetryHost(env, input.product.defaultHost),
|
|
187973
|
-
disableGeoip: input.product.disableGeoip ?? false,
|
|
187974
|
-
...input.product.transportOptions
|
|
187975
|
-
});
|
|
187976
|
-
} catch (error) {
|
|
187977
|
-
input.diagnostics?.({
|
|
187978
|
-
event: "telemetry_posthog_init_failed",
|
|
187979
|
-
source: input.source,
|
|
187980
|
-
error,
|
|
187981
|
-
errorKind: error instanceof Error ? "error" : "non_error"
|
|
187982
|
-
});
|
|
187983
|
-
return null;
|
|
187984
|
-
}
|
|
187985
|
-
}
|
|
187986
|
-
function getSharedProperties(input) {
|
|
187987
|
-
const osProvider = input.osProvider ?? getDefaultTelemetryOsProvider();
|
|
187988
|
-
const cpuInfo = getSafeCpuInfo(osProvider, input);
|
|
187989
|
-
return {
|
|
187990
|
-
platform: input.product.platform,
|
|
187991
|
-
product_name: input.product.productName,
|
|
187992
|
-
package_name: input.product.packageName,
|
|
187993
|
-
package_version: input.product.packageVersion,
|
|
187994
|
-
runtime: "bun",
|
|
187995
|
-
runtime_version: process.versions.bun ?? process.version,
|
|
187996
|
-
source: input.source,
|
|
187997
|
-
$os: osProvider.platform(),
|
|
187998
|
-
$os_version: osProvider.release(),
|
|
187999
|
-
os_arch: osProvider.arch(),
|
|
188000
|
-
os_type: osProvider.type(),
|
|
188001
|
-
cpu_count: cpuInfo.count,
|
|
188002
|
-
cpu_model: cpuInfo.model,
|
|
188003
|
-
total_memory_gb: Math.round(osProvider.totalmem() / 1024 / 1024 / 1024),
|
|
188004
|
-
locale: Intl.DateTimeFormat().resolvedOptions().locale,
|
|
188005
|
-
timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
|
|
188006
|
-
shell: process.env.SHELL,
|
|
188007
|
-
ci: Boolean(process.env.CI),
|
|
188008
|
-
terminal: process.env.TERM_PROGRAM,
|
|
188009
|
-
...input.product.additionalProperties
|
|
188010
|
-
};
|
|
188011
|
-
}
|
|
188012
|
-
function getSafeCpuInfo(osProvider, input) {
|
|
188013
|
-
try {
|
|
188014
|
-
const cpuInfo = osProvider.cpus();
|
|
188015
|
-
return {
|
|
188016
|
-
count: cpuInfo.length,
|
|
188017
|
-
model: cpuInfo[0]?.model
|
|
188018
|
-
};
|
|
188019
|
-
} catch (error) {
|
|
188020
|
-
input.diagnostics?.({
|
|
188021
|
-
event: "telemetry_cpu_info_unavailable",
|
|
188022
|
-
source: "shared",
|
|
188023
|
-
error,
|
|
188024
|
-
errorKind: error instanceof Error ? "error" : "non_error"
|
|
188025
|
-
});
|
|
188026
|
-
return {
|
|
188027
|
-
count: 0,
|
|
188028
|
-
model: undefined
|
|
188029
|
-
};
|
|
188030
|
-
}
|
|
188040
|
+
// packages/telemetry-core/src/posthog-client.ts
|
|
188041
|
+
function createTelemetryClient2(input) {
|
|
188042
|
+
return createTelemetryClient({ ...input, transportFactory: input.transportFactory ?? createDefaultPostHogTransport });
|
|
188031
188043
|
}
|
|
188032
188044
|
|
|
188033
188045
|
// packages/omo-opencode/src/shared/posthog-activity-state.ts
|
|
@@ -188154,7 +188166,7 @@ function createPostHogClient(source, options = {}) {
|
|
|
188154
188166
|
if (shouldDisablePostHog(env, options.configEnabled)) {
|
|
188155
188167
|
return NO_OP_POSTHOG;
|
|
188156
188168
|
}
|
|
188157
|
-
const client =
|
|
188169
|
+
const client = createTelemetryClient2({
|
|
188158
188170
|
diagnostics: logTelemetryDiagnostic,
|
|
188159
188171
|
env: createCoreCompatibleTelemetryEnv(env),
|
|
188160
188172
|
osProvider: resolveOsProvider(),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: git-master
|
|
3
|
-
description: "
|
|
3
|
+
description: "MUST USE for ANY git operations: atomic commits, rebase/squash/fixup, and history search (blame, bisect, log -S, reflog). Load it before running git yourself, or pass load_skills=['git-master'] to the task that commits. Triggers: 'commit', 'rebase', 'squash', 'who wrote', 'when was X added', 'find the commit that'."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Git Master
|
|
@@ -34,7 +34,7 @@ Example opening (adapt the wording, keep every commitment):
|
|
|
34
34
|
|
|
35
35
|
## INTENT ROUTING - pick ONE intent reference
|
|
36
36
|
|
|
37
|
-
**Review modifiers are a gate trigger, not a style cue.** If the user says "high accuracy", "ultra high accuracy", "고정밀", "deep review", or equivalent - in ANY turn, even appended to a follow-up question and even after the plan already exists - set `review_required: true` in the draft: the dual high-accuracy review (native `momus` + the independent Oracle review) is now REQUIRED before handoff, and if the plan already exists you run it this same turn. The review runs under the bounded convergence contract in `full-workflow.md`: a
|
|
37
|
+
**Review modifiers are a gate trigger, not a style cue.** If the user says "high accuracy", "ultra high accuracy", "고정밀", "deep review", or equivalent - in ANY turn, even appended to a follow-up question and even after the plan already exists - set `review_required: true` in the draft: the dual high-accuracy review (native `momus` + the independent Oracle review) is now REQUIRED before handoff, and if the plan already exists you run it this same turn. The review runs under the bounded convergence contract in `full-workflow.md`: convergence-bounded rounds (another round only while the previous one raised a new blocker-eligible finding or closed a ledger blocker; a round with neither that still does not approve stops the review), evidence-backed blocker eligibility, and approval-with-notes counting as approval. Answering the current question more carefully does NOT satisfy it. This does NOT choose CLEAR/UNCLEAR and does NOT suppress interview.
|
|
38
38
|
|
|
39
39
|
After grounding, make ONE judgment, record `intent: clear|unclear` plus `review_required`, **ANNOUNCE both to the user in one line**, then load ONE intent reference (you ALSO read `references/full-workflow.md` for the shared mechanics - see below). The test keys on whether the desired **OUTCOME** is clear, NOT on request length. This verdict line and the opening announcement above are the two mandatory user-visible signals of a planning session - it tells the user whether they will be interviewed and whether high-accuracy review is already requested; never skip either.
|
|
40
40
|
|
|
@@ -214,14 +214,15 @@ Every reviewer prompt must carry this intake contract with all angle-bracket val
|
|
|
214
214
|
The first action must open the literal workspace root as a directory descriptor, then traverse `.omo`, `plans`, and the final target with descriptor-relative no-follow opens, `fstat` each ancestor as a directory and the final descriptor as a regular file, and hash all bytes read from that same final descriptor. If the platform cannot guarantee this chain, or any path/runtime/launch/receipt/digest check drifts, return `INCONCLUSIVE` before reviewing. Echo the literal workspace, runtime home, target, digest, round, and launch ID; the parent separately matches the completion envelope to the persisted session/process receipt. Never search or use another artifact.
|
|
215
215
|
|
|
216
216
|
### Bounded convergence (the review must terminate)
|
|
217
|
-
Review
|
|
217
|
+
Review continues until unconditional approval, but a further round runs only while the previous round made progress: it raised at least one NEW blocker-eligible finding (one not already in the ledger and not a restatement of a closed blocker), or it confirmed at least one ledger blocker closed. A round that does neither and still does not approve ends the review: stop, report the outstanding blockers, and ask the user. This is the non-convergence guard, so there is no fixed round count; it terminates because the ledger is frozen after round 1, so every closure shrinks it. An approval whose only remaining items are notes counts as approval. A finding may BLOCK only when it names at least one `blocker_eligibility` category below with its concrete evidence - an IS row no todo closes, no QA scenario proves, or the approach cannot reach for the named user is such a category; every other finding - speculative durability, replay/crash-recovery, schema, CLI-parsing, state-machine, or hardening concerns the accepted scope never required - is recorded as a non-blocking note and becomes implementation/test work, never plan expansion. After round 1 the blocker ledger FREEZES: later rounds verify accepted ledger blockers, regressions introduced by fixes, and new findings that pass eligibility - they never rediscover the plan from scratch. Fixes apply the smallest edit that resolves the cited blocker; neither reviews nor fixes grow the plan's scope. Every reviewer prompt carries this convergence contract alongside the intake contract. On cap exhaustion without approval: STOP, report outstanding blockers, ask the user - continue / accept / adjust.
|
|
218
218
|
|
|
219
219
|
<!-- ulw-plan-review-convergence-contract -->
|
|
220
220
|
```json
|
|
221
221
|
{
|
|
222
|
-
"max_rounds":
|
|
223
|
-
"
|
|
224
|
-
"
|
|
222
|
+
"max_rounds": null,
|
|
223
|
+
"continue_while": "previous_round_raised_new_blocker_eligible_finding_or_closed_ledger_blocker",
|
|
224
|
+
"stop_on": "round_without_new_blocker_eligible_finding_or_ledger_blocker_closure",
|
|
225
|
+
"on_stop_without_approval": "stop_report_outstanding_blockers_ask_user",
|
|
225
226
|
"blocker_eligibility": [
|
|
226
227
|
"explicit_requirement_or_accepted_decision",
|
|
227
228
|
"existing_failing_regression",
|
package/dist/tui.js
CHANGED
|
@@ -70075,17 +70075,23 @@ var init_computer = __esm(() => {
|
|
|
70075
70075
|
});
|
|
70076
70076
|
|
|
70077
70077
|
// packages/omo-config-core/src/schema/git-master.ts
|
|
70078
|
-
var OmoGitMasterSettingsShape, OmoGitMasterSettingsLayerSchema, OmoGitMasterSettingsSchema;
|
|
70078
|
+
var GIT_ENV_ASSIGNMENT_PATTERN, GitEnvPrefixSchema, OmoGitMasterSettingsShape, OmoGitMasterSettingsLayerSchema, OmoGitMasterSettingsSchema;
|
|
70079
70079
|
var init_git_master = __esm(() => {
|
|
70080
70080
|
init_zod();
|
|
70081
|
+
GIT_ENV_ASSIGNMENT_PATTERN = /^(?:[A-Za-z_][A-Za-z0-9_]*=[A-Za-z0-9_-]*)(?: [A-Za-z_][A-Za-z0-9_]*=[A-Za-z0-9_-]*)*$/;
|
|
70082
|
+
GitEnvPrefixSchema = string2().refine((value) => value === "" || GIT_ENV_ASSIGNMENT_PATTERN.test(value), {
|
|
70083
|
+
message: 'git_env_prefix must be empty or use shell-safe env assignments like "GIT_MASTER=1"'
|
|
70084
|
+
});
|
|
70081
70085
|
OmoGitMasterSettingsShape = {
|
|
70082
70086
|
commit_footer: union([boolean2(), string2()]),
|
|
70083
|
-
include_co_authored_by: boolean2()
|
|
70087
|
+
include_co_authored_by: boolean2(),
|
|
70088
|
+
git_env_prefix: GitEnvPrefixSchema
|
|
70084
70089
|
};
|
|
70085
70090
|
OmoGitMasterSettingsLayerSchema = object(OmoGitMasterSettingsShape).partial().strict();
|
|
70086
70091
|
OmoGitMasterSettingsSchema = OmoGitMasterSettingsLayerSchema.extend({
|
|
70087
70092
|
commit_footer: union([boolean2(), string2()]).default(false),
|
|
70088
|
-
include_co_authored_by: boolean2().default(false)
|
|
70093
|
+
include_co_authored_by: boolean2().default(false),
|
|
70094
|
+
git_env_prefix: GitEnvPrefixSchema.default("GIT_MASTER=1")
|
|
70089
70095
|
}).strict();
|
|
70090
70096
|
});
|
|
70091
70097
|
|
|
@@ -72632,13 +72638,13 @@ function isValidGitEnvPrefix(value) {
|
|
|
72632
72638
|
if (value === "") {
|
|
72633
72639
|
return true;
|
|
72634
72640
|
}
|
|
72635
|
-
return
|
|
72641
|
+
return GIT_ENV_ASSIGNMENT_PATTERN2.test(value);
|
|
72636
72642
|
}
|
|
72637
|
-
var
|
|
72643
|
+
var GIT_ENV_ASSIGNMENT_PATTERN2, GIT_ENV_PREFIX_VALIDATION_MESSAGE = 'git_env_prefix must be empty or use shell-safe env assignments like "GIT_MASTER=1"', GitEnvPrefixSchema2;
|
|
72638
72644
|
var init_git_env_prefix = __esm(() => {
|
|
72639
72645
|
init_zod();
|
|
72640
|
-
|
|
72641
|
-
|
|
72646
|
+
GIT_ENV_ASSIGNMENT_PATTERN2 = /^(?:[A-Za-z_][A-Za-z0-9_]*=[A-Za-z0-9_-]*)(?: [A-Za-z_][A-Za-z0-9_]*=[A-Za-z0-9_-]*)*$/;
|
|
72647
|
+
GitEnvPrefixSchema2 = string2().refine(isValidGitEnvPrefix, { message: GIT_ENV_PREFIX_VALIDATION_MESSAGE }).default("GIT_MASTER=1");
|
|
72642
72648
|
});
|
|
72643
72649
|
|
|
72644
72650
|
// packages/omo-opencode/src/config/schema/git-env-prefix.ts
|
|
@@ -72654,7 +72660,7 @@ var init_git_master2 = __esm(() => {
|
|
|
72654
72660
|
GitMasterConfigSchema = object({
|
|
72655
72661
|
commit_footer: union([boolean2(), string2()]).default(false),
|
|
72656
72662
|
include_co_authored_by: boolean2().default(false),
|
|
72657
|
-
git_env_prefix:
|
|
72663
|
+
git_env_prefix: GitEnvPrefixSchema2
|
|
72658
72664
|
});
|
|
72659
72665
|
});
|
|
72660
72666
|
|
|
@@ -75008,7 +75014,7 @@ init_shared();
|
|
|
75008
75014
|
// package.json
|
|
75009
75015
|
var package_default = {
|
|
75010
75016
|
name: "oh-my-opencode",
|
|
75011
|
-
version: "5.1.
|
|
75017
|
+
version: "5.1.40",
|
|
75012
75018
|
description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
|
|
75013
75019
|
main: "./dist/index.js",
|
|
75014
75020
|
types: "dist/index.d.ts",
|
|
@@ -75185,7 +75191,7 @@ var package_default = {
|
|
|
75185
75191
|
},
|
|
75186
75192
|
devDependencies: {
|
|
75187
75193
|
"@clack/prompts": "^1.8.1",
|
|
75188
|
-
"@code-yeongyu/senpi": "2026.10.19",
|
|
75194
|
+
"@code-yeongyu/senpi": "2026.10.19-2",
|
|
75189
75195
|
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
75190
75196
|
"@oh-my-opencode/agents-md-core": "workspace:*",
|
|
75191
75197
|
"@oh-my-opencode/ast-grep-mcp": "workspace:*",
|
|
@@ -75226,6 +75232,7 @@ var package_default = {
|
|
|
75226
75232
|
"@opentui/core": "^0.5.11",
|
|
75227
75233
|
"@opentui/keymap": "^0.5.11",
|
|
75228
75234
|
"@types/js-yaml": "^4.0.9",
|
|
75235
|
+
"@types/node": "26.6.2",
|
|
75229
75236
|
"@types/picomatch": "^4.0.3",
|
|
75230
75237
|
"@typescript/native-preview": "7.0.0-dev.20260707.2",
|
|
75231
75238
|
"@typescript/typescript6": "6.0.2",
|
|
@@ -75245,18 +75252,18 @@ var package_default = {
|
|
|
75245
75252
|
typescript: "^7.0.2"
|
|
75246
75253
|
},
|
|
75247
75254
|
optionalDependencies: {
|
|
75248
|
-
"oh-my-opencode-darwin-arm64": "5.1.
|
|
75249
|
-
"oh-my-opencode-darwin-x64": "5.1.
|
|
75250
|
-
"oh-my-opencode-darwin-x64-baseline": "5.1.
|
|
75251
|
-
"oh-my-opencode-linux-arm64": "5.1.
|
|
75252
|
-
"oh-my-opencode-linux-arm64-musl": "5.1.
|
|
75253
|
-
"oh-my-opencode-linux-x64": "5.1.
|
|
75254
|
-
"oh-my-opencode-linux-x64-baseline": "5.1.
|
|
75255
|
-
"oh-my-opencode-linux-x64-musl": "5.1.
|
|
75256
|
-
"oh-my-opencode-linux-x64-musl-baseline": "5.1.
|
|
75257
|
-
"oh-my-opencode-windows-arm64": "5.1.
|
|
75258
|
-
"oh-my-opencode-windows-x64": "5.1.
|
|
75259
|
-
"oh-my-opencode-windows-x64-baseline": "5.1.
|
|
75255
|
+
"oh-my-opencode-darwin-arm64": "5.1.40",
|
|
75256
|
+
"oh-my-opencode-darwin-x64": "5.1.40",
|
|
75257
|
+
"oh-my-opencode-darwin-x64-baseline": "5.1.40",
|
|
75258
|
+
"oh-my-opencode-linux-arm64": "5.1.40",
|
|
75259
|
+
"oh-my-opencode-linux-arm64-musl": "5.1.40",
|
|
75260
|
+
"oh-my-opencode-linux-x64": "5.1.40",
|
|
75261
|
+
"oh-my-opencode-linux-x64-baseline": "5.1.40",
|
|
75262
|
+
"oh-my-opencode-linux-x64-musl": "5.1.40",
|
|
75263
|
+
"oh-my-opencode-linux-x64-musl-baseline": "5.1.40",
|
|
75264
|
+
"oh-my-opencode-windows-arm64": "5.1.40",
|
|
75265
|
+
"oh-my-opencode-windows-x64": "5.1.40",
|
|
75266
|
+
"oh-my-opencode-windows-x64-baseline": "5.1.40"
|
|
75260
75267
|
},
|
|
75261
75268
|
overrides: {
|
|
75262
75269
|
hono: "^4.13.8",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oh-my-opencode",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.40",
|
|
4
4
|
"description": "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -177,7 +177,7 @@
|
|
|
177
177
|
},
|
|
178
178
|
"devDependencies": {
|
|
179
179
|
"@clack/prompts": "^1.8.1",
|
|
180
|
-
"@code-yeongyu/senpi": "2026.10.19",
|
|
180
|
+
"@code-yeongyu/senpi": "2026.10.19-2",
|
|
181
181
|
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
182
182
|
"@oh-my-opencode/agents-md-core": "workspace:*",
|
|
183
183
|
"@oh-my-opencode/ast-grep-mcp": "workspace:*",
|
|
@@ -218,6 +218,7 @@
|
|
|
218
218
|
"@opentui/core": "^0.5.11",
|
|
219
219
|
"@opentui/keymap": "^0.5.11",
|
|
220
220
|
"@types/js-yaml": "^4.0.9",
|
|
221
|
+
"@types/node": "26.6.2",
|
|
221
222
|
"@types/picomatch": "^4.0.3",
|
|
222
223
|
"@typescript/native-preview": "7.0.0-dev.20260707.2",
|
|
223
224
|
"@typescript/typescript6": "6.0.2",
|
|
@@ -237,18 +238,18 @@
|
|
|
237
238
|
"typescript": "^7.0.2"
|
|
238
239
|
},
|
|
239
240
|
"optionalDependencies": {
|
|
240
|
-
"oh-my-opencode-darwin-arm64": "5.1.
|
|
241
|
-
"oh-my-opencode-darwin-x64": "5.1.
|
|
242
|
-
"oh-my-opencode-darwin-x64-baseline": "5.1.
|
|
243
|
-
"oh-my-opencode-linux-arm64": "5.1.
|
|
244
|
-
"oh-my-opencode-linux-arm64-musl": "5.1.
|
|
245
|
-
"oh-my-opencode-linux-x64": "5.1.
|
|
246
|
-
"oh-my-opencode-linux-x64-baseline": "5.1.
|
|
247
|
-
"oh-my-opencode-linux-x64-musl": "5.1.
|
|
248
|
-
"oh-my-opencode-linux-x64-musl-baseline": "5.1.
|
|
249
|
-
"oh-my-opencode-windows-arm64": "5.1.
|
|
250
|
-
"oh-my-opencode-windows-x64": "5.1.
|
|
251
|
-
"oh-my-opencode-windows-x64-baseline": "5.1.
|
|
241
|
+
"oh-my-opencode-darwin-arm64": "5.1.40",
|
|
242
|
+
"oh-my-opencode-darwin-x64": "5.1.40",
|
|
243
|
+
"oh-my-opencode-darwin-x64-baseline": "5.1.40",
|
|
244
|
+
"oh-my-opencode-linux-arm64": "5.1.40",
|
|
245
|
+
"oh-my-opencode-linux-arm64-musl": "5.1.40",
|
|
246
|
+
"oh-my-opencode-linux-x64": "5.1.40",
|
|
247
|
+
"oh-my-opencode-linux-x64-baseline": "5.1.40",
|
|
248
|
+
"oh-my-opencode-linux-x64-musl": "5.1.40",
|
|
249
|
+
"oh-my-opencode-linux-x64-musl-baseline": "5.1.40",
|
|
250
|
+
"oh-my-opencode-windows-arm64": "5.1.40",
|
|
251
|
+
"oh-my-opencode-windows-x64": "5.1.40",
|
|
252
|
+
"oh-my-opencode-windows-x64-baseline": "5.1.40"
|
|
252
253
|
},
|
|
253
254
|
"overrides": {
|
|
254
255
|
"hono": "^4.13.8",
|