bkper 4.22.2 → 4.24.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.
Files changed (70) hide show
  1. package/README.md +6 -0
  2. package/lib/agent/{auth-commands.d.ts → extensions/auth-commands.d.ts} +1 -1
  3. package/lib/agent/extensions/auth-commands.d.ts.map +1 -0
  4. package/lib/agent/{auth-commands.js → extensions/auth-commands.js} +1 -1
  5. package/lib/agent/extensions/auth-commands.js.map +1 -0
  6. package/lib/agent/extensions/bkper-ai-provider.d.ts.map +1 -0
  7. package/lib/agent/{bkper-ai-provider.js → extensions/bkper-ai-provider.js} +1 -1
  8. package/lib/agent/extensions/bkper-ai-provider.js.map +1 -0
  9. package/lib/agent/extensions/builtins.d.ts +23 -0
  10. package/lib/agent/extensions/builtins.d.ts.map +1 -0
  11. package/lib/agent/extensions/builtins.js +52 -0
  12. package/lib/agent/extensions/builtins.js.map +1 -0
  13. package/lib/agent/extensions/core-concepts-preload.d.ts.map +1 -0
  14. package/lib/agent/{core-concepts-preload.js → extensions/core-concepts-preload.js} +2 -2
  15. package/lib/agent/extensions/core-concepts-preload.js.map +1 -0
  16. package/lib/agent/extensions/handoff.d.ts +54 -0
  17. package/lib/agent/extensions/handoff.d.ts.map +1 -0
  18. package/lib/agent/extensions/handoff.js +364 -0
  19. package/lib/agent/extensions/handoff.js.map +1 -0
  20. package/lib/agent/extensions/image-fallback.d.ts +23 -0
  21. package/lib/agent/extensions/image-fallback.d.ts.map +1 -0
  22. package/lib/agent/extensions/image-fallback.js +177 -0
  23. package/lib/agent/extensions/image-fallback.js.map +1 -0
  24. package/lib/agent/extensions/startup.d.ts +8 -0
  25. package/lib/agent/extensions/startup.d.ts.map +1 -0
  26. package/lib/agent/extensions/startup.js +118 -0
  27. package/lib/agent/extensions/startup.js.map +1 -0
  28. package/lib/agent/interactive/interactive-mode.d.ts +8 -0
  29. package/lib/agent/interactive/interactive-mode.d.ts.map +1 -0
  30. package/lib/agent/interactive/interactive-mode.js +79 -0
  31. package/lib/agent/interactive/interactive-mode.js.map +1 -0
  32. package/lib/agent/interactive/run-agent-mode.d.ts +19 -0
  33. package/lib/agent/interactive/run-agent-mode.d.ts.map +1 -0
  34. package/lib/agent/interactive/run-agent-mode.js +116 -0
  35. package/lib/agent/interactive/run-agent-mode.js.map +1 -0
  36. package/lib/agent/interactive/session-keybindings.d.ts +17 -0
  37. package/lib/agent/interactive/session-keybindings.d.ts.map +1 -0
  38. package/lib/agent/interactive/session-keybindings.js +50 -0
  39. package/lib/agent/interactive/session-keybindings.js.map +1 -0
  40. package/lib/agent/interactive/session-restore.d.ts +40 -0
  41. package/lib/agent/interactive/session-restore.d.ts.map +1 -0
  42. package/lib/agent/interactive/session-restore.js +177 -0
  43. package/lib/agent/interactive/session-restore.js.map +1 -0
  44. package/lib/agent/interactive/settings.d.ts +26 -0
  45. package/lib/agent/interactive/settings.d.ts.map +1 -0
  46. package/lib/agent/interactive/settings.js +25 -0
  47. package/lib/agent/interactive/settings.js.map +1 -0
  48. package/lib/commands/agent-command.d.ts +1 -1
  49. package/lib/commands/agent-command.d.ts.map +1 -1
  50. package/lib/commands/agent-command.js +1 -1
  51. package/lib/commands/agent-command.js.map +1 -1
  52. package/lib/dev/local-outbound.d.ts.map +1 -1
  53. package/lib/dev/local-outbound.js +4 -4
  54. package/lib/dev/local-outbound.js.map +1 -1
  55. package/lib/docs-compliance/rules.d.ts.map +1 -1
  56. package/lib/docs-compliance/rules.js +0 -68
  57. package/lib/docs-compliance/rules.js.map +1 -1
  58. package/package.json +2 -2
  59. package/lib/agent/auth-commands.d.ts.map +0 -1
  60. package/lib/agent/auth-commands.js.map +0 -1
  61. package/lib/agent/bkper-ai-provider.d.ts.map +0 -1
  62. package/lib/agent/bkper-ai-provider.js.map +0 -1
  63. package/lib/agent/core-concepts-preload.d.ts.map +0 -1
  64. package/lib/agent/core-concepts-preload.js.map +0 -1
  65. package/lib/agent/run-agent-mode.d.ts +0 -107
  66. package/lib/agent/run-agent-mode.d.ts.map +0 -1
  67. package/lib/agent/run-agent-mode.js +0 -548
  68. package/lib/agent/run-agent-mode.js.map +0 -1
  69. /package/lib/agent/{bkper-ai-provider.d.ts → extensions/bkper-ai-provider.d.ts} +0 -0
  70. /package/lib/agent/{core-concepts-preload.d.ts → extensions/core-concepts-preload.d.ts} +0 -0
