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.
Files changed (188) hide show
  1. package/dist/agents/claude-mcp.d.ts +7 -1
  2. package/dist/agents/claude-mcp.d.ts.map +1 -1
  3. package/dist/agents/claude-mcp.js +43 -10
  4. package/dist/agents/claude-mcp.js.map +1 -1
  5. package/dist/auth/credentials.d.ts +8 -0
  6. package/dist/auth/credentials.d.ts.map +1 -1
  7. package/dist/auth/credentials.js +35 -1
  8. package/dist/auth/credentials.js.map +1 -1
  9. package/dist/auth/device-flow.d.ts +4 -1
  10. package/dist/auth/device-flow.d.ts.map +1 -1
  11. package/dist/auth/device-flow.js +8 -3
  12. package/dist/auth/device-flow.js.map +1 -1
  13. package/dist/auth/oauth-server.d.ts +9 -1
  14. package/dist/auth/oauth-server.d.ts.map +1 -1
  15. package/dist/auth/oauth-server.js +19 -11
  16. package/dist/auth/oauth-server.js.map +1 -1
  17. package/dist/auth/revoke.d.ts +10 -0
  18. package/dist/auth/revoke.d.ts.map +1 -0
  19. package/dist/auth/revoke.js +31 -0
  20. package/dist/auth/revoke.js.map +1 -0
  21. package/dist/commands/login.d.ts +15 -1
  22. package/dist/commands/login.d.ts.map +1 -1
  23. package/dist/commands/login.js +34 -10
  24. package/dist/commands/login.js.map +1 -1
  25. package/dist/commands/logout.d.ts.map +1 -1
  26. package/dist/commands/logout.js +29 -11
  27. package/dist/commands/logout.js.map +1 -1
  28. package/dist/commands/video.d.ts +35 -0
  29. package/dist/commands/video.d.ts.map +1 -1
  30. package/dist/commands/video.js +475 -39
  31. package/dist/commands/video.js.map +1 -1
  32. package/dist/index.js +2 -0
  33. package/dist/index.js.map +1 -1
  34. package/dist/kit/core/canonical.d.ts +3 -1
  35. package/dist/kit/core/canonical.d.ts.map +1 -1
  36. package/dist/kit/core/canonical.js +1 -1
  37. package/dist/kit/core/canonical.js.map +1 -1
  38. package/dist/kit/core/check.d.ts +2 -0
  39. package/dist/kit/core/check.d.ts.map +1 -1
  40. package/dist/kit/core/check.js +12 -2
  41. package/dist/kit/core/check.js.map +1 -1
  42. package/dist/kit/core/detach.d.ts +11 -0
  43. package/dist/kit/core/detach.d.ts.map +1 -0
  44. package/dist/kit/core/detach.js +72 -0
  45. package/dist/kit/core/detach.js.map +1 -0
  46. package/dist/kit/core/diff.d.ts +5 -0
  47. package/dist/kit/core/diff.d.ts.map +1 -0
  48. package/dist/kit/core/diff.js +132 -0
  49. package/dist/kit/core/diff.js.map +1 -0
  50. package/dist/kit/core/errors.d.ts +7 -1
  51. package/dist/kit/core/errors.d.ts.map +1 -1
  52. package/dist/kit/core/errors.js +11 -1
  53. package/dist/kit/core/errors.js.map +1 -1
  54. package/dist/kit/core/eyes.d.ts +80 -0
  55. package/dist/kit/core/eyes.d.ts.map +1 -0
  56. package/dist/kit/core/eyes.js +366 -0
  57. package/dist/kit/core/eyes.js.map +1 -0
  58. package/dist/kit/core/files.js +2 -2
  59. package/dist/kit/core/files.js.map +1 -1
  60. package/dist/kit/core/lock.d.ts +4 -0
  61. package/dist/kit/core/lock.d.ts.map +1 -0
  62. package/dist/kit/core/lock.js +13 -0
  63. package/dist/kit/core/lock.js.map +1 -0
  64. package/dist/kit/core/log.d.ts +38 -2
  65. package/dist/kit/core/log.d.ts.map +1 -1
  66. package/dist/kit/core/log.js +38 -5
  67. package/dist/kit/core/log.js.map +1 -1
  68. package/dist/kit/core/outcome.d.ts +114 -0
  69. package/dist/kit/core/outcome.d.ts.map +1 -0
  70. package/dist/kit/core/outcome.js +246 -0
  71. package/dist/kit/core/outcome.js.map +1 -0
  72. package/dist/kit/core/patch.d.ts +64 -0
  73. package/dist/kit/core/patch.d.ts.map +1 -0
  74. package/dist/kit/core/patch.js +289 -0
  75. package/dist/kit/core/patch.js.map +1 -0
  76. package/dist/kit/core/paths.d.ts +17 -0
  77. package/dist/kit/core/paths.d.ts.map +1 -1
  78. package/dist/kit/core/paths.js +21 -0
  79. package/dist/kit/core/paths.js.map +1 -1
  80. package/dist/kit/core/pieces.d.ts +16 -4
  81. package/dist/kit/core/pieces.d.ts.map +1 -1
  82. package/dist/kit/core/pieces.js +84 -27
  83. package/dist/kit/core/pieces.js.map +1 -1
  84. package/dist/kit/core/progress-reporter.d.ts +21 -4
  85. package/dist/kit/core/progress-reporter.d.ts.map +1 -1
  86. package/dist/kit/core/progress-reporter.js +74 -12
  87. package/dist/kit/core/progress-reporter.js.map +1 -1
  88. package/dist/kit/core/progress.d.ts +41 -4
  89. package/dist/kit/core/progress.d.ts.map +1 -1
  90. package/dist/kit/core/progress.js +105 -18
  91. package/dist/kit/core/progress.js.map +1 -1
  92. package/dist/kit/core/refusal-log.d.ts +7 -0
  93. package/dist/kit/core/refusal-log.d.ts.map +1 -0
  94. package/dist/kit/core/refusal-log.js +54 -0
  95. package/dist/kit/core/refusal-log.js.map +1 -0
  96. package/dist/kit/core/run.d.ts +39 -5
  97. package/dist/kit/core/run.d.ts.map +1 -1
  98. package/dist/kit/core/run.js +514 -83
  99. package/dist/kit/core/run.js.map +1 -1
  100. package/dist/kit/core/save.d.ts +7 -3
  101. package/dist/kit/core/save.d.ts.map +1 -1
  102. package/dist/kit/core/save.js +57 -20
  103. package/dist/kit/core/save.js.map +1 -1
  104. package/dist/kit/core/style.d.ts +1 -0
  105. package/dist/kit/core/style.d.ts.map +1 -1
  106. package/dist/kit/core/style.js +1 -1
  107. package/dist/kit/core/style.js.map +1 -1
  108. package/dist/kit/line/client.d.ts +14 -2
  109. package/dist/kit/line/client.d.ts.map +1 -1
  110. package/dist/kit/line/client.js +40 -20
  111. package/dist/kit/line/client.js.map +1 -1
  112. package/dist/kit/line/types.d.ts +33 -1
  113. package/dist/kit/line/types.d.ts.map +1 -1
  114. package/dist/kit/maker/cues.d.ts +67 -0
  115. package/dist/kit/maker/cues.d.ts.map +1 -0
  116. package/dist/kit/maker/cues.js +204 -0
  117. package/dist/kit/maker/cues.js.map +1 -0
  118. package/dist/kit/maker/encode.d.ts +5 -0
  119. package/dist/kit/maker/encode.d.ts.map +1 -1
  120. package/dist/kit/maker/encode.js +7 -1
  121. package/dist/kit/maker/encode.js.map +1 -1
  122. package/dist/kit/maker/facts.d.ts +46 -0
  123. package/dist/kit/maker/facts.d.ts.map +1 -0
  124. package/dist/kit/maker/facts.js +159 -0
  125. package/dist/kit/maker/facts.js.map +1 -0
  126. package/dist/kit/maker/inputs.d.ts +48 -3
  127. package/dist/kit/maker/inputs.d.ts.map +1 -1
  128. package/dist/kit/maker/inputs.js +151 -22
  129. package/dist/kit/maker/inputs.js.map +1 -1
  130. package/dist/kit/maker/make.d.ts +20 -1
  131. package/dist/kit/maker/make.d.ts.map +1 -1
  132. package/dist/kit/maker/make.js +129 -21
  133. package/dist/kit/maker/make.js.map +1 -1
  134. package/dist/kit/maker/page.d.ts.map +1 -1
  135. package/dist/kit/maker/page.js +49 -1
  136. package/dist/kit/maker/page.js.map +1 -1
  137. package/dist/kit/maker/parts/html-frames/1.2.1/part.json +1083 -0
  138. package/dist/kit/maker/parts/html-frames/src/part.d.ts.map +1 -1
  139. package/dist/kit/maker/parts/html-frames/src/part.js +4 -1
  140. package/dist/kit/maker/parts/html-frames/src/part.js.map +1 -1
  141. package/dist/kit/maker/runtime.d.ts.map +1 -1
  142. package/dist/kit/maker/runtime.js +54 -7
  143. package/dist/kit/maker/runtime.js.map +1 -1
  144. package/dist/kit/maker/timing.d.ts +74 -0
  145. package/dist/kit/maker/timing.d.ts.map +1 -0
  146. package/dist/kit/maker/timing.js +152 -0
  147. package/dist/kit/maker/timing.js.map +1 -0
  148. package/dist/kit/maker/under.d.ts +126 -0
  149. package/dist/kit/maker/under.d.ts.map +1 -0
  150. package/dist/kit/maker/under.js +299 -0
  151. package/dist/kit/maker/under.js.map +1 -0
  152. package/dist/kit/parts/catalog.d.ts +3 -20
  153. package/dist/kit/parts/catalog.d.ts.map +1 -1
  154. package/dist/kit/parts/catalog.js +6 -41
  155. package/dist/kit/parts/catalog.js.map +1 -1
  156. package/dist/kit/parts/loader.d.ts +7 -2
  157. package/dist/kit/parts/loader.d.ts.map +1 -1
  158. package/dist/kit/parts/loader.js +88 -23
  159. package/dist/kit/parts/loader.js.map +1 -1
  160. package/dist/skills/master-skill.d.ts +4 -6
  161. package/dist/skills/master-skill.d.ts.map +1 -1
  162. package/dist/skills/master-skill.js +28 -28
  163. package/dist/skills/master-skill.js.map +1 -1
  164. package/dist/skills/routes.js +5 -5
  165. package/dist/skills/routes.js.map +1 -1
  166. package/dist/skills/server-entry-skills.d.ts +6 -6
  167. package/dist/skills/server-entry-skills.d.ts.map +1 -1
  168. package/dist/skills/server-entry-skills.js +89 -60
  169. package/dist/skills/server-entry-skills.js.map +1 -1
  170. package/dist/utils/browser-preflight.d.ts +3 -0
  171. package/dist/utils/browser-preflight.d.ts.map +1 -1
  172. package/dist/utils/browser-preflight.js +27 -6
  173. package/dist/utils/browser-preflight.js.map +1 -1
  174. package/dist/utils/exit.d.ts +6 -0
  175. package/dist/utils/exit.d.ts.map +1 -0
  176. package/dist/utils/exit.js +37 -0
  177. package/dist/utils/exit.js.map +1 -0
  178. package/package.json +14 -3
  179. package/skills/goose-ads/SKILL.md +8 -8
  180. package/skills/goose-product-photos/SKILL.md +8 -8
  181. package/skills/goose-video/SKILL.md +29 -595
  182. package/skills/goose-video-local/SKILL.md +3 -1572
  183. package/skills/gooseworks/SKILL.md +10 -12
  184. package/skills/make-custom-video/SKILL.md +25 -672
  185. package/skills/manifest.json +7 -7
  186. package/skills/routes.json +3 -3
  187. package/dist/kit/maker/parts/html-frames/1.1.0/part.json +0 -199
  188. 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 dev @ 810c496ee
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.0.2';
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 with GooseWorks in this chat: the product first, then the brand read, then video_formats; follow the next_step in every answer."
23
- version: 4.1.0
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
- Use GooseWorks to make the customer's video, here in this chat. For a video already started (named, or sent by a card), call video_read and follow its next_step.
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 new video, in this order. Suggest nothing before step 5 and write no plan before they pick a style.
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. 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.
35
- 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.
36
- 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.
37
- 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.
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 what they decide, never how it is made.
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 in this chat: never ask the customer to install anything or use a CLI, slash command or other app; the only commands are gooseworks video check and gooseworks video make <id>, when a next_step gives them.
44
- - Money is a credit number, exactly as an answer gives it: never dollars, never your own math.
45
- - Follow the next_step in every answer; it says what to do now.
46
- - With a card on screen (display_hint "widget"), add at most one short line; never re-list it or its links.
47
- - Paid work needs the customer's yes to the credit total first, on the card or in chat at the price shown; you never approve.
48
- - A yes counts only for the price the customer was shown: their press on the plan card, or their yes in chat sent with that price.
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 an original video from a brief or a reference video with GooseWorks in this chat: the product first, then the brand read, then video_formats; follow the next_step in every answer."
56
- version: 3.1.0
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
- # GooseWorks video
71
+ # Human version
60
72
 
