slhaf
fac6609d6b
refactor(ActionExecutor): remove useless method getHistoryActionResults
2026-01-28 23:00:53 +08:00
slhaf
dce8825e58
refactor(ActionExecutor): update type of history field in ActionData
2026-01-28 21:16:51 +08:00
slhaf
cd641ac8dd
fix(ActionExecutor): correct phaser block logic in method execute
2026-01-28 15:38:13 +08:00
slhaf
5ffdab9e4a
refactor(ActionExecutor): rework staged execution and runner submit
...
Context:
This refactor drops unnecessary method abstractions and cleans the action execution flow.
Additionally, method 'run' is renamed to 'submit' in RunnerClient, which better reflects that execution results are held in MetaAction.
2026-01-25 19:38:53 +08:00
slhaf
830503eee4
chore(ActionExecutor): update comments
2026-01-23 19:23:07 +08:00
slhaf
96e74ec877
test(LocalRunnerClient): add test for method run in RunnerClient
2026-01-17 11:28:21 +08:00
slhaf
420d51af15
fix(LocalRunnerClient): harden doRun branches and add tests
2026-01-16 23:28:46 +08:00
slhaf
8ead306b7b
fix(RunnerClient): correct RunnerResponse's visibility
2026-01-16 22:17:15 +08:00
slhaf
c793851107
fix(LocalRunnerClient): support cleaning non-existing MCP Servers' tools while MCP configuration files changed in CommonMcp
2026-01-16 21:48:17 +08:00
slhaf
fb5cabc747
fix(LocalRunnerClient): support read MetaActionInfo according to desc files when an MCP Client with described tools registered by CommonMcp
2026-01-16 21:28:45 +08:00
slhaf
c5f6c4e0ae
fix(LocalRunnerClient): recover desc watcher after root deletion and expand DescMcp tests
2026-01-14 19:57:24 +08:00
slhaf
200c0f3f13
fix(LocalRunnerClient): guard against null tool meta and ignore non-protocol MCP
2026-01-14 16:10:33 +08:00
slhaf
fdf398b86e
fix(LocalRunnerClient): close old MCP client while a new client's name is duplicated with the old one
2026-01-13 23:22:54 +08:00
slhaf
774e2b6cd5
fix(LocalRunnerClient): correct abnormal deleting condition in CommonMcp
2026-01-13 23:13:52 +08:00
slhaf
837a4c92d1
fix(LocalRunnerClient): treat missing action dir as invalid path during DELETE in DynamicMcp
...
Context:
Action directories may already be removed when DELETE events are handled.
Return null from loadFiles to signal invalid paths and lock behavior with DynamicAction watch tests.
2026-01-12 21:46:34 +08:00
slhaf
ddd999d47b
fix(LocalRunnerClient): prevent WatchService event loss caused by concurrent consumers
...
Context:
Shared WatchService with multiple watch threads caused WatchKey events to be consumed by mismatched processors, leading to missed file events.
Use isolated WatchService per WatchContext to restore correct semantics.
2026-01-12 19:46:45 +08:00
slhaf
9694a022c7
chore(gitignore): update gitignore
2026-01-12 19:35:41 +08:00
slhaf
31968c7076
chore(gitignore): create AGENTS.md for codex, and add it to .gitignore
2026-01-12 14:25:20 +08:00
slhaf
abec141e4e
fix(LocalRunnerClient): correct path creating logic in RunnerClient and its implementations
2026-01-11 16:47:14 +08:00
slhaf
cdb6ae9d01
fix(LocalRunnerClient): correct method loadFiles in LocalWatchEventProcessor
2026-01-11 16:30:44 +08:00
slhaf
dd8d86d3c4
chore(LocalRunnerClient): add logs to LocalRunnerClient
2026-01-11 16:27:14 +08:00
slhaf
99b42620d0
refactor(LocalRunnerClient): repair paths registering order and support creating directories automatically
2026-01-11 15:01:19 +08:00
slhaf
70b8335d49
feat(LocalRunnerClient): support atomic persist serialization in LocalRunnerClient
2026-01-11 14:24:34 +08:00
slhaf
8ca475beeb
feat(LocalRunnerClient): support registering CommonMcp
2026-01-08 22:28:12 +08:00
slhaf
4f36c0dd2d
feat(LocalRunnerClient): support deleting MCP configurations in CommonMcp
2026-01-08 22:23:08 +08:00
slhaf
00993bd763
feat(LocalRunnerClient): support creating MCP configurations in CommonMcp
2026-01-08 22:09:14 +08:00
slhaf
a0bca668cb
refactor(LocalRunnerClient): support update existedMetaActions in method registerMcpClient
2026-01-08 21:48:30 +08:00
slhaf
c6118c41b0
refactor(LocalRunnerClient): support loading primary fileMcpCache when CommonMcp launched
2026-01-08 21:33:39 +08:00
slhaf
872d21170a
feat(LocalRunnerClient): support modify and overflow events on mcp configurations in CommonMcp
...
Context:
Due to single file cannot present all mcp configurations, loading all MCPs at once is required.
This is compatible in both modify and overflow events.
2026-01-08 21:16:28 +08:00
slhaf
44ab6cfac8
feat(LocalRunnerClient): support registering MCP clients in CommonMcp
2026-01-05 23:06:17 +08:00
slhaf
ec30ac1922
refactor(LocalRunnerClient): remove tool change consumer in registerMcpClient
...
Context:
ExistedMetaActions' updating logic is covered by implementations of LocalWatchEventProcessor.
2026-01-03 16:34:04 +08:00
slhaf
74b6d0c653
chore(RunnerClient): fix RunnerClient error usages in implementations
2026-01-03 15:49:54 +08:00
slhaf
de462866b2
feat(LocalRunnerClient): support registering DescMcpServer watch service
2026-01-02 21:41:47 +08:00
slhaf
4ea8926363
feat(LocalRunnerClient): support repairing description data while OVERFLOW event happened in DescMcpServer
2026-01-02 21:29:18 +08:00
slhaf
04c98c7856
fix(LocalRunnerClient): support deleting descCache while *.desc.json is not available in DescMcpServer
2026-01-02 18:18:15 +08:00
slhaf
0757856187
feat(LocalRunnerClient): support deleting *.desc.json in DescMcpServer
2026-01-02 17:20:12 +08:00
slhaf
19ec93f248
feat(LocalRunnerClient): create modify *.desc.json in DescMcpServer
2026-01-02 16:45:01 +08:00
slhaf
5877b9e80d
feat(LocalRunnerClient): support modify *.desc.json in DescMcpServer
2026-01-02 16:42:56 +08:00
slhaf
5db0b5fad1
feat(LocalRunnerClient): support load *.desc.json when DescMcpServer launched
2026-01-02 15:55:29 +08:00
slhaf
623a86daab
chore(LocalRunnerClient): update mcp servers' comments
2026-01-02 15:52:44 +08:00
slhaf
64f24d3fc3
chore(LocalRunnerClient): adjust mcp servers' comments location
2026-01-02 13:38:43 +08:00
slhaf
3097efe453
feat(LocalRunnerClient): support register DynamicActionMcp watch service
2026-01-02 13:29:00 +08:00
slhaf
b58eeffd2f
feat(LocalRunnerClient): support overflow event in DynamicActionMcpServer
2026-01-01 23:32:21 +08:00
slhaf
62cec79005
refactor(LocalRunnerClient): extract duplicated action adding logic
2026-01-01 22:39:32 +08:00
slhaf
03a5935107
fix(LocalRunnerClient): support deleting event for action directories in DynamicActionMcp
2026-01-01 21:29:30 +08:00
slhaf
0ecaec0545
fix(LocalRunnerClient): repair loading logic of action subdirectories
2026-01-01 20:28:19 +08:00
slhaf
74f2c6c950
fix(LocalRunnerClient): support creating and registering new action in
...
method buildCreate in DynamicActionMcp
2026-01-01 00:32:34 +08:00
slhaf
f35a467ebc
fix(LocalRunnerClient): support registering subdirectories in LocalWatchServiceBuild
2025-12-31 23:15:27 +08:00
slhaf
64b907707a
refactor(LocalRunnerClient): introduce WatchContext and decouple build/processor state
2025-12-31 23:11:15 +08:00
slhaf
a6e33edc7a
refactor(LocalRunnerClient): support remove action temporarily while action is not usable
2025-12-31 16:27:34 +08:00
slhaf
94ef79c67d
feat(LocalRunnerClient): support program deletion for DynamicActionMcp
2025-12-31 13:41:35 +08:00
slhaf
a222015abb
feat(LocalRunnerClient): support program modify and unify action load protocol
...
Context:
The method buildModify reuses AsyncToolSpecification building logic in buildLoad.
This feature unifies local action directory protocol, and refactors related logic in buildLoad.
New action directory protocol defines the file names of program and description files.
2025-12-30 20:52:32 +08:00
slhaf
1c562f0e7b
refactor(LocalRunnerClient): update action keys building source in
...
DynamicActionMcp
Context:
Building action keys by subdirector's name keeps unique identity for each local action.
2025-12-30 16:43:39 +08:00
slhaf
89535a6b1c
feat(LocalRunnerClient): add initial support for loading local action tools from filesystem
...
Context:
This feature supports DynamicActionMcpServer.
During initialization, directories containing a program file and a
.meta.json description are scanned and registered as MCP tools.
Tool execution is handled asynchronously via boundedElastic to avoid blocking server threads.
2025-12-29 20:46:26 +08:00
slhaf
6e90bc8d67
refactor(LocalRunnerClient): co-locate system execution result
2025-12-29 18:53:41 +08:00
slhaf
0e741802d1
refactor(LocalRunnerClient): consolidate MCP client transport params
...
Context:
Group HTTP and STDIO transport parameter variants under a sealed internal transport parameter hierarchy.
2025-12-29 18:48:53 +08:00
slhaf
db3435fccf
refactor(LocalRunnerClient): co-locate watch service builder internals
...
Context:
Group WatchService build interfaces and registry implementation into a
single internal structure for better cohesion.
2025-12-29 18:40:20 +08:00
slhaf
e3294ec302
refactor(LocalRunnerClient): move system execution methods into SystemExecHelper
2025-12-29 18:26:30 +08:00
slhaf
bf99e01b51
feat(LocalRunnerClient): introduce LocalWatchServiceHelper and internal implementations
...
Context:
This change introduces an internal scaffold to organize WatchEventHandler building logic.
2025-12-29 17:45:39 +08:00
slhaf
1bd23b20c4
refactor(LocalRunnerClient): introduce DescMcpServer
...
Context:
This refactor supports creating descriptional files for common MCP Tools.
2025-12-29 17:35:03 +08:00
slhaf
442dd55686
refactor(LocalRunnerClient): rename LocalWatchServiceRegistry
2025-12-29 14:27:00 +08:00
slhaf
abe5dd5251
chore(idea): update misc.xml
2025-12-26 21:28:10 +08:00
slhaf
1f737c0e29
refactor(action): reorganize constants in action module
2025-12-26 21:28:02 +08:00
slhaf
d41074c814
refactor(LocalRunnerClient): replace ActionWatchService with unified watch service builder.
...
Context:
ActionWatchService was used to support SCRIPT and PLUGIN type actions loading from local FileSystem, this refactor allows register different paths to watch.
2025-12-25 15:41:49 +08:00
slhaf
621441601a
feat(LocalRunnerClient): correct method signature
2025-12-25 10:20:55 +08:00
slhaf
e00d77f076
feat(LocalRunnerClient): add shutdown logic for dynamicActionMcpServer
2025-12-25 10:12:38 +08:00
slhaf
d614ac0b15
feat(LocalRunnerClient): support initializing in-process dynamic action MCP Server
2025-12-24 21:36:39 +08:00
slhaf
592e2604d9
refactor(mcp): move InProcessMcpTransport into Partner-Common module
...
Context:
Action modules in Partner-Main and SandboxRunner module rely on in-process MCP transport to support dynamically action generating.
2025-12-24 19:34:04 +08:00
slhaf
dcbd2c6569
build(maven): introduce common module
2025-12-24 19:21:53 +08:00
slhaf
476acb0641
refactor(LocalRunnerClient): rename McpServerParams into McpClientTrasnportParams
2025-12-22 15:02:07 +08:00
slhaf
88a14f36b2
refactor(runner): relocate InProcessMcpTransport to experimental and move local MCP client logic into LocalRunnerClient
...
Context:
Recent changes blurred the responsibility boundary between RunnerClient and LocalRunnerClient.
This refactor moves local MCP client–specific logic into LocalRunnerClient and isolates InProcessMcpTransport and related code under the experimental package.
RunnerClient only defines indispensable methods and attributes.
2025-12-22 14:56:23 +08:00
slhaf
05d1fff125
refactor(RunnerClient): remove unused MCP type enum class
2025-12-21 23:03:25 +08:00
slhaf
49a4c9eb01
docs(RunnerClient): add architecture-location comment on RunnerClient
2025-12-21 22:05:46 +08:00
slhaf
9e76c3e7ad
refactor(SandboxRunnerClient): align doRun visibility with superclass
2025-12-19 23:34:17 +08:00
slhaf
9762739138
refactor(action): replace HashMap with ConcurrentHashMap for thread-safe MetaAction storage
2025-12-19 23:30:27 +08:00
slhaf
1f5509c17d
refactor(RunnerClient): redesign existedMetaActions update strategy
...
Context:
Resource-change events cannot reliably represent tool changes.
The previous approach attempted to externalize descriptive content into files, but the meta attribute of McpSchema.Tool can provide this information.
2025-12-19 23:22:36 +08:00
slhaf
ed042cfffa
fix(action): correct params type in related DTOs
2025-12-19 22:57:34 +08:00
slhaf
128592e23c
chore(MetaActionInfo): remove unused type attribute
2025-12-19 22:47:06 +08:00
slhaf
5ba36ed3e8
feat(LocalRunnerClient): support executing MetaActions via MCP type
2025-12-19 22:29:03 +08:00
slhaf
4dea948f82
refactor(MetaAction): separate key attribute into name and location
...
Context:
This change adapts MetaAction locating to support different MetaAction types,
including loading from the local filesystem and from MCP tools.
2025-12-19 21:35:39 +08:00
slhaf
dc4074715e
chore(MetaAction): remove unused order attribute
2025-12-19 20:53:01 +08:00
slhaf
225802c1a8
refactor(MetaActionInfo): remove key attribute and update related logic
...
Context:
MetaActionInfo was previously located via its own key attribute.
This is now redundant, as ActionCore already uses the key of existedMetaActions
as the single source of truth.
2025-12-19 20:41:07 +08:00
slhaf
e851e33b2e
feat(RunnerClient): support MCP type-based dynamic client/server registration
...
This allows implementations of RunnerClient to dynamically register different types of MCP service, and also provides a shutdown hook to close client/server properly.
2025-12-18 22:25:32 +08:00
slhaf
cb28a5b068
feat(RunnerClient): add InProcessMcpTransport to support in-process MCP communication
...
Context:
This allows RunnerClient implementations to host local MCP servers without spawning another process.
2025-12-18 21:48:35 +08:00
slhaf
ad58567ada
chore(deps): introduce mcp dependencies
2025-12-18 17:52:15 +08:00
slhaf
0eee12d685
refactor(MetaActionInfo): remove outdated constructor
...
Context:
Previously, MetaActionInfo comes from the local filesystem changes.
But now MCP Servers already provide a method to get information of MetaActions.
The pre- or post-dependencies are still required, for some MCP Tools cannot just be executed without additional context.
2025-12-18 17:49:52 +08:00
slhaf
1e6ff1b30c
chore(ActionCore): update outdated comment
2025-12-18 17:49:52 +08:00
slhaf
0413fc281d
chore(MetaAction): update outdated comment
2025-12-17 22:18:43 +08:00
slhaf
8a7681ae31
chore(LocalRunnerClient): remove a redundant comment
2025-12-17 20:02:28 +08:00
slhaf
1947f25ed6
feat(LocalRunnerClient): support executing origin actions
...
Context:
Origin actions are generated by DynamicActionGenerator and may optionally be
persistently serialized. This feature adds the basic execution flow for origin
actions within LocalRunnerClient.
Notes:
The current mapping between action files and their extensions is hardcoded. This should later be replaced with a configurable registry or loaded dynamically
during application startup.
2025-12-16 21:59:53 +08:00
slhaf
488246525f
chore(gitignore): exclude runtime data directory from version control
2025-12-16 21:39:11 +08:00
slhaf
534dcd5ade
fix(LocalRunnerClient): correctly capture stdout and stderr to avoid missing output in method exec
2025-12-16 21:30:51 +08:00
slhaf
ad58c0cc7c
refactor(LocalRunnerClient): allow injecting action watch path
...
Context:
The hardcoded action watch path made LocalRunnerClient difficult to test and
tightened it to a specific runtime layout. Injecting the watch path improves
testability and allows the runner to work in different runtime environments.
2025-12-16 21:02:29 +08:00
slhaf
d546148d69
chore(test): organize experimental tests and test resources
2025-12-16 19:58:08 +08:00
slhaf
bf2d5ac707
refactor(RunnerClient): restructure serialization and temp execution paths
...
Context:
Following the consolidation of action types into ORIGIN and MCP,
the serialization logic needs to be separated into dedicated methods.
These methods are invoked by DynamicActionGenerator.
2025-12-16 10:47:23 +08:00
slhaf
628234f6e2
refactor(MetaActionType): redefine meta action types into MCP and ORIGIN
...
Context:
Previously, SCRIPT and PLUGIN were treated as separate action types,
but their semantics are already covered by MCP.
However, a generic execution path for locally generated actions is still
required, which is represented by ORIGIN.
2025-12-16 10:37:04 +08:00
slhaf
4b852e0049
推进 ActionExecutor 下的‘行动生成与执行’部分
...
- 新增 RunnerClient 抽象类,并划分 SandboxRunnerClient、LocalRunnerClient两个子类(内容待完善)。前者负责对接 SandboxRunner 模块,后者直接使用本地作为执行环境(但不推荐)。
- 将 ActionWatchService 划为 LocalRunnerClient 的内部类,负责采用本地执行环境时,监听行动程序变化
- 完善 ActionRepairer 处的修复逻辑
- 调整 MetaAction 中路径获取逻辑
这提交方式真该调整一下了,这阶段推进容易攒太多,但又不好停手。或许阶段目标可以保留,但推进点应该可以细化🤔
2025-12-15 21:54:24 +08:00
slhaf
6e3deced77
推进 ActionExecutor 下的 DynamicActionGenerator 子模块
...
- 完善了 DynamicActionGenerator 的大致逻辑,序列化逻辑待实现
- 补充了 PhaserRecord 中的阻塞逻辑,使用普通的线程sleep操作
- 调整了 MetaAction 中参数形式,由列表替换为 Map,便于执行时填写参数
- 完善了 DynamicActionGenerator 相关的数据类
2025-12-07 20:10:53 +08:00
slhaf
6a351413a1
推进行动执行模块: 调整了 ActionExecutor 以支持行动链动态修复和参数提取; 完善了 ActionRepairer、ParamsExtractor 的主要逻辑; 完善了部分数据类的内容
...
- 在 ActionData 中新增 additionalContext 用于存储各个执行阶段临时修复生成的上下文,同样以执行阶段为键
- 调整 ActionExecutor 的输入参数,可传入用户标识,用于执行器调用 ActionRepairer 的修复过程
- 完善了 ActionExecutor 中行动单元的执行与修复逻辑,将支持正常状态推进执行、触发自对话时阻塞当前行动单元、所有修复方式失败时将整个行动数据标为 FAILED
- 完善了 ActionExecutor 中各个DTO的构建方法
- 完善了 ParamsExtractor 中的参数提取逻辑
- 在 PhaserRecord 中新增 interrupt 和 complete 方法,将用于后续行动单元的阻塞(ActionExecutor中)与恢复(InterventionHandler中)
- 完善了 ActionRepairer 中的修复逻辑,但自对话通道的暴露方式、DynamicActionGenerator 的具体逻辑待完善
2025-12-05 21:58:21 +08:00
slhaf
ad973d4230
对 ActionExecutor 下子模块的功能分布、某些实体类进行了调整; 完善了 ActionExecutor 中的大致执行逻辑
...
- 梳理执行链路时发现 ActionRepairer 的能力明显超出可实现边界,故将其能力进行限定
- 新增 ActionCorrector 负责单组行动执行完毕后,根据意图和执行状况进行行动链修正
- 将 PhaserRecord 拆分为独立实体,未来将封装一部分流程控制逻辑
2025-12-02 22:35:53 +08:00