lazycodex-ai 5.1.38 → 5.1.41

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 (117) hide show
  1. package/dist/cli/index.js +229 -187
  2. package/dist/cli-node/index.js +229 -187
  3. package/package.json +1 -1
  4. package/packages/lsp-daemon/dist/cli.js +10 -0
  5. package/packages/lsp-daemon/dist/client.js +10 -0
  6. package/packages/lsp-daemon/dist/index.js +10 -0
  7. package/packages/lsp-tools-mcp/dist/cli.js +10 -0
  8. package/packages/lsp-tools-mcp/dist/lsp/manager.js +10 -0
  9. package/packages/lsp-tools-mcp/dist/mcp.js +10 -0
  10. package/packages/lsp-tools-mcp/dist/tools.js +10 -0
  11. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  12. package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +24 -2
  13. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  14. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  15. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  16. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  17. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  18. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  19. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  20. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  21. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +3 -3
  22. package/packages/omo-codex/plugin/components/lsp/dist/cli.js +10 -0
  23. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  24. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  25. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  26. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  27. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  28. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  29. package/packages/omo-codex/plugin/components/telemetry/dist/cli.js +157 -151
  30. package/packages/omo-codex/plugin/components/telemetry/dist/posthog.js +157 -151
  31. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  32. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  33. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  34. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  35. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/SKILL.md +1 -1
  36. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/full-workflow.md +5 -4
  37. package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +1 -1
  38. package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
  39. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +5 -5
  40. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  41. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  42. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  43. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  44. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  45. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  46. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  47. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  48. package/packages/omo-codex/plugin/hooks/post-tool-use-recording-spawn-admission.json +1 -1
  49. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  50. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  51. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  52. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  53. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  54. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  55. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  56. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +1 -1
  57. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  58. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  59. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  60. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  61. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  62. package/packages/omo-codex/plugin/package-lock.json +12 -12
  63. package/packages/omo-codex/plugin/package.json +1 -1
  64. package/packages/omo-codex/plugin/skills/browser/runtime/omowright/manifest.json +1 -1
  65. package/packages/omo-codex/plugin/skills/frontend/SKILL.md +6 -6
  66. package/packages/omo-codex/plugin/skills/frontend/references/design/README.md +2 -2
  67. package/packages/omo-codex/plugin/skills/frontend/references/perfection/README.md +2 -2
  68. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/accent-stripes/declarations.ts +22 -13
  69. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/accent-stripes/findings.ts +7 -6
  70. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/accent-stripes/lint.ts +18 -24
  71. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/accent-stripes/markup.ts +14 -7
  72. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/accent-stripes/selector.ts +5 -1
  73. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/accent-stripes/tailwind.ts +32 -14
  74. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/check-accent-stripes.ts +1 -1
  75. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/inline-ok.tsx +1 -0
  76. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/neutral-and-flat.css +1 -1
  77. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/tailwind-ok.tsx +5 -2
  78. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/uniform-and-rings.css +2 -2
  79. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/accent-outlines.css +4 -0
  80. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/accent-outlines.tsx +8 -0
  81. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/{negative → positive}/flat-stripe-side.tsx +3 -1
  82. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/report-callouts.html +8 -0
  83. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/square-surfaces.css +8 -0
  84. package/packages/omo-codex/plugin/skills/git-master/SKILL.md +1 -1
  85. package/packages/omo-codex/plugin/skills/ulw-plan/SKILL.md +1 -1
  86. package/packages/omo-codex/plugin/skills/ulw-plan/references/full-workflow.md +5 -4
  87. package/packages/omo-codex/plugin/skills/ulw-research/SKILL.md +10 -2
  88. package/packages/omo-codex/plugin/skills/ulw-research/references/deliverable-phase.md +10 -0
  89. package/packages/omo-codex/plugin/skills/ulw-research/references/report-visualization.md +23 -0
  90. package/packages/omo-codex/scripts/install-dist/install-local.mjs +195 -168
  91. package/packages/shared-skills/skills/browser/runtime/omowright/manifest.json +1 -1
  92. package/packages/shared-skills/skills/frontend/SKILL.md +6 -6
  93. package/packages/shared-skills/skills/frontend/references/design/README.md +2 -2
  94. package/packages/shared-skills/skills/frontend/references/perfection/README.md +2 -2
  95. package/packages/shared-skills/skills/frontend/scripts/perfection/accent-stripes/declarations.ts +22 -13
  96. package/packages/shared-skills/skills/frontend/scripts/perfection/accent-stripes/findings.ts +7 -6
  97. package/packages/shared-skills/skills/frontend/scripts/perfection/accent-stripes/lint.ts +18 -24
  98. package/packages/shared-skills/skills/frontend/scripts/perfection/accent-stripes/markup.ts +14 -7
  99. package/packages/shared-skills/skills/frontend/scripts/perfection/accent-stripes/selector.ts +5 -1
  100. package/packages/shared-skills/skills/frontend/scripts/perfection/accent-stripes/tailwind.ts +32 -14
  101. package/packages/shared-skills/skills/frontend/scripts/perfection/check-accent-stripes.test.ts +15 -6
  102. package/packages/shared-skills/skills/frontend/scripts/perfection/check-accent-stripes.ts +1 -1
  103. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/inline-ok.tsx +1 -0
  104. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/neutral-and-flat.css +1 -1
  105. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/tailwind-ok.tsx +5 -2
  106. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/uniform-and-rings.css +2 -2
  107. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/accent-outlines.css +4 -0
  108. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/accent-outlines.tsx +8 -0
  109. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/{negative → positive}/flat-stripe-side.tsx +3 -1
  110. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/report-callouts.html +8 -0
  111. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/square-surfaces.css +8 -0
  112. package/packages/shared-skills/skills/git-master/SKILL.md +1 -1
  113. package/packages/shared-skills/skills/ulw-plan/SKILL.md +1 -1
  114. package/packages/shared-skills/skills/ulw-plan/references/full-workflow.md +5 -4
  115. package/packages/shared-skills/skills/ulw-research/SKILL.md +10 -2
  116. package/packages/shared-skills/skills/ulw-research/references/deliverable-phase.md +10 -0
  117. package/packages/shared-skills/skills/ulw-research/references/report-visualization.md +23 -0
