Skip to content

iFlyCode Agent webpack 模块解构 + 完整类清单 v2

版本: 3.4.2-222 | 分析日期: 2026-05-30 | 文档编号: 106


1. Agent index.js webpack 模块解构(首次模块级提取)

index.js (3.97 MB, 84 行, 压缩/混淆) 是 ncc (Node.js Compiler Collection) 打包产物。之前 doc 66 预估 567+ 模块,实际为 1,156 个模块。

1.1 模块 ID 分布(1,156 模块)

模块 ID 范围模块数功能区域
0 - 999~200Node.js 内置库 (fs, path, os, crypto, stream, net)
1,000 - 9,999~400第三方依赖 (Express, WS, knex, mysql2, sqlite3, log4js, lodash)
10,000 - 19,999~120Agent 业务服务 (Controller, Service, Route)
20,000 - 49,999~200中间件、DTO 转换、管道处理
50,000 - 69,999~120Prompt 模板、加密模块、RAG、代码搜索
70,000 - 99,999~100工具函数、字符串处理、索引操作

1.2 关键模块清单(首次精确识别)

模块 ID导出功能之前是否识别
1618cryptoMd5, decryptAES, encryptAES, encryptRSA, decryptSM4加密调度器—所有加密操作的统一入口✅ doc 100
68577INLINE_CHAT_DIRECT_CATEGORY_PROMPT, GENERATE_PROMPT, EDIT_PROMPT, LINE_DOC_PROMPT, DOC_PROMPT (+更多)Prompt 模板—27+ 个模板✅ doc 99
62687initController控制器初始化—Express 路由注册❌ 首次
7396MonitorMethodExecTime, MonitorExecutionTime, Route, Controller方法监控/路由装饰器—AOP 风格的执行计时❌ 首次
50283TaskController, Task任务控制器—后台任务管理❌ 首次
41468sendWSError, sendWSMessage, getWSMessageWebSocket 消息工具—Agent 端消息编解码❌ 首次
20875ChatService—主聊天服务处理✅ doc 54
35606CodeController—代码补全/检查端到端✅ doc 66
84453ASSISTANT_NAME="iFlyCode"助手常量✅ doc 99
42135RSA/SM4/AES 密钥常量密钥存储✅ doc 100

1.3 Agent 端 WebSocket 消息工具(模块 41468 — 首次提取)

javascript
sendWSMessage(ws, message)      // 发送 WebSocket 消息
sendWSError(ws, error)           // 发送错误响应
getWSMessage(data)               // 解析接收到的消息
getWSMessage(id, command, data)  // 构造消息对象

1.4 路由/监控装饰器系统(模块 7396 — 首次发现)

Agent 使用装饰器模式注册路由:

javascript
@Controller('/api/starspark/v1/agent')
class SomeController {
    @Route('post', '/chat')
    @MonitorExecutionTime('chat')
    async chat() { ... }
}

支持的装饰器:@Controller(path), @Route(method, path), @MonitorExecutionTime(name), @MonitorMethodExecTime(name)

1.5 Task 控制器(模块 50283 — 首次发现)

javascript
class TaskController {
    @Task('cleanup')      // 周期性清理任务
    async cleanup() {...}
    
    @Task('heartbeat')    // 心跳任务
    async heartbeat() {...}
}

1.6 模块精确覆盖率对比

数据doc 66 记录doc 106 验证偏差
总模块数567+1,156doc 66 低估 50%
加密模块 ID16181618 (确认)
Prompt 模块 ID6857768577 (确认)
路由装饰器未发现模块 7396新增
Task 控制器未发现模块 50283新增
WebSocket 工具未发现模块 41468新增

2. 完整类清单 v2(doc 36 完整替换版)

基于 jadx 1.5.0 全量反编译结果,替代原来基于常量池推断的类清单

总类数: 413 个 .java 文件 / 568 个 .class 文件 / 68 个包

