@vibeframe/cli 0.106.4 → 0.106.6
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/dist/commands/_shared/host-integration.d.ts +51 -0
- package/dist/commands/_shared/host-integration.test.d.ts +1 -0
- package/dist/commands/_shared/init-templates.d.ts +1 -1
- package/dist/commands/host.d.ts +8 -0
- package/dist/commands/host.test.d.ts +1 -0
- package/dist/index.js +1108 -512
- package/dist/tools/adapters/mcp.js +5 -1
- package/dist/tools/define-tool.js +1 -0
- package/dist/tools/manifest/index.js +57 -23
- package/package.json +4 -4
|
@@ -159,7 +159,11 @@ function buildMcpDispatcher(manifest) {
|
|
|
159
159
|
workingDirectory: process.cwd(),
|
|
160
160
|
surface: "mcp"
|
|
161
161
|
});
|
|
162
|
-
const text = result.success ? JSON.stringify({ success: true, ...result.data }) :
|
|
162
|
+
const text = result.success ? JSON.stringify({ success: true, ...result.data }) : result.data ? JSON.stringify({
|
|
163
|
+
success: false,
|
|
164
|
+
error: result.error ?? "unknown error",
|
|
165
|
+
...result.data
|
|
166
|
+
}) : `${name} failed: ${result.error ?? "unknown error"}`;
|
|
163
167
|
return { content: [{ type: "text", text }] };
|
|
164
168
|
} catch (error) {
|
|
165
169
|
const msg = error instanceof Error ? error.message : String(error);
|
|
@@ -9,6 +9,7 @@ var EXPLICIT_COMMAND_METADATA = {
|
|
|
9
9
|
build: { surface: "public", note: "Primary storyboard-to-video build engine." },
|
|
10
10
|
render: { surface: "public", note: "Project render entrypoint." },
|
|
11
11
|
doctor: { surface: "public", note: "System and provider health check." },
|
|
12
|
+
host: { surface: "public", note: "Codex, Claude, and Cursor app integration setup." },
|
|
12
13
|
guide: { surface: "public", note: "Workflow chooser and first-run guidance." },
|
|
13
14
|
demo: { surface: "advanced", note: "Smoke-test/demo helper, not a core workflow." },
|
|
14
15
|
run: { surface: "agent", note: "Automation surface for YAML pipelines." },
|
|
@@ -7733,6 +7733,18 @@ a host agent's built-in image/audio generation tool for VibeFrame project
|
|
|
7733
7733
|
assets unless the user explicitly requests an external, non-VibeFrame
|
|
7734
7734
|
asset.
|
|
7735
7735
|
|
|
7736
|
+
## App host setup
|
|
7737
|
+
|
|
7738
|
+
VibeFrame is CLI-first, not terminal-only. Codex, Claude Code, and Cursor can
|
|
7739
|
+
drive this project through shell commands, and app hosts can use the MCP server
|
|
7740
|
+
as a typed tool surface.
|
|
7741
|
+
|
|
7742
|
+
\`\`\`bash
|
|
7743
|
+
vibe host setup all # print Codex/Claude/Cursor snippets
|
|
7744
|
+
vibe host setup all --write # write project/app config
|
|
7745
|
+
vibe host doctor all --json # verify readiness
|
|
7746
|
+
\`\`\`
|
|
7747
|
+
|
|
7736
7748
|
## Skills \u2014 USE THESE FIRST
|
|
7737
7749
|
|
|
7738
7750
|
@SKILL.md
|
|
@@ -50485,6 +50497,7 @@ var EXPLICIT_COMMAND_METADATA = {
|
|
|
50485
50497
|
build: { surface: "public", note: "Primary storyboard-to-video build engine." },
|
|
50486
50498
|
render: { surface: "public", note: "Project render entrypoint." },
|
|
50487
50499
|
doctor: { surface: "public", note: "System and provider health check." },
|
|
50500
|
+
host: { surface: "public", note: "Codex, Claude, and Cursor app integration setup." },
|
|
50488
50501
|
guide: { surface: "public", note: "Workflow chooser and first-run guidance." },
|
|
50489
50502
|
demo: { surface: "advanced", note: "Smoke-test/demo helper, not a core workflow." },
|
|
50490
50503
|
run: { surface: "agent", note: "Automation surface for YAML pipelines." },
|
|
@@ -52307,6 +52320,8 @@ var SCENE_PRESETS2 = [
|
|
|
52307
52320
|
"kinetic-type",
|
|
52308
52321
|
"product-shot"
|
|
52309
52322
|
];
|
|
52323
|
+
var PROJECT_DIR_DESCRIPTION = "Project directory. Defaults to the surface's cwd; in MCP hosts, relative paths resolve under the configured server workspace.";
|
|
52324
|
+
var INIT_DIR_DESCRIPTION = "Project directory to create. Prefer a project name or workspace-relative path; in MCP hosts, relative paths resolve under the configured server workspace. Do not use /tmp or /home/claude unless the user explicitly asks.";
|
|
52310
52325
|
var sceneStylesSchema = external_exports.object({
|
|
52311
52326
|
name: external_exports.string().optional().describe("Style name or slug (e.g. 'Swiss Pulse', 'swiss-pulse'). Omit to list all 8.")
|
|
52312
52327
|
});
|
|
@@ -52366,7 +52381,7 @@ var sceneStylesTool = defineTool({
|
|
|
52366
52381
|
}
|
|
52367
52382
|
});
|
|
52368
52383
|
var sceneInitSchema = external_exports.object({
|
|
52369
|
-
dir: external_exports.string().describe(
|
|
52384
|
+
dir: external_exports.string().describe(INIT_DIR_DESCRIPTION),
|
|
52370
52385
|
name: external_exports.string().optional().describe("Project name. Defaults to the directory basename."),
|
|
52371
52386
|
aspect: external_exports.enum(["16:9", "9:16", "1:1", "4:5"]).optional().describe("Aspect ratio. Default 16:9."),
|
|
52372
52387
|
duration: external_exports.number().optional().describe("Default root composition duration in seconds. Default 10.")
|
|
@@ -52413,7 +52428,7 @@ var sceneAddSchema = external_exports.object({
|
|
|
52413
52428
|
visuals: external_exports.string().optional().describe("Image prompt \u2014 generates assets/scene-<id>.png via the configured image provider."),
|
|
52414
52429
|
headline: external_exports.string().optional().describe("Visible headline text. Defaults to the humanised scene name."),
|
|
52415
52430
|
kicker: external_exports.string().optional().describe("Small label above the headline (used by 'explainer' and 'product-shot' presets)."),
|
|
52416
|
-
projectDir: external_exports.string().optional().describe(
|
|
52431
|
+
projectDir: external_exports.string().optional().describe(PROJECT_DIR_DESCRIPTION),
|
|
52417
52432
|
insertInto: external_exports.string().optional().describe("Root composition file (relative to projectDir). Default 'index.html'."),
|
|
52418
52433
|
imageProvider: external_exports.enum(["gemini", "openai"]).optional().describe("Image provider for visuals. Default 'gemini'."),
|
|
52419
52434
|
voice: external_exports.string().optional().describe("ElevenLabs voice id or name."),
|
|
@@ -52474,7 +52489,7 @@ var sceneAddTool = defineTool({
|
|
|
52474
52489
|
}
|
|
52475
52490
|
});
|
|
52476
52491
|
var sceneLintSchema = external_exports.object({
|
|
52477
|
-
projectDir: external_exports.string().optional().describe(
|
|
52492
|
+
projectDir: external_exports.string().optional().describe(PROJECT_DIR_DESCRIPTION),
|
|
52478
52493
|
root: external_exports.string().optional().describe("Root composition file relative to projectDir. Default 'index.html'."),
|
|
52479
52494
|
fix: external_exports.boolean().optional().describe('Apply mechanical auto-fixes (currently: missing class="clip").')
|
|
52480
52495
|
});
|
|
@@ -52532,7 +52547,7 @@ var sceneLintTool = defineTool({
|
|
|
52532
52547
|
}
|
|
52533
52548
|
});
|
|
52534
52549
|
var sceneRepairSchema = external_exports.object({
|
|
52535
|
-
projectDir: external_exports.string().optional().describe(
|
|
52550
|
+
projectDir: external_exports.string().optional().describe(PROJECT_DIR_DESCRIPTION),
|
|
52536
52551
|
root: external_exports.string().optional().describe("Root composition file relative to projectDir. Default 'index.html'."),
|
|
52537
52552
|
dryRun: external_exports.boolean().optional().describe("Preview deterministic repairs without writing files.")
|
|
52538
52553
|
});
|
|
@@ -52561,7 +52576,7 @@ var sceneRepairTool = defineTool({
|
|
|
52561
52576
|
}
|
|
52562
52577
|
});
|
|
52563
52578
|
var sceneRenderSchema = external_exports.object({
|
|
52564
|
-
projectDir: external_exports.string().optional().describe(
|
|
52579
|
+
projectDir: external_exports.string().optional().describe(PROJECT_DIR_DESCRIPTION),
|
|
52565
52580
|
root: external_exports.string().optional().describe("Root composition file relative to projectDir. Default 'index.html'."),
|
|
52566
52581
|
beat: external_exports.string().optional().describe("Render only one storyboard beat using a temporary root."),
|
|
52567
52582
|
output: external_exports.string().optional().describe("Output file path (relative paths resolve against projectDir)."),
|
|
@@ -52616,7 +52631,7 @@ var sceneRenderTool = defineTool({
|
|
|
52616
52631
|
});
|
|
52617
52632
|
var sceneBuildSchema = external_exports.object({
|
|
52618
52633
|
projectDir: external_exports.string().optional().describe(
|
|
52619
|
-
"Project directory containing STORYBOARD.md, DESIGN.md, index.html. Defaults to the surface's cwd."
|
|
52634
|
+
"Project directory containing STORYBOARD.md, DESIGN.md, index.html. Defaults to the surface's cwd; in MCP hosts, relative paths resolve under the configured server workspace."
|
|
52620
52635
|
),
|
|
52621
52636
|
stage: external_exports.enum(["assets", "compose", "sync", "render", "all"]).optional().describe("Build stage to run. Default all."),
|
|
52622
52637
|
beat: external_exports.string().optional().describe("Restrict asset/compose work to one beat id."),
|
|
@@ -52731,7 +52746,7 @@ var sceneBuildTool = defineTool({
|
|
|
52731
52746
|
});
|
|
52732
52747
|
var sceneInstallSkillSchema = external_exports.object({
|
|
52733
52748
|
projectDir: external_exports.string().describe(
|
|
52734
|
-
"Project directory containing STORYBOARD.md / DESIGN.md. Required to keep cross-host calls explicit
|
|
52749
|
+
"Project directory containing STORYBOARD.md / DESIGN.md. Required to keep cross-host calls explicit; in MCP hosts, relative paths resolve under the configured server workspace."
|
|
52735
52750
|
),
|
|
52736
52751
|
host: external_exports.enum(["claude-code", "cursor", "auto", "all"]).optional().describe(
|
|
52737
52752
|
"Host layout target. 'auto' (default) detects installed agent hosts; 'all' writes every layout; 'claude-code' / 'cursor' force a single host. Codex / Aider read the universal SKILL.md via AGENTS.md so don't need a host-specific layout."
|
|
@@ -52781,7 +52796,7 @@ var sceneInstallSkillTool = defineTool({
|
|
|
52781
52796
|
});
|
|
52782
52797
|
var sceneComposePromptsSchema = external_exports.object({
|
|
52783
52798
|
projectDir: external_exports.string().describe(
|
|
52784
|
-
"Project directory containing STORYBOARD.md / DESIGN.md. Required to keep cross-host calls explicit."
|
|
52799
|
+
"Project directory containing STORYBOARD.md / DESIGN.md. Required to keep cross-host calls explicit; in MCP hosts, relative paths resolve under the configured server workspace."
|
|
52785
52800
|
),
|
|
52786
52801
|
beat: external_exports.string().optional().describe(
|
|
52787
52802
|
"Restrict the plan to a single beat by id (e.g. 'hook', '1'). Omit to emit every beat in the storyboard."
|
|
@@ -55082,13 +55097,14 @@ function sanitizeFileSegment2(value) {
|
|
|
55082
55097
|
}
|
|
55083
55098
|
|
|
55084
55099
|
// src/tools/manifest/inspect.ts
|
|
55100
|
+
var PROJECT_DIR_DESCRIPTION2 = "Project directory. Defaults to the surface's cwd; in MCP hosts, relative paths resolve under the configured server workspace.";
|
|
55085
55101
|
var inspectProjectTool = defineTool({
|
|
55086
55102
|
name: "inspect_project",
|
|
55087
55103
|
category: "analyze",
|
|
55088
55104
|
cost: "free",
|
|
55089
55105
|
description: "Local project inspection: checks STORYBOARD.md, DESIGN.md, config, build-report, scene lint, composition files, and referenced assets. Writes review-report.json by default.",
|
|
55090
55106
|
schema: external_exports.object({
|
|
55091
|
-
projectDir: external_exports.string().optional().describe(
|
|
55107
|
+
projectDir: external_exports.string().optional().describe(PROJECT_DIR_DESCRIPTION2),
|
|
55092
55108
|
beat: external_exports.string().optional().describe("Inspect only one storyboard beat where beat-scoped checks apply."),
|
|
55093
55109
|
outputPath: external_exports.string().optional().describe("Optional review report path. Defaults to <project>/review-report.json."),
|
|
55094
55110
|
report: external_exports.boolean().optional().describe("Write review-report.json. Default true.")
|
|
@@ -55103,7 +55119,11 @@ var inspectProjectTool = defineTool({
|
|
|
55103
55119
|
});
|
|
55104
55120
|
return {
|
|
55105
55121
|
success: result.status !== "fail",
|
|
55106
|
-
data:
|
|
55122
|
+
data: {
|
|
55123
|
+
...result,
|
|
55124
|
+
workingDirectory: ctx.workingDirectory,
|
|
55125
|
+
projectDir
|
|
55126
|
+
},
|
|
55107
55127
|
error: result.status === "fail" ? `${result.issues.filter((issue) => issue.severity === "error").length} project inspection error(s)` : void 0,
|
|
55108
55128
|
humanLines: [
|
|
55109
55129
|
`${result.status === "pass" ? "\u2705" : result.status === "warn" ? "\u26A0\uFE0F" : "\u274C"} Project inspection ${result.status} \u2014 score ${result.score}/100`,
|
|
@@ -55118,7 +55138,7 @@ var inspectRenderTool = defineTool({
|
|
|
55118
55138
|
cost: "low",
|
|
55119
55139
|
description: "Render inspection: runs cheap local video checks by default, optionally adds Gemini AI review with ai: true, and writes review-report.json by default.",
|
|
55120
55140
|
schema: external_exports.object({
|
|
55121
|
-
projectDir: external_exports.string().optional().describe(
|
|
55141
|
+
projectDir: external_exports.string().optional().describe(PROJECT_DIR_DESCRIPTION2),
|
|
55122
55142
|
beat: external_exports.string().optional().describe("Inspect a render for one storyboard beat."),
|
|
55123
55143
|
videoPath: external_exports.string().optional().describe("Rendered video path. Defaults to build-report outputPath or latest renders/* video."),
|
|
55124
55144
|
outputPath: external_exports.string().optional().describe("Optional review report path. Defaults to <project>/review-report.json."),
|
|
@@ -55141,7 +55161,11 @@ var inspectRenderTool = defineTool({
|
|
|
55141
55161
|
});
|
|
55142
55162
|
return {
|
|
55143
55163
|
success: true,
|
|
55144
|
-
data:
|
|
55164
|
+
data: {
|
|
55165
|
+
...result2,
|
|
55166
|
+
workingDirectory: ctx.workingDirectory,
|
|
55167
|
+
projectDir
|
|
55168
|
+
},
|
|
55145
55169
|
humanLines: [
|
|
55146
55170
|
`Render inspection dry-run \u2014 ${result2.videoPath ? "render found" : "render missing"}`,
|
|
55147
55171
|
...result2.reportPath ? [`report: ${result2.reportPath}`] : []
|
|
@@ -55159,7 +55183,11 @@ var inspectRenderTool = defineTool({
|
|
|
55159
55183
|
});
|
|
55160
55184
|
return {
|
|
55161
55185
|
success: result.status !== "fail",
|
|
55162
|
-
data:
|
|
55186
|
+
data: {
|
|
55187
|
+
...result,
|
|
55188
|
+
workingDirectory: ctx.workingDirectory,
|
|
55189
|
+
projectDir
|
|
55190
|
+
},
|
|
55163
55191
|
error: result.status === "fail" ? `${result.issues.filter((issue) => issue.severity === "error").length} render inspection error(s)` : void 0,
|
|
55164
55192
|
humanLines: [
|
|
55165
55193
|
`${result.status === "pass" ? "\u2705" : result.status === "warn" ? "\u26A0\uFE0F" : "\u274C"} Render inspection ${result.status} \u2014 score ${result.score}/100`,
|
|
@@ -55535,7 +55563,7 @@ var generateBackgroundTool = defineTool({
|
|
|
55535
55563
|
schema: external_exports.object({
|
|
55536
55564
|
description: external_exports.string().describe("Background description / image prompt."),
|
|
55537
55565
|
aspect: external_exports.enum(["16:9", "9:16", "1:1"]).optional().describe("Aspect ratio. Default '16:9'."),
|
|
55538
|
-
output: external_exports.string().optional().describe("Output PNG path. Relative paths resolve against the surface's cwd.")
|
|
55566
|
+
output: external_exports.string().optional().describe("Output PNG path. Relative paths resolve against the surface's cwd; in MCP hosts, that is the configured server workspace.")
|
|
55539
55567
|
}),
|
|
55540
55568
|
async execute(args) {
|
|
55541
55569
|
const result = await executeBackground(args);
|
|
@@ -56072,8 +56100,9 @@ function stripUndefined3(value) {
|
|
|
56072
56100
|
|
|
56073
56101
|
// src/tools/manifest/storyboard.ts
|
|
56074
56102
|
init_build_plan();
|
|
56103
|
+
var PROJECT_DIR_DESCRIPTION3 = "Project directory. Defaults to the surface's cwd; in MCP hosts, relative paths resolve under the configured server workspace.";
|
|
56075
56104
|
var projectDirSchema = external_exports.object({
|
|
56076
|
-
projectDir: external_exports.string().optional().describe(
|
|
56105
|
+
projectDir: external_exports.string().optional().describe(PROJECT_DIR_DESCRIPTION3)
|
|
56077
56106
|
});
|
|
56078
56107
|
async function readStoryboard(projectDir) {
|
|
56079
56108
|
const path2 = resolve52(projectDir, "STORYBOARD.md");
|
|
@@ -56142,7 +56171,7 @@ var storyboardGetTool = defineTool({
|
|
|
56142
56171
|
cost: "free",
|
|
56143
56172
|
description: "Return one STORYBOARD.md beat as structured data.",
|
|
56144
56173
|
schema: external_exports.object({
|
|
56145
|
-
projectDir: external_exports.string().optional().describe(
|
|
56174
|
+
projectDir: external_exports.string().optional().describe(PROJECT_DIR_DESCRIPTION3),
|
|
56146
56175
|
beat: external_exports.string().describe("Beat id to return.")
|
|
56147
56176
|
}),
|
|
56148
56177
|
async execute(args, ctx) {
|
|
@@ -56164,7 +56193,7 @@ var storyboardSetTool = defineTool({
|
|
|
56164
56193
|
cost: "free",
|
|
56165
56194
|
description: "Set or unset one cue on one beat in STORYBOARD.md.",
|
|
56166
56195
|
schema: external_exports.object({
|
|
56167
|
-
projectDir: external_exports.string().optional().describe(
|
|
56196
|
+
projectDir: external_exports.string().optional().describe(PROJECT_DIR_DESCRIPTION3),
|
|
56168
56197
|
beat: external_exports.string().describe("Beat id to mutate."),
|
|
56169
56198
|
key: external_exports.string().describe("Cue key to set."),
|
|
56170
56199
|
value: external_exports.string().optional().describe("Cue value. Required unless unset is true."),
|
|
@@ -56200,7 +56229,7 @@ var storyboardMoveTool = defineTool({
|
|
|
56200
56229
|
cost: "free",
|
|
56201
56230
|
description: "Move one beat after another beat in STORYBOARD.md.",
|
|
56202
56231
|
schema: external_exports.object({
|
|
56203
|
-
projectDir: external_exports.string().optional().describe(
|
|
56232
|
+
projectDir: external_exports.string().optional().describe(PROJECT_DIR_DESCRIPTION3),
|
|
56204
56233
|
beat: external_exports.string().describe("Beat id to move."),
|
|
56205
56234
|
after: external_exports.string().describe("Beat id that should precede the moved beat.")
|
|
56206
56235
|
}),
|
|
@@ -56230,7 +56259,7 @@ var storyboardReviseTool = defineTool({
|
|
|
56230
56259
|
cost: "low",
|
|
56231
56260
|
description: "Revise an existing STORYBOARD.md from a natural-language request. Reads project context, validates the revised storyboard, and writes unless dryRun is true.",
|
|
56232
56261
|
schema: external_exports.object({
|
|
56233
|
-
projectDir: external_exports.string().optional().describe(
|
|
56262
|
+
projectDir: external_exports.string().optional().describe(PROJECT_DIR_DESCRIPTION3),
|
|
56234
56263
|
request: external_exports.string().describe("Revision request, e.g. 'make the hook punchier and shorten to 30 seconds'."),
|
|
56235
56264
|
durationSec: external_exports.number().optional().describe("Target total duration in seconds."),
|
|
56236
56265
|
composer: external_exports.enum(["claude", "openai", "gemini"]).optional().describe("Revision LLM provider. Defaults to project config or available API keys."),
|
|
@@ -56261,7 +56290,7 @@ var planTool = defineTool({
|
|
|
56261
56290
|
cost: "free",
|
|
56262
56291
|
description: "Read STORYBOARD.md and return the build plan, missing artifacts, provider needs, and estimated cost.",
|
|
56263
56292
|
schema: external_exports.object({
|
|
56264
|
-
projectDir: external_exports.string().optional().describe(
|
|
56293
|
+
projectDir: external_exports.string().optional().describe(PROJECT_DIR_DESCRIPTION3),
|
|
56265
56294
|
stage: external_exports.enum(["assets", "compose", "sync", "render", "all"]).optional().describe("Stage to plan. Default all."),
|
|
56266
56295
|
beat: external_exports.string().optional().describe("Restrict the plan to one beat id."),
|
|
56267
56296
|
mode: external_exports.enum(["agent", "batch", "auto"]).optional().describe("Build mode. Default auto."),
|
|
@@ -60821,6 +60850,7 @@ var guideTools = [guideTool];
|
|
|
60821
60850
|
// src/tools/manifest/status.ts
|
|
60822
60851
|
import { resolve as resolve62 } from "node:path";
|
|
60823
60852
|
init_status_jobs();
|
|
60853
|
+
var PROJECT_DIR_DESCRIPTION4 = "Project directory. Defaults to the surface's cwd; in MCP hosts, relative paths resolve under the configured server workspace.";
|
|
60824
60854
|
var statusJobTool = defineTool({
|
|
60825
60855
|
name: "status_job",
|
|
60826
60856
|
category: "status",
|
|
@@ -60828,7 +60858,7 @@ var statusJobTool = defineTool({
|
|
|
60828
60858
|
description: "Read one local async job record and optionally refresh supported provider status. Supports Runway/Kling video and Replicate music live checks.",
|
|
60829
60859
|
schema: external_exports.object({
|
|
60830
60860
|
jobId: external_exports.string().describe("Local job id returned by a no-wait command."),
|
|
60831
|
-
projectDir: external_exports.string().optional().describe("Project directory containing .vibeframe/jobs. Defaults to nearest project root."),
|
|
60861
|
+
projectDir: external_exports.string().optional().describe("Project directory containing .vibeframe/jobs. Defaults to nearest project root; in MCP hosts, relative paths resolve under the configured server workspace."),
|
|
60832
60862
|
refresh: external_exports.boolean().optional().describe("Call provider status APIs when supported. Default true."),
|
|
60833
60863
|
wait: external_exports.boolean().optional().describe("Wait for completion when supported."),
|
|
60834
60864
|
output: external_exports.string().optional().describe("Download result media to this path when complete.")
|
|
@@ -60862,7 +60892,7 @@ var statusProjectTool = defineTool({
|
|
|
60862
60892
|
cost: "free",
|
|
60863
60893
|
description: "Summarize build-report.json, review-report.json, and local async job records for a VibeFrame project.",
|
|
60864
60894
|
schema: external_exports.object({
|
|
60865
|
-
projectDir: external_exports.string().optional().describe(
|
|
60895
|
+
projectDir: external_exports.string().optional().describe(PROJECT_DIR_DESCRIPTION4),
|
|
60866
60896
|
refresh: external_exports.boolean().optional().describe("Refresh active supported jobs before summarizing. Default false.")
|
|
60867
60897
|
}),
|
|
60868
60898
|
async execute(args, ctx) {
|
|
@@ -60870,7 +60900,11 @@ var statusProjectTool = defineTool({
|
|
|
60870
60900
|
const result = await inspectProjectStatus(projectDir, { refresh: args.refresh === true });
|
|
60871
60901
|
return {
|
|
60872
60902
|
success: true,
|
|
60873
|
-
data:
|
|
60903
|
+
data: {
|
|
60904
|
+
...result,
|
|
60905
|
+
workingDirectory: ctx.workingDirectory,
|
|
60906
|
+
projectDir
|
|
60907
|
+
},
|
|
60874
60908
|
humanLines: [
|
|
60875
60909
|
`Project status: ${result.status} (${result.currentStage}), ${result.jobs.active} active job(s), ${result.jobs.failed} failed job(s)`,
|
|
60876
60910
|
...result.build ? [`build: ${result.build.phase ?? "unknown"}`] : [],
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vibeframe/cli",
|
|
3
|
-
"version": "0.106.
|
|
4
|
-
"description": "VibeFrame CLI -
|
|
3
|
+
"version": "0.106.6",
|
|
4
|
+
"description": "VibeFrame CLI - agentic video workflow runtime",
|
|
5
5
|
"private": false,
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
@@ -83,8 +83,8 @@
|
|
|
83
83
|
"tsx": "^4.21.0",
|
|
84
84
|
"typescript": "^5.3.3",
|
|
85
85
|
"vitest": "^1.2.2",
|
|
86
|
-
"@vibeframe/ai-providers": "0.106.
|
|
87
|
-
"@vibeframe/core": "0.106.
|
|
86
|
+
"@vibeframe/ai-providers": "0.106.6",
|
|
87
|
+
"@vibeframe/core": "0.106.6"
|
|
88
88
|
},
|
|
89
89
|
"engines": {
|
|
90
90
|
"node": ">=20"
|