oh-my-opencode 4.4.0 → 4.5.1

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 (218) hide show
  1. package/.agents/command/get-unpublished-changes.md +148 -0
  2. package/.agents/command/omomomo.md +37 -0
  3. package/.agents/command/publish.md +376 -0
  4. package/.agents/command/remove-deadcode.md +221 -0
  5. package/.agents/command/security-research.md +16 -0
  6. package/.agents/skills/get-unpublished-changes/SKILL.md +24 -0
  7. package/.agents/skills/github-triage/SKILL.md +587 -0
  8. package/.agents/skills/github-triage/scripts/gh_fetch.py +398 -0
  9. package/.agents/skills/hyperplan/SKILL.md +450 -0
  10. package/.agents/skills/omomomo/SKILL.md +36 -0
  11. package/.agents/skills/pre-publish-review/SKILL.md +407 -0
  12. package/.agents/skills/publish/SKILL.md +428 -0
  13. package/.agents/skills/remove-deadcode/SKILL.md +216 -0
  14. package/.agents/skills/security-research/SKILL.md +204 -0
  15. package/.agents/skills/work-with-pr/SKILL.md +360 -0
  16. package/.agents/skills/work-with-pr-workspace/evals/evals.json +76 -0
  17. package/.agents/skills/work-with-pr-workspace/iteration-1/benchmark.json +138 -0
  18. package/.agents/skills/work-with-pr-workspace/iteration-1/benchmark.md +42 -0
  19. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/eval_metadata.json +57 -0
  20. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/grading.json +15 -0
  21. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/outputs/code-changes.md +454 -0
  22. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/outputs/execution-plan.md +136 -0
  23. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/outputs/pr-description.md +47 -0
  24. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/outputs/verification-strategy.md +163 -0
  25. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/timing.json +1 -0
  26. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/grading.json +15 -0
  27. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/outputs/code-changes.md +615 -0
  28. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/outputs/execution-plan.md +99 -0
  29. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/outputs/pr-description.md +50 -0
  30. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/outputs/verification-strategy.md +111 -0
  31. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/timing.json +1 -0
  32. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/eval_metadata.json +37 -0
  33. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/grading.json +11 -0
  34. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/outputs/code-changes.md +205 -0
  35. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/outputs/execution-plan.md +78 -0
  36. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/outputs/pr-description.md +42 -0
  37. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/outputs/verification-strategy.md +87 -0
  38. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/timing.json +1 -0
  39. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/grading.json +11 -0
  40. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/outputs/code-changes.md +334 -0
  41. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/outputs/execution-plan.md +86 -0
  42. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/outputs/pr-description.md +23 -0
  43. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/outputs/verification-strategy.md +119 -0
  44. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/timing.json +1 -0
  45. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/eval_metadata.json +32 -0
  46. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/grading.json +10 -0
  47. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/outputs/code-changes.md +221 -0
  48. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/outputs/execution-plan.md +104 -0
  49. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/outputs/pr-description.md +41 -0
  50. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/outputs/verification-strategy.md +84 -0
  51. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/timing.json +1 -0
  52. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/grading.json +10 -0
  53. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/outputs/code-changes.md +342 -0
  54. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/outputs/execution-plan.md +131 -0
  55. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/outputs/pr-description.md +39 -0
  56. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/outputs/verification-strategy.md +128 -0
  57. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/timing.json +1 -0
  58. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/eval_metadata.json +32 -0
  59. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/grading.json +10 -0
  60. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/outputs/code-changes.md +143 -0
  61. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/outputs/execution-plan.md +82 -0
  62. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/outputs/pr-description.md +51 -0
  63. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/outputs/verification-strategy.md +69 -0
  64. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/timing.json +1 -0
  65. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/grading.json +10 -0
  66. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/outputs/code-changes.md +252 -0
  67. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/outputs/execution-plan.md +83 -0
  68. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/outputs/pr-description.md +33 -0
  69. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/outputs/verification-strategy.md +101 -0
  70. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/timing.json +1 -0
  71. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/eval_metadata.json +32 -0
  72. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/grading.json +10 -0
  73. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/outputs/code-changes.md +387 -0
  74. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/outputs/execution-plan.md +112 -0
  75. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/outputs/pr-description.md +51 -0
  76. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/outputs/verification-strategy.md +75 -0
  77. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/timing.json +1 -0
  78. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/grading.json +10 -0
  79. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/outputs/code-changes.md +529 -0
  80. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/outputs/execution-plan.md +127 -0
  81. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/outputs/pr-description.md +42 -0
  82. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/outputs/verification-strategy.md +120 -0
  83. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/timing.json +1 -0
  84. package/.agents/skills/work-with-pr-workspace/iteration-1/review.html +1326 -0
  85. package/.opencode/command/get-unpublished-changes.md +148 -0
  86. package/.opencode/command/omomomo.md +37 -0
  87. package/.opencode/command/publish.md +376 -0
  88. package/.opencode/command/remove-deadcode.md +221 -0
  89. package/.opencode/command/security-research.md +16 -0
  90. package/.opencode/skills/github-triage/SKILL.md +587 -0
  91. package/.opencode/skills/github-triage/scripts/gh_fetch.py +398 -0
  92. package/.opencode/skills/hyperplan/SKILL.md +450 -0
  93. package/.opencode/skills/pre-publish-review/SKILL.md +407 -0
  94. package/.opencode/skills/work-with-pr/SKILL.md +360 -0
  95. package/.opencode/skills/work-with-pr-workspace/evals/evals.json +76 -0
  96. package/.opencode/skills/work-with-pr-workspace/iteration-1/benchmark.json +138 -0
  97. package/.opencode/skills/work-with-pr-workspace/iteration-1/benchmark.md +42 -0
  98. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/eval_metadata.json +57 -0
  99. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/grading.json +15 -0
  100. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/outputs/code-changes.md +454 -0
  101. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/outputs/execution-plan.md +136 -0
  102. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/outputs/pr-description.md +47 -0
  103. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/outputs/verification-strategy.md +163 -0
  104. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/timing.json +1 -0
  105. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/grading.json +15 -0
  106. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/outputs/code-changes.md +615 -0
  107. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/outputs/execution-plan.md +99 -0
  108. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/outputs/pr-description.md +50 -0
  109. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/outputs/verification-strategy.md +111 -0
  110. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/timing.json +1 -0
  111. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/eval_metadata.json +37 -0
  112. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/grading.json +11 -0
  113. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/outputs/code-changes.md +205 -0
  114. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/outputs/execution-plan.md +78 -0
  115. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/outputs/pr-description.md +42 -0
  116. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/outputs/verification-strategy.md +87 -0
  117. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/timing.json +1 -0
  118. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/grading.json +11 -0
  119. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/outputs/code-changes.md +334 -0
  120. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/outputs/execution-plan.md +86 -0
  121. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/outputs/pr-description.md +23 -0
  122. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/outputs/verification-strategy.md +119 -0
  123. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/timing.json +1 -0
  124. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/eval_metadata.json +32 -0
  125. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/grading.json +10 -0
  126. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/outputs/code-changes.md +221 -0
  127. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/outputs/execution-plan.md +104 -0
  128. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/outputs/pr-description.md +41 -0
  129. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/outputs/verification-strategy.md +84 -0
  130. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/timing.json +1 -0
  131. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/grading.json +10 -0
  132. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/outputs/code-changes.md +342 -0
  133. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/outputs/execution-plan.md +131 -0
  134. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/outputs/pr-description.md +39 -0
  135. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/outputs/verification-strategy.md +128 -0
  136. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/timing.json +1 -0
  137. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/eval_metadata.json +32 -0
  138. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/grading.json +10 -0
  139. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/outputs/code-changes.md +143 -0
  140. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/outputs/execution-plan.md +82 -0
  141. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/outputs/pr-description.md +51 -0
  142. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/outputs/verification-strategy.md +69 -0
  143. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/timing.json +1 -0
  144. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/grading.json +10 -0
  145. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/outputs/code-changes.md +252 -0
  146. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/outputs/execution-plan.md +83 -0
  147. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/outputs/pr-description.md +33 -0
  148. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/outputs/verification-strategy.md +101 -0
  149. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/timing.json +1 -0
  150. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/eval_metadata.json +32 -0
  151. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/grading.json +10 -0
  152. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/outputs/code-changes.md +387 -0
  153. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/outputs/execution-plan.md +112 -0
  154. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/outputs/pr-description.md +51 -0
  155. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/outputs/verification-strategy.md +75 -0
  156. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/timing.json +1 -0
  157. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/grading.json +10 -0
  158. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/outputs/code-changes.md +529 -0
  159. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/outputs/execution-plan.md +127 -0
  160. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/outputs/pr-description.md +42 -0
  161. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/outputs/verification-strategy.md +120 -0
  162. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/timing.json +1 -0
  163. package/.opencode/skills/work-with-pr-workspace/iteration-1/review.html +1326 -0
  164. package/README.ja.md +1 -1
  165. package/README.ko.md +1 -1
  166. package/README.md +1 -1
  167. package/README.ru.md +1 -1
  168. package/README.zh-cn.md +1 -1
  169. package/dist/agents/atlas/agent.d.ts +6 -6
  170. package/dist/agents/prometheus/gemini.d.ts +0 -11
  171. package/dist/agents/prometheus/gpt.d.ts +0 -10
  172. package/dist/agents/prometheus/system-prompt.d.ts +2 -20
  173. package/dist/agents/types.d.ts +1 -16
  174. package/dist/cli/index.js +178 -129
  175. package/dist/config/schema/agent-names.d.ts +3 -3
  176. package/dist/config/schema/agent-overrides.d.ts +208 -208
  177. package/dist/config/schema/categories.d.ts +28 -28
  178. package/dist/config/schema/fallback-models.d.ts +20 -20
  179. package/dist/config/schema/oh-my-opencode-config.d.ts +208 -208
  180. package/dist/features/background-agent/parent-wake-notifier.d.ts +8 -1
  181. package/dist/help/schema/acp.d.ts +95 -0
  182. package/dist/help/schema/doctor.d.ts +147 -0
  183. package/dist/help/schema/sandbox.d.ts +74 -0
  184. package/dist/help/schema/status.d.ts +139 -0
  185. package/dist/hooks/keyword-detector/analyze/default.d.ts +1 -1
  186. package/dist/hooks/keyword-detector/hyperplan/default.d.ts +1 -1
  187. package/dist/hooks/keyword-detector/search/default.d.ts +1 -1
  188. package/dist/hooks/keyword-detector/team/default.d.ts +2 -7
  189. package/dist/hooks/keyword-detector/ultrawork/default.d.ts +1 -9
  190. package/dist/hooks/keyword-detector/ultrawork/gemini.d.ts +1 -16
  191. package/dist/hooks/keyword-detector/ultrawork/gpt.d.ts +1 -10
  192. package/dist/hooks/keyword-detector/ultrawork/planner.d.ts +1 -5
  193. package/dist/hooks/ralph-loop/no-progress-turn-detector.d.ts +7 -0
  194. package/dist/hooks/ralph-loop/pending-verification-handler.d.ts +1 -0
  195. package/dist/hooks/ralph-loop/types.d.ts +1 -0
  196. package/dist/hooks/runtime-fallback/error-classifier.d.ts +1 -0
  197. package/dist/index.js +52205 -50528
  198. package/dist/shared/prompt-async-gate/pending-tool-turn.d.ts +1 -0
  199. package/dist/shared/prompt-async-gate/types.d.ts +4 -3
  200. package/package.json +19 -13
  201. package/dist/agents/atlas/default-prompt-sections.d.ts +0 -6
  202. package/dist/agents/atlas/default.d.ts +0 -2
  203. package/dist/agents/atlas/gemini-prompt-sections.d.ts +0 -6
  204. package/dist/agents/atlas/gemini.d.ts +0 -2
  205. package/dist/agents/atlas/gpt-prompt-sections.d.ts +0 -6
  206. package/dist/agents/atlas/gpt.d.ts +0 -2
  207. package/dist/agents/atlas/kimi-prompt-sections.d.ts +0 -6
  208. package/dist/agents/atlas/kimi.d.ts +0 -2
  209. package/dist/agents/atlas/opus-4-7-prompt-sections.d.ts +0 -6
  210. package/dist/agents/atlas/opus-4-7.d.ts +0 -2
  211. package/dist/agents/atlas/shared-prompt.d.ts +0 -9
  212. package/dist/agents/prometheus/behavioral-summary.d.ts +0 -6
  213. package/dist/agents/prometheus/high-accuracy-mode.d.ts +0 -6
  214. package/dist/agents/prometheus/identity-constraints.d.ts +0 -7
  215. package/dist/agents/prometheus/interview-mode.d.ts +0 -7
  216. package/dist/agents/prometheus/plan-generation.d.ts +0 -7
  217. package/dist/agents/prometheus/plan-template.d.ts +0 -7
  218. package/dist/agents/prometheus/spec-driven-mode.d.ts +0 -7
