@trac3er/oh-my-god 2.0.0 → 2.0.2

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 (243) hide show
  1. package/.claude-plugin/marketplace.json +8 -8
  2. package/.claude-plugin/plugin.json +5 -4
  3. package/.claude-plugin/scripts/uninstall.sh +74 -3
  4. package/.claude-plugin/scripts/update.sh +78 -3
  5. package/.coveragerc +26 -0
  6. package/.mcp.json +4 -4
  7. package/CHANGELOG.md +14 -0
  8. package/CODE_OF_CONDUCT.md +27 -0
  9. package/CONTRIBUTING.md +62 -0
  10. package/OMG-setup.sh +1201 -355
  11. package/README.md +77 -56
  12. package/SECURITY.md +25 -0
  13. package/agents/__init__.py +1 -0
  14. package/agents/model_roles.py +196 -0
  15. package/agents/omg-architect-mode.md +3 -5
  16. package/agents/omg-backend-engineer.md +3 -5
  17. package/agents/omg-database-engineer.md +3 -5
  18. package/agents/omg-frontend-designer.md +4 -5
  19. package/agents/omg-implement-mode.md +4 -5
  20. package/agents/omg-infra-engineer.md +3 -5
  21. package/agents/omg-research-mode.md +4 -6
  22. package/agents/omg-security-auditor.md +3 -5
  23. package/agents/omg-testing-engineer.md +3 -5
  24. package/build/lib/yaml.py +321 -0
  25. package/commands/OMG:ai-commit.md +101 -14
  26. package/commands/OMG:arch.md +302 -19
  27. package/commands/OMG:ccg.md +12 -7
  28. package/commands/OMG:compat.md +25 -17
  29. package/commands/OMG:cost.md +173 -13
  30. package/commands/OMG:crazy.md +1 -1
  31. package/commands/OMG:create-agent.md +170 -20
  32. package/commands/OMG:deps.md +235 -17
  33. package/commands/OMG:domain-init.md +1 -1
  34. package/commands/OMG:escalate.md +41 -12
  35. package/commands/OMG:health-check.md +37 -13
  36. package/commands/OMG:init.md +122 -14
  37. package/commands/OMG:project-init.md +1 -1
  38. package/commands/OMG:session-branch.md +76 -9
  39. package/commands/OMG:session-fork.md +42 -5
  40. package/commands/OMG:session-merge.md +124 -8
  41. package/commands/OMG:setup.md +69 -12
  42. package/commands/OMG:stats.md +215 -14
  43. package/commands/OMG:teams.md +19 -10
  44. package/config/lsp_languages.yaml +8 -0
  45. package/hooks/__init__.py +0 -0
  46. package/hooks/_agent_registry.py +423 -0
  47. package/hooks/_analytics.py +291 -0
  48. package/hooks/_budget.py +31 -0
  49. package/hooks/_common.py +569 -0
  50. package/hooks/_compression_optimizer.py +119 -0
  51. package/hooks/_cost_ledger.py +176 -0
  52. package/hooks/_learnings.py +126 -0
  53. package/hooks/_memory.py +103 -0
  54. package/hooks/_protected_context.py +150 -0
  55. package/hooks/_token_counter.py +221 -0
  56. package/hooks/branch_manager.py +236 -0
  57. package/hooks/budget_governor.py +232 -0
  58. package/hooks/circuit-breaker.py +270 -0
  59. package/hooks/compression_feedback.py +254 -0
  60. package/hooks/config-guard.py +216 -0
  61. package/hooks/context_pressure.py +53 -0
  62. package/hooks/credential_store.py +1020 -0
  63. package/hooks/fetch-rate-limits.py +212 -0
  64. package/hooks/firewall.py +48 -0
  65. package/hooks/hashline-formatter-bridge.py +224 -0
  66. package/hooks/hashline-injector.py +273 -0
  67. package/hooks/hashline-validator.py +216 -0
  68. package/hooks/idle-detector.py +95 -0
  69. package/hooks/intentgate-keyword-detector.py +188 -0
  70. package/hooks/magic-keyword-router.py +195 -0
  71. package/hooks/policy_engine.py +505 -0
  72. package/hooks/post-tool-failure.py +19 -0
  73. package/hooks/post-write.py +219 -0
  74. package/hooks/post_write.py +46 -0
  75. package/hooks/pre-compact.py +398 -0
  76. package/hooks/pre-tool-inject.py +98 -0
  77. package/hooks/prompt-enhancer.py +672 -0
  78. package/hooks/quality-runner.py +191 -0
  79. package/hooks/query.py +512 -0
  80. package/hooks/secret-guard.py +61 -0
  81. package/hooks/secret_audit.py +144 -0
  82. package/hooks/session-end-capture.py +137 -0
  83. package/hooks/session-start.py +277 -0
  84. package/hooks/setup_wizard.py +582 -0
  85. package/hooks/shadow_manager.py +297 -0
  86. package/hooks/state_migration.py +225 -0
  87. package/hooks/stop-gate.py +7 -0
  88. package/hooks/stop_dispatcher.py +945 -0
  89. package/hooks/test-validator.py +361 -0
  90. package/hooks/test_generator_hook.py +123 -0
  91. package/hooks/todo-state-tracker.py +114 -0
  92. package/hooks/tool-ledger.py +149 -0
  93. package/hooks/trust_review.py +585 -0
  94. package/hud/omg-hud.mjs +31 -1
  95. package/lab/__init__.py +1 -0
  96. package/lab/pipeline.py +75 -0
  97. package/lab/policies.py +52 -0
  98. package/package.json +7 -18
  99. package/plugins/README.md +33 -61
  100. package/plugins/advanced/commands/OMG:deep-plan.md +3 -3
  101. package/plugins/advanced/commands/OMG:learn.md +1 -1
  102. package/plugins/advanced/commands/OMG:security-review.md +3 -3
  103. package/plugins/advanced/commands/OMG:ship.md +1 -1
  104. package/plugins/advanced/plugin.json +1 -1
  105. package/plugins/core/plugin.json +8 -3
  106. package/plugins/dephealth/__init__.py +0 -0
  107. package/plugins/dephealth/cve_scanner.py +188 -0
  108. package/plugins/dephealth/license_checker.py +135 -0
  109. package/plugins/dephealth/manifest_detector.py +423 -0
  110. package/plugins/dephealth/vuln_analyzer.py +169 -0
  111. package/plugins/testgen/__init__.py +0 -0
  112. package/plugins/testgen/codamosa_engine.py +402 -0
  113. package/plugins/testgen/edge_case_synthesizer.py +184 -0
  114. package/plugins/testgen/framework_detector.py +271 -0
  115. package/plugins/testgen/skeleton_generator.py +219 -0
  116. package/plugins/viz/__init__.py +0 -0
  117. package/plugins/viz/ast_parser.py +139 -0
  118. package/plugins/viz/diagram_generator.py +192 -0
  119. package/plugins/viz/graph_builder.py +444 -0
  120. package/plugins/viz/native_parsers.py +259 -0
  121. package/plugins/viz/regex_parser.py +112 -0
  122. package/pyproject.toml +81 -0
  123. package/rules/contextual/write-verify.md +2 -2
  124. package/rules/core/00-truth.md +1 -1
  125. package/rules/core/01-surgical.md +1 -1
  126. package/rules/core/02-circuit-breaker.md +2 -2
  127. package/rules/core/03-ensemble.md +3 -3
  128. package/rules/core/04-testing.md +3 -3
  129. package/runtime/__init__.py +32 -0
  130. package/runtime/adapters/__init__.py +13 -0
  131. package/runtime/adapters/claude.py +60 -0
  132. package/runtime/adapters/gpt.py +53 -0
  133. package/runtime/adapters/local.py +53 -0
  134. package/runtime/adoption.py +212 -0
  135. package/runtime/business_workflow.py +220 -0
  136. package/runtime/cli_provider.py +85 -0
  137. package/runtime/compat.py +1299 -0
  138. package/runtime/custom_agent_loader.py +366 -0
  139. package/runtime/dispatcher.py +47 -0
  140. package/runtime/ecosystem.py +371 -0
  141. package/runtime/legacy_compat.py +7 -0
  142. package/runtime/mcp_config_writers.py +115 -0
  143. package/runtime/mcp_lifecycle.py +153 -0
  144. package/runtime/mcp_memory_server.py +135 -0
  145. package/runtime/memory_parsers/__init__.py +0 -0
  146. package/runtime/memory_parsers/chatgpt_parser.py +257 -0
  147. package/runtime/memory_parsers/claude_import.py +107 -0
  148. package/runtime/memory_parsers/export.py +97 -0
  149. package/runtime/memory_parsers/gemini_import.py +91 -0
  150. package/runtime/memory_parsers/kimi_import.py +91 -0
  151. package/runtime/memory_store.py +215 -0
  152. package/runtime/omc_compat.py +7 -0
  153. package/runtime/providers/__init__.py +0 -0
  154. package/runtime/providers/codex_provider.py +112 -0
  155. package/runtime/providers/gemini_provider.py +128 -0
  156. package/runtime/providers/kimi_provider.py +151 -0
  157. package/runtime/providers/opencode_provider.py +144 -0
  158. package/runtime/subagent_dispatcher.py +362 -0
  159. package/runtime/team_router.py +1167 -0
  160. package/runtime/tmux_session_manager.py +169 -0
  161. package/scripts/check-omg-compat-contract-snapshot.py +137 -0
  162. package/scripts/check-omg-contract-snapshot.py +12 -0
  163. package/scripts/check-omg-public-ready.py +193 -0
  164. package/scripts/check-omg-standalone-clean.py +103 -0
  165. package/scripts/legacy_to_omg_migrate.py +29 -0
  166. package/scripts/migrate-legacy.py +464 -0
  167. package/scripts/omc_to_omg_migrate.py +12 -0
  168. package/scripts/omg.py +492 -0
  169. package/scripts/settings-merge.py +283 -0
  170. package/scripts/verify-standalone.sh +8 -4
  171. package/settings.json +126 -29
  172. package/templates/profile.yaml +1 -1
  173. package/tools/__init__.py +2 -0
  174. package/tools/browser_consent.py +289 -0
  175. package/tools/browser_stealth.py +481 -0
  176. package/tools/browser_tool.py +448 -0
  177. package/tools/changelog_generator.py +347 -0
  178. package/tools/commit_splitter.py +746 -0
  179. package/tools/config_discovery.py +151 -0
  180. package/tools/config_merger.py +449 -0
  181. package/tools/dashboard_generator.py +300 -0
  182. package/tools/git_inspector.py +298 -0
  183. package/tools/lsp_client.py +275 -0
  184. package/tools/lsp_discovery.py +231 -0
  185. package/tools/lsp_operations.py +392 -0
  186. package/tools/pr_generator.py +404 -0
  187. package/tools/python_repl.py +656 -0
  188. package/tools/python_sandbox.py +609 -0
  189. package/tools/search_providers/__init__.py +77 -0
  190. package/tools/search_providers/brave.py +115 -0
  191. package/tools/search_providers/exa.py +116 -0
  192. package/tools/search_providers/jina.py +104 -0
  193. package/tools/search_providers/perplexity.py +139 -0
  194. package/tools/search_providers/synthetic.py +74 -0
  195. package/tools/session_snapshot.py +736 -0
  196. package/tools/ssh_manager.py +912 -0
  197. package/tools/theme_engine.py +294 -0
  198. package/tools/theme_selector.py +137 -0
  199. package/tools/web_search.py +622 -0
  200. package/yaml.py +321 -0
  201. package/.claude-plugin/scripts/install.sh +0 -9
  202. package/bun.lock +0 -23
  203. package/bunfig.toml +0 -3
  204. package/hooks/_budget.ts +0 -1
  205. package/hooks/_common.ts +0 -63
  206. package/hooks/circuit-breaker.ts +0 -101
  207. package/hooks/config-guard.ts +0 -4
  208. package/hooks/firewall.ts +0 -20
  209. package/hooks/policy_engine.ts +0 -156
  210. package/hooks/post-tool-failure.ts +0 -22
  211. package/hooks/post-write.ts +0 -4
  212. package/hooks/pre-tool-inject.ts +0 -4
  213. package/hooks/prompt-enhancer.ts +0 -46
  214. package/hooks/quality-runner.ts +0 -24
  215. package/hooks/secret-guard.ts +0 -4
  216. package/hooks/session-end-capture.ts +0 -19
  217. package/hooks/session-start.ts +0 -19
  218. package/hooks/shadow_manager.ts +0 -81
  219. package/hooks/stop-gate.ts +0 -22
  220. package/hooks/stop_dispatcher.ts +0 -147
  221. package/hooks/test-generator-hook.ts +0 -4
  222. package/hooks/tool-ledger.ts +0 -27
  223. package/hooks/trust_review.ts +0 -175
  224. package/lab/pipeline.ts +0 -75
  225. package/lab/policies.ts +0 -68
  226. package/runtime/common.ts +0 -111
  227. package/runtime/compat.ts +0 -174
  228. package/runtime/dispatcher.ts +0 -25
  229. package/runtime/ecosystem.ts +0 -186
  230. package/runtime/provider_bootstrap.ts +0 -99
  231. package/runtime/provider_smoke.ts +0 -34
  232. package/runtime/release_readiness.ts +0 -186
  233. package/runtime/team_router.ts +0 -144
  234. package/scripts/check-omg-compat-contract-snapshot.ts +0 -20
  235. package/scripts/check-omg-standalone-clean.ts +0 -12
  236. package/scripts/check-runtime-clean.ts +0 -94
  237. package/scripts/omg.ts +0 -352
  238. package/scripts/settings-merge.ts +0 -93
  239. package/tools/commit_splitter.ts +0 -23
  240. package/tools/git_inspector.ts +0 -18
  241. package/tools/session_snapshot.ts +0 -47
  242. package/trac3er-oh-my-god-2.0.0.tgz +0 -0
  243. package/tsconfig.json +0 -15
