aria-code 0.167.0__py3-none-win_amd64.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.
Files changed (601) hide show
  1. aria_bots/__init__.py +7 -0
  2. aria_bots/channels/README.md +97 -0
  3. aria_bots/channels/__init__.py +1 -0
  4. aria_bots/channels/approvals.py +263 -0
  5. aria_bots/channels/conversation.py +280 -0
  6. aria_bots/channels/digest.py +186 -0
  7. aria_bots/channels/registry.py +95 -0
  8. aria_bots/engine.py +144 -0
  9. aria_bots/feishu_bot.py +1385 -0
  10. aria_bots/logistics/__init__.py +1 -0
  11. aria_bots/logistics/carriers.py +253 -0
  12. aria_bots/logistics/freight.py +154 -0
  13. aria_bots/logistics/inventory.py +242 -0
  14. aria_bots/logistics/mcp_server.py +156 -0
  15. aria_bots/logistics/records.py +119 -0
  16. aria_bots/logistics/tenancy.py +152 -0
  17. aria_bots/market.py +91 -0
  18. aria_bots/relay_client.py +326 -0
  19. aria_bots/telegram_bot.py +299 -0
  20. aria_code/__init__.py +111 -0
  21. aria_code/_bin/aria-native.exe +0 -0
  22. aria_code/_bin/aria-runtime.exe +0 -0
  23. aria_code/_version.py +20 -0
  24. aria_code/account_memory.py +296 -0
  25. aria_code/account_session.py +166 -0
  26. aria_code/adk_apps/__init__.py +1 -0
  27. aria_code/adk_apps/aria_code_review/__init__.py +1 -0
  28. aria_code/adk_apps/aria_code_review/agent.py +32 -0
  29. aria_code/adk_apps/aria_research/__init__.py +1 -0
  30. aria_code/adk_apps/aria_research/agent.py +31 -0
  31. aria_code/agents/__init__.py +49 -0
  32. aria_code/agents/base.py +329 -0
  33. aria_code/agents/code_review.py +200 -0
  34. aria_code/agents/deep/__init__.py +37 -0
  35. aria_code/agents/deep/calibration_loop.py +144 -0
  36. aria_code/agents/deep/critic.py +125 -0
  37. aria_code/agents/deep/deepen.py +193 -0
  38. aria_code/agents/deep/models.py +149 -0
  39. aria_code/agents/deep/pipeline.py +164 -0
  40. aria_code/agents/deep/quant_fusion.py +192 -0
  41. aria_code/agents/deep/themes.py +95 -0
  42. aria_code/agents/deep/tiers.py +106 -0
  43. aria_code/agents/engineering/__init__.py +14 -0
  44. aria_code/agents/engineering/coder.py +222 -0
  45. aria_code/agents/engineering/tester.py +145 -0
  46. aria_code/agents/financial/__init__.py +21 -0
  47. aria_code/agents/financial/cashflow_burn.py +119 -0
  48. aria_code/agents/financial/catalyst.py +279 -0
  49. aria_code/agents/financial/corporate_finance.py +175 -0
  50. aria_code/agents/financial/debate.py +224 -0
  51. aria_code/agents/financial/earnings.py +315 -0
  52. aria_code/agents/financial/fundamental.py +178 -0
  53. aria_code/agents/financial/macro.py +111 -0
  54. aria_code/agents/financial/news.py +231 -0
  55. aria_code/agents/financial/risk.py +146 -0
  56. aria_code/agents/financial/sector.py +279 -0
  57. aria_code/agents/financial/strategist.py +121 -0
  58. aria_code/agents/financial/stripe_revenue.py +127 -0
  59. aria_code/agents/financial/synthesis.py +274 -0
  60. aria_code/agents/financial/technical.py +277 -0
  61. aria_code/agents/orchestrator.py +44 -0
  62. aria_code/agents/portfolio_agent.py +392 -0
  63. aria_code/agents/realty/__init__.py +62 -0
  64. aria_code/agents/realty/asset_diagnosis.py +152 -0
  65. aria_code/agents/realty/business_match.py +166 -0
  66. aria_code/agents/realty/cashflow_verify.py +209 -0
  67. aria_code/agents/realty/contract_rules.py +210 -0
  68. aria_code/agents/realty/energy_anomaly.py +189 -0
  69. aria_code/agents/realty/exit_settlement.py +208 -0
  70. aria_code/agents/realty/fulfillment_risk.py +206 -0
  71. aria_code/agents/realty/ops_optimize.py +160 -0
  72. aria_code/agents/realty/revenue_share.py +215 -0
  73. aria_code/agents/registry.py +168 -0
  74. aria_code/agents/signal_scheme.py +111 -0
  75. aria_code/agents/sports/__init__.py +0 -0
  76. aria_code/agents/sports/football_agent.py +197 -0
  77. aria_code/agents/supervisor.py +113 -0
  78. aria_code/agents/team.py +500 -0
  79. aria_code/agents/video/__init__.py +16 -0
  80. aria_code/agents/video/director.py +376 -0
  81. aria_code/agents/video/qa_agent.py +143 -0
  82. aria_code/agents/video/script_doctor.py +112 -0
  83. aria_code/agents/warehouse/__init__.py +25 -0
  84. aria_code/agents/warehouse/contracts.py +26 -0
  85. aria_code/agents/warehouse/dashboard.py +155 -0
  86. aria_code/agents/warehouse/fulfillment_leadtime.py +95 -0
  87. aria_code/agents/warehouse/inbound_exceptions.py +25 -0
  88. aria_code/agents/warehouse/inventory_health.py +24 -0
  89. aria_code/agents/warehouse/local_run.py +71 -0
  90. aria_code/agents/warehouse/local_snapshot.py +132 -0
  91. aria_code/agents/warehouse/logistics_cost.py +84 -0
  92. aria_code/agents/warehouse/logistics_sync.py +21 -0
  93. aria_code/agents/warehouse/navigation.schema.json +110 -0
  94. aria_code/agents/warehouse/task_agent.py +172 -0
  95. aria_code/agents/warehouse/workflow.py +31 -0
  96. aria_code/aliyun_data_client.py +4 -0
  97. aria_code/apps/README.md +12 -0
  98. aria_code/apps/__init__.py +2 -0
  99. aria_code/apps/channels/README.md +9 -0
  100. aria_code/apps/channels/__init__.py +17 -0
  101. aria_code/apps/channels/approvals.py +11 -0
  102. aria_code/apps/channels/conversation.py +11 -0
  103. aria_code/apps/channels/digest.py +11 -0
  104. aria_code/apps/channels/intake.py +92 -0
  105. aria_code/apps/channels/registry.py +11 -0
  106. aria_code/apps/channels/tradingview.py +94 -0
  107. aria_code/apps/cli/README.md +13 -0
  108. aria_code/apps/cli/__init__.py +2 -0
  109. aria_code/apps/cli/_optional.py +120 -0
  110. aria_code/apps/cli/app_server.py +656 -0
  111. aria_code/apps/cli/auto_update.py +125 -0
  112. aria_code/apps/cli/bootstrap.py +206 -0
  113. aria_code/apps/cli/broker_render.py +206 -0
  114. aria_code/apps/cli/chat_turn.py +1327 -0
  115. aria_code/apps/cli/cloud_models.py +231 -0
  116. aria_code/apps/cli/codegen_paths.py +29 -0
  117. aria_code/apps/cli/commands/__init__.py +34 -0
  118. aria_code/apps/cli/commands/_business_render.py +78 -0
  119. aria_code/apps/cli/commands/_ui.py +71 -0
  120. aria_code/apps/cli/commands/analysis_cmds.py +378 -0
  121. aria_code/apps/cli/commands/ashare_prediction_cmds.py +327 -0
  122. aria_code/apps/cli/commands/auth_cmds.py +215 -0
  123. aria_code/apps/cli/commands/backtest_cmds.py +2518 -0
  124. aria_code/apps/cli/commands/broker_cmds.py +1236 -0
  125. aria_code/apps/cli/commands/business_workflow_cmds.py +379 -0
  126. aria_code/apps/cli/commands/canvas_cmds.py +77 -0
  127. aria_code/apps/cli/commands/catalog.py +189 -0
  128. aria_code/apps/cli/commands/core_cmds.py +2748 -0
  129. aria_code/apps/cli/commands/data_cmds.py +521 -0
  130. aria_code/apps/cli/commands/diagnostic_cmds.py +285 -0
  131. aria_code/apps/cli/commands/diagnostic_ops_cmds.py +813 -0
  132. aria_code/apps/cli/commands/engineering_cmds.py +399 -0
  133. aria_code/apps/cli/commands/file_cmds.py +312 -0
  134. aria_code/apps/cli/commands/finance_service_cmds.py +60 -0
  135. aria_code/apps/cli/commands/fx_commodity_cmds.py +123 -0
  136. aria_code/apps/cli/commands/market.py +544 -0
  137. aria_code/apps/cli/commands/market_cmds.py +1419 -0
  138. aria_code/apps/cli/commands/market_context.py +432 -0
  139. aria_code/apps/cli/commands/market_render.py +7 -0
  140. aria_code/apps/cli/commands/model_cmds.py +2374 -0
  141. aria_code/apps/cli/commands/ops_cmds.py +721 -0
  142. aria_code/apps/cli/commands/orchestrator_cmds.py +181 -0
  143. aria_code/apps/cli/commands/pdf_export_cmds.py +125 -0
  144. aria_code/apps/cli/commands/portfolio_cmds.py +1316 -0
  145. aria_code/apps/cli/commands/report.py +476 -0
  146. aria_code/apps/cli/commands/scaffold_templates.py +617 -0
  147. aria_code/apps/cli/commands/session_cmds.py +236 -0
  148. aria_code/apps/cli/commands/session_ux_cmds.py +359 -0
  149. aria_code/apps/cli/commands/team.py +723 -0
  150. aria_code/apps/cli/commands/team_render.py +8 -0
  151. aria_code/apps/cli/commands/ui_cmds.py +401 -0
  152. aria_code/apps/cli/commands/warehouse_cmds.py +297 -0
  153. aria_code/apps/cli/commands/workflow_cmds.py +629 -0
  154. aria_code/apps/cli/commands/workspace_cmds.py +1543 -0
  155. aria_code/apps/cli/config_paths.py +73 -0
  156. aria_code/apps/cli/config_store.py +158 -0
  157. aria_code/apps/cli/constants.py +88 -0
  158. aria_code/apps/cli/context.py +34 -0
  159. aria_code/apps/cli/conversation_policy.py +53 -0
  160. aria_code/apps/cli/deterministic.py +200 -0
  161. aria_code/apps/cli/direct.py +48 -0
  162. aria_code/apps/cli/earnings_view.py +172 -0
  163. aria_code/apps/cli/endpoint_migration.py +64 -0
  164. aria_code/apps/cli/exec_events.py +255 -0
  165. aria_code/apps/cli/file_references.py +155 -0
  166. aria_code/apps/cli/finance_service_catalog.py +111 -0
  167. aria_code/apps/cli/football_reports.py +231 -0
  168. aria_code/apps/cli/github_app_auth.py +135 -0
  169. aria_code/apps/cli/google_login.py +239 -0
  170. aria_code/apps/cli/handlers/__init__.py +11 -0
  171. aria_code/apps/cli/handlers/broker_handlers.py +122 -0
  172. aria_code/apps/cli/handlers/chart_handlers.py +1314 -0
  173. aria_code/apps/cli/handlers/market_handlers.py +2570 -0
  174. aria_code/apps/cli/handlers/realty_handlers.py +114 -0
  175. aria_code/apps/cli/handlers/sports_handlers.py +22 -0
  176. aria_code/apps/cli/handlers/strategy_advice.py +82 -0
  177. aria_code/apps/cli/headless.py +352 -0
  178. aria_code/apps/cli/helpers.py +326 -0
  179. aria_code/apps/cli/hooks.py +180 -0
  180. aria_code/apps/cli/i18n.py +310 -0
  181. aria_code/apps/cli/intent.py +136 -0
  182. aria_code/apps/cli/intent_router.py +305 -0
  183. aria_code/apps/cli/intent_shadow.py +72 -0
  184. aria_code/apps/cli/intent_signals.py +347 -0
  185. aria_code/apps/cli/lifecycle_hooks.py +48 -0
  186. aria_code/apps/cli/local_tool_schemas.py +550 -0
  187. aria_code/apps/cli/main.py +39 -0
  188. aria_code/apps/cli/market_hours.py +100 -0
  189. aria_code/apps/cli/market_metadata.py +135 -0
  190. aria_code/apps/cli/market_universe.py +487 -0
  191. aria_code/apps/cli/message_processing.py +310 -0
  192. aria_code/apps/cli/mixin_binding.py +32 -0
  193. aria_code/apps/cli/model_catalog.py +652 -0
  194. aria_code/apps/cli/model_probe.py +169 -0
  195. aria_code/apps/cli/model_retirement.py +65 -0
  196. aria_code/apps/cli/native_branding.py +12 -0
  197. aria_code/apps/cli/native_bridge.py +118 -0
  198. aria_code/apps/cli/native_entry.py +58 -0
  199. aria_code/apps/cli/pdf_report.py +977 -0
  200. aria_code/apps/cli/plan_mode.py +139 -0
  201. aria_code/apps/cli/plotly_html.py +15 -0
  202. aria_code/apps/cli/prediction_feedback.py +202 -0
  203. aria_code/apps/cli/preflight.py +502 -0
  204. aria_code/apps/cli/project_aria.py +60 -0
  205. aria_code/apps/cli/prompt_assembly.py +78 -0
  206. aria_code/apps/cli/prompts/__init__.py +0 -0
  207. aria_code/apps/cli/prompts/coding.py +71 -0
  208. aria_code/apps/cli/prompts/select.py +193 -0
  209. aria_code/apps/cli/prompts/system_prompts.py +562 -0
  210. aria_code/apps/cli/prompts/ui.py +436 -0
  211. aria_code/apps/cli/provider_endpoints.py +237 -0
  212. aria_code/apps/cli/provider_keys.py +73 -0
  213. aria_code/apps/cli/providers/__init__.py +1 -0
  214. aria_code/apps/cli/providers/base.py +775 -0
  215. aria_code/apps/cli/providers/chat_routing.py +139 -0
  216. aria_code/apps/cli/providers/collaboration.py +98 -0
  217. aria_code/apps/cli/providers/llm/__init__.py +1 -0
  218. aria_code/apps/cli/providers/llm/offline_responses.py +68 -0
  219. aria_code/apps/cli/providers/llm/ollama_stream.py +1574 -0
  220. aria_code/apps/cli/providers/llm/response_cache.py +60 -0
  221. aria_code/apps/cli/providers/llm/sse_stream.py +298 -0
  222. aria_code/apps/cli/providers/runtime_bridge.py +586 -0
  223. aria_code/apps/cli/providers/vertexai_stream.py +592 -0
  224. aria_code/apps/cli/release_download.py +159 -0
  225. aria_code/apps/cli/review_runner.py +111 -0
  226. aria_code/apps/cli/runtime_consumer.py +769 -0
  227. aria_code/apps/cli/sandbox.py +32 -0
  228. aria_code/apps/cli/session_export.py +120 -0
  229. aria_code/apps/cli/session_jsonl.py +208 -0
  230. aria_code/apps/cli/session_refresh.py +123 -0
  231. aria_code/apps/cli/session_store.py +125 -0
  232. aria_code/apps/cli/skills_catalog.py +273 -0
  233. aria_code/apps/cli/task_isolation.py +211 -0
  234. aria_code/apps/cli/terminal_chrome.py +412 -0
  235. aria_code/apps/cli/todo_tracker.py +190 -0
  236. aria_code/apps/cli/tool_executor.py +932 -0
  237. aria_code/apps/cli/tool_registry.py +34 -0
  238. aria_code/apps/cli/tool_scope.py +113 -0
  239. aria_code/apps/cli/tools/__init__.py +40 -0
  240. aria_code/apps/cli/tools/context.py +46 -0
  241. aria_code/apps/cli/tools/file_tools.py +181 -0
  242. aria_code/apps/cli/tools/market_tools.py +626 -0
  243. aria_code/apps/cli/tools/notebook_tools.py +111 -0
  244. aria_code/apps/cli/tools/system_tools.py +656 -0
  245. aria_code/apps/cli/tools/write_tools.py +961 -0
  246. aria_code/apps/cli/tradingview_bridge.py +529 -0
  247. aria_code/apps/cli/transactions.py +269 -0
  248. aria_code/apps/cli/turn_planning.py +137 -0
  249. aria_code/apps/cli/update_check.py +257 -0
  250. aria_code/apps/cli/updater.py +373 -0
  251. aria_code/apps/cli/utils/__init__.py +0 -0
  252. aria_code/apps/cli/utils/market_detect.py +1663 -0
  253. aria_code/apps/cli/web_login.py +136 -0
  254. aria_code/apps/cli/workflow_runner.py +127 -0
  255. aria_code/apps/cli/workspace_route.py +121 -0
  256. aria_code/apps/daemon/README.md +14 -0
  257. aria_code/apps/vscode/README.md +115 -0
  258. aria_code/apps/vscode/package.json +70 -0
  259. aria_code/aria_cli.py +5244 -0
  260. aria_code/aria_daemon.py +1372 -0
  261. aria_code/aria_feishu_bot.py +16 -0
  262. aria_code/aria_mcp_server.py +61 -0
  263. aria_code/aria_relay_client.py +4 -0
  264. aria_code/aria_telegram_bot.py +11 -0
  265. aria_code/ariarc.py +385 -0
  266. aria_code/artifacts.py +581 -0
  267. aria_code/backtest_engine.py +4 -0
  268. aria_code/backtest_report.py +4 -0
  269. aria_code/brokers/__init__.py +78 -0
  270. aria_code/brokers/automation.py +193 -0
  271. aria_code/brokers/base.py +231 -0
  272. aria_code/brokers/capabilities.py +264 -0
  273. aria_code/brokers/cn/__init__.py +10 -0
  274. aria_code/brokers/cn/easytrader_broker.py +193 -0
  275. aria_code/brokers/cn/futu_broker.py +194 -0
  276. aria_code/brokers/cn/longbridge_broker.py +190 -0
  277. aria_code/brokers/cn/tiger_broker.py +196 -0
  278. aria_code/brokers/cn/xtquant_broker.py +225 -0
  279. aria_code/brokers/config.py +414 -0
  280. aria_code/brokers/intl/__init__.py +5 -0
  281. aria_code/brokers/intl/alpaca_broker.py +183 -0
  282. aria_code/brokers/intl/ibkr_broker.py +215 -0
  283. aria_code/brokers/intl/trading212_broker.py +183 -0
  284. aria_code/brokers/intl/webull_broker.py +156 -0
  285. aria_code/brokers/paper_broker.py +266 -0
  286. aria_code/brokers/planning.py +296 -0
  287. aria_code/brokers/registry.py +213 -0
  288. aria_code/brokers/trading.py +267 -0
  289. aria_code/canva_client.py +4 -0
  290. aria_code/change_store.py +127 -0
  291. aria_code/clients/__init__.py +0 -0
  292. aria_code/clients/aliyun_data_client.py +660 -0
  293. aria_code/clients/aria_relay_client.py +16 -0
  294. aria_code/clients/canva_client.py +284 -0
  295. aria_code/clients/figma_client.py +100 -0
  296. aria_code/clients/football_data_client.py +1671 -0
  297. aria_code/clients/kling_video_client.py +182 -0
  298. aria_code/clients/market_data_client.py +1985 -0
  299. aria_code/clients/openai_image_client.py +242 -0
  300. aria_code/clients/runway_video_client.py +157 -0
  301. aria_code/clients/warehouse_erp_client.py +105 -0
  302. aria_code/cloud_memory.py +190 -0
  303. aria_code/command_safety.py +19 -0
  304. aria_code/computer_use_server.py +276 -0
  305. aria_code/computer_use_tools.py +4 -0
  306. aria_code/dashboard_generator.py +579 -0
  307. aria_code/data_analysis_tools.py +4 -0
  308. aria_code/data_cleaner.py +483 -0
  309. aria_code/data_service.py +513 -0
  310. aria_code/datasources/__init__.py +23 -0
  311. aria_code/datasources/base.py +166 -0
  312. aria_code/datasources/router.py +253 -0
  313. aria_code/datasources/sec_statements.py +217 -0
  314. aria_code/datasources/sources/__init__.py +15 -0
  315. aria_code/datasources/sources/akshare_source.py +269 -0
  316. aria_code/datasources/sources/alpha_vantage_source.py +203 -0
  317. aria_code/datasources/sources/edgar_source.py +219 -0
  318. aria_code/datasources/sources/finnhub_source.py +198 -0
  319. aria_code/datasources/sources/fred_source.py +223 -0
  320. aria_code/datasources/sources/tushare_source.py +143 -0
  321. aria_code/datasources/sources/web_scraper_source.py +278 -0
  322. aria_code/datasources/sources/world_bank_source.py +206 -0
  323. aria_code/datasources/sources/yfinance_source.py +152 -0
  324. aria_code/doctor.py +860 -0
  325. aria_code/domain/__init__.py +0 -0
  326. aria_code/domain/_finance_core/__init__.py +5 -0
  327. aria_code/domain/_finance_core/backtest_engine.py +325 -0
  328. aria_code/domain/_finance_core/performance_stats.py +101 -0
  329. aria_code/domain/backtest_engine.py +75 -0
  330. aria_code/domain/backtest_report.py +488 -0
  331. aria_code/domain/finance_formulas.py +389 -0
  332. aria_code/domain/performance_stats.py +6 -0
  333. aria_code/domain/portfolio_ledger.py +307 -0
  334. aria_code/domain/strategy_vault.py +421 -0
  335. aria_code/evals/__init__.py +37 -0
  336. aria_code/evals/behavior.py +113 -0
  337. aria_code/evals/gap.py +93 -0
  338. aria_code/evals/harness.py +949 -0
  339. aria_code/evals/review_probe.py +132 -0
  340. aria_code/evals/runner.py +425 -0
  341. aria_code/evals/scorecard.py +322 -0
  342. aria_code/evals/summary.py +125 -0
  343. aria_code/external_agent_runner.py +115 -0
  344. aria_code/figma_client.py +4 -0
  345. aria_code/file_analysis_tools.py +4 -0
  346. aria_code/finance_formulas.py +4 -0
  347. aria_code/football_data_client.py +4 -0
  348. aria_code/image_gen_tools.py +4 -0
  349. aria_code/intent_classifier.py +459 -0
  350. aria_code/kling_video_client.py +4 -0
  351. aria_code/licensing.py +151 -0
  352. aria_code/local_finance_tools.py +4 -0
  353. aria_code/local_image_provider.py +4 -0
  354. aria_code/local_llm_provider.py +4 -0
  355. aria_code/macro_tools.py +4 -0
  356. aria_code/markdown_pdf.py +289 -0
  357. aria_code/market_data_client.py +4 -0
  358. aria_code/mcp_client.py +744 -0
  359. aria_code/memory_manager.py +273 -0
  360. aria_code/model_capability.py +512 -0
  361. aria_code/notification_tools.py +4 -0
  362. aria_code/openai_image_client.py +4 -0
  363. aria_code/packages/__init__.py +26 -0
  364. aria_code/packages/adk_bridge/__init__.py +11 -0
  365. aria_code/packages/adk_bridge/code_review_tools.py +49 -0
  366. aria_code/packages/adk_bridge/market_tools.py +125 -0
  367. aria_code/packages/aria_agents/__init__.py +5 -0
  368. aria_code/packages/aria_agents/manifest.py +78 -0
  369. aria_code/packages/aria_core/__init__.py +34 -0
  370. aria_code/packages/aria_core/architecture.py +269 -0
  371. aria_code/packages/aria_core/export.py +147 -0
  372. aria_code/packages/aria_core/manifest.py +65 -0
  373. aria_code/packages/aria_core/paths.py +57 -0
  374. aria_code/packages/aria_core/secure_file.py +68 -0
  375. aria_code/packages/aria_infra/__init__.py +15 -0
  376. aria_code/packages/aria_infra/arthera.py +58 -0
  377. aria_code/packages/aria_infra/doctor.py +246 -0
  378. aria_code/packages/aria_infra/product.py +40 -0
  379. aria_code/packages/aria_mcp/__init__.py +25 -0
  380. aria_code/packages/aria_mcp/bridge.py +232 -0
  381. aria_code/packages/aria_mcp/circuit.py +82 -0
  382. aria_code/packages/aria_mcp/config.py +162 -0
  383. aria_code/packages/aria_mcp/installer.py +95 -0
  384. aria_code/packages/aria_mcp/server.py +1705 -0
  385. aria_code/packages/aria_mcp/tools.py +81 -0
  386. aria_code/packages/aria_sdk/__init__.py +19 -0
  387. aria_code/packages/aria_sdk/client.py +393 -0
  388. aria_code/packages/aria_sdk/providers.py +70 -0
  389. aria_code/packages/aria_sdk/streaming.py +75 -0
  390. aria_code/packages/aria_sdk/types.py +86 -0
  391. aria_code/packages/aria_services/__init__.py +92 -0
  392. aria_code/packages/aria_services/cache.py +60 -0
  393. aria_code/packages/aria_services/context.py +356 -0
  394. aria_code/packages/aria_services/context_checkpoints.py +157 -0
  395. aria_code/packages/aria_services/data.py +11 -0
  396. aria_code/packages/aria_services/provider_health.py +304 -0
  397. aria_code/packages/aria_services/references.py +247 -0
  398. aria_code/packages/aria_services/registry.py +249 -0
  399. aria_code/packages/aria_services/research_protocol.py +137 -0
  400. aria_code/packages/aria_services/research_quality.py +186 -0
  401. aria_code/packages/aria_services/settings.py +160 -0
  402. aria_code/packages/aria_services/usage.py +151 -0
  403. aria_code/packages/aria_skills/__init__.py +46 -0
  404. aria_code/packages/aria_skills/catalog.py +149 -0
  405. aria_code/packages/aria_skills/loader.py +455 -0
  406. aria_code/packages/aria_skills/registry.py +84 -0
  407. aria_code/packages/aria_tools/__init__.py +5 -0
  408. aria_code/packages/aria_tools/financial/__init__.py +5 -0
  409. aria_code/packages/aria_tools/financial/_paths.py +92 -0
  410. aria_code/packages/aria_tools/registry.py +129 -0
  411. aria_code/packages/quant_engine/__init__.py +33 -0
  412. aria_code/packages/quant_engine/_namespace.py +24 -0
  413. aria_code/packages/quant_engine/backtest/__init__.py +10 -0
  414. aria_code/packages/quant_engine/backtest/core.py +53 -0
  415. aria_code/packages/quant_engine/backtest/engine.py +102 -0
  416. aria_code/packages/quant_engine/portfolio/__init__.py +9 -0
  417. aria_code/packages/quant_engine/portfolio/optimizer.py +85 -0
  418. aria_code/packages/quant_engine/sports/__init__.py +76 -0
  419. aria_code/packages/quant_engine/sports/calibrator.py +354 -0
  420. aria_code/packages/quant_engine/sports/dixon_coles.py +234 -0
  421. aria_code/packages/quant_engine/sports/elo.py +300 -0
  422. aria_code/packages/quant_engine/sports/form.py +188 -0
  423. aria_code/packages/quant_engine/sports/h2h.py +195 -0
  424. aria_code/packages/quant_engine/sports/predictor.py +312 -0
  425. aria_code/packages/quant_engine/sports/tracker.py +665 -0
  426. aria_code/packages/quant_engine/stochastic/__init__.py +31 -0
  427. aria_code/packages/quant_engine/stochastic/gbm_enhanced.py +195 -0
  428. aria_code/packages/quant_engine/stochastic/ito_calculus.py +477 -0
  429. aria_code/packages/quant_engine/stochastic/kelly_criterion.py +181 -0
  430. aria_code/packages/quant_engine/stochastic/monte_carlo_advanced.py +95 -0
  431. aria_code/packages/quant_engine/stochastic/options_pricing.py +576 -0
  432. aria_code/packages/quant_engine/stochastic/stochastic_processes.py +90 -0
  433. aria_code/packs/__init__.py +85 -0
  434. aria_code/packs/base.py +168 -0
  435. aria_code/packs/finance/__init__.py +250 -0
  436. aria_code/packs/healthcare/__init__.py +40 -0
  437. aria_code/packs/logistics/__init__.py +171 -0
  438. aria_code/packs/payments/__init__.py +139 -0
  439. aria_code/packs/realty/__init__.py +190 -0
  440. aria_code/packs/registry.py +202 -0
  441. aria_code/packs/rules.py +90 -0
  442. aria_code/plan_utils.py +194 -0
  443. aria_code/plugin_loader.py +328 -0
  444. aria_code/portfolio_ledger.py +4 -0
  445. aria_code/preview_server.py +449 -0
  446. aria_code/privacy/__init__.py +5 -0
  447. aria_code/privacy/feedback.py +123 -0
  448. aria_code/project_review.py +278 -0
  449. aria_code/project_review_api.py +235 -0
  450. aria_code/project_review_server.py +18 -0
  451. aria_code/project_tools.py +4 -0
  452. aria_code/providers/__init__.py +30 -0
  453. aria_code/providers/google_video_provider.py +256 -0
  454. aria_code/providers/llm/__init__.py +19 -0
  455. aria_code/providers/llm/anthropic.py +184 -0
  456. aria_code/providers/llm/arthera_gateway.py +90 -0
  457. aria_code/providers/llm/autoconfig.py +213 -0
  458. aria_code/providers/llm/base.py +139 -0
  459. aria_code/providers/llm/custom.py +158 -0
  460. aria_code/providers/llm/ollama.py +137 -0
  461. aria_code/providers/llm/openai_compat.py +350 -0
  462. aria_code/providers/llm/registry.py +457 -0
  463. aria_code/providers/local_image_provider.py +202 -0
  464. aria_code/providers/local_llm_provider.py +549 -0
  465. aria_code/providers/ollama_models.py +79 -0
  466. aria_code/providers/openai_params.py +32 -0
  467. aria_code/providers/tool_messages.py +100 -0
  468. aria_code/realty_data_tools.py +4 -0
  469. aria_code/report_exporters.py +150 -0
  470. aria_code/report_generator.py +1764 -0
  471. aria_code/review_service.py +497 -0
  472. aria_code/runtime/__init__.py +176 -0
  473. aria_code/runtime/acceptance.py +632 -0
  474. aria_code/runtime/agent_loop.py +1851 -0
  475. aria_code/runtime/agent_profiles.py +75 -0
  476. aria_code/runtime/approval.py +71 -0
  477. aria_code/runtime/baseline.py +219 -0
  478. aria_code/runtime/budget.py +232 -0
  479. aria_code/runtime/checkpoints.py +481 -0
  480. aria_code/runtime/consult.py +65 -0
  481. aria_code/runtime/contract.py +282 -0
  482. aria_code/runtime/delivery.py +432 -0
  483. aria_code/runtime/events.py +113 -0
  484. aria_code/runtime/gateway.py +167 -0
  485. aria_code/runtime/lsp.py +484 -0
  486. aria_code/runtime/native_index.py +153 -0
  487. aria_code/runtime/orchestrator.py +55 -0
  488. aria_code/runtime/processes.py +343 -0
  489. aria_code/runtime/project_graph.py +614 -0
  490. aria_code/runtime/repo_map.py +712 -0
  491. aria_code/runtime/research_bundle.py +105 -0
  492. aria_code/runtime/review.py +269 -0
  493. aria_code/runtime/run_state.py +127 -0
  494. aria_code/runtime/run_store.py +522 -0
  495. aria_code/runtime/scoped_runs.py +113 -0
  496. aria_code/runtime/self_healing.py +422 -0
  497. aria_code/runtime/semantic_diff.py +171 -0
  498. aria_code/runtime/subagent.py +721 -0
  499. aria_code/runtime/symbol_edit.py +117 -0
  500. aria_code/runtime/task_brief.py +46 -0
  501. aria_code/runtime/task_context.py +145 -0
  502. aria_code/runtime/task_ledger.py +108 -0
  503. aria_code/runtime/task_orchestrator.py +90 -0
  504. aria_code/runtime/task_outcome.py +33 -0
  505. aria_code/runtime/task_verification.py +266 -0
  506. aria_code/runtime/task_worktree.py +448 -0
  507. aria_code/runtime/tool_executor.py +329 -0
  508. aria_code/runtime/tool_policy.py +107 -0
  509. aria_code/runtime/transactions.py +216 -0
  510. aria_code/runtime/windows_job.py +115 -0
  511. aria_code/runtime/workflows.py +222 -0
  512. aria_code/runtime/worktrees.py +215 -0
  513. aria_code/runway_video_client.py +4 -0
  514. aria_code/safety/__init__.py +27 -0
  515. aria_code/safety/client_isolation.py +178 -0
  516. aria_code/safety/permissions.py +339 -0
  517. aria_code/safety/risk.py +699 -0
  518. aria_code/safety/sandbox.py +148 -0
  519. aria_code/safety/service.py +102 -0
  520. aria_code/service_endpoints.py +14 -0
  521. aria_code/setup_wizard.py +684 -0
  522. aria_code/spreadsheet_tools.py +4 -0
  523. aria_code/strategy_vault.py +4 -0
  524. aria_code/tools/__init__.py +0 -0
  525. aria_code/tools/artifact_tools.py +252 -0
  526. aria_code/tools/broker_tools.py +92 -0
  527. aria_code/tools/build_quant_engine.py +97 -0
  528. aria_code/tools/code_audit_tools.py +192 -0
  529. aria_code/tools/computer_use_tools.py +509 -0
  530. aria_code/tools/data_analysis_tools.py +831 -0
  531. aria_code/tools/enterprise_finance_tools.py +202 -0
  532. aria_code/tools/extended_tools.py +240 -0
  533. aria_code/tools/file_analysis_tools.py +880 -0
  534. aria_code/tools/image_gen_tools.py +114 -0
  535. aria_code/tools/local_finance_tools.py +3488 -0
  536. aria_code/tools/logistics_carriers.py +11 -0
  537. aria_code/tools/logistics_inventory.py +11 -0
  538. aria_code/tools/logistics_io.py +11 -0
  539. aria_code/tools/logistics_tenancy.py +11 -0
  540. aria_code/tools/logistics_tools.py +11 -0
  541. aria_code/tools/macro_tools.py +412 -0
  542. aria_code/tools/notification_tools.py +249 -0
  543. aria_code/tools/project_tools.py +525 -0
  544. aria_code/tools/realty_data_tools.py +662 -0
  545. aria_code/tools/spreadsheet_tools.py +399 -0
  546. aria_code/tools/stripe_tools.py +115 -0
  547. aria_code/tools/video_tools.py +500 -0
  548. aria_code/training/__init__.py +1 -0
  549. aria_code/training/compare.py +117 -0
  550. aria_code/training/prelude_commands.py +111 -0
  551. aria_code/training/prelude_eval.py +390 -0
  552. aria_code/training/prelude_real.py +183 -0
  553. aria_code/training/prelude_train.py +248 -0
  554. aria_code/training/sft_dataset.py +230 -0
  555. aria_code/training/trajectory_dataset.py +263 -0
  556. aria_code/ui/__init__.py +105 -0
  557. aria_code/ui/banner.py +404 -0
  558. aria_code/ui/completer.py +571 -0
  559. aria_code/ui/console.py +285 -0
  560. aria_code/ui/input_box.py +505 -0
  561. aria_code/ui/mentions.py +206 -0
  562. aria_code/ui/picker.py +248 -0
  563. aria_code/ui/render/__init__.py +11 -0
  564. aria_code/ui/render/actions.py +297 -0
  565. aria_code/ui/render/finance.py +1732 -0
  566. aria_code/ui/render/market.py +253 -0
  567. aria_code/ui/render/output.py +954 -0
  568. aria_code/ui/render/responsive.py +75 -0
  569. aria_code/ui/render/team.py +367 -0
  570. aria_code/ui/robot.py +239 -0
  571. aria_code/ui/startup_dashboard.py +110 -0
  572. aria_code/video_analysis.py +147 -0
  573. aria_code/video_editor.py +518 -0
  574. aria_code/video_workflow/__init__.py +8 -0
  575. aria_code/video_workflow/__main__.py +61 -0
  576. aria_code/video_workflow/engines/__init__.py +18 -0
  577. aria_code/video_workflow/engines/base.py +69 -0
  578. aria_code/video_workflow/engines/custom_model.py +204 -0
  579. aria_code/video_workflow/engines/google_veo.py +94 -0
  580. aria_code/video_workflow/engines/local_engine.py +71 -0
  581. aria_code/video_workflow/engines/registry.py +98 -0
  582. aria_code/video_workflow/google_models.py +278 -0
  583. aria_code/video_workflow/music/__init__.py +5 -0
  584. aria_code/video_workflow/music/foley_service.py +132 -0
  585. aria_code/video_workflow/music/service.py +212 -0
  586. aria_code/video_workflow/pipeline.py +620 -0
  587. aria_code/video_workflow/plan.py +202 -0
  588. aria_code/video_workflow/session.py +297 -0
  589. aria_code/workspace/__init__.py +6 -0
  590. aria_code/workspace/files.py +219 -0
  591. aria_code/workspace/verify.py +167 -0
  592. aria_code/workspace_changes.py +199 -0
  593. aria_code/workspace_service.py +196 -0
  594. aria_code/workspace_tools.py +150 -0
  595. aria_code-0.167.0.dist-info/METADATA +330 -0
  596. aria_code-0.167.0.dist-info/RECORD +601 -0
  597. aria_code-0.167.0.dist-info/WHEEL +5 -0
  598. aria_code-0.167.0.dist-info/entry_points.txt +5 -0
  599. aria_code-0.167.0.dist-info/licenses/LICENSE +201 -0
  600. aria_code-0.167.0.dist-info/licenses/NOTICE +49 -0
  601. aria_code-0.167.0.dist-info/top_level.txt +2 -0
