diffsplain 0.6.0 → 0.8.1

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 (82) hide show
  1. package/README.md +8 -4
  2. package/dist/assets/{angular-html-vBvPnd6a.js → angular-html-CphzFC_v.js} +1 -1
  3. package/dist/assets/{angular-ts-CDzF1Z6a.js → angular-ts-Am0-mbFw.js} +1 -1
  4. package/dist/assets/{apl-Bm9bxvP7.js → apl-Cs2rPKDN.js} +1 -1
  5. package/dist/assets/{astro-RNrNWCYO.js → astro-CxKUUn9h.js} +1 -1
  6. package/dist/assets/{blade-On-NBYUv.js → blade-DqeCa6v5.js} +1 -1
  7. package/dist/assets/{c-hRmhFgD0.js → c-DdI6lknk.js} +1 -1
  8. package/dist/assets/{cobol-CIqc3k2t.js → cobol-COuAGE2X.js} +1 -1
  9. package/dist/assets/{coffee-Cd5EyvvS.js → coffee-BFlYT3Lp.js} +1 -1
  10. package/dist/assets/{cpp-zXFAAp_S.js → cpp-nywLU0Np.js} +1 -1
  11. package/dist/assets/{crystal-DRYY4cSw.js → crystal-BWp4dz1s.js} +1 -1
  12. package/dist/assets/{css-C4op_MsD.js → css-CRb9tUpU.js} +1 -1
  13. package/dist/assets/{edge-d3rJkErf.js → edge-rUYSbJy4.js} +1 -1
  14. package/dist/assets/{elixir-DPqlJhYM.js → elixir-DOq9ybIH.js} +1 -1
  15. package/dist/assets/{elm-DgU37I8a.js → elm-C8e38E5-.js} +1 -1
  16. package/dist/assets/{erb-CZVB_ntC.js → erb-BR9Q37Et.js} +1 -1
  17. package/dist/assets/{git-rebase-hUkltHZG.js → git-rebase-Coo2LUtB.js} +1 -1
  18. package/dist/assets/{glimmer-js-5XOT9GQ8.js → glimmer-js-C7hX9jg6.js} +1 -1
  19. package/dist/assets/{glimmer-ts-DT7D0Kfq.js → glimmer-ts-CZLT0F0k.js} +1 -1
  20. package/dist/assets/{glsl-Br4_Eh5O.js → glsl-BDZRv6e-.js} +1 -1
  21. package/dist/assets/{graphql--BmZ_AYP.js → graphql-DyzFc3y3.js} +1 -1
  22. package/dist/assets/{hack-CMdqGDoA.js → hack-CWnO7WsF.js} +1 -1
  23. package/dist/assets/{haml-DLEOHGmg.js → haml-CvDj-ghO.js} +1 -1
  24. package/dist/assets/{handlebars-BfUftoV0.js → handlebars-BnU_YcVA.js} +1 -1
  25. package/dist/assets/{html-uOgx2iYC.js → html-CjB2TKKa.js} +1 -1
  26. package/dist/assets/{html-derivative-D5cZE6C4.js → html-derivative-CYQqEXS6.js} +1 -1
  27. package/dist/assets/{http-cW9c66J_.js → http-NNQbnqIx.js} +1 -1
  28. package/dist/assets/{hurl-BztURO2n.js → hurl-DHaAA1BS.js} +1 -1
  29. package/dist/assets/{index-DZFM4-3L.js → index-f9ekN94b.js} +4 -4
  30. package/dist/assets/{java-Cy4mnKaj.js → java-D1J5V2CD.js} +1 -1
  31. package/dist/assets/{javascript-_Z02t_9Q.js → javascript-C3pX-HsE.js} +1 -1
  32. package/dist/assets/{jinja-BppBm5gt.js → jinja-BY9CIY8g.js} +1 -1
  33. package/dist/assets/{jison-Dzns436M.js → jison-Cr0H89gS.js} +1 -1
  34. package/dist/assets/{json-BYkfLOry.js → json-CA3kKNfq.js} +1 -1
  35. package/dist/assets/{jsx-DtAm8NUb.js → jsx-BuMkR-Lj.js} +1 -1
  36. package/dist/assets/{julia-CLIMRuh0.js → julia-C2sLwg3f.js} +1 -1
  37. package/dist/assets/{just-DMg47an6.js → just-pXpkLBXv.js} +1 -1
  38. package/dist/assets/{latex-D05ztCOx.js → latex-7v3EPOdF.js} +1 -1
  39. package/dist/assets/{liquid-DpImQR4t.js → liquid-CJZq0Z0t.js} +1 -1
  40. package/dist/assets/{lua--ZHUYQUU.js → lua-BimBzvTH.js} +1 -1
  41. package/dist/assets/{marko-Dh3Xi08i.js → marko-CCZHVnQN.js} +1 -1
  42. package/dist/assets/{mdc-Br6Pt78u.js → mdc-SLECNw2A.js} +1 -1
  43. package/dist/assets/{nginx-CwSU6U6d.js → nginx-DUwtUge2.js} +1 -1
  44. package/dist/assets/{nim-CBbTwyeq.js → nim-HD8o_Omp.js} +1 -1
  45. package/dist/assets/{perl-D3jQu3LN.js → perl-BGMeIkNk.js} +1 -1
  46. package/dist/assets/{php-BMeXBzlU.js → php-BL5xuY-v.js} +1 -1
  47. package/dist/assets/{pug-BGdY1g5E.js → pug-C8G1U_u8.js} +1 -1
  48. package/dist/assets/{qml-DsT5biza.js → qml-BGVSyw1x.js} +1 -1
  49. package/dist/assets/{r-CbS9PfN5.js → r-BDnRcclC.js} +1 -1
  50. package/dist/assets/{razor-Bwm8roHi.js → razor-I8tbEIVJ.js} +1 -1
  51. package/dist/assets/{regexp-Bc_9DyAu.js → regexp-D0yakB9Q.js} +1 -1
  52. package/dist/assets/{rst-Cj1Aii91.js → rst-DbTCn07T.js} +1 -1
  53. package/dist/assets/{ruby-BPMtFZnc.js → ruby-BwgPFIcO.js} +1 -1
  54. package/dist/assets/{sas-CoOau1t2.js → sas-dN4ePfXU.js} +1 -1
  55. package/dist/assets/{scss-CvfaI808.js → scss-T7M1A4iM.js} +1 -1
  56. package/dist/assets/{shellscript-B0C-TdLE.js → shellscript-HFjBHS7_.js} +1 -1
  57. package/dist/assets/{shellsession-UhmLiqcA.js → shellsession-DCAGskrx.js} +1 -1
  58. package/dist/assets/{soy-D419u0RL.js → soy-BgT96TF9.js} +1 -1
  59. package/dist/assets/{sql-Do9k0rRn.js → sql-DCIQeRzx.js} +1 -1
  60. package/dist/assets/{stata-x47J6BC4.js → stata-Dn0tad0_.js} +1 -1
  61. package/dist/assets/{surrealql-BERQ6pHu.js → surrealql-CCgFEQfW.js} +1 -1
  62. package/dist/assets/{svelte-dRWkyqKW.js → svelte-ITXimG8u.js} +1 -1
  63. package/dist/assets/{templ-CTq-KoWN.js → templ-DJVZZqPw.js} +1 -1
  64. package/dist/assets/{tex-CdRGjyYI.js → tex-Bn4N-OtH.js} +1 -1
  65. package/dist/assets/{ts-tags-CgaMqyVb.js → ts-tags-CxQ4PoC4.js} +1 -1
  66. package/dist/assets/{tsx-cpBQKcPG.js → tsx-CxwgcjkC.js} +1 -1
  67. package/dist/assets/{twig-vbs_PM4-.js → twig-CtbyTyMH.js} +1 -1
  68. package/dist/assets/{typescript-Cc--nwIo.js → typescript-d6ru12L8.js} +1 -1
  69. package/dist/assets/{vue-CgHwdBmB.js → vue-RvqAsYDm.js} +1 -1
  70. package/dist/assets/{vue-html-BHfoMw47.js → vue-html-BkHDVENe.js} +1 -1
  71. package/dist/assets/{vue-vine-_lVRp_NK.js → vue-vine-DvS3Mlkn.js} +1 -1
  72. package/dist/assets/{xml-G4NVmTde.js → xml-lzTq5A-V.js} +1 -1
  73. package/dist/assets/{xsl-s0so2M1i.js → xsl-BL0KXNWI.js} +1 -1
  74. package/dist/assets/{yaml-CpsmW05t.js → yaml-CF4XlBJS.js} +1 -1
  75. package/dist/demo-diff-data.json +6 -1
  76. package/dist/index.html +1 -1
  77. package/package.json +3 -2
  78. package/scripts/cli-args.mjs +15 -5
  79. package/scripts/coding-agents.mjs +265 -17
  80. package/scripts/doctor.mjs +27 -18
  81. package/scripts/generate-summaries.mjs +416 -58
  82. package/scripts/present.mjs +5 -4