@@ -1,24 +1,225 @@
1
1
  ---
2
- description: "Display session analytics, tool usage trends, file hotspots, and failure patterns."
3
- allowed-tools: Read, Bash(bun:*), Grep
2
+ description: "Display session analytics, tool usage trends, file heatmaps, and failure patterns."
3
+ allowed-tools: Read, Bash(python*:*), Grep
4
4
  argument-hint: "[weekly|files|failures|dashboard]"
5
5
  ---
6
6
 
7
- # /OMG:stats
7
+ # /OMG:stats — Session Analytics
8
8
 
9
- Use this command to inspect analytics artifacts produced by the Bun hook stack.
9
+ Display session analytics, tool usage trends, file heatmaps, and failure patterns.
10
10
 
11
- ## Primary data locations
11
+ ## Usage
12
12
 
13
- - `.omg/state/ledger/`
14
- - `.omg/evidence/`
15
- - `.omg/state/failure-tracker.json`
13
+ ```
14
+ /OMG:stats
15
+ /OMG:stats weekly
16
+ /OMG:stats files
17
+ /OMG:stats failures
18
+ /OMG:stats dashboard
19
+ ```
16
20
 
17
- ## Typical checks
21
+ ## Sub-Commands
18
22
 
19
- - current run summary and recent evidence packs
20
- - failure hotspots emitted by `hooks/circuit-breaker.ts`
21
- - file-level activity recorded by hook ledgers
22
- - dashboard artifacts under `.omg/state/`
23
+ ### `/OMG:stats` (default)
23
24
 
