@trac3er/oh-my-god 1.0.3 → 1.0.5

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omg",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "OMG standalone orchestration layer for Claude Code - multi-agent coordination with Codex/Gemini",
5
5
  "author": {
6
6
  "name": "trac3er00"
package/.mcp.json ADDED
@@ -0,0 +1,20 @@
1
+ {
2
+ "mcpServers": {
3
+ "context7": {
4
+ "command": "npx",
5
+ "args": ["-y", "@upstash/context7-mcp"]
6
+ },
7
+ "filesystem": {
8
+ "command": "npx",
9
+ "args": ["-y", "@modelcontextprotocol/server-filesystem", "."]
10
+ },
11
+ "websearch": {
12
+ "command": "npx",
13
+ "args": ["-y", "@zhafron/mcp-web-search"]
14
+ },
15
+ "chrome-devtools": {
16
+ "command": "npx",
17
+ "args": ["-y", "chrome-devtools-mcp@latest"]
18
+ }
19
+ }
20
+ }
package/OMG-setup.sh CHANGED
@@ -212,6 +212,15 @@ parse_args() {
212
212
  if [ "$ACTION" = "reinstall" ]; then
213
213
  FRESH_INSTALL=true
214
214
  fi
215
+
216
+ if [ ! -t 0 ] || [ -n "${npm_lifecycle_event:-}" ] || [ -n "${npm_execpath:-}" ]; then
217
+ NON_INTERACTIVE=true
218
+ fi
219
+
220
+ # Auto-enable plugin mode for npm installs
221
+ if [ -n "${npm_execpath:-}" ] || [ -n "${npm_lifecycle_event:-}" ]; then
222
+ INSTALL_AS_PLUGIN=true
223
+ fi
215
224
  }
216
225
 
217
226
  preflight() {
@@ -656,7 +665,39 @@ install_plugin_bundle() {
656
665
  mkdir -p "$plugin_root/.claude-plugin"
657
666
  mkdir -p "$CLAUDE_DIR/hud"
658
667
  cp "$plugin_manifest_src" "$plugin_manifest_target"
659
- write_plugin_mcp_file "$plugin_mcp_target" >/dev/null
668
+
669
+ # Provide a fallback .mcp.json if not shipped in npm package
670
+ if [ ! -f "$SCRIPT_DIR/.mcp.json" ]; then
671
+ local _fallback_mcp_dir
672
+ _fallback_mcp_dir=$(mktemp -d)
673
+ cat > "$_fallback_mcp_dir/.mcp.json" <<'FALLBACK_MCP'
674
+ {
675
+ "mcpServers": {
676
+ "context7": {
677
+ "command": "npx",
678
+ "args": ["-y", "@upstash/context7-mcp"]
679
+ },
680
+ "filesystem": {
681
+ "command": "npx",
682
+ "args": ["-y", "@modelcontextprotocol/server-filesystem", "."]
683
+ },
684
+ "websearch": {
685
+ "command": "npx",
686
+ "args": ["-y", "@zhafron/mcp-web-search"]
687
+ },
688
+ "chrome-devtools": {
689
+ "command": "npx",
690
+ "args": ["-y", "chrome-devtools-mcp@latest"]
691
+ }
692
+ }
693
+ }
694
+ FALLBACK_MCP
695
+ SCRIPT_DIR="$_fallback_mcp_dir" write_plugin_mcp_file "$plugin_mcp_target" >/dev/null
696
+ rm -rf "$_fallback_mcp_dir"
697
+ else
698
+ write_plugin_mcp_file "$plugin_mcp_target" >/dev/null
699
+ fi
700
+
660
701
  cp "$hud_src" "$hud_target"
661
702
  mkdir -p "$PLUGIN_CACHE_DIR"
662
703
  printf '%s\n' "omg-plugin-bundle-v1" > "$PLUGIN_CACHE_DIR/$PLUGIN_BUNDLE_MARKER_FILE"
@@ -961,15 +1002,27 @@ run_install_like() {
961
1002
  echo " ✓ Settings merged (auto)"
962
1003
  else
963
1004
  echo " Merging settings.json..."
964
- python3 "$MERGE" "$TARGET" "$SOURCE" --dry-run 2>&1 | head -5 | sed 's/^/ /'
965
- echo ""
966
- read -p " Apply merge? [Y/n] " -n 1 -r
1005
+ dry_run_preview="$(python3 "$MERGE" "$TARGET" "$SOURCE" --dry-run 2>&1)"
1006
+ printf '%s\n' "$dry_run_preview" | sed -n '1,5p' | sed 's/^/ /'
967
1007
  echo ""
968
- if [[ ! $REPLY =~ ^[Nn]$ ]]; then
969
- python3 "$MERGE" "$TARGET" "$SOURCE"
970
- echo " ✓ Settings merged"
1008
+ if read -p " Apply merge? [Y/n] " -n 1 -r 2>/dev/null; then
1009
+ echo ""
1010
+ if [[ ! $REPLY =~ ^[Nn]$ ]]; then
1011
+ python3 "$MERGE" "$TARGET" "$SOURCE"
1012
+ echo " ✓ Settings merged"
1013
+ else
1014
+ echo " ⊘ Skipped (manual merge needed)"
1015
+ fi
971
1016
  else
972
- echo " ⊘ Skipped (manual merge needed)"
1017
+ # read failed only auto-apply if we can confirm non-interactive context
1018
+ # non-interactive fallback: check for clear non-interactive indicators
1019
+ if [ ! -t 0 ] || [ -n "${npm_lifecycle_event:-}" ] || [ -n "${npm_execpath:-}" ]; then
1020
+ python3 "$MERGE" "$TARGET" "$SOURCE"
1021
+ echo " ✓ Settings merged (auto — non-interactive fallback)"
1022
+ else
1023
+ echo " ⚠ Could not read input. Skipping merge to be safe."
1024
+ echo " Run manually: ./OMG-setup.sh update --merge-policy=apply"
1025
+ fi
973
1026
  fi
974
1027
  fi
975
1028
  fi
package/README.md CHANGED
@@ -1,13 +1,13 @@
1
- # OMG v1.0.3
1
+ # OMG v1.0.5
2
2
 
3
3
  OMG (Oh My God) is a standalone orchestration layer for Claude Code.
4
4
  It adds structured multi-agent workflows, intelligent model routing (Claude/Codex/Gemini), and durable session state for long-running engineering tasks.
5
5
 
6
- - Version: `v1.0.3`
6
+ - Version: `v1.0.5`
7
7
  - npm: `npm install @trac3er/oh-my-god`
8
8
  - Maintainer: `trac3er00`
9
9
  - Repo: `git@github.com:trac3er00/OMG.git`
10
- - Release: `https://github.com/trac3er00/OMG/releases/tag/v1.0.3`
10
+ - Release: `https://github.com/trac3er00/OMG/releases/tag/v1.0.5`
11
11
 
12
12
  ## What OMG Solves
13
13
 
@@ -226,21 +226,45 @@ omg/
226
226
 
227
227
  ## Versioning and Releases
228
228
 
229
- Current version: `v1.0.3`
229
+ Current version: `v1.0.5`
230
+
231
+ ### v1.0.5 release notes
232
+
233
+ - npm `install` now auto-registers OMG as a Claude Code plugin via `postinstall` hook with npm context detection.
234
+ - Added `.mcp.json` and `hud/` to the npm package (previously excluded by `.npmignore`).
235
+ - `.claude-plugin/scripts/install.sh` now passes `--install-as-plugin --non-interactive` flags.
236
+ - Added `OMG-setup.sh` fallback MCP config heredoc for npm installs missing `.mcp.json`.
237
+ - New `runtime/tmux_session_manager.py` provides persistent tmux sessions for Codex/Gemini invocations with sentinel-based completion detection.
238
+ - `runtime/team_router.py` now routes Codex/Gemini calls through persistent tmux sessions when available, with graceful subprocess fallback.
239
+ - Added 20 new tests across 4 test files covering plugin auto-registration and tmux integration (1580 total tests passing).
240
+
241
+ ### v1.0.4 emergency installation bug fix notes
242
+
243
+ - Fixed npm global install failures in non-TTY environments by auto-enabling non-interactive merge behavior in `OMG-setup.sh`.
244
+ - Removed a fragile dry-run merge preview pipeline that could terminate early under `set -euo pipefail`.
245
+ - Updated npm packaging to include required install-time assets (`settings.json` template and `lab/`).
246
+ - Added regression coverage for non-TTY install merge flow in `tests/e2e/test_setup_script.py`.
247
+
248
+ ### v1.0.3 emergency installation bug fix notes
249
+
250
+ - Fixed npm global install failures in non-TTY environments by auto-enabling non-interactive merge behavior in `OMG-setup.sh`.
251
+ - Removed a fragile dry-run merge preview pipeline that could terminate early under `set -euo pipefail`.
252
+ - Updated npm packaging to include required install-time assets (`settings.json` template and `lab/`).
253
+ - Added regression coverage for non-TTY install merge flow in `tests/e2e/test_setup_script.py`.
230
254
 
231
255
  Releases are automated via GitHub Actions. When a version tag is pushed, the `publish-npm.yml` workflow automatically publishes to npm:
232
256
 
233
257
  ```bash
234
258
  # bump version in package.json, then:
235
- git tag v1.0.3
236
- git push origin v1.0.3
237
- # → GitHub Actions auto-publishes @trac3er/oh-my-god@1.0.3 to npm
259
+ git tag v1.0.5
260
+ git push origin v1.0.5
261
+ # → GitHub Actions auto-publishes @trac3er/oh-my-god@1.0.5 to npm
238
262
  ```
239
263
 
240
264
  Manual release (if needed):
241
265
 
242
266
  ```bash
243
- gh release create v1.0.3 --title "OMG v1.0.3" --notes "Release notes"
267
+ gh release create v1.0.5 --title "OMG v1.0.5" --notes "Release notes"
244
268
  ```
245
269
 
246
270
  ## Compatibility Notes