@kolisachint/hoocode-agent 0.4.18 → 0.4.20
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/CHANGELOG.md +8 -0
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +3 -3
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/wordmark-symbol.generated.d.ts +9 -0
- package/dist/core/wordmark-symbol.generated.d.ts.map +1 -0
- package/dist/core/wordmark-symbol.generated.js +20 -0
- package/dist/core/wordmark-symbol.generated.js.map +1 -0
- package/dist/core/wordmark.d.ts +29 -0
- package/dist/core/wordmark.d.ts.map +1 -1
- package/dist/core/wordmark.js +39 -0
- package/dist/core/wordmark.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +19 -24
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/theme/theme.d.ts +1 -0
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +5 -0
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/with-deps/package.json +1 -1
- package/package.json +4 -4
|
@@ -24,7 +24,7 @@ import { SessionManager } from "../../core/session-manager.js";
|
|
|
24
24
|
import { BUILTIN_SLASH_COMMANDS } from "../../core/slash-commands.js";
|
|
25
25
|
import { getSubagentPool } from "../../core/subagent-pool-instance.js";
|
|
26
26
|
import { taskStore } from "../../core/task-store.js";
|
|
27
|
-
import {
|
|
27
|
+
import { buildCompactWordmark } from "../../core/wordmark.js";
|
|
28
28
|
import { getChangelogPath, getNewEntries, parseChangelog } from "../../utils/changelog.js";
|
|
29
29
|
import { copyToClipboard } from "../../utils/clipboard.js";
|
|
30
30
|
import { extensionForImageMimeType, readClipboardImage } from "../../utils/clipboard-image.js";
|
|
@@ -85,7 +85,7 @@ function isDeadTerminalError(error) {
|
|
|
85
85
|
const code = error.code;
|
|
86
86
|
return code !== undefined && DEAD_TERMINAL_ERROR_CODES.has(code);
|
|
87
87
|
}
|
|
88
|
-
const ANTHROPIC_SUBSCRIPTION_AUTH_WARNING = "Anthropic subscription auth
|
|
88
|
+
const ANTHROPIC_SUBSCRIPTION_AUTH_WARNING = "Anthropic subscription auth: billed per token as extra usage, not plan limits.";
|
|
89
89
|
function isAnthropicSubscriptionAuthKey(apiKey) {
|
|
90
90
|
return typeof apiKey === "string" && apiKey.startsWith("sk-ant-oat");
|
|
91
91
|
}
|
|
@@ -403,8 +403,17 @@ export class InteractiveMode {
|
|
|
403
403
|
// Add header with keybindings from config (unless silenced)
|
|
404
404
|
if (this.options.verbose || !this.settingsManager.getQuietStartup()) {
|
|
405
405
|
const termW = this.ui.terminal.columns;
|
|
406
|
-
const logo = termW >=
|
|
407
|
-
?
|
|
406
|
+
const logo = termW >= 40
|
|
407
|
+
? buildCompactWordmark({
|
|
408
|
+
appName: APP_NAME,
|
|
409
|
+
version: this.version,
|
|
410
|
+
cwd: this.formatDisplayPath(this.sessionManager.getCwd()),
|
|
411
|
+
accent: (text) => theme.fg("accent", text),
|
|
412
|
+
dim: (text) => theme.fg("dim", text),
|
|
413
|
+
muted: (text) => theme.fg("muted", text),
|
|
414
|
+
cursor: (text) => theme.blink(theme.fg("accent", text)),
|
|
415
|
+
note: () => theme.fg("dim", ` ${keyText("app.tools.expand")} more`),
|
|
416
|
+
})
|
|
408
417
|
: theme.bold(theme.fg("accent", APP_NAME)) + theme.fg("dim", ` v${this.version}`);
|
|
409
418
|
// Build startup instructions using keybinding hint helpers
|
|
410
419
|
const hint = (keybinding, description) => keyHint(keybinding, description);
|
|
@@ -429,20 +438,10 @@ export class InteractiveMode {
|
|
|
429
438
|
hint("app.clipboard.pasteImage", "to paste image"),
|
|
430
439
|
rawKeyHint("drop files", "to attach"),
|
|
431
440
|
].join("\n");
|
|
432
|
-
const compactInstructions = [
|
|
433
|
-
hint("app.interrupt", "interrupt"),
|
|
434
|
-
rawKeyHint(`${keyText("app.clear")}/${keyText("app.exit")}`, "clear/exit"),
|
|
435
|
-
rawKeyHint("/", "commands"),
|
|
436
|
-
rawKeyHint("!", "bash"),
|
|
437
|
-
hint("app.tools.expand", "more"),
|
|
438
|
-
].join(theme.fg("muted", " · "));
|
|
439
|
-
const compactOnboarding = theme.fg("dim", `Press ${keyText("app.tools.expand")} to show full startup help and loaded resources.`);
|
|
440
441
|
const onboarding = theme.fg("dim", `${APP_NAME} can explain its own features and look up its docs. Ask it how to use or extend ${APP_NAME}.`);
|
|
441
|
-
this.builtInHeader = new ExpandableText(() =>
|
|
442
|
+
this.builtInHeader = new ExpandableText(() => logo, () => `${logo}\n${expandedInstructions}\n\n${onboarding}`, this.getStartupExpansionState(), 1, 0);
|
|
442
443
|
// Setup UI layout
|
|
443
|
-
this.headerContainer.addChild(new Spacer(1));
|
|
444
444
|
this.headerContainer.addChild(this.builtInHeader);
|
|
445
|
-
this.headerContainer.addChild(new Spacer(1));
|
|
446
445
|
}
|
|
447
446
|
else {
|
|
448
447
|
// Minimal header when silenced
|
|
@@ -1002,6 +1001,7 @@ export class InteractiveMode {
|
|
|
1002
1001
|
}
|
|
1003
1002
|
}
|
|
1004
1003
|
if (showListing) {
|
|
1004
|
+
this.chatContainer.addChild(new Spacer(1));
|
|
1005
1005
|
const { agentsFiles: contextFiles, warnings: contextWarnings } = this.session.resourceLoader.getAgentsFiles();
|
|
1006
1006
|
const skills = skillsResult.skills;
|
|
1007
1007
|
const templates = this.session.promptTemplates;
|
|
@@ -1016,7 +1016,6 @@ export class InteractiveMode {
|
|
|
1016
1016
|
metaItems.push("subagent_system_prompt");
|
|
1017
1017
|
}
|
|
1018
1018
|
if (totalItems > 0 && totalItems <= 5) {
|
|
1019
|
-
this.chatContainer.addChild(new Spacer(1));
|
|
1020
1019
|
const allCompactItems = [...metaItems];
|
|
1021
1020
|
if (contextFiles.length > 0) {
|
|
1022
1021
|
allCompactItems.push(...contextFiles.map((contextFile) => this.formatContextPath(contextFile.path)));
|
|
@@ -1033,14 +1032,12 @@ export class InteractiveMode {
|
|
|
1033
1032
|
if (customThemes.length > 0) {
|
|
1034
1033
|
allCompactItems.push(...customThemes.map((loadedTheme) => loadedTheme.name ?? this.getCompactPathLabel(loadedTheme.sourcePath, loadedTheme.sourceInfo)));
|
|
1035
1034
|
}
|
|
1036
|
-
|
|
1035
|
+
this.chatContainer.addChild(new Text(`${theme.fg("mdHeading", "[Resources]")} ${theme.fg("dim", allCompactItems.join(", "))}`, 0, 0));
|
|
1037
1036
|
}
|
|
1038
1037
|
else if (totalItems === 0) {
|
|
1039
|
-
this.chatContainer.addChild(new
|
|
1040
|
-
addLoadedSection("Resources", formatCompactList(metaItems), formatCompactList(metaItems));
|
|
1038
|
+
this.chatContainer.addChild(new Text(`${theme.fg("mdHeading", "[Resources]")} ${theme.fg("dim", metaItems.join(", "))}`, 0, 0));
|
|
1041
1039
|
}
|
|
1042
1040
|
else {
|
|
1043
|
-
this.chatContainer.addChild(new Spacer(1));
|
|
1044
1041
|
addLoadedSection("Resources", formatCompactList(metaItems), formatCompactList(metaItems));
|
|
1045
1042
|
if (contextFiles.length > 0) {
|
|
1046
1043
|
this.chatContainer.addChild(new Spacer(1));
|
|
@@ -1099,9 +1096,8 @@ export class InteractiveMode {
|
|
|
1099
1096
|
}
|
|
1100
1097
|
if (contextWarnings.length > 0) {
|
|
1101
1098
|
for (const warning of contextWarnings) {
|
|
1102
|
-
this.chatContainer.addChild(new Text(theme.fg("warning",
|
|
1099
|
+
this.chatContainer.addChild(new Text(theme.fg("warning", warning), 0, 0));
|
|
1103
1100
|
}
|
|
1104
|
-
this.chatContainer.addChild(new Spacer(1));
|
|
1105
1101
|
}
|
|
1106
1102
|
}
|
|
1107
1103
|
if (showDiagnostics) {
|
|
@@ -2967,8 +2963,7 @@ export class InteractiveMode {
|
|
|
2967
2963
|
this.ui.requestRender();
|
|
2968
2964
|
}
|
|
2969
2965
|
showWarning(warningMessage) {
|
|
2970
|
-
this.chatContainer.addChild(new
|
|
2971
|
-
this.chatContainer.addChild(new Text(theme.fg("warning", `Warning: ${warningMessage}`), 1, 0));
|
|
2966
|
+
this.chatContainer.addChild(new Text(theme.fg("warning", warningMessage), 1, 0));
|
|
2972
2967
|
this.ui.requestRender();
|
|
2973
2968
|
}
|
|
2974
2969
|
showNewVersionNotification(newVersion) {
|