langcli-com 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/cli.js +43 -43
  2. package/package.json +1 -1
package/dist/cli.js CHANGED
@@ -3466,7 +3466,7 @@ var getClaudeConfigHomeDir, VERTEX_REGION_OVERRIDES;
3466
3466
  var init_envUtils = __esm(() => {
3467
3467
  init_memoize();
3468
3468
  getClaudeConfigHomeDir = memoize_default(() => {
3469
- return (process.env.CLAUDE_CONFIG_DIR ?? join(homedir(), ".foxcli")).normalize("NFC");
3469
+ return (process.env.CLAUDE_CONFIG_DIR ?? join(homedir(), ".langcli")).normalize("NFC");
3470
3470
  }, () => process.env.CLAUDE_CONFIG_DIR);
3471
3471
  VERTEX_REGION_OVERRIDES = [
3472
3472
  ["claude-haiku-4-5", "VERTEX_REGION_CLAUDE_HAIKU_4_5"],
@@ -189440,7 +189440,7 @@ function getUserAgent() {
189440
189440
  const clientApp = process.env.CLAUDE_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}` : "";
189441
189441
  const workload = getWorkload();
189442
189442
  const workloadSuffix = workload ? `, workload/${workload}` : "";
189443
- return `foxcli/${"2.1.888"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
189443
+ return `langcli/${"2.1.888"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
189444
189444
  }
189445
189445
  function getMCPUserAgent() {
189446
189446
  const parts = [];
@@ -197328,7 +197328,7 @@ var init_metadata = __esm(() => {
197328
197328
  isClaudeAiAuth: isClaudeAISubscriber(),
197329
197329
  version: "2.1.888",
197330
197330
  versionBase: getVersionBase(),
197331
- buildTime: "2026-04-10T03:30:47.565Z",
197331
+ buildTime: "2026-04-10T05:06:20.121Z",
197332
197332
  deploymentEnvironment: env4.detectDeploymentEnvironment(),
197333
197333
  ...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
197334
197334
  githubEventName: process.env.GITHUB_EVENT_NAME,
@@ -406144,7 +406144,7 @@ function IdeOnboardingDialog({
406144
406144
  }, undefined, false, undefined, this),
406145
406145
  /* @__PURE__ */ jsx_dev_runtime37.jsxDEV(ThemedText, {
406146
406146
  children: [
406147
- "Welcome to Foxcli for ",
406147
+ "Welcome to Langcli for ",
406148
406148
  ideName
406149
406149
  ]
406150
406150
  }, undefined, true, undefined, this)
@@ -406160,7 +406160,7 @@ function IdeOnboardingDialog({
406160
406160
  children: [
406161
406161
  /* @__PURE__ */ jsx_dev_runtime37.jsxDEV(ThemedText, {
406162
406162
  children: [
406163
- "• Foxcli has context of ",
406163
+ "• Langcli has context of ",
406164
406164
  /* @__PURE__ */ jsx_dev_runtime37.jsxDEV(ThemedText, {
406165
406165
  color: "suggestion",
406166
406166
  children: "⧉ open files"
@@ -406175,7 +406175,7 @@ function IdeOnboardingDialog({
406175
406175
  }, undefined, true, undefined, this),
406176
406176
  /* @__PURE__ */ jsx_dev_runtime37.jsxDEV(ThemedText, {
406177
406177
  children: [
406178
- "• Review Foxcli's changes",
406178
+ "• Review Langcli's changes",
406179
406179
  " ",
406180
406180
  /* @__PURE__ */ jsx_dev_runtime37.jsxDEV(ThemedText, {
406181
406181
  color: "diffAddedWord",
@@ -507099,7 +507099,7 @@ function ConsoleOAuthFlow({
507099
507099
  state: "success"
507100
507100
  });
507101
507101
  sendNotification({
507102
- message: "Foxcli login successful",
507102
+ message: "Langcli login successful",
507103
507103
  notificationType: "auth_success"
507104
507104
  }, terminal);
507105
507105
  }
@@ -507293,7 +507293,7 @@ function OAuthStatusMessage({
507293
507293
  children: [
507294
507294
  /* @__PURE__ */ jsx_dev_runtime60.jsxDEV(ThemedText, {
507295
507295
  bold: true,
507296
- children: startingMessage || "Welcome to Foxcli"
507296
+ children: startingMessage || "Welcome to Langcli"
507297
507297
  }, undefined, false, undefined, this),
507298
507298
  /* @__PURE__ */ jsx_dev_runtime60.jsxDEV(ThemedText, {
507299
507299
  children: "Please input langRouter api-key and press enter to continue:"
@@ -579510,7 +579510,7 @@ function getAnthropicEnvMetadata() {
579510
579510
  function getBuildAgeMinutes() {
579511
579511
  if (false)
579512
579512
  ;
579513
- const buildTime = new Date("2026-04-10T03:30:47.565Z").getTime();
579513
+ const buildTime = new Date("2026-04-10T05:06:20.121Z").getTime();
579514
579514
  if (isNaN(buildTime))
579515
579515
  return;
579516
579516
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -598475,14 +598475,14 @@ function getSteps() {
598475
598475
  return [
598476
598476
  {
598477
598477
  key: "workspace",
598478
- text: "Ask Foxcli to create a new app or clone a repository",
598478
+ text: "Ask Langcli to create a new app or clone a repository",
598479
598479
  isComplete: false,
598480
598480
  isCompletable: true,
598481
598481
  isEnabled: isWorkspaceDirEmpty
598482
598482
  },
598483
598483
  {
598484
598484
  key: "claudemd",
598485
- text: "Run /init to create a CLAUDE.md file with instructions for Foxcli",
598485
+ text: "Run /init to create a CLAUDE.md file with instructions for Langcli",
598486
598486
  isComplete: hasClaudeMd,
598487
598487
  isCompletable: true,
598488
598488
  isEnabled: !isWorkspaceDirEmpty
@@ -603119,7 +603119,7 @@ var init_feedback2 = __esm(() => {
603119
603119
  aliases: ["bug"],
603120
603120
  type: "local-jsx",
603121
603121
  name: "feedback",
603122
- description: `Submit feedback about Foxcli`,
603122
+ description: `Submit feedback about Langcli`,
603123
603123
  argumentHint: "[report]",
603124
603124
  isEnabled: () => !(isEnvTruthy(process.env.CLAUDE_CODE_USE_BEDROCK) || isEnvTruthy(process.env.CLAUDE_CODE_USE_VERTEX) || isEnvTruthy(process.env.CLAUDE_CODE_USE_FOUNDRY) || isEnvTruthy(process.env.DISABLE_FEEDBACK_COMMAND) || isEnvTruthy(process.env.DISABLE_BUG_COMMAND) || isEssentialTrafficOnly() || process.env.USER_TYPE === "ant" || !isPolicyAllowed("allow_product_feedback")),
603125
603125
  load: () => Promise.resolve().then(() => (init_feedback(), exports_feedback))
@@ -604747,7 +604747,7 @@ var init_copy2 = __esm(() => {
604747
604747
  copy = {
604748
604748
  type: "local-jsx",
604749
604749
  name: "copy",
604750
- description: "Copy Foxcli's last response to clipboard (or /copy N for the Nth-latest)",
604750
+ description: "Copy Langcli's last response to clipboard (or /copy N for the Nth-latest)",
604751
604751
  load: () => Promise.resolve().then(() => (init_copy(), exports_copy))
604752
604752
  };
604753
604753
  copy_default = copy;
@@ -606155,7 +606155,7 @@ function ModelPicker({
606155
606155
  }, undefined, false, undefined, this),
606156
606156
  /* @__PURE__ */ jsx_dev_runtime169.jsxDEV(ThemedText, {
606157
606157
  dimColor: true,
606158
- children: headerText ?? "Switch between LLM models. Applies to this session and future Foxcli sessions. For other/previous model names, specify with --model."
606158
+ children: headerText ?? "Switch between LLM models. Applies to this session and future Langcli sessions. For other/previous model names, specify with --model."
606159
606159
  }, undefined, false, undefined, this),
606160
606160
  sessionModel && /* @__PURE__ */ jsx_dev_runtime169.jsxDEV(ThemedText, {
606161
606161
  dimColor: true,
@@ -606428,7 +606428,7 @@ function ClaudeMdExternalIncludesDialog({
606428
606428
  /* @__PURE__ */ jsx_dev_runtime170.jsxDEV(ThemedText, {
606429
606429
  dimColor: true,
606430
606430
  children: [
606431
- "Important: Only use Foxcli with files you trust. Accessing untrusted files may pose security risks",
606431
+ "Important: Only use Langcli with files you trust. Accessing untrusted files may pose security risks",
606432
606432
  " ",
606433
606433
  /* @__PURE__ */ jsx_dev_runtime170.jsxDEV(Link, {
606434
606434
  url: "https://code.claude.com/docs/en/security"
@@ -612375,7 +612375,7 @@ function Doctor({ onDone }) {
612375
612375
  })();
612376
612376
  }, [toolPermissionContext, tools, agentDefinitions]);
612377
612377
  const handleDismiss = import_react122.useCallback(() => {
612378
- onDone("Foxcli diagnostics dismissed", { display: "system" });
612378
+ onDone("Langcli diagnostics dismissed", { display: "system" });
612379
612379
  }, [onDone]);
612380
612380
  useKeybindings({
612381
612381
  "confirm:yes": handleDismiss,
@@ -612861,7 +612861,7 @@ var init_doctor2 = __esm(() => {
612861
612861
  init_envUtils();
612862
612862
  doctor = {
612863
612863
  name: "doctor",
612864
- description: "Diagnose and verify your Foxcli installation and settings",
612864
+ description: "Diagnose and verify your Langcli installation and settings",
612865
612865
  isEnabled: () => !isEnvTruthy(process.env.DISABLE_DOCTOR_COMMAND),
612866
612866
  type: "local-jsx",
612867
612867
  load: () => Promise.resolve().then(() => (init_doctor(), exports_doctor))
@@ -612928,7 +612928,7 @@ function MemoryFileSelector({
612928
612928
  let description;
612929
612929
  const isGit = projectIsInGitRepo(getOriginalCwd());
612930
612930
  if (file2.type === "User" && !file2.isNested) {
612931
- description = "Saved in ~/.foxcli/CLAUDE.md";
612931
+ description = "Saved in ~/.langcli/CLAUDE.md";
612932
612932
  } else if (file2.type === "Project" && !file2.isNested && file2.path === projectMemoryPath) {
612933
612933
  description = `${isGit ? "Checked in at" : "Saved in"} ./CLAUDE.md`;
612934
612934
  } else if (file2.parent) {
@@ -613439,7 +613439,7 @@ var init_memory2 = __esm(() => {
613439
613439
  memory = {
613440
613440
  type: "local-jsx",
613441
613441
  name: "memory",
613442
- description: "Edit Foxcli memory files",
613442
+ description: "Edit Langcli memory files",
613443
613443
  load: () => Promise.resolve().then(() => (init_memory(), exports_memory))
613444
613444
  };
613445
613445
  memory_default = memory;
@@ -613735,7 +613735,7 @@ function General() {
613735
613735
  children: [
613736
613736
  /* @__PURE__ */ jsx_dev_runtime201.jsxDEV(ThemedBox_default, {
613737
613737
  children: /* @__PURE__ */ jsx_dev_runtime201.jsxDEV(ThemedText, {
613738
- children: "Foxcli understands your codebase, makes edits with your permission, and executes commands — right from your terminal."
613738
+ children: "Langcli understands your codebase, makes edits with your permission, and executes commands — right from your terminal."
613739
613739
  }, undefined, false, undefined, this)
613740
613740
  }, undefined, false, undefined, this),
613741
613741
  /* @__PURE__ */ jsx_dev_runtime201.jsxDEV(ThemedBox_default, {
@@ -613827,7 +613827,7 @@ function HelpV2({ onClose, commands }) {
613827
613827
  color: "professionalBlue",
613828
613828
  children: [
613829
613829
  /* @__PURE__ */ jsx_dev_runtime202.jsxDEV(Tabs, {
613830
- title: process.env.USER_TYPE === "ant" ? "/help" : `Foxcli v${"2.1.888"}`,
613830
+ title: process.env.USER_TYPE === "ant" ? "/help" : `Langcli v${"2.1.888"}`,
613831
613831
  color: "professionalBlue",
613832
613832
  defaultTab: "general",
613833
613833
  children: tabs
@@ -613839,7 +613839,7 @@ function HelpV2({ onClose, commands }) {
613839
613839
  "For more help:",
613840
613840
  " ",
613841
613841
  /* @__PURE__ */ jsx_dev_runtime202.jsxDEV(Link, {
613842
- url: "https://foxcli.com/docs"
613842
+ url: "https://langcli.com/docs"
613843
613843
  }, undefined, false, undefined, this)
613844
613844
  ]
613845
613845
  }, undefined, true, undefined, this)
@@ -637739,7 +637739,7 @@ function CondensedLogo() {
637739
637739
  }
637740
637740
  }, [showOverageCreditUpsell, showGuestPassesUpsell]);
637741
637741
  const textWidth = Math.max(columns - 15, 20);
637742
- const versionPrefix = "Foxcli v";
637742
+ const versionPrefix = "Langcli v";
637743
637743
  const truncatedVersion = truncate(version6, Math.max(textWidth - versionPrefix.length, 6));
637744
637744
  const effortSuffix = getEffortSuffix(model, effortValue);
637745
637745
  const { shouldSplit, truncatedModel, truncatedBilling } = formatModelAndBilling(modelDisplayName + effortSuffix, billingType, textWidth);
@@ -637761,7 +637761,7 @@ function CondensedLogo() {
637761
637761
  children: [
637762
637762
  /* @__PURE__ */ jsx_dev_runtime249.jsxDEV(ThemedText, {
637763
637763
  bold: true,
637764
- children: "Foxcli"
637764
+ children: "Langcli"
637765
637765
  }, undefined, false, undefined, this),
637766
637766
  " ",
637767
637767
  /* @__PURE__ */ jsx_dev_runtime249.jsxDEV(ThemedText, {
@@ -638147,8 +638147,8 @@ function LogoV2() {
638147
638147
  }
638148
638148
  const layoutMode = getLayoutMode(columns);
638149
638149
  const userTheme = resolveThemeSetting(getGlobalConfig().theme);
638150
- const borderTitle = ` ${color("claude", userTheme)("Foxcli")} ${color("inactive", userTheme)(`v${version6}`)} `;
638151
- const compactBorderTitle = color("claude", userTheme)(" Foxcli ");
638150
+ const borderTitle = ` ${color("claude", userTheme)("Langcli")} ${color("inactive", userTheme)(`v${version6}`)} `;
638151
+ const compactBorderTitle = color("claude", userTheme)(" Langcli ");
638152
638152
  if (layoutMode === "compact") {
638153
638153
  const layoutWidth = 4;
638154
638154
  let welcomeMessage2 = formatWelcomeMessage(username);
@@ -643554,7 +643554,7 @@ var init_status3 = __esm(() => {
643554
643554
  status = {
643555
643555
  type: "local-jsx",
643556
643556
  name: "status",
643557
- description: "Show Foxcli status including version, model, account, API connectivity, and tool statuses",
643557
+ description: "Show Langcli status including version, model, account, API connectivity, and tool statuses",
643558
643558
  immediate: true,
643559
643559
  load: () => Promise.resolve().then(() => (init_status2(), exports_status))
643560
643560
  };
@@ -648283,7 +648283,7 @@ function RemoveWorkspaceDirectory({
648283
648283
  }, undefined, false, undefined, this)
648284
648284
  }, undefined, false, undefined, this),
648285
648285
  /* @__PURE__ */ jsx_dev_runtime293.jsxDEV(ThemedText, {
648286
- children: "Foxcli will no longer have access to files in this directory."
648286
+ children: "Langcli will no longer have access to files in this directory."
648287
648287
  }, undefined, false, undefined, this),
648288
648288
  /* @__PURE__ */ jsx_dev_runtime293.jsxDEV(Select, {
648289
648289
  onChange: handleSelect,
@@ -655625,7 +655625,7 @@ var init_bridge_kick = __esm(() => {
655625
655625
  var call53 = async () => {
655626
655626
  return {
655627
655627
  type: "text",
655628
- value: `${"2.1.888"} (built ${"2026-04-10T03:30:47.565Z"})`
655628
+ value: `${"2.1.888"} (built ${"2026-04-10T05:06:20.121Z"})`
655629
655629
  };
655630
655630
  }, version6, version_default;
655631
655631
  var init_version2 = __esm(() => {
@@ -658113,7 +658113,7 @@ var init_model3 = __esm(() => {
658113
658113
  type: "local-jsx",
658114
658114
  name: "model",
658115
658115
  get description() {
658116
- return `Set the AI model for Foxcli (currently ${renderModelName(getMainLoopModel())})`;
658116
+ return `Set the AI model for Langcli (currently ${renderModelName(getMainLoopModel())})`;
658117
658117
  },
658118
658118
  argumentHint: "[model]",
658119
658119
  get immediate() {
@@ -658810,7 +658810,7 @@ var init_statusline = __esm(() => {
658810
658810
  init_constants3();
658811
658811
  statusline = {
658812
658812
  type: "prompt",
658813
- description: "Set up Foxcli's status line UI",
658813
+ description: "Set up Langcli's status line UI",
658814
658814
  contentLength: 0,
658815
658815
  aliases: [],
658816
658816
  name: "statusline",
@@ -661461,7 +661461,7 @@ var init_stats3 = __esm(() => {
661461
661461
  stats = {
661462
661462
  type: "local-jsx",
661463
661463
  name: "stats",
661464
- description: "Show your Foxcli usage statistics and activity",
661464
+ description: "Show your Langcli usage statistics and activity",
661465
661465
  load: () => Promise.resolve().then(() => (init_stats2(), exports_stats))
661466
661466
  };
661467
661467
  stats_default = stats;
@@ -694635,7 +694635,7 @@ function buildPlanApprovalOptions({
694635
694635
  });
694636
694636
  if (showUltraplan) {
694637
694637
  options.push({
694638
- label: "No, refine with Ultraplan on Foxcli on the web",
694638
+ label: "No, refine with Ultraplan on Langcli on the web",
694639
694639
  value: "ultraplan"
694640
694640
  });
694641
694641
  }
@@ -696557,16 +696557,16 @@ function permissionComponentForTool(tool) {
696557
696557
  function getNotificationMessage(toolUseConfirm) {
696558
696558
  const toolName = toolUseConfirm.tool.userFacingName(toolUseConfirm.input);
696559
696559
  if (toolUseConfirm.tool === ExitPlanModeV2Tool) {
696560
- return "Foxcli needs your approval for the plan";
696560
+ return "Langcli needs your approval for the plan";
696561
696561
  }
696562
696562
  if (toolUseConfirm.tool === EnterPlanModeTool) {
696563
- return "Foxcli wants to enter plan mode";
696563
+ return "Langcli wants to enter plan mode";
696564
696564
  }
696565
696565
  if (false) {}
696566
696566
  if (!toolName || toolName.trim() === "") {
696567
- return "Foxcli needs your attention";
696567
+ return "Langcli needs your attention";
696568
696568
  }
696569
- return `Foxcli needs your permission to use ${toolName}`;
696569
+ return `Langcli needs your permission to use ${toolName}`;
696570
696570
  }
696571
696571
  function PermissionRequest({
696572
696572
  toolUseConfirm,
@@ -730426,7 +730426,7 @@ function REPL({
730426
730426
  const [haikuTitle, setHaikuTitle] = import_react344.useState();
730427
730427
  const haikuTitleAttemptedRef = import_react344.useRef((initialMessages?.length ?? 0) > 0);
730428
730428
  const agentTitle = mainThreadAgentDefinition?.agentType;
730429
- const terminalTitle = sessionTitle ?? agentTitle ?? haikuTitle ?? "Foxcli";
730429
+ const terminalTitle = sessionTitle ?? agentTitle ?? haikuTitle ?? "Langcli";
730430
730430
  const isWaitingForApproval = toolUseConfirmQueue.length > 0 || promptQueue.length > 0 || pendingWorkerRequest || pendingSandboxRequest;
730431
730431
  const isShowingLocalJSXCommand = toolJSX?.isLocalJSXCommand === true && toolJSX?.jsx != null;
730432
730432
  const titleIsAnimating = isLoading && !isWaitingForApproval && !isShowingLocalJSXCommand;
@@ -732397,8 +732397,8 @@ ${fileList}`);
732397
732397
  import_react344.useEffect(() => {
732398
732398
  const handleSuspend = () => {
732399
732399
  process.stdout.write(`
732400
- Foxcli has been suspended. Run \`fg\` to bring Foxcli back.
732401
- Note: ctrl + z now suspends Foxcli, ctrl + _ undoes input.
732400
+ Langcli has been suspended. Run \`fg\` to bring Langcli back.
732401
+ Note: ctrl + z now suspends Langcli, ctrl + _ undoes input.
732402
732402
  `);
732403
732403
  };
732404
732404
  const handleResume = () => {
@@ -734175,7 +734175,7 @@ var init_ApproveApiKey = __esm(() => {
734175
734175
  // src/components/LogoV2/WelcomeV2.tsx
734176
734176
  function WelcomeV2() {
734177
734177
  const [theme2] = useTheme();
734178
- const welcomeMessage = "Welcome to Foxcli";
734178
+ const welcomeMessage = "Welcome to Langcli";
734179
734179
  if (env4.terminal === "Apple_Terminal") {
734180
734180
  return /* @__PURE__ */ jsx_dev_runtime474.jsxDEV(AppleTerminalWelcomeV2, {
734181
734181
  theme: theme2,
@@ -738500,7 +738500,7 @@ function generateSettingsSchema() {
738500
738500
  function registerUpdateConfigSkill() {
738501
738501
  registerBundledSkill({
738502
738502
  name: "update-config",
738503
- description: 'Use this skill to configure the Foxcli harness via settings.json. Automated behaviors ("from now on when X", "each time X", "whenever X", "before/after X") require hooks configured in settings.json - the harness executes these, not Foxcli, so memory/preferences cannot fulfill them. Also use for: permissions ("allow X", "add permission", "move permission to"), env vars ("set X=Y"), hook troubleshooting, or any changes to settings.json/settings.local.json files. Examples: "allow npm commands", "add bq permission to global settings", "move permission to user settings", "set DEBUG=true", "when foxcli stops show X". For simple settings like theme/model, use Config tool.',
738503
+ description: 'Use this skill to configure the Langcli harness via settings.json. Automated behaviors ("from now on when X", "each time X", "whenever X", "before/after X") require hooks configured in settings.json - the harness executes these, not Langcli, so memory/preferences cannot fulfill them. Also use for: permissions ("allow X", "add permission", "move permission to"), env vars ("set X=Y"), hook troubleshooting, or any changes to settings.json/settings.local.json files. Examples: "allow npm commands", "add bq permission to global settings", "move permission to user settings", "set DEBUG=true", "when langcli stops show X". For simple settings like theme/model, use Config tool.',
738504
738504
  allowedTools: ["Read"],
738505
738505
  userInvocable: true,
738506
738506
  async getPromptForCommand(args) {
@@ -738629,7 +738629,7 @@ Plugin syntax: \`plugin-name@source\` where source is \`claude-code-marketplace\
738629
738629
  - \`syntaxHighlightingDisabled\`: Disable diff highlighting
738630
738630
  `, HOOKS_DOCS = `## Hooks Configuration
738631
738631
 
738632
- Hooks run commands at specific points in Foxcli's lifecycle.
738632
+ Hooks run commands at specific points in Langcli's lifecycle.
738633
738633
 
738634
738634
  ### Hook Structure
738635
738635
  \`\`\`json
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "langcli-com",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Langcli - interactive AI coding assistant in the terminal",
5
5
  "type": "module",
6
6
  "author": "langcli <team@langcli.com>",