@vibe-forge/mcp 3.1.3 → 3.3.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +4 -9
- package/__tests__/tools.spec.ts +6 -2
- package/package.json +4 -8
- package/src/index.ts +1 -13
- package/src/tools/index.ts +1 -3
- package/src/types.ts +0 -13
- package/__tests__/sync.spec.ts +0 -23
- package/__tests__/task-manager.spec.ts +0 -871
- package/__tests__/task-tool.spec.ts +0 -378
- package/src/sync.ts +0 -70
- package/src/tools/task/index.ts +0 -126
- package/src/tools/task/manager.ts +0 -875
- package/src/tools/task/permission-recovery.ts +0 -172
- package/src/tools/task/permission-state.ts +0 -200
- package/src/tools/task/presentation.ts +0 -125
- package/src/tools/task/register-task-runtime-tools.ts +0 -193
- package/src/tools/task/task-tool-responses.ts +0 -40
package/AGENTS.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
- `vf-mcp` 启动失败
|
|
8
8
|
- MCP tool 注册、过滤、分类行为异常
|
|
9
|
-
-
|
|
9
|
+
- 非 task MCP tool 行为异常,例如 `AskUserQuestion`
|
|
10
10
|
- 想确认独立 MCP CLI 与 core / server 的依赖边界
|
|
11
11
|
|
|
12
12
|
## 入口
|
|
@@ -19,18 +19,13 @@
|
|
|
19
19
|
- MCP options / stdio server 启动逻辑
|
|
20
20
|
- `src/tools/*`
|
|
21
21
|
- MCP tool 注册与实现
|
|
22
|
-
- `src/tools/task/manager.ts`
|
|
23
|
-
- MCP task tools 的运行时主逻辑
|
|
24
|
-
- 直接引用 `@vibe-forge/task`、`@vibe-forge/hooks`、`@vibe-forge/config` 和 `src/sync.ts`
|
|
25
|
-
- `src/sync.ts`
|
|
26
|
-
- 与 Vibe Forge server 的 session 同步 HTTP API
|
|
27
22
|
|
|
28
23
|
## 边界约定
|
|
29
24
|
|
|
30
25
|
- CLI loader 统一走 `@vibe-forge/cli-helper/loader`
|
|
31
|
-
- `@vibe-forge/mcp` 直接引用本包内需要的
|
|
32
|
-
- `task`
|
|
33
|
-
- MCP tool
|
|
26
|
+
- `@vibe-forge/mcp` 直接引用本包内需要的 hook / prompt 模块,不再通过额外 bindings 装配层传递上下文
|
|
27
|
+
- `task` domain 不在 MCP 暴露;子 agent 调度、消息、输入提交、停止与状态查看统一走 `vf agent ...` 和 runtime protocol/store
|
|
28
|
+
- MCP tool 实现集中在本包,且不保留 MCP 到 task runtime command 的转换层
|
|
34
29
|
|
|
35
30
|
## 相关文档
|
|
36
31
|
|
package/__tests__/tools.spec.ts
CHANGED
|
@@ -17,8 +17,12 @@ describe('mcp tools integration', () => {
|
|
|
17
17
|
vi.unstubAllGlobals()
|
|
18
18
|
})
|
|
19
19
|
|
|
20
|
-
it('
|
|
21
|
-
expect(createMcpTools()).
|
|
20
|
+
it('does not expose task tools', () => {
|
|
21
|
+
expect(createMcpTools()).toEqual({
|
|
22
|
+
general: expect.any(Function),
|
|
23
|
+
interaction: expect.any(Function)
|
|
24
|
+
})
|
|
25
|
+
expect(createMcpTools()).not.toHaveProperty('task')
|
|
22
26
|
})
|
|
23
27
|
|
|
24
28
|
describe('wait tool', () => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vibe-forge/mcp",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.3.0-rc.0",
|
|
4
4
|
"description": "Vibe Forge MCP server",
|
|
5
5
|
"imports": {
|
|
6
6
|
"#~/*.js": {
|
|
@@ -33,13 +33,9 @@
|
|
|
33
33
|
"@modelcontextprotocol/sdk": "^1.25.3",
|
|
34
34
|
"commander": "^12.1.0",
|
|
35
35
|
"zod": "^3.24.1",
|
|
36
|
-
"@vibe-forge/
|
|
37
|
-
"@vibe-forge/
|
|
38
|
-
"@vibe-forge/
|
|
39
|
-
"@vibe-forge/register": "3.0.3",
|
|
40
|
-
"@vibe-forge/types": "3.1.0",
|
|
41
|
-
"@vibe-forge/utils": "3.1.2",
|
|
42
|
-
"@vibe-forge/task": "3.1.0"
|
|
36
|
+
"@vibe-forge/register": "3.3.0-rc.0",
|
|
37
|
+
"@vibe-forge/cli-helper": "3.3.0-rc.0",
|
|
38
|
+
"@vibe-forge/utils": "3.3.0-rc.0"
|
|
43
39
|
},
|
|
44
40
|
"scripts": {
|
|
45
41
|
"test": "pnpm -C ../.. exec vitest run --workspace vitest.workspace.ts --project bundler packages/mcp/__tests__"
|
package/src/index.ts
CHANGED
|
@@ -1,14 +1,2 @@
|
|
|
1
1
|
export { configureMcpCommand, registerMcpCommand } from './command'
|
|
2
|
-
export type {
|
|
3
|
-
McpManagedTaskInput,
|
|
4
|
-
McpOptions,
|
|
5
|
-
McpResolvedTaskQueryOptions,
|
|
6
|
-
McpSelectionFilter,
|
|
7
|
-
McpTaskBindings,
|
|
8
|
-
McpTaskDefinitionType,
|
|
9
|
-
McpTaskHookInputs,
|
|
10
|
-
McpTaskOutputEvent,
|
|
11
|
-
McpTaskQueryOptions,
|
|
12
|
-
McpTaskRunOptions,
|
|
13
|
-
McpTaskSession
|
|
14
|
-
} from './types'
|
|
2
|
+
export type { McpOptions } from './types'
|
package/src/tools/index.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import wait from './general/wait'
|
|
2
2
|
import askUser from './interaction/ask-user'
|
|
3
|
-
import { createTaskRegister } from './task'
|
|
4
3
|
import type { Register } from './types'
|
|
5
4
|
|
|
6
5
|
export const createMcpTools = (): Record<string, Register> => ({
|
|
@@ -9,6 +8,5 @@ export const createMcpTools = (): Record<string, Register> => ({
|
|
|
9
8
|
},
|
|
10
9
|
interaction: (server) => {
|
|
11
10
|
askUser(server)
|
|
12
|
-
}
|
|
13
|
-
task: createTaskRegister()
|
|
11
|
+
}
|
|
14
12
|
})
|
package/src/types.ts
CHANGED
|
@@ -1,16 +1,3 @@
|
|
|
1
|
-
export type {
|
|
2
|
-
McpManagedTaskInput,
|
|
3
|
-
McpResolvedTaskQueryOptions,
|
|
4
|
-
McpSelectionFilter,
|
|
5
|
-
McpTaskBindings,
|
|
6
|
-
McpTaskDefinitionType,
|
|
7
|
-
McpTaskHookInputs,
|
|
8
|
-
McpTaskOutputEvent,
|
|
9
|
-
McpTaskQueryOptions,
|
|
10
|
-
McpTaskRunOptions,
|
|
11
|
-
McpTaskSession
|
|
12
|
-
} from '@vibe-forge/types'
|
|
13
|
-
|
|
14
1
|
export interface McpOptions {
|
|
15
2
|
includeTools?: string
|
|
16
3
|
excludeTools?: string
|
package/__tests__/sync.spec.ts
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { afterEach, describe, expect, it } from 'vitest'
|
|
2
|
-
|
|
3
|
-
import { getParentSessionId } from '#~/sync.js'
|
|
4
|
-
|
|
5
|
-
describe('mcp sync helpers', () => {
|
|
6
|
-
afterEach(() => {
|
|
7
|
-
delete process.env.__VF_PROJECT_AI_SESSION_ID__
|
|
8
|
-
delete process.env.__VF_PROJECT_AI_CTX_ID__
|
|
9
|
-
})
|
|
10
|
-
|
|
11
|
-
it('prefers the current session id when resolving the parent session id', () => {
|
|
12
|
-
process.env.__VF_PROJECT_AI_SESSION_ID__ = 'session-parent'
|
|
13
|
-
process.env.__VF_PROJECT_AI_CTX_ID__ = 'ctx-parent'
|
|
14
|
-
|
|
15
|
-
expect(getParentSessionId()).toBe('session-parent')
|
|
16
|
-
})
|
|
17
|
-
|
|
18
|
-
it('falls back to ctx id when the session id is missing', () => {
|
|
19
|
-
process.env.__VF_PROJECT_AI_CTX_ID__ = 'ctx-parent'
|
|
20
|
-
|
|
21
|
-
expect(getParentSessionId()).toBe('ctx-parent')
|
|
22
|
-
})
|
|
23
|
-
})
|