@waishnav/devspace 1.0.1 → 1.0.3
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 +140 -30
- package/dist/apply-patch.js +399 -0
- package/dist/cli.js +18 -2
- package/dist/config.js +11 -13
- package/dist/db/client.js +10 -3
- package/dist/db/migrations.js +123 -0
- package/dist/db/schema.js +24 -1
- package/dist/oauth-provider.js +35 -64
- package/dist/oauth-store.js +138 -0
- package/dist/process-platform.js +49 -0
- package/dist/process-sessions.js +329 -0
- package/dist/roots.js +5 -2
- package/dist/server.js +462 -203
- package/dist/skills.js +23 -3
- package/dist/ui/.vite/manifest.json +281 -281
- package/dist/ui/assets/{angular-html-B_77pPm_.js → angular-html-D6nc7PYw.js} +1 -1
- package/dist/ui/assets/{angular-ts-tGBi7sOr.js → angular-ts-BAIStLeI.js} +1 -1
- package/dist/ui/assets/{apl-CtVPpGgP.js → apl-CtEv5pop.js} +1 -1
- package/dist/ui/assets/{astro-CALPYvnG.js → astro-CVFIMXc6.js} +1 -1
- package/dist/ui/assets/{blade-Bh4eBXdk.js → blade-BgSlZ6jY.js} +1 -1
- package/dist/ui/assets/{c-BGkebjQE.js → c-bxLlCV26.js} +1 -1
- package/dist/ui/assets/{cobol-f7rP2PjR.js → cobol-BuZ-r51r.js} +1 -1
- package/dist/ui/assets/{coffee-E4OhMc7W.js → coffee-_JP0Joa7.js} +1 -1
- package/dist/ui/assets/{cpp-Cr_J6lB2.js → cpp-CP_eaz-H.js} +1 -1
- package/dist/ui/assets/{crystal-B_TFXhon.js → crystal-DZ-sEZd0.js} +1 -1
- package/dist/ui/assets/{css-DDMxq-4J.js → css-CZnyti9s.js} +1 -1
- package/dist/ui/assets/{edge-Bxqhgg5I.js → edge-DjsoDMTR.js} +1 -1
- package/dist/ui/assets/{elixir-WrSbgJJ1.js → elixir-C5b04AkY.js} +1 -1
- package/dist/ui/assets/{elm-BXBWJ4Kz.js → elm-Ddx-rgVY.js} +1 -1
- package/dist/ui/assets/{erb-D0iMw9rO.js → erb-cjF7oPcT.js} +1 -1
- package/dist/ui/assets/{git-rebase-BOrZ-_iR.js → git-rebase-DN5exBTl.js} +1 -1
- package/dist/ui/assets/{glimmer-js-PCWk96O8.js → glimmer-js-CEq0hNwa.js} +1 -1
- package/dist/ui/assets/{glimmer-ts-4pYwX8pC.js → glimmer-ts-4uYGFkon.js} +1 -1
- package/dist/ui/assets/{glsl-CDyKZvZX.js → glsl-DEJ9tTWm.js} +1 -1
- package/dist/ui/assets/{graphql-8sIw92YT.js → graphql-Bim5WuQh.js} +1 -1
- package/dist/ui/assets/{hack-Ci96Zcew.js → hack-BcyVIXhE.js} +1 -1
- package/dist/ui/assets/{haml-4uzh6End.js → haml-D9YaukDg.js} +1 -1
- package/dist/ui/assets/{handlebars-B6Eq7QV8.js → handlebars-CFaMw9zH.js} +1 -1
- package/dist/ui/assets/{heavy-payload--bwRtRpo.js → heavy-payload-B9aTqgfs.js} +1 -1
- package/dist/ui/assets/{html-C29wL7bm.js → html-CgO_zx4D.js} +1 -1
- package/dist/ui/assets/{html-derivative-Cmd90ilz.js → html-derivative-BxqkysJT.js} +1 -1
- package/dist/ui/assets/{http-Bdr_R0Kw.js → http-CO5dv0RA.js} +1 -1
- package/dist/ui/assets/{hurl-CiTPn-zH.js → hurl-DRHtrK78.js} +1 -1
- package/dist/ui/assets/{java-C03kBuJH.js → java-BvHC_DgR.js} +1 -1
- package/dist/ui/assets/{javascript-135g9Wwx.js → javascript-C-3payQx.js} +1 -1
- package/dist/ui/assets/{jinja-CPpiEHqV.js → jinja-CAOPvEOH.js} +1 -1
- package/dist/ui/assets/{jison-qabCQzwp.js → jison-totCB1L-.js} +1 -1
- package/dist/ui/assets/{json-CtRj9Trp.js → json-D0J9rEe1.js} +1 -1
- package/dist/ui/assets/{jsx-Ccuy5Wm3.js → jsx-na-XQD_B.js} +1 -1
- package/dist/ui/assets/{julia-Fwya-MwM.js → julia-CqrTtZ4-.js} +1 -1
- package/dist/ui/assets/{just-c9YEH7Gf.js → just-pmrVSkMc.js} +1 -1
- package/dist/ui/assets/{latex-D9xoD6UX.js → latex-Cd_geX3E.js} +1 -1
- package/dist/ui/assets/{liquid-BKZLZSHN.js → liquid-C6ky5sJ-.js} +1 -1
- package/dist/ui/assets/{lua-CBD2zNyC.js → lua-dgyBbeof.js} +1 -1
- package/dist/ui/assets/{marko-Dkgf9bj3.js → marko-Dy5mfXY9.js} +1 -1
- package/dist/ui/assets/{mdc-BUgUKiX3.js → mdc-7NUvxgI1.js} +1 -1
- package/dist/ui/assets/{nginx-CAaav4Zh.js → nginx-C-KiEXbI.js} +1 -1
- package/dist/ui/assets/{nim-CTjWWztL.js → nim-BBw8kfl9.js} +1 -1
- package/dist/ui/assets/{perl-DTM5zgH4.js → perl-CyxhJgbO.js} +1 -1
- package/dist/ui/assets/{php-dqfFDbWm.js → php-m4LAOpam.js} +1 -1
- package/dist/ui/assets/{pug-4f_clTm2.js → pug-Cpl0baYI.js} +1 -1
- package/dist/ui/assets/{qml-BFeWjFRL.js → qml-BoSGNgIb.js} +1 -1
- package/dist/ui/assets/{r-ei1iNvHm.js → r-C0JhqQd5.js} +1 -1
- package/dist/ui/assets/{razor-jj95jncJ.js → razor-CntsBNoh.js} +1 -1
- package/dist/ui/assets/{regexp-0joUf3Cn.js → regexp-BNZmOCRl.js} +1 -1
- package/dist/ui/assets/{review-payload-DxI2fTnP.js → review-payload-BgdWHWiv.js} +1 -1
- package/dist/ui/assets/{rst-BMbcN8--.js → rst-BZ2XHIxM.js} +1 -1
- package/dist/ui/assets/{ruby-BQx0xtOB.js → ruby-BIthfCTP.js} +1 -1
- package/dist/ui/assets/{sas-C_Fl1EyP.js → sas-5aT3fOla.js} +1 -1
- package/dist/ui/assets/{scss-5vaLJPJl.js → scss-DZPfdkDy.js} +1 -1
- package/dist/ui/assets/{shellscript-p_y7YCYP.js → shellscript-DbhKc5Xj.js} +1 -1
- package/dist/ui/assets/{shellsession-ChZkMp2K.js → shellsession-X9-bcyHh.js} +1 -1
- package/dist/ui/assets/{soy-im25cA8U.js → soy-Bd4tecrW.js} +1 -1
- package/dist/ui/assets/{sql-BzvG6ssm.js → sql-Chf5JrDn.js} +1 -1
- package/dist/ui/assets/{stata-CwSzNM20.js → stata-DvMMIc_T.js} +1 -1
- package/dist/ui/assets/{surrealql-BWzKhI6S.js → surrealql-D5FMzVF5.js} +1 -1
- package/dist/ui/assets/{svelte-NMlQHjaa.js → svelte-CTiVXZrv.js} +1 -1
- package/dist/ui/assets/{templ-1W11KGSL.js → templ-ldnfq-7w.js} +1 -1
- package/dist/ui/assets/{tex-CTxN8q2c.js → tex-QW0_7T2r.js} +1 -1
- package/dist/ui/assets/{ts-tags-B6prphu-.js → ts-tags-CAKiWIBx.js} +1 -1
- package/dist/ui/assets/{tsx-Daks24y9.js → tsx-Bu9xJJmq.js} +1 -1
- package/dist/ui/assets/{twig-C0KeCxch.js → twig-Dp1752_V.js} +1 -1
- package/dist/ui/assets/{typescript-37-dkCwp.js → typescript-RfO03Kmm.js} +1 -1
- package/dist/ui/assets/{useFileDiffInstance--R0_ywL_.js → useFileDiffInstance-DjqU4y1a.js} +3 -3
- package/dist/ui/assets/{vue-Ba-v02vP.js → vue-Dlasv57G.js} +1 -1
- package/dist/ui/assets/{vue-html-D2UmbuN7.js → vue-html-BHuJ7anu.js} +1 -1
- package/dist/ui/assets/{vue-vine-ZftUW_ID.js → vue-vine-CavE0PSk.js} +1 -1
- package/dist/ui/assets/{workspace-app-CsMiGtz9.js → workspace-app-DDV_qdjx.js} +6 -6
- package/dist/ui/assets/workspace-app-DGD9R89D.css +1 -0
- package/dist/ui/assets/{xml-DrhRYxTS.js → xml-Bbv64l4W.js} +1 -1
- package/dist/ui/assets/{xsl-DvbIvBcQ.js → xsl-Sro4gyQY.js} +1 -1
- package/dist/ui/assets/{yaml-oktUYAzQ.js → yaml-Du68c8sA.js} +1 -1
- package/dist/ui/workspace-app.html +2 -2
- package/dist/workspace-store.js +0 -50
- package/docs/chatgpt-coding-workflow.md +24 -4
- package/docs/codex-tool-mode-qa.md +73 -0
- package/docs/configuration.md +28 -5
- package/docs/gotchas.md +11 -5
- package/docs/setup.md +1 -1
- package/package.json +10 -5
- package/scripts/fix-node-pty-permissions.mjs +22 -0
- package/dist/ui/assets/workspace-app-8--oTbCd.css +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:var(--font-sans,ui-sans-serif, system-ui, sans-serif);color:var(--color-text-primary,#f5f5f6);background:0 0}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}*{box-sizing:border-box}html,body{background:0 0;margin:0;overflow:hidden}.shell{width:100%;padding:0;overflow:hidden}.empty,.tool-card{border:1px solid color-mix(in srgb, var(--color-border-primary,#3a3a40) 86%, transparent);background:color-mix(in srgb, var(--color-background-secondary,#28282d) 92%, transparent);width:100%;box-shadow:none;color:var(--color-text-primary,#f5f5f6);border-radius:8px}.empty{color:var(--color-text-secondary,#b6b6bd);font-size:var(--font-text-sm-size,13px);padding:14px 16px}.tool-header{width:100%;min-height:64px;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:8px;grid-template-columns:38px minmax(0,1fr) auto 28px;align-items:center;gap:12px;padding:10px 12px 10px 14px;display:grid}.tool-header:hover:not(:disabled){background:color-mix(in srgb, var(--color-background-tertiary,#333338) 72%, transparent)}.tool-header:disabled{cursor:default}.tool-icon{border:1px solid color-mix(in srgb, var(--color-border-primary,#3a3a40) 55%, transparent);background:linear-gradient(180deg, color-mix(in srgb, var(--color-background-tertiary,#3a3a42) 72%, transparent), color-mix(in srgb, var(--color-background-primary,#17181c) 90%, transparent));width:38px;height:38px;color:var(--color-text-primary,#f5f5f6);border-radius:8px;place-items:center;display:grid}.icon-svg{width:19px;height:19px;display:block}.tool-main{gap:3px;min-width:0;display:grid}.tool-title{color:var(--color-text-primary,#f5f5f6);font-size:var(--font-text-sm-size,13px);font-weight:600}.tool-label{color:var(--color-text-secondary,#d6d6dc);font-family:var(--font-mono,ui-monospace, SFMono-Regular, monospace);font-size:var(--font-text-sm-size,14px);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.stats{font-family:var(--font-mono,ui-monospace, SFMono-Regular, monospace);font-size:var(--font-text-sm-size,13px);white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.badge-group{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.badge{border:1px solid color-mix(in srgb, var(--color-border-primary,#3a3a40) 80%, transparent);background:color-mix(in srgb, var(--color-background-primary,#17181c) 42%, transparent);min-height:24px;color:var(--color-text-secondary,#d6d6dc);font-family:var(--font-mono,ui-monospace, SFMono-Regular, monospace);font-size:var(--font-text-sm-size,12px);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:0 9px;display:inline-flex}.badge.success{border-color:color-mix(in srgb, var(--color-success-text,#6fda83) 44%, var(--color-border-primary,#3a3a40));color:var(--color-success-text,#6fda83)}.badge.muted{color:var(--color-text-tertiary,#a3a3aa)}.badge-icon{flex:none;width:13px;height:13px;display:block}.add{color:var(--color-success-text,#6fda83)}.remove{color:var(--color-danger-text,#ee7676)}.chevron{width:28px;height:28px;color:var(--color-text-tertiary,#a3a3aa);border-radius:7px;place-items:center;transition:background .14s,color .14s,transform .14s;display:grid}.tool-header:hover:not(:disabled) .chevron{background:color-mix(in srgb, var(--color-background-primary,#17181c) 58%, transparent);color:var(--color-text-primary,#f5f5f6)}.chevron .icon-svg{width:16px;height:16px}.chevron.expanded{transform:rotate(180deg)}.chevron.loading{transform:none}.chevron.loading .icon-svg{fill:none;stroke-linecap:round;stroke-dasharray:38 14;animation:.7s linear infinite payload-spinner}@keyframes payload-spinner{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.chevron.loading .icon-svg{animation:none}}.tool-body{border-top:1px solid var(--color-border-primary,#3a3a40);background:var(--color-background-primary,#18191d)}.review-header{grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:58px;padding:10px 12px 8px 14px;display:grid}.review-title-group{gap:3px;min-width:0;display:grid}.review-summary{border-top:1px solid var(--color-border-primary,#3a3a40);background:var(--color-background-primary,#18191d);display:grid}.review-actions,.review-diff-file-stats{align-items:center;gap:8px;display:flex}.review-empty{color:var(--color-text-secondary,#b7b7bf);font-size:var(--font-text-sm-size,13px)}.review-actions{border-top:1px solid color-mix(in srgb, var(--color-border-primary,#3a3a40) 72%, transparent);justify-content:flex-end;padding:10px 14px}.review-action{border:1px solid color-mix(in srgb, var(--color-border-primary,#3a3a40) 80%, transparent);background:color-mix(in srgb, var(--color-background-primary,#17181c) 36%, transparent);min-height:26px;color:var(--color-text-secondary,#d6d6dc);cursor:pointer;font:inherit;font-size:var(--font-text-sm-size,12px);border-radius:7px;padding:0 9px}.review-action:hover{background:color-mix(in srgb, var(--color-background-tertiary,#333338) 80%, transparent);color:var(--color-text-primary,#f5f5f6)}.review-diff{gap:8px;max-height:520px;padding:0 0 12px;display:grid;overflow:auto}.review-diff-files{gap:8px;padding:12px 14px 0;display:grid}.review-diff-file{border:1px solid color-mix(in srgb, var(--color-border-primary,#3a3a40) 80%, transparent);border-radius:8px;overflow:hidden}.review-diff-file-header{background:color-mix(in srgb, var(--color-background-secondary,#28282d) 88%, transparent);width:100%;min-height:34px;color:var(--color-text-primary,#f5f5f6);cursor:pointer;font:inherit;text-align:left;border:0;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:7px 10px;display:grid}.review-diff-file-header:hover{background:color-mix(in srgb, var(--color-background-tertiary,#333338) 84%, transparent)}.review-diff-file-name,.review-diff-file-stats{font-family:var(--font-mono,ui-monospace, SFMono-Regular, monospace);font-size:var(--font-text-sm-size,12px);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.review-diff-file-stats{justify-content:flex-end;overflow:visible}.status{font-size:var(--font-text-sm-size,13px);padding:12px 14px}.status.muted{color:var(--color-text-secondary,#b7b7bf)}.status.error{color:var(--color-danger-text,#ee7676)}.pierre-diff,.pierre-file{--diffs-bg:var(--tool-payload-bg,var(--color-background-primary,#101114));--diffs-light-bg:var(--color-background-primary,#fff);--diffs-dark-bg:var(--tool-payload-bg,var(--color-background-primary,#101114));--diffs-font-family:var(--font-mono,ui-monospace, SFMono-Regular, monospace);--diffs-header-font-family:var(--font-sans,ui-sans-serif, system-ui, sans-serif);--diffs-font-size:var(--font-text-sm-size,12px);--diffs-line-height:20px;border-bottom-right-radius:8px;border-bottom-left-radius:8px;max-height:420px;display:block;overflow:auto}.text-payload{max-height:420px;color:var(--color-text-secondary,#d6d6dc);font-family:var(--font-mono,ui-monospace, SFMono-Regular, monospace);font-size:var(--font-text-sm-size,12px);white-space:pre-wrap;word-break:break-word;margin:0;padding:12px 14px;line-height:1.55;overflow:auto}.text-payload.run_shell,.text-payload.bash{color:var(--color-text-primary,#f5f5f6);background:var(--color-background-primary,#101114)}@media (width<=520px){.tool-header{grid-template-columns:32px minmax(0,1fr) auto 18px;gap:8px;padding:8px}.tool-icon{width:32px;height:32px}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as e}from"./workspace-app-
|
|
1
|
+
import{c as e}from"./workspace-app-DDV_qdjx.js";import{t}from"./java-BvHC_DgR.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-Bbv64l4W.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{c as e}from"./workspace-app-CsMiGtz9.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{c as e}from"./workspace-app-DDV_qdjx.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};
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>DevSpace Diff</title>
|
|
7
|
-
<script type="module" crossorigin src="./assets/workspace-app-
|
|
8
|
-
<link rel="stylesheet" crossorigin href="./assets/workspace-app-
|
|
7
|
+
<script type="module" crossorigin src="./assets/workspace-app-DDV_qdjx.js"></script>
|
|
8
|
+
<link rel="stylesheet" crossorigin href="./assets/workspace-app-DGD9R89D.css">
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
|
11
11
|
<main id="app" class="shell">
|
package/dist/workspace-store.js
CHANGED
|
@@ -5,7 +5,6 @@ export class SqliteWorkspaceStore {
|
|
|
5
5
|
database;
|
|
6
6
|
constructor(stateDir) {
|
|
7
7
|
this.database = openDatabase(stateDir);
|
|
8
|
-
this.migrate();
|
|
9
8
|
}
|
|
10
9
|
createSession(input) {
|
|
11
10
|
const now = new Date().toISOString();
|
|
@@ -56,55 +55,6 @@ export class SqliteWorkspaceStore {
|
|
|
56
55
|
close() {
|
|
57
56
|
this.database.close();
|
|
58
57
|
}
|
|
59
|
-
migrate() {
|
|
60
|
-
this.database.sqlite.exec(`
|
|
61
|
-
create table if not exists workspace_sessions (
|
|
62
|
-
id text primary key,
|
|
63
|
-
root text not null,
|
|
64
|
-
status text not null default 'active',
|
|
65
|
-
mode text not null default 'checkout',
|
|
66
|
-
source_root text,
|
|
67
|
-
base_ref text,
|
|
68
|
-
base_sha text,
|
|
69
|
-
managed text not null default 'false',
|
|
70
|
-
created_at text not null,
|
|
71
|
-
last_used_at text not null
|
|
72
|
-
);
|
|
73
|
-
|
|
74
|
-
create index if not exists workspace_sessions_root_idx
|
|
75
|
-
on workspace_sessions(root, last_used_at desc);
|
|
76
|
-
|
|
77
|
-
create index if not exists workspace_sessions_status_idx
|
|
78
|
-
on workspace_sessions(status, last_used_at desc);
|
|
79
|
-
|
|
80
|
-
create table if not exists loaded_agent_files (
|
|
81
|
-
workspace_session_id text not null,
|
|
82
|
-
path text not null,
|
|
83
|
-
content_hash text not null,
|
|
84
|
-
content text not null,
|
|
85
|
-
loaded_at text not null,
|
|
86
|
-
last_seen_at text not null,
|
|
87
|
-
primary key (workspace_session_id, path),
|
|
88
|
-
foreign key (workspace_session_id)
|
|
89
|
-
references workspace_sessions(id)
|
|
90
|
-
on delete cascade
|
|
91
|
-
);
|
|
92
|
-
|
|
93
|
-
create index if not exists loaded_agent_files_path_idx
|
|
94
|
-
on loaded_agent_files(path);
|
|
95
|
-
`);
|
|
96
|
-
this.addColumnIfMissing("workspace_sessions", "mode", "text not null default 'checkout'");
|
|
97
|
-
this.addColumnIfMissing("workspace_sessions", "source_root", "text");
|
|
98
|
-
this.addColumnIfMissing("workspace_sessions", "base_ref", "text");
|
|
99
|
-
this.addColumnIfMissing("workspace_sessions", "base_sha", "text");
|
|
100
|
-
this.addColumnIfMissing("workspace_sessions", "managed", "text not null default 'false'");
|
|
101
|
-
}
|
|
102
|
-
addColumnIfMissing(table, column, definition) {
|
|
103
|
-
const columns = this.database.sqlite.prepare(`pragma table_info(${table})`).all();
|
|
104
|
-
if (columns.some((existingColumn) => existingColumn.name === column))
|
|
105
|
-
return;
|
|
106
|
-
this.database.sqlite.exec(`alter table ${table} add column ${column} ${definition}`);
|
|
107
|
-
}
|
|
108
58
|
}
|
|
109
59
|
export function createWorkspaceStore(stateDir) {
|
|
110
60
|
return new SqliteWorkspaceStore(stateDir);
|
|
@@ -79,11 +79,17 @@ new context during later tool calls.
|
|
|
79
79
|
|
|
80
80
|
Skills are enabled by default for coding-agent workflows.
|
|
81
81
|
|
|
82
|
-
DevSpace discovers
|
|
82
|
+
DevSpace discovers standard Agent Skills from:
|
|
83
83
|
|
|
84
|
-
-
|
|
85
|
-
- project `.
|
|
86
|
-
|
|
84
|
+
- `~/.agents/skills`
|
|
85
|
+
- project `.agents/skills`
|
|
86
|
+
|
|
87
|
+
It also keeps compatibility with:
|
|
88
|
+
|
|
89
|
+
- `DEVSPACE_AGENT_DIR/skills`, defaulting to `~/.codex/skills`
|
|
90
|
+
- additional paths from `DEVSPACE_SKILL_PATHS`
|
|
91
|
+
|
|
92
|
+
Legacy project paths such as `.pi/skills` can be added through `DEVSPACE_SKILL_PATHS` when needed.
|
|
87
93
|
|
|
88
94
|
When `open_workspace` returns matching skills, the model should read the
|
|
89
95
|
advertised `SKILL.md` before following that skill.
|
|
@@ -119,6 +125,20 @@ Legacy names are available with `DEVSPACE_TOOL_NAMING=legacy`:
|
|
|
119
125
|
|
|
120
126
|
Use `DEVSPACE_TOOL_MODE=full` to restore dedicated search and directory tools.
|
|
121
127
|
|
|
128
|
+
The experimental Codex-style surface is enabled with
|
|
129
|
+
`DEVSPACE_TOOL_MODE=codex`. It exposes:
|
|
130
|
+
|
|
131
|
+
- `open_workspace`
|
|
132
|
+
- `read`
|
|
133
|
+
- `apply_patch`
|
|
134
|
+
- `exec_command`
|
|
135
|
+
- `write_stdin`
|
|
136
|
+
|
|
137
|
+
In this mode, `write`, `edit`, `bash`, `grep`, `glob`, and `ls` are not
|
|
138
|
+
registered. `exec_command` returns a process session ID when a command is still
|
|
139
|
+
running after its yield window. Use `write_stdin` to poll it, send input, resize
|
|
140
|
+
a PTY, or send Ctrl-C. Set `tty: true` only for commands that need a terminal.
|
|
141
|
+
|
|
122
142
|
## Show Changes
|
|
123
143
|
|
|
124
144
|
By default, `DEVSPACE_WIDGETS=full`.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Codex Tool Mode Manual QA
|
|
2
|
+
|
|
3
|
+
Run these checks against a disposable Git repository inside an allowed DevSpace
|
|
4
|
+
root. Keep the DevSpace server logs visible during the test.
|
|
5
|
+
|
|
6
|
+
## Setup
|
|
7
|
+
|
|
8
|
+
1. Build the current branch with `npm ci && npm run build`.
|
|
9
|
+
2. Start DevSpace with `DEVSPACE_TOOL_MODE=codex devspace serve`.
|
|
10
|
+
3. Connect or refresh the DevSpace connector in ChatGPT.
|
|
11
|
+
4. Open the disposable repository with `open_workspace`.
|
|
12
|
+
5. Confirm the core tools are `open_workspace`, `read`, `apply_patch`,
|
|
13
|
+
`exec_command`, and `write_stdin`.
|
|
14
|
+
6. Confirm `write`, `edit`, `bash`, `grep`, `glob`, and `ls` are absent.
|
|
15
|
+
7. If `DEVSPACE_WIDGETS=changes`, also expect `show_changes`.
|
|
16
|
+
|
|
17
|
+
## Apply Patch
|
|
18
|
+
|
|
19
|
+
1. Add a text file containing multiple lines and a blank line.
|
|
20
|
+
2. Update two separate regions of that file in one patch.
|
|
21
|
+
3. Create a nested file, rename it, and then delete it.
|
|
22
|
+
4. Patch an existing CRLF file and verify it remains CRLF.
|
|
23
|
+
5. Verify executable permissions survive an update and a move.
|
|
24
|
+
6. Try to add `../outside.txt`; confirm the tool rejects the path.
|
|
25
|
+
7. Patch through a symlink targeting an external directory; confirm rejection.
|
|
26
|
+
8. Submit a hunk whose context is absent; confirm no file from that patch changes.
|
|
27
|
+
9. With changes widgets enabled, inspect the aggregate diff.
|
|
28
|
+
|
|
29
|
+
## Foreground Commands
|
|
30
|
+
|
|
31
|
+
1. Run `pwd` and confirm it reports the opened workspace.
|
|
32
|
+
2. Run a command in a relative `workingDirectory` and confirm the directory.
|
|
33
|
+
3. Write to stdout and stderr; confirm both appear.
|
|
34
|
+
4. Exit nonzero; confirm `running=false` and the exit code.
|
|
35
|
+
5. Use a small output budget on a noisy command; confirm truncation is reported.
|
|
36
|
+
|
|
37
|
+
## Background Sessions
|
|
38
|
+
|
|
39
|
+
1. Start a delayed command with a short yield time.
|
|
40
|
+
2. Confirm `exec_command` returns `running=true` and a `sessionId`.
|
|
41
|
+
3. Poll with empty `chars`; confirm output is not duplicated.
|
|
42
|
+
4. Poll until completion; confirm the final exit code and no `sessionId`.
|
|
43
|
+
5. Poll the completed session again; confirm it is unknown.
|
|
44
|
+
6. Reconnect MCP without restarting DevSpace and confirm polling still works.
|
|
45
|
+
7. Restart DevSpace and confirm old process session IDs are invalid.
|
|
46
|
+
|
|
47
|
+
## Input, Interrupt, And PTY
|
|
48
|
+
|
|
49
|
+
1. Start a program that reads stdin without a PTY and send it a line.
|
|
50
|
+
2. Start a long-running process and send `\u0003`; confirm it stops.
|
|
51
|
+
3. Start an interactive program with `tty=true`; confirm it detects a TTY.
|
|
52
|
+
4. Resize a PTY from 80x24 to 120x30 and verify the observed dimensions.
|
|
53
|
+
5. Omit optional dependencies; normal commands must work and `tty=true` must
|
|
54
|
+
return the explicit `node-pty` error.
|
|
55
|
+
|
|
56
|
+
## Cleanup
|
|
57
|
+
|
|
58
|
+
1. Start a non-PTY command that creates a long-running child process.
|
|
59
|
+
2. Stop DevSpace with SIGINT and verify both shell and child exit.
|
|
60
|
+
3. Repeat with a PTY command.
|
|
61
|
+
4. Confirm no process remains after server exit.
|
|
62
|
+
5. Repeat session cycles and check that memory use does not steadily increase.
|
|
63
|
+
|
|
64
|
+
## Existing Mode Regression
|
|
65
|
+
|
|
66
|
+
1. Start without `DEVSPACE_TOOL_MODE`; confirm `minimal` remains the default.
|
|
67
|
+
2. Minimal must expose `read`, `write`, `edit`, and `bash`, but not Codex tools
|
|
68
|
+
or dedicated search tools.
|
|
69
|
+
3. `DEVSPACE_TOOL_MODE=full` must add `grep`, `glob`, and `ls`.
|
|
70
|
+
4. With no explicit mode, `DEVSPACE_MINIMAL_TOOLS=1` maps to minimal and `0`
|
|
71
|
+
maps to full.
|
|
72
|
+
5. Set `DEVSPACE_TOOL_MODE=codex` with `DEVSPACE_MINIMAL_TOOLS=0`; confirm the
|
|
73
|
+
explicit Codex mode wins.
|
package/docs/configuration.md
CHANGED
|
@@ -70,8 +70,19 @@ MCP clients discover metadata from:
|
|
|
70
70
|
|
|
71
71
|
| Value | Behavior |
|
|
72
72
|
| --- | --- |
|
|
73
|
-
| `minimal` | Default.
|
|
74
|
-
| `full` |
|
|
73
|
+
| `minimal` | Default. Exposes `open_workspace`, `read`, `write`, `edit`, and `bash`. Clients use `bash` with tools such as `rg`, `find`, and `ls` for inspection. |
|
|
74
|
+
| `full` | Exposes the minimal tools plus dedicated `grep`, `glob`, and `ls` tools. |
|
|
75
|
+
| `codex` | Experimental. Exposes `open_workspace`, `read`, `apply_patch`, `exec_command`, and `write_stdin`. Existing mutation and shell tools are hidden. |
|
|
76
|
+
|
|
77
|
+
`DEVSPACE_MINIMAL_TOOLS` remains a backward-compatible alias when
|
|
78
|
+
`DEVSPACE_TOOL_MODE` is unset: `1` selects `minimal` and `0` selects `full`.
|
|
79
|
+
The `codex` mode must be selected through `DEVSPACE_TOOL_MODE` and always uses
|
|
80
|
+
its fixed short tool names regardless of `DEVSPACE_TOOL_NAMING`.
|
|
81
|
+
|
|
82
|
+
Codex-mode commands run without a PTY by default. Set `tty: true` on
|
|
83
|
+
`exec_command` for interactive terminal programs. PTY support uses the optional
|
|
84
|
+
`node-pty` dependency; `write_stdin` can send input, poll output, and resize PTY
|
|
85
|
+
sessions.
|
|
75
86
|
|
|
76
87
|
## Widgets
|
|
77
88
|
|
|
@@ -88,13 +99,25 @@ MCP clients discover metadata from:
|
|
|
88
99
|
| Variable | Purpose |
|
|
89
100
|
| --- | --- |
|
|
90
101
|
| `DEVSPACE_SKILLS` | Set to `0` to hide skills. Enabled by default. |
|
|
91
|
-
| `DEVSPACE_AGENT_DIR` | Defaults to `~/.codex
|
|
92
|
-
| `DEVSPACE_SKILL_PATHS` | Optional comma-separated skill directories. |
|
|
102
|
+
| `DEVSPACE_AGENT_DIR` | Defaults to `~/.codex`; its `skills` child is loaded for compatibility. |
|
|
103
|
+
| `DEVSPACE_SKILL_PATHS` | Optional comma-separated additional skill directories. |
|
|
104
|
+
|
|
105
|
+
DevSpace discovers standard Agent Skills from:
|
|
106
|
+
|
|
107
|
+
- `~/.agents/skills`
|
|
108
|
+
- project `.agents/skills`
|
|
109
|
+
|
|
110
|
+
It also keeps compatibility with:
|
|
111
|
+
|
|
112
|
+
- `DEVSPACE_AGENT_DIR/skills`, defaulting to `~/.codex/skills`
|
|
113
|
+
- additional paths from `DEVSPACE_SKILL_PATHS`
|
|
114
|
+
|
|
115
|
+
Legacy project paths such as `.pi/skills` can be added through `DEVSPACE_SKILL_PATHS` when needed.
|
|
93
116
|
|
|
94
117
|
Example:
|
|
95
118
|
|
|
96
119
|
```bash
|
|
97
|
-
DEVSPACE_SKILL_PATHS="$HOME/.
|
|
120
|
+
DEVSPACE_SKILL_PATHS="$HOME/.claude/skills,$HOME/company/skills" \
|
|
98
121
|
npx @waishnav/devspace serve
|
|
99
122
|
```
|
|
100
123
|
|
package/docs/gotchas.md
CHANGED
|
@@ -15,7 +15,7 @@ If you installed globally, confirm npm's global bin directory is on `PATH`.
|
|
|
15
15
|
|
|
16
16
|
## Unsupported Node Version
|
|
17
17
|
|
|
18
|
-
DevSpace requires Node `>=
|
|
18
|
+
DevSpace requires Node `>=22.19 <27`.
|
|
19
19
|
|
|
20
20
|
Check:
|
|
21
21
|
|
|
@@ -193,11 +193,17 @@ Skills are enabled by default. Check:
|
|
|
193
193
|
DEVSPACE_SKILLS=1 npx @waishnav/devspace serve
|
|
194
194
|
```
|
|
195
195
|
|
|
196
|
-
DevSpace looks in:
|
|
196
|
+
DevSpace looks in standard Agent Skills locations:
|
|
197
197
|
|
|
198
|
-
-
|
|
199
|
-
- project `.
|
|
200
|
-
|
|
198
|
+
- `~/.agents/skills`
|
|
199
|
+
- project `.agents/skills`
|
|
200
|
+
|
|
201
|
+
It also checks compatibility and custom paths:
|
|
202
|
+
|
|
203
|
+
- `DEVSPACE_AGENT_DIR/skills`, defaulting to `~/.codex/skills`
|
|
204
|
+
- additional paths from `DEVSPACE_SKILL_PATHS`
|
|
205
|
+
|
|
206
|
+
Legacy project paths such as `.pi/skills` can be added through `DEVSPACE_SKILL_PATHS` when needed.
|
|
201
207
|
|
|
202
208
|
If a skill appears in `open_workspace`, the model must read that skill's
|
|
203
209
|
`SKILL.md` before reading other files inside the skill directory.
|
package/docs/setup.md
CHANGED
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@waishnav/devspace",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
4
|
"description": "Expose a secure local coding workspace through an MCP server.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/server.js",
|
|
7
7
|
"engines": {
|
|
8
|
-
"node": ">=
|
|
8
|
+
"node": ">=22.19 <27"
|
|
9
9
|
},
|
|
10
10
|
"bin": {
|
|
11
11
|
"devspace": "dist/cli.js"
|
|
@@ -24,8 +24,9 @@
|
|
|
24
24
|
"build": "npm run clean && npm run build:app && tsc -p tsconfig.build.json",
|
|
25
25
|
"build:app": "vite build",
|
|
26
26
|
"dev": "node scripts/dev-server.mjs",
|
|
27
|
+
"postinstall": "node scripts/fix-node-pty-permissions.mjs",
|
|
27
28
|
"start": "node dist/cli.js serve",
|
|
28
|
-
"test": "tsx src/config.test.ts && tsx src/roots.test.ts && tsx src/skills.test.ts && tsx src/workspaces.test.ts && tsx src/review-checkpoints.test.ts",
|
|
29
|
+
"test": "tsx src/config.test.ts && tsx src/ui/card-types.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/roots.test.ts && tsx src/skills.test.ts && tsx src/workspaces.test.ts && tsx src/review-checkpoints.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts",
|
|
29
30
|
"typecheck": "tsc -p tsconfig.json --noEmit"
|
|
30
31
|
},
|
|
31
32
|
"keywords": [],
|
|
@@ -33,7 +34,7 @@
|
|
|
33
34
|
"license": "MIT",
|
|
34
35
|
"dependencies": {
|
|
35
36
|
"@clack/prompts": "^1.5.1",
|
|
36
|
-
"@earendil-works/pi-coding-agent": "^0.
|
|
37
|
+
"@earendil-works/pi-coding-agent": "^0.80.1",
|
|
37
38
|
"@modelcontextprotocol/ext-apps": "^1.7.2",
|
|
38
39
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
39
40
|
"@pierre/diffs": "^1.2.5",
|
|
@@ -59,6 +60,10 @@
|
|
|
59
60
|
},
|
|
60
61
|
"overrides": {
|
|
61
62
|
"protobufjs": "7.6.4",
|
|
62
|
-
"ws": "8.21.0"
|
|
63
|
+
"ws": "8.21.0",
|
|
64
|
+
"undici": "8.5.0"
|
|
65
|
+
},
|
|
66
|
+
"optionalDependencies": {
|
|
67
|
+
"node-pty": "^1.1.0"
|
|
63
68
|
}
|
|
64
69
|
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { chmod } from "node:fs/promises";
|
|
2
|
+
import { dirname, resolve } from "node:path";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
|
|
5
|
+
if (process.platform === "darwin") {
|
|
6
|
+
const projectRoot = resolve(dirname(fileURLToPath(import.meta.url)), "..");
|
|
7
|
+
for (const architecture of ["arm64", "x64"]) {
|
|
8
|
+
const helper = resolve(
|
|
9
|
+
projectRoot,
|
|
10
|
+
"node_modules",
|
|
11
|
+
"node-pty",
|
|
12
|
+
"prebuilds",
|
|
13
|
+
`darwin-${architecture}`,
|
|
14
|
+
"spawn-helper",
|
|
15
|
+
);
|
|
16
|
+
try {
|
|
17
|
+
await chmod(helper, 0o755);
|
|
18
|
+
} catch (error) {
|
|
19
|
+
if (error.code !== "ENOENT") throw error;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:var(--font-sans,ui-sans-serif, system-ui, sans-serif);color:var(--color-text-primary,#f5f5f6);background:0 0}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}*{box-sizing:border-box}html,body{background:0 0;margin:0;overflow:hidden}.shell{width:100%;padding:0;overflow:hidden}.empty,.tool-card{border:1px solid color-mix(in srgb, var(--color-border-primary,#3a3a40) 86%, transparent);background:color-mix(in srgb, var(--color-background-secondary,#28282d) 92%, transparent);width:100%;box-shadow:none;color:var(--color-text-primary,#f5f5f6);border-radius:8px}.empty{color:var(--color-text-secondary,#b6b6bd);font-size:var(--font-text-sm-size,13px);padding:14px 16px}.tool-header{width:100%;min-height:64px;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:8px;grid-template-columns:38px minmax(0,1fr) auto 28px;align-items:center;gap:12px;padding:10px 12px 10px 14px;display:grid}.tool-header:hover:not(:disabled){background:color-mix(in srgb, var(--color-background-tertiary,#333338) 72%, transparent)}.tool-header:disabled{cursor:default}.tool-icon{border:1px solid color-mix(in srgb, var(--color-border-primary,#3a3a40) 55%, transparent);background:linear-gradient(180deg, color-mix(in srgb, var(--color-background-tertiary,#3a3a42) 72%, transparent), color-mix(in srgb, var(--color-background-primary,#17181c) 90%, transparent));width:38px;height:38px;color:var(--color-text-primary,#f5f5f6);border-radius:8px;place-items:center;display:grid}.icon-svg{width:19px;height:19px;display:block}.tool-main{gap:3px;min-width:0;display:grid}.tool-title{color:var(--color-text-primary,#f5f5f6);font-size:var(--font-text-sm-size,13px);font-weight:600}.tool-label{color:var(--color-text-secondary,#d6d6dc);font-family:var(--font-mono,ui-monospace, SFMono-Regular, monospace);font-size:var(--font-text-sm-size,14px);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.stats{font-family:var(--font-mono,ui-monospace, SFMono-Regular, monospace);font-size:var(--font-text-sm-size,13px);white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.badge-group{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.badge{border:1px solid color-mix(in srgb, var(--color-border-primary,#3a3a40) 80%, transparent);background:color-mix(in srgb, var(--color-background-primary,#17181c) 42%, transparent);min-height:24px;color:var(--color-text-secondary,#d6d6dc);font-family:var(--font-mono,ui-monospace, SFMono-Regular, monospace);font-size:var(--font-text-sm-size,12px);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:0 9px;display:inline-flex}.badge.success{border-color:color-mix(in srgb, var(--color-success-text,#6fda83) 44%, var(--color-border-primary,#3a3a40));color:var(--color-success-text,#6fda83)}.badge.muted{color:var(--color-text-tertiary,#a3a3aa)}.badge-icon{flex:none;width:13px;height:13px;display:block}.add{color:var(--color-success-text,#6fda83)}.remove{color:var(--color-danger-text,#ee7676)}.chevron{width:28px;height:28px;color:var(--color-text-tertiary,#a3a3aa);border-radius:7px;place-items:center;transition:background .14s,color .14s,transform .14s;display:grid}.tool-header:hover:not(:disabled) .chevron{background:color-mix(in srgb, var(--color-background-primary,#17181c) 58%, transparent);color:var(--color-text-primary,#f5f5f6)}.chevron .icon-svg{width:16px;height:16px}.chevron.expanded{transform:rotate(180deg)}.tool-body{border-top:1px solid var(--color-border-primary,#3a3a40);background:var(--color-background-primary,#18191d)}.review-header{grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:58px;padding:10px 12px 8px 14px;display:grid}.review-title-group{gap:3px;min-width:0;display:grid}.review-summary{border-top:1px solid var(--color-border-primary,#3a3a40);background:var(--color-background-primary,#18191d);display:grid}.review-actions,.review-diff-file-stats{align-items:center;gap:8px;display:flex}.review-empty{color:var(--color-text-secondary,#b7b7bf);font-size:var(--font-text-sm-size,13px)}.review-actions{border-top:1px solid color-mix(in srgb, var(--color-border-primary,#3a3a40) 72%, transparent);justify-content:flex-end;padding:10px 14px}.review-action{border:1px solid color-mix(in srgb, var(--color-border-primary,#3a3a40) 80%, transparent);background:color-mix(in srgb, var(--color-background-primary,#17181c) 36%, transparent);min-height:26px;color:var(--color-text-secondary,#d6d6dc);cursor:pointer;font:inherit;font-size:var(--font-text-sm-size,12px);border-radius:7px;padding:0 9px}.review-action:hover{background:color-mix(in srgb, var(--color-background-tertiary,#333338) 80%, transparent);color:var(--color-text-primary,#f5f5f6)}.review-diff{gap:8px;max-height:520px;padding:0 0 12px;display:grid;overflow:auto}.review-diff-files{gap:8px;padding:12px 14px 0;display:grid}.review-diff-file{border:1px solid color-mix(in srgb, var(--color-border-primary,#3a3a40) 80%, transparent);border-radius:8px;overflow:hidden}.review-diff-file-header{background:color-mix(in srgb, var(--color-background-secondary,#28282d) 88%, transparent);width:100%;min-height:34px;color:var(--color-text-primary,#f5f5f6);cursor:pointer;font:inherit;text-align:left;border:0;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:7px 10px;display:grid}.review-diff-file-header:hover{background:color-mix(in srgb, var(--color-background-tertiary,#333338) 84%, transparent)}.review-diff-file-name,.review-diff-file-stats{font-family:var(--font-mono,ui-monospace, SFMono-Regular, monospace);font-size:var(--font-text-sm-size,12px);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.review-diff-file-stats{justify-content:flex-end;overflow:visible}.status{font-size:var(--font-text-sm-size,13px);padding:12px 14px}.status.muted{color:var(--color-text-secondary,#b7b7bf)}.status.error{color:var(--color-danger-text,#ee7676)}.pierre-diff,.pierre-file{--diffs-bg:var(--tool-payload-bg,var(--color-background-primary,#101114));--diffs-light-bg:var(--color-background-primary,#fff);--diffs-dark-bg:var(--tool-payload-bg,var(--color-background-primary,#101114));--diffs-font-family:var(--font-mono,ui-monospace, SFMono-Regular, monospace);--diffs-header-font-family:var(--font-sans,ui-sans-serif, system-ui, sans-serif);--diffs-font-size:var(--font-text-sm-size,12px);--diffs-line-height:20px;border-bottom-right-radius:8px;border-bottom-left-radius:8px;max-height:420px;display:block;overflow:auto}.text-payload{max-height:420px;color:var(--color-text-secondary,#d6d6dc);font-family:var(--font-mono,ui-monospace, SFMono-Regular, monospace);font-size:var(--font-text-sm-size,12px);white-space:pre-wrap;word-break:break-word;margin:0;padding:12px 14px;line-height:1.55;overflow:auto}.text-payload.run_shell,.text-payload.bash{color:var(--color-text-primary,#f5f5f6);background:var(--color-background-primary,#101114)}@media (width<=520px){.tool-header{grid-template-columns:32px minmax(0,1fr) auto 18px;gap:8px;padding:8px}.tool-icon{width:32px;height:32px}}
|