@@ -0,0 +1,550 @@
1
+ """本地工具的 JSON Schema 定义 —— 从 aria_cli.py 抽出(437 行)。
2
+
3
+ 这 20 个 schema 是纯数据:描述本地工具(文件读写、命令执行、待办、浏览器、
4
+ 经纪商查询等)暴露给模型的参数结构。原本内联在 aria_cli.py 第 1563-1999 行的
5
+ 一个 `LOCAL_TOOL_SCHEMAS.extend([...])` 里。
6
+
7
+ 抽出来的原因:它跟周围的代码没有任何耦合——那一段的上下文全是
8
+ `try: from x import y / LOCAL_TOOLS.update(...)` 这类**有执行顺序依赖**的注册
9
+ 副作用,而 schema 本身只是字面量。混在一起既让文件变长,也让人误以为它们同样
10
+ 敏感于顺序。
11
+
12
+ 刻意做成函数而不是模块级常量:原文里两处依赖外部值——
13
+ _todo_schema() 由调用方传入(它在 aria_cli 里定义,抽过来会带出更多依赖)
14
+ CONFIG_DIR 只用于一句描述文案的插值
15
+ 做成函数后这两个变成显式参数,模块本身零外部依赖,可独立测试。
16
+ """
17
+
18
+ from __future__ import annotations
19
+
20
+ from typing import Any, Callable, Dict, List
21
+
22
+ __all__ = ["build_local_tool_schemas"]
23
+
24
+
25
+ def build_local_tool_schemas(
26
+ *,
27
+ todo_schema: Dict[str, Any],
28
+ config_dir: Any,
29
+ ) -> List[Dict[str, Any]]:
30
+ """返回本地工具的 schema 列表。
31
+
32
+ Args:
33
+ todo_schema: 待办工具的 schema(由 aria_cli._todo_schema() 产生)
34
+ config_dir: 配置目录,仅用于 broker 参数的描述文案
35
+ """
36
+ CONFIG_DIR = config_dir # 保持原文插值写法不变,减少搬运时的改动面
37
+ return [
38
+ todo_schema,
39
+ {
40
+ "type": "function",
41
+ "function": {
42
+ "name": "read_file",
43
+ "description": "Read the contents of a file. Use this to understand existing code before modifying it.",
44
+ "parameters": {
45
+ "type": "object",
46
+ "properties": {
47
+ "path": {"type": "string", "description": "Absolute or relative file path"},
48
+ "offset": {"type": "integer", "description": "Start line (0-based), optional"},
49
+ "limit": {"type": "integer", "description": "Number of lines to read, optional"},
50
+ },
51
+ "required": ["path"],
52
+ },
53
+ },
54
+ },
55
+ {
56
+ "type": "function",
57
+ "function": {
58
+ "name": "analyze_file",
59
+ "description": (
60
+ "Parse and analyze a local document, image, or video the user uploaded/referenced. "
61
+ "Handles pdf, docx, xls/xlsx, csv/tsv, json, html, markdown, code, images "
62
+ "(png/jpg/gif/webp/bmp), and video (mp4/mov/avi/mkv/webm — extracts metadata + "
63
+ "keyframes for the vision model). Extracts text + metadata; images/keyframes are "
64
+ "sent to the vision model so a vision-capable model can see them. Use this (not "
65
+ "read_file) for non-plain-text files like PDFs, spreadsheets, screenshots, or clips."
66
+ ),
67
+ "parameters": {
68
+ "type": "object",
69
+ "properties": {
70
+ "path": {"type": "string", "description": "Path to the file to analyze"},
71
+ "max_chars": {"type": "integer", "description": "Max extracted text to return (default 6000; raise for long docs)"},
72
+ },
73
+ "required": ["path"],
74
+ },
75
+ },
76
+ },
77
+ {
78
+ "type": "function",
79
+ "function": {
80
+ "name": "write_file",
81
+ "description": "Create a new file or overwrite an existing file with the given content.",
82
+ "parameters": {
83
+ "type": "object",
84
+ "properties": {
85
+ "path": {"type": "string", "description": "File path to write to"},
86
+ "content": {"type": "string", "description": "Complete file content to write"},
87
+ },
88
+ "required": ["path", "content"],
89
+ },
90
+ },
91
+ },
92
+ {
93
+ "type": "function",
94
+ "function": {
95
+ "name": "edit_file",
96
+ "description": (
97
+ "Edit a file by replacing old_string with new_string. Read the file first to get the exact "
98
+ "text to replace. old_string must match exactly one place: include enough surrounding lines "
99
+ "to make it unique, or set replace_all to change every match. To change a whole function, "
100
+ "method or class, pass symbol instead of old_string (e.g. symbol=\"Session.refresh\"): "
101
+ "new_string is then the complete new definition, or with position=\"after\" the code to "
102
+ "insert after it."
103
+ ),
104
+ "parameters": {
105
+ "type": "object",
106
+ "properties": {
107
+ "path": {"type": "string", "description": "File path to edit"},
108
+ "old_string": {"type": "string", "description": "Exact text to find and replace (must match exactly)"},
109
+ "new_string": {"type": "string", "description": "Replacement text"},
110
+ "replace_all": {"type": "boolean", "description": "Replace every match instead of requiring exactly one (default false)"},
111
+ "symbol": {"type": "string", "description": "Instead of old_string: the definition to edit, by name or Class.method"},
112
+ "position": {"type": "string", "enum": ["replace", "after"], "description": "With symbol: replace the definition (default) or insert new_string after it"},
113
+ },
114
+ "required": ["path", "new_string"],
115
+ },
116
+ },
117
+ },
118
+ {
119
+ "type": "function",
120
+ "function": {
121
+ "name": "multi_edit",
122
+ "description": (
123
+ "Apply several edits to ONE file in a single atomic operation — all succeed or "
124
+ "none are applied. Use this instead of multiple edit_file calls when changing "
125
+ "several spots in the same file. Edits apply in order; a later edit can match "
126
+ "text a previous edit produced."
127
+ ),
128
+ "parameters": {
129
+ "type": "object",
130
+ "properties": {
131
+ "path": {"type": "string", "description": "File path to edit"},
132
+ "edits": {
133
+ "type": "array",
134
+ "description": "Ordered list of edits to apply",
135
+ "items": {
136
+ "type": "object",
137
+ "properties": {
138
+ "old_string": {"type": "string", "description": "Exact text to find (must match exactly)"},
139
+ "new_string": {"type": "string", "description": "Replacement text"},
140
+ "replace_all": {"type": "boolean", "description": "Replace all occurrences (default false)"},
141
+ },
142
+ "required": ["old_string", "new_string"],
143
+ },
144
+ },
145
+ },
146
+ "required": ["path", "edits"],
147
+ },
148
+ },
149
+ },
150
+ {
151
+ "type": "function",
152
+ "function": {
153
+ "name": "list_files",
154
+ "description": "List files in a directory. Use glob patterns like '**/*.py' to filter.",
155
+ "parameters": {
156
+ "type": "object",
157
+ "properties": {
158
+ "path": {"type": "string", "description": "Directory path (default: current dir)"},
159
+ "pattern": {"type": "string", "description": "Glob pattern (default: *)"},
160
+ },
161
+ "required": [],
162
+ },
163
+ },
164
+ },
165
+ {
166
+ "type": "function",
167
+ "function": {
168
+ "name": "list_dir",
169
+ "description": "List files in a directory (alias for list_files). Use glob patterns like '**/*.py' to filter.",
170
+ "parameters": {
171
+ "type": "object",
172
+ "properties": {
173
+ "path": {"type": "string", "description": "Directory path (default: current dir)"},
174
+ "pattern": {"type": "string", "description": "Glob pattern (default: *)"},
175
+ },
176
+ "required": [],
177
+ },
178
+ },
179
+ },
180
+ {
181
+ "type": "function",
182
+ "function": {
183
+ "name": "search_code",
184
+ "description": "Search for a regex pattern in source files. Returns matching lines with file paths and line numbers.",
185
+ "parameters": {
186
+ "type": "object",
187
+ "properties": {
188
+ "pattern": {"type": "string", "description": "Regex pattern to search for"},
189
+ "path": {"type": "string", "description": "Directory to search in (default: current dir)"},
190
+ "glob": {"type": "string", "description": "File glob filter (default: **/*.py)"},
191
+ },
192
+ "required": ["pattern"],
193
+ },
194
+ },
195
+ },
196
+ {
197
+ "type": "function",
198
+ "function": {
199
+ "name": "search",
200
+ "description": "Search for a regex pattern in source files (alias for search_code).",
201
+ "parameters": {
202
+ "type": "object",
203
+ "properties": {
204
+ "pattern": {"type": "string", "description": "Regex pattern to search for"},
205
+ "path": {"type": "string", "description": "Directory to search in (default: current dir)"},
206
+ "glob": {"type": "string", "description": "File glob filter (default: **/*.py)"},
207
+ },
208
+ "required": ["pattern"],
209
+ },
210
+ },
211
+ },
212
+ {
213
+ "type": "function",
214
+ "function": {
215
+ "name": "run_command",
216
+ "description": "Run a shell command. Use for: git, pip, python, pytest, ls, etc. For a server, watcher or anything that keeps running, set background=true.",
217
+ "parameters": {
218
+ "type": "object",
219
+ "properties": {
220
+ "command": {"type": "string", "description": "Shell command to run"},
221
+ "cwd": {"type": "string", "description": "Working directory (optional)"},
222
+ "timeout": {"type": "integer", "description": "Timeout in seconds (max 300, default 120). Use 180+ for data-heavy scripts."},
223
+ "background": {"type": "boolean", "description": "Start a long-running command (dev server, watcher, interactive program) and return at once with a process_id; use the process tool to read its output, send input or stop it"},
224
+ "wait_seconds": {"type": "number", "description": "With background: how long to wait for first output (default 3, max 30)"},
225
+ "until": {"type": "string", "description": "With background: return as soon as this regex appears in the output, e.g. 'Listening on'"},
226
+ "sandbox": {"type": "boolean", "description": "Set to true to securely execute the command inside an isolated Docker container instead of the host machine. Mandatory for running third-party or untested code."}
227
+ },
228
+ "required": ["command"],
229
+ },
230
+ },
231
+ },
232
+ # ── Extended tools ─────────────────────────────────────────────────────────
233
+ {
234
+ "type": "function",
235
+ "function": {
236
+ "name": "web_fetch",
237
+ "description": (
238
+ "Fetch the text/content of any URL: web pages, GitHub files, "
239
+ "documentation, API responses, PyPI pages. "
240
+ "GitHub blob URLs are auto-converted to raw content. "
241
+ "Use this to read docs, README files, or look up library APIs."
242
+ ),
243
+ "parameters": {
244
+ "type": "object",
245
+ "properties": {
246
+ "url": {"type": "string", "description": "Full URL to fetch (https://)"},
247
+ "max_chars": {"type": "integer", "description": "Max characters to return (default 12000, max 40000)"},
248
+ "timeout": {"type": "integer", "description": "Request timeout seconds (default 15, max 30)"},
249
+ },
250
+ "required": ["url"],
251
+ },
252
+ },
253
+ },
254
+ {
255
+ "type": "function",
256
+ "function": {
257
+ "name": "github",
258
+ "description": (
259
+ "GitHub integration via gh CLI. Actions: "
260
+ "list_prs, list_issues, view_pr, view_issue, create_pr, "
261
+ "list_commits, search, read_file, pr_diff, pr_checks. "
262
+ "Use cwd to specify repo directory. "
263
+ "Requires: gh CLI installed and authenticated (gh auth login)."
264
+ ),
265
+ "parameters": {
266
+ "type": "object",
267
+ "properties": {
268
+ "action": {"type": "string", "description": "Action to perform (list_prs|list_issues|view_pr|view_issue|create_pr|list_commits|search|read_file|pr_diff|pr_checks)"},
269
+ "number": {"type": "integer","description": "PR or issue number (for view_pr, view_issue, pr_diff)"},
270
+ "title": {"type": "string", "description": "PR title (for create_pr)"},
271
+ "body": {"type": "string", "description": "PR body (for create_pr)"},
272
+ "branch": {"type": "string", "description": "Head branch (for create_pr)"},
273
+ "base": {"type": "string", "description": "Base branch (for create_pr, default main)"},
274
+ "state": {"type": "string", "description": "Filter state: open|closed|all (default open)"},
275
+ "limit": {"type": "integer","description": "Max results (default 20)"},
276
+ "q": {"type": "string", "description": "Search query (for search action)"},
277
+ "kind": {"type": "string", "description": "Search kind: code|issues|repos (default code)"},
278
+ "ref": {"type": "string", "description": "File ref in owner/repo@branch:path format (for read_file)"},
279
+ "cwd": {"type": "string", "description": "Working directory (git repo root)"},
280
+ },
281
+ "required": ["action"],
282
+ },
283
+ },
284
+ },
285
+ {
286
+ "type": "function",
287
+ "function": {
288
+ "name": "glob",
289
+ "description": (
290
+ "Fast file-pattern search. Returns a sorted list of matching file paths. "
291
+ "Supports ** recursive globs: e.g. '**/*.py', 'src/**/*.ts', '*.json'. "
292
+ "Use this to discover files before reading them."
293
+ ),
294
+ "parameters": {
295
+ "type": "object",
296
+ "properties": {
297
+ "pattern": {"type": "string", "description": "Glob pattern (e.g. **/*.py, src/**/*.ts)"},
298
+ "path": {"type": "string", "description": "Root directory to search (default: current dir)"},
299
+ "limit": {"type": "integer","description": "Max files to return (default 200)"},
300
+ },
301
+ "required": ["pattern"],
302
+ },
303
+ },
304
+ },
305
+ {
306
+ "type": "function",
307
+ "function": {
308
+ "name": "notebook_read",
309
+ "description": "Read a Jupyter notebook (.ipynb) — returns all cells with source and outputs as formatted text.",
310
+ "parameters": {
311
+ "type": "object",
312
+ "properties": {
313
+ "path": {"type": "string", "description": "Path to the .ipynb file"},
314
+ },
315
+ "required": ["path"],
316
+ },
317
+ },
318
+ },
319
+ {
320
+ "type": "function",
321
+ "function": {
322
+ "name": "notebook_edit",
323
+ "description": "Edit a specific cell in a Jupyter notebook by its index (0-based). Clears cell outputs after edit.",
324
+ "parameters": {
325
+ "type": "object",
326
+ "properties": {
327
+ "path": {"type": "string", "description": "Path to the .ipynb file"},
328
+ "cell_index": {"type": "integer", "description": "0-based cell index to replace"},
329
+ "new_source": {"type": "string", "description": "New cell source code/text"},
330
+ },
331
+ "required": ["path", "cell_index", "new_source"],
332
+ },
333
+ },
334
+ },
335
+ {
336
+ "type": "function",
337
+ "function": {
338
+ "name": "get_market_data",
339
+ "description": (
340
+ "Fetch real-time market data for any stock, ETF, index, or cryptocurrency. "
341
+ "Returns price, change, high/low, volume, RSI(14), MACD histogram, MA20/60, "
342
+ "Bollinger Bands. Supports: US tickers (AAPL, NVDA), A-shares (6-digit code like 600519), "
343
+ "HK stocks (0700.HK), crypto (BTC, ETH), indices (SPY, QQQ). "
344
+ "You must look up the correct ticker symbol yourself — e.g. LVMH → MC.PA, "
345
+ "路易威登/路易斯威登 → MC.PA or LVMUY, 宝马 → BMW.DE, 大众 → VWAGY."
346
+ ),
347
+ "parameters": {
348
+ "type": "object",
349
+ "properties": {
350
+ "symbol": {
351
+ "type": "string",
352
+ "description": (
353
+ "Ticker symbol. Examples: AAPL, NVDA, 600519, 0700.HK, BTC, MC.PA. "
354
+ "For A-shares use the 6-digit code without exchange suffix. "
355
+ "Do NOT guess — if unsure about a ticker, say so and ask the user."
356
+ ),
357
+ },
358
+ },
359
+ "required": ["symbol"],
360
+ },
361
+ },
362
+ },
363
+ {
364
+ "type": "function",
365
+ "function": {
366
+ "name": "get_market_history",
367
+ "description": (
368
+ "Fetch OHLC price history for a stock, ETF, index, or cryptocurrency. "
369
+ "Returns a COMPACT summary (period high/low, start/end close, % change, "
370
+ "avg volume, MA5/MA20/MA60) plus the most recent ~30 candles — not the "
371
+ "full series. Use this whenever you need historical prices, trend, or to "
372
+ "compute your own indicators. A-shares (6-digit code) route through the "
373
+ "user's configured Tushare first (if set), then Eastmoney/Sina/AKShare; "
374
+ "HK (0700.HK) and US/global route through yfinance. "
375
+ "IMPORTANT: prefer this tool over writing your own akshare/tushare/yfinance "
376
+ "scripts — it handles source fallback and never depends on the local Python env."
377
+ ),
378
+ "parameters": {
379
+ "type": "object",
380
+ "properties": {
381
+ "symbol": {
382
+ "type": "string",
383
+ "description": "Ticker, e.g. AAPL, 600519, 0700.HK, BTC. A-shares: 6-digit code, no suffix.",
384
+ },
385
+ "days": {
386
+ "type": "integer",
387
+ "description": "Lookback window in calendar days (default 120, max 1000).",
388
+ },
389
+ "interval": {
390
+ "type": "string",
391
+ "enum": ["1d", "1w", "1mo"],
392
+ "description": "Candle interval (default '1d'). Tushare path supports daily only.",
393
+ },
394
+ },
395
+ "required": ["symbol"],
396
+ },
397
+ },
398
+ },
399
+ {
400
+ "type": "function",
401
+ "function": {
402
+ "name": "broker_query",
403
+ "description": (
404
+ "Query a connected brokerage account for account balance, current holdings (positions), "
405
+ "or order history. Use this when the user asks about their portfolio, cash balance, "
406
+ "unrealized P&L, or recent orders. This tool is READ-ONLY — it never places or cancels orders. "
407
+ "Call with query='account' for cash/balance, query='positions' for holdings, "
408
+ "query='orders' for order history."
409
+ ),
410
+ "parameters": {
411
+ "type": "object",
412
+ "properties": {
413
+ "query": {
414
+ "type": "string",
415
+ "enum": ["account", "positions", "orders"],
416
+ "description": "What to query: 'account' = cash/balance, 'positions' = holdings, 'orders' = order list",
417
+ },
418
+ "broker_id": {
419
+ "type": "string",
420
+ "description": f"Optional broker id from {CONFIG_DIR}/brokers.json. Omit to use the active/default broker.",
421
+ },
422
+ "status": {
423
+ "type": "string",
424
+ "enum": ["all", "open", "filled", "cancelled"],
425
+ "description": "For orders query: filter by status. Default 'all'.",
426
+ },
427
+ "limit": {
428
+ "type": "integer",
429
+ "description": "Max number of orders to return (default 20).",
430
+ },
431
+ },
432
+ "required": ["query"],
433
+ },
434
+ },
435
+ },
436
+ {
437
+ "type": "function",
438
+ "function": {
439
+ "name": "broker_order",
440
+ "description": (
441
+ "Propose a trade order (buy or sell). "
442
+ "IMPORTANT: This tool requires explicit user confirmation. "
443
+ "When called without confirmed=true, it returns an order preview with a "
444
+ "preview_id and confirmation prompt. Only set confirmed=true after the user has explicitly "
445
+ "said '确认下单', 'confirm order', or equivalent in this conversation turn. "
446
+ "When confirmed=true, pass the exact preview_id from the prior preview. "
447
+ "NEVER set confirmed=true on your own initiative."
448
+ ),
449
+ "parameters": {
450
+ "type": "object",
451
+ "properties": {
452
+ "symbol": {
453
+ "type": "string",
454
+ "description": "Required for a new preview. Stock/ETF ticker symbol, e.g. AAPL, 600519, 0700.HK",
455
+ },
456
+ "side": {
457
+ "type": "string",
458
+ "enum": ["buy", "sell"],
459
+ "description": "Required for a new preview. Trade direction: 'buy' to purchase, 'sell' to liquidate",
460
+ },
461
+ "quantity": {
462
+ "type": "integer",
463
+ "description": "Required for a new preview. Number of shares/units to trade (positive integer)",
464
+ },
465
+ "price": {
466
+ "type": "number",
467
+ "description": "Limit price. Omit for market orders.",
468
+ },
469
+ "order_type": {
470
+ "type": "string",
471
+ "enum": ["limit", "market"],
472
+ "description": "Order type: 'limit' (default) or 'market'",
473
+ },
474
+ "confirmed": {
475
+ "type": "boolean",
476
+ "description": "Set to true ONLY after the user explicitly confirmed the order in this turn.",
477
+ },
478
+ "preview_id": {
479
+ "type": "string",
480
+ "description": "Required when confirmed=true. Use the preview_id returned by the prior broker_order preview.",
481
+ },
482
+ },
483
+ "required": [],
484
+ },
485
+ },
486
+ },
487
+ {
488
+ "type": "function",
489
+ "function": {
490
+ "name": "lsp_hover",
491
+ "description": "Get documentation or type signature for a symbol at a specific line and column using the Language Server Protocol (LSP).",
492
+ "parameters": {
493
+ "type": "object",
494
+ "properties": {
495
+ "path": {"type": "string", "description": "Absolute or relative path to the file"},
496
+ "line": {"type": "integer", "description": "1-based line number"},
497
+ "col": {"type": "integer", "description": "1-based column number"}
498
+ },
499
+ "required": ["path", "line", "col"]
500
+ }
501
+ }
502
+ },
503
+ {
504
+ "type": "function",
505
+ "function": {
506
+ "name": "lsp_definition",
507
+ "description": "Find the definition of a symbol at a specific line and column (LSP). Returns file path, line, and column.",
508
+ "parameters": {
509
+ "type": "object",
510
+ "properties": {
511
+ "path": {"type": "string", "description": "Absolute or relative path to the file"},
512
+ "line": {"type": "integer", "description": "1-based line number"},
513
+ "col": {"type": "integer", "description": "1-based column number"}
514
+ },
515
+ "required": ["path", "line", "col"]
516
+ }
517
+ }
518
+ },
519
+ {
520
+ "type": "function",
521
+ "function": {
522
+ "name": "lsp_references",
523
+ "description": "Find all references to a symbol at a specific line and column (LSP). Returns file paths, lines, and columns.",
524
+ "parameters": {
525
+ "type": "object",
526
+ "properties": {
527
+ "path": {"type": "string", "description": "Absolute or relative path to the file"},
528
+ "line": {"type": "integer", "description": "1-based line number"},
529
+ "col": {"type": "integer", "description": "1-based column number"}
530
+ },
531
+ "required": ["path", "line", "col"]
532
+ }
533
+ }
534
+ },
535
+ {
536
+ "type": "function",
537
+ "function": {
538
+ "name": "ask_user",
539
+ "description": "Pause execution and ask the user a clarifying question when requirements are ambiguous or a major design decision is needed. The workflow will halt until the user responds.",
540
+ "parameters": {
541
+ "type": "object",
542
+ "properties": {
543
+ "question": {"type": "string", "description": "The question to ask the user. Be specific about what options or information you need."}
544
+ },
545
+ "required": ["question"]
546
+ }
547
+ }
548
+ },
549
+ __import__("aria_code.runtime.processes", fromlist=["PROCESS_SCHEMA"]).PROCESS_SCHEMA,
550
+ ]
@@ -0,0 +1,39 @@
1
+ """Installed console entrypoint for Aria Code.
2
+
3
+ The terminal implementation lives in ``aria_cli`` as an async ``main()``. A
4
+ console script (declared in pyproject ``[project.scripts]`` as
5
+ ``aria-code = "apps.cli.main:main"``) must be a *synchronous* callable, so this
6
+ shim wraps the coroutine in ``asyncio.run`` — mirroring the
7
+ ``if __name__ == "__main__"`` block in ``aria_cli.py``. Calling the async
8
+ ``aria_cli.main`` directly from a console script would only create a coroutine
9
+ that is never awaited.
10
+ """
11
+
12
+ from __future__ import annotations
13
+
14
+ import asyncio
15
+ import sys
16
+
17
+
18
+ def main() -> None:
19
+ """Synchronous entry point for the ``aria-code`` command."""
20
+ from aria_code.apps.cli.native_entry import dispatch_worker, maybe_native
21
+ dispatch_worker()
22
+ maybe_native()
23
+ if sys.argv[1:2] == ["review"]:
24
+ # Headless review for CI: no REPL, no banner, an exit code to gate on.
25
+ # Dispatched before the full CLI loads, so it starts quickly.
26
+ from aria_code.apps.cli.review_runner import run_headless
27
+
28
+ sys.exit(run_headless(sys.argv[2:]))
29
+
30
+ from aria_cli import main as _async_main
31
+
32
+ try:
33
+ asyncio.run(_async_main())
34
+ except KeyboardInterrupt:
35
+ print()
36
+ sys.exit(0)
37
+
38
+
39
+ __all__ = ["main"]