@qwen-code/qwen-code 0.11.1 → 0.12.0-nightly.20260305.991ae9fe

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/cli.js +22 -14
  2. package/package.json +2 -2
package/cli.js CHANGED
@@ -157612,7 +157612,7 @@ __export(geminiContentGenerator_exports, {
157612
157612
  createGeminiContentGenerator: () => createGeminiContentGenerator
157613
157613
  });
157614
157614
  function createGeminiContentGenerator(config2, gcConfig) {
157615
- const version2 = "0.11.1";
157615
+ const version2 = "0.12.0-nightly.20260305.991ae9fe";
157616
157616
  const userAgent2 = config2.userAgent || `QwenCode/${version2} (${process.platform}; ${process.arch})`;
157617
157617
  const baseHeaders = {
157618
157618
  "User-Agent": userAgent2
@@ -168426,12 +168426,18 @@ function isBinary(data, sampleSize = 512) {
168426
168426
  }
168427
168427
  return false;
168428
168428
  }
168429
+ function normalizeContent(content) {
168430
+ let normalized2 = content.replace(/^\uFEFF/, "");
168431
+ normalized2 = normalized2.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
168432
+ return normalized2;
168433
+ }
168429
168434
  var init_textUtils = __esm({
168430
168435
  "packages/core/dist/src/utils/textUtils.js"() {
168431
168436
  "use strict";
168432
168437
  init_esbuild_shims();
168433
168438
  __name(safeLiteralReplace, "safeLiteralReplace");
168434
168439
  __name(isBinary, "isBinary");
168440
+ __name(normalizeContent, "normalizeContent");
168435
168441
  }
168436
168442
  });
168437
168443
 
@@ -374850,7 +374856,7 @@ __name(getPackageJson, "getPackageJson");
374850
374856
  // packages/cli/src/utils/version.ts
374851
374857
  async function getCliVersion() {
374852
374858
  const pkgJson = await getPackageJson();
374853
- return "0.11.1";
374859
+ return "0.12.0-nightly.20260305.991ae9fe";
374854
374860
  }
374855
374861
  __name(getCliVersion, "getCliVersion");
374856
374862
 
@@ -382400,7 +382406,7 @@ var formatDuration = /* @__PURE__ */ __name((milliseconds) => {
382400
382406
 
382401
382407
  // packages/cli/src/generated/git-commit.ts
382402
382408
  init_esbuild_shims();
382403
- var GIT_COMMIT_INFO = "9d8921db";
382409
+ var GIT_COMMIT_INFO = "d97382bc";
382404
382410
 
382405
382411
  // packages/cli/src/utils/systemInfo.ts
382406
382412
  async function getNpmVersion() {
@@ -384439,7 +384445,7 @@ var HTML_TEMPLATE = `<!doctype html>
384439
384445
  font-display: swap;
384440
384446
  src: url("data:font/woff2;base64,d09GMgABAAAAAALQAAwAAAAABfwAAAKBAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHCgGYABUEQgKgkSCDAsOAAE2AiQDDgQgBYRKByAb4QTIBB76Oev9JKW02x5ClpELSxHm1M0JQ+OBJAtDpAAVUQ7i///V+A/YgLVswlGo/7a+lmW3sfnUvoBFcUKzUFEnKo08S0F2T8TiAAJQieDvSGUVdW3smBv2LuCGjSpG3jQTD/m9OI5lTDomdQG1hkoMkCJu1ZYsmL42dEu7W8q5gUan/J6yyO+FX5NO5qQPxaqGnEINZ2q7kDf0+i4UigAXdiQUNMppoJnOzcxnDMwX5lXzinnJPDtkzhQFwjTx0DGrx1zkoNhIYr5LTKHjclcs+z3Frrh2ue3Kvk6bxzoRJLsIQpWcQhW27bgJwoUHYXNi2WWnVRUWaVNS0XMJ1eIUHlSX0l3l7BZOOos1ySk7NUWl6+eobG3Nfpj96g8EvukB3Qjouo4+O6svG9/0b8ZyKmfoZj9gzBqq8I2MS7Pf2JquL9vZwHJ51djyD01vbVHRDxSslvFBZwMHjQvexMxIvz3oyftul2+k9yBS+xGM+l+d+Pvo/zH5fVXMRvsHhG4u9/dRsgQyF67l9+jYgZuy+Ath2O6EUzU7E6BxF41nQk2cgkN8IIlOPKecMgWccSrE4XdaOECf00oUaeTm34EpvHhZIodEEllllBWmWcJLyQmsPjNHAousMEkijVRQR5OgNc4qq7TiZZg89pJCE/G0MM4kPuYqqIOKrQw3WmQBjVQSSLLm1H1NiGmCN21uwK/JpZRuWignd/klmbWXFEtZZIn1o8cmkaDqX5JIJgWNNqYYR9s0GsRFZhhntKJSjI+KTaFDZ+MoRllkjHWK2ADCxilLQGTkJZo4NAJMDwhAiK0CJD+jjKFRwWBapYFh5rdzfogQC/m1XLplXiEFEwAA") format("woff2");
384441
384447
  }
384442
- :root{--bg-primary: #18181b;--bg-secondary: #27272a;--text-primary: #f4f4f5;--text-secondary: #a1a1aa;--border-color: #3f3f46;--accent-color: #3b82f6}body{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;margin:0;padding:0;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased}.page-wrapper{min-height:100vh;display:flex;flex-direction:column;align-items:center}.header{width:100%;padding:16px 24px;border-bottom:1px solid var(--border-color);background-color:#18181bf2;backdrop-filter:blur(8px);position:sticky;top:0;z-index:100;display:flex;justify-content:space-between;align-items:center;box-sizing:border-box}.header-left{display:flex;align-items:center;gap:12px}.logo-icon{width:24px;height:24px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.logo-icon svg{width:100%;height:100%}.logo{display:flex;flex-direction:column;line-height:1}.logo-text{font-family:"Press Start 2P",cursive;font-weight:400;font-size:24px;letter-spacing:-.05em;position:relative;color:#fff}.logo-text-inner{background:linear-gradient(to right,#60a5fa,#a855f7);-webkit-background-clip:text;-webkit-text-fill-color:transparent;position:relative;z-index:2}.logo-text:before,.logo-text:after{content:attr(data-text);position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;background:none;-webkit-text-fill-color:transparent;-webkit-text-stroke:1px rgba(96,165,250,.3)}.logo-text:before{transform:translate(2px,2px);-webkit-text-stroke:1px rgba(168,85,247,.3)}.logo-text:after{transform:translate(4px,4px);opacity:.4}.logo-sub{font-size:11px;font-weight:600;color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;margin-top:4px}.badge{font-size:11px;padding:2px 8px;border-radius:999px;background-color:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border-color);font-weight:500}.meta{display:flex;gap:24px;font-size:13px;color:var(--text-secondary)}.meta-item{display:flex;align-items:center;gap:8px}.meta-label{color:#71717a}.chat-container{width:100%;max-width:900px;padding:40px 20px;box-sizing:border-box;flex:1}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--bg-secondary);border-radius:5px;border:2px solid var(--bg-primary)}::-webkit-scrollbar-thumb:hover{background:#52525b}@media (max-width: 768px){.chat-container{max-width:100%;padding:20px 16px}.header{padding:12px 16px;flex-direction:column;align-items:flex-start;gap:12px}.header-left{width:100%;justify-content:space-between}.meta{width:100%;flex-direction:column;gap:6px}}@media (max-width: 480px){.chat-container{padding:16px 12px}}
384448
+ :root{--bg-primary: #18181b;--bg-secondary: #27272a;--text-primary: #f4f4f5;--text-secondary: #a1a1aa;--border-color: #3f3f46;--accent-color: #3b82f6}body{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;margin:0;padding:0;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased}.page-wrapper{min-height:100vh;display:flex;flex-direction:column;align-items:center}.header{width:100%;padding:16px 24px;border-bottom:1px solid var(--border-color);background-color:#18181bf2;backdrop-filter:blur(8px);position:sticky;top:0;z-index:100;display:flex;justify-content:space-between;align-items:center;box-sizing:border-box}.header-left{display:flex;align-items:center;gap:12px}.logo-icon{width:24px;height:24px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.logo-icon svg{width:100%;height:100%}.logo{display:flex;flex-direction:column;line-height:1}.logo-text{font-family:"Press Start 2P",cursive;font-weight:400;font-size:24px;letter-spacing:-.05em;position:relative;color:#fff}.logo-text-inner{background:linear-gradient(to right,#60a5fa,#a855f7);-webkit-background-clip:text;-webkit-text-fill-color:transparent;position:relative;z-index:2}.logo-text:before,.logo-text:after{content:attr(data-text);position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;background:none;-webkit-text-fill-color:transparent;-webkit-text-stroke:1px rgba(96,165,250,.3)}.logo-text:before{transform:translate(2px,2px);-webkit-text-stroke:1px rgba(168,85,247,.3)}.logo-text:after{transform:translate(4px,4px);opacity:.4}.logo-sub{font-size:11px;font-weight:600;color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;margin-top:4px}.badge{font-size:11px;padding:2px 8px;border-radius:999px;background-color:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border-color);font-weight:500}.meta{display:flex;gap:24px;font-size:13px;color:var(--text-secondary)}.meta-item{display:flex;align-items:center;gap:8px}.meta-label{color:#71717a}.chat-container{width:100%;max-width:900px;padding:40px 20px;box-sizing:border-box;flex:1}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--bg-secondary);border-radius:5px;border:2px solid var(--bg-primary)}::-webkit-scrollbar-thumb:hover{background:#52525b}@media (max-width: 768px){.chat-container{max-width:100%;padding:20px 16px}.header{padding:12px 16px;flex-direction:column;align-items:flex-start;gap:12px}.header-left{width:100%;justify-content:space-between}.meta{width:100%;flex-direction:column;gap:6px}}@media (max-width: 480px){.chat-container{padding:16px 12px}}.modal-overlay{position:fixed;inset:0;z-index:1000;background-color:#0009;display:flex;align-items:center;justify-content:center;padding:24px}.modal-container{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;width:100%;max-width:800px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 25px 50px -12px #00000080}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border-color);flex-shrink:0}.modal-title{font-size:13px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-close{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:16px;padding:4px 8px;border-radius:6px;line-height:1;transition:background-color .15s,color .15s}.modal-close:hover{background-color:var(--border-color);color:var(--text-primary)}.modal-content{margin:0;padding:16px;overflow:auto;font-size:13px;line-height:1.6;color:var(--text-primary);white-space:pre-wrap;word-break:break-word}
384443
384449
  </style>
384444
384450
  </head>
384445
384451
  <body>
@@ -384447,13 +384453,13 @@ var HTML_TEMPLATE = `<!doctype html>
384447
384453
 
384448
384454
  <script id="chat-data" type="application/json"></script>
384449
384455
  <script>
384450
- (()=>{var a=\`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 141.38 140">
384456
+ (()=>{var s=\`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 141.38 140">
384451
384457
  <path
384452
384458
  fill="#000000"
384453
384459
  d="m140.93 85-16.35-28.33-1.93-3.34 8.66-15a3.323 3.323 0 0 0 0-3.34l-9.62-16.67c-.3-.51-.72-.93-1.22-1.22s-1.07-.45-1.67-.45H82.23l-8.66-15a3.33 3.33 0 0 0-2.89-1.67H51.43c-.59 0-1.17.16-1.66.45-.5.29-.92.71-1.22 1.22L32.19 29.98l-1.92 3.33H12.96c-.59 0-1.17.16-1.66.45-.5.29-.93.71-1.22 1.22L.45 51.66a3.323 3.323 0 0 0 0 3.34l18.28 31.67-8.66 15a3.32 3.32 0 0 0 0 3.34l9.62 16.67c.3.51.72.93 1.22 1.22s1.07.45 1.67.45h36.56l8.66 15a3.35 3.35 0 0 0 2.89 1.67h19.25a3.34 3.34 0 0 0 2.89-1.67l18.28-31.67h17.32c.6 0 1.17-.16 1.67-.45s.92-.71 1.22-1.22l9.62-16.67a3.323 3.323 0 0 0 0-3.34ZM51.44 3.33 61.07 20l-9.63 16.66h76.98l-9.62 16.66H45.67l-11.54-20zM57.21 120H22.58l9.63-16.67h19.25l-38.5-66.67h19.25l9.62 16.67L68.78 100l-11.55 20Zm61.59-33.34-9.62-16.67-38.49 66.67-9.63-16.67 9.63-16.66 26.94-46.67h23.1l17.32 30z"
384454
384460
  />
384455
384461
  </svg>
384456
- \`;var c=window.ReactDOM,{ChatViewer:p,PlatformProvider:g}=QwenCodeWebUI,m=a?a.replace(/<svg([^>]*)>/,'<svg$1><defs><linearGradient id="qwen-logo-gradient" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="#60a5fa" /><stop offset="100%" stop-color="#a855f7" /></linearGradient></defs>').replace(/fill="[^"]*"/,'fill="url(#qwen-logo-gradient)"'):a,f={platform:"web",postMessage:e=>{console.log("Posted message:",e)},onMessage:e=>(window.addEventListener("message",e),()=>window.removeEventListener("message",e)),openFile:e=>{console.log("Opening file:",e)},getResourceUrl:()=>{},features:{canOpenFile:!1,canCopy:!0}},x=e=>!!e&&typeof e=="object",h=()=>{let e=document.getElementById("chat-data");if(!(e!=null&&e.textContent))return{};try{let t=JSON.parse(e.textContent);return t&&typeof t=="object"?t:{}}catch(t){return console.error("Failed to parse chat data.",t),{}}},b=e=>{if(!e)return"-";try{return new Date(e).toLocaleString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}catch(t){return e}},u=()=>{var o;let e=h(),n=(Array.isArray(e.messages)?e.messages:[]).filter(x).filter(l=>l.type!=="system"),s=(o=e.sessionId)!=null?o:"-",i=b(e.startTime);return React.createElement("div",{className:"page-wrapper"},React.createElement("header",{className:"header"},React.createElement("div",{className:"header-left"},React.createElement("div",{className:"logo-icon","aria-hidden":"true",dangerouslySetInnerHTML:{__html:m}}),React.createElement("div",{className:"logo"},React.createElement("div",{className:"logo-text","data-text":"QWEN"},React.createElement("span",{className:"logo-text-inner"},"QWEN")))),React.createElement("div",{className:"meta"},React.createElement("div",{className:"meta-item"},React.createElement("span",{className:"meta-label"},"Session Id"),React.createElement("span",{className:"font-mono"},s)),React.createElement("div",{className:"meta-item"},React.createElement("span",{className:"meta-label"},"Export Time"),React.createElement("span",null,i)))),React.createElement("div",{className:"chat-container"},React.createElement(g,{value:f},React.createElement(p,{messages:n,autoScroll:!1,theme:"dark"}))))},r=document.getElementById("app");r?c.createRoot(r).render(React.createElement(u,null)):console.error("App container not found.");})();;
384462
+ \`;var r=window.React,c=({state:e,onClose:t})=>(r.useEffect(()=>{if(e.visible){let n=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=n}}},[e.visible]),e.visible?r.createElement("div",{className:"modal-overlay",onClick:t},r.createElement("div",{className:"modal-container",onClick:n=>n.stopPropagation()},r.createElement("div",{className:"modal-header"},r.createElement("span",{className:"modal-title font-mono"},e.fileName),r.createElement("button",{className:"modal-close",onClick:t,"aria-label":"Close"},"\\u2715")),r.createElement("pre",{className:"modal-content"},e.content))):null),p=()=>{let[e,t]=r.useState({visible:!1,content:"",fileName:""}),n=r.useCallback((a,l="temp")=>{t({visible:!0,content:a,fileName:l})},[]),i=r.useCallback(()=>{t(a=>({...a,visible:!1}))},[]);return{modalState:e,openModal:n,closeModal:i}};var u=window.ReactDOM,{ChatViewer:h,PlatformProvider:v}=QwenCodeWebUI,w=s?s.replace(/<svg([^>]*)>/,'<svg$1><defs><linearGradient id="qwen-logo-gradient" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="#60a5fa" /><stop offset="100%" stop-color="#a855f7" /></linearGradient></defs>').replace(/fill="[^"]*"/,'fill="url(#qwen-logo-gradient)"'):s,o=window.React,y=()=>{let{modalState:e,openModal:t,closeModal:n}=p();return{platformContext:o.useMemo(()=>({platform:"web",postMessage:a=>{console.log("Posted message:",a)},onMessage:a=>(window.addEventListener("message",a),()=>window.removeEventListener("message",a)),openFile:a=>{console.log("Opening file:",a)},openTempFile:t,getResourceUrl:()=>{},features:{canOpenFile:!1,canOpenTempFile:!0,canCopy:!0}}),[t]),modalState:e,closeModal:n}},k=e=>!!e&&typeof e=="object",M=()=>{let e=document.getElementById("chat-data");if(!(e!=null&&e.textContent))return{};try{let t=JSON.parse(e.textContent);return t&&typeof t=="object"?t:{}}catch(t){return console.error("Failed to parse chat data.",t),{}}},C=e=>{if(!e)return"-";try{return new Date(e).toLocaleString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}catch(t){return e}},N=()=>{var d;let e=M(),n=(Array.isArray(e.messages)?e.messages:[]).filter(k).filter(f=>f.type!=="system"),i=(d=e.sessionId)!=null?d:"-",a=C(e.startTime),{platformContext:l,modalState:g,closeModal:x}=y();return o.createElement("div",{className:"page-wrapper"},o.createElement("header",{className:"header"},o.createElement("div",{className:"header-left"},o.createElement("div",{className:"logo-icon","aria-hidden":"true",dangerouslySetInnerHTML:{__html:w}}),o.createElement("div",{className:"logo"},o.createElement("div",{className:"logo-text","data-text":"QWEN"},o.createElement("span",{className:"logo-text-inner"},"QWEN")))),o.createElement("div",{className:"meta"},o.createElement("div",{className:"meta-item"},o.createElement("span",{className:"meta-label"},"Session Id"),o.createElement("span",{className:"font-mono"},i)),o.createElement("div",{className:"meta-item"},o.createElement("span",{className:"meta-label"},"Export Time"),o.createElement("span",null,a)))),o.createElement("div",{className:"chat-container"},o.createElement(v,{value:l},o.createElement(h,{messages:n,autoScroll:!1,theme:"dark"}))),o.createElement(c,{state:g,onClose:x}))},m=document.getElementById("app");m?u.createRoot(m).render(o.createElement(N,null)):console.error("App container not found.");})();;
384457
384463
  </script>
384458
384464
  </body>
384459
384465
  </html>
@@ -389439,14 +389445,15 @@ var MarkdownCommandDefSchema = external_exports.object({
389439
389445
  })
389440
389446
  });
389441
389447
  function parseMarkdownCommand(content) {
389442
- const frontmatterRegex = /^---\n([\s\S]*?)---\n([\s\S]*)$/;
389443
- const match2 = content.match(frontmatterRegex);
389448
+ const normalizedContent = normalizeContent(content);
389449
+ const frontmatterRegex = /^---\n(?:([\s\S]*?)\n)?---(?:\n|$)([\s\S]*)$/;
389450
+ const match2 = normalizedContent.match(frontmatterRegex);
389444
389451
  if (!match2) {
389445
389452
  return {
389446
- prompt: content.trim()
389453
+ prompt: normalizedContent.trim()
389447
389454
  };
389448
389455
  }
389449
- const [, frontmatterYaml, body] = match2;
389456
+ const [, frontmatterYaml = "", body] = match2;
389450
389457
  let frontmatter;
389451
389458
  if (frontmatterYaml.trim()) {
389452
389459
  try {
@@ -409014,8 +409021,8 @@ function colorizeLine(line, language, theme2) {
409014
409021
  return highlightAndRenderLine(line, language, activeTheme);
409015
409022
  }
409016
409023
  __name(colorizeLine, "colorizeLine");
409017
- function colorizeCode(code2, language, availableHeight, maxWidth, theme2, settings) {
409018
- const codeToHighlight = code2.replace(/\n$/, "");
409024
+ function colorizeCode(code2, language, availableHeight, maxWidth, theme2, settings, tabWidth = 4) {
409025
+ const codeToHighlight = code2.replace(/\n$/, "").replace(/\t/g, " ".repeat(tabWidth));
409019
409026
  const activeTheme = theme2 || themeManager.getActiveTheme();
409020
409027
  const showLineNumbers = settings?.merged.ui?.showLineNumbers ?? true;
409021
409028
  try {
@@ -409740,7 +409747,8 @@ var DiffRenderer = /* @__PURE__ */ __name(({
409740
409747
  availableTerminalHeight,
409741
409748
  contentWidth,
409742
409749
  theme2,
409743
- settings
409750
+ settings,
409751
+ tabWidth
409744
409752
  );
409745
409753
  } else {
409746
409754
  renderedOutput = renderDiffContent(
@@ -438578,7 +438586,7 @@ var GeminiAgent = class {
438578
438586
  name: APPROVAL_MODE_INFO[mode].name,
438579
438587
  description: APPROVAL_MODE_INFO[mode].description
438580
438588
  }));
438581
- const version2 = "0.11.1";
438589
+ const version2 = "0.12.0-nightly.20260305.991ae9fe";
438582
438590
  return {
438583
438591
  protocolVersion: PROTOCOL_VERSION,
438584
438592
  agentInfo: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qwen-code/qwen-code",
3
- "version": "0.11.1",
3
+ "version": "0.12.0-nightly.20260305.991ae9fe",
4
4
  "description": "Qwen Code - AI-powered coding assistant",
5
5
  "repository": {
6
6
  "type": "git",
@@ -20,7 +20,7 @@
20
20
  "locales"
21
21
  ],
22
22
  "config": {
23
- "sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.11.1"
23
+ "sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.12.0-nightly.20260305.991ae9fe"
24
24
  },
25
25
  "dependencies": {},
26
26
  "optionalDependencies": {