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.
- package/dist/cli.js +43 -43
- 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(), ".
|
|
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 `
|
|
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-
|
|
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
|
|
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
|
-
"•
|
|
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
|
|
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: "
|
|
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
|
|
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-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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("
|
|
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
|
|
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 ~/.
|
|
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
|
|
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: "
|
|
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" : `
|
|
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://
|
|
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 = "
|
|
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: "
|
|
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)("
|
|
638151
|
-
const compactBorderTitle = color("claude", userTheme)("
|
|
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
|
|
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: "
|
|
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-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 "
|
|
696560
|
+
return "Langcli needs your approval for the plan";
|
|
696561
696561
|
}
|
|
696562
696562
|
if (toolUseConfirm.tool === EnterPlanModeTool) {
|
|
696563
|
-
return "
|
|
696563
|
+
return "Langcli wants to enter plan mode";
|
|
696564
696564
|
}
|
|
696565
696565
|
if (false) {}
|
|
696566
696566
|
if (!toolName || toolName.trim() === "") {
|
|
696567
|
-
return "
|
|
696567
|
+
return "Langcli needs your attention";
|
|
696568
696568
|
}
|
|
696569
|
-
return `
|
|
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 ?? "
|
|
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
|
-
|
|
732401
|
-
Note: ctrl + z now suspends
|
|
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
|
|
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
|
|
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
|
|
738632
|
+
Hooks run commands at specific points in Langcli's lifecycle.
|
|
738633
738633
|
|
|
738634
738634
|
### Hook Structure
|
|
738635
738635
|
\`\`\`json
|