61
- Use GooseWorks to make the customer's video, here in this chat. For a video already started (named, or sent by a card), call video_read and follow its next_step.
73
+ The owner approves the script, then actual storyboard/ingredients and budget. Both authenticated reviews must pass before production.
62
74
 
63
- For a new video, in this order. Suggest nothing before step 5 and write no plan before they pick a style.
75
+ ---
64
76
 
65
- 1. The request. If they haven't said what the video is about, ask in one short question.
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
- ## Rules
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
- - Talk to marketers: what they get and what they decide, never how it is made.
75
- - Never mention tools, ids, JSON, commands, software, vendors, models, timings, retries or your checks.
76
- - Everything happens in this chat: never ask the customer to install anything or use a CLI, slash command or other app; the only commands are gooseworks video check and gooseworks video make <id>, when a next_step gives them.
77
- - Money is a credit number, exactly as an answer gives it: never dollars, never your own math.
78
- - Follow the next_step in every answer; it says what to do now.
79
- - With a card on screen (display_hint "widget"), add at most one short line; never re-list it or its links.
80
- - Paid work needs the customer's yes to the credit total first, on the card or in chat at the price shown; you never approve.
81
- - A yes counts only for the price the customer was shown: their press on the plan card, or their yes in chat sent with that price.
82
- - 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.
83
- - Never invent an offer, a claim or proof.
84
- - 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.
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 what they decide, never how it is made.
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 in this chat: never ask the customer to install anything or use a CLI, slash command or other app; the only commands are gooseworks video check and gooseworks video make <id>, when a next_step gives them.
92
- - Money is a credit number, exactly as an answer gives it: never dollars, never your own math.
93
- - Follow the next_step in every answer; it says what to do now.
94
- - With a card on screen (display_hint "widget"), add at most one short line; never re-list it or its links.
95
- - Paid work needs the customer's yes to the credit total first, on the card or in chat at the price shown; you never approve.
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 what they decide, never how it is made.
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 in this chat: never ask the customer to install anything or use a CLI, slash command or other app; the only commands are gooseworks video check and gooseworks video make <id>, when a next_step gives them.
101
- - Money is a credit number, exactly as an answer gives it: never dollars, never your own math.
102
- - Follow the next_step in every answer; it says what to do now.
103
- - With a card on screen (display_hint "widget"), add at most one short line; never re-list it or its links.
104
- - Paid work needs the customer's yes to the credit total first, on the card or in chat at the price shown; you never approve.
105
- - Before choosing an angle, claim, product or source, or asking a brand fact: brand_read, then knowledge_search for the task.
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 what they decide, never how it is made.
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 in this chat: never ask the customer to install anything or use a CLI, slash command or other app; the only commands are gooseworks video check and gooseworks video make <id>, when a next_step gives them.
111
- - Money is a credit number, exactly as an answer gives it: never dollars, never your own math.
112
- - Follow the next_step in every answer; it says what to do now.
113
- - With a card on screen (display_hint "widget"), add at most one short line; never re-list it or its links.
114
- - Paid work needs the customer's yes to the credit total first, on the card or in chat at the price shown; you never approve.
115
- - Before choosing an angle, claim, product or source, or asking a brand fact: brand_read, then knowledge_search for the task.
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,yCAAyC;AACzC,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgChB;IACC,mBAAmB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCtB;CACS,CAAC;AAIX,wFAAwF;AAC3E,QAAA,wBAAwB,GAAG;IACtC,GAAG,EAAE;;;;;;;;mJAQ4I;IACjJ,GAAG,EAAE;;;;;;;;;mJAS4I;IACjJ,MAAM,EAAE;;;;;;;;;mJASyI;CACzI,CAAC"}
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;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"}
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
- if (process.platform !== 'win32' && !processTable()) {
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
- const deadline = setTimeout(() => finish(1, {
255
- ok: false, code: 'timeout', detail: 'Browser launch/close probe timed out',
256
- }), Number(args[2]) + Number(args[3]) + 500);
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiRA,sDAgDC;AAjUD,iDAA0C;AAC1C,2CAA6B;AAmB7B,MAAM,MAAM,GAAG,0BAA0B,CAAC;AAE1C,mFAAmF;AACnF,+EAA+E;AAC/E,kFAAkF;AAClF,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmFvB,CAAC;AAEF,SAAS,KAAK,CAAC,KAAa;IAC1B,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;AAC3F,CAAC;AAED,SAAS,MAAM,CAAC,IAAsB,EAAE,MAAc,EAAE,OAAgB;IACtE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;IAC/E,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,6BAA6B,CAAC;IACrG,IAAI,IAAI,KAAK,gBAAgB;QAAE,OAAO,qEAAqE,CAAC;IAC5G,IAAI,IAAI,KAAK,gBAAgB;QAAE,OAAO,GAAG,EAAE,4EAA4E,CAAC;IACxH,IAAI,IAAI,KAAK,iBAAiB;QAAE,OAAO,GAAG,EAAE,OAAO,GAAG,mBAAmB,CAAC;IAC1E,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,EAAE,CAAC;IAChC,OAAO,GAAG,EAAE,OAAO,GAAG,+BAA+B,CAAC;AACxD,CAAC;AAED,+EAA+E;AAC/E,6EAA6E;AAC7E,6EAA6E;AAC7E,2EAA2E;AAC3E,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0I5B,CAAC;AAEF;;;;GAIG;AACH,SAAgB,qBAAqB,CAAC,OAKlC,EAAE;IACJ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,KAAK,SAAS,CAAC;IACnD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,IAAI,iCAAiC,CAAC,CAAC;IAC3F,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,IAAI,KAAK,CAAC;IAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC;IAC5C,IAAI,MAA2C,CAAC;IAChD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAA,yBAAS,EAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE;YAChI,GAAG;YACH,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;YACjC,OAAO,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI;YAClC,UAAU,EAAE,SAAS;YACrB,SAAS,EAAE,EAAE,GAAG,IAAI;SACrB,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,KAAK,CAAC,KAA0C,CAAC;QAC/D,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QACnF,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACzB,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAC/C,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACvH,CAAC;aAAM,CAAC;YACN,MAAM,GAAG;gBACP,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,KAAK,EAAE,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc;gBAC9D,MAAM,EAAE,KAAK,EAAE,IAAI,KAAK,WAAW;oBACjC,CAAC,CAAC,8DAA8D;oBAChE,CAAC,CAAC,qCAAqC,KAAK,CAAC,KAAK,EAAE,OAAO,IAAI,QAAQ,KAAK,CAAC,MAAM,EAAE,GAAG;aAC3F,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,yBAAyB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;IAC1I,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,MAAM,CAAC,OAAO,IAAI,iBAAiB,OAAO,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACxH,MAAM,UAAU,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,0BAA0B,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAClG,OAAO;QACL,GAAG,MAAM;QACT,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,YAAY,MAAM,EAAE,CAAC,CAAC,CAAC,4BAA4B,GAAG,EAAE,KAAK,MAAM,CAAC,MAAM,GAAG,QAAQ,GAAG,UAAU,EAAE;QAC1H,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC;KAC/G,CAAC;AACJ,CAAC"}
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.8",
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": "4b642d8de5662254c099a3ac095b1dc8987d495f",
65
- "branch": "main"
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.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 what they decide, never how it is made.
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 in this chat: never ask the customer to install anything or use a CLI, slash command or other app; the only commands are gooseworks video check and gooseworks video make <id>, when a next_step gives them.
34
- - Money is a credit number, exactly as an answer gives it: never dollars, never your own math.
35
- - Follow the next_step in every answer; it says what to do now.
36
- - With a card on screen (display_hint "widget"), add at most one short line; never re-list it or its links.
37
- - Paid work needs the customer's yes to the credit total first, on the card or in chat at the price shown; you never approve.
38
- - Before choosing an angle, claim, product or source, or asking a brand fact: brand_read, then knowledge_search for the task.
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.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 what they decide, never how it is made.
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 in this chat: never ask the customer to install anything or use a CLI, slash command or other app; the only commands are gooseworks video check and gooseworks video make <id>, when a next_step gives them.
31
- - Money is a credit number, exactly as an answer gives it: never dollars, never your own math.
32
- - Follow the next_step in every answer; it says what to do now.
33
- - With a card on screen (display_hint "widget"), add at most one short line; never re-list it or its links.
34
- - Paid work needs the customer's yes to the credit total first, on the card or in chat at the price shown; you never approve.
35
- - Before choosing an angle, claim, product or source, or asking a brand fact: brand_read, then knowledge_search for the task.
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.