@trac3er/oh-my-god 2.0.0-beta.4 → 2.0.0

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 (253) hide show
  1. package/.claude-plugin/marketplace.json +7 -7
  2. package/.claude-plugin/plugin.json +3 -4
  3. package/.claude-plugin/scripts/install.sh +9 -0
  4. package/.claude-plugin/scripts/uninstall.sh +3 -74
  5. package/.claude-plugin/scripts/update.sh +3 -78
  6. package/OMG-setup.sh +354 -1243
  7. package/README.md +43 -549
  8. package/agents/omg-testing-engineer.md +1 -1
  9. package/bun.lock +23 -0
  10. package/bunfig.toml +3 -0
  11. package/commands/OMG:ai-commit.md +26 -0
  12. package/commands/OMG:arch.md +30 -0
  13. package/commands/OMG:ccg.md +17 -0
  14. package/commands/OMG:compat.md +49 -0
  15. package/commands/OMG:cost.md +21 -0
  16. package/commands/{crazy.md → OMG:crazy.md} +1 -1
  17. package/commands/OMG:create-agent.md +33 -0
  18. package/commands/OMG:deps.md +30 -0
  19. package/commands/{domain-init.md → OMG:domain-init.md} +1 -1
  20. package/commands/OMG:escalate.md +23 -0
  21. package/commands/OMG:health-check.md +21 -0
  22. package/commands/OMG:init.md +26 -0
  23. package/commands/{project-init.md → OMG:project-init.md} +1 -1
  24. package/commands/OMG:session-branch.md +18 -0
  25. package/commands/OMG:session-fork.md +16 -0
  26. package/commands/OMG:session-merge.md +18 -0
  27. package/commands/OMG:setup.md +22 -0
  28. package/commands/OMG:stats.md +24 -0
  29. package/commands/OMG:teams.md +30 -0
  30. package/config/lsp_languages.yaml +0 -8
  31. package/hooks/_budget.ts +1 -0
  32. package/hooks/_common.ts +63 -0
  33. package/hooks/circuit-breaker.ts +101 -0
  34. package/hooks/config-guard.ts +4 -0
  35. package/hooks/firewall.ts +20 -0
  36. package/hooks/policy_engine.ts +156 -0
  37. package/hooks/post-tool-failure.ts +22 -0
  38. package/hooks/post-write.ts +4 -0
  39. package/hooks/pre-tool-inject.ts +4 -0
  40. package/hooks/prompt-enhancer.ts +46 -0
  41. package/hooks/quality-runner.ts +24 -0
  42. package/hooks/secret-guard.ts +4 -0
  43. package/hooks/session-end-capture.ts +19 -0
  44. package/hooks/session-start.ts +19 -0
  45. package/hooks/shadow_manager.ts +81 -0
  46. package/hooks/stop-gate.ts +22 -0
  47. package/hooks/stop_dispatcher.ts +147 -0
  48. package/hooks/test-generator-hook.ts +4 -0
  49. package/hooks/tool-ledger.ts +27 -0
  50. package/hooks/trust_review.ts +175 -0
  51. package/hud/omg-hud.mjs +1 -42
  52. package/lab/pipeline.ts +75 -0
  53. package/lab/policies.ts +68 -0
  54. package/package.json +19 -8
  55. package/plugins/README.md +1 -1
  56. package/plugins/advanced/commands/{deep-plan.md → OMG:deep-plan.md} +3 -3
  57. package/plugins/advanced/commands/{learn.md → OMG:learn.md} +1 -1
  58. package/plugins/advanced/commands/{security-review.md → OMG:security-review.md} +3 -3
  59. package/plugins/advanced/commands/{ship.md → OMG:ship.md} +1 -1
  60. package/plugins/advanced/plugin.json +12 -12
  61. package/plugins/core/plugin.json +15 -15
  62. package/rules/contextual/write-verify.md +2 -2
  63. package/rules/core/00-truth.md +1 -1
  64. package/rules/core/01-surgical.md +1 -1
  65. package/rules/core/02-circuit-breaker.md +2 -2
  66. package/rules/core/03-ensemble.md +3 -3
  67. package/rules/core/04-testing.md +3 -3
  68. package/runtime/common.ts +111 -0
  69. package/runtime/compat.ts +174 -0
  70. package/runtime/dispatcher.ts +25 -0
  71. package/runtime/ecosystem.ts +186 -0
  72. package/runtime/provider_bootstrap.ts +99 -0
  73. package/runtime/provider_smoke.ts +34 -0
  74. package/runtime/release_readiness.ts +186 -0
  75. package/runtime/team_router.ts +144 -0
  76. package/scripts/check-omg-compat-contract-snapshot.ts +20 -0
  77. package/scripts/check-omg-standalone-clean.ts +12 -0
  78. package/scripts/check-runtime-clean.ts +94 -0
  79. package/scripts/omg.ts +352 -0
  80. package/scripts/settings-merge.ts +93 -0
  81. package/scripts/verify-standalone.sh +4 -8
  82. package/settings.json +10 -94
  83. package/templates/profile.yaml +1 -1
  84. package/tools/commit_splitter.ts +23 -0
  85. package/tools/git_inspector.ts +18 -0
  86. package/tools/session_snapshot.ts +47 -0
  87. package/trac3er-oh-my-god-2.0.0.tgz +0 -0
  88. package/tsconfig.json +15 -0
  89. package/.coveragerc +0 -26
  90. package/agents/__init__.py +0 -1
  91. package/agents/model_roles.py +0 -196
  92. package/commands/ai-commit.md +0 -113
  93. package/commands/arch.md +0 -313
  94. package/commands/ccg.md +0 -22
  95. package/commands/compat.md +0 -57
  96. package/commands/cost.md +0 -181
  97. package/commands/create-agent.md +0 -183
  98. package/commands/deps.md +0 -248
  99. package/commands/escalate.md +0 -52
  100. package/commands/health-check.md +0 -45
  101. package/commands/init.md +0 -134
  102. package/commands/session-branch.md +0 -85
  103. package/commands/session-fork.md +0 -53
  104. package/commands/session-merge.md +0 -134
  105. package/commands/setup.md +0 -76
  106. package/commands/stats.md +0 -225
  107. package/commands/teams.md +0 -39
  108. package/hooks/__init__.py +0 -0
  109. package/hooks/_agent_registry.py +0 -411
  110. package/hooks/_analytics.py +0 -291
  111. package/hooks/_budget.py +0 -31
  112. package/hooks/_common.py +0 -476
  113. package/hooks/_compression_optimizer.py +0 -119
  114. package/hooks/_cost_ledger.py +0 -176
  115. package/hooks/_learnings.py +0 -126
  116. package/hooks/_memory.py +0 -103
  117. package/hooks/_protected_context.py +0 -150
  118. package/hooks/_token_counter.py +0 -221
  119. package/hooks/branch_manager.py +0 -236
  120. package/hooks/budget_governor.py +0 -232
  121. package/hooks/circuit-breaker.py +0 -270
  122. package/hooks/compression_feedback.py +0 -254
  123. package/hooks/config-guard.py +0 -163
  124. package/hooks/context_pressure.py +0 -53
  125. package/hooks/credential_store.py +0 -970
  126. package/hooks/fetch-rate-limits.py +0 -212
  127. package/hooks/firewall.py +0 -48
  128. package/hooks/hashline-formatter-bridge.py +0 -224
  129. package/hooks/hashline-injector.py +0 -273
  130. package/hooks/hashline-validator.py +0 -216
  131. package/hooks/idle-detector.py +0 -95
  132. package/hooks/intentgate-keyword-detector.py +0 -188
  133. package/hooks/magic-keyword-router.py +0 -195
  134. package/hooks/policy_engine.py +0 -505
  135. package/hooks/post-tool-failure.py +0 -19
  136. package/hooks/post-write.py +0 -219
  137. package/hooks/post_write.py +0 -46
  138. package/hooks/pre-compact.py +0 -398
  139. package/hooks/pre-tool-inject.py +0 -98
  140. package/hooks/prompt-enhancer.py +0 -672
  141. package/hooks/quality-runner.py +0 -191
  142. package/hooks/query.py +0 -512
  143. package/hooks/secret-guard.py +0 -61
  144. package/hooks/secret_audit.py +0 -144
  145. package/hooks/session-end-capture.py +0 -137
  146. package/hooks/session-start.py +0 -275
  147. package/hooks/setup_wizard.py +0 -259
  148. package/hooks/shadow_manager.py +0 -297
  149. package/hooks/state_migration.py +0 -225
  150. package/hooks/stop-gate.py +0 -7
  151. package/hooks/stop_dispatcher.py +0 -945
  152. package/hooks/test-validator.py +0 -361
  153. package/hooks/test_generator_hook.py +0 -123
  154. package/hooks/todo-state-tracker.py +0 -114
  155. package/hooks/tool-ledger.py +0 -149
  156. package/hooks/trust_review.py +0 -524
  157. package/lab/__init__.py +0 -1
  158. package/lab/pipeline.py +0 -75
  159. package/lab/policies.py +0 -52
  160. package/plugins/dephealth/__init__.py +0 -0
  161. package/plugins/dephealth/cve_scanner.py +0 -188
  162. package/plugins/dephealth/license_checker.py +0 -135
  163. package/plugins/dephealth/manifest_detector.py +0 -423
  164. package/plugins/dephealth/vuln_analyzer.py +0 -169
  165. package/plugins/testgen/__init__.py +0 -0
  166. package/plugins/testgen/codamosa_engine.py +0 -402
  167. package/plugins/testgen/edge_case_synthesizer.py +0 -184
  168. package/plugins/testgen/framework_detector.py +0 -271
  169. package/plugins/testgen/skeleton_generator.py +0 -219
  170. package/plugins/viz/__init__.py +0 -0
  171. package/plugins/viz/ast_parser.py +0 -139
  172. package/plugins/viz/diagram_generator.py +0 -192
  173. package/plugins/viz/graph_builder.py +0 -444
  174. package/plugins/viz/native_parsers.py +0 -259
  175. package/plugins/viz/regex_parser.py +0 -112
  176. package/pyproject.toml +0 -82
  177. package/runtime/__init__.py +0 -32
  178. package/runtime/adapters/__init__.py +0 -13
  179. package/runtime/adapters/claude.py +0 -60
  180. package/runtime/adapters/gpt.py +0 -53
  181. package/runtime/adapters/local.py +0 -53
  182. package/runtime/business_workflow.py +0 -220
  183. package/runtime/cli_provider.py +0 -85
  184. package/runtime/compat.py +0 -1299
  185. package/runtime/custom_agent_loader.py +0 -366
  186. package/runtime/dispatcher.py +0 -47
  187. package/runtime/ecosystem.py +0 -371
  188. package/runtime/legacy_compat.py +0 -7
  189. package/runtime/mcp_config_writers.py +0 -115
  190. package/runtime/mcp_lifecycle.py +0 -153
  191. package/runtime/mcp_memory_server.py +0 -107
  192. package/runtime/memory_parsers/__init__.py +0 -0
  193. package/runtime/memory_parsers/chatgpt_parser.py +0 -257
  194. package/runtime/memory_parsers/claude_import.py +0 -107
  195. package/runtime/memory_parsers/export.py +0 -97
  196. package/runtime/memory_parsers/gemini_import.py +0 -91
  197. package/runtime/memory_parsers/kimi_import.py +0 -91
  198. package/runtime/memory_store.py +0 -215
  199. package/runtime/omc_compat.py +0 -7
  200. package/runtime/providers/__init__.py +0 -0
  201. package/runtime/providers/codex_provider.py +0 -111
  202. package/runtime/providers/gemini_provider.py +0 -127
  203. package/runtime/providers/kimi_provider.py +0 -150
  204. package/runtime/providers/opencode_provider.py +0 -143
  205. package/runtime/subagent_dispatcher.py +0 -362
  206. package/runtime/team_router.py +0 -1167
  207. package/runtime/tmux_session_manager.py +0 -169
  208. package/scripts/bump-version.sh +0 -62
  209. package/scripts/check-omg-compat-contract-snapshot.py +0 -137
  210. package/scripts/check-omg-contract-snapshot.py +0 -12
  211. package/scripts/check-omg-standalone-clean.py +0 -103
  212. package/scripts/legacy_to_omg_migrate.py +0 -29
  213. package/scripts/migrate-legacy.py +0 -464
  214. package/scripts/omc_to_omg_migrate.py +0 -12
  215. package/scripts/omg.py +0 -503
  216. package/scripts/settings-merge.py +0 -224
  217. package/tools/__init__.py +0 -2
  218. package/tools/browser_consent.py +0 -289
  219. package/tools/browser_stealth.py +0 -481
  220. package/tools/browser_tool.py +0 -448
  221. package/tools/changelog_generator.py +0 -347
  222. package/tools/commit_splitter.py +0 -746
  223. package/tools/config_discovery.py +0 -151
  224. package/tools/config_merger.py +0 -449
  225. package/tools/dashboard_generator.py +0 -300
  226. package/tools/git_inspector.py +0 -298
  227. package/tools/lsp_client.py +0 -275
  228. package/tools/lsp_discovery.py +0 -231
  229. package/tools/lsp_operations.py +0 -392
  230. package/tools/pr_generator.py +0 -404
  231. package/tools/python_repl.py +0 -656
  232. package/tools/python_sandbox.py +0 -609
  233. package/tools/search_providers/__init__.py +0 -77
  234. package/tools/search_providers/brave.py +0 -115
  235. package/tools/search_providers/exa.py +0 -116
  236. package/tools/search_providers/jina.py +0 -104
  237. package/tools/search_providers/perplexity.py +0 -139
  238. package/tools/search_providers/synthetic.py +0 -74
  239. package/tools/session_snapshot.py +0 -736
  240. package/tools/ssh_manager.py +0 -912
  241. package/tools/theme_engine.py +0 -294
  242. package/tools/theme_selector.py +0 -137
  243. package/tools/web_search.py +0 -622
  244. /package/commands/{mode.md → OMG:mode.md} +0 -0
  245. /package/commands/{ralph-start.md → OMG:ralph-start.md} +0 -0
  246. /package/commands/{ralph-stop.md → OMG:ralph-stop.md} +0 -0
  247. /package/commands/{theme.md → OMG:theme.md} +0 -0
  248. /package/plugins/advanced/commands/{code-review.md → OMG:code-review.md} +0 -0
  249. /package/plugins/advanced/commands/{handoff.md → OMG:handoff.md} +0 -0
  250. /package/plugins/advanced/commands/{maintainer.md → OMG:maintainer.md} +0 -0
  251. /package/plugins/advanced/commands/{ralph-start.md → OMG:ralph-start.md} +0 -0
  252. /package/plugins/advanced/commands/{ralph-stop.md → OMG:ralph-stop.md} +0 -0
  253. /package/plugins/advanced/commands/{sequential-thinking.md → OMG:sequential-thinking.md} +0 -0
