oh-my-opencode 5.0.0-beta.18 → 5.0.0-beta.19

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 (143) hide show
  1. package/dist/cli/index.js +289 -160
  2. package/dist/cli-node/index.js +289 -160
  3. package/dist/index.js +324 -176
  4. package/dist/skills/ast-grep/AGENTS.md +51 -0
  5. package/dist/skills/coding-agent-sessions/AGENTS.md +62 -0
  6. package/dist/skills/start-work/SKILL.md +2 -1
  7. package/dist/skills/ultimate-browsing/SKILL.md +2 -0
  8. package/dist/skills/ultimate-browsing/references/chrome-stealth.md +2 -0
  9. package/dist/skills/visual-qa/AGENTS.md +58 -0
  10. package/dist/tui.js +17 -17
  11. package/package.json +21 -21
  12. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  13. package/packages/omo-codex/plugin/AGENTS.md +47 -0
  14. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  15. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  16. package/packages/omo-codex/plugin/components/codegraph/package.json +1 -1
  17. package/packages/omo-codex/plugin/components/comment-checker/AGENTS.md +9 -0
  18. package/packages/omo-codex/plugin/components/comment-checker/biome.json +2 -2
  19. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  20. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  21. package/packages/omo-codex/plugin/components/comment-checker/src/apply-patch.ts +2 -8
  22. package/packages/omo-codex/plugin/components/comment-checker/src/core.ts +1 -2
  23. package/packages/omo-codex/plugin/components/comment-checker/src/request-extractor.ts +1 -1
  24. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  25. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  26. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/biome.json +2 -2
  27. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/cli.js +1 -5
  28. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/codex-hook.js +1 -5
  29. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  30. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  31. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/src/codex-hook.ts +1 -5
  32. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/test/codex-hook.test.ts +1 -4
  33. package/packages/omo-codex/plugin/components/lsp/AGENTS.md +30 -15
  34. package/packages/omo-codex/plugin/components/lsp/biome.json +2 -2
  35. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +3 -3
  36. package/packages/omo-codex/plugin/components/lsp/dist/daemon-cli-path.js +1 -1
  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/lsp/src/codex-hook.ts +1 -1
  40. package/packages/omo-codex/plugin/components/lsp/src/daemon-cli-path.ts +1 -5
  41. package/packages/omo-codex/plugin/components/lsp/test/codex-hook-unavailable.test.ts +6 -7
  42. package/packages/omo-codex/plugin/components/lsp/test/codex-hook.test.ts +1 -2
  43. package/packages/omo-codex/plugin/components/lsp/test/package-smoke.test.ts +11 -1
  44. package/packages/omo-codex/plugin/components/rules/AGENTS.md +12 -0
  45. package/packages/omo-codex/plugin/components/rules/biome.json +2 -2
  46. package/packages/omo-codex/plugin/components/rules/dist/cli.js +43 -30
  47. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  48. package/packages/omo-codex/plugin/components/rules/package.json +2 -2
  49. package/packages/omo-codex/plugin/components/rules/src/config.ts +1 -2
  50. package/packages/omo-codex/plugin/components/rules/src/persistent-cache.ts +1 -2
  51. package/packages/omo-codex/plugin/components/rules/src/post-compact-budget.ts +6 -2
  52. package/packages/omo-codex/plugin/components/rules/src/rules-engine-factory.ts +1 -4
  53. package/packages/omo-codex/plugin/components/rules/src/static-injection.ts +4 -9
  54. package/packages/omo-codex/plugin/components/rules/test/bundled-rules.test.ts +1 -2
  55. package/packages/omo-codex/plugin/components/rules/test/dynamic-target-fingerprints.test.ts +1 -2
  56. package/packages/omo-codex/plugin/components/rules/test/engine.test.ts +7 -4
  57. package/packages/omo-codex/plugin/components/rules/test/finder.test.ts +2 -3
  58. package/packages/omo-codex/plugin/components/rules/test/formatter.test.ts +2 -3
  59. package/packages/omo-codex/plugin/components/rules/test/hephaestus-model-variant.test.ts +1 -2
  60. package/packages/omo-codex/plugin/components/rules/test/matcher.test.ts +2 -3
  61. package/packages/omo-codex/plugin/components/rules/test/package-smoke.test.ts +1 -1
  62. package/packages/omo-codex/plugin/components/rules/test/parser.test.ts +1 -2
  63. package/packages/omo-codex/plugin/components/rules/test/post-compact-budget.test.ts +1 -2
  64. package/packages/omo-codex/plugin/components/rules/test/rules-engine-consumption.test.ts +3 -6
  65. package/packages/omo-codex/plugin/components/rules/test/scanner.test.ts +1 -2
  66. package/packages/omo-codex/plugin/components/rules/test/sources.test.ts +2 -5
  67. package/packages/omo-codex/plugin/components/rules/test/windows-git-bash-bundled-rule.test.ts +1 -2
  68. package/packages/omo-codex/plugin/components/start-work-continuation/biome.json +2 -2
  69. package/packages/omo-codex/plugin/components/start-work-continuation/hooks/hooks.json +2 -2
  70. package/packages/omo-codex/plugin/components/start-work-continuation/package.json +1 -1
  71. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  72. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  73. package/packages/omo-codex/plugin/components/telemetry/AGENTS.md +8 -0
  74. package/packages/omo-codex/plugin/components/telemetry/biome.json +2 -2
  75. package/packages/omo-codex/plugin/components/telemetry/dist/cli.js +237 -99
  76. package/packages/omo-codex/plugin/components/telemetry/dist/posthog.js +237 -99
  77. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  78. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  79. package/packages/omo-codex/plugin/components/telemetry/src/codex-hook.ts +1 -4
  80. package/packages/omo-codex/plugin/components/telemetry/src/posthog.ts +4 -14
  81. package/packages/omo-codex/plugin/components/telemetry/src/product-identity.ts +1 -1
  82. package/packages/omo-codex/plugin/components/telemetry/test/diagnostics.test.ts +2 -5
  83. package/packages/omo-codex/plugin/components/ultrawork/AGENTS.md +5 -0
  84. package/packages/omo-codex/plugin/components/ultrawork/biome.json +2 -2
  85. package/packages/omo-codex/plugin/components/ultrawork/directive.md +7 -1
  86. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  87. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  88. package/packages/omo-codex/plugin/components/ultrawork/skills/ultrawork/SKILL.md +7 -1
  89. package/packages/omo-codex/plugin/components/ultrawork/test/codex-hook-trigger-policy.test.ts +9 -1
  90. package/packages/omo-codex/plugin/components/ulw-loop/AGENTS.md +16 -0
  91. package/packages/omo-codex/plugin/components/ulw-loop/biome.json +2 -2
  92. package/packages/omo-codex/plugin/components/ulw-loop/directive.md +7 -1
  93. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.js +1 -1
  94. package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-snapshot.js +1 -1
  95. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +4 -4
  96. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  97. package/packages/omo-codex/plugin/components/ulw-loop/src/codex-goal-snapshot.ts +3 -1
  98. package/packages/omo-codex/plugin/components/ulw-loop/src/codex-hook.ts +3 -1
  99. package/packages/omo-codex/plugin/components/ulw-loop/test/codex-goal-snapshot.test.ts +18 -0
  100. package/packages/omo-codex/plugin/components/ulw-loop/test/package-smoke.test.ts +3 -2
  101. package/packages/omo-codex/plugin/components/ulw-loop/test/steering.test.ts +8 -5
  102. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  103. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  104. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  105. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-codegraph-init-guidance.json +1 -1
  106. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  107. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  108. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  109. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  110. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  111. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  112. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  113. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  114. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  115. package/packages/omo-codex/plugin/hooks/session-start-checking-codegraph-bootstrap.json +1 -1
  116. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  117. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  118. package/packages/omo-codex/plugin/hooks/stop-checking-start-work-continuation.json +1 -1
  119. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  120. package/packages/omo-codex/plugin/hooks/subagent-stop-checking-start-work-continuation.json +1 -1
  121. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  122. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  123. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  124. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  125. package/packages/omo-codex/plugin/package-lock.json +19 -19
  126. package/packages/omo-codex/plugin/package.json +1 -1
  127. package/packages/omo-codex/plugin/scripts/AGENTS.md +40 -0
  128. package/packages/omo-codex/plugin/skills/ast-grep/AGENTS.md +51 -0
  129. package/packages/omo-codex/plugin/skills/coding-agent-sessions/AGENTS.md +62 -0
  130. package/packages/omo-codex/plugin/skills/start-work/SKILL.md +2 -1
  131. package/packages/omo-codex/plugin/skills/ultimate-browsing/SKILL.md +2 -0
  132. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/chrome-stealth.md +2 -0
  133. package/packages/omo-codex/plugin/skills/ultrawork/SKILL.md +7 -1
  134. package/packages/omo-codex/plugin/skills/visual-qa/AGENTS.md +58 -0
  135. package/packages/omo-codex/plugin/test/AGENTS.md +47 -0
  136. package/packages/omo-codex/scripts/AGENTS.md +36 -0
  137. package/packages/omo-codex/scripts/install-dist/install-local.mjs +249 -120
  138. package/packages/shared-skills/skills/ast-grep/AGENTS.md +51 -0
  139. package/packages/shared-skills/skills/coding-agent-sessions/AGENTS.md +62 -0
  140. package/packages/shared-skills/skills/start-work/SKILL.md +2 -1
  141. package/packages/shared-skills/skills/ultimate-browsing/SKILL.md +2 -0
  142. package/packages/shared-skills/skills/ultimate-browsing/references/chrome-stealth.md +2 -0
  143. package/packages/shared-skills/skills/visual-qa/AGENTS.md +58 -0
package/dist/index.js CHANGED
@@ -14425,7 +14425,7 @@ var require_picocolors = __commonJS(function(exports, module) {
14425
14425
  module.exports.createColors = createColors;
14426
14426
  });
14427
14427
 
