{"slug":"agent-halowerk-com-v1-oss-openrewrite-java-package-relocatio-d57757","title":"Relocates a Java package across a bounded set of source files using OpenRewrite,","host":"agent.halowerk.com","method":"POST","resource":"https://agent.halowerk.com/v1/oss-openrewrite-java-package-relocation","category":"search","description":"Relocates a Java package across a bounded set of source files using OpenRewrite, which works on a type-attributed syntax tree rather than on text. That is the difference that matters: a textual search and replace hits strings, comments and same-named symbols from other packages, while this changes o","price_listed":0.004,"price_asked":0.004,"state":"answering","state_label":"Answering","checks_7d":1,"answered_7d":1,"latency_ms_median":916,"reported_calls_30d":2,"reported_payers_30d":2,"networks":["eip155:8453"],"badge":"unverified","paid_checks_7d":0,"paid_ok_7d":0,"example_input":{"body":{"files":[{"content":"package old.api;\npublic class Counter { public static int twice(int x) { return x * 2; } }\n","path":"src/old/api/Counter.java"},{"content":"package client;\nimport old.api.Counter;\npublic class Use { public int value() { return Counter.twice(3); } public String label() { return \"old.api\"; } }\n","path":"src/client/Use.java"}],"new_package":"newapi","old_package":"old.api","recursive":true},"bodyType":"json","method":"POST","type":"http"},"output_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"body":{"additionalProperties":false,"properties":{"files":{"items":{"additionalProperties":false,"properties":{"content":{"maxLength":16384,"minLength":1,"type":"string"},"path":{"maxLength":256,"pattern":"^src/(?:[A-Za-z_][A-Za-z0-9_]*/)*(?:[A-Za-z_][A-Za-z0-9_]*|package-info)\\.java$","type":"string"}},"required":["path","content"],"type":"object"},"maxItems":32,"minItems":1,"type":"array"},"new_package":{"maxLength":128,"pattern":"^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$","type":"string"},"old_package":{"maxLength":128,"pattern":"^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$","type":"string"},"recursive":{"type":"boolean"}},"required":["files","old_package","new_package","recursive"],"type":"object"},"bodyType":{"enum":["json","form-data","text"],"type":"string"},"method":{"enum":["POST","PUT","PATCH"],"type":"string"},"type":{"const":"http","type":"string"}},"required":["type","method","bodyType","body"],"type":"object"}},"required":["input"],"type":"object"},"history":[{"day":"2026-10-24","reachable":true,"status":402,"valid_402":true,"asked_usdc":0.004,"price_match":true,"latency_ms":916,"error":null}],"description_full":"Relocates a Java package across a bounded set of source files using OpenRewrite, which works on a type-attributed syntax tree rather than on text. That is the difference that matters: a textual search and replace hits strings, comments and same-named symbols from other packages, while this changes only what actually refers to the package. Both the before and after state are compiled and the result is reported, so a refactoring that breaks the build says so instead of being handed over as done.","last_updated":"2026-10-23T07:40:51.697Z","schemes":["exact"]}