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
@@ -1 +1 @@
1
- {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../src/kit/core/progress.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAgB,MAAM,eAAe,CAAC;AAYnE,wBAAgB,KAAK,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAE5C;AAYD,uDAAuD;AACvD,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA8B;IACpD,IAAI,SAA8B;IAElC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,QAAQ,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI;IAM3E,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IASvB,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAQrF,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,GAAG,QAAiB,GAAG,IAAI;IAO3D,OAAO,IAAI,eAAe;CAgC3B"}
1
+ {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../src/kit/core/progress.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAY,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEnE,eAAO,MAAM,UAAU;;;;;;;;;;;;CAYb,CAAC;AAEX,2EAA2E;AAC3E,eAAO,MAAM,kBAAkB,kCAAkC,CAAC;AAElE,MAAM,MAAM,MAAM,GAAG,MAAM,OAAO,UAAU,CAAC;AAqB7C;;;GAGG;AACH,wBAAgB,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ,CAAC,GAAG,MAAM,GAAG,IAAI,CAGpF;AAmBD,uDAAuD;AACvD,qBAAa,YAAY;IAKX,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAJrC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA8B;IACpD,IAAI,SAA6B;IAEjC,sDAAsD;gBACzB,QAAQ,GAAE,MAAM,IAAsB;IAEnE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI;IAM/E,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAUvB,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IASrF,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,GAAG,QAAiB,GAAG,IAAI;IAQ3D,OAAO,IAAI,eAAe;CAqC3B;AAID;;;GAGG;AACH,qBAAa,SAAS;IAGR,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoF;gBAE7E,OAAO,SAAQ;IAE5C,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE;IAI9D,wDAAwD;IACxD,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,YAAY,EAAE;CAWxE;AAED,4CAA4C;AAC5C,wBAAgB,MAAM,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAEjD"}
@@ -1,23 +1,65 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ProgressBook = void 0;
3
+ exports.StepLines = exports.ProgressBook = exports.AVATAR_VOICE_LABEL = exports.ROW_LABELS = void 0;
4
4
  exports.rowOf = rowOf;
5
- /** The card's rows, in order. A row shows only when the video has a step of that kind. */
6
- const ROWS = [
7
- { label: 'Voice', kinds: ['generate_voice'] },
8
- { label: 'Pictures', kinds: ['generate_image'] },
9
- { label: 'Clips', kinds: ['generate_video'] },
10
- { label: 'Music', kinds: ['generate_music', 'generate_sfx'] },
11
- { label: 'Putting it together', kinds: ['render_html', 'compose', 'caption', 'mix', 'end_card'] },
12
- { label: 'Final check', kinds: ['check'] },
13
- ];
14
- function rowOf(kind) {
15
- return ROWS.find((row) => row.kinds.includes(kind))?.label ?? 'Putting it together';
5
+ exports.lineOf = lineOf;
6
+ exports.ROW_LABELS = {
7
+ voice: 'Creating the voice',
8
+ pictures: 'Creating the pictures',
9
+ clips: 'Creating the video clips',
10
+ lips: 'Syncing lips',
11
+ music: 'Creating the music',
12
+ screens: 'Creating the screens',
13
+ join: 'Joining the clips',
14
+ captions: 'Adding captions',
15
+ sound: 'Mixing the sound',
16
+ end_card: 'Creating the end card',
17
+ check: 'Checking it once before delivering',
18
+ };
19
+ /** The voice row's label when the video also syncs faces to that voice. */
20
+ exports.AVATAR_VOICE_LABEL = 'Creating the avatar and voice';
21
+ const ROW_ORDER = Object.keys(exports.ROW_LABELS);
22
+ const KIND_ROWS = {
23
+ generate_voice: 'voice',
24
+ generate_image: 'pictures',
25
+ generate_video: 'clips',
26
+ generate_music: 'music',
27
+ generate_sfx: 'music',
28
+ render_html: 'screens',
29
+ compose: 'join',
30
+ caption: 'captions',
31
+ mix: 'sound',
32
+ end_card: 'end_card',
33
+ check: 'check',
34
+ };
35
+ /** Rows whose count is of paid pieces the person will see (lines, pictures, clips); the rest count frames or beats. */
36
+ const PIECE_ROWS = new Set(['voice', 'pictures', 'clips', 'lips', 'music']);
37
+ /**
38
+ * A step's row, from its part's manifest. The server's table picks lip-sync by part id; the core
39
+ * names no part, so here lip-sync is a video part fed recorded sound (today the same one part).
40
+ */
41
+ function rowOf(manifest) {
42
+ if (manifest.kind === 'generate_video' && takesMedia(manifest.inputs, 'audio'))
43
+ return 'lips';
44
+ return KIND_ROWS[manifest.kind] ?? null;
45
+ }
46
+ function takesMedia(schema, media, depth = 0) {
47
+ if (depth > 64 || !schema || typeof schema !== 'object')
48
+ return false;
49
+ const file = schema['x-kit-file'];
50
+ if (file && file.media === media)
51
+ return true;
52
+ return Object.values(schema).some((value) => takesMedia(value, media, depth + 1));
16
53
  }
17
54
  /** What has been made so far, as the card shows it. */
18
55
  class ProgressBook {
56
+ onChange;
19
57
  steps = new Map();
20
- note = 'Getting your video ready';
58
+ note = 'Getting the style ready';
59
+ /** `onChange` hears every start, count and finish. */
60
+ constructor(onChange = () => undefined) {
61
+ this.onChange = onChange;
62
+ }
21
63
  plan(steps) {
22
64
  for (const step of steps) {
23
65
  if (!this.steps.has(step.id))
@@ -30,6 +72,7 @@ class ProgressBook {
30
72
  step.state = 'now';
31
73
  step.done = 0;
32
74
  step.fraction = undefined;
75
+ this.onChange();
33
76
  }
34
77
  }
35
78
  count(id, update) {
@@ -42,6 +85,7 @@ class ProgressBook {
42
85
  step.done = Math.min(Math.floor(update.done), step.total);
43
86
  if (typeof update.fraction === 'number' && update.fraction >= 0 && update.fraction <= 1)
44
87
  step.fraction = update.fraction;
88
+ this.onChange();
45
89
  }
46
90
  finish(id, state = 'done') {
47
91
  const step = this.steps.get(id);
@@ -50,24 +94,26 @@ class ProgressBook {
50
94
  step.state = state;
51
95
  if (state === 'done')
52
96
  step.done = step.total;
97
+ this.onChange();
53
98
  }
54
99
  request() {
55
100
  const all = [...this.steps.values()];
56
101
  const total = all.reduce((n, s) => n + s.total, 0);
57
- const done = all.reduce((n, s) => n + (s.state === 'done' ? s.total : Math.min(s.done, s.total)), 0);
102
+ const done = all.reduce((n, s) => n + madeOf(s), 0);
58
103
  const eta = all.reduce((n, s) => {
59
104
  if (s.state === 'done')
60
105
  return n;
61
106
  const left = s.fraction !== undefined ? 1 - s.fraction : s.total ? 1 - s.done / s.total : 1;
62
107
  return n + s.typical_s * (s.state === 'now' ? left : 1);
63
108
  }, 0);
109
+ const lips = all.some((s) => s.row === 'lips');
64
110
  const rows = [];
65
- for (const row of ROWS) {
66
- const members = all.filter((s) => row.kinds.includes(s.kind));
111
+ for (const row of ROW_ORDER) {
112
+ const members = all.filter((s) => s.row === row);
67
113
  if (!members.length)
68
114
  continue;
69
115
  const rowTotal = members.reduce((n, s) => n + s.total, 0);
70
- const rowDone = members.reduce((n, s) => n + (s.state === 'done' ? s.total : Math.min(s.done, s.total)), 0);
116
+ const rowDone = members.reduce((n, s) => n + madeOf(s), 0);
71
117
  const state = members.some((s) => s.state === 'failed')
72
118
  ? 'failed'
73
119
  : members.every((s) => s.state === 'done')
@@ -75,7 +121,11 @@ class ProgressBook {
75
121
  : members.some((s) => s.state === 'now' || s.state === 'done')
76
122
  ? 'now'
77
123
  : 'todo';
78
- rows.push({ label: row.label, state, ...(rowTotal > 1 ? { detail: `${Math.min(rowDone, rowTotal)} of ${rowTotal}` } : {}) });
124
+ rows.push({
125
+ label: row === 'voice' && lips ? exports.AVATAR_VOICE_LABEL : exports.ROW_LABELS[row],
126
+ state,
127
+ ...(PIECE_ROWS.has(row) && rowTotal > 1 ? { detail: `${Math.min(rowDone, rowTotal)} of ${rowTotal}` } : {}),
128
+ });
79
129
  }
80
130
  return {
81
131
  pieces_done: Math.min(done, 500),
@@ -87,4 +137,41 @@ class ProgressBook {
87
137
  }
88
138
  }
89
139
  exports.ProgressBook = ProgressBook;
140
+ const MARK = { now: '▸', done: '✓', failed: '✗', todo: '' };
141
+ /**
142
+ * The rows as lines for the person running the kit: a row's start, end or failure always, and a
143
+ * new count on a row at most once every `everyMs`. The card's own labels, never a part or a code.
144
+ */
145
+ class StepLines {
146
+ everyMs;
147
+ shown = new Map();
148
+ constructor(everyMs = 5_000) {
149
+ this.everyMs = everyMs;
150
+ }
151
+ next(steps, now) {
152
+ return this.changed(steps, now).map(lineOf);
153
+ }
154
+ /** The rows to show now, by the same rule as `next`. */
155
+ changed(steps, now) {
156
+ const rows = [];
157
+ for (const step of steps ?? []) {
158
+ if (step.state === 'todo')
159
+ continue;
160
+ const last = this.shown.get(step.label);
161
+ if (last && last.state === step.state && (last.detail === step.detail || now - last.at < this.everyMs))
162
+ continue;
163
+ this.shown.set(step.label, { state: step.state, detail: step.detail, at: now });
164
+ rows.push(step);
165
+ }
166
+ return rows;
167
+ }
168
+ }
169
+ exports.StepLines = StepLines;
170
+ /** One row as the line the person reads. */
171
+ function lineOf(step) {
172
+ return `${MARK[step.state]} ${step.label}${step.state === 'now' && step.detail ? ` (${step.detail})` : ''}`;
173
+ }
174
+ function madeOf(step) {
175
+ return step.state === 'done' ? step.total : Math.min(step.done, step.total);
176
+ }
90
177
  //# sourceMappingURL=progress.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"progress.js","sourceRoot":"","sources":["../../../src/kit/core/progress.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"progress.js","sourceRoot":"","sources":["../../../src/kit/core/progress.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /** Written straight to the video's log file, so it needs no run lock and no attached KitLog. */
2
+ export declare function recordRefusal(home: string, videoId: string, what: string, error: {
3
+ code: string;
4
+ status: number;
5
+ next: string;
6
+ }): void;
7
+ //# sourceMappingURL=refusal-log.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refusal-log.d.ts","sourceRoot":"","sources":["../../../src/kit/core/refusal-log.ts"],"names":[],"mappings":"AAMA,gGAAgG;AAChG,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAStI"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.recordRefusal = recordRefusal;
37
+ // One line in the video's log for a refusal that comes before the run has its own log.
38
+ const fs_1 = require("fs");
39
+ const path = __importStar(require("path"));
40
+ const paths_1 = require("./paths");
41
+ const secrets_1 = require("./secrets");
42
+ /** Written straight to the video's log file, so it needs no run lock and no attached KitLog. */
43
+ function recordRefusal(home, videoId, what, error) {
44
+ try {
45
+ const file = (0, paths_1.runLayout)(home, videoId).log;
46
+ (0, fs_1.mkdirSync)(path.dirname(file), { recursive: true, mode: 0o700 });
47
+ const entry = { at: new Date().toISOString(), level: 'warn', message: what, fields: { code: error.code, status: error.status, next: error.next } };
48
+ (0, fs_1.appendFileSync)(file, (0, secrets_1.redact)(JSON.stringify(entry)) + '\n', { mode: 0o600 });
49
+ }
50
+ catch {
51
+ // An invalid id has no video folder; the refusal is still printed.
52
+ }
53
+ }
54
+ //# sourceMappingURL=refusal-log.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refusal-log.js","sourceRoot":"","sources":["../../../src/kit/core/refusal-log.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,sCASC;AAhBD,uFAAuF;AACvF,2BAA+C;AAC/C,2CAA6B;AAC7B,mCAAoC;AACpC,uCAAmC;AAEnC,gGAAgG;AAChG,SAAgB,aAAa,CAAC,IAAY,EAAE,OAAe,EAAE,IAAY,EAAE,KAAqD;IAC9H,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAA,iBAAS,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC;QAC1C,IAAA,cAAS,EAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAChE,MAAM,KAAK,GAAG,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QACnJ,IAAA,mBAAc,EAAC,IAAI,EAAE,IAAA,gBAAM,EAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9E,CAAC;IAAC,MAAM,CAAC;QACP,mEAAmE;IACrE,CAAC;AACH,CAAC"}
@@ -1,7 +1,9 @@
1
- import type { LayerSlot } from '../part-interface';
1
+ import type { LayerSlot, OutputExpectation } from '../part-interface';
2
2
  import { type Sleep, type VideoLine } from '../line/client';
3
+ import { type ApprovedPlan, type HandedVideo } from '../line/types';
3
4
  import type { KitHost } from './host';
4
5
  import type { KitLog } from './log';
6
+ import { type LoadedStyle } from './style';
5
7
  import { type Toolchain } from './toolchain';
6
8
  export declare const LAYER_ORDER: readonly LayerSlot[];
7
9
  export interface MakeDeps {
@@ -16,20 +18,52 @@ export interface MakeDeps {
16
18
  tools?: Toolchain;
17
19
  sleep?: Sleep;
18
20
  heartbeatMs?: number;
21
+ /** How long the run's last report may take once it ends (default 30 s). */
22
+ lastWordMs?: number;
23
+ /** The longest this run may take; by default worked out from its parts, at most RUN_CEILING_MAX_MS. */
24
+ ceilingMs?: number;
19
25
  now?: () => Date;
20
26
  /** Ctrl-C from the command. */
21
27
  signal?: AbortSignal;
28
+ /**
29
+ * Ends the process when the run has stopped but something it started won't let go: called with the run's
30
+ * result once the last word's deadline and a short grace have passed. The command's own exit, never the core's.
31
+ */
32
+ forceEnd?: (result: MakeResult) => void;
33
+ /** Steps to run from their edited copies (`video make <id> --patched <step>`). */
34
+ patched?: string[];
22
35
  }
23
- export type MakeResult = {
36
+ /** What every end carries: the code a failure was reported with, and this run's own log. */
37
+ interface EndFacts {
38
+ code?: string;
39
+ /** The line's next step when the line itself ended the run. */
40
+ next?: string;
41
+ log?: string;
42
+ }
43
+ export type MakeResult = ({
24
44
  status: 'done';
25
45
  message: string;
26
- } | {
46
+ final?: string;
47
+ contact_sheet?: string;
48
+ warnings?: string[];
49
+ } & EndFacts) | ({
27
50
  status: 'stopped' | 'failed';
28
51
  message: string;
29
- } | {
52
+ } & EndFacts) | ({
30
53
  status: 'update_kit';
31
54
  message: string;
32
55
  min_version?: string;
33
- };
56
+ } & EndFacts);
57
+ /** The longest one run may take, whatever its parts: past it the run stops and the same command carries on. */
58
+ export declare const RUN_CEILING_MAX_MS: number;
59
+ /** The shortest ceiling, so a style of quick parts still has room for a slow provider. */
60
+ export declare const RUN_CEILING_MIN_MS: number;
61
+ /** The person's words when the run reached its ceiling. */
62
+ export declare const CEILING_WORDS = "Making this video took much longer than it should, so this run stopped. Run the same command again; what was made so far is kept.";
63
+ /** What the finished video must be, handed to every layer as `expect`. Exported for tests. */
64
+ export declare function expectationOf(style: LoadedStyle['style'], plan: ApprovedPlan): OutputExpectation;
65
+ /** The first line after the hand-over: which video, for which brand, on which GooseWorks. */
66
+ export declare function startLine(video: HandedVideo | undefined, environment: MakeDeps['environment']): string;
34
67
  export declare function makeVideo(videoId: string, deps: MakeDeps): Promise<MakeResult>;
68
+ export {};
35
69
  //# sourceMappingURL=run.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/kit/core/run.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAMV,SAAS,EAUV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAA+C,KAAK,KAAK,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAOzG,OAAO,KAAK,EAAE,OAAO,EAAc,MAAM,QAAQ,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAUpC,OAAO,EAAwC,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAKnF,eAAO,MAAM,WAAW,EAAE,SAAS,SAAS,EAA4C,CAAC;AAYzF,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,mEAAmE;IACnE,WAAW,EAAE,YAAY,GAAG,SAAS,GAAG,OAAO,CAAC;IAChD,oEAAoE;IACpE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,+BAA+B;IAC/B,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,MAAM,UAAU,GAClB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AA+8BpE,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAEpF"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/kit/core/run.ts"],"names":[],"mappings":"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"}