Commit Graph

122 Commits

Author SHA1 Message Date
Ignacy Łątka c41359937b fix: Rework descriptions to fix failing CIs (#80)
* rework descriptions

* add action guidance after restart required is returned

* change threshold to 9.0

* fix native devtools status desc
2026-04-07 19:12:39 +02:00
Ignacy Łątka d7a597da32 feat: Publish to NPM privately (#84)
* switch to NPM private registry for @swmansion/argent publishing

* switch publish workflow, constants, and test to npmjs.org registry

* revert publish.yml — deprecated workflow
2026-04-07 19:12:12 +02:00
Filip131311 f7348886d2 fix: new describe crashes 2026-04-07 19:09:12 +02:00
Paweł Fornagiel 167ccf409d fix: move simulator-server binary to native-devtools-ios and fix esbuild bundling (#82)
* chore: update simulator-server path references across documentation and scripts

* feat: add native-devtools-ios entry to bundle-tools script
2026-04-07 18:25:48 +02:00
Ignacy Łątka 445bc044c1 feat: Add update system to Argent (#78)
* feat: add update notification and update-argent tool

Injects an update note into HTTP responses when a newer version of Argent
is available, forwards the note through the MCP server so agents see it
prepended to tool results, and adds an update-argent tool that agents can
call (with explicit user consent) to apply the pending update.

* test: add edge-case tests for update note injection and update-argent tool

* fix: guard update-argent against double-spawn and no-op calls, use argent binary

* feat: auto-suppress update note for 30min after delivery, add dismiss-update tool

* fix: correct npm package name to @software-mansion/argent

* fix: use semver ordering for version comparison, guard double-start, handle response stream errors

* feat: add update notification and update-argent tool

Injects an update note into HTTP responses when a newer version of Argent
is available, forwards the note through the MCP server so agents see it
prepended to tool results, and adds an update-argent tool that agents can
call (with explicit user consent) to apply the pending update.

* test: add edge-case tests for update note injection and update-argent tool

* fix: guard update-argent against double-spawn and no-op calls, use argent binary

* feat: auto-suppress update note for 30min after delivery, add dismiss-update tool

* fix: correct npm package name to @software-mansion/argent

* fix: use semver ordering for version comparison, guard double-start, handle response stream errors

* fix unresolved conflicts

* add yarn to gitignore

* cleanup typecasting

* isolate update note builder

* remove unused import

* fix package name

* change update rate to once per day

* add note against using permanent storage mediums

* update tool descriptions

* fix tests
2026-04-07 17:42:59 +02:00
filip131311 d9dc17d0d5 fix: move describe to native devtools (#83)
* fix: move describe to native devtools

Replace the AX describe path with an app-scoped native hierarchy adapter so coordinate discovery stays on the supported injection flow.
Also add safer targeting and restart guidance to reduce ambiguous Home and cold-start recovery paths.

Made-with: Cursor

* init

* update sim server

* Delete NATIVE_DEVTOOLS_DESCRIBE_MIGRATION_NOTE.md
2026-04-07 17:36:56 +02:00
Filip131311 c8e8669c56 Revert "feat: add update-argent tool and per-response update notification (#74)"
This reverts commit c9a673e97a.
2026-04-07 10:00:10 +02:00
Ignacy Łątka c9a673e97a feat: add update-argent tool and per-response update notification (#74)
* feat: add update notification and update-argent tool

Injects an update note into HTTP responses when a newer version of Argent
is available, forwards the note through the MCP server so agents see it
prepended to tool results, and adds an update-argent tool that agents can
call (with explicit user consent) to apply the pending update.

* test: add edge-case tests for update note injection and update-argent tool

* fix: guard update-argent against double-spawn and no-op calls, use argent binary

* feat: auto-suppress update note for 30min after delivery, add dismiss-update tool

* fix: correct npm package name to @software-mansion/argent

* fix: use semver ordering for version comparison, guard double-start, handle response stream errors
2026-04-06 20:49:06 +02:00
Filip131311 0253a2e641 chore: add Apache 2.0 license files and mixed-license notices for proprietary binaries 2026-04-03 17:07:32 +02:00
Ignacy Łątka cf110cdfcd fix: add missing tsconfig project references for registry and native-devtools-ios (#76)
`tsc --build` fails to resolve `@argent/registry` and
`@argent/native-devtools-ios` because neither package was listed in the
root or tool-server tsconfig references. This broke `npm run build` and
`npm run pack:mcp` after native-devtools-ios was introduced.
2026-04-03 16:24:47 +02:00
Ignacy Łątka 8af3e4ccf5 improve: rewrite tool descriptions to meet SpiderShield quality criteria (#70)
* improve: rewrite all tool descriptions to score 9.8/10 on SpiderShield

Updated description fields for all 53 tools in packages/tool-server/src/tools
to satisfy all 6 SpiderShield quality criteria: has_action_verb,
has_scenario_trigger (Use when), has_param_docs, has_param_examples,
has_error_guidance, and has_return_docs. Description score improved from
5.0 to 9.8/10. The two remaining sub-10 tools (gesture-pinch, gesture-rotate)
are limited by disambiguation_score (0.49) which is outside description control.

* improve: replace verbose description rewrites with minimal targeted additions

* chore: reset tool descriptions to original

* improve: minimal description additions to satisfy quality criteria

* slight adjustment, reformat

* fix: correct inaccurate claims in tool descriptions

- screenshot: default scale is 0.3, not 0.5
- run-sequence: no screenshot is auto-captured; call screenshot separately
- stop-metro: returns stopped=false when no process found, does not fail
- gather-workspace-data: gracefully returns nulls, does not fail on missing path
- debugger-log-registry: returns empty stats on no data, does not fail
- list-simulators: add missing runtime field to return description
- debugger-status: clarify sourceMapReady is always true (waits before returning)
- view-network-request-details: returns error string on missing requestId, does not throw
2026-04-03 15:10:09 +02:00
Filip131311 8c2a313c76 chore: format codebase with Prettier
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 14:53:58 +02:00
Filip131311 47b66b3eed feat: add native devtools iOS — view hierarchy, network inspection, passive simulator watcher
- Adds native-devtools-ios package with pre-built dylibs (libNativeDevtoolsIos, libKeyboardPatch, libInjectionBootstrap)
- Passive simulator watcher injects dylibs into all booted simulators on tool-server startup, eliminating manual restart requirement
- Lazy network activation: NSURLProtocol interception is opt-in per bundleId via Control socket command, re-activated on reconnect
- New tools: native-find-views, native-full-hierarchy, native-network-logs, native-devtools-status
- dev script: non-fatal argent-private submodule (uses pre-built dylibs when source unavailable)
- Adds Prettier config and format script
- Updates CONTRIBUTING.md with npm run dev workflow and project structure

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 14:53:45 +02:00
Ignacy Łątka cd41fa4d3b fix: write profiler output to /tmp instead of project root (#73)
* fix: write profiler output to /tmp instead of project root

The profiler was creating an argent-profiler-cwd/ directory inside the
user's project root. Output is now written to /tmp/argent-profiler-cwd/
using os.tmpdir() so no artifacts are left in the project tree.

* fix: remove project_root from profiler tools, drop getDebugDir param

No backwards compatibility needed — project_root is stripped from
ios-profiler-start and profiler-load schemas entirely, and getDebugDir
takes no arguments now that the path is always /tmp/argent-profiler-cwd/.

* fix: remove stale project_root from skill docs, add dump.test.ts

- SKILL.md and diagnostic-tools.md still referenced project_root for
  profiler-load after it was removed from the schema — now corrected
- Add 17 tests covering getDebugDir, writeDump, writeDumpCompact,
  readCpuProfile, and readCommitTree (all passing)
2026-04-03 14:23:38 +02:00
Ignacy Łątka 095d8af71e feat(tool-server): add npm update checker on startup and periodic interval (#69)
Check for newer @argent/tool-server versions on npm at startup and every
hour. The result is stored in a runtime flag (updateAvailable) — no user
notification or auto-install behavior is wired up yet.

ARG-79
2026-04-03 13:43:37 +02:00
Ignacy Łątka 6e99ffe3ad chore: cleanup - radon references, stale comments (#62)
* chore: remove stale developer comments

Removed informal, person-attributed dead-code comment from paste.ts.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

* chore: remove remaining stale comment in mcp/src/index.ts

Remove the mid-development reassurance note "// TOOLS_URL is now updated"
from the fetchWithReconnect retry path (ARG-18 follow-up).

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

* fix: remove dangling reference to non-existent docs/cli-bridge-guide.md

The file referenced in the bridge command's help text was never created.
Remove the misleading pointer so users aren't sent to a 404.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

* fix: clean up stale identifiers and dev artifacts before open-source release

- Rename injected JS globals: __rn_mcp_installed__ → __argent_profiler_installed__,
  __rn_mcp_roots__ → __argent_roots__, __rn_mcp_commit_capture__ → __argent_commit_capture__,
  __RN_DEVTOOLS_MCP_COMMITS__ → __ARGENT_DEVTOOLS_COMMITS__ across the profiler pipeline
- Route server startup and idle-shutdown logs to stderr (not stdout, which is the MCP protocol pipe)
- Fix broken test expecting --force flag that does not exist in globalInstallCommand
- Replace stale 'radon' fixture key in mcp-configs test with neutral 'other-tool'
- Fix non-interpolating ${port} placeholder and typo 'desctructive' in stop-metro description
- Fix typos in tool descriptions: DELAGATED, environemnt
- Fix stale tool reference debugger-console-logs → debugger-log-registry in two skill files
- Fix typos in skill docs: accesisibility, sequentialsimulator, mutliple tines, necesserily, informaiton

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 19:22:37 +02:00
Paweł Fornagiel 330a13a2f2 chore: remove deprecated debugger tools and update documentation (#66) 2026-04-01 18:50:34 +02:00
Paweł Fornagiel fbfe957a02 chore: remove unused tools (#65) 2026-04-01 18:41:07 +02:00
pFornagiel 0da7b47c89 chore: bump packages to 0.3.3 2026-04-01 18:40:46 +02:00
Paweł Fornagiel 6a9b498b21 refactor: enhance module scanning in debugger scripts (#60) 2026-04-01 12:47:51 +02:00
Filip131311 ca3975cd50 fix: normalize localhost to 127.0.0.1 in Origin header for CDP WebSocket connections
Satisfies both RN >= 0.85 Metro (which requires an Origin header) and
Expo's dev server (which does an exact match against its serverBaseUrl,
127.0.0.1, rejecting connections with Origin: localhost).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 12:44:11 +02:00
Filip131311 e8b37419eb Revert "chore: refix react native 85 (#61)"
This reverts commit d4e8fcc887.
2026-04-01 12:41:19 +02:00
filip131311 d4e8fcc887 chore: refix react native 85 (#61) 2026-04-01 12:37:41 +02:00
filip131311 aec65427ab chore: remove license validation (#58)
* init

* init

* Delete .vscode/mcp.json
2026-03-31 21:32:08 +02:00
Paweł Fornagiel 85ef733835 refactor: rename RADON references to ARGENT across the codebase (#56)
* refactor: rename RADON references to ARGENT across the codebase

* Merge main into branch and complete ARGENT rename in new files

Merges main's changes: modular CLI architecture, UI package deprecation,
db tool removal, skills/agents prefix rename, and MCP server consolidation.
Extends the RADON→ARGENT rename to cover new files introduced in main
(ARGENT_MCP_LOG, ARGENT_TOOLS_URL env vars, argent-skills bin).

Made-with: Cursor

* fix: rename RADON_MCP_LOG in observe.cjs, regenerate lockfile for argent-skills bin

Made-with: Cursor

* chore: remove accidental PUBLIC_RELEASE_AUDIT.md
2026-03-31 17:24:51 +02:00
Paweł Fornagiel 2767400cac feat: add run-sequence tool for batching simulator interactions (#55)
* feat: add run-sequence tool for executing multiple simulator interactions sequentially

* Gesture tool family: rename, add pinch/rotate, interpolation (#37)

* feat: add pinch, rotate and interpolateion to gesture

* refactor: rename files, where definitions changed

* refactor: move gesture-custom to utils folder

* docs: clarify normalization of coordinates and distances in gesture tools

* docs: update simulator interaction documentation to emphasize loading tool schemas before first use

* feat: add action sequencing with `run-sequence` tool for batching interactions

* feat: some improvements

* feat: Update auto-screenshot delays and improve documentation for argent MCP tools
2026-03-31 15:58:02 +02:00
Ignacy Łątka 035d867b4f fix: remove debug console.logs injected into user app processes (#52)
Removes the console.log('[rn-mcp:render]', ...) call inside
FIBER_ROOT_TRACKER_SCRIPT that was being injected via cdp.evaluate()
into the user's React Native app process. Also removes the now-dead
stats-collection loop that existed solely to feed that log line —
render data is read separately by the profiler tools via
COLLECT_RENDERS_SCRIPT walking hook.__rn_mcp_roots__ directly.

Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 15:38:54 +02:00
Ignacy Łątka 167b604bb8 chore: fix typos throughout entire repo (#46)
* fix: fix typos in comments, docs, and string literals

- succesful → successful, preffered → preferred (argent.md)
- instructs to starts → instructs to start (ios-profiler/SKILL.md)
- possibilites → possibilities (react-native-profiler/SKILL.md)
- refering → referring (react-native-profiler/SKILL.md)

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

* fix: fix remaining typos across docs, skills, and source files

- Add missing space in argent.md: \`describe\`and → \`describe\` and
- American English: Analyse → Analyze, recognise → recognize,
  unrecognised → unrecognized, initialised → initialized, behaviour → behavior
- Fix broken step reference in SKILL.md: step &4 → step 4
- Fix gender-specific pronoun: he does not → they do not

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

* fix(typo): add missing article 'a' in react-native-profiler SKILL.md

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 15:24:21 +02:00
Paweł Fornagiel 0f903c312b chore: remove committed artifacts, binaries, and dev-only scripts (#47)
* chore: update .gitignore and remove deprecated scripts, remove artifacts from MCP

* chore: remove unused files and scripts, including .DS_Store and benchmark scripts
2026-03-31 14:18:54 +02:00
Ignacy Łątka 09d1971bf6 remove db tool (#44) 2026-03-31 13:09:53 +02:00
pFornagiel 724286bd61 chore: bump to 0.3.0 2026-03-24 10:39:01 +01:00
Paweł Fornagiel cbb1655110 Gesture tool family: rename, add pinch/rotate, interpolation (#37)
* feat: add pinch, rotate and interpolateion to gesture

* refactor: rename files, where definitions changed

* refactor: move gesture-custom to utils folder

* docs: clarify normalization of coordinates and distances in gesture tools

* docs: update simulator interaction documentation to emphasize loading tool schemas before first use
2026-03-23 17:14:36 +01:00
Paweł Fornagiel a7f198a743 Update skills and interaction tools (#36)
* Enhance iOS and React Native profiling documentation

* feat: impove flow recording process

* feat: add fallback to describe

* docs: clarify interaction tool usage and improve React Native element discovery guidance

* docs: refine tap failure handling and enhance React Native element discovery instructions

* docs: clarify normalized coordinate usage across interaction tools and enhance user guidance

* docs: update argent.md to clarify skill reading requirements before tool execution
2026-03-23 16:17:34 +01:00
Stanislaw Bialecki e673cac8e6 feat: compact ios profiler report + curate subsequent profiler runs (#33)
* feat: compact ios profiler report + ensure wallAnchor for combined report

* refactor: react profiler session disposal

* refactor: rename rn-devtools-debug to argent-profiler-cwd
2026-03-23 12:11:41 +01:00
Paweł Fornagiel 3d1a5dbe08 feat: Enhance component tree filtering in debugger (#35) 2026-03-23 10:56:11 +01:00
Stanislaw Bialecki 7cb6e7b457 Ios instruments profiler (#21)
* feat:  rename previous profiler tools to react-profiler

* feat: add ios-instruments profiler with default tracetemplate

* fix: copying Argent.tracetemplate on install

* feat: enhance CPU profiling capabilities in react-profiler and ios-instruments + initial enable re-querying (investigating) the profiler output

* feat: enable analyzing old profiling sessions, enhance profiling tools interoperability

* refactor: stream react profiler data to files instead of runtime aggregate var

* chore: add xml-parser test

* chore: rm clg

* feat: ad ios-instruments timeout

* chore: cleanup reactProfilerAnalyze warning cond

* refactor: ensure not dividing by 0 in profilerCombinedReportTool

* fix: inject react commit-capture hook before startProfiling

* fix: rm main signature from rn framework trace analysis

* chore: writeReport fail

* fix: potential sampleIdx in parseCpuXml

* fix: timeDeltas[i] potentially undefined

* fix: decodeXml amp resolution sequence

* fix: rm rn-profiler skill from local repo

* feat: rename instruments to ios-profiler + improve react session stability
2026-03-19 11:16:22 +01:00
pFornagiel 8dd61a681e chore: bump version 2026-03-18 22:29:32 +01:00
Paweł Fornagiel 7f68cdf785 fix: omit Origin header in WebSocket connection to support Expo's dev server (#32) 2026-03-18 19:56:21 +01:00
Paweł Fornagiel 0071a09d99 feat: add log registry for debugger console logs (#30)
* feat: first log registry implementation

* feat: refactor skills to mention how to use new log registry

* docs: update SKILL.md to include guidance for handling large log files

* refactor: update log file handling, change to .log instead of JSONL
2026-03-18 18:48:49 +01:00
Paweł Fornagiel 92cb3efbb4 feat: add screenshot scaling and update sim server binary (#29)
* feat: add screenshot scaling with new sim server binary

* fix: update default screenshot scale and enhance documentation for screenshot tool

* feat: update sim server binary

* feat: update simulator-server binary files
2026-03-18 18:38:25 +01:00
Ignacy Łątka 2c9e7788c3 Merge pull request #25 from software-mansion-labs/@latekvo/fix-network-inspector
feat: Network inspector tool
2026-03-18 17:54:25 +01:00
Ignacy Łątka 5ce4ace181 Merge branch 'main' into @latekvo/automation-scripting 2026-03-18 15:40:47 +01:00
Ignacy Łątka b6be6b30ae Merge pull request #28 from software-mansion-labs/@latekvo/migrate-db-tools-from-ide
fix: Fix `query-documentation` tool edge-cases
2026-03-18 12:28:01 +01:00
Ignacy Łątka dd51b3ce6a Merge pull request #16 from software-mansion-labs/@latekvo/migrate-db-tools-from-ide
feat: Port `query_documentation` from `Radon IDE`
2026-03-18 12:24:58 +01:00
pFornagiel cb1cf139c7 chore: bump version 2026-03-17 17:12:31 +01:00
Paweł Fornagiel 2fa515d628 feat: component tree & element inspector improvements (#26)
* feat: include skiplists

* feat: allow for verbose logging in component tree and element-inspect

* feat: trim the skills related to PR from unneeded information
2026-03-17 16:56:14 +01:00
Ignacy Łątka dd990ed2c5 refresh stale recycled promise 2026-03-17 16:38:26 +01:00
Ignacy Łątka 31b666cce1 handle null values better 2026-03-17 16:31:56 +01:00
Ignacy Łątka 629007ba54 rename 2026-03-17 16:20:57 +01:00
Ignacy Łątka e6a44e5b88 handle malformed server response 2026-03-17 16:18:21 +01:00