24
- The command is read-oriented and should not mutate tracked state except when explicitly generating a dashboard artifact under `.omg/state/`.
25
+ Show current session summary: duration, tool calls, success rate, cost, and test runs.
26
+
27
+ ```python
28
+ from hooks.query import get_session_summary
29
+
30
+ summary = get_session_summary(".")
31
+ duration_m = summary["duration"] // 60
32
+ duration_s = summary["duration"] % 60
33
+ print(f"Duration: {duration_m}m {duration_s}s")
34
+ print(f"Tool calls: {summary['tool_calls']}")
35
+ print(f"Success rate: {summary['success_rate']:.1%}")
36
+ print(f"Files modified: {summary['files_modified']}")
37
+ print(f"Tests run: {summary['tests_run']}")
38
+ print(f"Tokens used: {summary['tokens_used']:,}")
39
+ print(f"Cost: ${summary['cost_usd']:.4f}")
40
+ ```
41
+
42
+ ### `/OMG:stats weekly`
43
+
44
+ Show last 7 days trend analysis by aggregating tool stats and escalation effectiveness.
45
+
46
+ ```python
47
+ from hooks.query import get_tool_stats, get_escalation_effectiveness
48
+
49
+ tools = get_tool_stats(".")
50
+ escalations = get_escalation_effectiveness(".")
51
+
52
+ # Per-tool breakdown
53
+ for tool, stats in sorted(tools.items(), key=lambda x: x[1]["count"], reverse=True):
54
+ print(f" {tool}: {stats['count']} calls, {stats['success_rate']:.0%} success, {stats['avg_tokens']:.0f} avg tokens")
55
+
56
+ # Escalation summary
57
+ print(f"\nEscalations: {escalations['escalations']} total, {escalations['resolved']} resolved, {escalations['unresolved']} unresolved")
58
+ ```
59
+
60
+ ### `/OMG:stats files`
61
+
62
+ Show file-level heatmap of the most read, written, and edited files.
63
+
64
+ ```python
65
+ from hooks.query import get_file_heatmap
66
+
67
+ heatmap = get_file_heatmap(".")
68
+
69
+ # Sort by total interactions (reads + writes + edits)
70
+ ranked = sorted(
71
+ heatmap.items(),
72
+ key=lambda x: x[1]["reads"] + x[1]["writes"] + x[1]["edits"],
73
+ reverse=True,
74
+ )
75
+
76
+ print(f"{'File':<50} {'Reads':>6} {'Writes':>7} {'Edits':>6}")
77
+ print("-" * 73)
78
+ for path, counts in ranked[:20]:
79
+ total = counts["reads"] + counts["writes"] + counts["edits"]
80
+ print(f"{path:<50} {counts['reads']:>6} {counts['writes']:>7} {counts['edits']:>6}")
81
+ ```
82
+
83
+ ### `/OMG:stats failures`
84
+
85
+ Show top failure patterns and their resolution status.
86
+
87
+ ```python
88
+ from hooks.query import get_failure_hotspots, get_escalation_effectiveness
89
+
90
+ hotspots = get_failure_hotspots(".")
91
+ escalations = get_escalation_effectiveness(".")
92
+
93
+ for pattern, details in sorted(hotspots.items(), key=lambda x: x[1]["count"], reverse=True):
94
+ status = "ESCALATED" if details["escalated"] else "active"
95
+ print(f" [{status}] {pattern}: {details['count']} failures")
96
+ for err in details["last_3_errors"]:
97
+ print(f" - {err[:100]}")
98
+
99
+ print(f"\nResolution: {escalations['resolved']}/{escalations['escalations']} escalations resolved")
100
+ ```
101
+
102
+ ### `/OMG:stats dashboard`
103
+
104
+ Generate a self-contained HTML dashboard at `.omg/state/dashboard.html`.
105
+
106
+ The dashboard includes:
107
+ - Session summary cards (duration, tool calls, cost, success rate)
108
+ - Tool usage bar chart (via CDN Chart.js)
109
+ - File heatmap table (top 20 files by interaction count)
110
+ - Failure pattern list with escalation status
111
+
112
+ ```python
113
+ import json
114
+ import os
115
+ from hooks.query import (
116
+ get_session_summary,
117
+ get_tool_stats,
118
+ get_file_heatmap,
119
+ get_failure_hotspots,
120
+ )
121
+
122
+ summary = get_session_summary(".")
123
+ tools = get_tool_stats(".")
124
+ heatmap = get_file_heatmap(".")
125
+ failures = get_failure_hotspots(".")
126
+
127
+ dashboard_data = {
128
+ "summary": summary,
129
+ "tools": tools,
130
+ "heatmap": dict(sorted(
131
+ heatmap.items(),
132
+ key=lambda x: x[1]["reads"] + x[1]["writes"] + x[1]["edits"],
133
+ reverse=True,
134
+ )[:20]),
135
+ "failures": failures,
136
+ }
137
+
138
+ # Write self-contained HTML with embedded Chart.js
139
+ output_path = os.path.join(".omg", "state", "dashboard.html")
140
+ os.makedirs(os.path.dirname(output_path), exist_ok=True)
141
+ # ... (HTML template with CDN Chart.js and embedded JSON data)
142
+ print(f"Dashboard written to {output_path}")
143
+ ```
144
+
145
+ ## Feature Flag
146
+
147
+ - **Flag name**: `OMG_SESSION_ANALYTICS_ENABLED`
148
+ - **Default**: `False` (disabled)
149
+ - **Enable**: `export OMG_SESSION_ANALYTICS_ENABLED=1`
150
+
151
+ Or set in `settings.json`:
152
+
153
+ ```json
154
+ {
155
+ "_omg": {
156
+ "features": {
157
+ "SESSION_ANALYTICS": true
158
+ }
159
+ }
160
+ }
161
+ ```
162
+
163
+ ## Output Example
164
+
165
+ ```
166
+ ============================================================
167
+ OMG Session Analytics — Summary
168
+ ============================================================
169
+
170
+ Duration: 23m 47s
171
+ Tool calls: 142
172
+ Success rate: 94.4%
173
+ Files modified: 18
174
+ Tests run: 6
175
+ Tokens used: 287,450
176
+ Cost: $1.1142
177
+
178
+ Top Tools:
179
+ Bash: 58 calls, 95% success, 1,240 avg tokens
180
+ Read: 34 calls, 100% success, 890 avg tokens
181
+ Edit: 22 calls, 91% success, 1,100 avg tokens
182
+ Write: 16 calls, 100% success, 950 avg tokens
183
+ Grep: 12 calls, 100% success, 320 avg tokens
184
+
185
+ Failure Hotspots:
186
+ [ESCALATED] hooks/budget_governor.py: 4 failures
187
+ [active] tests/test_integration.py: 2 failures
188
+
189
+ Escalations: 1 total, 0 resolved, 1 unresolved
190
+
191
+ ============================================================
192
+ ```
193
+
194
+ ## Safety
195
+
196
+ - **Read-only**: All sub-commands only read from existing ledger/tracker files
197
+ - **Feature-gated**: Requires `SESSION_ANALYTICS` flag enabled
198
+ - **No mutations**: Never modifies ledger data, failure tracker, or working memory
199
+ - **Crash-isolated**: All query operations exit 0 on failure (via query.py internals)
200
+ - **Dashboard**: Writes only to `.omg/state/dashboard.html` (inside managed state directory)
201
+
202
+ ## API
203
+
204
+ ```python
205
+ from hooks.query import (
206
+ get_session_summary,
207
+ get_tool_stats,
208
+ get_failure_hotspots,
209
+ get_escalation_effectiveness,
210
+ get_file_heatmap,
211
+ )
212
+
213
+ # Current session summary
214
+ summary = get_session_summary(".")
215
+
216
+ # Per-tool statistics
217
+ tools = get_tool_stats(".")
218
+
219
+ # Failure patterns and escalation status
220
+ failures = get_failure_hotspots(".")
221
+ escalations = get_escalation_effectiveness(".")
222
+
223
+ # File interaction heatmap
224
+ heatmap = get_file_heatmap(".")
225
+ ```
@@ -1,15 +1,14 @@
1
1
  ---