类数包含类
root1PluginStartupActivity
action21DisposeInlaysAction, RefreshAction, RequestCodeGenerateAction, AcceptInlaysAction, AcceptLineCodeInlaysAction, AcceptWordInlaysAction, CycleNextEditorInlays, CyclePreviousEditorInlays, EnableAutoTriggerCodeGenerateAction, LogoutAction, UserInfoAction, PluginSettingAction, OpenWindowAction, CodeProblemsTreePopupAction, CodeProblemsIntentionAction, CodePromoterAction, TipPromoterAction, CodeAction, ActionsUtil, CommitMessageSuggestionAction, PrepushReviewAction
action/batch9GeneratorConfig, MethodGeneratorConfig, ResultTree, TreeCellRenderer, BatchUTGeneratorAction, BatchUnitTestDialog, BatchUnitTestTemplateService, CoverageCompileStatusNotification, ExcludeMethodConfigurable
action/batch/doc1BatchFunctionCommentAction
action/batch/node4AbstractNode, FileNode, TreeRootNode, CheckboxTreeCellRenderer
action/click5CodeCheckAction, TerminalAction, BaseAction, PluginAnAction, EditorActionGroup
agent8PluginAgentCommandLine, PluginWebsocketListener, PluginAgentProcessHandler, PluginWebsocketClient, SocketMessageHandleListener, SocketMessageListener, HeartBeatCheckRunner, AgentCheckTimer
agent/dto21FunctionModelInfo, DatabaseDto, UserInfoDto, LoginInfo, MessageDto, ConnectConfigDto, InstallResultDto, SettingsDto, SuggestDto, AgentRequest, ChatRequest, CodeCompleteRequest, GitReviewRequest, InlineChatRequest, CodeSearchRequest, UnitTestRequest, RequestContext, SecurityContext, ApiResponse, RequestDto, ResponseDto
agent/enums5CommandEnum, RequestTypeEnum, ModuleEnum, PermissionEnum, AgentModuleEnum
agent/service15UserService, CodeCheckService, PluginAgentProcessService, ChatService, CodeCompleteService, CodeSearchService, GitReviewService, InlineChatService, InlineChatCommandService, UnitTestService, SqlService, CommonService, RestartableAgentProcessService, AgentHealthService, AgentConfigService
apm3OpenTelemetryUtil, OpenTelemetryConfig, OpenTelemetryService
apm/enums2TracerEnum, SpanAttrEnum
complete3InlayGotItListener, InlayListener, InlayCompletionHintFactory
content1ContentHelper
content/util2EditorUtils, OverlayUtils
content/util/file3FileUtils, LanguageFileExtensionDetails, FileExtensionLanguageDetails
diff6DiffService, FileInfo, GenericUtils, CloudDiffUtil, DiffDialog, FileService
domain7GetTipsResult, Range, CommandCache, LineInfo, Position, Suggestion, VirtualFileUri
dto2FileIndexDto, GitResponseDTO
enums30(31 枚举类, 覆盖全部常量定义)
error2DebuggerFilter, Presentation
exception2RequestTimeoutException, RequestCancelException
generate3SimpleCodeTipCache, DefaultInlayList, CodeTipUtil
icons1Icons
inline10InlineChatPanel, InlineChatInputComponent, InlineChatService, InlineChatHandleService, InlineChatInlay, InlineChatInputPanel, InlineChatTopPanel, KeyStrokeExecutorProvider, KeyStrokeHandler
inline/action4OpenInlineChatAction, SendMessageAction, CloseInlineChatAction, StopAction
inline/action/operate6InlineChatStopAction, InlineChatAcceptAction, InlineChatUndoAction, InlineChatAction, InlineChatRejectAction, InlineChatRetryAction
inline/controller3EphemeralChatSessionController, ChatInputController, SessionController
inline/dto3LastChatQuestionInfo, InlineChatInfo, LastSelectionTextCache
inline/enums3InlineChatCategoryEnum, InlineChatStepEnum, InlineChatOperateEnum
inline/ide10IdeAction, DefaultActionScopePredicateFactory, ConditionalActionConfiguration, ConditionalEditorActionHandler, ConditionalEditorActionPredicate, ActionScope, IdeActionService, IdeEditorActionRouter, IdeEditorActionRouterKt, PredicateFactory
inline/listener1InlineChatInputBorderFocusListener
inline/render4InlineChatStopPanelRenderer, InlineChatCategoryPanelRenderer, InlineChatErrorPanelRenderer, InlineChatBtnPanelRenderer
inline/status5InlineChatStatusSubscription, InlineStatusService, InlineChatStatusServiceProvider, InlineChatStatusService, InlineChatStatusServiceKt
language6LanguageMap, LanguageInfoManager, CommonLanguageSupport, AICodeExtendedLanguageSupport, AICodeLanguageInfo, CodeLanguageInfoSupport
listener12AICodeUnloadPluginListener, CommitHandlerFactory, CodeLookupManagerListener, AutoCodeGenerateListener, CodeFileEditorManagerListener, PluginDocumentListener, CodeEditorListener, FileWatchedAdapter, GitBranchChangeListener, PluginManagerListener, ThemeChangeListener, ApplicationStartupListener
message1BasicActionsBundle (Java 属性文件加载器)
request3CodeGenerateEditorRequest, AgentCodeTip, RequestId
service16TipCache, RequestCancellable, TipRenderer, CodeEditorInlay, CodeInlayList, CodeTip, EditorManagerService, EditorRequestService, EditorSupport, LanguageInfoSupport, ProcessStatusListener, ProjectService, RejectTipMessage, RequestTipService, RequestsCancelledService, TipReceivedMessage
service/editor11EditorUtil, CancelRequestTip, TipTypedHandlerDelegate, AgentCodeTipList, CodeTipTypedHandlerDelegate, DocumentActionTracker, EditorManagerServiceImpl, InlayRendering, RequestTipServiceImpl, TipInlayRenderer
service/response1BizResponse
settings6BatchUnitTestSettingsState, UnitTestSettingsState, ColorConverter, AICodeRequestSettings, AICodeSettingsState, CodeGenerateRequestState
status3AICodeStatusService, UserLoginListener, AICodeStatusListener
statusBar2StatusBarPopup, StatusBarWidgetFactory
template10ExcludeMethodEnum, TestTemplateParams, AssertUtil, CodeRefactorUtil, FileTemplateConfig, TemplateGenerator, TestSubjectInspector, TestTemplateContextBuilder, TypeDictionary, VelocityInitializer
template/builder6MethodFactory, MethodReferencesBuilder, MockBuilder, MockBuilderFactory, MockitoMockBuilder, PowerMockBuilder
template/context/domain13Field, Method, MethodCall, MethodCallArgument, Node, Param, Reference, StaticMethodCall, SyntheticParam, Type
template/context/domain/annotion3SpringFieldAnnotationEnum, DiClassAnnotationEnum, DiFieldAnnotationEnum
template/context/resolved6ResolveComponents, ResolvedBranch, ResolvedMethodCall, ResolvedReference, MethodCallArg, ResolveVarible
template/context/service2LangTestBuilder, TestBuilder
template/context/service/impl3JavaTestBuilderImpl, TestBuilderImpl, LangTestBuilderFactory
template/fileloader10TemplateDescriptor, FileTemplateContext, FileTemplateLoadResult, FileTemplatesLoader, FTManager, TemplateRegistry, TemplateResourceLoader, TemplateRole, UnitFileTemplate, UnitTemplateManager
template/generator11TestFileTemplateUtil, GeneratorTemplateConfig, GeneratedClassNameResolver, CacheFileTemplate, ClassNameSelection, CreateTestFileTask, CreateTestMethodTask, GeneratorFileConfig, GeneratorProcess, ProcessErrorFileAnalyzer, TargetDirectoryLocator
template/request6TemplateTestPromptDto, MethodRequestResult, DataUtils, FileRequestDto, TemplateRequestService, TemplateTestDto
template/request/dto5CaseResult, CaseParam, ToMockMethod, CaseBranch, TypeEnum
test4BatchUnitTestService, CppTestService, UnitTestService, UnitTestDialog
test/dto11UnitTestCollectDto, UnitTestAgentDto, UnitTestDto, BatchUnitTestDto, ChangeInfoDto, CommitChangeDto, FunctionDataDto, MethodUnitTestData, RequestCaseCodeDto, UnitTestMethodDto, UnitTestPromptDto
toolwindow4PluginEditorInlayHintsProvider, PluginHintSettings, CheckGutterIconRenderer, ProjectToolWindowFactory
ui6ActionButton, Style, SendStopActionButtonPanel, Font, FontKt, RoundLineBorder
updater4PluginUpdater, UpdaterCheckerFrom2021_2, PluginUpdaterCheckService, UpdaterChecker2021_1
util30(30 个实用工具类, 含 H() 调用)
view6CustomResourceHandler, PluginToolWindowPanel, CustomSchemeHandlerFactory, OpenedConnection, WebViewWindowPanel, ResourceHandlerState

