cckit 0.1.5 → 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.
package/README.md CHANGED
@@ -1,12 +1,12 @@
1
1
  # cckit (Node.js Edition)
2
2
 
3
- Code Kit for Claude Model Switching - Support 智谱LLM, MiniMax, Kimi, Kuaishou StreamLake, ZenMux.ai, and official Claude
3
+ Code Kit for Claude Model Switching - Support 智谱 Coding Plan, MiniMax Coding Plan, Kimi Coding Plan, 快手 StreamLake Coding Plan, 火山引擎 Coding Plan, ZenMux.ai, and official Claude
4
4
 
5
5
  A CLI tool for managing and switching between different Claude model providers and their configurations. Features support for model gateways like ZenMux.ai and Kuaishou StreamLake that provide unified access to multiple AI providers.
6
6
 
7
7
  ## Features
8
8
 
9
- - **Multiple Provider Support**: Configure and switch between 智谱LLM, MiniMax, Kimi, Kuaishou StreamLake, ZenMux.ai, and official Claude
9
+ - **Multiple Provider Support**: Configure and switch between 智谱 Coding Plan, MiniMax Coding Plan, Kimi Coding Plan, 快手 StreamLake Coding Plan, 火山引擎 Coding Plan, 阿里云 Coding Plan, 腾讯云 Coding Plan, 讯飞 Coding Plan, ZenMux.ai, official Claude, and custom providers
10
10
  - **Easy Configuration**: Simple command-line interface for managing API keys and settings
11
11
  - **Claude Integration**: Automatically updates Claude Code configuration files
12
12
  - **Export/Import**: Backup and restore your provider configurations
@@ -26,6 +26,129 @@ pnpm add -g cckit
26
26
  yarn global add cckit
27
27
  ```
28
28
 
29
+ ## Quick Start (Interactive Mode)
30
+
31
+ ```bash
32
+ # Start interactive configuration wizard (recommended for first-time users)
33
+ cckit interactive
34
+ ```
35
+
36
+ ## Interactive Mode Details
37
+
38
+ The interactive wizard (`cckit interactive`) provides a user-friendly, step-by-step configuration experience with arrow key selection:
39
+
40
+ ### Step-by-Step Guide
41
+
42
+ ```
43
+ ▸ Step 1: 选择要配置的 AI 提供商
44
+ ```
45
+ Use ↑/↓ arrow keys to select from:
46
+ - **Preset Providers**: 智谱 Coding Plan, MiniMax Coding Plan, Kimi Coding Plan, ZenMux, 快手 StreamLake Coding Plan, 火山引擎 Coding Plan, 阿里云 Coding Plan, 腾讯云 Coding Plan, 讯飞 Coding Plan, Claude
47
+ - **Custom Provider**: For local LLMs (Ollama, LocalAI, LM Studio) or any OpenAI-compatible API
48
+
49
+ ```
50
+ ▸ Step 2: 配置 [Provider Name]
51
+ ```
52
+ - Enter your API key (required)
53
+ - For custom providers: Enter the base URL (e.g., `http://localhost:11434/v1`)
54
+
55
+ ```
56
+ ▸ Step 3: 设置模型
57
+ ```
58
+ - Enter the model name (default value provided based on provider)
59
+
60
+ ```
61
+ ▸ Step 4: 保存配置
62
+ ```
63
+ - If existing configurations found, choose to update or create new
64
+ - Configuration saved to `~/.cckit/config.json`
65
+
66
+ ```
67
+ ▸ Step 5: 测试连接
68
+ ```
69
+ - Optional: Test the connection to verify API key and endpoint
70
+
71
+ ```
72
+ ▸ Step 6: 切换 Provider
73
+ ```
74
+ - Optional: Switch to the newly configured provider immediately
75
+
76
+ ### Features
77
+
78
+ - **Arrow Key Navigation**: Easy selection with keyboard
79
+ - **Smart Defaults**: Pre-filled model names based on provider
80
+ - **Existing Config Detection**: Detects and offers to update existing configurations
81
+ - **Connection Testing**: Verify setup before switching
82
+ - **Immediate Switch**: Option to activate the provider right away
83
+
84
+ ### Example Session
85
+
86
+ ```bash
87
+ $ cckit interactive
88
+
89
+ ___ ___ / ___ ( ) __ ___
90
+ // ) ) // ) ) //\ \ / / / /
91
+ // // // \ \ / / / /
92
+ ((____ ((____ // \ \ / / / /
93
+ 交互式配置向导
94
+
95
+ ▸ Step 1: 选择要配置的 AI 提供商
96
+
97
+ ? 请选择提供商: (Use arrow keys)
98
+ ❯ 智谱 Coding Plan (GLM)
99
+ MiniMax Coding Plan
100
+ Kimi Coding Plan
101
+ ZenMux.ai
102
+ 快手 StreamLake Coding Plan
103
+ 火山引擎 Coding Plan
104
+ 阿里云 Coding Plan
105
+ 腾讯云 Coding Plan
106
+ 讯飞 Coding Plan
107
+ Claude (Official)
108
+ 自定义 Provider (Local LLM / OpenAI Compatible)
109
+
110
+ ▸ Step 2: 配置 智谱 Coding Plan
111
+
112
+ ? 请输入 API Key: [your-api-key]
113
+
114
+ ▸ Step 3: 设置模型
115
+
116
+ ? 请输入模型名称: (GLM-4.7)
117
+
118
+ ▸ Step 4: 保存配置
119
+
120
+ ✓ 配置已保存 (id: zhipu_xxx)
121
+ Provider: 智谱 Coding Plan
122
+ Model: GLM-4.7
123
+
124
+ ▸ Step 5: 测试连接
125
+
126
+ ? 是否测试连接? (Y/n)
127
+
128
+ ✓ 连接成功!
129
+ 响应时间: 234ms
130
+
131
+ ▸ Step 6: 切换 Provider
132
+
133
+ ? 是否立即切换到该 Provider? (Y/n)
134
+
135
+ ✓ 已切换到 智谱 Coding Plan
136
+ 请重启终端或新开会话以使配置生效
137
+
138
+ ___ ___ / ___ ( ) __ ___
139
+ // ) ) // ) ) //\ \ / / / /
140
+ // // // \ \ / / / /
141
+ ((____ ((____ // \ \ / / / /
142
+ 配置完成! ✓
143
+ ```
144
+
145
+ The interactive wizard will guide you through:
146
+ 1. Selecting an AI provider (智谱 Coding Plan, MiniMax Coding Plan, Kimi Coding Plan, Claude, ZenMux, 快手 StreamLake Coding Plan, 火山引擎 Coding Plan, 阿里云 Coding Plan, 腾讯云 Coding Plan, 讯飞 Coding Plan, or Custom)
147
+ 2. Entering your API key
148
+ 3. Setting up the model name
149
+ 4. Testing the connection
150
+ 5. Switching to the configured provider
151
+
29
152
  ## Usage