package/dist/cli/index.js CHANGED
@@ -2132,7 +2132,7 @@ var package_default;
2132
2132
  var init_package = __esm(() => {
2133
2133
  package_default = {
2134
2134
  name: "oh-my-opencode",
2135
- version: "5.1.38",
2135
+ version: "5.1.41",
2136
2136
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
2137
2137
  main: "./dist/index.js",
2138
2138
  types: "dist/index.d.ts",
@@ -2309,7 +2309,7 @@ var init_package = __esm(() => {
2309
2309
  },
2310
2310
  devDependencies: {
2311
2311
  "@clack/prompts": "^1.8.1",
2312
- "@code-yeongyu/senpi": "2026.10.19",
2312
+ "@code-yeongyu/senpi": "2026.10.21-1",
2313
2313
  "@modelcontextprotocol/sdk": "^1.30.0",
2314
2314
  "@oh-my-opencode/agents-md-core": "workspace:*",
2315
2315
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
@@ -2350,6 +2350,7 @@ var init_package = __esm(() => {
2350
2350
  "@opentui/core": "^0.5.11",
2351
2351
  "@opentui/keymap": "^0.5.11",
2352
2352
  "@types/js-yaml": "^4.0.9",
2353
+ "@types/node": "26.6.2",
2353
2354
  "@types/picomatch": "^4.0.3",
2354
2355
  "@typescript/native-preview": "7.0.0-dev.20260707.2",
2355
2356
  "@typescript/typescript6": "6.0.2",
@@ -2369,18 +2370,18 @@ var init_package = __esm(() => {
2369
2370
  typescript: "^7.0.2"
2370
2371
  },
2371
2372
  optionalDependencies: {
2372
- "oh-my-opencode-darwin-arm64": "5.1.38",
2373
- "oh-my-opencode-darwin-x64": "5.1.38",
2374
- "oh-my-opencode-darwin-x64-baseline": "5.1.38",
2375
- "oh-my-opencode-linux-arm64": "5.1.38",
2376
- "oh-my-opencode-linux-arm64-musl": "5.1.38",
2377
- "oh-my-opencode-linux-x64": "5.1.38",
2378
- "oh-my-opencode-linux-x64-baseline": "5.1.38",
2379
- "oh-my-opencode-linux-x64-musl": "5.1.38",
2380
- "oh-my-opencode-linux-x64-musl-baseline": "5.1.38",
2381
- "oh-my-opencode-windows-arm64": "5.1.38",
2382
- "oh-my-opencode-windows-x64": "5.1.38",
2383
- "oh-my-opencode-windows-x64-baseline": "5.1.38"
2373
+ "oh-my-opencode-darwin-arm64": "5.1.41",
2374
+ "oh-my-opencode-darwin-x64": "5.1.41",
2375
+ "oh-my-opencode-darwin-x64-baseline": "5.1.41",
2376
+ "oh-my-opencode-linux-arm64": "5.1.41",
2377
+ "oh-my-opencode-linux-arm64-musl": "5.1.41",
2378
+ "oh-my-opencode-linux-x64": "5.1.41",
2379
+ "oh-my-opencode-linux-x64-baseline": "5.1.41",
2380
+ "oh-my-opencode-linux-x64-musl": "5.1.41",
2381
+ "oh-my-opencode-linux-x64-musl-baseline": "5.1.41",
2382
+ "oh-my-opencode-windows-arm64": "5.1.41",
2383
+ "oh-my-opencode-windows-x64": "5.1.41",
2384
+ "oh-my-opencode-windows-x64-baseline": "5.1.41"
2384
2385
  },
2385
2386
  overrides: {
2386
2387
  hono: "^4.13.8",
@@ -76780,17 +76781,23 @@ var init_computer = __esm(() => {
76780
76781
  });
76781
76782
 
76782
76783
  // packages/omo-config-core/src/schema/git-master.ts
76783
- var OmoGitMasterSettingsShape, OmoGitMasterSettingsLayerSchema, OmoGitMasterSettingsSchema;
76784
+ var GIT_ENV_ASSIGNMENT_PATTERN, GitEnvPrefixSchema, OmoGitMasterSettingsShape, OmoGitMasterSettingsLayerSchema, OmoGitMasterSettingsSchema;
76784
76785
  var init_git_master = __esm(() => {
76785
76786
  init_zod();
76787
+ 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_-]*)*$/;
76788
+ GitEnvPrefixSchema = string2().refine((value) => value === "" || GIT_ENV_ASSIGNMENT_PATTERN.test(value), {
76789
+ message: 'git_env_prefix must be empty or use shell-safe env assignments like "GIT_MASTER=1"'
76790
+ });
76786
76791
  OmoGitMasterSettingsShape = {
76787
76792
  commit_footer: union([boolean2(), string2()]),
76788
- include_co_authored_by: boolean2()
76793
+ include_co_authored_by: boolean2(),
76794
+ git_env_prefix: GitEnvPrefixSchema
76789
76795
  };
76790
76796
  OmoGitMasterSettingsLayerSchema = object(OmoGitMasterSettingsShape).partial().strict();
76791
76797
  OmoGitMasterSettingsSchema = OmoGitMasterSettingsLayerSchema.extend({
76792
76798
  commit_footer: union([boolean2(), string2()]).default(false),
76793
- include_co_authored_by: boolean2().default(false)
76799
+ include_co_authored_by: boolean2().default(false),
76800
+ git_env_prefix: GitEnvPrefixSchema.default("GIT_MASTER=1")
76794
76801
  }).strict();
76795
76802
  });
76796
76803
 
@@ -76805,10 +76812,29 @@ var init_harness = __esm(() => {
76805
76812
  OMO_CONFIG_LEGACY_HARNESS_IDS = Object.keys(OMO_CONFIG_LEGACY_HARNESS_ALIASES);
76806
76813
  });
76807
76814
 
76815
+ // packages/omo-config-core/src/schema/memory-agreements.ts
76816
+ var OMO_MEMORY_AGREEMENTS_DEFAULTS, OmoMemoryAgreementsSchema, OmoMemoryAgreementsLayerSchema;
76817
+ var init_memory_agreements = __esm(() => {
76818
+ init_zod();
76819
+ OMO_MEMORY_AGREEMENTS_DEFAULTS = { enabled: true, needs_human_threshold: 3, max_items: 64 };
76820
+ OmoMemoryAgreementsSchema = object({
76821
+ enabled: boolean2().default(OMO_MEMORY_AGREEMENTS_DEFAULTS.enabled),
76822
+ needs_human_threshold: number2().int().min(1).default(OMO_MEMORY_AGREEMENTS_DEFAULTS.needs_human_threshold),
76823
+ max_items: number2().int().min(8).max(256).default(OMO_MEMORY_AGREEMENTS_DEFAULTS.max_items)
76824
+ }).strict();
76825
+ OmoMemoryAgreementsLayerSchema = object({
76826
+ enabled: boolean2().optional(),
76827
+ needs_human_threshold: number2().int().min(1).optional(),
76828
+ max_items: number2().int().min(8).max(256).optional()
76829
+ }).strict();
76830
+ });
76831
+
76808
76832
  // packages/omo-config-core/src/schema/memory.ts
76809
76833
  var OmoMemoryReflectionTriggerSchema, OmoMemoryReflectionSchema, OmoMemorySyncSchema, OmoMemorySearchSchema, OmoMemoryRecallEventCapsSchema, OmoMemoryRecallSchema, OmoMemoryNudgeSchema, OmoMemoryFactsSchema, OmoMemoryDreamSchema, OmoMemoryPeopleSchema, OmoMemorySoulSchema, OmoMemoryWriteNoticeSchema, OmoMemoryReflectionTriggerLayerSchema, OmoMemoryReflectionLayerSchema, OmoMemorySyncLayerSchema, OmoMemorySearchLayerSchema, OmoMemoryRecallEventCapsLayerSchema, OmoMemoryRecallLayerSchema, OmoMemoryNudgeLayerSchema, OmoMemoryFactsLayerSchema, OmoMemoryDreamLayerSchema, OmoMemoryPeopleLayerSchema, OmoMemorySoulLayerSchema, OmoMemoryWriteNoticeLayerSchema, OmoMemoryProjectionSchema, OmoMemoryProjectionLayerSchema, OmoMemoryAgentOverridesSchema, OmoMemorySettingsSchema, OmoMemorySettingsLayerSchema;
76810
76834
  var init_memory = __esm(() => {
76811
76835
  init_zod();
76836
+ init_memory_agreements();
76837
+ init_memory_agreements();
76812
76838
  OmoMemoryReflectionTriggerSchema = object({
76813
76839
  step_count: number2().int().nonnegative().default(25),
76814
76840
  on_compaction: boolean2().default(true)
@@ -76951,6 +76977,7 @@ var init_memory = __esm(() => {
76951
76977
  facts: OmoMemoryFactsLayerSchema.optional(),
76952
76978
  dream: OmoMemoryDreamLayerSchema.optional(),
76953
76979
  people: OmoMemoryPeopleLayerSchema.optional(),
76980
+ agreements: OmoMemoryAgreementsLayerSchema.optional(),
76954
76981
  soul: OmoMemorySoulLayerSchema.optional(),
76955
76982
  write_notice: OmoMemoryWriteNoticeLayerSchema.optional(),
76956
76983
  sync: OmoMemorySyncLayerSchema.optional(),
@@ -76981,6 +77008,7 @@ var init_memory = __esm(() => {
76981
77008
  auto_select_max_chars: 150000
76982
77009
  }),
76983
77010
  people: OmoMemoryPeopleSchema.default({ enabled: true, max_entries: 40, max_entry_chars: 200 }),
77011
+ agreements: OmoMemoryAgreementsSchema.default(OMO_MEMORY_AGREEMENTS_DEFAULTS),
76984
77012
  soul: OmoMemorySoulSchema.default({ edit_notice: true }),
76985
77013
  write_notice: OmoMemoryWriteNoticeSchema.default({ enabled: true }),
76986
77014
  sync: OmoMemorySyncSchema.default({ enabled: true }),
@@ -77007,6 +77035,7 @@ var init_memory = __esm(() => {
77007
77035
  facts: OmoMemoryFactsLayerSchema.optional(),
77008
77036
  dream: OmoMemoryDreamLayerSchema.optional(),
77009
77037
  people: OmoMemoryPeopleLayerSchema.optional(),
77038
+ agreements: OmoMemoryAgreementsLayerSchema.optional(),
77010
77039
  soul: OmoMemorySoulLayerSchema.optional(),
77011
77040
  write_notice: OmoMemoryWriteNoticeLayerSchema.optional(),
77012
77041
  sync: OmoMemorySyncLayerSchema.optional(),
@@ -82525,6 +82554,163 @@ var init_event_id = __esm(() => {
82525
82554
  fallbackEventId = createUuidV7Generator();
82526
82555
  });
82527
82556
 
82557
+ // packages/telemetry-core/src/machine-id.ts
82558
+ import { createHash as createHash5 } from "crypto";
82559
+ import os4 from "os";
82560
+ function getDefaultTelemetryOsProvider() {
82561
+ return os4;
82562
+ }
82563
+ function getTelemetryDistinctId(machineIdPrefix, osProvider = getDefaultTelemetryOsProvider()) {
82564
+ return createHash5("sha256").update(`${machineIdPrefix}${osProvider.hostname()}`).digest("hex");
82565
+ }
82566
+ var init_machine_id = () => {};
82567
+
82568
+ // packages/telemetry-core/src/injected-client.ts
82569
+ function isTelemetryClientEnabled(input) {
82570
+ const env = input.env ?? process.env;
82571
+ return !shouldDisableTelemetry({ env, productEnvPrefix: input.product.productEnvPrefix }) && hasTelemetryApiKey(env, input.product.defaultApiKey);
82572
+ }
82573
+ function createTelemetryClient(input) {
82574
+ if (!isTelemetryClientEnabled(input)) {
82575
+ return NO_OP_CLIENT;
82576
+ }
82577
+ const transport = createTransport(input);
82578
+ if (transport === null) {
82579
+ return NO_OP_CLIENT;
82580
+ }
82581
+ const sharedProperties = getSharedProperties(input);
82582
+ return {
82583
+ enabled: true,
82584
+ trackActive: ({ dayUTC, distinctId, reason }) => {
82585
+ try {
82586
+ transport.capture({
82587
+ distinctId,
82588
+ event: input.product.eventName,
82589
+ properties: {
82590
+ ...sharedProperties,
82591
+ $process_person_profile: false,
82592
+ day_utc: dayUTC,
82593
+ reason
82594
+ }
82595
+ });
82596
+ } catch (error) {
82597
+ input.diagnostics?.({
82598
+ event: "telemetry_capture_failed",
82599
+ source: input.source,
82600
+ error,
82601
+ errorKind: error instanceof Error ? "error" : "non_error"
82602
+ });
82603
+ }
82604
+ },
82605
+ flush: async () => {
82606
+ if (transport.flush === undefined) {
82607
+ return;
82608
+ }
82609
+ await transport.flush();
82610
+ },
82611
+ shutdown: async () => {
82612
+ try {
82613
+ await transport.shutdown();
82614
+ } catch (error) {
82615
+ input.diagnostics?.({
82616
+ event: "telemetry_shutdown_failed",
82617
+ source: input.source,
82618
+ error,
82619
+ errorKind: error instanceof Error ? "error" : "non_error"
82620
+ });
82621
+ }
82622
+ }
82623
+ };
82624
+ }
82625
+ function createTransport(input) {
82626
+ const env = input.env ?? process.env;
82627
+ const factory = input.transportFactory;
82628
+ try {
82629
+ return factory(getTelemetryApiKey(env, input.product.defaultApiKey), {
82630
+ enableExceptionAutocapture: false,
82631
+ enableLocalEvaluation: false,
82632
+ strictLocalEvaluation: true,
82633
+ disableRemoteConfig: true,
82634
+ flushAt: 1,
82635
+ flushInterval: 0,
82636
+ host: getTelemetryHost(env, input.product.defaultHost),
82637
+ disableGeoip: input.product.disableGeoip ?? false,
82638
+ ...input.product.transportOptions
82639
+ });
82640
+ } catch (error) {
82641
+ input.diagnostics?.({
82642
+ event: "telemetry_posthog_init_failed",
82643
+ source: input.source,
82644
+ error,
82645
+ errorKind: error instanceof Error ? "error" : "non_error"
82646
+ });
82647
+ return null;
82648
+ }
82649
+ }
82650
+ function getSharedProperties(input) {
82651
+ const osProvider = input.osProvider ?? getDefaultTelemetryOsProvider();
82652
+ const cpuInfo = getSafeCpuInfo(osProvider, input);
82653
+ return {
82654
+ platform: input.product.platform,
82655
+ product_name: input.product.productName,
82656
+ package_name: input.product.packageName,
82657
+ package_version: input.product.packageVersion,
82658
+ runtime: "bun",
82659
+ runtime_version: process.versions.bun ?? process.version,
82660
+ source: input.source,
82661
+ $os: osProvider.platform(),
82662
+ $os_version: osProvider.release(),
82663
+ os_arch: osProvider.arch(),
82664
+ os_type: osProvider.type(),
82665
+ cpu_count: cpuInfo.count,
82666
+ cpu_model: cpuInfo.model,
82667
+ total_memory_gb: Math.round(osProvider.totalmem() / 1024 / 1024 / 1024),
82668
+ locale: Intl.DateTimeFormat().resolvedOptions().locale,
82669
+ timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
82670
+ shell: process.env.SHELL,
82671
+ ci: Boolean(process.env.CI),
82672
+ terminal: process.env.TERM_PROGRAM,
82673
+ ...input.product.additionalProperties
82674
+ };
82675
+ }
82676
+ function getSafeCpuInfo(osProvider, input) {
82677
+ try {
82678
+ const cpuInfo = osProvider.cpus();
82679
+ return {
82680
+ count: cpuInfo.length,
82681
+ model: cpuInfo[0]?.model
82682
+ };
82683
+ } catch (error) {
82684
+ input.diagnostics?.({
82685
+ event: "telemetry_cpu_info_unavailable",
82686
+ source: "shared",
82687
+ error,
82688
+ errorKind: error instanceof Error ? "error" : "non_error"
82689
+ });
82690
+ return {
82691
+ count: 0,
82692
+ model: undefined
82693
+ };
82694
+ }
82695
+ }
82696
+ var NO_OP_CLIENT;
82697
+ var init_injected_client = __esm(() => {
82698
+ init_env();
82699
+ init_machine_id();
82700
+ NO_OP_CLIENT = {
82701
+ enabled: false,
82702
+ trackActive: () => {
82703
+ return;
82704
+ },
82705
+ flush: async () => {
82706
+ return;
82707
+ },
82708
+ shutdown: async () => {
82709
+ return;
82710
+ }
82711
+ };
82712
+ });
82713
+
82528
82714
  // node_modules/.bun/posthog-node@5.52.4/node_modules/posthog-node/dist/extensions/error-tracking/modifiers/module.node.mjs
82529
82715
  import { dirname as dirname18, posix as posix7, sep as sep7 } from "path";
82530
82716
  function createModulerModifier() {
@@ -91898,18 +92084,7 @@ var init_index_node = __esm(() => {
91898
92084
  };
91899
92085
  });
91900
92086
 
91901
- // packages/telemetry-core/src/machine-id.ts
91902
- import { createHash as createHash5 } from "crypto";
91903
- import os4 from "os";
91904
- function getDefaultTelemetryOsProvider() {
91905
- return os4;
91906
- }
91907
- function getTelemetryDistinctId(machineIdPrefix, osProvider = getDefaultTelemetryOsProvider()) {
91908
- return createHash5("sha256").update(`${machineIdPrefix}${osProvider.hostname()}`).digest("hex");
91909
- }
91910
- var init_machine_id = () => {};
91911
-
91912
- // packages/telemetry-core/src/posthog-client.ts
92087
+ // packages/telemetry-core/src/posthog-transport.ts
91913
92088
  class PostHogTelemetryTransport {
91914
92089
  #client;
91915
92090
  constructor(apiKey, options) {
@@ -91928,161 +92103,21 @@ class PostHogTelemetryTransport {
91928
92103
  function createDefaultPostHogTransport(apiKey, options) {
91929
92104
  return new PostHogTelemetryTransport(apiKey, options);
91930
92105
  }
91931
- function isTelemetryClientEnabled(input) {
91932
- const env = input.env ?? process.env;
91933
- return !shouldDisableTelemetry({ env, productEnvPrefix: input.product.productEnvPrefix }) && hasTelemetryApiKey(env, input.product.defaultApiKey);
91934
- }
91935
- function createTelemetryClient(input) {
91936
- if (!isTelemetryClientEnabled(input)) {
91937
- return NO_OP_CLIENT;
91938
- }
91939
- const transport = createTransport(input);
91940
- if (transport === null) {
91941
- return NO_OP_CLIENT;
91942
- }
91943
- const sharedProperties = getSharedProperties(input);
91944
- return {
91945
- enabled: true,
91946
- trackActive: ({ dayUTC, distinctId, reason }) => {
91947
- try {
91948
- transport.capture({
91949
- distinctId,
91950
- event: input.product.eventName,
91951
- properties: {
91952
- ...sharedProperties,
91953
- $process_person_profile: false,
91954
- day_utc: dayUTC,
91955
- reason
91956
- }
91957
- });
91958
- } catch (error) {
91959
- input.diagnostics?.({
91960
- event: "telemetry_capture_failed",
91961
- source: input.source,
91962
- error,
91963
- errorKind: error instanceof Error ? "error" : "non_error"
91964
- });
91965
- }
91966
- },
91967
- flush: async () => {
91968
- if (transport.flush === undefined) {
91969
- return;
91970
- }
91971
- await transport.flush();
91972
- },
91973
- shutdown: async () => {
91974
- try {
91975
- await transport.shutdown();
91976
- } catch (error) {
91977
- input.diagnostics?.({
91978
- event: "telemetry_shutdown_failed",
91979
- source: input.source,
91980
- error,
91981
- errorKind: error instanceof Error ? "error" : "non_error"
91982
- });
91983
- }
91984
- }
91985
- };
91986
- }
91987
- function createTransport(input) {
91988
- const env = input.env ?? process.env;
91989
- const factory = input.transportFactory ?? createDefaultPostHogTransport;
91990
- try {
91991
- return factory(getTelemetryApiKey(env, input.product.defaultApiKey), {
91992
- enableExceptionAutocapture: false,
91993
- enableLocalEvaluation: false,
91994
- strictLocalEvaluation: true,
91995
- disableRemoteConfig: true,
91996
- flushAt: 1,
91997
- flushInterval: 0,
91998
- host: getTelemetryHost(env, input.product.defaultHost),
91999
- disableGeoip: input.product.disableGeoip ?? false,
92000
- ...input.product.transportOptions
92001
- });
92002
- } catch (error) {
92003
- input.diagnostics?.({
92004
- event: "telemetry_posthog_init_failed",
92005
- source: input.source,
92006
- error,
92007
- errorKind: error instanceof Error ? "error" : "non_error"
92008
- });
92009
- return null;
92010
- }
92011
- }
92012
- function getSharedProperties(input) {
92013
- const osProvider = input.osProvider ?? getDefaultTelemetryOsProvider();
92014
- const cpuInfo = getSafeCpuInfo(osProvider, input);
92015
- return {
92016
- platform: input.product.platform,
92017
- product_name: input.product.productName,
92018
- package_name: input.product.packageName,
92019
- package_version: input.product.packageVersion,
92020
- runtime: "bun",
92021
- runtime_version: process.versions.bun ?? process.version,
92022
- source: input.source,
92023
- $os: osProvider.platform(),
92024
- $os_version: osProvider.release(),
92025
- os_arch: osProvider.arch(),
92026
- os_type: osProvider.type(),
92027
- cpu_count: cpuInfo.count,
92028
- cpu_model: cpuInfo.model,
92029
- total_memory_gb: Math.round(osProvider.totalmem() / 1024 / 1024 / 1024),
92030
- locale: Intl.DateTimeFormat().resolvedOptions().locale,
92031
- timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
92032
- shell: process.env.SHELL,
92033
- ci: Boolean(process.env.CI),
92034
- terminal: process.env.TERM_PROGRAM,
92035
- ...input.product.additionalProperties
92036
- };
92037
- }
92038
- function getSafeCpuInfo(osProvider, input) {
92039
- try {
92040
- const cpuInfo = osProvider.cpus();
92041
- return {
92042
- count: cpuInfo.length,
92043
- model: cpuInfo[0]?.model
92044
- };
92045
- } catch (error) {
92046
- input.diagnostics?.({
92047
- event: "telemetry_cpu_info_unavailable",
92048
- source: "shared",
92049
- error,
92050
- errorKind: error instanceof Error ? "error" : "non_error"
92051
- });
92052
- return {
92053
- count: 0,
92054
- model: undefined
92055
- };
92056
- }
92057
- }
92058
- var NO_OP_CLIENT;
92059
- var init_posthog_client = __esm(() => {
92106
+ var init_posthog_transport = __esm(() => {
92060
92107
  init_index_node();
92061
- init_env();
92062
- init_machine_id();
92063
- NO_OP_CLIENT = {
92064
- enabled: false,
92065
- trackActive: () => {
92066
- return;
92067
- },
92068
- flush: async () => {
92069
- return;
92070
- },
92071
- shutdown: async () => {
92072
- return;
92073
- }
92074
- };
92075
92108
  });
92076
92109
 
92077
92110
  // packages/telemetry-core/src/events.ts
92078
- var ALLOWED_DOLLAR_KEYS;
92079
- var init_events = __esm(() => {
92080
- ALLOWED_DOLLAR_KEYS = new Set([
92081
- "$os",
92082
- "$os_version",
92083
- "$process_person_profile",
92084
- "$session_id"
92085
- ]);
92111
+ var init_events = () => {};
92112
+
92113
+ // packages/telemetry-core/src/posthog-client.ts
92114
+ function createTelemetryClient2(input) {
92115
+ return createTelemetryClient({ ...input, transportFactory: input.transportFactory ?? createDefaultPostHogTransport });
92116
+ }
92117
+ var init_posthog_client = __esm(() => {
92118
+ init_injected_client();
92119
+ init_posthog_transport();
92120
+ init_posthog_transport();
92086
92121
  });
92087
92122
 
92088
92123
  // packages/telemetry-core/src/record-daily-active.ts
@@ -92106,7 +92141,7 @@ var package_default2;
92106
92141
  var init_package2 = __esm(() => {
92107
92142
  package_default2 = {
92108
92143
  name: "@oh-my-opencode/omo-codex",
92109
- version: "5.1.38",
92144
+ version: "5.1.41",
92110
92145
  type: "module",
92111
92146
  private: true,
92112
92147
  description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
@@ -92236,7 +92271,7 @@ function resolveActivityStateProvider(options) {
92236
92271
  return () => getPostHogActivityCaptureState(options.now ?? new Date);
92237
92272
  }
92238
92273
  function createPostHogClient(source, options = {}) {
92239
- const client = createTelemetryClient({
92274
+ const client = createTelemetryClient2({
92240
92275
  diagnostics: writeTelemetryDiagnostic2,
92241
92276
  env: options.env ?? process.env,
92242
92277
  osProvider: options.osProvider ?? resolveOsProvider(),
@@ -99405,7 +99440,14 @@ var REQUIRED_PLUGIN_ARTIFACTS = [
99405
99440
  join63("extensions", "omo-memory-doctor.js"),
99406
99441
  join63("extensions", "omo-memory-memfs.js"),
99407
99442
  join63("extensions", "omo-memory-palace.js"),
99443
+ join63("extensions", "omo-session-history.js"),
99444
+ join63("extensions", "omo-recall-store.js"),
99445
+ join63("extensions", "omo-telemetry-posthog.js"),
99446
+ join63("extensions", "omo-memory-sync.js"),
99447
+ join63("extensions", "loro_wasm_bg.wasm"),
99448
+ join63("extensions", "CaseFolding.txt"),
99408
99449
  join63("extensions", "omo-thread-client.js"),
99450
+ join63("extensions", "omo-feedback.js"),
99409
99451
  join63("extensions", "assets.generated.json"),
99410
99452
  join63("extensions", "omo-member.js"),
99411
99453
  join63("extensions", "memory-run-supervisor.mjs"),
@@ -103734,21 +103776,21 @@ var GoalConfigSchema = object({
103734
103776
  });
103735
103777
  // packages/skills-loader-core/src/config/git-env-prefix.ts
103736
103778
  init_zod();
103737
- 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_-]*)*$/;
103779
+ 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_-]*)*$/;
103738
103780
  var GIT_ENV_PREFIX_VALIDATION_MESSAGE = 'git_env_prefix must be empty or use shell-safe env assignments like "GIT_MASTER=1"';
103739
103781
  function isValidGitEnvPrefix(value) {
103740
103782
  if (value === "") {
103741
103783
  return true;
103742
103784
  }
103743
- return GIT_ENV_ASSIGNMENT_PATTERN.test(value);
103785
+ return GIT_ENV_ASSIGNMENT_PATTERN2.test(value);
103744
103786
  }
103745
- var GitEnvPrefixSchema = string2().refine(isValidGitEnvPrefix, { message: GIT_ENV_PREFIX_VALIDATION_MESSAGE }).default("GIT_MASTER=1");
103787
+ var GitEnvPrefixSchema2 = string2().refine(isValidGitEnvPrefix, { message: GIT_ENV_PREFIX_VALIDATION_MESSAGE }).default("GIT_MASTER=1");
103746
103788
  // packages/omo-opencode/src/config/schema/git-master.ts
103747
103789
  init_zod();
103748
103790
  var GitMasterConfigSchema = object({
103749
103791
  commit_footer: union([boolean2(), string2()]).default(false),
103750
103792
  include_co_authored_by: boolean2().default(false),
103751
- git_env_prefix: GitEnvPrefixSchema
103793
+ git_env_prefix: GitEnvPrefixSchema2
103752
103794
  });
103753
103795
  // packages/omo-opencode/src/config/schema/hooks.ts
103754
103796
  init_zod();
@@ -106014,7 +106056,7 @@ function createPostHogClient2(source, options = {}) {
106014
106056
  if (shouldDisablePostHog(env, options.configEnabled)) {
106015
106057
  return NO_OP_POSTHOG2;
106016
106058
  }
106017
- const client = createTelemetryClient({
106059
+ const client = createTelemetryClient2({
106018
106060
  diagnostics: logTelemetryDiagnostic,
106019
106061
  env: createCoreCompatibleTelemetryEnv(env),
106020
106062
  osProvider: resolveOsProvider2(),