@poping/yome 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/README.md +5 -7
  2. package/README.zh-CN.md +5 -7
  3. package/bin/yome-calwatch +0 -0
  4. package/dist/context.js +6 -3
  5. package/dist/context.js.map +1 -1
  6. package/dist/daemon/calendarPermission.d.ts +10 -0
  7. package/dist/daemon/calendarPermission.js +68 -0
  8. package/dist/daemon/calendarPermission.js.map +1 -0
  9. package/dist/daemon/cronCli.d.ts +19 -0
  10. package/dist/daemon/cronCli.js +403 -0
  11. package/dist/daemon/cronCli.js.map +1 -0
  12. package/dist/daemon/envHint.d.ts +5 -0
  13. package/dist/daemon/envHint.js +139 -0
  14. package/dist/daemon/envHint.js.map +1 -0
  15. package/dist/daemon/humanCron.d.ts +1 -0
  16. package/dist/daemon/humanCron.js +72 -0
  17. package/dist/daemon/humanCron.js.map +1 -0
  18. package/dist/daemon/humanOnce.d.ts +1 -0
  19. package/dist/daemon/humanOnce.js +54 -0
  20. package/dist/daemon/humanOnce.js.map +1 -0
  21. package/dist/daemon/index.d.ts +5 -0
  22. package/dist/daemon/index.js +168 -0
  23. package/dist/daemon/index.js.map +1 -0
  24. package/dist/daemon/launchd.d.ts +7 -0
  25. package/dist/daemon/launchd.js +93 -0
  26. package/dist/daemon/launchd.js.map +1 -0
  27. package/dist/daemon/log.d.ts +17 -0
  28. package/dist/daemon/log.js +57 -0
  29. package/dist/daemon/log.js.map +1 -0
  30. package/dist/daemon/paths.d.ts +11 -0
  31. package/dist/daemon/paths.js +27 -0
  32. package/dist/daemon/paths.js.map +1 -0
  33. package/dist/daemon/runTaskEntry.d.ts +1 -0
  34. package/dist/daemon/runTaskEntry.js +67 -0
  35. package/dist/daemon/runTaskEntry.js.map +1 -0
  36. package/dist/daemon/runner.d.ts +21 -0
  37. package/dist/daemon/runner.js +175 -0
  38. package/dist/daemon/runner.js.map +1 -0
  39. package/dist/daemon/scheduler.d.ts +5 -0
  40. package/dist/daemon/scheduler.js +162 -0
  41. package/dist/daemon/scheduler.js.map +1 -0
  42. package/dist/daemon/taskStore.d.ts +62 -0
  43. package/dist/daemon/taskStore.js +88 -0
  44. package/dist/daemon/taskStore.js.map +1 -0
  45. package/dist/daemon/triggers/calendar.d.ts +8 -0
  46. package/dist/daemon/triggers/calendar.js +248 -0
  47. package/dist/daemon/triggers/calendar.js.map +1 -0
  48. package/dist/daemon/triggers/childRunner.d.ts +14 -0
  49. package/dist/daemon/triggers/childRunner.js +111 -0
  50. package/dist/daemon/triggers/childRunner.js.map +1 -0
  51. package/dist/daemon/triggers/cron.d.ts +14 -0
  52. package/dist/daemon/triggers/cron.js +91 -0
  53. package/dist/daemon/triggers/cron.js.map +1 -0
  54. package/dist/daemon/triggers/file.d.ts +7 -0
  55. package/dist/daemon/triggers/file.js +123 -0
  56. package/dist/daemon/triggers/file.js.map +1 -0
  57. package/dist/daemon/triggers/once.d.ts +10 -0
  58. package/dist/daemon/triggers/once.js +80 -0
  59. package/dist/daemon/triggers/once.js.map +1 -0
  60. package/dist/index.js +96 -9
  61. package/dist/index.js.map +1 -1
  62. package/dist/skills/runner/dispatcher.d.ts +74 -3
  63. package/dist/skills/runner/dispatcher.js +258 -48
  64. package/dist/skills/runner/dispatcher.js.map +1 -1
  65. package/dist/skills/runner/dispatcher.test.d.ts +1 -0
  66. package/dist/skills/runner/dispatcher.test.js +141 -0
  67. package/dist/skills/runner/dispatcher.test.js.map +1 -0
  68. package/dist/skills/runner/kernel.js +0 -1
  69. package/dist/skills/runner/kernel.js.map +1 -1
  70. package/dist/skills/runner/nodeBackend.d.ts +32 -0
  71. package/dist/skills/runner/nodeBackend.js +147 -0
  72. package/dist/skills/runner/nodeBackend.js.map +1 -0
  73. package/dist/state/todos.d.ts +12 -0
  74. package/dist/state/todos.js +32 -0
  75. package/dist/state/todos.js.map +1 -0
  76. package/dist/tools/askUser.d.ts +20 -0
  77. package/dist/tools/askUser.js +126 -0
  78. package/dist/tools/askUser.js.map +1 -0
  79. package/dist/tools/bash.js +13 -19
  80. package/dist/tools/bash.js.map +1 -1
  81. package/dist/tools/index.d.ts +2 -0
  82. package/dist/tools/index.js +18 -5
  83. package/dist/tools/index.js.map +1 -1
  84. package/dist/tools/todoWrite.d.ts +2 -0
  85. package/dist/tools/todoWrite.js +141 -0
  86. package/dist/tools/todoWrite.js.map +1 -0
  87. package/dist/tools/yome.d.ts +2 -0
  88. package/dist/tools/yome.js +87 -0
  89. package/dist/tools/yome.js.map +1 -0
  90. package/dist/ui/App.js +52 -3
  91. package/dist/ui/App.js.map +1 -1
  92. package/dist/ui/AskUserPrompt.d.ts +7 -0
  93. package/dist/ui/AskUserPrompt.js +78 -0
  94. package/dist/ui/AskUserPrompt.js.map +1 -0
  95. package/dist/ui/InputBar.js +20 -34
  96. package/dist/ui/InputBar.js.map +1 -1
  97. package/dist/ui/MessageList.d.ts +8 -0
  98. package/dist/ui/MessageList.js +2 -2
  99. package/dist/ui/MessageList.js.map +1 -1
  100. package/dist/ui/MultilineTextInput.d.ts +31 -0
  101. package/dist/ui/MultilineTextInput.js +393 -0
  102. package/dist/ui/MultilineTextInput.js.map +1 -0
  103. package/dist/ui/MultilineTextInput.test.d.ts +1 -0
  104. package/dist/ui/MultilineTextInput.test.js +30 -0
  105. package/dist/ui/MultilineTextInput.test.js.map +1 -0
  106. package/dist/ui/TodoPanel.d.ts +7 -0
  107. package/dist/ui/TodoPanel.js +36 -0
  108. package/dist/ui/TodoPanel.js.map +1 -0
  109. package/dist/yomeSkills/cli.d.ts +8 -0
  110. package/dist/yomeSkills/cli.js +155 -8
  111. package/dist/yomeSkills/cli.js.map +1 -1
  112. package/dist/yomeSkills/deprecate.d.ts +29 -0
  113. package/dist/yomeSkills/deprecate.js +99 -0
  114. package/dist/yomeSkills/deprecate.js.map +1 -0
  115. package/dist/yomeSkills/installFromHubTarball.d.ts +26 -0
  116. package/dist/yomeSkills/installFromHubTarball.js +161 -0
  117. package/dist/yomeSkills/installFromHubTarball.js.map +1 -0
  118. package/dist/yomeSkills/installGithub.d.ts +7 -0
  119. package/dist/yomeSkills/installGithub.js +42 -21
  120. package/dist/yomeSkills/installGithub.js.map +1 -1
  121. package/dist/yomeSkills/invoke.js +50 -18
  122. package/dist/yomeSkills/invoke.js.map +1 -1
  123. package/dist/yomeSkills/publish.d.ts +2 -0
  124. package/dist/yomeSkills/publish.js +6 -1
  125. package/dist/yomeSkills/publish.js.map +1 -1
  126. package/package.json +10 -2