package/dist/cli/index.js CHANGED
@@ -6448,6 +6448,9 @@ var init_model_requirements = __esm(() => {
6448
6448
  };
6449
6449
  });
6450
6450
 
6451
+ // packages/model-core/src/model-family-detectors.ts
6452
+ var init_model_family_detectors = () => {};
6453
+
6451
6454
  // packages/model-core/src/model-capability-aliases.ts
6452
6455
  function normalizeLookupModelID(modelID) {
6453
6456
  return modelID.trim().toLowerCase();
@@ -7196,6 +7199,7 @@ var init_src2 = __esm(() => {
7196
7199
  init_provider_model_id_transform();
7197
7200
  init_model_resolution_pipeline();
7198
7201
  init_model_requirements();
7202
+ init_model_family_detectors();
7199
7203
  init_model_capability_aliases();
7200
7204
  init_model_capability_heuristics();
7201
7205
  init_model_capability_guardrails();
@@ -52041,6 +52045,27 @@ function createDefaultDedupeKey(source, input) {
52041
52045
  const fingerprint = stringifyPromptInputForDedupe(input);
52042
52046
  return `${source}:${fingerprint.length}:${fingerprint.slice(0, 8192)}`;
52043
52047
  }
52048
+ function hasObjectSessionPath(input) {
52049
+ return typeof input === "object" && input !== null && "path" in input && typeof input.path === "object" && input.path !== null && "id" in input.path && typeof input.path.id === "string";
52050
+ }
52051
+ function isObjectPathTypeError(error) {
52052
+ const message = error instanceof Error ? error.message : typeof error === "string" ? error : "";
52053
+ return message.includes('The "path" property must be of type string') && message.includes("got object");
52054
+ }
52055
+ async function dispatchWithPathCompatibility(dispatch, input) {
52056
+ try {
52057
+ return await dispatch(input);
52058
+ } catch (error) {
52059
+ if (!isObjectPathTypeError(error) || !hasObjectSessionPath(input)) {
52060
+ throw error;
52061
+ }
52062
+ const retryInput = {
52063
+ ...input,
52064
+ path: input.path.id
52065
+ };
52066
+ return dispatch(retryInput);
52067
+ }
52068
+ }
52044
52069
  async function dispatchInternalPrompt(args) {
52045
52070
  const {
52046
52071
  client,
@@ -52096,7 +52121,7 @@ async function dispatchInternalPrompt(args) {
52096
52121
  dispatchTimeoutMs,
52097
52122
  checkStatus: args.checkStatus !== false,
52098
52123
  checkToolState: args.checkToolState !== false,
52099
- dispatch
52124
+ dispatch: (dispatchInput) => dispatchWithPathCompatibility(dispatch, dispatchInput)
52100
52125
  });
52101
52126
  }
52102
52127
  if (args.queue !== false) {
@@ -52114,7 +52139,7 @@ async function dispatchInternalPrompt(args) {
52114
52139
  queueRetryMs,
52115
52140
  checkStatus: args.checkStatus !== false,
52116
52141
  checkToolState: args.checkToolState !== false,
52117
- dispatch: async (_dispatchInput) => dispatch(input)
52142
+ dispatch: async (_dispatchInput) => dispatchWithPathCompatibility(dispatch, input)
52118
52143
  });
52119
52144
  }
52120
52145
  return dispatchAfterSessionIdle({
@@ -52129,7 +52154,7 @@ async function dispatchInternalPrompt(args) {
52129
52154
  dispatchTimeoutMs,
52130
52155
  checkStatus: args.checkStatus !== false,
52131
52156
  checkToolState: args.checkToolState !== false,
52132
- dispatch
52157
+ dispatch: (dispatchInput) => dispatchWithPathCompatibility(dispatch, dispatchInput)
52133
52158
  });
52134
52159
  }
52135
52160
  function isInternalPromptDispatchAccepted(result) {
@@ -55445,7 +55470,7 @@ var {
55445
55470
  // package.json
55446
55471
  var package_default = {
55447
55472
  name: "oh-my-opencode",
55448
- version: "4.4.0",
55473
+ version: "4.5.1",
55449
55474
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
55450
55475
  main: "./dist/index.js",
55451
55476
  types: "dist/index.d.ts",
@@ -55456,6 +55481,7 @@ var package_default = {
55456
55481
  "packages/ast-grep-mcp",
55457
55482
  "packages/utils",
55458
55483
  "packages/model-core",
55484
+ "packages/prompts-core",
55459
55485
  "packages/comment-checker-core",
55460
55486
  "packages/hashline-core",
55461
55487
  "packages/boulder-state",
@@ -55469,6 +55495,10 @@ var package_default = {
55469
55495
  "dist",
55470
55496
  "bin",
55471
55497
  "postinstall.mjs",
55498
+ ".opencode/command",
55499
+ ".opencode/skills",
55500
+ ".agents/command",
55501
+ ".agents/skills",
55472
55502
  "packages/lsp-tools-mcp/dist",
55473
55503
  "packages/ast-grep-mcp/dist"
55474
55504
  ],
@@ -55494,7 +55524,7 @@ var package_default = {
55494
55524
  prepublishOnly: "bun run clean && bun run build:lsp-tools-mcp && bun run build",
55495
55525
  "test:model-capabilities": "bun test src/shared/model-capability-aliases.test.ts src/shared/model-capability-guardrails.test.ts src/shared/model-capabilities.test.ts src/cli/doctor/checks/model-resolution.test.ts --bail",
55496
55526
  typecheck: "tsgo --noEmit && bun run typecheck:packages",
55497
- "typecheck:packages": "tsgo --noEmit -p packages/rules-engine/tsconfig.json && tsgo --noEmit -p packages/ast-grep-core/tsconfig.json && tsgo --noEmit -p packages/ast-grep-mcp/tsconfig.json && tsgo --noEmit -p packages/utils/tsconfig.json && tsgo --noEmit -p packages/model-core/tsconfig.json && tsgo --noEmit -p packages/comment-checker-core/tsconfig.json && tsgo --noEmit -p packages/hashline-core/tsconfig.json && tsgo --noEmit -p packages/boulder-state/tsconfig.json && tsgo --noEmit -p packages/agents-md-core/tsconfig.json",
55527
+ "typecheck:packages": "tsgo --noEmit -p packages/rules-engine/tsconfig.json && tsgo --noEmit -p packages/ast-grep-core/tsconfig.json && tsgo --noEmit -p packages/ast-grep-mcp/tsconfig.json && tsgo --noEmit -p packages/utils/tsconfig.json && tsgo --noEmit -p packages/model-core/tsconfig.json && tsgo --noEmit -p packages/prompts-core/tsconfig.json && tsgo --noEmit -p packages/comment-checker-core/tsconfig.json && tsgo --noEmit -p packages/hashline-core/tsconfig.json && tsgo --noEmit -p packages/boulder-state/tsconfig.json && tsgo --noEmit -p packages/agents-md-core/tsconfig.json",
55498
55528
  "typecheck:script": "tsgo --noEmit -p script/tsconfig.json",
55499
55529
  test: "bun test",
55500
55530
  "build:ast-grep-mcp": "bun run --cwd packages/ast-grep-mcp build"
@@ -55545,6 +55575,7 @@ var package_default = {
55545
55575
  "@oh-my-opencode/comment-checker-core": "workspace:*",
55546
55576
  "@oh-my-opencode/hashline-core": "workspace:*",
55547
55577
  "@oh-my-opencode/model-core": "workspace:*",
55578
+ "@oh-my-opencode/prompts-core": "workspace:*",
55548
55579
  "@oh-my-opencode/rules-engine": "workspace:*",
55549
55580
  "@oh-my-opencode/utils": "workspace:*",
55550
55581
  "@typescript/native-preview": "7.0.0-dev.20260518.1",
@@ -55555,17 +55586,17 @@ var package_default = {
55555
55586
  zod: "^4.4.3"
55556
55587
  },
55557
55588
  optionalDependencies: {
55558
- "oh-my-opencode-darwin-arm64": "4.4.0",
55559
- "oh-my-opencode-darwin-x64": "4.4.0",
55560
- "oh-my-opencode-darwin-x64-baseline": "4.4.0",
55561
- "oh-my-opencode-linux-arm64": "4.4.0",
55562
- "oh-my-opencode-linux-arm64-musl": "4.4.0",
55563
- "oh-my-opencode-linux-x64": "4.4.0",
55564
- "oh-my-opencode-linux-x64-baseline": "4.4.0",
55565
- "oh-my-opencode-linux-x64-musl": "4.4.0",
55566
- "oh-my-opencode-linux-x64-musl-baseline": "4.4.0",
55567
- "oh-my-opencode-windows-x64": "4.4.0",
55568
- "oh-my-opencode-windows-x64-baseline": "4.4.0"
55589
+ "oh-my-opencode-darwin-arm64": "4.5.1",
55590
+ "oh-my-opencode-darwin-x64": "4.5.1",
55591
+ "oh-my-opencode-darwin-x64-baseline": "4.5.1",
55592
+ "oh-my-opencode-linux-arm64": "4.5.1",
55593
+ "oh-my-opencode-linux-arm64-musl": "4.5.1",
55594
+ "oh-my-opencode-linux-x64": "4.5.1",
55595
+ "oh-my-opencode-linux-x64-baseline": "4.5.1",
55596
+ "oh-my-opencode-linux-x64-musl": "4.5.1",
55597
+ "oh-my-opencode-linux-x64-musl-baseline": "4.5.1",
55598
+ "oh-my-opencode-windows-x64": "4.5.1",
55599
+ "oh-my-opencode-windows-x64-baseline": "4.5.1"
55569
55600
  },
55570
55601
  overrides: {
55571
55602
  hono: "^4.12.18",
@@ -56011,7 +56042,7 @@ var fastStringWidth = (input, options = {}) => {
56011
56042
  };
56012
56043
  var dist_default2 = fastStringWidth;
56013
56044
 
56014
- // node_modules/.bun/fast-wrap-ansi@0.2.0/node_modules/fast-wrap-ansi/lib/main.js
56045
+ // node_modules/.bun/fast-wrap-ansi@0.2.2/node_modules/fast-wrap-ansi/lib/main.js
56015
56046
  var ESC = "\x1B";
56016
56047
  var CSI = "\x9B";
56017
56048
  var END_CODE = 39;
@@ -73371,7 +73402,7 @@ function loadPluginConfig(directory, ctx) {
73371
73402
  });
73372
73403
  return config2;
73373
73404
  }
73374
- // node_modules/.bun/@opencode-ai+sdk@1.15.4/node_modules/@opencode-ai/sdk/dist/gen/core/serverSentEvents.gen.js
73405
+ // node_modules/.bun/@opencode-ai+sdk@1.15.10/node_modules/@opencode-ai/sdk/dist/gen/core/serverSentEvents.gen.js
73375
73406
  var createSseClient = ({ onSseError, onSseEvent, responseTransformer, responseValidator, sseDefaultRetryDelay, sseMaxRetryAttempts, sseMaxRetryDelay, sseSleepFn, url: url2, ...options }) => {
73376
73407
  let lastEventId;
73377
73408
  const sleep = sseSleepFn ?? ((ms) => new Promise((resolve5) => setTimeout(resolve5, ms)));
@@ -73480,7 +73511,7 @@ var createSseClient = ({ onSseError, onSseEvent, responseTransformer, responseVa
73480
73511
  return { stream };
73481
73512
  };
73482
73513
 
73483
- // node_modules/.bun/@opencode-ai+sdk@1.15.4/node_modules/@opencode-ai/sdk/dist/gen/core/auth.gen.js
73514
+ // node_modules/.bun/@opencode-ai+sdk@1.15.10/node_modules/@opencode-ai/sdk/dist/gen/core/auth.gen.js
73484
73515
  var getAuthToken = async (auth, callback) => {
73485
73516
  const token = typeof callback === "function" ? await callback(auth) : callback;
73486
73517
  if (!token) {
@@ -73495,12 +73526,12 @@ var getAuthToken = async (auth, callback) => {
73495
73526
  return token;
73496
73527
  };
73497
73528
 
73498
- // node_modules/.bun/@opencode-ai+sdk@1.15.4/node_modules/@opencode-ai/sdk/dist/gen/core/bodySerializer.gen.js
73529
+ // node_modules/.bun/@opencode-ai+sdk@1.15.10/node_modules/@opencode-ai/sdk/dist/gen/core/bodySerializer.gen.js
73499
73530
  var jsonBodySerializer = {
73500
73531
  bodySerializer: (body) => JSON.stringify(body, (_key, value) => typeof value === "bigint" ? value.toString() : value)
73501
73532
  };
73502
73533
 
73503
- // node_modules/.bun/@opencode-ai+sdk@1.15.4/node_modules/@opencode-ai/sdk/dist/gen/core/pathSerializer.gen.js
73534
+ // node_modules/.bun/@opencode-ai+sdk@1.15.10/node_modules/@opencode-ai/sdk/dist/gen/core/pathSerializer.gen.js
73504
73535
  var separatorArrayExplode = (style) => {
73505
73536
  switch (style) {
73506
73537
  case "label":
@@ -73603,7 +73634,7 @@ var serializeObjectParam = ({ allowReserved, explode, name, style, value, valueO
73603
73634
  return style === "label" || style === "matrix" ? separator + joinedValues : joinedValues;
73604
73635
  };
73605
73636
 
73606
- // node_modules/.bun/@opencode-ai+sdk@1.15.4/node_modules/@opencode-ai/sdk/dist/gen/core/utils.gen.js
73637
+ // node_modules/.bun/@opencode-ai+sdk@1.15.10/node_modules/@opencode-ai/sdk/dist/gen/core/utils.gen.js
73607
73638
  var PATH_PARAM_RE = /\{[^{}]+\}/g;
73608
73639
  var defaultPathSerializer = ({ path: path7, url: _url2 }) => {
73609
73640
  let url2 = _url2;
@@ -73671,7 +73702,7 @@ var getUrl = ({ baseUrl, path: path7, query, querySerializer, url: _url2 }) => {
73671
73702
  return url2;
73672
73703
  };
73673
73704
 
73674
- // node_modules/.bun/@opencode-ai+sdk@1.15.4/node_modules/@opencode-ai/sdk/dist/gen/client/utils.gen.js
73705
+ // node_modules/.bun/@opencode-ai+sdk@1.15.10/node_modules/@opencode-ai/sdk/dist/gen/client/utils.gen.js
73675
73706
  var createQuerySerializer = ({ allowReserved, array: array2, object: object2 } = {}) => {
73676
73707
  const querySerializer = (queryParams) => {
73677
73708
  const search = [];
@@ -73879,7 +73910,7 @@ var createConfig = (override = {}) => ({
73879
73910
  ...override
73880
73911
  });
73881
73912
 
73882
- // node_modules/.bun/@opencode-ai+sdk@1.15.4/node_modules/@opencode-ai/sdk/dist/gen/client/client.gen.js
73913
+ // node_modules/.bun/@opencode-ai+sdk@1.15.10/node_modules/@opencode-ai/sdk/dist/gen/client/client.gen.js
73883
73914
  var createClient = (config2 = {}) => {
73884
73915
  let _config = mergeConfigs2(createConfig(), config2);
73885
73916
  const getConfig = () => ({ ..._config });
@@ -74026,7 +74057,7 @@ var createClient = (config2 = {}) => {
74026
74057
  trace: makeMethod("TRACE")
74027
74058
  };
74028
74059
  };
74029
- // node_modules/.bun/@opencode-ai+sdk@1.15.4/node_modules/@opencode-ai/sdk/dist/gen/core/params.gen.js
74060
+ // node_modules/.bun/@opencode-ai+sdk@1.15.10/node_modules/@opencode-ai/sdk/dist/gen/core/params.gen.js
74030
74061
  var extraPrefixesMap = {
74031
74062
  $body_: "body",
74032
74063
  $headers_: "headers",
@@ -74034,12 +74065,12 @@ var extraPrefixesMap = {
74034
74065
  $query_: "query"
74035
74066
  };
74036
74067
  var extraPrefixes = Object.entries(extraPrefixesMap);
74037
- // node_modules/.bun/@opencode-ai+sdk@1.15.4/node_modules/@opencode-ai/sdk/dist/gen/client.gen.js
74068
+ // node_modules/.bun/@opencode-ai+sdk@1.15.10/node_modules/@opencode-ai/sdk/dist/gen/client.gen.js
74038
74069
  var client = createClient(createConfig({
74039
74070
  baseUrl: "http://localhost:4096"
74040
74071
  }));
74041
74072
 
74042
- // node_modules/.bun/@opencode-ai+sdk@1.15.4/node_modules/@opencode-ai/sdk/dist/gen/sdk.gen.js
74073
+ // node_modules/.bun/@opencode-ai+sdk@1.15.10/node_modules/@opencode-ai/sdk/dist/gen/sdk.gen.js
74043
74074
  class _HeyApiClient {
74044
74075
  _client = client;
74045
74076
  constructor(args) {
@@ -74709,7 +74740,7 @@ class OpencodeClient extends _HeyApiClient {
74709
74740
  event = new Event2({ client: this._client });
74710
74741
  }
74711
74742
 
74712
- // node_modules/.bun/@opencode-ai+sdk@1.15.4/node_modules/@opencode-ai/sdk/dist/error-interceptor.js
74743
+ // node_modules/.bun/@opencode-ai+sdk@1.15.10/node_modules/@opencode-ai/sdk/dist/error-interceptor.js
74713
74744
  function wrapClientError(error51, response, request, opts) {
74714
74745
  if (!opts?.throwOnError)
74715
74746
  return error51;
@@ -74736,7 +74767,7 @@ function describe3(request, response) {
74736
74767
  return `${method} ${url2}${status ? " \u2192 " + status : ""}${statusText ? " " + statusText : ""}`;
74737
74768
  }
74738
74769
 
74739
- // node_modules/.bun/@opencode-ai+sdk@1.15.4/node_modules/@opencode-ai/sdk/dist/client.js
74770
+ // node_modules/.bun/@opencode-ai+sdk@1.15.10/node_modules/@opencode-ai/sdk/dist/client.js
74740
74771
  function pick2(value, fallback) {
74741
74772
  if (!value)
74742
74773
  return;
@@ -74784,10 +74815,10 @@ function createOpencodeClient(config2) {
74784
74815
  client2.interceptors.error.use(wrapClientError);
74785
74816
  return new OpencodeClient({ client: client2 });
74786
74817
  }
74787
- // node_modules/.bun/@opencode-ai+sdk@1.15.4/node_modules/@opencode-ai/sdk/dist/server.js
74818
+ // node_modules/.bun/@opencode-ai+sdk@1.15.10/node_modules/@opencode-ai/sdk/dist/server.js
74788
74819
  var import_cross_spawn = __toESM(require_cross_spawn(), 1);
74789
74820
 
74790
- // node_modules/.bun/@opencode-ai+sdk@1.15.4/node_modules/@opencode-ai/sdk/dist/process.js
74821
+ // node_modules/.bun/@opencode-ai+sdk@1.15.10/node_modules/@opencode-ai/sdk/dist/process.js
74791
74822
  import { spawnSync as spawnSync2 } from "child_process";
74792
74823
  function stop(proc) {
74793
74824
  if (proc.exitCode !== null || proc.signalCode !== null)
@@ -74820,7 +74851,7 @@ function bindAbort(proc, signal, onAbort) {
74820
74851
  return clear;
74821
74852
  }
74822
74853
 
74823
- // node_modules/.bun/@opencode-ai+sdk@1.15.4/node_modules/@opencode-ai/sdk/dist/server.js
74854
+ // node_modules/.bun/@opencode-ai+sdk@1.15.10/node_modules/@opencode-ai/sdk/dist/server.js
74824
74855
  async function createOpencodeServer(options) {
74825
74856
  options = Object.assign({
74826
74857
  hostname: "127.0.0.1",
@@ -74897,7 +74928,7 @@ Server output: ${output}`;
74897
74928
  }
74898
74929
  };
74899
74930
  }
74900
- // node_modules/.bun/@opencode-ai+sdk@1.15.4/node_modules/@opencode-ai/sdk/dist/index.js
74931
+ // node_modules/.bun/@opencode-ai+sdk@1.15.10/node_modules/@opencode-ai/sdk/dist/index.js
74901
74932
  async function createOpencode(options) {
74902
74933
  const server2 = await createOpencodeServer({
74903
74934
  ...options
@@ -75809,6 +75840,7 @@ function readState(directory, customPath) {
75809
75840
  return str3.replace(/^["']|["']$/g, "");
75810
75841
  };
75811
75842
  const ultrawork = data.ultrawork === true || data.ultrawork === "true" ? true : undefined;
75843
+ const verificationAttemptStartedAt = Number(data.verification_attempt_started_at);
75812
75844
  const maxIterations = data.max_iterations === undefined || data.max_iterations === "" ? ultrawork ? undefined : DEFAULT_MAX_ITERATIONS : Number(data.max_iterations) || DEFAULT_MAX_ITERATIONS;
75813
75845
  return {
75814
75846
  active: isActive,
@@ -75818,6 +75850,7 @@ function readState(directory, customPath) {
75818
75850
  completion_promise: stripQuotes(data.completion_promise) || DEFAULT_COMPLETION_PROMISE,
75819
75851
  initial_completion_promise: data.initial_completion_promise ? stripQuotes(data.initial_completion_promise) : undefined,
75820
75852
  verification_attempt_id: data.verification_attempt_id ? stripQuotes(data.verification_attempt_id) : undefined,
75853
+ verification_attempt_started_at: data.verification_attempt_started_at === undefined || data.verification_attempt_started_at === "" ? undefined : Number.isFinite(verificationAttemptStartedAt) ? verificationAttemptStartedAt : undefined,
75821
75854
  verification_session_id: data.verification_session_id ? stripQuotes(data.verification_session_id) : undefined,
75822
75855
  started_at: stripQuotes(data.started_at) || new Date().toISOString(),
75823
75856
  prompt: body.trim(),
@@ -76243,7 +76276,7 @@ function createTimestampedStdoutController(stdout = process.stdout) {
76243
76276
  import os3 from "os";
76244
76277
  import { createHash } from "crypto";
76245
76278
 
76246
- // node_modules/.bun/posthog-node@5.34.3/node_modules/posthog-node/dist/extensions/error-tracking/modifiers/module.node.mjs
76279
+ // node_modules/.bun/posthog-node@5.35.3/node_modules/posthog-node/dist/extensions/error-tracking/modifiers/module.node.mjs
76247
76280
  import { dirname as dirname11, posix, sep } from "path";
76248
76281
  function createModulerModifier() {
76249
76282
  const getModuleFromFileName = createGetModuleFromFilename();
@@ -76279,7 +76312,7 @@ function normalizeWindowsPath(path7) {
76279
76312
  return path7.replace(/^[A-Z]:/, "").replace(/\\/g, "/");
76280
76313
  }
76281
76314
 
76282
- // node_modules/.bun/@posthog+core@1.29.3/node_modules/@posthog/core/dist/featureFlagUtils.mjs
76315
+ // node_modules/.bun/@posthog+core@1.29.10/node_modules/@posthog/core/dist/featureFlagUtils.mjs
76283
76316
  var normalizeFlagsResponse = (flagsResponse) => {
76284
76317
  if ("flags" in flagsResponse) {
76285
76318
  const featureFlags = getFlagValuesFromFlags(flagsResponse.flags);
@@ -76350,7 +76383,7 @@ var parsePayload = (response) => {
76350
76383
  }
76351
76384
  };
76352
76385
 
76353
- // node_modules/.bun/@posthog+core@1.29.3/node_modules/@posthog/core/dist/types.mjs
76386
+ // node_modules/.bun/@posthog+core@1.29.10/node_modules/@posthog/core/dist/types.mjs
76354
76387
  var types_PostHogPersistedProperty = /* @__PURE__ */ function(PostHogPersistedProperty) {
76355
76388
  PostHogPersistedProperty["AnonymousId"] = "anonymous_id";
76356
76389
  PostHogPersistedProperty["DistinctId"] = "distinct_id";
@@ -76384,7 +76417,7 @@ var types_PostHogPersistedProperty = /* @__PURE__ */ function(PostHogPersistedPr
76384
76417
  return PostHogPersistedProperty;
76385
76418
  }({});
76386
76419
 
76387
- // node_modules/.bun/@posthog+core@1.29.3/node_modules/@posthog/core/dist/gzip.mjs
76420
+ // node_modules/.bun/@posthog+core@1.29.10/node_modules/@posthog/core/dist/gzip.mjs
76388
76421
  function isGzipSupported() {
76389
76422
  return "CompressionStream" in globalThis && "TextEncoder" in globalThis && "Response" in globalThis && typeof Response.prototype.blob == "function";
76390
76423
  }
@@ -76458,7 +76491,7 @@ async function gzipCompress(input, isDebug = true, options) {
76458
76491
  }
76459
76492
  }
76460
76493
 
76461
- // node_modules/.bun/@posthog+core@1.29.3/node_modules/@posthog/core/dist/utils/bot-detection.mjs
76494
+ // node_modules/.bun/@posthog+core@1.29.10/node_modules/@posthog/core/dist/utils/bot-detection.mjs
76462
76495
  var DEFAULT_BLOCKED_UA_STRS = [
76463
76496
  "amazonbot",
76464
76497
  "amazonproductbot",
@@ -76547,7 +76580,7 @@ var isBlockedUA = function(ua, customBlockedUserAgents = []) {
76547
76580
  return uaLower.indexOf(blockedUaLower) !== -1;
76548
76581
  });
76549
76582
  };
76550
- // node_modules/.bun/@posthog+core@1.29.3/node_modules/@posthog/core/dist/utils/type-utils.mjs
76583
+ // node_modules/.bun/@posthog+core@1.29.10/node_modules/@posthog/core/dist/utils/type-utils.mjs
76551
76584
  var nativeIsArray = Array.isArray;
76552
76585
  var ObjProto = Object.prototype;
76553
76586
  var type_utils_hasOwnProperty = ObjProto.hasOwnProperty;
@@ -76584,7 +76617,7 @@ function isInstanceOf(candidate, base) {
76584
76617
  }
76585
76618
  }
76586
76619
 
76587
- // node_modules/.bun/@posthog+core@1.29.3/node_modules/@posthog/core/dist/utils/number-utils.mjs
76620
+ // node_modules/.bun/@posthog+core@1.29.10/node_modules/@posthog/core/dist/utils/number-utils.mjs
76588
76621
  function clampToRange(value, min, max, logger2, fallbackValue) {
76589
76622
  if (min > max) {
76590
76623
  logger2.warn("min cannot be greater than max.");
@@ -76604,7 +76637,7 @@ function clampToRange(value, min, max, logger2, fallbackValue) {
76604
76637
  return clampToRange(fallbackValue || max, min, max, logger2);
76605
76638
  }
76606
76639
 
76607
- // node_modules/.bun/@posthog+core@1.29.3/node_modules/@posthog/core/dist/utils/bucketed-rate-limiter.mjs
76640
+ // node_modules/.bun/@posthog+core@1.29.10/node_modules/@posthog/core/dist/utils/bucketed-rate-limiter.mjs
76608
76641
  var ONE_DAY_IN_MS = 86400000;
76609
76642
 
76610
76643
  class BucketedRateLimiter {
@@ -76648,7 +76681,7 @@ class BucketedRateLimiter {
76648
76681
  this._buckets = {};
76649
76682
  }
76650
76683
  }
76651
- // node_modules/.bun/@posthog+core@1.29.3/node_modules/@posthog/core/dist/vendor/uuidv7.mjs
76684
+ // node_modules/.bun/@posthog+core@1.29.10/node_modules/@posthog/core/dist/vendor/uuidv7.mjs
76652
76685
  /*! For license information please see uuidv7.mjs.LICENSE.txt */
76653
76686
  var DIGITS = "0123456789abcdef";
76654
76687
 
@@ -76826,7 +76859,7 @@ var defaultGenerator;
76826
76859
  var uuidv72 = () => uuidv7obj().toString();
76827
76860
  var uuidv7obj = () => (defaultGenerator || (defaultGenerator = new V7Generator)).generate();
76828
76861
 
76829
- // node_modules/.bun/@posthog+core@1.29.3/node_modules/@posthog/core/dist/utils/promise-queue.mjs
76862
+ // node_modules/.bun/@posthog+core@1.29.10/node_modules/@posthog/core/dist/utils/promise-queue.mjs
76830
76863
  class PromiseQueue {
76831
76864
  add(promise2) {
76832
76865
  const promiseUUID = uuidv72();
@@ -76852,7 +76885,7 @@ class PromiseQueue {
76852
76885
  this.promiseByIds = {};
76853
76886
  }
76854
76887
  }
76855
- // node_modules/.bun/@posthog+core@1.29.3/node_modules/@posthog/core/dist/utils/logger.mjs
76888
+ // node_modules/.bun/@posthog+core@1.29.10/node_modules/@posthog/core/dist/utils/logger.mjs
76856
76889
  function createConsole(consoleLike = console) {
76857
76890
  const lockedMethods = {
76858
76891
  log: consoleLike.log.bind(consoleLike),
@@ -76893,7 +76926,7 @@ var passThrough = (fn) => fn();
76893
76926
  function createLogger(prefix, maybeCall = passThrough) {
76894
76927
  return _createLogger(prefix, maybeCall, createConsole());
76895
76928
  }
76896
- // node_modules/.bun/@posthog+core@1.29.3/node_modules/@posthog/core/dist/utils/user-agent-utils.mjs
76929
+ // node_modules/.bun/@posthog+core@1.29.10/node_modules/@posthog/core/dist/utils/user-agent-utils.mjs
76897
76930
  var MOBILE = "Mobile";
76898
76931
  var IOS = "iOS";
76899
76932
  var ANDROID = "Android";
@@ -76928,6 +76961,7 @@ var GENERIC = "Generic";
76928
76961
  var GENERIC_MOBILE = GENERIC + " " + MOBILE.toLowerCase();
76929
76962
  var GENERIC_TABLET = GENERIC + " " + TABLET.toLowerCase();
76930
76963
  var KONQUEROR = "Konqueror";
76964
+ var OCULUS_BROWSER = "Oculus Browser";
76931
76965
  var BROWSER_VERSION_REGEX_SUFFIX = "(\\d+(\\.\\d+)?)";
76932
76966
  var DEFAULT_BROWSER_VERSION_REGEX = new RegExp("Version/" + BROWSER_VERSION_REGEX_SUFFIX);
76933
76967
  var XBOX_REGEX = new RegExp(XBOX, "i");
@@ -76991,6 +77025,9 @@ var versionRegexes = {
76991
77025
  [SAMSUNG_INTERNET]: [
76992
77026
  new RegExp(SAMSUNG_BROWSER + "\\/" + BROWSER_VERSION_REGEX_SUFFIX)
76993
77027
  ],
77028
+ [OCULUS_BROWSER]: [
77029
+ new RegExp("OculusBrowser\\/" + BROWSER_VERSION_REGEX_SUFFIX)
77030
+ ],
76994
77031
  [INTERNET_EXPLORER]: [
76995
77032
  new RegExp("(rv:|MSIE )" + BROWSER_VERSION_REGEX_SUFFIX)
76996
77033
  ],
@@ -77150,7 +77187,7 @@ var osMatchers = [
77150
77187
  ]
77151
77188
  ];
77152
77189
 
77153
- // node_modules/.bun/@posthog+core@1.29.3/node_modules/@posthog/core/dist/utils/index.mjs
77190
+ // node_modules/.bun/@posthog+core@1.29.10/node_modules/@posthog/core/dist/utils/index.mjs
77154
77191
  var STRING_FORMAT = "utf8";
77155
77192
  function removeTrailingSlash(url2) {
77156
77193
  return url2?.replace(/\/+$/, "");
@@ -77190,7 +77227,7 @@ function allSettled(promises) {
77190
77227
  }))));
77191
77228
  }
77192
77229
 
77193
- // node_modules/.bun/@posthog+core@1.29.3/node_modules/@posthog/core/dist/logs/logs-utils.mjs
77230
+ // node_modules/.bun/@posthog+core@1.29.10/node_modules/@posthog/core/dist/logs/logs-utils.mjs
77194
77231
  var OTLP_SEVERITY_MAP = {
77195
77232
  trace: {
77196
77233
  text: "TRACE",
@@ -77218,7 +77255,7 @@ var OTLP_SEVERITY_MAP = {
77218
77255
  }
77219
77256
  };
77220
77257
  var DEFAULT_OTLP_SEVERITY = OTLP_SEVERITY_MAP.info;
77221
- // node_modules/.bun/@posthog+core@1.29.3/node_modules/@posthog/core/dist/eventemitter.mjs
77258
+ // node_modules/.bun/@posthog+core@1.29.10/node_modules/@posthog/core/dist/eventemitter.mjs
77222
77259
  class SimpleEventEmitter {
77223
77260
  constructor() {
77224
77261
  this.events = {};
@@ -77240,7 +77277,7 @@ class SimpleEventEmitter {
77240
77277
  }
77241
77278
  }
77242
77279
 
77243
- // node_modules/.bun/@posthog+core@1.29.3/node_modules/@posthog/core/dist/posthog-core-stateless.mjs
77280
+ // node_modules/.bun/@posthog+core@1.29.10/node_modules/@posthog/core/dist/posthog-core-stateless.mjs
77244
77281
  class PostHogFetchHttpError extends Error {
77245
77282
  constructor(response, reqByteLength) {
77246
77283
  super("HTTP error while fetching PostHog: status=" + response.status + ", reqByteLength=" + reqByteLength), this.response = response, this.reqByteLength = reqByteLength, this.name = "PostHogFetchHttpError";
@@ -77275,7 +77312,10 @@ async function logFlushError(err) {
77275
77312
  return Promise.resolve();
77276
77313
  }
77277
77314
  function isPostHogFetchError(err) {
77278
- return typeof err == "object" && (err instanceof PostHogFetchHttpError || err instanceof PostHogFetchNetworkError);
77315
+ return typeof err == "object" && (err instanceof PostHogFetchHttpError || isPostHogFetchNetworkError(err));
77316
+ }
77317
+ function isPostHogFetchNetworkError(err) {
77318
+ return err instanceof PostHogFetchNetworkError;
77279
77319
  }
77280
77320
  function isPostHogFetchContentTooLargeError(err) {
77281
77321
  return typeof err == "object" && err instanceof PostHogFetchHttpError && err.status === 413;
@@ -78014,7 +78054,7 @@ class PostHogCoreStateless {
78014
78054
  return this.shutdownPromise;
78015
78055
  }
78016
78056
  }
78017
- // node_modules/.bun/@posthog+core@1.29.3/node_modules/@posthog/core/dist/error-tracking/index.mjs
78057
+ // node_modules/.bun/@posthog+core@1.29.10/node_modules/@posthog/core/dist/error-tracking/index.mjs
78018
78058
  var exports_error_tracking = {};
78019
78059
  __export(exports_error_tracking, {
78020
78060
  winjsStackLineParser: () => winjsStackLineParser,
@@ -78044,7 +78084,7 @@ __export(exports_error_tracking, {
78044
78084
  DEFAULT_EXCEPTION_STEPS_CONFIG: () => DEFAULT_EXCEPTION_STEPS_CONFIG
78045
78085
  });
78046
78086
 
78047
- // node_modules/.bun/@posthog+core@1.29.3/node_modules/@posthog/core/dist/error-tracking/chunk-ids.mjs
78087
+ // node_modules/.bun/@posthog+core@1.29.10/node_modules/@posthog/core/dist/error-tracking/chunk-ids.mjs
78048
78088
  var parsedStackResults;
78049
78089
  var lastKeysCount;
78050
78090
  var cachedFilenameChunkIds;
@@ -78083,7 +78123,7 @@ function getFilenameToChunkIdMap(stackParser) {
78083
78123
  return cachedFilenameChunkIds;
78084
78124
  }
78085
78125
 
78086
- // node_modules/.bun/@posthog+core@1.29.3/node_modules/@posthog/core/dist/error-tracking/error-properties-builder.mjs
78126
+ // node_modules/.bun/@posthog+core@1.29.10/node_modules/@posthog/core/dist/error-tracking/error-properties-builder.mjs
78087
78127
  var MAX_CAUSE_RECURSION = 4;
78088
78128
 
78089
78129
  class ErrorPropertiesBuilder {
@@ -78205,7 +78245,7 @@ class ErrorPropertiesBuilder {
78205
78245
  return context;
78206
78246
  }
78207
78247
  }
78208
- // node_modules/.bun/@posthog+core@1.29.3/node_modules/@posthog/core/dist/error-tracking/parsers/base.mjs
78248
+ // node_modules/.bun/@posthog+core@1.29.10/node_modules/@posthog/core/dist/error-tracking/parsers/base.mjs
78209
78249
  var UNKNOWN_FUNCTION = "?";
78210
78250
  function createFrame(platform, filename, func, lineno, colno) {
78211
78251
  const frame = {
@@ -78221,7 +78261,7 @@ function createFrame(platform, filename, func, lineno, colno) {
78221
78261
  return frame;
78222
78262
  }
78223
78263
 
78224
- // node_modules/.bun/@posthog+core@1.29.3/node_modules/@posthog/core/dist/error-tracking/parsers/safari.mjs
78264
+ // node_modules/.bun/@posthog+core@1.29.10/node_modules/@posthog/core/dist/error-tracking/parsers/safari.mjs
78225
78265
  var extractSafariExtensionDetails = (func, filename) => {
78226
78266
  const isSafariExtension = func.indexOf("safari-extension") !== -1;
78227
78267
  const isSafariWebExtension = func.indexOf("safari-web-extension") !== -1;
@@ -78234,7 +78274,7 @@ var extractSafariExtensionDetails = (func, filename) => {
78234
78274
  ];
78235
78275
  };
78236
78276
 
78237
- // node_modules/.bun/@posthog+core@1.29.3/node_modules/@posthog/core/dist/error-tracking/parsers/chrome.mjs
78277
+ // node_modules/.bun/@posthog+core@1.29.10/node_modules/@posthog/core/dist/error-tracking/parsers/chrome.mjs
78238
78278
  var chromeRegexNoFnName = /^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i;
78239
78279
  var chromeRegex = /^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i;
78240
78280
  var chromeEvalRegex = /\((\S*)(?::(\d+))(?::(\d+))\)/;
@@ -78260,7 +78300,7 @@ var chromeStackLineParser = (line, platform) => {
78260
78300
  }
78261
78301
  };
78262
78302
 
78263
- // node_modules/.bun/@posthog+core@1.29.3/node_modules/@posthog/core/dist/error-tracking/parsers/gecko.mjs
78303
+ // node_modules/.bun/@posthog+core@1.29.10/node_modules/@posthog/core/dist/error-tracking/parsers/gecko.mjs
78264
78304
  var geckoREgex = /^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i;
78265
78305
  var geckoEvalRegex = /(\S+) line (\d+)(?: > eval line \d+)* > eval/i;
78266
78306
  var geckoStackLineParser = (line, platform) => {
@@ -78283,14 +78323,14 @@ var geckoStackLineParser = (line, platform) => {
78283
78323
  }
78284
78324
  };
78285
78325
 
78286
- // node_modules/.bun/@posthog+core@1.29.3/node_modules/@posthog/core/dist/error-tracking/parsers/winjs.mjs
78326
+ // node_modules/.bun/@posthog+core@1.29.10/node_modules/@posthog/core/dist/error-tracking/parsers/winjs.mjs
78287
78327
  var winjsRegex = /^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i;
78288
78328
  var winjsStackLineParser = (line, platform) => {
78289
78329
  const parts = winjsRegex.exec(line);
78290
78330
  return parts ? createFrame(platform, parts[2], parts[1] || UNKNOWN_FUNCTION, +parts[3], parts[4] ? +parts[4] : undefined) : undefined;
78291
78331
  };
78292
78332
 
78293
- // node_modules/.bun/@posthog+core@1.29.3/node_modules/@posthog/core/dist/error-tracking/parsers/opera.mjs
78333
+ // node_modules/.bun/@posthog+core@1.29.10/node_modules/@posthog/core/dist/error-tracking/parsers/opera.mjs
78294
78334
  var opera10Regex = / line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i;
78295
78335
  var opera10StackLineParser = (line, platform) => {
78296
78336
  const parts = opera10Regex.exec(line);
@@ -78302,7 +78342,7 @@ var opera11StackLineParser = (line, platform) => {
78302
78342
  return parts ? createFrame(platform, parts[5], parts[3] || parts[4] || UNKNOWN_FUNCTION, +parts[1], +parts[2]) : undefined;
78303
78343
  };
78304
78344
 
78305
- // node_modules/.bun/@posthog+core@1.29.3/node_modules/@posthog/core/dist/error-tracking/parsers/node.mjs
78345
+ // node_modules/.bun/@posthog+core@1.29.10/node_modules/@posthog/core/dist/error-tracking/parsers/node.mjs
78306
78346
  var FILENAME_MATCH = /^\s*[-]{4,}$/;
78307
78347
  var FULL_MATCH = /at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/;
78308
78348
  var nodeStackLineParser = (line, platform) => {
@@ -78371,7 +78411,7 @@ function _parseIntOrUndefined(input) {
78371
78411
  return parseInt(input || "", 10) || undefined;
78372
78412
  }
78373
78413
 
78374
- // node_modules/.bun/@posthog+core@1.29.3/node_modules/@posthog/core/dist/error-tracking/parsers/index.mjs
78414
+ // node_modules/.bun/@posthog+core@1.29.10/node_modules/@posthog/core/dist/error-tracking/parsers/index.mjs
78375
78415
  var WEBPACK_ERROR_REGEXP = /\(error: (.*)\)/;
78376
78416
  var STACKTRACE_FRAME_LIMIT = 50;
78377
78417
  function reverseAndStripFrames(stack) {
@@ -78416,7 +78456,7 @@ function createStackParser(platform, ...parsers) {
78416
78456
  return reverseAndStripFrames(frames);
78417
78457
  };
78418
78458
  }
78419
- // node_modules/.bun/@posthog+core@1.29.3/node_modules/@posthog/core/dist/error-tracking/coercers/dom-exception-coercer.mjs
78459
+ // node_modules/.bun/@posthog+core@1.29.10/node_modules/@posthog/core/dist/error-tracking/coercers/dom-exception-coercer.mjs
78420
78460
  class DOMExceptionCoercer {
78421
78461
  match(err) {
78422
78462
  return this.isDOMException(err) || this.isDOMError(err);
@@ -78446,7 +78486,7 @@ class DOMExceptionCoercer {
78446
78486
  return isBuiltin(err, "DOMError");
78447
78487
  }
78448
78488
  }
78449
- // node_modules/.bun/@posthog+core@1.29.3/node_modules/@posthog/core/dist/error-tracking/coercers/error-coercer.mjs
78489
+ // node_modules/.bun/@posthog+core@1.29.10/node_modules/@posthog/core/dist/error-tracking/coercers/error-coercer.mjs
78450
78490
  class ErrorCoercer {
78451
78491
  match(err) {
78452
78492
  return isPlainError(err);
@@ -78473,7 +78513,7 @@ class ErrorCoercer {
78473
78513
  return err.stacktrace || err.stack || undefined;
78474
78514
  }
78475
78515
  }
78476
- // node_modules/.bun/@posthog+core@1.29.3/node_modules/@posthog/core/dist/error-tracking/coercers/error-event-coercer.mjs
78516
+ // node_modules/.bun/@posthog+core@1.29.10/node_modules/@posthog/core/dist/error-tracking/coercers/error-event-coercer.mjs
78477
78517
  class ErrorEventCoercer {
78478
78518
  constructor() {}
78479
78519
  match(err) {
@@ -78491,7 +78531,7 @@ class ErrorEventCoercer {
78491
78531
  return exceptionLike;
78492
78532
  }
78493
78533
  }
78494
- // node_modules/.bun/@posthog+core@1.29.3/node_modules/@posthog/core/dist/error-tracking/coercers/string-coercer.mjs
78534
+ // node_modules/.bun/@posthog+core@1.29.10/node_modules/@posthog/core/dist/error-tracking/coercers/string-coercer.mjs
78495
78535
  var ERROR_TYPES_PATTERN = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;
78496
78536
 
78497
78537
  class StringCoercer {
@@ -78521,7 +78561,7 @@ class StringCoercer {
78521
78561
  ];
78522
78562
  }
78523
78563
  }
78524
- // node_modules/.bun/@posthog+core@1.29.3/node_modules/@posthog/core/dist/error-tracking/types.mjs
78564
+ // node_modules/.bun/@posthog+core@1.29.10/node_modules/@posthog/core/dist/error-tracking/types.mjs
78525
78565
  var severityLevels = [
78526
78566
  "fatal",
78527
78567
  "error",
@@ -78531,7 +78571,7 @@ var severityLevels = [
78531
78571
  "debug"
78532
78572
  ];
78533
78573
 
78534
- // node_modules/.bun/@posthog+core@1.29.3/node_modules/@posthog/core/dist/error-tracking/coercers/utils.mjs
78574
+ // node_modules/.bun/@posthog+core@1.29.10/node_modules/@posthog/core/dist/error-tracking/coercers/utils.mjs
78535
78575
  function extractExceptionKeysForMessage(err, maxLength = 40) {
78536
78576
  const keys = Object.keys(err);
78537
78577
  keys.sort();
@@ -78548,7 +78588,7 @@ function extractExceptionKeysForMessage(err, maxLength = 40) {
78548
78588
  return "";
78549
78589
  }
78550
78590
 
78551
- // node_modules/.bun/@posthog+core@1.29.3/node_modules/@posthog/core/dist/error-tracking/coercers/object-coercer.mjs
78591
+ // node_modules/.bun/@posthog+core@1.29.10/node_modules/@posthog/core/dist/error-tracking/coercers/object-coercer.mjs
78552
78592
  class ObjectCoercer {
78553
78593
  match(candidate) {
78554
78594
  return typeof candidate == "object" && candidate !== null;
@@ -78601,7 +78641,7 @@ class ObjectCoercer {
78601
78641
  }
78602
78642
  }
78603
78643
  }
78604
- // node_modules/.bun/@posthog+core@1.29.3/node_modules/@posthog/core/dist/error-tracking/coercers/event-coercer.mjs
78644
+ // node_modules/.bun/@posthog+core@1.29.10/node_modules/@posthog/core/dist/error-tracking/coercers/event-coercer.mjs
78605
78645
  class EventCoercer {
78606
78646
  match(err) {
78607
78647
  return isEvent(err);
@@ -78616,7 +78656,7 @@ class EventCoercer {
78616
78656
  };
78617
78657
  }
78618
78658
  }
78619
- // node_modules/.bun/@posthog+core@1.29.3/node_modules/@posthog/core/dist/error-tracking/coercers/primitive-coercer.mjs
78659
+ // node_modules/.bun/@posthog+core@1.29.10/node_modules/@posthog/core/dist/error-tracking/coercers/primitive-coercer.mjs
78620
78660
  class PrimitiveCoercer {
78621
78661
  match(candidate) {
78622
78662
  return isPrimitive(candidate);
@@ -78630,7 +78670,7 @@ class PrimitiveCoercer {
78630
78670
  };
78631
78671
  }
78632
78672
  }
78633
- // node_modules/.bun/@posthog+core@1.29.3/node_modules/@posthog/core/dist/error-tracking/coercers/promise-rejection-event.mjs
78673
+ // node_modules/.bun/@posthog+core@1.29.10/node_modules/@posthog/core/dist/error-tracking/coercers/promise-rejection-event.mjs
78634
78674
  class PromiseRejectionEventCoercer {
78635
78675
  match(err) {
78636
78676
  return isBuiltin(err, "PromiseRejectionEvent") || this.isCustomEventWrappingRejection(err);
@@ -78666,7 +78706,7 @@ class PromiseRejectionEventCoercer {
78666
78706
  return error51;
78667
78707
  }
78668
78708
  }
78669
- // node_modules/.bun/@posthog+core@1.29.3/node_modules/@posthog/core/dist/error-tracking/utils.mjs
78709
+ // node_modules/.bun/@posthog+core@1.29.10/node_modules/@posthog/core/dist/error-tracking/utils.mjs
78670
78710
  class ReduceableCache {
78671
78711
  constructor(_maxSize2) {
78672
78712
  this._maxSize = _maxSize2;
@@ -78691,7 +78731,7 @@ class ReduceableCache {
78691
78731
  }
78692
78732
  }
78693
78733
  }
78694
- // node_modules/.bun/@posthog+core@1.29.3/node_modules/@posthog/core/dist/error-tracking/exception-steps.mjs
78734
+ // node_modules/.bun/@posthog+core@1.29.10/node_modules/@posthog/core/dist/error-tracking/exception-steps.mjs
78695
78735
  var EXCEPTION_STEP_INTERNAL_FIELDS = {
78696
78736
  MESSAGE: "$message",
78697
78737
  TIMESTAMP: "$timestamp"
@@ -78848,7 +78888,7 @@ function getUtf8ByteLength(value) {
78848
78888
  byteLength += 1;
78849
78889
  return byteLength;
78850
78890
  }
78851
- // node_modules/.bun/posthog-node@5.34.3/node_modules/posthog-node/dist/extensions/error-tracking/modifiers/context-lines.node.mjs
78891
+ // node_modules/.bun/posthog-node@5.35.3/node_modules/posthog-node/dist/extensions/error-tracking/modifiers/context-lines.node.mjs
78852
78892
  import { createReadStream } from "fs";
78853
78893
  import { createInterface as createInterface2 } from "readline";
78854
78894
  var LRU_FILE_CONTENTS_CACHE = new exports_error_tracking.ReduceableCache(25);
@@ -79066,7 +79106,7 @@ function snipLine(line, colno) {
79066
79106
  return newLine;
79067
79107
  }
79068
79108
 
79069
- // node_modules/.bun/posthog-node@5.34.3/node_modules/posthog-node/dist/extensions/error-tracking/modifiers/relative-path.node.mjs
79109
+ // node_modules/.bun/posthog-node@5.35.3/node_modules/posthog-node/dist/extensions/error-tracking/modifiers/relative-path.node.mjs
79070
79110
  import { isAbsolute as isAbsolute4, relative as relative3, sep as sep2 } from "path";
79071
79111
  function createRelativePathModifier(basePath = process.cwd()) {
79072
79112
  const isWindows = sep2 === "\\";
@@ -79082,7 +79122,7 @@ function createRelativePathModifier(basePath = process.cwd()) {
79082
79122
  };
79083
79123
  }
79084
79124
 
79085
- // node_modules/.bun/posthog-node@5.34.3/node_modules/posthog-node/dist/extensions/error-tracking/autocapture.mjs
79125
+ // node_modules/.bun/posthog-node@5.35.3/node_modules/posthog-node/dist/extensions/error-tracking/autocapture.mjs
79086
79126
  function makeUncaughtExceptionHandler(captureFn, onFatalFn) {
79087
79127
  let calledFatalError = false;
79088
79128
  return Object.assign((error51) => {
@@ -79114,7 +79154,7 @@ function addUnhandledRejectionListener(captureFn) {
79114
79154
  }));
79115
79155
  }
79116
79156
 
79117
- // node_modules/.bun/posthog-node@5.34.3/node_modules/posthog-node/dist/extensions/error-tracking/index.mjs
79157
+ // node_modules/.bun/posthog-node@5.35.3/node_modules/posthog-node/dist/extensions/error-tracking/index.mjs
79118
79158
  var SHUTDOWN_TIMEOUT = 2000;
79119
79159
 
79120
79160
  class ErrorTracking {
@@ -79183,10 +79223,10 @@ class ErrorTracking {
79183
79223
  }
79184
79224
  }
79185
79225
 
79186
- // node_modules/.bun/posthog-node@5.34.3/node_modules/posthog-node/dist/version.mjs
79187
- var version2 = "5.34.3";
79226
+ // node_modules/.bun/posthog-node@5.35.3/node_modules/posthog-node/dist/version.mjs
79227
+ var version2 = "5.35.3";
79188
79228
 
79189
- // node_modules/.bun/posthog-node@5.34.3/node_modules/posthog-node/dist/types.mjs
79229
+ // node_modules/.bun/posthog-node@5.35.3/node_modules/posthog-node/dist/types.mjs
79190
79230
  var FeatureFlagError2 = {
79191
79231
  ERRORS_WHILE_COMPUTING: "errors_while_computing_flags",
79192
79232
  FLAG_MISSING: "flag_missing",
@@ -79194,7 +79234,7 @@ var FeatureFlagError2 = {
79194
79234
  UNKNOWN_ERROR: "unknown_error"
79195
79235
  };
79196
79236
 
79197
- // node_modules/.bun/posthog-node@5.34.3/node_modules/posthog-node/dist/feature-flag-evaluations.mjs
79237
+ // node_modules/.bun/posthog-node@5.35.3/node_modules/posthog-node/dist/feature-flag-evaluations.mjs
79198
79238
  class FeatureFlagEvaluations {
79199
79239
  constructor(init) {
79200
79240
  this._host = init.host;
@@ -79325,7 +79365,7 @@ class FeatureFlagEvaluations {
79325
79365
  }
79326
79366
  }
79327
79367
 
79328
- // node_modules/.bun/posthog-node@5.34.3/node_modules/posthog-node/dist/extensions/feature-flags/crypto.mjs
79368
+ // node_modules/.bun/posthog-node@5.35.3/node_modules/posthog-node/dist/extensions/feature-flags/crypto.mjs
79329
79369
  async function hashSHA1(text) {
79330
79370
  const subtle = globalThis.crypto?.subtle;
79331
79371
  if (!subtle)
@@ -79335,11 +79375,12 @@ async function hashSHA1(text) {
79335
79375
  return hashArray.map((byte) => byte.toString(16).padStart(2, "0")).join("");
79336
79376
  }
79337
79377
 
79338
- // node_modules/.bun/posthog-node@5.34.3/node_modules/posthog-node/dist/extensions/feature-flags/feature-flags.mjs
79378
+ // node_modules/.bun/posthog-node@5.35.3/node_modules/posthog-node/dist/extensions/feature-flags/feature-flags.mjs
79339
79379
  var SIXTY_SECONDS = 60000;
79340
79380
  var LONG_SCALE = 1152921504606847000;
79341
79381
  var NULL_VALUES_ALLOWED_OPERATORS = [
79342
- "is_not"
79382
+ "is_not",
79383
+ "is_set"
79343
79384
  ];
79344
79385
 
79345
79386
  class ClientError extends Error {
@@ -79481,10 +79522,10 @@ class FeatureFlagsPoller {
79481
79522
  }
79482
79523
  async computeFlagValueLocally(flag, evaluationContext) {
79483
79524
  const { distinctId, groups, personProperties, groupProperties } = evaluationContext;
79484
- if (flag.ensure_experience_continuity)
79485
- throw new InconclusiveMatchError("Flag has experience continuity enabled");
79486
79525
  if (!flag.active)
79487
79526
  return false;
79527
+ if (flag.ensure_experience_continuity)
79528
+ throw new InconclusiveMatchError("Flag has experience continuity enabled");
79488
79529
  const flagFilters = flag.filters || {};
79489
79530
  const aggregation_group_type_index = flagFilters.aggregation_group_type_index;
79490
79531
  if (aggregation_group_type_index != null) {
@@ -79639,7 +79680,7 @@ class FeatureFlagsPoller {
79639
79680
  for (const prop of condition.properties) {
79640
79681
  const propertyType = prop.type;
79641
79682
  let matches = false;
79642
- matches = propertyType === "cohort" ? matchCohort(prop, properties, this.cohorts, this.debugMode) : propertyType === "flag" ? await this.evaluateFlagDependency(prop, properties, evaluationContext) : matchProperty(prop, properties, warnFunction);
79683
+ matches = propertyType === "cohort" ? await matchCohort(prop, properties, this.cohorts, this.debugMode, (depProp) => this.evaluateFlagDependency(depProp, properties, evaluationContext)) : propertyType === "flag" ? await this.evaluateFlagDependency(prop, properties, evaluationContext) : matchProperty(prop, properties, warnFunction);
79643
79684
  if (!matches)
79644
79685
  return false;
79645
79686
  }
@@ -79871,9 +79912,12 @@ function matchProperty(property, propertyValues, warnFunction) {
79871
79912
  const operator = property.operator || "exact";
79872
79913
  if (key in propertyValues) {
79873
79914
  if (operator === "is_not_set")
79874
- throw new InconclusiveMatchError("Operator is_not_set is not supported");
79875
- } else
79915
+ return false;
79916
+ } else {
79917
+ if (operator === "is_not_set")
79918
+ return true;
79876
79919
  throw new InconclusiveMatchError(`Property ${key} not found in propertyValues`);
79920
+ }
79877
79921
  const overrideValue = propertyValues[key];
79878
79922
  if (overrideValue == null && !NULL_VALUES_ALLOWED_OPERATORS.includes(operator)) {
79879
79923
  if (warnFunction)
@@ -79915,16 +79959,12 @@ function matchProperty(property, propertyValues, warnFunction) {
79915
79959
  case "gte":
79916
79960
  case "lt":
79917
79961
  case "lte": {
79918
- let parsedValue = typeof value == "number" ? value : null;
79919
- if (typeof value == "string")
79920
- try {
79921
- parsedValue = parseFloat(value);
79922
- } catch (err) {}
79923
- if (parsedValue == null || overrideValue == null)
79924
- return compare(String(overrideValue), String(value), operator);
79925
- if (typeof overrideValue == "string")
79926
- return compare(overrideValue, String(value), operator);
79927
- return compare(overrideValue, parsedValue, operator);
79962
+ const parsedValue = typeof value == "number" ? value : parseFloat(String(value));
79963
+ let parsedOverride;
79964
+ parsedOverride = typeof overrideValue == "number" ? overrideValue : overrideValue != null ? parseFloat(String(overrideValue)) : NaN;
79965
+ if (Number.isFinite(parsedValue) && Number.isFinite(parsedOverride))
79966
+ return compare(parsedOverride, parsedValue, operator);
79967
+ return compare(String(overrideValue), String(value), operator);
79928
79968
  }
79929
79969
  case "is_date_after":
79930
79970
  case "is_date_before": {
@@ -79989,13 +80029,13 @@ function checkCohortExists(cohortId, cohortProperties) {
79989
80029
  if (!(cohortId in cohortProperties))
79990
80030
  throw new RequiresServerEvaluation(`cohort ${cohortId} not found in local cohorts - likely a static cohort that requires server evaluation`);
79991
80031
  }
79992
- function matchCohort(property, propertyValues, cohortProperties, debugMode = false) {
80032
+ async function matchCohort(property, propertyValues, cohortProperties, debugMode = false, flagDependencyEvaluator) {
79993
80033
  const cohortId = String(property.value);
79994
80034
  checkCohortExists(cohortId, cohortProperties);
79995
80035
  const propertyGroup = cohortProperties[cohortId];
79996
- return matchPropertyGroup(propertyGroup, propertyValues, cohortProperties, debugMode);
80036
+ return matchPropertyGroup(propertyGroup, propertyValues, cohortProperties, debugMode, flagDependencyEvaluator);
79997
80037
  }
79998
- function matchPropertyGroup(propertyGroup, propertyValues, cohortProperties, debugMode = false) {
80038
+ async function matchPropertyGroup(propertyGroup, propertyValues, cohortProperties, debugMode = false, flagDependencyEvaluator) {
79999
80039
  if (!propertyGroup)
80000
80040
  return true;
80001
80041
  const propertyGroupType = propertyGroup.type;
@@ -80006,7 +80046,7 @@ function matchPropertyGroup(propertyGroup, propertyValues, cohortProperties, deb
80006
80046
  if ("values" in properties[0]) {
80007
80047
  for (const prop of properties)
80008
80048
  try {
80009
- const matches = matchPropertyGroup(prop, propertyValues, cohortProperties, debugMode);
80049
+ const matches = await matchPropertyGroup(prop, propertyValues, cohortProperties, debugMode, flagDependencyEvaluator);
80010
80050
  if (propertyGroupType === "AND") {
80011
80051
  if (!matches)
80012
80052
  return false;
@@ -80030,11 +80070,11 @@ function matchPropertyGroup(propertyGroup, propertyValues, cohortProperties, deb
80030
80070
  try {
80031
80071
  let matches;
80032
80072
  if (prop.type === "cohort")
80033
- matches = matchCohort(prop, propertyValues, cohortProperties, debugMode);
80073
+ matches = await matchCohort(prop, propertyValues, cohortProperties, debugMode, flagDependencyEvaluator);
80034
80074
  else if (prop.type === "flag") {
80035
- if (debugMode)
80036
- console.warn(`[FEATURE FLAGS] Flag dependency filters are not supported in local evaluation. Skipping condition with dependency on flag '${prop.key || "unknown"}'`);
80037
- continue;
80075
+ if (!flagDependencyEvaluator)
80076
+ throw new InconclusiveMatchError(`Flag dependency '${prop.key || "unknown"}' cannot be evaluated without a flag dependency evaluator`);
80077
+ matches = await flagDependencyEvaluator(prop);
80038
80078
  } else
80039
80079
  matches = matchProperty(prop, propertyValues);
80040
80080
  const negation = prop.negation || false;
@@ -80071,6 +80111,13 @@ function isValidRegex(regex) {
80071
80111
  return false;
80072
80112
  }
80073
80113
  }
80114
+ function parseSemverNumericIdentifier(part, raw) {
80115
+ if (!/^\d+$/.test(part))
80116
+ throw new InconclusiveMatchError(`Invalid semver: ${raw}`);
80117
+ if (part.length > 1 && part[0] === "0")
80118
+ throw new InconclusiveMatchError(`Invalid semver: ${raw}`);
80119
+ return parseInt(part, 10);
80120
+ }
80074
80121
  function parseSemver(value) {
80075
80122
  const text = String(value).trim().replace(/^[vV]/, "");
80076
80123
  const baseVersion = text.split("-")[0].split("+")[0];
@@ -80080,9 +80127,7 @@ function parseSemver(value) {
80080
80127
  const parsePart = (part) => {
80081
80128
  if (part === undefined || part === "")
80082
80129
  return 0;
80083
- if (!/^\d+$/.test(part))
80084
- throw new InconclusiveMatchError(`Invalid semver: ${value}`);
80085
- return parseInt(part, 10);
80130
+ return parseSemverNumericIdentifier(part, value);
80086
80131
  };
80087
80132
  const major = parsePart(parts[0]);
80088
80133
  const minor = parsePart(parts[1]);
@@ -80152,9 +80197,14 @@ function computeWildcardBounds(value) {
80152
80197
  if (!cleanedText)
80153
80198
  throw new InconclusiveMatchError(`Invalid wildcard semver: ${value}`);
80154
80199
  const parts = cleanedText.split(".");
80155
- const major = parseInt(parts[0], 10);
80156
- if (isNaN(major))
80157
- throw new InconclusiveMatchError(`Invalid wildcard semver: ${value}`);
80200
+ const parseWildcardPart = (part) => {
80201
+ try {
80202
+ return parseSemverNumericIdentifier(part, value);
80203
+ } catch {
80204
+ throw new InconclusiveMatchError(`Invalid wildcard semver: ${value}`);
80205
+ }
80206
+ };
80207
+ const major = parseWildcardPart(parts[0]);
80158
80208
  let lower;
80159
80209
  let upper;
80160
80210
  if (parts.length === 1) {
@@ -80169,9 +80219,7 @@ function computeWildcardBounds(value) {
80169
80219
  0
80170
80220
  ];
80171
80221
  } else {
80172
- const minor = parseInt(parts[1], 10);
80173
- if (isNaN(minor))
80174
- throw new InconclusiveMatchError(`Invalid wildcard semver: ${value}`);
80222
+ const minor = parseWildcardPart(parts[1]);
80175
80223
  lower = [
80176
80224
  major,
80177
80225
  minor,
@@ -80229,7 +80277,7 @@ function relativeDateParseForFeatureFlagMatching(value) {
80229
80277
  }
80230
80278
  }
80231
80279
 
80232
- // node_modules/.bun/posthog-node@5.34.3/node_modules/posthog-node/dist/storage-memory.mjs
80280
+ // node_modules/.bun/posthog-node@5.35.3/node_modules/posthog-node/dist/storage-memory.mjs
80233
80281
  class PostHogMemoryStorage {
80234
80282
  getProperty(key) {
80235
80283
  return this._memoryStorage[key];
@@ -80242,7 +80290,7 @@ class PostHogMemoryStorage {
80242
80290
  }
80243
80291
  }
80244
80292
 
80245
- // node_modules/.bun/posthog-node@5.34.3/node_modules/posthog-node/dist/client.mjs
80293
+ // node_modules/.bun/posthog-node@5.35.3/node_modules/posthog-node/dist/client.mjs
80246
80294
  var MINIMUM_POLLING_INTERVAL = 100;
80247
80295
  var THIRTY_SECONDS = 30000;
80248
80296
  var MAX_CACHE_SIZE = 50000;
@@ -80460,7 +80508,7 @@ class PostHogBackendClient extends PostHogCoreStateless {
80460
80508
  $set_once: setOnceProps,
80461
80509
  $anon_distinct_id: $anon_distinct_id ?? undefined
80462
80510
  };
80463
- super.identifyStatelessImmediate(distinctId, eventProperties, {
80511
+ await super.identifyStatelessImmediate(distinctId, eventProperties, {
80464
80512
  disableGeoip
80465
80513
  });
80466
80514
  }
@@ -80871,17 +80919,18 @@ class PostHogBackendClient extends PostHogCoreStateless {
80871
80919
  }
80872
80920
  _captureFlagCalledEventIfNeeded(params) {
80873
80921
  const { distinctId, key, response, groups, disableGeoip, properties } = params;
80874
- const featureFlagReportedKey = `${key}_${response}`;
80875
- if (distinctId in this.distinctIdHasSentFlagCalls && this.distinctIdHasSentFlagCalls[distinctId].includes(featureFlagReportedKey))
80922
+ const groupSuffix = groups && Object.keys(groups).length > 0 ? `_${JSON.stringify(Object.entries(groups).sort(([a], [b2]) => a < b2 ? -1 : a > b2 ? 1 : 0))}` : "";
80923
+ const featureFlagReportedKey = `${key}_${response}${groupSuffix}`;
80924
+ if (distinctId in this.distinctIdHasSentFlagCalls && this.distinctIdHasSentFlagCalls[distinctId].has(featureFlagReportedKey))
80876
80925
  return;
80877
80926
  if (Object.keys(this.distinctIdHasSentFlagCalls).length >= this.maxCacheSize)
80878
80927
  this.distinctIdHasSentFlagCalls = {};
80879
- if (Array.isArray(this.distinctIdHasSentFlagCalls[distinctId]))
80880
- this.distinctIdHasSentFlagCalls[distinctId].push(featureFlagReportedKey);
80928
+ if (this.distinctIdHasSentFlagCalls[distinctId] instanceof Set)
80929
+ this.distinctIdHasSentFlagCalls[distinctId].add(featureFlagReportedKey);
80881
80930
  else
80882
- this.distinctIdHasSentFlagCalls[distinctId] = [
80931
+ this.distinctIdHasSentFlagCalls[distinctId] = new Set([
80883
80932
  featureFlagReportedKey
80884
- ];
80933
+ ]);
80885
80934
  this.capture({
80886
80935
  distinctId,
80887
80936
  event: "$feature_flag_called",
@@ -81210,7 +81259,7 @@ class PostHogBackendClient extends PostHogCoreStateless {
81210
81259
  }
81211
81260
  }
81212
81261
 
81213
- // node_modules/.bun/posthog-node@5.34.3/node_modules/posthog-node/dist/extensions/context/context.mjs
81262
+ // node_modules/.bun/posthog-node@5.35.3/node_modules/posthog-node/dist/extensions/context/context.mjs
81214
81263
  import { AsyncLocalStorage } from "async_hooks";
81215
81264
 
81216
81265
  class PostHogContext {
@@ -81241,7 +81290,7 @@ class PostHogContext {
81241
81290
  }
81242
81291
  }
81243
81292
 
81244
- // node_modules/.bun/posthog-node@5.34.3/node_modules/posthog-node/dist/extensions/sentry-integration.mjs
81293
+ // node_modules/.bun/posthog-node@5.35.3/node_modules/posthog-node/dist/extensions/sentry-integration.mjs
81245
81294
  var NAME = "posthog-node";
81246
81295
  function createEventProcessor(_posthog, { organization, projectId, prefix, severityAllowList = [
81247
81296
  "error"
@@ -81309,7 +81358,7 @@ class PostHogSentryIntegration {
81309
81358
  };
81310
81359
  }
81311
81360
  }
81312
- // node_modules/.bun/posthog-node@5.34.3/node_modules/posthog-node/dist/entrypoints/index.node.mjs
81361
+ // node_modules/.bun/posthog-node@5.35.3/node_modules/posthog-node/dist/entrypoints/index.node.mjs
81313
81362
  ErrorTracking.errorPropertiesBuilder = new exports_error_tracking.ErrorPropertiesBuilder([
81314
81363
  new exports_error_tracking.EventCoercer,
81315
81364
  new exports_error_tracking.ErrorCoercer,
@@ -84839,7 +84888,7 @@ async function boulder(options) {
84839
84888
  // src/cli/cli-program.ts
84840
84889
  var VERSION2 = package_default.version;
84841
84890
  var program2 = new Command;
84842
- program2.name("oh-my-opencode").description("The ultimate OpenCode plugin - multi-model orchestration, LSP tools, and more").version(VERSION2, "-v, --version", "Show version number").enablePositionalOptions();
84891
+ program2.name("oh-my-opencode").description("The ultimate OpenCode plugin - multi-model orchestration, LSP tools, and more").version(VERSION2, "-v, --version", "Show version number").helpOption("-h, --help", "Display help for command").enablePositionalOptions();
84843
84892
  program2.command("install").alias("setup").description("Install and configure oh-my-opencode with interactive setup").option("--no-tui", "Run in non-interactive mode (requires all options)").option("--claude <value>", "Claude subscription: no, yes, max20").option("--openai <value>", "OpenAI/ChatGPT subscription: no, yes (default: no)").option("--gemini <value>", "Gemini integration: no, yes").option("--copilot <value>", "GitHub Copilot subscription: no, yes").option("--opencode-zen <value>", "OpenCode Zen access: no, yes (default: no)").option("--zai-coding-plan <value>", "Z.ai Coding Plan subscription: no, yes (default: no)").option("--kimi-for-coding <value>", "Kimi For Coding subscription: no, yes (default: no)").option("--opencode-go <value>", "OpenCode Go subscription: no, yes (default: no)").option("--vercel-ai-gateway <value>", "Vercel AI Gateway: no, yes (default: no)").option("--skip-auth", "Skip authentication setup hints").addHelpText("after", `
84844
84893
  Examples:
84845
84894
  $ bunx oh-my-opencode install