@@ -1,20 +1,20 @@
1
1
  {
2
- "name": "oh-my-god",
2
+ "name": "oh-advanced-layer",
3
3
  "description": "Marketplace metadata for the OMG Claude plugin",
4
4
  "owner": {
5
5
  "name": "trac3er00"
6
6
  },
7
7
  "metadata": {
8
- "description": "OMG - Oh-My-God for Claude Code",
9
- "version": "2.0.0-beta.4",
8
+ "description": "OMG Bun runtime for Claude Code",
9
+ "version": "2.0.0",
10
10
  "homepage": "https://github.com/trac3er00/OMG",
11
11
  "repository": "git@github.com:trac3er00/OMG.git"
12
12
  },
13
13
  "plugins": [
14
14
  {
15
15
  "name": "omg",
16
- "description": "OMG standalone orchestration layer for Claude Code",
17
- "version": "2.0.0-beta.4",
16
+ "description": "OMG Bun runtime orchestration layer for Claude Code",
17
+ "version": "2.0.0",
18
18
  "source": "./",
19
19
  "author": {
20
20
  "name": "trac3er00"
@@ -28,9 +28,9 @@
28
28
  "omg",
29
29
  "codex",
30
30
  "gemini",
31
- "crazy-mode"
31
+ "bun"
32
32
  ]
33
33
  }
34
34
  ],
35
- "version": "2.0.0-beta.4"
35
+ "version": "2.0.0"
36
36
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "omg",
3
- "version": "2.0.0-beta.4",
4
- "description": "OMG standalone orchestration layer for Claude Code - multi-agent coordination with Codex/Gemini",
3
+ "version": "2.0.0",
4
+ "description": "OMG Bun runtime for Claude Code orchestration and multi-agent workflows",
5
5
  "author": {
6
6
  "name": "trac3er00"
7
7
  },
@@ -16,8 +16,7 @@
16
16
  "omg",
17
17
  "codex",
18
18
  "gemini",
19
- "crazy-mode",
20
- "escalation"
19
+ "bun"
21
20
  ],
