Compare commits

..
314 Commits
Author SHA1 Message Date
pancake 9077de9162 Snapshot async request configuration for HTTP sessions 2026-11-06 03:19:30 +01:00
pancake 287fad0ecd Release 1.5.4 2026-11-06 02:36:06 +01:00
pancake 08afde5117 Expand ~ in decai config paths before mkdir/touch 2026-11-02 19:23:04 +01:00
Agustin Torres a086a12f1d Replace the models api.anthropic.com retired
Replaced retired Anthropic model ids with the recommended replacements: the default model in src/anthropic.c and decai (claude-sonnet-5-5), plus docs, examples and model lists.

Notice anthropic-retired-models-2026-10 about api.anthropic.com's API describes the change. It was read from a file and is not signed by the provider.
2026-10-26 18:26:18 +01:00
pancake 4a86d0fc46 Fix build for r2-6.2.5 2026-10-20 23:21:46 +02:00
pancake 0509bf6755 Add decai -e http=curl|r2|auto 2026-10-19 08:54:40 +02:00
pancake 1d55b7f72a Define the new r2.http in the R2Pipe type for decai 2026-10-19 08:45:58 +02:00
pancake 222f0b7410 Exclude POSIX HTTP timers from WASI builds 2026-10-18 18:52:46 +02:00
pancake 065288e29f Use radare2 HTTP APIs for r2ai and decai in WASI 2026-10-18 18:52:46 +02:00
Abhi 5824aa4482 Release 1.5.3 2026-10-13 11:39:08 +05:30
Abhi 3c7ed851d8 Switch release assets to r2pm bindist zips (triplet naming)
- src/Makefile: bindist target producing r2ai-$(r2 -qv)-os-arch-bits.zip
  with plugins/, bin/, man/ and prompts/ (prompts dir overridable via
  R2AI_PROMPTSDIR; uname fallback for old r2pm)
- ci: split bindist job (linux x64/arm64 + macos) and windows bindist
  build (radare2 -qv for the zip name), attach zips + decai.r2.js to tag
  releases; no version pin so the action resolves the current release
2026-10-13 11:39:08 +05:30
pancake 1586d27e93 Release 1.5.2 2026-10-06 06:57:50 +02:00
pancake 898855d7ce Fix macOS build with inline r_mem_mem 2026-10-06 01:32:58 +02:00
pancake 20a3751624 Release 1.5.0 2026-10-06 00:45:47 +02:00
pancake d81957d856 Load API keys from environment as fallback 2026-10-03 08:56:09 +02:00
pancake b6d7c9424c Fix #130 - deterministic mode for r2ai 2026-10-02 18:21:35 +02:00
pancake c3efc53c27 Deduplicate system prompt fallback and message queue logic 2026-10-02 18:11:26 +02:00
pancake b6d234c154 Fix #172 - Add r2ai.history and store all queries in its context 2026-10-02 17:59:22 +02:00
pancake ef7f49a68e Keep the gemini auth header selection in one expression 2026-10-02 17:55:07 +02:00
pancake d1fcea6859 Share request building, parsing and posting across the providers
Gemini and Vertex Gemini share the request builder and response parser,
Anthropic and Vertex Anthropic share the request builder, and every
provider posts through r2ai_post, which centralizes the payload dumps,
the curl debug output and the error reporting.

