OpenJarvis 0.1.1__py3-none-any.whl
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.
- _node_modules/claude_code_runner/package.json +8 -0
- _node_modules/claude_code_runner/src/index.ts +157 -0
- _node_modules/whatsapp_baileys_bridge/package-lock.json +1351 -0
- _node_modules/whatsapp_baileys_bridge/package.json +17 -0
- _node_modules/whatsapp_baileys_bridge/src/bridge.ts +156 -0
- _node_modules/whatsapp_baileys_bridge/tsconfig.json +13 -0
- openjarvis/__init__.py +9 -0
- openjarvis/_rust_bridge.py +180 -0
- openjarvis/a2a/__init__.py +16 -0
- openjarvis/a2a/client.py +115 -0
- openjarvis/a2a/protocol.py +116 -0
- openjarvis/a2a/server.py +132 -0
- openjarvis/a2a/tool.py +81 -0
- openjarvis/agents/__init__.py +91 -0
- openjarvis/agents/_stubs.py +358 -0
- openjarvis/agents/channel_agent.py +148 -0
- openjarvis/agents/claude_code.py +247 -0
- openjarvis/agents/claude_code_runner/package.json +8 -0
- openjarvis/agents/claude_code_runner/src/index.ts +157 -0
- openjarvis/agents/deep_research.py +370 -0
- openjarvis/agents/digest_store.py +153 -0
- openjarvis/agents/errors.py +101 -0
- openjarvis/agents/executor.py +652 -0
- openjarvis/agents/loop_guard.py +243 -0
- openjarvis/agents/manager.py +695 -0
- openjarvis/agents/monitor_operative.py +613 -0
- openjarvis/agents/morning_digest.py +248 -0
- openjarvis/agents/native_openhands.py +429 -0
- openjarvis/agents/native_react.py +238 -0
- openjarvis/agents/openhands.py +86 -0
- openjarvis/agents/operative.py +319 -0
- openjarvis/agents/orchestrator.py +376 -0
- openjarvis/agents/react.py +6 -0
- openjarvis/agents/rlm.py +361 -0
- openjarvis/agents/rlm_repl.py +183 -0
- openjarvis/agents/scheduler.py +290 -0
- openjarvis/agents/simple.py +35 -0
- openjarvis/agents/templates/__init__.py +0 -0
- openjarvis/agents/templates/code_reviewer.toml +48 -0
- openjarvis/agents/templates/inbox_triager.toml +44 -0
- openjarvis/agents/templates/personal_deep_research.toml +12 -0
- openjarvis/agents/templates/research_monitor.toml +45 -0
- openjarvis/bench/__init__.py +29 -0
- openjarvis/bench/_stats.py +35 -0
- openjarvis/bench/_stubs.py +116 -0
- openjarvis/bench/energy.py +162 -0
- openjarvis/bench/latency.py +92 -0
- openjarvis/bench/throughput.py +101 -0
- openjarvis/channels/__init__.py +58 -0
- openjarvis/channels/_stubs.py +78 -0
- openjarvis/channels/bluebubbles.py +134 -0
- openjarvis/channels/discord_channel.py +201 -0
- openjarvis/channels/email_channel.py +243 -0
- openjarvis/channels/feishu.py +165 -0
- openjarvis/channels/gmail.py +305 -0
- openjarvis/channels/google_chat.py +127 -0
- openjarvis/channels/imessage_daemon.py +183 -0
- openjarvis/channels/irc_channel.py +145 -0
- openjarvis/channels/line_channel.py +156 -0
- openjarvis/channels/mastodon_channel.py +157 -0
- openjarvis/channels/matrix_channel.py +141 -0
- openjarvis/channels/mattermost.py +138 -0
- openjarvis/channels/messenger_channel.py +136 -0
- openjarvis/channels/nostr_channel.py +164 -0
- openjarvis/channels/reddit_channel.py +171 -0
- openjarvis/channels/rocketchat_channel.py +169 -0
- openjarvis/channels/sendblue.py +228 -0
- openjarvis/channels/signal_channel.py +133 -0
- openjarvis/channels/slack.py +226 -0
- openjarvis/channels/slack_daemon.py +213 -0
- openjarvis/channels/teams.py +145 -0
- openjarvis/channels/telegram.py +224 -0
- openjarvis/channels/twilio_sms.py +140 -0
- openjarvis/channels/twitch_channel.py +164 -0
- openjarvis/channels/twitter.py +250 -0
- openjarvis/channels/viber_channel.py +146 -0
- openjarvis/channels/webchat.py +114 -0
- openjarvis/channels/webhook.py +143 -0
- openjarvis/channels/whatsapp.py +143 -0
- openjarvis/channels/whatsapp_baileys.py +340 -0
- openjarvis/channels/whatsapp_baileys_bridge/package-lock.json +1351 -0
- openjarvis/channels/whatsapp_baileys_bridge/package.json +17 -0
- openjarvis/channels/whatsapp_baileys_bridge/src/bridge.ts +156 -0
- openjarvis/channels/whatsapp_baileys_bridge/tsconfig.json +13 -0
- openjarvis/channels/xmpp_channel.py +153 -0
- openjarvis/channels/zulip_channel.py +169 -0
- openjarvis/cli/__init__.py +123 -0
- openjarvis/cli/__main__.py +6 -0
- openjarvis/cli/_tool_names.py +40 -0
- openjarvis/cli/_version_check.py +89 -0
- openjarvis/cli/add_cmd.py +138 -0
- openjarvis/cli/agent_cmd.py +750 -0
- openjarvis/cli/ask.py +591 -0
- openjarvis/cli/auth_cmd.py +71 -0
- openjarvis/cli/bench_cmd.py +487 -0
- openjarvis/cli/channel_cmd.py +266 -0
- openjarvis/cli/channels_cmd.py +153 -0
- openjarvis/cli/chat_cmd.py +216 -0
- openjarvis/cli/compose_cmd.py +483 -0
- openjarvis/cli/config_cmd.py +375 -0
- openjarvis/cli/connect_cmd.py +227 -0
- openjarvis/cli/daemon_cmd.py +175 -0
- openjarvis/cli/dashboard.py +167 -0
- openjarvis/cli/deep_research_setup_cmd.py +439 -0
- openjarvis/cli/digest_cmd.py +264 -0
- openjarvis/cli/doctor_cmd.py +353 -0
- openjarvis/cli/eval_cmd.py +578 -0
- openjarvis/cli/feedback_cmd.py +198 -0
- openjarvis/cli/gateway_cmd.py +107 -0
- openjarvis/cli/hints.py +45 -0
- openjarvis/cli/host_cmd.py +392 -0
- openjarvis/cli/init_cmd.py +535 -0
- openjarvis/cli/log_config.py +86 -0
- openjarvis/cli/memory_cmd.py +206 -0
- openjarvis/cli/model.py +265 -0
- openjarvis/cli/operators_cmd.py +286 -0
- openjarvis/cli/optimize_cmd.py +513 -0
- openjarvis/cli/quickstart_cmd.py +160 -0
- openjarvis/cli/registry_cmd.py +146 -0
- openjarvis/cli/scan_cmd.py +522 -0
- openjarvis/cli/scheduler_cmd.py +259 -0
- openjarvis/cli/serve.py +506 -0
- openjarvis/cli/skill_cmd.py +525 -0
- openjarvis/cli/telemetry_cmd.py +232 -0
- openjarvis/cli/tool_cmd.py +107 -0
- openjarvis/cli/tunnel_cmd.py +71 -0
- openjarvis/cli/vault_cmd.py +140 -0
- openjarvis/cli/workflow_cmd.py +70 -0
- openjarvis/connectors/__init__.py +129 -0
- openjarvis/connectors/_stubs.py +101 -0
- openjarvis/connectors/apple_health.py +419 -0
- openjarvis/connectors/apple_music.py +251 -0
- openjarvis/connectors/apple_notes.py +291 -0
- openjarvis/connectors/attachment_store.py +180 -0
- openjarvis/connectors/chunker.py +284 -0
- openjarvis/connectors/dropbox.py +375 -0
- openjarvis/connectors/embedding_store.py +179 -0
- openjarvis/connectors/gcalendar.py +474 -0
- openjarvis/connectors/gcontacts.py +368 -0
- openjarvis/connectors/gdrive.py +383 -0
- openjarvis/connectors/github_notifications.py +111 -0
- openjarvis/connectors/gmail.py +402 -0
- openjarvis/connectors/gmail_imap.py +247 -0
- openjarvis/connectors/google_tasks.py +116 -0
- openjarvis/connectors/granola.py +404 -0
- openjarvis/connectors/hackernews.py +91 -0
- openjarvis/connectors/imessage.py +286 -0
- openjarvis/connectors/news_rss.py +162 -0
- openjarvis/connectors/notion.py +439 -0
- openjarvis/connectors/oauth.py +662 -0
- openjarvis/connectors/obsidian.py +235 -0
- openjarvis/connectors/oura.py +90 -0
- openjarvis/connectors/outlook.py +58 -0
- openjarvis/connectors/pipeline.py +204 -0
- openjarvis/connectors/retriever.py +301 -0
- openjarvis/connectors/scheduler.py +149 -0
- openjarvis/connectors/slack_connector.py +479 -0
- openjarvis/connectors/spotify.py +157 -0
- openjarvis/connectors/store.py +376 -0
- openjarvis/connectors/strava.py +173 -0
- openjarvis/connectors/sync_engine.py +192 -0
- openjarvis/connectors/weather.py +131 -0
- openjarvis/connectors/whatsapp.py +298 -0
- openjarvis/core/__init__.py +37 -0
- openjarvis/core/config.py +1930 -0
- openjarvis/core/credentials.py +129 -0
- openjarvis/core/events.py +198 -0
- openjarvis/core/registry.py +172 -0
- openjarvis/core/types.py +277 -0
- openjarvis/daemon/__init__.py +1 -0
- openjarvis/daemon/gateway.py +39 -0
- openjarvis/daemon/service.py +57 -0
- openjarvis/daemon/session_expiry.py +33 -0
- openjarvis/engine/__init__.py +31 -0
- openjarvis/engine/_base.py +65 -0
- openjarvis/engine/_discovery.py +124 -0
- openjarvis/engine/_openai_compat.py +245 -0
- openjarvis/engine/_stubs.py +123 -0
- openjarvis/engine/apple_fm_shim.py +164 -0
- openjarvis/engine/cloud.py +1359 -0
- openjarvis/engine/gemma_cpp.py +179 -0
- openjarvis/engine/litellm.py +146 -0
- openjarvis/engine/multi.py +127 -0
- openjarvis/engine/nexa_shim.py +164 -0
- openjarvis/engine/ollama.py +257 -0
- openjarvis/engine/openai_compat_engines.py +28 -0
- openjarvis/evals/__init__.py +1 -0
- openjarvis/evals/__main__.py +6 -0
- openjarvis/evals/backends/__init__.py +1 -0
- openjarvis/evals/backends/jarvis_agent.py +160 -0
- openjarvis/evals/backends/jarvis_direct.py +102 -0
- openjarvis/evals/backends/tb_agent.py +32 -0
- openjarvis/evals/backends/terminalbench_native.py +124 -0
- openjarvis/evals/cli.py +1442 -0
- openjarvis/evals/configs/deepplanning-monitor-operative.toml +42 -0
- openjarvis/evals/configs/full-suite.toml +63 -0
- openjarvis/evals/configs/gaia-gemini-31-pro.toml +29 -0
- openjarvis/evals/configs/gaia-gemma4-26b.toml +31 -0
- openjarvis/evals/configs/gaia-gpt54.toml +29 -0
- openjarvis/evals/configs/gaia-nemotron-nano.toml +30 -0
- openjarvis/evals/configs/gaia-nemotron-super.toml +30 -0
- openjarvis/evals/configs/gaia-nemotron3-super.toml +31 -0
- openjarvis/evals/configs/gaia-qwen-122b.toml +30 -0
- openjarvis/evals/configs/gaia-qwen-27b.toml +30 -0
- openjarvis/evals/configs/gaia-qwen-2b.toml +31 -0
- openjarvis/evals/configs/gaia-qwen-35b.toml +30 -0
- openjarvis/evals/configs/gaia-qwen-9b.toml +31 -0
- openjarvis/evals/configs/gaia-qwen122b.toml +30 -0
- openjarvis/evals/configs/gaia-qwen35b.toml +30 -0
- openjarvis/evals/configs/gaia-rerun-claude-opus.toml +29 -0
- openjarvis/evals/configs/gaia-rerun-claude-sonnet.toml +29 -0
- openjarvis/evals/configs/gaia-rerun-glm47flash.toml +30 -0
- openjarvis/evals/configs/gaia-rerun-gpt5mini.toml +29 -0
- openjarvis/evals/configs/gaia-rerun-minimax-m25.toml +30 -0
- openjarvis/evals/configs/gaia-rerun-qwen122b.toml +32 -0
- openjarvis/evals/configs/gaia-rerun-qwen35b.toml +30 -0
- openjarvis/evals/configs/gaia-rerun-qwen397b.toml +30 -0
- openjarvis/evals/configs/gaia-trinity-large.toml +34 -0
- openjarvis/evals/configs/glm-4.7-flash-openhands-remaining.toml +60 -0
- openjarvis/evals/configs/glm-4.7-flash-openhands.toml +69 -0
- openjarvis/evals/configs/glm-4.7-fp8-openhands-gaia.toml +43 -0
- openjarvis/evals/configs/glm5-fp8-monitor-operative.toml +74 -0
- openjarvis/evals/configs/kimi-k2.5-monitor-operative.toml +74 -0
- openjarvis/evals/configs/livecodebench-claude-opus.toml +30 -0
- openjarvis/evals/configs/livecodebench-gemma4-26b.toml +30 -0
- openjarvis/evals/configs/livecodebench-gemma4-e4b.toml +30 -0
- openjarvis/evals/configs/livecodebench-kimi-k25.toml +39 -0
- openjarvis/evals/configs/livecodebench-minimax-m25.toml +36 -0
- openjarvis/evals/configs/livecodebench-nemotron-nano.toml +30 -0
- openjarvis/evals/configs/livecodebench-nemotron-super.toml +28 -0
- openjarvis/evals/configs/livecodebench-qwen-122b.toml +28 -0
- openjarvis/evals/configs/livecodebench-qwen-27b.toml +30 -0
- openjarvis/evals/configs/livecodebench-qwen-2b.toml +30 -0
- openjarvis/evals/configs/livecodebench-qwen-35b.toml +28 -0
- openjarvis/evals/configs/liveresearch-claude-opus.toml +29 -0
- openjarvis/evals/configs/liveresearch-gemma4-26b.toml +31 -0
- openjarvis/evals/configs/liveresearch-nemotron-nano.toml +30 -0
- openjarvis/evals/configs/liveresearch-nemotron-super.toml +30 -0
- openjarvis/evals/configs/liveresearch-qwen-122b.toml +30 -0
- openjarvis/evals/configs/liveresearch-qwen-27b.toml +30 -0
- openjarvis/evals/configs/liveresearch-qwen-2b.toml +31 -0
- openjarvis/evals/configs/liveresearch-qwen-35b.toml +30 -0
- openjarvis/evals/configs/liveresearch-qwen-9b.toml +31 -0
- openjarvis/evals/configs/liveresearch-trinity-large.toml +34 -0
- openjarvis/evals/configs/long-horizon-claude-opus.toml +51 -0
- openjarvis/evals/configs/long-horizon-claude-sonnet.toml +51 -0
- openjarvis/evals/configs/long-horizon-glm47flash.toml +58 -0
- openjarvis/evals/configs/long-horizon-gpt5mini.toml +51 -0
- openjarvis/evals/configs/long-horizon-kimik25.toml +60 -0
- openjarvis/evals/configs/long-horizon-minimax-m25.toml +58 -0
- openjarvis/evals/configs/long-horizon-qwen122b.toml +58 -0
- openjarvis/evals/configs/long-horizon-qwen35b.toml +58 -0
- openjarvis/evals/configs/long-horizon-qwen397b.toml +58 -0
- openjarvis/evals/configs/minimal.toml +7 -0
- openjarvis/evals/configs/paperarena-monitor-operative.toml +42 -0
- openjarvis/evals/configs/pinchbench-claude-opus.toml +34 -0
- openjarvis/evals/configs/pinchbench-gemini-31-pro.toml +34 -0
- openjarvis/evals/configs/pinchbench-gemma4-26b.toml +35 -0
- openjarvis/evals/configs/pinchbench-gemma4-e4b.toml +35 -0
- openjarvis/evals/configs/pinchbench-gpt54.toml +34 -0
- openjarvis/evals/configs/pinchbench-kimi-k25.toml +44 -0
- openjarvis/evals/configs/pinchbench-minimax-m25.toml +41 -0
- openjarvis/evals/configs/pinchbench-nemotron-nano.toml +35 -0
- openjarvis/evals/configs/pinchbench-nemotron-super.toml +34 -0
- openjarvis/evals/configs/pinchbench-nemotron3-super.toml +35 -0
- openjarvis/evals/configs/pinchbench-qwen-122b.toml +34 -0
- openjarvis/evals/configs/pinchbench-qwen-27b.toml +35 -0
- openjarvis/evals/configs/pinchbench-qwen-2b.toml +35 -0
- openjarvis/evals/configs/pinchbench-qwen-35b.toml +34 -0
- openjarvis/evals/configs/pinchbench-qwen122b.toml +35 -0
- openjarvis/evals/configs/pinchbench-qwen35b.toml +35 -0
- openjarvis/evals/configs/pinchbench-qwen397b.toml +35 -0
- openjarvis/evals/configs/pinchbench.toml +26 -0
- openjarvis/evals/configs/qwen3.5-122b-kg-agentic.toml +42 -0
- openjarvis/evals/configs/qwen3.5-122b-kg-hightoken.toml +38 -0
- openjarvis/evals/configs/qwen3.5-122b-reasoning-suite.toml +51 -0
- openjarvis/evals/configs/qwen3.5-35b-kg.toml +38 -0
- openjarvis/evals/configs/qwen3.5-35b-monitor-operative.toml +57 -0
- openjarvis/evals/configs/qwen3.5-397b-monitor-operative.toml +42 -0
- openjarvis/evals/configs/single-run.toml +31 -0
- openjarvis/evals/configs/smoke_amd.toml +106 -0
- openjarvis/evals/configs/smoke_apple.toml +79 -0
- openjarvis/evals/configs/smoke_nvidia.toml +112 -0
- openjarvis/evals/configs/taubench-claude-opus.toml +29 -0
- openjarvis/evals/configs/taubench-gemini-31-pro.toml +29 -0
- openjarvis/evals/configs/taubench-gemma4-26b.toml +31 -0
- openjarvis/evals/configs/taubench-gemma4-e4b.toml +31 -0
- openjarvis/evals/configs/taubench-gpt54.toml +29 -0
- openjarvis/evals/configs/taubench-kimi-k25.toml +40 -0
- openjarvis/evals/configs/taubench-minimax-m25.toml +37 -0
- openjarvis/evals/configs/taubench-nemotron-nano.toml +31 -0
- openjarvis/evals/configs/taubench-nemotron-super.toml +29 -0
- openjarvis/evals/configs/taubench-nemotron3-super.toml +29 -0
- openjarvis/evals/configs/taubench-qwen-122b.toml +29 -0
- openjarvis/evals/configs/taubench-qwen-27b.toml +31 -0
- openjarvis/evals/configs/taubench-qwen-2b.toml +31 -0
- openjarvis/evals/configs/taubench-qwen-35b.toml +29 -0
- openjarvis/evals/configs/taubench-qwen122b.toml +28 -0
- openjarvis/evals/configs/taubench-qwen35b.toml +28 -0
- openjarvis/evals/configs/taubench-qwen397b.toml +30 -0
- openjarvis/evals/configs/taubench-telecom-claude.toml +27 -0
- openjarvis/evals/configs/taubench-telecom-gemma4-26b.toml +29 -0
- openjarvis/evals/configs/taubench-telecom-gpt54.toml +27 -0
- openjarvis/evals/configs/taubench-telecom-nemotron-nano.toml +28 -0
- openjarvis/evals/configs/taubench-telecom-nemotron-super.toml +29 -0
- openjarvis/evals/configs/taubench-telecom-nemotron.toml +28 -0
- openjarvis/evals/configs/taubench-telecom-qwen-122b.toml +29 -0
- openjarvis/evals/configs/taubench-telecom-qwen-27b.toml +28 -0
- openjarvis/evals/configs/taubench-telecom-qwen-35b.toml +29 -0
- openjarvis/evals/configs/taubench-telecom-qwen27b.toml +29 -0
- openjarvis/evals/configs/taubench-telecom-qwen2b.toml +29 -0
- openjarvis/evals/configs/taubench-telecom-qwen9b.toml +29 -0
- openjarvis/evals/configs/taubench-telecom-trinity-large.toml +28 -0
- openjarvis/evals/configs/terminalbench-native-qwen122b.toml +30 -0
- openjarvis/evals/configs/terminalbench-qwen122b.toml +30 -0
- openjarvis/evals/configs/toolcall15-claude-opus.toml +28 -0
- openjarvis/evals/configs/toolcall15-gemma4-26b.toml +29 -0
- openjarvis/evals/configs/toolcall15-gemma4-e4b.toml +29 -0
- openjarvis/evals/configs/toolcall15-kimi-k25.toml +38 -0
- openjarvis/evals/configs/toolcall15-minimax-m25.toml +35 -0
- openjarvis/evals/configs/toolcall15-nemotron-nano.toml +29 -0
- openjarvis/evals/configs/toolcall15-nemotron-super.toml +28 -0
- openjarvis/evals/configs/toolcall15-qwen-122b.toml +28 -0
- openjarvis/evals/configs/toolcall15-qwen-27b.toml +29 -0
- openjarvis/evals/configs/toolcall15-qwen-2b.toml +29 -0
- openjarvis/evals/configs/toolcall15-qwen-35b.toml +28 -0
- openjarvis/evals/configs/use_case_cloud_comparison.toml +78 -0
- openjarvis/evals/configs/use_case_cloud_openhands.toml +93 -0
- openjarvis/evals/configs/use_case_cloud_orchestrator.toml +93 -0
- openjarvis/evals/configs/use_case_direct.toml +47 -0
- openjarvis/evals/configs/use_case_ibm_granite.toml +56 -0
- openjarvis/evals/configs/use_case_openhands.toml +57 -0
- openjarvis/evals/configs/use_case_opensource_openhands.toml +101 -0
- openjarvis/evals/configs/use_case_opensource_orchestrator.toml +101 -0
- openjarvis/evals/configs/use_case_orchestrator.toml +57 -0
- openjarvis/evals/configs/use_case_react.toml +57 -0
- openjarvis/evals/configs/use_case_suite.toml +48 -0
- openjarvis/evals/configs/use_case_v2_cloud.toml +64 -0
- openjarvis/evals/configs/use_case_v2_granite.toml +52 -0
- openjarvis/evals/configs/use_case_v2_local.toml +60 -0
- openjarvis/evals/configs/use_case_v2_suite.toml +57 -0
- openjarvis/evals/core/__init__.py +1 -0
- openjarvis/evals/core/agentic_runner.py +799 -0
- openjarvis/evals/core/backend.py +45 -0
- openjarvis/evals/core/config.py +306 -0
- openjarvis/evals/core/dataset.py +58 -0
- openjarvis/evals/core/display.py +453 -0
- openjarvis/evals/core/environment.py +52 -0
- openjarvis/evals/core/event_recorder.py +98 -0
- openjarvis/evals/core/export.py +418 -0
- openjarvis/evals/core/pricing.py +17 -0
- openjarvis/evals/core/runner.py +1156 -0
- openjarvis/evals/core/scorer.py +55 -0
- openjarvis/evals/core/trace.py +279 -0
- openjarvis/evals/core/tracker.py +34 -0
- openjarvis/evals/core/types.py +273 -0
- openjarvis/evals/datasets/__init__.py +1 -0
- openjarvis/evals/datasets/ama_bench.py +272 -0
- openjarvis/evals/datasets/browser_assistant.py +445 -0
- openjarvis/evals/datasets/coding_assistant.py +1632 -0
- openjarvis/evals/datasets/coding_task.py +284 -0
- openjarvis/evals/datasets/daily_digest.py +688 -0
- openjarvis/evals/datasets/deepplanning.py +236 -0
- openjarvis/evals/datasets/doc_qa.py +1106 -0
- openjarvis/evals/datasets/email_triage.py +334 -0
- openjarvis/evals/datasets/frames.py +141 -0
- openjarvis/evals/datasets/gaia.py +168 -0
- openjarvis/evals/datasets/gpqa.py +146 -0
- openjarvis/evals/datasets/hle.py +135 -0
- openjarvis/evals/datasets/ipw_mixed.py +195 -0
- openjarvis/evals/datasets/knowledge_base.py +227 -0
- openjarvis/evals/datasets/lifelong_agent.py +517 -0
- openjarvis/evals/datasets/livecodebench.py +277 -0
- openjarvis/evals/datasets/liveresearch.py +191 -0
- openjarvis/evals/datasets/loghub.py +260 -0
- openjarvis/evals/datasets/math500.py +110 -0
- openjarvis/evals/datasets/mmlu_pro.py +115 -0
- openjarvis/evals/datasets/morning_brief.py +217 -0
- openjarvis/evals/datasets/natural_reasoning.py +115 -0
- openjarvis/evals/datasets/paperarena.py +169 -0
- openjarvis/evals/datasets/pinchbench.py +215 -0
- openjarvis/evals/datasets/research_mining.py +266 -0
- openjarvis/evals/datasets/security_scanner.py +1074 -0
- openjarvis/evals/datasets/simpleqa.py +129 -0
- openjarvis/evals/datasets/supergpqa.py +128 -0
- openjarvis/evals/datasets/swebench.py +168 -0
- openjarvis/evals/datasets/swefficiency.py +173 -0
- openjarvis/evals/datasets/taubench.py +259 -0
- openjarvis/evals/datasets/terminalbench.py +123 -0
- openjarvis/evals/datasets/terminalbench_native.py +187 -0
- openjarvis/evals/datasets/toolcall15.py +717 -0
- openjarvis/evals/datasets/webchorearena.py +266 -0
- openjarvis/evals/datasets/wildchat.py +111 -0
- openjarvis/evals/datasets/workarena.py +257 -0
- openjarvis/evals/environments/__init__.py +5 -0
- openjarvis/evals/environments/base.py +154 -0
- openjarvis/evals/environments/lifelong_agent_env.py +1185 -0
- openjarvis/evals/execution/__init__.py +1 -0
- openjarvis/evals/execution/pinchbench_env.py +161 -0
- openjarvis/evals/execution/taubench_env.py +391 -0
- openjarvis/evals/execution/terminalbench_env.py +183 -0
- openjarvis/evals/execution/webchorearena_env.py +777 -0
- openjarvis/evals/execution/workarena_env.py +496 -0
- openjarvis/evals/scorers/__init__.py +1 -0
- openjarvis/evals/scorers/_checklist.py +172 -0
- openjarvis/evals/scorers/ama_bench_judge.py +159 -0
- openjarvis/evals/scorers/browser_assistant.py +236 -0
- openjarvis/evals/scorers/coding_assistant.py +172 -0
- openjarvis/evals/scorers/coding_task.py +142 -0
- openjarvis/evals/scorers/daily_digest.py +169 -0
- openjarvis/evals/scorers/deepplanning_scorer.py +89 -0
- openjarvis/evals/scorers/doc_qa.py +186 -0
- openjarvis/evals/scorers/email_triage.py +136 -0
- openjarvis/evals/scorers/frames_judge.py +105 -0
- openjarvis/evals/scorers/gaia_exact.py +167 -0
- openjarvis/evals/scorers/gpqa_mcq.py +106 -0
- openjarvis/evals/scorers/hle_judge.py +102 -0
- openjarvis/evals/scorers/ipw_mixed.py +111 -0
- openjarvis/evals/scorers/knowledge_base.py +118 -0
- openjarvis/evals/scorers/lifelong_agent_scorer.py +929 -0
- openjarvis/evals/scorers/livecodebench.py +255 -0
- openjarvis/evals/scorers/liveresearch.py +316 -0
- openjarvis/evals/scorers/loghub_scorer.py +83 -0
- openjarvis/evals/scorers/mmlu_pro_mcq.py +106 -0
- openjarvis/evals/scorers/morning_brief.py +128 -0
- openjarvis/evals/scorers/paperarena_judge.py +162 -0
- openjarvis/evals/scorers/pinchbench.py +578 -0
- openjarvis/evals/scorers/reasoning_judge.py +166 -0
- openjarvis/evals/scorers/research_mining.py +109 -0
- openjarvis/evals/scorers/security_scanner.py +263 -0
- openjarvis/evals/scorers/simpleqa_judge.py +142 -0
- openjarvis/evals/scorers/supergpqa_mcq.py +106 -0
- openjarvis/evals/scorers/swebench_structural.py +71 -0
- openjarvis/evals/scorers/swefficiency_structural.py +72 -0
- openjarvis/evals/scorers/taubench.py +48 -0
- openjarvis/evals/scorers/terminalbench_judge.py +109 -0
- openjarvis/evals/scorers/terminalbench_native_structural.py +69 -0
- openjarvis/evals/scorers/toolcall15.py +606 -0
- openjarvis/evals/scorers/webchorearena_scorer.py +94 -0
- openjarvis/evals/scorers/wildchat_judge.py +173 -0
- openjarvis/evals/scorers/workarena_scorer.py +88 -0
- openjarvis/evals/skill_benchmark.py +508 -0
- openjarvis/evals/tests/__init__.py +1 -0
- openjarvis/evals/tests/conftest.py +154 -0
- openjarvis/evals/tests/test_backends.py +139 -0
- openjarvis/evals/tests/test_cli_flags.py +19 -0
- openjarvis/evals/tests/test_config.py +719 -0
- openjarvis/evals/tests/test_display.py +152 -0
- openjarvis/evals/tests/test_frames.py +111 -0
- openjarvis/evals/tests/test_gaia.py +138 -0
- openjarvis/evals/tests/test_runner.py +465 -0
- openjarvis/evals/tests/test_supergpqa.py +105 -0
- openjarvis/evals/tests/test_types.py +444 -0
- openjarvis/evals/tests/test_wildchat.py +117 -0
- openjarvis/evals/trackers/__init__.py +23 -0
- openjarvis/evals/trackers/sheets_tracker.py +164 -0
- openjarvis/evals/trackers/wandb_tracker.py +157 -0
- openjarvis/intelligence/__init__.py +11 -0
- openjarvis/intelligence/_stubs.py +5 -0
- openjarvis/intelligence/model_catalog.py +1024 -0
- openjarvis/intelligence/router.py +9 -0
- openjarvis/learning/__init__.py +86 -0
- openjarvis/learning/_stubs.py +78 -0
- openjarvis/learning/agents/__init__.py +3 -0
- openjarvis/learning/agents/agent_evolver.py +365 -0
- openjarvis/learning/agents/dspy_optimizer.py +208 -0
- openjarvis/learning/agents/gepa_optimizer.py +326 -0
- openjarvis/learning/agents/skill_discovery.py +204 -0
- openjarvis/learning/agents/skill_optimizer.py +312 -0
- openjarvis/learning/intelligence/__init__.py +13 -0
- openjarvis/learning/intelligence/grpo_trainer.py +373 -0
- openjarvis/learning/intelligence/orchestrator/__init__.py +87 -0
- openjarvis/learning/intelligence/orchestrator/environment.py +112 -0
- openjarvis/learning/intelligence/orchestrator/grpo_trainer.py +491 -0
- openjarvis/learning/intelligence/orchestrator/policy_model.py +280 -0
- openjarvis/learning/intelligence/orchestrator/prompt_registry.py +345 -0
- openjarvis/learning/intelligence/orchestrator/reward.py +217 -0
- openjarvis/learning/intelligence/orchestrator/sft_trainer.py +407 -0
- openjarvis/learning/intelligence/orchestrator/types.py +334 -0
- openjarvis/learning/intelligence/sft_trainer.py +147 -0
- openjarvis/learning/learning_orchestrator.py +256 -0
- openjarvis/learning/optimize/__init__.py +61 -0
- openjarvis/learning/optimize/config.py +102 -0
- openjarvis/learning/optimize/configs/qwen3-235b-dry-run.toml +90 -0
- openjarvis/learning/optimize/configs/qwen3.5-joint-agentic.toml +91 -0
- openjarvis/learning/optimize/feedback/__init__.py +6 -0
- openjarvis/learning/optimize/feedback/collector.py +120 -0
- openjarvis/learning/optimize/feedback/judge.py +119 -0
- openjarvis/learning/optimize/llm_optimizer.py +661 -0
- openjarvis/learning/optimize/optimizer.py +437 -0
- openjarvis/learning/optimize/personal/__init__.py +17 -0
- openjarvis/learning/optimize/personal/dataset.py +54 -0
- openjarvis/learning/optimize/personal/scorer.py +50 -0
- openjarvis/learning/optimize/personal/synthesizer.py +119 -0
- openjarvis/learning/optimize/search_space.py +200 -0
- openjarvis/learning/optimize/store.py +508 -0
- openjarvis/learning/optimize/trial_runner.py +403 -0
- openjarvis/learning/optimize/types.py +253 -0
- openjarvis/learning/routing/__init__.py +3 -0
- openjarvis/learning/routing/_utils.py +34 -0
- openjarvis/learning/routing/complexity.py +257 -0
- openjarvis/learning/routing/heuristic_policy.py +15 -0
- openjarvis/learning/routing/heuristic_reward.py +56 -0
- openjarvis/learning/routing/learned_router.py +236 -0
- openjarvis/learning/routing/router.py +174 -0
- openjarvis/learning/training/__init__.py +15 -0
- openjarvis/learning/training/data.py +221 -0
- openjarvis/learning/training/lora.py +430 -0
- openjarvis/mcp/__init__.py +26 -0
- openjarvis/mcp/client.py +122 -0
- openjarvis/mcp/protocol.py +145 -0
- openjarvis/mcp/server.py +284 -0
- openjarvis/mcp/transport.py +234 -0
- openjarvis/operators/__init__.py +7 -0
- openjarvis/operators/data/knowledge_curator.toml +45 -0
- openjarvis/operators/data/news_digest.toml +47 -0
- openjarvis/operators/data/researcher.toml +43 -0
- openjarvis/operators/data/system_monitor.toml +42 -0
- openjarvis/operators/loader.py +71 -0
- openjarvis/operators/manager.py +213 -0
- openjarvis/operators/types.py +36 -0
- openjarvis/optimize/__init__.py +4 -0
- openjarvis/optimize/config.py +4 -0
- openjarvis/optimize/feedback/__init__.py +4 -0
- openjarvis/optimize/feedback/collector.py +4 -0
- openjarvis/optimize/feedback/judge.py +7 -0
- openjarvis/optimize/llm_optimizer.py +4 -0
- openjarvis/optimize/optimizer.py +4 -0
- openjarvis/optimize/personal/__init__.py +4 -0
- openjarvis/optimize/personal/dataset.py +4 -0
- openjarvis/optimize/personal/scorer.py +4 -0
- openjarvis/optimize/personal/synthesizer.py +4 -0
- openjarvis/optimize/search_space.py +4 -0
- openjarvis/optimize/store.py +4 -0
- openjarvis/optimize/trial_runner.py +4 -0
- openjarvis/optimize/types.py +7 -0
- openjarvis/prompt/__init__.py +1 -0
- openjarvis/prompt/builder.py +104 -0
- openjarvis/recipes/__init__.py +21 -0
- openjarvis/recipes/composer.py +143 -0
- openjarvis/recipes/data/coding_assistant.toml +25 -0
- openjarvis/recipes/data/coding_benchmark.toml +36 -0
- openjarvis/recipes/data/gaia_orchestrator.toml +35 -0
- openjarvis/recipes/data/general_assistant.toml +24 -0
- openjarvis/recipes/data/monitor_assistant.toml +25 -0
- openjarvis/recipes/data/operators/correspondent.toml +14 -0
- openjarvis/recipes/data/operators/correspondent_prompt.md +52 -0
- openjarvis/recipes/data/operators/inbox_triage.toml +57 -0
- openjarvis/recipes/data/operators/news_briefing.toml +57 -0
- openjarvis/recipes/data/operators/repo_watcher.toml +64 -0
- openjarvis/recipes/data/operators/researcher.toml +14 -0
- openjarvis/recipes/data/operators/researcher_prompt.md +45 -0
- openjarvis/recipes/data/operators/sentinel.toml +14 -0
- openjarvis/recipes/data/operators/sentinel_prompt.md +74 -0
- openjarvis/recipes/data/operators/twitter_sentinel.toml +50 -0
- openjarvis/recipes/data/research_assistant.toml +24 -0
- openjarvis/recipes/data/swebench_openhands.toml +41 -0
- openjarvis/recipes/data/terminalbench_react.toml +35 -0
- openjarvis/recipes/loader.py +334 -0
- openjarvis/sandbox/__init__.py +18 -0
- openjarvis/sandbox/mount_security.py +195 -0
- openjarvis/sandbox/runner.py +361 -0
- openjarvis/sandbox/wasm_runner.py +159 -0
- openjarvis/scheduler/__init__.py +6 -0
- openjarvis/scheduler/scheduler.py +352 -0
- openjarvis/scheduler/store.py +167 -0
- openjarvis/scheduler/tools.py +350 -0
- openjarvis/sdk.py +623 -0
- openjarvis/security/__init__.py +123 -0
- openjarvis/security/_stubs.py +28 -0
- openjarvis/security/audit.py +266 -0
- openjarvis/security/boundary.py +139 -0
- openjarvis/security/capabilities.py +190 -0
- openjarvis/security/credential_stripper.py +31 -0
- openjarvis/security/file_policy.py +67 -0
- openjarvis/security/file_utils.py +34 -0
- openjarvis/security/guardrails.py +317 -0
- openjarvis/security/injection_scanner.py +140 -0
- openjarvis/security/rate_limiter.py +107 -0
- openjarvis/security/scanner.py +148 -0
- openjarvis/security/severity_policy.py +22 -0
- openjarvis/security/signing.py +132 -0
- openjarvis/security/ssrf.py +79 -0
- openjarvis/security/subprocess_sandbox.py +126 -0
- openjarvis/security/taint.py +137 -0
- openjarvis/security/types.py +104 -0
- openjarvis/server/__init__.py +3 -0
- openjarvis/server/agent_manager_routes.py +1931 -0
- openjarvis/server/api_routes.py +868 -0
- openjarvis/server/app.py +302 -0
- openjarvis/server/auth_middleware.py +75 -0
- openjarvis/server/channel_bridge.py +379 -0
- openjarvis/server/cloud_router.py +399 -0
- openjarvis/server/comparison.py +451 -0
- openjarvis/server/connectors_router.py +555 -0
- openjarvis/server/cost_calculator.py +137 -0
- openjarvis/server/dashboard.py +435 -0
- openjarvis/server/digest_routes.py +124 -0
- openjarvis/server/middleware.py +66 -0
- openjarvis/server/models.py +131 -0
- openjarvis/server/routes.py +771 -0
- openjarvis/server/savings.py +198 -0
- openjarvis/server/session_store.py +177 -0
- openjarvis/server/stream_bridge.py +368 -0
- openjarvis/server/upload_router.py +218 -0
- openjarvis/server/webhook_routes.py +448 -0
- openjarvis/server/ws_bridge.py +82 -0
- openjarvis/sessions/__init__.py +5 -0
- openjarvis/sessions/compression.py +102 -0
- openjarvis/sessions/session.py +363 -0
- openjarvis/skills/__init__.py +46 -0
- openjarvis/skills/data/backup-files.toml +20 -0
- openjarvis/skills/data/calendar-prep.toml +20 -0
- openjarvis/skills/data/code-lint.toml +20 -0
- openjarvis/skills/data/code-test-gen.toml +25 -0
- openjarvis/skills/data/compare-docs.toml +25 -0
- openjarvis/skills/data/daily-digest.toml +20 -0
- openjarvis/skills/data/data-analyze.toml +25 -0
- openjarvis/skills/data/dependency-audit.toml +25 -0
- openjarvis/skills/data/email-draft.toml +20 -0
- openjarvis/skills/data/file-deduplicator.toml +20 -0
- openjarvis/skills/data/file-organizer.toml +25 -0
- openjarvis/skills/data/knowledge-extract.toml +20 -0
- openjarvis/skills/data/meeting-notes.toml +20 -0
- openjarvis/skills/data/pdf-summarize.toml +20 -0
- openjarvis/skills/data/search-and-index.toml +25 -0
- openjarvis/skills/data/security-scan.toml +20 -0
- openjarvis/skills/data/todo-from-notes.toml +20 -0
- openjarvis/skills/data/topic-research.toml +25 -0
- openjarvis/skills/data/translate-doc.toml +25 -0
- openjarvis/skills/data/web-summarize.toml +20 -0
- openjarvis/skills/dependency.py +186 -0
- openjarvis/skills/executor.py +180 -0
- openjarvis/skills/importer.py +195 -0
- openjarvis/skills/index.py +99 -0
- openjarvis/skills/loader.py +319 -0
- openjarvis/skills/manager.py +396 -0
- openjarvis/skills/overlay.py +151 -0
- openjarvis/skills/parser.py +231 -0
- openjarvis/skills/security.py +65 -0
- openjarvis/skills/sources/__init__.py +16 -0
- openjarvis/skills/sources/base.py +66 -0
- openjarvis/skills/sources/github.py +121 -0
- openjarvis/skills/sources/hermes.py +130 -0
- openjarvis/skills/sources/openclaw.py +129 -0
- openjarvis/skills/tool_adapter.py +196 -0
- openjarvis/skills/tool_translator.py +114 -0
- openjarvis/skills/types.py +62 -0
- openjarvis/speech/__init__.py +17 -0
- openjarvis/speech/_discovery.py +75 -0
- openjarvis/speech/_stubs.py +55 -0
- openjarvis/speech/cartesia_tts.py +109 -0
- openjarvis/speech/deepgram.py +97 -0
- openjarvis/speech/faster_whisper.py +100 -0
- openjarvis/speech/kokoro_tts.py +80 -0
- openjarvis/speech/openai_tts.py +82 -0
- openjarvis/speech/openai_whisper.py +64 -0
- openjarvis/speech/tts.py +53 -0
- openjarvis/system.py +1289 -0
- openjarvis/telemetry/__init__.py +111 -0
- openjarvis/telemetry/aggregator.py +425 -0
- openjarvis/telemetry/batch.py +126 -0
- openjarvis/telemetry/efficiency.py +129 -0
- openjarvis/telemetry/energy_amd.py +137 -0
- openjarvis/telemetry/energy_apple.py +184 -0
- openjarvis/telemetry/energy_monitor.py +176 -0
- openjarvis/telemetry/energy_nvidia.py +257 -0
- openjarvis/telemetry/energy_rapl.py +197 -0
- openjarvis/telemetry/flops.py +101 -0
- openjarvis/telemetry/gpu_monitor.py +322 -0
- openjarvis/telemetry/instrumented_engine.py +505 -0
- openjarvis/telemetry/itl.py +47 -0
- openjarvis/telemetry/phase_metrics.py +44 -0
- openjarvis/telemetry/session.py +148 -0
- openjarvis/telemetry/steady_state.py +129 -0
- openjarvis/telemetry/store.py +204 -0
- openjarvis/telemetry/vllm_metrics.py +182 -0
- openjarvis/telemetry/wrapper.py +57 -0
- openjarvis/templates/__init__.py +9 -0
- openjarvis/templates/agent_templates.py +106 -0
- openjarvis/templates/data/architect.toml +10 -0
- openjarvis/templates/data/assistant.toml +10 -0
- openjarvis/templates/data/code-reviewer.toml +10 -0
- openjarvis/templates/data/data-analyst.toml +10 -0
- openjarvis/templates/data/debugger.toml +10 -0
- openjarvis/templates/data/deep-researcher.toml +10 -0
- openjarvis/templates/data/fact-checker.toml +10 -0
- openjarvis/templates/data/inbox-triager.toml +10 -0
- openjarvis/templates/data/meeting-prep.toml +10 -0
- openjarvis/templates/data/monitor.toml +25 -0
- openjarvis/templates/data/note-taker.toml +10 -0
- openjarvis/templates/data/security-auditor.toml +10 -0
- openjarvis/templates/data/summarizer.toml +10 -0
- openjarvis/templates/data/translator.toml +10 -0
- openjarvis/templates/data/tutor.toml +10 -0
- openjarvis/templates/data/writer.toml +10 -0
- openjarvis/tools/__init__.py +144 -0
- openjarvis/tools/_stubs.py +392 -0
- openjarvis/tools/agent_tools.py +324 -0
- openjarvis/tools/apply_patch.py +340 -0
- openjarvis/tools/audio_tool.py +180 -0
- openjarvis/tools/browser.py +540 -0
- openjarvis/tools/browser_axtree.py +137 -0
- openjarvis/tools/calculator.py +164 -0
- openjarvis/tools/channel_tools.py +189 -0
- openjarvis/tools/code_interpreter.py +111 -0
- openjarvis/tools/code_interpreter_docker.py +141 -0
- openjarvis/tools/db_query.py +357 -0
- openjarvis/tools/digest_collect.py +519 -0
- openjarvis/tools/file_read.py +139 -0
- openjarvis/tools/file_write.py +208 -0
- openjarvis/tools/git_tool.py +387 -0
- openjarvis/tools/http_request.py +191 -0
- openjarvis/tools/image_tool.py +151 -0
- openjarvis/tools/knowledge_search.py +182 -0
- openjarvis/tools/knowledge_sql.py +130 -0
- openjarvis/tools/knowledge_tools.py +294 -0
- openjarvis/tools/llm_tool.py +95 -0
- openjarvis/tools/mcp_adapter.py +75 -0
- openjarvis/tools/memory_manage.py +139 -0
- openjarvis/tools/pdf_tool.py +176 -0
- openjarvis/tools/repl.py +335 -0
- openjarvis/tools/retrieval.py +92 -0
- openjarvis/tools/scan_chunks.py +191 -0
- openjarvis/tools/shell_exec.py +216 -0
- openjarvis/tools/skill_manage.py +152 -0
- openjarvis/tools/storage/__init__.py +44 -0
- openjarvis/tools/storage/_stubs.py +62 -0
- openjarvis/tools/storage/bm25.py +98 -0
- openjarvis/tools/storage/chunking.py +154 -0
- openjarvis/tools/storage/colbert_backend.py +251 -0
- openjarvis/tools/storage/context.py +131 -0
- openjarvis/tools/storage/embeddings.py +62 -0
- openjarvis/tools/storage/faiss_backend.py +161 -0
- openjarvis/tools/storage/hybrid.py +184 -0
- openjarvis/tools/storage/ingest.py +246 -0
- openjarvis/tools/storage/knowledge_graph.py +316 -0
- openjarvis/tools/storage/sqlite.py +130 -0
- openjarvis/tools/storage_tools.py +311 -0
- openjarvis/tools/templates/__init__.py +5 -0
- openjarvis/tools/templates/builtin/base64_encode.toml +11 -0
- openjarvis/tools/templates/builtin/date_info.toml +8 -0
- openjarvis/tools/templates/builtin/hash_compute.toml +11 -0
- openjarvis/tools/templates/builtin/json_transform.toml +11 -0
- openjarvis/tools/templates/builtin/regex_extract.toml +14 -0
- openjarvis/tools/templates/builtin/text_length.toml +11 -0
- openjarvis/tools/templates/builtin/text_lower.toml +11 -0
- openjarvis/tools/templates/builtin/text_reverse.toml +11 -0
- openjarvis/tools/templates/builtin/text_upper.toml +11 -0
- openjarvis/tools/templates/builtin/unit_convert.toml +17 -0
- openjarvis/tools/templates/loader.py +205 -0
- openjarvis/tools/text_to_speech.py +106 -0
- openjarvis/tools/think.py +58 -0
- openjarvis/tools/user_profile_manage.py +137 -0
- openjarvis/tools/web_search.py +207 -0
- openjarvis/workflow/__init__.py +23 -0
- openjarvis/workflow/builder.py +150 -0
- openjarvis/workflow/engine.py +338 -0
- openjarvis/workflow/graph.py +127 -0
- openjarvis/workflow/loader.py +84 -0
- openjarvis/workflow/types.py +66 -0
- openjarvis-0.1.1.dist-info/METADATA +350 -0
- openjarvis-0.1.1.dist-info/RECORD +766 -0
- openjarvis-0.1.1.dist-info/WHEEL +4 -0
- openjarvis-0.1.1.dist-info/entry_points.txt +2 -0
- openjarvis-0.1.1.dist-info/licenses/LICENSE +190 -0
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenJarvis Claude Code Runner
|
|
3
|
+
*
|
|
4
|
+
* Reads a JSON request from stdin, invokes the Claude Agent SDK,
|
|
5
|
+
* and writes sentinel-wrapped JSON output to stdout.
|
|
6
|
+
*
|
|
7
|
+
* Input (JSON on stdin):
|
|
8
|
+
* { prompt, api_key, workspace, allowed_tools, system_prompt, session_id }
|
|
9
|
+
*
|
|
10
|
+
* Output (on stdout, between sentinels):
|
|
11
|
+
* ---OPENJARVIS_OUTPUT_START---
|
|
12
|
+
* { content, tool_results, metadata }
|
|
13
|
+
* ---OPENJARVIS_OUTPUT_END---
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
import { query, type Tool } from "@anthropic-ai/claude-code";
|
|
17
|
+
|
|
18
|
+
const OUTPUT_START = "---OPENJARVIS_OUTPUT_START---";
|
|
19
|
+
const OUTPUT_END = "---OPENJARVIS_OUTPUT_END---";
|
|
20
|
+
|
|
21
|
+
interface RunnerRequest {
|
|
22
|
+
prompt: string;
|
|
23
|
+
api_key: string;
|
|
24
|
+
workspace: string;
|
|
25
|
+
allowed_tools: string[];
|
|
26
|
+
system_prompt: string;
|
|
27
|
+
session_id: string;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
interface ToolResultEntry {
|
|
31
|
+
tool_name: string;
|
|
32
|
+
content: string;
|
|
33
|
+
success: boolean;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
interface RunnerResponse {
|
|
37
|
+
content: string;
|
|
38
|
+
tool_results: ToolResultEntry[];
|
|
39
|
+
metadata: Record<string, unknown>;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function emitResult(response: RunnerResponse): void {
|
|
43
|
+
console.log(OUTPUT_START);
|
|
44
|
+
console.log(JSON.stringify(response));
|
|
45
|
+
console.log(OUTPUT_END);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
function emitError(message: string): void {
|
|
49
|
+
emitResult({
|
|
50
|
+
content: message,
|
|
51
|
+
tool_results: [],
|
|
52
|
+
metadata: { error: true },
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
async function readStdin(): Promise<string> {
|
|
57
|
+
return new Promise((resolve, reject) => {
|
|
58
|
+
let data = "";
|
|
59
|
+
process.stdin.setEncoding("utf-8");
|
|
60
|
+
process.stdin.on("data", (chunk: string) => {
|
|
61
|
+
data += chunk;
|
|
62
|
+
});
|
|
63
|
+
process.stdin.on("end", () => {
|
|
64
|
+
resolve(data);
|
|
65
|
+
});
|
|
66
|
+
process.stdin.on("error", (err: Error) => {
|
|
67
|
+
reject(err);
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
async function main(): Promise<void> {
|
|
73
|
+
let request: RunnerRequest;
|
|
74
|
+
|
|
75
|
+
try {
|
|
76
|
+
const raw = await readStdin();
|
|
77
|
+
request = JSON.parse(raw) as RunnerRequest;
|
|
78
|
+
} catch (err) {
|
|
79
|
+
emitError(`Failed to parse input: ${err}`);
|
|
80
|
+
process.exit(1);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// Set the API key in the environment for the SDK
|
|
84
|
+
if (request.api_key) {
|
|
85
|
+
process.env.ANTHROPIC_API_KEY = request.api_key;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
try {
|
|
89
|
+
// Build options for the claude-code SDK query
|
|
90
|
+
const options: Parameters<typeof query>[0] = {
|
|
91
|
+
prompt: request.prompt,
|
|
92
|
+
options: {
|
|
93
|
+
maxTurns: 30,
|
|
94
|
+
},
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
if (request.workspace) {
|
|
98
|
+
options.options!.cwd = request.workspace;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
if (request.system_prompt) {
|
|
102
|
+
options.options!.systemPrompt = request.system_prompt;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
if (request.allowed_tools && request.allowed_tools.length > 0) {
|
|
106
|
+
options.options!.allowedTools = request.allowed_tools as Tool[];
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
if (request.session_id) {
|
|
110
|
+
options.options!.sessionId = request.session_id;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// Execute the query
|
|
114
|
+
const messages = await query(options);
|
|
115
|
+
|
|
116
|
+
// Extract the final assistant text and any tool results
|
|
117
|
+
let content = "";
|
|
118
|
+
const toolResults: ToolResultEntry[] = [];
|
|
119
|
+
|
|
120
|
+
for (const msg of messages) {
|
|
121
|
+
if (msg.type === "text") {
|
|
122
|
+
content = msg.text;
|
|
123
|
+
} else if (msg.type === "tool_use") {
|
|
124
|
+
toolResults.push({
|
|
125
|
+
tool_name: msg.name,
|
|
126
|
+
content: JSON.stringify(msg.input),
|
|
127
|
+
success: true,
|
|
128
|
+
});
|
|
129
|
+
} else if (msg.type === "tool_result") {
|
|
130
|
+
// Update last tool result with actual output
|
|
131
|
+
if (toolResults.length > 0) {
|
|
132
|
+
const last = toolResults[toolResults.length - 1];
|
|
133
|
+
last.content =
|
|
134
|
+
typeof msg.content === "string"
|
|
135
|
+
? msg.content
|
|
136
|
+
: JSON.stringify(msg.content);
|
|
137
|
+
last.success = !msg.is_error;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
emitResult({
|
|
143
|
+
content,
|
|
144
|
+
tool_results: toolResults,
|
|
145
|
+
metadata: {
|
|
146
|
+
message_count: messages.length,
|
|
147
|
+
session_id: request.session_id || undefined,
|
|
148
|
+
},
|
|
149
|
+
});
|
|
150
|
+
} catch (err) {
|
|
151
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
152
|
+
emitError(`Claude Code SDK error: ${message}`);
|
|
153
|
+
process.exit(1);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
main();
|