22
21
  "mcpServers": "./.mcp.json"
23
22
  }
@@ -0,0 +1,9 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+
4
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
5
+ PLUGIN_DIR="$(dirname "$SCRIPT_DIR")"
6
+ OMG_ROOT="$(dirname "$PLUGIN_DIR")"
7
+
8
+ echo "Installing OMG Bun plugin..."
9
+ exec bash "$OMG_ROOT/OMG-setup.sh" install --install-as-plugin --non-interactive
@@ -1,80 +1,9 @@
1
1
  #!/bin/bash
2
- # OMG Plugin Uninstall Script
3
- # This script is called by Claude Code when user uninstalls the plugin
4
-
5
- set -e
6
-
7
- # Colors
8
- RED='\033[0;31m'
9
- GREEN='\033[0;32m'
10
- YELLOW='\033[1;33m'
11
- BLUE='\033[0;34m'
12
- NC='\033[0m'
13
-
14
- info() { echo -e "${BLUE}ℹ${NC} $1"; }
15
- success() { echo -e "${GREEN}✓${NC} $1"; }
16
- warning() { echo -e "${YELLOW}⚠${NC} $1"; }
17
- error() { echo -e "${RED}✗${NC} $1"; }
18
-
19
- echo ""
20
- echo -e "${BLUE}╔═══════════════════════════════════════════════════════════════╗${NC}"
21
- echo -e "${BLUE}║ ║${NC}"
22
- echo -e "${BLUE}║ OMG Plugin Uninstaller v1.0.0 ║${NC}"
23
- echo -e "${BLUE}║ ║${NC}"
24
- echo -e "${BLUE}╚═══════════════════════════════════════════════════════════════╝${NC}"
25
- echo ""
2
+ set -euo pipefail
26
3
 
