diffsplain 0.9.0 → 0.10.0
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.
- package/README.md +20 -4
- package/dist/assets/{angular-html-m_m91ZYB.js → angular-html-2u-u5H-N.js} +1 -1
- package/dist/assets/{angular-ts-CO5Z--Rb.js → angular-ts-4_HVGlKp.js} +1 -1
- package/dist/assets/{apl-ogYYgLUu.js → apl-icaNWZX3.js} +1 -1
- package/dist/assets/{astro-DAfY3cNR.js → astro-HvIOE4vz.js} +1 -1
- package/dist/assets/{blade-E6RzsLUV.js → blade-BpKJV8ev.js} +1 -1
- package/dist/assets/{c-kKdxhtHF.js → c-BNvtxyRQ.js} +1 -1
- package/dist/assets/{cobol-3oDDyFNf.js → cobol-8js4hfxa.js} +1 -1
- package/dist/assets/{coffee-dsiILuWe.js → coffee-DXg_piQ9.js} +1 -1
- package/dist/assets/{cpp-DYyNFq__.js → cpp-BZDFAjyh.js} +1 -1
- package/dist/assets/{crystal-B7dVp9TF.js → crystal-aCF3ira4.js} +1 -1
- package/dist/assets/{css-DlxJ0aex.js → css-DfRtUkhE.js} +1 -1
- package/dist/assets/{edge-BjEVphkC.js → edge-vS6_AmQv.js} +1 -1
- package/dist/assets/{elixir-0xTOtMcM.js → elixir-Ce0nUHSq.js} +1 -1
- package/dist/assets/{elm-iQk_Wrxq.js → elm-DmaeyizZ.js} +1 -1
- package/dist/assets/{erb-BO74ztiE.js → erb-DD6OUyvt.js} +1 -1
- package/dist/assets/{git-rebase-BN667QRY.js → git-rebase-HbJMn7iS.js} +1 -1
- package/dist/assets/{glimmer-js-DTGUIHeS.js → glimmer-js-BRuqbNaV.js} +1 -1
- package/dist/assets/{glimmer-ts-BU3oQn2d.js → glimmer-ts-ZBpkdEEA.js} +1 -1
- package/dist/assets/{glsl-KLiqLJi2.js → glsl-CrQ4GScf.js} +1 -1
- package/dist/assets/{graphql-D_idcsoJ.js → graphql-Tn6PBdQY.js} +1 -1
- package/dist/assets/{hack-BXlsgPIr.js → hack-CoApvrbo.js} +1 -1
- package/dist/assets/{haml-fP0aUg4-.js → haml-COKq8Xjp.js} +1 -1
- package/dist/assets/{handlebars-C1ZEaot-.js → handlebars-CAna2DTA.js} +1 -1
- package/dist/assets/{html-D04qIuup.js → html-Ch4xJ7YF.js} +1 -1
- package/dist/assets/{html-derivative-C6ai-9QL.js → html-derivative-0ITK-MAI.js} +1 -1
- package/dist/assets/{http-C7bz3ZvQ.js → http-DiMWQ8Qr.js} +1 -1
- package/dist/assets/{hurl-jL6B6Ahr.js → hurl-OcXymC0J.js} +1 -1
- package/dist/assets/{index-BPaJGi-m.js → index-BmcCug2M.js} +4 -4
- package/dist/assets/{index-VAyBpb3u.css → index-CADUNiTy.css} +1 -1
- package/dist/assets/{java-BVzvLCON.js → java-CFb3qN4r.js} +1 -1
- package/dist/assets/{javascript-UDbZHxCI.js → javascript-CRmk2JrF.js} +1 -1
- package/dist/assets/{jinja-DB-QKo2A.js → jinja-Da6lDTEy.js} +1 -1
- package/dist/assets/{jison-B1ZbR2FF.js → jison-Bnivzmtu.js} +1 -1
- package/dist/assets/{json-DV4WwJzT.js → json-m8vJP_KK.js} +1 -1
- package/dist/assets/{jsx-DS6_VTvW.js → jsx-C3HX_Sbu.js} +1 -1
- package/dist/assets/{julia-C4tevET0.js → julia-Ckg-wSHA.js} +1 -1
- package/dist/assets/{just-CWMjefzB.js → just-DCjIAyvO.js} +1 -1
- package/dist/assets/{latex-tyEFf_Af.js → latex-CrYSm4pl.js} +1 -1
- package/dist/assets/{liquid-C3d1X1rL.js → liquid-MQUFSPYU.js} +1 -1
- package/dist/assets/{lua-sXvrzLQY.js → lua-DcuzJJ77.js} +1 -1
- package/dist/assets/{marko-CQweucif.js → marko-4JNmQaB4.js} +1 -1
- package/dist/assets/{mdc-TrxLWF7s.js → mdc-C_j8HvRL.js} +1 -1
- package/dist/assets/{nginx-ChE2nSNJ.js → nginx-ta3Gn1HE.js} +1 -1
- package/dist/assets/{nim-BY1CTRfx.js → nim-BwWLst9M.js} +1 -1
- package/dist/assets/{perl-Cvj2PQQH.js → perl-DfW7Uq5O.js} +1 -1
- package/dist/assets/{php-CGmHp8HW.js → php-DGf5G3Cf.js} +1 -1
- package/dist/assets/{pug-DM4S0bRr.js → pug-CWI-NaYz.js} +1 -1
- package/dist/assets/{qml-DI89Al9K.js → qml-Csblgh7U.js} +1 -1
- package/dist/assets/{r-Bs5_4yYh.js → r-QGooaGDI.js} +1 -1
- package/dist/assets/{razor-DimzayhZ.js → razor-Dp9ihLYf.js} +1 -1
- package/dist/assets/{regexp-BLACz0cx.js → regexp-DwUnLcVr.js} +1 -1
- package/dist/assets/{rst-DcWzxQh2.js → rst-BY8GIwDJ.js} +1 -1
- package/dist/assets/{ruby-Dlat5E8d.js → ruby-VgzI9htT.js} +1 -1
- package/dist/assets/{sas-CCDmMaBY.js → sas-DYLsm-0j.js} +1 -1
- package/dist/assets/{scss-BPiU2nu6.js → scss-tIFkeUQX.js} +1 -1
- package/dist/assets/{shellscript-CKinVNrN.js → shellscript-CHjuQ4Pl.js} +1 -1
- package/dist/assets/{shellsession-Cea8Pu5d.js → shellsession-Bv0S0hj9.js} +1 -1
- package/dist/assets/{soy--BRAPY4-.js → soy-D6U1tZod.js} +1 -1
- package/dist/assets/{sql-DjKiCyWK.js → sql-CGz8kjKv.js} +1 -1
- package/dist/assets/{stata-CDvo3J6y.js → stata-C9ytERUq.js} +1 -1
- package/dist/assets/{surrealql-C7b7E5sh.js → surrealql-DRfRnaYu.js} +1 -1
- package/dist/assets/{svelte-DO0tKtiK.js → svelte-wYnk_1sI.js} +1 -1
- package/dist/assets/{templ-DhhmR_rv.js → templ-DWrGVE0u.js} +1 -1
- package/dist/assets/{tex-Cn_V-Gg4.js → tex-CYTzoUJh.js} +1 -1
- package/dist/assets/{ts-tags-B6c-FTmA.js → ts-tags-1TIXEGea.js} +1 -1
- package/dist/assets/{tsx-Cvtt2sJ-.js → tsx-a3BoAoOh.js} +1 -1
- package/dist/assets/{twig-B7ZbCUmB.js → twig-e3dvNv6o.js} +1 -1
- package/dist/assets/{typescript-i3C6um2B.js → typescript-BBhnpnTf.js} +1 -1
- package/dist/assets/{vue-DyPX0Vum.js → vue-DzzVbu9q.js} +1 -1
- package/dist/assets/{vue-html-D362KpK3.js → vue-html-quBNv38K.js} +1 -1
- package/dist/assets/{vue-vine-D34cBbwO.js → vue-vine-CDuR69FE.js} +1 -1
- package/dist/assets/{xml-DJEk7u4n.js → xml-DMifOLSe.js} +1 -1
- package/dist/assets/{xsl-CoTtf90f.js → xsl-D8Ef-5HK.js} +1 -1
- package/dist/assets/{yaml-Cv5epQ4-.js → yaml-5c38gpmA.js} +1 -1
- package/dist/index.html +2 -2
- package/package.json +3 -2
- package/scripts/agent-config.mjs +184 -0
- package/scripts/cli-args.mjs +29 -2
- package/scripts/coding-agents.mjs +57 -6
- package/scripts/generate-summaries.mjs +11 -4
- package/scripts/present.mjs +140 -57
- package/scripts/review-chat-controller.mjs +137 -14
- package/scripts/review-chat-provider.mjs +14 -3
- package/scripts/serve-built.mjs +39 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./index-
|
|
1
|
+
import{t as e}from"./index-BmcCug2M.js";import{t}from"./java-CFb3qN4r.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-
|
|
1
|
+
import{t as e}from"./xml-DMifOLSe.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-BPaJGi-m.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-BmcCug2M.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};
|
package/dist/index.html
CHANGED
|
@@ -10,8 +10,8 @@
|
|
|
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-
|
|
14
|
-
<link rel="stylesheet" crossorigin href="./assets/index-
|
|
13
|
+
<script type="module" crossorigin src="./assets/index-BmcCug2M.js"></script>
|
|
14
|
+
<link rel="stylesheet" crossorigin href="./assets/index-CADUNiTy.css">
|
|
15
15
|
</head>
|
|
16
16
|
<body>
|
|
17
17
|
<div id="root"></div>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "diffsplain",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"description": "Review Git diffs one file at a time with coding agent notes beside each patch.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"codex",
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
"files": [
|
|
29
29
|
"dist",
|
|
30
30
|
"scripts/access-token.mjs",
|
|
31
|
+
"scripts/agent-config.mjs",
|
|
31
32
|
"scripts/agent-exclusions.mjs",
|
|
32
33
|
"scripts/agent-review.mjs",
|
|
33
34
|
"scripts/build-diff-data.mjs",
|
|
@@ -103,7 +104,7 @@
|
|
|
103
104
|
"setup": "pnpm install --frozen-lockfile",
|
|
104
105
|
"setup:smoke": "node scripts/setup-smoke.mjs",
|
|
105
106
|
"test": "pnpm run test:unit && pnpm run test:integration && pnpm run test:coverage && pnpm run test:browser && pnpm run test:platform",
|
|
106
|
-
"test:unit": "node --test tests/access-token.test.mjs tests/agent-exclusions.test.mjs tests/agent-review.test.mjs tests/automation-trust.test.mjs tests/cache.test.mjs tests/cli-args.test.mjs tests/cli-docs.test.mjs tests/coding-agents.test.mjs tests/data-contract.test.mjs tests/doctor.test.mjs tests/landing-demo.test.mjs tests/package-manifest.test.mjs tests/plan-ledger.test.mjs tests/presenter-runtime.test.mjs tests/product-gate.test.mjs tests/release.test.mjs tests/review-chat.test.mjs tests/summary-path.test.mjs tests/support-record.test.mjs tests/test-lanes.test.mjs tests/tool-profiles.test.mjs",
|
|
107
|
+
"test:unit": "node --test tests/access-token.test.mjs tests/agent-config.test.mjs tests/agent-exclusions.test.mjs tests/agent-review.test.mjs tests/automation-trust.test.mjs tests/cache.test.mjs tests/cli-args.test.mjs tests/cli-docs.test.mjs tests/coding-agents.test.mjs tests/data-contract.test.mjs tests/doctor.test.mjs tests/landing-demo.test.mjs tests/package-manifest.test.mjs tests/plan-ledger.test.mjs tests/presenter-runtime.test.mjs tests/product-gate.test.mjs tests/release.test.mjs tests/review-chat.test.mjs tests/summary-path.test.mjs tests/support-record.test.mjs tests/test-lanes.test.mjs tests/tool-profiles.test.mjs",
|
|
107
108
|
"test:integration": "pnpm run build && node --test --test-concurrency=1 tests/dev.test.mjs tests/generate-summaries.test.mjs tests/live-update-speed.test.mjs tests/performance-gate.test.mjs tests/present-agent.test.mjs tests/present-help.test.mjs tests/present-instances.test.mjs tests/presenter-recovery.test.mjs tests/remote-targets.test.mjs tests/rendered-html.test.mjs tests/serve-built.test.mjs tests/setup-environments.test.mjs",
|
|
108
109
|
"test:coverage": "pnpm run build && c8 node --test --test-concurrency=1 tests/cli-args.test.mjs tests/generate-summaries.test.mjs tests/present-agent.test.mjs tests/present-help.test.mjs tests/present-instances.test.mjs tests/remote-targets.test.mjs tests/serve-built.test.mjs",
|
|
109
110
|
"test:browser": "pnpm run build && node --test tests/browser/*.test.mjs",
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { randomBytes } from 'node:crypto';
|
|
2
|
+
import {
|
|
3
|
+
existsSync,
|
|
4
|
+
mkdirSync,
|
|
5
|
+
readFileSync,
|
|
6
|
+
renameSync,
|
|
7
|
+
rmSync,
|
|
8
|
+
writeFileSync,
|
|
9
|
+
} from 'node:fs';
|
|
10
|
+
import { homedir } from 'node:os';
|
|
11
|
+
import { dirname, posix, win32 } from 'node:path';
|
|
12
|
+
|
|
13
|
+
function configError(file, detail) {
|
|
14
|
+
return new Error(
|
|
15
|
+
`Diffsplain agent configuration at "${file}" is damaged: ${detail}`,
|
|
16
|
+
);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function windowsConfigPath(paths, env, homeDirectory) {
|
|
20
|
+
if (env.APPDATA) {
|
|
21
|
+
return paths.join(env.APPDATA, 'diffsplain', 'config.json');
|
|
22
|
+
}
|
|
23
|
+
const profile = env.USERPROFILE || homeDirectory;
|
|
24
|
+
return paths.join(
|
|
25
|
+
profile,
|
|
26
|
+
'AppData',
|
|
27
|
+
'Roaming',
|
|
28
|
+
'diffsplain',
|
|
29
|
+
'config.json',
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function unixConfigPath(paths, env, homeDirectory, platform) {
|
|
34
|
+
if (paths.isAbsolute(env.XDG_CONFIG_HOME || '')) {
|
|
35
|
+
return paths.join(env.XDG_CONFIG_HOME, 'diffsplain', 'config.json');
|
|
36
|
+
}
|
|
37
|
+
const base = platform === 'darwin'
|
|
38
|
+
? paths.join(homeDirectory, 'Library', 'Application Support')
|
|
39
|
+
: paths.join(homeDirectory, '.config');
|
|
40
|
+
return paths.join(base, 'diffsplain', 'config.json');
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export function agentConfigPath({
|
|
44
|
+
env = process.env,
|
|
45
|
+
homeDirectory = homedir(),
|
|
46
|
+
platform = process.platform,
|
|
47
|
+
} = {}) {
|
|
48
|
+
const paths = platform === 'win32' ? win32 : posix;
|
|
49
|
+
if (platform === 'win32') {
|
|
50
|
+
return windowsConfigPath(paths, env, homeDirectory);
|
|
51
|
+
}
|
|
52
|
+
return unixConfigPath(paths, env, homeDirectory, platform);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
function readConfigContents(file) {
|
|
56
|
+
try {
|
|
57
|
+
return readFileSync(file, 'utf8');
|
|
58
|
+
} catch (error) {
|
|
59
|
+
if (error?.code === 'ENOENT') return undefined;
|
|
60
|
+
throw new Error(
|
|
61
|
+
`Could not read Diffsplain agent configuration at "${file}": ${error.message}`,
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
function parseConfigContents(file, contents) {
|
|
67
|
+
try {
|
|
68
|
+
return JSON.parse(contents);
|
|
69
|
+
} catch {
|
|
70
|
+
throw configError(file, 'the file is not valid JSON.');
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
function assertConfigRecord(file, parsed) {
|
|
75
|
+
if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
|
|
76
|
+
throw configError(file, 'the top-level value must be a JSON object.');
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
function assertAgentValue(file, parsed) {
|
|
81
|
+
if (!Object.hasOwn(parsed, 'agent')) return;
|
|
82
|
+
if (typeof parsed.agent !== 'string') {
|
|
83
|
+
throw configError(file, '"agent" must be a string.');
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
function readConfigRecord(file) {
|
|
88
|
+
const contents = readConfigContents(file);
|
|
89
|
+
if (contents === undefined) return undefined;
|
|
90
|
+
const parsed = parseConfigContents(file, contents);
|
|
91
|
+
assertConfigRecord(file, parsed);
|
|
92
|
+
assertAgentValue(file, parsed);
|
|
93
|
+
return parsed;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
export function readConfiguredAgent({
|
|
97
|
+
file = agentConfigPath(),
|
|
98
|
+
} = {}) {
|
|
99
|
+
return readConfigRecord(file)?.agent;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
function discardFile(file) {
|
|
103
|
+
try {
|
|
104
|
+
rmSync(file, { force: true });
|
|
105
|
+
} catch {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
function moveExistingConfig(file, backup) {
|
|
111
|
+
if (!existsSync(file)) return false;
|
|
112
|
+
renameSync(file, backup);
|
|
113
|
+
return true;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
function restoreConfigFile(file, backup, movedExisting, originalError) {
|
|
117
|
+
if (!movedExisting) return;
|
|
118
|
+
if (existsSync(file)) return;
|
|
119
|
+
try {
|
|
120
|
+
renameSync(backup, file);
|
|
121
|
+
} catch (restoreError) {
|
|
122
|
+
originalError.cause = restoreError;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
function replaceConfigFile(file, record) {
|
|
127
|
+
const directory = dirname(file);
|
|
128
|
+
mkdirSync(directory, { recursive: true, mode: 0o700 });
|
|
129
|
+
const suffix = `${process.pid}-${randomBytes(8).toString('hex')}`;
|
|
130
|
+
const temporary = `${file}.${suffix}.tmp`;
|
|
131
|
+
const backup = `${file}.${suffix}.bak`;
|
|
132
|
+
let movedExisting = false;
|
|
133
|
+
|
|
134
|
+
try {
|
|
135
|
+
writeFileSync(temporary, `${JSON.stringify(record, null, 2)}\n`, {
|
|
136
|
+
encoding: 'utf8',
|
|
137
|
+
flag: 'wx',
|
|
138
|
+
mode: 0o600,
|
|
139
|
+
});
|
|
140
|
+
movedExisting = moveExistingConfig(file, backup);
|
|
141
|
+
renameSync(temporary, file);
|
|
142
|
+
} catch (error) {
|
|
143
|
+
discardFile(temporary);
|
|
144
|
+
restoreConfigFile(file, backup, movedExisting, error);
|
|
145
|
+
throw error;
|
|
146
|
+
}
|
|
147
|
+
discardFile(backup);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
function showAgentConfig(_operation, current) {
|
|
151
|
+
return { kind: 'show', agent: current?.agent };
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
function setAgentConfig(operation, current, file) {
|
|
155
|
+
replaceConfigFile(file, { ...(current || {}), agent: operation.agent });
|
|
156
|
+
return { kind: 'set', agent: operation.agent };
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
function unsetAgentConfig(_operation, current, file) {
|
|
160
|
+
if (!current) return { kind: 'unset' };
|
|
161
|
+
if (!Object.hasOwn(current, 'agent')) return { kind: 'unset' };
|
|
162
|
+
const next = { ...current };
|
|
163
|
+
delete next.agent;
|
|
164
|
+
replaceConfigFile(file, next);
|
|
165
|
+
return { kind: 'unset' };
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
const CONFIG_OPERATIONS = {
|
|
169
|
+
set: setAgentConfig,
|
|
170
|
+
show: showAgentConfig,
|
|
171
|
+
unset: unsetAgentConfig,
|
|
172
|
+
};
|
|
173
|
+
|
|
174
|
+
export function applyAgentConfigOperation(
|
|
175
|
+
operation,
|
|
176
|
+
{ file = agentConfigPath() } = {},
|
|
177
|
+
) {
|
|
178
|
+
const current = readConfigRecord(file);
|
|
179
|
+
const applyOperation = CONFIG_OPERATIONS[operation.kind];
|
|
180
|
+
if (!applyOperation) {
|
|
181
|
+
throw new Error(`Unknown agent configuration operation: ${operation.kind}`);
|
|
182
|
+
}
|
|
183
|
+
return applyOperation(operation, current, file);
|
|
184
|
+
}
|
package/scripts/cli-args.mjs
CHANGED
|
@@ -82,6 +82,8 @@ Commands:
|
|
|
82
82
|
doctor [--json] [--deep]
|
|
83
83
|
Check review, agent, and pull request capabilities
|
|
84
84
|
cache Show or prune saved agent notes
|
|
85
|
+
config agent [NAME|--unset]
|
|
86
|
+
Show, set, or unset the default coding agent
|
|
85
87
|
|
|
86
88
|
Targets:
|
|
87
89
|
--branch NAME Show a remote branch against its default branch
|
|
@@ -118,8 +120,8 @@ Options:
|
|
|
118
120
|
-v, --version Show the installed version
|
|
119
121
|
|
|
120
122
|
Agent choice:
|
|
121
|
-
|
|
122
|
-
|
|
123
|
+
Choice order is --no-agent, --agent, then the configured default.
|
|
124
|
+
Without any choice, an interactive terminal lists usable agents.
|
|
123
125
|
|
|
124
126
|
Cursor:
|
|
125
127
|
Requires Cursor Agent 2026.08.11 or newer. Uses the signed-in CLI in the
|
|
@@ -195,6 +197,31 @@ export function parseCliArgs(
|
|
|
195
197
|
pathExists = existsSync,
|
|
196
198
|
} = {},
|
|
197
199
|
) {
|
|
200
|
+
if (rawArgs[0] === 'config') {
|
|
201
|
+
if (rawArgs[1] !== 'agent') {
|
|
202
|
+
fail('Use: diffsplain config agent [NAME|--unset]');
|
|
203
|
+
}
|
|
204
|
+
if (rawArgs.length === 2) {
|
|
205
|
+
return { config: { kind: 'show' } };
|
|
206
|
+
}
|
|
207
|
+
if (rawArgs.length !== 3) {
|
|
208
|
+
fail('Use: diffsplain config agent [NAME|--unset]');
|
|
209
|
+
}
|
|
210
|
+
const value = rawArgs[2];
|
|
211
|
+
if (value === '--unset') {
|
|
212
|
+
return { config: { kind: 'unset' } };
|
|
213
|
+
}
|
|
214
|
+
if (value.startsWith('--')) {
|
|
215
|
+
fail('Use: diffsplain config agent [NAME|--unset]');
|
|
216
|
+
}
|
|
217
|
+
if (!codingAgents.includes(value)) {
|
|
218
|
+
fail(
|
|
219
|
+
`Unsupported agent "${value}". Choose ${enabledCodingAgents.join(', ')}.`,
|
|
220
|
+
);
|
|
221
|
+
}
|
|
222
|
+
return { config: { kind: 'set', agent: value } };
|
|
223
|
+
}
|
|
224
|
+
|
|
198
225
|
if (rawArgs[0] === 'doctor') {
|
|
199
226
|
const options = new Set(rawArgs.slice(1));
|
|
200
227
|
for (const option of options) {
|
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
isAbsolute,
|
|
9
9
|
join,
|
|
10
10
|
} from 'node:path';
|
|
11
|
+
import { readConfiguredAgent } from './agent-config.mjs';
|
|
11
12
|
|
|
12
13
|
export const codingAgentCapabilities = {
|
|
13
14
|
codex: { binary: 'codex', model: true, reasoning: true },
|
|
@@ -263,15 +264,57 @@ function nonInteractiveSelectionError() {
|
|
|
263
264
|
);
|
|
264
265
|
}
|
|
265
266
|
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
267
|
+
class CodingAgentSelectionError extends Error {
|
|
268
|
+
constructor(agent, message) {
|
|
269
|
+
super(message);
|
|
270
|
+
this.agent = agent;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
export function codingAgentFromSelectionError(error) {
|
|
275
|
+
return error instanceof CodingAgentSelectionError
|
|
276
|
+
? error.agent
|
|
277
|
+
: undefined;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
function unsupportedSelectionError(requested, configured) {
|
|
281
|
+
if (configured) {
|
|
282
|
+
return new CodingAgentSelectionError(
|
|
283
|
+
requested,
|
|
284
|
+
`Configured coding agent "${requested}" is unsupported. Choose ${enabledCodingAgents.join(', ')} with diffsplain config agent NAME, or use --agent NAME for this run.`,
|
|
285
|
+
);
|
|
286
|
+
}
|
|
287
|
+
return new CodingAgentSelectionError(
|
|
288
|
+
requested,
|
|
289
|
+
`Unsupported agent "${requested}". Choose ${enabledCodingAgents.join(', ')}.`,
|
|
290
|
+
);
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
function unavailableSelectionError(requested, result, configured) {
|
|
294
|
+
if (!configured) {
|
|
295
|
+
return new CodingAgentSelectionError(
|
|
296
|
+
requested,
|
|
297
|
+
unavailableAgentError(requested, result).message,
|
|
270
298
|
);
|
|
271
299
|
}
|
|
300
|
+
const reason = typeof result === 'object' ? result.reason : undefined;
|
|
301
|
+
return new CodingAgentSelectionError(
|
|
302
|
+
requested,
|
|
303
|
+
`Configured coding agent "${requested}" is not available.${reason ? ` ${reason}` : ''} Change it with diffsplain config agent NAME, or use --agent NAME for this run.`,
|
|
304
|
+
);
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
async function selectRequestedCodingAgent(
|
|
308
|
+
requested,
|
|
309
|
+
available,
|
|
310
|
+
{ configured = false } = {},
|
|
311
|
+
) {
|
|
312
|
+
if (!codingAgents.includes(requested)) {
|
|
313
|
+
throw unsupportedSelectionError(requested, configured);
|
|
314
|
+
}
|
|
272
315
|
const result = await available(requested);
|
|
273
316
|
if (!availableResult(result)) {
|
|
274
|
-
throw
|
|
317
|
+
throw unavailableSelectionError(requested, result, configured);
|
|
275
318
|
}
|
|
276
319
|
return requested;
|
|
277
320
|
}
|
|
@@ -340,15 +383,23 @@ export async function selectCodingAgent(
|
|
|
340
383
|
requested,
|
|
341
384
|
{
|
|
342
385
|
available = commandAvailable,
|
|
386
|
+
configuredAgent = readConfiguredAgent,
|
|
343
387
|
input = process.stdin,
|
|
344
388
|
output = process.stderr,
|
|
345
389
|
signal,
|
|
346
390
|
} = {},
|
|
347
391
|
) {
|
|
348
|
-
if (requested) {
|
|
392
|
+
if (requested !== undefined) {
|
|
349
393
|
return selectRequestedCodingAgent(requested, available);
|
|
350
394
|
}
|
|
351
395
|
|
|
396
|
+
const configured = await configuredAgent();
|
|
397
|
+
if (configured !== undefined) {
|
|
398
|
+
return selectRequestedCodingAgent(configured, available, {
|
|
399
|
+
configured: true,
|
|
400
|
+
});
|
|
401
|
+
}
|
|
402
|
+
|
|
352
403
|
if (!input?.isTTY || !output?.isTTY) {
|
|
353
404
|
throw nonInteractiveSelectionError();
|
|
354
405
|
}
|
|
@@ -16,6 +16,7 @@ import {
|
|
|
16
16
|
agentCommand,
|
|
17
17
|
agentReadOnlyWarning,
|
|
18
18
|
assertReasoningSupported,
|
|
19
|
+
codingAgentFromSelectionError,
|
|
19
20
|
codingAgentAvailability,
|
|
20
21
|
codingAgentBinary,
|
|
21
22
|
parseAgentResponse,
|
|
@@ -135,7 +136,7 @@ Options:
|
|
|
135
136
|
--cache-dir PATH Bare cache for fetched Git objects
|
|
136
137
|
--agent NAME Use codex, claude, copilot, cursor, or opencode
|
|
137
138
|
Cursor needs version 2026.08.11 or newer
|
|
138
|
-
|
|
139
|
+
Overrides the configured default for this run
|
|
139
140
|
--codex-bin FILE Codex CLI path (default: codex)
|
|
140
141
|
--model NAME Model passed to the coding agent
|
|
141
142
|
--reasoning LEVEL Agent reasoning effort when supported
|
|
@@ -148,8 +149,9 @@ Options:
|
|
|
148
149
|
--no-checkout-access
|
|
149
150
|
Limit notes to the supplied snapshot
|
|
150
151
|
|
|
151
|
-
Without --agent, an interactive terminal is required.
|
|
152
|
-
|
|
152
|
+
Without --agent or a configured default, an interactive terminal is required.
|
|
153
|
+
Use diffsplain config agent NAME to set a default. Use diffsplain --no-agent
|
|
154
|
+
for a plain review.`);
|
|
153
155
|
process.exit(0);
|
|
154
156
|
}
|
|
155
157
|
|
|
@@ -1213,7 +1215,12 @@ async function selectAgentForNotes() {
|
|
|
1213
1215
|
safeCommandVersion(selectedAgent, agentBinary),
|
|
1214
1216
|
);
|
|
1215
1217
|
} catch (error) {
|
|
1216
|
-
supportRecorder?.setProvider(
|
|
1218
|
+
supportRecorder?.setProvider(
|
|
1219
|
+
codingAgentFromSelectionError(error) ||
|
|
1220
|
+
selectedAgent ||
|
|
1221
|
+
requestedAgent ||
|
|
1222
|
+
'unknown',
|
|
1223
|
+
);
|
|
1217
1224
|
if (error instanceof Error) error.exitCode = 2;
|
|
1218
1225
|
throw error;
|
|
1219
1226
|
}
|