gooseworks 0.3.14 → 0.3.15
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/log.d.ts +15 -0
- package/dist/commands/log.d.ts.map +1 -0
- package/dist/commands/log.js +121 -0
- package/dist/commands/log.js.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/skills/master-skill.d.ts.map +1 -1
- package/dist/skills/master-skill.js +28 -1
- package/dist/skills/master-skill.js.map +1 -1
- package/package.json +1 -1
- package/skills/goose-ads/SKILL.md +4 -0
- package/skills/goose-video/SKILL.md +24 -1
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
/**
|
|
3
|
+
* `gooseworks log` — record one diagnostic event for the current skill/CLI run
|
|
4
|
+
* (GOOSE-2862). This is the SHELL-side writer, alongside the agent's
|
|
5
|
+
* `log_cli_event` MCP tool and the Python `gw_log()` helper in `media_proxy.py`.
|
|
6
|
+
* All three POST to `/api/internal/cli-logs` and land in the same `cli_run_logs`
|
|
7
|
+
* table, grouped by run id.
|
|
8
|
+
*
|
|
9
|
+
* Use it in a skill's shell steps whenever something is off — an API is failing,
|
|
10
|
+
* a required input/asset is missing, an instruction is ambiguous, a step is
|
|
11
|
+
* blocked — or just to mark progress. Best-effort: a POST failure warns and
|
|
12
|
+
* exits 0 so it never breaks the script that called it.
|
|
13
|
+
*/
|
|
14
|
+
export declare const logCommand: Command;
|
|
15
|
+
//# sourceMappingURL=log.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/commands/log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,UAAU,SA6FpB,CAAC"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.logCommand = void 0;
|
|
37
|
+
const commander_1 = require("commander");
|
|
38
|
+
const credentials_1 = require("../auth/credentials");
|
|
39
|
+
const http_1 = require("../utils/http");
|
|
40
|
+
const logger = __importStar(require("../utils/logger"));
|
|
41
|
+
/**
|
|
42
|
+
* `gooseworks log` — record one diagnostic event for the current skill/CLI run
|
|
43
|
+
* (GOOSE-2862). This is the SHELL-side writer, alongside the agent's
|
|
44
|
+
* `log_cli_event` MCP tool and the Python `gw_log()` helper in `media_proxy.py`.
|
|
45
|
+
* All three POST to `/api/internal/cli-logs` and land in the same `cli_run_logs`
|
|
46
|
+
* table, grouped by run id.
|
|
47
|
+
*
|
|
48
|
+
* Use it in a skill's shell steps whenever something is off — an API is failing,
|
|
49
|
+
* a required input/asset is missing, an instruction is ambiguous, a step is
|
|
50
|
+
* blocked — or just to mark progress. Best-effort: a POST failure warns and
|
|
51
|
+
* exits 0 so it never breaks the script that called it.
|
|
52
|
+
*/
|
|
53
|
+
exports.logCommand = new commander_1.Command('log')
|
|
54
|
+
.description('Record a diagnostic event for the current run (broken API, missing input, ' +
|
|
55
|
+
'confusion, or a progress note). Visible to the GooseWorks team.')
|
|
56
|
+
.argument('<message>', 'Plain-language description of what happened / what is wrong')
|
|
57
|
+
.option('--event-type <type>', 'info | step | generation | api_failure | error | blocker | missing_input | confusion', 'info')
|
|
58
|
+
.option('--level <level>', 'debug | info | warn | error', 'info')
|
|
59
|
+
.option('--skill <name>', 'Skill/capability being run (default: $GW_SKILL)')
|
|
60
|
+
.option('--run-id <id>', 'Run id to group events (default: $GW_RUN_ID)')
|
|
61
|
+
.option('--project-id <id>', 'Ad project id (default: $GW_PROJECT_ID)')
|
|
62
|
+
.option('--provider <name>', 'e.g. "fal", "elevenlabs"')
|
|
63
|
+
.option('--model <id>', 'Model id, when the event is about a generation')
|
|
64
|
+
.option('--duration-ms <n>', 'Duration of the operation, in milliseconds')
|
|
65
|
+
.option('--details <json>', 'Free-form JSON context (error text, request/response, step…)')
|
|
66
|
+
.option('--quiet', 'Do not print a confirmation line')
|
|
67
|
+
.action(async (message, opts) => {
|
|
68
|
+
const creds = (0, credentials_1.getCredentials)();
|
|
69
|
+
if (!creds) {
|
|
70
|
+
logger.error('Not logged in. Run "gooseworks login" first.');
|
|
71
|
+
process.exit(1);
|
|
72
|
+
}
|
|
73
|
+
let details;
|
|
74
|
+
if (opts.details !== undefined) {
|
|
75
|
+
try {
|
|
76
|
+
details = JSON.parse(opts.details);
|
|
77
|
+
}
|
|
78
|
+
catch (err) {
|
|
79
|
+
logger.error(`--details must be valid JSON: ${err.message}`);
|
|
80
|
+
process.exit(1);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
const runId = opts.runId ?? process.env.GW_RUN_ID;
|
|
84
|
+
if (!runId) {
|
|
85
|
+
logger.error('No run id. Pass --run-id or set GW_RUN_ID in the environment.');
|
|
86
|
+
process.exit(1);
|
|
87
|
+
}
|
|
88
|
+
const projectId = opts.projectId ?? process.env.GW_PROJECT_ID;
|
|
89
|
+
const durationMs = opts.durationMs !== undefined ? Number(opts.durationMs) : undefined;
|
|
90
|
+
try {
|
|
91
|
+
const res = await (0, http_1.requestJson)({
|
|
92
|
+
apiBase: creds.api_base,
|
|
93
|
+
apiKey: creds.api_key,
|
|
94
|
+
method: 'POST',
|
|
95
|
+
path: '/api/internal/cli-logs',
|
|
96
|
+
query: projectId ? { project_id: projectId } : undefined,
|
|
97
|
+
body: {
|
|
98
|
+
run_id: runId,
|
|
99
|
+
message,
|
|
100
|
+
event_type: opts.eventType,
|
|
101
|
+
level: opts.level,
|
|
102
|
+
skill: opts.skill ?? process.env.GW_SKILL,
|
|
103
|
+
provider: opts.provider,
|
|
104
|
+
model: opts.model,
|
|
105
|
+
duration_ms: durationMs !== undefined && Number.isFinite(durationMs)
|
|
106
|
+
? durationMs
|
|
107
|
+
: undefined,
|
|
108
|
+
details,
|
|
109
|
+
source: 'cli',
|
|
110
|
+
},
|
|
111
|
+
});
|
|
112
|
+
if (!opts.quiet) {
|
|
113
|
+
logger.success(`Logged ${opts.eventType ?? 'info'} event${res.id ? ` (${res.id})` : ''}`);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
catch (err) {
|
|
117
|
+
// Diagnostics must never break the caller — warn and exit 0.
|
|
118
|
+
logger.warn(`Could not record log event: ${err.message}`);
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
//# sourceMappingURL=log.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/commands/log.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -16,6 +16,7 @@ const orthogonal_1 = require("./commands/orthogonal");
|
|
|
16
16
|
const styles_1 = require("./commands/styles");
|
|
17
17
|
const formats_1 = require("./commands/formats");
|
|
18
18
|
const doctor_1 = require("./commands/doctor");
|
|
19
|
+
const log_1 = require("./commands/log");
|
|
19
20
|
const version_1 = require("./version");
|
|
20
21
|
const program = new commander_1.Command();
|
|
21
22
|
program
|
|
@@ -36,5 +37,6 @@ program.addCommand(orthogonal_1.orthogonalCommand);
|
|
|
36
37
|
program.addCommand(styles_1.stylesCommand);
|
|
37
38
|
program.addCommand(formats_1.formatsCommand);
|
|
38
39
|
program.addCommand(doctor_1.doctorCommand);
|
|
40
|
+
program.addCommand(log_1.logCommand);
|
|
39
41
|
program.parse();
|
|
40
42
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,yCAAoC;AACpC,gDAAoD;AACpD,4CAAgD;AAChD,8CAAkD;AAClD,8CAAkD;AAClD,8CAAkD;AAClD,gDAAoD;AACpD,8CAAkD;AAClD,4CAAgD;AAChD,wCAA4C;AAC5C,0CAA8C;AAC9C,sDAA0D;AAC1D,8CAAkD;AAClD,gDAAoD;AACpD,8CAAkD;AAClD,uCAAuC;AAEvC,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAC9B,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,yDAAyD,CAAC;KACtE,OAAO,CAAC,IAAA,oBAAU,GAAE,CAAC,CAAC;AAEzB,OAAO,CAAC,UAAU,CAAC,wBAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,oBAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,wBAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,oBAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,gBAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,kBAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,8BAAiB,CAAC,CAAC;AACtC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,wBAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,yCAAoC;AACpC,gDAAoD;AACpD,4CAAgD;AAChD,8CAAkD;AAClD,8CAAkD;AAClD,8CAAkD;AAClD,gDAAoD;AACpD,8CAAkD;AAClD,4CAAgD;AAChD,wCAA4C;AAC5C,0CAA8C;AAC9C,sDAA0D;AAC1D,8CAAkD;AAClD,gDAAoD;AACpD,8CAAkD;AAClD,wCAA4C;AAC5C,uCAAuC;AAEvC,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAC9B,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,yDAAyD,CAAC;KACtE,OAAO,CAAC,IAAA,oBAAU,GAAE,CAAC,CAAC;AAEzB,OAAO,CAAC,UAAU,CAAC,wBAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,oBAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,wBAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,oBAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,gBAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,kBAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,8BAAiB,CAAC,CAAC;AACtC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,wBAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,gBAAU,CAAC,CAAC;AAE/B,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"master-skill.d.ts","sourceRoot":"","sources":["../../src/skills/master-skill.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,UAAU;IACzB,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,oDAAoD;AACpD,wBAAgB,cAAc,IAAI,UAAU,EAAE,CAM7C;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CA8N9C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"master-skill.d.ts","sourceRoot":"","sources":["../../src/skills/master-skill.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,UAAU;IACzB,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,oDAAoD;AACpD,wBAAgB,cAAc,IAAI,UAAU,EAAE,CAM7C;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CA8N9C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CA0UhD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CA2blD"}
|
|
@@ -584,6 +584,10 @@ run through the \`gooseworks\` CLI (\`gooseworks fetch\` / \`gooseworks call\`),
|
|
|
584
584
|
immediately.
|
|
585
585
|
- **Don't busy-loop** — poll \`get_remix_batch\` on a sensible interval (~20-30s); a \`queued\`
|
|
586
586
|
batch is waiting on research and will start on its own.
|
|
587
|
+
- **Report problems so we can fix them** — when a batch fails/is rejected and you can't resolve it,
|
|
588
|
+
a required brand input/asset is missing, or a recipe/instruction is ambiguous or contradictory,
|
|
589
|
+
call the **\`log_cli_event\`** MCP tool (\`event_type\`: \`error\`/\`blocker\`/\`missing_input\`/\`confusion\`,
|
|
590
|
+
with the real error + step in \`details\`) so the team gets visibility. Still tell the user too.
|
|
587
591
|
`;
|
|
588
592
|
}
|
|
589
593
|
/**
|
|
@@ -646,6 +650,26 @@ says to shell out, use the MCP equivalent:
|
|
|
646
650
|
- \`gooseworks credits\` → the **\`get_ad_credits\`** MCP tool.
|
|
647
651
|
- \`gooseworks doctor\` → do the manual toolchain check in the preflight below.
|
|
648
652
|
|
|
653
|
+
## Report problems so we can fix them (telemetry — do this, don't skip it)
|
|
654
|
+
|
|
655
|
+
If anything blocks or degrades this run — a media/proxy call fails or errors, a required input or
|
|
656
|
+
asset is missing, a recipe instruction is ambiguous or contradictory, the render toolchain won't set
|
|
657
|
+
up, or you hit a bug you can't work around — **report it** so the team gets visibility and can fix
|
|
658
|
+
the skill. It's fire-and-forget, never counts against you, and never blocks your work.
|
|
659
|
+
|
|
660
|
+
- **First, set a stable run id** so every event (yours + the auto-logged media calls) groups together:
|
|
661
|
+
\`export GW_RUN_ID="vid-<project_or_batch_id>"\` (and \`export GW_SKILL="<recipe-slug>"\`) in the
|
|
662
|
+
shell you render from. The media proxies read \`GW_RUN_ID\` automatically.
|
|
663
|
+
- **CLI present →** \`gooseworks log "<what happened>" --event-type <type> --level error --details '{"error":"...","step":"...","model":"..."}'\`
|
|
664
|
+
- **No CLI (cowork / headless) →** the **\`log_cli_event\`** MCP tool with the same fields (pass \`run_id\`).
|
|
665
|
+
- \`--event-type\`: \`api_failure\` (a proxy/model call failed) · \`missing_input\` · \`blocker\` ·
|
|
666
|
+
\`confusion\` (unclear/contradictory instruction) · \`error\` (a bug) · \`step\`/\`info\` (progress notes).
|
|
667
|
+
- Put the **real error text + the step you were on** in \`--details\`. Paid FAL/ElevenLabs calls
|
|
668
|
+
ALREADY auto-log their own failures, so focus your manual logs on what the proxy can't see:
|
|
669
|
+
missing inputs, confusing/contradictory recipe instructions, toolchain/setup failures, and bugs.
|
|
670
|
+
- Logging is FOR US — it does not replace telling the user. When a problem blocks the run, still
|
|
671
|
+
explain it to the user (and ask if you need a decision); just also \`log\` it so we can fix the skill.
|
|
672
|
+
|
|
649
673
|
## Prerequisite — MCP + a render toolchain (Phase 0 preflight)
|
|
650
674
|
|
|
651
675
|
- The \`mcp__gooseworks__*\` tools are REQUIRED. If they're unavailable, stop and tell the user
|
|
@@ -1015,7 +1039,10 @@ path. (\`fal-storage-proxy\` may 404 depending on the install; don't block on it
|
|
|
1015
1039
|
- **Verify a real, non-empty MP4** (watch it) before marking the render complete.
|
|
1016
1040
|
- **Reuse the brand** when its research is complete; never re-research.
|
|
1017
1041
|
- On a hard error (auth/quota/model/timeout) set the render \`failed\` with a short
|
|
1018
|
-
\`error_message\` and stop — don't ship the source unchanged.
|
|
1042
|
+
\`error_message\` and stop — don't ship the source unchanged. **Also \`log\` it** (\`gooseworks log\`
|
|
1043
|
+
/ \`log_cli_event\`, \`--event-type api_failure|error\`) so we can see + fix it (see "Report problems").
|
|
1044
|
+
- **Report blockers/bugs/confusing instructions via telemetry** (\`gooseworks log\` or the
|
|
1045
|
+
\`log_cli_event\` MCP tool) — not just to the user. Set \`GW_RUN_ID\` once so events group.
|
|
1019
1046
|
- Always end a successful run with \`app_url\` + \`brand_url\`, verbatim.
|
|
1020
1047
|
`;
|
|
1021
1048
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"master-skill.js","sourceRoot":"","sources":["../../src/skills/master-skill.ts"],"names":[],"mappings":";;AA4BA,wCAMC;AAWD,sDA8NC;AAiBD,
|
|
1
|
+
{"version":3,"file":"master-skill.js","sourceRoot":"","sources":["../../src/skills/master-skill.ts"],"names":[],"mappings":";;AA4BA,wCAMC;AAWD,sDA8NC;AAiBD,0DA0UC;AAcD,8DA2bC;AAphCD,oDAAoD;AACpD,SAAgB,cAAc;IAC5B,OAAO;QACL,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,qBAAqB,EAAE,EAAE;QACxD,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,uBAAuB,EAAE,EAAE;QACzD,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,yBAAyB,EAAE,EAAE;KAC9D,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,qBAAqB;IACnC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4NR,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,uBAAuB;IACrC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwUR,CAAC;AACF,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,yBAAyB;IACvC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAybR,CAAC;AACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -322,3 +322,7 @@ run through the `gooseworks` CLI (`gooseworks fetch` / `gooseworks call`), like
|
|
|
322
322
|
immediately.
|
|
323
323
|
- **Don't busy-loop** — poll `get_remix_batch` on a sensible interval (~20-30s); a `queued`
|
|
324
324
|
batch is waiting on research and will start on its own.
|
|
325
|
+
- **Report problems so we can fix them** — when a batch fails/is rejected and you can't resolve it,
|
|
326
|
+
a required brand input/asset is missing, or a recipe/instruction is ambiguous or contradictory,
|
|
327
|
+
call the **`log_cli_event`** MCP tool (`event_type`: `error`/`blocker`/`missing_input`/`confusion`,
|
|
328
|
+
with the real error + step in `details`) so the team gets visibility. Still tell the user too.
|
|
@@ -45,6 +45,26 @@ says to shell out, use the MCP equivalent:
|
|
|
45
45
|
- `gooseworks credits` → the **`get_ad_credits`** MCP tool.
|
|
46
46
|
- `gooseworks doctor` → do the manual toolchain check in the preflight below.
|
|
47
47
|
|
|
48
|
+
## Report problems so we can fix them (telemetry — do this, don't skip it)
|
|
49
|
+
|
|
50
|
+
If anything blocks or degrades this run — a media/proxy call fails or errors, a required input or
|
|
51
|
+
asset is missing, a recipe instruction is ambiguous or contradictory, the render toolchain won't set
|
|
52
|
+
up, or you hit a bug you can't work around — **report it** so the team gets visibility and can fix
|
|
53
|
+
the skill. It's fire-and-forget, never counts against you, and never blocks your work.
|
|
54
|
+
|
|
55
|
+
- **First, set a stable run id** so every event (yours + the auto-logged media calls) groups together:
|
|
56
|
+
`export GW_RUN_ID="vid-<project_or_batch_id>"` (and `export GW_SKILL="<recipe-slug>"`) in the
|
|
57
|
+
shell you render from. The media proxies read `GW_RUN_ID` automatically.
|
|
58
|
+
- **CLI present →** `gooseworks log "<what happened>" --event-type <type> --level error --details '{"error":"...","step":"...","model":"..."}'`
|
|
59
|
+
- **No CLI (cowork / headless) →** the **`log_cli_event`** MCP tool with the same fields (pass `run_id`).
|
|
60
|
+
- `--event-type`: `api_failure` (a proxy/model call failed) · `missing_input` · `blocker` ·
|
|
61
|
+
`confusion` (unclear/contradictory instruction) · `error` (a bug) · `step`/`info` (progress notes).
|
|
62
|
+
- Put the **real error text + the step you were on** in `--details`. Paid FAL/ElevenLabs calls
|
|
63
|
+
ALREADY auto-log their own failures, so focus your manual logs on what the proxy can't see:
|
|
64
|
+
missing inputs, confusing/contradictory recipe instructions, toolchain/setup failures, and bugs.
|
|
65
|
+
- Logging is FOR US — it does not replace telling the user. When a problem blocks the run, still
|
|
66
|
+
explain it to the user (and ask if you need a decision); just also `log` it so we can fix the skill.
|
|
67
|
+
|
|
48
68
|
## Prerequisite — MCP + a render toolchain (Phase 0 preflight)
|
|
49
69
|
|
|
50
70
|
- The `mcp__gooseworks__*` tools are REQUIRED. If they're unavailable, stop and tell the user
|
|
@@ -414,5 +434,8 @@ path. (`fal-storage-proxy` may 404 depending on the install; don't block on it
|
|
|
414
434
|
- **Verify a real, non-empty MP4** (watch it) before marking the render complete.
|
|
415
435
|
- **Reuse the brand** when its research is complete; never re-research.
|
|
416
436
|
- On a hard error (auth/quota/model/timeout) set the render `failed` with a short
|
|
417
|
-
`error_message` and stop — don't ship the source unchanged.
|
|
437
|
+
`error_message` and stop — don't ship the source unchanged. **Also `log` it** (`gooseworks log`
|
|
438
|
+
/ `log_cli_event`, `--event-type api_failure|error`) so we can see + fix it (see "Report problems").
|
|
439
|
+
- **Report blockers/bugs/confusing instructions via telemetry** (`gooseworks log` or the
|
|
440
|
+
`log_cli_event` MCP tool) — not just to the user. Set `GW_RUN_ID` once so events group.
|
|
418
441
|
- Always end a successful run with `app_url` + `brand_url`, verbatim.
|