27
4
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
28
5
  PLUGIN_DIR="$(dirname "$SCRIPT_DIR")"
29
6
  OMG_ROOT="$(dirname "$PLUGIN_DIR")"
30
7
 
31
- # Check if OMG-setup.sh exists
32
- if [ -f "$OMG_ROOT/OMG-setup.sh" ]; then
33
- info "Running uninstall via OMG-setup.sh..."
34
- echo ""
35
- bash "$OMG_ROOT/OMG-setup.sh" uninstall
36
- else
37
- warning "OMG-setup.sh not found, performing manual cleanup..."
38
-
39
- CLAUDE_DIR="${CLAUDE_CONFIG_DIR:-$HOME/.claude}"
40
-
41
- # Remove OMG files manually
42
- rm -f "$CLAUDE_DIR"/commands/OMG:*.md 2>/dev/null || true
43
- rm -f "$CLAUDE_DIR"/agents/omg-*.md 2>/dev/null || true
44
- rm -f "$CLAUDE_DIR"/hooks/.omg-version 2>/dev/null || true
45
- rm -f "$CLAUDE_DIR"/hooks/session-start.py 2>/dev/null || true
46
- rm -f "$CLAUDE_DIR"/hooks/session-end-capture.py 2>/dev/null || true
47
- rm -f "$CLAUDE_DIR"/hooks/prompt-enhancer.py 2>/dev/null || true
48
- rm -f "$CLAUDE_DIR"/hooks/circuit-breaker.py 2>/dev/null || true
49
- rm -f "$CLAUDE_DIR"/hooks/test-validator.py 2>/dev/null || true
50
- rm -f "$CLAUDE_DIR"/hooks/firewall.py 2>/dev/null || true
51
- rm -f "$CLAUDE_DIR"/hooks/secret-guard.py 2>/dev/null || true
52
- rm -f "$CLAUDE_DIR"/hooks/tool-ledger.py 2>/dev/null || true
53
- rm -f "$CLAUDE_DIR"/hooks/post-write.py 2>/dev/null || true
54
- rm -f "$CLAUDE_DIR"/hooks/quality-runner.py 2>/dev/null || true
55
- rm -f "$CLAUDE_DIR"/hooks/stop-gate.py 2>/dev/null || true
56
- rm -f "$CLAUDE_DIR"/hooks/stop_dispatcher.py 2>/dev/null || true
57
- rm -f "$CLAUDE_DIR"/hooks/pre-compact.py 2>/dev/null || true
58
- rm -f "$CLAUDE_DIR"/hooks/pre-tool-inject.py 2>/dev/null || true
59
- rm -f "$CLAUDE_DIR"/hooks/post-tool-failure.py 2>/dev/null || true
60
- rm -f "$CLAUDE_DIR"/hooks/config-guard.py 2>/dev/null || true
61
- rm -f "$CLAUDE_DIR"/hooks/policy_engine.py 2>/dev/null || true
62
- rm -f "$CLAUDE_DIR"/hooks/trust_review.py 2>/dev/null || true
63
- rm -f "$CLAUDE_DIR"/hooks/shadow_manager.py 2>/dev/null || true
64
- rm -rf "$CLAUDE_DIR"/hooks/__pycache__ 2>/dev/null || true
65
- rm -f "$CLAUDE_DIR"/hooks/_common.py 2>/dev/null || true
66
- rm -f "$CLAUDE_DIR"/hooks/_budget.py 2>/dev/null || true
67
- rm -f "$CLAUDE_DIR"/hooks/_memory.py 2>/dev/null || true
68
- rm -f "$CLAUDE_DIR"/hooks/_learnings.py 2>/dev/null || true
69
- rm -f "$CLAUDE_DIR"/hooks/_agent_registry.py 2>/dev/null || true
70
- rm -f "$CLAUDE_DIR"/hooks/state_migration.py 2>/dev/null || true
71
- rm -f "$CLAUDE_DIR"/hooks/fetch-rate-limits.py 2>/dev/null || true
72
- rm -f "$CLAUDE_DIR"/.omg-manifest 2>/dev/null || true
73
- rm -rf "$CLAUDE_DIR"/omg-runtime 2>/dev/null || true
74
- rm -rf "$CLAUDE_DIR"/templates/omg 2>/dev/null || true
75
- rm -f "$CLAUDE_DIR"/rules/0[0-4]-*.md 2>/dev/null || true
76
- fi
77
-
78
- echo ""
79
- success "OMG Plugin uninstalled successfully!"
80
- echo ""
8
+ echo "Uninstalling OMG Bun plugin..."
9
+ exec bash "$OMG_ROOT/OMG-setup.sh" uninstall --non-interactive
@@ -1,84 +1,9 @@
1
1
  #!/bin/bash