Gemini now sends the system prompt as systemInstruction and reports
token usage. Also drops the unused streaming stubs and the dead
r2ai.system fallbacks, r2ai_llmcall always sets the system prompt.
2026-10-02 17:55:03 +02:00
pancake 96dcc0dd4f Dedup the decompilation block builder in r2ai -d and fix the prompt leak 2026-10-02 17:54:59 +02:00
pancake 659e14a4cd Dispatch providers through r2ai_send and look them up once
Rawtools now reaches every provider instead of only anthropic/openai,
and the model listing shares the header logic, sending the Gemini key
in a header instead of the URL.
2026-10-02 17:54:56 +02:00
pancake 926ef545d0 Share the conversation log formatter between -L and the compact prompt 2026-10-02 17:54:54 +02:00
pancake 1b11c648de Fix tool_call_id leak when recording auto mode tool responses 2026-10-02 17:54:51 +02:00
pancake 394e55cf87 Dedup message cloning and drop the unused json message parsers 2026-10-02 17:54:44 +02:00
pancake 8db446cf31 Dedup the async task lifecycle and command helpers
Add task_start, finish, cancelled, wait_tool, lookup and print_block
helpers, and drop the async queue guards since r2ai_init always
creates it.
2026-10-02 17:54:00 +02:00
pancake 65d7d87539 Rewrite the RJson to string converter as a single recursive emitter 2026-10-02 17:53:29 +02:00
pancake 372b38380f Share the tool confirmation prompt between r2cmd and execute_js 2026-10-02 17:53:24 +02:00
pancake 72b9ff2f49 Add ask and enqueue helpers to dedup the llm query paths 2026-10-02 17:53:16 +02:00
pancake 742d3f2a51 Unify the vdb query commands and drop the load_embeddings copy
-S and -Rq share cmd_r2ai_R, which honours r2ai.data.nth and prints
through r_cons. Also fixes the leaked file contents when indexing.
2026-10-02 17:53:01 +02:00
pancake 1f3f93fa35 Turn leftover auto mode debug prints into debug logs 2026-10-02 13:49:33 +02:00
pancake 3f1b91fbce Do not write the OpenAI bearer token to the debug log 2026-10-02 13:49:25 +02:00
pancake acd0513ebb Prompt for final auto response, fixes out of order logs 2026-10-02 13:48:55 +02:00
pancake c44e838238 Fix bogus format argument when logging the models request 2026-10-02 13:48:22 +02:00
pancake f4fa4ba432 Preserve negative integers when converting RJson to PJ 2026-10-02 13:46:49 +02:00
pancake 561db876ac Fix malformed bold escape sequences in auto mode output 2026-10-02 13:46:46 +02:00
pancake bcdc182d03 Snapshot tools and max_runs for async tasks on the main thread 2026-10-02 13:46:39 +02:00
pancake 19cba835e4 Remove leaking unreachable error paths in the Anthropic response parser 2026-10-02 13:46:32 +02:00
pancake 87a1e89112 Do not leak the Gemini API key in the request URL 2026-10-02 13:46:25 +02:00
pancake 012118c25c Fix Gemini headers and always send the Content-Type 2026-10-02 13:44:53 +02:00
pancake e2030b31a1 Escape r2ai.auto.init_commands when building for JSON 2026-10-02 13:44:39 +02:00
pancake 53f437d55a Keep assistant replies in the conversation log when clippy is enabled 2026-10-02 13:40:05 +02:00
pancake 66f202254e Fix prompt in r2ai one-shot mode and report errors 2026-10-02 13:39:42 +02:00
pancake 8e9555d144 Fix double advance on unterminated ${ and $( in prompt variables 2026-10-02 13:39:36 +02:00
pancake a8caa51e76 Do not update vdb TF-IDF statistics when querying 2026-10-02 13:39:34 +02:00
pancake 021aa205f0 Initialize the document frequency of new vdb tokens 2026-10-02 13:39:31 +02:00
pancake 92c86f94e6 Fix message leak on success in r2ai_msgs_from_json 2026-10-02 13:39:26 +02:00
pancake 50c1d63a47 Use text from the editor when confirming multiline tool calls 2026-10-02 13:35:30 +02:00
pancake 79f01945b7 Fix memleak when parsing r2ai rc file 2026-10-02 13:35:16 +02:00
pancake 9043638e01 Fix UAF in r2ai -d 2026-10-02 13:35:05 +02:00
pancake 6bd0227382 Render responses in markdown by default 2026-10-02 13:20:23 +02:00
pancake 9f9a3b87ae Fix token usage leaks after LLM calls 2026-09-07 00:44:43 +02:00
pancake b68ddaeaed Fix thread ownership race in r2ai_async_fini 2026-09-06 21:43:15 +02:00
pancake d2663f75dc Fix null deref when adding a toolCall 2026-09-06 21:41:24 +02:00
pancake e24dbab677 Release 1.4.4 2026-09-06 21:23:13 +02:00
pancake c765269b02 Add allocation checks and use calloc for KD-tree nodes 2026-09-06 21:13:54 +02:00
pancake 55b856e70b Refactor LLM call logic and improve tool call handling 2026-09-06 21:13:50 +02:00
pancake 5e148bc882 Null checks and improve error handling for curl and powershell 2026-09-06 21:13:42 +02:00
pancake 9f93754483 Fix baseurl with ending slashes 2026-08-19 16:22:42 +02:00
pancake d262fabb2b Add r2plugin abstraction for decai 2026-08-18 17:07:35 +02:00
pancake d0a1f292f5 Release 1.4.2 2026-08-16 21:26:19 +02:00
pancake dad02ac243 Fix OpenAI-compatible endpoint selection for Ollama 2026-08-05 00:42:46 +02:00
dependabot[bot] 02c561c415 Bump radareorg/github-actions from 2 to 3
Bumps [radareorg/github-actions](https://github.com/radareorg/github-actions) from 2 to 3.
- [Release notes](https://github.com/radareorg/github-actions/releases)
- [Commits](https://github.com/radareorg/github-actions/compare/v2...v3)

---
updated-dependencies:
- dependency-name: radareorg/github-actions
  dependency-version: '3'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
2026-08-04 18:21:02 +02:00
pancake 9414cdf72b Fix build for latest r2 (abiversion 125) 2026-07-22 18:04:38 +02:00
pancake 7cc61c4cc5 Generic core editor helper 2026-07-16 16:13:17 +02:00
pancake e4875eeb37 Fix build with r2 from git 2026-07-16 13:38:30 +02:00
pancake 888251a2ea Improve kvcache misses and improve token usage 2026-06-28 19:14:33 +02:00
pancake af6153ad64 Support r2ai.apitype (also in decai) to specify generate/chat 2026-06-28 19:14:29 +02:00
dependabot[bot] 87e4e7b232 Bump actions/checkout from 6 to 7 2026-06-22 16:18:17 +02:00
pancake cc3a003a64 Cleanup the openai implementation 2026-06-17 18:07:49 +02:00
pancake f2be5cc3c2 Release 1.4.0 2026-06-03 09:53:26 +02:00
dependabot[bot] e360148931 Bump radareorg/github-actions from 1 to 2 2026-05-18 09:43:20 +03:00
pancake d06a9ee361 Implement -d in the r2ai shell to decompile from the cli 2026-05-14 21:41:20 +02:00
pancake 2e7b97b065 Add r2ai -s to seek on start 2026-05-14 21:34:28 +02:00
orbisai0security cd5d9a1640 Fix shell injection in the abandoned python implementation 2026-05-14 08:18:20 +02:00
Ole André Vadla Ravnås e606392aaf Emit libr2ai.a for embedders
meson uses library() so -Ddefault_library picks the kind.
Makefile also runs ar rcs and installs libr2ai.a + r2ai.h.
2026-05-09 13:11:07 +02:00
pancake 8bf1169844 Implement r2ai -do to decompile with offsets 2026-05-06 13:15:32 +02:00
pancake 90e3bbafc5 Format code 2026-05-05 20:05:56 +02:00
pancake e5a0639b88 Remvoe support for legacy query prompts 2026-05-05 20:02:23 +02:00
pancake 80f27cd4d9 Add -qj to list query prompts in json format 2026-05-05 19:56:40 +02:00
pancake 455da7bdba Improve query prompts syntax and parser 2026-05-05 19:49:18 +02:00
pancake 623e98ed3d Show tool command to be executed when prompting 2026-05-05 19:16:50 +02:00
pancake 17bf56b5e3 Add explicit aprove/reject actions for async tasks 2026-05-05 18:27:58 +02:00
pancake f50a7836eb Initial support for r2plugin xps 2026-05-05 14:03:40 +02:00
pancake 2d9b69c624 Reduce tool calling parameters using the new ToolResult struct 2026-05-05 13:54:48 +02:00
pancake de9c7c904c Auto prompt is no longer a global 2026-05-05 11:32:57 +02:00
pancake 6b3ea982cd Better structure for r2ai-sj 2026-05-05 11:13:50 +02:00
pancake 209d9257ee Use RCoreHelpMessage in async commands 2026-05-05 11:11:46 +02:00
pancake b840d002ee Fix #226 - R2AI_HEADERS and r2ai.http.headers 2026-05-05 10:56:44 +02:00
pancake 9d900b2a6b Fix autopurge in -sj/-s and rename -s*/-sp 2026-05-05 06:45:23 +02:00
AsherDLL 227b15e793 Add Vertex AI provider for Gemini and Anthropic models 2026-04-24 13:49:40 +02:00
pancake 4b9dbf7686 Fully go for RCore.call 2026-04-21 19:48:49 +02:00
pancake 8ca32e258f Add async.purge option and fix some thread locks 2026-04-20 20:56:16 +02:00
pancake 449c41eae6 Format the code again 2026-04-20 20:28:40 +02:00
pancake 5210fe6892 Initial support for async tasks 2026-04-20 20:26:36 +02:00
pancake 6222791075 Add SOUL.md/IDENTITY.md personality files via -id command 2026-04-14 20:48:50 +02:00
pancake 05ce908e3a Fix ollamacloud api arguments object error 2026-04-14 19:07:50 +02:00
pancake b8457c0bfa Release 1.3.8 2026-04-13 22:46:10 +02:00
pancake 6a256b9210 Refresh auto tool list when r2ai.auto.usejs changes 2026-04-13 22:45:30 +02:00
pancake 8cc748ab4c Honor per-call model/provider overrides in LLM backends 2026-04-13 22:35:18 +02:00
pancake 17df397a3d Fix argument parsing to make -Lj actually work 2026-04-13 19:54:42 +02:00
pancake fcd464f1cc Fix OpenAI debug crash with keyless backends 2026-04-13 19:48:08 +02:00
pancake 1f41b6d2d7 Fix getopt parsing for -i, -dr and -Rq 2026-04-13 19:43:37 +02:00
pancake adf8189541 Fix UB in r2ai_message_free error paths 2026-04-13 18:01:24 +02:00
dependabot[bot] cb8f3548ff Bump softprops/action-gh-release from 2 to 3 2026-04-13 18:00:24 +02:00
pancake b99034e5d8 Fix user message not included when the message list was empty 2026-04-12 21:17:53 +02:00
pancake fa1f6c1d3c Fix few logic mistakes swapping name/desc and such 2026-04-12 21:16:01 +02:00
pancake d9fb7b18df Fix duplicated user message then r2ai.data=true 2026-04-12 21:14:01 +02:00
pancake e0b9ff235c Fix invalid free crashes on tool call block 2026-04-12 21:00:38 +02:00
pancake e1bf58d4e4 Some better variable names for decai 2026-04-12 18:40:34 +02:00
pancake 51a63ac7ef Remove unused and duplicated logic using helpers where needed 2026-04-12 18:35:07 +02:00
pancake c3a3eff046 Single helper to check if function is available in decai 2026-04-12 18:11:18 +02:00
pancake 37b5c2b6d0 Fix thinking level issue causing slow queries in r2ai 2026-04-12 11:53:35 +02:00
pancake 0e6a8cc2e2 In decai fix thinking options for glm models making a clear time improvements 2026-04-12 11:42:55 +02:00
pancake 8dcc6f0418 Release 1.3.6 2026-04-11 18:06:11 +02:00
pancake b68cdd1171 Fix empty query bug in r2ai -i 2026-04-10 16:00:58 +02:00
pancake 3f935a46be Do not silently discards caller-provided message history 2026-04-10 15:53:19 +02:00
pancake fd46390d41 Break auto mode when receiving unknown actions 2026-04-10 15:45:42 +02:00
pancake 63106508dc In decai: Restore model state when decopipe execution fails 2026-04-10 15:45:00 +02:00
pancake 46f42d3dd9 Ignore comment lines in decai.txt (decai -E) 2026-04-09 21:39:08 +02:00
pancake 836fae3d91 Use github actions to install r2 in the ci 2026-04-09 11:02:00 +02:00
pancake 66dd3dced7 Oops missing file 2026-04-09 10:44:16 +02:00
pancake c016fc72ed Release 1.3.4 2026-03-31 18:32:01 +02:00
Abhi 779b787f2d Fix URL formatting for OpenAI compatible API 2026-03-31 16:49:22 +02:00
pancake ca210f149b Add zen, ollamacloud and lmstudio providers to r2ai, sync with decai 2026-03-30 17:46:10 +02:00
pancake 99e99b1797 Reduce some LOCs in decai 2026-03-30 16:51:16 +02:00
pancake fb5427238b Add 'decai -E' for the defaults 2026-03-30 16:45:46 +02:00
pancake d7c2dacd7a Add decai timeout, zen provider, improve prompt, custom headers and more 2026-03-30 16:38:10 +02:00
pancake d6c32f4b72 decai: tighten types and simplify provider/config handling 2026-03-30 15:26:23 +02:00
dependabot[bot] 0a083e7231 Bump actions/download-artifact from 4 to 8 2026-03-30 15:20:45 +02:00
dependabot[bot] 1a067fbbfc Bump softprops/action-gh-release from 1 to 2 2026-03-30 15:18:54 +02:00
dependabot[bot] 8a724d3682 Bump actions/upload-artifact from 4 to 7 2026-03-30 15:18:30 +02:00
dependabot[bot] 8f7d152aa3 Bump actions/checkout from 5 to 6 2026-03-30 15:17:48 +02:00
pancake 7120c325da Add dependabot 2026-03-30 13:47:53 +02:00
pancake 14c991cd10 Update ci actions 2026-03-30 13:47:16 +02:00
pancake d1ef1e065e Welcome to the initial r2clippy wizard 2026-03-30 13:45:06 +02:00
pancake 6f8ec21a39 Release 1.3.2 2026-03-19 14:47:39 +01:00
pancake 3db0744c91 Fix shell injection in curl command construction 2026-03-07 12:20:28 +01:00
pancake 3306e412e2 rawtools: require explicit TOOL prefix for tool execution 2026-03-07 12:20:13 +01:00
pancake 20f5e16164 fix: detect multiline after adding command annotations 2026-03-07 12:20:03 +01:00
pancake 660249a31f Fix double free and refactor the complex logic into a separate function 2026-03-06 17:03:30 +01:00
Nitan Alexandru Marcel 312921c2a1 Add r2agent reference in the README 2026-02-08 23:32:54 +01:00
pancake 2356dbef9e Release 1.3.0 2026-01-04 19:17:05 +01:00
pancake 7612a80a9c Warn about invalid syntax/lines in apikeys.txt 2025-12-10 20:05:55 +01:00
pancake 12d8bc9e22 Strip "_API_KEY" from providers in apikeys.txt 2025-12-10 20:03:25 +01:00
pancake d4be5f8569 Add .pkgname for the r2ai plugin 2025-12-10 01:01:45 +01:00
pancake a9333c8c38 Only one function doing curl and remove aliased providers in decai 2025-12-06 12:36:04 +01:00
pancake 29bdb2fcea Remove the hardcoded model names for providers with callback 2025-12-05 17:48:42 +01:00
pancake 078376c5d2 Refactor the model listing code in decai 2025-12-05 17:30:11 +01:00
pancake aa24702335 Refactor the providers logic in decai 2025-12-05 17:05:18 +01:00
pancake 9aa40216a2 Initial rewrite of decai in TypeScript 2025-12-05 16:44:09 +01:00
pancake 96e454e0c6 Fix tool calling message construction bug 2025-11-27 11:07:16 +01:00
pancake 219b034261 Don't feed system messages to Anthropic 2025-11-21 21:23:24 +01:00
pancake 797c967fb0 Remove redudant provider fields 2025-11-11 16:21:55 +01:00
pancake e61b7db8a5 Fix #219 - Add deepseek provider for r2ai.c 2025-11-11 16:03:10 +01:00
pancake 3a39f9cd9d Add decai -b to setup the baseurl 2025-11-07 00:25:59 +01:00
pancake 2b5e50d8f0 Workaround MANDIR for old r2 2025-11-06 16:36:45 +01:00
pancake bb737f5be6 Add decai -K to edit apikeys (requires latest r2 from git) 2025-11-06 16:33:05 +01:00
pancake 3e5f91e631 Load decai apikeys from ~/.config/r2ai/apikeys.txt 2025-11-06 14:19:11 +01:00
pancake a3154bdcaf Simplify and fix the gemini support in decai 2025-11-06 14:10:19 +01:00
pancake a6be6e6555 Add decai -p to select provider 2025-11-06 14:01:53 +01:00
pancake ad0bdbb902 Fix res error in gemini for decai 2025-11-06 13:44:55 +01:00
pancake 4651d3b1b3 Update the README 2025-11-05 17:40:51 +01:00
pancake 572e02c4ec Change symbol visibility to please Windows builds 2025-11-05 17:18:50 +01:00
pancake 75c787ef41 Fix the meson build 2025-11-05 12:52:25 +01:00
pancake 731f1933a9 Refactor the apikeys code into a separate file and use sample config key by default 2025-11-05 12:43:15 +01:00
pancake 573755ccef Add -e to r2ai main 2025-11-01 21:30:12 +01:00
pancake ecca7825fe Add r2ai -i to run scripts 2025-10-31 20:15:32 +01:00
pancake 95117608fb Small improvements for the clippy repl 2025-10-31 20:13:30 +01:00
pancake b3958b5f7d Initial clippy repl for the r2ai cli tool 2025-10-31 19:45:12 +01:00
pancake d0eaf37764 Fix -m? reported crash 2025-10-31 16:34:49 +01:00
pancake 65692edd54 Bring back the support for Gemini provider to r2ai.c 2025-10-30 20:08:33 +01:00
pancake 50f55bb5d2 Add r2ai -K to edit api keys and remove the unnecessary compatdb 2025-10-29 22:21:33 +01:00
pancake fe1768fcc3 Fix apikey error message 2025-10-29 16:50:30 +01:00
pancake f241fba17d Add WIP decai logo 2025-10-29 10:45:55 +01:00
pancake e5252960e0 Implement r2ai.auto.slim to make disasm slimmier for auto 2025-10-29 10:45:21 +01:00
pancake 8a45dadbde Rename r2ai.auto.hide_tool_output to r2ai.auto.verbose 2025-10-29 10:34:31 +01:00
pancake 53d32efbbe Deprecate r2ai.chat.show_cost 2025-10-29 10:28:48 +01:00
pancake f06faba9d6 Release 1.2.6 2025-10-29 00:02:52 +01:00
pancake 8b52c2f6e2 Fix ninja build 2025-10-28 23:55:39 +01:00
pancake b37436fb8d Fix more warnings 2025-10-28 23:41:45 +01:00
pancake 2524e66825 Fix warning unused variable 2025-10-28 23:35:41 +01:00
pancake 519017a75e Fix editing r2js scripts in auto mode 2025-10-28 23:34:05 +01:00
pancake 6f30d6ca37 Handle comments in commands in all the auto calls 2025-10-28 20:49:24 +01:00
pancake 08ea4d11b2 Better last call 2025-10-28 19:51:22 +01:00
pancake 0281308434 Fix the build 2025-10-28 19:42:11 +01:00
pancake 17a59d2057 Add r2ai.debug to see the llm requests and responses 2025-10-28 19:37:01 +01:00
pancake eac0b8c6ef Prompt before leaving the interrupted auto mode 2025-10-28 19:30:11 +01:00
pancake 24aee426b4 Comments in commands are now used as annotations for the conversation 2025-10-28 19:28:05 +01:00
pancake b31bc5c116 Suggested simpler auto prompt 2025-10-28 19:24:40 +01:00
pancake 01738210f5 Increase timeout to 4 minutes 2025-10-28 19:13:05 +01:00
pancake 7b19c4ff99 Resizing the terminal is no longer interrupting the network calls 2025-10-28 19:10:50 +01:00
pancake 1986dd88bd r2ai needs an argument to work 2025-10-28 12:57:20 +01:00
pancake 1ed40401dd Implement r2ai -C to compact the message log 2025-10-28 12:55:46 +01:00
pancake 6ac0ff6352 Add compact prompt 2025-10-28 12:17:49 +01:00
pancake 4158e5f157 Add an option to disable the js_execute tool 2025-10-28 00:05:30 +01:00
pancake 225ff58228 Add r2ai.auto.think to disable reasoning 2025-10-28 00:03:34 +01:00
pancake a51be44c68 Improve native tool calling prompt 2025-10-28 00:00:04 +01:00
pancake 911e455f72 Only capture ONE tool call from the auto response 2025-10-27 23:40:03 +01:00
pancake 70eb975b7f Fix the set_prompt for auto mode 2025-10-27 23:21:58 +01:00
pancake a0d36cc909 Implement the -LR command to create a log report 2025-10-27 23:08:51 +01:00
pancake 030551816b Fix windows build 2025-10-27 23:08:51 +01:00
pancake 88c44c871b Fix tool calling, at least for OpenAI 2025-10-27 23:08:51 +01:00
pancake 9218e3ea27 Capture the thinking 2025-10-27 23:08:51 +01:00
pancake 6f7ffcae1a Oh great now we have a bug in the json serializer of r2 2025-10-27 23:08:51 +01:00
pancake fe12d2f8ee Add r2ai -b for the shell 2025-10-27 23:08:51 +01:00
pancake ae55b2f204 Proper use of RList -20LOC 2025-10-27 23:08:51 +01:00
pancake 7d4e949240 Use RList instead of hardcoded NEWS vectors 2025-10-27 23:08:51 +01:00
pancake 9b97d39c7a Add r2ai -b to change the baseurl 2025-10-27 19:04:16 +01:00
pancake 33f72a997e Refactorings to avoid hardcoded ansi colors. Using Color macros instead 2025-10-27 18:47:49 +01:00
pancake 36a8f13131 Use R2_CURL on Windows 2025-10-27 18:29:01 +01:00
pancake 5c2ded0171 Fix r2ai -E and loading script 2025-10-27 17:46:18 +01:00
pancake d5a39816a8 Use R2__WINDOWS__ instead of defined(_WIN32) 2025-10-27 13:02:36 +01:00
pancake 5aab38ab76 Proper command escapes for curl and pwsh http backends 2025-10-27 13:00:35 +01:00
pancake 9f15ec6c73 Release 1.2.4 2025-10-26 15:04:03 +01:00
pancake 68baac9911 Transform all promptfiles into the new md format 2025-10-26 15:02:48 +01:00
pancake 54a280952e Load API keys from ~/.config/r2ai/apikeys.txt too 2025-10-26 14:46:20 +01:00
pancake efc2368af1 Move the examples into the attic 2025-10-26 14:31:46 +01:00
pancake 28ddcbf638 Refactor and cleanup the http.backend implementations 2025-10-26 14:04:58 +01:00
pancake 85e9ed5c65 Do not accept invalid values in r2ai.http.backend 2025-10-25 19:56:10 +02:00
pancake 8886365925 Release 1.2.2 2025-10-25 11:03:12 +02:00
pancake 01d8e29420 Remove the r2-5.x compat macros 2025-10-25 11:02:39 +02:00
pancake e8b556ee5d Use r_sys_sleep and simplify the overengineered retry_sleep logic 2025-10-25 10:50:05 +02:00
pancake 6c336f48f7 Fix the meson build 2025-10-24 02:35:34 +02:00
pancake 53d61831b2 Initial support for vscode stype prompt files 2025-10-24 02:31:03 +02:00
pancake cbcff6b9dd Add r2ai -E in the cli 2025-10-24 02:29:34 +02:00
pancake f04bf8162e Add the manpage for r2ai.1 2025-10-24 02:04:36 +02:00
pancake 0206ceb390 Add support for r2ai -E and ~/.config/r2ai/rc 2025-10-24 02:00:15 +02:00
pancake ff1f788c48 Minor fix 2025-10-24 01:36:58 +02:00
pancake df135b2c70 Use jan-nano by default and fix the undefined in decai 2025-10-24 01:27:24 +02:00
pancake c152777bbe Dont do rawtools by default yet 2025-10-23 19:06:09 +02:00
pancake 3e084ce797 Implement r2ai.auto.raw to use tool calling with non-tools models 2025-10-23 02:12:36 +02:00
pancake 7fce8788b5 Release 1.2.0 2025-10-21 20:49:18 +02:00
pancake 585e30470e Aim to fix the execute_js tool for r2ai -a 2025-10-21 20:48:28 +02:00
pancake 5594e64ef3 r2ai-q must be public on windows 2025-10-21 20:44:07 +02:00
pancake 904a356290 Update READMEs 2025-10-21 20:40:17 +02:00
pancake d1e2bcf911 Use the powershell http fallback when needed 2025-10-21 20:38:10 +02:00
pancake 21528f7ea8 Use ollama/gpt-oss:20b as default provider/model pair 2025-10-21 20:34:58 +02:00
pancake 2883d134aa Add a WIP decompiler prompt 2025-10-21 20:18:58 +02:00
pancake ec96ba3329 Improve the behaviour of 'r2ai -m' to show, list and select models 2025-10-21 20:12:43 +02:00
pancake f92ea17b01 Move r2ai -n into r2ai -q autoname 2025-10-21 20:07:03 +02:00
pancake 2dc92031e7 Move r2ai -v into r2ai -q varnames 2025-10-21 20:03:16 +02:00
pancake 55d54b4953 Move r2ai -s into r2ai -q signature 2025-10-21 19:58:16 +02:00
pancake 35460e639c Move r2ai -x into r2ai -q explain 2025-10-21 19:49:47 +02:00
pancake a5382c17c4 Move r2ai -V to 'r2ai -q vulns' 2025-10-21 19:41:10 +02:00
pancake f4bdb847db Fix null deref when ^C in r2ai 2025-10-21 19:40:40 +02:00
pancake a7c3d3767c Use r2 -NNH instead of r2 -H to fix build when r2 have broken plugins 2025-10-21 19:29:09 +02:00
pancake 97c47ab28a Add -m, -p, -q to choose model, provider and query from the cli
* Fix the ollama provider
2025-10-21 19:24:11 +02:00
pancake c36bc1500c Dont pass R2AIState if we can pass the RCorePluginSession 2025-10-21 18:58:16 +02:00
pancake 179cb6ca58 Remove statistics global variable 2025-10-21 18:45:49 +02:00
pancake 402c31cc96 Handle -v and -h in the r2ai executable 2025-10-21 18:32:47 +02:00
pancake be14729424 Stop using the deprecated r_cons_singleton 2025-10-21 18:28:09 +02:00
pancake aa9b8e0fba Refactoring with the aim to reduce LOCs in r2ai_http.c 2025-10-21 18:24:09 +02:00
pancake 96225cd555 Update AGENTS.md 2025-10-21 17:45:39 +02:00
pancake 321ca1bb41 Move the LLM related functions from r2ai.c into llm.c 2025-10-21 17:29:14 +02:00
pancake d94ed5a088 Fix r2ai's main and use cps everywhere 2025-10-21 16:40:57 +02:00
pancake 3537d006de Added support to query custom user prompts in r2ai 2025-10-21 00:10:28 +02:00
pancake bdcee9e736 Remove global states, requires r2-6.0 at least 2025-10-20 21:54:48 +02:00
pancake 074b7a6c9f Add AGENTS.md for r2ai.c 2025-10-20 21:25:24 +02:00
pancake 6697df8437 Use RList instead of vector for messages. Fix message count in r2ai -L 2025-10-20 21:04:30 +02:00
pancake ff0fb4c802 Add version information in decai help message and use rcons 2025-10-20 19:49:40 +02:00
pancake ca7d02e03c Refactor the api/providers logic for easier maintainance 2025-10-20 17:35:43 +02:00
pancake bd105b2b0e Fix #176 - Do not accept invalid values in "r2ai -e api=" 2025-10-20 16:57:53 +02:00
pancake 5e18525403 Use clang-format-radare2 instead of the hacky indent.py 2025-10-20 16:48:42 +02:00
pancake c9d0756e74 Fallback to powershell when curl is not found on Windows 2025-10-20 11:05:20 +02:00
Abhi d3fc79f9d1 Fix tmp dir on android(termux) 2025-10-14 09:27:50 +02:00
pancake 8f4c972beb Remove pkg-config hard dependency for r2 >= 6.0.5 2025-10-08 13:51:34 +02:00
pancake f95cda42f7 Release 1.1.2 2025-10-06 23:25:27 +02:00
pancake b241f30432 Fix leak in openai_url 2025-10-06 23:25:01 +02:00
pancake 8eb50e466b Include the r2ai plugin in the meson ci builds 2025-10-06 23:22:01 +02:00
pancake 14b5dcbfb9 Fix make install and warnings 2025-10-06 22:59:22 +02:00
cryptax e264f8f0c8 More references In the README.md 2025-10-06 15:45:10 +02:00
pancake 46c2ce6c62 Fix r2ai install when old symlinks are around 2025-10-03 22:34:36 +02:00
pancake 693ad9270c Handle ollama errors 2025-10-03 18:21:35 +02:00
pancake 8446af7385 Add description to all the config vars 2025-10-03 15:35:48 +02:00
pancake 5a156a0126 Do not use temperature for the openai provider in decai 2025-10-03 15:35:43 +02:00
pancake a28efa7a33 Add config var descriptions (fixes e??) 2025-10-03 12:46:25 +02:00
pancake bc5adb3fcb Refactor the model listing logic in decai 2025-10-02 14:00:30 +02:00
pancake 4bd1d911e0 Bring back the XAI Provider 2025-10-02 13:28:17 +02:00
pancake 41c9734c69 Bring back the mistral provider 2025-10-02 13:25:31 +02:00
pancake 1a41298dd6 Bring back the gemini provider 2025-10-02 13:22:47 +02:00
pancake c618f8ed09 Bring back the readable prompts 2025-10-02 13:20:42 +02:00
pancake 48932c5c64 Add support for listing models from openai endpoints in the decai 2025-10-02 13:17:08 +02:00
pancake 4da20a5c33 Bring back the OpenAI backend for Decai 2025-10-02 11:23:21 +02:00
pancake b7f94ad419 Release 1.1.1 2025-10-01 15:48:01 +02:00
pancake 2e45fb9e9c Fix spaces 2025-10-01 15:44:20 +02:00
pancake 9775e94455 Add support for ollamacloud to decai 2025-10-01 12:16:12 +02:00
pancake 67416766e2 Move the benchmark scripts into its own directory 2025-10-01 12:07:42 +02:00
pancake 5c1be40048 Improve benchmark2html.sh and makefile 2025-10-01 11:00:13 +02:00
pancake 49e87c7b7a Add script to generate benchmark results in html 2025-10-01 10:22:37 +02:00
pancake 11e7c288e0 Include decai.r2.js in the release page 2025-10-01 02:37:59 +02:00
pancake 909f4738f8 Release 1.1.0 2025-10-01 02:33:36 +02:00
pancake 0148a64aa7 Add decai to the release pack 2025-10-01 00:17:34 +02:00
Konstantinos Xynos d8df27a4c7 Refactored decai.r2.js to reuse providers implementations
* Update decai.r2.js to support local gpt4all
* Added support for local API server gpt4all by Nomic
* Added maxTokens support to GPT4all
* Added to GPT4all, temperature as 0.1 to enable deterministic option
* Rafactored using Claude. Needs to be tested
2025-10-01 00:09:18 +02:00
pancake 6608dbcf3c Add the Windows and macOS CI builds 2025-10-01 00:07:56 +02:00
pancake ef83ddefc9 Add r2 badge 2025-09-30 13:12:16 +02:00
pancake c19fd205e3 Make in root wraps the one in src 2025-09-30 12:51:39 +02:00
pancake eec673f8db Improved readme again 2025-09-30 12:29:27 +02:00
pancake 5e20b37e08 Remove python lint ci jobs 2025-09-30 12:15:59 +02:00
pancake 547418adf0 Move python and server stuff into the Attic 2025-09-30 12:00:23 +02:00
pancake e161577bcb Update README 2025-09-30 12:00:17 +02:00
pancake ba186d7c57 Move the getapikey logic into a separate function in r2ai.c 2025-09-26 03:08:49 +02:00
pancake 24c1e3fcb4 Suggest setting the API key with env var instead of the deprecated eval vars 2025-09-25 19:06:45 +02:00
pancake 1f001080ff Use r2-6.0.2 2025-08-20 01:38:51 +02:00
pancake a189a682b6 Disable the python ci job 2025-08-19 21:04:03 +02:00
cryptax a0299f791d Add support for gpt-5 2025-08-19 12:09:46 +02:00
cryptaxandcryptax 79214fb22c Fix to support lm-studio servers with openai style api and baseurl (#196)
Co-authored-by: cryptax <axelle@alligator>
2025-08-18 20:43:31 +02:00
cryptax 775d3243e6 removing port 2025-08-18 16:32:42 +02:00
pancake cd514ac099 Run indent 2025-08-18 12:24:58 +02:00
cryptax 6f352e1966 Support r2ai.baseurl having a custom port 2025-08-18 12:24:58 +02:00
cryptax 32458a653e Documentation for r2ai.port 2025-08-18 12:24:58 +02:00
cryptax b32fd6097f Fix Ollama calls using /chat instead of /chat/completions 2025-08-18 12:24:58 +02:00
cryptax df2fc67e2c Fixing list models for Ollama case 2025-08-18 12:24:58 +02:00
pancake b318c30865 Fix support for gpt-5 in decai 2025-08-14 14:27:08 +02:00
184 changed files with 11130 additions and 5724 deletions

No files matched your search

+8
View File
@@ -0,0 +1,8 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
labels:
- buildsystem
+160 -77
View File
@@ -1,87 +1,170 @@
# TODO: add windows
name: ci
name: CI and Release
env:
R2V: 5.9.8
R2V: 6.2.6
on:
push:
pull_request:
workflow_dispatch:
branches:
- '**'
tags:
- '[0-9]*'
# pull_request:
jobs:
build-linux:
runs-on: ubuntu-24.04
build:
name: Build (${{ matrix.os }} / ${{ matrix.build_system }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04, macos-latest, windows-latest]
build_system: [make, meson]
exclude:
- os: windows-latest
build_system: make
steps:
- uses: actions/checkout@v4
- name: Installing radare2
run: |
wget "https://github.com/radareorg/radare2/releases/download/${R2V}/radare2_${R2V}_amd64.deb"
wget "https://github.com/radareorg/radare2/releases/download/${R2V}/radare2-dev_${R2V}_amd64.deb"
sudo dpkg -i "radare2_${R2V}_amd64.deb"
sudo dpkg -i "radare2-dev_${R2V}_amd64.deb"
- name: Building the C rewrite
run: make -C src
- name: Running r2ai from r2
run: r2 -q -c 'r2ai -h' --
lint-python:
runs-on: ubuntu-24.04
- name: Checkout
uses: actions/checkout@v7
- name: Setup Meson/Ninja
if: matrix.build_system == 'meson'
run: |
python -m pip install --upgrade pip
pip install meson ninja
- name: Install radare2
id: r2
uses: radareorg/github-actions@v3
with:
version: ${{ env.R2V }}
- name: Build with Make
if: matrix.build_system == 'make'
run: make -C src
- name: Build with Meson (Unix)
if: matrix.build_system == 'meson' && matrix.os != 'windows-latest'
run: |
cd src
meson setup build || meson configure build
meson compile -C build
- name: Build with Meson (Windows)
if: matrix.build_system == 'meson' && matrix.os == 'windows-latest'
shell: powershell
run: |
cd src
$prefix = "${{ steps.r2.outputs.prefix }}"
meson setup build --backend ninja --prefix="$prefix" -Dr2_prefix="$prefix"
if ($LASTEXITCODE -ne 0) { meson configure build }
meson compile -C build
bindist:
name: Build r2pm binary (${{ matrix.os }})
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, ubuntu-24.04-arm, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Installing radare2
run: |
wget "https://github.com/radareorg/radare2/releases/download/${R2V}/radare2_${R2V}_amd64.deb"
wget "https://github.com/radareorg/radare2/releases/download/${R2V}/radare2-dev_${R2V}_amd64.deb"
sudo dpkg -i "radare2_${R2V}_amd64.deb"
sudo dpkg -i "radare2-dev_${R2V}_amd64.deb"
- name: Setting up Python
run: |
cd py
python -m venv venv
. venv/bin/activate
pip install .
pip install pylint
cd ..
- name: Linting
run: make -C py cilint
build-python:
runs-on: ubuntu-24.04
- name: Checkout
uses: actions/checkout@v7
- name: Install radare2
uses: radareorg/github-actions@v3
with:
version: ${{ env.R2V }}
- name: Package r2pm binary
run: make -C src bindist
- name: Upload r2pm binary artifact
uses: actions/upload-artifact@v7
with:
name: bindist-${{ matrix.os }}
path: r2ai-*.zip
if-no-files-found: error
windows-bindist:
name: Build r2pm binary (Windows)
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Installing radare2
run: |
wget "https://github.com/radareorg/radare2/releases/download/${R2V}/radare2_${R2V}_amd64.deb"
wget "https://github.com/radareorg/radare2/releases/download/${R2V}/radare2-dev_${R2V}_amd64.deb"
sudo dpkg -i "radare2_${R2V}_amd64.deb"
sudo dpkg -i "radare2-dev_${R2V}_amd64.deb"
- name: Setting up Python
run: |
cd py
python -m venv venv
. venv/bin/activate
pip install pylint
cd ..
- name: Install Python dependencies
run: |
cd py
. venv/bin/activate
pip install .
cd ..
- name: Running r2ai from the shell
run: |
cd py
. venv/bin/activate
python -m r2ai.cli -h
cd ..
- name: Running r2ai from r2pipe
run: |
cd py
. venv/bin/activate
r2 -q -c '#!pipe python -m r2ai.cli -h' /bin/ls
cd ..
- name: Running r2ai from r2
run: |
cd py
. venv/bin/activate
r2 -q -i r2ai/plugin.py -c r2ai /bin/ls
cd ..
- name: Checkout
uses: actions/checkout@v7
- name: Setup Meson/Ninja
run: |
python -m pip install --upgrade pip
pip install meson ninja
- name: Install radare2
id: r2
uses: radareorg/github-actions@v3
with:
version: ${{ env.R2V }}
- name: Build with Meson
shell: powershell
run: |
cd src
$prefix = "${{ steps.r2.outputs.prefix }}"
meson setup build --backend ninja --prefix="$prefix" -Dr2_prefix="$prefix"
if ($LASTEXITCODE -ne 0) { meson configure build }
meson compile -C build
- name: Package r2pm binary
shell: pwsh
run: |
New-Item -ItemType Directory -Force -Path bindist\plugins,bindist\bin,bindist\prompts | Out-Null
Get-ChildItem src\build\ -Filter "*r2ai*.dll" -ErrorAction SilentlyContinue | Copy-Item -Destination bindist\plugins
Get-ChildItem src\..\build\ -Filter "*r2ai*.dll" -ErrorAction SilentlyContinue | Copy-Item -Destination bindist\plugins
Copy-Item src\build\r2ai.exe bindist\bin
Copy-Item prompts\*.r2ai.md bindist\prompts
$rv = (& radare2 -qv).Trim()
Compress-Archive -Path bindist\* -DestinationPath "r2ai-$rv-windows-x86-64.zip" -Force
- name: Upload r2pm binary artifact
uses: actions/upload-artifact@v7
with:
name: windows-bindist
path: r2ai-*.zip
if-no-files-found: error
release:
name: Create Release
needs: [bindist, windows-bindist]
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Verify tag is on master
run: |
git fetch origin master:refs/remotes/origin/master
if ! git branch -r --contains ${GITHUB_SHA} | grep -q "origin/master"; then
echo "Tag commit is not on origin/master — skipping release."
exit 0
fi
- name: Download r2pm binary artifacts
uses: actions/download-artifact@v8
with:
pattern: '*bindist*'
path: release-artifacts
merge-multiple: true
- name: Add decai.r2.js to release artifacts
run: cp decai/decai.r2.js release-artifacts/
- name: Create GitHub Release
uses: softprops/action-gh-release@v3
with:
files: |
release-artifacts/*.zip
release-artifacts/decai.r2.js
generate_release_notes: true
-19
View File
@@ -1,19 +0,0 @@
name: Create release
on:
push:
tags:
- '*'
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Create GitHub release
uses: softprops/action-gh-release@v2
with:
draft: false
prerelease: false
generate_release_notes: true
+9 -1
View File
@@ -1,4 +1,8 @@
build
b
src/b
src/r2ai
src/r2ai.dSYM
venv
**/__pycache__
*.pyc
@@ -6,4 +10,8 @@ venv
*.o
*.so
*.dylib
*.a
*.a
third_party
# r2pm binary packages
r2ai-*.zip
+3 -3
View File
@@ -23,12 +23,12 @@ if [ -f ~/.r2ai.openai-key ]; then
OPENAI_KEY=$(cat ~/.r2ai.openai-key)
fi
CLAUDE_KEY=""
CLAUDE_MODEL="claude-3-5-sonnet-20241022"
CLAUDE_MODEL="claude-sonnet-5-5"
if [ -f ~/.r2ai.anthropic-key ]; then
CLAUDE_KEY=$(cat ~/.r2ai.anthropic-key)
fi
DEEPSEEK_KEY=""
DEEPSEEK_MODEL="claude-3-5-sonnet-20241022"
DEEPSEEK_MODEL="claude-sonnet-5-5"
if [ -f ~/.r2ai.deepseek-key ]; then
DEEPSEEK_KEY=$(cat ~/.r2ai.anthropic-key)
fi
@@ -138,7 +138,7 @@ GEMINI_KEY=~/.r2ai-gemini.key
OPENAI_KEY=~/.r2ai-openai.key
CLAUDE_KEY=~/.r2ai-anthropic.key
DEEPSEEK_KEY=~/.r2ai-deepseek.key
CLAUDE_MODEL=claude-3-5-sonnet-20241022
CLAUDE_MODEL=claude-sonnet-5-5
EOF
exit 0
}
File renamed without changes.
+14
View File
@@ -0,0 +1,14 @@
SHELL=/bin/bash
MODELS=gpt-oss:20b gemma3:4b gemma3:12b
MODELS+=granite3-dense:8b mannix/jan-nano:latest yi-coder:latest qwen3:latest deepseek-coder-v2:latest hhao/qwen2.5-coder-tools:latest qwen2.5-coder:latest
MODELS=granite3-dense:8b mannix/jan-nano:latest yi-coder:latest qwen3:latest deepseek-coder-v2:latest hhao/qwen2.5-coder-tools:latest qwen2.5-coder:latest
LANGS=Dart Perl Ruby Javascript PHP C
all:
for a in ${MODELS} ; do \
declare -a ARGS; \
for l in ${LANGS} ; do \
ARGS+=("echo \"decai -e model=$$a;decai -e lang=$$l;s 0x100000924;af;decai -d\" | r2 -q /bin/ls"); \
done ; \
./run.sh "$${ARGS[@]}" > ${a//\//_}.html ; done
+4
View File
@@ -0,0 +1,4 @@
<b>
decai -e model=$a;decai -e lang=$l;s 0x100000924;af;decai -d
</b><br/>
Transform this pseudocode and respond ONLY with plain code (NO explanations, comments or markdown), Change 'goto' into if/else/for/while, Simplify as much as possible, use better variable names, take function arguments and strings from comments like 'string:', Reduce lines of code and fit everything in a single function, Remove all dead code
+49
View File
@@ -0,0 +1,49 @@
#!/bin/bash
# Find all directories containing BENCH.txt
dirs=$(find . -name "BENCH.txt" -type f | xargs dirname | sort | uniq)
# Start HTML output
cat <<EOF > benchmark_index.html
<html>
<table>
EOF
# Process each directory
for dir in $dirs; do
cat <<EOF >> benchmark_index.html
<tr> <td>
<div>
EOF
# Add contents of BENCH.txt
cat "$dir/BENCH.txt" >> benchmark_index.html
cat <<EOF >> benchmark_index.html
</div>
</td>
<td>
EOF
# Find and add links to HTML files
for html_file in $(ls "$dir"/*.html 2>/dev/null | sort); do
base=$(basename "$html_file" .html)
cat <<EOF >> benchmark_index.html
<a href="$dir/$base.html">$base</a>
<br />
EOF
done
cat <<EOF >> benchmark_index.html
</td>
</tr>
EOF
done
# End HTML output
cat <<EOF >> benchmark_index.html
</table>
<br />
<br />
</html>
EOF
+177
View File
@@ -0,0 +1,177 @@
#!/bin/bash
# Generate HTML output for command executions with collapsible sections and width control
if [ $# -eq 0 ]; then
echo "Usage: $0 command1 [command2 ...]"
exit 1
fi
# Timeout in seconds for each command (configurable via TIMEOUT environment variable)
TIMEOUT=${TIMEOUT:-30}
cat << 'EOF'
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Command Execution Results</title>
<style>
* {
box-sizing: border-box;
}
:root {
--max-width: 400px;
}
body {
font-family: monospace;
margin: 0;
padding: 20px;
background-color: #f5f5f5;
overflow-x: hidden;
}
.slider-container {
background: white;
padding: 15px;
margin-bottom: 20px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
width: 100%;
}
.slider-container label {
display: block;
margin-bottom: 10px;
font-weight: bold;
}
.slider-container input {
width: 100%;
}
.commands-container {
display: flex;
flex-wrap: wrap;
gap: 15px;
align-items: flex-start;
}
.command-section {
background: white;
border-radius: 8px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
overflow: hidden;
width: var(--max-width);
}
.command-title {
background: #e9ecef;
padding: 12px 15px;
cursor: pointer;
border: none;
width: 100%;
text-align: left;
font-family: inherit;
font-size: inherit;
border-radius: 8px 8px 0 0;
position: relative;
}
.command-title:hover {
background: #dee2e6;
}
.command-time {
position: absolute;
top: 12px;
right: 15px;
color: #6c757d;
font-size: 0.9em;
}
.command-body {
padding: 15px;
border-top: 1px solid #dee2e6;
display: none;
}
.command-output {
background: #f8f9fa;
padding: 10px;
border-radius: 4px;
white-space: pre-wrap;
word-wrap: break-word;
overflow-x: auto;
}
.command-section.expanded .command-body {
display: block;
}
</style>
</head>
<body>
<div class="slider-container">
<label for="width-slider">Maximum Width: <span id="width-value">400</span>px</label>
<input type="range" id="width-slider" min="200" max="2000" value="400" step="50">
</div>
<div class="commands-container">
EOF
# Process each command
for cmd in "$@"; do
# Extract title: if command starts with #, use the rest as title, else use the command
if [[ "$cmd" =~ ^#[[:space:]]*(.*) ]]; then
title="${BASH_REMATCH[1]}"
exec_cmd="${cmd#*#}"
exec_cmd="${exec_cmd#"${exec_cmd%%[![:space:]]*}"}" # trim leading spaces
else
title="$cmd"
exec_cmd="$cmd"
fi
# Execute command and time it
start_time=$(date +%s.%N)
tmpfile=$(mktemp)
eval "$exec_cmd" > "$tmpfile" 2>&1 &
pid=$!
(sleep $TIMEOUT && kill $pid 2>/dev/null) &
wait $pid 2>/dev/null
output=$(cat "$tmpfile")
rm "$tmpfile"
exit_code=$?
end_time=$(date +%s.%N)
# Calculate execution time
execution_time=$(echo "$end_time - $start_time" | bc -l 2>/dev/null || echo "0")
if [ $? -ne 0 ]; then
execution_time="N/A"
else
execution_time=$(printf "%.3f" "$execution_time")
fi
# Escape HTML in output
escaped_output=$(echo "$output" | sed 's/&/\&amp;/g; s/</\&lt;/g; s/>/\&gt;/g')
cat << EOF
<div class="command-section expanded">
<button class="command-title" onclick="toggleSection(this)">$title<span class="command-time">${execution_time}s</span></button>
<div class="command-body">
<div class="command-output">$escaped_output</div>
</div>
</div>
EOF
done
cat << 'EOF'
</div>
<script>
// Slider functionality
const slider = document.getElementById('width-slider');
const widthValue = document.getElementById('width-value');
slider.addEventListener('input', function() {
const value = this.value;
document.documentElement.style.setProperty('--max-width', value + 'px');
widthValue.textContent = value;
});
// Toggle functionality
function toggleSection(button) {
const section = button.parentElement;
section.classList.toggle('expanded');
}
</script>
</body>
</html>
EOF
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
View File
File renamed without changes.
+1 -1
View File
@@ -49,7 +49,7 @@ python3 main.py
**Example selecting a remote models:**
```
[r2ai:0x00006aa0]> -m anthropic:claude-3-7-sonnet-20250219
[r2ai:0x00006aa0]> -m anthropic:claude-sonnet-5-5
[r2ai:0x00006aa0]> -m openai:gpt-4
```
File renamed without changes.
View File
File renamed without changes.
View File
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -62,7 +62,7 @@ Uncensored:
Remote:
-m openapi:http://localhost:5001
-m openai:gpt-4
-m anthropic:claude-3-7-sonnet-20250219
-m anthropic:claude-sonnet-5-5
-m bedrock:anthropic.claude-3-5-sonnet-20241022-v1
-m kobaldcpp:http://localhost:5001
"""
@@ -80,12 +80,9 @@ OpenAI:
-m openai:gpt-4
-m openai:gpt-4-1106-preview
Anthropic:
-m anthropic:claude-2.1
-m anthropic:claude-3-haiku-20240307
-m anthropic:claude-3-opus-20240229
-m anthropic:claude-3-sonnet-20240229
-m anthropic:claude-3-5-sonnet-20241022
-m anthropic:claude-3-7-sonnet-20250219
-m anthropic:claude-opus-4-8
-m anthropic:claude-sonnet-5-5
-m anthropic:claude-haiku-4-5-20251001
groq:
-m groq:gemma-7b-it
-m groq:llama2-70b-4096
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
+1 -2
View File
@@ -170,8 +170,7 @@ def slurp_until(endword):
def list_models():
print("ollama/llama3:latest")
print("ollama/granite-code:8b")
print("anthropic/claude-3-5-sonnet-20240620")
print("anthropic/claude-3-7-sonnet-20250219")
print("anthropic/claude-sonnet-5-5")
print("openai/gpt-4o")
print("mistral/mistral-tiny")
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
+14 -3
View File
@@ -50,8 +50,16 @@ def stt(seconds, lang):
return
tts("(r2ai) listening for 5s... ", "digues?", lang)
print(f"DEVICE IS {device}")
os.system("rm -f .audiomsg.wav")
rc = os.system(f"ffmpeg -f avfoundation -t 5 -i '{device}' .audiomsg.wav > /dev/null 2>&1")
try:
os.remove(".audiomsg.wav")
except OSError:
pass
result = subprocess.run(
["ffmpeg", "-f", "avfoundation", "-t", "5", "-i", device, ".audiomsg.wav"],
stdout=subprocess.DEVNULL,
stderr=subprocess.DEVNULL
)
rc = result.returncode
if rc != 0:
tts("(r2ai)", "cannot record from microphone. missing permissions in terminal?", lang)
return
@@ -60,7 +68,10 @@ def stt(seconds, lang):
result = model.transcribe(".audiomsg.wav")
else:
result = model.transcribe(".audiomsg.wav", language=lang)
os.system("rm -f .audiomsg.wav")
try:
os.remove(".audiomsg.wav")
except OSError:
pass
tts("(r2ai)", "ok", lang)
text = result["text"].strip()
if text == "you":
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
-1
View File
@@ -1 +0,0 @@
recursive-include r2ai/ui *.tcss
+6 -14
View File
@@ -1,17 +1,9 @@
.PHONY: all all.old deps clean deps-global pub lint cilint
.PHONY: install uninstall user-install user-uninstall
TARGETS=all clean mrproper user-install install user-uninstall uninstall fmt indent
all:
@echo "Usage: Run 'make' in the following subdirectories instead"
@echo "src/ - Modern C rewrite in form of a native r2 plugin"
@echo "py/ - The old Python cli and r2 plugin"
@echo "decai/ - r2js plugin with focus on decompiling"
@echo "server/ - shellscript to easily run llamacpp and other"
@false
$(TARGETS):
$(MAKE) -C src $@
clean:
@echo We are clean already
mrproper:
$(MAKE) clean
test: all
$(MAKE) -C test
.PHONY: $(TARGETS) test
+76 -96
View File
@@ -1,135 +1,115 @@
```
,______ .______ .______ ,___
: __ \ \____ |: \ : __|
| \____|/ ____|| _,_ || : |
| : \ \ . || : || |
| |___\ \__:__||___| || |
|___| : |___||___|
*
# R2AI - Augmented reversing with LLM for radare2
```console
╭─────────────────────────────────╮
│ ,______ .______ .______ ,___ │
╭──╮ │ : __ \ \____ |: \ : __| │
│ _│_ │ | \____|/ ____|| _,_ || : | │
│ O O < | : \ \ . || : || | │
│ │╷ │ | |___\ \__:__||___| || | │
│ ││ │ |___| : |___||___| │
│ ─╯│ ╰─────────────────────────────────╯
╰───╯
```
[![ci](https://github.com/radareorg/r2ai/actions/workflows/ci.yml/badge.svg)](https://github.com/radareorg/r2ai/actions/workflows/ci.yml)
Run a language model to entertain you or help answering questions about radare2 or reverse engineering in general. The language model may be local (running without Internet on your host) or remote (e.g if you have an API key). Note that models used by r2ai are pulled from external sources which may behave different or respond unreliable information. That's why there's an ongoing effort into improving the post-finetuning using memgpt-like techniques which can't get better without your help!
<p align="center">
<img src="doc/images/r2clippy.jpg">
</p>
[![radare2](https://img.shields.io/badge/radare2-6.0.4-green)](https://github.com/radareorg/radare2)
## Components
R2AI repository contains four different projects:
This repository contains two plugins for radare2:
Recommended plugins:
* **r2ai** - native [AI plugin](./src/README.md) for radare2
* **decai** - r2js plugin with special [focus on decompilation](./decai/README.md)
* **r2ai-plugin** (`src/` directory)
* Native plugin written in C
* adds r2ai command inside r2
* **decai** (r2js plugin focus on decompilation)
* adds 'decai' command to the r2 shell
* talks to local or remote services with curl
* focus on decompilation
If you are looking to use radare2 with other agents via MCP:
Deprecated implementations:
* **r2mcp** - the [official radare2 mcp](https://github.com/radare2/radare2-mcp)
* **r2copilot** - the mcp with focus on CTF [r2copilot](https://github.com/darallium/r2-copilot)
* **r2ai-python** cli tool (`py/` directory)
* r2-like repl using r2pipe to comunicate with r2
* supports auto solving mode
* client and server openapi protocol
* download and manage models from huggingface
* **r2ai-server**
* favour *ollama* instead
* list and select models downloaded from r2ai
* simple cli tool to start local openapi webservers
* supports llamafile, llamacpp, r2ai-w and kobaldcpp
If you are looking for a radare2 focused autonomous agent:
* **r2agent** - automate radare2 workflows through autonomous agents. [r2agent](https://github.com/nitanmarcel/r2agent)
## Features
* Support Auto mode to solve tasks using function calling
* Use local and remote language models (llama, ollama, openai, anthropic, ..)
* Support OpenAI, Anthropic, Bedrock
* Index large codebases or markdown books using a vector database
* Slurp file and perform actions on that
* Embed the output of an r2 command and resolve questions on the given data
* Define different system-level assistant role
* Set environment variables to provide context to the language model
* Configure different roles and customize prompts
* Scriptable via r2pipe via the r2ai command
* Live with repl and batch mode from cli or r2 prompt
* Scriptable via r2pipe
* Use different models, dynamically adjust query template
* Load multiple models and make them talk between them
* Support Automatic (ReAct) mode to solve tasks using function calling
* Use local and remote language models (ollama, openai, grok, anthropic, ..)
* RAG markdown, code or textfiles using its native vector database
* Embed the output of an r2 command and resolve questions on the given data
## User defined Prompts
```console
[0x00000000]> r2ai -q
explain: Explain the current function -
devices: Find and explain devices used -
libs: Group imports by Libraries -
varnames: Better variable names -
autoname: Automatically suggest a better name for this function -
vulns: Find vulnerabilities or bugs in the current function -
signature: Suggest an improved function signature -
dlopen: List libraries loaded with dlopen - Some libraries are loaded
decompile: Augmented decompilation based on LLM -
[0x00000000]>
```
## Installation
### Radare2 Package Manager
The recommended way to install any of the r2ai components is via r2pm:
You can find all the packages with `r2pm -s r2ai`:
```console
$ r2pm -Uci r2ai
$ r2pm -Uci decai
```
## Using r2ai
- Adds the **r2ai** command to the radare2 shell: `r2 -qc r2ai`
- You can also run the wrapper in $PATH: `r2pm -r r2ai`
Drop your API keys in environment variables or use the configuration file:
```console
$ r2pm -s r2ai
r2ai-py run a local language model integrated with radare2
r2ai-py-plugin r2ai plugin for radare2
r2ai-plugin r2ai plugin rewritten in plain C
r2ai-server start a language model webserver in local
decai r2ai r2js subproject with focus on LLM decompilation for radare2
$
$ export ANTHROPIC_API_KEY=sk-ant-api03-CENSORED
$ export OPENAI_API_KEY=sk-proj-6rlSPS-zN1v...
```
### From sources
Running `make` on the root directory will instruct you where the sub-projects are, just run the `install`/`user-install` targets in there.
For example:
Or edit the api keys file `~/.config/r2ai/apikeys.txt` run:
```console
$ make
Usage: Run 'make' in the following subdirectories instead
src/ - Modern C rewrite in form of a native r2 plugin
py/ - The old Python cli and r2 plugin
decai/ - r2js plugin with focus on decompiling
server/ - shellscript to easily run llamacpp and other
$ cd src
$ make
$ r2ai -K
```
## Running r2ai
### Launch r2ai
- The r2ai-plugin adds the **r2ai** command to the radare2 shell: `r2 -qc r2ai-r`
- If you installed via r2pm, you can execute it like this: `r2pm -r r2ai`
- Otherwise, `./r2ai.sh [/absolute/path/to/binary]`
If you have an **API key**, put it in the adequate file:
| AI | API key |
| --------- | -------------------------- |
| OpenAI | `$HOME/.r2ai.openai-key` |
| Gemini | `$HOME/.r2ai.gemini-key` |
| Anthropic | `$HOME/.r2ai.anthropic-key` |
| Mistral | `$HOME/.r2ai.mistral-key` |
...
Example using an Anthropic API key:
```
$ cat ~/.r2ai.anthropic-key
sk-ant-api03-CENSORED
```
### Saving configuration settings
## Saving settings
You may customize and save your configuration settings using your OS's default settings file (e.g `~/.radare2rc` on Linux).
For example, the following configuration sets Claude 3.7 by default, with max output tokens to 64000.
```console
$ r2ai -E
```
then you can type the commands you want to run when the r2ai plugin is loaded:
```console
r2ai -e api=anthropic
r2ai -e model=claude-3-7-sonnet-20250219
r2ai -e model=claude-sonnet-5-5
r2ai -e max_tokens=64000
```
## Further Reading
* There's [a chapter](https://book.rada.re/plugins/r2ai.html) in the official r2book
* Cryptax on [lmstudio+gptoss](https://cryptax.medium.com/r2ai-with-lmstudio-and-gpt-oss-08efa5ea2476) blog post
* Malware analysis [with r2ai](https://arxiv.org/pdf/2504.07574) by Cryptax and Daniel Nakov
* Analysis of [Linux/Trigona ransomware](https://cryptax.medium.com/linux-trigona-analysis-with-r2ai-3e2bd1815e52), [Linux/Prometei botnet](https://cryptax.medium.com/reversing-a-prometei-botnet-binary-with-r2-and-ai-part-one-3cdb3dc6ffab) and [W32/SkyAI](https://cryptax.medium.com/w32-skyai-uses-ai-so-do-i-d33f04d63534with) with r2ai
## Videos
- https://infosec.exchange/@radareorg/111946255058894583
- [Solving a crackme](https://infosec.exchange/@radareorg/111946255058894583)
- [De-obfuscation of malware Linux/Ladvix](https://asciinema.org/a/724126)
- [Analysis of the /fast option inside Linux/Trigona ransomware](https://asciinema.org/a/pBPEaJhp6cunWSKFpBUDTgPt4)
+1
View File
@@ -0,0 +1 @@
1.5.4
+6
View File
@@ -0,0 +1,6 @@
#!/bin/sh
vim decai/src/constants.ts
make -C decai/src
vim src/r2ai.h
vim src/meson.build
vim VERSION
+13
View File
@@ -0,0 +1,13 @@
# Decompiler based AI
## Actions
* Build: `make -C src`
* Install: `make user-install`
* Test: `r2 -A -qc "decai -e api=ollamacloud;decai -e model=glm-5;decai -d @ 0x100000924" /bin/ls`
## Hints
* Never read the minified, autogenerated `decai.r2.js`
* Focus and work only on the TypeScript source
* Never run `tsc` or `npx`. Always use `make` targets to compile
+5 -6
View File
@@ -1,17 +1,16 @@
PD=$(shell r2 -H R2_USER_PLUGINS)
SPD=$(shell r2 -H R2_LIBR_PLUGINS)
#BF=/bin/dd
BF=a.out
BF=/bin/dd
all:
@echo "Run: make user-install"
@echo "Run: 'make user-install' to install it in your home"
@echo "Run: 'make -C src' to recompile the r2.js"
test:
@echo 'You can now use 'decai' command'
r2 -i decai.r2.js -c 'decai -e deterministic=true' -caf $(BF)
fmt indent:
deno fmt
$(MAKE) -C src fmt
user-install:
mkdir -p "$(PD)"
@@ -27,4 +26,4 @@ uninstall:
make user-uninstall PD=$(SPD)
vs open:
open -a "Visual Studio Code" .
open -a "Visual Studio Code" src
+39
View File
@@ -37,6 +37,7 @@ Usage: decai (-h) ...
decai -dd [..] - same as above, but ignoring cache
decai -dD [query]- decompile current function with given extra query
decai -e - display and change eval config vars
decai -E - edit decai.txt
decai -h - show this help
decai -i [f] [q] - include given file and query
decai -n - suggest better function name
@@ -55,10 +56,12 @@ Configuration options:
```console
[0x00000000]> decai -e
decai -e api=ollama
decai -e apitype=chat
decai -e host=http://localhost
decai -e port=11434
decai -e prompt=Rewrite this function and respond ONLY with code, NO explanations, NO markdown, Change 'goto' into if/else/for/while, Simplify as much as possible, use better variable names, take function arguments and strings from comments like 'string:'
decai -e ctxfile=
decai -e headers=
decai -e cmds=pdc
decai -e cache=false
decai -e lang=C
@@ -96,6 +99,16 @@ decai -e ctxfile=
...
```
Persist user defaults in `~/.config/r2ai/decai.txt` with one `key=value` entry
per line, then edit it with `decai -E`. That file is loaded on the first
`decai` command in a session and reloaded after `decai -E` exits.
Use `decai -e http=curl` to force system curl, `http=r2` to require `r2.http()`,
or `http=auto` (the default) to use `r2.http()` when available and curl otherwise.
Failed `r2.http()` calls return an error without falling back to curl. The
`timeout` setting applies only to system curl. Save `http=curl` in
`~/.config/r2ai/decai.txt` to persist the override.
List possible APIs to discuss with AI: `decai -e api=?`:
```
@@ -106,6 +119,14 @@ openapi
...
```
Extra headers can be injected globally with `decai -e headers=...` or from the
environment with `DECAI_HEADERS` / `R2AI_HEADERS`. Use one header per line, for
example:
```console
[0x00406cac]> decai -e headers=Authorization: Bearer sk-123\nUser-Agent: curl/8.7.1
```
### Example using a local model and ollama
For example, if Ollama serves model codegeex4:latest (`ollama ls`), set decai
@@ -197,3 +218,21 @@ void daemonize() {
}
...
```
## WASM HTTP
With radare2's WASI HTTP build, decai defaults to `r2.http()` to reach the existing
`r_socket_http_get/post` C APIs. Headers and JSON payloads go directly to the
host HTTP adapter; no shell curl, temporary payload file or WebSocket proxy is
needed. A failed/denied HTTP call is returned as an error, without a shell
fallback. In `http=auto` mode, runtimes without `r2.http()` use system curl.
Enable HTTP in the embedding application (`enabled: true` in JavaScript or
`network=True` in Python). The radare2 sandbox must permit both `socket` and
`network`; process execution is not needed. Browser requests remain subject
to CORS. The host adapter controls the HTTP deadline in WASM; decai's `timeout`
setting still controls native curl only. Responses are buffered, not streamed.
This requires radareorg/radare2#27037 and the rebuilt decai script. For the
C r2ai plugin compiled into WASM, the `auto` HTTP backend likewise selects
radare2's C HTTP implementation; native backend selection is unchanged.
+64 -1280
View File
File diff suppressed because it is too large. Load diff
+36
View File
@@ -0,0 +1,36 @@
# decai r2plugin
Boilerplate to embed `decai.r2.js` inside the radare2 core library using the
external plugin system (XPS). Unlike `r2ai/r2plugin`, this does not link any
native code: the r2.js script is converted into a C buffer and registered as
an embedded startup script, so r2 runs it at startup exactly like a file in
the `plugins/*.r2.js` directory (honoring `cfg.plugins`).
The `decai.r2.js` bundle is built from the typescript sources with
`r2frida-compile` (see `make -C src` in the decai directory). The C buffer is
generated at build time with `rax2 -C` (make builds) or `js2c.py` (meson).
## Usage
decai lives inside the r2ai repository, so expose it as `libr/xps/p/decai`:
```console
cd radare2/libr/xps/p
git clone https://github.com/radareorg/r2ai
ln -s r2ai/decai decai
```
For acr/make builds:
```console
cd radare2
make -C libr/xps EXTERNAL_PLUGINS=decai
./configure-plugins
make
```
For meson builds, make `libr/xps/p/meson.build` contain:
```meson
subdir('decai/r2plugin')
```
+2
View File
@@ -0,0 +1,2 @@
/Users/pancake/prg/radare2/libr/xps/p/decai/r2plugin/core/decai.r2.js.o: \
/Users/pancake/prg/radare2/libr/xps/p/decai/r2plugin/core/decai.r2.js.c
+3
View File
@@ -0,0 +1,3 @@
#ifdef R2_CORE_H
extern RCorePlugin r_core_plugin_decai;
#endif
+10
View File
@@ -0,0 +1,10 @@
DECAI_CORE_WD=$(LIBR)/xps/p/decai
DECAI_CORE_OBJ= \
$(DECAI_CORE_WD)/r2plugin/core/plugin.o \
$(DECAI_CORE_WD)/r2plugin/core/decai.r2.js.o
EXTERNAL_STATIC_OBJS+=$(DECAI_CORE_OBJ)
# decai.r2.js can be rebuilt from typescript with r2frida-compile (make -C src)
$(DECAI_CORE_WD)/r2plugin/core/decai.r2.js.c: $(DECAI_CORE_WD)/decai.r2.js
rax2 -C < $(DECAI_CORE_WD)/decai.r2.js | \
sed -e 's,^unsigned,const unsigned,' -e 's,buf,decai_qjs,g' > $@
+35
View File
@@ -0,0 +1,35 @@
/* decai - LGPL - Copyright 2026 - pancake */
#include <r_core.h>
// generated from ../decai.r2.js, see ../deps.mk
extern const unsigned char decai_qjs[];
extern const unsigned int decai_qjs_len;
static bool decai_init(RCorePluginSession *cps) {
r_core_script_embed (cps->core, "decai", "qjs", (const char *)decai_qjs, (int)decai_qjs_len);
return true;
}
static bool decai_call(RCorePluginSession *cps, const char *input) {
return false;
}
RCorePlugin r_core_plugin_decai = {
.meta = {
.name = "decai",
.desc = "AI decompiler (embedded decai.r2.js)",
.author = "pancake",
.license = "MIT",
},
.init = decai_init,
.call = decai_call,
};
#ifndef R2_PLUGIN_INCORE
R_API RLibStruct radare_plugin = {
.type = R_LIB_TYPE_CORE,
.data = &r_core_plugin_decai,
.version = R2_VERSION,
};
#endif
+372
View File
@@ -0,0 +1,372 @@
/Users/pancake/prg/radare2/libr/xps/p/decai/r2plugin/core/plugin.o: \
/Users/pancake/prg/radare2/libr/xps/p/decai/r2plugin/core/plugin.c \
/Users/pancake/prg/radare2/libr/include/r_core.h \
/Users/pancake/prg/radare2/libr/include/r_main.h \
/Users/pancake/prg/radare2/libr/include/r_types.h \
/Users/pancake/prg/radare2/libr/include/r_types_base.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/ctype.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_ctype.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_symbol_aliasing.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_posix_availability.h \
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/21/include/ptrcheck.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_bounds.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/runetype.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_types.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/machine/_types.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/arm/_types.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_types.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_size_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_ct_rune_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_rune_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_wchar_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_wint_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/types.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/appleapiopts.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/machine/types.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/arm/types.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_int8_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_int16_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_int32_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_int64_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int8_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int16_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int32_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int64_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_intptr_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_uintptr_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/machine/endian.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/arm/endian.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_endian.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/machine/_endian.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/arm/_endian.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/__endian.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/libkern/_OSByteOrder.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/libkern/arm/_OSByteOrder.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_char.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_short.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_caddr_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_dev_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_blkcnt_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_blksize_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_gid_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_addr_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_port_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino64_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_key_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_mode_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_nlink_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_id_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_pid_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_off_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_uid_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_clock_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_ssize_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_time_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_useconds_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_suseconds_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_rsize_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_errno_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_def.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/Availability.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/AvailabilityVersions.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/AvailabilityInternal.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/AvailabilityInternalLegacy.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_setsize.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_set.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_clr.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_zero.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_isset.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_copy.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_attr_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_cond_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_condattr_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutex_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutexattr_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_once_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlock_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlockattr_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_key_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsblkcnt_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsfilcnt_t.h \
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/21/include/limits.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/limits.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/machine/limits.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/arm/limits.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/arm/_limits.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/syslimits.h \
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/21/include/stdint.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/stdint.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_types/_uint8_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_types/_uint16_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_types/_uint32_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_types/_uint64_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_types/_intmax_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_types/_uintmax_t.h \
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/21/include/stdbool.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/math.h \
/Users/pancake/prg/radare2/libr/include/r_types_overflow.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_str_util.h \
/Users/pancake/prg/radare2/libr/include/r_userconf.h \
/Users/pancake/prg/radare2/libr/include/r_version.h \
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/21/include/stddef.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/stddef.h \
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/21/include/__stddef_header_macro.h \
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/21/include/__stddef_ptrdiff_t.h \
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/21/include/__stddef_size_t.h \
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/21/include/__stddef_rsize_t.h \
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/21/include/__stddef_wchar_t.h \
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/21/include/__stddef_null.h \
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/21/include/__stddef_max_align_t.h \
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/21/include/__stddef_offsetof.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/stdlib.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_stdlib.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/wait.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/signal.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/machine/signal.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/arm/signal.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/machine/_mcontext.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/arm/_mcontext.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/mach/machine/_structs.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/mach/arm/_structs.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigaltstack.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_ucontext.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigset_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/resource.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_timeval.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/alloca.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_null.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/malloc/_malloc.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/malloc/_malloc_type.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/malloc/_ptrcheck.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_abort.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/assert.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_assert.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_static_assert.h \
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/21/include/inttypes.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/inttypes.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_inttypes.h \
/Users/pancake/prg/radare2/libr/include/r_types_null.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/stdio.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_stdio.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_va_list.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/stdio.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_printf.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_seek_set.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_ctermid.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/secure/_stdio.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/secure/_common.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/string.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_string.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_strings.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/secure/_strings.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/secure/_string.h \
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/21/include/stdarg.h \
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/21/include/__stdarg_header_macro.h \
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/21/include/__stdarg___gnuc_va_list.h \
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/21/include/__stdarg_va_list.h \
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/21/include/__stdarg_va_arg.h \
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/21/include/__stdarg___va_copy.h \
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/21/include/__stdarg_va_copy.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/fcntl.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/fcntl.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_o_sync.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_o_dsync.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_s_ifmt.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_timespec.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_filesec_t.h \
/Users/pancake/prg/radare2/libr/include/r_endian.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/stat.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/dirent.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/dirent.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/unistd.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_posix_vdisable.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/select.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_select.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_uuid_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/gethostuuid.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/time.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_timeval64.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/time.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_time.h \
/Users/pancake/prg/radare2/libr/include/r_getopt.h \
/Users/pancake/prg/radare2/libr/include/r_util.h \
/Users/pancake/prg/radare2/libr/include/r_regex.h \
/Users/pancake/prg/radare2/libr/include/r_list.h \
/Users/pancake/prg/radare2/libr/include/sdb/sdb.h \
/Users/pancake/prg/radare2/libr/include/sdb/asserts.h \
/Users/pancake/prg/radare2/libr/include/sdb/types.h \
/Users/pancake/prg/radare2/libr/include/sdb/config.h \
/Users/pancake/prg/radare2/libr/include/sdb/ht.h \
/Users/pancake/prg/radare2/libr/include/sdb/ht_pp.h \
/Users/pancake/prg/radare2/libr/include/sdb/ht_inc.h \
/Users/pancake/prg/radare2/libr/include/sdb/ls.h \
/Users/pancake/prg/radare2/libr/include/sdb/heap.h \
/Users/pancake/prg/radare2/libr/include/sdb/dict.h \
/Users/pancake/prg/radare2/libr/include/sdb/cdb.h \
/Users/pancake/prg/radare2/libr/include/sdb/cdb_make.h \
/Users/pancake/prg/radare2/libr/include/sdb/buffer.h \
/Users/pancake/prg/radare2/libr/include/sdb/version.h \
/Users/pancake/prg/radare2/libr/include/sdb/rangstr.h \
/Users/pancake/prg/radare2/libr/include/r_skiplist.h \
/Users/pancake/prg/radare2/libr/include/r_th.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_w32.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_sys.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/errno.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/errno.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/semaphore.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/semaphore.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/pthread.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/pthread/sched.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/pthread/pthread_impl.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/pthread/qos.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/qos.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_mach_port_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/signal.h \
/Users/pancake/prg/radare2/libr/include/r_event.h \
/Users/pancake/prg/radare2/libr/include/sdb/ht_up.h \
/Users/pancake/prg/radare2/libr/include/r_vec.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_assert.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_log.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_arena.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_itv.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_signal.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_alloc.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_rbtree.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_trie.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_strs.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_xml.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_new_rbtree.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_intervaltree.h \
/Users/pancake/prg/radare2/libr/include/r_util/../r_types.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_big.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_base32.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_base36.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_base64.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_base91.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_buf.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_mem.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_ref.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_bits.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_bitmap.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_bitset.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_time.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_debruijn.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_type.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_file.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_hex.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_name.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_num.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_table.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_graph.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_panels.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_pool.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_diff.h \
/Users/pancake/prg/radare2/libr/include/r_cons.h \
/Users/pancake/prg/radare2/libr/include/r_util/pj.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_strbuf.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_json.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_sandbox.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_stack.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_str.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/wchar.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_wchar.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_mbstate_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/__wctype.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/___wctype.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_types/_wctype_t.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_str_constpool.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/termios.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/termios.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/ttycom.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/ioccom.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/ttydefaults.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/ioctl.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/filio.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/sockio.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/net/if.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/net/if_var.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_timeval32.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/net/net_kev.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/socket.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/constrained_ctypes.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/machine/_param.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/arm/_param.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_sa_family_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_socklen_t.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_iovec_t.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_punycode.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_queue.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_range.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_spaces.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_strs_store.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_bloom.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_strpool.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_tree.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_uleb128.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_utf8.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_utf16.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_utf32.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_idpool.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_asn1.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_graph_drawable.h \
/Users/pancake/prg/radare2/libr/include/r_config.h \
/Users/pancake/prg/radare2/libr/include/r_util/bplist.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_x509.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_pkcs7.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_protobuf.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_token.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_axml.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_cfloat.h \
/Users/pancake/prg/radare2/libr/include/r_util/libc.h \
/Users/pancake/prg/radare2/libr/include/r_socket.h \
/Users/pancake/prg/radare2/libr/include/r_bind.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/netinet/in.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/netinet6/in6.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/un.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/poll.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/poll.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/arpa/inet.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/netdb.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/netinet/tcp.h \
/Users/pancake/prg/radare2/libr/include/r_magic.h \
/Users/pancake/prg/radare2/libr/include/r_agraph.h \
/Users/pancake/prg/radare2/libr/include/r_io.h \
/Users/pancake/prg/radare2/libr/include/r_lib.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/dlfcn.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_w32dw.h \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/ptrace.h \
/Users/pancake/prg/radare2/libr/include/r_fs.h \
/Users/pancake/prg/radare2/libr/include/r_egg.h \
/Users/pancake/prg/radare2/libr/include/r_asm.h \
/Users/pancake/prg/radare2/libr/include/r_arch.h \
/Users/pancake/prg/radare2/libr/include/r_bin.h \
/Users/pancake/prg/radare2/libr/include/r_muta.h \
/Users/pancake/prg/radare2/libr/include/r_hash.h \
/Users/pancake/prg/radare2/libr/include/r_muta/r_sm4.h \
/Users/pancake/prg/radare2/libr/include/r_bin_dwarf.h \
/Users/pancake/prg/radare2/libr/include/r_reg.h \
/Users/pancake/prg/radare2/libr/include/r_anal/op.h \
/Users/pancake/prg/radare2/libr/include/r_anal/hint.h \
/Users/pancake/prg/radare2/libr/include/r_esil.h \
/Users/pancake/prg/radare2/libr/include/sdb/ht_uu.h \
/Users/pancake/prg/radare2/libr/include/r_anal.h \
/Users/pancake/prg/radare2/libr/include/r_util/r_print.h \
/Users/pancake/prg/radare2/libr/include/r_search.h \
/Users/pancake/prg/radare2/libr/include/r_syscall.h \
/Users/pancake/prg/radare2/libr/include/r_flag.h \
/Users/pancake/prg/radare2/libr/include/r_codemeta.h \
/Users/pancake/prg/radare2/libr/include/sdb/set.h \
/Users/pancake/prg/radare2/libr/include/r_lang.h \
/Users/pancake/prg/radare2/libr/include/r_cmd.h \
/Users/pancake/prg/radare2/libr/include/r_sign.h \
/Users/pancake/prg/radare2/libr/include/r_debug.h \
/Users/pancake/prg/radare2/libr/include/r_bp.h \
/Users/pancake/prg/radare2/libr/include/rvc.h \
/Users/pancake/prg/radare2/libr/include/r_core_priv.h \
/Users/pancake/prg/radare2/libr/include/r_core_task.h
+1
View File
@@ -0,0 +1 @@
include p/decai/r2plugin/core/deps.mk
+11
View File
@@ -0,0 +1,11 @@
#!/usr/bin/env python3
"""Convert a script file into a C buffer named decai_qjs (same output as `rax2 -C` + sed)."""
import sys
data = open(sys.argv[1], "rb").read()
with open(sys.argv[2], "w") as f:
f.write("const unsigned char decai_qjs[] = {\n")
for i in range(0, len(data), 16):
f.write(" %s,\n" % ", ".join("0x%02x" % b for b in data[i:i + 16]))
f.write("};\nconst unsigned int decai_qjs_len = %d;\n" % len(data))
Loaded 100 of 184 files, more files were not shown because too many files have changed in this diff. Show more