@@ -1 +1 @@
1
- import{t as e}from"./index-DZFM4-3L.js";import{t}from"./java-Cy4mnKaj.js";var n=e({default:()=>i}),r=Object.freeze(JSON.parse(`{"displayName":"XML","name":"xml","patterns":[{"begin":"(<\\\\?)\\\\s*([-0-9A-Z_a-z]+)","captures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"entity.name.tag.xml"}},"end":"(\\\\?>)","name":"meta.tag.preprocessor.xml","patterns":[{"match":" ([-A-Za-z]+)","name":"entity.other.attribute-name.xml"},{"include":"#doublequotedString"},{"include":"#singlequotedString"}]},{"begin":"(<!)(DOCTYPE)\\\\s+([:A-Z_a-z][-.0-:A-Z_a-z]*)","captures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"keyword.other.doctype.xml"},"3":{"name":"variable.language.documentroot.xml"}},"end":"\\\\s*(>)","name":"meta.tag.sgml.doctype.xml","patterns":[{"include":"#internalSubset"}]},{"include":"#comments"},{"begin":"(<)((?:([-0-9A-Z_a-z]+)(:))?([-0-:A-Z_a-z]+))(?=(\\\\s[^>]*)?></\\\\2>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"entity.name.tag.xml"},"3":{"name":"entity.name.tag.namespace.xml"},"4":{"name":"punctuation.separator.namespace.xml"},"5":{"name":"entity.name.tag.localname.xml"}},"end":"(>)(</)((?:([-0-9A-Z_a-z]+)(:))?([-0-:A-Z_a-z]+))(>)","endCaptures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"punctuation.definition.tag.xml"},"3":{"name":"entity.name.tag.xml"},"4":{"name":"entity.name.tag.namespace.xml"},"5":{"name":"punctuation.separator.namespace.xml"},"6":{"name":"entity.name.tag.localname.xml"},"7":{"name":"punctuation.definition.tag.xml"}},"name":"meta.tag.no-content.xml","patterns":[{"include":"#tagStuff"}]},{"begin":"(</?)(?:([-.\\\\w]+)((:)))?([-.:\\\\w]+)","captures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"entity.name.tag.namespace.xml"},"3":{"name":"entity.name.tag.xml"},"4":{"name":"punctuation.separator.namespace.xml"},"5":{"name":"entity.name.tag.localname.xml"}},"end":"(/?>)","name":"meta.tag.xml","patterns":[{"include":"#tagStuff"}]},{"include":"#entity"},{"include":"#bare-ampersand"},{"begin":"<%@","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.xml"}},"end":"%>","endCaptures":{"0":{"name":"punctuation.section.embedded.end.xml"}},"name":"source.java-props.embedded.xml","patterns":[{"match":"page|include|taglib","name":"keyword.other.page-props.xml"}]},{"begin":"<%[!=]?(?!--)","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.xml"}},"end":"(?!--)%>","endCaptures":{"0":{"name":"punctuation.section.embedded.end.xml"}},"name":"source.java.embedded.xml","patterns":[{"include":"source.java"}]},{"begin":"<!\\\\[CDATA\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml"}},"end":"]]>","endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}},"name":"string.unquoted.cdata.xml"}],"repository":{"EntityDecl":{"begin":"(<!)(ENTITY)\\\\s+(%\\\\s+)?([:A-Z_a-z][-.0-:A-Z_a-z]*)(\\\\s+(?:SYSTEM|PUBLIC)\\\\s+)?","captures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"keyword.other.entity.xml"},"3":{"name":"punctuation.definition.entity.xml"},"4":{"name":"variable.language.entity.xml"},"5":{"name":"keyword.other.entitytype.xml"}},"end":"(>)","patterns":[{"include":"#doublequotedString"},{"include":"#singlequotedString"}]},"bare-ampersand":{"match":"&","name":"invalid.illegal.bad-ampersand.xml"},"comments":{"patterns":[{"begin":"<%--","captures":{"0":{"name":"punctuation.definition.comment.xml"},"end":"--%>","name":"comment.block.xml"}},{"begin":"<!--","captures":{"0":{"name":"punctuation.definition.comment.xml"}},"end":"-->","name":"comment.block.xml","patterns":[{"begin":"--(?!>)","captures":{"0":{"name":"invalid.illegal.bad-comments-or-CDATA.xml"}}}]}]},"doublequotedString":{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}},"name":"string.quoted.double.xml","patterns":[{"include":"#entity"},{"include":"#bare-ampersand"}]},"entity":{"captures":{"1":{"name":"punctuation.definition.constant.xml"},"3":{"name":"punctuation.definition.constant.xml"}},"match":"(&)([:A-Z_a-z][-.0-:A-Z_a-z]*|#[0-9]+|#x\\\\h+)(;)","name":"constant.character.entity.xml"},"internalSubset":{"begin":"(\\\\[)","captures":{"1":{"name":"punctuation.definition.constant.xml"}},"end":"(])","name":"meta.internalsubset.xml","patterns":[{"include":"#EntityDecl"},{"include":"#parameterEntity"},{"include":"#comments"}]},"parameterEntity":{"captures":{"1":{"name":"punctuation.definition.constant.xml"},"3":{"name":"punctuation.definition.constant.xml"}},"match":"(%)([:A-Z_a-z][-.0-:A-Z_a-z]*)(;)","name":"constant.character.parameter-entity.xml"},"singlequotedString":{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}},"name":"string.quoted.single.xml","patterns":[{"include":"#entity"},{"include":"#bare-ampersand"}]},"tagStuff":{"patterns":[{"captures":{"1":{"name":"entity.other.attribute-name.namespace.xml"},"2":{"name":"entity.other.attribute-name.xml"},"3":{"name":"punctuation.separator.namespace.xml"},"4":{"name":"entity.other.attribute-name.localname.xml"}},"match":"(?:^|\\\\s+)(?:([-.\\\\w]+)((:)))?([-.:\\\\w]+)\\\\s*="},{"include":"#doublequotedString"},{"include":"#singlequotedString"}]}},"scopeName":"text.xml","embeddedLangs":["java"]}`)),i=[...t,r];export{n,i as t};
1
+ import{t as e}from"./index-f9ekN94b.js";import{t}from"./java-D1J5V2CD.js";var n=e({default:()=>i}),r=Object.freeze(JSON.parse(`{"displayName":"XML","name":"xml","patterns":[{"begin":"(<\\\\?)\\\\s*([-0-9A-Z_a-z]+)","captures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"entity.name.tag.xml"}},"end":"(\\\\?>)","name":"meta.tag.preprocessor.xml","patterns":[{"match":" ([-A-Za-z]+)","name":"entity.other.attribute-name.xml"},{"include":"#doublequotedString"},{"include":"#singlequotedString"}]},{"begin":"(<!)(DOCTYPE)\\\\s+([:A-Z_a-z][-.0-:A-Z_a-z]*)","captures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"keyword.other.doctype.xml"},"3":{"name":"variable.language.documentroot.xml"}},"end":"\\\\s*(>)","name":"meta.tag.sgml.doctype.xml","patterns":[{"include":"#internalSubset"}]},{"include":"#comments"},{"begin":"(<)((?:([-0-9A-Z_a-z]+)(:))?([-0-:A-Z_a-z]+))(?=(\\\\s[^>]*)?></\\\\2>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"entity.name.tag.xml"},"3":{"name":"entity.name.tag.namespace.xml"},"4":{"name":"punctuation.separator.namespace.xml"},"5":{"name":"entity.name.tag.localname.xml"}},"end":"(>)(</)((?:([-0-9A-Z_a-z]+)(:))?([-0-:A-Z_a-z]+))(>)","endCaptures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"punctuation.definition.tag.xml"},"3":{"name":"entity.name.tag.xml"},"4":{"name":"entity.name.tag.namespace.xml"},"5":{"name":"punctuation.separator.namespace.xml"},"6":{"name":"entity.name.tag.localname.xml"},"7":{"name":"punctuation.definition.tag.xml"}},"name":"meta.tag.no-content.xml","patterns":[{"include":"#tagStuff"}]},{"begin":"(</?)(?:([-.\\\\w]+)((:)))?([-.:\\\\w]+)","captures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"entity.name.tag.namespace.xml"},"3":{"name":"entity.name.tag.xml"},"4":{"name":"punctuation.separator.namespace.xml"},"5":{"name":"entity.name.tag.localname.xml"}},"end":"(/?>)","name":"meta.tag.xml","patterns":[{"include":"#tagStuff"}]},{"include":"#entity"},{"include":"#bare-ampersand"},{"begin":"<%@","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.xml"}},"end":"%>","endCaptures":{"0":{"name":"punctuation.section.embedded.end.xml"}},"name":"source.java-props.embedded.xml","patterns":[{"match":"page|include|taglib","name":"keyword.other.page-props.xml"}]},{"begin":"<%[!=]?(?!--)","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.xml"}},"end":"(?!--)%>","endCaptures":{"0":{"name":"punctuation.section.embedded.end.xml"}},"name":"source.java.embedded.xml","patterns":[{"include":"source.java"}]},{"begin":"<!\\\\[CDATA\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml"}},"end":"]]>","endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}},"name":"string.unquoted.cdata.xml"}],"repository":{"EntityDecl":{"begin":"(<!)(ENTITY)\\\\s+(%\\\\s+)?([:A-Z_a-z][-.0-:A-Z_a-z]*)(\\\\s+(?:SYSTEM|PUBLIC)\\\\s+)?","captures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"keyword.other.entity.xml"},"3":{"name":"punctuation.definition.entity.xml"},"4":{"name":"variable.language.entity.xml"},"5":{"name":"keyword.other.entitytype.xml"}},"end":"(>)","patterns":[{"include":"#doublequotedString"},{"include":"#singlequotedString"}]},"bare-ampersand":{"match":"&","name":"invalid.illegal.bad-ampersand.xml"},"comments":{"patterns":[{"begin":"<%--","captures":{"0":{"name":"punctuation.definition.comment.xml"},"end":"--%>","name":"comment.block.xml"}},{"begin":"<!--","captures":{"0":{"name":"punctuation.definition.comment.xml"}},"end":"-->","name":"comment.block.xml","patterns":[{"begin":"--(?!>)","captures":{"0":{"name":"invalid.illegal.bad-comments-or-CDATA.xml"}}}]}]},"doublequotedString":{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}},"name":"string.quoted.double.xml","patterns":[{"include":"#entity"},{"include":"#bare-ampersand"}]},"entity":{"captures":{"1":{"name":"punctuation.definition.constant.xml"},"3":{"name":"punctuation.definition.constant.xml"}},"match":"(&)([:A-Z_a-z][-.0-:A-Z_a-z]*|#[0-9]+|#x\\\\h+)(;)","name":"constant.character.entity.xml"},"internalSubset":{"begin":"(\\\\[)","captures":{"1":{"name":"punctuation.definition.constant.xml"}},"end":"(])","name":"meta.internalsubset.xml","patterns":[{"include":"#EntityDecl"},{"include":"#parameterEntity"},{"include":"#comments"}]},"parameterEntity":{"captures":{"1":{"name":"punctuation.definition.constant.xml"},"3":{"name":"punctuation.definition.constant.xml"}},"match":"(%)([:A-Z_a-z][-.0-:A-Z_a-z]*)(;)","name":"constant.character.parameter-entity.xml"},"singlequotedString":{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}},"name":"string.quoted.single.xml","patterns":[{"include":"#entity"},{"include":"#bare-ampersand"}]},"tagStuff":{"patterns":[{"captures":{"1":{"name":"entity.other.attribute-name.namespace.xml"},"2":{"name":"entity.other.attribute-name.xml"},"3":{"name":"punctuation.separator.namespace.xml"},"4":{"name":"entity.other.attribute-name.localname.xml"}},"match":"(?:^|\\\\s+)(?:([-.\\\\w]+)((:)))?([-.:\\\\w]+)\\\\s*="},{"include":"#doublequotedString"},{"include":"#singlequotedString"}]}},"scopeName":"text.xml","embeddedLangs":["java"]}`)),i=[...t,r];export{n,i as t};
@@ -1 +1 @@
1
- import{t as e}from"./xml-G4NVmTde.js";var t=Object.freeze(JSON.parse(`{"displayName":"XSL","name":"xsl","patterns":[{"begin":"(<)(xsl)((:))(template)","captures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"entity.name.tag.namespace.xml"},"3":{"name":"entity.name.tag.xml"},"4":{"name":"punctuation.separator.namespace.xml"},"5":{"name":"entity.name.tag.localname.xml"}},"end":"(>)","name":"meta.tag.xml.template","patterns":[{"captures":{"1":{"name":"entity.other.attribute-name.namespace.xml"},"2":{"name":"entity.other.attribute-name.xml"},"3":{"name":"punctuation.separator.namespace.xml"},"4":{"name":"entity.other.attribute-name.localname.xml"}},"match":" (?:([-0-9A-Z_a-z]+)((:)))?([-A-Za-z]+)"},{"include":"#doublequotedString"},{"include":"#singlequotedString"}]},{"include":"text.xml"}],"repository":{"doublequotedString":{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}},"name":"string.quoted.double.xml"},"singlequotedString":{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}},"name":"string.quoted.single.xml"}},"scopeName":"text.xml.xsl","embeddedLangs":["xml"]}`)),n=[...e,t];export{n as default};
1
+ import{t as e}from"./xml-lzTq5A-V.js";var t=Object.freeze(JSON.parse(`{"displayName":"XSL","name":"xsl","patterns":[{"begin":"(<)(xsl)((:))(template)","captures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"entity.name.tag.namespace.xml"},"3":{"name":"entity.name.tag.xml"},"4":{"name":"punctuation.separator.namespace.xml"},"5":{"name":"entity.name.tag.localname.xml"}},"end":"(>)","name":"meta.tag.xml.template","patterns":[{"captures":{"1":{"name":"entity.other.attribute-name.namespace.xml"},"2":{"name":"entity.other.attribute-name.xml"},"3":{"name":"punctuation.separator.namespace.xml"},"4":{"name":"entity.other.attribute-name.localname.xml"}},"match":" (?:([-0-9A-Z_a-z]+)((:)))?([-A-Za-z]+)"},{"include":"#doublequotedString"},{"include":"#singlequotedString"}]},{"include":"text.xml"}],"repository":{"doublequotedString":{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}},"name":"string.quoted.double.xml"},"singlequotedString":{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}},"name":"string.quoted.single.xml"}},"scopeName":"text.xml.xsl","embeddedLangs":["xml"]}`)),n=[...e,t];export{n as default};
@@ -1 +1 @@
1
- import{t as e}from"./index-DZFM4-3L.js";var t=e({default:()=>n}),n=[Object.freeze(JSON.parse(`{"displayName":"YAML","fileTypes":["yaml","yml","rviz","reek","clang-format","yaml-tmlanguage","syntax","sublime-syntax"],"firstLineMatch":"^%YAML( ?1.\\\\d+)?","name":"yaml","patterns":[{"include":"#comment"},{"include":"#property"},{"include":"#directive"},{"match":"^---","name":"entity.other.document.begin.yaml"},{"match":"^\\\\.{3}","name":"entity.other.document.end.yaml"},{"include":"#node"}],"repository":{"block-collection":{"patterns":[{"include":"#block-sequence"},{"include":"#block-mapping"}]},"block-mapping":{"patterns":[{"include":"#block-pair"}]},"block-node":{"patterns":[{"include":"#prototype"},{"include":"#block-scalar"},{"include":"#block-collection"},{"include":"#flow-scalar-plain-out"},{"include":"#flow-node"}]},"block-pair":{"patterns":[{"begin":"\\\\?","beginCaptures":{"1":{"name":"punctuation.definition.key-value.begin.yaml"}},"end":"(?=\\\\?)|^ *(:)|(:)","endCaptures":{"1":{"name":"punctuation.separator.key-value.mapping.yaml"},"2":{"name":"invalid.illegal.expected-newline.yaml"}},"name":"meta.block-mapping.yaml","patterns":[{"include":"#block-node"}]},{"begin":"(?=(?:[^-\\\\]!\\"#%\\\\&'*,:>?@\\\\[\`{|}\\\\s]|[-:?]\\\\S)([^:\\\\s]|:\\\\S|\\\\s+(?![#\\\\s]))*\\\\s*:(\\\\s|$))","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$))","patterns":[{"include":"#flow-scalar-plain-out-implicit-type"},{"begin":"[^-\\\\]!\\"#%\\\\&'*,:>?@\\\\[\`{|}\\\\s]|[-:?]\\\\S","beginCaptures":{"0":{"name":"entity.name.tag.yaml"}},"contentName":"entity.name.tag.yaml","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$))","name":"string.unquoted.plain.out.yaml"}]},{"match":":(?=\\\\s|$)","name":"punctuation.separator.key-value.mapping.yaml"}]},"block-scalar":{"begin":"(?:(\\\\|)|(>))([1-9])?([-+])?(.*\\\\n?)","beginCaptures":{"1":{"name":"keyword.control.flow.block-scalar.literal.yaml"},"2":{"name":"keyword.control.flow.block-scalar.folded.yaml"},"3":{"name":"constant.numeric.indentation-indicator.yaml"},"4":{"name":"storage.modifier.chomping-indicator.yaml"},"5":{"patterns":[{"include":"#comment"},{"match":".+","name":"invalid.illegal.expected-comment-or-newline.yaml"}]}},"end":"^(?=\\\\S)|(?!\\\\G)","patterns":[{"begin":"^( +)(?! )","end":"^(?!\\\\1|\\\\s*$)","name":"string.unquoted.block.yaml"}]},"block-sequence":{"match":"(-)(?!\\\\S)","name":"punctuation.definition.block.sequence.item.yaml"},"comment":{"begin":"(?:^([\\\\t ]*)|[\\\\t ]+)(?=#\\\\p{print}*$)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.yaml"}},"end":"(?!\\\\G)","patterns":[{"begin":"#","beginCaptures":{"0":{"name":"punctuation.definition.comment.yaml"}},"end":"\\\\n","name":"comment.line.number-sign.yaml"}]},"directive":{"begin":"^%","beginCaptures":{"0":{"name":"punctuation.definition.directive.begin.yaml"}},"end":"(?=$|[\\\\t ]+($|#))","name":"meta.directive.yaml","patterns":[{"captures":{"1":{"name":"keyword.other.directive.yaml.yaml"},"2":{"name":"constant.numeric.yaml-version.yaml"}},"match":"\\\\G(YAML)[\\\\t ]+(\\\\d+\\\\.\\\\d+)"},{"captures":{"1":{"name":"keyword.other.directive.tag.yaml"},"2":{"name":"storage.type.tag-handle.yaml"},"3":{"name":"support.type.tag-prefix.yaml"}},"match":"\\\\G(TAG)(?:[\\\\t ]+(!(?:[-0-9A-Za-z]*!)?)(?:[\\\\t ]+(!(?:%\\\\h{2}|[]!#$\\\\&-;=?-\\\\[_a-z~])*|(?![]!,\\\\[{}])(?:%\\\\h{2}|[]!#$\\\\&-;=?-\\\\[_a-z~])+))?)?"},{"captures":{"1":{"name":"support.other.directive.reserved.yaml"},"2":{"name":"string.unquoted.directive-name.yaml"},"3":{"name":"string.unquoted.directive-parameter.yaml"}},"match":"\\\\G(\\\\w+)(?:[\\\\t ]+(\\\\w+)(?:[\\\\t ]+(\\\\w+))?)?"},{"match":"\\\\S+","name":"invalid.illegal.unrecognized.yaml"}]},"flow-alias":{"captures":{"1":{"name":"keyword.control.flow.alias.yaml"},"2":{"name":"punctuation.definition.alias.yaml"},"3":{"name":"variable.other.alias.yaml"},"4":{"name":"invalid.illegal.character.anchor.yaml"}},"match":"((\\\\*))([^],/\\\\[{}\\\\s]+)([^],}\\\\s]\\\\S*)?"},"flow-collection":{"patterns":[{"include":"#flow-sequence"},{"include":"#flow-mapping"}]},"flow-mapping":{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.mapping.begin.yaml"}},"end":"}","endCaptures":{"0":{"name":"punctuation.definition.mapping.end.yaml"}},"name":"meta.flow-mapping.yaml","patterns":[{"include":"#prototype"},{"match":",","name":"punctuation.separator.mapping.yaml"},{"include":"#flow-pair"}]},"flow-node":{"patterns":[{"include":"#prototype"},{"include":"#flow-alias"},{"include":"#flow-collection"},{"include":"#flow-scalar"}]},"flow-pair":{"patterns":[{"begin":"\\\\?","beginCaptures":{"0":{"name":"punctuation.definition.key-value.begin.yaml"}},"end":"(?=[],}])","name":"meta.flow-pair.explicit.yaml","patterns":[{"include":"#prototype"},{"include":"#flow-pair"},{"include":"#flow-node"},{"begin":":(?=\\\\s|$|[],\\\\[{}])","beginCaptures":{"0":{"name":"punctuation.separator.key-value.mapping.yaml"}},"end":"(?=[],}])","patterns":[{"include":"#flow-value"}]}]},{"begin":"(?=(?:[^-\\\\]!\\"#%\\\\&'*,:>?@\\\\[\`{|}\\\\s]|[-:?][^],\\\\[{}\\\\s])([^],:\\\\[{}\\\\s]|:[^],\\\\[{}\\\\s]|\\\\s+(?![#\\\\s]))*\\\\s*:(\\\\s|$))","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$)|\\\\s*:[],\\\\[{}]|\\\\s*[],\\\\[{}])","name":"meta.flow-pair.key.yaml","patterns":[{"include":"#flow-scalar-plain-in-implicit-type"},{"begin":"[^-\\\\]!\\"#%\\\\&'*,:>?@\\\\[\`{|}\\\\s]|[-:?][^],\\\\[{}\\\\s]","beginCaptures":{"0":{"name":"entity.name.tag.yaml"}},"contentName":"entity.name.tag.yaml","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$)|\\\\s*:[],\\\\[{}]|\\\\s*[],\\\\[{}])","name":"string.unquoted.plain.in.yaml"}]},{"include":"#flow-node"},{"begin":":(?=\\\\s|$|[],\\\\[{}])","captures":{"0":{"name":"punctuation.separator.key-value.mapping.yaml"}},"end":"(?=[],}])","name":"meta.flow-pair.yaml","patterns":[{"include":"#flow-value"}]}]},"flow-scalar":{"patterns":[{"include":"#flow-scalar-double-quoted"},{"include":"#flow-scalar-single-quoted"},{"include":"#flow-scalar-plain-in"}]},"flow-scalar-double-quoted":{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.yaml"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.yaml"}},"name":"string.quoted.double.yaml","patterns":[{"match":"\\\\\\\\([ \\"/0LN\\\\\\\\_abefnprtv]|x\\\\d\\\\d|u\\\\d{4}|U\\\\d{8})","name":"constant.character.escape.yaml"},{"match":"\\\\\\\\\\\\n","name":"constant.character.escape.double-quoted.newline.yaml"}]},"flow-scalar-plain-in":{"patterns":[{"include":"#flow-scalar-plain-in-implicit-type"},{"begin":"[^-\\\\]!\\"#%\\\\&'*,:>?@\\\\[\`{|}\\\\s]|[-:?][^],\\\\[{}\\\\s]","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$)|\\\\s*:[],\\\\[{}]|\\\\s*[],\\\\[{}])","name":"string.unquoted.plain.in.yaml"}]},"flow-scalar-plain-in-implicit-type":{"patterns":[{"captures":{"1":{"name":"constant.language.null.yaml"},"2":{"name":"constant.language.boolean.yaml"},"3":{"name":"constant.numeric.integer.yaml"},"4":{"name":"constant.numeric.float.yaml"},"5":{"name":"constant.other.timestamp.yaml"},"6":{"name":"constant.language.value.yaml"},"7":{"name":"constant.language.merge.yaml"}},"match":"(?:(null|Null|NULL|~)|([Yy]|yes|Yes|YES|[Nn]|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF)|([-+]?0b[01_]+|[-+]?0[0-7_]+|[-+]?(?:0|[1-9][0-9_]*)|[-+]?0x[_\\\\h]+|[-+]?[1-9][0-9_]*(?::[0-5]?[0-9])+)|([-+]?(?:[0-9][0-9_]*)?\\\\.[.0-9]*(?:[Ee][-+][0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\\\.[0-9_]*|[-+]?\\\\.(?:inf|Inf|INF)|\\\\.(?:nan|NaN|NAN))|(\\\\d{4}-\\\\d{2}-\\\\d{2}|\\\\d{4}-\\\\d{1,2}-\\\\d{1,2}(?:[Tt]|[\\\\t ]+)\\\\d{1,2}:\\\\d{2}:\\\\d{2}(?:\\\\.\\\\d*)?(?:[\\\\t ]*Z|[-+]\\\\d{1,2}(?::\\\\d{1,2})?)?)|(=)|(<<))(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$)|\\\\s*:[],\\\\[{}]|\\\\s*[],\\\\[{}])"}]},"flow-scalar-plain-out":{"patterns":[{"include":"#flow-scalar-plain-out-implicit-type"},{"begin":"[^-\\\\]!\\"#%\\\\&'*,:>?@\\\\[\`{|}\\\\s]|[-:?]\\\\S","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$))","name":"string.unquoted.plain.out.yaml"}]},"flow-scalar-plain-out-implicit-type":{"patterns":[{"captures":{"1":{"name":"constant.language.null.yaml"},"2":{"name":"constant.language.boolean.yaml"},"3":{"name":"constant.numeric.integer.yaml"},"4":{"name":"constant.numeric.float.yaml"},"5":{"name":"constant.other.timestamp.yaml"},"6":{"name":"constant.language.value.yaml"},"7":{"name":"constant.language.merge.yaml"}},"match":"(?:(null|Null|NULL|~)|([Yy]|yes|Yes|YES|[Nn]|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF)|([-+]?0b[01_]+|[-+]?0[0-7_]+|[-+]?(?:0|[1-9][0-9_]*)|[-+]?0x[_\\\\h]+|[-+]?[1-9][0-9_]*(?::[0-5]?[0-9])+)|([-+]?(?:[0-9][0-9_]*)?\\\\.[.0-9]*(?:[Ee][-+][0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\\\.[0-9_]*|[-+]?\\\\.(?:inf|Inf|INF)|\\\\.(?:nan|NaN|NAN))|(\\\\d{4}-\\\\d{2}-\\\\d{2}|\\\\d{4}-\\\\d{1,2}-\\\\d{1,2}(?:[Tt]|[\\\\t ]+)\\\\d{1,2}:\\\\d{2}:\\\\d{2}(?:\\\\.\\\\d*)?(?:[\\\\t ]*Z|[-+]\\\\d{1,2}(?::\\\\d{1,2})?)?)|(=)|(<<))(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$))"}]},"flow-scalar-single-quoted":{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.yaml"}},"end":"'(?!')","endCaptures":{"0":{"name":"punctuation.definition.string.end.yaml"}},"name":"string.quoted.single.yaml","patterns":[{"match":"''","name":"constant.character.escape.single-quoted.yaml"}]},"flow-sequence":{"begin":"\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.sequence.begin.yaml"}},"end":"]","endCaptures":{"0":{"name":"punctuation.definition.sequence.end.yaml"}},"name":"meta.flow-sequence.yaml","patterns":[{"include":"#prototype"},{"match":",","name":"punctuation.separator.sequence.yaml"},{"include":"#flow-pair"},{"include":"#flow-node"}]},"flow-value":{"patterns":[{"begin":"\\\\G(?![],}])","end":"(?=[],}])","name":"meta.flow-pair.value.yaml","patterns":[{"include":"#flow-node"}]}]},"node":{"patterns":[{"include":"#block-node"}]},"property":{"begin":"(?=[!\\\\&])","end":"(?!\\\\G)","name":"meta.property.yaml","patterns":[{"captures":{"1":{"name":"keyword.control.property.anchor.yaml"},"2":{"name":"punctuation.definition.anchor.yaml"},"3":{"name":"entity.name.type.anchor.yaml"},"4":{"name":"invalid.illegal.character.anchor.yaml"}},"match":"\\\\G((&))([^],/\\\\[{}\\\\s]+)(\\\\S+)?"},{"match":"\\\\G!(?:<(?:%\\\\h{2}|[]!#$\\\\&-;=?-\\\\[_a-z~])+>|(?:[-0-9A-Za-z]*!)?(?:%\\\\h{2}|[#$\\\\&-+\\\\--;=?-Z_a-z~])+|)(?=[\\\\t ]|$)","name":"storage.type.tag-handle.yaml"},{"match":"\\\\S+","name":"invalid.illegal.tag-handle.yaml"}]},"prototype":{"patterns":[{"include":"#comment"},{"include":"#property"}]}},"scopeName":"source.yaml","aliases":["yml"]}`))];export{t as n,n as t};
1
+ import{t as e}from"./index-f9ekN94b.js";var t=e({default:()=>n}),n=[Object.freeze(JSON.parse(`{"displayName":"YAML","fileTypes":["yaml","yml","rviz","reek","clang-format","yaml-tmlanguage","syntax","sublime-syntax"],"firstLineMatch":"^%YAML( ?1.\\\\d+)?","name":"yaml","patterns":[{"include":"#comment"},{"include":"#property"},{"include":"#directive"},{"match":"^---","name":"entity.other.document.begin.yaml"},{"match":"^\\\\.{3}","name":"entity.other.document.end.yaml"},{"include":"#node"}],"repository":{"block-collection":{"patterns":[{"include":"#block-sequence"},{"include":"#block-mapping"}]},"block-mapping":{"patterns":[{"include":"#block-pair"}]},"block-node":{"patterns":[{"include":"#prototype"},{"include":"#block-scalar"},{"include":"#block-collection"},{"include":"#flow-scalar-plain-out"},{"include":"#flow-node"}]},"block-pair":{"patterns":[{"begin":"\\\\?","beginCaptures":{"1":{"name":"punctuation.definition.key-value.begin.yaml"}},"end":"(?=\\\\?)|^ *(:)|(:)","endCaptures":{"1":{"name":"punctuation.separator.key-value.mapping.yaml"},"2":{"name":"invalid.illegal.expected-newline.yaml"}},"name":"meta.block-mapping.yaml","patterns":[{"include":"#block-node"}]},{"begin":"(?=(?:[^-\\\\]!\\"#%\\\\&'*,:>?@\\\\[\`{|}\\\\s]|[-:?]\\\\S)([^:\\\\s]|:\\\\S|\\\\s+(?![#\\\\s]))*\\\\s*:(\\\\s|$))","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$))","patterns":[{"include":"#flow-scalar-plain-out-implicit-type"},{"begin":"[^-\\\\]!\\"#%\\\\&'*,:>?@\\\\[\`{|}\\\\s]|[-:?]\\\\S","beginCaptures":{"0":{"name":"entity.name.tag.yaml"}},"contentName":"entity.name.tag.yaml","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$))","name":"string.unquoted.plain.out.yaml"}]},{"match":":(?=\\\\s|$)","name":"punctuation.separator.key-value.mapping.yaml"}]},"block-scalar":{"begin":"(?:(\\\\|)|(>))([1-9])?([-+])?(.*\\\\n?)","beginCaptures":{"1":{"name":"keyword.control.flow.block-scalar.literal.yaml"},"2":{"name":"keyword.control.flow.block-scalar.folded.yaml"},"3":{"name":"constant.numeric.indentation-indicator.yaml"},"4":{"name":"storage.modifier.chomping-indicator.yaml"},"5":{"patterns":[{"include":"#comment"},{"match":".+","name":"invalid.illegal.expected-comment-or-newline.yaml"}]}},"end":"^(?=\\\\S)|(?!\\\\G)","patterns":[{"begin":"^( +)(?! )","end":"^(?!\\\\1|\\\\s*$)","name":"string.unquoted.block.yaml"}]},"block-sequence":{"match":"(-)(?!\\\\S)","name":"punctuation.definition.block.sequence.item.yaml"},"comment":{"begin":"(?:^([\\\\t ]*)|[\\\\t ]+)(?=#\\\\p{print}*$)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.yaml"}},"end":"(?!\\\\G)","patterns":[{"begin":"#","beginCaptures":{"0":{"name":"punctuation.definition.comment.yaml"}},"end":"\\\\n","name":"comment.line.number-sign.yaml"}]},"directive":{"begin":"^%","beginCaptures":{"0":{"name":"punctuation.definition.directive.begin.yaml"}},"end":"(?=$|[\\\\t ]+($|#))","name":"meta.directive.yaml","patterns":[{"captures":{"1":{"name":"keyword.other.directive.yaml.yaml"},"2":{"name":"constant.numeric.yaml-version.yaml"}},"match":"\\\\G(YAML)[\\\\t ]+(\\\\d+\\\\.\\\\d+)"},{"captures":{"1":{"name":"keyword.other.directive.tag.yaml"},"2":{"name":"storage.type.tag-handle.yaml"},"3":{"name":"support.type.tag-prefix.yaml"}},"match":"\\\\G(TAG)(?:[\\\\t ]+(!(?:[-0-9A-Za-z]*!)?)(?:[\\\\t ]+(!(?:%\\\\h{2}|[]!#$\\\\&-;=?-\\\\[_a-z~])*|(?![]!,\\\\[{}])(?:%\\\\h{2}|[]!#$\\\\&-;=?-\\\\[_a-z~])+))?)?"},{"captures":{"1":{"name":"support.other.directive.reserved.yaml"},"2":{"name":"string.unquoted.directive-name.yaml"},"3":{"name":"string.unquoted.directive-parameter.yaml"}},"match":"\\\\G(\\\\w+)(?:[\\\\t ]+(\\\\w+)(?:[\\\\t ]+(\\\\w+))?)?"},{"match":"\\\\S+","name":"invalid.illegal.unrecognized.yaml"}]},"flow-alias":{"captures":{"1":{"name":"keyword.control.flow.alias.yaml"},"2":{"name":"punctuation.definition.alias.yaml"},"3":{"name":"variable.other.alias.yaml"},"4":{"name":"invalid.illegal.character.anchor.yaml"}},"match":"((\\\\*))([^],/\\\\[{}\\\\s]+)([^],}\\\\s]\\\\S*)?"},"flow-collection":{"patterns":[{"include":"#flow-sequence"},{"include":"#flow-mapping"}]},"flow-mapping":{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.mapping.begin.yaml"}},"end":"}","endCaptures":{"0":{"name":"punctuation.definition.mapping.end.yaml"}},"name":"meta.flow-mapping.yaml","patterns":[{"include":"#prototype"},{"match":",","name":"punctuation.separator.mapping.yaml"},{"include":"#flow-pair"}]},"flow-node":{"patterns":[{"include":"#prototype"},{"include":"#flow-alias"},{"include":"#flow-collection"},{"include":"#flow-scalar"}]},"flow-pair":{"patterns":[{"begin":"\\\\?","beginCaptures":{"0":{"name":"punctuation.definition.key-value.begin.yaml"}},"end":"(?=[],}])","name":"meta.flow-pair.explicit.yaml","patterns":[{"include":"#prototype"},{"include":"#flow-pair"},{"include":"#flow-node"},{"begin":":(?=\\\\s|$|[],\\\\[{}])","beginCaptures":{"0":{"name":"punctuation.separator.key-value.mapping.yaml"}},"end":"(?=[],}])","patterns":[{"include":"#flow-value"}]}]},{"begin":"(?=(?:[^-\\\\]!\\"#%\\\\&'*,:>?@\\\\[\`{|}\\\\s]|[-:?][^],\\\\[{}\\\\s])([^],:\\\\[{}\\\\s]|:[^],\\\\[{}\\\\s]|\\\\s+(?![#\\\\s]))*\\\\s*:(\\\\s|$))","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$)|\\\\s*:[],\\\\[{}]|\\\\s*[],\\\\[{}])","name":"meta.flow-pair.key.yaml","patterns":[{"include":"#flow-scalar-plain-in-implicit-type"},{"begin":"[^-\\\\]!\\"#%\\\\&'*,:>?@\\\\[\`{|}\\\\s]|[-:?][^],\\\\[{}\\\\s]","beginCaptures":{"0":{"name":"entity.name.tag.yaml"}},"contentName":"entity.name.tag.yaml","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$)|\\\\s*:[],\\\\[{}]|\\\\s*[],\\\\[{}])","name":"string.unquoted.plain.in.yaml"}]},{"include":"#flow-node"},{"begin":":(?=\\\\s|$|[],\\\\[{}])","captures":{"0":{"name":"punctuation.separator.key-value.mapping.yaml"}},"end":"(?=[],}])","name":"meta.flow-pair.yaml","patterns":[{"include":"#flow-value"}]}]},"flow-scalar":{"patterns":[{"include":"#flow-scalar-double-quoted"},{"include":"#flow-scalar-single-quoted"},{"include":"#flow-scalar-plain-in"}]},"flow-scalar-double-quoted":{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.yaml"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.yaml"}},"name":"string.quoted.double.yaml","patterns":[{"match":"\\\\\\\\([ \\"/0LN\\\\\\\\_abefnprtv]|x\\\\d\\\\d|u\\\\d{4}|U\\\\d{8})","name":"constant.character.escape.yaml"},{"match":"\\\\\\\\\\\\n","name":"constant.character.escape.double-quoted.newline.yaml"}]},"flow-scalar-plain-in":{"patterns":[{"include":"#flow-scalar-plain-in-implicit-type"},{"begin":"[^-\\\\]!\\"#%\\\\&'*,:>?@\\\\[\`{|}\\\\s]|[-:?][^],\\\\[{}\\\\s]","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$)|\\\\s*:[],\\\\[{}]|\\\\s*[],\\\\[{}])","name":"string.unquoted.plain.in.yaml"}]},"flow-scalar-plain-in-implicit-type":{"patterns":[{"captures":{"1":{"name":"constant.language.null.yaml"},"2":{"name":"constant.language.boolean.yaml"},"3":{"name":"constant.numeric.integer.yaml"},"4":{"name":"constant.numeric.float.yaml"},"5":{"name":"constant.other.timestamp.yaml"},"6":{"name":"constant.language.value.yaml"},"7":{"name":"constant.language.merge.yaml"}},"match":"(?:(null|Null|NULL|~)|([Yy]|yes|Yes|YES|[Nn]|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF)|([-+]?0b[01_]+|[-+]?0[0-7_]+|[-+]?(?:0|[1-9][0-9_]*)|[-+]?0x[_\\\\h]+|[-+]?[1-9][0-9_]*(?::[0-5]?[0-9])+)|([-+]?(?:[0-9][0-9_]*)?\\\\.[.0-9]*(?:[Ee][-+][0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\\\.[0-9_]*|[-+]?\\\\.(?:inf|Inf|INF)|\\\\.(?:nan|NaN|NAN))|(\\\\d{4}-\\\\d{2}-\\\\d{2}|\\\\d{4}-\\\\d{1,2}-\\\\d{1,2}(?:[Tt]|[\\\\t ]+)\\\\d{1,2}:\\\\d{2}:\\\\d{2}(?:\\\\.\\\\d*)?(?:[\\\\t ]*Z|[-+]\\\\d{1,2}(?::\\\\d{1,2})?)?)|(=)|(<<))(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$)|\\\\s*:[],\\\\[{}]|\\\\s*[],\\\\[{}])"}]},"flow-scalar-plain-out":{"patterns":[{"include":"#flow-scalar-plain-out-implicit-type"},{"begin":"[^-\\\\]!\\"#%\\\\&'*,:>?@\\\\[\`{|}\\\\s]|[-:?]\\\\S","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$))","name":"string.unquoted.plain.out.yaml"}]},"flow-scalar-plain-out-implicit-type":{"patterns":[{"captures":{"1":{"name":"constant.language.null.yaml"},"2":{"name":"constant.language.boolean.yaml"},"3":{"name":"constant.numeric.integer.yaml"},"4":{"name":"constant.numeric.float.yaml"},"5":{"name":"constant.other.timestamp.yaml"},"6":{"name":"constant.language.value.yaml"},"7":{"name":"constant.language.merge.yaml"}},"match":"(?:(null|Null|NULL|~)|([Yy]|yes|Yes|YES|[Nn]|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF)|([-+]?0b[01_]+|[-+]?0[0-7_]+|[-+]?(?:0|[1-9][0-9_]*)|[-+]?0x[_\\\\h]+|[-+]?[1-9][0-9_]*(?::[0-5]?[0-9])+)|([-+]?(?:[0-9][0-9_]*)?\\\\.[.0-9]*(?:[Ee][-+][0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\\\.[0-9_]*|[-+]?\\\\.(?:inf|Inf|INF)|\\\\.(?:nan|NaN|NAN))|(\\\\d{4}-\\\\d{2}-\\\\d{2}|\\\\d{4}-\\\\d{1,2}-\\\\d{1,2}(?:[Tt]|[\\\\t ]+)\\\\d{1,2}:\\\\d{2}:\\\\d{2}(?:\\\\.\\\\d*)?(?:[\\\\t ]*Z|[-+]\\\\d{1,2}(?::\\\\d{1,2})?)?)|(=)|(<<))(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$))"}]},"flow-scalar-single-quoted":{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.yaml"}},"end":"'(?!')","endCaptures":{"0":{"name":"punctuation.definition.string.end.yaml"}},"name":"string.quoted.single.yaml","patterns":[{"match":"''","name":"constant.character.escape.single-quoted.yaml"}]},"flow-sequence":{"begin":"\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.sequence.begin.yaml"}},"end":"]","endCaptures":{"0":{"name":"punctuation.definition.sequence.end.yaml"}},"name":"meta.flow-sequence.yaml","patterns":[{"include":"#prototype"},{"match":",","name":"punctuation.separator.sequence.yaml"},{"include":"#flow-pair"},{"include":"#flow-node"}]},"flow-value":{"patterns":[{"begin":"\\\\G(?![],}])","end":"(?=[],}])","name":"meta.flow-pair.value.yaml","patterns":[{"include":"#flow-node"}]}]},"node":{"patterns":[{"include":"#block-node"}]},"property":{"begin":"(?=[!\\\\&])","end":"(?!\\\\G)","name":"meta.property.yaml","patterns":[{"captures":{"1":{"name":"keyword.control.property.anchor.yaml"},"2":{"name":"punctuation.definition.anchor.yaml"},"3":{"name":"entity.name.type.anchor.yaml"},"4":{"name":"invalid.illegal.character.anchor.yaml"}},"match":"\\\\G((&))([^],/\\\\[{}\\\\s]+)(\\\\S+)?"},{"match":"\\\\G!(?:<(?:%\\\\h{2}|[]!#$\\\\&-;=?-\\\\[_a-z~])+>|(?:[-0-9A-Za-z]*!)?(?:%\\\\h{2}|[#$\\\\&-+\\\\--;=?-Z_a-z~])+|)(?=[\\\\t ]|$)","name":"storage.type.tag-handle.yaml"},{"match":"\\\\S+","name":"invalid.illegal.tag-handle.yaml"}]},"prototype":{"patterns":[{"include":"#comment"},{"include":"#property"}]}},"scopeName":"source.yaml","aliases":["yml"]}`))];export{t as n,n as t};
@@ -31,7 +31,12 @@
31
31
  "reviewFingerprint": "5d2d2bb7580d9040d31c2f29c55688264f6d4724d1ba921a86d4ba11513382d8",
