oh-my-opencode 5.0.0-beta.5 → 5.0.0-beta.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/dist/cli/index.js +82 -39
  2. package/dist/cli-node/index.js +82 -39
  3. package/dist/index.js +1136 -1104
  4. package/dist/skills/coding-agent-sessions/SKILL.md +3 -2
  5. package/dist/skills/coding-agent-sessions/references/all-platforms.md +1 -1
  6. package/dist/skills/coding-agent-sessions/references/senpi.md +4 -4
  7. package/dist/skills/coding-agent-sessions/scripts/agent_sessions/pi_family.py +1 -1
  8. package/dist/tui.js +20 -1
  9. package/package.json +15 -14
  10. package/packages/lsp-core/src/lsp/client-wrapper.test.ts +60 -7
  11. package/packages/lsp-core/src/lsp/client-wrapper.ts +69 -16
  12. package/packages/lsp-core/src/lsp/workspace-edit-adversarial.test.ts +20 -1
  13. package/packages/lsp-core/src/tools/diagnostics.ts +3 -3
  14. package/packages/lsp-core/src/tools/navigation.ts +4 -2
  15. package/packages/lsp-core/src/tools/rename.ts +4 -2
  16. package/packages/lsp-core/src/tools/symbols.ts +1 -1
  17. package/packages/lsp-daemon/dist/cli.js +83 -29
  18. package/packages/lsp-daemon/dist/client.js +76 -22
  19. package/packages/lsp-daemon/dist/index.js +81 -27
  20. package/packages/lsp-tools-mcp/dist/cli.js +76 -22
  21. package/packages/lsp-tools-mcp/dist/mcp.js +76 -22
  22. package/packages/lsp-tools-mcp/dist/tools.js +76 -22
  23. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  24. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  25. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  26. package/packages/omo-codex/plugin/components/codegraph/dist/cli.js +14 -1
  27. package/packages/omo-codex/plugin/components/codegraph/dist/serve.js +14 -1
  28. package/packages/omo-codex/plugin/components/codegraph/package.json +1 -1
  29. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  30. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  31. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  32. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  33. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  34. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  35. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +3 -3
  36. package/packages/omo-codex/plugin/components/lsp/dist/cli.js +83 -29
  37. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  38. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  39. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  40. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  41. package/packages/omo-codex/plugin/components/start-work-continuation/hooks/hooks.json +2 -2
  42. package/packages/omo-codex/plugin/components/start-work-continuation/package.json +1 -1
  43. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  44. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  45. package/packages/omo-codex/plugin/components/telemetry/dist/cli.js +24 -12
  46. package/packages/omo-codex/plugin/components/telemetry/dist/posthog.js +24 -12
  47. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  48. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  49. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  50. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  51. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +4 -4
  52. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  53. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  54. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  55. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  56. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-codegraph-init-guidance.json +1 -1
  57. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  58. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  59. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  60. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  61. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  62. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  63. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  64. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  65. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  66. package/packages/omo-codex/plugin/hooks/session-start-checking-codegraph-bootstrap.json +1 -1
  67. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  68. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  69. package/packages/omo-codex/plugin/hooks/stop-checking-start-work-continuation.json +1 -1
  70. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  71. package/packages/omo-codex/plugin/hooks/subagent-stop-checking-start-work-continuation.json +1 -1
  72. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  73. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  74. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  75. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  76. package/packages/omo-codex/plugin/package-lock.json +13 -13
  77. package/packages/omo-codex/plugin/package.json +1 -1
  78. package/packages/omo-codex/plugin/skills/coding-agent-sessions/SKILL.md +3 -2
  79. package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/all-platforms.md +1 -1
  80. package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/senpi.md +4 -4
  81. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/pi_family.py +1 -1
  82. package/packages/omo-codex/scripts/install-dist/install-local.mjs +39 -16
  83. package/packages/shared-skills/skills/coding-agent-sessions/SKILL.md +3 -2
  84. package/packages/shared-skills/skills/coding-agent-sessions/references/all-platforms.md +1 -1
  85. package/packages/shared-skills/skills/coding-agent-sessions/references/senpi.md +4 -4
  86. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/pi_family.py +1 -1
