@aiyiran/myclaw 1.1.187 → 1.1.190

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aiyiran/myclaw",
3
- "version": "1.1.187",
3
+ "version": "1.1.190",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: chat-history-extractor
3
- description: Extract and render chat history from OpenClaw session URLs. Use when user provides a URL like https://claw1.kekouen.cn/chat?session=agent%3Ac108-v1-1811%3Amain containing a session key. The skill parses the URL, finds the corresponding chat JSONL file, and generates a JS data file for rendering. Also provide template HTML for visualizing the conversation with timing metrics.
3
+ description: Extract and render chat history from OpenClaw session URLs. Use when user provides a URL like https://claw1.kekouen.cn/chat?session=agent%3Ac108-v1-1811%3Amain containing a session key. The skill parses the URL, finds the corresponding chat JSONL file, and generates a JS data file for rendering. Also provide template HTML for visualizing the conversation with timing metrics. IMPORTANT: The workspace argument must be YOUR OWN current workspace path (where you are running), NOT the workspace of the conversation being analyzed.
4
4
  ---
5
5
 
6
6
  # Chat History Extractor
@@ -15,7 +15,7 @@ python3 scripts/extract_chat.py <my-workspace>
15
15
  python3 scripts/extract_chat.py <my-workspace> "<urls>"
16
16
  ```
17
17
 
18
- - `<my-workspace>`:**必填**,执行命令的 agent 自己的 workspace 路径(不是被分析对话所在的 workspace
18
+ - `<my-workspace>`:**必填**,你自己当前所在的 workspace 路径(即你运行命令的目录)。**不是**你要提取的那个对话所属的 workspace。因为分析结果要落在你自己的目录下,方便你在当前上下文里查看。
19
19
  - `<urls>`:可选,单个 URL/key、逗号分隔、或 JSON 数组
20
20
  - 输出固定到 `<my-workspace>/chat-history/` 子目录
21
21
 
@@ -17,7 +17,7 @@
17
17
  "provider": "minimax_image",
18
18
  "model": "image-01",
19
19
  "base_url": "https://api.minimaxi.com/v1",
20
- "api_key": "sk-cp-DC5lWd2Stt9CBFzLIT2awP4K-ZEn5AkYwjl3Cdj-mIBmgjxod518F2LaVF2L9c35Wv5-Eox0F1ctJD5vXtB9p3OmxoWLd9ge9zIUIMrCVuqBYdL_s6kb8Qs"
20
+ "api_key": "sk-cp-dZnzWB-ScLfjo8bO7DKTqSutkBXQsLWUmjhNDBRkgJd5e42qcE7z8J9i5m27V28eX-dYfo5Q7JNVG4XVsDi1zRxkIFZ4fT0DPGPJY7cHbqY5aBzJO1c6QVA"
21
21
  }
22
22
  ],
23
23
  "music": [
@@ -25,7 +25,7 @@
25
25
  "provider": "minimax_music",
26
26
  "model": "music-2.6",
27
27
  "base_url": "https://api.minimaxi.com/v1",
28
- "api_key": "sk-cp-DC5lWd2Stt9CBFzLIT2awP4K-ZEn5AkYwjl3Cdj-mIBmgjxod518F2LaVF2L9c35Wv5-Eox0F1ctJD5vXtB9p3OmxoWLd9ge9zIUIMrCVuqBYdL_s6kb8Qs"
28
+ "api_key": "sk-cp-dZnzWB-ScLfjo8bO7DKTqSutkBXQsLWUmjhNDBRkgJd5e42qcE7z8J9i5m27V28eX-dYfo5Q7JNVG4XVsDi1zRxkIFZ4fT0DPGPJY7cHbqY5aBzJO1c6QVA"
29
29
  }
30
30
  ],
31
31
  "video": [
@@ -33,7 +33,7 @@
33
33
  "provider": "minimax_video",
34
34
  "model": "MiniMax-Hailuo-2.3",
35
35
  "base_url": "https://api.minimaxi.com/v1",
36
- "api_key": "sk-cp-DC5lWd2Stt9CBFzLIT2awP4K-ZEn5AkYwjl3Cdj-mIBmgjxod518F2LaVF2L9c35Wv5-Eox0F1ctJD5vXtB9p3OmxoWLd9ge9zIUIMrCVuqBYdL_s6kb8Qs"
36
+ "api_key": "sk-cp-dZnzWB-ScLfjo8bO7DKTqSutkBXQsLWUmjhNDBRkgJd5e42qcE7z8J9i5m27V28eX-dYfo5Q7JNVG4XVsDi1zRxkIFZ4fT0DPGPJY7cHbqY5aBzJO1c6QVA"
37
37
  },
38
38
  {
39
39
  "provider": "jimeng_video",
@@ -47,7 +47,7 @@
47
47
  "provider": "minimax_video",
48
48
  "model": "MiniMax-Hailuo-2.3-Fast",
49
49
  "base_url": "https://api.minimaxi.com/v1",
50
- "api_key": "sk-cp-DC5lWd2Stt9CBFzLIT2awP4K-ZEn5AkYwjl3Cdj-mIBmgjxod518F2LaVF2L9c35Wv5-Eox0F1ctJD5vXtB9p3OmxoWLd9ge9zIUIMrCVuqBYdL_s6kb8Qs"
50
+ "api_key": "sk-cp-dZnzWB-ScLfjo8bO7DKTqSutkBXQsLWUmjhNDBRkgJd5e42qcE7z8J9i5m27V28eX-dYfo5Q7JNVG4XVsDi1zRxkIFZ4fT0DPGPJY7cHbqY5aBzJO1c6QVA"
51
51
  }
52
52
  ]
53
53
  }
@@ -233,21 +233,11 @@ def main():
233
233
  # User specified output path - use it directly
234
234
  kwargs["output_path"] = args.output
235
235
  else:
236
- # Auto-naming: generate to temp path first, then rename with model info
237
- import tempfile
238
- with tempfile.NamedTemporaryFile(delete=False, suffix=f".{ext}", dir=out_dir) as tmp:
239
- tmp_path = tmp.name
240
- kwargs["output_path"] = tmp_path
236
+ # Auto-naming: generate proper path directly
237
+ kwargs["output_path"] = make_output_path(out_dir, args.name, args.type, kwargs, ext)
241
238
 
242
239
  files, used_provider = dispatch(args.type, args.prompt, **kwargs)
243
240
 
244
- # Rename with proper filename containing name and params (only for auto-naming)
245
- if not args.output:
246
- proper_path = make_output_path(out_dir, args.name, args.type, kwargs, ext)
247
- import shutil
248
- shutil.move(files[0], proper_path)
249
- files = [proper_path]
250
-
251
241
  end_dt = datetime.now()
252
242
  log_entry.update({
253
243
  "status": "success",