kimiflare 0.88.0 → 0.88.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -16006,7 +16006,7 @@ var init_builtins = __esm({
16006
16006
  { name: "mode", argHint: "edit|plan|auto|multi-agent-experimental", description: "Switch agent mode", source: "builtin" },
16007
16007
  { name: "multi-agent", argHint: "[enable|disable|status|setup]", description: "Configure multi-agent (endpoint, auto-implement, set up)", source: "builtin" },
16008
16008
  { name: "theme", argHint: "[<name>]", description: "Switch color theme", source: "builtin" },
16009
- { name: "ui", argHint: "ink|camouflage", description: "Switch UI engine (takes effect on next launch)", source: "builtin" },
16009
+ { name: "ui", argHint: "ink", description: "Switch UI engine to React Ink (takes effect on next launch). Camouflage is opt-in via --ui camouflage.", source: "builtin" },
16010
16010
  { name: "plan", description: "Switch to plan mode", source: "builtin" },
16011
16011
  { name: "auto", description: "Switch to auto mode", source: "builtin" },
16012
16012
  { name: "edit", description: "Switch to edit mode", source: "builtin" },
@@ -20656,7 +20656,7 @@ Executor opened PR: ${prUrl}` : plan });
20656
20656
  {
20657
20657
  value: "camouflage",
20658
20658
  label: "Camouflage",
20659
- description: "experimental Rust TUI \u2014 bail with `kimiflare --ui ink`"
20659
+ description: "experimental \u2014 opt in with `kimiflare --ui camouflage`"
20660
20660
  }
20661
20661
  ],
20662
20662
  default: current,
@@ -20676,6 +20676,14 @@ Executor opened PR: ${prUrl}` : plan });
20676
20676
  });
20677
20677
  return true;
20678
20678
  }
20679
+ if (nextUi === "camouflage") {
20680
+ cam.send("ShowToast", {
20681
+ text: "Camouflage is experimental and must be opted into explicitly. Launch with `kimiflare --ui camouflage` or set `KIMIFLARE_UI=camouflage`.",
20682
+ kind: "error",
20683
+ ttl_ms: 12e3
20684
+ });
20685
+ return true;
20686
+ }
20679
20687
  try {
20680
20688
  const existing = await loadConfig() ?? null;
20681
20689
  if (existing) {
@@ -20690,7 +20698,7 @@ Executor opened PR: ${prUrl}` : plan });
20690
20698
  return true;
20691
20699
  }
20692
20700
  cam.send("ShowToast", {
20693
- text: `UI engine set to "${nextUi}". RESTART kimiflare for it to take effect.` + (nextUi === "ink" ? " (or `unset KIMIFLARE_UI` if you previously exported it)" : " (Camouflage is EXPERIMENTAL \u2014 `kimiflare --ui ink` to bail.)"),
20701
+ text: `UI engine set to "${nextUi}". RESTART kimiflare for it to take effect. (or \`unset KIMIFLARE_UI\` if you previously exported it)`,
20694
20702
  kind: "error",
20695
20703
  ttl_ms: 12e3
20696
20704
  });
@@ -28598,7 +28606,7 @@ function UiPicker({ current, onPick }) {
28598
28606
  {
28599
28607
  label: "Camouflage",
28600
28608
  value: "camouflage",
28601
- description: "experimental Rust TUI \u2014 bail with `kimiflare --ui ink`"
28609
+ description: "experimental \u2014 opt in with `kimiflare --ui camouflage`"
28602
28610
  },
28603
28611
  { label: "< Back", value: "__back__", description: "" }
28604
28612
  ];
@@ -31976,6 +31984,17 @@ var init_slash_commands = __esm({
31976
31984
  return true;
31977
31985
  }
31978
31986
  const next = arg;
31987
+ if (next === "camouflage") {
31988
+ setEvents((e) => [
31989
+ ...e,
31990
+ {
31991
+ kind: "error",
31992
+ key: mkKey2(),
31993
+ text: "Camouflage is experimental and must be opted into explicitly. Launch with `kimiflare --ui camouflage` or set `KIMIFLARE_UI=camouflage`."
31994
+ }
31995
+ ]);
31996
+ return true;
31997
+ }
31979
31998
  ctx.setCfg((prev) => {
31980
31999
  if (!prev) return prev;
31981
32000
  const updated = { ...prev, uiEngine: next };
@@ -31988,7 +32007,7 @@ var init_slash_commands = __esm({
31988
32007
  {
31989
32008
  kind: "error",
31990
32009
  key: mkKey2(),
31991
- text: `UI engine set to "${next}". RESTART kimiflare for it to take effect.` + (next === "camouflage" ? " (Camouflage is EXPERIMENTAL \u2014 `kimiflare --ui ink` or `unset KIMIFLARE_UI` to bail.)" : "")
32010
+ text: `UI engine set to "${next}". RESTART kimiflare for it to take effect.`
31992
32011
  }
31993
32012
  ]);
31994
32013
  return true;
@@ -34639,6 +34658,17 @@ ${wcagWarnings.join("\n")}` }
34639
34658
  (picked) => {
34640
34659
  setShowUiPicker(false);
34641
34660
  if (!picked) return;
34661
+ if (picked === "camouflage") {
34662
+ setEvents((e) => [
34663
+ ...e,
34664
+ {
34665
+ kind: "error",
34666
+ key: mkKey(),
34667
+ text: "Camouflage is experimental and must be opted into explicitly. Launch with `kimiflare --ui camouflage` or set `KIMIFLARE_UI=camouflage`."
34668
+ }
34669
+ ]);
34670
+ return;
34671
+ }
34642
34672
  setCfg((c) => {
34643
34673
  if (!c) return c;
34644
34674
  const updated = { ...c, uiEngine: picked };
@@ -34651,7 +34681,7 @@ ${wcagWarnings.join("\n")}` }
34651
34681
  {
34652
34682
  kind: "error",
34653
34683
  key: mkKey(),
34654
- text: `UI engine set to "${picked}". RESTART kimiflare for it to take effect.` + (picked === "camouflage" ? " (Camouflage is EXPERIMENTAL \u2014 `kimiflare --ui ink` or `unset KIMIFLARE_UI` to bail.)" : "")
34684
+ text: `UI engine set to "${picked}". RESTART kimiflare for it to take effect.`
34655
34685
  }
34656
34686
  ]);
34657
34687
  },
@@ -36366,7 +36396,7 @@ function buildTextLines(version) {
36366
36396
  ` ${bold}${accent}Kimiflare${reset}`,
36367
36397
  "",
36368
36398
  ` ${dim}Terminal coding agent${reset}`,
36369
- ` ${dim}powered by Kimi-K2.6${reset}`,
36399
+ ` ${dim}powered by Kimi-K2.7${reset}`,
36370
36400
  "",
36371
36401
  ` ${dim}v${version}${reset}`,
36372
36402
  "",
@@ -36904,7 +36934,8 @@ async function main() {
36904
36934
  process.exit(2);
36905
36935
  }
36906
36936
  const logoText = renderLogo(getAppVersion());
36907
- const uiEngine = (opts.ui ?? process.env.KIMIFLARE_UI ?? cfg?.uiEngine ?? "ink").toLowerCase();
36937
+ const explicitUi = opts.ui ?? process.env.KIMIFLARE_UI;
36938
+ const uiEngine = (explicitUi ?? (cfg?.uiEngine === "ink" ? "ink" : void 0) ?? "ink").toLowerCase();
36908
36939
  if (uiEngine !== "camouflage") {
36909
36940
  console.log(logoText);
36910
36941
  }