Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions mjt-py/src/bind_core.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
#include "mjbase/spi/pass_registry.hpp"
#include "mjbase/spi/pipeline_builder.hpp"
#include "mjbase/spi/strict_type_resolver.hpp"
#include "mjbase/workspace/workspace.hpp"
#include "workspace/workspace.hpp"


#include "pysdk_bridge.hpp"
Expand Down Expand Up @@ -232,7 +232,7 @@ struct JdkResolverChain
if (jdkPath.empty()) return;
pool = std::make_unique<mjbase::KeyPool>();
hierarchy = std::make_unique<mjbase::hierarchy::ClassHierarchy>(*pool);
mjbase::workspace::scanJdkHierarchy(jdkPath, *hierarchy, *pool);
mjt::workspace::scanJdkHierarchy(jdkPath, *hierarchy, *pool);
superResolver = std::make_unique<mjbase::spi::CommonSuperClassResolver>(*hierarchy);
typeResolver = std::make_unique<mjbase::spi::StrictTypeResolverAdapter>(*superResolver);
}
Expand Down
2 changes: 2 additions & 0 deletions mjt-py/xmake.lua
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ if has_config("with_pysdk") then
"src/pysdk_limits.cpp", "src/bind_core.cpp", "src/bind_facade.cpp")
add_files(path.join(mjtSharedSrc, "shared", "decompiler.cpp"),
path.join(mjtSharedSrc, "shared", "jar_remapper.cpp"))
add_files(path.join(mjtSharedSrc, "workspace", "**.cpp"))

