grok-cli-to-openai-compatible 1.7.2 → 1.7.3
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-ZH.md +61 -2
- package/README.md +61 -2
- package/dist/services/media/providers/grok-tools.provider.d.ts +18 -0
- package/dist/services/media/providers/grok-tools.provider.d.ts.map +1 -1
- package/dist/services/media/providers/grok-tools.provider.js +199 -4
- package/dist/services/media/providers/grok-tools.provider.js.map +1 -1
- package/package.json +1 -1
- package/public/admin/boot.js +2 -2
- package/public/admin/boot.js.map +1 -1
- package/public/admin/i18n.js +5 -4
package/README-ZH.md
CHANGED
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
|------|:----:|:---------:|:------------------:|------------|
|
|
37
37
|
| 文字 + stream | ✅ | ✅ | ✅ | 協議開關 |
|
|
38
38
|
| Vision / 圖片 | ✅ | ✅ | ✅ | `vision` |
|
|
39
|
-
| Images `/v1/images/generations` + `/edits` | ✅ | — | — | `imagesApi` + agent key |
|
|
39
|
+
| Images `/v1/images/generations` + `/edits` | ✅ OpenAI 形狀(`b64_json` / `url`) | — | — | `imagesApi` + `tools` + agent key |
|
|
40
40
|
| Files `/v1/files` | ✅ | — | — | `filesOpenAiAlias` |
|
|
41
41
|
| Videos `/v1/videos` | ✅ Grok `image_to_video`(1–15 秒)/`reference_to_video` + voices | — | — | `videoApi` |
|
|
42
42
|
| Audio speech / transcriptions | ✅ mock 或 503 | — | — | `audioApi` + provider env |
|
|
@@ -314,7 +314,7 @@ gctoac logs clear
|
|
|
314
314
|
| 加密 | AES-256-GCM 加密 prompt、response、檔案 |
|
|
315
315
|
| 對話歷史 | 多輪對話、上下文模式(full / summary / recent) |
|
|
316
316
|
| Admin Panel | OTP session 登入;**分 tab** 頁面(佇列/媒體/系統/PM2/DDoS/API 能力);精簡 EN/繁中文案 |
|
|
317
|
-
| 媒體庫 | 工作室(生成/編輯/**1–15 秒影片**/配音)、資產與工作、多格式預覽 lightbox(`blob:` CSP
|
|
317
|
+
| 媒體庫 | 工作室(生成/編輯/**1–15 秒影片**/配音)、資產與工作、多格式預覽 lightbox(`blob:` CSP 安全)。沙箱沒有 `output.png` 時,會從今次 Imagine session 的 `images/` 收圖 |
|
|
318
318
|
| 對話佇列 | 持久化 SQLite 工作、公平輪詢、暫停/排空、死信、Idempotency-Key、`QUEUE_BACKEND`、離線串流 fallback |
|
|
319
319
|
| DDoS 中心 | 即時連線、黑名單、自動封鎖、可配置策略與預設檔(分 tab) |
|
|
320
320
|
| 反向代理 | 信任層數 + CF / nginx / X-Forwarded-For 真實 IP |
|
|
@@ -368,6 +368,61 @@ const res = await client.chat.completions.create({
|
|
|
368
368
|
console.log(res.choices[0].message.content);
|
|
369
369
|
```
|
|
370
370
|
|
|
371
|
+
### Images(OpenAI 形狀)
|
|
372
|
+
|
|
373
|
+
`POST /v1/images/generations` 與 `POST /v1/images/edits` 回傳官方 Images 物件。需要 **`imagesApi` + `tools`**,以及 **agent**(或管理員)金鑰;safe 金鑰會得 **403**。
|
|
374
|
+
|
|
375
|
+
```bash
|
|
376
|
+
curl -s http://127.0.0.1:3847/v1/images/generations \
|
|
377
|
+
-H "Authorization: Bearer $API_KEY" \
|
|
378
|
+
-H "Content-Type: application/json" \
|
|
379
|
+
-d '{
|
|
380
|
+
"prompt": "紅色方塊",
|
|
381
|
+
"n": 1,
|
|
382
|
+
"aspect_ratio": "16:9",
|
|
383
|
+
"response_format": "b64_json"
|
|
384
|
+
}'
|
|
385
|
+
```
|
|
386
|
+
|
|
387
|
+
```json
|
|
388
|
+
{
|
|
389
|
+
"created": 1710000000,
|
|
390
|
+
"data": [{ "b64_json": "iVBOR…" }],
|
|
391
|
+
"grok": { "provider": "grok-tools", "asset_ids": ["uuid"] }
|
|
392
|
+
}
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
| 欄位/主題 | 行為 |
|
|
396
|
+
|------------|------|
|
|
397
|
+
| `response_format` | `b64_json`(預設,與 GPT image 模型相同)或 `url` |
|
|
398
|
+
| `size` | OpenAI 像素(`1024x1024` 等)**或** Grok 比例(`16:9`) |
|
|
399
|
+
| `aspect_ratio` | Grok Imagine(`1:1`、`16:9` 等)——優先於像素尺寸 |
|
|
400
|
+
| `n` | 1–4;Grok 無批次生成,Gateway 或會循環。`n=1` 只交一張 |
|
|
401
|
+
| `data[].url` | Gateway 本機 `/v1/media/assets/:id/content`(同一把 API 金鑰),不是 OpenAI CDN |
|
|
402
|
+
| `grok` | Gateway 擴充(`provider`、`asset_ids`)。OpenAI SDK 會忽略未知欄位 |
|
|
403
|
+
|
|
404
|
+
**生成如何真正收到檔案(v1.7.3+):** Grok Imagine 永遠寫到
|
|
405
|
+
`~/.grok/sessions/<encodeURIComponent(sandbox-cwd)>/<session-uuid>/images/`
|
|
406
|
+
(例如 `1.jpg`)。media-run 沙箱**沒有 bash**,agent 無法自行 `cp` 到 `output.png`。Gateway 只把**今次 run 對應 session** 最新一張圖,在 `image_gen` 成功時(以及 Grok 結束後)複製到沙箱 `output.jpg|png|webp`。
|
|
407
|
+
|
|
408
|
+
收圖順序:
|
|
409
|
+
|
|
410
|
+
1. 沙箱根目錄 `output.png` / `output.jpg` / `output.webp` / `output.jpeg`
|
|
411
|
+
2. 遞歸掃描沙箱(realpath;不會跟隨 symlink 離開今次 run)
|
|
412
|
+
3. 只收今次 run 的 Grok session `images/`——**不會**掃描整個 `~/.grok/sessions`
|
|
413
|
+
|
|
414
|
+
優先最新一張。忽略 `input.png`、`mask.png`、`frame.png`、`ref-*.png`。只有完全找不到圖像時才會回 **502** `no_image_in_sandbox`——**不是** `imagesApi` 或 API 金鑰問題。編輯使用 `--tools image_edit` + `input.png`。影片收檔同樣可取今次 session 的 `videos/`/`images/` 以及沙箱 `output.mp4`。
|
|
415
|
+
|
|
416
|
+
```ts
|
|
417
|
+
const img = await client.images.generate({
|
|
418
|
+
model: 'grok-4.6',
|
|
419
|
+
prompt: '紅色方塊',
|
|
420
|
+
n: 1,
|
|
421
|
+
response_format: 'b64_json',
|
|
422
|
+
});
|
|
423
|
+
const b64 = img.data[0].b64_json;
|
|
424
|
+
```
|
|
425
|
+
|
|
371
426
|
### Chat body 擴充欄位
|
|
372
427
|
|
|
373
428
|
```json
|
|
@@ -452,6 +507,10 @@ POST /admin/api/queue/purge-dead
|
|
|
452
507
|
| POST | `/v1/chat/completions` | OpenAI Chat(佇列;可選 `Idempotency-Key`) |
|
|
453
508
|
| POST | `/v1/responses` | OpenAI Responses 文字子集 |
|
|
454
509
|
| POST | `/v1/messages` | Anthropic Messages(Bearer 或 `x-api-key`) |
|
|
510
|
+
| POST | `/v1/images/generations` | OpenAI Images 生成(`b64_json`/`url`;沙箱為空時會收今次 session `images/`) |
|
|
511
|
+
| POST | `/v1/images/edits` | OpenAI Images 編輯(multipart `image` + 可選 `mask`) |
|
|
512
|
+
| GET | `/v1/media/assets/:id` | 已存資產中繼資料 |
|
|
513
|
+
| GET | `/v1/media/assets/:id/content` | 已存資產內容(同一把 API 金鑰) |
|
|
455
514
|
| POST | `/v1/videos` | Grok 影片 job(`seconds` 1–15;`voices[]` → `reference_to_video`) |
|
|
456
515
|
| GET | `/v1/videos/:id` | 查影片 job |
|
|
457
516
|
| GET | `/admin/api/grok/inspect` | 本機 `grok inspect --json` 快照 |
|
package/README.md
CHANGED
|
@@ -36,7 +36,7 @@ Production OpenAI-compatible HTTP gateway for local **[Grok CLI](https://x.ai)**
|
|
|
36
36
|
|------------|:----:|:---------:|:------------------:|--------------|
|
|
37
37
|
| Text + stream | ✅ | ✅ | ✅ | protocol flags |
|
|
38
38
|
| Vision / image parts | ✅ | ✅ | ✅ | `vision` |
|
|
39
|
-
| **Images** `/v1/images/generations` + `/edits` | ✅ OpenAI-shaped | — | — | `imagesApi` + agent key |
|
|
39
|
+
| **Images** `/v1/images/generations` + `/edits` | ✅ OpenAI-shaped (`b64_json` / `url`) | — | — | `imagesApi` + `tools` + agent key |
|
|
40
40
|
| **Files** `/v1/files` (docs alias) | ✅ | — | — | `filesOpenAiAlias` |
|
|
41
41
|
| **Videos** `/v1/videos` | ✅ Grok `image_to_video` (1–15s) / `reference_to_video` + voices | — | — | `videoApi` |
|
|
42
42
|
| **Audio** `/v1/audio/speech` + `/transcriptions` | ✅ mock or 503 | — | — | `audioApi` + provider env |
|
|
@@ -316,7 +316,7 @@ gctoac logs clear
|
|
|
316
316
|
| Encryption | AES-256-GCM for prompts, responses, files |
|
|
317
317
|
| Chat history | Multi-turn conversations, context modes (full / summary / recent) |
|
|
318
318
|
| Admin Panel | OTP session login; **tabbed** pages (queue / media / system / PM2 / DDoS / API features); compact EN/ZH copy |
|
|
319
|
-
| Media library | Studio (gen/edit/**1–15s video**/voices), assets & jobs, multi-format preview lightbox (`blob:` CSP-safe) |
|
|
319
|
+
| Media library | Studio (gen/edit/**1–15s video**/voices), assets & jobs, multi-format preview lightbox (`blob:` CSP-safe). Generate harvests Imagine session `images/` when sandbox `output.png` is missing |
|
|
320
320
|
| Chat queue | Durable SQLite jobs, fair RR, pause/drain, DLQ, Idempotency-Key, `QUEUE_BACKEND`, offline stream fallback |
|
|
321
321
|
| DDoS center | Live connections, blacklist, auto-ban rules, presets, runtime policy (tabbed) |
|
|
322
322
|
| Reverse proxy | Trust hops + CF / nginx / X-Forwarded-For client IP |
|
|
@@ -393,6 +393,61 @@ const r = await client.responses.create({
|
|
|
393
393
|
|
|
394
394
|
Supported: `input` string or message items (text), `instructions`, `stream`, `tools` (→ Grok tools when enabled), `previous_response_id` (context chain), `GET/DELETE /v1/responses/:id` (encrypted store).
|
|
395
395
|
|
|
396
|
+
### Images (OpenAI-shaped)
|
|
397
|
+
|
|
398
|
+
`POST /v1/images/generations` and `POST /v1/images/edits` return the official Images object. Requires **`imagesApi` + `tools`** and an **agent** (or admin) key — safe keys get **403**.
|
|
399
|
+
|
|
400
|
+
```bash
|
|
401
|
+
curl -s http://127.0.0.1:3847/v1/images/generations \
|
|
402
|
+
-H "Authorization: Bearer $API_KEY" \
|
|
403
|
+
-H "Content-Type: application/json" \
|
|
404
|
+
-d '{
|
|
405
|
+
"prompt": "a red square",
|
|
406
|
+
"n": 1,
|
|
407
|
+
"aspect_ratio": "16:9",
|
|
408
|
+
"response_format": "b64_json"
|
|
409
|
+
}'
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
```json
|
|
413
|
+
{
|
|
414
|
+
"created": 1710000000,
|
|
415
|
+
"data": [{ "b64_json": "iVBOR…" }],
|
|
416
|
+
"grok": { "provider": "grok-tools", "asset_ids": ["uuid"] }
|
|
417
|
+
}
|
|
418
|
+
```
|
|
419
|
+
|
|
420
|
+
| Field / topic | Behavior |
|
|
421
|
+
|---------------|----------|
|
|
422
|
+
| `response_format` | `b64_json` (default, same as GPT image models) or `url` |
|
|
423
|
+
| `size` | OpenAI pixels (`1024x1024`, …) **or** a Grok aspect (`16:9`) |
|
|
424
|
+
| `aspect_ratio` | Grok Imagine (`1:1`, `16:9`, …) — preferred over pixel sizes |
|
|
425
|
+
| `n` | 1–4; Grok has no batch generate — gateway may loop. `n=1` returns one image |
|
|
426
|
+
| `data[].url` | Gateway-local `/v1/media/assets/:id/content` (same API key). Not an OpenAI CDN |
|
|
427
|
+
| `grok` | Gateway extension (`provider`, `asset_ids`). OpenAI SDKs ignore unknown fields |
|
|
428
|
+
|
|
429
|
+
**How generate actually gets a file (v1.7.3+):** Grok Imagine always writes to
|
|
430
|
+
`~/.grok/sessions/<encodeURIComponent(sandbox-cwd)>/<session-uuid>/images/`
|
|
431
|
+
(e.g. `1.jpg`). The media-run sandbox has **no bash**, so the agent cannot `cp` that file to `output.png`. The gateway copies the newest image for **this run’s session only** into sandbox `output.jpg|png|webp` as soon as `image_gen` succeeds (and again when Grok exits).
|
|
432
|
+
|
|
433
|
+
Collect order:
|
|
434
|
+
|
|
435
|
+
1. Sandbox-root `output.png` / `output.jpg` / `output.webp` / `output.jpeg`
|
|
436
|
+
2. Recursive scan of the sandbox (realpath; never follows links out of the run dir)
|
|
437
|
+
3. This run’s Grok session `images/` only — never the rest of `~/.grok/sessions`
|
|
438
|
+
|
|
439
|
+
Prefer the newest file. Ignore `input.png`, `mask.png`, `frame.png`, `ref-*.png`. **502** `no_image_in_sandbox` only if nothing exists — that is **not** an `imagesApi` or API-key failure. Edit uses `--tools image_edit` + `input.png`. Video collect can also take this run’s session `videos/` / `images/` plus sandbox `output.mp4`.
|
|
440
|
+
|
|
441
|
+
```ts
|
|
442
|
+
const img = await client.images.generate({
|
|
443
|
+
model: 'grok-4.6',
|
|
444
|
+
prompt: 'a red square',
|
|
445
|
+
n: 1,
|
|
446
|
+
response_format: 'b64_json',
|
|
447
|
+
});
|
|
448
|
+
const b64 = img.data[0].b64_json;
|
|
449
|
+
```
|
|
450
|
+
|
|
396
451
|
### Anthropic Messages
|
|
397
452
|
|
|
398
453
|
```bash
|
|
@@ -513,6 +568,10 @@ POST /admin/api/queue/purge-dead
|
|
|
513
568
|
| POST | `/v1/responses` | OpenAI Responses (text + store) |
|
|
514
569
|
| GET/DELETE | `/v1/responses/:id` | Retrieve / soft-delete stored response |
|
|
515
570
|
| POST | `/v1/messages` | Anthropic Messages (Bearer or `x-api-key`) |
|
|
571
|
+
| POST | `/v1/images/generations` | OpenAI Images generate (`b64_json` / `url`; harvests session `images/` if sandbox is empty) |
|
|
572
|
+
| POST | `/v1/images/edits` | OpenAI Images edit (multipart `image` + optional `mask`) |
|
|
573
|
+
| GET | `/v1/media/assets/:id` | Stored asset metadata |
|
|
574
|
+
| GET | `/v1/media/assets/:id/content` | Stored asset bytes (same API key) |
|
|
516
575
|
| POST | `/v1/videos` | Grok video job (`seconds` 1–15; `voices[]` → `reference_to_video`) |
|
|
517
576
|
| GET | `/v1/videos/:id` | Poll video job |
|
|
518
577
|
| GET | `/admin/api/grok/inspect` | Local `grok inspect --json` snapshot |
|
|
@@ -42,6 +42,24 @@ export declare class GrokToolsMediaProvider implements MediaProvider {
|
|
|
42
42
|
private runGrokCollectMedia;
|
|
43
43
|
}
|
|
44
44
|
export declare function isIgnoredMediaName(name: string): boolean;
|
|
45
|
+
export declare function eventSessionId(ev: Record<string, unknown>): string | null;
|
|
46
|
+
export declare function isSuccessfulMediaToolEvent(ev: Record<string, unknown>): boolean;
|
|
47
|
+
/** ~/.grok/sessions/<encodeURIComponent(realpath(sandbox))> */
|
|
48
|
+
export declare function grokSessionGroupDir(sandboxAbs: string, grokHome?: string): string;
|
|
49
|
+
export declare function findRunSessionDir(sandboxAbs: string, sessionId?: string | null, grokHome?: string): Promise<string | null>;
|
|
50
|
+
export declare function listRunSessionMedia(opts: {
|
|
51
|
+
sandbox: string;
|
|
52
|
+
sessionId?: string | null;
|
|
53
|
+
collect: 'image' | 'video';
|
|
54
|
+
grokHome?: string;
|
|
55
|
+
}): Promise<Set<string>>;
|
|
56
|
+
export declare function copyNewestSessionMediaToSandbox(opts: {
|
|
57
|
+
sandbox: string;
|
|
58
|
+
sessionId?: string | null;
|
|
59
|
+
collect: 'image' | 'video';
|
|
60
|
+
grokHome?: string;
|
|
61
|
+
overwrite?: boolean;
|
|
62
|
+
}): Promise<string | null>;
|
|
45
63
|
/** Recursive sandbox scan. Never follows links out of `dir` (not ~/.grok/sessions). */
|
|
46
64
|
export declare function listMediaFiles(dir: string, exts: Set<string>): Promise<Set<string>>;
|
|
47
65
|
/** Prefer root output.*, then files new this run, then newest mtime in sandbox. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grok-tools.provider.d.ts","sourceRoot":"","sources":["../../../../src/services/media/providers/grok-tools.provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"grok-tools.provider.d.ts","sourceRoot":"","sources":["../../../../src/services/media/providers/grok-tools.provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,15 +5,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.grokToolsMediaProvider = exports.GrokToolsMediaProvider = void 0;
|
|
7
7
|
exports.isIgnoredMediaName = isIgnoredMediaName;
|
|
8
|
+
exports.eventSessionId = eventSessionId;
|
|
9
|
+
exports.isSuccessfulMediaToolEvent = isSuccessfulMediaToolEvent;
|
|
10
|
+
exports.grokSessionGroupDir = grokSessionGroupDir;
|
|
11
|
+
exports.findRunSessionDir = findRunSessionDir;
|
|
12
|
+
exports.listRunSessionMedia = listRunSessionMedia;
|
|
13
|
+
exports.copyNewestSessionMediaToSandbox = copyNewestSessionMediaToSandbox;
|
|
8
14
|
exports.listMediaFiles = listMediaFiles;
|
|
9
15
|
exports.selectCollectedMedia = selectCollectedMedia;
|
|
10
16
|
const node_fs_1 = require("node:fs");
|
|
11
17
|
const node_path_1 = __importDefault(require("node:path"));
|
|
12
18
|
const id_1 = require("../../../utils/id");
|
|
19
|
+
const grok_session_1 = require("../../../utils/grok-session");
|
|
13
20
|
const logger_1 = require("../../../utils/logger");
|
|
14
21
|
const exception_factory_1 = require("../../../exceptions/exception.factory");
|
|
15
22
|
const env_1 = require("../../../config/env");
|
|
16
23
|
const grok_cli_service_1 = require("../../grok-cli.service");
|
|
24
|
+
const grok_sessions_service_1 = require("../../grok-sessions.service");
|
|
17
25
|
const IMAGE_EXTS = new Set(['.png', '.jpg', '.jpeg', '.webp', '.gif']);
|
|
18
26
|
const VIDEO_EXTS = new Set(['.mp4', '.webm', '.mov', '.mkv']);
|
|
19
27
|
const IMAGE_OUTPUT_BASENAMES = [
|
|
@@ -188,6 +196,7 @@ class GrokToolsMediaProvider {
|
|
|
188
196
|
: env_1.env.GROK_ALWAYS_APPROVE;
|
|
189
197
|
const permissionMode = req.permissionMode ??
|
|
190
198
|
(alwaysApprove ? 'bypassPermissions' : null);
|
|
199
|
+
let sessionId;
|
|
191
200
|
try {
|
|
192
201
|
const available = await grok_cli_service_1.grokCliService.isAvailable();
|
|
193
202
|
if (!available) {
|
|
@@ -203,7 +212,7 @@ class GrokToolsMediaProvider {
|
|
|
203
212
|
collect: req.collect,
|
|
204
213
|
sandbox,
|
|
205
214
|
}, 'Media gen: spawning Grok with policy-aligned options');
|
|
206
|
-
for await (const
|
|
215
|
+
for await (const ev of grok_cli_service_1.grokCliService.stream({
|
|
207
216
|
prompt,
|
|
208
217
|
model: req.model || env_1.env.GROK_DEFAULT_MODEL,
|
|
209
218
|
cwd: sandbox,
|
|
@@ -216,8 +225,26 @@ class GrokToolsMediaProvider {
|
|
|
216
225
|
permissionMode,
|
|
217
226
|
noSubagents: true,
|
|
218
227
|
})) {
|
|
219
|
-
|
|
228
|
+
const rec = ev;
|
|
229
|
+
const sid = eventSessionId(rec);
|
|
230
|
+
if (sid)
|
|
231
|
+
sessionId = sid;
|
|
232
|
+
if (isSuccessfulMediaToolEvent(rec)) {
|
|
233
|
+
await copyNewestSessionMediaToSandbox({
|
|
234
|
+
sandbox,
|
|
235
|
+
sessionId,
|
|
236
|
+
collect: req.collect,
|
|
237
|
+
overwrite: true,
|
|
238
|
+
});
|
|
239
|
+
}
|
|
220
240
|
}
|
|
241
|
+
// After Grok exits: copy only if the sandbox still has no output.*
|
|
242
|
+
await copyNewestSessionMediaToSandbox({
|
|
243
|
+
sandbox,
|
|
244
|
+
sessionId,
|
|
245
|
+
collect: req.collect,
|
|
246
|
+
overwrite: false,
|
|
247
|
+
});
|
|
221
248
|
}
|
|
222
249
|
catch (err) {
|
|
223
250
|
logger_1.logger.warn({ err, sandbox, collect: req.collect }, 'Grok media gen failed');
|
|
@@ -226,6 +253,13 @@ class GrokToolsMediaProvider {
|
|
|
226
253
|
throw exception_factory_1.ExceptionFactory.mediaGenerationFailed(err instanceof Error ? err.message : 'Grok media generation failed');
|
|
227
254
|
}
|
|
228
255
|
const after = await listFn(sandbox);
|
|
256
|
+
const sessionFiles = await listRunSessionMedia({
|
|
257
|
+
sandbox,
|
|
258
|
+
sessionId,
|
|
259
|
+
collect: req.collect,
|
|
260
|
+
});
|
|
261
|
+
for (const f of sessionFiles)
|
|
262
|
+
after.add(f);
|
|
229
263
|
const candidates = await selectCollectedMedia({
|
|
230
264
|
sandbox,
|
|
231
265
|
before,
|
|
@@ -235,8 +269,8 @@ class GrokToolsMediaProvider {
|
|
|
235
269
|
});
|
|
236
270
|
if (!candidates.length) {
|
|
237
271
|
throw exception_factory_1.ExceptionFactory.mediaGenerationFailed(req.collect === 'video'
|
|
238
|
-
? 'Grok finished but no video file was found in the sandbox.'
|
|
239
|
-
: 'Grok finished but no image file was found in the sandbox
|
|
272
|
+
? 'Grok finished but no video file was found in the sandbox or this run\'s session.'
|
|
273
|
+
: 'Grok finished but no image file was found in the sandbox or this run\'s session images/.', {
|
|
240
274
|
reason: req.collect === 'video' ? 'no_video_in_sandbox' : 'no_image_in_sandbox',
|
|
241
275
|
});
|
|
242
276
|
}
|
|
@@ -282,6 +316,167 @@ function isIgnoredMediaName(name) {
|
|
|
282
316
|
return true;
|
|
283
317
|
return /^ref-.*\.png$/i.test(base);
|
|
284
318
|
}
|
|
319
|
+
const MEDIA_TOOL_NAMES = new Set([
|
|
320
|
+
'image_gen',
|
|
321
|
+
'image_edit',
|
|
322
|
+
'image_to_video',
|
|
323
|
+
'reference_to_video',
|
|
324
|
+
]);
|
|
325
|
+
function eventSessionId(ev) {
|
|
326
|
+
const data = ev.data && typeof ev.data === 'object'
|
|
327
|
+
? ev.data
|
|
328
|
+
: {};
|
|
329
|
+
for (const v of [ev.sessionId, ev.session_id, data.sessionId, data.session_id]) {
|
|
330
|
+
if (typeof v === 'string' && (0, grok_session_1.isUuid)(v))
|
|
331
|
+
return v;
|
|
332
|
+
}
|
|
333
|
+
return null;
|
|
334
|
+
}
|
|
335
|
+
function isSuccessfulMediaToolEvent(ev) {
|
|
336
|
+
const data = ev.data && typeof ev.data === 'object'
|
|
337
|
+
? ev.data
|
|
338
|
+
: {};
|
|
339
|
+
const t = String(ev.type || '').toLowerCase();
|
|
340
|
+
const name = String(ev.tool_name || ev.toolName || data.tool_name || data.toolName || data.name || '').toLowerCase();
|
|
341
|
+
const outcome = String(ev.outcome || ev.status || data.outcome || data.status || '').toLowerCase();
|
|
342
|
+
if (!MEDIA_TOOL_NAMES.has(name))
|
|
343
|
+
return false;
|
|
344
|
+
if (t !== 'tool_completed' && t !== 'tool_result')
|
|
345
|
+
return false;
|
|
346
|
+
return (outcome === 'success' ||
|
|
347
|
+
outcome === 'ok' ||
|
|
348
|
+
outcome === 'completed' ||
|
|
349
|
+
outcome === '');
|
|
350
|
+
}
|
|
351
|
+
/** ~/.grok/sessions/<encodeURIComponent(realpath(sandbox))> */
|
|
352
|
+
function grokSessionGroupDir(sandboxAbs, grokHome) {
|
|
353
|
+
const home = grokHome || (0, grok_sessions_service_1.resolveGrokHome)();
|
|
354
|
+
return node_path_1.default.join(home, 'sessions', encodeURIComponent(node_path_1.default.resolve(sandboxAbs)));
|
|
355
|
+
}
|
|
356
|
+
async function findRunSessionDir(sandboxAbs, sessionId, grokHome) {
|
|
357
|
+
const home = grokHome || (0, grok_sessions_service_1.resolveGrokHome)();
|
|
358
|
+
const sessionsRoot = node_path_1.default.join(home, 'sessions');
|
|
359
|
+
let sessionsReal;
|
|
360
|
+
try {
|
|
361
|
+
sessionsReal = await node_fs_1.promises.realpath(sessionsRoot);
|
|
362
|
+
}
|
|
363
|
+
catch {
|
|
364
|
+
return null;
|
|
365
|
+
}
|
|
366
|
+
const group = grokSessionGroupDir(sandboxAbs, home);
|
|
367
|
+
const pickIfSafe = async (dir) => {
|
|
368
|
+
try {
|
|
369
|
+
const real = await node_fs_1.promises.realpath(dir);
|
|
370
|
+
if (real === sessionsReal ||
|
|
371
|
+
!real.startsWith(sessionsReal + node_path_1.default.sep)) {
|
|
372
|
+
return null;
|
|
373
|
+
}
|
|
374
|
+
return real;
|
|
375
|
+
}
|
|
376
|
+
catch {
|
|
377
|
+
return null;
|
|
378
|
+
}
|
|
379
|
+
};
|
|
380
|
+
if (sessionId && (0, grok_session_1.isUuid)(sessionId)) {
|
|
381
|
+
const hit = await pickIfSafe(node_path_1.default.join(group, sessionId));
|
|
382
|
+
if (hit)
|
|
383
|
+
return hit;
|
|
384
|
+
}
|
|
385
|
+
let names = [];
|
|
386
|
+
try {
|
|
387
|
+
names = await node_fs_1.promises.readdir(group);
|
|
388
|
+
}
|
|
389
|
+
catch {
|
|
390
|
+
return null;
|
|
391
|
+
}
|
|
392
|
+
const uuids = names.filter((n) => (0, grok_session_1.isUuid)(n));
|
|
393
|
+
if (!uuids.length)
|
|
394
|
+
return null;
|
|
395
|
+
const ranked = await rankByMtimeNewest(uuids.map((id) => node_path_1.default.join(group, id)));
|
|
396
|
+
for (const dir of ranked) {
|
|
397
|
+
const hit = await pickIfSafe(dir);
|
|
398
|
+
if (hit)
|
|
399
|
+
return hit;
|
|
400
|
+
}
|
|
401
|
+
return null;
|
|
402
|
+
}
|
|
403
|
+
async function listRunSessionMedia(opts) {
|
|
404
|
+
const out = new Set();
|
|
405
|
+
const sessionDir = await findRunSessionDir(opts.sandbox, opts.sessionId, opts.grokHome);
|
|
406
|
+
if (!sessionDir)
|
|
407
|
+
return out;
|
|
408
|
+
const exts = opts.collect === 'video' ? VIDEO_EXTS : IMAGE_EXTS;
|
|
409
|
+
const subdirs = opts.collect === 'video' ? ['videos', 'images'] : ['images'];
|
|
410
|
+
for (const sub of subdirs) {
|
|
411
|
+
const listed = await listMediaFiles(node_path_1.default.join(sessionDir, sub), exts);
|
|
412
|
+
for (const f of listed) {
|
|
413
|
+
try {
|
|
414
|
+
const real = await node_fs_1.promises.realpath(f);
|
|
415
|
+
if (real === sessionDir || real.startsWith(sessionDir + node_path_1.default.sep)) {
|
|
416
|
+
out.add(real);
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
catch {
|
|
420
|
+
/* skip unreadable / dangling */
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
return out;
|
|
425
|
+
}
|
|
426
|
+
async function copyNewestSessionMediaToSandbox(opts) {
|
|
427
|
+
if (!opts.overwrite) {
|
|
428
|
+
const existing = await preferredSandboxOutput(opts.sandbox, opts.collect);
|
|
429
|
+
if (existing)
|
|
430
|
+
return existing;
|
|
431
|
+
}
|
|
432
|
+
const files = [...(await listRunSessionMedia(opts))];
|
|
433
|
+
if (!files.length)
|
|
434
|
+
return null;
|
|
435
|
+
const newest = (await rankByMtimeNewest(files))[0];
|
|
436
|
+
if (!newest)
|
|
437
|
+
return null;
|
|
438
|
+
const ext = node_path_1.default.extname(newest).toLowerCase();
|
|
439
|
+
const destName = opts.collect === 'video'
|
|
440
|
+
? 'output.mp4'
|
|
441
|
+
: ext === '.jpg' || ext === '.jpeg'
|
|
442
|
+
? 'output.jpg'
|
|
443
|
+
: ext === '.webp'
|
|
444
|
+
? 'output.webp'
|
|
445
|
+
: 'output.png';
|
|
446
|
+
const dest = node_path_1.default.join(opts.sandbox, destName);
|
|
447
|
+
try {
|
|
448
|
+
await node_fs_1.promises.copyFile(newest, dest);
|
|
449
|
+
const others = opts.collect === 'video' ? VIDEO_OUTPUT_BASENAMES : IMAGE_OUTPUT_BASENAMES;
|
|
450
|
+
for (const name of others) {
|
|
451
|
+
if (name === destName)
|
|
452
|
+
continue;
|
|
453
|
+
await node_fs_1.promises.unlink(node_path_1.default.join(opts.sandbox, name)).catch(() => undefined);
|
|
454
|
+
}
|
|
455
|
+
logger_1.logger.info({ src: newest, dest, collect: opts.collect }, 'Media gen: copied session artifact into sandbox');
|
|
456
|
+
return dest;
|
|
457
|
+
}
|
|
458
|
+
catch (err) {
|
|
459
|
+
logger_1.logger.warn({ err, src: newest, dest }, 'Media gen: failed to copy session artifact');
|
|
460
|
+
return newest;
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
async function preferredSandboxOutput(sandbox, collect) {
|
|
464
|
+
const after = await listMediaFiles(sandbox, collect === 'video' ? VIDEO_EXTS : IMAGE_EXTS);
|
|
465
|
+
let sandboxReal;
|
|
466
|
+
try {
|
|
467
|
+
sandboxReal = await node_fs_1.promises.realpath(sandbox);
|
|
468
|
+
}
|
|
469
|
+
catch {
|
|
470
|
+
sandboxReal = node_path_1.default.resolve(sandbox);
|
|
471
|
+
}
|
|
472
|
+
const names = collect === 'video' ? VIDEO_OUTPUT_BASENAMES : IMAGE_OUTPUT_BASENAMES;
|
|
473
|
+
for (const name of names) {
|
|
474
|
+
const hit = rootOutputPath(sandboxReal, after, name);
|
|
475
|
+
if (hit)
|
|
476
|
+
return hit;
|
|
477
|
+
}
|
|
478
|
+
return null;
|
|
479
|
+
}
|
|
285
480
|
function isInsideSandbox(sandboxReal, candidateReal) {
|
|
286
481
|
return (candidateReal === sandboxReal ||
|
|
287
482
|
candidateReal.startsWith(sandboxReal + node_path_1.default.sep));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grok-tools.provider.js","sourceRoot":"","sources":["../../../../src/services/media/providers/grok-tools.provider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"grok-tools.provider.js","sourceRoot":"","sources":["../../../../src/services/media/providers/grok-tools.provider.ts"],"names":[],"mappings":"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"}
|