@optima-chat/optima-agent 0.2.33 → 0.3.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.
Files changed (60) hide show
  1. package/.claude/settings.local.json +39 -0
  2. package/README.md +74 -0
  3. package/dist/bin/optima.js +13 -1
  4. package/dist/bin/optima.js.map +1 -1
  5. package/dist/package.json +67 -0
  6. package/dist/src/agent.d.ts.map +1 -1
  7. package/dist/src/agent.js +7 -0
  8. package/dist/src/agent.js.map +1 -1
  9. package/dist/src/server/index.d.ts.map +1 -1
  10. package/dist/src/server/index.js +61 -1
  11. package/dist/src/server/index.js.map +1 -1
  12. package/dist/src/server/types.d.ts +17 -1
  13. package/dist/src/server/types.d.ts.map +1 -1
  14. package/dist/src/types.d.ts +24 -0
  15. package/dist/src/types.d.ts.map +1 -1
  16. package/dist/src/ui/App.d.ts +6 -0
  17. package/dist/src/ui/App.d.ts.map +1 -0
  18. package/dist/src/ui/App.js +164 -0
  19. package/dist/src/ui/App.js.map +1 -0
  20. package/dist/src/ui/components/Composer.d.ts +10 -0
  21. package/dist/src/ui/components/Composer.d.ts.map +1 -0
  22. package/dist/src/ui/components/Composer.js +13 -0
  23. package/dist/src/ui/components/Composer.js.map +1 -0
  24. package/dist/src/ui/components/Header.d.ts +7 -0
  25. package/dist/src/ui/components/Header.d.ts.map +1 -0
  26. package/dist/src/ui/components/Header.js +7 -0
  27. package/dist/src/ui/components/Header.js.map +1 -0
  28. package/dist/src/ui/components/Message.d.ts +12 -0
  29. package/dist/src/ui/components/Message.d.ts.map +1 -0
  30. package/dist/src/ui/components/Message.js +21 -0
  31. package/dist/src/ui/components/Message.js.map +1 -0
  32. package/dist/src/ui/components/MessageList.d.ts +9 -0
  33. package/dist/src/ui/components/MessageList.d.ts.map +1 -0
  34. package/dist/src/ui/components/MessageList.js +18 -0
  35. package/dist/src/ui/components/MessageList.js.map +1 -0
  36. package/dist/src/ui/components/Spinner.d.ts +6 -0
  37. package/dist/src/ui/components/Spinner.d.ts.map +1 -0
  38. package/dist/src/ui/components/Spinner.js +7 -0
  39. package/dist/src/ui/components/Spinner.js.map +1 -0
  40. package/dist/src/ui/components/StatusBar.d.ts +11 -0
  41. package/dist/src/ui/components/StatusBar.d.ts.map +1 -0
  42. package/dist/src/ui/components/StatusBar.js +7 -0
  43. package/dist/src/ui/components/StatusBar.js.map +1 -0
  44. package/dist/src/ui/components/index.d.ts +7 -0
  45. package/dist/src/ui/components/index.d.ts.map +1 -0
  46. package/dist/src/ui/components/index.js +7 -0
  47. package/dist/src/ui/components/index.js.map +1 -0
  48. package/dist/src/ui/conversation-manager.d.ts +2 -0
  49. package/dist/src/ui/conversation-manager.d.ts.map +1 -1
  50. package/dist/src/ui/conversation-manager.js +8 -0
  51. package/dist/src/ui/conversation-manager.js.map +1 -1
  52. package/dist/src/ui/headless-types.d.ts +21 -2
  53. package/dist/src/ui/headless-types.d.ts.map +1 -1
  54. package/dist/src/ui/headless.d.ts.map +1 -1
  55. package/dist/src/ui/headless.js +73 -1
  56. package/dist/src/ui/headless.js.map +1 -1
  57. package/dist/src/ui/stream.d.ts.map +1 -1
  58. package/dist/src/ui/stream.js +184 -2
  59. package/dist/src/ui/stream.js.map +1 -1
  60. package/package.json +1 -1
