gooseworks 0.5.8 → 0.5.9-dev.56.eca9486d
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/agents/claude-mcp.d.ts +7 -1
- package/dist/agents/claude-mcp.d.ts.map +1 -1
- package/dist/agents/claude-mcp.js +43 -10
- package/dist/agents/claude-mcp.js.map +1 -1
- package/dist/auth/credentials.d.ts +8 -0
- package/dist/auth/credentials.d.ts.map +1 -1
- package/dist/auth/credentials.js +35 -1
- package/dist/auth/credentials.js.map +1 -1
- package/dist/auth/device-flow.d.ts +4 -1
- package/dist/auth/device-flow.d.ts.map +1 -1
- package/dist/auth/device-flow.js +8 -3
- package/dist/auth/device-flow.js.map +1 -1
- package/dist/auth/oauth-server.d.ts +9 -1
- package/dist/auth/oauth-server.d.ts.map +1 -1
- package/dist/auth/oauth-server.js +19 -11
- package/dist/auth/oauth-server.js.map +1 -1
- package/dist/auth/revoke.d.ts +10 -0
- package/dist/auth/revoke.d.ts.map +1 -0
- package/dist/auth/revoke.js +31 -0
- package/dist/auth/revoke.js.map +1 -0
- package/dist/commands/login.d.ts +15 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +34 -10
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.d.ts.map +1 -1
- package/dist/commands/logout.js +29 -11
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/video.d.ts +35 -0
- package/dist/commands/video.d.ts.map +1 -1
- package/dist/commands/video.js +475 -39
- package/dist/commands/video.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/kit/core/canonical.d.ts +3 -1
- package/dist/kit/core/canonical.d.ts.map +1 -1
- package/dist/kit/core/canonical.js +1 -1
- package/dist/kit/core/canonical.js.map +1 -1
- package/dist/kit/core/check.d.ts +2 -0
- package/dist/kit/core/check.d.ts.map +1 -1
- package/dist/kit/core/check.js +12 -2
- package/dist/kit/core/check.js.map +1 -1
- package/dist/kit/core/detach.d.ts +11 -0
- package/dist/kit/core/detach.d.ts.map +1 -0
- package/dist/kit/core/detach.js +72 -0
- package/dist/kit/core/detach.js.map +1 -0
- package/dist/kit/core/diff.d.ts +5 -0
- package/dist/kit/core/diff.d.ts.map +1 -0
- package/dist/kit/core/diff.js +132 -0
- package/dist/kit/core/diff.js.map +1 -0
- package/dist/kit/core/errors.d.ts +7 -1
- package/dist/kit/core/errors.d.ts.map +1 -1
- package/dist/kit/core/errors.js +11 -1
- package/dist/kit/core/errors.js.map +1 -1
- package/dist/kit/core/eyes.d.ts +80 -0
- package/dist/kit/core/eyes.d.ts.map +1 -0
- package/dist/kit/core/eyes.js +366 -0
- package/dist/kit/core/eyes.js.map +1 -0
- package/dist/kit/core/files.js +2 -2
- package/dist/kit/core/files.js.map +1 -1
- package/dist/kit/core/lock.d.ts +4 -0
- package/dist/kit/core/lock.d.ts.map +1 -0
- package/dist/kit/core/lock.js +13 -0
- package/dist/kit/core/lock.js.map +1 -0
- package/dist/kit/core/log.d.ts +38 -2
- package/dist/kit/core/log.d.ts.map +1 -1
- package/dist/kit/core/log.js +38 -5
- package/dist/kit/core/log.js.map +1 -1
- package/dist/kit/core/outcome.d.ts +114 -0
- package/dist/kit/core/outcome.d.ts.map +1 -0
- package/dist/kit/core/outcome.js +246 -0
- package/dist/kit/core/outcome.js.map +1 -0
- package/dist/kit/core/patch.d.ts +64 -0
- package/dist/kit/core/patch.d.ts.map +1 -0
- package/dist/kit/core/patch.js +289 -0
- package/dist/kit/core/patch.js.map +1 -0
- package/dist/kit/core/paths.d.ts +17 -0
- package/dist/kit/core/paths.d.ts.map +1 -1
- package/dist/kit/core/paths.js +21 -0
- package/dist/kit/core/paths.js.map +1 -1
- package/dist/kit/core/pieces.d.ts +16 -4
- package/dist/kit/core/pieces.d.ts.map +1 -1
- package/dist/kit/core/pieces.js +84 -27
- package/dist/kit/core/pieces.js.map +1 -1
- package/dist/kit/core/progress-reporter.d.ts +21 -4
- package/dist/kit/core/progress-reporter.d.ts.map +1 -1
- package/dist/kit/core/progress-reporter.js +74 -12
- package/dist/kit/core/progress-reporter.js.map +1 -1
- package/dist/kit/core/progress.d.ts +41 -4
- package/dist/kit/core/progress.d.ts.map +1 -1
- package/dist/kit/core/progress.js +105 -18
- package/dist/kit/core/progress.js.map +1 -1
- package/dist/kit/core/refusal-log.d.ts +7 -0
- package/dist/kit/core/refusal-log.d.ts.map +1 -0
- package/dist/kit/core/refusal-log.js +54 -0
- package/dist/kit/core/refusal-log.js.map +1 -0
- package/dist/kit/core/run.d.ts +39 -5
- package/dist/kit/core/run.d.ts.map +1 -1
- package/dist/kit/core/run.js +514 -83
- package/dist/kit/core/run.js.map +1 -1
- package/dist/kit/core/save.d.ts +7 -3
- package/dist/kit/core/save.d.ts.map +1 -1
- package/dist/kit/core/save.js +57 -20
- package/dist/kit/core/save.js.map +1 -1
- package/dist/kit/core/style.d.ts +1 -0
- package/dist/kit/core/style.d.ts.map +1 -1
- package/dist/kit/core/style.js +1 -1
- package/dist/kit/core/style.js.map +1 -1
- package/dist/kit/line/client.d.ts +14 -2
- package/dist/kit/line/client.d.ts.map +1 -1
- package/dist/kit/line/client.js +40 -20
- package/dist/kit/line/client.js.map +1 -1
- package/dist/kit/line/types.d.ts +33 -1
- package/dist/kit/line/types.d.ts.map +1 -1
- package/dist/kit/maker/cues.d.ts +67 -0
- package/dist/kit/maker/cues.d.ts.map +1 -0
- package/dist/kit/maker/cues.js +204 -0
- package/dist/kit/maker/cues.js.map +1 -0
- package/dist/kit/maker/encode.d.ts +5 -0
- package/dist/kit/maker/encode.d.ts.map +1 -1
- package/dist/kit/maker/encode.js +7 -1
- package/dist/kit/maker/encode.js.map +1 -1
- package/dist/kit/maker/facts.d.ts +46 -0
- package/dist/kit/maker/facts.d.ts.map +1 -0
- package/dist/kit/maker/facts.js +159 -0
- package/dist/kit/maker/facts.js.map +1 -0
- package/dist/kit/maker/inputs.d.ts +48 -3
- package/dist/kit/maker/inputs.d.ts.map +1 -1
- package/dist/kit/maker/inputs.js +151 -22
- package/dist/kit/maker/inputs.js.map +1 -1
- package/dist/kit/maker/make.d.ts +20 -1
- package/dist/kit/maker/make.d.ts.map +1 -1
- package/dist/kit/maker/make.js +129 -21
- package/dist/kit/maker/make.js.map +1 -1
- package/dist/kit/maker/page.d.ts.map +1 -1
- package/dist/kit/maker/page.js +49 -1
- package/dist/kit/maker/page.js.map +1 -1
- package/dist/kit/maker/parts/html-frames/1.2.1/part.json +1083 -0
- package/dist/kit/maker/parts/html-frames/src/part.d.ts.map +1 -1
- package/dist/kit/maker/parts/html-frames/src/part.js +4 -1
- package/dist/kit/maker/parts/html-frames/src/part.js.map +1 -1
- package/dist/kit/maker/runtime.d.ts.map +1 -1
- package/dist/kit/maker/runtime.js +54 -7
- package/dist/kit/maker/runtime.js.map +1 -1
- package/dist/kit/maker/timing.d.ts +74 -0
- package/dist/kit/maker/timing.d.ts.map +1 -0
- package/dist/kit/maker/timing.js +152 -0
- package/dist/kit/maker/timing.js.map +1 -0
- package/dist/kit/maker/under.d.ts +126 -0
- package/dist/kit/maker/under.d.ts.map +1 -0
- package/dist/kit/maker/under.js +299 -0
- package/dist/kit/maker/under.js.map +1 -0
- package/dist/kit/parts/catalog.d.ts +3 -20
- package/dist/kit/parts/catalog.d.ts.map +1 -1
- package/dist/kit/parts/catalog.js +6 -41
- package/dist/kit/parts/catalog.js.map +1 -1
- package/dist/kit/parts/loader.d.ts +7 -2
- package/dist/kit/parts/loader.d.ts.map +1 -1
- package/dist/kit/parts/loader.js +88 -23
- package/dist/kit/parts/loader.js.map +1 -1
- package/dist/skills/master-skill.d.ts +4 -6
- package/dist/skills/master-skill.d.ts.map +1 -1
- package/dist/skills/master-skill.js +28 -28
- package/dist/skills/master-skill.js.map +1 -1
- package/dist/skills/routes.js +5 -5
- package/dist/skills/routes.js.map +1 -1
- package/dist/skills/server-entry-skills.d.ts +6 -6
- package/dist/skills/server-entry-skills.d.ts.map +1 -1
- package/dist/skills/server-entry-skills.js +89 -60
- package/dist/skills/server-entry-skills.js.map +1 -1
- package/dist/utils/browser-preflight.d.ts +3 -0
- package/dist/utils/browser-preflight.d.ts.map +1 -1
- package/dist/utils/browser-preflight.js +27 -6
- package/dist/utils/browser-preflight.js.map +1 -1
- package/dist/utils/exit.d.ts +6 -0
- package/dist/utils/exit.d.ts.map +1 -0
- package/dist/utils/exit.js +37 -0
- package/dist/utils/exit.js.map +1 -0
- package/package.json +14 -3
- package/skills/goose-ads/SKILL.md +8 -8
- package/skills/goose-product-photos/SKILL.md +8 -8
- package/skills/goose-video/SKILL.md +29 -595
- package/skills/goose-video-local/SKILL.md +3 -1572
- package/skills/gooseworks/SKILL.md +10 -12
- package/skills/make-custom-video/SKILL.md +25 -672
- package/skills/manifest.json +7 -7
- package/skills/routes.json +3 -3
- package/dist/kit/maker/parts/html-frames/1.1.0/part.json +0 -199
- package/dist/skills/production-video-skills.json +0 -5
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// The entry skill text our server builds, copied here because the CLI
|
|
3
3
|
// cannot import gooseworks-app. Do not edit by hand.
|
|
4
4
|
//
|
|
5
|
-
// Source: gooseworks-app
|
|
5
|
+
// Source: gooseworks-app akhil/staging-soft-blockers @ bd2f9f70e
|
|
6
6
|
// apps/api/src/services/playbooks/entry-skill.ts buildVideoEntrySkill(slug)
|
|
7
7
|
// apps/api/src/app-mcp-server/lib/video-policy.ts renderEntrySkillRules(product)
|
|
8
8
|
//
|
|
@@ -15,104 +15,133 @@
|
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
16
|
exports.SERVER_ENTRY_SKILL_RULES = exports.SERVER_VIDEO_ENTRY_SKILLS = exports.SERVER_RULEBOOK_VERSION = void 0;
|
|
17
17
|
/** The rulebook version this text was built from. */
|
|
18
|
-
exports.SERVER_RULEBOOK_VERSION = '1.
|
|
18
|
+
exports.SERVER_RULEBOOK_VERSION = '1.3.2';
|
|
19
19
|
exports.SERVER_VIDEO_ENTRY_SKILLS = {
|
|
20
20
|
'goose-video': `---
|
|
21
21
|
name: goose-video
|
|
22
|
-
description: "Make a video ad
|
|
23
|
-
version: 4.
|
|
22
|
+
description: "Make a video ad in this chat. Study a supplied video reference before comparing styles; follow the next_step in every answer."
|
|
23
|
+
version: 4.4.4
|
|
24
24
|
---
|
|
25
25
|
|
|
26
26
|
# GooseWorks video
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
From an installed entry, first catalog_fetch type skill goose-video on this same connection and follow that body. An entry already fetched in this run needs no repeat fetch.
|
|
29
29
|
|
|
30
|
-
For a
|
|
30
|
+
For a video already started, call video_read and follow its next_step.
|
|
31
|
+
|
|
32
|
+
Explicit custom: skip steps 5–6. Keep their mechanics and assets; research the brand/product and study the reference for its custom plan. Check current custom support before any write.
|
|
33
|
+
|
|
34
|
+
For other new videos start with get_started (wants video, request). A card is not a style choice or proof of viewing. Follow the reference rule before style selection or a plan.
|
|
31
35
|
|
|
32
36
|
1. The request. If they haven't said what the video is about, ask in one short question.
|
|
33
37
|
2. The brand. Ask which brand only when brand_read lists several; with one, use it.
|
|
34
|
-
3. The product.
|
|
35
|
-
4. Research. Read the brand kit, learnings and the chosen products with brand_read (sections kit and learnings, plus the products' ids)
|
|
36
|
-
5. The styles. Call video_formats with the request and the products' ids
|
|
37
|
-
6. The plan. Call video_create with the picked style and the products; its next_step says
|
|
38
|
+
3. The product. Named or none wanted: find its id with brand_read (sections: products), or use []. Otherwise the product card asks: say one line and wait. Without cards, ask which product by name; use the only one, or go on with none. Never ask again after a pick.
|
|
39
|
+
4. Research. Read the brand kit, learnings and the chosen products with brand_read (sections kit and learnings, plus the products' ids), then knowledge_search for them. Note what to say and avoid.
|
|
40
|
+
5. The styles. Call video_formats with the request and the products' ids ([] for none). The customer picks; never recommend one. A style they named that the answer lists as available is their pick. Otherwise, with the style card on screen, say one short line and wait; without one, print the style table from the answer as it is and ask nothing else.
|
|
41
|
+
6. The plan. Call video_create with the picked style and the products; its next_step says what follows.
|
|
42
|
+
|
|
43
|
+
## A supplied video reference comes first
|
|
44
|
+
|
|
45
|
+
Watch the actual video before choosing a style or writing a custom plan. Play through it, or inspect timestamped frames spanning it plus its audio/transcript. A URL, title, caption or thumbnail is not a viewing. Record the hook, scene order, pacing, narration/dialogue, framing, product interactions, text and ending, with timestamps and gaps. If access or sampling cannot answer an essential detail, ask for an accessible video or their choice to continue from the brief; never claim it was watched.
|
|
46
|
+
When they have not chosen custom, call video_formats after brand research. For plausible matches, catalog_fetch type template returns the style's plan_note, scenes, duration, cast, sound and assets. Compare these against the observed reference and their essential choices. A similar title or high brand ranking does not prove a match. Explain fit or mismatch before they choose. Keep an explicit style choice; do not quietly change constraints or over-adapt it. Reassess a later reference before creating or rewriting a plan.
|
|
47
|
+
If no available style fits, or they explicitly want custom, catalog_fetch type skill make-custom-video on this connection before a project write. Require its complete production-harness dependency and current custom schemas. Follow its separate authenticated script and ingredient approvals, cumulative budgets and verified execution capability. If anything is unavailable, say so and keep the brief; do not substitute a template, import the reference as a finished video, use retired actions or switch environments. Fetching a skill alone proves no execution capability.
|
|
38
48
|
|
|
39
49
|
## Rules
|
|
40
50
|
|
|
41
|
-
- Talk to marketers: what they get and
|
|
51
|
+
- Talk to marketers: what they get and decide, never how it's made.
|
|
42
52
|
- Never mention tools, ids, JSON, commands, software, vendors, models, timings, retries or your checks.
|
|
43
|
-
- Everything happens
|
|
44
|
-
- Money is a credit number
|
|
45
|
-
- Follow the next_step in every answer
|
|
46
|
-
-
|
|
47
|
-
- Paid work needs the customer's yes to the credit total first, on the card or in chat at the price shown;
|
|
48
|
-
- A yes
|
|
53
|
+
- Everything happens here: never ask the customer to install anything or use a CLI, slash command or other app, except a video's make command when a next_step gives it (its last line says who starts it; original videos follow their own). Never give any other command, sign-in step or setting, and never ask them a technical question.
|
|
54
|
+
- Money is a credit number exactly as an answer gives it: never dollars or your own math.
|
|
55
|
+
- Follow the next_step in every answer.
|
|
56
|
+
- Card on screen (display_hint "widget"): one short line at most, then the wait in its next_step or end your turn; never re-list it or open a question box.
|
|
57
|
+
- Paid work needs the customer's yes to the credit total first, on the card or in chat at the price shown; never decide it for them, and pass on a yes only once they gave it to that total.
|
|
58
|
+
- A yes is to the credit total the customer was shown: their press on the plan card, or their yes in chat sent with that total.
|
|
49
59
|
- Where the app shows no card, print the plan and its price and ask for the customer's yes here; never send them to a website to approve.
|
|
50
60
|
- Never invent an offer, a claim or proof.
|
|
51
61
|
- GooseWorks holds every provider key and bills the work: never ask for a key, token, password or ad account id, and never call a vendor yourself.
|
|
52
62
|
`,
|
|
53
63
|
'make-custom-video': `---
|
|
54
64
|
name: make-custom-video
|
|
55
|
-
description: "Make
|
|
56
|
-
version: 3.1
|
|
65
|
+
description: "Make a custom video from its brief and studied reference, with authenticated script and ingredient reviews."
|
|
66
|
+
version: 3.5.1
|
|
67
|
+
requires_skills: [video-production-harness]
|
|
68
|
+
harness_binding: gooseworks/video-actions/v1
|
|
57
69
|
---
|
|
58
70
|
|
|
59
|
-
#
|
|
71
|
+
# Human version
|
|
60
72
|
|
|
61
|
-
|
|
73
|
+
The owner approves the script, then actual storyboard/ingredients and budget. Both authenticated reviews must pass before production.
|
|
62
74
|
|
|
63
|
-
|
|
75
|
+
---
|
|
64
76
|
|
|
65
|
-
|
|
66
|
-
2. The brand. Ask which brand only when brand_read lists several; with one, use it.
|
|
67
|
-
3. The product. Unless they named one or want none, ask which product, offering the brand's products by name from brand_read (sections: products). Use the only one if there is one; with none, go on without.
|
|
68
|
-
4. Research. Read the brand kit, learnings and the chosen products with brand_read (sections kit and learnings, plus the products' ids): photos, specs, creative notes. Then knowledge_search for them. Keep a few plain lines of what to say and avoid.
|
|
69
|
-
5. The styles. Call video_formats with the request and the products' ids: [] for none or a style without products. The customer picks; never recommend one. A style they named that the answer lists as available is their pick. Otherwise, with the style card on screen, say one short line and wait; without one, list the fitting styles, each with its name, one line and price as written, and ask which one.
|
|
70
|
-
6. The plan. Call video_create with the picked style and the products; its next_step says how to write the scenes with video_change and what follows.
|
|
77
|
+
# Agent version
|
|
71
78
|
|
|
72
|
-
|
|
79
|
+
Installed entry: catalog_fetch type skill make-custom-video here once. Check live custom schemas before writes. Keep this environment; no retired actions, template fallback or reference-as-final import.
|
|
73
80
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
81
|
+
## Load the production harness
|
|
82
|
+
|
|
83
|
+
Require complete video-production-harness content/scripts/files/version/contentHash. An inline read lists it by slug only: get it with catalog_fetch delivery archive (making needs that shell anyway), or catalog_fetch its slug. Read its orchestrator, phases and editorial/specialist guides. Save safe paths separately with hashes/dependencies. Incomplete/mixed packages block work. Resume recorded packages, inputs and jobs.
|
|
84
|
+
|
|
85
|
+
## Keep the brief and study the reference
|
|
86
|
+
|
|
87
|
+
Explicit custom skips video_formats and the picker. Keep requested mechanics/assets; animated text and product photos must not become a creator montage. Implicit references use goose-video to watch and compare template constraints; custom follows no match or their choice.
|
|
88
|
+
Read brand_read (kit, products, rules), then knowledge_search. Use supported claims, real photos/logo. Watch playback, or timed frames spanning the video plus audio/transcript. Record hook, scene order, pace, framing, dialogue, text, product interactions and ending with times/gaps. URLs/thumbnails are not viewing. Missing access needs an accessible source or explicit brief-only choice.
|
|
89
|
+
|
|
90
|
+
## Create or resume
|
|
91
|
+
|
|
92
|
+
New: video_create with brand_id, style custom, request and a required agent-generated UUID idempotency_key; retain products, name, reference_url and campaign. Reuse that key on retries. Resume with video_read the same project: retain plan_revision, custom_review, brand_context, production_manifest and execution; never create a replacement.
|
|
93
|
+
Reference resolve accepts direct files; social links cause no automatic paid lookup. If GooseWorks can't download it, upload the file you watched into this project (media_upload scope video_project, media_confirm), wait for media_analyze read to show its duration, then video_change custom reference attach with asset_id and its current_revision as analysis_revision; each refusal names the condition to fix. Skip needs explicit brief-only user_quote. Pending/failed reference blocks approval; a URL is not viewing.
|
|
94
|
+
A resolved reference also needs draft.reference_observation: the project's reference source_url, real duration_s, evidence_mode playback or frames_and_audio, observed_through_s covering 95%, and summary: what happens with times and gaps, as text or a list of {t, what}. Its data binds the script token. Resolve/attach is not watching.
|
|
95
|
+
|
|
96
|
+
## Save script and ingredients
|
|
97
|
+
|
|
98
|
+
Follow the harness phases. Discover specialists for the actual scenes; check inputs, outputs, dependencies and managed execution. Reuse suitable product photos and deterministic text animation. Never substitute a template driver. Bind operations to this project and approved scene/script revisions.
|
|
99
|
+
video_change needs expected_revision (plan_revision), custom draft and optional script. Bind brand_context_digest to the returned bundle; never author server context. Keep packages outside the review payload. Quote paid operations through the live managed estimate path with real inputs/project. Save preview_estimate/render_estimate for the work still to buy; the server adds committed_credits. Never edit a field the owner approved: the save sets their approval aside until the approved text is back. Missing price/unsupported inputs blocks production; no guessed rates/direct keys.
|
|
100
|
+
|
|
101
|
+
## Two authenticated owner reviews
|
|
102
|
+
|
|
103
|
+
Show the complete saved script and exact cumulative budget on the authenticated review card. Only the owner's actual signed button press approves. Chat yes, OAuth, user_quote, widget origin or a copied token is not proof; never manufacture a click or self-approve. Text-only/large reviews use returned authenticated Studio phase buttons and approval_surface URL.
|
|
104
|
+
Reread video_read after owner actions. Script approval permits quoted previews only. Save the actual storyboard, playable ingredients and render budget; ingredient approval permits clips. Require current script_approved/ingredients_approved, matching tokens/revision and budget. Changed reviews need renewed approval. A prior yes does not authorize changed work.
|
|
105
|
+
|
|
106
|
+
## Execute, check and deliver
|
|
107
|
+
|
|
108
|
+
Require execution.local from a verified customer shell. No cloud, style-only kit, API host, worker or coworker sandbox. Otherwise report the gap.
|
|
109
|
+
video_make needs expected_revision and custom render state. Resume the same render with approved tokens; report running/failed/complete honestly and honor Stop. Save actual prompts, settings, every scene and clip checks through video_change custom production. Watch the full output against the approved script, product and brand; save its full quality report. Completion needs a confirmed upload and rebuild recipe here; pin only the checked complete render. Read back manifest/final before delivery. Repairs need affected assets only and renewed approvals/budget.
|
|
110
|
+
|
|
111
|
+
Rebuild recipe: every input the build reads, uploaded here or a linked Library original, plus recipe/source.json; prove a clean-folder rebuild, then save it as custom production source. The next step gives the format.
|
|
112
|
+
|
|
113
|
+
Use plain words and returned credits. No invented claims, approvals, assets or passing checks.
|
|
85
114
|
`,
|
|
86
115
|
};
|
|
87
116
|
/** renderEntrySkillRules(product) for the products the CLI's own entry skills cover. */
|
|
88
117
|
exports.SERVER_ENTRY_SKILL_RULES = {
|
|
89
|
-
all: `- Talk to marketers: what they get and
|
|
118
|
+
all: `- Talk to marketers: what they get and decide, never how it's made.
|
|
90
119
|
- Never mention tools, ids, JSON, commands, software, vendors, models, timings, retries or your checks.
|
|
91
|
-
- Everything happens
|
|
92
|
-
- Money is a credit number
|
|
93
|
-
- Follow the next_step in every answer
|
|
94
|
-
-
|
|
95
|
-
- Paid work needs the customer's yes to the credit total first, on the card or in chat at the price shown;
|
|
120
|
+
- Everything happens here: never ask the customer to install anything or use a CLI, slash command or other app, except a video's make command when a next_step gives it (its last line says who starts it; original videos follow their own). Never give any other command, sign-in step or setting, and never ask them a technical question.
|
|
121
|
+
- Money is a credit number exactly as an answer gives it: never dollars or your own math.
|
|
122
|
+
- Follow the next_step in every answer.
|
|
123
|
+
- Card on screen (display_hint "widget"): one short line at most, then the wait in its next_step or end your turn; never re-list it or open a question box.
|
|
124
|
+
- Paid work needs the customer's yes to the credit total first, on the card or in chat at the price shown; never decide it for them, and pass on a yes only once they gave it to that total.
|
|
96
125
|
- Never invent an offer, a claim or proof.
|
|
97
126
|
- GooseWorks holds every provider key and bills the work: never ask for a key, token, password or ad account id, and never call a vendor yourself.`,
|
|
98
|
-
ads: `- Talk to marketers: what they get and
|
|
127
|
+
ads: `- Talk to marketers: what they get and decide, never how it's made.
|
|
99
128
|
- Never mention tools, ids, JSON, commands, software, vendors, models, timings, retries or your checks.
|
|
100
|
-
- Everything happens
|
|
101
|
-
- Money is a credit number
|
|
102
|
-
- Follow the next_step in every answer
|
|
103
|
-
-
|
|
104
|
-
- Paid work needs the customer's yes to the credit total first, on the card or in chat at the price shown;
|
|
105
|
-
- Before choosing an angle, claim, product or source, or asking a brand fact
|
|
129
|
+
- Everything happens here: never ask the customer to install anything or use a CLI, slash command or other app, except a video's make command when a next_step gives it (its last line says who starts it; original videos follow their own). Never give any other command, sign-in step or setting, and never ask them a technical question.
|
|
130
|
+
- Money is a credit number exactly as an answer gives it: never dollars or your own math.
|
|
131
|
+
- Follow the next_step in every answer.
|
|
132
|
+
- Card on screen (display_hint "widget"): one short line at most, then the wait in its next_step or end your turn; never re-list it or open a question box.
|
|
133
|
+
- Paid work needs the customer's yes to the credit total first, on the card or in chat at the price shown; never decide it for them, and pass on a yes only once they gave it to that total.
|
|
134
|
+
- Before choosing an angle, claim, product or source, or asking a brand fact, brand_read then knowledge_search for the task.
|
|
106
135
|
- Never invent an offer, a claim or proof.
|
|
107
136
|
- GooseWorks holds every provider key and bills the work: never ask for a key, token, password or ad account id, and never call a vendor yourself.`,
|
|
108
|
-
photos: `- Talk to marketers: what they get and
|
|
137
|
+
photos: `- Talk to marketers: what they get and decide, never how it's made.
|
|
109
138
|
- Never mention tools, ids, JSON, commands, software, vendors, models, timings, retries or your checks.
|
|
110
|
-
- Everything happens
|
|
111
|
-
- Money is a credit number
|
|
112
|
-
- Follow the next_step in every answer
|
|
113
|
-
-
|
|
114
|
-
- Paid work needs the customer's yes to the credit total first, on the card or in chat at the price shown;
|
|
115
|
-
- Before choosing an angle, claim, product or source, or asking a brand fact
|
|
139
|
+
- Everything happens here: never ask the customer to install anything or use a CLI, slash command or other app, except a video's make command when a next_step gives it (its last line says who starts it; original videos follow their own). Never give any other command, sign-in step or setting, and never ask them a technical question.
|
|
140
|
+
- Money is a credit number exactly as an answer gives it: never dollars or your own math.
|
|
141
|
+
- Follow the next_step in every answer.
|
|
142
|
+
- Card on screen (display_hint "widget"): one short line at most, then the wait in its next_step or end your turn; never re-list it or open a question box.
|
|
143
|
+
- Paid work needs the customer's yes to the credit total first, on the card or in chat at the price shown; never decide it for them, and pass on a yes only once they gave it to that total.
|
|
144
|
+
- Before choosing an angle, claim, product or source, or asking a brand fact, brand_read then knowledge_search for the task.
|
|
116
145
|
- Never invent an offer, a claim or proof.
|
|
117
146
|
- GooseWorks holds every provider key and bills the work: never ask for a key, token, password or ad account id, and never call a vendor yourself.`,
|
|
118
147
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-entry-skills.js","sourceRoot":"","sources":["../../src/skills/server-entry-skills.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,qDAAqD;AACrD,EAAE;AACF,
|
|
1
|
+
{"version":3,"file":"server-entry-skills.js","sourceRoot":"","sources":["../../src/skills/server-entry-skills.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,qDAAqD;AACrD,EAAE;AACF,iEAAiE;AACjE,mFAAmF;AACnF,uFAAuF;AACvF,EAAE;AACF,+EAA+E;AAC/E,wEAAwE;AACxE,6EAA6E;AAC7E,6EAA6E;AAC7E,sEAAsE;AACtE,iEAAiE;;;AAEjE,qDAAqD;AACxC,QAAA,uBAAuB,GAAG,OAAO,CAAC;AAElC,QAAA,yBAAyB,GAAG;IACvC,aAAa,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0ChB;IACC,mBAAmB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmDtB;CACS,CAAC;AAIX,wFAAwF;AAC3E,QAAA,wBAAwB,GAAG;IACtC,GAAG,EAAE;;;;;;;;mJAQ4I;IACjJ,GAAG,EAAE;;;;;;;;;mJAS4I;IACjJ,MAAM,EAAE;;;;;;;;;mJASyI;CACzI,CAAC"}
|
|
@@ -23,7 +23,10 @@ export interface BrowserPreflightResult {
|
|
|
23
23
|
export declare function checkBrowserPreflight(opts?: {
|
|
24
24
|
rendererScript?: string;
|
|
25
25
|
cwd?: string;
|
|
26
|
+
/** Bounds the browser's own launch() only; Node and Playwright loading are bounded separately. */
|
|
26
27
|
launchTimeoutMs?: number;
|
|
27
28
|
closeTimeoutMs?: number;
|
|
29
|
+
/** Starting the probe and loading Playwright, before launch(). */
|
|
30
|
+
startupTimeoutMs?: number;
|
|
28
31
|
}): BrowserPreflightResult;
|
|
29
32
|
//# sourceMappingURL=browser-preflight.d.ts.map
|
|
@@ -1 +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;
|
|
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;AA8QD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,GAAE;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,kGAAkG;IAClG,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,sBAAsB,CA4C9B"}
|
|
@@ -37,6 +37,7 @@ exports.checkBrowserPreflight = checkBrowserPreflight;
|
|
|
37
37
|
const child_process_1 = require("child_process");
|
|
38
38
|
const path = __importStar(require("path"));
|
|
39
39
|
const MARKER = 'GOOSE_BROWSER_PREFLIGHT=';
|
|
40
|
+
const STARTUP_TIMEOUT_MS = 10_000;
|
|
40
41
|
// A separate Node process preserves native module resolution (including NODE_PATH)
|
|
41
42
|
// and keeps a broken Playwright installation from hanging or crashing the CLI.
|
|
42
43
|
// Nothing imports or runs the renderer, downloads a browser, or navigates a page.
|
|
@@ -168,7 +169,13 @@ function processTable() {
|
|
|
168
169
|
}
|
|
169
170
|
// Without a process inventory we cannot safely clean up a detached browser.
|
|
170
171
|
// Fail before launching it; never use a broad browser-name or user-wide kill.
|
|
171
|
-
|
|
172
|
+
// One slow ps on a busy machine is not a missing inventory, so ask a few times.
|
|
173
|
+
function inventoryAvailable() {
|
|
174
|
+
const until = Date.now() + 1500;
|
|
175
|
+
do { if (processTable()) return true; } while (Date.now() < until);
|
|
176
|
+
return false;
|
|
177
|
+
}
|
|
178
|
+
if (process.platform !== 'win32' && !inventoryAvailable()) {
|
|
172
179
|
process.stdout.write('GOOSE_BROWSER_PREFLIGHT=' + JSON.stringify({ ok: false, code: 'probe_failed', detail: 'Cannot inspect owned browser processes with /bin/ps; browser was not launched' }) + '\n');
|
|
173
180
|
process.exit(1);
|
|
174
181
|
}
|
|
@@ -251,9 +258,21 @@ function finish(code, override) {
|
|
|
251
258
|
const text = 'GOOSE_BROWSER_PREFLIGHT=' + JSON.stringify(result) + '\n';
|
|
252
259
|
process.stdout.write(text, () => process.exit(code));
|
|
253
260
|
}
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
261
|
+
// Starting Node and loading Playwright has its own bound; the launch/close
|
|
262
|
+
// bound starts only when the probe is about to launch, so a slow start on a
|
|
263
|
+
// busy machine never eats into the browser's own time.
|
|
264
|
+
let deadline = setTimeout(() => finish(1, {
|
|
265
|
+
ok: false, code: 'timeout', detail: 'Browser probe did not start in time',
|
|
266
|
+
}), Number(args[4]));
|
|
267
|
+
let launching = false;
|
|
268
|
+
function startLaunchDeadline() {
|
|
269
|
+
if (launching) return;
|
|
270
|
+
launching = true;
|
|
271
|
+
clearTimeout(deadline);
|
|
272
|
+
deadline = setTimeout(() => finish(1, {
|
|
273
|
+
ok: false, code: 'timeout', detail: 'Browser launch/close probe timed out',
|
|
274
|
+
}), Number(args[2]) + Number(args[3]) + 500);
|
|
275
|
+
}
|
|
257
276
|
child.stdout.on('data', chunk => {
|
|
258
277
|
output += chunk;
|
|
259
278
|
if (Buffer.byteLength(output) > 60000) finish(1, { ok: false, code: 'probe_failed', detail: 'Browser probe exceeded its diagnostic output limit' });
|
|
@@ -273,6 +292,7 @@ child.stdout.on('data', chunk => {
|
|
|
273
292
|
const metadata = output.split(/\r?\n/).find(line => line.startsWith('GOOSE_BROWSER_PREFLIGHT_META=') && output.includes(line + '\n'));
|
|
274
293
|
if (metadata) {
|
|
275
294
|
try { meta = JSON.parse(metadata.slice('GOOSE_BROWSER_PREFLIGHT_META='.length)); } catch {}
|
|
295
|
+
startLaunchDeadline();
|
|
276
296
|
}
|
|
277
297
|
const line = output.split(/\r?\n/).find(line => line.startsWith('GOOSE_BROWSER_PREFLIGHT=') && output.includes(line + '\n'));
|
|
278
298
|
if (line) {
|
|
@@ -295,14 +315,15 @@ function checkBrowserPreflight(opts = {}) {
|
|
|
295
315
|
const folder = path.dirname(anchor);
|
|
296
316
|
const launchMs = opts.launchTimeoutMs ?? 15000;
|
|
297
317
|
const closeMs = opts.closeTimeoutMs ?? 3000;
|
|
318
|
+
const startupMs = opts.startupTimeoutMs ?? STARTUP_TIMEOUT_MS;
|
|
298
319
|
let result;
|
|
299
320
|
try {
|
|
300
|
-
const probe = (0, child_process_1.spawnSync)(process.execPath, ['-e', SUPERVISOR, PROBE, anchor, String(selected), String(launchMs), String(closeMs)], {
|
|
321
|
+
const probe = (0, child_process_1.spawnSync)(process.execPath, ['-e', SUPERVISOR, PROBE, anchor, String(selected), String(launchMs), String(closeMs), String(startupMs)], {
|
|
301
322
|
cwd,
|
|
302
323
|
env: process.env,
|
|
303
324
|
encoding: 'utf8',
|
|
304
325
|
stdio: ['ignore', 'pipe', 'pipe'],
|
|
305
|
-
timeout: launchMs + closeMs + 3500,
|
|
326
|
+
timeout: startupMs + launchMs + closeMs + 3500,
|
|
306
327
|
killSignal: 'SIGKILL',
|
|
307
328
|
maxBuffer: 64 * 1024,
|
|
308
329
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-preflight.js","sourceRoot":"","sources":["../../src/utils/browser-preflight.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"browser-preflight.js","sourceRoot":"","sources":["../../src/utils/browser-preflight.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare function exitWhenDone(): void;
|
|
2
|
+
/** Ends the process if a command asked for it, once what was printed has been written. */
|
|
3
|
+
export declare function exitIfRequested(): Promise<void>;
|
|
4
|
+
/** Ends the process now with `code`, once what was printed has been written: for a run that won't end on its own. */
|
|
5
|
+
export declare function exitNow(code: number): Promise<void>;
|
|
6
|
+
//# sourceMappingURL=exit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exit.d.ts","sourceRoot":"","sources":["../../src/utils/exit.ts"],"names":[],"mappings":"AAIA,wBAAgB,YAAY,IAAI,IAAI,CAEnC;AAED,0FAA0F;AAC1F,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAIrD;AAcD,qHAAqH;AACrH,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIzD"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.exitWhenDone = exitWhenDone;
|
|
4
|
+
exports.exitIfRequested = exitIfRequested;
|
|
5
|
+
exports.exitNow = exitNow;
|
|
6
|
+
// A command that may leave a handle open (a part's browser, say) asks for the process to end
|
|
7
|
+
// once it returns. The entry point ends it, so the command itself stays testable in-process.
|
|
8
|
+
let requested = false;
|
|
9
|
+
function exitWhenDone() {
|
|
10
|
+
requested = true;
|
|
11
|
+
}
|
|
12
|
+
/** Ends the process if a command asked for it, once what was printed has been written. */
|
|
13
|
+
async function exitIfRequested() {
|
|
14
|
+
if (!requested)
|
|
15
|
+
return;
|
|
16
|
+
await Promise.all([process.stdout, process.stderr].map(drained));
|
|
17
|
+
process.exit(process.exitCode ?? 0);
|
|
18
|
+
}
|
|
19
|
+
/** Waits for buffered output only: an empty write's callback can never fire on a piped stdout, which hung CI. */
|
|
20
|
+
function drained(stream) {
|
|
21
|
+
if (!stream.writableNeedDrain)
|
|
22
|
+
return Promise.resolve();
|
|
23
|
+
return new Promise((resolve) => {
|
|
24
|
+
const timer = setTimeout(resolve, 2000);
|
|
25
|
+
stream.once('drain', () => {
|
|
26
|
+
clearTimeout(timer);
|
|
27
|
+
resolve();
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
/** Ends the process now with `code`, once what was printed has been written: for a run that won't end on its own. */
|
|
32
|
+
async function exitNow(code) {
|
|
33
|
+
process.exitCode = code;
|
|
34
|
+
requested = true;
|
|
35
|
+
await exitIfRequested();
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=exit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exit.js","sourceRoot":"","sources":["../../src/utils/exit.ts"],"names":[],"mappings":";;AAIA,oCAEC;AAGD,0CAIC;AAeD,0BAIC;AAhCD,6FAA6F;AAC7F,6FAA6F;AAC7F,IAAI,SAAS,GAAG,KAAK,CAAC;AAEtB,SAAgB,YAAY;IAC1B,SAAS,GAAG,IAAI,CAAC;AACnB,CAAC;AAED,0FAA0F;AACnF,KAAK,UAAU,eAAe;IACnC,IAAI,CAAC,SAAS;QAAE,OAAO;IACvB,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IACjE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;AACtC,CAAC;AAED,iHAAiH;AACjH,SAAS,OAAO,CAAC,MAA0B;IACzC,IAAI,CAAC,MAAM,CAAC,iBAAiB;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IACxD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;YACxB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,qHAAqH;AAC9G,KAAK,UAAU,OAAO,CAAC,IAAY;IACxC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IACxB,SAAS,GAAG,IAAI,CAAC;IACjB,MAAM,eAAe,EAAE,CAAC;AAC1B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gooseworks",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.9-dev.56.eca9486d",
|
|
4
4
|
"description": "GooseWorks CLI — give your coding agent real data tools",
|
|
5
5
|
"bin": {
|
|
6
6
|
"gooseworks": "./dist/index.js"
|
|
7
7
|
},
|
|
8
8
|
"main": "./dist/index.js",
|
|
9
|
+
"gooseworksKit": {
|
|
10
|
+
"features": [
|
|
11
|
+
"detach",
|
|
12
|
+
"status",
|
|
13
|
+
"verify",
|
|
14
|
+
"log",
|
|
15
|
+
"json",
|
|
16
|
+
"step_edit",
|
|
17
|
+
"patched"
|
|
18
|
+
]
|
|
19
|
+
},
|
|
9
20
|
"scripts": {
|
|
10
21
|
"build": "tsc",
|
|
11
22
|
"prepare": "npm run build",
|
|
@@ -61,7 +72,7 @@
|
|
|
61
72
|
"homepage": "https://gooseworks.ai",
|
|
62
73
|
"author": "GooseWorks <help@gooseworks.ai>",
|
|
63
74
|
"gooseworksRelease": {
|
|
64
|
-
"commit": "
|
|
65
|
-
"branch": "
|
|
75
|
+
"commit": "eca9486d7db18307d83ebcfcf271075e32ccc17a",
|
|
76
|
+
"branch": "dev"
|
|
66
77
|
}
|
|
67
78
|
}
|
|
@@ -3,7 +3,7 @@ name: goose-ads
|
|
|
3
3
|
slug: goose-ads
|
|
4
4
|
description: Make, edit and study image ads with GooseWorks in this chat, from the brand's own products and approved sources. Start with brand_read and follow the next_step in every answer.
|
|
5
5
|
category: ads
|
|
6
|
-
version: 3.0.
|
|
6
|
+
version: 3.0.1
|
|
7
7
|
author: GooseWorks
|
|
8
8
|
---
|
|
9
9
|
|
|
@@ -28,13 +28,13 @@ Then follow the next_step in every answer.
|
|
|
28
28
|
|
|
29
29
|
## Rules
|
|
30
30
|
|
|
31
|
-
- Talk to marketers: what they get and
|
|
31
|
+
- Talk to marketers: what they get and decide, never how it's made.
|
|
32
32
|
- Never mention tools, ids, JSON, commands, software, vendors, models, timings, retries or your checks.
|
|
33
|
-
- Everything happens
|
|
34
|
-
- Money is a credit number
|
|
35
|
-
- Follow the next_step in every answer
|
|
36
|
-
-
|
|
37
|
-
- Paid work needs the customer's yes to the credit total first, on the card or in chat at the price shown;
|
|
38
|
-
- Before choosing an angle, claim, product or source, or asking a brand fact
|
|
33
|
+
- Everything happens here: never ask the customer to install anything or use a CLI, slash command or other app, except a video's make command when a next_step gives it (its last line says who starts it; original videos follow their own). Never give any other command, sign-in step or setting, and never ask them a technical question.
|
|
34
|
+
- Money is a credit number exactly as an answer gives it: never dollars or your own math.
|
|
35
|
+
- Follow the next_step in every answer.
|
|
36
|
+
- Card on screen (display_hint "widget"): one short line at most, then the wait in its next_step or end your turn; never re-list it or open a question box.
|
|
37
|
+
- Paid work needs the customer's yes to the credit total first, on the card or in chat at the price shown; never decide it for them, and pass on a yes only once they gave it to that total.
|
|
38
|
+
- Before choosing an angle, claim, product or source, or asking a brand fact, brand_read then knowledge_search for the task.
|
|
39
39
|
- Never invent an offer, a claim or proof.
|
|
40
40
|
- GooseWorks holds every provider key and bills the work: never ask for a key, token, password or ad account id, and never call a vendor yourself.
|
|
@@ -3,7 +3,7 @@ name: goose-product-photos
|
|
|
3
3
|
slug: goose-product-photos
|
|
4
4
|
description: Make product photos (studio, lifestyle or on a model) of a brand's real products with GooseWorks in this chat. Start with brand_read and follow the next_step in every answer.
|
|
5
5
|
category: ads
|
|
6
|
-
version: 1.0.
|
|
6
|
+
version: 1.0.1
|
|
7
7
|
author: GooseWorks
|
|
8
8
|
---
|
|
9
9
|
|
|
@@ -25,13 +25,13 @@ Then follow the next_step in every answer.
|
|
|
25
25
|
|
|
26
26
|
## Rules
|
|
27
27
|
|
|
28
|
-
- Talk to marketers: what they get and
|
|
28
|
+
- Talk to marketers: what they get and decide, never how it's made.
|
|
29
29
|
- Never mention tools, ids, JSON, commands, software, vendors, models, timings, retries or your checks.
|
|
30
|
-
- Everything happens
|
|
31
|
-
- Money is a credit number
|
|
32
|
-
- Follow the next_step in every answer
|
|
33
|
-
-
|
|
34
|
-
- Paid work needs the customer's yes to the credit total first, on the card or in chat at the price shown;
|
|
35
|
-
- Before choosing an angle, claim, product or source, or asking a brand fact
|
|
30
|
+
- Everything happens here: never ask the customer to install anything or use a CLI, slash command or other app, except a video's make command when a next_step gives it (its last line says who starts it; original videos follow their own). Never give any other command, sign-in step or setting, and never ask them a technical question.
|
|
31
|
+
- Money is a credit number exactly as an answer gives it: never dollars or your own math.
|
|
32
|
+
- Follow the next_step in every answer.
|
|
33
|
+
- Card on screen (display_hint "widget"): one short line at most, then the wait in its next_step or end your turn; never re-list it or open a question box.
|
|
34
|
+
- Paid work needs the customer's yes to the credit total first, on the card or in chat at the price shown; never decide it for them, and pass on a yes only once they gave it to that total.
|
|
35
|
+
- Before choosing an angle, claim, product or source, or asking a brand fact, brand_read then knowledge_search for the task.
|
|
36
36
|
- Never invent an offer, a claim or proof.
|
|
37
37
|
- GooseWorks holds every provider key and bills the work: never ask for a key, token, password or ad account id, and never call a vendor yourself.
|