package/dist/cli/index.js CHANGED
@@ -2145,7 +2145,7 @@ var package_default;
2145
2145
  var init_package = __esm(() => {
2146
2146
  package_default = {
2147
2147
  name: "oh-my-opencode",
2148
- version: "5.0.0-beta.5",
2148
+ version: "5.0.0-beta.6",
2149
2149
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
2150
2150
  main: "./dist/index.js",
2151
2151
  types: "dist/index.d.ts",
@@ -2325,7 +2325,7 @@ var init_package = __esm(() => {
2325
2325
  zod: "^4.4.3"
2326
2326
  },
2327
2327
  devDependencies: {
2328
- "@code-yeongyu/senpi": "2026.8.11-2",
2328
+ "@code-yeongyu/senpi": "2026.8.11-4",
2329
2329
  "@oh-my-opencode/agents-md-core": "workspace:*",
2330
2330
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
2331
2331
  "@oh-my-opencode/boulder-state": "workspace:*",
@@ -2341,6 +2341,7 @@ var init_package = __esm(() => {
2341
2341
  "@oh-my-opencode/model-core": "workspace:*",
2342
2342
  "@oh-my-opencode/omo-codex": "workspace:*",
2343
2343
  "@oh-my-opencode/omo-config-core": "workspace:*",
2344
+ "@oh-my-opencode/omo-opencode": "workspace:*",
2344
2345
  "@oh-my-opencode/omo-senpi": "workspace:*",
2345
2346
  "@oh-my-opencode/openclaw-core": "workspace:*",
2346
2347
  "@oh-my-opencode/pi-goal": "workspace:*",
@@ -2365,18 +2366,18 @@ var init_package = __esm(() => {
2365
2366
  typescript: "^7.0.2"
2366
2367
  },
2367
2368
  optionalDependencies: {
2368
- "oh-my-opencode-darwin-arm64": "5.0.0-beta.5",
2369
- "oh-my-opencode-darwin-x64": "5.0.0-beta.5",
2370
- "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.5",
2371
- "oh-my-opencode-linux-arm64": "5.0.0-beta.5",
2372
- "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.5",
2373
- "oh-my-opencode-linux-x64": "5.0.0-beta.5",
2374
- "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.5",
2375
- "oh-my-opencode-linux-x64-musl": "5.0.0-beta.5",
2376
- "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.5",
2377
- "oh-my-opencode-windows-arm64": "5.0.0-beta.5",
2378
- "oh-my-opencode-windows-x64": "5.0.0-beta.5",
2379
- "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.5"
2369
+ "oh-my-opencode-darwin-arm64": "5.0.0-beta.6",
2370
+ "oh-my-opencode-darwin-x64": "5.0.0-beta.6",
2371
+ "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.6",
2372
+ "oh-my-opencode-linux-arm64": "5.0.0-beta.6",
2373
+ "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.6",
2374
+ "oh-my-opencode-linux-x64": "5.0.0-beta.6",
2375
+ "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.6",
2376
+ "oh-my-opencode-linux-x64-musl": "5.0.0-beta.6",
2377
+ "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.6",
2378
+ "oh-my-opencode-windows-arm64": "5.0.0-beta.6",
2379
+ "oh-my-opencode-windows-x64": "5.0.0-beta.6",
2380
+ "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.6"
2380
2381
  },
2381
2382
  overrides: {
2382
2383
  "@earendil-works/pi-agent-core": "0.80.3",
@@ -22627,6 +22628,19 @@ var init_team = __esm(() => {
22627
22628
  OmoTeamsConfigLayerSchema = record(string2(), OmoTeamSpecLayerSchema);
22628
22629
  });
22629
22630
 
22631
+ // packages/omo-config-core/src/schema/telemetry.ts
22632
+ var OmoTelemetrySettingsShape, OmoTelemetrySettingsLayerSchema, OmoTelemetrySettingsSchema;
22633
+ var init_telemetry = __esm(() => {
22634
+ init_zod();
22635
+ OmoTelemetrySettingsShape = {
22636
+ enabled: boolean2()
22637
+ };
22638
+ OmoTelemetrySettingsLayerSchema = object(OmoTelemetrySettingsShape).partial().strict();
22639
+ OmoTelemetrySettingsSchema = OmoTelemetrySettingsLayerSchema.extend({
22640
+ enabled: boolean2().default(true)
22641
+ }).strict();
22642
+ });
22643
+
22630
22644
  // packages/omo-config-core/src/schema/config.ts
22631
22645
  var OmoOpenCodeHarnessConfigSchema, OmoTypedHarnessConfigSchema, OmoConfigProfileSchema, OmoConfigSchema, OmoConfigLayerSchema;
22632
22646
  var init_config = __esm(() => {
@@ -22638,6 +22652,7 @@ var init_config = __esm(() => {
22638
22652
  init_model_catalog();
22639
22653
  init_task();
22640
22654
  init_team();
22655
+ init_telemetry();
22641
22656
  OmoOpenCodeHarnessConfigSchema = record(string2(), unknown());
22642
22657
  OmoTypedHarnessConfigSchema = object({
22643
22658
  categories: OmoCategoriesConfigSchema.optional(),
@@ -22646,7 +22661,8 @@ var init_config = __esm(() => {
22646
22661
  task: OmoTaskSettingsLayerSchema.optional(),
22647
22662
  teams: OmoTeamsConfigLayerSchema.optional(),
22648
22663
  models: OmoModelCatalogLayerSchema.optional(),
22649
- memory: OmoMemorySettingsLayerSchema.optional()
22664
+ memory: OmoMemorySettingsLayerSchema.optional(),
22665
+ telemetry: OmoTelemetrySettingsLayerSchema.optional()
22650
22666
  }).strict();
22651
22667
  OmoConfigProfileSchema = object({
22652
22668
  categories: OmoCategoriesConfigSchema.optional(),
@@ -22656,6 +22672,7 @@ var init_config = __esm(() => {
22656
22672
  teams: OmoTeamsConfigLayerSchema.optional(),
22657
22673
  models: OmoModelCatalogLayerSchema.optional(),
22658
22674
  memory: OmoMemorySettingsLayerSchema.optional(),
22675
+ telemetry: OmoTelemetrySettingsLayerSchema.optional(),
22659
22676
  "[opencode]": OmoOpenCodeHarnessConfigSchema.optional(),
22660
22677
  "[senpi]": OmoTypedHarnessConfigSchema.optional(),
22661
22678
  "[codex]": OmoTypedHarnessConfigSchema.optional()
@@ -22669,6 +22686,7 @@ var init_config = __esm(() => {
22669
22686
  teams: OmoTeamsConfigSchema.optional(),
22670
22687
  models: OmoModelCatalogSchema.optional(),
22671
22688
  memory: OmoMemorySettingsSchema.optional(),
22689
+ telemetry: OmoTelemetrySettingsSchema.optional(),
22672
22690
  "[opencode]": OmoOpenCodeHarnessConfigSchema.optional(),
22673
22691
  "[senpi]": OmoTypedHarnessConfigSchema.optional(),
22674
22692
  "[codex]": OmoTypedHarnessConfigSchema.optional(),
@@ -22685,6 +22703,7 @@ var init_config = __esm(() => {
22685
22703
  teams: OmoTeamsConfigLayerSchema.optional(),
22686
22704
  models: OmoModelCatalogLayerSchema.optional(),
22687
22705
  memory: OmoMemorySettingsLayerSchema.optional(),
22706
+ telemetry: OmoTelemetrySettingsLayerSchema.optional(),
22688
22707
  "[opencode]": OmoOpenCodeHarnessConfigSchema.optional(),
22689
22708
  "[senpi]": OmoTypedHarnessConfigSchema.optional(),
22690
22709
  "[codex]": OmoTypedHarnessConfigSchema.optional(),
@@ -22707,6 +22726,7 @@ var init_schema = __esm(() => {
22707
22726
  init_model_ref();
22708
22727
  init_task();
22709
22728
  init_team();
22729
+ init_telemetry();
22710
22730
  });
22711
22731
 
22712
22732
  // packages/omo-config-core/src/loader/merge.ts
@@ -88714,7 +88734,7 @@ var init_activity_state = __esm(() => {
88714
88734
  });
88715
88735
 
88716
88736
  // packages/telemetry-core/src/constants.ts
88717
- var DEFAULT_POSTHOG_HOST = "https://us.i.posthog.com", DEFAULT_POSTHOG_API_KEY = "phc_CFJhj5HyvA62QPhvyaUCtaq23aUfznnijg5VaaGkNk74";
88737
+ var DEFAULT_POSTHOG_HOST = "https://us.i.posthog.com", DEFAULT_POSTHOG_API_KEY = "phc_CFJhj5HyvA62QPhvyaUCtaq23aUfznnijg5VaaGkNk74", UNCONFIGURED_POSTHOG_API_KEY = "phc_REPLACE_ME_OMO_NATIVE";
88718
88738
 
88719
88739
  // packages/telemetry-core/src/diagnostics.ts
88720
88740
  import { appendFileSync as appendFileSync2, existsSync as existsSync27, mkdirSync as mkdirSync9, readFileSync as readFileSync13 } from "fs";
@@ -88852,6 +88872,9 @@ function shouldDisableTelemetry(input) {
88852
88872
  const env2 = input.env ?? process.env;
88853
88873
  const globalPrefix = input.globalEnvPrefix ?? "OMO";
88854
88874
  const prefixes = Array.from(new Set([globalPrefix, input.productEnvPrefix]));
88875
+ if (isDisableFlag(env2["DO_NOT_TRACK"])) {
88876
+ return true;
88877
+ }
88855
88878
  for (const prefix of prefixes) {
88856
88879
  if (isDisableFlag(env2[`${prefix}_DISABLE_POSTHOG`])) {
88857
88880
  return true;
@@ -88865,6 +88888,13 @@ function shouldDisableTelemetry(input) {
88865
88888
  function getTelemetryApiKey(env2 = process.env, defaultApiKey = DEFAULT_POSTHOG_API_KEY) {
88866
88889
  return env2["POSTHOG_API_KEY"]?.trim() ?? defaultApiKey;
88867
88890
  }
88891
+ function isConfiguredTelemetryApiKey(apiKey) {
88892
+ const normalized = apiKey.trim();
88893
+ return normalized.length > 0 && normalized !== UNCONFIGURED_POSTHOG_API_KEY;
88894
+ }
88895
+ function hasTelemetryApiKey(env2, defaultApiKey) {
88896
+ return isConfiguredTelemetryApiKey(getTelemetryApiKey(env2, defaultApiKey));
88897
+ }
88868
88898
  function getTelemetryHost(env2 = process.env, defaultHost = DEFAULT_POSTHOG_HOST) {
88869
88899
  return env2["POSTHOG_HOST"]?.trim() || defaultHost;
88870
88900
  }
@@ -88874,17 +88904,6 @@ var init_env2 = __esm(() => {
88874
88904
  SEND_OPT_OUT_VALUES = ["0", "false", "no", "yes"];
88875
88905
  });
88876
88906
 
88877
- // packages/telemetry-core/src/machine-id.ts
88878
- import { createHash as createHash4 } from "crypto";
88879
- import os4 from "os";
88880
- function getDefaultTelemetryOsProvider() {
88881
- return os4;
88882
- }
88883
- function getTelemetryDistinctId(machineIdPrefix, osProvider = getDefaultTelemetryOsProvider()) {
88884
- return createHash4("sha256").update(`${machineIdPrefix}${osProvider.hostname()}`).digest("hex");
88885
- }
88886
- var init_machine_id = () => {};
88887
-
88888
88907
  // node_modules/.bun/posthog-node@5.35.12/node_modules/posthog-node/dist/extensions/error-tracking/modifiers/module.node.mjs
88889
88908
  import { dirname as dirname17, posix as posix7, sep as sep7 } from "path";
88890
88909
  function createModulerModifier() {
@@ -94259,6 +94278,17 @@ var init_index_node = __esm(() => {
94259
94278
  };
94260
94279
  });
94261
94280
 
94281
+ // packages/telemetry-core/src/machine-id.ts
94282
+ import { createHash as createHash4 } from "crypto";
94283
+ import os4 from "os";
94284
+ function getDefaultTelemetryOsProvider() {
94285
+ return os4;
94286
+ }
94287
+ function getTelemetryDistinctId(machineIdPrefix, osProvider = getDefaultTelemetryOsProvider()) {
94288
+ return createHash4("sha256").update(`${machineIdPrefix}${osProvider.hostname()}`).digest("hex");
94289
+ }
94290
+ var init_machine_id = () => {};
94291
+
94262
94292
  // packages/telemetry-core/src/posthog-client.ts
94263
94293
  class PostHogTelemetryTransport {
94264
94294
  #client;
@@ -94280,7 +94310,7 @@ function createDefaultPostHogTransport(apiKey, options) {
94280
94310
  }
94281
94311
  function isTelemetryClientEnabled(input) {
94282
94312
  const env2 = input.env ?? process.env;
94283
- return !shouldDisableTelemetry({ env: env2, productEnvPrefix: input.product.productEnvPrefix }) && getTelemetryApiKey(env2, input.product.defaultApiKey).length > 0;
94313
+ return !shouldDisableTelemetry({ env: env2, productEnvPrefix: input.product.productEnvPrefix }) && hasTelemetryApiKey(env2, input.product.defaultApiKey);
94284
94314
  }
94285
94315
  function createTelemetryClient(input) {
94286
94316
  if (!isTelemetryClientEnabled(input)) {
@@ -94346,7 +94376,8 @@ function createTransport(input) {
94346
94376
  flushAt: 1,
94347
94377
  flushInterval: 0,
94348
94378
  host: getTelemetryHost(env2, input.product.defaultHost),
94349
- disableGeoip: false
94379
+ disableGeoip: input.product.disableGeoip ?? false,
94380
+ ...input.product.transportOptions
94350
94381
  });
94351
94382
  } catch (error51) {
94352
94383
  input.diagnostics?.({
@@ -94423,6 +94454,17 @@ var init_posthog_client = __esm(() => {
94423
94454
  };
94424
94455
  });
94425
94456
 
94457
+ // packages/telemetry-core/src/events.ts
94458
+ var ALLOWED_DOLLAR_KEYS;
94459
+ var init_events = __esm(() => {
94460
+ ALLOWED_DOLLAR_KEYS = new Set([
94461
+ "$os",
94462
+ "$os_version",
94463
+ "$process_person_profile",
94464
+ "$session_id"
94465
+ ]);
94466
+ });
94467
+
94426
94468
  // packages/telemetry-core/src/record-daily-active.ts
94427
94469
  var init_record_daily_active = () => {};
94428
94470
 
@@ -94431,6 +94473,7 @@ var init_src5 = __esm(() => {
94431
94473
  init_activity_state();
94432
94474
  init_diagnostics();
94433
94475
  init_env2();
94476
+ init_events();
94434
94477
  init_machine_id();
94435
94478
  init_posthog_client();
94436
94479
  init_record_daily_active();
@@ -94441,7 +94484,7 @@ var package_default2;
94441
94484
  var init_package2 = __esm(() => {
94442
94485
  package_default2 = {
94443
94486
  name: "@oh-my-opencode/omo-codex",
94444
- version: "5.0.0-beta.5",
94487
+ version: "5.0.0-beta.6",
94445
94488
  type: "module",
94446
94489
  private: true,
94447
94490
  description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
@@ -94655,7 +94698,7 @@ __export(exports_telemetry, {
94655
94698
  __resetOsProviderForTesting: () => __resetOsProviderForTesting,
94656
94699
  __resetActivityStateProviderForTesting: () => __resetActivityStateProviderForTesting
94657
94700
  });
94658
- var init_telemetry = __esm(() => {
94701
+ var init_telemetry2 = __esm(() => {
94659
94702
  init_posthog();
94660
94703
  });
94661
94704
 
@@ -100520,7 +100563,7 @@ async function installAstGrepForCodex(options) {
100520
100563
  // packages/omo-codex/src/install/codex-install-telemetry.ts
100521
100564
  async function trackCodexInstallTelemetry() {
100522
100565
  try {
100523
- const { createInstallPostHog: createInstallPostHog2, getPostHogDistinctId: getPostHogDistinctId2 } = await Promise.resolve().then(() => (init_telemetry(), exports_telemetry));
100566
+ const { createInstallPostHog: createInstallPostHog2, getPostHogDistinctId: getPostHogDistinctId2 } = await Promise.resolve().then(() => (init_telemetry2(), exports_telemetry));
100524
100567
  const posthog = createInstallPostHog2();
100525
100568
  posthog.trackActive(getPostHogDistinctId2(), "install_completed");
100526
100569
  await posthog.shutdown();
@@ -107760,10 +107803,10 @@ Interrupted. Shutting down...`));
107760
107803
  abortController,
107761
107804
  verbose: options.verbose ?? false
107762
107805
  };
107763
- const events = await client3.event.subscribe({ query: { directory } });
107806
+ const events2 = await client3.event.subscribe({ query: { directory } });
107764
107807
  const eventState = createEventState();
107765
107808
  eventState.agentColorsByName = await loadAgentProfileColors(client3);
107766
- const eventProcessor = processEvents(ctx, events.stream, eventState).catch(() => {});
107809
+ const eventProcessor = processEvents(ctx, events2.stream, eventState).catch(() => {});
107767
107810
  const promptResult = await dispatchInternalPrompt({
107768
107811
  mode: "async",
107769
107812
  client: client3,
@@ -110195,16 +110238,16 @@ function formatCompanionPluginStatus(config4) {
110195
110238
  return "none";
110196
110239
  }
110197
110240
  function readCompanionLifecycleHookStateEvents(content) {
110198
- const events = new Set;
110241
+ const events2 = new Set;
110199
110242
  for (const section of splitTomlSections(content)) {
110200
110243
  if (section.header === null)
110201
110244
  continue;
110202
110245
  const key = parseHookStateHeaderKey(section.header);
110203
110246
  const event = key === null ? null : companionLifecycleEventFromHookStateKey(key);
110204
110247
  if (event !== null)
110205
- events.add(event);
110248
+ events2.add(event);
110206
110249
  }
110207
- return [...events].sort(compareCompanionLifecycleEvents);
110250
+ return [...events2].sort(compareCompanionLifecycleEvents);
110208
110251
  }
110209
110252
  function companionLifecycleEventFromHookStateKey(key) {
110210
110253
  if (!key.startsWith(`${COMPANION_PLUGIN_KEY}:`))
@@ -110218,8 +110261,8 @@ function compareCompanionLifecycleEvents(left, right) {
110218
110261
  function companionLifecycleEventOrder(event) {
110219
110262
  return event === "session_start" ? 0 : event === "stop" ? 1 : 2;
110220
110263
  }
110221
- function formatCompanionLifecycleEvents(events) {
110222
- return events.map(formatCompanionLifecycleEvent).join(", ");
110264
+ function formatCompanionLifecycleEvents(events2) {
110265
+ return events2.map(formatCompanionLifecycleEvent).join(", ");
110223
110266
  }
110224
110267
  function formatCompanionLifecycleEvent(event) {
110225
110268
  switch (event) {
@@ -2146,7 +2146,7 @@ var package_default;
2146
2146
  var init_package = __esm(() => {
2147
2147
  package_default = {
2148
2148
  name: "oh-my-opencode",
2149
- version: "5.0.0-beta.5",
2149
+ version: "5.0.0-beta.6",
2150
2150
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
2151
2151
  main: "./dist/index.js",
2152
2152
  types: "dist/index.d.ts",
@@ -2326,7 +2326,7 @@ var init_package = __esm(() => {
2326
2326
  zod: "^4.4.3"
2327
2327
  },
2328
2328
  devDependencies: {
2329
- "@code-yeongyu/senpi": "2026.8.11-2",
2329
+ "@code-yeongyu/senpi": "2026.8.11-4",
2330
2330
  "@oh-my-opencode/agents-md-core": "workspace:*",
2331
2331
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
2332
2332
  "@oh-my-opencode/boulder-state": "workspace:*",
@@ -2342,6 +2342,7 @@ var init_package = __esm(() => {
2342
2342
  "@oh-my-opencode/model-core": "workspace:*",
2343
2343
  "@oh-my-opencode/omo-codex": "workspace:*",
2344
2344
  "@oh-my-opencode/omo-config-core": "workspace:*",
2345
+ "@oh-my-opencode/omo-opencode": "workspace:*",
2345
2346
  "@oh-my-opencode/omo-senpi": "workspace:*",
2346
2347
  "@oh-my-opencode/openclaw-core": "workspace:*",
2347
2348
  "@oh-my-opencode/pi-goal": "workspace:*",
@@ -2366,18 +2367,18 @@ var init_package = __esm(() => {
2366
2367
  typescript: "^7.0.2"
2367
2368
  },
2368
2369
  optionalDependencies: {
2369
- "oh-my-opencode-darwin-arm64": "5.0.0-beta.5",
2370
- "oh-my-opencode-darwin-x64": "5.0.0-beta.5",
2371
- "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.5",
2372
- "oh-my-opencode-linux-arm64": "5.0.0-beta.5",
2373
- "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.5",
2374
- "oh-my-opencode-linux-x64": "5.0.0-beta.5",
2375
- "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.5",
2376
- "oh-my-opencode-linux-x64-musl": "5.0.0-beta.5",
2377
- "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.5",
2378
- "oh-my-opencode-windows-arm64": "5.0.0-beta.5",
2379
- "oh-my-opencode-windows-x64": "5.0.0-beta.5",
2380
- "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.5"
2370
+ "oh-my-opencode-darwin-arm64": "5.0.0-beta.6",
2371
+ "oh-my-opencode-darwin-x64": "5.0.0-beta.6",
2372
+ "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.6",
2373
+ "oh-my-opencode-linux-arm64": "5.0.0-beta.6",
2374
+ "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.6",
2375
+ "oh-my-opencode-linux-x64": "5.0.0-beta.6",
2376
+ "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.6",
2377
+ "oh-my-opencode-linux-x64-musl": "5.0.0-beta.6",
2378
+ "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.6",
2379
+ "oh-my-opencode-windows-arm64": "5.0.0-beta.6",
2380
+ "oh-my-opencode-windows-x64": "5.0.0-beta.6",
2381
+ "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.6"
2381
2382
  },
2382
2383
  overrides: {
2383
2384
  "@earendil-works/pi-agent-core": "0.80.3",
@@ -22628,6 +22629,19 @@ var init_team = __esm(() => {
22628
22629
  OmoTeamsConfigLayerSchema = record(string2(), OmoTeamSpecLayerSchema);
22629
22630
  });
22630
22631
 
22632
+ // packages/omo-config-core/src/schema/telemetry.ts
22633
+ var OmoTelemetrySettingsShape, OmoTelemetrySettingsLayerSchema, OmoTelemetrySettingsSchema;
22634
+ var init_telemetry = __esm(() => {
22635
+ init_zod();
22636
+ OmoTelemetrySettingsShape = {
22637
+ enabled: boolean2()
22638
+ };
22639
+ OmoTelemetrySettingsLayerSchema = object(OmoTelemetrySettingsShape).partial().strict();
22640
+ OmoTelemetrySettingsSchema = OmoTelemetrySettingsLayerSchema.extend({
22641
+ enabled: boolean2().default(true)
22642
+ }).strict();
22643
+ });
22644
+
22631
22645
  // packages/omo-config-core/src/schema/config.ts
22632
22646
  var OmoOpenCodeHarnessConfigSchema, OmoTypedHarnessConfigSchema, OmoConfigProfileSchema, OmoConfigSchema, OmoConfigLayerSchema;
22633
22647
  var init_config = __esm(() => {
@@ -22639,6 +22653,7 @@ var init_config = __esm(() => {
22639
22653
  init_model_catalog();
22640
22654
  init_task();
22641
22655
  init_team();
22656
+ init_telemetry();
22642
22657
  OmoOpenCodeHarnessConfigSchema = record(string2(), unknown());
22643
22658
  OmoTypedHarnessConfigSchema = object({
22644
22659
  categories: OmoCategoriesConfigSchema.optional(),
@@ -22647,7 +22662,8 @@ var init_config = __esm(() => {
22647
22662
  task: OmoTaskSettingsLayerSchema.optional(),
22648
22663
  teams: OmoTeamsConfigLayerSchema.optional(),
22649
22664
  models: OmoModelCatalogLayerSchema.optional(),
22650
- memory: OmoMemorySettingsLayerSchema.optional()
22665
+ memory: OmoMemorySettingsLayerSchema.optional(),
22666
+ telemetry: OmoTelemetrySettingsLayerSchema.optional()
22651
22667
  }).strict();
22652
22668
  OmoConfigProfileSchema = object({
22653
22669
  categories: OmoCategoriesConfigSchema.optional(),
@@ -22657,6 +22673,7 @@ var init_config = __esm(() => {
22657
22673
  teams: OmoTeamsConfigLayerSchema.optional(),
22658
22674
  models: OmoModelCatalogLayerSchema.optional(),
22659
22675
  memory: OmoMemorySettingsLayerSchema.optional(),
22676
+ telemetry: OmoTelemetrySettingsLayerSchema.optional(),
22660
22677
  "[opencode]": OmoOpenCodeHarnessConfigSchema.optional(),
22661
22678
  "[senpi]": OmoTypedHarnessConfigSchema.optional(),
22662
22679
  "[codex]": OmoTypedHarnessConfigSchema.optional()
@@ -22670,6 +22687,7 @@ var init_config = __esm(() => {
22670
22687
  teams: OmoTeamsConfigSchema.optional(),
22671
22688
  models: OmoModelCatalogSchema.optional(),
22672
22689
  memory: OmoMemorySettingsSchema.optional(),
22690
+ telemetry: OmoTelemetrySettingsSchema.optional(),
22673
22691
  "[opencode]": OmoOpenCodeHarnessConfigSchema.optional(),
22674
22692
  "[senpi]": OmoTypedHarnessConfigSchema.optional(),
22675
22693
  "[codex]": OmoTypedHarnessConfigSchema.optional(),
@@ -22686,6 +22704,7 @@ var init_config = __esm(() => {
22686
22704
  teams: OmoTeamsConfigLayerSchema.optional(),
22687
22705
  models: OmoModelCatalogLayerSchema.optional(),
22688
22706
  memory: OmoMemorySettingsLayerSchema.optional(),
22707
+ telemetry: OmoTelemetrySettingsLayerSchema.optional(),
22689
22708
  "[opencode]": OmoOpenCodeHarnessConfigSchema.optional(),
22690
22709
  "[senpi]": OmoTypedHarnessConfigSchema.optional(),
22691
22710
  "[codex]": OmoTypedHarnessConfigSchema.optional(),
@@ -22708,6 +22727,7 @@ var init_schema = __esm(() => {
22708
22727
  init_model_ref();
22709
22728
  init_task();
22710
22729
  init_team();
22730
+ init_telemetry();
22711
22731
  });
22712
22732
 
22713
22733
  // packages/omo-config-core/src/loader/merge.ts
@@ -88770,7 +88790,7 @@ var init_activity_state = __esm(() => {
88770
88790
  });
88771
88791
 
88772
88792
  // packages/telemetry-core/src/constants.ts
88773
- var DEFAULT_POSTHOG_HOST = "https://us.i.posthog.com", DEFAULT_POSTHOG_API_KEY = "phc_CFJhj5HyvA62QPhvyaUCtaq23aUfznnijg5VaaGkNk74";
88793
+ var DEFAULT_POSTHOG_HOST = "https://us.i.posthog.com", DEFAULT_POSTHOG_API_KEY = "phc_CFJhj5HyvA62QPhvyaUCtaq23aUfznnijg5VaaGkNk74", UNCONFIGURED_POSTHOG_API_KEY = "phc_REPLACE_ME_OMO_NATIVE";
88774
88794
 
88775
88795
  // packages/telemetry-core/src/diagnostics.ts
88776
88796
  import { appendFileSync as appendFileSync2, existsSync as existsSync27, mkdirSync as mkdirSync9, readFileSync as readFileSync13 } from "node:fs";
@@ -88908,6 +88928,9 @@ function shouldDisableTelemetry(input) {
88908
88928
  const env2 = input.env ?? process.env;
88909
88929
  const globalPrefix = input.globalEnvPrefix ?? "OMO";
88910
88930
  const prefixes = Array.from(new Set([globalPrefix, input.productEnvPrefix]));
88931
+ if (isDisableFlag(env2["DO_NOT_TRACK"])) {
88932
+ return true;
88933
+ }
88911
88934
  for (const prefix of prefixes) {
88912
88935
  if (isDisableFlag(env2[`${prefix}_DISABLE_POSTHOG`])) {
88913
88936
  return true;
@@ -88921,6 +88944,13 @@ function shouldDisableTelemetry(input) {
88921
88944
  function getTelemetryApiKey(env2 = process.env, defaultApiKey = DEFAULT_POSTHOG_API_KEY) {
88922
88945
  return env2["POSTHOG_API_KEY"]?.trim() ?? defaultApiKey;
88923
88946
  }
88947
+ function isConfiguredTelemetryApiKey(apiKey) {
88948
+ const normalized = apiKey.trim();
88949
+ return normalized.length > 0 && normalized !== UNCONFIGURED_POSTHOG_API_KEY;
88950
+ }
88951
+ function hasTelemetryApiKey(env2, defaultApiKey) {
88952
+ return isConfiguredTelemetryApiKey(getTelemetryApiKey(env2, defaultApiKey));
88953
+ }
88924
88954
  function getTelemetryHost(env2 = process.env, defaultHost = DEFAULT_POSTHOG_HOST) {
88925
88955
  return env2["POSTHOG_HOST"]?.trim() || defaultHost;
88926
88956
  }
@@ -88930,17 +88960,6 @@ var init_env2 = __esm(() => {
88930
88960
  SEND_OPT_OUT_VALUES = ["0", "false", "no", "yes"];
88931
88961
  });
88932
88962
 
88933
- // packages/telemetry-core/src/machine-id.ts
88934
- import { createHash as createHash4 } from "node:crypto";
88935
- import os4 from "node:os";
88936
- function getDefaultTelemetryOsProvider() {
88937
- return os4;
88938
- }
88939
- function getTelemetryDistinctId(machineIdPrefix, osProvider = getDefaultTelemetryOsProvider()) {
88940
- return createHash4("sha256").update(`${machineIdPrefix}${osProvider.hostname()}`).digest("hex");
88941
- }
88942
- var init_machine_id = () => {};
88943
-
88944
88963
  // node_modules/.bun/posthog-node@5.35.12/node_modules/posthog-node/dist/extensions/error-tracking/modifiers/module.node.mjs
88945
88964
  import { dirname as dirname17, posix as posix7, sep as sep7 } from "path";
88946
88965
  function createModulerModifier() {
@@ -94315,6 +94334,17 @@ var init_index_node = __esm(() => {
94315
94334
  };
94316
94335
  });
94317
94336
 
94337
+ // packages/telemetry-core/src/machine-id.ts
94338
+ import { createHash as createHash4 } from "node:crypto";
94339
+ import os4 from "node:os";
94340
+ function getDefaultTelemetryOsProvider() {
94341
+ return os4;
94342
+ }
94343
+ function getTelemetryDistinctId(machineIdPrefix, osProvider = getDefaultTelemetryOsProvider()) {
94344
+ return createHash4("sha256").update(`${machineIdPrefix}${osProvider.hostname()}`).digest("hex");
94345
+ }
94346
+ var init_machine_id = () => {};
94347
+
94318
94348
  // packages/telemetry-core/src/posthog-client.ts
94319
94349
  class PostHogTelemetryTransport {
94320
94350
  #client;
@@ -94336,7 +94366,7 @@ function createDefaultPostHogTransport(apiKey, options) {
94336
94366
  }
94337
94367
  function isTelemetryClientEnabled(input) {
94338
94368
  const env2 = input.env ?? process.env;
94339
- return !shouldDisableTelemetry({ env: env2, productEnvPrefix: input.product.productEnvPrefix }) && getTelemetryApiKey(env2, input.product.defaultApiKey).length > 0;
94369
+ return !shouldDisableTelemetry({ env: env2, productEnvPrefix: input.product.productEnvPrefix }) && hasTelemetryApiKey(env2, input.product.defaultApiKey);
94340
94370
  }
94341
94371
  function createTelemetryClient(input) {
94342
94372
  if (!isTelemetryClientEnabled(input)) {
@@ -94402,7 +94432,8 @@ function createTransport(input) {
94402
94432
  flushAt: 1,
94403
94433
  flushInterval: 0,
94404
94434
  host: getTelemetryHost(env2, input.product.defaultHost),
94405
- disableGeoip: false
94435
+ disableGeoip: input.product.disableGeoip ?? false,
94436
+ ...input.product.transportOptions
94406
94437
  });
94407
94438
  } catch (error51) {
94408
94439
  input.diagnostics?.({
@@ -94479,6 +94510,17 @@ var init_posthog_client = __esm(() => {
94479
94510
  };
94480
94511
  });
94481
94512
 
94513
+ // packages/telemetry-core/src/events.ts
94514
+ var ALLOWED_DOLLAR_KEYS;
94515
+ var init_events = __esm(() => {
94516
+ ALLOWED_DOLLAR_KEYS = new Set([
94517
+ "$os",
94518
+ "$os_version",
94519
+ "$process_person_profile",
94520
+ "$session_id"
94521
+ ]);
94522
+ });
94523
+
94482
94524
  // packages/telemetry-core/src/record-daily-active.ts
94483
94525
  var init_record_daily_active = () => {};
94484
94526
 
@@ -94487,6 +94529,7 @@ var init_src5 = __esm(() => {
94487
94529
  init_activity_state();
94488
94530
  init_diagnostics();
94489
94531
  init_env2();
94532
+ init_events();
94490
94533
  init_machine_id();
94491
94534
  init_posthog_client();
94492
94535
  init_record_daily_active();
@@ -94497,7 +94540,7 @@ var package_default2;
94497
94540
  var init_package2 = __esm(() => {
94498
94541
  package_default2 = {
94499
94542
  name: "@oh-my-opencode/omo-codex",
94500
- version: "5.0.0-beta.5",
94543
+ version: "5.0.0-beta.6",
94501
94544
  type: "module",
94502
94545
  private: true,
94503
94546
  description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
@@ -94711,7 +94754,7 @@ __export(exports_telemetry, {
94711
94754
  __resetOsProviderForTesting: () => __resetOsProviderForTesting,
94712
94755
  __resetActivityStateProviderForTesting: () => __resetActivityStateProviderForTesting
94713
94756
  });
94714
- var init_telemetry = __esm(() => {
94757
+ var init_telemetry2 = __esm(() => {
94715
94758
  init_posthog();
94716
94759
  });
94717
94760
 
@@ -100576,7 +100619,7 @@ async function installAstGrepForCodex(options) {
100576
100619
  // packages/omo-codex/src/install/codex-install-telemetry.ts
100577
100620
  async function trackCodexInstallTelemetry() {
100578
100621
  try {
100579
- const { createInstallPostHog: createInstallPostHog2, getPostHogDistinctId: getPostHogDistinctId2 } = await Promise.resolve().then(() => (init_telemetry(), exports_telemetry));
100622
+ const { createInstallPostHog: createInstallPostHog2, getPostHogDistinctId: getPostHogDistinctId2 } = await Promise.resolve().then(() => (init_telemetry2(), exports_telemetry));
100580
100623
  const posthog = createInstallPostHog2();
100581
100624
  posthog.trackActive(getPostHogDistinctId2(), "install_completed");
100582
100625
  await posthog.shutdown();
@@ -107816,10 +107859,10 @@ Interrupted. Shutting down...`));
107816
107859
  abortController,
107817
107860
  verbose: options.verbose ?? false
107818
107861
  };
107819
- const events = await client3.event.subscribe({ query: { directory } });
107862
+ const events2 = await client3.event.subscribe({ query: { directory } });
107820
107863
  const eventState = createEventState();
107821
107864
  eventState.agentColorsByName = await loadAgentProfileColors(client3);
107822
- const eventProcessor = processEvents(ctx, events.stream, eventState).catch(() => {});
107865
+ const eventProcessor = processEvents(ctx, events2.stream, eventState).catch(() => {});
107823
107866
  const promptResult = await dispatchInternalPrompt({
107824
107867
  mode: "async",
107825
107868
  client: client3,
@@ -110251,16 +110294,16 @@ function formatCompanionPluginStatus(config4) {
110251
110294
  return "none";
110252
110295
  }
110253
110296
  function readCompanionLifecycleHookStateEvents(content) {
110254
- const events = new Set;
110297
+ const events2 = new Set;
110255
110298
  for (const section of splitTomlSections(content)) {
110256
110299
  if (section.header === null)
110257
110300
  continue;
110258
110301
  const key = parseHookStateHeaderKey(section.header);
110259
110302
  const event = key === null ? null : companionLifecycleEventFromHookStateKey(key);
110260
110303
  if (event !== null)
110261
- events.add(event);
110304
+ events2.add(event);
110262
110305
  }
110263
- return [...events].sort(compareCompanionLifecycleEvents);
110306
+ return [...events2].sort(compareCompanionLifecycleEvents);
110264
110307
  }
110265
110308
  function companionLifecycleEventFromHookStateKey(key) {
110266
110309
  if (!key.startsWith(`${COMPANION_PLUGIN_KEY}:`))
@@ -110274,8 +110317,8 @@ function compareCompanionLifecycleEvents(left, right) {
110274
110317
  function companionLifecycleEventOrder(event) {
110275
110318
  return event === "session_start" ? 0 : event === "stop" ? 1 : 2;
110276
110319
  }
110277
- function formatCompanionLifecycleEvents(events) {
110278
- return events.map(formatCompanionLifecycleEvent).join(", ");
110320
+ function formatCompanionLifecycleEvents(events2) {
110321
+ return events2.map(formatCompanionLifecycleEvent).join(", ");
110279
110322
  }
110280
110323
  function formatCompanionLifecycleEvent(event) {
110281
110324
  switch (event) {