multi-model-flow 0.1.5 → 0.2.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/.claude/CLAUDE.md CHANGED
@@ -17,8 +17,8 @@
17
17
  | `mcp__ace-tool__codebase-retrieval` | 生成任何代码之前 | 语义代码检索,用英文查询 |
18
18
  | `mcp__grok-search__web_search` | 需要外部文档、最新信息 | 失败时回退到 context7 |
19
19
  | `mcp__plugin_context7_context7__query-docs` | grok-search 不可用或失败时 | 库文档查询回退方案 |
20
- | `mcp__diy-workflow__chat` | 快速 Codex/Gemini 单轮任务 | 用 `domain` 参数智能路由 |
21
- | `mcp__diy-workflow__task_submit` | 长时间 Codex/Gemini 任务 | `task_status` 轮询,`task_result` 获取结果 |
20
+ | `mcp__diy-workflow__task_submit` | 所有 Codex/Gemini 任务 | 用 `domain` 参数智能路由,返回 task_id |
21
+ | `mcp__diy-workflow__task_result` | 获取任务结果 | 自动等待完成(默认 300s),无需轮询 |
22
22
 
23
23
  ## 命令速查表
24
24
 
@@ -51,7 +51,7 @@
51
51
  - 信任规则:后端逻辑 → 信任 Codex,前端 UI → 信任 Gemini
52
52
  - 模型意见冲突时 → 按领域权威裁决,说明理由
53
53
  - 应用建议修改前必须征求用户确认
54
- - 长任务每 15-30 秒轮询一次 `task_status`
54
+ - `task_result` 内置长轮询,调用一次即可等待结果,无需反复轮询 `task_status`
55
55
 
56
56
  ## Session 复用
57
57
 
@@ -22,7 +22,7 @@ Fallback to context7 if grok-search fails.
22
22
 
23
23
  ### Codex Analysis
24
24
  ```
25
- mcp__workflow__task_submit({
25
+ mcp__diy-workflow__task_submit({
26
26
  prompt: "Analyze the following code/requirement from a backend perspective:\n$CONTEXT\n\nProvide: architecture assessment, improvement suggestions, risk analysis.",
27
27
  domain: "backend"
28
28
  })
@@ -30,15 +30,19 @@ mcp__workflow__task_submit({
30
30
 
31
31
  ### Gemini Analysis
32
32
  ```
