@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.
- package/.claude-plugin/plugin.json +1 -1
- package/.mcp.json +20 -0
- package/OMG-setup.sh +61 -8
- package/README.md +32 -8
- package/hud/omg-hud.mjs +1212 -0
- package/lab/__init__.py +1 -0
- package/lab/pipeline.py +75 -0
- package/lab/policies.py +52 -0
- package/package.json +2 -2
- package/plugins/advanced/plugin.json +1 -1
- package/plugins/core/plugin.json +1 -1
- package/runtime/team_router.py +81 -0
- package/runtime/tmux_session_manager.py +169 -0
- package/settings.json +257 -0
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
|
-
|
|
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
|
|
965
|
-
|
|
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
|
|
969
|
-
|
|
970
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
236
|
-
git push origin v1.0.
|
|
237
|
-
# → GitHub Actions auto-publishes @trac3er/oh-my-god@1.0.
|
|
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.
|
|
267
|
+
gh release create v1.0.5 --title "OMG v1.0.5" --notes "Release notes"
|
|
244
268
|
```
|
|
245
269
|
|
|
246
270
|
## Compatibility Notes
|