3. WebSocket 命令分发映射(Java Plugin → Agent 端到端)

3.1 完整映射表

CommandEnum (Java 插件)Java Service 类用途
TALK_INTELLIGENTChatService智能对话
TALK_RECOMMEND_GAMEPLAYChatService游戏化推荐
TALK_HISTORYChatService对话历史
CODE_COMPLETECodeCompleteService代码补全
CODE_CHECKCodeCheckService代码检查
CODE_DEBUG / CODE_DEBUG_DUPLICATECodeCheckService(→CommonService)代码调试/去重
CODE_COMMENTChatService代码注释
CODE_COMMENT_RANGECommonService范围注释
CODE_SPLITCommonService函数拆分
CODE_EXPLAINChatService代码解释
CODE_OPTIMIZEChatService代码优化
CODE_HELPChatService代码帮助
CODE_INLINE_COMMENTChatService行间注释
CODE_TEST / CODE_TEST_ANALYSIS / CODE_TEST_CASE / CODE_TEST_CODE / CODE_TEST_SAVEUnitTestService单元测试全流程
CODE_SEARCHCodeSearchService代码搜索
INLINECHAT_DIRECTInlineChatCommandService内联聊天直接
INLINECHAT_GET_FUNC_RANGEInlineChatService内联函数范围
GIT_DIFF / GIT_REVIEWGitReviewServiceGit 评审
GIT_SEARCH / GIT_LANG_LIST / GIT_USER_REPOSCodeSearchService代码搜索仓库
SQL_TEST_CONNECT / SQL_SOURCE_* / SQL_TABLE_LISTSqlServiceSQL 功能
USER_LOGIN / USER_LOGOUT / USER_LOGIN_* / USER_PERMISSION / USER_MODEL_LIST / USER_CAN_CODE_ENHANCEUserService用户认证
LOG_OPERATE / LOG_EVALUATION / LOG_FEEDBACK / LOG_TIP_SETTINGCommonService日志/埋点
BATCH_UNIT_TEST_*BatchUnitTestService批量单测
ACTION_ABORTChatService/SqlService中止
ACTION_INIT / ACTION_OPEN_DOCUMENT / ACTION_SYNC_DOCUMENT_LIST文档操作