2
- description: OMG internal team routing (standalone Bun runtime).
3
- allowed-tools: Read, Grep, Glob, Bash(git:*), Bash(rg:*), Bash(find:*), Bash(cat:*), Bash(bun:*)
2
+ description: OMG internal team routing (standalone). Standalone team routing.
3
+ allowed-tools: Read, Grep, Glob, Bash(git:*), Bash(rg:*), Bash(find:*), Bash(cat:*), Bash(python3:*)
4
4
  argument-hint: "[codex|gemini|ccg|auto] 'problem statement'"
5
5
  ---
6
6
 
7
- # /OMG:teams
7
+ # /OMG:teams — Standalone Internal Router
8
8
 
9
- Use OMG's internal router through the Bun CLI.
9
+ Use OMG's internal router using internal routing.
10
10
 
11
11
  ## Input contract
12
-
13
12
  - target: `auto|codex|gemini|ccg`
14
13
  - problem: clear issue statement
15
14
  - context: optional constraints
@@ -17,14 +16,24 @@ Use OMG's internal router through the Bun CLI.
17
16
  - expected_outcome: optional acceptance target
18
17
 
19
18
  ## Execution
19
+ Use internal CLI router:
20
+
21
+ ```bash
22
+ OMG_CLI="${OMG_CLI_PATH:-$HOME/.claude/omg-runtime/scripts/omg.py}"
23
+ if [ ! -f "$OMG_CLI" ] && [ -f "scripts/omg.py" ]; then OMG_CLI="scripts/omg.py"; fi
24
+ python3 "$OMG_CLI" teams --target auto --problem "[problem]"
25
+ ```
26
+
27
+ For explicit target:
20
28
 