@@ -1,548 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { join } from 'node:path';
11
- import { createAgentSessionFromServices, createAgentSessionRuntime, createAgentSessionServices, getAgentDir, InteractiveMode, keyText, ModelRuntime, SessionManager, SettingsManager, } from '@earendil-works/pi-coding-agent';
12
- import { VERSION as PI_VERSION } from '@earendil-works/pi-coding-agent';
13
- import { installBkperAuthCommandRouting, registerBkperAgentAuthExtension, } from './auth-commands.js';
14
- import { BKPER_AI_PROVIDER_ID, findDefaultBkperAiModel, getBkperAiBaseUrlOverride, getBkperAiDefaultThinkingLevel, registerBkperAiProvider, } from './bkper-ai-provider.js';
15
- import { registerBkperCoreConceptsPreloadExtension } from './core-concepts-preload.js';
16
- import { runStartupMaintenance } from './startup-maintenance.js';
17
- import { getBkperAgentSystemPrompt } from './system-prompt.js';
18
- // Pi currently labels inline extension factories as <inline:N>.
19
- // Keep Bkper's label synthetic too: Pi resolves plain extension paths as files.
20
- const INLINE_EXTENSION_PATH_PATTERN = /^<inline:\d+>$/;
21
- export const BKPER_AGENT_BUILTINS_EXTENSION_NAME = 'Bkper Agent built-ins';
22
- export const BKPER_AGENT_BUILTINS_EXTENSION_PATH = '<inline:bkper-agent-builtins>';
23
- const BUILT_IN_BKPER_AGENT_FEATURE_ERROR = `${BKPER_AGENT_BUILTINS_EXTENSION_NAME} failed to start.`;
24
- const PI_RESUME_HINT_TEXT = 'To resume this session:';
25
- const ANSI_PATTERN = /\x1B\[[0-?]*[ -/]*[@-~]/g;
26
- function isPiResumeHintOutput(chunk) {
27
- return chunk.replace(ANSI_PATTERN, '').trimStart().startsWith(PI_RESUME_HINT_TEXT);
28
- }
29
- export function suppressPiResumeHintOutput() {
30
- const originalWrite = process.stdout.write;
31
- process.stdout.write = function (chunk, encoding, callback) {
32
- if (typeof chunk === 'string' && isPiResumeHintOutput(chunk)) {
33
- return true;
34
- }
35
- return originalWrite.call(this, chunk, encoding, callback);
36
- };
37
- return () => {
38
- process.stdout.write = originalWrite;
39
- };
40
- }
41
- export class BkperInteractiveMode extends InteractiveMode {
42
- init() {
43
- const _super = Object.create(null, {
44
- init: { get: () => super.init }
45
- });
46
- return __awaiter(this, void 0, void 0, function* () {
47
- const interactiveMode = this;
48
- interactiveMode.getChangelogForDisplay = () => undefined;
49
- if (interactiveMode.keybindings) {
50
- installBkperSessionKeybindings(interactiveMode.keybindings);
51
- }
52
- yield _super.init.call(this);
53
- const authRoutingMode = this;
54
- if (authRoutingMode.session) {
55
- const editors = new Set([authRoutingMode.defaultEditor, authRoutingMode.editor].filter(editor => editor !== undefined));
56
- for (const editor of editors) {
57
- installBkperAuthCommandRouting(editor, authRoutingMode.session.modelRegistry);
58
- }
59
- }
60
- });
61
- }
62
- run() {
63
- const _super = Object.create(null, {
64
- run: { get: () => super.run }
65
- });
66
- return __awaiter(this, void 0, void 0, function* () {
67
- const restoreResumeHintOutput = suppressPiResumeHintOutput();
68
- try {
69
- yield _super.run.call(this);
70
- }
71
- finally {
72
- restoreResumeHintOutput();
73
- }
74
- });
75
- }
76
- }
77
- export function applyBkperAgentSettingsDefaults(settingsManager) {
78
- const hasExplicitSetting = [
79
- settingsManager.getGlobalSettings().showCacheMissNotices,
80
- settingsManager.getProjectSettings().showCacheMissNotices,
81
- ].some(value => value !== undefined);
82
- if (!hasExplicitSetting) {
83
- settingsManager.setShowCacheMissNotices(true);
84
- }
85
- }
86
- export function collectSettingsDiagnostics(settingsManager, context) {
87
- return settingsManager.drainErrors().map(({ scope, error }) => ({
88
- type: 'warning',
89
- message: `(${context}, ${scope} settings) ${error.message}`,
90
- }));
91
- }
92
- export function createStartupSessionManager(cwd, settingsManager, createSessionManager) {
93
- return createSessionManager(cwd, settingsManager.getSessionDir());
94
- }
95
- function isSameModel(left, right) {
96
- return left.provider === right.provider && left.id === right.id;
97
- }
98
- function isThinkingLevel(value) {
99
- return ['off', 'minimal', 'low', 'medium', 'high', 'xhigh', 'max'].includes(value);
100
- }
101
- function findExactModelMatch(modelReference, availableModels) {
102
- const trimmedReference = modelReference.trim();
103
- if (!trimmedReference) {
104
- return [];
105
- }
106
- const normalizedReference = trimmedReference.toLowerCase();
107
- const canonicalMatches = availableModels.filter(model => `${model.provider}/${model.id}`.toLowerCase() === normalizedReference);
108
- if (canonicalMatches.length > 0) {
109
- return canonicalMatches;
110
- }
111
- const idMatches = availableModels.filter(model => model.id.toLowerCase() === normalizedReference);
112
- return idMatches.length === 1 ? idMatches : [];
113
- }
114
- function hasWildcard(pattern) {
115
- return pattern.includes('*') || pattern.includes('?');
116
- }
117
- function escapeRegExp(value) {
118
- return value.replace(/[|\\{}()[\]^$+?.]/g, '\\$&');
119
- }
120
- function globToRegExp(pattern) {
121
- let regex = '^';
122
- for (const char of pattern) {
123
- if (char === '*') {
124
- regex += '.*';
125
- continue;
126
- }
127
- if (char === '?') {
128
- regex += '.';
129
- continue;
130
- }
131
- regex += escapeRegExp(char);
132
- }
133
- regex += '$';
134
- return new RegExp(regex, 'i');
135
- }
136
- function resolvePatternMatches(rawPattern, availableModels) {
137
- const exactMatches = findExactModelMatch(rawPattern, availableModels);
138
- if (exactMatches.length > 0) {
139
- return { matches: exactMatches };
140
- }
141
- let pattern = rawPattern.trim();
142
- let thinkingLevel;
143
- const lastColonIndex = pattern.lastIndexOf(':');
144
- if (lastColonIndex !== -1) {
145
- const suffix = pattern.substring(lastColonIndex + 1).trim();
146
- if (isThinkingLevel(suffix)) {
147
- thinkingLevel = suffix;
148
- pattern = pattern.substring(0, lastColonIndex).trim();
149
- }
150
- }
151
- const exactPatternMatches = findExactModelMatch(pattern, availableModels);
152
- if (exactPatternMatches.length > 0) {
153
- return {
154
- matches: exactPatternMatches,
155
- thinkingLevel,
156
- };
157
- }
158
- if (!hasWildcard(pattern)) {
159
- return {
160
- matches: [],
161
- thinkingLevel,
162
- };
163
- }
164
- const regex = globToRegExp(pattern);
165
- const matches = availableModels.filter(model => {
166
- const fullId = `${model.provider}/${model.id}`;
167
- return regex.test(fullId) || regex.test(model.id);
168
- });
169
- return {
170
- matches,
171
- thinkingLevel,
172
- };
173
- }
174
- export function restorePersistedSessionOptions(settingsManager, modelRegistry, sessionManager) {
175
- var _a, _b;
176
- const availableModels = modelRegistry.getAvailable();
177
- const sessionContext = sessionManager.buildSessionContext();
178
- const hasSessionMessages = sessionContext.messages.length > 0;
179
- const startupDefaultModel = findDefaultBkperAiModel(availableModels);
180
- const unavailableBkperSessionModel = ((_a = sessionContext.model) === null || _a === void 0 ? void 0 : _a.provider) === BKPER_AI_PROVIDER_ID &&
181
- modelRegistry.find(sessionContext.model.provider, sessionContext.model.modelId) === undefined;
182
- const enabledModels = settingsManager.getEnabledModels();
183
- if (!enabledModels || enabledModels.length === 0) {
184
- if (hasSessionMessages) {
185
- return {
186
- model: unavailableBkperSessionModel ? startupDefaultModel : undefined,
187
- thinkingLevel: unavailableBkperSessionModel && startupDefaultModel
188
- ? getBkperAiDefaultThinkingLevel(startupDefaultModel)
189
- : undefined,
190
- scopedModels: [],
191
- diagnostics: [],
192
- };
193
- }
194
- const defaultProvider = settingsManager.getDefaultProvider();
195
- const defaultModelId = settingsManager.getDefaultModel();
196
- const defaultModel = defaultProvider && defaultModelId
197
- ? modelRegistry.find(defaultProvider, defaultModelId)
198
- : undefined;
199
- const defaultThinkingLevel = defaultModel
200
- ? getBkperAiDefaultThinkingLevel(defaultModel)
201
- : undefined;
202
- const unavailableBkperDefault = defaultProvider === BKPER_AI_PROVIDER_ID &&
203
- defaultModelId !== undefined &&
204
- defaultModel === undefined;
205
- const fallbackStartupModel = (!defaultProvider && !defaultModelId) || unavailableBkperDefault
206
- ? startupDefaultModel
207
- : undefined;
208
- return {
209
- model: defaultThinkingLevel ? defaultModel : fallbackStartupModel,
210
- thinkingLevel: defaultThinkingLevel !== null && defaultThinkingLevel !== void 0 ? defaultThinkingLevel : (fallbackStartupModel
211
- ? getBkperAiDefaultThinkingLevel(fallbackStartupModel)
212
- : undefined),
213
- scopedModels: [],
214
- diagnostics: [],
215
- };
216
- }
217
- const scopedModels = [];
218
- const diagnostics = [];
219
- for (const pattern of enabledModels) {
220
- const { matches, thinkingLevel } = resolvePatternMatches(pattern, availableModels);
221
- if (matches.length === 0) {
222
- diagnostics.push({
223
- type: 'warning',
224
- message: `No models match enabledModels pattern "${pattern}"`,
225
- });
226
- continue;
227
- }
228
- for (const model of matches) {
229
- if (scopedModels.some(scopedModel => isSameModel(scopedModel.model, model))) {
230
- continue;
231
- }
232
- const catalogThinkingLevel = getBkperAiDefaultThinkingLevel(model);
233
- scopedModels.push({
234
- model,
235
- thinkingLevel: thinkingLevel !== null && thinkingLevel !== void 0 ? thinkingLevel : catalogThinkingLevel,
236
- });
237
- }
238
- }
239
- if (hasSessionMessages) {
240
- return {
241
- model: unavailableBkperSessionModel ? startupDefaultModel : undefined,
242
- thinkingLevel: unavailableBkperSessionModel && startupDefaultModel
243
- ? getBkperAiDefaultThinkingLevel(startupDefaultModel)
244
- : undefined,
245
- scopedModels,
246
- diagnostics,
247
- };
248
- }
249
- if (scopedModels.length === 0) {
250
- return {
251
- scopedModels,
252
- diagnostics,
253
- };
254
- }
255
- const defaultProvider = settingsManager.getDefaultProvider();
256
- const defaultModelId = settingsManager.getDefaultModel();
257
- const defaultModel = defaultProvider && defaultModelId
258
- ? modelRegistry.find(defaultProvider, defaultModelId)
259
- : undefined;
260
- const selectedModel = (_b = (defaultModel
261
- ? scopedModels.find(scopedModel => isSameModel(scopedModel.model, defaultModel))
262
- : undefined)) !== null && _b !== void 0 ? _b : scopedModels[0];
263
- return {
264
- model: selectedModel === null || selectedModel === void 0 ? void 0 : selectedModel.model,
265
- thinkingLevel: selectedModel === null || selectedModel === void 0 ? void 0 : selectedModel.thinkingLevel,
266
- scopedModels,
267
- diagnostics,
268
- };
269
- }
270
- function reportDiagnostics(diagnostics) {
271
- for (const diagnostic of diagnostics) {
272
- const prefix = diagnostic.type === 'error'
273
- ? 'Error: '
274
- : diagnostic.type === 'warning'
275
- ? 'Warning: '
276
- : '';
277
- console.error(`${prefix}${diagnostic.message}`);
278
- }
279
- }
280
- const STARTUP_LEFT_PADDING = ' ';
281
- const BKPER_SESSION_KEYBINDINGS = {
282
- 'app.session.resume': 'ctrl+s',
283
- 'app.session.tree': 'ctrl+r',
284
- 'app.session.fork': 'ctrl+x',
285
- };
286
- const installedBkperKeybindingsManagers = new WeakSet();
287
- const NO_MODELS_STARTUP_HINT = 'No AI model provider configured. Use /login for Bkper AI or /connect for another ' +
288
- 'model provider.';
289
- function keybindingConfigIncludesShortcut(configuredBinding, shortcut) {
290
- const normalizedShortcut = shortcut.toLowerCase();
291
- const configuredShortcuts = Array.isArray(configuredBinding)
292
- ? configuredBinding
293
- : [configuredBinding];
294
- return configuredShortcuts.some(configuredShortcut => (configuredShortcut === null || configuredShortcut === void 0 ? void 0 : configuredShortcut.toLowerCase()) === normalizedShortcut);
295
- }
296
- function isShortcutClaimedByUserBinding(userBindings, targetKeybinding, shortcut) {
297
- return Object.entries(userBindings).some(([keybinding, configuredBinding]) => keybinding !== targetKeybinding &&
298
- keybindingConfigIncludesShortcut(configuredBinding, shortcut));
299
- }
300
- export function applyBkperSessionKeybindings(keybindings) {
301
- const userBindings = keybindings.getUserBindings();
302
- const nextBindings = Object.assign({}, userBindings);
303
- let changed = false;
304
- for (const [keybinding, shortcut] of Object.entries(BKPER_SESSION_KEYBINDINGS)) {
305
- if (nextBindings[keybinding] !== undefined ||
306
- isShortcutClaimedByUserBinding(userBindings, keybinding, shortcut)) {
307
- continue;
308
- }
309
- nextBindings[keybinding] = shortcut;
310
- changed = true;
311
- }
312
- if (changed) {
313
- keybindings.setUserBindings(nextBindings);
314
- }
315
- }
316
- export function installBkperSessionKeybindings(keybindings) {
317
- if (!installedBkperKeybindingsManagers.has(keybindings)) {
318
- const reload = keybindings.reload.bind(keybindings);
319
- keybindings.reload = () => {
320
- reload();
321
- applyBkperSessionKeybindings(keybindings);
322
- };
323
- installedBkperKeybindingsManagers.add(keybindings);
324
- }
325
- applyBkperSessionKeybindings(keybindings);
326
- }
327
- function wrapStartupHeaderLine(line, width) {
328
- const normalizedWidth = Math.max(1, width);
329
- const trimmedLine = line.trim();
330
- if (!trimmedLine) {
331
- return [''];
332
- }
333
- const wrappedLines = [];
334
- let currentLine = '';
335
- const pushWord = (word) => {
336
- if (!currentLine) {
337
- currentLine = word;
338
- return;
339
- }
340
- const candidate = `${currentLine} ${word}`;
341
- if (candidate.length <= normalizedWidth) {
342
- currentLine = candidate;
343
- return;
344
- }
345
- wrappedLines.push(currentLine);
346
- currentLine = word;
347
- };
348
- for (const word of trimmedLine.split(/\s+/)) {
349
- if (word.length <= normalizedWidth) {
350
- pushWord(word);
351
- continue;
352
- }
353
- if (currentLine) {
354
- wrappedLines.push(currentLine);
355
- currentLine = '';
356
- }
357
- for (let start = 0; start < word.length; start += normalizedWidth) {
358
- wrappedLines.push(word.slice(start, start + normalizedWidth));
359
- }
360
- }
361
- if (currentLine) {
362
- wrappedLines.push(currentLine);
363
- }
364
- return wrappedLines;
365
- }
366
- const BKPER_BANNER = [
367
- '██████╗ ██╗ ██╗██████╗ ███████╗██████╗ ',
368
- '██╔══██╗██║ ██╔╝██╔══██╗██╔════╝██╔══██╗',
369
- '██████╔╝█████╔╝ ██████╔╝█████╗ ██████╔╝',
370
- '██╔══██╗██╔═██╗ ██╔═══╝ ██╔══╝ ██╔══██╗',
371
- '██████╔╝██║ ██╗██║ ███████╗██║ ██║',
372
- '╚═════╝ ╚═╝ ╚═╝╚═╝ ╚══════╝╚═╝ ╚═╝',
373
- ];
374
- function formatStartupHint(theme, key, description) {
375
- return theme.fg('dim', key) + theme.fg('muted', ` ${description}`);
376
- }
377
- function formatStartupCommandShortcut(command, keybinding) {
378
- const shortcut = keyText(keybinding);
379
- return shortcut ? `${command} (${shortcut})` : command;
380
- }
381
- function buildStartupHeaderLines(theme, modelRegistry, width) {
382
- const lines = [
383
- ...BKPER_BANNER.map(line => theme.bold(theme.fg('accent', line))),
384
- theme.fg('muted', `powered by `) + theme.fg('dim', `pi v${PI_VERSION}`),
385
- '',
386
- formatStartupHint(theme, keyText('app.interrupt'), 'to interrupt'),
387
- formatStartupHint(theme, keyText('app.clear'), 'to clear'),
388
- formatStartupHint(theme, `${keyText('app.clear')} twice`, 'to exit'),
389
- formatStartupHint(theme, '/', 'for commands'),
390
- formatStartupHint(theme, '/new', 'to start new session'),
391
- formatStartupHint(theme, formatStartupCommandShortcut('/resume', 'app.session.resume'), 'to resume a session'),
392
- formatStartupHint(theme, '/clone', 'to duplicate session'),
393
- formatStartupHint(theme, formatStartupCommandShortcut('/fork', 'app.session.fork'), 'to branch from a message'),
394
- formatStartupHint(theme, formatStartupCommandShortcut('/tree', 'app.session.tree'), 'for session tree'),
395
- formatStartupHint(theme, '!', 'to run bash'),
396
- ];
397
- if (modelRegistry.getAvailable().length === 0) {
398
- lines.push('', ...wrapStartupHeaderLine(NO_MODELS_STARTUP_HINT, width).map(line => theme.fg('warning', line)));
399
- }
400
- return lines.map(line => (line.length > 0 ? STARTUP_LEFT_PADDING + line : line));
401
- }
402
- function createStartupHeaderFactory(modelRegistry) {
403
- return (_tui, theme) => ({
404
- render: (width) => buildStartupHeaderLines(theme, modelRegistry, width),
405
- invalidate: () => { },
406
- });
407
- }
408
- export function isBkperAgentVerboseDiagnosticsEnabled(env = process.env) {
409
- return env.BKPER_AGENT_DEBUG === '1' || env.PI_VERBOSE === '1';
410
- }
411
- function isBkperAgentInlineExtensionPath(path) {
412
- return INLINE_EXTENSION_PATH_PATTERN.test(path);
413
- }
414
- function normalizeBkperAgentExtension(extension) {
415
- if (!isBkperAgentInlineExtensionPath(extension.path)) {
416
- return extension;
417
- }
418
- return Object.assign(Object.assign({}, extension), { 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' }) });
419
- }
420
- export function normalizeBkperAgentExtensionErrors(errors, options) {
421
- return errors.map(error => {
422
- if (!isBkperAgentInlineExtensionPath(error.path)) {
423
- return error;
424
- }
425
- return {
426
- path: BKPER_AGENT_BUILTINS_EXTENSION_PATH,
427
- error: options.verbose
428
- ? `${BUILT_IN_BKPER_AGENT_FEATURE_ERROR}\nDetails: ${error.path} ${error.error}`
429
- : BUILT_IN_BKPER_AGENT_FEATURE_ERROR,
430
- };
431
- });
432
- }
433
- export function normalizeBkperAgentExtensions(base, options) {
434
- return Object.assign(Object.assign({}, base), { extensions: base.extensions.map(normalizeBkperAgentExtension), errors: normalizeBkperAgentExtensionErrors(base.errors, options) });
435
- }
436
- export function registerBkperAgentStartupExtension(pi, startupMaintenance = runStartupMaintenance, settingsManager, bkperAiBaseUrlOverride) {
437
- let startupMaintenanceTriggered = false;
438
- pi.on('session_start', (_event, ctx) => __awaiter(this, void 0, void 0, function* () {
439
- if (!(settingsManager === null || settingsManager === void 0 ? void 0 : settingsManager.getQuietStartup())) {
440
- ctx.ui.setHeader(createStartupHeaderFactory(ctx.modelRegistry));
441
- }
442
- if (startupMaintenanceTriggered) {
443
- return;
444
- }
445
- startupMaintenanceTriggered = true;
446
- if (bkperAiBaseUrlOverride) {
447
- ctx.ui.notify(`Bkper AI endpoint override active: ${bkperAiBaseUrlOverride}`, 'warning');
448
- }
449
- void startupMaintenance({
450
- notify: (message, type) => ctx.ui.notify(message, type),
451
- });
452
- }));
453
- }
454
- export function registerBkperAgentBuiltins(pi, startupMaintenance = runStartupMaintenance, settingsManager, env = process.env, credentialManager) {
455
- const bkperAiBaseUrlOverride = getBkperAiBaseUrlOverride(env);
456
- registerBkperCoreConceptsPreloadExtension(pi);
457
- registerBkperAgentStartupExtension(pi, startupMaintenance, settingsManager, bkperAiBaseUrlOverride);
458
- registerBkperAgentAuthExtension(pi, undefined, credentialManager);
459
- registerBkperAiProvider(pi, env);
460
- }
461
- export function createAgentModeDependencies(sessionOptions = {}) {
462
- return {
463
- createRuntime: () => __awaiter(this, void 0, void 0, function* () {
464
- getBkperAiBaseUrlOverride();
465
- const cwd = process.cwd();
466
- const agentDir = getAgentDir();
467
- const startupSettingsManager = SettingsManager.create(cwd, agentDir);
468
- const startupDiagnostics = collectSettingsDiagnostics(startupSettingsManager, 'startup session lookup');
469
- const createRuntime = (_a) => __awaiter(this, [_a], void 0, function* ({ cwd, agentDir, sessionManager, sessionStartEvent, }) {
470
- const settingsManager = SettingsManager.create(cwd, agentDir);
471
- const modelRuntime = yield ModelRuntime.create({
472
- authPath: join(agentDir, 'auth.json'),
473
- modelsPath: join(agentDir, 'models.json'),
474
- });
475
- const services = yield createAgentSessionServices({
476
- cwd,
477
- agentDir,
478
- settingsManager,
479
- modelRuntime,
480
- resourceLoaderOptions: {
481
- systemPromptOverride: () => getBkperAgentSystemPrompt(),
482
- extensionFactories: [
483
- (pi) => {
484
- registerBkperAgentBuiltins(pi, runStartupMaintenance, settingsManager, process.env, modelRuntime);
485
- },
486
- ],
487
- extensionsOverride: base => normalizeBkperAgentExtensions(base, {
488
- verbose: isBkperAgentVerboseDiagnosticsEnabled(),
489
- }),
490
- },
491
- });
492
- applyBkperAgentSettingsDefaults(settingsManager);
493
- const restoredSessionOptions = restorePersistedSessionOptions(settingsManager, {
494
- getAvailable: () => [...services.modelRuntime.getAvailableSnapshot()],
495
- find: (provider, modelId) => services.modelRuntime.getModel(provider, modelId),
496
- }, sessionManager);
497
- return Object.assign(Object.assign({}, (yield createAgentSessionFromServices({
498
- services,
499
- sessionManager,
500
- sessionStartEvent,
501
- model: restoredSessionOptions.model,
502
- thinkingLevel: restoredSessionOptions.thinkingLevel,
503
- scopedModels: restoredSessionOptions.scopedModels,
504
- }))), { services, diagnostics: [
505
- ...services.diagnostics,
506
- ...collectSettingsDiagnostics(settingsManager, 'runtime creation'),
507
- ...restoredSessionOptions.diagnostics,
508
- ] });
509
- });
510
- const sessionDir = startupSettingsManager.getSessionDir();
511
- let sessionManager;
512
- if (sessionOptions.continueSession) {
513
- sessionManager = SessionManager.continueRecent(cwd, sessionDir);
514
- }
515
- else if (sessionOptions.noSession) {
516
- sessionManager = SessionManager.inMemory();
517
- }
518
- else {
519
- sessionManager = createStartupSessionManager(cwd, startupSettingsManager, (sessionCwd, sessionDir) => SessionManager.create(sessionCwd, sessionDir));
520
- }
521
- const runtime = yield createAgentSessionRuntime(createRuntime, {
522
- cwd,
523
- agentDir,
524
- sessionManager,
525
- });
526
- return {
527
- runtime,
528
- modelFallbackMessage: runtime.modelFallbackMessage,
529
- diagnostics: [...startupDiagnostics, ...runtime.diagnostics],
530
- };
531
- }),
532
- createInteractiveMode: (runtime, modelFallbackMessage) => new BkperInteractiveMode(runtime, {
533
- modelFallbackMessage,
534
- }),
535
- };
536
- }
537
- export function runAgentMode() {
538
- return __awaiter(this, arguments, void 0, function* (dependencies = createAgentModeDependencies()) {
539
- var _a;
540
- var _b;
541
- (_a = (_b = process.env).PI_SKIP_VERSION_CHECK) !== null && _a !== void 0 ? _a : (_b.PI_SKIP_VERSION_CHECK = '1');
542
- const { runtime, modelFallbackMessage, diagnostics = [] } = yield dependencies.createRuntime();
543
- reportDiagnostics(diagnostics);
544
- const mode = dependencies.createInteractiveMode(runtime, modelFallbackMessage);
545
- yield mode.run();
546
- });
547
- }
548
- //# sourceMappingURL=run-agent-mode.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run-agent-mode.js","sourceRoot":"","sources":["../../src/agent/run-agent-mode.ts"],"names":[],"mappings":"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"}