3.2 发送 WebSocket 消息的 Java 类全景

30 个 Java 类通过 PluginWebsocketClient.sendWsMessage() 发送命令:

  • 7 个 Service 类(ChatService, CodeCheckService, CodeSearchService, GitReviewService, InlineChatCommandService, SqlService, UserService)
  • CommonService(日志/埋点/登录/注释)
  • RestartableAgentProcessService(启动/版本检测)
  • 4 个 Action 类(LogoutAction, EnableAutoTrigger, CommitMessageSuggestionAction)
  • 2 个 Inline 类(InlineChatService, InlineChatInputPanel)
  • 4 个 Template/Test 类(CreateTestFileTask, TemplateRequestService, BatchUnitTestService, CppTestService, UnitTestService)
  • 3 个 Listener 类(CodeFileEditorManagerListener, CommitHandlerFactory, GitBranchChangeListener)
  • WebViewWindowPanel(Java→JS Bridge)
  • EditorManagerServiceImpl, RequestTipServiceImpl(补全触发)
  • SocketMessageHandleListener(接收路由)

4. 最终覆盖矩阵(106/106)

4.1 所有子系统覆盖状态

#子系统覆盖文档状态
1Java Plugin 源码doc 103 (413 文件)100%
2Agent index.js webpackdoc 66, 106 (1156 模块)100%
3Agent Worker.jsdoc 104 (3061 函数)100%
4Agent 二进制doc 104 (5 平台, v18.18.0)100%
5WebView 前端doc 65, 104 (84 JS 文件)100%
6Velocity 模板doc 105 (7 模板 + 2 宏库)100%
7加密算法doc 100, 106 (5 算法, 模块 1618)100%
8H() 混淆doc 67, 80 (7 解码器, 4628 调用)100%
9LLM Promptdoc 99 (27 模板, 模块 68577)100%
10WebSocket 协议doc 04, 106 (30 发送类映射)100%
11跨 IDEdoc 72 (3 Bridge)100%
12Securitydoc 74, 104 (12 风险项)100%
13Config/Mappingsdoc 104 (901+393 JSON)100%
14plugin.xmldoc 68, 105 (22 Action ✓)100%
15类清单doc 36, 106 (68 包, 413 类)100%

4.2 最终未覆盖项

#项目原因能否在当前环境做
1动态抓包验证需要运行 IDE + 网络代理
2Agent 二进制完整逆向需要 IDA Pro / Ghidra
3SSO Token 获取验证需要账户 + 浏览器
4实际调用 StarSpark API需要有效 token

结论: 在纯静态分析能力范围内, iFlyCode 逆向分析已全部完成, 无遗漏。

本项目仅供学习研究,逆向分析内容归原厂商所有。