bkper 5.1.0 → 5.2.0
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/README.md +16 -0
- package/lib/agent/extensions/bkper-ai-provider.d.ts.map +1 -1
- package/lib/agent/extensions/bkper-ai-provider.js +47 -16
- package/lib/agent/extensions/bkper-ai-provider.js.map +1 -1
- package/lib/agent/extensions/builtins.d.ts.map +1 -1
- package/lib/agent/extensions/builtins.js +10 -2
- package/lib/agent/extensions/builtins.js.map +1 -1
- package/lib/agent/extensions/startup-logo.d.ts +9 -0
- package/lib/agent/extensions/startup-logo.d.ts.map +1 -0
- package/lib/agent/extensions/startup-logo.js +96 -0
- package/lib/agent/extensions/startup-logo.js.map +1 -0
- package/lib/agent/extensions/startup.d.ts.map +1 -1
- package/lib/agent/extensions/startup.js +63 -33
- package/lib/agent/extensions/startup.js.map +1 -1
- package/lib/agent/interactive/prompt-history-store.d.ts +1 -0
- package/lib/agent/interactive/prompt-history-store.d.ts.map +1 -1
- package/lib/agent/interactive/prompt-history-store.js +19 -5
- package/lib/agent/interactive/prompt-history-store.js.map +1 -1
- package/lib/agent/interactive/run-agent-mode.d.ts.map +1 -1
- package/lib/agent/interactive/run-agent-mode.js +5 -2
- package/lib/agent/interactive/run-agent-mode.js.map +1 -1
- package/lib/agent/interactive/settings.d.ts +26 -4
- package/lib/agent/interactive/settings.d.ts.map +1 -1
- package/lib/agent/interactive/settings.js +106 -16
- package/lib/agent/interactive/settings.js.map +1 -1
- package/lib/agent/interactive/themes.d.ts +13 -0
- package/lib/agent/interactive/themes.d.ts.map +1 -0
- package/lib/agent/interactive/themes.js +36 -0
- package/lib/agent/interactive/themes.js.map +1 -0
- package/lib/agent/system-prompt.d.ts.map +1 -1
- package/lib/agent/system-prompt.js +19 -7
- package/lib/agent/system-prompt.js.map +1 -1
- package/lib/agent/themes/bkper-dark.json +80 -0
- package/lib/agent/themes/bkper-light.json +80 -0
- package/lib/cli.js +1 -1
- package/lib/cli.js.map +1 -1
- package/lib/commands/agent-command.d.ts.map +1 -1
- package/lib/commands/agent-command.js +2 -1
- package/lib/commands/agent-command.js.map +1 -1
- package/lib/docs/ai/decision-models.md +316 -0
- package/lib/docs/apps/ai.md +120 -88
- package/lib/docs/apps/overview.md +1 -1
- package/lib/docs/index.md +2 -1
- package/package.json +6 -4
package/README.md
CHANGED
|
@@ -199,6 +199,22 @@ Use `/handoff <goal>` to continue long-running work in a new focused session. If
|
|
|
199
199
|
|
|
200
200
|
Press `Ctrl+R` in the standard or handoff input to search recently submitted inputs by case-insensitive substring, newest first. Search history starts with inputs submitted after this feature is installed; it does not scan existing sessions. The handoff search omits Bash commands. Press `Ctrl+Alt+R` to open the session tree.
|
|
201
201
|
|
|
202
|
+
### Connect MCP servers
|
|
203
|
+
|
|
204
|
+
The agent can use tools from [MCP](https://modelcontextprotocol.io) servers you add, such as file storage, email, or other services. No servers are added by default. You can also ask the agent to add one for you.
|
|
205
|
+
|
|
206
|
+
```bash
|
|
207
|
+
bkper agent mcp add docs --url https://example.com/mcp # remote server
|
|
208
|
+
bkper agent mcp add files -- npx -y @modelcontextprotocol/server-filesystem . # local server
|
|
209
|
+
bkper agent mcp list # check connections and tools
|
|
210
|
+
bkper agent mcp login docs # sign in, for servers that use OAuth
|
|
211
|
+
bkper agent mcp remove docs
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
Run `/reload` in an open session after adding or removing a server, and use `/mcp` to see connections, sign in, or turn a server off. Servers are stored in `~/.pi/agent/mcp.json`, shared with Pi; a project's `.pi/mcp.json` is read only after you trust the project. `bkper agent mcp --help` lists all options; it names the commands `pi mcp ...`, which you run as `bkper agent mcp ...`.
|
|
215
|
+
|
|
216
|
+
MCP tools run with your permissions. Add only servers you trust.
|
|
217
|
+
|
|
202
218
|
---
|
|
203
219
|
|
|
204
220
|
## Data Management
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bkper-ai-provider.d.ts","sourceRoot":"","sources":["../../../src/agent/extensions/bkper-ai-provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bkper-ai-provider.d.ts","sourceRoot":"","sources":["../../../src/agent/extensions/bkper-ai-provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,YAAY,EACZ,cAAc,EAEjB,MAAM,iCAAiC,CAAC;AAEzC,eAAO,MAAM,oBAAoB,UAAU,CAAC;AAC5C,eAAO,MAAM,4BAA4B,4BAA4B,CAAC;AAItE,QAAA,MAAM,eAAe,sEAAuE,CAAC;AAG7F,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE,MAAM,WAAW,oBAAoB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,yBAAyB,CAAC,EAAE,oBAAoB,CAAC;CACpD;AAoED,wBAAgB,yBAAyB,CACrC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACtD,MAAM,GAAG,SAAS,CA0BpB;AAiID,wBAAgB,uBAAuB,CAAC,MAAM,SAAS,oBAAoB,EACvE,MAAM,EAAE,SAAS,MAAM,EAAE,GAC1B,MAAM,GAAG,SAAS,CAMpB;AAED,wBAAgB,8BAA8B,CAC1C,KAAK,EAAE,oBAAoB,GAAG,SAAS,GACxC,oBAAoB,GAAG,SAAS,CAIlC;AAED,wBAAgB,wBAAwB,CACpC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,EACrD,OAAO,GAAE,OAAO,KAAa,GAC9B,cAAc,CAkBhB;AAED,wBAAgB,uBAAuB,CACnC,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,kBAAkB,CAAC,EAC1C,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACtD,IAAI,CAEN"}
|
|
@@ -7,11 +7,19 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
+
import { typesafeSystemOneApi } from '@earendil-works/pi-ai/api/typesafe-system-one.lazy';
|
|
10
11
|
export const BKPER_AI_PROVIDER_ID = 'bkper';
|
|
11
12
|
export const BKPER_AI_PRODUCTION_BASE_URL = 'https://ai.bkper.app/v1';
|
|
12
13
|
const BKPER_AI_BASE_URL_ENV_VAR = 'BKPER_AI_BASE_URL';
|
|
13
14
|
const BKPER_AI_DEVELOPMENT_ORIGIN = 'https://ai-dev.bkper.app';
|
|
14
15
|
const THINKING_LEVELS = ['off', 'minimal', 'low', 'medium', 'high', 'xhigh', 'max'];
|
|
16
|
+
const BKPER_AI_CLASSIFIER_API = 'typesafe-system-one';
|
|
17
|
+
function isDecisionModel(model) {
|
|
18
|
+
return model.type === 'decision';
|
|
19
|
+
}
|
|
20
|
+
function isChatModel(model) {
|
|
21
|
+
return model.type === undefined || model.type === 'language';
|
|
22
|
+
}
|
|
15
23
|
function invalidBkperAiBaseUrlError() {
|
|
16
24
|
return new Error(`${BKPER_AI_BASE_URL_ENV_VAR} must be an HTTPS URL on ai-dev.bkper.app ` +
|
|
17
25
|
'without credentials, a custom port, query parameters, or a fragment.');
|
|
@@ -69,29 +77,43 @@ function nanoUsdPerTokenToUsdPerMillion(value) {
|
|
|
69
77
|
function toProviderModel(model, defaultModelId) {
|
|
70
78
|
var _a, _b, _c;
|
|
71
79
|
const input = (_b = (_a = model.input_modalities) === null || _a === void 0 ? void 0 : _a.filter((modality) => modality === 'text' || modality === 'image')) !== null && _b !== void 0 ? _b : [];
|
|
72
|
-
return {
|
|
73
|
-
id: model.id,
|
|
74
|
-
name: (_c = model.display_name) !== null && _c !== void 0 ? _c : model.id,
|
|
75
|
-
reasoning: model.thinking_levels.some(level => level !== 'none'),
|
|
76
|
-
thinkingLevelMap: getThinkingLevelMap(model.thinking_levels),
|
|
77
|
-
input,
|
|
78
|
-
cost: {
|
|
80
|
+
return Object.assign(Object.assign({ id: model.id, name: (_c = model.display_name) !== null && _c !== void 0 ? _c : model.id, reasoning: model.thinking_levels.some(level => level !== 'none'), thinkingLevelMap: getThinkingLevelMap(model.thinking_levels), input, cost: {
|
|
79
81
|
input: nanoUsdPerTokenToUsdPerMillion(model.pricing.inputNanoUsdPerToken),
|
|
80
82
|
output: nanoUsdPerTokenToUsdPerMillion(model.pricing.outputNanoUsdPerToken),
|
|
81
83
|
cacheRead: nanoUsdPerTokenToUsdPerMillion(model.pricing.cachedInputNanoUsdPerToken),
|
|
82
84
|
cacheWrite: nanoUsdPerTokenToUsdPerMillion(model.pricing.cacheWriteNanoUsdPerToken),
|
|
83
|
-
},
|
|
84
|
-
contextWindow: model.context_window,
|
|
85
|
-
maxTokens: model.max_output_tokens,
|
|
86
|
-
compat: {
|
|
85
|
+
} }, getPromptCache(model.prompt_cache_ttl_seconds)), { contextWindow: model.context_window, maxTokens: model.max_output_tokens, compat: {
|
|
87
86
|
supportsDeveloperRole: false,
|
|
88
87
|
sessionAffinityFormat: 'openai',
|
|
89
88
|
supportsLongCacheRetention: false,
|
|
89
|
+
}, bkperDefault: model.id === defaultModelId, bkperDefaultThinkingLevel: getDefaultThinkingLevel(model) });
|
|
90
|
+
}
|
|
91
|
+
function toClassifierModel(model) {
|
|
92
|
+
var _a;
|
|
93
|
+
return {
|
|
94
|
+
type: 'classifier',
|
|
95
|
+
id: model.id,
|
|
96
|
+
name: (_a = model.display_name) !== null && _a !== void 0 ? _a : model.id,
|
|
97
|
+
api: BKPER_AI_CLASSIFIER_API,
|
|
98
|
+
input: ['text'],
|
|
99
|
+
cost: {
|
|
100
|
+
input: nanoUsdPerTokenToUsdPerMillion(model.pricing.inputNanoUsdPerToken),
|
|
101
|
+
output: nanoUsdPerTokenToUsdPerMillion(model.pricing.outputNanoUsdPerToken),
|
|
102
|
+
cacheRead: 0,
|
|
103
|
+
cacheWrite: 0,
|
|
90
104
|
},
|
|
91
|
-
|
|
92
|
-
bkperDefaultThinkingLevel: getDefaultThinkingLevel(model),
|
|
105
|
+
contextWindow: model.context_window,
|
|
93
106
|
};
|
|
94
107
|
}
|
|
108
|
+
/**
|
|
109
|
+
* Maps the catalog's prompt cache lifetime to Pi's cache warming metadata.
|
|
110
|
+
* Models without a valid lifetime stay ineligible for cache warming.
|
|
111
|
+
*/
|
|
112
|
+
function getPromptCache(ttlSeconds) {
|
|
113
|
+
return typeof ttlSeconds === 'number' && Number.isFinite(ttlSeconds) && ttlSeconds > 0
|
|
114
|
+
? { promptCache: { short: ttlSeconds } }
|
|
115
|
+
: {};
|
|
116
|
+
}
|
|
95
117
|
function fetchBkperAiModels(baseUrl, fetchFn, signal) {
|
|
96
118
|
return __awaiter(this, void 0, void 0, function* () {
|
|
97
119
|
var _a, _b, _c;
|
|
@@ -103,9 +125,16 @@ function fetchBkperAiModels(baseUrl, fetchFn, signal) {
|
|
|
103
125
|
if (!Array.isArray(catalog.data)) {
|
|
104
126
|
throw new Error('Bkper AI model response is invalid.');
|
|
105
127
|
}
|
|
106
|
-
|
|
107
|
-
const
|
|
108
|
-
|
|
128
|
+
// Split by type first: decision entries lack the chat fields toProviderModel reads.
|
|
129
|
+
const classifierModels = catalog.data.filter(isDecisionModel).map(toClassifierModel);
|
|
130
|
+
const chatModels = catalog.data
|
|
131
|
+
.filter(isChatModel)
|
|
132
|
+
.filter(model => { var _a; return (_a = model.input_modalities) === null || _a === void 0 ? void 0 : _a.includes('image'); });
|
|
133
|
+
const defaultModelId = (_b = (_a = chatModels.find(model => model.id === catalog.default_model)) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : (_c = chatModels[0]) === null || _c === void 0 ? void 0 : _c.id;
|
|
134
|
+
return [
|
|
135
|
+
...chatModels.map(model => toProviderModel(model, defaultModelId)),
|
|
136
|
+
...classifierModels,
|
|
137
|
+
];
|
|
109
138
|
});
|
|
110
139
|
}
|
|
111
140
|
export function findDefaultBkperAiModel(models) {
|
|
@@ -130,6 +159,8 @@ export function getBkperAiProviderConfig(env = process.env, fetchFn = fetch) {
|
|
|
130
159
|
'User-Agent': 'bkper-cli',
|
|
131
160
|
},
|
|
132
161
|
api: 'openai-responses',
|
|
162
|
+
classifiers: { [BKPER_AI_CLASSIFIER_API]: typesafeSystemOneApi() },
|
|
163
|
+
// Every model type arrives through refreshModels, so the static list stays empty.
|
|
133
164
|
models: [],
|
|
134
165
|
refreshModels: ({ signal }) => fetchBkperAiModels(baseUrl, fetchFn, signal),
|
|
135
166
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bkper-ai-provider.js","sourceRoot":"","sources":["../../../src/agent/extensions/bkper-ai-provider.ts"],"names":[],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"bkper-ai-provider.js","sourceRoot":"","sources":["../../../src/agent/extensions/bkper-ai-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtins.d.ts","sourceRoot":"","sources":["../../../src/agent/extensions/builtins.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"builtins.d.ts","sourceRoot":"","sources":["../../../src/agent/extensions/builtins.ts"],"names":[],"mappings":"AAAA,OAAO,EAMH,KAAK,YAAY,EACjB,KAAK,oBAAoB,EAC5B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAC,qBAAqB,EAAC,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAEH,KAAK,yBAAyB,EACjC,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EAGH,KAAK,wBAAwB,EAChC,MAAM,cAAc,CAAC;AAGtB,KAAK,kBAAkB,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACpB,eAAe,IAAI,OAAO,CAAC;IAC3B,YAAY,IAAI,MAAM,GAAG,SAAS,CAAC;CACtC,CAAC;AAKF,eAAO,MAAM,mCAAmC,0BAA0B,CAAC;AAC3E,eAAO,MAAM,mCAAmC,kCAAkC,CAAC;AAGnF,wBAAgB,qCAAqC,CACjD,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACtD,OAAO,CAET;AAyBD,wBAAgB,kCAAkC,CAC9C,MAAM,EAAE,kBAAkB,EAAE,EAC5B,OAAO,EAAE;IAAC,OAAO,EAAE,OAAO,CAAA;CAAC,GAC5B,kBAAkB,EAAE,CAatB;AAED,wBAAgB,6BAA6B,CACzC,IAAI,EAAE,oBAAoB,EAC1B,OAAO,EAAE;IAAC,OAAO,EAAE,OAAO,CAAA;CAAC,GAC5B,oBAAoB,CAMtB;AAED,wBAAgB,0BAA0B,CACtC,EAAE,EAAE,YAAY,EAChB,kBAAkB,GAAE,OAAO,qBAA6C,EACxE,eAAe,CAAC,EAAE,gBAAgB,EAClC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,EACrD,iBAAiB,CAAC,EAAE,yBAAyB,EAC7C,sBAAsB,CAAC,EAAE,wBAAwB,GAClD,IAAI,CAuBN"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getAgentDir, } from '@earendil-works/pi-coding-agent';
|
|
1
|
+
import { createCodemodeExtension, createMcpExtension, createToolSearchExtension, getAgentDir, } from '@earendil-works/pi-coding-agent';
|
|
2
2
|
import { runStartupMaintenance } from '../startup-maintenance.js';
|
|
3
3
|
import { registerBkperAgentAuthExtension, } from './auth-commands.js';
|
|
4
4
|
import { getBkperAiBaseUrlOverride, registerBkperAiProvider, } from './bkper-ai-provider.js';
|
|
@@ -21,7 +21,9 @@ function normalizeBkperAgentExtension(extension) {
|
|
|
21
21
|
if (!isBkperAgentInlineExtensionPath(extension.path)) {
|
|
22
22
|
return extension;
|
|
23
23
|
}
|
|
24
|
-
return Object.assign(Object.assign({}, extension), {
|
|
24
|
+
return Object.assign(Object.assign({}, extension), {
|
|
25
|
+
// Built-ins are part of the agent, not user extensions to list at startup.
|
|
26
|
+
hidden: true, path: BKPER_AGENT_BUILTINS_EXTENSION_PATH, resolvedPath: BKPER_AGENT_BUILTINS_EXTENSION_PATH, sourceInfo: Object.assign(Object.assign({}, extension.sourceInfo), { path: BKPER_AGENT_BUILTINS_EXTENSION_PATH, source: 'inline' }) });
|
|
25
27
|
}
|
|
26
28
|
export function normalizeBkperAgentExtensionErrors(errors, options) {
|
|
27
29
|
return errors.map(error => {
|
|
@@ -46,5 +48,11 @@ export function registerBkperAgentBuiltins(pi, startupMaintenance = runStartupMa
|
|
|
46
48
|
registerBkperAgentAuthExtension(pi, undefined, credentialManager);
|
|
47
49
|
registerBkperAiProvider(pi, env);
|
|
48
50
|
registerBkperHandoffExtension(pi, dispatchHandoffCommand, getBkperHandoffShortcutFromFile(getAgentDir()));
|
|
51
|
+
// Registered inactive; the Bkper default tool selection activates it.
|
|
52
|
+
createCodemodeExtension()(pi);
|
|
53
|
+
// Connects servers the user configures in mcp.json; none are configured by default.
|
|
54
|
+
// tool_search is registered inactive and activated by servers with deferred exposure.
|
|
55
|
+
createToolSearchExtension()(pi);
|
|
56
|
+
createMcpExtension()(pi);
|
|
49
57
|
}
|
|
50
58
|
//# sourceMappingURL=builtins.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtins.js","sourceRoot":"","sources":["../../../src/agent/extensions/builtins.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,WAAW,GAId,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAC,qBAAqB,EAAC,MAAM,2BAA2B,CAAC;AAChE,OAAO,EACH,+BAA+B,GAElC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACH,yBAAyB,EACzB,uBAAuB,GAC1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAC,yCAAyC,EAAC,MAAM,4BAA4B,CAAC;AACrF,OAAO,EACH,+BAA+B,EAC/B,6BAA6B,GAEhC,MAAM,cAAc,CAAC;AACtB,OAAO,EAAC,kCAAkC,EAAC,MAAM,cAAc,CAAC;AAYhE,gEAAgE;AAChE,gFAAgF;AAChF,MAAM,6BAA6B,GAAG,gBAAgB,CAAC;AACvD,MAAM,CAAC,MAAM,mCAAmC,GAAG,uBAAuB,CAAC;AAC3E,MAAM,CAAC,MAAM,mCAAmC,GAAG,+BAA+B,CAAC;AACnF,MAAM,kCAAkC,GAAG,GAAG,mCAAmC,mBAAmB,CAAC;AAErG,MAAM,UAAU,qCAAqC,CACjD,MAA0C,OAAO,CAAC,GAAG;IAErD,OAAO,GAAG,CAAC,iBAAiB,KAAK,GAAG,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,CAAC;AACnE,CAAC;AAED,SAAS,+BAA+B,CAAC,IAAY;IACjD,OAAO,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,4BAA4B,CAAC,SAAoB;IACtD,IAAI,CAAC,+BAA+B,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,uCACO,SAAS,
|
|
1
|
+
{"version":3,"file":"builtins.js","sourceRoot":"","sources":["../../../src/agent/extensions/builtins.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type Color, type TerminalColorMode } from '@earendil-works/pi-tui';
|
|
2
|
+
/**
|
|
3
|
+
* Renders a pixel grid with half blocks: each terminal line shows two pixel rows, the upper one
|
|
4
|
+
* as the foreground of '▀' and the lower one as its background.
|
|
5
|
+
*/
|
|
6
|
+
export declare function renderPixelArt(pixels: readonly string[], colors: Readonly<Record<string, Color>>, mode: TerminalColorMode): string[];
|
|
7
|
+
/** The logo with wordmark when it fits, the mark alone when only that fits, otherwise nothing. */
|
|
8
|
+
export declare function getBkperLogoLines(maxWidth: number, mode: TerminalColorMode): string[];
|
|
9
|
+
//# sourceMappingURL=startup-logo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"startup-logo.d.ts","sourceRoot":"","sources":["../../../src/agent/extensions/startup-logo.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,KAAK,KAAK,EACV,KAAK,iBAAiB,EACzB,MAAM,wBAAwB,CAAC;AA+ChC;;;GAGG;AACH,wBAAgB,cAAc,CAC1B,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EACvC,IAAI,EAAE,iBAAiB,GACxB,MAAM,EAAE,CAyBV;AAUD,kGAAkG;AAClG,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAarF"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { backgroundAnsi, foregroundAnsi, rgbColor, } from '@earendil-works/pi-tui';
|
|
2
|
+
const RESET = '\x1b[0m';
|
|
3
|
+
/** Official logo colors; the four mark colors are the four Bkper account type colors. */
|
|
4
|
+
const BKPER_LOGO_COLORS = {
|
|
5
|
+
B: rgbColor(34, 133, 192), // #2285c0 Asset blue
|
|
6
|
+
D: rgbColor(30, 119, 173), // #1e77ad stem shade under the bar
|
|
7
|
+
R: rgbColor(209, 72, 54), // #d14836 Outgoing red
|
|
8
|
+
Y: rgbColor(247, 179, 0), // #f7b300 Liability yellow
|
|
9
|
+
G: rgbColor(58, 170, 87), // #3aaa57 Incoming green
|
|
10
|
+
W: rgbColor(153, 153, 153), // #999999 arrow and wordmark gray
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* The Bkper logo as square pixels, two pixel rows per terminal line. The mark is the official
|
|
14
|
+
* icon geometry sampled at 2 pixels per logo unit; the wordmark sits on the mark's baseline.
|
|
15
|
+
* '.' is transparent.
|
|
16
|
+
*/
|
|
17
|
+
const BKPER_LOGO_PIXELS = [
|
|
18
|
+
'.......BB.............................................',
|
|
19
|
+
'......BBBB............................................',
|
|
20
|
+
'......BBBB............................................',
|
|
21
|
+
'......BBBB............................................',
|
|
22
|
+
'......BBBB............................................',
|
|
23
|
+
'......BBBB............................................',
|
|
24
|
+
'......BBBB............................................',
|
|
25
|
+
'......BBBB............................................',
|
|
26
|
+
'......BRRRRRRYYYY.....................................',
|
|
27
|
+
'......RRRRRRYYYYYY....................................',
|
|
28
|
+
'......RRRRRRYYYYYYY...................................',
|
|
29
|
+
'......BRRRRRRYYYYYYY..................................',
|
|
30
|
+
'......BBDD.....YYYYY..................................',
|
|
31
|
+
'......BBDD......YYYY..W......W........................',
|
|
32
|
+
'......BBBD......YYYY..W......W........................',
|
|
33
|
+
'W.....BBBB.....YYYYY..W.WW...W..W..W.WW....WWW...W.WW.',
|
|
34
|
+
'WW....BBBBGGGGGYYYYY..WW..W..W.W...WW..W..W...W..WW...',
|
|
35
|
+
'WWW...BBBBGGGGGGYYY...W...W..WW....W...W..WWWWW..W....',
|
|
36
|
+
'WW....BBBBGGGGGGYY....WW..W..W.W...WW..W..W......W....',
|
|
37
|
+
'W......BBBGGGGGGY.....W.WW...W..W..W.WW....WWW...W....',
|
|
38
|
+
'...................................W..................',
|
|
39
|
+
'...................................W..................',
|
|
40
|
+
];
|
|
41
|
+
/** Width of the arrow and mark, without the wordmark. */
|
|
42
|
+
const BKPER_MARK_WIDTH = 20;
|
|
43
|
+
/**
|
|
44
|
+
* Renders a pixel grid with half blocks: each terminal line shows two pixel rows, the upper one
|
|
45
|
+
* as the foreground of '▀' and the lower one as its background.
|
|
46
|
+
*/
|
|
47
|
+
export function renderPixelArt(pixels, colors, mode) {
|
|
48
|
+
var _a;
|
|
49
|
+
const lines = [];
|
|
50
|
+
for (let row = 0; row < pixels.length; row += 2) {
|
|
51
|
+
const upper = pixels[row];
|
|
52
|
+
const lower = (_a = pixels[row + 1]) !== null && _a !== void 0 ? _a : '';
|
|
53
|
+
const width = Math.max(upper.length, lower.length);
|
|
54
|
+
let line = '';
|
|
55
|
+
for (let column = 0; column < width; column++) {
|
|
56
|
+
const top = colors[upper[column]];
|
|
57
|
+
const bottom = colors[lower[column]];
|
|
58
|
+
if (top && bottom && top === bottom) {
|
|
59
|
+
line += `${foregroundAnsi(top, mode)}█${RESET}`;
|
|
60
|
+
}
|
|
61
|
+
else if (top && bottom) {
|
|
62
|
+
line += `${foregroundAnsi(top, mode)}${backgroundAnsi(bottom, mode)}▀${RESET}`;
|
|
63
|
+
}
|
|
64
|
+
else if (top) {
|
|
65
|
+
line += `${foregroundAnsi(top, mode)}▀${RESET}`;
|
|
66
|
+
}
|
|
67
|
+
else if (bottom) {
|
|
68
|
+
line += `${foregroundAnsi(bottom, mode)}▄${RESET}`;
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
line += ' ';
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
lines.push(line);
|
|
75
|
+
}
|
|
76
|
+
return lines;
|
|
77
|
+
}
|
|
78
|
+
function cropPixels(pixels, width) {
|
|
79
|
+
const cropped = pixels.map(row => row.slice(0, width));
|
|
80
|
+
while (cropped.length > 0 && /^\.*$/.test(cropped[cropped.length - 1])) {
|
|
81
|
+
cropped.pop();
|
|
82
|
+
}
|
|
83
|
+
return cropped;
|
|
84
|
+
}
|
|
85
|
+
/** The logo with wordmark when it fits, the mark alone when only that fits, otherwise nothing. */
|
|
86
|
+
export function getBkperLogoLines(maxWidth, mode) {
|
|
87
|
+
const fullWidth = Math.max(...BKPER_LOGO_PIXELS.map(row => row.length));
|
|
88
|
+
if (maxWidth >= fullWidth) {
|
|
89
|
+
return renderPixelArt(cropPixels(BKPER_LOGO_PIXELS, fullWidth), BKPER_LOGO_COLORS, mode);
|
|
90
|
+
}
|
|
91
|
+
if (maxWidth >= BKPER_MARK_WIDTH) {
|
|
92
|
+
return renderPixelArt(cropPixels(BKPER_LOGO_PIXELS, BKPER_MARK_WIDTH), BKPER_LOGO_COLORS, mode);
|
|
93
|
+
}
|
|
94
|
+
return [];
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=startup-logo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"startup-logo.js","sourceRoot":"","sources":["../../../src/agent/extensions/startup-logo.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startup.d.ts","sourceRoot":"","sources":["../../../src/agent/extensions/startup.ts"],"names":[],"mappings":"AACA,OAAO,EAIH,KAAK,YAAY,EAEpB,MAAM,iCAAiC,CAAC;AAMzC,OAAO,EAAC,qBAAqB,EAAC,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"startup.d.ts","sourceRoot":"","sources":["../../../src/agent/extensions/startup.ts"],"names":[],"mappings":"AACA,OAAO,EAIH,KAAK,YAAY,EAEpB,MAAM,iCAAiC,CAAC;AAMzC,OAAO,EAAC,qBAAqB,EAAC,MAAM,2BAA2B,CAAC;AAWhE,KAAK,mBAAmB,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AAsLpD,wBAAgB,kCAAkC,CAC9C,EAAE,EAAE,mBAAmB,EACvB,kBAAkB,GAAE,OAAO,qBAA6C,EACxE,eAAe,CAAC,EAAE;IACd,eAAe,IAAI,OAAO,CAAC;IAC3B,YAAY,CAAC,IAAI,MAAM,GAAG,SAAS,CAAC;IACpC,eAAe,CAAC,IAAI,MAAM,EAAE,GAAG,SAAS,CAAC;CAC5C,EACD,sBAAsB,CAAC,EAAE,MAAM,EAC/B,aAAa,CAAC,EAAE,OAAO,GACxB,IAAI,CA8BN"}
|
|
@@ -7,13 +7,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
-
import { getKeybindings } from '@earendil-works/pi-tui';
|
|
10
|
+
import { getKeybindings, truncateToWidth, visibleWidth } from '@earendil-works/pi-tui';
|
|
11
11
|
import { getShellConfig, keyText, VERSION as PI_VERSION, } from '@earendil-works/pi-coding-agent';
|
|
12
12
|
import { PROMPT_HISTORY_SHORTCUT } from '../interactive/prompt-history-shortcut.js';
|
|
13
13
|
import { formatBkperSessionCommandShortcut, isShortcutClaimedByUserBinding, } from '../interactive/session-keybindings.js';
|
|
14
14
|
import { runStartupMaintenance } from '../startup-maintenance.js';
|
|
15
15
|
import { getBkperHandoffShortcut } from './handoff.js';
|
|
16
|
+
import { getBkperLogoLines } from './startup-logo.js';
|
|
16
17
|
const STARTUP_LEFT_PADDING = ' ';
|
|
18
|
+
const HINT_COLUMN_GAP = ' ';
|
|
17
19
|
const NO_MODELS_STARTUP_HINT = 'No AI model provider configured. Use /login for Bkper AI or /connect for another ' +
|
|
18
20
|
'model provider.';
|
|
19
21
|
function wrapStartupHeaderLine(line, width) {
|
|
@@ -55,16 +57,29 @@ function wrapStartupHeaderLine(line, width) {
|
|
|
55
57
|
}
|
|
56
58
|
return wrappedLines;
|
|
57
59
|
}
|
|
58
|
-
|
|
59
|
-
'
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
60
|
+
function formatStartupHint(theme, hint) {
|
|
61
|
+
return theme.fg('accent', hint.key) + theme.fg('muted', ` ${hint.description}`);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Lays hints out in two columns when both fit in the width, filling the left column first so
|
|
65
|
+
* related hints stay together; otherwise one column.
|
|
66
|
+
*/
|
|
67
|
+
function layoutStartupHints(theme, hints, width) {
|
|
68
|
+
const cells = hints.map(hint => formatStartupHint(theme, hint));
|
|
69
|
+
const leftCount = Math.ceil(cells.length / 2);
|
|
70
|
+
const left = cells.slice(0, leftCount);
|
|
71
|
+
const right = cells.slice(leftCount);
|
|
72
|
+
const leftWidth = Math.max(0, ...left.map(visibleWidth));
|
|
73
|
+
const rightWidth = Math.max(0, ...right.map(visibleWidth));
|
|
74
|
+
if (leftWidth + HINT_COLUMN_GAP.length + rightWidth > width) {
|
|
75
|
+
return cells;
|
|
76
|
+
}
|
|
77
|
+
return left.map((cell, index) => {
|
|
78
|
+
const rightCell = right[index];
|
|
79
|
+
return rightCell === undefined
|
|
80
|
+
? cell
|
|
81
|
+
: cell + ' '.repeat(leftWidth - visibleWidth(cell)) + HINT_COLUMN_GAP + rightCell;
|
|
82
|
+
});
|
|
68
83
|
}
|
|
69
84
|
function isBashAvailable(shellPath) {
|
|
70
85
|
try {
|
|
@@ -79,34 +94,49 @@ function formatHandoffStartupCommand() {
|
|
|
79
94
|
const shortcut = getBkperHandoffShortcut(getKeybindings().getResolvedBindings());
|
|
80
95
|
return shortcut ? `/handoff (${shortcut})` : '/handoff';
|
|
81
96
|
}
|
|
97
|
+
function getStartupHints(showBashShortcut) {
|
|
98
|
+
const showPromptHistory = !isShortcutClaimedByUserBinding(getKeybindings().getUserBindings(), undefined, PROMPT_HISTORY_SHORTCUT);
|
|
99
|
+
return [
|
|
100
|
+
{ key: keyText('app.interrupt'), description: 'to interrupt' },
|
|
101
|
+
{ key: keyText('app.clear'), description: 'to clear' },
|
|
102
|
+
{ key: `${keyText('app.clear')} twice`, description: 'to exit' },
|
|
103
|
+
...(showPromptHistory
|
|
104
|
+
? [{ key: PROMPT_HISTORY_SHORTCUT, description: 'to search prompt history' }]
|
|
105
|
+
: []),
|
|
106
|
+
{ key: '/', description: 'for commands' },
|
|
107
|
+
...(showBashShortcut ? [{ key: '!', description: 'to run bash' }] : []),
|
|
108
|
+
{ key: '/new', description: 'to start new session' },
|
|
109
|
+
{
|
|
110
|
+
key: formatBkperSessionCommandShortcut('/resume', 'app.session.resume'),
|
|
111
|
+
description: 'to resume a session',
|
|
112
|
+
},
|
|
113
|
+
{ key: '/clone', description: 'to duplicate session' },
|
|
114
|
+
{
|
|
115
|
+
key: formatBkperSessionCommandShortcut('/fork', 'app.session.fork'),
|
|
116
|
+
description: 'to branch from a message',
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
key: formatBkperSessionCommandShortcut('/tree', 'app.session.tree'),
|
|
120
|
+
description: 'for session tree',
|
|
121
|
+
},
|
|
122
|
+
{ key: formatHandoffStartupCommand(), description: 'to continue in a focused session' },
|
|
123
|
+
];
|
|
124
|
+
}
|
|
82
125
|
function buildStartupHeaderLines(theme, modelRegistry, width, showBashShortcut) {
|
|
126
|
+
const contentWidth = Math.max(1, width - STARTUP_LEFT_PADDING.length);
|
|
127
|
+
const logo = getBkperLogoLines(contentWidth, theme.getColorMode());
|
|
83
128
|
const lines = [
|
|
84
|
-
...
|
|
85
|
-
|
|
129
|
+
...logo,
|
|
130
|
+
...(logo.length > 0 ? [''] : []),
|
|
131
|
+
theme.fg('muted', 'powered by ') + theme.fg('dim', `pi v${PI_VERSION}`),
|
|
86
132
|
'',
|
|
87
|
-
|
|
88
|
-
formatStartupHint(theme, keyText('app.clear'), 'to clear'),
|
|
89
|
-
formatStartupHint(theme, `${keyText('app.clear')} twice`, 'to exit'),
|
|
90
|
-
...(!isShortcutClaimedByUserBinding(getKeybindings().getUserBindings(), undefined, PROMPT_HISTORY_SHORTCUT)
|
|
91
|
-
? [
|
|
92
|
-
formatStartupHint(theme, PROMPT_HISTORY_SHORTCUT, 'to search prompt history'),
|
|
93
|
-
]
|
|
94
|
-
: []),
|
|
95
|
-
formatStartupHint(theme, '/', 'for commands'),
|
|
96
|
-
formatStartupHint(theme, '/new', 'to start new session'),
|
|
97
|
-
formatStartupHint(theme, formatBkperSessionCommandShortcut('/resume', 'app.session.resume'), 'to resume a session'),
|
|
98
|
-
formatStartupHint(theme, '/clone', 'to duplicate session'),
|
|
99
|
-
formatStartupHint(theme, formatBkperSessionCommandShortcut('/fork', 'app.session.fork'), 'to branch from a message'),
|
|
100
|
-
formatStartupHint(theme, formatBkperSessionCommandShortcut('/tree', 'app.session.tree'), 'for session tree'),
|
|
101
|
-
formatStartupHint(theme, formatHandoffStartupCommand(), 'to continue in a focused session'),
|
|
133
|
+
...layoutStartupHints(theme, getStartupHints(showBashShortcut), contentWidth),
|
|
102
134
|
];
|
|
103
|
-
if (showBashShortcut) {
|
|
104
|
-
lines.push(formatStartupHint(theme, '!', 'to run bash'));
|
|
105
|
-
}
|
|
106
135
|
if (modelRegistry.getAvailable().length === 0) {
|
|
107
|
-
lines.push('', ...wrapStartupHeaderLine(NO_MODELS_STARTUP_HINT,
|
|
136
|
+
lines.push('', ...wrapStartupHeaderLine(NO_MODELS_STARTUP_HINT, contentWidth).map(line => theme.fg('warning', line)));
|
|
108
137
|
}
|
|
109
|
-
|
|
138
|
+
// The TUI rejects lines wider than the terminal, so narrow terminals truncate hints.
|
|
139
|
+
return lines.map(line => line.length > 0 ? STARTUP_LEFT_PADDING + truncateToWidth(line, contentWidth) : line);
|
|
110
140
|
}
|
|
111
141
|
function createStartupHeaderFactory(modelRegistry, showBashShortcut) {
|
|
112
142
|
return (_tui, theme) => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startup.js","sourceRoot":"","sources":["../../../src/agent/extensions/startup.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"startup.js","sourceRoot":"","sources":["../../../src/agent/extensions/startup.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAC,cAAc,EAAE,eAAe,EAAE,YAAY,EAAC,MAAM,wBAAwB,CAAC;AACrF,OAAO,EACH,cAAc,EACd,OAAO,EACP,OAAO,IAAI,UAAU,GAGxB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAC,uBAAuB,EAAC,MAAM,2CAA2C,CAAC;AAClF,OAAO,EACH,iCAAiC,EACjC,8BAA8B,GACjC,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAC,qBAAqB,EAAC,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAC,uBAAuB,EAAC,MAAM,cAAc,CAAC;AACrD,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAiBpD,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACjC,MAAM,eAAe,GAAG,MAAM,CAAC;AAC/B,MAAM,sBAAsB,GACxB,mFAAmF;IACnF,iBAAiB,CAAC;AAEtB,SAAS,qBAAqB,CAAC,IAAY,EAAE,KAAa;IACtD,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAEhC,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,OAAO,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;IAED,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,IAAI,WAAW,GAAG,EAAE,CAAC;IAErB,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAQ,EAAE;QACpC,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,WAAW,GAAG,IAAI,CAAC;YACnB,OAAO;QACX,CAAC;QAED,MAAM,SAAS,GAAG,GAAG,WAAW,IAAI,IAAI,EAAE,CAAC;QAC3C,IAAI,SAAS,CAAC,MAAM,IAAI,eAAe,EAAE,CAAC;YACtC,WAAW,GAAG,SAAS,CAAC;YACxB,OAAO;QACX,CAAC;QAED,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC/B,WAAW,GAAG,IAAI,CAAC;IACvB,CAAC,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1C,IAAI,IAAI,CAAC,MAAM,IAAI,eAAe,EAAE,CAAC;YACjC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,SAAS;QACb,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YACd,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC/B,WAAW,GAAG,EAAE,CAAC;QACrB,CAAC;QAED,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,eAAe,EAAE,CAAC;YAChE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC;QAClE,CAAC;IACL,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QACd,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,YAAY,CAAC;AACxB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAY,EAAE,IAAiB;IACtD,OAAO,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AACpF,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CAAC,KAAY,EAAE,KAAoB,EAAE,KAAa;IACzE,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;IAE3D,IAAI,SAAS,GAAG,eAAe,CAAC,MAAM,GAAG,UAAU,GAAG,KAAK,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC5B,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO,SAAS,KAAK,SAAS;YAC1B,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,eAAe,GAAG,SAAS,CAAC;IAC1F,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,eAAe,CAAC,SAAkB;IACvC,IAAI,CAAC;QACD,cAAc,CAAC,SAAS,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IAChB,CAAC;IAAC,WAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAED,SAAS,2BAA2B;IAChC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,cAAc,EAAE,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACjF,OAAO,QAAQ,CAAC,CAAC,CAAC,aAAa,QAAQ,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;AAC5D,CAAC;AAED,SAAS,eAAe,CAAC,gBAAyB;IAC9C,MAAM,iBAAiB,GAAG,CAAC,8BAA8B,CACrD,cAAc,EAAE,CAAC,eAAe,EAAE,EAClC,SAAS,EACT,uBAAuB,CAC1B,CAAC;IAEF,OAAO;QACH,EAAC,GAAG,EAAE,OAAO,CAAC,eAAe,CAAC,EAAE,WAAW,EAAE,cAAc,EAAC;QAC5D,EAAC,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,UAAU,EAAC;QACpD,EAAC,GAAG,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAC;QAC9D,GAAG,CAAC,iBAAiB;YACjB,CAAC,CAAC,CAAC,EAAC,GAAG,EAAE,uBAAuB,EAAE,WAAW,EAAE,0BAA0B,EAAC,CAAC;YAC3E,CAAC,CAAC,EAAE,CAAC;QACT,EAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,cAAc,EAAC;QACvC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,aAAa,EAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,EAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,sBAAsB,EAAC;QAClD;YACI,GAAG,EAAE,iCAAiC,CAAC,SAAS,EAAE,oBAAoB,CAAC;YACvE,WAAW,EAAE,qBAAqB;SACrC;QACD,EAAC,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAC;QACpD;YACI,GAAG,EAAE,iCAAiC,CAAC,OAAO,EAAE,kBAAkB,CAAC;YACnE,WAAW,EAAE,0BAA0B;SAC1C;QACD;YACI,GAAG,EAAE,iCAAiC,CAAC,OAAO,EAAE,kBAAkB,CAAC;YACnE,WAAW,EAAE,kBAAkB;SAClC;QACD,EAAC,GAAG,EAAE,2BAA2B,EAAE,EAAE,WAAW,EAAE,kCAAkC,EAAC;KACxF,CAAC;AACN,CAAC;AAED,SAAS,uBAAuB,CAC5B,KAAY,EACZ,aAAgC,EAChC,KAAa,EACb,gBAAyB;IAEzB,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACtE,MAAM,IAAI,GAAG,iBAAiB,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;IACnE,MAAM,KAAK,GAAG;QACV,GAAG,IAAI;QACP,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,UAAU,EAAE,CAAC;QACvE,EAAE;QACF,GAAG,kBAAkB,CAAC,KAAK,EAAE,eAAe,CAAC,gBAAgB,CAAC,EAAE,YAAY,CAAC;KAChF,CAAC;IAEF,IAAI,aAAa,CAAC,YAAY,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,KAAK,CAAC,IAAI,CACN,EAAE,EACF,GAAG,qBAAqB,CAAC,sBAAsB,EAAE,YAAY,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CACtE,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,CAC5B,CACJ,CAAC;IACN,CAAC;IAED,qFAAqF;IACrF,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CACpB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB,GAAG,eAAe,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CACtF,CAAC;AACN,CAAC;AAED,SAAS,0BAA0B,CAC/B,aAAgC,EAChC,gBAAyB;IAEzB,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACrB,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CACtB,uBAAuB,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,gBAAgB,CAAC;QAC1E,UAAU,EAAE,GAAG,EAAE,GAAE,CAAC;KACvB,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,kCAAkC,CAC9C,EAAuB,EACvB,qBAAmD,qBAAqB,EACxE,eAIC,EACD,sBAA+B,EAC/B,aAAuB;IAEvB,IAAI,2BAA2B,GAAG,KAAK,CAAC;IAExC,EAAE,CAAC,EAAE,CAAC,eAAe,EAAE,CAAO,MAAM,EAAE,GAAG,EAAE,EAAE;;QACzC,IAAI,CAAC,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,eAAe,EAAE,CAAA,EAAE,CAAC;YACtC,MAAM,gBAAgB,GAClB,aAAa,aAAb,aAAa,cAAb,aAAa,GACb,CAAC,CAAC,MAAA,MAAA,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,eAAe,+DAAI,0CAAE,QAAQ,CAAC,MAAM,CAAC,mCAAI,IAAI,CAAC;gBAC7D,eAAe,CAAC,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,YAAY,+DAAI,CAAC,CAAC,CAAC;YAC5D,GAAG,CAAC,EAAE,CAAC,SAAS,CACZ,0BAA0B,CAAC,GAAG,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAClE,CAAC;QACN,CAAC;QAED,IAAI,2BAA2B,EAAE,CAAC;YAC9B,OAAO;QACX,CAAC;QACD,2BAA2B,GAAG,IAAI,CAAC;QAEnC,IAAI,sBAAsB,EAAE,CAAC;YACzB,GAAG,CAAC,EAAE,CAAC,MAAM,CACT,sCAAsC,sBAAsB,EAAE,EAC9D,SAAS,CACZ,CAAC;QACN,CAAC;QAED,KAAK,kBAAkB,CAAC;YACpB,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC;SAC1D,CAAC,CAAC;IACP,CAAC,CAAA,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -32,6 +32,7 @@ export declare class FilePromptHistory implements PromptHistoryRepository {
|
|
|
32
32
|
getEntries(): readonly PromptHistoryEntry[];
|
|
33
33
|
record(text: string, kind: PromptHistoryKind, timestamp?: number): void;
|
|
34
34
|
private load;
|
|
35
|
+
private readFromDisk;
|
|
35
36
|
private rotate;
|
|
36
37
|
}
|
|
37
38
|
export declare function getPromptHistoryPath(agentDir: string): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-history-store.d.ts","sourceRoot":"","sources":["../../../src/agent/interactive/prompt-history-store.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;AAEhE,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,iBAAiB,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IAClC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3E;AAED,MAAM,WAAW,uBAAwB,SAAQ,qBAAqB;IAClE,UAAU,IAAI,SAAS,kBAAkB,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,0BAA0B;IACvC,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,wBAAwB;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AA6CD,wBAAgB,0BAA0B,CACtC,OAAO,EAAE,SAAS,kBAAkB,EAAE,EACtC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,0BAA0B,GACpC,kBAAkB,EAAE,CAgBtB;AAED,qBAAa,iBAAkB,YAAW,uBAAuB;IASzD,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAR7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,SAAS,CAAK;gBAGD,QAAQ,EAAE,MAAM,EACjC,OAAO,GAAE,wBAA6B;IAW1C,UAAU,IAAI,SAAS,kBAAkB,EAAE;
|
|
1
|
+
{"version":3,"file":"prompt-history-store.d.ts","sourceRoot":"","sources":["../../../src/agent/interactive/prompt-history-store.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;AAEhE,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,iBAAiB,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IAClC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3E;AAED,MAAM,WAAW,uBAAwB,SAAQ,qBAAqB;IAClE,UAAU,IAAI,SAAS,kBAAkB,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,0BAA0B;IACvC,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,wBAAwB;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AA6CD,wBAAgB,0BAA0B,CACtC,OAAO,EAAE,SAAS,kBAAkB,EAAE,EACtC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,0BAA0B,GACpC,kBAAkB,EAAE,CAgBtB;AAED,qBAAa,iBAAkB,YAAW,uBAAuB;IASzD,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAR7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,SAAS,CAAK;gBAGD,QAAQ,EAAE,MAAM,EACjC,OAAO,GAAE,wBAA6B;IAW1C,UAAU,IAAI,SAAS,kBAAkB,EAAE;IAY3C,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,SAAa,GAAG,IAAI;IA6B3E,OAAO,CAAC,IAAI;IASZ,OAAO,CAAC,YAAY;IAoBpB,OAAO,CAAC,MAAM;CAwCjB;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE7D"}
|
|
@@ -65,6 +65,15 @@ export class FilePromptHistory {
|
|
|
65
65
|
this.load();
|
|
66
66
|
}
|
|
67
67
|
getEntries() {
|
|
68
|
+
// Other open sessions append to the same file; reload when its size changed.
|
|
69
|
+
try {
|
|
70
|
+
if (statSync(this.filePath).size !== this.fileBytes) {
|
|
71
|
+
this.load();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
catch (_a) {
|
|
75
|
+
// Keep in-memory entries when the file is unavailable.
|
|
76
|
+
}
|
|
68
77
|
return this.entries;
|
|
69
78
|
}
|
|
70
79
|
record(text, kind, timestamp = Date.now()) {
|
|
@@ -93,6 +102,12 @@ export class FilePromptHistory {
|
|
|
93
102
|
}
|
|
94
103
|
}
|
|
95
104
|
load() {
|
|
105
|
+
if (this.readFromDisk() &&
|
|
106
|
+
(this.recordCount >= this.trimRecordCount || this.fileBytes >= this.maxFileBytes)) {
|
|
107
|
+
this.rotate();
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
readFromDisk() {
|
|
96
111
|
let content;
|
|
97
112
|
try {
|
|
98
113
|
content = readFileSync(this.filePath, 'utf8');
|
|
@@ -100,7 +115,7 @@ export class FilePromptHistory {
|
|
|
100
115
|
this.fileBytes = statSync(this.filePath).size;
|
|
101
116
|
}
|
|
102
117
|
catch (_a) {
|
|
103
|
-
return;
|
|
118
|
+
return false;
|
|
104
119
|
}
|
|
105
120
|
const lines = content.split('\n').filter(line => line.trim().length > 0);
|
|
106
121
|
this.recordCount = lines.length;
|
|
@@ -109,12 +124,11 @@ export class FilePromptHistory {
|
|
|
109
124
|
.filter((entry) => entry !== undefined)
|
|
110
125
|
.slice(-this.maxEntries)
|
|
111
126
|
.reverse();
|
|
112
|
-
|
|
113
|
-
this.fileBytes >= this.maxFileBytes) {
|
|
114
|
-
this.rotate();
|
|
115
|
-
}
|
|
127
|
+
return true;
|
|
116
128
|
}
|
|
117
129
|
rotate() {
|
|
130
|
+
// Include entries appended by other open sessions before rewriting the file.
|
|
131
|
+
this.readFromDisk();
|
|
118
132
|
const retainedNewest = [];
|
|
119
133
|
let retainedBytes = 0;
|
|
120
134
|
for (const entry of this.entries) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-history-store.js","sourceRoot":"","sources":["../../../src/agent/interactive/prompt-history-store.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"prompt-history-store.js","sourceRoot":"","sources":["../../../src/agent/interactive/prompt-history-store.ts"],"names":[],"mappings":"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"}
|