@taloswork/ose-shared 0.1.12 → 0.1.13

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 (66) hide show
  1. package/package.json +3 -3
  2. package/skills/document/SKILL.md +33 -45
  3. package/skills/document/bin/deck-build.cjs +10482 -272
  4. package/skills/document/bin/deck-chart.cjs +21 -12
  5. package/skills/document/bin/deck-plan.cjs +11654 -42
  6. package/skills/document/bin/deck-qa.cjs +95 -21
  7. package/skills/document/bin/deck-scenario.cjs +20 -3
  8. package/skills/document/bin/deck-styles.cjs +1604 -0
  9. package/skills/document/bin/doc-convert.cjs +182 -257
  10. package/skills/document/bin/doc-fill.cjs +140 -19
  11. package/skills/document/bin/doc-gen.cjs +1903 -281
  12. package/skills/document/bin/doc-validate.cjs +127 -52
  13. package/skills/document/bin/docx-defaults.cjs +9907 -0
  14. package/skills/document/bin/html2pptx.cjs +35949 -31972
  15. package/skills/document/bin/pdf-form.cjs +8 -0
  16. package/skills/document/bin/pdf-ops.cjs +8 -0
  17. package/skills/document/bin/pptx-notes.cjs +10038 -0
  18. package/skills/document/bin/pptx-tokenize.cjs +19 -4
  19. package/skills/document/bin/template-skin.cjs +10910 -0
  20. package/skills/document/bin-reference.md +15 -10
  21. package/skills/document/catalog.json +33 -32
  22. package/skills/document/content-pipeline.md +79 -44
  23. package/skills/document/deck-design.md +55 -32
  24. package/skills/document/generated-visuals.md +99 -0
  25. package/skills/document/layouts/MAINTAINERS.md +33 -0
  26. package/skills/document/layouts/README.md +20 -20
  27. package/skills/document/layouts/big-stat.tpl +1 -1
  28. package/skills/document/layouts/capacity.json +1 -1
  29. package/skills/document/layouts/cards-3.tpl +1 -1
  30. package/skills/document/layouts/chart-full.tpl +1 -1
  31. package/skills/document/layouts/chart-kpi.tpl +1 -1
  32. package/skills/document/layouts/comparison.tpl +1 -1
  33. package/skills/document/layouts/data-table.tpl +1 -1
  34. package/skills/document/layouts/funnel.tpl +1 -1
  35. package/skills/document/layouts/gantt.tpl +1 -1
  36. package/skills/document/layouts/hub-flow.tpl +4 -0
  37. package/skills/document/layouts/icon-row.tpl +1 -1
  38. package/skills/document/layouts/image-grid.tpl +1 -1
  39. package/skills/document/layouts/matrix-2x2.tpl +1 -1
  40. package/skills/document/layouts/mock-qa.tpl +4 -0
  41. package/skills/document/layouts/profiles.json +2 -2
  42. package/skills/document/layouts/pyramid.tpl +1 -1
  43. package/skills/document/layouts/radar.tpl +1 -1
  44. package/skills/document/layouts/ring-progress.tpl +1 -1
  45. package/skills/document/layouts/slots.json +1 -1
  46. package/skills/document/layouts/steps-vertical.tpl +1 -1
  47. package/skills/document/layouts/steps.tpl +1 -1
  48. package/skills/document/layouts/three-kpi.tpl +1 -1
  49. package/skills/document/layouts/timeline.tpl +1 -1
  50. package/skills/document/layouts/toc-panel.tpl +1 -1
  51. package/skills/document/layouts/two-kpi.tpl +2 -2
  52. package/skills/document/layouts/versus.tpl +1 -1
  53. package/skills/document/packs/README.md +1 -1
  54. package/skills/document/pdf.md +13 -0
  55. package/skills/document/rewrite.md +23 -8
  56. package/skills/document/scenarios.json +19 -2
  57. package/skills/document/scenarios.schema.json +1 -0
  58. package/skills/document/styles/_backdrops/rimlight.html +3 -2
  59. package/skills/document/styles/_contract-defaults.css +6 -1
  60. package/skills/document/styles/_samples/_groups/biz-premium.webp +0 -0
  61. package/skills/document/styles/_samples/mckinsey.webp +0 -0
  62. package/skills/document/styles/mckinsey/backdrop.html +7 -5
  63. package/skills/grill-me/SKILL.md +6 -0
  64. package/skills/grill-me/agents/openai.yaml +5 -0
  65. package/skills/grilling/SKILL.md +28 -0
  66. package/skills/grilling/agents/openai.yaml +3 -0