2
- # OMG Plugin Update Script
3
- # Simplified version for Claude Code plugin system
2
+ set -euo pipefail
4
3
 
5
- set -e
6
-
7
- echo "Updating OMG plugin..."
8
-
9
- # Find OMG root - prioritize git repo if we're in one
10
4
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
11
5
  PLUGIN_DIR="$(dirname "$SCRIPT_DIR")"
12
6
  OMG_ROOT="$(dirname "$PLUGIN_DIR")"
13
7
 
14
- # Check if running from source git repo
15
- if [ -d "$OMG_ROOT/.git" ]; then
16
- echo "Found git repository at: $OMG_ROOT"
17
- cd "$OMG_ROOT"
18
-
19
- # Check for local changes
20
- STASHED=false
21
- if [ -n "$(git status --porcelain 2>/dev/null)" ]; then
22
- echo "Stashing local changes..."
23
- if git stash push -m "Auto-stash before update"; then
24
- STASHED=true
25
- fi
26
- fi
27
-
28
- # Pull latest
29
- echo "Pulling latest changes..."
30
- git pull origin main
31
-
32
- # Restore stashed changes
33
- if $STASHED; then
34
- echo "Restoring stashed changes..."
35
- git stash pop || echo "Warning: Could not restore stashed changes. Run 'git stash pop' manually."
36
- fi
37
-
38
- NEW_VERSION=$(git describe --tags --abbrev=0 2>/dev/null | sed 's/^v//' || echo "")
39
- if [ -n "$NEW_VERSION" ]; then
40
- python3 - "$NEW_VERSION" <<'PY'
41
- import json
42
- import sys
43
- from pathlib import Path
44
-
45
- new_version = sys.argv[1]
46
- plugin_path = Path('.claude-plugin/plugin.json')
47
- marketplace_path = Path('.claude-plugin/marketplace.json')
48
-
49
- plugin = json.loads(plugin_path.read_text(encoding='utf-8'))
50
- plugin['version'] = new_version
51
- plugin_path.write_text(json.dumps(plugin, indent=2) + '\n', encoding='utf-8')
52
-
53
- marketplace = json.loads(marketplace_path.read_text(encoding='utf-8'))
54
- marketplace['version'] = new_version
55
- if isinstance(marketplace.get('metadata'), dict):
56
- marketplace['metadata']['version'] = new_version
57
- plugins = marketplace.get('plugins')
58
- if isinstance(plugins, list) and plugins:
59
- if isinstance(plugins[0], dict):
60
- plugins[0]['version'] = new_version
61
- marketplace_path.write_text(json.dumps(marketplace, indent=2) + '\n', encoding='utf-8')
62
- PY
63
- echo "Synced manifest versions to $NEW_VERSION"
64
- else
65
- echo "Skipped manifest version sync (no git tag found)"
66
- fi
67
-
68
- echo "Update complete!"
69
- echo ""
70
- echo "Note: Changes are immediately active (symlinked installation)"
71
- else
72
- # Running from cache - run OMG-setup.sh
73
- if [ -f "$OMG_ROOT/OMG-setup.sh" ]; then
74
- echo "Running OMG-setup.sh update..."
75
- bash "$OMG_ROOT/OMG-setup.sh" update
76
- else
77
- echo "ERROR: Could not find OMG-setup.sh"
78
- exit 1
79
- fi
80
- fi
81
-
82
- echo ""
83
- echo "✓ OMG updated successfully"
84
- echo " Restart Claude Code if you see new commands"
8
+ echo "Updating OMG Bun plugin..."
9
+ exec bash "$OMG_ROOT/OMG-setup.sh" update --install-as-plugin --non-interactive