14428
- // node_modules/.bun/picomatch@4.0.5/node_modules/picomatch/lib/constants.js
14428
+ // node_modules/.bun/picomatch@4.0.7/node_modules/picomatch/lib/constants.js
14429
14429
  var require_constants = __commonJS(function(exports, module) {
14430
14430
  var WIN_SLASH = "\\\\/";
14431
14431
  var WIN_NO_SLASH = `[^${WIN_SLASH}]`;
@@ -14570,7 +14570,7 @@ var require_constants = __commonJS(function(exports, module) {
14570
14570
  };
14571
14571
  });
14572
14572
 
14573
- // node_modules/.bun/picomatch@4.0.5/node_modules/picomatch/lib/utils.js
14573
+ // node_modules/.bun/picomatch@4.0.7/node_modules/picomatch/lib/utils.js
14574
14574
  var require_utils = __commonJS(function(exports) {
14575
14575
  var {
14576
14576
  REGEX_BACKSLASH,
@@ -14633,7 +14633,7 @@ var require_utils = __commonJS(function(exports) {
14633
14633
  };
14634
14634
  });
14635
14635
 
14636
- // node_modules/.bun/picomatch@4.0.5/node_modules/picomatch/lib/scan.js
14636
+ // node_modules/.bun/picomatch@4.0.7/node_modules/picomatch/lib/scan.js
14637
14637
  var require_scan = __commonJS(function(exports, module) {
14638
14638
  var utils = require_utils();
14639
14639
  var {
@@ -14664,7 +14664,7 @@ var require_scan = __commonJS(function(exports, module) {
14664
14664
  var scan = (input, options) => {
14665
14665
  const opts = options || {};
14666
14666
  const length = input.length - 1;
14667
- const scanToEnd = opts.parts === true || opts.scanToEnd === true;
14667
+ const scanToEnd = opts.parts === true || opts.tokens === true || opts.scanToEnd === true;
14668
14668
  const slashes = [];
14669
14669
  const tokens = [];
14670
14670
  const parts = [];
@@ -14771,14 +14771,18 @@ var require_scan = __commonJS(function(exports, module) {
14771
14771
  negatedExtglob = true;
14772
14772
  }
14773
14773
  if (scanToEnd === true) {
14774
+ let parens = 0;
14774
14775
  while (eos() !== true && (code = advance())) {
14775
14776
  if (code === CHAR_BACKWARD_SLASH) {
14776
14777
  backslashes = token.backslashes = true;
14777
- code = advance();
14778
+ advance();
14779
+ continue;
14780
+ }
14781
+ if (code === CHAR_LEFT_PARENTHESES) {
14782
+ parens++;
14778
14783
  continue;
14779
14784
  }
14780
- if (code === CHAR_RIGHT_PARENTHESES) {
14781
- isGlob = token.isGlob = true;
14785
+ if (code === CHAR_RIGHT_PARENTHESES && --parens === 0) {
14782
14786
  finished = true;
14783
14787
  break;
14784
14788
  }
@@ -14833,13 +14837,18 @@ var require_scan = __commonJS(function(exports, module) {
14833
14837
  if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES) {
14834
14838
  isGlob = token.isGlob = true;
14835
14839
  if (scanToEnd === true) {
14840
+ let parens = 1;
14836
14841
  while (eos() !== true && (code = advance())) {
14837
- if (code === CHAR_LEFT_PARENTHESES) {
14842
+ if (code === CHAR_BACKWARD_SLASH) {
14838
14843
  backslashes = token.backslashes = true;
14839
- code = advance();
14844
+ advance();
14840
14845
  continue;
14841
14846
  }
14842
- if (code === CHAR_RIGHT_PARENTHESES) {
14847
+ if (code === CHAR_LEFT_PARENTHESES) {
14848
+ parens++;
14849
+ continue;
14850
+ }
14851
+ if (code === CHAR_RIGHT_PARENTHESES && --parens === 0) {
14843
14852
  finished = true;
14844
14853
  break;
14845
14854
  }
@@ -14913,32 +14922,31 @@ var require_scan = __commonJS(function(exports, module) {
14913
14922
  if (opts.parts === true || opts.tokens === true) {
14914
14923
  let prevIndex;
14915
14924
  for (let idx = 0;idx < slashes.length; idx++) {
14916
- const n = prevIndex ? prevIndex + 1 : start;
14925
+ const n2 = prevIndex !== undefined ? prevIndex + 1 : start;
14917
14926
  const i = slashes[idx];
14918
- const value = input.slice(n, i);
14927
+ const value2 = input.slice(n2, i);
14919
14928
  if (opts.tokens) {
14920
14929
  if (idx === 0 && start !== 0) {
14921
14930
  tokens[idx].isPrefix = true;
14922
14931
  tokens[idx].value = prefix;
14923
14932
  } else {
14924
- tokens[idx].value = value;
14933
+ tokens[idx].value = value2;
14925
14934
  }
14926
14935
  depth(tokens[idx]);
14927
14936
  state2.maxDepth += tokens[idx].depth;
14928
14937
  }
14929
- if (idx !== 0 || value !== "") {
14930
- parts.push(value);
14938
+ if (i >= start) {
14939
+ parts.push(value2);
14940
+ prevIndex = i;
14931
14941
  }
14932
- prevIndex = i;
14933
14942
  }
14934
- if (prevIndex && prevIndex + 1 < input.length) {
14935
- const value = input.slice(prevIndex + 1);
14936
- parts.push(value);
14937
- if (opts.tokens) {
14938
- tokens[tokens.length - 1].value = value;
14939
- depth(tokens[tokens.length - 1]);
14940
- state2.maxDepth += tokens[tokens.length - 1].depth;
14941
- }
14943
+ const n = prevIndex !== undefined ? prevIndex + 1 : start;
14944
+ const value = input.slice(n);
14945
+ parts.push(value);
14946
+ if (opts.tokens && prevIndex && prevIndex + 1 < input.length) {
14947
+ tokens[tokens.length - 1].value = value;
14948
+ depth(tokens[tokens.length - 1]);
14949
+ state2.maxDepth += tokens[tokens.length - 1].depth;
14942
14950
  }
14943
14951
  state2.slashes = slashes;
14944
14952
  state2.parts = parts;
@@ -14948,7 +14956,7 @@ var require_scan = __commonJS(function(exports, module) {
14948
14956
  module.exports = scan;
14949
14957
  });
14950
14958
 
14951
- // node_modules/.bun/picomatch@4.0.5/node_modules/picomatch/lib/parse.js
14959
+ // node_modules/.bun/picomatch@4.0.7/node_modules/picomatch/lib/parse.js
14952
14960
  var require_parse2 = __commonJS(function(exports, module) {
14953
14961
  var constants7 = require_constants();
14954
14962
  var utils = require_utils();
@@ -15780,6 +15788,7 @@ var require_parse2 = __commonJS(function(exports, module) {
15780
15788
  rest = rest.slice(3);
15781
15789
  consume("/**", 3);
15782
15790
  }
15791
+ const isEnd = eos() || state2.parens > 0 && rest === ")".repeat(state2.parens) && !extglobs.some((extglob) => extglob.type === "negate");
15783
15792
  if (prior.type === "bos" && eos()) {
15784
15793
  prev.type = "globstar";
15785
15794
  prev.value += value;
@@ -15789,7 +15798,7 @@ var require_parse2 = __commonJS(function(exports, module) {
15789
15798
  consume(value);
15790
15799
  continue;
15791
15800
  }
15792
- if (prior.type === "slash" && prior.prev.type !== "bos" && !afterStar && eos()) {
15801
+ if (prior.type === "slash" && prior.prev.type !== "bos" && !afterStar && isEnd) {
15793
15802
  state2.output = state2.output.slice(0, -(prior.output + prev.output).length);
15794
15803
  prior.output = `(?:${prior.output}`;
15795
15804
  prev.type = "globstar";
@@ -15967,7 +15976,7 @@ var require_parse2 = __commonJS(function(exports, module) {
15967
15976
  module.exports = parse3;
15968
15977
  });
15969
15978
 
15970
- // node_modules/.bun/picomatch@4.0.5/node_modules/picomatch/lib/picomatch.js
15979
+ // node_modules/.bun/picomatch@4.0.7/node_modules/picomatch/lib/picomatch.js
15971
15980
  var require_picomatch = __commonJS(function(exports, module) {
15972
15981
  var scan = require_scan();
15973
15982
  var parse3 = require_parse2();
@@ -16107,7 +16116,7 @@ var require_picomatch = __commonJS(function(exports, module) {
16107
16116
  module.exports = picomatch;
16108
16117
  });
16109
16118
 
16110
- // node_modules/.bun/picomatch@4.0.5/node_modules/picomatch/index.js
16119
+ // node_modules/.bun/picomatch@4.0.7/node_modules/picomatch/index.js
16111
16120
  var require_picomatch2 = __commonJS(function(exports, module) {
16112
16121
  var pico = require_picomatch();
16113
16122
  var utils = require_utils();
@@ -85164,7 +85173,7 @@ function createPromptTimeoutContext(args, timeoutMs) {
85164
85173
  // packages/omo-opencode/src/shared/prompt-async-gate.ts
85165
85174
  init_src2();
85166
85175
  init_route_resolver();
85167
- // node_modules/.bun/@opencode-ai+sdk@1.18.19/node_modules/@opencode-ai/sdk/dist/gen/core/serverSentEvents.gen.js
85176
+ // node_modules/.bun/@opencode-ai+sdk@1.18.22/node_modules/@opencode-ai/sdk/dist/gen/core/serverSentEvents.gen.js
85168
85177
  var createSseClient = ({ onSseError, onSseEvent, responseTransformer, responseValidator, sseDefaultRetryDelay, sseMaxRetryAttempts, sseMaxRetryDelay, sseSleepFn, url, ...options }) => {
85169
85178
  let lastEventId;
85170
85179
  const sleep2 = sseSleepFn ?? ((ms) => new Promise((resolve16) => setTimeout(resolve16, ms)));
@@ -85273,7 +85282,7 @@ var createSseClient = ({ onSseError, onSseEvent, responseTransformer, responseVa
85273
85282
  return { stream };
85274
85283
  };
85275
85284
 
85276
- // node_modules/.bun/@opencode-ai+sdk@1.18.19/node_modules/@opencode-ai/sdk/dist/gen/core/auth.gen.js
85285
+ // node_modules/.bun/@opencode-ai+sdk@1.18.22/node_modules/@opencode-ai/sdk/dist/gen/core/auth.gen.js
85277
85286
  var getAuthToken = async (auth, callback) => {
85278
85287
  const token = typeof callback === "function" ? await callback(auth) : callback;
85279
85288
  if (!token) {
@@ -85288,12 +85297,12 @@ var getAuthToken = async (auth, callback) => {
85288
85297
  return token;
85289
85298
  };
85290
85299
 
85291
- // node_modules/.bun/@opencode-ai+sdk@1.18.19/node_modules/@opencode-ai/sdk/dist/gen/core/bodySerializer.gen.js
85300
+ // node_modules/.bun/@opencode-ai+sdk@1.18.22/node_modules/@opencode-ai/sdk/dist/gen/core/bodySerializer.gen.js
85292
85301
  var jsonBodySerializer = {
85293
85302
  bodySerializer: (body) => JSON.stringify(body, (_key, value) => typeof value === "bigint" ? value.toString() : value)
85294
85303
  };
85295
85304
 
85296
- // node_modules/.bun/@opencode-ai+sdk@1.18.19/node_modules/@opencode-ai/sdk/dist/gen/core/pathSerializer.gen.js
85305
+ // node_modules/.bun/@opencode-ai+sdk@1.18.22/node_modules/@opencode-ai/sdk/dist/gen/core/pathSerializer.gen.js
85297
85306
  var separatorArrayExplode = (style) => {
85298
85307
  switch (style) {
85299
85308
  case "label":
@@ -85396,7 +85405,7 @@ var serializeObjectParam = ({ allowReserved, explode, name, style, value, valueO
85396
85405
  return style === "label" || style === "matrix" ? separator + joinedValues : joinedValues;
85397
85406
  };
85398
85407
 
85399
- // node_modules/.bun/@opencode-ai+sdk@1.18.19/node_modules/@opencode-ai/sdk/dist/gen/core/utils.gen.js
85408
+ // node_modules/.bun/@opencode-ai+sdk@1.18.22/node_modules/@opencode-ai/sdk/dist/gen/core/utils.gen.js
85400
85409
  var PATH_PARAM_RE = /\{[^{}]+\}/g;
85401
85410
  var defaultPathSerializer = ({ path: path7, url: _url }) => {
85402
85411
  let url = _url;
@@ -85464,7 +85473,7 @@ var getUrl = ({ baseUrl, path: path7, query, querySerializer, url: _url }) => {
85464
85473
  return url;
85465
85474
  };
85466
85475
 
85467
- // node_modules/.bun/@opencode-ai+sdk@1.18.19/node_modules/@opencode-ai/sdk/dist/gen/client/utils.gen.js
85476
+ // node_modules/.bun/@opencode-ai+sdk@1.18.22/node_modules/@opencode-ai/sdk/dist/gen/client/utils.gen.js
85468
85477
  var createQuerySerializer = ({ allowReserved, array: array7, object: object14 } = {}) => {
85469
85478
  const querySerializer = (queryParams) => {
85470
85479
  const search = [];
@@ -85672,7 +85681,7 @@ var createConfig = (override = {}) => ({
85672
85681
  ...override
85673
85682
  });
85674
85683
 
85675
- // node_modules/.bun/@opencode-ai+sdk@1.18.19/node_modules/@opencode-ai/sdk/dist/gen/client/client.gen.js
85684
+ // node_modules/.bun/@opencode-ai+sdk@1.18.22/node_modules/@opencode-ai/sdk/dist/gen/client/client.gen.js
85676
85685
  var createClient = (config3 = {}) => {
85677
85686
  let _config = mergeConfigs2(createConfig(), config3);
85678
85687
  const getConfig = () => ({ ..._config });
@@ -85819,7 +85828,7 @@ var createClient = (config3 = {}) => {
85819
85828
  trace: makeMethod("TRACE")
85820
85829
  };
85821
85830
  };
85822
- // node_modules/.bun/@opencode-ai+sdk@1.18.19/node_modules/@opencode-ai/sdk/dist/gen/core/params.gen.js
85831
+ // node_modules/.bun/@opencode-ai+sdk@1.18.22/node_modules/@opencode-ai/sdk/dist/gen/core/params.gen.js
85823
85832
  var extraPrefixesMap = {
85824
85833
  $body_: "body",
85825
85834
  $headers_: "headers",
@@ -85827,12 +85836,12 @@ var extraPrefixesMap = {
85827
85836
  $query_: "query"
85828
85837
  };
85829
85838
  var extraPrefixes = Object.entries(extraPrefixesMap);
85830
- // node_modules/.bun/@opencode-ai+sdk@1.18.19/node_modules/@opencode-ai/sdk/dist/gen/client.gen.js
85839
+ // node_modules/.bun/@opencode-ai+sdk@1.18.22/node_modules/@opencode-ai/sdk/dist/gen/client.gen.js
85831
85840
  var client = createClient(createConfig({
85832
85841
  baseUrl: "http://localhost:4096"
85833
85842
  }));
85834
85843
 
85835
- // node_modules/.bun/@opencode-ai+sdk@1.18.19/node_modules/@opencode-ai/sdk/dist/gen/sdk.gen.js
85844
+ // node_modules/.bun/@opencode-ai+sdk@1.18.22/node_modules/@opencode-ai/sdk/dist/gen/sdk.gen.js
85836
85845
  class _HeyApiClient {
85837
85846
  _client = client;
85838
85847
  constructor(args) {
@@ -86502,7 +86511,7 @@ class OpencodeClient extends _HeyApiClient {
86502
86511
  event = new Event2({ client: this._client });
86503
86512
  }
86504
86513
 
86505
- // node_modules/.bun/@opencode-ai+sdk@1.18.19/node_modules/@opencode-ai/sdk/dist/error-interceptor.js
86514
+ // node_modules/.bun/@opencode-ai+sdk@1.18.22/node_modules/@opencode-ai/sdk/dist/error-interceptor.js
86506
86515
  function wrapClientError(error, response, request, opts) {
86507
86516
  if (!opts?.throwOnError)
86508
86517
  return error;
@@ -86529,7 +86538,7 @@ function describe(request, response) {
86529
86538
  return `${method} ${url}${status ? " \u2192 " + status : ""}${statusText ? " " + statusText : ""}`;
86530
86539
  }
86531
86540
 
86532
- // node_modules/.bun/@opencode-ai+sdk@1.18.19/node_modules/@opencode-ai/sdk/dist/client.js
86541
+ // node_modules/.bun/@opencode-ai+sdk@1.18.22/node_modules/@opencode-ai/sdk/dist/client.js
86533
86542
  function pick2(value, fallback) {
86534
86543
  if (!value)
86535
86544
  return;
@@ -86577,7 +86586,7 @@ function createOpencodeClient(config3) {
86577
86586
  client2.interceptors.error.use(wrapClientError);
86578
86587
  return new OpencodeClient({ client: client2 });
86579
86588
  }
86580
- // node_modules/.bun/@opencode-ai+sdk@1.18.19/node_modules/@opencode-ai/sdk/dist/server.js
86589
+ // node_modules/.bun/@opencode-ai+sdk@1.18.22/node_modules/@opencode-ai/sdk/dist/server.js
86581
86590
  var import_cross_spawn = __toESM(require_cross_spawn(), 1);
86582
86591
  // packages/omo-opencode/src/features/claude-code-session-state/state.ts
86583
86592
  var subagentSessions = new Set;
@@ -98672,7 +98681,7 @@ function getCachedVersion(options = {}) {
98672
98681
  // package.json
98673
98682
  var package_default = {
98674
98683
  name: "oh-my-opencode",
98675
- version: "5.0.0-beta.18",
98684
+ version: "5.0.0-beta.19",
98676
98685
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
98677
98686
  main: "./dist/index.js",
98678
98687
  types: "dist/index.d.ts",
@@ -98837,23 +98846,23 @@ var package_default = {
98837
98846
  "@clack/prompts": "^1.7.0",
98838
98847
  "@code-yeongyu/comment-checker": "^0.8.0",
98839
98848
  "@modelcontextprotocol/sdk": "^1.30.0",
98840
- "@opencode-ai/plugin": "1.18.19",
98841
- "@opencode-ai/sdk": "1.18.19",
98842
- "@opentui/core": "^0.5.6",
98843
- "@opentui/keymap": "^0.5.6",
98844
- "@opentui/solid": "^0.5.6",
98849
+ "@opencode-ai/plugin": "1.18.22",
98850
+ "@opencode-ai/sdk": "1.18.22",
98851
+ "@opentui/core": "^0.5.8",
98852
+ "@opentui/keymap": "^0.5.8",
98853
+ "@opentui/solid": "^0.5.8",
98845
98854
  commander: "^15.0.0",
98846
98855
  "detect-libc": "^2.1.2",
98847
98856
  diff: "^9.0.0",
98848
98857
  "js-yaml": "^5.0.0",
98849
98858
  "jsonc-parser": "^3.3.1",
98850
98859
  picocolors: "^1.1.1",
98851
- picomatch: "^4.0.5",
98852
- "posthog-node": "^5.49.2",
98860
+ picomatch: "^4.0.7",
98861
+ "posthog-node": "^5.51.1",
98853
98862
  zod: "^4.4.3"
98854
98863
  },
98855
98864
  devDependencies: {
98856
- "@code-yeongyu/senpi": "2026.8.23",
98865
+ "@code-yeongyu/senpi": "2026.8.24",
98857
98866
  "@oh-my-opencode/agents-md-core": "workspace:*",
98858
98867
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
98859
98868
  "@oh-my-opencode/boulder-state": "workspace:*",
@@ -98894,18 +98903,18 @@ var package_default = {
98894
98903
  typescript: "^7.0.2"
98895
98904
  },
98896
98905
  optionalDependencies: {
98897
- "oh-my-opencode-darwin-arm64": "5.0.0-beta.18",
98898
- "oh-my-opencode-darwin-x64": "5.0.0-beta.18",
98899
- "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.18",
98900
- "oh-my-opencode-linux-arm64": "5.0.0-beta.18",
98901
- "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.18",
98902
- "oh-my-opencode-linux-x64": "5.0.0-beta.18",
98903
- "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.18",
98904
- "oh-my-opencode-linux-x64-musl": "5.0.0-beta.18",
98905
- "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.18",
98906
- "oh-my-opencode-windows-arm64": "5.0.0-beta.18",
98907
- "oh-my-opencode-windows-x64": "5.0.0-beta.18",
98908
- "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.18"
98906
+ "oh-my-opencode-darwin-arm64": "5.0.0-beta.19",
98907
+ "oh-my-opencode-darwin-x64": "5.0.0-beta.19",
98908
+ "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.19",
98909
+ "oh-my-opencode-linux-arm64": "5.0.0-beta.19",
98910
+ "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.19",
98911
+ "oh-my-opencode-linux-x64": "5.0.0-beta.19",
98912
+ "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.19",
98913
+ "oh-my-opencode-linux-x64-musl": "5.0.0-beta.19",
98914
+ "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.19",
98915
+ "oh-my-opencode-windows-arm64": "5.0.0-beta.19",
98916
+ "oh-my-opencode-windows-x64": "5.0.0-beta.19",
98917
+ "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.19"
98909
98918
  },
98910
98919
  overrides: {
98911
98920
  "@earendil-works/pi-agent-core": "0.84.2",
@@ -105037,7 +105046,7 @@ The real-surface artifact is always required. A test is required only where a co
105037
105046
  | Adds/modifies a CLI command | Run the command with Bash. Show the output. |
105038
105047
  | Changes build output | Run the build. Verify the output files exist and are correct. |
105039
105048
  | Modifies API behavior | Call the endpoint. Show the response. |
105040
- | Changes UI rendering | Use Chrome to drive the REAL page; if Chrome is not available, download and use agent-browser (https://github.com/vercel-labs/agent-browser). Capture screenshot + action log. |
105049
+ | Changes UI rendering | Use Chrome to drive the REAL page; if Chrome is not available, download and use agent-browser (https://github.com/vercel-labs/agent-browser). Capture screenshot + action log. NEVER clear cookies, cache, or site data (\`Network.clearBrowserCookies\`, \`Storage.clearCookies\`, \`chrome.browsingData.remove\`, "clear browsing data") on the user's real/main browser profile \u2014 it wipes their logged-in state. If you need that profile's login state, clone it first (\`rsync -a <profile>/ <tmp-clone>/\`) and launch Chrome / agent-browser against the clone as the user-data-dir; run any clearing there only. |
105041
105050
  | Changes UI rendering or a TUI/terminal layout (incl. CJK/Korean/Japanese/Chinese text) | Load the visual-qa skill: capture reference + actual screenshots (web) or the xterm.js web terminal render (TUI; NEVER \`tmux capture-pane\` - it degrades color and CJK width), run its bundled pixel-diff / column-width script, and get the dual read-only verdict (design-system + functional integrity, and visual fidelity + CJK precision). Record the diff/score artifact. |
105042
105051
  | Changes a desktop/GUI (non-page) surface | Computer use: OS-level GUI automation against the running app. Capture action log + screenshot. |
105043
105052
  | Adds a new tool/hook/feature | Test it end-to-end in a real scenario. |
@@ -105411,7 +105420,7 @@ Trigger if user said "\uC5C4\uBC00"/"strictly"/"rigorously"/"properly review", o
105411
105420
  | Adds/modifies a CLI command | Run the command with Bash. Show the output. |
105412
105421
  | Changes build output | Run the build. Verify output files exist and are correct. |
105413
105422
  | Modifies API behavior | Call the endpoint. Show the response. |
105414
- | Renders/changes a page | Use Chrome to drive the REAL page; if Chrome is not available, download and use agent-browser (https://github.com/vercel-labs/agent-browser). Capture screenshot + action log. |
105423
+ | Renders/changes a page | Use Chrome to drive the REAL page; if Chrome is not available, download and use agent-browser (https://github.com/vercel-labs/agent-browser). Capture screenshot + action log. NEVER clear cookies, cache, or site data (\`Network.clearBrowserCookies\`, \`Storage.clearCookies\`, \`chrome.browsingData.remove\`, "clear browsing data") on the user's real/main browser profile \u2014 it wipes their logged-in state. If you need that profile's login state, clone it first (\`rsync -a <profile>/ <tmp-clone>/\`) and launch Chrome / agent-browser against the clone as the user-data-dir; run any clearing there only. |
105415
105424
  | Changes UI rendering or a TUI/terminal layout (incl. CJK/Korean/Japanese/Chinese text) | Load the visual-qa skill: capture reference + actual screenshots (web) or the xterm.js web terminal render (TUI; NEVER \`tmux capture-pane\` - it degrades color and CJK width), run its bundled pixel-diff / column-width script, and get the dual read-only verdict (design-system + functional integrity, and visual fidelity + CJK precision). Record the diff/score artifact. |
105416
105425
  | Drives a desktop/GUI (non-page) surface | Computer use: OS-level GUI automation against the running app. Capture action log + screenshot. |
105417
105426
  | Adds a new tool/hook/feature | Test it end-to-end in a real scenario. |
@@ -105850,7 +105859,7 @@ lsp_diagnostics catches type errors only. Logic bugs, missing behavior, broken f
105850
105859
  | Adds/modifies a CLI command | Run it with Bash. Show output. |
105851
105860
  | Changes build output | Run build. Verify output files. |
105852
105861
  | Modifies API behavior | Call the endpoint. Show response. |
105853
- | Renders/changes a page | Use Chrome to drive the page; if Chrome is not available, download and use agent-browser (https://github.com/vercel-labs/agent-browser). Screenshot + action log. |
105862
+ | Renders/changes a page | Use Chrome to drive the page; if Chrome is not available, download and use agent-browser (https://github.com/vercel-labs/agent-browser). Screenshot + action log. NEVER clear cookies, cache, or site data (\`Network.clearBrowserCookies\`, \`Storage.clearCookies\`, \`chrome.browsingData.remove\`, "clear browsing data") on the user's real/main browser profile \u2014 it wipes their logged-in state. If you need that profile's login state, clone it first (\`rsync -a <profile>/ <tmp-clone>/\`) and launch Chrome / agent-browser against the clone as the user-data-dir; run any clearing there only. |
105854
105863
  | Changes UI rendering or a TUI/terminal layout (incl. CJK/Korean/Japanese/Chinese text) | Load the visual-qa skill: capture reference + actual screenshots (web) or the xterm.js web terminal render (TUI; NEVER \`tmux capture-pane\` - it degrades color and CJK width), run its bundled pixel-diff / column-width script, and get the dual read-only verdict (design-system + functional integrity, and visual fidelity + CJK precision). Record the diff/score artifact. |
105855
105864
  | Drives a desktop GUI | Computer use: OS-level GUI automation against the running app. Action log + screenshot. |
105856
105865
  | Adds tool/hook/feature | Test end-to-end in a real scenario. |
@@ -109414,6 +109423,7 @@ agent-browser --session-name twitter open twitter.com
109414
109423
 
109415
109424
  ### Persistent Profiles
109416
109425
  Persists cookies, localStorage, IndexedDB, service workers, cache, login sessions across browser restarts.
109426
+ NEVER point \`--profile\` or \`AGENT_BROWSER_PROFILE\` at the user's real/main browser profile when any cookie, cache, or site-data clear or reset might happen (\`Network.clearBrowserCookies\`, \`Storage.clearCookies\`, \`chrome.browsingData.remove\`, \`cookies clear\`, "clear browsing data") \u2014 that wipes their logged-in state everywhere. If the task needs the main profile's login state, clone the profile directory first (\`rsync -a <profile>/ <tmp-clone>/\`) and pass the clone as \`--profile\`; run any clearing on the clone only.
109417
109427
  \`\`\`bash
109418
109428
  agent-browser --profile ~/.myapp-profile open myapp.com
109419
109429
  # Or via env var
@@ -124921,7 +124931,7 @@ function createMonitorStatusInjectorHook(monitorManager, config3) {
124921
124931
  // packages/omo-opencode/src/tools/grep/tools.ts
124922
124932
  import { resolve as resolve34 } from "path";
124923
124933
 
124924
- // node_modules/.bun/@opencode-ai+plugin@1.18.19+e3de6f866e97759a/node_modules/@opencode-ai/plugin/dist/tool.js
124934
+ // node_modules/.bun/@opencode-ai+plugin@1.18.22+5df5880790e6b42e/node_modules/@opencode-ai/plugin/dist/tool.js
124925
124935
  import { z as z53 } from "zod";
124926
124936
  function tool(input) {
124927
124937
  return input;
@@ -166338,7 +166348,7 @@ function createTeamModeToolsRecord(args) {
166338
166348
  team_list: factories.createTeamListTool(pluginConfig.team_mode, ctx.client)
166339
166349
  };
166340
166350
  }
166341
- // node_modules/.bun/@opencode-ai+sdk@1.18.19/node_modules/@opencode-ai/sdk/dist/v2/gen/core/serverSentEvents.gen.js
166351
+ // node_modules/.bun/@opencode-ai+sdk@1.18.22/node_modules/@opencode-ai/sdk/dist/v2/gen/core/serverSentEvents.gen.js
166342
166352
  var createSseClient2 = ({ onRequest, onSseError, onSseEvent, responseTransformer, responseValidator, sseDefaultRetryDelay, sseMaxRetryAttempts, sseMaxRetryDelay, sseSleepFn, url: url2, ...options }) => {
166343
166353
  let lastEventId;
166344
166354
  const sleep4 = sseSleepFn ?? ((ms) => new Promise((resolve45) => setTimeout(resolve45, ms)));
@@ -166462,7 +166472,7 @@ var createSseClient2 = ({ onRequest, onSseError, onSseEvent, responseTransformer
166462
166472
  return { stream };
166463
166473
  };
166464
166474
 
166465
- // node_modules/.bun/@opencode-ai+sdk@1.18.19/node_modules/@opencode-ai/sdk/dist/v2/gen/core/pathSerializer.gen.js
166475
+ // node_modules/.bun/@opencode-ai+sdk@1.18.22/node_modules/@opencode-ai/sdk/dist/v2/gen/core/pathSerializer.gen.js
166466
166476
  var separatorArrayExplode2 = (style) => {
166467
166477
  switch (style) {
166468
166478
  case "label":
@@ -166565,7 +166575,7 @@ var serializeObjectParam2 = ({ allowReserved, explode, name, style, value, value
166565
166575
  return style === "label" || style === "matrix" ? separator + joinedValues : joinedValues;
166566
166576
  };
166567
166577
 
166568
- // node_modules/.bun/@opencode-ai+sdk@1.18.19/node_modules/@opencode-ai/sdk/dist/v2/gen/core/utils.gen.js
166578
+ // node_modules/.bun/@opencode-ai+sdk@1.18.22/node_modules/@opencode-ai/sdk/dist/v2/gen/core/utils.gen.js
166569
166579
  var PATH_PARAM_RE2 = /\{[^{}]+\}/g;
166570
166580
  var defaultPathSerializer2 = ({ path: path22, url: _url }) => {
166571
166581
  let url2 = _url;
@@ -166648,7 +166658,7 @@ function getValidRequestBody(options) {
166648
166658
  return;
166649
166659
  }
166650
166660
 
166651
- // node_modules/.bun/@opencode-ai+sdk@1.18.19/node_modules/@opencode-ai/sdk/dist/v2/gen/core/auth.gen.js
166661
+ // node_modules/.bun/@opencode-ai+sdk@1.18.22/node_modules/@opencode-ai/sdk/dist/v2/gen/core/auth.gen.js
166652
166662
  var getAuthToken2 = async (auth2, callback) => {
166653
166663
  const token = typeof callback === "function" ? await callback(auth2) : callback;
166654
166664
  if (!token) {
@@ -166663,12 +166673,12 @@ var getAuthToken2 = async (auth2, callback) => {
166663
166673
  return token;
166664
166674
  };
166665
166675
 
166666
- // node_modules/.bun/@opencode-ai+sdk@1.18.19/node_modules/@opencode-ai/sdk/dist/v2/gen/core/bodySerializer.gen.js
166676
+ // node_modules/.bun/@opencode-ai+sdk@1.18.22/node_modules/@opencode-ai/sdk/dist/v2/gen/core/bodySerializer.gen.js
166667
166677
  var jsonBodySerializer2 = {
166668
166678
  bodySerializer: (body) => JSON.stringify(body, (_key, value) => typeof value === "bigint" ? value.toString() : value)
166669
166679
  };
166670
166680
 
166671
- // node_modules/.bun/@opencode-ai+sdk@1.18.19/node_modules/@opencode-ai/sdk/dist/v2/gen/client/utils.gen.js
166681
+ // node_modules/.bun/@opencode-ai+sdk@1.18.22/node_modules/@opencode-ai/sdk/dist/v2/gen/client/utils.gen.js
166672
166682
  var createQuerySerializer2 = ({ parameters = {}, ...args } = {}) => {
166673
166683
  const querySerializer = (queryParams) => {
166674
166684
  const search = [];
@@ -166879,7 +166889,7 @@ var createConfig2 = (override = {}) => ({
166879
166889
  ...override
166880
166890
  });
166881
166891
 
166882
- // node_modules/.bun/@opencode-ai+sdk@1.18.19/node_modules/@opencode-ai/sdk/dist/v2/gen/client/client.gen.js
166892
+ // node_modules/.bun/@opencode-ai+sdk@1.18.22/node_modules/@opencode-ai/sdk/dist/v2/gen/client/client.gen.js
166883
166893
  var createClient3 = (config3 = {}) => {
166884
166894
  let _config = mergeConfigs3(createConfig2(), config3);
166885
166895
  const getConfig = () => ({ ..._config });
@@ -167085,7 +167095,7 @@ var createClient3 = (config3 = {}) => {
167085
167095
  trace: makeMethodFn("TRACE")
167086
167096
  };
167087
167097
  };
167088
- // node_modules/.bun/@opencode-ai+sdk@1.18.19/node_modules/@opencode-ai/sdk/dist/v2/gen/core/params.gen.js
167098
+ // node_modules/.bun/@opencode-ai+sdk@1.18.22/node_modules/@opencode-ai/sdk/dist/v2/gen/core/params.gen.js
167089
167099
  var extraPrefixesMap2 = {
167090
167100
  $body_: "body",
167091
167101
  $headers_: "headers",
@@ -167178,10 +167188,10 @@ var buildClientParams2 = (args, fields) => {
167178
167188
  stripEmptySlots(params);
167179
167189
  return params;
167180
167190
  };
167181
- // node_modules/.bun/@opencode-ai+sdk@1.18.19/node_modules/@opencode-ai/sdk/dist/v2/gen/client.gen.js
167191
+ // node_modules/.bun/@opencode-ai+sdk@1.18.22/node_modules/@opencode-ai/sdk/dist/v2/gen/client.gen.js
167182
167192
  var client3 = createClient3(createConfig2({ baseUrl: "http://localhost:4096" }));
167183
167193
 
167184
- // node_modules/.bun/@opencode-ai+sdk@1.18.19/node_modules/@opencode-ai/sdk/dist/v2/gen/sdk.gen.js
167194
+ // node_modules/.bun/@opencode-ai+sdk@1.18.22/node_modules/@opencode-ai/sdk/dist/v2/gen/sdk.gen.js
167185
167195
  class HeyApiClient {
167186
167196
  client;
167187
167197
  constructor(args) {
@@ -170788,7 +170798,7 @@ class OpencodeClient2 extends HeyApiClient {
170788
170798
  return this._v2 ??= new V2({ client: this.client });
170789
170799
  }
170790
170800
  }
170791
- // node_modules/.bun/@opencode-ai+sdk@1.18.19/node_modules/@opencode-ai/sdk/dist/v2/server.js
170801
+ // node_modules/.bun/@opencode-ai+sdk@1.18.22/node_modules/@opencode-ai/sdk/dist/v2/server.js
170792
170802
  var import_cross_spawn3 = __toESM(require_cross_spawn(), 1);
170793
170803
  // packages/omo-opencode/src/plugin/native-skills.ts
170794
170804
  import { z as z61 } from "zod";
@@ -176107,7 +176117,7 @@ function getTelemetryHost(env2 = process.env, defaultHost = DEFAULT_POSTHOG_HOST
176107
176117
  return env2["POSTHOG_HOST"]?.trim() || defaultHost;
176108
176118
  }
176109
176119
 
176110
- // node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/extensions/error-tracking/modifiers/module.node.mjs
176120
+ // node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/extensions/error-tracking/modifiers/module.node.mjs
176111
176121
  import { dirname as dirname51, posix as posix12, sep as sep3 } from "path";
176112
176122
  function createModulerModifier() {
176113
176123
  const getModuleFromFileName = createGetModuleFromFilename();
@@ -176143,7 +176153,7 @@ function normalizeWindowsPath(path27) {
176143
176153
  return path27.replace(/^[A-Z]:/, "").replace(/\\/g, "/");
176144
176154
  }
176145
176155
 
176146
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/featureFlagUtils.mjs
176156
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/featureFlagUtils.mjs
176147
176157
  var normalizeFlagsResponse = (flagsResponse) => {
176148
176158
  if ("flags" in flagsResponse) {
176149
176159
  const featureFlags = getFlagValuesFromFlags(flagsResponse.flags);
@@ -176275,7 +176285,7 @@ var minimizeFlagCalledEventProperties = (properties, transportKeys = []) => {
176275
176285
  return minimal;
176276
176286
  };
176277
176287
 
176278
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/types.mjs
176288
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/types.mjs
176279
176289
  var types_PostHogPersistedProperty = /* @__PURE__ */ function(PostHogPersistedProperty) {
176280
176290
  PostHogPersistedProperty["AnonymousId"] = "anonymous_id";
176281
176291
  PostHogPersistedProperty["DistinctId"] = "distinct_id";
@@ -176313,7 +176323,7 @@ var types_PostHogPersistedProperty = /* @__PURE__ */ function(PostHogPersistedPr
176313
176323
  return PostHogPersistedProperty;
176314
176324
  }({});
176315
176325
 
176316
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/gzip.mjs
176326
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/gzip.mjs
176317
176327
  function isGzipSupported() {
176318
176328
  return "CompressionStream" in globalThis && "TextEncoder" in globalThis && "Response" in globalThis && typeof Response.prototype.blob == "function";
176319
176329
  }
@@ -176387,7 +176397,34 @@ async function gzipCompress(input, isDebug = true, options) {
176387
176397
  }
176388
176398
  }
176389
176399
 
176390
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/utils/bot-detection.mjs
176400
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/utils/json-utils.mjs
176401
+ var MAX_JSON_SAFE_VALUE_DEPTH = 20;
176402
+ var MAX_JSON_SAFE_VALUE_ITEMS = 1000;
176403
+ var MAX_JSON_SAFE_VALUE_NODES = 1e4;
176404
+ var CIRCULAR_VALUE = "[Circular]";
176405
+ var TRUNCATED_VALUE = "[Truncated]";
176406
+ var UNSERIALIZABLE_VALUE = "[Unserializable]";
176407
+ var FUNCTION_VALUE = "[Function]";
176408
+ var dateGetTime = Date.prototype.getTime;
176409
+ var dateToISOString = Date.prototype.toISOString;
176410
+ function sanitizeString(value) {
176411
+ let output = "";
176412
+ for (let index = 0;index < value.length; index++) {
176413
+ const codeUnit = value.charCodeAt(index);
176414
+ if (codeUnit >= 55296 && codeUnit <= 56319) {
176415
+ const nextCodeUnit = value.charCodeAt(index + 1);
176416
+ if (nextCodeUnit >= 56320 && nextCodeUnit <= 57343) {
176417
+ output += value[index] + value[index + 1];
176418
+ index++;
176419
+ } else
176420
+ output += "\uFFFD";
176421
+ } else
176422
+ output += codeUnit >= 56320 && codeUnit <= 57343 ? "\uFFFD" : value[index];
176423
+ }
176424
+ return output;
176425
+ }
176426
+
176427
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/utils/bot-detection.mjs
176391
176428
  var DEFAULT_BLOCKED_UA_STRS = [
176392
176429
  "amazonbot",
176393
176430
  "amazonproductbot",
@@ -176476,7 +176513,7 @@ var isBlockedUA = function(ua, customBlockedUserAgents = []) {
176476
176513
  return uaLower.indexOf(blockedUaLower) !== -1;
176477
176514
  });
176478
176515
  };
176479
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/utils/string-utils.mjs
176516
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/utils/string-utils.mjs
176480
176517
  function safeJsonStringify(value) {
176481
176518
  const ancestors = [];
176482
176519
  return JSON.stringify(value, function(_key, replacementValue) {
@@ -176500,7 +176537,7 @@ function safeJsonStringify(value) {
176500
176537
  return replacementValue;
176501
176538
  }) ?? "null";
176502
176539
  }
176503
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/utils/type-utils.mjs
176540
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/utils/type-utils.mjs
176504
176541
  var nativeIsArray = Array.isArray;
176505
176542
  var ObjProto = Object.prototype;
176506
176543
  var type_utils_hasOwnProperty = ObjProto.hasOwnProperty;
@@ -176513,6 +176550,7 @@ var isUndefined = (x) => x === undefined;
176513
176550
  var isString = (x) => type_utils_toString.call(x) == "[object String]";
176514
176551
  var isEmptyString = (x) => isString(x) && x.trim().length === 0;
176515
176552
  var isNull = (x) => x === null;
176553
+ var isNullish = (x) => isUndefined(x) || isNull(x);
176516
176554
  var isNumber2 = (x) => type_utils_toString.call(x) == "[object Number]" && x === x;
176517
176555
  var isBoolean = (x) => type_utils_toString.call(x) === "[object Boolean]";
176518
176556
  function isPrimitive(value) {
@@ -176550,7 +176588,7 @@ function isInstanceOf(candidate2, base) {
176550
176588
  }
176551
176589
  }
176552
176590
 
176553
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/utils/number-utils.mjs
176591
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/utils/number-utils.mjs
176554
176592
  function clampToRange(value, min, max, logger7, fallbackValue) {
176555
176593
  if (min > max) {
176556
176594
  logger7.warn("min cannot be greater than max.");
@@ -176570,7 +176608,7 @@ function clampToRange(value, min, max, logger7, fallbackValue) {
176570
176608
  return clampToRange(fallbackValue || max, min, max, logger7);
176571
176609
  }
176572
176610
 
176573
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/utils/bucketed-rate-limiter.mjs
176611
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/utils/bucketed-rate-limiter.mjs
176574
176612
  var ONE_DAY_IN_MS = 86400000;
176575
176613
  var DEFAULT_EXCEPTION_RATE_LIMITER_REFILL_RATE = 1;
176576
176614
  var DEFAULT_EXCEPTION_RATE_LIMITER_BUCKET_SIZE = 10;
@@ -176622,10 +176660,7 @@ class BucketedRateLimiter {
176622
176660
  this._buckets = {};
176623
176661
  }
176624
176662
  }
176625
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/utils/json-utils.mjs
176626
- var dateGetTime = Date.prototype.getTime;
176627
- var dateToISOString = Date.prototype.toISOString;
176628
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/vendor/uuidv7.mjs
176663
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/vendor/uuidv7.mjs
176629
176664
  /*! For license information please see uuidv7.mjs.LICENSE.txt */
176630
176665
  var DIGITS = "0123456789abcdef";
176631
176666
 
@@ -176803,7 +176838,7 @@ var defaultGenerator;
176803
176838
  var uuidv7 = () => uuidv7obj().toString();
176804
176839
  var uuidv7obj = () => (defaultGenerator || (defaultGenerator = new V7Generator)).generate();
176805
176840
 
176806
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/utils/promise-queue.mjs
176841
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/utils/promise-queue.mjs
176807
176842
  class PromiseQueue {
176808
176843
  add(promise2) {
176809
176844
  const promiseUUID = uuidv7();
@@ -176841,7 +176876,7 @@ class PromiseQueue {
176841
176876
  this.nextId = 0;
176842
176877
  }
176843
176878
  }
176844
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/utils/logger.mjs
176879
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/utils/logger.mjs
176845
176880
  function createConsole(consoleLike = console) {
176846
176881
  const lockedMethods = {
176847
176882
  log: consoleLike.log.bind(consoleLike),
@@ -176882,7 +176917,7 @@ var passThrough = (fn) => fn();
176882
176917
  function createLogger2(prefix, maybeCall = passThrough) {
176883
176918
  return _createLogger(prefix, maybeCall, createConsole());
176884
176919
  }
176885
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/utils/user-agent-utils.mjs
176920
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/utils/user-agent-utils.mjs
176886
176921
  var MOBILE = "Mobile";
176887
176922
  var IOS = "iOS";
176888
176923
  var ANDROID = "Android";
@@ -177175,7 +177210,7 @@ var osMatchers = [
177175
177210
  ]
177176
177211
  ];
177177
177212
 
177178
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/utils/index.mjs
177213
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/utils/index.mjs
177179
177214
  var STRING_FORMAT = "utf8";
177180
177215
  var UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
177181
177216
  function isValidUUID(value) {
@@ -177241,7 +177276,7 @@ function allSettled(promises) {
177241
177276
  }))));
177242
177277
  }
177243
177278
 
177244
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/logs/logs-utils.mjs
177279
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/logs/logs-utils.mjs
177245
177280
  var OTLP_SEVERITY_MAP = {
177246
177281
  trace: {
177247
177282
  text: "TRACE",
@@ -177269,7 +177304,27 @@ var OTLP_SEVERITY_MAP = {
177269
177304
  }
177270
177305
  };
177271
177306
  var DEFAULT_OTLP_SEVERITY = OTLP_SEVERITY_MAP.info;
177272
- function toOtlpAnyValue(value) {
177307
+ var INT64_RANGE_LIMIT = 9223372036854776000;
177308
+ var propertyIsEnumerable = Object.prototype.propertyIsEnumerable;
177309
+ function newState() {
177310
+ return {
177311
+ ancestors: new WeakSet,
177312
+ remainingNodes: MAX_JSON_SAFE_VALUE_NODES
177313
+ };
177314
+ }
177315
+ function toOtlpKeyValueList(attrs, logger8) {
177316
+ try {
177317
+ return encodeKeyValueList(attrs, logger8, newState(), 0);
177318
+ } catch {
177319
+ return [];
177320
+ }
177321
+ }
177322
+ function encodeAnyValue(value, logger8, state3, depth) {
177323
+ if (state3.remainingNodes <= 0)
177324
+ return {
177325
+ stringValue: TRUNCATED_VALUE
177326
+ };
177327
+ state3.remainingNodes--;
177273
177328
  if (isBoolean(value))
177274
177329
  return {
177275
177330
  boolValue: value
@@ -177279,48 +177334,134 @@ function toOtlpAnyValue(value) {
177279
177334
  return {
177280
177335
  stringValue: String(value)
177281
177336
  };
177282
- if (Number.isInteger(value))
177337
+ if (Number.isInteger(value)) {
177338
+ if (Number.isSafeInteger(value))
177339
+ return {
177340
+ intValue: String(value)
177341
+ };
177342
+ if (typeof BigInt == "undefined")
177343
+ return {
177344
+ stringValue: String(value)
177345
+ };
177346
+ const decimal = BigInt(value).toString();
177347
+ if (value >= INT64_RANGE_LIMIT || value < -INT64_RANGE_LIMIT) {
177348
+ logger8?.debug(`Attribute ${decimal} is outside the int64 range; encoding it as a string`);
177349
+ return {
177350
+ stringValue: decimal
177351
+ };
177352
+ }
177283
177353
  return {
177284
- intValue: value
177354
+ intValue: decimal
177285
177355
  };
177356
+ }
177286
177357
  return {
177287
177358
  doubleValue: value
177288
177359
  };
177289
177360
  }
177290
177361
  if (typeof value == "string")
177291
177362
  return {
177292
- stringValue: value
177293
- };
177294
- if (isArray(value))
177295
- return {
177296
- arrayValue: {
177297
- values: value.map((v) => toOtlpAnyValue(v))
177298
- }
177363
+ stringValue: sanitizeString(value)
177299
177364
  };
177300
- try {
177365
+ if (typeof value == "function")
177301
177366
  return {
177302
- stringValue: JSON.stringify(value)
177367
+ stringValue: FUNCTION_VALUE
177303
177368
  };
177304
- } catch {
177369
+ if (typeof value == "symbol")
177305
177370
  return {
177306
177371
  stringValue: String(value)
177307
177372
  };
177373
+ if (typeof value == "object" && value !== null) {
177374
+ if (state3.ancestors.has(value))
177375
+ return {
177376
+ stringValue: CIRCULAR_VALUE
177377
+ };
177378
+ if (depth >= MAX_JSON_SAFE_VALUE_DEPTH)
177379
+ return {
177380
+ stringValue: TRUNCATED_VALUE
177381
+ };
177382
+ if (value instanceof Date) {
177383
+ const time = value.getTime();
177384
+ const iso2 = Number.isFinite(time) ? value.toISOString() : String(value);
177385
+ return {
177386
+ stringValue: typeof iso2 == "string" ? sanitizeString(iso2) : String(iso2)
177387
+ };
177388
+ }
177389
+ state3.ancestors.add(value);
177390
+ try {
177391
+ try {
177392
+ const toJSON = value.toJSON;
177393
+ if (typeof toJSON == "function")
177394
+ return encodeAnyValue(toJSON.call(value), logger8, state3, depth + 1);
177395
+ } catch {}
177396
+ if (isArray(value))
177397
+ return {
177398
+ arrayValue: {
177399
+ values: encodeArrayValues(value, logger8, state3, depth + 1)
177400
+ }
177401
+ };
177402
+ return {
177403
+ kvlistValue: {
177404
+ values: encodeKeyValueList(value, logger8, state3, depth + 1)
177405
+ }
177406
+ };
177407
+ } finally {
177408
+ state3.ancestors.delete(value);
177409
+ }
177308
177410
  }
177411
+ return {
177412
+ stringValue: sanitizeString(String(value))
177413
+ };
177309
177414
  }
177310
- function toOtlpKeyValueList(attrs) {
177415
+ function encodeArrayValues(values, logger8, state3, depth) {
177311
177416
  const result = [];
177312
- for (const key in attrs) {
177313
- const value = attrs[key];
177314
- if (!(isNull(value) || isUndefined(value)))
177417
+ const itemCount = Math.min(values.length, MAX_JSON_SAFE_VALUE_ITEMS);
177418
+ let index = 0;
177419
+ for (;index < itemCount && state3.remainingNodes > 0; index++)
177420
+ try {
177421
+ const element = index in values ? values[index] : undefined;
177422
+ if (isNullish(element))
177423
+ continue;
177424
+ result.push(encodeAnyValue(element, logger8, state3, depth));
177425
+ } catch {
177315
177426
  result.push({
177316
- key,
177317
- value: toOtlpAnyValue(value)
177427
+ stringValue: UNSERIALIZABLE_VALUE
177318
177428
  });
177319
- }
177429
+ }
177430
+ if (values.length > index)
177431
+ result.push({
177432
+ stringValue: TRUNCATED_VALUE
177433
+ });
177434
+ return result;
177435
+ }
177436
+ function encodeKeyValueList(attrs, logger8, state3, depth) {
177437
+ const result = [];
177438
+ for (const key in attrs)
177439
+ if (propertyIsEnumerable.call(attrs, key)) {
177440
+ if (result.length >= MAX_JSON_SAFE_VALUE_ITEMS || state3.remainingNodes <= 0) {
177441
+ logger8?.debug("Attributes truncated: the value exceeds the OTLP encoder budget");
177442
+ break;
177443
+ }
177444
+ try {
177445
+ const value = attrs[key];
177446
+ if (isNull(value) || isUndefined(value))
177447
+ continue;
177448
+ result.push({
177449
+ key: sanitizeString(key),
177450
+ value: encodeAnyValue(value, logger8, state3, depth)
177451
+ });
177452
+ } catch {
177453
+ result.push({
177454
+ key: sanitizeString(key),
177455
+ value: {
177456
+ stringValue: UNSERIALIZABLE_VALUE
177457
+ }
177458
+ });
177459
+ }
177460
+ }
177320
177461
  return result;
177321
177462
  }
177322
177463
 
177323
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/metrics/metrics-utils.mjs
177464
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/metrics/metrics-utils.mjs
177324
177465
  var DEFAULT_HISTOGRAM_BOUNDS = [
177325
177466
  0,
177326
177467
  5,
@@ -177390,7 +177531,7 @@ function buildOtlpMetricsPayload(metrics, resourceAttributes, scopeName, scopeVe
177390
177531
  };
177391
177532
  }
177392
177533
 
177393
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/metrics/config.mjs
177534
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/metrics/config.mjs
177394
177535
  var DEFAULT_FLUSH_INTERVAL_MS = 1e4;
177395
177536
  var DEFAULT_MAX_SERIES_PER_FLUSH = 1000;
177396
177537
  function resolveMetricsConfig(config3) {
@@ -177406,7 +177547,7 @@ function resolveMetricsConfig(config3) {
177406
177547
  };
177407
177548
  }
177408
177549
 
177409
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/metrics/index.mjs
177550
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/metrics/index.mjs
177410
177551
  var OTLP_TEMPORALITY_DELTA = 1;
177411
177552
 
177412
177553
  class PostHogMetrics {
@@ -177661,7 +177802,7 @@ class PostHogMetrics {
177661
177802
  };
177662
177803
  byMetric.set(metricKey, metric);
177663
177804
  }
177664
- const attributes = toOtlpKeyValueList(state3.attributes ?? {});
177805
+ const attributes = toOtlpKeyValueList(state3.attributes ?? {}, this._logger);
177665
177806
  const startNano = msToUnixNano(state3.windowStartMs);
177666
177807
  if (state3.type === "count") {
177667
177808
  const dp = {
@@ -177726,7 +177867,7 @@ class PostHogMetrics {
177726
177867
  }
177727
177868
  }
177728
177869
  }
177729
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/eventemitter.mjs
177870
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/eventemitter.mjs
177730
177871
  class SimpleEventEmitter {
177731
177872
  constructor() {
177732
177873
  this.events = {};
@@ -177748,7 +177889,7 @@ class SimpleEventEmitter {
177748
177889
  }
177749
177890
  }
177750
177891
 
177751
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/index.mjs
177892
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/index.mjs
177752
177893
  var exports_error_tracking = {};
177753
177894
  __export(exports_error_tracking, {
177754
177895
  DEFAULT_EXCEPTION_STEPS_CONFIG: () => DEFAULT_EXCEPTION_STEPS_CONFIG,
@@ -177779,7 +177920,7 @@ __export(exports_error_tracking, {
177779
177920
  winjsStackLineParser: () => winjsStackLineParser
177780
177921
  });
177781
177922
 
177782
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/chunk-ids.mjs
177923
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/chunk-ids.mjs
177783
177924
  var parsedStackResults;
177784
177925
  var lastKeysCount;
177785
177926
  var cachedFilenameChunkIds;
@@ -177818,7 +177959,7 @@ function getFilenameToChunkIdMap(stackParser) {
177818
177959
  return cachedFilenameChunkIds;
177819
177960
  }
177820
177961
 
177821
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/error-properties-builder.mjs
177962
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/error-properties-builder.mjs
177822
177963
  var MAX_CAUSE_RECURSION = 4;
177823
177964
 
177824
177965
  class ErrorPropertiesBuilder {
@@ -177940,7 +178081,7 @@ class ErrorPropertiesBuilder {
177940
178081
  return context2;
177941
178082
  }
177942
178083
  }
177943
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/parsers/base.mjs
178084
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/parsers/base.mjs
177944
178085
  var UNKNOWN_FUNCTION = "?";
177945
178086
  var MASKED_URL_PREFIX = "webkit-masked-url://";
177946
178087
  var ANONYMOUS_FILENAME = "<anonymous>";
@@ -177958,7 +178099,7 @@ function createFrame(platform2, filename, func, lineno, colno) {
177958
178099
  return frame;
177959
178100
  }
177960
178101
 
177961
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/parsers/safari.mjs
178102
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/parsers/safari.mjs
177962
178103
  var extractSafariExtensionDetails = (func, filename) => {
177963
178104
  const isSafariExtension = func.indexOf("safari-extension") !== -1;
177964
178105
  const isSafariWebExtension = func.indexOf("safari-web-extension") !== -1;
@@ -177971,7 +178112,7 @@ var extractSafariExtensionDetails = (func, filename) => {
177971
178112
  ];
177972
178113
  };
177973
178114
 
177974
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/parsers/chrome.mjs
178115
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/parsers/chrome.mjs
177975
178116
  var chromeRegexNoFnName = /^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i;
177976
178117
  var chromeRegex = /^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i;
177977
178118
  var chromeEvalRegex = /\((\S*)(?::(\d+))(?::(\d+))\)/;
@@ -177997,7 +178138,7 @@ var chromeStackLineParser = (line, platform2) => {
177997
178138
  }
177998
178139
  };
177999
178140
 
178000
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/parsers/gecko.mjs
178141
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/parsers/gecko.mjs
178001
178142
  var geckoREgex = /^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i;
178002
178143
  var geckoEvalRegex = /(\S+) line (\d+)(?: > eval line \d+)* > eval/i;
178003
178144
  var geckoStackLineParser = (line, platform2) => {
@@ -178020,14 +178161,14 @@ var geckoStackLineParser = (line, platform2) => {
178020
178161
  }
178021
178162
  };
178022
178163
 
178023
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/parsers/winjs.mjs
178164
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/parsers/winjs.mjs
178024
178165
  var winjsRegex = /^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i;
178025
178166
  var winjsStackLineParser = (line, platform2) => {
178026
178167
  const parts = winjsRegex.exec(line);
178027
178168
  return parts ? createFrame(platform2, parts[2], parts[1] || UNKNOWN_FUNCTION, +parts[3], parts[4] ? +parts[4] : undefined) : undefined;
178028
178169
  };
178029
178170
 
178030
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/parsers/opera.mjs
178171
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/parsers/opera.mjs
178031
178172
  var opera10Regex = / line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i;
178032
178173
  var opera10StackLineParser = (line, platform2) => {
178033
178174
  const parts = opera10Regex.exec(line);
@@ -178039,7 +178180,7 @@ var opera11StackLineParser = (line, platform2) => {
178039
178180
  return parts ? createFrame(platform2, parts[5], parts[3] || parts[4] || UNKNOWN_FUNCTION, +parts[1], +parts[2]) : undefined;
178040
178181
  };
178041
178182
 
178042
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/parsers/node.mjs
178183
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/parsers/node.mjs
178043
178184
  var FILENAME_MATCH = /^\s*[-]{4,}$/;
178044
178185
  var FULL_MATCH = /at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/;
178045
178186
  var PROMISE_COMBINATOR = /^Promise\.(?:all|any)$/;
@@ -178113,7 +178254,7 @@ function _parseIntOrUndefined(input) {
178113
178254
  return parseInt(input || "", 10) || undefined;
178114
178255
  }
178115
178256
 
178116
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/parsers/index.mjs
178257
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/parsers/index.mjs
178117
178258
  var WEBPACK_ERROR_REGEXP = /\(error: (.*)\)/;
178118
178259
  var STACKTRACE_FRAME_LIMIT = 50;
178119
178260
  function reverseAndStripFrames(stack) {
@@ -178158,7 +178299,7 @@ function createStackParser(platform2, ...parsers) {
178158
178299
  return reverseAndStripFrames(frames);
178159
178300
  };
178160
178301
  }
178161
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/coercers/dom-exception-coercer.mjs
178302
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/coercers/dom-exception-coercer.mjs
178162
178303
  class DOMExceptionCoercer {
178163
178304
  match(err) {
178164
178305
  return this.isDOMException(err) || this.isDOMError(err);
@@ -178188,7 +178329,7 @@ class DOMExceptionCoercer {
178188
178329
  return isBuiltin(err, "DOMError");
178189
178330
  }
178190
178331
  }
178191
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/coercers/error-coercer.mjs
178332
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/coercers/error-coercer.mjs
178192
178333
  class ErrorCoercer {
178193
178334
  match(err) {
178194
178335
  return isError(err);
@@ -178217,7 +178358,7 @@ class ErrorCoercer {
178217
178358
  return err.stacktrace || err.stack || undefined;
178218
178359
  }
178219
178360
  }
178220
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/coercers/error-event-coercer.mjs
178361
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/coercers/error-event-coercer.mjs
178221
178362
  class ErrorEventCoercer {
178222
178363
  constructor() {}
178223
178364
  match(err) {
@@ -178251,7 +178392,7 @@ class ErrorEventCoercer {
178251
178392
  at ${location.filename}:${lineno}:${colno}`;
178252
178393
  }
178253
178394
  }
178254
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/coercers/string-coercer.mjs
178395
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/coercers/string-coercer.mjs
178255
178396
  var ERROR_TYPES_PATTERN = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;
178256
178397
 
178257
178398
  class StringCoercer {
@@ -178281,7 +178422,7 @@ class StringCoercer {
178281
178422
  ];
178282
178423
  }
178283
178424
  }
178284
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/types.mjs
178425
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/types.mjs
178285
178426
  var severityLevels = [
178286
178427
  "fatal",
178287
178428
  "error",
@@ -178291,7 +178432,7 @@ var severityLevels = [
178291
178432
  "debug"
178292
178433
  ];
178293
178434
 
178294
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/coercers/utils.mjs
178435
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/coercers/utils.mjs
178295
178436
  function extractExceptionKeysForMessage(err, maxLength = 40) {
178296
178437
  const keys = Object.keys(err);
178297
178438
  keys.sort();
@@ -178308,7 +178449,7 @@ function extractExceptionKeysForMessage(err, maxLength = 40) {
178308
178449
  return "";
178309
178450
  }
178310
178451
 
178311
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/coercers/object-coercer.mjs
178452
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/coercers/object-coercer.mjs
178312
178453
  class ObjectCoercer {
178313
178454
  match(candidate2) {
178314
178455
  return typeof candidate2 == "object" && candidate2 !== null;
@@ -178373,7 +178514,7 @@ class ObjectCoercer {
178373
178514
  }
178374
178515
  }
178375
178516
  }
178376
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/coercers/event-coercer.mjs
178517
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/coercers/event-coercer.mjs
178377
178518
  class EventCoercer {
178378
178519
  match(err) {
178379
178520
  return isEvent(err);
@@ -178388,7 +178529,7 @@ class EventCoercer {
178388
178529
  };
178389
178530
  }
178390
178531
  }
178391
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/coercers/primitive-coercer.mjs
178532
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/coercers/primitive-coercer.mjs
178392
178533
  class PrimitiveCoercer {
178393
178534
  match(candidate2) {
178394
178535
  return isPrimitive(candidate2);
@@ -178402,7 +178543,7 @@ class PrimitiveCoercer {
178402
178543
  };
178403
178544
  }
178404
178545
  }
178405
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/coercers/promise-rejection-event.mjs
178546
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/coercers/promise-rejection-event.mjs
178406
178547
  class PromiseRejectionEventCoercer {
178407
178548
  match(err) {
178408
178549
  return isBuiltin(err, "PromiseRejectionEvent") || this.isCustomEventWrappingRejection(err);
@@ -178438,7 +178579,7 @@ class PromiseRejectionEventCoercer {
178438
178579
  return error;
178439
178580
  }
178440
178581
  }
178441
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/utils.mjs
178582
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/utils.mjs
178442
178583
  class ReduceableCache {
178443
178584
  constructor(_maxSize) {
178444
178585
  this._maxSize = _maxSize;
@@ -178463,7 +178604,7 @@ class ReduceableCache {
178463
178604
  }
178464
178605
  }
178465
178606
  }
178466
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/exception-steps.mjs
178607
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/exception-steps.mjs
178467
178608
  var EXCEPTION_STEP_INTERNAL_FIELDS = {
178468
178609
  MESSAGE: "$message",
178469
178610
  TIMESTAMP: "$timestamp"
@@ -178596,12 +178737,12 @@ function getUtf8ByteLength(value) {
178596
178737
  byteLength2 += 1;
178597
178738
  return byteLength2;
178598
178739
  }
178599
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/release.mjs
178740
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/release.mjs
178600
178741
  function getInjectedReleaseId() {
178601
178742
  const injected = globalThis._posthogReleaseId;
178602
178743
  return typeof injected == "string" && injected.length > 0 ? injected : undefined;
178603
178744
  }
178604
- // node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/posthog-core-stateless.mjs
178745
+ // node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/posthog-core-stateless.mjs
178605
178746
  class PostHogFetchHttpError extends Error {
178606
178747
  constructor(response, reqByteLength, responseBodyDeadline, abortController) {
178607
178748
  super("HTTP error while fetching PostHog: status=" + response.status + ", reqByteLength=" + reqByteLength), this.response = response, this.reqByteLength = reqByteLength, this.responseBodyDeadline = responseBodyDeadline, this.abortController = abortController, this.name = "PostHogFetchHttpError", this._bodyReadTimedOut = false;
@@ -179571,10 +179712,12 @@ class PostHogCoreStateless {
179571
179712
  const body = options.body ? options.body : "";
179572
179713
  let reqByteLength = -1;
179573
179714
  try {
179574
- reqByteLength = body instanceof Blob ? body.size : Buffer.byteLength(body, STRING_FORMAT);
179715
+ reqByteLength = body instanceof Blob ? body.size : body instanceof Uint8Array ? body.byteLength : Buffer.byteLength(body, STRING_FORMAT);
179575
179716
  } catch {
179576
179717
  if (body instanceof Blob)
179577
179718
  reqByteLength = body.size;
179719
+ else if (body instanceof Uint8Array)
179720
+ reqByteLength = body.byteLength;
179578
179721
  else {
179579
179722
  const encoded = new TextEncoder().encode(body);
179580
179723
  reqByteLength = encoded.length;
@@ -179712,7 +179855,7 @@ class PostHogCoreStateless {
179712
179855
  return this.shutdownPromise;
179713
179856
  }
179714
179857
  }
179715
- // node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/extensions/error-tracking/modifiers/context-lines.node.mjs
179858
+ // node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/extensions/error-tracking/modifiers/context-lines.node.mjs
179716
179859
  import { constants as constants25 } from "fs";
179717
179860
  import { open as promises_open } from "fs/promises";
179718
179861
  import { isAbsolute as isAbsolute20 } from "path";
@@ -179999,7 +180142,7 @@ function snipLine(line, colno) {
179999
180142
  return newLine;
180000
180143
  }
180001
180144
 
180002
- // node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/extensions/error-tracking/modifiers/relative-path.node.mjs
180145
+ // node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/extensions/error-tracking/modifiers/relative-path.node.mjs
180003
180146
  import { isAbsolute as isAbsolute21, relative as relative16, sep as sep4 } from "path";
180004
180147
  function createRelativePathModifier(basePath = process.cwd()) {
180005
180148
  const isWindows2 = sep4 === "\\";
@@ -180015,10 +180158,10 @@ function createRelativePathModifier(basePath = process.cwd()) {
180015
180158
  };
180016
180159
  }
180017
180160
 
180018
- // node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/version.mjs
180019
- var version = "5.49.2";
180161
+ // node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/version.mjs
180162
+ var version = "5.51.1";
180020
180163
 
180021
- // node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/types.mjs
180164
+ // node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/types.mjs
180022
180165
  var FeatureFlagError2 = {
180023
180166
  ERRORS_WHILE_COMPUTING: "errors_while_computing_flags",
180024
180167
  FLAG_MISSING: "flag_missing",
@@ -180026,7 +180169,7 @@ var FeatureFlagError2 = {
180026
180169
  UNKNOWN_ERROR: "unknown_error"
180027
180170
  };
180028
180171
 
180029
- // node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/feature-flag-evaluations.mjs
180172
+ // node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/feature-flag-evaluations.mjs
180030
180173
  class FeatureFlagEvaluations {
180031
180174
  constructor(init) {
180032
180175
  this._host = init.host;
@@ -180042,10 +180185,10 @@ class FeatureFlagEvaluations {
180042
180185
  this._accessed = init.accessed ?? new Set;
180043
180186
  this._isSlice = init.isSlice ?? false;
180044
180187
  }
180045
- isEnabled(key) {
180188
+ isEnabled(key, options = {}) {
180046
180189
  const flag = this._flags[key];
180047
180190
  this._recordAccess(key);
180048
- return flag?.enabled ?? false;
180191
+ return flag?.enabled ?? options.defaultValue ?? false;
180049
180192
  }
180050
180193
  getFlag(key) {
180051
180194
  const flag = this._flags[key];
@@ -180159,7 +180302,7 @@ class FeatureFlagEvaluations {
180159
180302
  }
180160
180303
  }
180161
180304
 
180162
- // node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/extensions/feature-flags/crypto.mjs
180305
+ // node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/extensions/feature-flags/crypto.mjs
180163
180306
  async function hashSHA1(text) {
180164
180307
  const subtle = globalThis.crypto?.subtle;
180165
180308
  if (!subtle)
@@ -180169,7 +180312,7 @@ async function hashSHA1(text) {
180169
180312
  return hashArray.map((byte) => byte.toString(16).padStart(2, "0")).join("");
180170
180313
  }
180171
180314
 
180172
- // node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/extensions/feature-flags/feature-flags.mjs
180315
+ // node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/extensions/feature-flags/feature-flags.mjs
180173
180316
  var SIXTY_SECONDS = 60000;
180174
180317
  var LONG_SCALE = 1152921504606847000;
180175
180318
  var NULL_VALUES_ALLOWED_OPERATORS = [
@@ -181121,7 +181264,7 @@ function relativeDateParseForFeatureFlagMatching(value) {
181121
181264
  }
181122
181265
  }
181123
181266
 
181124
- // node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/extensions/error-tracking/autocapture.mjs
181267
+ // node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/extensions/error-tracking/autocapture.mjs
181125
181268
  var UNHANDLED_REJECTION_OPTION_NAMES = [
181126
181269
  "--unhandled-rejections",
181127
181270
  "--unhandled_rejections"
@@ -181219,7 +181362,7 @@ function addUnhandledRejectionListener(captureFn, mode = STARTUP_UNHANDLED_REJEC
181219
181362
  });
181220
181363
  }
181221
181364
 
181222
- // node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/extensions/error-tracking/index.mjs
181365
+ // node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/extensions/error-tracking/index.mjs
181223
181366
  var SHUTDOWN_TIMEOUT = 2000;
181224
181367
 
181225
181368
  class error_tracking_ErrorTracking {
@@ -181290,7 +181433,7 @@ class error_tracking_ErrorTracking {
181290
181433
  }
181291
181434
  }
181292
181435
 
181293
- // node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/storage-memory.mjs
181436
+ // node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/storage-memory.mjs
181294
181437
  class PostHogMemoryStorage {
181295
181438
  getProperty(key) {
181296
181439
  return this._memoryStorage[key];
@@ -181303,7 +181446,7 @@ class PostHogMemoryStorage {
181303
181446
  }
181304
181447
  }
181305
181448
 
181306
- // node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/capture-v1/config.mjs
181449
+ // node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/capture-v1/config.mjs
181307
181450
  function isCaptureMode(value) {
181308
181451
  return value === "v0" || value === "v1";
181309
181452
  }
@@ -181312,7 +181455,7 @@ function resolveCaptureMode() {
181312
181455
  return isCaptureMode(envMode) ? envMode : "v0";
181313
181456
  }
181314
181457
 
181315
- // node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/capture-v1/routing.mjs
181458
+ // node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/capture-v1/routing.mjs
181316
181459
  var AI_EVENT_PREFIX = "$ai_";
181317
181460
  var ANALYTICS_ROUTE = "analytics";
181318
181461
  var AI_ROUTE = "ai";
@@ -181320,7 +181463,7 @@ function isLegacyOnlyEvent(message) {
181320
181463
  return typeof message.event == "string" && message.event.startsWith(AI_EVENT_PREFIX);
181321
181464
  }
181322
181465
 
181323
- // node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/capture-v1/errors.mjs
181466
+ // node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/capture-v1/errors.mjs
181324
181467
  class CaptureV1Error extends Error {
181325
181468
  constructor({ requestId, drops, retryExhausted, cause }) {
181326
181469
  super(CaptureV1Error.buildMessage(requestId, drops, retryExhausted, cause)), this.name = "CaptureV1Error";
@@ -181337,7 +181480,7 @@ class CaptureV1Error extends Error {
181337
181480
  }
181338
181481
  }
181339
181482
 
181340
- // node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/capture-v1/transform.mjs
181483
+ // node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/capture-v1/transform.mjs
181341
181484
  function coerceBool(value) {
181342
181485
  if (typeof value == "boolean")
181343
181486
  return value;
@@ -181452,7 +181595,7 @@ function buildV1Batch(messages, { createdAt, historicalMigration }) {
181452
181595
  return batch2;
181453
181596
  }
181454
181597
 
181455
- // node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/capture-v1/sender.mjs
181598
+ // node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/capture-v1/sender.mjs
181456
181599
  var V1_ANALYTICS_PATH = "/i/v1/analytics/events";
181457
181600
  var DEFAULT_MAX_BACKOFF_MS = 30000;
181458
181601
  var RETRYABLE_STATUSES = new Set([
@@ -181705,13 +181848,13 @@ class V1CaptureSender {
181705
181848
  }
181706
181849
  }
181707
181850
 
181708
- // node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/ai-capture/routing.mjs
181851
+ // node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/ai-capture/routing.mjs
181709
181852
  var AI_CAPTURE_ROUTE = "ai-capture";
181710
181853
  var AI_CAPTURE_ENDPOINT_PATH = "/i/v0/ai/batch/";
181711
181854
  var AI_MAX_EVENT_BYTES = 8388608;
181712
181855
  var AI_BATCH_TARGET_BYTES = 5242880;
181713
181856
 
181714
- // node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/ai-capture/batching.mjs
181857
+ // node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/ai-capture/batching.mjs
181715
181858
  var encoder3 = new TextEncoder;
181716
181859
  function eventByteSize(message) {
181717
181860
  return encoder3.encode(safeJsonStringify(message)).length;
@@ -181748,7 +181891,7 @@ function partitionAiBatch(messages, maxEventBytes = AI_MAX_EVENT_BYTES, targetBa
181748
181891
  };
181749
181892
  }
181750
181893
 
181751
- // node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/client.mjs
181894
+ // node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/client.mjs
181752
181895
  var MINIMUM_POLLING_INTERVAL = 100;
181753
181896
  var THIRTY_SECONDS = 30000;
181754
181897
  var MAX_CACHE_SIZE = 50000;
@@ -182298,7 +182441,7 @@ class PostHogBackendClient extends PostHogCoreStateless {
182298
182441
  result = {
182299
182442
  key,
182300
182443
  enabled: flagDetail.enabled,
182301
- variant: flagDetail.variant,
182444
+ variant: flagDetail.variant ?? undefined,
182302
182445
  payload: parsedPayload
182303
182446
  };
182304
182447
  }
@@ -182499,6 +182642,7 @@ class PostHogBackendClient extends PostHogCoreStateless {
182499
182642
  const evaluationContext = this.createFeatureFlagEvaluationContext(resolvedDistinctId, groups, this.personPropertiesForLocalEvaluation(resolvedDistinctId, personProperties), groupProperties);
182500
182643
  if (onlyEvaluateLocally == undefined)
182501
182644
  onlyEvaluateLocally = this.options.strictLocalEvaluation ?? false;
182645
+ const requestedFlagKeys = flagKeys ? new Set(flagKeys) : undefined;
182502
182646
  const records = {};
182503
182647
  let requestId;
182504
182648
  let evaluatedAt;
@@ -182522,7 +182666,8 @@ class PostHogBackendClient extends PostHogCoreStateless {
182522
182666
  };
182523
182667
  locallyEvaluatedKeys.add(key);
182524
182668
  }
182525
- const fallbackToFlags = localResult ? localResult.fallbackToFlags : true;
182669
+ const requestedFlagMissingLocally = requestedFlagKeys !== undefined && Array.from(requestedFlagKeys).some((key) => this.featureFlagsPoller?.featureFlagsByKey[key] === undefined);
182670
+ const fallbackToFlags = localResult ? localResult.fallbackToFlags || requestedFlagMissingLocally : true;
182526
182671
  if (fallbackToFlags && !onlyEvaluateLocally) {
182527
182672
  const details = await super.getFeatureFlagDetailsStateless(evaluationContext.distinctId, evaluationContext.groups, personProperties, groupProperties, disableGeoip, flagKeys);
182528
182673
  if (details) {
@@ -182583,6 +182728,11 @@ class PostHogBackendClient extends PostHogCoreStateless {
182583
182728
  payload
182584
182729
  };
182585
182730
  }
182731
+ if (requestedFlagKeys !== undefined) {
182732
+ for (const key of Object.keys(records))
182733
+ if (!requestedFlagKeys.has(key))
182734
+ delete records[key];
182735
+ }
182586
182736
  return new FeatureFlagEvaluations({
182587
182737
  host: this._getFeatureFlagEvaluationsHost(),
182588
182738
  distinctId: resolvedDistinctId,
@@ -182990,7 +183140,7 @@ class PostHogBackendClient extends PostHogCoreStateless {
182990
183140
  }
182991
183141
  }
182992
183142
 
182993
- // node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/extensions/context/context.mjs
183143
+ // node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/extensions/context/context.mjs
182994
183144
  import { AsyncLocalStorage } from "async_hooks";
182995
183145
 
182996
183146
  class PostHogContext {
@@ -183021,16 +183171,14 @@ class PostHogContext {
183021
183171
  }
183022
183172
  }
183023
183173
 
183024
- // node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/gzip.node.mjs
183174
+ // node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/gzip.node.mjs
183025
183175
  import { gzip } from "zlib";
183026
183176
  import { promisify as promisify4 } from "util";
183027
183177
  var gzipAsync = promisify4(gzip);
183028
183178
  async function gzipCompress2(input, isDebug = true) {
183029
183179
  try {
183030
183180
  const compressed = await gzipAsync(input);
183031
- return new Blob([
183032
- new Uint8Array(compressed)
183033
- ]);
183181
+ return new Uint8Array(compressed);
183034
183182
  } catch (error) {
183035
183183
  if (isDebug)
183036
183184
  console.error("Failed to gzip compress data", error);
@@ -183038,7 +183186,7 @@ async function gzipCompress2(input, isDebug = true) {
183038
183186
  }
183039
183187
  }
183040
183188
 
183041
- // node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/extensions/sentry-integration.mjs
183189
+ // node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/extensions/sentry-integration.mjs
183042
183190
  var NAME = "posthog-node";
183043
183191
  function createEventProcessor(_posthog, { organization, projectId, prefix, severityAllowList = [
183044
183192
  "error"
@@ -183109,7 +183257,7 @@ class PostHogSentryIntegration {
183109
183257
  };
183110
183258
  }
183111
183259
  }
183112
- // node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/entrypoints/index.node.mjs
183260
+ // node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/entrypoints/index.node.mjs
183113
183261
  class PostHog extends PostHogBackendClient {
183114
183262
  getLibraryId() {
183115
183263
  return "posthog-node";