30
153
 
31
154
  ### Basic Commands
@@ -43,6 +166,9 @@ cckit current
43
166
  # Configure a provider
44
167
  cckit configure <provider> --api-key <key> [--base-url <url>] [--model <model>] ...
45
168
 
169
+ # Configure a custom provider (local LLM, OpenAI-compatible API, etc.)
170
+ cckit configure my-ollama --api-key "ollama-key" --base-url "http://localhost:11434/v1" --model "llama3"
171
+
46
172
  # Switch to a provider
47
173
  cckit switch <provider>
48
174
 
@@ -64,9 +190,9 @@ cckit remove-model <provider> <model>
64
190
 
65
191
  ### Supported Providers
66
192
 
67
- #### 智谱LLM (Zhipu) - [https://www.bigmodel.cn/claude-code?ic=AFDPNDPWIF](https://www.bigmodel.cn/claude-code?ic=AFDPNDPWIF)
193
+ #### 智谱 Coding Plan - [https://www.bigmodel.cn/claude-code?ic=AFDPNDPWIF](https://www.bigmodel.cn/claude-code?ic=AFDPNDPWIF)
68
194
  ```bash
69
- # Configure 智谱LLM with a single model
195
+ # Configure 智谱 Coding Plan with a single model
70
196
  cckit configure zhipu --api-key "your-api-key" --model "GLM-4.7"
71
197
 
72
198
  # Configure with multiple models
@@ -81,13 +207,13 @@ cckit set-model zhipu "GLM-4-Plus"
81
207
  # Remove a model
82
208
  cckit remove-model zhipu "GLM-4.7"
83
209
 
84
- # Switch to 智谱LLM
210
+ # Switch to 智谱 Coding Plan
85
211
  cckit switch zhipu
86
212
  ```
87
213
 