-- xmake 3.x 不把静态 target 依赖传进 shared 链接:显式给全闭包,按
-- 「消费者在前、被依赖在后」排序(MSVC 对序不敏感,此序为 GNU ld 兼容
Expand Down Expand Up @@ -101,6 +102,7 @@ if has_config("with_pysdk") then
"src/mjt_pysdk_unittest.cpp", "src/mjt_pysdk_facade_test.cpp")
add_files(path.join(mjtSharedSrc, "shared", "decompiler.cpp"),
path.join(mjtSharedSrc, "shared", "jar_remapper.cpp"))
add_files(path.join(mjtSharedSrc, "workspace", "**.cpp"))
mjt_binary_link_closure("mjbase", "libjhasm",
"libjclassfile",
"libjstr", "libjbc", "libjzip")
Expand Down
2 changes: 1 addition & 1 deletion mjt/mcp/src/tool/contract.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -725,7 +725,7 @@ Json toolsList()
{"content_base64",
{{"type", "string"},
{"minLength", 4},
{"maxLength", ((mjbase::workspace::kMaximumClassReplacementSize + 2) / 3) * 4}}},
{"maxLength", ((mjt::workspace::kMaximumClassReplacementSize + 2) / 3) * 4}}},
{"pipeline", pipeline.at("pipeline")},
{"passes", pipeline.at("passes")},
{"jdk_path", pipeline.at("jdk_path")},
Expand Down
12 changes: 6 additions & 6 deletions mjt/mcp/src/tool/decompiler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,12 @@
namespace mjt::mcp {

using namespace detail;
using mjbase::workspace::MutationRequest;
using mjbase::workspace::PipelineRequest;
using mjbase::workspace::WorkflowCandidateCommitRequest;
using mjbase::workspace::WorkflowReferenceQuery;
using mjbase::workspace::WorkflowRequest;
using mjbase::workspace::IWorkspace;
using mjt::workspace::MutationRequest;
using mjt::workspace::PipelineRequest;
using mjt::workspace::WorkflowCandidateCommitRequest;
using mjt::workspace::WorkflowReferenceQuery;
using mjt::workspace::WorkflowRequest;
using mjt::workspace::IWorkspace;

namespace fs = std::filesystem;

Expand Down
2 changes: 1 addition & 1 deletion mjt/mcp/src/tool/decompiler_support.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ namespace mjt::mcp::detail {

namespace fs = std::filesystem;

using mjbase::workspace::IWorkspace;
using mjt::workspace::IWorkspace;

ScopedTemporaryDirectory::ScopedTemporaryDirectory(fs::path path)
: path_(std::move(path))
Expand Down
2 changes: 1 addition & 1 deletion mjt/mcp/src/tool/decompiler_support.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ ca::StatusOr<DecompiledSource> decompileSnapshotClass(
const DecompilerOptions& options,
const std::function<bool()>& cancellationRequested = {});
ca::StatusOr<DecompiledSource> decompileWorkspaceClass(
mjbase::workspace::IWorkspace& workspace,
mjt::workspace::IWorkspace& workspace,
const std::string& className,
const DecompilerOptions& options);
Json decompiledSourceJson(const DecompiledSource& result, const char* sourceScope,
Expand Down
34 changes: 17 additions & 17 deletions mjt/mcp/src/tool/json.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,20 +11,20 @@

namespace mjt::mcp::detail {

using mjbase::workspace::AnnotationElement;
using mjbase::workspace::AnnotationInfo;
using mjbase::workspace::ClassInfo;
using mjbase::workspace::ClassSummary;
using mjbase::workspace::FieldInfo;
using mjbase::workspace::ImpactAnalysis;
using mjbase::workspace::JarRepairResult;
using mjbase::workspace::MethodInfo;
using mjbase::workspace::MutationResult;
using mjbase::workspace::SearchHit;
using mjbase::workspace::SupportingResourceInfo;
using mjbase::workspace::WorkflowReferenceKind;
using mjbase::workspace::WorkflowResult;
using mjbase::workspace::IWorkspace;
using mjt::workspace::AnnotationElement;
using mjt::workspace::AnnotationInfo;
using mjt::workspace::ClassInfo;
using mjt::workspace::ClassSummary;
using mjt::workspace::FieldInfo;
using mjt::workspace::ImpactAnalysis;
using mjt::workspace::JarRepairResult;
using mjt::workspace::MethodInfo;
using mjt::workspace::MutationResult;
using mjt::workspace::SearchHit;
using mjt::workspace::SupportingResourceInfo;
using mjt::workspace::WorkflowReferenceKind;
using mjt::workspace::WorkflowResult;
using mjt::workspace::IWorkspace;

ca::str::Utf16String utf16(const std::string& value)
{
Expand Down Expand Up @@ -526,7 +526,7 @@ Json jarRepairJson(const JarRepairResult& repair)
return result;
}

Json referenceJson(const mjbase::workspace::ReferenceInfo& reference)
Json referenceJson(const mjt::workspace::ReferenceInfo& reference)
{
return {{"source", {{"class", reference.sourceClass},
{"method", reference.sourceMethod},
Expand Down Expand Up @@ -610,7 +610,7 @@ std::string base64(const std::vector<ca::u8>& value)
bool decodeBase64(const std::string& encoded, std::vector<ca::u8>& output, std::string& error)
{
constexpr ca::usize kMaximumEncodedClassSize =
((mjbase::workspace::kMaximumClassReplacementSize + 2) / 3) * 4;
((mjt::workspace::kMaximumClassReplacementSize + 2) / 3) * 4;
if (encoded.empty()) {
error = "content_base64 must not be empty";
return false;
Expand Down Expand Up @@ -656,7 +656,7 @@ bool decodeBase64(const std::string& encoded, std::vector<ca::u8>& output, std::
if (!pad2) output.push_back(static_cast<ca::u8>((v1 << 4) | (v2 >> 2)));
if (!pad3) output.push_back(static_cast<ca::u8>((v2 << 6) | v3));
}
if (output.size() > mjbase::workspace::kMaximumClassReplacementSize) {
if (output.size() > mjt::workspace::kMaximumClassReplacementSize) {
error = "decoded class exceeds the class size limit";
output.clear();
return false;
Expand Down
22 changes: 11 additions & 11 deletions mjt/mcp/src/tool/json.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ std::string utf8(ca::str::Utf16StringRef value);
std::string lowercased(const std::string& value);
Json statusJson(const ca::Status& status);
Json diagnosticJson(const mjbase::jasm::Diagnostic& diagnostic);
Json methodJson(const mjbase::workspace::MethodInfo& method);
Json supportingResourceJson(const mjbase::workspace::SupportingResourceInfo& support);
Json classJson(const mjbase::workspace::ClassInfo& clazz);
Json methodJson(const mjt::workspace::MethodInfo& method);
Json supportingResourceJson(const mjt::workspace::SupportingResourceInfo& support);
Json classJson(const mjt::workspace::ClassInfo& clazz);

///@brief instructions 搜索命中 value(拼接文本)的结构化拆解。
///
Expand Down Expand Up @@ -90,11 +90,11 @@ std::string selectorKeyError(const std::string& key,
const std::string& value,
const std::vector<std::string>& expected);

Json searchHitJson(const mjbase::workspace::SearchHit& hit);
Json mutationJson(const mjbase::workspace::MutationResult& mutation);
Json jarRepairJson(const mjbase::workspace::JarRepairResult& repair);
Json referenceJson(const mjbase::workspace::ReferenceInfo& reference);
Json workflowJson(const mjbase::workspace::WorkflowResult& workflow);
Json searchHitJson(const mjt::workspace::SearchHit& hit);
Json mutationJson(const mjt::workspace::MutationResult& mutation);
Json jarRepairJson(const mjt::workspace::JarRepairResult& repair);
Json referenceJson(const mjt::workspace::ReferenceInfo& reference);
Json workflowJson(const mjt::workspace::WorkflowResult& workflow);
Json toolResult(Json payload, bool isError = false);
Json toolError(const std::string& message, const ca::Status* status = nullptr);
std::string base64(const std::vector<ca::u8>& value);
Expand Down Expand Up @@ -128,14 +128,14 @@ bool parseCursor(const Json& arguments, ca::usize total, ca::usize& offset);
///@return true 时 out 携带分页文档;false 时 error 携带结构化 toolError。
bool page(Json values, const Json& arguments, Json& out, std::string& error,
const std::vector<std::string>& rowKeys);
bool classSummaryPage(const std::vector<mjbase::workspace::ClassSummary>& values,
bool classSummaryPage(const std::vector<mjt::workspace::ClassSummary>& values,
const Json& arguments,
Json& out,
std::string& error);
Json impactJson(const mjbase::workspace::ImpactAnalysis& impact);
Json impactJson(const mjt::workspace::ImpactAnalysis& impact);
Json normalizeToolError(const std::string& name,
const Json& arguments,
Json result,
const mjbase::workspace::IWorkspace* workspace);
const mjt::workspace::IWorkspace* workspace);

} //namespace mjt::mcp::detail
18 changes: 9 additions & 9 deletions mjt/mcp/src/tool/mutation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@
namespace mjt::mcp {

using namespace detail;
using mjbase::workspace::ClassMutation;
using mjbase::workspace::PipelineRequest;
using mjbase::workspace::RenameRequest;
using mjbase::workspace::IWorkspace;
using mjt::workspace::ClassMutation;
using mjt::workspace::PipelineRequest;
using mjt::workspace::RenameRequest;
using mjt::workspace::IWorkspace;

std::optional<Json> McpToolService::callMutationTool(
const std::string& name, const Json& arguments, ProjectSession& session)
Expand Down Expand Up @@ -582,8 +582,8 @@ std::optional<Json> McpToolService::callMutationTool(
}
//显式 if-else 分派替代原 3 层嵌套三元,避免重复读取 arguments 与拷贝;
//用 lambda 单次构造返回。
auto query = [&]() -> mjbase::workspace::WorkspaceResult<
std::vector<mjbase::workspace::ReferenceInfo>> {
auto query = [&]() -> mjt::workspace::WorkspaceResult<
std::vector<mjt::workspace::ReferenceInfo>> {
if (name == "xref_method") {
return current->xrefsToMethod(owner, member, descriptor);
}
Expand Down Expand Up @@ -616,7 +616,7 @@ std::optional<Json> McpToolService::callMutationTool(
if (record.role == wanted) roleSupportIds.insert(record.supportId);
items.erase(std::remove_if(items.begin(),
items.end(),
[&](const mjbase::workspace::ReferenceInfo& item) {
[&](const mjt::workspace::ReferenceInfo& item) {
//保留 = 站点在本角色容器内;其余全部剔除。
if (!item.supporting) return true;
if (roleSupportIds.count(item.supportId) == 0)
Expand All @@ -629,15 +629,15 @@ std::optional<Json> McpToolService::callMutationTool(
else if (roleFilter == "primary") {
items.erase(std::remove_if(items.begin(),
items.end(),
[](const mjbase::workspace::ReferenceInfo& item) {
[](const mjt::workspace::ReferenceInfo& item) {
return item.supporting;
}),
items.end());
}
else if (roleFilter == "support") {
items.erase(std::remove_if(items.begin(),
items.end(),
[&](const mjbase::workspace::ReferenceInfo& item) {
[&](const mjt::workspace::ReferenceInfo& item) {
if (!item.supporting) return false;
return findMountedContainer(session, item.supportId) ==
nullptr;
Expand Down
Loading
Loading