gooseworks 0.4.2 → 0.4.4
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 +42 -11
- package/dist/commands/doctor.d.ts +29 -5
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +107 -63
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/fetch.d.ts +1 -0
- package/dist/commands/fetch.d.ts.map +1 -1
- package/dist/commands/fetch.js +64 -29
- package/dist/commands/fetch.js.map +1 -1
- package/dist/commands/install.d.ts.map +1 -1
- package/dist/commands/install.js +37 -4
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +8 -3
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/skills.d.ts +34 -0
- package/dist/commands/skills.d.ts.map +1 -0
- package/dist/commands/skills.js +109 -0
- package/dist/commands/skills.js.map +1 -0
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +17 -6
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/video-local.d.ts +9 -0
- package/dist/commands/video-local.d.ts.map +1 -0
- package/dist/commands/video-local.js +83 -0
- package/dist/commands/video-local.js.map +1 -0
- package/dist/commands/video-save.d.ts +3 -0
- package/dist/commands/video-save.d.ts.map +1 -0
- package/dist/commands/video-save.js +83 -0
- package/dist/commands/video-save.js.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/video-local-captions.d.ts +83 -0
- package/dist/lib/video-local-captions.d.ts.map +1 -0
- package/dist/lib/video-local-captions.js +261 -0
- package/dist/lib/video-local-captions.js.map +1 -0
- package/dist/lib/video-local-runtime.d.ts +8 -0
- package/dist/lib/video-local-runtime.d.ts.map +1 -0
- package/dist/lib/video-local-runtime.js +201 -0
- package/dist/lib/video-local-runtime.js.map +1 -0
- package/dist/lib/video-save-mcp.d.ts +9 -0
- package/dist/lib/video-save-mcp.d.ts.map +1 -0
- package/dist/lib/video-save-mcp.js +162 -0
- package/dist/lib/video-save-mcp.js.map +1 -0
- package/dist/lib/video-save.d.ts +77 -0
- package/dist/lib/video-save.d.ts.map +1 -0
- package/dist/lib/video-save.js +440 -0
- package/dist/lib/video-save.js.map +1 -0
- package/dist/skills/custom-video-skill.d.ts +3 -0
- package/dist/skills/custom-video-skill.d.ts.map +1 -0
- package/dist/skills/custom-video-skill.js +6 -0
- package/dist/skills/custom-video-skill.js.map +1 -0
- package/dist/skills/installer.d.ts +12 -6
- package/dist/skills/installer.d.ts.map +1 -1
- package/dist/skills/installer.js +41 -15
- package/dist/skills/installer.js.map +1 -1
- package/dist/skills/master-skill.d.ts +22 -19
- package/dist/skills/master-skill.d.ts.map +1 -1
- package/dist/skills/master-skill.js +1472 -551
- package/dist/skills/master-skill.js.map +1 -1
- package/dist/skills/package-freshness.d.ts +16 -0
- package/dist/skills/package-freshness.d.ts.map +1 -0
- package/dist/skills/package-freshness.js +36 -0
- package/dist/skills/package-freshness.js.map +1 -0
- package/dist/skills/releases.d.ts +12 -0
- package/dist/skills/releases.d.ts.map +1 -0
- package/dist/skills/releases.js +152 -0
- package/dist/skills/releases.js.map +1 -0
- package/dist/skills/routes.d.ts.map +1 -1
- package/dist/skills/routes.js +7 -1
- package/dist/skills/routes.js.map +1 -1
- package/dist/utils/browser-preflight.d.ts +29 -0
- package/dist/utils/browser-preflight.d.ts.map +1 -0
- package/dist/utils/browser-preflight.js +338 -0
- package/dist/utils/browser-preflight.js.map +1 -0
- package/package.json +2 -2
- package/skills/goose-ads/SKILL.md +124 -16
- package/skills/goose-product-photos/SKILL.md +55 -3
- package/skills/goose-video/SKILL.md +322 -253
- package/skills/goose-video-local/SKILL.md +1199 -234
- package/skills/gooseworks/SKILL.md +199 -13
- package/skills/make-custom-video/SKILL.md +490 -0
- package/skills/manifest.json +12 -0
- package/skills/routes.json +8 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"master-skill.js","sourceRoot":"","sources":["../../src/skills/master-skill.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"master-skill.js","sourceRoot":"","sources":["../../src/skills/master-skill.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface SkillPackageIdentity {
|
|
2
|
+
slug: string;
|
|
3
|
+
contentHash?: string | null;
|
|
4
|
+
requiresSkills?: string[];
|
|
5
|
+
dependencySkills?: Array<{
|
|
6
|
+
slug: string;
|
|
7
|
+
contentHash?: string | null;
|
|
8
|
+
}>;
|
|
9
|
+
}
|
|
10
|
+
/** Compares client-reported package identities, not arbitrary local file bytes. */
|
|
11
|
+
export declare function compareSavedPackage(current: SkillPackageIdentity, saved?: SkillPackageIdentity): {
|
|
12
|
+
status: string;
|
|
13
|
+
basis: string;
|
|
14
|
+
changes: string[];
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=package-freshness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-freshness.d.ts","sourceRoot":"","sources":["../../src/skills/package-freshness.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,gBAAgB,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;CACzE;AAED,mFAAmF;AACnF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,EAAE,KAAK,CAAC,EAAE,oBAAoB;;;aACH,MAAM,EAAE;EAoBnG"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.compareSavedPackage = compareSavedPackage;
|
|
4
|
+
/** Compares client-reported package identities, not arbitrary local file bytes. */
|
|
5
|
+
function compareSavedPackage(current, saved) {
|
|
6
|
+
if (!saved)
|
|
7
|
+
return { status: 'not_compared', basis: 'client_saved_hashes', changes: [] };
|
|
8
|
+
if (saved.slug !== current.slug)
|
|
9
|
+
throw new Error('Saved package slug does not match the requested skill');
|
|
10
|
+
const changes = [];
|
|
11
|
+
let unknown = !current.contentHash || !saved.contentHash;
|
|
12
|
+
if (current.contentHash && saved.contentHash && current.contentHash !== saved.contentHash)
|
|
13
|
+
changes.push(current.slug);
|
|
14
|
+
const previous = new Map((saved.dependencySkills || []).map((skill) => [skill.slug, skill.contentHash]));
|
|
15
|
+
const present = new Set();
|
|
16
|
+
for (const skill of current.dependencySkills || []) {
|
|
17
|
+
present.add(skill.slug);
|
|
18
|
+
if (!previous.has(skill.slug))
|
|
19
|
+
changes.push(skill.slug);
|
|
20
|
+
else if (!skill.contentHash || !previous.get(skill.slug))
|
|
21
|
+
unknown = true;
|
|
22
|
+
else if (previous.get(skill.slug) !== skill.contentHash)
|
|
23
|
+
changes.push(skill.slug);
|
|
24
|
+
}
|
|
25
|
+
for (const slug of previous.keys())
|
|
26
|
+
if (!present.has(slug))
|
|
27
|
+
changes.push(slug);
|
|
28
|
+
if ((current.requiresSkills || []).some((slug) => !present.has(slug)))
|
|
29
|
+
unknown = true;
|
|
30
|
+
return {
|
|
31
|
+
status: changes.length ? 'stale' : unknown ? 'unknown' : 'current',
|
|
32
|
+
basis: 'client_saved_hashes',
|
|
33
|
+
changes,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=package-freshness.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-freshness.js","sourceRoot":"","sources":["../../src/skills/package-freshness.ts"],"names":[],"mappings":";;AAQA,kDAqBC;AAtBD,mFAAmF;AACnF,SAAgB,mBAAmB,CAAC,OAA6B,EAAE,KAA4B;IAC7F,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,qBAAqB,EAAE,OAAO,EAAE,EAAc,EAAE,CAAC;IACrG,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC1G,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,OAAO,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;IACzD,IAAI,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW;QAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtH,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACzG,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,gBAAgB,IAAI,EAAE,EAAE,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aACnD,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,OAAO,GAAG,IAAI,CAAC;aACpE,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,WAAW;YAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpF,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE;QAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/E,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,GAAG,IAAI,CAAC;IACtF,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QAClE,KAAK,EAAE,qBAAqB;QAC5B,OAAO;KACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare function skillContentHash(content: string | Buffer): string;
|
|
2
|
+
export interface ReleasedSkills {
|
|
3
|
+
version: string;
|
|
4
|
+
hashes: Record<string, string>;
|
|
5
|
+
source: string;
|
|
6
|
+
}
|
|
7
|
+
/** Reads selected regular files in memory; never extracts paths onto disk. */
|
|
8
|
+
export declare function readReleasedSkillHashes(archive: Buffer, version: string): Record<string, string>;
|
|
9
|
+
/** Checks npm's release, never GitHub main. One timeout covers metadata + body. */
|
|
10
|
+
export declare function getReleasedSkills(timeoutMs?: number): Promise<ReleasedSkills>;
|
|
11
|
+
export declare function compareReleaseVersion(running: string, released: string): 'current' | 'outdated' | 'unreleased';
|
|
12
|
+
//# sourceMappingURL=releases.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"releases.d.ts","sourceRoot":"","sources":["../../src/skills/releases.ts"],"names":[],"mappings":"AAGA,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAEjE;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;CAChB;AA2BD,8EAA8E;AAC9E,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA+ChG;AAED,mFAAmF;AACnF,wBAAsB,iBAAiB,CAAC,SAAS,SAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAejF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,CAqB9G"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.skillContentHash = skillContentHash;
|
|
4
|
+
exports.readReleasedSkillHashes = readReleasedSkillHashes;
|
|
5
|
+
exports.getReleasedSkills = getReleasedSkills;
|
|
6
|
+
exports.compareReleaseVersion = compareReleaseVersion;
|
|
7
|
+
const node_crypto_1 = require("node:crypto");
|
|
8
|
+
const node_zlib_1 = require("node:zlib");
|
|
9
|
+
function skillContentHash(content) {
|
|
10
|
+
return (0, node_crypto_1.createHash)('sha256').update(content).digest('hex');
|
|
11
|
+
}
|
|
12
|
+
const REGISTRY = 'https://registry.npmjs.org';
|
|
13
|
+
const MAX_ARCHIVE = 8 * 1024 * 1024;
|
|
14
|
+
const MAX_UNPACKED = 32 * 1024 * 1024;
|
|
15
|
+
async function boundedResponse(url, signal, limit) {
|
|
16
|
+
const response = await fetch(url, { signal, redirect: 'error' });
|
|
17
|
+
if (!response.ok || !response.body)
|
|
18
|
+
throw new Error(`Published package unavailable (${response.status})`);
|
|
19
|
+
const reader = response.body.getReader();
|
|
20
|
+
const chunks = [];
|
|
21
|
+
let size = 0;
|
|
22
|
+
try {
|
|
23
|
+
while (true) {
|
|
24
|
+
const next = await reader.read();
|
|
25
|
+
if (next.done)
|
|
26
|
+
break;
|
|
27
|
+
size += next.value.length;
|
|
28
|
+
if (size > limit)
|
|
29
|
+
throw new Error('Published package exceeds the size limit');
|
|
30
|
+
chunks.push(next.value);
|
|
31
|
+
}
|
|
32
|
+
return Buffer.concat(chunks);
|
|
33
|
+
}
|
|
34
|
+
finally {
|
|
35
|
+
await reader.cancel().catch(() => undefined);
|
|
36
|
+
reader.releaseLock();
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/** Reads selected regular files in memory; never extracts paths onto disk. */
|
|
40
|
+
function readReleasedSkillHashes(archive, version) {
|
|
41
|
+
const tar = (0, node_zlib_1.gunzipSync)(archive, { maxOutputLength: MAX_UNPACKED });
|
|
42
|
+
const files = new Map();
|
|
43
|
+
for (let offset = 0; offset + 512 <= tar.length;) {
|
|
44
|
+
const header = tar.subarray(offset, offset + 512);
|
|
45
|
+
if (header.every((byte) => byte === 0))
|
|
46
|
+
break;
|
|
47
|
+
const field = (start, end) => header.subarray(start, end).toString('utf8').replace(/\0.*$/s, '').trim();
|
|
48
|
+
const octal = (start, end) => {
|
|
49
|
+
const value = field(start, end);
|
|
50
|
+
if (!/^[0-7]+$/.test(value))
|
|
51
|
+
throw new Error('Invalid published archive header');
|
|
52
|
+
return parseInt(value, 8);
|
|
53
|
+
};
|
|
54
|
+
const checksum = header.reduce((sum, byte, index) => sum + (index >= 148 && index < 156 ? 32 : byte), 0);
|
|
55
|
+
if (checksum !== octal(148, 156))
|
|
56
|
+
throw new Error('Invalid published archive checksum');
|
|
57
|
+
const size = octal(124, 136);
|
|
58
|
+
const prefix = field(345, 500);
|
|
59
|
+
const name = (prefix ? `${prefix}/` : '') + field(0, 100);
|
|
60
|
+
const start = offset + 512;
|
|
61
|
+
if (start + size > tar.length)
|
|
62
|
+
throw new Error('Truncated published archive');
|
|
63
|
+
const regular = header[156] === 0 || header[156] === 48;
|
|
64
|
+
if (regular && (name === 'package/package.json' || name === 'package/skills/manifest.json' || /^package\/skills\/[a-z0-9-]+\/SKILL\.md$/.test(name))) {
|
|
65
|
+
if (files.has(name) || size > 2 * 1024 * 1024)
|
|
66
|
+
throw new Error('Invalid published skill file');
|
|
67
|
+
files.set(name, tar.subarray(start, start + size));
|
|
68
|
+
}
|
|
69
|
+
offset = start + Math.ceil(size / 512) * 512;
|
|
70
|
+
}
|
|
71
|
+
const pkg = JSON.parse(files.get('package/package.json')?.toString('utf8') || '{}');
|
|
72
|
+
if (pkg.name !== 'gooseworks' || pkg.version !== version)
|
|
73
|
+
throw new Error('Published package identity mismatch');
|
|
74
|
+
const hashes = {};
|
|
75
|
+
for (const [name, content] of files) {
|
|
76
|
+
const match = name.match(/^package\/skills\/([a-z0-9-]+)\/SKILL\.md$/);
|
|
77
|
+
if (match)
|
|
78
|
+
hashes[match[1]] = skillContentHash(content);
|
|
79
|
+
}
|
|
80
|
+
if (!hashes.gooseworks)
|
|
81
|
+
throw new Error('Published package has no GooseWorks entry skill');
|
|
82
|
+
// Older releases have no manifest: derive it from the integrity-verified
|
|
83
|
+
// release files. New manifests must match those same actual shipped bytes.
|
|
84
|
+
const manifestFile = files.get('package/skills/manifest.json');
|
|
85
|
+
if (manifestFile) {
|
|
86
|
+
const manifest = JSON.parse(manifestFile.toString('utf8'));
|
|
87
|
+
if (manifest.package !== 'gooseworks' || manifest.version !== version || !manifest.entries || typeof manifest.entries !== 'object')
|
|
88
|
+
throw new Error('Invalid published skill manifest');
|
|
89
|
+
for (const [name, hash] of Object.entries(manifest.entries)) {
|
|
90
|
+
if (hashes[name] !== hash)
|
|
91
|
+
throw new Error(`Published manifest mismatch for ${name}`);
|
|
92
|
+
}
|
|
93
|
+
if (!manifest.entries.gooseworks)
|
|
94
|
+
throw new Error('Published manifest has no entry skill');
|
|
95
|
+
return { ...manifest.entries };
|
|
96
|
+
}
|
|
97
|
+
return hashes;
|
|
98
|
+
}
|
|
99
|
+
/** Checks npm's release, never GitHub main. One timeout covers metadata + body. */
|
|
100
|
+
async function getReleasedSkills(timeoutMs = 5000) {
|
|
101
|
+
const controller = new AbortController();
|
|
102
|
+
const timer = setTimeout(() => controller.abort(), timeoutMs);
|
|
103
|
+
try {
|
|
104
|
+
const meta = JSON.parse((await boundedResponse(`${REGISTRY}/gooseworks/latest`, controller.signal, 1024 * 1024)).toString('utf8'));
|
|
105
|
+
if (meta.name !== 'gooseworks' || typeof meta.version !== 'string' || !/^\d+\.\d+\.\d+(?:-[a-zA-Z0-9.-]+)?$/.test(meta.version))
|
|
106
|
+
throw new Error('Invalid published package metadata');
|
|
107
|
+
const source = `${REGISTRY}/gooseworks/-/gooseworks-${meta.version}.tgz`;
|
|
108
|
+
if (meta.dist?.tarball !== source || typeof meta.dist?.integrity !== 'string' || !/^sha512-[A-Za-z0-9+/]+=*$/.test(meta.dist.integrity))
|
|
109
|
+
throw new Error('Invalid published package integrity');
|
|
110
|
+
const archive = await boundedResponse(source, controller.signal, MAX_ARCHIVE);
|
|
111
|
+
const integrity = `sha512-${(0, node_crypto_1.createHash)('sha512').update(archive).digest('base64')}`;
|
|
112
|
+
if (integrity !== meta.dist.integrity)
|
|
113
|
+
throw new Error('Published package integrity mismatch');
|
|
114
|
+
return { version: meta.version, hashes: readReleasedSkillHashes(archive, meta.version), source };
|
|
115
|
+
}
|
|
116
|
+
finally {
|
|
117
|
+
clearTimeout(timer);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
function compareReleaseVersion(running, released) {
|
|
121
|
+
if (running === released)
|
|
122
|
+
return 'current';
|
|
123
|
+
const parse = (version) => version.match(/^(\d+)\.(\d+)\.(\d+)(?:-(.+))?$/);
|
|
124
|
+
const a = parse(running), b = parse(released);
|
|
125
|
+
if (!a || !b)
|
|
126
|
+
return 'unreleased';
|
|
127
|
+
for (let i = 1; i <= 3; i++) {
|
|
128
|
+
if (Number(a[i]) !== Number(b[i]))
|
|
129
|
+
return Number(a[i]) < Number(b[i]) ? 'outdated' : 'unreleased';
|
|
130
|
+
}
|
|
131
|
+
if (!a[4] && b[4])
|
|
132
|
+
return 'unreleased';
|
|
133
|
+
if (a[4] && !b[4])
|
|
134
|
+
return 'outdated';
|
|
135
|
+
const preA = (a[4] || '').split('.'), preB = (b[4] || '').split('.');
|
|
136
|
+
for (let i = 0; i < Math.max(preA.length, preB.length); i++) {
|
|
137
|
+
if (preA[i] === preB[i])
|
|
138
|
+
continue;
|
|
139
|
+
if (preA[i] === undefined)
|
|
140
|
+
return 'outdated';
|
|
141
|
+
if (preB[i] === undefined)
|
|
142
|
+
return 'unreleased';
|
|
143
|
+
const numericA = /^\d+$/.test(preA[i]), numericB = /^\d+$/.test(preB[i]);
|
|
144
|
+
if (numericA && numericB)
|
|
145
|
+
return Number(preA[i]) < Number(preB[i]) ? 'outdated' : 'unreleased';
|
|
146
|
+
if (numericA !== numericB)
|
|
147
|
+
return numericA ? 'outdated' : 'unreleased';
|
|
148
|
+
return preA[i] < preB[i] ? 'outdated' : 'unreleased';
|
|
149
|
+
}
|
|
150
|
+
return 'current';
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=releases.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"releases.js","sourceRoot":"","sources":["../../src/skills/releases.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/skills/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,4CAA4C;AAC5C,MAAM,MAAM,aAAa;AACvB,+DAA+D;AAC7D,OAAO;AACT,+EAA+E;GAC7E,OAAO,CAAC;AAEZ,MAAM,WAAW,WAAW;IAC1B,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,aAAa,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,0BAA0B;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,8CAA8C;IAC9C,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/skills/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,4CAA4C;AAC5C,MAAM,MAAM,aAAa;AACvB,+DAA+D;AAC7D,OAAO;AACT,+EAA+E;GAC7E,OAAO,CAAC;AAEZ,MAAM,WAAW,WAAW;IAC1B,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,aAAa,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,0BAA0B;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,8CAA8C;IAC9C,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,WAAW,EA2CtC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,gBAAgB,EAkBjD,CAAC;AAEF,+DAA+D;AAC/D,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAK9C;AAED,mFAAmF;AACnF,wBAAgB,wBAAwB,IAAI,MAAM,EAAE,CAInD;AAED,wEAAwE;AACxE,wBAAgB,gBAAgB,IAAI;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,WAAW,EAAE,CAAC;IAC7B,mBAAmB,EAAE,gBAAgB,EAAE,CAAC;IACxC,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CASA;AAED,gFAAgF;AAChF,wBAAgB,sBAAsB,IAAI,MAAM,CAI/C;AAED,oDAAoD;AACpD,wBAAgB,sBAAsB,IAAI,MAAM,CAI/C"}
|
package/dist/skills/routes.js
CHANGED
|
@@ -44,10 +44,16 @@ exports.DOMAIN_ROUTES = [
|
|
|
44
44
|
},
|
|
45
45
|
{
|
|
46
46
|
skill: 'goose-video',
|
|
47
|
-
when: '
|
|
47
|
+
when: 'Make a **video** ad from a template or an original brief. Template-free briefs and Instagram/direct video references route to make-custom-video. Growth renders in its sandbox; connected coding agents use their local toolchain.',
|
|
48
48
|
how: 'Installed locally as an entry skill. Just use it. If unavailable, run `gooseworks install --claude`.',
|
|
49
49
|
delivery: 'entry',
|
|
50
50
|
},
|
|
51
|
+
{
|
|
52
|
+
skill: 'make-custom-video',
|
|
53
|
+
when: 'Create an original branded video without a template, adapt an Instagram/direct video reference, or resume a generated custom project; separate Studio script and ingredient approvals are required',
|
|
54
|
+
how: 'Use the installed GooseWorks connection entry, or fetch make-custom-video through the catalog. It loads video-production-harness; Growth uses its sandbox and connected agents use their local tools.',
|
|
55
|
+
delivery: 'entry',
|
|
56
|
+
},
|
|
51
57
|
{
|
|
52
58
|
skill: 'goose-video-local',
|
|
53
59
|
when: 'Render an EXISTING app video project or batch on this machine — the app\'s "copy for Claude" command names it',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/skills/routes.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;;
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/skills/routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export type BrowserProbeCode = 'ready' | 'invalid_script' | 'missing_module' | 'missing_browser' | 'launch_failed' | 'close_failed' | 'timeout' | 'probe_failed';
|
|
2
|
+
export interface BrowserPreflightResult {
|
|
3
|
+
ok: boolean;
|
|
4
|
+
code: BrowserProbeCode;
|
|
5
|
+
detail: string;
|
|
6
|
+
fix: string;
|
|
7
|
+
rendererScript?: string;
|
|
8
|
+
resolvedScript?: string;
|
|
9
|
+
modulePath?: string;
|
|
10
|
+
version?: string;
|
|
11
|
+
executablePath?: string;
|
|
12
|
+
cliPath?: string;
|
|
13
|
+
cleanup?: {
|
|
14
|
+
ok: boolean;
|
|
15
|
+
remainingPids: number[];
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Probe the package the script would require, using the caller's cwd and env.
|
|
20
|
+
* Without a script, this is only a general check rooted in the current folder.
|
|
21
|
+
* Browser startup creates normal temporary runtime files; no project output.
|
|
22
|
+
*/
|
|
23
|
+
export declare function checkBrowserPreflight(opts?: {
|
|
24
|
+
rendererScript?: string;
|
|
25
|
+
cwd?: string;
|
|
26
|
+
launchTimeoutMs?: number;
|
|
27
|
+
closeTimeoutMs?: number;
|
|
28
|
+
}): BrowserPreflightResult;
|
|
29
|
+
//# sourceMappingURL=browser-preflight.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-preflight.d.ts","sourceRoot":"","sources":["../../src/utils/browser-preflight.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,iBAAiB,GAC5F,eAAe,GAAG,cAAc,GAAG,SAAS,GAAG,cAAc,CAAC;AAElE,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,aAAa,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CACpD;AA0PD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,GAAE;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,sBAAsB,CA2C9B"}
|