@@ -0,0 +1,39 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "Bash(gh api:*)",
5
+ "WebFetch(domain:platform.claude.com)",
6
+ "Bash(git init:*)",
7
+ "Bash(mkdir:*)",
8
+ "Bash(npm run typecheck:*)",
9
+ "Bash(npm view:*)",
10
+ "WebSearch",
11
+ "Bash(commerce --help)",
12
+ "Bash(done)",
13
+ "Bash(commerce product:*)",
14
+ "Bash(commerce order:*)",
15
+ "Bash(commerce i18n:*)",
16
+ "Bash(google-ads:*)",
17
+ "Bash(scout --help:*)",
18
+ "Bash(tree:*)",
19
+ "Bash(cloc:*)",
20
+ "Bash(npm run build:*)",
21
+ "Bash(git restore:*)",
22
+ "Bash(gh repo view:*)",
23
+ "Bash(mv:*)",
24
+ "Bash(rmdir:*)",
25
+ "Bash(git add:*)",
26
+ "Bash(git commit:*)",
27
+ "Bash(git push)",
28
+ "Bash(timeout 5 npm run optima:*)",
29
+ "Bash(npm install:*)",
30
+ "Bash(cat:*)",
31
+ "Bash(gh issue create:*)",
32
+ "Bash(npx tsx:*)",
33
+ "Bash(timeout 30 npx tsx:*)",
34
+ "Bash(git push origin feature/ask-user-question)"
35
+ ],
36
+ "deny": [],
37
+ "ask": []
38
+ }
39
+ }
package/README.md CHANGED
@@ -51,6 +51,7 @@ optima -p "查看商品列表"
51
51
  - **广告投放** - Google Ads 管理
52
52
  - **选品调研** - Amazon 产品分析
53
53
  - **数据分析** - 销售数据和趋势
54
+ - **交互式问答** - 执行任务时向用户提问(架构选择、方案确认等)
54
55
 
55
56
  ### 执行模式
56
57
 
@@ -76,6 +77,79 @@ optima -p "查看商品列表"
76
77
  | scout | Amazon 选品调研 |
77
78
  | bi | 数据分析 |
78
79
 
80
+ ## 交互式问答 (AskUserQuestion)
81
+
82
+ Claude 可以在执行任务时向用户提问,用于:
83
+ - **架构选择** - 选择技术栈、库、框架等
84
+ - **方案确认** - 多个实现方案,让用户决策
85
+ - **需求澄清** - 遇到模糊需求时请求明确
86
+
87
+ ### 各模式支持情况
88
+
89
+ | 模式 | 支持 | 交互方式 |
90
+ |------|------|----------|
91
+ | Stream (CLI) | ✅ | 终端菜单(箭头键/Space/Enter) |
92
+ | Headless | ✅ | JSON 消息协议(ask_question/answer_question) |
93
+ | Server | ✅ | WebSocket 消息协议 |
94
+ | 单次查询 | ❌ | 自动拒绝(提示使用交互模式) |
95
+
96
+ ### 示例:终端交互
97
+
98
+ ```bash
99
+ optima
100
+
101
+ > 我需要实现用户认证,请帮我选择方案
102
+
103
+ 🤔 Claude 需要你的输入
104
+
105
+ Auth method
106
+ Which authentication method should we use?
107
+
108
+ ○ OAuth 2.0
109
+ Industry standard, supports multiple providers
110
+
111
+ ○ JWT
112
+ Stateless, simple to implement
113
+
114
+ ● Session
115
+ Traditional approach, server-side state
116
+
117
+ [取消] [确认] ✓
118
+ ```
119
+
120
+ ### Headless/Server 消息协议
121
+
122
+ **ask_question 事件** (后端 → 前端):
123
+ ```json
124
+ {
125
+ "type": "ask_question",
126
+ "conversation_id": "conv_123",
127
+ "request_id": "ask_question_xxx",
128
+ "questions": [{
129
+ "question": "Which method?",
130
+ "header": "Auth",
131
+ "options": [
132
+ {"label": "OAuth 2.0", "description": "Industry standard"},
133
+ {"label": "JWT", "description": "Stateless"}
134
+ ],
135
+ "multiSelect": false
136
+ }]
137
+ }
138
+ ```
139
+
140
+ **answer_question 消息** (前端 → 后端):
141
+ ```json
142
+ {
143
+ "type": "answer_question",
144
+ "request_id": "ask_question_xxx",
145
+ "answers": {
146
+ "0": "OAuth 2.0"
147
+ }
148
+ }
149
+ ```
150
+
151
+ 详细文档:[docs/ask-user-question-implementation.md](docs/ask-user-question-implementation.md)
152
+
79
153
  ## 配置