88
- #### MiniMax - [https://platform.minimaxi.com/subscribe/coding-plan](https://platform.minimaxi.com/subscribe/coding-plan?code=3FiunKqPhD&source=link)
214
+ #### MiniMax Coding Plan - [https://platform.minimaxi.com/subscribe/coding-plan](https://platform.minimaxi.com/subscribe/coding-plan?code=3FiunKqPhD&source=link)
89
215
  ```bash
90
- # Configure MiniMax with multiple models
216
+ # Configure MiniMax Coding Plan with multiple models
91
217
  cckit configure minimax --api-key "your-api-key" --model "MiniMax-M2" --model "MiniMax-M4"
92
218
 
93
219
  # List models
@@ -99,13 +225,13 @@ cckit set-model minimax "MiniMax-M4"
99
225
  # Remove a model
100
226
  cckit remove-model minimax "MiniMax-M2"
101
227
 
102
- # Switch to MiniMax
228
+ # Switch to MiniMax Coding Plan
103
229
  cckit switch minimax
104
230
  ```
105
231
 
106
- #### Kimi (Moonshot) - [https://www.kimi.com/coding/docs/](https://www.kimi.com/coding/docs/)
232
+ #### Kimi Coding Plan - [https://www.kimi.com/coding/docs/](https://www.kimi.com/coding/docs/)
107
233
  ```bash
108
- # Configure Kimi with multiple models
234
+ # Configure Kimi Coding Plan with multiple models
109
235
  cckit configure kimi --api-key "your-api-key" --model "kimi-for-coding" --model "kimi-plus"
110
236
 
111
237
  # List models
@@ -114,7 +240,7 @@ cckit models kimi
114
240
  # Set active model
115
241
  cckit set-model kimi "kimi-plus"
116
242
 
117
- # Switch to Kimi
243
+ # Switch to Kimi Coding Plan
118
244
  cckit switch kimi
119
245
  ```
120
246
 
@@ -148,9 +274,9 @@ cckit set-model claude "claude-3-opus-20250219"
148
274
  cckit switch claude
149
275
  ```
150
276
 
151
- #### Kuaishou StreamLake - [快手万擎引擎](https://wanqing.streamlakeapi.com)
277
+ #### 快手 StreamLake Coding Plan - [快手万擎引擎](https://streamlake.com/marketing/coding-plan)
152
278
  ```bash
153
- # Configure Kuaishou StreamLake with multiple models
279
+ # Configure 快手 StreamLake Coding Plan with multiple models
154
280
  cckit configure streamlake --api-key "your-streamlake-api-key" --model "kat-coder-pro-v1" --model "claude-3-opus-20250219"
155
281
 
156
282
  # List models
@@ -159,10 +285,102 @@ cckit models streamlake
159
285
  # Set active model
160
286
  cckit set-model streamlake "claude-3-opus-20250219"
161
287
 
162
- # Switch to Kuaishou StreamLake
288
+ # Switch to 快手 StreamLake Coding Plan
163
289
  cckit switch streamlake
