@agentikos/omega-os 0.19.22 → 0.19.23
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/bootstrap/lib/__pycache__/llm-clis.cpython-313.pyc +0 -0
- package/bootstrap/lib/llm-clis.py +19 -0
- package/bootstrap/lib/steps.sh +7 -0
- package/omega/Agentik_Engine/omega_engine/__init__.py +1 -1
- package/omega/Agentik_Engine/omega_engine/__pycache__/__init__.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/cli.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/cli.py +96 -0
- package/omega/Agentik_Engine/pyproject.toml +1 -1
- package/omega/Agentik_SSOT/VERSION +1 -1
- package/omega/Agentik_SSOT/clis/clis-catalog.yaml +10 -0
- package/omega/Agentik_SSOT/llm-providers/providers-catalog.yaml +169 -0
- package/package.json +1 -1
|
Binary file
|
|
@@ -131,6 +131,25 @@ _CATALOG: list[CliSpec] = [
|
|
|
131
131
|
install_cmd=["npm", "install", "-g", "@continuedev/cli"],
|
|
132
132
|
description="Continue.dev CLI — multi-provider with config.json",
|
|
133
133
|
),
|
|
134
|
+
# v0.19.23 — local LLM runtimes (no API key needed, free local inference).
|
|
135
|
+
CliSpec(
|
|
136
|
+
id="ollama", label="Ollama (local model runtime)",
|
|
137
|
+
bin_name="ollama",
|
|
138
|
+
install_cmd=[], # filled at runtime — curl|sh installer
|
|
139
|
+
description="Local LLM runtime — pull + run Llama/Mistral/Qwen/etc.",
|
|
140
|
+
),
|
|
141
|
+
CliSpec(
|
|
142
|
+
id="lm_studio", label="LM Studio CLI (local)",
|
|
143
|
+
bin_name="lms",
|
|
144
|
+
install_cmd=["npx", "-y", "@lmstudio/cli", "install"],
|
|
145
|
+
description="LM Studio command-line manager (`lms`) for local models",
|
|
146
|
+
),
|
|
147
|
+
CliSpec(
|
|
148
|
+
id="gh_copilot", label="GitHub Copilot Chat (via gh extension)",
|
|
149
|
+
bin_name="gh", # we extend an existing binary
|
|
150
|
+
install_cmd=["gh", "extension", "install", "github/gh-copilot"],
|
|
151
|
+
description="GitHub Copilot Chat as a `gh copilot` subcommand",
|
|
152
|
+
),
|
|
134
153
|
]
|
|
135
154
|
|
|
136
155
|
|
package/bootstrap/lib/steps.sh
CHANGED
|
@@ -545,6 +545,13 @@ for entry in missing:
|
|
|
545
545
|
elif "npm_global" in install and shutil.which("npm"):
|
|
546
546
|
rc, out = _run(["npm", "install", "-g", "--silent", install["npm_global"]])
|
|
547
547
|
attempt = f"npm install -g {install['npm_global']}"
|
|
548
|
+
elif "uv_tool" in install and (shutil.which("uv") or os.path.isfile(
|
|
549
|
+
os.path.expanduser("~/.local/bin/uv"))):
|
|
550
|
+
# uv-managed Python tools — installs to ~/.local/share/uv/tools
|
|
551
|
+
# and links to ~/.local/bin (which step_system_deps put on PATH)
|
|
552
|
+
uv_bin = shutil.which("uv") or os.path.expanduser("~/.local/bin/uv")
|
|
553
|
+
rc, out = _run([uv_bin, "tool", "install", "--quiet", install["uv_tool"]])
|
|
554
|
+
attempt = f"uv tool install {install['uv_tool']}"
|
|
548
555
|
elif "curl" in install:
|
|
549
556
|
# curl|bash installer — last resort
|
|
550
557
|
rc, out = _run(["bash", "-c", f"curl -fsSL {install['curl']} | bash"])
|
|
Binary file
|
|
Binary file
|
|
@@ -2965,6 +2965,86 @@ def _set_active_provider(provider_id: str) -> None:
|
|
|
2965
2965
|
p.write_text(provider_id.strip() + "\n")
|
|
2966
2966
|
|
|
2967
2967
|
|
|
2968
|
+
def cmd_scrape(args: argparse.Namespace) -> int:
|
|
2969
|
+
"""`omega scrape <url> [--out file] [--humanize]` — stealth scraper.
|
|
2970
|
+
|
|
2971
|
+
Thin wrapper over CloakBrowser (https://github.com/CloakHQ/CloakBrowser).
|
|
2972
|
+
Bypasses Cloudflare/Turnstile/FingerprintJS by patching the browser at
|
|
2973
|
+
the C++ level. Default output = markdown to stdout so any LLM CLI can
|
|
2974
|
+
pipe it directly into a context. The wrapper is what makes
|
|
2975
|
+
CloakBrowser usable as a SHELL CLI for Claude/Gemini/Codex/etc.
|
|
2976
|
+
|
|
2977
|
+
Usage:
|
|
2978
|
+
omega scrape https://example.com # → markdown to stdout
|
|
2979
|
+
omega scrape https://example.com --out page.md # → file
|
|
2980
|
+
omega scrape https://example.com --humanize # mouse curves + scroll
|
|
2981
|
+
omega scrape https://example.com --proxy <url> # SOCKS5/HTTP
|
|
2982
|
+
|
|
2983
|
+
Inside any Claude Code chat session: ``omega scrape <url>`` returns the
|
|
2984
|
+
cleaned page content. No MCP server, no Playwright dance.
|
|
2985
|
+
"""
|
|
2986
|
+
import shutil
|
|
2987
|
+
import subprocess
|
|
2988
|
+
if not args.url:
|
|
2989
|
+
print("usage: omega scrape <url> [--out FILE] [--humanize] [--proxy URL]")
|
|
2990
|
+
return 2
|
|
2991
|
+
# CloakBrowser is installed as a uv tool (`cloakbrowser`) but we need
|
|
2992
|
+
# to drive it from Python — the canonical path is `python -m
|
|
2993
|
+
# cloakbrowser` after `pip install cloakbrowser`, OR we invoke the
|
|
2994
|
+
# uv-tool-installed Python directly. Try shutil.which("cloakbrowser")
|
|
2995
|
+
# first; if absent, fall back to running through the installer venv.
|
|
2996
|
+
runner = None
|
|
2997
|
+
if shutil.which("cloakbrowser"):
|
|
2998
|
+
# Direct CLI is mostly for binary management (install/info/update).
|
|
2999
|
+
# For SCRAPING we still need our Python wrapper.
|
|
3000
|
+
pass
|
|
3001
|
+
# Inline Python wrapper — no separate script file, no version drift.
|
|
3002
|
+
py_code = (
|
|
3003
|
+
"import sys, asyncio\n"
|
|
3004
|
+
"try:\n"
|
|
3005
|
+
" from cloakbrowser import launch_async\n"
|
|
3006
|
+
"except ImportError:\n"
|
|
3007
|
+
" sys.stderr.write('cloakbrowser not importable — install with: "
|
|
3008
|
+
"uv tool install cloakbrowser\\n'); sys.exit(2)\n"
|
|
3009
|
+
"URL = sys.argv[1]\n"
|
|
3010
|
+
"HUMANIZE = '--humanize' in sys.argv\n"
|
|
3011
|
+
"PROXY = None\n"
|
|
3012
|
+
"if '--proxy' in sys.argv:\n"
|
|
3013
|
+
" PROXY = sys.argv[sys.argv.index('--proxy') + 1]\n"
|
|
3014
|
+
"async def main():\n"
|
|
3015
|
+
" kwargs = {'humanize': HUMANIZE}\n"
|
|
3016
|
+
" if PROXY:\n"
|
|
3017
|
+
" kwargs['proxy'] = PROXY\n"
|
|
3018
|
+
" browser = await launch_async(**kwargs)\n"
|
|
3019
|
+
" page = await browser.new_page()\n"
|
|
3020
|
+
" await page.goto(URL, wait_until='networkidle')\n"
|
|
3021
|
+
" text = await page.evaluate(\"document.body.innerText\")\n"
|
|
3022
|
+
" await browser.close()\n"
|
|
3023
|
+
" print(text)\n"
|
|
3024
|
+
"asyncio.run(main())\n"
|
|
3025
|
+
)
|
|
3026
|
+
cmd = ["python3", "-c", py_code, args.url]
|
|
3027
|
+
if getattr(args, "humanize", False):
|
|
3028
|
+
cmd.append("--humanize")
|
|
3029
|
+
if getattr(args, "proxy", None):
|
|
3030
|
+
cmd += ["--proxy", args.proxy]
|
|
3031
|
+
try:
|
|
3032
|
+
proc = subprocess.run(cmd, capture_output=True, text=True, timeout=120)
|
|
3033
|
+
except subprocess.TimeoutExpired:
|
|
3034
|
+
print(" cloakbrowser timed out after 120s")
|
|
3035
|
+
return 2
|
|
3036
|
+
out_target = getattr(args, "out", None)
|
|
3037
|
+
if out_target:
|
|
3038
|
+
from pathlib import Path
|
|
3039
|
+
Path(out_target).write_text(proc.stdout)
|
|
3040
|
+
print(f" wrote {len(proc.stdout)} bytes → {out_target}")
|
|
3041
|
+
else:
|
|
3042
|
+
print(proc.stdout)
|
|
3043
|
+
if proc.returncode != 0:
|
|
3044
|
+
print(f" cloakbrowser stderr: {proc.stderr[:400]}", file=__import__('sys').stderr)
|
|
3045
|
+
return proc.returncode
|
|
3046
|
+
|
|
3047
|
+
|
|
2968
3048
|
def cmd_switch(args: argparse.Namespace) -> int:
|
|
2969
3049
|
"""`omega switch <provider>` — hot-swap the LLM provider for new chats.
|
|
2970
3050
|
|
|
@@ -4109,6 +4189,22 @@ def _build_parser() -> argparse.ArgumentParser:
|
|
|
4109
4189
|
p_sw.add_argument("provider", nargs="?", default=None,
|
|
4110
4190
|
help="provider id (omit to print current + available)")
|
|
4111
4191
|
p_sw.set_defaults(fn=cmd_switch)
|
|
4192
|
+
|
|
4193
|
+
# `omega scrape <url>` — official OmegaOS web scraper (CloakBrowser).
|
|
4194
|
+
p_sc = sub.add_parser(
|
|
4195
|
+
"scrape",
|
|
4196
|
+
help="stealth scrape a URL via CloakBrowser — bypasses Cloudflare, "
|
|
4197
|
+
"Turnstile, FingerprintJS. Output: markdown to stdout (or --out FILE)",
|
|
4198
|
+
)
|
|
4199
|
+
p_sc.add_argument("url", nargs="?", default=None,
|
|
4200
|
+
help="URL to fetch")
|
|
4201
|
+
p_sc.add_argument("--out", default=None,
|
|
4202
|
+
help="write result to file instead of stdout")
|
|
4203
|
+
p_sc.add_argument("--humanize", action="store_true",
|
|
4204
|
+
help="mouse curves + keyboard timing + scroll patterns")
|
|
4205
|
+
p_sc.add_argument("--proxy", default=None,
|
|
4206
|
+
help="HTTP or SOCKS5 proxy (with inline creds)")
|
|
4207
|
+
p_sc.set_defaults(fn=cmd_scrape)
|
|
4112
4208
|
p_doc = sub.add_parser("doctor", help="validate the deployment")
|
|
4113
4209
|
p_doc.add_argument("--json", action="store_true",
|
|
4114
4210
|
help="emit a single JSON object instead of pretty text")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
0.19.
|
|
1
|
+
0.19.23
|
|
@@ -64,6 +64,16 @@ native:
|
|
|
64
64
|
secrets: []
|
|
65
65
|
recommended: true
|
|
66
66
|
|
|
67
|
+
- id: cloakbrowser
|
|
68
|
+
name: CloakBrowser (official OmegaOS scraper — bypasses bot detection)
|
|
69
|
+
# PyPI package — installed into a uv tool so it's globally available
|
|
70
|
+
# as `cloakbrowser` + `python -m cloakbrowser`. ~200MB binary
|
|
71
|
+
# downloaded on first run (cached).
|
|
72
|
+
install: { uv_tool: "cloakbrowser" }
|
|
73
|
+
binary: cloakbrowser
|
|
74
|
+
secrets: []
|
|
75
|
+
recommended: true
|
|
76
|
+
|
|
67
77
|
# --- 2. Printing Press CLIs --------------------------------------------
|
|
68
78
|
# Installed via `npx -y @mvanhorn/printing-press-library install <name>`.
|
|
69
79
|
# Each ships with a local SQLite mirror + Claude Code skill.
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
# Omega OS — LLM provider catalog (v0.19.23+)
|
|
2
|
+
#
|
|
3
|
+
# Maps the operator's intent ("I want to talk to GLM") to a concrete
|
|
4
|
+
# (cli + provider_config) pair. Most providers don't ship their own CLI —
|
|
5
|
+
# they're configurable backends inside OpenCode / Continue.dev / Aider.
|
|
6
|
+
#
|
|
7
|
+
# Used by:
|
|
8
|
+
# * `omega switch <provider>` — looks up the cli + writes the
|
|
9
|
+
# provider-active marker.
|
|
10
|
+
# * step_provider_configs — drops templated config files for every
|
|
11
|
+
# supported provider with secret refs from the vault.
|
|
12
|
+
# * `omega account login --provider <id>` — guides the auth flow per
|
|
13
|
+
# provider.
|
|
14
|
+
#
|
|
15
|
+
# Secrets are vault refs, never literal. Templated config files end up at
|
|
16
|
+
# the LLM CLI's expected path on first launch.
|
|
17
|
+
|
|
18
|
+
version: 1
|
|
19
|
+
|
|
20
|
+
providers:
|
|
21
|
+
# -- Anthropic family --
|
|
22
|
+
- id: anthropic
|
|
23
|
+
label: "Anthropic Claude (API key)"
|
|
24
|
+
cli: claude_code
|
|
25
|
+
auth_kind: api_key
|
|
26
|
+
secret_refs: [ANTHROPIC_API_KEY]
|
|
27
|
+
notes: |
|
|
28
|
+
Direct Anthropic API access. Pay-per-token. For OmegaOS's own
|
|
29
|
+
L3-L5 stack we prefer Claude Max OAuth (no cost) — this entry is
|
|
30
|
+
for L2 / Hermès style "use my paid Anthropic budget" scenarios.
|
|
31
|
+
|
|
32
|
+
- id: chatgpt_subscription
|
|
33
|
+
label: "ChatGPT Subscription (OpenAI Codex)"
|
|
34
|
+
cli: codex
|
|
35
|
+
auth_kind: oauth
|
|
36
|
+
secret_refs: []
|
|
37
|
+
notes: |
|
|
38
|
+
Codex CLI uses the same OAuth as your ChatGPT Plus/Team sub —
|
|
39
|
+
no separate API key needed. `codex login` opens the browser.
|
|
40
|
+
|
|
41
|
+
# -- OpenAI family --
|
|
42
|
+
- id: openai
|
|
43
|
+
label: "OpenAI (API key — gpt-4o, gpt-5, o3-pro)"
|
|
44
|
+
cli: codex # codex IS OpenAI's official agentic CLI
|
|
45
|
+
auth_kind: api_key
|
|
46
|
+
secret_refs: [OPENAI_API_KEY]
|
|
47
|
+
notes: |
|
|
48
|
+
Pay-per-token OpenAI API. Use this when you want gpt-5/o3-pro
|
|
49
|
+
without the ChatGPT subscription cap.
|
|
50
|
+
|
|
51
|
+
- id: openai_compatible
|
|
52
|
+
label: "OpenAI API-Compatible endpoint (custom)"
|
|
53
|
+
cli: opencode # OpenCode's `provider: openai_compatible`
|
|
54
|
+
auth_kind: api_key
|
|
55
|
+
secret_refs: [OPENAI_API_BASE, OPENAI_API_KEY]
|
|
56
|
+
notes: |
|
|
57
|
+
For LM Studio, vLLM, llama.cpp's `/v1` server, Together.ai's
|
|
58
|
+
OpenAI-shape endpoint, etc.
|
|
59
|
+
|
|
60
|
+
# -- Google --
|
|
61
|
+
- id: google_ai
|
|
62
|
+
label: "Google AI Studio (Gemini)"
|
|
63
|
+
cli: gemini_cli
|
|
64
|
+
auth_kind: api_key
|
|
65
|
+
secret_refs: [GOOGLE_API_KEY]
|
|
66
|
+
notes: |
|
|
67
|
+
Direct Gemini API via the official `gemini` CLI. Free tier
|
|
68
|
+
generous; paid tier for higher RPM.
|
|
69
|
+
|
|
70
|
+
# -- China --
|
|
71
|
+
- id: glm
|
|
72
|
+
label: "Zhipu GLM-4.5 / GLM-4.6 (via OpenCode)"
|
|
73
|
+
cli: opencode
|
|
74
|
+
auth_kind: api_key
|
|
75
|
+
secret_refs: [GLM_API_KEY]
|
|
76
|
+
notes: |
|
|
77
|
+
Zhipu AI's GLM models — open weights for the smaller variants,
|
|
78
|
+
hosted API for GLM-4.6. OpenCode provider `zhipu`.
|
|
79
|
+
|
|
80
|
+
- id: deepseek
|
|
81
|
+
label: "DeepSeek V3 / R1 (via OpenCode)"
|
|
82
|
+
cli: opencode
|
|
83
|
+
auth_kind: api_key
|
|
84
|
+
secret_refs: [DEEPSEEK_API_KEY]
|
|
85
|
+
notes: |
|
|
86
|
+
DeepSeek's V3 + R1 reasoning. Excellent price/perf. OpenCode
|
|
87
|
+
provider `deepseek`.
|
|
88
|
+
|
|
89
|
+
- id: qwen
|
|
90
|
+
label: "Qwen (Alibaba) — dedicated CLI"
|
|
91
|
+
cli: qwen_code
|
|
92
|
+
auth_kind: api_key
|
|
93
|
+
secret_refs: [DASHSCOPE_API_KEY]
|
|
94
|
+
notes: |
|
|
95
|
+
Qwen3-Coder via Alibaba's DashScope. Standalone `qwen` CLI.
|
|
96
|
+
|
|
97
|
+
# -- Local --
|
|
98
|
+
- id: ollama
|
|
99
|
+
label: "Ollama (local — Llama/Mistral/Qwen/DeepSeek-Coder)"
|
|
100
|
+
cli: ollama
|
|
101
|
+
auth_kind: none
|
|
102
|
+
secret_refs: []
|
|
103
|
+
notes: |
|
|
104
|
+
Local model runtime. Free, private, runs offline. Pull a model
|
|
105
|
+
with `ollama pull llama3.3:70b` then `ollama run`.
|
|
106
|
+
|
|
107
|
+
- id: lm_studio
|
|
108
|
+
label: "LM Studio (local — GUI + CLI)"
|
|
109
|
+
cli: lm_studio
|
|
110
|
+
auth_kind: none
|
|
111
|
+
secret_refs: []
|
|
112
|
+
notes: |
|
|
113
|
+
LM Studio for desktop. Run any GGUF model locally. Exposes an
|
|
114
|
+
OpenAI-compatible `/v1` endpoint OpenCode can consume.
|
|
115
|
+
|
|
116
|
+
# -- Aggregators / Gateways --
|
|
117
|
+
- id: openrouter
|
|
118
|
+
label: "OpenRouter (300+ models, one API key)"
|
|
119
|
+
cli: opencode
|
|
120
|
+
auth_kind: api_key
|
|
121
|
+
secret_refs: [OPENROUTER_API_KEY]
|
|
122
|
+
notes: |
|
|
123
|
+
Route to any of 300+ models with one API key. OpenCode provider
|
|
124
|
+
`openrouter`. Per-call routing in config.
|
|
125
|
+
|
|
126
|
+
- id: vercel_ai_gateway
|
|
127
|
+
label: "Vercel AI Gateway (multi-provider)"
|
|
128
|
+
cli: opencode
|
|
129
|
+
auth_kind: api_key
|
|
130
|
+
secret_refs: [AI_GATEWAY_API_KEY]
|
|
131
|
+
notes: |
|
|
132
|
+
Vercel's hosted gateway proxies your traffic across providers
|
|
133
|
+
with usage caps + observability. OpenCode `provider: ai_gateway`.
|
|
134
|
+
|
|
135
|
+
# -- Hyperscalers --
|
|
136
|
+
- id: amazon_bedrock
|
|
137
|
+
label: "Amazon Bedrock (AWS)"
|
|
138
|
+
cli: opencode
|
|
139
|
+
auth_kind: aws
|
|
140
|
+
secret_refs: [AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION]
|
|
141
|
+
notes: |
|
|
142
|
+
AWS Bedrock — Claude, Llama, Mistral, Cohere, Stability through
|
|
143
|
+
AWS auth. OpenCode `provider: bedrock`.
|
|
144
|
+
|
|
145
|
+
# -- Other --
|
|
146
|
+
- id: mistral
|
|
147
|
+
label: "Mistral AI (API key)"
|
|
148
|
+
cli: opencode
|
|
149
|
+
auth_kind: api_key
|
|
150
|
+
secret_refs: [MISTRAL_API_KEY]
|
|
151
|
+
notes: |
|
|
152
|
+
Mistral-Large, Codestral, Pixtral. OpenCode `provider: mistral`.
|
|
153
|
+
|
|
154
|
+
- id: xai
|
|
155
|
+
label: "xAI Grok (Grok-2, Grok-Beta)"
|
|
156
|
+
cli: opencode
|
|
157
|
+
auth_kind: api_key
|
|
158
|
+
secret_refs: [XAI_API_KEY]
|
|
159
|
+
notes: |
|
|
160
|
+
Grok-2 / Grok-Beta via xAI's API. OpenCode `provider: xai`.
|
|
161
|
+
|
|
162
|
+
- id: github_copilot
|
|
163
|
+
label: "GitHub Copilot Chat (via gh extension)"
|
|
164
|
+
cli: gh_copilot
|
|
165
|
+
auth_kind: oauth
|
|
166
|
+
secret_refs: []
|
|
167
|
+
notes: |
|
|
168
|
+
Talk to Copilot from the terminal — `gh copilot suggest "..."` and
|
|
169
|
+
`gh copilot explain "..."`. Uses your GitHub OAuth.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentikos/omega-os",
|
|
3
|
-
"version": "0.19.
|
|
3
|
+
"version": "0.19.23",
|
|
4
4
|
"description": "Omega OS — installable agentic operating system with verified-completion orchestration. Event-sourced engine, 8-block rack, autonomous agents, MCP.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"omega-os": "bin/omega-os.js"
|