80
154
 
81
155
  项目根目录可选配置:
@@ -38,7 +38,19 @@ function printVersion() {
38
38
  console.log(`optima-agent v${VERSION}`);
39
39
  }
40
40
  async function runPrompt(prompt, format, cwd) {
41
- const agent = new OptimaAgent({ cwd });
41
+ const agent = new OptimaAgent({
42
+ cwd,
43
+ canUseTool: async (toolName, input) => {
44
+ // One-shot 模式:拒绝所有需要用户交互的工具
45
+ if (toolName === "AskUserQuestion") {
46
+ return {
47
+ behavior: "deny",
48
+ message: "Interactive questions are not supported in one-shot mode. Please use interactive mode (optima) instead.",
49
+ };
50
+ }
51
+ return { behavior: "allow", updatedInput: input };
52
+ },
53
+ });
42
54
  const messages = [];
43
55
  let finalResult = null;
44
56
  for await (const msg of agent.chat(prompt)) {
@@ -1 +1 @@
1
- {"version":3,"file":"optima.js","sourceRoot":"","sources":["../../bin/optima.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"optima.js","sourceRoot":"","sources":["../../bin/optima.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ {
2
+ "name": "@optima-chat/optima-agent",
3
+ "version": "0.1.8",
4
+ "description": "基于 Claude Agent SDK 的电商运营 AI 助手",
5
+ "type": "module",
6
+ "main": "dist/src/index.js",
7
+ "types": "dist/src/index.d.ts",
8
+ "bin": {
9
+ "optima": "./dist/bin/optima.js"
10
+ },
11
+ "files": [
12
+ "dist",
13
+ ".claude"
14
+ ],
15
+ "repository": {
16
+ "type": "git",
17
+ "url": "https://github.com/Optima-Chat/optima-agent.git"
18
+ },
19
+ "keywords": [
20
+ "ai",
21
+ "agent",
22
+ "claude",
23
+ "ecommerce",
24
+ "cli"
25
+ ],
26
+ "author": "Optima Chat",
27
+ "license": "MIT",
28
+ "scripts": {
29
+ "build": "tsc",
30
+ "dev": "tsx watch src/index.ts",
31
+ "start": "node dist/src/index.js",
32
+ "typecheck": "tsc --noEmit",
33
+ "test": "vitest run",
34
+ "test:watch": "vitest",
35
+ "optima": "tsx bin/optima.ts",
36
+ "prepublishOnly": "npm run build"
37
+ },
38
+ "dependencies": {
39
+ "@anthropic-ai/claude-agent-sdk": "^0.1.55",
40
+ "@optima-chat/bi-cli": "^0.2.0",
41
+ "@optima-chat/comfy-cli": "^0.7.2",
42
+ "@optima-chat/commerce-cli": "^1.5.0",
43
+ "@optima-chat/google-ads-cli": "^0.4.0",
44
+ "@optima-chat/scout-cli": "^0.1.10",
45
+ "gray-matter": "^4.0.3",
46
+ "ink": "^5.2.1",
47
+ "ink-spinner": "^5.0.0",
48
+ "ink-text-input": "^6.0.0",
49
+ "react": "^18.3.1",
50
+ "ws": "^8.18.3",
51
+ "zod": "^3.23.8"
52
+ },
53
+ "devDependencies": {
54
+ "@types/node": "^22.10.1",
55
+ "@types/react": "^18.3.27",
56
+ "@types/ws": "^8.18.1",
57
+ "tsx": "^4.19.2",
58
+ "typescript": "^5.7.2",
59
+ "vitest": "^4.0.14"
60
+ },
61
+ "engines": {
62
+ "node": ">=18.0.0"
63
+ },
64
+ "overrides": {
65
+ "react": "^18.3.1"
66
+ }
67
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/agent.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAa5D,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;gBAEX,OAAO,GAAE,YAAiB;IA0BtC;;;;OAIG;IACI,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAqFH,YAAY;eAAS;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE;;IAHvF;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAgB1B;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,YAAY,IAAI,MAAM,GAAG,SAAS;IAIlC;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAuB1B"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/agent.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAa5D,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;gBAEX,OAAO,GAAE,YAAiB;IAiCtC;;;;OAIG;IACI,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAsFH,YAAY;eAAS;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE;;IAHvF;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAgB1B;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,YAAY,IAAI,MAAM,GAAG,SAAS;IAIlC;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAuB1B"}
package/dist/src/agent.js CHANGED
@@ -36,6 +36,12 @@ export class OptimaAgent {
36
36
  if (options.resumeSessionId) {
37
37
  this.sessionId = options.resumeSessionId;
38
38
  }
39
+ // 启用 AskUserQuestion 工具
40
+ // SDK 需要这个环境变量来启用 AskUserQuestion 工具
41
+ // 参考:SDK isEnabled() 检查 MkA() || I0(process.env.CLAUDE_CODE_ENABLE_ASK_USER_QUESTION_TOOL)
42
+ if (!process.env.CLAUDE_CODE_ENABLE_ASK_USER_QUESTION_TOOL) {
43
+ process.env.CLAUDE_CODE_ENABLE_ASK_USER_QUESTION_TOOL = "true";
44
+ }
39
45
  }
40
46
  /**
41
47
  * 流式对话接口
@@ -53,6 +59,7 @@ export class OptimaAgent {
53
59
  maxTurns: chatOptions?.maxTurns ?? this.options.maxTurns,
54
60
  // 权限配置
55
61
  permissionMode: this.options.permissionMode,
62
+ canUseTool: this.options.canUseTool,
56
63
  // 工作目录
57
64
  // - Lambda 模式:使用 skillsDir(用户目录,skills 已符号链接进去)
58
65
  // - 本地模式:使用 PACKAGE_ROOT(包目录,包含 .claude/skills/)
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAc,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAErC,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,iCAAiC;AACjC,2CAA2C;AAC3C,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAEjD,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAE7B,MAAM,OAAO,WAAW;IACd,OAAO,CAAe;IACtB,SAAS,CAAU;IACnB,aAAa,CAAU;IACvB,OAAO,CAAS;IAChB,MAAM,CAAS;IAEvB,YAAY,UAAwB,EAAE;QACpC,SAAS;QACT,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,aAAa,GAAG,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEpD,WAAW;QACX,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAE5C,YAAY;QACZ,+DAA+D;QAC/D,8BAA8B;QAC9B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,SAAS,IAAI,YAAY,CAAC;QAEhD,IAAI,CAAC,OAAO,GAAG;YACb,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,cAAc,EAAE,mBAAmB;YACnC,QAAQ,EAAE,iBAAiB;YAC3B,GAAG,OAAO;SACX,CAAC;QAEF,kDAAkD;QAClD,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YAC5B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC;QAC3C,CAAC;QAED,wBAAwB;QACxB,qCAAqC;QACrC,2FAA2F;QAC3F,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,yCAAyC,EAAE,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,yCAAyC,GAAG,MAAM,CAAC;QACjE,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,CAAC,IAAI,CAAC,MAAc,EAAE,WAAyB;QACnD,oCAAoC;QACpC,MAAM,sBAAsB,GAAG,WAAW,EAAE,YAAY,KAAK,OAAO,CAAC;QAErE,MAAM,QAAQ,GAAG,KAAK,CAAC;YACrB,MAAM;YACN,OAAO,EAAE;gBACP,OAAO;gBACP,KAAK,EAAE,WAAW,EAAE,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK;gBAC/C,QAAQ,EAAE,WAAW,EAAE,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ;gBAExD,OAAO;gBACP,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc;gBAC3C,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;gBAEnC,OAAO;gBACP,gDAAgD;gBAChD,iDAAiD;gBACjD,GAAG,EAAE,IAAI,CAAC,MAAM;gBAEhB,sCAAsC;gBACtC,6CAA6C;gBAC7C,cAAc,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;gBAE5C,QAAQ;gBACR,YAAY,EAAE;oBACZ,OAAO;oBACP,MAAM;oBACN,MAAM;oBACN,OAAO;oBACP,MAAM;oBACN,MAAM;oBACN,MAAM;oBACN,UAAU;oBACV,WAAW;oBACX,MAAM;oBACN,WAAW;oBACX,iBAAiB;oBACjB,4BAA4B;iBAC7B;gBAED,oBAAoB;gBACpB,UAAU,EAAE;oBACV,eAAe,EAAE,qBAAqB,EAAE;iBACzC;gBAED,gDAAgD;gBAChD,YAAY,EAAE,IAAI,CAAC,iBAAiB,EAAE;gBAEtC,QAAQ;gBACR,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;gBAEzB,OAAO;gBACP,MAAM,EAAE,IAAI,CAAC,SAAS;gBAEtB,OAAO;gBACP,eAAe,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAqB,CAAC,CAAC,CAAC,SAAS;gBAEpG,iBAAiB;gBACjB,sBAAsB;aACvB;SACF,CAAC,CAAC;QAEH,SAAS;QACT,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YACrC,uBAAuB;YACvB,IAAI,YAAY,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBAClD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;YACtC,CAAC;YAED,wCAAwC;YACxC,IAAI,sBAAsB,IAAI,OAAO,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;gBACpD,IAAI,UAAU,EAAE,CAAC;oBACf,MAAM,UAAU,CAAC;gBACnB,CAAC;gBACD,SAAS;YACX,CAAC;YAED,MAAM,OAAO,CAAC;QAChB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,OAAY;QACrC,6DAA6D;QAC7D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5B,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAExB,6BAA6B;QAC7B,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,KAAK,YAAY,EAAE,CAAC;YAC/E,OAAO;gBACL,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;aAClC,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;OAEG;IACK,iBAAiB;QACvB,MAAM,KAAK,GAAa,CAAC,eAAe,EAAE,CAAC,CAAC;QAE5C,aAAa;QACb,KAAK,CAAC,IAAI,CAAC;;WAEJ,IAAI,CAAC,OAAO;;+CAEwB,CAAC,CAAC;QAE7C,gBAAgB;QAChB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACjC,CAAC;QAED,eAAe;QACf,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAC9C,CAAC;QAED,kCAAkC;QAClC,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAgC,aAAa,EAAgB,MAAM,YAAY,CAAC;AAE5F,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,wBAAgB,WAAW,CAAC,OAAO,EAAE,aAAa,sGA2PjD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAgC,aAAa,EAAgB,MAAM,YAAY,CAAC;AAG5F,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,wBAAgB,WAAW,CAAC,OAAO,EAAE,aAAa,sGAsUjD"}
@@ -27,6 +27,13 @@ export function startServer(options) {
27
27
  return;
28
28
  }
29
29
  }
30
+ // 待处理的问题(用于 AskUserQuestion 工具)
31
+ const pendingQuestions = new Map();
32
+ // 生成唯一的 request_id
33
+ let requestIdCounter = 0;
34
+ function generateRequestId() {
35
+ return `ask_question_${Date.now()}_${++requestIdCounter}`;
36
+ }
30
37
  // 创建带 hooks 的 Agent 实例
31
38
  const sessionId = `sess-${Date.now().toString(36)}`;
32
39
  const skillsUsed = new Set();
@@ -35,6 +42,44 @@ export function startServer(options) {
35
42
  let abortController = null;
36
43
  const agent = new OptimaAgent({
37
44
  cwd,
45
+ canUseTool: async (toolName, input) => {
46
+ if (toolName === "AskUserQuestion") {
47
+ const requestId = generateRequestId();
48
+ // 发送 ask_question 消息
49
+ sendMessage(ws, {
50
+ type: "ask_question",
51
+ request_id: requestId,
52
+ questions: input.questions,
53
+ });
54
+ // 等待前端回复(60s 超时)
55
+ return new Promise((resolve, reject) => {
56
+ const timeout = setTimeout(() => {
57
+ pendingQuestions.delete(requestId);
58
+ reject(new Error("Question timeout (60s)"));
59
+ }, 60000);
60
+ pendingQuestions.set(requestId, {
61
+ resolve: (answers) => {
62
+ clearTimeout(timeout);
63
+ resolve({
64
+ behavior: "allow",
65
+ updatedInput: { questions: input.questions, answers },
66
+ });
67
+ },
68
+ reject: (error) => {
69
+ clearTimeout(timeout);
70
+ reject(error);
71
+ },
72
+ timeout,
73
+ });
74
+ }).catch((error) => {
75
+ return {
76
+ behavior: "deny",
77
+ message: error instanceof Error ? error.message : "Question cancelled",
78
+ };
79
+ });
80
+ }
81
+ return { behavior: "allow", updatedInput: input };
82
+ },
38
83
  hooks: {
39
84
  PreToolUse: [{
40
85
  matcher: "Skill",
@@ -86,6 +131,21 @@ export function startServer(options) {
86
131
  }
87
132
  return;
88
133
  }
134
+ if (msg.type === "answer_question") {
135
+ const pending = pendingQuestions.get(msg.request_id);
136
+ if (pending) {
137
+ pendingQuestions.delete(msg.request_id);
138
+ pending.resolve(msg.answers);
139
+ }
140
+ else {
141
+ sendMessage(ws, {
142
+ type: "error",
143
+ code: "REQUEST_NOT_FOUND",
144
+ message: `Question request ${msg.request_id} not found or already answered`,
145
+ });
146
+ }
147
+ return;
148
+ }
89
149
  if (msg.type === "message") {
90
150
  const messageId = msg.id;
91
151
  const startTime = Date.now();
@@ -189,7 +249,7 @@ export function startServer(options) {
189
249
  },
190
250
  tools_called: toolsCalled,
191
251
  };
192
- sendMessage(ws, { type: "done", message_id: messageId, stats });
252
+ sendMessage(ws, { type: "finish", message_id: messageId, stats });
193
253
  }
194
254
  catch (error) {
195
255
  const errorMsg = error instanceof Error ? error.message : "Unknown error";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,10 @@ export type ClientMessage = {
7
7
  reason?: string;
8
8
  } | {
9
9
  type: "reset";
10
+ } | {
11
+ type: "answer_question";
12
+ request_id: string;
13
+ answers: Record<string, string>;
10
14
  };
11
15
  export type ServerMessage = {
12
16
  type: "connected";
@@ -37,13 +41,25 @@ export type ServerMessage = {
37
41
  content: string;
38
42
  timestamp: string;
39
43
  } | {
40
- type: "done";
44
+ type: "finish";
41
45
  message_id: string;
42
46
  stats: MessageStats;
43
47
  } | {
44
48
  type: "error";
45
49
  code: string;
46
50
  message: string;
51
+ } | {
52
+ type: "ask_question";
53
+ request_id: string;
54
+ questions: Array<{
55
+ question: string;
56
+ header: string;
57
+ options: Array<{
58
+ label: string;
59
+ description: string;
60
+ }>;
61
+ multiSelect: boolean;
62
+ }>;
47
63
  };
48
64
  export interface MessageStats {
49
65
  tokens: {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/server/types.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAGtB,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC5E;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC7E;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACvE;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACrG;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,GACzD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAErD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE;QACN,KAAK,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;QACzC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC7D,CAAC;IACF,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE;QACN,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IACF,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/server/types.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAAC;AAGrF,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC5E;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC7E;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACvE;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACrG;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,GAC3D;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC;AAEvL,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE;QACN,KAAK,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;QACzC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC7D,CAAC;IACF,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE;QACN,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IACF,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd"}
@@ -1,4 +1,23 @@
1
1
  import type { PermissionMode } from "@anthropic-ai/claude-agent-sdk";
2
+ /**
3
+ * canUseTool 回调函数类型
4
+ * 当 Claude 调用工具时,SDK 会触发此回调来获取权限决策
5
+ */
6
+ export type CanUseTool = (toolName: string, input: Record<string, unknown>) => Promise<CanUseToolResult>;
7
+ /**
8
+ * canUseTool 回调的返回结果
9
+ */
10
+ export type CanUseToolResult = {
11
+ /** 允许执行工具 */
12
+ behavior: "allow";
13
+ /** 更新后的输入参数(可以修改工具输入) */
14
+ updatedInput: Record<string, unknown>;
15
+ } | {
16
+ /** 拒绝执行工具 */
17
+ behavior: "deny";
18
+ /** 拒绝原因,会发送给 Claude */
19
+ message: string;
20
+ };
2
21
  export interface AgentOptions {
3
22
  /** 模型 ID */
4
23
  model?: string;
@@ -21,6 +40,11 @@ export interface AgentOptions {
21
40
  hooks?: HooksConfig;
22
41
  /** 恢复会话 ID(用于 headless 模式的 restore) */
23
42
  resumeSessionId?: string;
43
+ /**
44
+ * canUseTool 回调
45
+ * 用于处理 AskUserQuestion 等需要权限确认的工具
46
+ */
47
+ canUseTool?: CanUseTool;
24
48
  }
25
49
  export interface HooksConfig {
26
50
  PreToolUse?: HookCallback[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAErE,MAAM,WAAW,YAAY;IAC3B,YAAY;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW;IACX,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,aAAa;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wBAAwB;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,sBAAsB;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe;IACf,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,uCAAuC;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,YAAY,EAAE,CAAC;IAC7B,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC;IAC9B,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;CACvD;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW;IACX,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,oDAAoD;IACpD,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACpC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAErE;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,CACvB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC3B,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAE/B;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACxB;IACE,aAAa;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,yBAAyB;IACzB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC,GACD;IACE,aAAa;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEN,MAAM,WAAW,YAAY;IAC3B,YAAY;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW;IACX,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,aAAa;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wBAAwB;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,sBAAsB;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe;IACf,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,uCAAuC;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,YAAY,EAAE,CAAC;IAC7B,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC;IAC9B,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;CACvD;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW;IACX,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,oDAAoD;IACpD,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACpC"}
@@ -0,0 +1,6 @@
1
+ interface AppProps {
2
+ cwd?: string;
3
+ }
4
+ export declare function App({ cwd }: AppProps): import("react/jsx-runtime").JSX.Element;
5
+ export {};
6
+ //# sourceMappingURL=App.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../src/ui/App.tsx"],"names":[],"mappings":"AAcA,UAAU,QAAQ;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,QAAQ,2CAqMpC"}