32
32
  "generatedFor": "5d2d2bb7580d9040d31c2f29c55688264f6d4724d1ba921a86d4ba11513382d8",
33
33
  "fresh": true,
34
- "complete": true
34
+ "complete": true,
35
+ "status": "complete",
36
+ "completedFiles": 10,
37
+ "totalFiles": 10,
38
+ "agent": "codex",
39
+ "model": "gpt-5.6-sol"
35
40
  },
36
41
  "files": [
37
42
  {
package/dist/index.html CHANGED
@@ -10,7 +10,7 @@
10
10
  <meta name="theme-color" content="#e9e2d5" />
11
11
  <link rel="icon" href="./favicon.svg" type="image/svg+xml" />
12
12
  <title>Diffsplain</title>
13
- <script type="module" crossorigin src="./assets/index-DZFM4-3L.js"></script>
13
+ <script type="module" crossorigin src="./assets/index-f9ekN94b.js"></script>
14
14
  <link rel="stylesheet" crossorigin href="./assets/index-C2p_1iAk.css">
15
15
  </head>
16
16
  <body>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "diffsplain",
3
- "version": "0.6.0",
3
+ "version": "0.8.1",
4
4
  "description": "Review Git diffs one file at a time with coding agent notes beside each patch.",
5
5
  "keywords": [
6
6
  "codex",
@@ -83,7 +83,8 @@
83
83
  "fallow:audit": "fallow audit",
84
84
  "present": "node scripts/present.mjs",
85
85
  "package:verify": "node scripts/check.mjs --package-only",
86
- "release": "node scripts/release.mjs",
86
+ "release:publish": "node scripts/release.mjs publish",
87
+ "release:verify": "node scripts/release.mjs verify",
87
88
  "summarize": "node scripts/generate-summaries.mjs",
88
89
  "snapshot": "node scripts/build-diff-data.mjs",
89
90
  "watch:diff": "node scripts/build-diff-data.mjs --watch",
@@ -40,6 +40,7 @@ export const cliOptions = defineCliOptions({
40
40
  '--agent': { kind: 'agent' },
41
41
  '--no-agent': { kind: 'no-agent' },
42
42
  '--force': { kind: 'flag' },
43
+ '--skip-safety-checks': { kind: 'flag' },
43
44
  '--worktree': { kind: 'flag' },
44
45
  '--no-browser': { kind: 'flag' },
45
46
  '--support-record': { kind: 'flag' },
@@ -86,13 +87,15 @@ Targets:
86
87
  Options:
87
88
  --repo PATH|URL|OWNER/NAME
88
89
  Repo to review (default: current repo)
89
- --agent NAME Use codex, claude, copilot, or opencode
90
+ --agent NAME Use codex, claude, copilot, cursor, or opencode
90
91
  --no-agent Do not write agent notes
91
92
  --model NAME Model for agent notes
92
93
  --reasoning LEVEL Agent reasoning effort when supported
93
94
  --batch-size COUNT Maximum files per agent pass (default: ${batchSizeOption.default})
94
95
  --jobs COUNT Agent passes to run at once (default: ${jobsOption.default})
95
96
  --force Regenerate all agent notes
97
+ --skip-safety-checks
98
+ Use Cursor without compatibility or boundary checks
96
99
  --support-record Print a safe record if agent notes fail
97
100
  --support-record-file FILE
98
101
  Write a safe record if agent notes fail
@@ -107,12 +110,12 @@ Options:
107
110
  -h, --help Show this help
108
111
  -v, --version Show the installed version
109
112
 
110
- Agent fallback:
111
- codex, claude, copilot, opencode
113
+ Automatic agent selection:
114
+ codex, claude, copilot, cursor, opencode
112
115
 
113
116
  Cursor:
114
- Disabled because Cursor Agent has no supported read-only, no-network,
115
- no-tool mode
117
+ Requires Cursor Agent 2026.08.11 or newer and a passing boundary canary.
118
+ Cursor contacts its service, but its review tools cannot access the host.
116
119
 
117
120
  Examples:
118
121
  diffsplain
@@ -271,6 +274,9 @@ export function parseCliArgs(
271
274
  if (noAgent && options.has('--summaries')) {
272
275
  fail('--no-agent cannot be used with --summaries');
273
276
  }
277
+ if (options.has('--skip-safety-checks') && agent !== 'cursor') {
278
+ fail('--skip-safety-checks requires --agent cursor');
279
+ }
274
280
  if (
275
281
  noAgent &&
276
282
  (options.has('--support-record') ||
@@ -368,6 +374,9 @@ export function parseCliArgs(
368
374
  }
369
375
  const agentArgs = [...commonArgs];
370
376
  if (options.has('--force')) agentArgs.push('--force');
377
+ if (options.has('--skip-safety-checks')) {
378
+ agentArgs.push('--skip-safety-checks');
379
+ }
371
380
  for (const name of [
372
381
  '--codex-bin',
373
382
  '--model',
@@ -472,5 +481,6 @@ export function parseCliArgs(
472
481
  host,
473
482
  browserEnabled: !options.has('--no-browser'),
474
483
  forceSummaryRegeneration: options.has('--force'),
484
+ skipSafetyChecks: options.has('--skip-safety-checks'),
475
485
  };
476
486
  }
@@ -1,10 +1,13 @@
1
1
  import { constants } from 'node:fs';
2
2
  import { access } from 'node:fs/promises';
3
+ import { spawnSync } from 'node:child_process';
3
4
  import {
5
+ basename,
4
6
  delimiter,
5
7
  dirname,
6
8
  isAbsolute,
7
9
  join,
10
+ resolve,
8
11
  } from 'node:path';
9
12
 
10
13
  export const codingAgentCapabilities = {
@@ -60,17 +63,134 @@ export function summaryAgentEnvironment(env = process.env) {
60
63
  );
61
64
  }
62
65
 
63
- const cursorDisabledReason =
64
- 'Cursor review is disabled: Cursor Agent has no supported read-only, no-network, no-tool mode.';
65
-
66
- export function agentDisabledReason(agent) {
67
- if (agent === 'cursor') return cursorDisabledReason;
66
+ export function cursorAuthPaths(
67
+ home,
68
+ {
69
+ env = process.env,
70
+ platform = process.platform,
71
+ } = {},
72
+ ) {
73
+ if (platform === 'linux') {
74
+ const configHome = env.XDG_CONFIG_HOME ||
75
+ (env.HOME ? resolve(env.HOME, '.config') : undefined);
76
+ return configHome
77
+ ? {
78
+ source: resolve(configHome, 'cursor', 'auth.json'),
79
+ destination: resolve(home, '.config', 'cursor', 'auth.json'),
80
+ }
81
+ : undefined;
82
+ }
83
+ if (platform === 'win32') {
84
+ const roaming = env.APPDATA ||
85
+ (env.USERPROFILE
86
+ ? resolve(env.USERPROFILE, 'AppData', 'Roaming')
87
+ : undefined);
88
+ return roaming
89
+ ? {
90
+ source: resolve(roaming, 'Cursor', 'auth.json'),
91
+ destination: resolve(home, 'AppData', 'Roaming', 'Cursor', 'auth.json'),
92
+ }
93
+ : undefined;
94
+ }
68
95
  return undefined;
69
96
  }
70
97
 
71
- export const enabledCodingAgents = codingAgents.filter(
72
- (agent) => !agentDisabledReason(agent),
73
- );
98
+ const minimumCursorVersion = [2026, 8, 11];
99
+ const cursorBoundarySummary =
100
+ 'Cursor needs Ask mode, a read-only sandbox, isolated settings, denied tools, and the hostile boundary canary.';
101
+
102
+ export const enabledCodingAgents = codingAgents;
103
+
104
+ function firstLine(value) {
105
+ return value
106
+ .replace(/\u001b\[[0-?]*[ -/]*[@-~]/g, '')
107
+ .split('\n')
108
+ .map((line) => line.trim())
109
+ .find(Boolean);
110
+ }
111
+
112
+ function cursorVersionParts(version) {
113
+ const match = version?.match(/^(\d{4})\.(\d{1,2})\.(\d{1,2})(?:-|$)/);
114
+ return match?.slice(1).map(Number);
115
+ }
116
+
117
+ function versionAtLeast(current, minimum) {
118
+ for (const [index, part] of current.entries()) {
119
+ if (part !== minimum[index]) return part > minimum[index];
120
+ }
121
+ return true;
122
+ }
123
+
124
+ function cursorBoundaryError(detail) {
125
+ return `Cursor review boundary is incompatible: ${detail} ${cursorBoundarySummary} Upgrade Cursor Agent.`;
126
+ }
127
+
128
+ export function inspectCursorCompatibility(
129
+ command,
130
+ {
131
+ env = process.env,
132
+ timeout = 5_000,
133
+ } = {},
134
+ ) {
135
+ const run = (args) => spawnSync(command, args, {
136
+ encoding: 'utf8',
137
+ env,
138
+ timeout,
139
+ windowsHide: true,
140
+ });
141
+ const versionResult = run(['--version']);
142
+ const version = firstLine(
143
+ `${versionResult.stdout || ''}\n${versionResult.stderr || ''}`,
144
+ );
145
+ if (versionResult.error || versionResult.status !== 0 || !version) {
146
+ return {
147
+ compatible: false,
148
+ version,
149
+ reason: cursorBoundaryError('The version check failed.'),
150
+ };
151
+ }
152
+ const parts = cursorVersionParts(version);
153
+ if (!parts || !versionAtLeast(parts, minimumCursorVersion)) {
154
+ return {
155
+ compatible: false,
156
+ version,
157
+ reason: cursorBoundaryError(
158
+ `Found ${version}; version 2026.08.11 or newer is required.`,
159
+ ),
160
+ };
161
+ }
162
+ const helpResult = run(['--help']);
163
+ const help = `${helpResult.stdout || ''}\n${helpResult.stderr || ''}`;
164
+ if (helpResult.error || helpResult.status !== 0) {
165
+ return {
166
+ compatible: false,
167
+ version,
168
+ reason: cursorBoundaryError('The CLI help check failed.'),
169
+ };
170
+ }
171
+ const requiredHelp = [
172
+ ['--mode <mode>', 'Ask mode'],
173
+ ['"ask"', 'Ask mode'],
174
+ ['--sandbox <mode>', 'sandbox control'],
175
+ ['"enabled"', 'sandbox control'],
176
+ ['--workspace <path-or-name>', 'workspace isolation'],
177
+ ['--output-format <format>', 'structured output'],
178
+ ['--model <model>', 'model selection'],
179
+ ];
180
+ const missing = requiredHelp
181
+ .filter(([text]) => !help.includes(text))
182
+ .map(([, label]) => label);
183
+ if (missing.length) {
184
+ return {
185
+ compatible: false,
186
+ version,
187
+ reason: cursorBoundaryError(
188
+ `The CLI lacks ${[...new Set(missing)].join(', ')}.`,
189
+ ),
190
+ };
191
+ }
192
+ return { compatible: true, version };
193
+ }
74
194
 
75
195
  async function executable(path) {
76
196
  try {
@@ -123,7 +243,34 @@ export async function commandAvailable(command, options) {
123
243
  return Boolean(await findCommand(command, options));
124
244
  }
125
245
 
126
- // fallow-ignore-next-line complexity -- validation and fallback share one public selector.
246
+ export async function codingAgentAvailability(
247
+ agent,
248
+ {
249
+ binary = codingAgentBinary(agent),
250
+ env = process.env,
251
+ platform = process.platform,
252
+ skipSafetyChecks = false,
253
+ } = {},
254
+ ) {
255
+ const path = await findCommand(binary, { env, platform });
256
+ if (!path) return { available: false, installed: false };
257
+ if (agent !== 'cursor') {
258
+ return { available: true, installed: true, path };
259
+ }
260
+ if (skipSafetyChecks) {
261
+ return { available: true, installed: true, path };
262
+ }
263
+ const inspection = inspectCursorCompatibility(path, { env });
264
+ return {
265
+ available: inspection.compatible,
266
+ installed: true,
267
+ path,
268
+ version: inspection.version,
269
+ reason: inspection.reason,
270
+ };
271
+ }
272
+
273
+ // fallow-ignore-next-line complexity -- validation and discovery share one public selector.
127
274
  export async function selectCodingAgent(
128
275
  requested,
129
276
  available = commandAvailable,
@@ -134,19 +281,32 @@ export async function selectCodingAgent(
134
281
  `Unsupported agent "${requested}". Choose ${enabledCodingAgents.join(', ')}.`,
135
282
  );
136
283
  }
137
- const disabled = agentDisabledReason(requested);
138
- if (disabled) throw new Error(disabled);
139
- if (!(await available(requested))) {
284
+ const result = await available(requested);
285
+ const availableResult = typeof result === 'object'
286
+ ? result.available
287
+ : result;
288
+ if (!availableResult) {
289
+ if (typeof result === 'object' && result.reason) {
290
+ throw new Error(result.reason);
291
+ }
140
292
  throw new Error(`Coding agent "${requested}" is not available.`);
141
293
  }
142
294
  return requested;
143
295
  }
144
296
 
297
+ let cursorReason;
145
298
  for (const agent of enabledCodingAgents) {
146
- if (await available(agent)) return agent;
299
+ const result = await available(agent);
300
+ const availableResult = typeof result === 'object'
301
+ ? result.available
302
+ : result;
303
+ if (availableResult) return agent;
304
+ if (agent === 'cursor' && typeof result === 'object') {
305
+ cursorReason = result.reason;
306
+ }
147
307
  }
148
308
  throw new Error(
149
- `No coding agent is available. Install one of: ${enabledCodingAgents.join(', ')}. ${cursorDisabledReason}`,
309
+ `No coding agent is available. Install one of: ${enabledCodingAgents.join(', ')}.${cursorReason ? ` ${cursorReason}` : ''}`,
150
310
  );
151
311
  }
152
312
 
@@ -207,8 +367,40 @@ function parseOpenCodeResponse(stdout) {
207
367
  return parseJsonText(parts.join(''), 'OpenCode');
208
368
  }
209
369
 
370
+ export function parseCursorStreamResponse(stdout) {
371
+ const trimmed = stdout.trim();
372
+ const lines = trimmed.split('\n').filter(Boolean);
373
+ const events = lines.map(parseEvent);
374
+ if (!lines.length || !events.every(Boolean)) {
375
+ throw new Error('Cursor did not return a valid event stream');
376
+ }
377
+ const envelope = [...events]
378
+ .reverse()
379
+ .find((event) => event.type === 'result');
380
+ if (!envelope || envelope.subtype !== 'success' || envelope.is_error) {
381
+ throw new Error('Cursor did not return a successful result');
382
+ }
383
+ if (typeof envelope.result !== 'string') {
384
+ throw new Error('Cursor did not return summary JSON');
385
+ }
386
+ return {
387
+ events,
388
+ response: parseJsonText(envelope.result, 'Cursor'),
389
+ };
390
+ }
391
+
210
392
  function parseCursorResponse(stdout) {
211
- const envelope = parseJsonText(stdout, 'Cursor');
393
+ const trimmed = stdout.trim();
394
+ const lines = trimmed.split('\n').filter(Boolean);
395
+ if (lines.length > 1) {
396
+ const parsed = parseCursorStreamResponse(trimmed);
397
+ const toolCall = parsed.events.find((event) => event.type === 'tool_call');
398
+ if (toolCall) {
399
+ throw new Error('Cursor emitted an unexpected tool call');
400
+ }
401
+ return parsed.response;
402
+ }
403
+ const envelope = parseJsonText(trimmed, 'Cursor');
212
404
  if (typeof envelope?.result === 'string') {
213
405
  return parseJsonText(envelope.result, 'Cursor');
214
406
  }
@@ -380,6 +572,62 @@ function openCodeCommand({
380
572
  };
381
573
  }
382
574
 
575
+ function cursorCommand({
576
+ binary,
577
+ inputPath,
578
+ model,
579
+ prompt,
580
+ schema,
581
+ summaryDirectory,
582
+ summaryEnv,
583
+ sourceEnv,
584
+ }) {
585
+ const args = [
586
+ '--print',
587
+ '--output-format',
588
+ 'stream-json',
589
+ '--mode',
590
+ 'ask',
591
+ '--sandbox',
592
+ 'enabled',
593
+ '--workspace',
594
+ summaryDirectory,
595
+ ];
596
+ if (model) args.push('--model', model);
597
+ args.push(
598
+ `${prompt}\n\nThe snapshot JSON follows this prompt on standard input. Return JSON that matches this schema:\n${JSON.stringify(schema)}`,
599
+ );
600
+ const controlDirectory = join(dirname(summaryDirectory), 'cursor-control');
601
+ const home = join(controlDirectory, 'home');
602
+ const temporary = join(controlDirectory, 'tmp');
603
+ const invocationName = basename(inputPath).replace(/[^A-Za-z0-9.-]/g, '-');
604
+ return {
605
+ command: binary,
606
+ args,
607
+ input: 'stdin',
608
+ cwd: summaryDirectory,
609
+ env: {
610
+ ...summaryEnv,
611
+ HOME: home,
612
+ USERPROFILE: home,
613
+ APPDATA: join(home, 'AppData', 'Roaming'),
614
+ LOCALAPPDATA: join(home, 'AppData', 'Local'),
615
+ XDG_CONFIG_HOME: join(home, '.config'),
616
+ CURSOR_CONFIG_DIR: join(controlDirectory, 'config'),
617
+ CURSOR_DATA_DIR: join(controlDirectory, `data-${invocationName}`),
618
+ TEMP: temporary,
619
+ TMP: temporary,
620
+ TMPDIR: temporary,
621
+ ...(sourceEnv.CURSOR_API_KEY
622
+ ? { CURSOR_API_KEY: sourceEnv.CURSOR_API_KEY }
623
+ : {}),
624
+ ...(sourceEnv.CURSOR_AUTH_TOKEN
625
+ ? { CURSOR_AUTH_TOKEN: sourceEnv.CURSOR_AUTH_TOKEN }
626
+ : {}),
627
+ },
628
+ };
629
+ }
630
+
383
631
  export function agentCommand({
384
632
  agent,
385
633
  binary = agent,
@@ -391,8 +639,6 @@ export function agentCommand({
391
639
  inputPath,
392
640
  env = process.env,
393
641
  }) {
394
- const disabled = agentDisabledReason(agent);
395
- if (disabled) throw new Error(disabled);
396
642
  const options = {
397
643
  binary,
398
644
  inputPath,
@@ -403,9 +649,11 @@ export function agentCommand({
403
649
  schemaPath,
404
650
  summaryDirectory: dirname(inputPath),
405
651
  summaryEnv: summaryAgentEnvironment(env),
652
+ sourceEnv: env,
406
653
  };
407
654
  if (agent === 'codex') return codexCommand(options);
408
655
  if (agent === 'claude') return claudeCommand(options);
409
656
  if (agent === 'copilot') return copilotCommand(options);
657
+ if (agent === 'cursor') return cursorCommand(options);
410
658
  return openCodeCommand(options);
411
659
  }