164
290
  ```
165
291
 
292
+ #### 火山引擎 Coding Plan [火山方舟](https://www.volcengine.com/activity/codingplan)
293
+ ```bash
294
+ # Configure 火山引擎 Coding Plan with multiple models
295
+ cckit configure volcengine --api-key "your-ark-api-key" --model "ark-code-latest" --model "ark-code-pro"
296
+
297
+ # List models
298
+ cckit models volcengine
299
+
300
+ # Set active model
301
+ cckit set-model volcengine "ark-code-pro"
302
+
303
+ # Switch to 火山引擎 Coding Plan
304
+ cckit switch volcengine
305
+ ```
306
+
307
+ #### Aliyun [阿里云 Coding Plan https://www.aliyun.com/benefit/scene/codingplan](https://www.aliyun.com/benefit/ai/aistar?clubBiz=subTask..12414135..10263..)
308
+ ```bash
309
+ # Configure Aliyun Coding Plan with multiple models
310
+ cckit configure aliyun --api-key "your-api-key" --model "qwen3.5-plus" --model "kimi-k2.5" --model "glm-5" --model "MiniMax-M2.5"
311
+
312
+ # List models
313
+ cckit models aliyun
314
+
315
+ # Set active model
316
+ cckit set-model aliyun "glm-5"
317
+
318
+ # Switch to Aliyun
319
+ cckit switch aliyun
320
+ ```
321
+
322
+ #### Tencent [腾讯云 Coding Plan]
323
+ ```bash
324
+ # Configure Tencent Coding Plan with multiple models
325
+ cckit configure tencent --api-key "your-api-key" --model "GLM-5" --model "MiniMax-M2.5" --model "Kimi-K2.5"
326
+
327
+ # List models
328
+ cckit models tencent
329
+
330
+ # Set active model
331
+ cckit set-model tencent "MiniMax-M2.5"
332
+
333
+ # Switch to Tencent
334
+ cckit switch tencent
335
+ ```
336
+
337
+ #### XFYun [讯飞 Coding Plan]
338
+ ```bash
339
+ # Configure XFYun Coding Plan with multiple models
340
+ cckit configure xfyun --api-key "your-api-key" --model "GLM-5" --model "MiniMax-M2.5" --model "Kimi-K2.5"
341
+
342
+ # List models
343
+ cckit models xfyun
344
+
345
+ # Set active model
346
+ cckit set-model xfyun "MiniMax-M2.5"
347
+
348
+ # Switch to XFYun
349
+ cckit switch xfyun
350
+ ```
351
+
352
+ #### Custom Provider - Local/OpaqueAI/OpenAI Compatible APIs
353
+
354
+ Configure custom providers for local LLMs (Ollama, LocalAI, LM Studio), opaque API endpoints, or any Anthropic-compatible API:
355
+
356
+ ```bash
357
+ # Configure a local Ollama instance
358
+ cckit configure ollama --api-key "ollama-key" --base-url "http://localhost:11434/v1" --model "llama3"
359
+
360
+ # Configure using the 'custom:' prefix (explicit custom provider)
361
+ cckit configure custom:my-ollama --api-key "ollama-key" --base-url "http://localhost:11434/v1" --model "llama3"
362
+
363
+ # Configure for OpenAI compatible API (e.g., via proxy)
364
+ cckit configure openwebui --api-key "your-token" --base-url "http://localhost:8080/v1" --model "anthropic/claude-3-haiku"
365
+
366
+ # List models
367
+ cckit models ollama
368
+
369
+ # Set active model
370
+ cckit set-model ollama "llama3"
371
+
372
+ # Switch to custom provider
373
+ cckit switch ollama
374
+ ```
375
+
376
+ Custom providers support:
377
+ - Local LLM servers (Ollama, LocalAI, LM Studio, llama.cpp)
378
+ - OpenAI-compatible API endpoints
379
+ - Any Anthropic-compatible gateway or proxy
380
+ - Opaque/enterprise API endpoints
381
+
382
+ The custom provider uses `provider_name` as the `CC_PROVIDER` environment variable value, allowing you to distinguish between multiple custom providers.
383
+
166
384
  ### Advanced Commands
167
385
 
168
386
  ```bash
@@ -174,6 +392,9 @@ cckit import backup.json
174
392
 
175
393
  # Reset to default Claude configuration
176
394
  cckit reset
