bkper 5.0.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/startup-maintenance.d.ts +7 -4
- package/lib/agent/startup-maintenance.d.ts.map +1 -1
- package/lib/agent/startup-maintenance.js +13 -29
- package/lib/agent/startup-maintenance.js.map +1 -1
- 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 +6 -2
- 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/commands/upgrade.d.ts.map +1 -1
- package/lib/commands/upgrade.js +2 -3
- package/lib/commands/upgrade.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/event-handlers.md +12 -0
- package/lib/docs/apps/overview.md +1 -1
- package/lib/docs/cli/app-management.md +1 -0
- package/lib/docs/index.md +2 -1
- package/lib/docs/sdk/bkper-api-types.md +4 -2
- package/lib/docs/sdk/bkper-js.md +1 -0
- package/lib/upgrade/index.d.ts +5 -4
- package/lib/upgrade/index.d.ts.map +1 -1
- package/lib/upgrade/index.js +3 -2
- package/lib/upgrade/index.js.map +1 -1
- package/lib/upgrade/installation.d.ts +54 -20
- package/lib/upgrade/installation.d.ts.map +1 -1
- package/lib/upgrade/installation.js +222 -122
- package/lib/upgrade/installation.js.map +1 -1
- package/lib/upgrade/update-check.d.ts +69 -0
- package/lib/upgrade/update-check.d.ts.map +1 -0
- package/lib/upgrade/update-check.js +253 -0
- package/lib/upgrade/update-check.js.map +1 -0
- package/lib/upgrade/update-worker.d.ts +2 -0
- package/lib/upgrade/update-worker.d.ts.map +1 -0
- package/lib/upgrade/update-worker.js +6 -0
- package/lib/upgrade/update-worker.js.map +1 -0
- package/lib/upgrade/upgrade.d.ts +11 -28
- package/lib/upgrade/upgrade.d.ts.map +1 -1
- package/lib/upgrade/upgrade.js +49 -96
- package/lib/upgrade/upgrade.js.map +1 -1
- package/package.json +6 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-agent-mode.d.ts","sourceRoot":"","sources":["../../../src/agent/interactive/run-agent-mode.ts"],"names":[],"mappings":"AACA,OAAO,EAQH,KAAK,6BAA6B,EAGrC,MAAM,iCAAiC,CAAC;AASzC,OAAO,EAEH,KAAK,sBAAsB,EAC9B,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"run-agent-mode.d.ts","sourceRoot":"","sources":["../../../src/agent/interactive/run-agent-mode.ts"],"names":[],"mappings":"AACA,OAAO,EAQH,KAAK,6BAA6B,EAGrC,MAAM,iCAAiC,CAAC;AASzC,OAAO,EAEH,KAAK,sBAAsB,EAC9B,MAAM,uBAAuB,CAAC;AAW/B,MAAM,WAAW,qBAAqB;IAClC,aAAa,EAAE,MAAM,OAAO,CAAC;QACzB,OAAO,EAAE,sBAAsB,CAAC;QAChC,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,WAAW,CAAC,EAAE,6BAA6B,EAAE,CAAC;KACjD,CAAC,CAAC;IACH,qBAAqB,EAAE,CACnB,OAAO,EAAE,sBAAsB,EAC/B,oBAAoB,CAAC,EAAE,MAAM,KAC5B;QACD,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;KACxB,CAAC;CACL;AAcD,MAAM,WAAW,cAAc;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,2BAA2B,CACvC,cAAc,GAAE,cAAmB,GACpC,qBAAqB,CAiIvB;AAED,wBAAsB,YAAY,CAC9B,YAAY,GAAE,qBAAqD,GACpE,OAAO,CAAC,IAAI,CAAC,CAUf"}
|
|
@@ -15,7 +15,8 @@ import { runStartupMaintenance } from '../startup-maintenance.js';
|
|
|
15
15
|
import { getBkperAgentSystemPrompt } from '../system-prompt.js';
|
|
16
16
|
import { BkperInteractiveMode, } from './interactive-mode.js';
|
|
17
17
|
import { restorePersistedSessionOptions } from './session-restore.js';
|
|
18
|
-
import { applyBkperAgentSettingsDefaults, applyBkperAgentToolSelection, collectSettingsDiagnostics, createStartupSessionManager, } from './settings.js';
|
|
18
|
+
import { applyBkperAgentSettingsDefaults, applyBkperAgentToolSelection, collectSettingsDiagnostics, createStartupSessionManager, overrideDefaultTools, } from './settings.js';
|
|
19
|
+
import { getBkperThemesDir, resolveBkperInitialThemeSetting } from './themes.js';
|
|
19
20
|
function reportDiagnostics(diagnostics) {
|
|
20
21
|
for (const diagnostic of diagnostics) {
|
|
21
22
|
const prefix = diagnostic.type === 'error'
|
|
@@ -56,6 +57,7 @@ export function createAgentModeDependencies(sessionOptions = {}) {
|
|
|
56
57
|
settingsManager,
|
|
57
58
|
modelRuntime,
|
|
58
59
|
resourceLoaderOptions: {
|
|
60
|
+
additionalThemePaths: [getBkperThemesDir()],
|
|
59
61
|
systemPromptOverride: () => getBkperAgentSystemPrompt(selectedTools),
|
|
60
62
|
extensionFactories: [
|
|
61
63
|
(pi) => {
|
|
@@ -68,7 +70,7 @@ export function createAgentModeDependencies(sessionOptions = {}) {
|
|
|
68
70
|
},
|
|
69
71
|
});
|
|
70
72
|
applyBkperAgentSettingsDefaults(settingsManager);
|
|
71
|
-
settingsManager
|
|
73
|
+
overrideDefaultTools(settingsManager, selectedTools);
|
|
72
74
|
const restoredSessionOptions = restorePersistedSessionOptions(settingsManager, {
|
|
73
75
|
getAvailable: () => [...services.modelRuntime.getAvailableSnapshot()],
|
|
74
76
|
find: (provider, modelId) => services.modelRuntime.getModel(provider, modelId),
|
|
@@ -113,6 +115,7 @@ export function createAgentModeDependencies(sessionOptions = {}) {
|
|
|
113
115
|
}),
|
|
114
116
|
createInteractiveMode: (runtime, modelFallbackMessage) => new BkperInteractiveMode(runtime, {
|
|
115
117
|
modelFallbackMessage,
|
|
118
|
+
initialThemeSetting: resolveBkperInitialThemeSetting(runtime.services.settingsManager),
|
|
116
119
|
}),
|
|
117
120
|
};
|
|
118
121
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-agent-mode.js","sourceRoot":"","sources":["../../../src/agent/interactive/run-agent-mode.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAC/B,OAAO,EACH,8BAA8B,EAC9B,yBAAyB,EACzB,0BAA0B,EAC1B,WAAW,EACX,YAAY,EACZ,cAAc,EACd,eAAe,GAIlB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACH,qCAAqC,EACrC,6BAA6B,EAC7B,0BAA0B,GAC7B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAC,yBAAyB,EAAC,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAC,qBAAqB,EAAC,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAC,yBAAyB,EAAC,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EACH,oBAAoB,GAEvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAC,8BAA8B,EAAC,MAAM,sBAAsB,CAAC;AACpE,OAAO,EACH,+BAA+B,EAC/B,4BAA4B,EAC5B,0BAA0B,EAC1B,2BAA2B,
|
|
1
|
+
{"version":3,"file":"run-agent-mode.js","sourceRoot":"","sources":["../../../src/agent/interactive/run-agent-mode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type AgentSessionRuntimeDiagnostic, type TuiMode } from '@earendil-works/pi-coding-agent';
|
|
1
|
+
import { type AgentSessionRuntimeDiagnostic, type CacheWarmingMode, type TuiMode } from '@earendil-works/pi-coding-agent';
|
|
2
2
|
type SettingsError = {
|
|
3
3
|
scope: 'global' | 'project';
|
|
4
4
|
error: Error;
|
|
@@ -11,26 +11,48 @@ export interface ResolvedBkperAgentTools {
|
|
|
11
11
|
tools: string[];
|
|
12
12
|
warning?: string;
|
|
13
13
|
}
|
|
14
|
-
export declare function resolveBkperAgentTools(configuredTools: string[] | undefined, platform: NodeJS.Platform, availability: ShellAvailability): ResolvedBkperAgentTools;
|
|
15
|
-
type
|
|
14
|
+
export declare function resolveBkperAgentTools(configuredTools: string[] | undefined, platform: NodeJS.Platform, availability: ShellAvailability, toolModifiers?: string[]): ResolvedBkperAgentTools;
|
|
15
|
+
type DefaultToolsSettingsManager = {
|
|
16
16
|
getDefaultTools(): string[] | undefined;
|
|
17
|
-
getShellPath(): string | undefined;
|
|
18
17
|
applyOverrides(overrides: {
|
|
19
18
|
defaultTools: string[];
|
|
20
19
|
}): void;
|
|
21
20
|
};
|
|
21
|
+
type BkperAgentToolSettingsManager = DefaultToolsSettingsManager & {
|
|
22
|
+
getGlobalSettings(): {
|
|
23
|
+
defaultTools?: string[];
|
|
24
|
+
};
|
|
25
|
+
getProjectSettings(): {
|
|
26
|
+
defaultTools?: string[];
|
|
27
|
+
};
|
|
28
|
+
getShellPath(): string | undefined;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Replaces the effective `defaultTools` selection. Pi appends an override without plain tool
|
|
32
|
+
* names, including an empty list, to the inherited selection, so an empty selection is
|
|
33
|
+
* expressed as removal of every currently selected tool.
|
|
34
|
+
*/
|
|
35
|
+
export declare function overrideDefaultTools(settingsManager: DefaultToolsSettingsManager, tools: string[]): void;
|
|
22
36
|
export declare function applyBkperAgentToolSelection(settingsManager: BkperAgentToolSettingsManager, platform?: NodeJS.Platform): AgentSessionRuntimeDiagnostic[];
|
|
37
|
+
type WarningSettings = {
|
|
38
|
+
anthropicExtraUsage?: boolean;
|
|
39
|
+
};
|
|
23
40
|
type BkperAgentSettingsDefaultsManager = {
|
|
24
41
|
getGlobalSettings(): {
|
|
25
42
|
showCacheMissNotices?: boolean;
|
|
26
43
|
tuiMode?: TuiMode;
|
|
44
|
+
cacheWarming?: CacheWarmingMode;
|
|
45
|
+
warnings?: WarningSettings;
|
|
27
46
|
};
|
|
28
47
|
getProjectSettings(): {
|
|
29
48
|
showCacheMissNotices?: boolean;
|
|
30
49
|
tuiMode?: TuiMode;
|
|
50
|
+
warnings?: WarningSettings;
|
|
31
51
|
};
|
|
32
52
|
setShowCacheMissNotices(show: boolean): void;
|
|
33
53
|
setTuiMode(mode: TuiMode): void;
|
|
54
|
+
setCacheWarmingMode(mode: CacheWarmingMode): void;
|
|
55
|
+
setWarnings(warnings: WarningSettings): void;
|
|
34
56
|
};
|
|
35
57
|
export declare function applyBkperAgentSettingsDefaults(settingsManager: BkperAgentSettingsDefaultsManager): void;
|
|
36
58
|
export declare function collectSettingsDiagnostics(settingsManager: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../src/agent/interactive/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,KAAK,6BAA6B,EAClC,KAAK,OAAO,EACf,MAAM,iCAAiC,CAAC;AAEzC,KAAK,aAAa,GAAG;IACjB,KAAK,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC5B,KAAK,EAAE,KAAK,CAAC;CAChB,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACpC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../src/agent/interactive/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,KAAK,6BAA6B,EAClC,KAAK,gBAAgB,EACrB,KAAK,OAAO,EACf,MAAM,iCAAiC,CAAC;AAEzC,KAAK,aAAa,GAAG;IACjB,KAAK,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC5B,KAAK,EAAE,KAAK,CAAC;CAChB,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACpC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAmED,wBAAgB,sBAAsB,CAClC,eAAe,EAAE,MAAM,EAAE,GAAG,SAAS,EACrC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,YAAY,EAAE,iBAAiB,EAC/B,aAAa,GAAE,MAAM,EAAO,GAC7B,uBAAuB,CAmBzB;AAyBD,KAAK,2BAA2B,GAAG;IAC/B,eAAe,IAAI,MAAM,EAAE,GAAG,SAAS,CAAC;IACxC,cAAc,CAAC,SAAS,EAAE;QAAC,YAAY,EAAE,MAAM,EAAE,CAAA;KAAC,GAAG,IAAI,CAAC;CAC7D,CAAC;AAEF,KAAK,6BAA6B,GAAG,2BAA2B,GAAG;IAC/D,iBAAiB,IAAI;QAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;KAAC,CAAC;IAC/C,kBAAkB,IAAI;QAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;KAAC,CAAC;IAChD,YAAY,IAAI,MAAM,GAAG,SAAS,CAAC;CACtC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,oBAAoB,CAChC,eAAe,EAAE,2BAA2B,EAC5C,KAAK,EAAE,MAAM,EAAE,GAChB,IAAI,CAON;AAWD,wBAAgB,4BAA4B,CACxC,eAAe,EAAE,6BAA6B,EAC9C,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC7C,6BAA6B,EAAE,CAwBjC;AAED,KAAK,eAAe,GAAG;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC;AAEF,KAAK,iCAAiC,GAAG;IACrC,iBAAiB,IAAI;QACjB,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,YAAY,CAAC,EAAE,gBAAgB,CAAC;QAChC,QAAQ,CAAC,EAAE,eAAe,CAAC;KAC9B,CAAC;IACF,kBAAkB,IAAI;QAClB,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,QAAQ,CAAC,EAAE,eAAe,CAAC;KAC9B,CAAC;IACF,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7C,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAClD,WAAW,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAC;CAChD,CAAC;AAEF,wBAAgB,+BAA+B,CAC3C,eAAe,EAAE,iCAAiC,GACnD,IAAI,CAoCN;AAED,wBAAgB,0BAA0B,CACtC,eAAe,EAAE;IAAC,WAAW,IAAI,aAAa,EAAE,CAAA;CAAC,EACjD,OAAO,EAAE,MAAM,GAChB,6BAA6B,EAAE,CAKjC;AAED,wBAAgB,2BAA2B,CAAC,eAAe,EACvD,GAAG,EAAE,MAAM,EACX,eAAe,EAAE;IAAC,aAAa,IAAI,MAAM,GAAG,SAAS,CAAA;CAAC,EACtD,oBAAoB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,eAAe,GAC5E,eAAe,CAEjB"}
|
|
@@ -1,32 +1,100 @@
|
|
|
1
1
|
import { getPowerShellConfig, getShellConfig, } from '@earendil-works/pi-coding-agent';
|
|
2
|
-
|
|
2
|
+
// Always selected so the tool set, and with it the prompt cache, stays stable across turns.
|
|
3
|
+
const CODEMODE_TOOL = 'codemode';
|
|
4
|
+
function isToolModifier(entry) {
|
|
5
|
+
return typeof entry === 'string' && (entry.startsWith('+') || entry.startsWith('-'));
|
|
6
|
+
}
|
|
7
|
+
/** Applies `+name`/`-name` entries in order, as Pi does for `defaultTools`. */
|
|
8
|
+
function applyToolModifiers(tools, modifiers) {
|
|
9
|
+
const result = [...tools];
|
|
10
|
+
for (const modifier of modifiers) {
|
|
11
|
+
const name = modifier.slice(1);
|
|
12
|
+
const index = result.indexOf(name);
|
|
13
|
+
if (modifier.startsWith('+') && index === -1 && name) {
|
|
14
|
+
result.push(name);
|
|
15
|
+
}
|
|
16
|
+
else if (modifier.startsWith('-') && index !== -1) {
|
|
17
|
+
result.splice(index, 1);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return result;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Pi resolves a `defaultTools` selection without plain tool names in any settings layer against
|
|
24
|
+
* its own defaults, which lack codemode and PowerShell. Returns those modifiers, global layer
|
|
25
|
+
* first, so they can be applied to the Bkper defaults instead.
|
|
26
|
+
*/
|
|
27
|
+
function getModifierOnlyToolSelection(layers) {
|
|
28
|
+
const modifiers = [];
|
|
29
|
+
for (const layer of layers) {
|
|
30
|
+
if (layer === undefined) {
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
if (!isModifierList(layer)) {
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
modifiers.push(...layer);
|
|
37
|
+
}
|
|
38
|
+
return modifiers.length > 0 ? modifiers : undefined;
|
|
39
|
+
}
|
|
40
|
+
function isModifierList(layer) {
|
|
41
|
+
return Array.isArray(layer) && layer.every(isToolModifier);
|
|
42
|
+
}
|
|
43
|
+
function disableUnavailableShells(configuredTools, availability) {
|
|
44
|
+
const unavailableShells = configuredTools.filter(tool => (tool === 'bash' && !availability.bash) ||
|
|
45
|
+
(tool === 'powershell' && !availability.powershell));
|
|
46
|
+
const tools = configuredTools.filter(tool => !unavailableShells.includes(tool));
|
|
47
|
+
return unavailableShells.length > 0
|
|
48
|
+
? {
|
|
49
|
+
tools,
|
|
50
|
+
warning: `Unavailable configured shell tools were disabled: ${unavailableShells.join(', ')}.`,
|
|
51
|
+
}
|
|
52
|
+
: { tools };
|
|
53
|
+
}
|
|
54
|
+
export function resolveBkperAgentTools(configuredTools, platform, availability, toolModifiers = []) {
|
|
3
55
|
if (configuredTools) {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
tools,
|
|
10
|
-
warning: `Unavailable configured shell tools were disabled: ${unavailableShells.join(', ')}.`,
|
|
11
|
-
}
|
|
12
|
-
: { tools };
|
|
56
|
+
return disableUnavailableShells(configuredTools, availability);
|
|
57
|
+
}
|
|
58
|
+
const defaults = selectDefaultBkperAgentTools(platform, availability);
|
|
59
|
+
if (toolModifiers.length === 0) {
|
|
60
|
+
return defaults;
|
|
13
61
|
}
|
|
62
|
+
const modified = disableUnavailableShells(applyToolModifiers(defaults.tools, toolModifiers), availability);
|
|
63
|
+
const warnings = [defaults.warning, modified.warning].filter((warning) => warning !== undefined);
|
|
64
|
+
return warnings.length > 0
|
|
65
|
+
? { tools: modified.tools, warning: warnings.join(' ') }
|
|
66
|
+
: { tools: modified.tools };
|
|
67
|
+
}
|
|
68
|
+
function selectDefaultBkperAgentTools(platform, availability) {
|
|
14
69
|
if (platform === 'win32' && availability.powershell) {
|
|
15
|
-
return { tools: ['read', 'powershell', 'edit', 'write'] };
|
|
70
|
+
return { tools: ['read', 'powershell', 'edit', 'write', CODEMODE_TOOL] };
|
|
16
71
|
}
|
|
17
72
|
if (availability.bash) {
|
|
18
73
|
return platform === 'win32'
|
|
19
74
|
? {
|
|
20
|
-
tools: ['read', 'bash', 'edit', 'write'],
|
|
75
|
+
tools: ['read', 'bash', 'edit', 'write', CODEMODE_TOOL],
|
|
21
76
|
warning: 'PowerShell is unavailable; using Bash instead.',
|
|
22
77
|
}
|
|
23
|
-
: { tools: ['read', 'bash', 'edit', 'write'] };
|
|
78
|
+
: { tools: ['read', 'bash', 'edit', 'write', CODEMODE_TOOL] };
|
|
24
79
|
}
|
|
25
80
|
return {
|
|
26
|
-
tools: ['read', 'edit', 'write'],
|
|
81
|
+
tools: ['read', 'edit', 'write', CODEMODE_TOOL],
|
|
27
82
|
warning: 'No supported shell is available; command execution is disabled.',
|
|
28
83
|
};
|
|
29
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* Replaces the effective `defaultTools` selection. Pi appends an override without plain tool
|
|
87
|
+
* names, including an empty list, to the inherited selection, so an empty selection is
|
|
88
|
+
* expressed as removal of every currently selected tool.
|
|
89
|
+
*/
|
|
90
|
+
export function overrideDefaultTools(settingsManager, tools) {
|
|
91
|
+
var _a;
|
|
92
|
+
settingsManager.applyOverrides({
|
|
93
|
+
defaultTools: tools.length > 0
|
|
94
|
+
? tools
|
|
95
|
+
: ((_a = settingsManager.getDefaultTools()) !== null && _a !== void 0 ? _a : []).map(tool => `-${tool}`),
|
|
96
|
+
});
|
|
97
|
+
}
|
|
30
98
|
function canResolveShell(resolve) {
|
|
31
99
|
try {
|
|
32
100
|
resolve();
|
|
@@ -44,11 +112,18 @@ export function applyBkperAgentToolSelection(settingsManager, platform = process
|
|
|
44
112
|
powershell: effectivePlatform === 'win32' &&
|
|
45
113
|
(forceWindows || canResolveShell(() => getPowerShellConfig())),
|
|
46
114
|
};
|
|
47
|
-
const
|
|
48
|
-
|
|
115
|
+
const toolModifiers = getModifierOnlyToolSelection([
|
|
116
|
+
settingsManager.getGlobalSettings().defaultTools,
|
|
117
|
+
settingsManager.getProjectSettings().defaultTools,
|
|
118
|
+
]);
|
|
119
|
+
const resolved = toolModifiers
|
|
120
|
+
? resolveBkperAgentTools(undefined, effectivePlatform, availability, toolModifiers)
|
|
121
|
+
: resolveBkperAgentTools(settingsManager.getDefaultTools(), effectivePlatform, availability);
|
|
122
|
+
overrideDefaultTools(settingsManager, resolved.tools);
|
|
49
123
|
return resolved.warning ? [{ type: 'warning', message: resolved.warning }] : [];
|
|
50
124
|
}
|
|
51
125
|
export function applyBkperAgentSettingsDefaults(settingsManager) {
|
|
126
|
+
var _a, _b;
|
|
52
127
|
const globalSettings = settingsManager.getGlobalSettings();
|
|
53
128
|
const projectSettings = settingsManager.getProjectSettings();
|
|
54
129
|
const hasExplicitCacheMissNotices = [
|
|
@@ -62,6 +137,21 @@ export function applyBkperAgentSettingsDefaults(settingsManager) {
|
|
|
62
137
|
if (!hasExplicitTuiMode) {
|
|
63
138
|
settingsManager.setTuiMode('fullscreen');
|
|
64
139
|
}
|
|
140
|
+
const hasExplicitAnthropicExtraUsageWarning = [
|
|
141
|
+
(_a = globalSettings.warnings) === null || _a === void 0 ? void 0 : _a.anthropicExtraUsage,
|
|
142
|
+
(_b = projectSettings.warnings) === null || _b === void 0 ? void 0 : _b.anthropicExtraUsage,
|
|
143
|
+
].some(value => value !== undefined);
|
|
144
|
+
// Pi warns about Anthropic subscription extra usage by default; the Bkper agent opts out.
|
|
145
|
+
// setWarnings replaces the global warnings object, so keep any other global warning keys.
|
|
146
|
+
if (!hasExplicitAnthropicExtraUsageWarning) {
|
|
147
|
+
settingsManager.setWarnings(Object.assign(Object.assign({}, globalSettings.warnings), { anthropicExtraUsage: false }));
|
|
148
|
+
}
|
|
149
|
+
// Pi reads cacheWarming from global settings only. Idle warming bridges the pauses
|
|
150
|
+
// between prompts; Pi warms only models with a known cache lifetime and only when
|
|
151
|
+
// the expected savings outweigh the refresh cost.
|
|
152
|
+
if (globalSettings.cacheWarming === undefined) {
|
|
153
|
+
settingsManager.setCacheWarmingMode('idle');
|
|
154
|
+
}
|
|
65
155
|
}
|
|
66
156
|
export function collectSettingsDiagnostics(settingsManager, context) {
|
|
67
157
|
return settingsManager.drainErrors().map(({ scope, error }) => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/agent/interactive/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EACnB,cAAc,
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/agent/interactive/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EACnB,cAAc,GAIjB,MAAM,iCAAiC,CAAC;AAiBzC,4FAA4F;AAC5F,MAAM,aAAa,GAAG,UAAU,CAAC;AAEjC,SAAS,cAAc,CAAC,KAAc;IAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AACzF,CAAC;AAED,+EAA+E;AAC/E,SAAS,kBAAkB,CAAC,KAAe,EAAE,SAAmB;IAC5D,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IAC1B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;YACnD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;aAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YAClD,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5B,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,SAAS,4BAA4B,CAAC,MAAiB;IACnD,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,SAAS;QACb,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AACxD,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IAClC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,wBAAwB,CAC7B,eAAyB,EACzB,YAA+B;IAE/B,MAAM,iBAAiB,GAAG,eAAe,CAAC,MAAM,CAC5C,IAAI,CAAC,EAAE,CACH,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;QACvC,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAC1D,CAAC;IACF,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAChF,OAAO,iBAAiB,CAAC,MAAM,GAAG,CAAC;QAC/B,CAAC,CAAC;YACI,KAAK;YACL,OAAO,EAAE,qDAAqD,iBAAiB,CAAC,IAAI,CAChF,IAAI,CACP,GAAG;SACP;QACH,CAAC,CAAC,EAAC,KAAK,EAAC,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAClC,eAAqC,EACrC,QAAyB,EACzB,YAA+B,EAC/B,gBAA0B,EAAE;IAE5B,IAAI,eAAe,EAAE,CAAC;QAClB,OAAO,wBAAwB,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,QAAQ,GAAG,4BAA4B,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACtE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,QAAQ,CAAC;IACpB,CAAC;IACD,MAAM,QAAQ,GAAG,wBAAwB,CACrC,kBAAkB,CAAC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,EACjD,YAAY,CACf,CAAC;IACF,MAAM,QAAQ,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,CACxD,CAAC,OAAO,EAAqB,EAAE,CAAC,OAAO,KAAK,SAAS,CACxD,CAAC;IACF,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC;QACtB,CAAC,CAAC,EAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC;QACtD,CAAC,CAAC,EAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAC,CAAC;AAClC,CAAC;AAED,SAAS,4BAA4B,CACjC,QAAyB,EACzB,YAA+B;IAE/B,IAAI,QAAQ,KAAK,OAAO,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC;QAClD,OAAO,EAAC,KAAK,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,EAAC,CAAC;IAC3E,CAAC;IAED,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC;QACpB,OAAO,QAAQ,KAAK,OAAO;YACvB,CAAC,CAAC;gBACI,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC;gBACvD,OAAO,EAAE,gDAAgD;aAC5D;YACH,CAAC,CAAC,EAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,EAAC,CAAC;IACpE,CAAC;IAED,OAAO;QACH,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC;QAC/C,OAAO,EAAE,iEAAiE;KAC7E,CAAC;AACN,CAAC;AAaD;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAChC,eAA4C,EAC5C,KAAe;;IAEf,eAAe,CAAC,cAAc,CAAC;QAC3B,YAAY,EACR,KAAK,CAAC,MAAM,GAAG,CAAC;YACZ,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,CAAC,MAAA,eAAe,CAAC,eAAe,EAAE,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;KAC9E,CAAC,CAAC;AACP,CAAC;AAED,SAAS,eAAe,CAAC,OAAsB;IAC3C,IAAI,CAAC;QACD,OAAO,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IAChB,CAAC;IAAC,WAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAED,MAAM,UAAU,4BAA4B,CACxC,eAA8C,EAC9C,WAA4B,OAAO,CAAC,QAAQ;IAE5C,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,OAAO,CAAC;IACxE,MAAM,iBAAiB,GAAG,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC5D,MAAM,YAAY,GAAG;QACjB,IAAI,EAAE,eAAe,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC,CAAC;QAC3E,UAAU,EACN,iBAAiB,KAAK,OAAO;YAC7B,CAAC,YAAY,IAAI,eAAe,CAAC,GAAG,EAAE,CAAC,mBAAmB,EAAE,CAAC,CAAC;KACrE,CAAC;IACF,MAAM,aAAa,GAAG,4BAA4B,CAAC;QAC/C,eAAe,CAAC,iBAAiB,EAAE,CAAC,YAAY;QAChD,eAAe,CAAC,kBAAkB,EAAE,CAAC,YAAY;KACpD,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,aAAa;QAC1B,CAAC,CAAC,sBAAsB,CAAC,SAAS,EAAE,iBAAiB,EAAE,YAAY,EAAE,aAAa,CAAC;QACnF,CAAC,CAAC,sBAAsB,CAClB,eAAe,CAAC,eAAe,EAAE,EACjC,iBAAiB,EACjB,YAAY,CACf,CAAC;IAER,oBAAoB,CAAC,eAAe,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEtD,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAClF,CAAC;AAwBD,MAAM,UAAU,+BAA+B,CAC3C,eAAkD;;IAElD,MAAM,cAAc,GAAG,eAAe,CAAC,iBAAiB,EAAE,CAAC;IAC3D,MAAM,eAAe,GAAG,eAAe,CAAC,kBAAkB,EAAE,CAAC;IAC7D,MAAM,2BAA2B,GAAG;QAChC,cAAc,CAAC,oBAAoB;QACnC,eAAe,CAAC,oBAAoB;KACvC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;IACrC,MAAM,kBAAkB,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,CAC7E,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,SAAS,CAC/B,CAAC;IAEF,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAC/B,eAAe,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACtB,eAAe,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,qCAAqC,GAAG;QAC1C,MAAA,cAAc,CAAC,QAAQ,0CAAE,mBAAmB;QAC5C,MAAA,eAAe,CAAC,QAAQ,0CAAE,mBAAmB;KAChD,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;IAErC,0FAA0F;IAC1F,0FAA0F;IAC1F,IAAI,CAAC,qCAAqC,EAAE,CAAC;QACzC,eAAe,CAAC,WAAW,iCAAK,cAAc,CAAC,QAAQ,KAAE,mBAAmB,EAAE,KAAK,IAAE,CAAC;IAC1F,CAAC;IAED,mFAAmF;IACnF,kFAAkF;IAClF,kDAAkD;IAClD,IAAI,cAAc,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QAC5C,eAAe,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;AACL,CAAC;AAED,MAAM,UAAU,0BAA0B,CACtC,eAAiD,EACjD,OAAe;IAEf,OAAO,eAAe,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,EAAC,KAAK,EAAE,KAAK,EAAC,EAAE,EAAE,CAAC,CAAC;QAC1D,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,IAAI,OAAO,KAAK,KAAK,cAAc,KAAK,CAAC,OAAO,EAAE;KAC9D,CAAC,CAAC,CAAC;AACR,CAAC;AAED,MAAM,UAAU,2BAA2B,CACvC,GAAW,EACX,eAAsD,EACtD,oBAA2E;IAE3E,OAAO,oBAAoB,CAAC,GAAG,EAAE,eAAe,CAAC,aAAa,EAAE,CAAC,CAAC;AACtE,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** Pi theme setting that picks the Bkper light or dark theme from the terminal's appearance. */
|
|
2
|
+
export declare const BKPER_THEME_SETTING = "bkper-light/bkper-dark";
|
|
3
|
+
/** Directory of the bundled Bkper themes; `lib/agent/themes` in builds, `src/agent/themes` in sources. */
|
|
4
|
+
export declare function getBkperThemesDir(moduleDir?: string): string;
|
|
5
|
+
/**
|
|
6
|
+
* The theme setting for this invocation. Pi saves one of its built-in themes (system, dark, or
|
|
7
|
+
* light) at first run, so those are replaced by their Bkper counterparts; custom themes are kept.
|
|
8
|
+
* Nothing is saved, because Bkper shares its settings file with Pi, which does not load these themes.
|
|
9
|
+
*/
|
|
10
|
+
export declare function resolveBkperInitialThemeSetting(settingsManager: {
|
|
11
|
+
getThemeSetting(): string | undefined;
|
|
12
|
+
}): string | undefined;
|
|
13
|
+
//# sourceMappingURL=themes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"themes.d.ts","sourceRoot":"","sources":["../../../src/agent/interactive/themes.ts"],"names":[],"mappings":"AAGA,gGAAgG;AAChG,eAAO,MAAM,mBAAmB,2BAA2B,CAAC;AAE5D,0GAA0G;AAC1G,wBAAgB,iBAAiB,CAC7B,SAAS,GAAE,MAAqD,GACjE,MAAM,CAER;AAYD;;;;GAIG;AACH,wBAAgB,+BAA+B,CAAC,eAAe,EAAE;IAC7D,eAAe,IAAI,MAAM,GAAG,SAAS,CAAC;CACzC,GAAG,MAAM,GAAG,SAAS,CAYrB"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { fileURLToPath } from 'node:url';
|
|
3
|
+
/** Pi theme setting that picks the Bkper light or dark theme from the terminal's appearance. */
|
|
4
|
+
export const BKPER_THEME_SETTING = 'bkper-light/bkper-dark';
|
|
5
|
+
/** Directory of the bundled Bkper themes; `lib/agent/themes` in builds, `src/agent/themes` in sources. */
|
|
6
|
+
export function getBkperThemesDir(moduleDir = path.dirname(fileURLToPath(import.meta.url))) {
|
|
7
|
+
return path.resolve(moduleDir, '..', 'themes');
|
|
8
|
+
}
|
|
9
|
+
const [BKPER_LIGHT_THEME, BKPER_DARK_THEME] = BKPER_THEME_SETTING.split('/');
|
|
10
|
+
/** Bkper's counterpart of a Pi built-in theme in a light or dark slot, or the theme itself. */
|
|
11
|
+
function toBkperTheme(theme, appearance) {
|
|
12
|
+
if (theme === 'light')
|
|
13
|
+
return BKPER_LIGHT_THEME;
|
|
14
|
+
if (theme === 'dark')
|
|
15
|
+
return BKPER_DARK_THEME;
|
|
16
|
+
if (theme === 'system')
|
|
17
|
+
return appearance === 'light' ? BKPER_LIGHT_THEME : BKPER_DARK_THEME;
|
|
18
|
+
return theme;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* The theme setting for this invocation. Pi saves one of its built-in themes (system, dark, or
|
|
22
|
+
* light) at first run, so those are replaced by their Bkper counterparts; custom themes are kept.
|
|
23
|
+
* Nothing is saved, because Bkper shares its settings file with Pi, which does not load these themes.
|
|
24
|
+
*/
|
|
25
|
+
export function resolveBkperInitialThemeSetting(settingsManager) {
|
|
26
|
+
const setting = settingsManager.getThemeSetting();
|
|
27
|
+
if (setting === undefined || setting === 'system') {
|
|
28
|
+
return BKPER_THEME_SETTING;
|
|
29
|
+
}
|
|
30
|
+
const slots = setting.split('/');
|
|
31
|
+
const resolved = slots.length === 2
|
|
32
|
+
? `${toBkperTheme(slots[0], 'light')}/${toBkperTheme(slots[1], 'dark')}`
|
|
33
|
+
: toBkperTheme(setting, 'dark');
|
|
34
|
+
return resolved === setting ? undefined : resolved;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=themes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"themes.js","sourceRoot":"","sources":["../../../src/agent/interactive/themes.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAC,aAAa,EAAC,MAAM,UAAU,CAAC;AAEvC,gGAAgG;AAChG,MAAM,CAAC,MAAM,mBAAmB,GAAG,wBAAwB,CAAC;AAE5D,0GAA0G;AAC1G,MAAM,UAAU,iBAAiB,CAC7B,YAAoB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEhE,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,GAAG,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAE7E,+FAA+F;AAC/F,SAAS,YAAY,CAAC,KAAa,EAAE,UAA4B;IAC7D,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,iBAAiB,CAAC;IAChD,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,gBAAgB,CAAC;IAC9C,IAAI,KAAK,KAAK,QAAQ;QAAE,OAAO,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAC7F,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,+BAA+B,CAAC,eAE/C;IACG,MAAM,OAAO,GAAG,eAAe,CAAC,eAAe,EAAE,CAAC;IAClD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,mBAAmB,CAAC;IAC/B,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,QAAQ,GACV,KAAK,CAAC,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE;QACxE,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;AACvD,CAAC"}
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type UpdateNotice } from '../upgrade/index.js';
|
|
2
2
|
type NotificationType = 'info' | 'warning' | 'error';
|
|
3
3
|
export interface StartupMaintenanceCallbacks {
|
|
4
4
|
notify: (message: string, type?: NotificationType) => void;
|
|
5
5
|
}
|
|
6
6
|
export interface StartupMaintenanceDependencies {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
startDetachedUpgrade: (method: InstallMethod, version: string) => void;
|
|
7
|
+
readNotice: () => UpdateNotice | undefined;
|
|
8
|
+
startUpdateCheck: () => boolean;
|
|
10
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* Reports the outcome of the last background update and starts the daily
|
|
12
|
+
* check. The install itself runs in the detached update worker.
|
|
13
|
+
*/
|
|
11
14
|
export declare function runStartupMaintenance(callbacks: StartupMaintenanceCallbacks, dependencies?: StartupMaintenanceDependencies): Promise<void>;
|
|
12
15
|
export {};
|
|
13
16
|
//# sourceMappingURL=startup-maintenance.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startup-maintenance.d.ts","sourceRoot":"","sources":["../../src/agent/startup-maintenance.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"startup-maintenance.d.ts","sourceRoot":"","sources":["../../src/agent/startup-maintenance.ts"],"names":[],"mappings":"AAAA,OAAO,EAMH,KAAK,YAAY,EACpB,MAAM,qBAAqB,CAAC;AAE7B,KAAK,gBAAgB,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAErD,MAAM,WAAW,2BAA2B;IACxC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAC9D;AAED,MAAM,WAAW,8BAA8B;IAC3C,UAAU,EAAE,MAAM,YAAY,GAAG,SAAS,CAAC;IAC3C,gBAAgB,EAAE,MAAM,OAAO,CAAC;CACnC;AASD;;;GAGG;AACH,wBAAsB,qBAAqB,CACvC,SAAS,EAAE,2BAA2B,EACtC,YAAY,GAAE,8BAA4D,GAC3E,OAAO,CAAC,IAAI,CAAC,CAiBf"}
|
|
@@ -7,46 +7,30 @@ 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 {
|
|
10
|
+
import { formatUpdateNotice, getUpdateNotice, isUpdateCheckDisabled, maybeStartUpdateCheck, readUpdateState, } from '../upgrade/index.js';
|
|
11
11
|
function createDefaultDependencies() {
|
|
12
12
|
return {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
startDetachedUpgrade,
|
|
13
|
+
readNotice: () => getUpdateNotice(readUpdateState()),
|
|
14
|
+
startUpdateCheck: () => maybeStartUpdateCheck(),
|
|
16
15
|
};
|
|
17
16
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Reports the outcome of the last background update and starts the daily
|
|
19
|
+
* check. The install itself runs in the detached update worker.
|
|
20
|
+
*/
|
|
21
21
|
export function runStartupMaintenance(callbacks_1) {
|
|
22
22
|
return __awaiter(this, arguments, void 0, function* (callbacks, dependencies = createDefaultDependencies()) {
|
|
23
|
-
if (
|
|
23
|
+
if (isUpdateCheckDisabled()) {
|
|
24
24
|
return;
|
|
25
25
|
}
|
|
26
26
|
try {
|
|
27
|
-
const
|
|
28
|
-
if (
|
|
29
|
-
|
|
30
|
-
}
|
|
31
|
-
if (availableUpgrade.method === 'unknown') {
|
|
32
|
-
callbacks.notify(getManualUpgradeMessage(availableUpgrade.latest), 'warning');
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
if (yield dependencies.isVersionInstalled(availableUpgrade.method, availableUpgrade.latest)) {
|
|
36
|
-
callbacks.notify(`bkper ${availableUpgrade.latest} is already installed. ` +
|
|
37
|
-
`Restart this session to use it.`, 'info');
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
try {
|
|
41
|
-
dependencies.startDetachedUpgrade(availableUpgrade.method, availableUpgrade.latest);
|
|
42
|
-
callbacks.notify(`Updating bkper to ${availableUpgrade.latest} in background. ` +
|
|
43
|
-
`Restart later to use it.`, 'info');
|
|
44
|
-
}
|
|
45
|
-
catch (_a) {
|
|
46
|
-
callbacks.notify(getManualUpgradeMessage(availableUpgrade.latest), 'warning');
|
|
27
|
+
const notice = dependencies.readNotice();
|
|
28
|
+
if (notice) {
|
|
29
|
+
callbacks.notify(formatUpdateNotice(notice), notice.kind === 'installed' ? 'info' : 'warning');
|
|
47
30
|
}
|
|
31
|
+
dependencies.startUpdateCheck();
|
|
48
32
|
}
|
|
49
|
-
catch (
|
|
33
|
+
catch (_a) {
|
|
50
34
|
// Silent failure — never break the TUI
|
|
51
35
|
}
|
|
52
36
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startup-maintenance.js","sourceRoot":"","sources":["../../src/agent/startup-maintenance.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACH,
|
|
1
|
+
{"version":3,"file":"startup-maintenance.js","sourceRoot":"","sources":["../../src/agent/startup-maintenance.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACH,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,GAElB,MAAM,qBAAqB,CAAC;AAa7B,SAAS,yBAAyB;IAC9B,OAAO;QACH,UAAU,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC;QACpD,gBAAgB,EAAE,GAAG,EAAE,CAAC,qBAAqB,EAAE;KAClD,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,MAAM,UAAgB,qBAAqB;yDACvC,SAAsC,EACtC,eAA+C,yBAAyB,EAAE;QAE1E,IAAI,qBAAqB,EAAE,EAAE,CAAC;YAC1B,OAAO;QACX,CAAC;QAED,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,EAAE,CAAC;YACzC,IAAI,MAAM,EAAE,CAAC;gBACT,SAAS,CAAC,MAAM,CACZ,kBAAkB,CAAC,MAAM,CAAC,EAC1B,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CACnD,CAAC;YACN,CAAC;YACD,YAAY,CAAC,gBAAgB,EAAE,CAAC;QACpC,CAAC;QAAC,WAAM,CAAC;YACL,uCAAuC;QAC3C,CAAC;IACL,CAAC;CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../src/agent/system-prompt.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../src/agent/system-prompt.ts"],"names":[],"mappings":"AA2IA,wBAAgB,yBAAyB,CACrC,aAAa,GAAE,MAAM,EAAsC,GAC5D,MAAM,CAsDR;AA4BD,eAAO,MAAM,yBAAyB,QAKpC,CAAC"}
|
|
@@ -67,14 +67,23 @@ function getCodingToolDefinitions(selectedTools) {
|
|
|
67
67
|
createWriteToolDefinition(process.cwd()),
|
|
68
68
|
].filter(definition => selectedTools.includes(definition.name));
|
|
69
69
|
}
|
|
70
|
+
// Pi drops tool prompt snippets and guidelines when the system prompt is replaced, and does not
|
|
71
|
+
// export codemode's, so Bkper describes codemode itself.
|
|
72
|
+
const CODEMODE_PROMPT_SNIPPET = 'Run JavaScript that calls other tools (chains, loops, Promise.all, filtering large results)';
|
|
73
|
+
const CODEMODE_PROMPT_GUIDELINES = [
|
|
74
|
+
'Use codemode, not shell loops or jq pipelines, to repeat commands across items, chain their output, or filter large results.',
|
|
75
|
+
'Book writes in a codemode script need the same confirmation as single commands: resolve targets read-only, show the script and changes, run only after the user confirms, and report each item\'s result.',
|
|
76
|
+
];
|
|
70
77
|
function buildToolPromptSection(selectedTools) {
|
|
71
78
|
const toolDefinitions = getCodingToolDefinitions(selectedTools);
|
|
72
|
-
const
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
79
|
+
const hasCodemode = selectedTools.includes('codemode');
|
|
80
|
+
const toolLines = [
|
|
81
|
+
...toolDefinitions.flatMap(definition => {
|
|
82
|
+
const snippet = normalizePromptSnippet(definition.promptSnippet);
|
|
83
|
+
return snippet ? [`- ${definition.name}: ${snippet}`] : [];
|
|
84
|
+
}),
|
|
85
|
+
...(hasCodemode ? [`- codemode: ${CODEMODE_PROMPT_SNIPPET}`] : []),
|
|
86
|
+
].join('\n');
|
|
78
87
|
const guidelineLines = [];
|
|
79
88
|
const seenGuidelines = new Set();
|
|
80
89
|
const addGuideline = (guideline) => {
|
|
@@ -96,6 +105,9 @@ function buildToolPromptSection(selectedTools) {
|
|
|
96
105
|
addGuideline(guideline);
|
|
97
106
|
}
|
|
98
107
|
}
|
|
108
|
+
if (hasCodemode) {
|
|
109
|
+
CODEMODE_PROMPT_GUIDELINES.forEach(addGuideline);
|
|
110
|
+
}
|
|
99
111
|
addGuideline('Do not claim builds, tests, or command results unless you actually ran them.');
|
|
100
112
|
const toolsList = toolLines.length > 0 ? toolLines : '(none)';
|
|
101
113
|
return `Available tools:\n${toolsList}\n\nIn addition to the tools above, you may have access to other custom tools depending on the project.\n\nGuidelines:\n${guidelineLines.join('\n')}`;
|
|
@@ -136,7 +148,7 @@ ${referenceDocsDir}
|
|
|
136
148
|
- ALWAYS read index docs and follow references to specific docs before running any bkper CLI command.
|
|
137
149
|
- For generic engineering work unrelated to Bkper, do not load Bkper reference docs unless directly relevant.
|
|
138
150
|
- When scope is unclear, inspect local files and project instructions first; load reference docs only after identifying a concrete need.
|
|
139
|
-
- If the task involves building or debugging pi extensions, custom tools, themes, or skills — read the pi docs directory and follow cross-references within:
|
|
151
|
+
- If the task involves building or debugging pi extensions, custom tools, themes, or skills — read the pi docs directory and follow cross-references within. Pi CLI commands in those docs run as \`bkper agent <command>\` (for example, \`pi mcp add\` is \`bkper agent mcp add\`):
|
|
140
152
|
|
|
141
153
|
\`\`\`
|
|
142
154
|
${piDocsPath}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../src/agent/system-prompt.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../src/agent/system-prompt.ts"],"names":[],"mappings":"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"}
|