gooseworks 0.5.9-dev.53.c1bd6be2 → 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 (150) 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 +18 -1
  89. package/dist/kit/core/progress.d.ts.map +1 -1
  90. package/dist/kit/core/progress.js +44 -1
  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 +35 -5
  97. package/dist/kit/core/run.d.ts.map +1 -1
  98. package/dist/kit/core/run.js +497 -79
  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.js +1 -1
  105. package/dist/kit/core/style.js.map +1 -1
  106. package/dist/kit/line/client.d.ts +14 -2
  107. package/dist/kit/line/client.d.ts.map +1 -1
  108. package/dist/kit/line/client.js +40 -20
  109. package/dist/kit/line/client.js.map +1 -1
  110. package/dist/kit/line/types.d.ts +33 -1
  111. package/dist/kit/line/types.d.ts.map +1 -1
  112. package/dist/kit/maker/inputs.js +1 -1
  113. package/dist/kit/maker/make.d.ts.map +1 -1
  114. package/dist/kit/maker/make.js +4 -2
  115. package/dist/kit/maker/make.js.map +1 -1
  116. package/dist/kit/maker/parts/html-frames/{1.2.0 → 1.2.1}/part.json +1 -1
  117. package/dist/kit/parts/catalog.d.ts +3 -20
  118. package/dist/kit/parts/catalog.d.ts.map +1 -1
  119. package/dist/kit/parts/catalog.js +6 -41
  120. package/dist/kit/parts/catalog.js.map +1 -1
  121. package/dist/kit/parts/loader.d.ts +7 -2
  122. package/dist/kit/parts/loader.d.ts.map +1 -1
  123. package/dist/kit/parts/loader.js +88 -23
  124. package/dist/kit/parts/loader.js.map +1 -1
  125. package/dist/skills/master-skill.d.ts +1 -3
  126. package/dist/skills/master-skill.d.ts.map +1 -1
  127. package/dist/skills/master-skill.js +12 -14
  128. package/dist/skills/master-skill.js.map +1 -1
  129. package/dist/skills/routes.js +4 -4
  130. package/dist/skills/routes.js.map +1 -1
  131. package/dist/skills/server-entry-skills.d.ts +6 -6
  132. package/dist/skills/server-entry-skills.js +15 -15
  133. package/dist/skills/server-entry-skills.js.map +1 -1
  134. package/dist/utils/browser-preflight.d.ts +3 -0
  135. package/dist/utils/browser-preflight.d.ts.map +1 -1
  136. package/dist/utils/browser-preflight.js +27 -6
  137. package/dist/utils/browser-preflight.js.map +1 -1
  138. package/dist/utils/exit.d.ts +6 -0
  139. package/dist/utils/exit.d.ts.map +1 -0
  140. package/dist/utils/exit.js +37 -0
  141. package/dist/utils/exit.js.map +1 -0
  142. package/package.json +13 -2
  143. package/skills/goose-ads/SKILL.md +3 -3
  144. package/skills/goose-product-photos/SKILL.md +3 -3
  145. package/skills/goose-video/SKILL.md +5 -5
  146. package/skills/goose-video-local/SKILL.md +3 -3
  147. package/skills/gooseworks/SKILL.md +6 -8
  148. package/skills/make-custom-video/SKILL.md +2 -2
  149. package/skills/manifest.json +7 -7
  150. package/skills/routes.json +3 -3
@@ -61,14 +61,19 @@ class PieceFailure extends errors_1.PartError {
61
61
  this.line = line;
62
62
  this.attempt = attempt;
63
63
  }
64
- /** A provider failure whose piece has used both its attempts: no later run may order it again. */
64
+ /**
65
+ * A charged provider failure whose piece has used both its attempts: no later run may order it
66
+ * again. A failure the line says was free never spends the piece; the next run tries it anew.
67
+ */
65
68
  get spent() {
66
- return this.code === 'provider_failed' && this.attempt >= 2;
69
+ return this.code === 'provider_failed' && this.attempt >= 2 && this.line.details?.charged !== false;
67
70
  }
68
71
  }
69
72
  exports.PieceFailure = PieceFailure;
70
73
  /** A piece the maker failed twice: the journal never lets a later run order it again. */