395
+
396
+ # Interactive configuration wizard (new!)
397
+ cckit interactive
177
398
  ```
178
399
 
179
400
  ## Configuration
@@ -194,12 +415,17 @@ The active model is used when Claude Code switches to that provider. If no expli
194
415
 
195
416
  | Provider | Default Model | Auth Method | Capabilities | Default Base URL |
196
417
  |----------|---------------|-------------|--------------|------------------|
197
- | 智谱LLM | GLM-4.7 | ANTHROPIC_AUTH_TOKEN | Chat, Code Generation, Chinese Support | https://open.bigmodel.cn/api/anthropic |
198
- | MiniMax | MiniMax-M2 | ANTHROPIC_AUTH_TOKEN | Chat, Code Generation, Multi-language | https://api.minimaxi.com/anthropic |
199
- | Kimi | kimi-for-coding | ANTHROPIC_API_KEY | Chat, Long Context, Code Generation | https://api.kimi.com/coding/ |
418
+ | 智谱 Coding Plan | GLM-4.7 | ANTHROPIC_AUTH_TOKEN | Chat, Code Generation, Chinese Support | https://open.bigmodel.cn/api/anthropic |
419
+ | MiniMax Coding Plan | MiniMax-M2 | ANTHROPIC_AUTH_TOKEN | Chat, Code Generation, Multi-language | https://api.minimaxi.com/anthropic |
420
+ | Kimi Coding Plan | kimi-for-coding | ANTHROPIC_API_KEY | Chat, Long Context, Code Generation | https://api.kimi.com/coding/ |
200
421
  | ZenMux.ai | claude-3-5-sonnet-20241022 | ANTHROPIC_API_KEY | Model Gateway, Multi-provider, Claude Compatible | https://zenmux.ai/api/anthropic |
201
- | Kuaishou StreamLake | kat-coder-pro-v1 | ANTHROPIC_API_KEY | Chat, Code Generation, Chinese Support, Video Understanding | https://wanqing.streamlakeapi.com/api/gateway/v1/endpoints/kat-coder-pro-v1/claude-code-proxy |
422
+ | 快手 StreamLake Coding Plan | kat-coder-pro-v1 | ANTHROPIC_API_KEY | Chat, Code Generation, Chinese Support, Video Understanding | https://wanqing.streamlakeapi.com/api/gateway/v1/endpoints/kat-coder-pro-v1/claude-code-proxy |
423
+ | 火山引擎 Coding Plan | ark-code-latest | ANTHROPIC_AUTH_TOKEN | Chat, Code Generation, Chinese Support | https://ark.cn-beijing.volces.com/api/coding |
424
+ | 阿里云 Coding Plan | claude-sonnet-4-20250514 | ANTHROPIC_AUTH_TOKEN | Chat, Code Generation, Chinese Support, Multimodal | https://coding.dashscope.aliyuncs.com/apps/anthropic |
425
+ | 腾讯云 Coding Plan | GLM-5 | ANTHROPIC_AUTH_TOKEN | Chat, Code Generation, Chinese Support, Multimodal | https://api.lkeap.cloud.tencent.com/coding/anthropic |
426
+ | 讯飞 Coding Plan | GLM-5 | ANTHROPIC_AUTH_TOKEN | Chat, Code Generation, Chinese Support, Multimodal | https://maas-coding-api.cn-huabei-1.xf-yun.com/anthropic |
202
427
  | Claude | claude-3-5-sonnet-20241022 | ANTHROPIC_API_KEY | Chat, Code Generation, Analysis, Multimodal | Official |
428
+ | Custom | - | ANTHROPIC_API_KEY | Custom, User-defined, Local LLM, Anthropic Compatible API | User-defined |
203
429
 
204
430
  ## How It Works
205
431
 
@@ -231,28 +457,11 @@ For more build options and details, see [BUILD.md](BUILD.md).
231
457
 
232
458
  ## Requirements
233
459
 
234
- - Node.js 18 or higher
460
+ - Node.js 20 or higher
235
461
  - pnpm (or npm/yarn)
236
462
  - Claude Code installed
237
463
  - Valid API keys for the providers you want to use
238
464
 
239
- ## Project Structure
240
-
241
- ```
242
- cckit-node/
243
- ├── src/
244
- │ ├── index.ts # Main CLI entry point
245
- │ ├── types.ts # TypeScript type definitions
246
- │ ├── config.ts # Configuration management
247
- │ ├── commands.ts # CLI command implementations
248
- │ ├── providers.ts # Provider configurations and testing
249
- │ └── i18n.ts # Internationalization (English & Chinese)
250
- ├── dist/ # Compiled JavaScript output
251
- ├── package.json # Project dependencies and scripts
252
- ├── tsconfig.json # TypeScript configuration
253
- └── README.md # This file
254
- ```
255
-
256
465
  ## License
257
466
 
258
467
  This project is licensed under the MIT License - see the LICENSE file for details.
@@ -2,6 +2,10 @@ import { ConfigManager } from './config.js';
2
2
  export declare class Commands {
3
3
  private configManager;
4
4
  constructor(configManager: ConfigManager);
5
+ /**
6
+ * Interactive configuration wizard with arrow key selection
7
+ */
8
+ interactive(): Promise<void>;
5
9
  list(): void;
6
10
  switch(providerId: string): void;
7
11
  current(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAsD,MAAM,aAAa,CAAC;AAKhG,qBAAa,QAAQ;IACP,OAAO,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAEhD,IAAI,IAAI,IAAI;IAgCZ,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAmBhC,OAAO,IAAI,IAAI;IA8Bf,SAAS,CACP,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,EAAE,GAChB,IAAI;IA0DP,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAuCxB,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8B7C,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IA6B1B,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuEpE,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IA2CxD,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAkB7B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAa1B,KAAK,IAAI,IAAI;IASb,OAAO,CAAC,sBAAsB;YAoBhB,YAAY;CAgB3B"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAsD,MAAM,aAAa,CAAC;AAahG,qBAAa,QAAQ;IACP,OAAO,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAEhD;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAmOlC,IAAI,IAAI,IAAI;IAsCZ,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAmBhC,OAAO,IAAI,IAAI;IAkCf,SAAS,CACP,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,EAAE,GAChB,IAAI;IAuEP,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IA6CxB,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8B7C,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IA6B1B,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuFpE,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IA2CxD,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAkB7B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAa1B,KAAK,IAAI,IAAI;IASb,OAAO,CAAC,sBAAsB;YAoChB,YAAY;CAM3B"}