@@ -9910,14 +9910,27 @@ function paraText(para) {
9910
9910
  t += unescXml(m[1]);
9911
9911
  return t;
9912
9912
  }
9913
- function txBodyAsToken(txBody, tokenText) {
9913
+ function leadRuns(para) {
9914
+ const runs = [...para.matchAll(/<a:r\b[^>]*>[\s\S]*?<\/a:r>/g)].map((m) => m[0]);
9915
+ if (runs.length < 2)
9916
+ return [];
9917
+ const rp = (r) => RE.rPr.exec(r)?.[0]?.replace(/\s(?:lang|altLang|dirty|err|smtClean|noProof|kern|spc)="[^"]*"/g, "");
9918
+ const a = rp(runs[0]);
9919
+ const b = rp(runs[1]);
9920
+ return a && b && a !== b ? runs : [];
9921
+ }
9922
+ function txBodyAsToken(txBody, tokenText, restToken) {
9914
9923
  const bodyPr = RE.bodyPr.exec(txBody)?.[0] ?? "<a:bodyPr/>";
9915
9924
  const lstStyle = RE.lstStyle.exec(txBody)?.[0] ?? "";
9916
9925
  const firstPara = RE.para1.exec(txBody)?.[0] ?? "";
9917
9926
  const pPr = firstPara ? RE.pPr.exec(firstPara)?.[0] ?? "" : "";
9918
9927
  const firstRun = firstPara ? RE.firstRun.exec(firstPara)?.[0] ?? "" : "";
9919
9928
  const rPr = firstRun ? RE.rPr.exec(firstRun)?.[0] ?? "" : "";
9920
- const p = `<a:p>${pPr}<a:r>${rPr}<a:t>${tokenText}</a:t></a:r></a:p>`;
9929
+ let p = `<a:p>${pPr}<a:r>${rPr}<a:t>${tokenText}</a:t></a:r></a:p>`;
9930
+ if (restToken) {
9931
+ const rPr2 = RE.rPr.exec(leadRuns(firstPara)[1])?.[0] ?? "";
9932
+ p += `<a:p>${pPr}<a:r>${rPr2}<a:t>${restToken}</a:t></a:r></a:p>`;
9933
+ }
9921
9934
  return `<p:txBody>${bodyPr}${lstStyle}${p}</p:txBody>`;
9922
9935
  }
9923
9936
  function tokenizeSlide(xml, slideIndex, warn) {
@@ -9947,7 +9960,8 @@ function tokenizeSlide(xml, slideIndex, warn) {
9947
9960
  const original = paras.join("\n");
9948
9961
  if (!phM && !original.trim())
9949
9962
  return sp;
9950
- const multiline = paras.filter((p) => p.trim().length > 0).length > 1;
9963
+ const lead = leadRuns(RE.para1.exec(txBody)?.[0] ?? "").length > 0;
9964
+ const multiline = lead || paras.filter((p) => p.trim().length > 0).length > 1;
9951
9965
  const token = mkToken(role);
9952
9966
  if (phM && !original.trim())
9953
9967
  warn(`slide ${slideIndex}: ${role} placeholder was empty \u2014 tokenized anyway`);
@@ -9956,12 +9970,13 @@ function tokenizeSlide(xml, slideIndex, warn) {
9956
9970
  role,
9957
9971
  type: "text",
9958
9972
  ...multiline ? { multiline: true } : {},
9973
+ ...lead ? { leadStyle: true } : {},
9959
9974
  ...phType ? { phType } : {},
9960
9975
  ...phIdx ? { phIdx } : {},
9961
9976
  capacityChars: Math.max(1, Math.round(visualWidth(original) || 20)),
9962
9977
  ...original ? { original: original.slice(0, 120) } : {}
9963
9978
  });
9964
- return sp.replace(txBody, txBodyAsToken(txBody, `{{${token}}}`));
9979
+ return sp.replace(txBody, txBodyAsToken(txBody, `{{${token}}}`, lead ? `{{${token}_rest}}` : void 0));
9965
9980
  });
9966
9981
  for (const m of out.matchAll(RE.pic)) {
9967
9982
  const rel = RE.blip.exec(m[0])?.[1];