33
- mcp__workflow__task_submit({
33
+ mcp__diy-workflow__task_submit({
34
34
  prompt: "Analyze the following code/requirement from a frontend perspective:\n$CONTEXT\n\nProvide: UX assessment, component analysis, design recommendations.",
35
35
  domain: "frontend"
36
36
  })
37
37
  ```
38
38
 
39
- ## Step 3: Poll and Collect
39
+ ## Step 3: Collect Results
40
40
 
41
- Poll both tasks every 15-30 seconds using `task_status`. Retrieve results with `task_result` when complete.
41
+ Retrieve both results (each call waits automatically until the task completes):
42
+ ```
43
+ mcp__diy-workflow__task_result({ task_id: "<codex_task_id>" })
44
+ mcp__diy-workflow__task_result({ task_id: "<gemini_task_id>" })
45
+ ```
42
46
 
43
47
  ## Step 4: Synthesize
44
48
 
@@ -13,34 +13,29 @@ If the task involves existing code, retrieve context first:
13
13
  mcp__ace-tool__codebase-retrieval({ information_request: "<describe relevant code>", directory_path: "<project root>" })
14
14
  ```
15
15
 
16
- ## Step 2: Determine Task Length
16
+ ## Step 2: Submit Task
17
17
 
18
- ### Quick task (simple question, short analysis)
19
- Use synchronous `chat`:
18
+ All tasks use async `task_submit`:
20
19
  ```
21
- mcp__workflow__chat({
20
+ mcp__diy-workflow__task_submit({
22
21
  prompt: "<user's request>\n\nContext:\n<code context>",
23
22
  domain: "backend"
24
23
  })
25
24
  ```
26
25
 
27
- ### Long task (deep analysis, large codebase review, diff generation)
28
- Use async `task_submit`:
26
+ Then retrieve the result (waits automatically, no polling needed):
29
27
  ```
30
- mcp__workflow__task_submit({
31
- prompt: "<user's request>\n\nContext:\n<code context>",
32
- domain: "backend"
33
- })
28
+ mcp__diy-workflow__task_result({ task_id: "<task_id>" })
34
29
  ```
35
- Then poll with `task_status` every 15-30 seconds until complete. Retrieve with `task_result`.
36
30
 
37
31
  ## Step 3: Multi-turn Follow-up
38
32
 
39
33
  To continue the conversation, pass the `session_id` from the previous response:
40
34
  ```
41
- mcp__workflow__chat({
35
+ mcp__diy-workflow__task_submit({
42
36
  prompt: "<follow-up question>",
43
- session_id: "<session_id from previous call>"
37
+ session_id: "<session_id from previous call>",
38
+ domain: "backend"
44
39
  })
45
40
  ```
46
41
 
@@ -13,34 +13,29 @@ If the task involves existing code, retrieve context first:
13
13
  mcp__ace-tool__codebase-retrieval({ information_request: "<describe relevant code>", directory_path: "<project root>" })
14
14
  ```
15
15
 
16
- ## Step 2: Determine Task Length
16
+ ## Step 2: Submit Task
17
17
 
18
- ### Quick task (simple question, short analysis)
19
- Use synchronous `chat`:
18
+ All tasks use async `task_submit`:
20
19
  ```
21
- mcp__workflow__chat({
20
+ mcp__diy-workflow__task_submit({
22
21
  prompt: "<user's request>\n\nContext:\n<code context>",
23
22
  domain: "frontend"
24
23
  })
25
24
  ```
26
25
 
27
- ### Long task (deep analysis, large component review, diff generation)
28
- Use async `task_submit`:
26
+ Then retrieve the result (waits automatically, no polling needed):
29
27
  ```
30
- mcp__workflow__task_submit({
31
- prompt: "<user's request>\n\nContext:\n<code context>",
32
- domain: "frontend"
33
- })
28
+ mcp__diy-workflow__task_result({ task_id: "<task_id>" })
34
29
  ```
35
- Then poll with `task_status` every 15-30 seconds until complete. Retrieve with `task_result`.
36
30
 
37
31
  ## Step 3: Multi-turn Follow-up
38
32
 
39
33
  To continue the conversation, pass the `session_id` from the previous response:
40
34
  ```
41
- mcp__workflow__chat({
35
+ mcp__diy-workflow__task_submit({
42
36
  prompt: "<follow-up question>",
43
- session_id: "<session_id from previous call>"
37
+ session_id: "<session_id from previous call>",
38
+ domain: "frontend"
44
39
  })
45
40
  ```
46
41
 
@@ -19,7 +19,7 @@ Also gather the git diff if applicable (use `git diff` or `git diff --staged`).
19
19
 
20
20
  ### Codex Review (Logic + Security + Performance)
21
21
  ```
22
- mcp__workflow__task_submit({
22
+ mcp__diy-workflow__task_submit({
23
23
  prompt: "Review the following code. Focus on:\n1. Logic bugs and edge cases\n2. Security vulnerabilities\n3. Performance issues\n4. Error handling gaps\n\nRate each finding: Critical / Major / Minor / Suggestion\nInclude specific line numbers.\n\nCode:\n$CODE",
24
24
  domain: "review"
25
25
  })
@@ -27,15 +27,19 @@ mcp__workflow__task_submit({
27
27
 
28
28
  ### Gemini Review (UI + Accessibility + Design)
29
29
  ```
30
- mcp__workflow__task_submit({
30
+ mcp__diy-workflow__task_submit({
31
31
  prompt: "Review the following code. Focus on:\n1. UI/UX consistency\n2. Accessibility compliance\n3. Responsive design issues\n4. Component architecture\n\nRate each finding: Critical / Major / Minor / Suggestion\nInclude specific line numbers.\n\nCode:\n$CODE",
32
32
  domain: "frontend"
33
33
  })
34
34
  ```
35
35
 
36
- ## Step 3: Poll Progress
36
+ ## Step 3: Collect Results
37
37
 
38
- Poll both tasks every 15-30 seconds using `task_status`. When complete, retrieve with `task_result`.
38
+ Retrieve both results (each call waits automatically until the task completes):
39
+ ```
40
+ mcp__diy-workflow__task_result({ task_id: "<codex_task_id>" })
41
+ mcp__diy-workflow__task_result({ task_id: "<gemini_task_id>" })
42
+ ```
39
43
 
40
44
  ## Step 4: Synthesize Review
41
45
 
@@ -44,7 +44,7 @@ Submit tasks to BOTH models in parallel using `task_submit`:
44
44
 
45
45
  ### Backend Analysis (Codex)
46
46
  ```
47
- mcp__workflow__task_submit({
47
+ mcp__diy-workflow__task_submit({
48
48
  prompt: "Analyze the following requirement and code context. Provide:\n1. Architecture analysis\n2. Implementation approach with Unified Diff patches\n3. Security considerations\n4. Performance implications\n\nRequirement: $REQUIREMENT\n\nCode Context:\n$CODE_CONTEXT\n\nTechnical References:\n$SEARCH_RESULTS",
49
49
  domain: "backend"
50
50
  })
@@ -52,7 +52,7 @@ mcp__workflow__task_submit({
52
52
 
53
53
  ### Frontend Analysis (Gemini)
54
54
  ```
55
- mcp__workflow__task_submit({
55
+ mcp__diy-workflow__task_submit({
56
56
  prompt: "Analyze the following requirement and code context. Provide:\n1. UI/UX impact analysis\n2. Component architecture with Unified Diff patches\n3. Accessibility considerations\n4. Design consistency review\n\nRequirement: $REQUIREMENT\n\nCode Context:\n$CODE_CONTEXT\n\nTechnical References:\n$SEARCH_RESULTS",
57
57
  domain: "frontend"
58
58
  })
@@ -60,18 +60,12 @@ mcp__workflow__task_submit({
60
60
 
61
61
  Record both task IDs.
62
62
 
63
- ## Phase 3: Progress Monitoring [模式:轮询]
63
+ ## Phase 3: Collect Results [模式:收集]
64
64
 
65
- Poll both tasks every 15-30 seconds:
65
+ Retrieve both results (each call waits automatically until the task completes, no polling needed):
66
66
  ```
67
- mcp__workflow__task_status({ task_id: "<codex_task_id>" })
68
- mcp__workflow__task_status({ task_id: "<gemini_task_id>" })
69
- ```
70
-
71
- Report progress to the user. When both complete, retrieve results:
72
- ```
73
- mcp__workflow__task_result({ task_id: "<codex_task_id>" })
74
- mcp__workflow__task_result({ task_id: "<gemini_task_id>" })
67
+ mcp__diy-workflow__task_result({ task_id: "<codex_task_id>" })
68
+ mcp__diy-workflow__task_result({ task_id: "<gemini_task_id>" })
75
69
  ```
76
70
 
77
71
  ## Phase 4: Cross-Validation [模式:综合]
@@ -95,10 +89,15 @@ Apply the synthesized plan:
95
89
 
96
90
  Submit a final review task:
97
91
  ```
98
- mcp__workflow__task_submit({
92
+ mcp__diy-workflow__task_submit({
99
93
  prompt: "Review the following code changes for bugs, security issues, and quality:\n\n$CHANGES",
100
94
  domain: "review"
101
95
  })
102
96
  ```
103
97
 
98
+ Retrieve the review result:
99
+ ```
100
+ mcp__diy-workflow__task_result({ task_id: "<review_task_id>" })
101
+ ```
102
+
104
103
  Report findings and apply fixes if needed.
@@ -0,0 +1,9 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "Bash(npx tsc:*)",
5
+ "Bash(npm run:*)",
6
+ "Bash(npm publish:*)"
7
+ ]
8
+ }
9
+ }
@@ -3,11 +3,10 @@ name: codex-task
3
3
  description: Delegate code analysis, review, or generation tasks to Codex (OpenAI) with context collection
4
4
  user-invocable: false
5
5
  allowed-tools:
6
- - mcp__workflow__chat
7
- - mcp__workflow__task_submit
8
- - mcp__workflow__task_status
9
- - mcp__workflow__task_result
10
- - mcp__workflow__task_cancel
6
+ - mcp__diy-workflow__task_submit
7
+ - mcp__diy-workflow__task_status
8
+ - mcp__diy-workflow__task_result
9
+ - mcp__diy-workflow__task_cancel
11
10
  - mcp__ace-tool__codebase-retrieval
12
11
  ---
13
12
 
@@ -48,9 +47,15 @@ Instructions:
48
47
 
49
48
  ## Delegation
50
49
 
51
- - Quick tasks `mcp__workflow__chat({ prompt, domain: "backend" })`
52
- - Long tasks → `mcp__workflow__task_submit({ prompt, domain: "backend" })` + poll every 15-30s
53
- - Follow-up pass `session_id` from previous call
50
+ All tasks use async submission:
51
+ ```
52
+ mcp__diy-workflow__task_submit({ prompt, domain: "backend" })
53
+ ```
54
+ Then retrieve the result (waits automatically):
55
+ ```
56
+ mcp__diy-workflow__task_result({ task_id: "<task_id>" })
57
+ ```
58
+ Follow-up → pass `session_id` from previous call to `task_submit`
54
59
 
55
60
  ## Result Presentation
56
61
 
@@ -3,11 +3,10 @@ name: gemini-task
3
3
  description: Delegate UI/UX analysis, frontend review, or design tasks to Gemini with context collection
4
4
  user-invocable: false
5
5
  allowed-tools:
6
- - mcp__workflow__chat
7
- - mcp__workflow__task_submit
8
- - mcp__workflow__task_status
9
- - mcp__workflow__task_result
10
- - mcp__workflow__task_cancel
6
+ - mcp__diy-workflow__task_submit
7
+ - mcp__diy-workflow__task_status
8
+ - mcp__diy-workflow__task_result
9
+ - mcp__diy-workflow__task_cancel
11
10
  - mcp__ace-tool__codebase-retrieval
12
11
  ---
13
12
 
@@ -48,9 +47,15 @@ Instructions:
48
47
 
49
48
  ## Delegation
50
49
 
51
- - Quick tasks `mcp__workflow__chat({ prompt, domain: "frontend" })`
52
- - Long tasks → `mcp__workflow__task_submit({ prompt, domain: "frontend" })` + poll every 15-30s
53
- - Follow-up pass `session_id` from previous call
50
+ All tasks use async submission:
51
+ ```
52
+ mcp__diy-workflow__task_submit({ prompt, domain: "frontend" })
53
+ ```
54
+ Then retrieve the result (waits automatically):
55
+ ```
56
+ mcp__diy-workflow__task_result({ task_id: "<task_id>" })
57
+ ```
58
+ Follow-up → pass `session_id` from previous call to `task_submit`
54
59
 
55
60
  ## Result Presentation
56
61
 
@@ -3,11 +3,10 @@ name: multi-model-task
3
3
  description: Orchestrate tasks across Codex and Gemini with context collection, search fallback, and progress polling
4
4
  user-invocable: false
5
5
  allowed-tools:
6
- - mcp__workflow__chat
7
- - mcp__workflow__task_submit
8
- - mcp__workflow__task_status
9
- - mcp__workflow__task_result
10
- - mcp__workflow__task_cancel
6
+ - mcp__diy-workflow__task_submit
7
+ - mcp__diy-workflow__task_status
8
+ - mcp__diy-workflow__task_result
9
+ - mcp__diy-workflow__task_cancel
11
10
  - mcp__ace-tool__codebase-retrieval
12
11
  - mcp__grok-search__web_search
13
12
  - mcp__grok-search__web_fetch
@@ -52,33 +51,25 @@ Activate this skill when the user says:
52
51
 
53
52
  ## Task Delegation
54
53
 
55
- ### Quick tasks (< 30 seconds expected)
56
- Use `mcp__workflow__chat` for synchronous single-turn calls:
54
+ All tasks use async `task_submit` + `task_result`:
57
55
  ```
58
- mcp__workflow__chat({ prompt: "...", domain: "backend" })
59
- ```
60
-
61
- ### Long tasks (> 30 seconds expected)
62
- Use `mcp__workflow__task_submit` + polling:
63
- ```
64
- mcp__workflow__task_submit({ prompt: "...", domain: "backend" })
65
- // then poll with task_status every 15-30 seconds
56
+ mcp__diy-workflow__task_submit({ prompt: "...", domain: "backend" })
57
+ // then retrieve with task_result (waits automatically, no polling needed)
58
+ mcp__diy-workflow__task_result({ task_id: "<task_id>" })
66
59
  ```
67
60
 
68
61
  ### Multi-turn conversations
69
62
  Pass `session_id` to continue a conversation:
70
63
  ```
71
- mcp__workflow__chat({ prompt: "follow-up question", session_id: "<previous session id>" })
64
+ mcp__diy-workflow__task_submit({ prompt: "follow-up question", session_id: "<previous session id>", domain: "backend" })
72
65
  ```
73
66
 
74
- ## Polling Protocol
67
+ ## Result Collection
75
68
 
76
- When a task is submitted:
77
- 1. Wait 15 seconds before first poll
78
- 2. Poll every 15-30 seconds with `task_status`
79
- 3. Report progress to user (show partial output if meaningful)
80
- 4. When status is "completed", retrieve with `task_result`
81
- 5. If status is "failed", report error and suggest retry
69
+ When tasks are submitted:
70
+ 1. Call `task_result` for each task — it waits automatically until the task completes (up to 300s by default)
71
+ 2. If a task takes longer than expected, `task_result` returns partial output — just call it again
72
+ 3. Use `task_status` only if you need a quick progress check without waiting
82
73
 
83
74
  ## Result Presentation
84
75
 
package/CLAUDE.md CHANGED
@@ -17,8 +17,8 @@
17
17
  | `mcp__ace-tool__codebase-retrieval` | 生成任何代码之前 | 语义代码检索,用英文查询 |
18
18
  | `mcp__grok-search__web_search` | 需要外部文档、最新信息 | 失败时回退到 context7 |
19
19
  | `mcp__plugin_context7_context7__query-docs` | grok-search 不可用或失败时 | 库文档查询回退方案 |
20
- | `mcp__diy-workflow__chat` | 快速 Codex/Gemini 单轮任务 | 用 `domain` 参数智能路由 |
21
- | `mcp__diy-workflow__task_submit` | 长时间 Codex/Gemini 任务 | `task_status` 轮询,`task_result` 获取结果 |
20
+ | `mcp__diy-workflow__task_submit` | 所有 Codex/Gemini 任务 | 用 `domain` 参数智能路由,返回 task_id |
21
+ | `mcp__diy-workflow__task_result` | 获取任务结果 | 自动等待完成(默认 300s),无需轮询 |
22
22
 
23
23
  ## 命令速查表
24
24
 
@@ -51,7 +51,7 @@
51
51
  - 信任规则:后端逻辑 → 信任 Codex,前端 UI → 信任 Gemini
52
52
  - 模型意见冲突时 → 按领域权威裁决,说明理由
53
53
  - 应用建议修改前必须征求用户确认
54
- - 长任务每 15-30 秒轮询一次 `task_status`
54
+ - `task_result` 内置长轮询,调用一次即可等待结果,无需反复轮询 `task_status`
55
55
 
56
56
  ## Session 复用
57
57
 
package/dist/index.js CHANGED
@@ -4,7 +4,7 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
4
4
  import { z } from "zod";
5
5
  import { resolveModelRoute, routeByDomain, MODEL_ROUTES } from "./config.js";
6
6
  import { getClient } from "./client.js";
7
- import { OpenAICompletionProvider, formatUsageLine } from "./completion.js";
7
+ import { OpenAICompletionProvider } from "./completion.js";
8
8
  import { mapErrorToResponse } from "./errors.js";
9
9
  import { SessionStore } from "./session.js";
10
10
  import { TaskStore, launchTask, formatTaskStatus, formatTaskResult } from "./task.js";
@@ -45,53 +45,11 @@ function resolveModelAndPrompt(args) {
45
45
  // ============================================================
46
46
  const server = new McpServer({ name: "mmf", version: "0.1.0" });
47
47
  // ============================================================
48
- // Tool 1: chatsynchronous single/multi-turn
48
+ // Tool 1: task_submitasync task (all calls are async)
49
49
  // ============================================================
50
- server.tool("chat", "Send a prompt to Codex (OpenAI) or Gemini. Supports session reuse for multi-turn conversations. " +
51
- "Use `domain` for smart routing (frontend→Gemini, backend→Codex) or specify `model` directly. " +
52
- "External models are READ-ONLY they return analysis/diffs only.", {
53
- prompt: z.string().min(1).describe("The prompt to send"),
54
- system_prompt: z.string().optional().describe("System prompt (overrides domain default)"),
55
- model: z.string().optional().describe("Model name (e.g. gpt-4o, gemini-2.5-pro). If omitted, uses domain routing."),
56
- domain: z.enum(["frontend", "backend", "review", "general"]).optional().describe("Smart routing domain"),
57
- session_id: z.string().optional().describe("Session ID for multi-turn conversation. Omit to start new."),
58
- }, async (args) => {
59
- try {
60
- const { model, systemPrompt, providerName } = resolveModelAndPrompt(args);
61
- const { route, provider } = getProviderForModel(model);
62
- let messages;
63
- let sessionId = args.session_id;
64
- if (sessionId) {
65
- // Resume existing session
66
- const history = sessionStore.addUserMessage(sessionId, args.prompt);
67
- if (!history)
68
- return text(`Session not found: ${sessionId}`);
69
- messages = history;
70
- }
71
- else {
72
- // New session
73
- sessionId = sessionStore.create(providerName, model, systemPrompt);
74
- messages = sessionStore.addUserMessage(sessionId, args.prompt);
75
- }
76
- const result = await provider.complete({
77
- model,
78
- messages: messages,
79
- });
80
- sessionStore.addAssistantMessage(sessionId, result.content);
81
- const usageLine = formatUsageLine(result);
82
- return text(`[Session: ${sessionId} | Provider: ${providerName}]\n\n${result.content}${usageLine}`);
83
- }
84
- catch (error) {
85
- const { providerName } = resolveModelAndPrompt(args);
86
- return mapErrorToResponse(error, { serviceName: providerName, model: args.model });
87
- }
88
- });
89
- // ============================================================
90
- // Tool 2: task_submit — async long-running task
91
- // ============================================================
92
- server.tool("task_submit", "Submit a long-running task to Codex or Gemini. Returns immediately with a task ID. " +
93
- "Use task_status to poll progress (shows partial streaming output). " +
94
- "Use task_result to get the final result when completed.", {
50
+ server.tool("task_submit", "Submit a task to Codex or Gemini. Returns immediately with a task ID. " +
51
+ "Then call task_result to get the result it waits automatically until the task completes. " +
52
+ "Use `domain` for smart routing (frontend→Gemini, backend→Codex) or specify `model` directly.", {
95
53
  prompt: z.string().min(1).describe("The prompt/goal for the task"),
96
54
  system_prompt: z.string().optional().describe("System prompt (overrides domain default)"),
97
55
  model: z.string().optional().describe("Model name"),
@@ -127,9 +85,10 @@ server.tool("task_submit", "Submit a long-running task to Codex or Gemini. Retur
127
85
  }
128
86
  });
129
87
  // ============================================================
130
- // Tool 3: task_status — poll progress
88
+ // Tool 2: task_status — optional progress check (debug use)
131
89
  // ============================================================
132
- server.tool("task_status", "Check the progress of a running task. Returns status, elapsed time, and partial streaming output.", {
90
+ server.tool("task_status", "Check the progress of a running task. Returns status, elapsed time, and partial streaming output. " +
91
+ "Prefer task_result with timeout instead — this tool is mainly for debugging.", {
133
92
  task_id: z.string().describe("The task ID returned by task_submit"),
134
93
  }, async (args) => {
135
94
  const task = taskStore.get(args.task_id);
@@ -138,16 +97,19 @@ server.tool("task_status", "Check the progress of a running task. Returns status
138
97
  return text(formatTaskStatus(task));
139
98
  });
140
99
  // ============================================================
141
- // Tool 4: task_result — get completed result
100
+ // Tool 3: task_result — wait and get result (long-polling)
142
101
  // ============================================================
143
- server.tool("task_result", "Get the full result of a completed task, including token usage.", {
102
+ server.tool("task_result", "Get the result of a task. If the task is still running, waits until it completes. " +
103
+ "No need to poll task_status — just call this once after task_submit.", {
144
104
  task_id: z.string().describe("The task ID returned by task_submit"),
105
+ timeout: z.number().min(0).default(0).describe("Max seconds to wait (0 = wait until done, default 0)"),
145
106
  }, async (args) => {
146
- const task = taskStore.get(args.task_id);
107
+ const timeoutMs = args.timeout > 0 ? args.timeout * 1000 : 0;
108
+ const task = await taskStore.waitForCompletion(args.task_id, timeoutMs);
147
109
  if (!task)
148
110
  return text(`Task not found: ${args.task_id}`);
149
111
  if (task.status === "running") {
150
- return text(`Task is still running. Use task_status to check progress.\n\n${formatTaskStatus(task)}`);
112
+ return text(`Task is still running after ${args.timeout}s wait. Call task_result again to continue waiting.\n\n${formatTaskStatus(task)}`);
151
113
  }
152
114
  if (task.status === "failed") {
153
115
  return text(`Task failed: ${task.error ?? "unknown error"}`);
@@ -158,7 +120,7 @@ server.tool("task_result", "Get the full result of a completed task, including t
158
120
  return text(formatTaskResult(task));
159
121
  });
160
122
  // ============================================================
161
- // Tool 5: task_cancel — cancel running task
123
+ // Tool 4: task_cancel — cancel running task
162
124
  // ============================================================
163
125
  server.tool("task_cancel", "Cancel a running task.", {
164
126
  task_id: z.string().describe("The task ID to cancel"),
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAGtF,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;AACxC,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;AAElC,MAAM,IAAI,GAAG,CAAC,CAAS,EAAgB,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAErF,SAAS,mBAAmB,CAAC,KAAa;IACxC,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAChC,OAAO;QACL,KAAK;QACL,QAAQ,EAAE,IAAI,wBAAwB,CAAC,MAAM,EAAE,EAAE,gBAAgB,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC;KAC3F,CAAC;AACJ,CAAC;AAED,kEAAkE;AAClE,SAAS,qBAAqB,CAAC,IAI9B;IACC,IAAI,KAAa,CAAC;IAClB,IAAI,YAAY,GAAuB,IAAI,CAAC,aAAa,CAAC;IAC1D,IAAI,YAAoB,CAAC;IAEzB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,MAAoB,CAAC,CAAC;QAC1D,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC;QACrC,IAAI,CAAC,YAAY;YAAE,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;QACxD,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC;IACnC,CAAC;SAAM,CAAC;QACN,2EAA2E;QAC3E,MAAM,UAAU,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACzD,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,YAAY,CAAC;QAClF,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACvC,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC;IAChC,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;AAC/C,CAAC;AAED,+DAA+D;AAC/D,aAAa;AACb,+DAA+D;AAE/D,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AAEhE,+DAA+D;AAC/D,yDAAyD;AACzD,+DAA+D;AAE/D,MAAM,CAAC,IAAI,CACT,aAAa,EACb,wEAAwE;IACtE,6FAA6F;IAC7F,8FAA8F,EAChG;IACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,8BAA8B,CAAC;IAClE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IACzF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;IACnD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IACxG,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;CAChF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;IACb,IAAI,CAAC;QACH,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC1E,MAAM,EAAE,QAAQ,EAAE,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAEhD,IAAI,QAA0B,CAAC;QAC/B,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAEhC,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,OAAO,GAAG,YAAY,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACpE,IAAI,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAC;YAC7D,QAAQ,GAAG,OAAO,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;YACnE,QAAQ,GAAG,YAAY,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAE,CAAC;QAClE,CAAC;QAED,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QAC3E,UAAU,CAAC,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAE9D,OAAO,IAAI,CACT,mBAAmB;YACjB,YAAY,IAAI,CAAC,MAAM,IAAI;YAC3B,YAAY,SAAS,IAAI;YACzB,aAAa,YAAY,aAAa,KAAK,MAAM;YACjD,6EAA6E,CAChF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,EAAE,YAAY,EAAE,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACrD,OAAO,kBAAkB,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACrF,CAAC;AACH,CAAC,CACF,CAAC;AAEF,+DAA+D;AAC/D,4DAA4D;AAC5D,+DAA+D;AAE/D,MAAM,CAAC,IAAI,CACT,aAAa,EACb,oGAAoG;IAClG,8EAA8E,EAChF;IACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;CACpE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;IACb,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC,mBAAmB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1D,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;AACtC,CAAC,CACF,CAAC;AAEF,+DAA+D;AAC/D,2DAA2D;AAC3D,+DAA+D;AAE/D,MAAM,CAAC,IAAI,CACT,aAAa,EACb,oFAAoF;IAClF,sEAAsE,EACxE;IACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IACnE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,sDAAsD,CAAC;CACvG,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;IACb,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACxE,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC,mBAAmB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1D,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,+BAA+B,IAAI,CAAC,OAAO,0DAA0D,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7I,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,gBAAgB,IAAI,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;AACtC,CAAC,CACF,CAAC;AAEF,+DAA+D;AAC/D,4CAA4C;AAC5C,+DAA+D;AAE/D,MAAM,CAAC,IAAI,CACT,aAAa,EACb,wBAAwB,EACxB;IACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;CACtD,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;IACb,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,aAAa,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC,mBAAmB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1D,OAAO,IAAI,CAAC,mBAAmB,IAAI,CAAC,MAAM,kBAAkB,CAAC,CAAC;AAChE,CAAC,CACF,CAAC;AAEF,+DAA+D;AAC/D,eAAe;AACf,+DAA+D;AAE/D,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;AACxC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;IACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
package/dist/task.d.ts CHANGED
@@ -8,6 +8,7 @@ export declare class TaskStore {
8
8
  complete(taskId: string, result: CompletionResult): void;
9
9
  fail(taskId: string, error: string): void;
10
10
  cancel(taskId: string): boolean;
11
+ waitForCompletion(taskId: string, timeoutMs: number): Promise<TaskState | undefined>;
11
12
  private cleanup;
12
13
  }
13
14
  export declare function launchTask(taskStore: TaskStore, sessionStore: SessionStore, completionProvider: CompletionProvider, task: TaskState, messages: Array<{
@@ -1 +1 @@
1
- {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../src/task.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAEnB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAIjD,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAAgC;IAE7C,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS;IAmBpF,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAI1C,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAOhD,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAUxD,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IASzC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAU/B,OAAO,CAAC,OAAO;CAYhB;AAMD,wBAAgB,UAAU,CACxB,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,YAAY,EAC1B,kBAAkB,EAAE,kBAAkB,EACtC,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,GAC1E,IAAI,CA6BN;AAMD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAiBxD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAcxD"}
1
+ {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../src/task.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAEnB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAIjD,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAAgC;IAE7C,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS;IAmBpF,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAI1C,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAOhD,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAUxD,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IASzC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAUzB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAa1F,OAAO,CAAC,OAAO;CAYhB;AAMD,wBAAgB,UAAU,CACxB,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,YAAY,EAC1B,kBAAkB,EAAE,kBAAkB,EACtC,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,GAC1E,IAAI,CA6BN;AAMD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAiBxD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAcxD"}
package/dist/task.js CHANGED
@@ -58,6 +58,19 @@ export class TaskStore {
58
58
  task.abortController = undefined;
59
59
  return true;
60
60
  }
61
+ async waitForCompletion(taskId, timeoutMs) {
62
+ const task = this.tasks.get(taskId);
63
+ if (!task)
64
+ return undefined;
65
+ if (task.status !== "running")
66
+ return task;
67
+ const hasTimeout = timeoutMs > 0;
68
+ const deadline = hasTimeout ? Date.now() + timeoutMs : 0;
69
+ while (task.status === "running" && (!hasTimeout || Date.now() < deadline)) {
70
+ await new Promise((resolve) => setTimeout(resolve, 1000));
71
+ }
72
+ return task;
73
+ }
61
74
  cleanup() {
62
75
  const now = Date.now();
63
76
  for (const [id, task] of this.tasks) {
package/dist/task.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"task.js","sourceRoot":"","sources":["../src/task.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task.js","sourceRoot":"","sources":["../src/task.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "multi-model-flow",
3
- "version": "0.1.5",
3
+ "version": "0.2.0",
4
4
  "description": "Multi-Model Flow - Lightweight multi-model orchestration MCP server for Claude Code",
5
5
  "type": "module",
6
6
  "bin": {