21
29
  ```bash
22
- OMG_CLI="${OMG_CLI_PATH:-$HOME/.claude/omg-runtime/scripts/omg.ts}"
23
- if [ ! -f "$OMG_CLI" ] && [ -f "scripts/omg.ts" ]; then OMG_CLI="scripts/omg.ts"; fi
24
- bun "$OMG_CLI" teams --target auto --problem "[problem]"
25
- bun "$OMG_CLI" teams --target codex --problem "[problem]"
30
+ python3 "$OMG_CLI" teams --target codex --problem "[problem]"
26
31
  ```
27
32
 
28
33
  ## Output schema
34
+ `TeamDispatchResult { status, findings[], actions[], evidence{} }`
29
35
 
30
- `TeamDispatchResult { status, target, phases[], actions[], evidence{} }`
36
+ ## Full-power sub-agent protocol
37
+ - For non-trivial tasks, launch multiple sub-agents in parallel (`run_in_background=true`) for independent tracks.
38
+ - Collect all task outputs before responding (`background_output` per task id).
39
+ - Run a `sequential-thinking` merge step to produce one dependency-ordered execution plan.
@@ -3,6 +3,14 @@
3
3
  # Each entry specifies server command, discovery paths, and capabilities
4
4
 
5
5
  languages:
6
+ - name: python
7
+ extensions: [.py]
8
+ server_command: [pylsp]
9
+ server_name: pylsp
10
+ discovery_paths: [.venv/bin/pylsp, ~/.local/bin/pylsp, /usr/local/bin/pylsp]
11
+ format_on_write: true
12
+ diagnostics_on_edit: true
13
+
6
14
  - name: typescript
7
15
  extensions: [.ts]
8
16
  server_command: [typescript-language-server, --stdio]
File without changes