@ashx-j/lunr 0.2.8 → 0.2.10
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/builtin-extensions/ashxj-spinners.d.ts +4 -0
- package/dist/builtin-extensions/ashxj-spinners.d.ts.map +1 -1
- package/dist/builtin-extensions/ashxj-spinners.js +14 -3
- package/dist/builtin-extensions/ashxj-spinners.js.map +1 -1
- package/dist/builtin-extensions/ashxj-tui.d.ts +4 -0
- package/dist/builtin-extensions/ashxj-tui.d.ts.map +1 -1
- package/dist/builtin-extensions/ashxj-tui.js +49 -4
- package/dist/builtin-extensions/ashxj-tui.js.map +1 -1
- package/dist/builtin-extensions/lunr-behavior.d.ts +2 -1
- package/dist/builtin-extensions/lunr-behavior.d.ts.map +1 -1
- package/dist/builtin-extensions/lunr-behavior.js +26 -14
- package/dist/builtin-extensions/lunr-behavior.js.map +1 -1
- package/dist/builtin-extensions/lunr-todos.d.ts +4 -7
- package/dist/builtin-extensions/lunr-todos.d.ts.map +1 -1
- package/dist/builtin-extensions/lunr-todos.js +18 -10
- package/dist/builtin-extensions/lunr-todos.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-management.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-management.js +3 -3
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-management.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/schemas.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/schemas.js +4 -4
- package/dist/builtin-extensions/pi-subagents/src/extension/schemas.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.d.ts +2 -2
- package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.js +4 -5
- package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js +5 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js +6 -18
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.js +13 -5
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.d.ts +2 -2
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.js +2 -2
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/lunr-child-context.d.ts +21 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/lunr-child-context.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/lunr-child-context.js +22 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/lunr-child-context.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts +2 -2
- package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/types.js +2 -2
- package/dist/builtin-extensions/pi-subagents/src/shared/types.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.js +2 -1
- package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.js +10 -18
- package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts +4 -6
- package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/tui/render.js +26 -18
- package/dist/builtin-extensions/pi-subagents/src/tui/render.js.map +1 -1
- package/dist/builtin-extensions/pi-web-access/index.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-web-access/index.js +3 -1
- package/dist/builtin-extensions/pi-web-access/index.js.map +1 -1
- package/dist/builtin-extensions/pi-web-access/render-search-error.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-web-access/render-search-error.js +1 -1
- package/dist/builtin-extensions/pi-web-access/render-search-error.js.map +1 -1
- package/dist/catalog/models.json +1 -1
- package/dist/catalog/providers/nvidia.json +1 -1
- package/dist/catalog/providers/opencode-go.json +1 -1
- package/dist/catalog/providers/opencode.json +1 -1
- package/dist/catalog/providers/openrouter.json +1 -1
- package/dist/catalog/providers/qwen-cloud-cn.json +1 -1
- package/dist/catalog/providers/vercel-ai-gateway.json +1 -1
- package/dist/catalog/providers/xai.json +1 -1
- package/dist/catalog/publication.json +2 -2
- package/dist/cli/update-cli.d.ts +16 -0
- package/dist/cli/update-cli.d.ts.map +1 -0
- package/dist/cli/update-cli.js +83 -0
- package/dist/cli/update-cli.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +6 -0
- package/dist/cli.js.map +1 -1
- package/dist/core/agent-session.d.ts +2 -0
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +9 -1
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/behavior-preset.d.ts +60 -0
- package/dist/core/behavior-preset.d.ts.map +1 -0
- package/dist/core/behavior-preset.js +257 -0
- package/dist/core/behavior-preset.js.map +1 -0
- package/dist/core/customize.d.ts +4 -0
- package/dist/core/customize.d.ts.map +1 -1
- package/dist/core/customize.js +12 -0
- package/dist/core/customize.js.map +1 -1
- package/dist/core/footer-data-provider.d.ts +12 -1
- package/dist/core/footer-data-provider.d.ts.map +1 -1
- package/dist/core/footer-data-provider.js +70 -5
- package/dist/core/footer-data-provider.js.map +1 -1
- package/dist/core/keybindings.d.ts +2 -2
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +1 -1
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/model-tiers.d.ts +9 -0
- package/dist/core/model-tiers.d.ts.map +1 -1
- package/dist/core/model-tiers.js +16 -0
- package/dist/core/model-tiers.js.map +1 -1
- package/dist/core/settings-manager.d.ts +26 -0
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +74 -0
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +3 -4
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js +9 -6
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/core/tools/find.d.ts.map +1 -1
- package/dist/core/tools/find.js +2 -1
- package/dist/core/tools/find.js.map +1 -1
- package/dist/core/tools/grep.d.ts.map +1 -1
- package/dist/core/tools/grep.js +2 -1
- package/dist/core/tools/grep.js.map +1 -1
- package/dist/core/tools/ls.d.ts.map +1 -1
- package/dist/core/tools/ls.js +2 -1
- package/dist/core/tools/ls.js.map +1 -1
- package/dist/core/tools/read.d.ts.map +1 -1
- package/dist/core/tools/read.js +2 -1
- package/dist/core/tools/read.js.map +1 -1
- package/dist/core/tools/render-utils.d.ts +13 -3
- package/dist/core/tools/render-utils.d.ts.map +1 -1
- package/dist/core/tools/render-utils.js +10 -2
- package/dist/core/tools/render-utils.js.map +1 -1
- package/dist/core/tools/write.d.ts.map +1 -1
- package/dist/core/tools/write.js +5 -3
- package/dist/core/tools/write.js.map +1 -1
- package/dist/core/update-check.d.ts +32 -0
- package/dist/core/update-check.d.ts.map +1 -0
- package/dist/core/update-check.js +112 -0
- package/dist/core/update-check.js.map +1 -0
- package/dist/core/usage-service.d.ts +24 -1
- package/dist/core/usage-service.d.ts.map +1 -1
- package/dist/core/usage-service.js +91 -14
- package/dist/core/usage-service.js.map +1 -1
- package/dist/gateway/agent-bridge.d.ts +1 -0
- package/dist/gateway/agent-bridge.d.ts.map +1 -1
- package/dist/gateway/agent-bridge.js +5 -1
- package/dist/gateway/agent-bridge.js.map +1 -1
- package/dist/gateway/cron.d.ts.map +1 -1
- package/dist/gateway/cron.js +5 -1
- package/dist/gateway/cron.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +13 -1
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/components/assistant-message.d.ts +4 -0
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/assistant-message.js +68 -10
- package/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts +15 -0
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +168 -11
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/thinking-tail.d.ts +1 -0
- package/dist/modes/interactive/components/thinking-tail.d.ts.map +1 -1
- package/dist/modes/interactive/components/thinking-tail.js +2 -6
- package/dist/modes/interactive/components/thinking-tail.js.map +1 -1
- package/dist/modes/interactive/components/tool-execution.d.ts +7 -0
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +84 -16
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +19 -2
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +221 -37
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/docs/keybindings.md +1 -1
- package/docs/terminal-setup.md +2 -2
- package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/gondolin/package-lock.json +2 -2
- package/examples/extensions/gondolin/package.json +1 -1
- package/examples/extensions/sandbox/package-lock.json +2 -2
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/package.json +4 -4
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Container, getCapabilities, getKeybindings, Input, SelectList, SettingsList, Spacer, Text, } from "@ashx-j/lunr-tui";
|
|
2
|
+
import { detectBehaviorPreset, readBehaviorFile } from "../../../core/behavior-preset.js";
|
|
2
3
|
import { getCustomizeBridge } from "../../../core/customize.js";
|
|
3
4
|
import { formatHttpIdleTimeoutMs, HTTP_IDLE_TIMEOUT_CHOICES } from "../../../core/http-dispatcher.js";
|
|
4
5
|
import { MEMORY_CHAR_CAP_DEFAULT, MEMORY_CHAR_CAP_MAX, MEMORY_CHAR_CAP_MIN } from "../../../core/memory-cap.js";
|
|
@@ -55,7 +56,11 @@ class ModelTiersSubmenu extends Container {
|
|
|
55
56
|
light: modelTiers.light,
|
|
56
57
|
standard: modelTiers.standard,
|
|
57
58
|
heavy: modelTiers.heavy,
|
|
59
|
+
lightThinking: modelTiers.lightThinking,
|
|
60
|
+
standardThinking: modelTiers.standardThinking,
|
|
61
|
+
heavyThinking: modelTiers.heavyThinking,
|
|
58
62
|
};
|
|
63
|
+
const thinkingKey = (tier) => tier === "light" ? "lightThinking" : tier === "standard" ? "standardThinking" : "heavyThinking";
|
|
59
64
|
const items = [
|
|
60
65
|
{
|
|
61
66
|
id: "enabled",
|
|
@@ -64,16 +69,37 @@ class ModelTiersSubmenu extends Container {
|
|
|
64
69
|
currentValue: this.state.enabled ? "on" : "off",
|
|
65
70
|
values: ["on", "off"],
|
|
66
71
|
},
|
|
67
|
-
...MODEL_TIER_ROWS.
|
|
72
|
+
...MODEL_TIER_ROWS.flatMap((row) => {
|
|
68
73
|
const tier = row.tier;
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
74
|
+
const tKey = thinkingKey(tier);
|
|
75
|
+
return [
|
|
76
|
+
{
|
|
77
|
+
id: tier,
|
|
78
|
+
label: row.label,
|
|
79
|
+
description: row.description,
|
|
80
|
+
currentValue: this.state[tier] ?? "not set",
|
|
81
|
+
disabled: () => !this.state.enabled,
|
|
82
|
+
submenu: (_currentValue, done) => callbacks.createModelTierPicker(tier, this.state[tier], done),
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
id: `${tier}-thinking`,
|
|
86
|
+
label: `${row.label.replace(" model", "")} thinking`,
|
|
87
|
+
description: "Reasoning depth for this tier. Inherit uses the parent session level.",
|
|
88
|
+
currentValue: this.state[tKey] ?? "inherit",
|
|
89
|
+
disabled: () => !this.state.enabled,
|
|
90
|
+
submenu: (_currentValue, done) => new SelectSubmenu(`${row.label} thinking`, "Unset inherits the parent session thinking level.", [
|
|
91
|
+
{ value: "inherit", label: "inherit", description: "Use the parent session thinking level" },
|
|
92
|
+
...callbacks.getTierThinkingLevels(tier).map((level) => ({
|
|
93
|
+
value: level,
|
|
94
|
+
label: level,
|
|
95
|
+
description: THINKING_DESCRIPTIONS[level],
|
|
96
|
+
})),
|
|
97
|
+
], this.state[tKey] ?? "inherit", (value) => {
|
|
98
|
+
callbacks.onModelTierThinkingChange(tier, value === "inherit" ? undefined : value);
|
|
99
|
+
done(value);
|
|
100
|
+
}, () => done()),
|
|
101
|
+
},
|
|
102
|
+
];
|
|
77
103
|
}),
|
|
78
104
|
];
|
|
79
105
|
this.settingsList = new SettingsList(items, Math.min(items.length, 10), getSettingsListTheme(), (id, newValue) => {
|
|
@@ -82,6 +108,12 @@ class ModelTiersSubmenu extends Container {
|
|
|
82
108
|
callbacks.onModelTiersEnabledChange(this.state.enabled);
|
|
83
109
|
return;
|
|
84
110
|
}
|
|
111
|
+
if (id.endsWith("-thinking")) {
|
|
112
|
+
const tier = id.slice(0, -"-thinking".length);
|
|
113
|
+
const tKey = thinkingKey(tier);
|
|
114
|
+
this.state[tKey] = newValue === "inherit" ? undefined : newValue;
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
85
117
|
const tier = id;
|
|
86
118
|
this.state[tier] = newValue;
|
|
87
119
|
callbacks.onModelTierModelChange(tier, newValue);
|
|
@@ -126,6 +158,71 @@ class MemoryCharCapSubmenu extends Container {
|
|
|
126
158
|
}
|
|
127
159
|
}
|
|
128
160
|
const SEARCH_CURATOR_VALUES = ["off", "on", "auto-summary"];
|
|
161
|
+
const BEHAVIOR_PRESET_ITEMS = [
|
|
162
|
+
{
|
|
163
|
+
value: "default",
|
|
164
|
+
label: "default",
|
|
165
|
+
description: "Empty built-in. Selecting this writes a blank behavior.md.",
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
value: "humanizer",
|
|
169
|
+
label: "humanizer",
|
|
170
|
+
description: "Write like a person. Strip AI tells. Skips the character cap.",
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
value: "concise",
|
|
174
|
+
label: "concise",
|
|
175
|
+
description: "Fragments, tables, numbered next steps last. Skips the character cap.",
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
value: "custom",
|
|
179
|
+
label: "custom",
|
|
180
|
+
description: "Keep the current behavior.md. Edit the file or use the behavior tools.",
|
|
181
|
+
},
|
|
182
|
+
];
|
|
183
|
+
/**
|
|
184
|
+
* Built-in vs custom behavior.md picker.
|
|
185
|
+
* Selecting a built-in while the file no longer matches a template asks before overwrite.
|
|
186
|
+
* Custom never writes. No in-app editor; the file is the source of truth.
|
|
187
|
+
*/
|
|
188
|
+
class BehaviorPresetSubmenu extends Container {
|
|
189
|
+
inner;
|
|
190
|
+
constructor(currentValue, done) {
|
|
191
|
+
super();
|
|
192
|
+
this.inner = this.buildList(currentValue, done);
|
|
193
|
+
this.addChild(this.inner);
|
|
194
|
+
}
|
|
195
|
+
buildList(currentValue, done) {
|
|
196
|
+
return new SelectSubmenu("Behavior preset", "Built-in options replace ~/.lunr/agent/behavior.md. Custom keeps the file. Cap skipped for built-ins.", BEHAVIOR_PRESET_ITEMS, currentValue, (value) => {
|
|
197
|
+
if (value === currentValue) {
|
|
198
|
+
done();
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
if (value !== "custom" && detectBehaviorPreset(readBehaviorFile()) === "custom") {
|
|
202
|
+
this.showOverwriteConfirm(value, done);
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
done(value);
|
|
206
|
+
}, () => done());
|
|
207
|
+
}
|
|
208
|
+
showOverwriteConfirm(preset, done) {
|
|
209
|
+
this.clear();
|
|
210
|
+
this.inner = new SelectSubmenu("Overwrite behavior.md", `Replace the custom behavior file with the ${preset} preset? This cannot be undone from settings.`, [
|
|
211
|
+
{ value: "cancel", label: "Cancel" },
|
|
212
|
+
{ value: "overwrite", label: `Overwrite with ${preset}` },
|
|
213
|
+
], "cancel", (value) => {
|
|
214
|
+
if (value === "overwrite") {
|
|
215
|
+
done(preset);
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
done();
|
|
219
|
+
}, () => done());
|
|
220
|
+
this.addChild(this.inner);
|
|
221
|
+
}
|
|
222
|
+
handleInput(data) {
|
|
223
|
+
this.inner.handleInput?.(data);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
129
226
|
// lunr: Customize submenu — toggles for the lunR TUI customize settings.
|
|
130
227
|
class CustomizeSubmenu extends Container {
|
|
131
228
|
settingsList;
|
|
@@ -177,13 +274,41 @@ class CustomizeSubmenu extends Container {
|
|
|
177
274
|
currentValue: (bridge?.getFooterTokens() ?? true) ? "on" : "off",
|
|
178
275
|
values: ["on", "off"],
|
|
179
276
|
},
|
|
277
|
+
{
|
|
278
|
+
id: "footer-tps",
|
|
279
|
+
label: "Footer: TPS counter",
|
|
280
|
+
description: "Show the ✓ 174.0 t/s · tokens-in-time segment in the footer stats line.",
|
|
281
|
+
currentValue: (bridge?.getFooterTps() ?? true) ? "on" : "off",
|
|
282
|
+
values: ["on", "off"],
|
|
283
|
+
},
|
|
180
284
|
{
|
|
181
285
|
id: "footer-statuses",
|
|
182
286
|
label: "Footer: feature statuses",
|
|
183
|
-
description: "Show the plan/goal/swarm/research
|
|
287
|
+
description: "Show the plan/goal/swarm/research status segments in the footer stats line.",
|
|
184
288
|
currentValue: (bridge?.getFooterStatuses() ?? true) ? "on" : "off",
|
|
185
289
|
values: ["on", "off"],
|
|
186
290
|
},
|
|
291
|
+
{
|
|
292
|
+
id: "footer-git",
|
|
293
|
+
label: "Footer: git branch",
|
|
294
|
+
description: "Show the current git branch and added/removed line counts in the footer stats line.",
|
|
295
|
+
currentValue: (bridge?.getFooterGit() ?? true) ? "on" : "off",
|
|
296
|
+
values: ["on", "off"],
|
|
297
|
+
},
|
|
298
|
+
{
|
|
299
|
+
id: "footer-plan",
|
|
300
|
+
label: "Footer: plan usage",
|
|
301
|
+
description: "Show the live subscription usage percent when the current model is on a plan.",
|
|
302
|
+
currentValue: (bridge?.getFooterPlan() ?? true) ? "on" : "off",
|
|
303
|
+
values: ["on", "off"],
|
|
304
|
+
},
|
|
305
|
+
{
|
|
306
|
+
id: "footer-plan-bar",
|
|
307
|
+
label: "Footer: plan bar",
|
|
308
|
+
description: "Show the filled █░ bar next to the plan percent. Off keeps the percent only.",
|
|
309
|
+
currentValue: (bridge?.getFooterPlanBar() ?? true) ? "on" : "off",
|
|
310
|
+
values: ["on", "off"],
|
|
311
|
+
},
|
|
187
312
|
];
|
|
188
313
|
this.settingsList = new SettingsList(items, Math.min(items.length, 10), getSettingsListTheme(), (id, newValue) => {
|
|
189
314
|
switch (id) {
|
|
@@ -205,9 +330,21 @@ class CustomizeSubmenu extends Container {
|
|
|
205
330
|
case "footer-tokens":
|
|
206
331
|
callbacks.onFooterTokensChange(newValue === "on");
|
|
207
332
|
break;
|
|
333
|
+
case "footer-tps":
|
|
334
|
+
callbacks.onFooterTpsChange(newValue === "on");
|
|
335
|
+
break;
|
|
208
336
|
case "footer-statuses":
|
|
209
337
|
callbacks.onFooterStatusesChange(newValue === "on");
|
|
210
338
|
break;
|
|
339
|
+
case "footer-git":
|
|
340
|
+
callbacks.onFooterGitChange(newValue === "on");
|
|
341
|
+
break;
|
|
342
|
+
case "footer-plan":
|
|
343
|
+
callbacks.onFooterPlanChange(newValue === "on");
|
|
344
|
+
break;
|
|
345
|
+
case "footer-plan-bar":
|
|
346
|
+
callbacks.onFooterPlanBarChange(newValue === "on");
|
|
347
|
+
break;
|
|
211
348
|
}
|
|
212
349
|
}, () => done());
|
|
213
350
|
this.addChild(this.settingsList);
|
|
@@ -827,10 +964,17 @@ export class SettingsSelectorComponent extends Container {
|
|
|
827
964
|
{
|
|
828
965
|
id: "memory-char-cap",
|
|
829
966
|
label: "Memory character cap",
|
|
830
|
-
description: `Max characters in the simple-pi-memory memory file AND
|
|
967
|
+
description: `Max characters in the simple-pi-memory memory file AND a custom behavior file (${MEMORY_CHAR_CAP_MIN}-${MEMORY_CHAR_CAP_MAX}, default ${MEMORY_CHAR_CAP_DEFAULT}). Built-in behavior presets skip the cap. Also settable via /memory-char-cap.`,
|
|
831
968
|
currentValue: String(config.memoryCharCap),
|
|
832
969
|
submenu: (currentValue, submenuDone) => new MemoryCharCapSubmenu(currentValue, submenuDone),
|
|
833
970
|
},
|
|
971
|
+
{
|
|
972
|
+
id: "behavior-preset",
|
|
973
|
+
label: "Behavior preset",
|
|
974
|
+
description: "Built-in options replace ~/.lunr/agent/behavior.md (default / humanizer / concise). Custom keeps the file. Built-ins skip the character cap.",
|
|
975
|
+
currentValue: config.behaviorPreset,
|
|
976
|
+
submenu: (currentValue, submenuDone) => new BehaviorPresetSubmenu(currentValue, submenuDone),
|
|
977
|
+
},
|
|
834
978
|
{
|
|
835
979
|
id: "search-curator",
|
|
836
980
|
label: "Search curator",
|
|
@@ -903,6 +1047,13 @@ export class SettingsSelectorComponent extends Container {
|
|
|
903
1047
|
currentValue: config.modelTiers.enabled ? "on" : "off",
|
|
904
1048
|
submenu: (currentValue, done) => new ModelTiersSubmenu(currentValue, config.modelTiers, callbacks, done),
|
|
905
1049
|
},
|
|
1050
|
+
{
|
|
1051
|
+
id: "plan-usage-window",
|
|
1052
|
+
label: "Plan usage window",
|
|
1053
|
+
description: "Preferred subscription window for the footer bar. Missing 5h falls back to weekly.",
|
|
1054
|
+
currentValue: config.planUsageWindow,
|
|
1055
|
+
values: ["5h", "weekly"],
|
|
1056
|
+
},
|
|
906
1057
|
// lunr: Customize submenu — lunR TUI toggles (rail, prompt symbol, footer segments)
|
|
907
1058
|
{
|
|
908
1059
|
id: "customize",
|
|
@@ -1095,9 +1246,15 @@ export class SettingsSelectorComponent extends Container {
|
|
|
1095
1246
|
case "smooth-streaming":
|
|
1096
1247
|
callbacks.onSmoothStreamingChange(newValue === "true");
|
|
1097
1248
|
break;
|
|
1249
|
+
case "plan-usage-window":
|
|
1250
|
+
callbacks.onPlanUsageWindowChange(newValue === "5h" ? "5h" : "weekly");
|
|
1251
|
+
break;
|
|
1098
1252
|
case "memory-char-cap":
|
|
1099
1253
|
callbacks.onMemoryCharCapChange(parseInt(newValue, 10));
|
|
1100
1254
|
break;
|
|
1255
|
+
case "behavior-preset":
|
|
1256
|
+
callbacks.onBehaviorPresetChange(newValue);
|
|
1257
|
+
break;
|
|
1101
1258
|
case "search-curator":
|
|
1102
1259
|
callbacks.onSearchCuratorChange(newValue);
|
|
1103
1260
|
break;
|