71
- exports.FAILED_TWICE = 'One part of this video failed at its maker twice, so the video stopped there. Nothing was charged for that part. Ask for a fix to make it again.';
74
+ exports.FAILED_TWICE = 'One part of this video failed at its maker twice, so the video stopped there. Ask for a fix to make it again.';
75
+ /** New keys one run may make for one piece: its first try and the step's one retry. */
76
+ const NEW_ATTEMPTS_PER_RUN = 2;
72
77
  /** pieces/<inputs_hash>/: downloaded paid results, reused by any re-run. */
73
78
  class PieceCache {
74
79
  root;
@@ -142,16 +147,13 @@ function topStrings(body) {
142
147
  return [];
143
148
  return Object.values(body).filter((v) => typeof v === 'string');
144
149
  }
150
+ /** The server's sentence for the person, else its error and fix. */
145
151
  function stopFor(body) {
146
- const message = [body.error, body.fix].filter(Boolean).join(' ');
147
- if (body.next === 'update_kit')
148
- return new errors_1.KitStop(message, 'update_kit', body.code);
149
- if (body.next === 'change_request')
150
- return new errors_1.KitStop(message, 'change_request', body.code);
151
- return new errors_1.KitStop(message, 'stop', body.code);
152
+ const message = body.say?.trim() || [body.error, body.fix].filter(Boolean).join(' ');
153
+ return (0, errors_1.lineStop)(message, body.next, body.code);
152
154
  }
153
155
  function lineStop(error) {
154
- return stopFor({ code: error.code, error: error.message, fix: error.fix, next: error.next });
156
+ return stopFor({ code: error.code, error: error.message, fix: error.fix, say: error.say, next: error.next });
155
157
  }
156
158
  /** A failed piece, by the line's next step: only a provider failure the line says to retry is retried. */
157
159
  function failureFor(failure, attempt) {
@@ -161,7 +163,44 @@ function failureFor(failure, attempt) {
161
163
  return new PieceFailure('provider_rejected', failure, attempt);
162
164
  return stopFor(failure);
163
165
  }
166
+ /** A failure as the journal keeps it: the line's words, its next step, and whether it was charged. */
167
+ function savedFailure(failure) {
168
+ const charged = failure.details?.charged;
169
+ return {
170
+ code: failure.code,
171
+ error: failure.error,
172
+ fix: failure.fix,
173
+ next: failure.next,
174
+ ...(failure.say ? { say: failure.say } : {}),
175
+ ...(typeof charged === 'boolean' ? { details: { charged } } : {}),
176
+ };
177
+ }
164
178
  const waitSeconds = (s, fallback) => Math.min(Math.max(s ?? fallback, 1), 60) * 1000;
179
+ /**
180
+ * A line call that waits out every "retry" refusal (the line busy or briefly away) until the step's
181
+ * own deadline ends the wait; only a refusal that says otherwise ends the run.
182
+ */
183
+ async function untilDeadline(ctx, key, call) {
184
+ try {
185
+ for (;;) {
186
+ try {
187
+ return await call();
188
+ }
189
+ catch (error) {
190
+ if (ctx.signal.aborted)
191
+ throw new errors_1.PartError('stopped');
192
+ if (!(error instanceof client_1.LineError) || error.next !== 'retry')
193
+ throw error;
194
+ // Waiting on the line: a deadline that ends here is ours, not this computer's.
195
+ ctx.waiting?.add(key);
196
+ await ctx.sleep(waitSeconds(error.retryAfterSeconds, 10), ctx.signal);
197
+ }
198
+ }
199
+ }
200
+ finally {
201
+ ctx.waiting?.delete(key);
202
+ }
203
+ }
165
204
  async function hostPayload(value, ctx) {
166
205
  if ((0, canonical_1.isFileRef)(value)) {
167
206
  const known = ctx.hosted.get(value.sha256);
@@ -176,7 +215,7 @@ async function hostPayload(value, ctx) {
176
215
  throw new errors_1.PartError('bad_input', 'a file changed after it was made');
177
216
  const base = path.basename(value.path).replace(/[^A-Za-z0-9._-]/g, '_').slice(-120) || `${value.sha256.slice(0, 16)}.bin`;
178
217
  try {
179
- const ref = await ctx.line.hostFile(ctx.videoId, { sha256: value.sha256, bytes: value.bytes, content_type: value.mime, filename: base }, data, ctx.signal);
218
+ const ref = await untilDeadline(ctx, `file:${value.sha256}`, () => ctx.line.hostFile(ctx.videoId, { sha256: value.sha256, bytes: value.bytes, content_type: value.mime, filename: base }, data, ctx.signal));
180
219
  ctx.hosted.set(value.sha256, ref);
181
220
  return ref;
182
221
  }
@@ -247,7 +286,10 @@ function pieceOrderer(ctx) {
247
286
  if (!Array.isArray(order.results) || order.results.some((r) => !r || !RESULT_NAME.test(r.name) || typeof r.pointer !== 'string' || !r.pointer.startsWith('/'))) {
248
287
  throw new errors_1.PartError('bad_input', 'a piece names its result files badly');
249
288
  }
250
- const inputs_hash = (0, canonical_1.pieceHash)({ part: ctx.part, provider: order.provider, path: order.path, body: order.body });
289
+ const plain = (0, canonical_1.pieceHash)({ part: ctx.part, provider: order.provider, path: order.path, body: order.body });
290
+ const take = ctx.takes?.[`${ctx.stepId}.${order.piece}`];
291
+ // A remade piece is a new piece: its own cache, journal and key, so neither this computer nor the line serves the earlier take.
292
+ const inputs_hash = take ? (0, canonical_1.sha256Hex)(`${plain}:take:${take}`) : plain;
251
293
  // Two calls for the same piece (even under two names) take turns, so the
252
294
  // second finds the first's result instead of ordering it again.
253
295
  return alone(ctx.locks, inputs_hash, async () => {
@@ -262,29 +304,32 @@ function pieceOrderer(ctx) {
262
304
  const files = {};
263
305
  for (const r of order.results)
264
306
  files[r.name] = await placeResult(ctx, inputs_hash, cached.files[r.pointer].sha256, r.name, r.media);
265
- const attempt = (last?.attempt ?? 1);
266
- await ctx.onPiece({ piece: order.piece, piece_key, inputs_hash, idempotency_key: last?.key ?? keyFor(1), attempt, reused: true });
307
+ await ctx.onPiece({ piece: order.piece, piece_key, inputs_hash, idempotency_key: last?.key ?? keyFor(1), attempt: last?.attempt ?? 1, reused: true });
267
308
  return { json: (cached.json ?? null), files, reused: true };
268
309
  }
269
310
  // The key: the last one again while its piece may be running or is done.
270
311
  // A saved failure is acted on as the line said, before anything is sent:
271
- // only a failure the line said to retry earns a new attempt, and only one.
312
+ // only a failure the line said to retry earns a new attempt.
272
313
  let current;
273
314
  if (last?.outcome === 'failed') {
274
315
  const saved = last.failure ?? { code: 'provider_failed', error: 'This piece failed.', fix: '', next: 'retry' };
275
316
  if (saved.next !== 'retry' || saved.code === 'provider_rejected')
276
317
  throw failureFor(saved, last.attempt);
277
- // The line's own words here say to try once more, which no run can do now.
278
- if (last.attempt >= 2)
318
+ const free = saved.details?.charged === false;
319
+ // A charged piece's line says to try once more, which no run can do now.
320
+ if (!free && last.attempt >= 2)
279
321
  throw new errors_1.KitStop(exports.FAILED_TWICE, 'failed', 'provider_failed');
280
- current = { attempt: last.attempt + 1, key: keyFor(last.attempt + 1), outcome: 'sent' };
322
+ // A free failure is tried anew on a later run, never more than twice in this one.
323
+ if (state.attempts.filter((a) => a.run === ctx.runId).length >= NEW_ATTEMPTS_PER_RUN)
324
+ throw failureFor(saved, last.attempt);
325
+ current = { attempt: last.attempt + 1, key: keyFor(last.attempt + 1), outcome: 'sent', run: ctx.runId };
281
326
  state.attempts.push(current);
282
327
  }
283
328
  else if (last) {
284
329
  current = last;
285
330
  }
286
331
  else {
287
- current = { attempt: 1, key: keyFor(1), outcome: 'sent' };
332
+ current = { attempt: 1, key: keyFor(1), outcome: 'sent', run: ctx.runId };
288
333
  state.attempts.push(current);
289
334
  }
290
335
  if (ctx.signal.aborted)
@@ -292,25 +337,34 @@ function pieceOrderer(ctx) {
292
337
  const body = (await hostPayload(order.body, ctx));
293
338
  const ask = async () => {
294
339
  await ctx.cache.saveOrder(state);
295
- let busy = 0;
296
340
  for (;;) {
297
341
  let answer;
298
342
  const request = { idempotency_key: current.key, piece_key, part: { id: ctx.part.id, version: ctx.part.version }, inputs_hash, call: { provider: order.provider, path: order.path, body } };
299
343
  try {
300
344
  answer = await ctx.line.orderPiece(ctx.videoId, request, ctx.signal);
345
+ // An answer that lands as the step is cut short ends the wait here, so the step's retry can ask.
346
+ if (ctx.signal.aborted)
347
+ throw new errors_1.PartError('stopped');
301
348
  }
302
349
  catch (error) {
303
350
  if (ctx.signal.aborted)
304
351
  throw new errors_1.PartError('stopped');
305
- if (!(error instanceof client_1.LineError))
306
- throw error;
307
- if (error.code !== 'piece_busy' || error.next !== 'retry' || ++busy > 30)
308
- throw lineStop(error);
352
+ if (!(error instanceof client_1.LineError) || error.next !== 'retry') {
353
+ ctx.waiting?.delete(inputs_hash);
354
+ throw error instanceof client_1.LineError ? lineStop(error) : error;
355
+ }
356
+ // The line said retry: the step's deadline, not a count, ends the wait.
357
+ if (error.code !== 'piece_busy') {
358
+ ctx.waiting?.add(inputs_hash);
359
+ await ctx.sleep(waitSeconds(error.retryAfterSeconds, 10), ctx.signal);
360
+ continue;
361
+ }
362
+ ctx.waiting?.add(inputs_hash);
309
363
  // Join the running attempt only when it is this same piece with these same inputs.
310
364
  const running = error.details?.idempotency_key;
311
365
  const prefix = `${piece_key}:${inputs_hash}:`;
312
366
  const runningAttempt = typeof running === 'string' && running.startsWith(prefix) ? running.slice(prefix.length) : null;
313
- const match = runningAttempt === '1' || runningAttempt === '2';
367
+ const match = !!runningAttempt && /^[1-9]\d{0,3}$/.test(runningAttempt);
314
368
  if (match && running !== current.key) {
315
369
  current = { attempt: Number(runningAttempt), key: running, outcome: 'sent' };
316
370
  state.attempts.push(current);
@@ -319,8 +373,11 @@ function pieceOrderer(ctx) {
319
373
  await ctx.sleep(waitSeconds(error.retryAfterSeconds, 10), ctx.signal);
320
374
  continue;
321
375
  }
322
- if (answer.status !== 'running')
376
+ if (answer.status !== 'running') {
377
+ ctx.waiting?.delete(inputs_hash);
323
378
  return answer;
379
+ }
380
+ ctx.waiting?.add(inputs_hash);
324
381
  ctx.onWait();
325
382
  await ctx.sleep(waitSeconds(answer.retry_after_seconds, 10), ctx.signal);
326
383
  }
@@ -329,7 +386,7 @@ function pieceOrderer(ctx) {
329
386
  if (answer.status === 'failed') {
330
387
  const failure = answer.failure ?? { code: 'provider_failed', error: 'This piece failed.', fix: '', next: 'retry' };
331
388
  current.outcome = 'failed';
332
- current.failure = { code: failure.code, error: failure.error, fix: failure.fix, next: failure.next };
389
+ current.failure = savedFailure(failure);
333
390
  await ctx.cache.saveOrder(state);
334
391
  throw failureFor(failure, current.attempt);
335
392
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pieces.js","sourceRoot":"","sources":["../../../src/kit/core/pieces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pieces.js","sourceRoot":"","sources":["../../../src/kit/core/pieces.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,8 @@ import { type VideoLine } from '../line/client';
2
2
  import type { ProgressFailure } from '../line/types';
3
3
  import type { KitLog } from './log';
4
4
  import type { ProgressBook } from './progress';
5
+ /** How long the last word may take before the kit exits and keeps it for the next run; with the exit grace, a run ends within 30 s. */
6
+ export declare const LAST_WORD_MS = 25000;
5
7
  export declare class ProgressReporter {
6
8
  private readonly line;
7
9
  private readonly videoId;
@@ -10,6 +12,8 @@ export declare class ProgressReporter {
10
12
  private readonly onStop;
11
13
  private readonly heartbeatMs;
12
14
  private readonly signal?;
15
+ /** How long the last word and a flush may take; a failure not taken by then waits for the next run. */
16
+ private readonly lastWordMs;
13
17
  private timer;
14
18
  private inFlight;
15
19
  private again;
@@ -21,9 +25,21 @@ export declare class ProgressReporter {
21
25
  private lineRefused;
22
26
  /** Set once the run gives up: from then on reports go without the run's stop signal, which may be aborted. */
23
27
  private lastWord;
24
- constructor(line: VideoLine, videoId: string, book: ProgressBook, log: KitLog, onStop: (message: string, reason: 'stop' | 'update_kit' | 'change_request', code?: string) => void, heartbeatMs?: number, signal?: AbortSignal | undefined);
28
+ /** The run ended: no heartbeat, and no report but the last word. */
29
+ private closed;
30
+ /** The one last-word post after the close has gone out. */
31
+ private lastWordGone;
32
+ /** Cuts the post in flight short. */
33
+ private current;
34
+ constructor(line: VideoLine, videoId: string, book: ProgressBook, log: KitLog, onStop: (message: string, reason: 'stop' | 'update_kit' | 'change_request', code?: string, next?: 'sign_in') => void, heartbeatMs?: number, signal?: AbortSignal | undefined,
35
+ /** How long the last word and a flush may take; a failure not taken by then waits for the next run. */
36
+ lastWordMs?: number);
25
37
  start(): void;
26
- stopTimer(): void;
38
+ /**
39
+ * The run is over: the heartbeat stops and a report on its way is dropped, so the
40
+ * failure (if any) is the only report left to send. Safe to call more than once.
41
+ */
42
+ close(): void;
27
43
  /** While our server checks the upload, the check call is the sign of life: no progress goes out. */
28
44
  pause(): void;
29
45
  resume(): void;
@@ -36,10 +52,11 @@ export declare class ProgressReporter {
36
52
  /** The failure report the line has not taken yet: it could not be reached. */
37
53
  get undelivered(): ProgressFailure | null;
38
54
  /**
39
- * Waits for the call in flight, so the last word reaches the card before the kit exits.
55
+ * Waits for the call in flight, so the last word reaches the card before the kit exits, but
56
+ * never past the deadline: a line that can't be reached must not keep the kit running.
40
57
  * False when a failure report is still unsent.
41
58
  */
42
- flush(): Promise<boolean>;
59
+ flush(deadlineMs?: number): Promise<boolean>;
43
60
  /**
44
61
  * Sends an earlier run's failure report now: taken with its reason, refused for good (an
45
62
  * older line, or the line's own refusal), or unsent because the line could not be reached.
@@ -1 +1 @@
1
- {"version":3,"file":"progress-reporter.d.ts","sourceRoot":"","sources":["../../../src/kit/core/progress-reporter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,qBAAa,gBAAgB;IAczB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAnB1B,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,IAAI,CAA+B;IAC3C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAS;IAC5B,8GAA8G;IAC9G,OAAO,CAAC,QAAQ,CAAS;gBAGN,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,YAAY,EAClB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,gBAAgB,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,EAClG,WAAW,SAAS,EACpB,MAAM,CAAC,EAAE,WAAW,YAAA;IAGvC,KAAK,IAAI,IAAI;IAMb,SAAS,IAAI,IAAI;IAOjB,oGAAoG;IACpG,KAAK,IAAI,IAAI;IAIb,MAAM,IAAI,IAAI;IAId,+EAA+E;IAC/E,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,0EAA0E;IAC1E,IAAI,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7C,uGAAuG;IACvG,IAAI,CAAC,KAAK,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BlC,8EAA8E;IAC9E,IAAI,WAAW,IAAI,eAAe,GAAG,IAAI,CAExC;IAED;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;IAK/B;;;OAGG;IACG,MAAM,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;YASjE,IAAI;CA4BnB"}
1
+ {"version":3,"file":"progress-reporter.d.ts","sourceRoot":"","sources":["../../../src/kit/core/progress-reporter.ts"],"names":[],"mappings":"AAIA,OAAO,EAAsC,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACpF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,uIAAuI;AACvI,eAAO,MAAM,YAAY,QAAS,CAAC;AAEnC,qBAAa,gBAAgB;IAoBzB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IACxB,uGAAuG;IACvG,OAAO,CAAC,QAAQ,CAAC,UAAU;IA3B7B,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,IAAI,CAA+B;IAC3C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAS;IAC5B,8GAA8G;IAC9G,OAAO,CAAC,QAAQ,CAAS;IACzB,oEAAoE;IACpE,OAAO,CAAC,MAAM,CAAS;IACvB,2DAA2D;IAC3D,OAAO,CAAC,YAAY,CAAS;IAC7B,qCAAqC;IACrC,OAAO,CAAC,OAAO,CAAgC;gBAG5B,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,YAAY,EAClB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,gBAAgB,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,KAAK,IAAI,EACpH,WAAW,SAAS,EACpB,MAAM,CAAC,EAAE,WAAW,YAAA;IACrC,uGAAuG;IACtF,UAAU,SAAe;IAG5C,KAAK,IAAI,IAAI;IAMb;;;OAGG;IACH,KAAK,IAAI,IAAI;IAWb,oGAAoG;IACpG,KAAK,IAAI,IAAI;IAIb,MAAM,IAAI,IAAI;IAId,+EAA+E;IAC/E,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,0EAA0E;IAC1E,IAAI,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7C,uGAAuG;IACvG,IAAI,CAAC,KAAK,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BlC,8EAA8E;IAC9E,IAAI,WAAW,IAAI,eAAe,GAAG,IAAI,CAExC;IAED;;;;OAIG;IACG,KAAK,CAAC,UAAU,SAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;IAc3D;;;OAGG;IACG,MAAM,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;YASjE,IAAI;CAuCnB"}
@@ -1,10 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ProgressReporter = void 0;
3
+ exports.ProgressReporter = exports.LAST_WORD_MS = void 0;
4
4
  // Sends progress to the line after every piece and step, and at least once a
5
5
  // minute while anything runs (a slow piece must never look quiet). A progress
6
- // answer that says the video stopped stops the run.
6
+ // answer that says the video stopped stops the run. Once the run ends the
7
+ // reporter is closed: one last word at most, on its own deadline.
7
8
  const client_1 = require("../line/client");
9
+ /** How long the last word may take before the kit exits and keeps it for the next run; with the exit grace, a run ends within 30 s. */
10
+ exports.LAST_WORD_MS = 25_000;
8
11
  class ProgressReporter {
9
12
  line;
10
13
  videoId;
@@ -13,6 +16,7 @@ class ProgressReporter {
13
16
  onStop;
14
17
  heartbeatMs;
15
18
  signal;
19
+ lastWordMs;
16
20
  timer = null;
17
21
  inFlight = null;
18
22
  again = false;
@@ -24,7 +28,15 @@ class ProgressReporter {
24
28
  lineRefused = false;
25
29
  /** Set once the run gives up: from then on reports go without the run's stop signal, which may be aborted. */
26
30
  lastWord = false;
27
- constructor(line, videoId, book, log, onStop, heartbeatMs = 45_000, signal) {
31
+ /** The run ended: no heartbeat, and no report but the last word. */
32
+ closed = false;
33
+ /** The one last-word post after the close has gone out. */
34
+ lastWordGone = false;
35
+ /** Cuts the post in flight short. */
36
+ current = null;
37
+ constructor(line, videoId, book, log, onStop, heartbeatMs = 45_000, signal,
38
+ /** How long the last word and a flush may take; a failure not taken by then waits for the next run. */
39
+ lastWordMs = exports.LAST_WORD_MS) {
28
40
  this.line = line;
29
41
  this.videoId = videoId;
30
42
  this.book = book;
@@ -32,6 +44,7 @@ class ProgressReporter {
32
44
  this.onStop = onStop;
33
45
  this.heartbeatMs = heartbeatMs;
34
46
  this.signal = signal;
47
+ this.lastWordMs = lastWordMs;
35
48
  }
36
49
  start() {
37
50
  if (this.timer)
@@ -39,13 +52,23 @@ class ProgressReporter {
39
52
  this.timer = setInterval(() => void this.send(true), this.heartbeatMs);
40
53
  this.timer.unref?.();
41
54
  }
42
- stopTimer() {
55
+ /**
56
+ * The run is over: the heartbeat stops and a report on its way is dropped, so the
57
+ * failure (if any) is the only report left to send. Safe to call more than once.
58
+ */
59
+ close() {
60
+ if (this.closed)
61
+ return;
43
62
  if (this.timer)
44
63
  clearInterval(this.timer);
45
64
  if (this.soon)
46
65
  clearTimeout(this.soon);
47
66
  this.timer = null;
48
67
  this.soon = null;
68
+ this.closed = true;
69
+ this.again = false;
70
+ if (!this.lastWord)
71
+ this.current?.abort();
49
72
  }
50
73
  /** While our server checks the upload, the check call is the sign of life: no progress goes out. */
51
74
  pause() {
@@ -71,6 +94,8 @@ class ProgressReporter {
71
94
  send(force = false) {
72
95
  if (this.paused)
73
96
  return Promise.resolve();
97
+ if (this.closed && (!this.lastWord || this.lastWordGone))
98
+ return this.inFlight ?? Promise.resolve();
74
99
  const wait = 1500 - (Date.now() - this.last);
75
100
  if (!force && wait > 0) {
76
101
  if (!this.soon && !this.inFlight) {
@@ -102,12 +127,21 @@ class ProgressReporter {
102
127
  return this.failure;
103
128
  }
104
129
  /**
105
- * Waits for the call in flight, so the last word reaches the card before the kit exits.
130
+ * Waits for the call in flight, so the last word reaches the card before the kit exits, but
131
+ * never past the deadline: a line that can't be reached must not keep the kit running.
106
132
  * False when a failure report is still unsent.
107
133
  */
108
- async flush() {
109
- while (this.inFlight)
110
- await this.inFlight;
134
+ async flush(deadlineMs = this.lastWordMs) {
135
+ const until = Date.now() + deadlineMs;
136
+ while (this.inFlight) {
137
+ const inFlight = this.inFlight;
138
+ if (!(await settlesBy(inFlight, until))) {
139
+ this.again = false;
140
+ this.current?.abort();
141
+ await inFlight;
142
+ break;
143
+ }
144
+ }
111
145
  return this.failure === null;
112
146
  }
113
147
  /**
@@ -128,36 +162,64 @@ class ProgressReporter {
128
162
  return;
129
163
  this.last = Date.now();
130
164
  const failure = this.failure;
165
+ const lastWord = this.lastWord;
166
+ if (this.closed && lastWord)
167
+ this.lastWordGone = true;
168
+ const own = new AbortController();
169
+ this.current = own;
170
+ // The run's own stop signal may already be aborted when it gives up, so the last word goes without it, on its own deadline.
171
+ const link = (0, client_1.linkedSignal)([own.signal, lastWord ? undefined : this.signal], lastWord ? this.lastWordMs : undefined);
131
172
  try {
132
- // The run's own stop signal may already be aborted when it gives up, so the last word goes without it.
133
173
  const request = failure ? { ...this.book.request(), failure } : this.book.request();
134
- const answer = await this.line.progress(this.videoId, request, this.lastWord ? undefined : this.signal);
174
+ const answer = await this.line.progress(this.videoId, request, link.signal);
135
175
  if (failure && this.failure === failure)
136
176
  this.failure = null;
137
177
  if (answer.stop === true || answer.stage === 'stopped')
138
178
  this.onStop('This video was stopped.', 'stop');
139
179
  }
140
180
  catch (error) {
181
+ // The run stopped or ended while this report was on its way: that is not a report that failed.
182
+ if (!lastWord && link.signal.aborted)
183
+ return;
141
184
  if (failure && error instanceof client_1.LineError && namesFailure(error)) {
142
185
  // An older line refuses the field it doesn't know: it gets the report without it, now and after.
143
186
  this.failure = null;
144
187
  this.failureRefused = true;
145
188
  this.log.write('warn', 'the line does not take a failure reason', { code: error.code });
146
- return this.post();
189
+ return await this.post();
147
190
  }
148
191
  if (error instanceof client_1.LineError && error.next !== 'retry') {
149
192
  // The line's refusal ends the run on its own words; the report it refused is not kept to send again.
150
193
  if (failure && this.failure === failure)
151
194
  this.failure = null;
152
195
  this.lineRefused = true;
153
- this.onStop([error.message, error.fix].filter(Boolean).join(' '), error.next, error.code);
196
+ const reason = error.next === 'update_kit' || error.next === 'change_request' ? error.next : 'stop';
197
+ this.onStop((0, client_1.lineWords)(error), reason, error.code, error.next === 'sign_in' ? 'sign_in' : undefined);
154
198
  return;
155
199
  }
156
200
  this.log.write('warn', 'progress could not be sent', { error: error instanceof Error ? error.message : String(error) });
157
201
  }
202
+ finally {
203
+ link.done();
204
+ if (this.current === own)
205
+ this.current = null;
206
+ }
158
207
  }
159
208
  }
160
209
  exports.ProgressReporter = ProgressReporter;
210
+ /** True when `work` settles before `until` (a Date.now() time). */
211
+ async function settlesBy(work, until) {
212
+ let timer;
213
+ const late = new Promise((resolve) => {
214
+ timer = setTimeout(() => resolve(false), Math.max(until - Date.now(), 0));
215
+ });
216
+ try {
217
+ return await Promise.race([work.then(() => true), late]);
218
+ }
219
+ finally {
220
+ clearTimeout(timer);
221
+ }
222
+ }
161
223
  /** A 400 that names the `failure` field: an unknown field, or a shape the line doesn't take. */
162
224
  function namesFailure(error) {
163
225
  if (error.status !== 400)
@@ -1 +1 @@
1
- {"version":3,"file":"progress-reporter.js","sourceRoot":"","sources":["../../../src/kit/core/progress-reporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"progress-reporter.js","sourceRoot":"","sources":["../../../src/kit/core/progress-reporter.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { PartManifest } from '../part-interface';
2
- import type { ProgressRequest } from '../line/types';
2
+ import type { ProgressRequest, ProgressStep } from '../line/types';
3
3
  export declare const ROW_LABELS: {
4
4
  readonly voice: "Creating the voice";
5
5
  readonly pictures: "Creating the pictures";
@@ -23,8 +23,11 @@ export type RowKey = keyof typeof ROW_LABELS;
23
23
  export declare function rowOf(manifest: Pick<PartManifest, 'kind' | 'inputs'>): RowKey | null;
24
24
  /** What has been made so far, as the card shows it. */
25
25
  export declare class ProgressBook {
26
+ private readonly onChange;
26
27
  private readonly steps;
27
28
  note: string;
29
+ /** `onChange` hears every start, count and finish. */
30
+ constructor(onChange?: () => void);
28
31
  plan(steps: Array<{
29
32
  id: string;
30
33
  row: RowKey | null;
@@ -39,4 +42,18 @@ export declare class ProgressBook {
39
42
  finish(id: string, state?: 'done' | 'failed'): void;
40
43
  request(): ProgressRequest;
41
44
  }
45
+ /**
46
+ * The rows as lines for the person running the kit: a row's start, end or failure always, and a
47
+ * new count on a row at most once every `everyMs`. The card's own labels, never a part or a code.
48
+ */
49
+ export declare class StepLines {
50
+ private readonly everyMs;
51
+ private readonly shown;
52
+ constructor(everyMs?: number);
53
+ next(steps: ProgressStep[] | undefined, now: number): string[];
54
+ /** The rows to show now, by the same rule as `next`. */
55
+ changed(steps: ProgressStep[] | undefined, now: number): ProgressStep[];
56
+ }
57
+ /** One row as the line the person reads. */
58
+ export declare function lineOf(step: ProgressStep): string;
42
59
  //# sourceMappingURL=progress.d.ts.map
@@ -1 +1 @@
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,EAAgB,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;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA8B;IACpD,IAAI,SAA6B;IAEjC,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;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;CAqC3B"}
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"}