@@ -80,55 +80,167 @@ function isTruthy(v) {
80
80
  return v !== 0;
81
81
  return false;
82
82
  }
83
- // Named CSS-ish colors that map to PowerPoint-friendly RGB triples.
84
- // Mirror of the Swift PowerPointBridge.colorToRGB lookup so cli + macos app
85
- // behave the same when a user types `--color=red`.
86
- const NAMED_COLORS = {
83
+ // Named colors that map to RGB triples. Superset of the CSS named-color list,
84
+ // extended with a few CN-friendly aliases. Single source of truth on the CLI
85
+ // side; the Swift bridges (PowerPointBridge / WordBridge / NumbersBridge /
86
+ // PagesBridge / KeynoteBridge) intentionally mirror this table — when adding
87
+ // or renaming an entry here, update those Swift maps in lockstep.
88
+ export const NAMED_COLORS = {
89
+ // grayscale
87
90
  black: [0, 0, 0],
88
91
  white: [255, 255, 255],
92
+ gray: [128, 128, 128],
93
+ grey: [128, 128, 128],
94
+ silver: [192, 192, 192],
95
+ lightgray: [211, 211, 211],
96
+ lightgrey: [211, 211, 211],
97
+ darkgray: [169, 169, 169],
98
+ darkgrey: [169, 169, 169],
99
+ // primaries / secondaries
89
100
  red: [255, 0, 0],
90
101
  green: [0, 128, 0],
102
+ lime: [0, 255, 0],
91
103
  blue: [0, 0, 255],
104
+ yellow: [255, 255, 0],
105
+ cyan: [0, 255, 255],
106
+ aqua: [0, 255, 255],
107
+ magenta: [255, 0, 255],
108
+ fuchsia: [255, 0, 255],
109
+ // common css
92
110
  navy: [0, 51, 102],
93
111
  darkblue: [0, 51, 102],
94
- yellow: [255, 255, 0],
112
+ royalblue: [65, 105, 225],
113
+ midnightblue: [25, 25, 112],
114
+ steelblue: [70, 130, 180],
115
+ skyblue: [135, 206, 235],
116
+ lightblue: [173, 216, 230],
117
+ teal: [0, 128, 128],
118
+ darkgreen: [0, 100, 0],
119
+ lightgreen: [144, 238, 144],
120
+ olive: [128, 128, 0],
95
121
  orange: [255, 165, 0],
96
- purple: [128, 0, 128],
122
+ darkorange: [255, 140, 0],
123
+ gold: [255, 215, 0],
124
+ brown: [165, 42, 42],
125
+ maroon: [128, 0, 0],
126
+ crimson: [220, 20, 60],
97
127
  pink: [255, 192, 203],
98
- cyan: [0, 255, 255],
99
- gray: [128, 128, 128],
100
- grey: [128, 128, 128],
128
+ hotpink: [255, 105, 180],
129
+ purple: [128, 0, 128],
130
+ violet: [238, 130, 238],
131
+ indigo: [75, 0, 130],
132
+ beige: [245, 245, 220],
133
+ ivory: [255, 255, 240],
134
+ khaki: [240, 230, 140],
135
+ tan: [210, 180, 140],
136
+ // CN aliases (commonly used in prompts / docs)
137
+ '黑': [0, 0, 0],
138
+ '黑色': [0, 0, 0],
139
+ '白': [255, 255, 255],
140
+ '白色': [255, 255, 255],
141
+ '红': [255, 0, 0],
142
+ '红色': [255, 0, 0],
143
+ '蓝': [0, 0, 255],
144
+ '蓝色': [0, 0, 255],
145
+ '深蓝': [0, 51, 102],
146
+ '海军蓝': [0, 51, 102],
147
+ '绿': [0, 128, 0],
148
+ '绿色': [0, 128, 0],
149
+ '深绿': [0, 100, 0],
150
+ '黄': [255, 255, 0],
151
+ '黄色': [255, 255, 0],
152
+ '橙': [255, 165, 0],
153
+ '橙色': [255, 165, 0],
154
+ '紫': [128, 0, 128],
155
+ '紫色': [128, 0, 128],
156
+ '粉': [255, 192, 203],
157
+ '粉色': [255, 192, 203],
158
+ '灰': [128, 128, 128],
159
+ '灰色': [128, 128, 128],
160
+ '浅灰': [211, 211, 211],
161
+ '深灰': [169, 169, 169],
162
+ '青': [0, 255, 255],
163
+ '青色': [0, 255, 255],
101
164
  };
102
- /**
103
- * Parse `red` | `#003366` | `003366` | `0, 51, 102` into an AppleScript
104
- * RGB literal `{r, g, b}`. Returns null if the input doesn't match any of
105
- * those three forms — callers should treat null as "user gave a bad color".
106
- */
107
- export function parseColorToAppleScriptRGB(input) {
108
- const s = input.trim();
165
+ export function parseColor(input) {
166
+ const raw = String(input ?? '');
167
+ const s = raw.trim();
109
168
  if (!s)
110
- return null;
169
+ return { ok: false, error: { input: raw, reason: 'color is empty' } };
111
170
  // R,G,B
112
- const csv = s.split(',').map((p) => p.trim());
113
- if (csv.length === 3) {
114
- const [r, g, b] = csv.map(Number);
115
- if ([r, g, b].every((n) => Number.isInteger(n) && n >= 0 && n <= 255)) {
116
- return `{${r}, ${g}, ${b}}`;
171
+ if (s.includes(',')) {
172
+ const csv = s.split(',').map((p) => p.trim());
173
+ if (csv.length === 3) {
174
+ const [r, g, b] = csv.map(Number);
175
+ if ([r, g, b].every((n) => Number.isInteger(n) && n >= 0 && n <= 255)) {
176
+ return { ok: true, literal: `{${r}, ${g}, ${b}}`, rgb: [r, g, b] };
177
+ }
178
+ return {
179
+ ok: false,
180
+ error: {
181
+ input: raw,
182
+ reason: 'looks like R,G,B but channels must be integers in 0..255',
183
+ },
184
+ };
117
185
  }
118
186
  }
119
- // #RRGGBB or RRGGBB
187
+ // #RRGGBB or RRGGBB (only when the string is hex-shaped — never accept a
188
+ // bare named color as hex by accident, e.g. `cab` is not a color, `bed`
189
+ // would otherwise parse as #00bed0).
120
190
  let hex = s.toLowerCase();
121
191
  if (hex.startsWith('#'))
122
192
  hex = hex.slice(1);
123
- if (/^[0-9a-f]{6}$/.test(hex)) {
193
+ if (/^[0-9a-f]{6}$/.test(hex) && (s.startsWith('#') || /^[0-9a-f]{6}$/.test(s.toLowerCase()))) {
124
194
  const v = parseInt(hex, 16);
125
- return `{${(v >> 16) & 0xff}, ${(v >> 8) & 0xff}, ${v & 0xff}}`;
195
+ const r = (v >> 16) & 0xff, g = (v >> 8) & 0xff, b = v & 0xff;
196
+ return { ok: true, literal: `{${r}, ${g}, ${b}}`, rgb: [r, g, b] };
126
197
  }
127
198
  // named
128
- const named = NAMED_COLORS[s.toLowerCase()];
129
- if (named)
130
- return `{${named[0]}, ${named[1]}, ${named[2]}}`;
131
- return null;
199
+ const key = s.toLowerCase();
200
+ const named = NAMED_COLORS[key] ?? NAMED_COLORS[s]; // CN keys aren't lowercased
201
+ if (named) {
202
+ return { ok: true, literal: `{${named[0]}, ${named[1]}, ${named[2]}}`, rgb: named };
203
+ }
204
+ return {
205
+ ok: false,
206
+ error: {
207
+ input: raw,
208
+ reason: 'unrecognised color (use #RRGGBB, R,G,B, or a named color like ' +
209
+ 'red/blue/navy/teal/gray; full list in NAMED_COLORS)',
210
+ },
211
+ };
212
+ }
213
+ /**
214
+ * Back-compat wrapper that returns the literal or null. New code should use
215
+ * `parseColor()` so the failure reason can be surfaced to the user.
216
+ */
217
+ export function parseColorToAppleScriptRGB(input) {
218
+ const r = parseColor(input);
219
+ return r.ok ? r.literal : null;
220
+ }
221
+ /**
222
+ * `--type` alias → AppleScript `MsoAutoShapeType` enum literal. Unknown
223
+ * aliases degrade to `autoshape rectangle` so the template never emits
224
+ * broken AppleScript.
225
+ */
226
+ export function parseAutoshapeToAppleScript(input) {
227
+ switch (input.trim().toLowerCase()) {
228
+ case 'rectangle': return 'autoshape rectangle';
229
+ case 'oval': return 'autoshape oval';
230
+ case 'roundedrect':
231
+ case 'roundedrectangle': return 'autoshape rounded rectangle';
232
+ case 'triangle': return 'autoshape isosceles triangle';
233
+ case 'rightarrow': return 'autoshape right arrow';
234
+ case 'star5':
235
+ case 'star': return 'autoshape five point star';
236
+ case 'pentagon': return 'autoshape regular pentagon';
237
+ case 'diamond': return 'autoshape diamond';
238
+ case 'hexagon': return 'autoshape hexagon';
239
+ case 'cloud': return 'autoshape cloud';
240
+ case 'lightningbolt': return 'autoshape lightning bolt';
241
+ case 'heart': return 'autoshape heart';
242
+ default: return 'autoshape rectangle';
243
+ }
132
244
  }
133
245
  /**
134
246
  * `--align` parser → AppleScript `paragraph align ...` enum.
@@ -143,9 +255,28 @@ export function parseAlignToAppleScript(input) {
143
255
  default: return 'paragraph align left';
144
256
  }
145
257
  }
146
- function renderTemplate(tpl, ctx) {
258
+ /**
259
+ * Render an AppleScript template.
260
+ *
261
+ * Two failure modes exist:
262
+ * - "soft": the filter accepts any input and just renders something
263
+ * (`json`, `posix`, `bool`, `as_int`, `align`, `autoshape`). These never
264
+ * populate `errors`.
265
+ * - "hard": the filter validates input and can reject it (`rgb`). When
266
+ * rejected we emit a syntactically VALID placeholder (`missing value`)
267
+ * so the rendered AppleScript still parses, AND we record the error
268
+ * in `errors[]`. The dispatcher checks `errors` BEFORE running osascript
269
+ * and refuses to run with a structured message — no more silent failure
270
+ * where `bg=深蓝` quietly emitted broken AppleScript.
271
+ *
272
+ * `{{name}}` / `{{name|filter}}` is the substitution syntax.
273
+ * `{{#if name}}…{{/if}}` is the conditional block (greedy, not nestable).
274
+ * Substitution happens AFTER conditionals, so a `{{#if bg}}…{{bg|rgb}}…{{/if}}`
275
+ * block whose `bg` was stripped never reaches the filter.
276
+ */
277
+ export function renderTemplate(tpl, ctx) {
278
+ const errors = [];
147
279
  // {{#if name}}...{{/if}} — block emitted only when ctx[name] is truthy.
148
- // Greedy: not nestable. Sufficient for our skill templates.
149
280
  let out = tpl.replace(/\{\{#if\s+([\w-]+)\s*\}\}([\s\S]*?)\{\{\/if\}\}/g, (_, name, body) => {
150
281
  return isTruthy(ctx[name]) ? body : '';
151
282
  });
@@ -169,18 +300,31 @@ function renderTemplate(tpl, ctx) {
169
300
  return Number.isFinite(n) ? String(n) : '0';
170
301
  }
171
302
  if (filter === 'rgb') {
172
- // Empty / unparseable color empty literal so the surrounding
173
- // {{#if name}} block degrades to "do nothing" instead of injecting
174
- // syntactically broken AppleScript.
175
- const lit = parseColorToAppleScriptRGB(String(raw));
176
- return lit ?? '';
303
+ // An empty/false value means "user didn't pass this optional flag" —
304
+ // emit an empty literal so templates that do `set x to {{c|rgb}}`
305
+ // followed by `if x is not "" then …` keep working. We only validate
306
+ // when the user ACTUALLY provided a value.
307
+ const s = String(raw);
308
+ if (s === '' || raw === false)
309
+ return '""';
310
+ const r = parseColor(s);
311
+ if (r.ok)
312
+ return r.literal;
313
+ errors.push({ arg: name, filter: 'rgb', reason: `--${name}=${r.error.input}: ${r.error.reason}` });
314
+ // Emit a syntactically VALID AppleScript token so the surrounding
315
+ // script still parses — the dispatcher sees `errors[]` populated and
316
+ // refuses to run osascript anyway, but we want render to be total.
317
+ return 'missing value';
177
318
  }
178
319
  if (filter === 'align') {
179
320
  return parseAlignToAppleScript(String(raw));
180
321
  }
322
+ if (filter === 'autoshape') {
323
+ return parseAutoshapeToAppleScript(String(raw));
324
+ }
181
325
  return String(raw);
182
326
  });
183
- return out;
327
+ return { source: out, errors };
184
328
  }
185
329
  // ──────────────────────────────────────────────────────────────────────
186
330
  // Dispatcher
@@ -237,7 +381,16 @@ export function dispatchMacos(skillDir, action, call) {
237
381
  catch (e) {
238
382
  return { ok: false, stdout: '', stderr: `read script failed: ${e.message}`, exitCode: 2 };
239
383
  }
240
- const source = renderTemplate(tpl, ctx);
384
+ const rendered = renderTemplate(tpl, ctx);
385
+ if (rendered.errors.length > 0) {
386
+ return {
387
+ ok: false,
388
+ stdout: '',
389
+ stderr: rendered.errors.map((e) => `[${action}] bad argument: ${e.reason}`).join('\n'),
390
+ exitCode: 2,
391
+ };
392
+ }
393
+ const source = rendered.source;
241
394
  if (process.env.YOME_DEBUG_SKILL === '1') {
242
395
  process.stderr.write(`── rendered ${actionSpec.script} ──\n${source}\n── end ──\n`);
243
396
  }
@@ -255,7 +408,15 @@ export function dispatchMacos(skillDir, action, call) {
255
408
  if (actionSpec.pollScript) {
256
409
  const p = join(skillDir, 'backends', 'macos', actionSpec.pollScript);
257
410
  if (existsSync(p)) {
258
- pollSrc = renderTemplate(readFileSync(p, 'utf-8'), ctx);
411
+ const r = renderTemplate(readFileSync(p, 'utf-8'), ctx);
412
+ if (r.errors.length > 0) {
413
+ return {
414
+ ok: false, stdout: '',
415
+ stderr: r.errors.map((e) => `[${action}.poll] bad argument: ${e.reason}`).join('\n'),
416
+ exitCode: 2,
417
+ };
418
+ }
419
+ pollSrc = r.source;
259
420
  }
260
421
  }
261
422
  if (!pollSrc)
@@ -321,10 +482,21 @@ export async function dispatchMacosBatchMerged(skillDir, entries, opts) {
321
482
  }
322
483
  const tpl = readFileSync(scriptPath, 'utf-8');
323
484
  const rendered = renderTemplate(tpl, ctx);
485
+ if (rendered.errors.length > 0) {
486
+ // Fail the whole batch BEFORE running osascript: a render error in
487
+ // one step (e.g. a bad color name) used to silently emit broken
488
+ // AppleScript and produce a confusing "OK" line. Surface it loudly.
489
+ return {
490
+ ok: false, stdout: '',
491
+ stderr: `merge: line ${i + 1} (${e.action}): ` +
492
+ rendered.errors.map((er) => er.reason).join('; '),
493
+ exitCode: 2,
494
+ };
495
+ }
324
496
  // Wrap each rendered block in a try so a single failure doesn't kill
325
497
  // the whole script. We capture per-step result into a list so the
326
498
  // outer return can report the full status TSV.
327
- blocks.push(buildMergedBlock(i, e.action, rendered, opts.keepGoing));
499
+ blocks.push(buildMergedBlock(i, e.action, rendered.source, opts.keepGoing));
328
500
  }
329
501
  const finalSource = `
330
502
  -- yome-merged-batch (${entries.length} steps)
@@ -342,8 +514,14 @@ return results as string
342
514
  }
343
515
  // Parse per-step lines from osascript stdout. Each line:
344
516
  // "<status>\t<idx>\t<action>\t<msg>"
517
+ //
518
+ // The `<msg>` for partial-success-aware actions (xl/ppt/doc fmt, cf, …)
519
+ // follows the convention "<okList>|<failList>" — when failList is non-empty
520
+ // the step is reported as a partial failure even though osascript itself
521
+ // returned without throwing. Without this demux a `fmt` whose `bg` silently
522
+ // failed would still be counted as ✓ in the batch summary.
345
523
  const lines = r.stdout.split(/\n/).filter(Boolean);
346
- let okCount = 0, failCount = 0;
524
+ let okCount = 0, partialCount = 0, failCount = 0;
347
525
  const summary = [];
348
526
  for (const line of lines) {
349
527
  const parts = line.split('\t');
@@ -352,24 +530,56 @@ return results as string
352
530
  const action = parts[2] ?? '?';
353
531
  const msg = parts.slice(3).join('\t');
354
532
  if (status === 'OK') {
355
- okCount++;
356
- summary.push(`✓ [${idx}] ${action}${msg ? ': ' + msg : ''}`);
533
+ const partial = parsePartialOkFail(msg);
534
+ if (partial && partial.fail) {
535
+ partialCount++;
536
+ const okPart = partial.ok ? `ok=[${partial.ok}] ` : '';
537
+ summary.push(`⚠ [${idx}] ${action}: ${okPart}failed=[${partial.fail}]`);
538
+ }
539
+ else {
540
+ okCount++;
541
+ summary.push(`✓ [${idx}] ${action}${msg ? ': ' + msg : ''}`);
542
+ }
357
543
  }
358
544
  else {
359
545
  failCount++;
360
546
  summary.push(`✗ [${idx}] ${action}: ${msg}`);
361
547
  }
362
548
  }
363
- const tail = failCount === 0
549
+ const totalFail = failCount + partialCount;
550
+ const tail = totalFail === 0
364
551
  ? `\n— merged batch ok (${entries.length} commands, single osascript)`
365
- : `\n— merged batch: ${okCount}/${entries.length} ok, ${failCount} failed`;
552
+ : `\n— merged batch: ${okCount}/${entries.length} ok` +
553
+ (partialCount ? `, ${partialCount} partial` : '') +
554
+ (failCount ? `, ${failCount} failed` : '');
555
+ const stderrParts = [];
556
+ if (failCount)
557
+ stderrParts.push(`${failCount} step(s) failed`);
558
+ if (partialCount)
559
+ stderrParts.push(`${partialCount} step(s) partially failed`);
366
560
  return {
367
- ok: failCount === 0,
561
+ ok: totalFail === 0,
368
562
  stdout: summary.join('\n') + tail,
369
- stderr: failCount === 0 ? '' : `${failCount} step(s) failed (see stdout for details)`,
370
- exitCode: failCount === 0 ? 0 : 1,
563
+ stderr: stderrParts.length ? stderrParts.join('; ') + ' (see stdout for details)' : '',
564
+ exitCode: totalFail === 0 ? 0 : 1,
371
565
  };
372
566
  }
567
+ /**
568
+ * Demux the "<okList>|<failList>" convention used by partial-success-aware
569
+ * AppleScript templates (xl/ppt/doc `fmt`, `cf`, …). Returns null when the
570
+ * payload doesn't look like that shape — callers should treat null as
571
+ * "ordinary opaque message, leave it alone".
572
+ */
573
+ export function parsePartialOkFail(msg) {
574
+ // Conservative: only one '|' separator at the top level. We don't try to
575
+ // be clever about escaping because the templates that emit this shape only
576
+ // produce comma-separated identifiers + AppleScript error messages on the
577
+ // right (which never contain `|` in practice).
578
+ const i = msg.indexOf('|');
579
+ if (i < 0)
580
+ return null;
581
+ return { ok: msg.slice(0, i), fail: msg.slice(i + 1) };
582
+ }
373
583
  /**
374
584
  * Wrap a rendered .applescript snippet so:
375
585
  * - Its return value (if any) is captured into the outer `results` list
@@ -1 +1 @@
1
- {"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../../src/skills/runner/dispatcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../../src/skills/runner/dispatcher.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,EAAE;AACF,wEAAwE;AACxE,wEAAwE;AACxE,qEAAqE;AACrE,EAAE;AACF,4BAA4B;AAC5B,EAAE;AACF,+BAA+B;AAC/B,sBAAsB;AACtB,sBAAsB;AACtB,wBAAwB;AACxB,yBAAyB;AACzB,8BAA8B;AAC9B,2BAA2B;AAC3B,YAAY;AACZ,EAAE;AACF,qDAAqD;AACrD,EAAE;AACF,MAAM;AACN,kDAAkD;AAClD,8CAA8C;AAC9C,mBAAmB;AACnB,sBAAsB;AACtB,+EAA+E;AAC/E,+EAA+E;AAC/E,wEAAwE;AACxE,kFAAkF;AAClF,6EAA6E;AAC7E,UAAU;AACV,QAAQ;AACR,MAAM;AACN,EAAE;AACF,2BAA2B;AAC3B,8CAA8C;AAC9C,4DAA4D;AAC5D,0CAA0C;AAC1C,EAAE;AACF,oEAAoE;AACpE,iEAAiE;AACjE,gFAAgF;AAChF,sDAAsD;AACtD,gEAAgE;AAEhE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACL,YAAY,EACZ,qBAAqB,GAEtB,MAAM,kBAAkB,CAAC;AA0C1B,yEAAyE;AACzE,sBAAsB;AACtB,yEAAyE;AAEzE,SAAS,UAAU,CAAC,IAAoB,EAAE,IAAe;IACvD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1D,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE;gBAAE,OAAO,CAAC,CAAC;QAC5C,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE;gBAAE,OAAO,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,OAAO,CAAC;IACpD,IAAI,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC/B,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3C,CAAC;AAED,yEAAyE;AACzE,qBAAqB;AACrB,yEAAyE;AAEzE,SAAS,QAAQ,CAAC,CAAU;IAC1B,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,GAAG,CAAC;IACzE,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC1C,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8EAA8E;AAC9E,6EAA6E;AAC7E,2EAA2E;AAC3E,6EAA6E;AAC7E,kEAAkE;AAClE,MAAM,CAAC,MAAM,YAAY,GAA6C;IACpE,YAAY;IACZ,KAAK,EAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACvB,KAAK,EAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAC7B,IAAI,EAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAC7B,IAAI,EAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAC7B,MAAM,EAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAC7B,SAAS,EAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAC7B,SAAS,EAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAC7B,QAAQ,EAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAC7B,QAAQ,EAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAE7B,0BAA0B;IAC1B,GAAG,EAAW,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACzB,KAAK,EAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACzB,IAAI,EAAU,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACzB,IAAI,EAAU,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IACzB,MAAM,EAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3B,IAAI,EAAU,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IAC3B,IAAI,EAAU,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IAC3B,OAAO,EAAO,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IAC3B,OAAO,EAAO,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IAE3B,aAAa;IACb,IAAI,EAAU,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;IAC1B,QAAQ,EAAM,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;IAC1B,SAAS,EAAK,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IAC5B,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IAC3B,SAAS,EAAK,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IAC5B,OAAO,EAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAC7B,SAAS,EAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAC7B,IAAI,EAAU,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IAC3B,SAAS,EAAK,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACzB,UAAU,EAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAC7B,KAAK,EAAS,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3B,MAAM,EAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3B,UAAU,EAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3B,IAAI,EAAU,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3B,KAAK,EAAS,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;IAC3B,MAAM,EAAQ,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACzB,OAAO,EAAO,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;IAC3B,IAAI,EAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAC7B,OAAO,EAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAC7B,MAAM,EAAQ,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IAC3B,MAAM,EAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAC7B,MAAM,EAAQ,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC;IAC1B,KAAK,EAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAC7B,KAAK,EAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAC7B,KAAK,EAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAC7B,GAAG,EAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAE7B,+CAA+C;IAC/C,GAAG,EAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACtB,IAAI,EAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACrB,GAAG,EAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAC5B,IAAI,EAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAC3B,GAAG,EAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACxB,IAAI,EAAQ,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACvB,GAAG,EAAU,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IACxB,IAAI,EAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IACvB,IAAI,EAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;IACxB,KAAK,EAAM,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;IACvB,GAAG,EAAU,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACxB,IAAI,EAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACvB,IAAI,EAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACvB,GAAG,EAAU,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1B,IAAI,EAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IACzB,GAAG,EAAU,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1B,IAAI,EAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IACzB,GAAG,EAAU,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IAC1B,IAAI,EAAQ,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IACzB,GAAG,EAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAC5B,IAAI,EAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAC3B,GAAG,EAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAC5B,IAAI,EAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAC3B,IAAI,EAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAC3B,IAAI,EAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAC3B,GAAG,EAAU,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IAC1B,IAAI,EAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;CAC1B,CAAC;AAwBF,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAChC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACrB,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,CAAC;IAE9E,QAAQ;IACR,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9C,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACtE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAE,EAAE,CAAE,EAAE,CAAE,CAAC,EAAE,CAAC;YACxE,CAAC;YACD,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE;oBACL,KAAK,EAAE,GAAG;oBACV,MAAM,EAAE,0DAA0D;iBACnE;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,wEAAwE;IACxE,qCAAqC;IACrC,IAAI,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAC1B,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5C,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC;QAC9F,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC5B,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QAC9D,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IACrE,CAAC;IAED,QAAQ;IACR,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,4BAA4B;IAChF,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;IACtF,CAAC;IAED,OAAO;QACL,EAAE,EAAE,KAAK;QACT,KAAK,EAAE;YACL,KAAK,EAAE,GAAG;YACV,MAAM,EACJ,gEAAgE;gBAChE,qDAAqD;SACxD;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAAa;IACtD,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC5B,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CAAC,KAAa;IACvD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;QACnC,KAAK,WAAW,CAAC,CAAK,OAAO,qBAAqB,CAAC;QACnD,KAAK,MAAM,CAAC,CAAU,OAAO,gBAAgB,CAAC;QAC9C,KAAK,aAAa,CAAC;QACnB,KAAK,kBAAkB,CAAC,CAAC,OAAO,6BAA6B,CAAC;QAC9D,KAAK,UAAU,CAAC,CAAM,OAAO,8BAA8B,CAAC;QAC5D,KAAK,YAAY,CAAC,CAAI,OAAO,uBAAuB,CAAC;QACrD,KAAK,OAAO,CAAC;QACb,KAAK,MAAM,CAAC,CAAU,OAAO,2BAA2B,CAAC;QACzD,KAAK,UAAU,CAAC,CAAM,OAAO,4BAA4B,CAAC;QAC1D,KAAK,SAAS,CAAC,CAAO,OAAO,mBAAmB,CAAC;QACjD,KAAK,SAAS,CAAC,CAAO,OAAO,mBAAmB,CAAC;QACjD,KAAK,OAAO,CAAC,CAAS,OAAO,iBAAiB,CAAC;QAC/C,KAAK,eAAe,CAAC,CAAC,OAAO,0BAA0B,CAAC;QACxD,KAAK,OAAO,CAAC,CAAS,OAAO,iBAAiB,CAAC;QAC/C,OAAO,CAAC,CAAc,OAAO,qBAAqB,CAAC;IACrD,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACnD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;QACnC,KAAK,OAAO,CAAC,CAAE,OAAO,uBAAuB,CAAC;QAC9C,KAAK,QAAQ,CAAC,CAAC,OAAO,wBAAwB,CAAC;QAC/C,KAAK,MAAM,CAAC;QACZ,OAAO,CAAC,CAAO,OAAO,sBAAsB,CAAC;IAC/C,CAAC;AACH,CAAC;AAaD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,cAAc,CAC5B,GAAW,EACX,GAAqD;IAErD,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,wEAAwE;IACxE,IAAI,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,kDAAkD,EAAE,CAAC,CAAC,EAAE,IAAY,EAAE,IAAY,EAAE,EAAE;QAC1G,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,2CAA2C;IAC3C,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,2CAA2C,EAAE,CAAC,CAAC,EAAE,IAAY,EAAE,MAAe,EAAE,EAAE;QAClG,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;QACjD,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7C,OAAO,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC;QAC7E,CAAC;QACD,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAClE,OAAO,eAAe,CAAC,GAAG,CAAC;QAC7B,CAAC;QACD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QAC1C,CAAC;QACD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;YACpC,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC9C,CAAC;QACD,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrB,qEAAqE;YACrE,kEAAkE;YAClE,qEAAqE;YACrE,2CAA2C;YAC3C,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YACtB,IAAI,CAAC,KAAK,EAAE,IAAI,GAAG,KAAK,KAAK;gBAAE,OAAO,IAAI,CAAC;YAC3C,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,CAAC,CAAC,EAAE;gBAAE,OAAO,CAAC,CAAC,OAAO,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACnG,kEAAkE;YAClE,qEAAqE;YACrE,mEAAmE;YACnE,OAAO,eAAe,CAAC;QACzB,CAAC;QACD,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,OAAO,uBAAuB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;YAC3B,OAAO,2BAA2B,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;AACjC,CAAC;AAED,yEAAyE;AACzE,aAAa;AACb,yEAAyE;AAEzE,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC/C,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;IAC/D,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAChC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QACjE,OAAO,GAA2B,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC3B,QAAgB,EAChB,MAAc,EACd,IAAe;IAEf,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,2CAA2C,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACrG,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,mBAAmB,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACrF,CAAC;IAED,sBAAsB;IACtB,MAAM,GAAG,GAAqD,EAAE,CAAC;IACjE,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YACf,OAAO;gBACL,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBACrB,MAAM,EAAE,8BAA8B,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,IAAI,GAAG;gBACnE,QAAQ,EAAE,CAAC;aACZ,CAAC;QACJ,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IAED,0CAA0C;IAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1E,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,qBAAqB,UAAU,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAC3F,CAAC;IACD,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,CAAC;QAAC,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAAC,CAAC;IAChD,OAAO,CAAC,EAAE,CAAC;QAAC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,uBAAwB,CAAW,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAAC,CAAC;IACnH,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1C,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,MAAM,mBAAmB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACtF,QAAQ,EAAE,CAAC;SACZ,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC/B,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,GAAG,EAAE,CAAC;QACzC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,UAAU,CAAC,MAAM,QAAQ,MAAM,eAAe,CAAC,CAAC;IACtF,CAAC;IAED,uBAAuB;IACvB,qEAAqE;IACrE,6DAA6D;IAC7D,4CAA4C;IAC5C,IAAI,UAAU,CAAC,qBAAqB,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QACtC,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;YAC1B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,iEAAiE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QAC3H,CAAC;QACD,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;YAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;YACrE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClB,MAAM,CAAC,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;gBACxD,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxB,OAAO;wBACL,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;wBACrB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,MAAM,wBAAwB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;wBACpF,QAAQ,EAAE,CAAC;qBACZ,CAAC;gBACJ,CAAC;gBACD,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC;YACrB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,OAAO;YAAE,OAAO,GAAG,MAAM,CAAC,CAAC,sCAAsC;QACtE,MAAM,CAAC,GAAG,qBAAqB,CAAC;YAC9B,QAAQ;YACR,OAAO;YACP,UAAU,EAAE,OAAO;SACpB,CAAC,CAAC;QACH,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAClF,CAAC;IAED,OAAO,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,KAAK,CAAC,CAAoB;IACjC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;AAChF,CAAC;AA4BD,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,QAAgB,EAChB,OAA2B,EAC3B,IAAwB;IAExB,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,2CAA2C,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACrG,CAAC;IAED,2EAA2E;IAC3E,uEAAuE;IACvE,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;QACtB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;gBACL,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBACrB,MAAM,EAAE,0BAA0B,CAAC,CAAC,MAAM,WAAW,CAAC,GAAG,CAAC,GAAG;gBAC7D,QAAQ,EAAE,CAAC;aACZ,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,OAAO;gBACL,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBACrB,MAAM,EACJ,kBAAkB,CAAC,CAAC,MAAM,8CAA8C;oBACxE,SAAS,CAAC,GAAG,CAAC,yDAAyD;gBACzE,QAAQ,EAAE,CAAC;aACZ,CAAC;QACJ,CAAC;QAED,gBAAgB;QAChB,MAAM,GAAG,GAAqD,EAAE,CAAC;QACjE,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;YAClC,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBACf,OAAO;oBACL,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;oBACrB,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,2BAA2B,GAAG,CAAC,IAAI,EAAE;oBAC9E,QAAQ,EAAE,CAAC;iBACZ,CAAC;YACJ,CAAC;YACD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACpE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,OAAO;gBACL,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBACrB,MAAM,EAAE,+BAA+B,CAAC,CAAC,MAAM,KAAK,UAAU,EAAE;gBAChE,QAAQ,EAAE,CAAC;aACZ,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC1C,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,mEAAmE;YACnE,gEAAgE;YAChE,oEAAoE;YACpE,OAAO;gBACL,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBACrB,MAAM,EACJ,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK;oBACtC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBACnD,QAAQ,EAAE,CAAC;aACZ,CAAC;QACJ,CAAC;QAED,qEAAqE;QACrE,kEAAkE;QAClE,+CAA+C;QAC/C,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,WAAW,GAAG;wBACE,OAAO,CAAC,MAAM;;EAEpC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;;;CAGlB,CAAC;IAEA,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,GAAG,EAAE,CAAC;QACzC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,OAAO,CAAC,MAAM,eAAe,WAAW,eAAe,CAAC,CAAC;IACpG,CAAC;IAED,MAAM,CAAC,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IACpC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QACvB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC3E,CAAC;IAED,yDAAyD;IACzD,uCAAuC;IACvC,EAAE;IACF,wEAAwE;IACxE,4EAA4E;IAC5E,yEAAyE;IACzE,4EAA4E;IAC5E,2DAA2D;IAC3D,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnD,IAAI,OAAO,GAAG,CAAC,EAAE,YAAY,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC;IACjD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QACzB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;QAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;QAC/B,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBAC5B,YAAY,EAAE,CAAC;gBACf,MAAM,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvD,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,MAAM,KAAK,MAAM,WAAW,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;YAC1E,CAAC;iBAAM,CAAC;gBACN,OAAO,EAAE,CAAC;gBACV,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,SAAS,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,SAAS,GAAG,YAAY,CAAC;IAC3C,MAAM,IAAI,GACR,SAAS,KAAK,CAAC;QACb,CAAC,CAAC,wBAAwB,OAAO,CAAC,MAAM,8BAA8B;QACtE,CAAC,CAAC,qBAAqB,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK;YACnD,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAEjD,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,IAAI,SAAS;QAAE,WAAW,CAAC,IAAI,CAAC,GAAG,SAAS,iBAAiB,CAAC,CAAC;IAC/D,IAAI,YAAY;QAAE,WAAW,CAAC,IAAI,CAAC,GAAG,YAAY,2BAA2B,CAAC,CAAC;IAC/E,OAAO;QACL,EAAE,EAAE,SAAS,KAAK,CAAC;QACnB,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI;QACjC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,2BAA2B,CAAC,CAAC,CAAC,EAAE;QACtF,QAAQ,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAClC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,yEAAyE;IACzE,2EAA2E;IAC3E,0EAA0E;IAC1E,+CAA+C;IAC/C,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACvB,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACzD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,gBAAgB,CAAC,GAAW,EAAE,MAAc,EAAE,MAAc,EAAE,SAAkB;IACvF,oEAAoE;IACpE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACnE,MAAM,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC,KAAK,MAAM,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,SAAS;QACvB,CAAC,CAAC,EAAE,CAAC,qBAAqB;QAC1B,CAAC,CAAC,cAAc,CAAC,CAAC,0CAA0C;IAE9D,OAAO;;sBAEa,OAAO;;;qCAGQ,GAAG,GAAG,CAAC,KAAK,MAAM;;qCAElB,GAAG,GAAG,CAAC,KAAK,MAAM;;;mCAGpB,GAAG,GAAG,CAAC,KAAK,MAAM;MAC/C,OAAO;;CAEZ,CAAC;AACF,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,141 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { parseColor, parseColorToAppleScriptRGB, renderTemplate, parsePartialOkFail, NAMED_COLORS, } from './dispatcher.js';
3
+ describe('parseColor', () => {
4
+ it('accepts hex with leading #', () => {
5
+ const r = parseColor('#003366');
6
+ expect(r.ok).toBe(true);
7
+ if (r.ok) {
8
+ expect(r.literal).toBe('{0, 51, 102}');
9
+ expect(r.rgb).toEqual([0, 51, 102]);
10
+ }
11
+ });
12
+ it('accepts bare hex when shaped like 6-hex-chars', () => {
13
+ const r = parseColor('003366');
14
+ expect(r.ok).toBe(true);
15
+ if (r.ok)
16
+ expect(r.literal).toBe('{0, 51, 102}');
17
+ });
18
+ it('accepts R,G,B with channels 0..255', () => {
19
+ const r = parseColor('0, 51, 102');
20
+ expect(r.ok).toBe(true);
21
+ if (r.ok)
22
+ expect(r.literal).toBe('{0, 51, 102}');
23
+ });
24
+ it('rejects R,G,B with out-of-range channels and explains why', () => {
25
+ const r = parseColor('300, 0, 0');
26
+ expect(r.ok).toBe(false);
27
+ if (!r.ok)
28
+ expect(r.error.reason).toMatch(/0\.\.255/);
29
+ });
30
+ it('accepts the named color "navy" (the case from the bug report)', () => {
31
+ const r = parseColor('navy');
32
+ expect(r.ok).toBe(true);
33
+ if (r.ok)
34
+ expect(r.rgb).toEqual([0, 51, 102]);
35
+ });
36
+ it('accepts CSS named colors that were missing before (teal, royalblue, …)', () => {
37
+ expect(parseColor('teal').ok).toBe(true);
38
+ expect(parseColor('royalblue').ok).toBe(true);
39
+ expect(parseColor('midnightblue').ok).toBe(true);
40
+ expect(parseColor('lightgray').ok).toBe(true);
41
+ expect(parseColor('darkorange').ok).toBe(true);
42
+ });
43
+ it('accepts CN aliases like 深蓝 / 海军蓝', () => {
44
+ const a = parseColor('深蓝');
45
+ const b = parseColor('海军蓝');
46
+ expect(a.ok).toBe(true);
47
+ expect(b.ok).toBe(true);
48
+ if (a.ok && b.ok) {
49
+ expect(a.rgb).toEqual([0, 51, 102]);
50
+ expect(b.rgb).toEqual([0, 51, 102]);
51
+ }
52
+ });
53
+ it('rejects unknown names with a useful reason instead of failing silently', () => {
54
+ const r = parseColor('rosegold');
55
+ expect(r.ok).toBe(false);
56
+ if (!r.ok) {
57
+ expect(r.error.reason).toMatch(/unrecognised color/);
58
+ expect(r.error.input).toBe('rosegold');
59
+ }
60
+ });
61
+ it('rejects empty / whitespace-only input', () => {
62
+ expect(parseColor('').ok).toBe(false);
63
+ expect(parseColor(' ').ok).toBe(false);
64
+ });
65
+ it('does NOT silently treat a bare named color as accidental hex (e.g. "bed")', () => {
66
+ expect(parseColor('bed').ok).toBe(false);
67
+ });
68
+ it('mirrors parseColorToAppleScriptRGB legacy contract', () => {
69
+ expect(parseColorToAppleScriptRGB('navy')).toBe('{0, 51, 102}');
70
+ expect(parseColorToAppleScriptRGB('not-a-color')).toBeNull();
71
+ });
72
+ it('NAMED_COLORS contains the keys the Swift bridges rely on', () => {
73
+ for (const k of ['black', 'white', 'red', 'green', 'blue', 'navy', 'darkblue', 'yellow', 'orange', 'purple', 'pink', 'cyan', 'gray', 'grey']) {
74
+ expect(NAMED_COLORS[k]).toBeDefined();
75
+ }
76
+ });
77
+ });
78
+ describe('renderTemplate', () => {
79
+ it('substitutes simple {{name}} and filters', () => {
80
+ const r = renderTemplate('set x to {{a|json}}\nset n to {{n|as_int}}\nset y to {{b|bool}}', { a: 'hi "there"', n: '42', b: true });
81
+ expect(r.errors).toHaveLength(0);
82
+ expect(r.source).toContain('set x to "hi \\"there\\""');
83
+ expect(r.source).toContain('set n to 42');
84
+ expect(r.source).toContain('set y to true');
85
+ });
86
+ it('strips {{#if}} blocks when the var is falsy', () => {
87
+ const r = renderTemplate('A\n{{#if bg}}set b to {{bg|rgb}}{{/if}}\nB', { bg: '' });
88
+ expect(r.errors).toHaveLength(0);
89
+ // The whole conditional body is gone — including the bg|rgb filter
90
+ // call — so an empty bg never reaches the rgb validator.
91
+ expect(r.source).not.toContain('rgb');
92
+ expect(r.source).not.toContain('missing value');
93
+ expect(r.source.split('\n').filter(Boolean).join(' ')).toMatch(/^A\s*B$/);
94
+ });
95
+ it('emits a valid AppleScript literal for a recognised color', () => {
96
+ const r = renderTemplate('set b to {{bg|rgb}}', { bg: 'navy' });
97
+ expect(r.errors).toHaveLength(0);
98
+ expect(r.source).toBe('set b to {0, 51, 102}');
99
+ });
100
+ it('records an error AND emits a syntactically valid placeholder for a bad color', () => {
101
+ const r = renderTemplate('set b to {{bg|rgb}}', { bg: '深玫瑰红' });
102
+ expect(r.errors).toHaveLength(1);
103
+ expect(r.errors[0].arg).toBe('bg');
104
+ expect(r.errors[0].filter).toBe('rgb');
105
+ expect(r.errors[0].reason).toMatch(/--bg=深玫瑰红/);
106
+ // `missing value` is a real AppleScript token, so a downstream parse
107
+ // doesn't blow up — but the dispatcher should still refuse to run it.
108
+ expect(r.source).toBe('set b to missing value');
109
+ });
110
+ it('renders empty rgb input as an empty string literal (templates check `is not ""`)', () => {
111
+ const r = renderTemplate('set rgbVal to {{color|rgb}}', { color: '' });
112
+ expect(r.errors).toHaveLength(0);
113
+ expect(r.source).toBe('set rgbVal to ""');
114
+ });
115
+ it('lets multiple bad |rgb args accumulate into one render report', () => {
116
+ const r = renderTemplate('set a to {{bg|rgb}}\nset b to {{color|rgb}}', { bg: 'fuchsia2', color: 'puce' });
117
+ expect(r.errors).toHaveLength(2);
118
+ expect(r.errors.map((e) => e.arg).sort()).toEqual(['bg', 'color']);
119
+ });
120
+ });
121
+ describe('parsePartialOkFail', () => {
122
+ it('demuxes the okList|failList convention', () => {
123
+ expect(parsePartialOkFail('bold,color,align|bg: missing color')).toEqual({
124
+ ok: 'bold,color,align',
125
+ fail: 'bg: missing color',
126
+ });
127
+ });
128
+ it('treats a payload with no | as opaque', () => {
129
+ expect(parsePartialOkFail('updated')).toBeNull();
130
+ });
131
+ it('handles "all-ok" (failList side empty)', () => {
132
+ expect(parsePartialOkFail('bold,color|')).toEqual({ ok: 'bold,color', fail: '' });
133
+ });
134
+ it('handles "all-fail" (okList side empty)', () => {
135
+ expect(parsePartialOkFail('|bg: missing color, color: missing color')).toEqual({
136
+ ok: '',
137
+ fail: 'bg: missing color, color: missing color',
138
+ });
139
+ });
140
+ });
141
+ //# sourceMappingURL=dispatcher.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatcher.test.js","sourceRoot":"","sources":["../../../src/skills/runner/dispatcher.test.ts"],"names":[],"mappings":"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"}