bkper 4.27.0 → 4.28.1
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 +23 -31
- package/lib/agent/extensions/builtins.d.ts +1 -0
- package/lib/agent/extensions/builtins.d.ts.map +1 -1
- package/lib/agent/extensions/builtins.js.map +1 -1
- package/lib/agent/extensions/handoff-goal-editor.d.ts +27 -0
- package/lib/agent/extensions/handoff-goal-editor.d.ts.map +1 -0
- package/lib/agent/extensions/handoff-goal-editor.js +113 -0
- package/lib/agent/extensions/handoff-goal-editor.js.map +1 -0
- package/lib/agent/extensions/handoff.d.ts.map +1 -1
- package/lib/agent/extensions/handoff.js +2 -1
- package/lib/agent/extensions/handoff.js.map +1 -1
- package/lib/agent/extensions/startup.d.ts +3 -1
- package/lib/agent/extensions/startup.d.ts.map +1 -1
- package/lib/agent/extensions/startup.js +21 -7
- package/lib/agent/extensions/startup.js.map +1 -1
- package/lib/agent/interactive/interactive-mode.d.ts.map +1 -1
- package/lib/agent/interactive/interactive-mode.js +9 -2
- package/lib/agent/interactive/interactive-mode.js.map +1 -1
- package/lib/agent/interactive/run-agent-mode.d.ts.map +1 -1
- package/lib/agent/interactive/run-agent-mode.js +7 -2
- package/lib/agent/interactive/run-agent-mode.js.map +1 -1
- package/lib/agent/interactive/settings.d.ts +18 -1
- package/lib/agent/interactive/settings.d.ts.map +1 -1
- package/lib/agent/interactive/settings.js +50 -0
- package/lib/agent/interactive/settings.js.map +1 -1
- package/lib/agent/system-prompt.d.ts +1 -1
- package/lib/agent/system-prompt.d.ts.map +1 -1
- package/lib/agent/system-prompt.js +24 -10
- package/lib/agent/system-prompt.js.map +1 -1
- package/lib/docs/apps/architecture.md +40 -7
- package/lib/docs/apps/development.md +4 -4
- package/lib/docs/apps/event-handlers.md +1 -1
- package/lib/docs/apps/security.md +73 -0
- package/lib/docs/apps/self-hosted.md +1 -1
- package/lib/docs/cli/data-management.md +9 -0
- package/lib/docs/index.md +1 -0
- package/lib/docs/sdk/bkper-js.md +2 -6
- package/package.json +14 -5
package/README.md
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
[Developer Docs]: https://bkper.com/docs
|
|
2
|
+
[CLI Docs]: https://bkper.com/docs/build/tools/cli
|
|
2
3
|
[App Template]: https://github.com/bkper/bkper-app-template
|
|
3
4
|
[Pi]: https://pi.dev/
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
The official Bkper CLI is published on npm as [`bkper`](https://www.npmjs.com/package/bkper). Use it in two complementary ways:
|
|
6
7
|
|
|
7
8
|
- **Ask the Bkper Agent** — run `bkper` for guided, interactive help in your terminal
|
|
8
9
|
- **Run CLI commands** — run `bkper <command>` for scripts, exports, automations, and app workflows
|
|
@@ -16,12 +17,12 @@ With one tool, you can work with Bkper from your terminal, built-in agent, or ex
|
|
|
16
17
|
### Prerequisites
|
|
17
18
|
|
|
18
19
|
- [Node.js](https://nodejs.org/) >= 22.19.0
|
|
19
|
-
-
|
|
20
|
+
- Windows, macOS, Linux, or WSL
|
|
20
21
|
|
|
21
22
|
### Install (choose one)
|
|
22
23
|
|
|
23
24
|
```bash tab="npm"
|
|
24
|
-
npm
|
|
25
|
+
npm install -g bkper
|
|
25
26
|
```
|
|
26
27
|
|
|
27
28
|
```bash tab="bun"
|
|
@@ -36,40 +37,24 @@ pnpm add -g bkper
|
|
|
36
37
|
yarn global add bkper
|
|
37
38
|
```
|
|
38
39
|
|
|
39
|
-
|
|
40
|
+
Or run it without a global installation:
|
|
40
41
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
```powershell
|
|
46
|
-
wsl --install
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
Restart Windows if prompted, then open **Ubuntu** from the Start menu and create your Linux username and password.
|
|
50
|
-
|
|
51
|
-
Reference: [Install WSL](https://learn.microsoft.com/en-us/windows/wsl/install).
|
|
52
|
-
|
|
53
|
-
2. In the **Ubuntu terminal**, install Node.js:
|
|
42
|
+
```bash
|
|
43
|
+
npx bkper
|
|
44
|
+
```
|
|
54
45
|
|
|
55
|
-
|
|
56
|
-
sudo apt update
|
|
57
|
-
sudo apt install -y curl
|
|
58
|
-
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
|
|
59
|
-
source ~/.bashrc
|
|
60
|
-
nvm install --lts
|
|
61
|
-
```
|
|
46
|
+
The package and executable are both named `bkper`. See the [CLI Docs] for the dedicated command-line guide.
|
|
62
47
|
|
|
63
|
-
|
|
48
|
+
### Install on Windows
|
|
64
49
|
|
|
65
|
-
|
|
50
|
+
After installing Node.js, run Bkper directly from PowerShell:
|
|
66
51
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
52
|
+
```powershell
|
|
53
|
+
npm install -g bkper
|
|
54
|
+
bkper
|
|
55
|
+
```
|
|
71
56
|
|
|
72
|
-
|
|
57
|
+
The Bkper Agent uses PowerShell natively on Windows. WSL remains supported and uses Bash.
|
|
73
58
|
|
|
74
59
|
### Authenticate with Bkper
|
|
75
60
|
|
|
@@ -146,6 +131,13 @@ Capture a receipt as a draft, then review and complete it in Bkper or with the a
|
|
|
146
131
|
bkper transaction create -b <bookId> --file ./receipt.pdf
|
|
147
132
|
```
|
|
148
133
|
|
|
134
|
+
For AI-derived transactions, set `draft: true` to bypass Book auto-posting. They stay out of balances until explicitly posted:
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
printf '%s\n' '[{"date":"2026-08-18","amount":"25.50","creditAccount":{"name":"Bank Account"},"debitAccount":{"name":"Meals"},"description":"Extracted receipt","draft":true}]' |
|
|
138
|
+
bkper transaction create -b <bookId>
|
|
139
|
+
```
|
|
140
|
+
|
|
149
141
|
> Run `bkper --help` or `bkper <command> --help` for built-in documentation on any command.
|
|
150
142
|
|
|
151
143
|
→ See [Data Management](#data-management) and [App Management](#app-management) below for full references.
|
|
@@ -9,6 +9,7 @@ type ExtensionLoadError = {
|
|
|
9
9
|
type BuiltinsSettings = {
|
|
10
10
|
getQuietStartup(): boolean;
|
|
11
11
|
getCompactionReserveTokens(): number;
|
|
12
|
+
getShellPath(): string | undefined;
|
|
12
13
|
};
|
|
13
14
|
export declare const BKPER_AGENT_BUILTINS_EXTENSION_NAME = "Bkper Agent built-ins";
|
|
14
15
|
export declare const BKPER_AGENT_BUILTINS_EXTENSION_PATH = "<inline:bkper-agent-builtins>";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtins.d.ts","sourceRoot":"","sources":["../../../src/agent/extensions/builtins.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,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,EAKH,KAAK,wBAAwB,EAChC,MAAM,cAAc,CAAC;AAItB,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,0BAA0B,IAAI,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"builtins.d.ts","sourceRoot":"","sources":["../../../src/agent/extensions/builtins.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,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,EAKH,KAAK,wBAAwB,EAChC,MAAM,cAAc,CAAC;AAItB,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,0BAA0B,IAAI,MAAM,CAAC;IACrC,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;AAuBD,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,CAsBN"}
|
|
@@ -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,uBAAuB,EACvB,0BAA0B,EAC1B,+BAA+B,EAC/B,6BAA6B,GAEhC,MAAM,cAAc,CAAC;AACtB,OAAO,EAAC,mCAAmC,EAAC,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAC,kCAAkC,EAAC,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"builtins.js","sourceRoot":"","sources":["../../../src/agent/extensions/builtins.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type AutocompleteProvider } from '@earendil-works/pi-tui';
|
|
2
|
+
export declare const HANDOFF_GOAL_EDITOR_TITLE = "Next session goal";
|
|
3
|
+
export interface HandoffPromptTemplate {
|
|
4
|
+
name: string;
|
|
5
|
+
description: string;
|
|
6
|
+
argumentHint?: string;
|
|
7
|
+
content: string;
|
|
8
|
+
}
|
|
9
|
+
interface HandoffGoalEditor {
|
|
10
|
+
setAutocompleteProvider(provider: AutocompleteProvider): void;
|
|
11
|
+
}
|
|
12
|
+
export interface HandoffGoalEditorHost {
|
|
13
|
+
showExtensionEditor(title: string, prefill?: string): Promise<string | undefined>;
|
|
14
|
+
extensionEditor?: {
|
|
15
|
+
editor?: HandoffGoalEditor;
|
|
16
|
+
};
|
|
17
|
+
session?: {
|
|
18
|
+
promptTemplates: ReadonlyArray<HandoffPromptTemplate>;
|
|
19
|
+
};
|
|
20
|
+
sessionManager?: {
|
|
21
|
+
getCwd(): string;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export declare function expandHandoffGoalTemplate(goal: string, templates: ReadonlyArray<HandoffPromptTemplate>): string;
|
|
25
|
+
export declare function installHandoffGoalEditorAutocomplete(host: HandoffGoalEditorHost): void;
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=handoff-goal-editor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handoff-goal-editor.d.ts","sourceRoot":"","sources":["../../../src/agent/extensions/handoff-goal-editor.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,oBAAoB,EAC5B,MAAM,wBAAwB,CAAC;AAEhC,eAAO,MAAM,yBAAyB,sBAAsB,CAAC;AAE7D,MAAM,WAAW,qBAAqB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,iBAAiB;IACvB,uBAAuB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACjE;AAED,MAAM,WAAW,qBAAqB;IAClC,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAClF,eAAe,CAAC,EAAE;QACd,MAAM,CAAC,EAAE,iBAAiB,CAAC;KAC9B,CAAC;IACF,OAAO,CAAC,EAAE;QACN,eAAe,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;KACzD,CAAC;IACF,cAAc,CAAC,EAAE;QACb,MAAM,IAAI,MAAM,CAAC;KACpB,CAAC;CACL;AA+DD,wBAAgB,yBAAyB,CACrC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,aAAa,CAAC,qBAAqB,CAAC,GAChD,MAAM,CAYR;AAgCD,wBAAgB,oCAAoC,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI,CAuBtF"}
|
|
@@ -0,0 +1,113 @@
|
|
|
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 { CombinedAutocompleteProvider, } from '@earendil-works/pi-tui';
|
|
11
|
+
export const HANDOFF_GOAL_EDITOR_TITLE = 'Next session goal';
|
|
12
|
+
function parseCommandArgs(argsString) {
|
|
13
|
+
const args = [];
|
|
14
|
+
let current = '';
|
|
15
|
+
let inQuote;
|
|
16
|
+
for (const char of argsString) {
|
|
17
|
+
if (inQuote) {
|
|
18
|
+
if (char === inQuote) {
|
|
19
|
+
inQuote = undefined;
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
current += char;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
else if (char === '"' || char === "'") {
|
|
26
|
+
inQuote = char;
|
|
27
|
+
}
|
|
28
|
+
else if (/\s/.test(char)) {
|
|
29
|
+
if (current) {
|
|
30
|
+
args.push(current);
|
|
31
|
+
current = '';
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
current += char;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
if (current) {
|
|
39
|
+
args.push(current);
|
|
40
|
+
}
|
|
41
|
+
return args;
|
|
42
|
+
}
|
|
43
|
+
function substituteArgs(content, args) {
|
|
44
|
+
const allArgs = args.join(' ');
|
|
45
|
+
return content.replace(/\$\{(\d+|ARGUMENTS|@):-([^}]*)\}|\$\{@:(\d+)(?::(\d+))?\}|\$(ARGUMENTS|@|\d+)/g, (_match, defaultTarget, defaultValue, sliceStart, sliceLength, simple) => {
|
|
46
|
+
var _a;
|
|
47
|
+
if (defaultTarget) {
|
|
48
|
+
const value = defaultTarget === '@' || defaultTarget === 'ARGUMENTS'
|
|
49
|
+
? allArgs
|
|
50
|
+
: args[parseInt(defaultTarget, 10) - 1];
|
|
51
|
+
return value || defaultValue;
|
|
52
|
+
}
|
|
53
|
+
if (sliceStart) {
|
|
54
|
+
const start = Math.max(0, parseInt(sliceStart, 10) - 1);
|
|
55
|
+
if (sliceLength) {
|
|
56
|
+
const length = parseInt(sliceLength, 10);
|
|
57
|
+
return args.slice(start, start + length).join(' ');
|
|
58
|
+
}
|
|
59
|
+
return args.slice(start).join(' ');
|
|
60
|
+
}
|
|
61
|
+
if (simple === 'ARGUMENTS' || simple === '@') {
|
|
62
|
+
return allArgs;
|
|
63
|
+
}
|
|
64
|
+
return (_a = args[parseInt(simple, 10) - 1]) !== null && _a !== void 0 ? _a : '';
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
export function expandHandoffGoalTemplate(goal, templates) {
|
|
68
|
+
var _a;
|
|
69
|
+
const match = goal.match(/^\/([^\s]+)(?:\s+([\s\S]*))?$/);
|
|
70
|
+
if (!match) {
|
|
71
|
+
return goal;
|
|
72
|
+
}
|
|
73
|
+
const template = templates.find(candidate => candidate.name === match[1]);
|
|
74
|
+
if (!template) {
|
|
75
|
+
return goal;
|
|
76
|
+
}
|
|
77
|
+
return substituteArgs(template.content, parseCommandArgs((_a = match[2]) !== null && _a !== void 0 ? _a : ''));
|
|
78
|
+
}
|
|
79
|
+
function createPromptTemplateAutocompleteProvider(templates, cwd) {
|
|
80
|
+
const provider = new CombinedAutocompleteProvider(templates.map(template => (Object.assign({ name: template.name, description: template.description }, (template.argumentHint ? { argumentHint: template.argumentHint } : {})))), cwd);
|
|
81
|
+
return {
|
|
82
|
+
getSuggestions(lines, cursorLine, cursorCol, options) {
|
|
83
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
84
|
+
var _a;
|
|
85
|
+
const textBeforeCursor = ((_a = lines[cursorLine]) !== null && _a !== void 0 ? _a : '').slice(0, cursorCol);
|
|
86
|
+
if (cursorLine !== 0 || !/^\/[^\s]*$/.test(textBeforeCursor)) {
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
return provider.getSuggestions(lines, cursorLine, cursorCol, Object.assign(Object.assign({}, options), { force: false }));
|
|
90
|
+
});
|
|
91
|
+
},
|
|
92
|
+
applyCompletion: (lines, cursorLine, cursorCol, item, prefix) => provider.applyCompletion(lines, cursorLine, cursorCol, item, prefix),
|
|
93
|
+
shouldTriggerFileCompletion: () => false,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
export function installHandoffGoalEditorAutocomplete(host) {
|
|
97
|
+
const showExtensionEditor = host.showExtensionEditor.bind(host);
|
|
98
|
+
host.showExtensionEditor = (title, prefill) => __awaiter(this, void 0, void 0, function* () {
|
|
99
|
+
var _a, _b, _c, _d, _e;
|
|
100
|
+
if (title !== HANDOFF_GOAL_EDITOR_TITLE) {
|
|
101
|
+
return showExtensionEditor(title, prefill);
|
|
102
|
+
}
|
|
103
|
+
const templates = [...((_b = (_a = host.session) === null || _a === void 0 ? void 0 : _a.promptTemplates) !== null && _b !== void 0 ? _b : [])];
|
|
104
|
+
const result = showExtensionEditor(title, prefill);
|
|
105
|
+
const editor = (_c = host.extensionEditor) === null || _c === void 0 ? void 0 : _c.editor;
|
|
106
|
+
if (editor) {
|
|
107
|
+
editor.setAutocompleteProvider(createPromptTemplateAutocompleteProvider(templates, (_e = (_d = host.sessionManager) === null || _d === void 0 ? void 0 : _d.getCwd()) !== null && _e !== void 0 ? _e : process.cwd()));
|
|
108
|
+
}
|
|
109
|
+
const goal = yield result;
|
|
110
|
+
return goal === undefined ? undefined : expandHandoffGoalTemplate(goal, templates);
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=handoff-goal-editor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handoff-goal-editor.js","sourceRoot":"","sources":["../../../src/agent/extensions/handoff-goal-editor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handoff.d.ts","sourceRoot":"","sources":["../../../src/agent/extensions/handoff.ts"],"names":[],"mappings":"AAIA,OAAO,EAIH,KAAK,YAAY,EAEjB,KAAK,gBAAgB,EAExB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAC,KAAK,KAAK,EAAE,KAAK,WAAW,EAAC,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"handoff.d.ts","sourceRoot":"","sources":["../../../src/agent/extensions/handoff.ts"],"names":[],"mappings":"AAIA,OAAO,EAIH,KAAK,YAAY,EAEjB,KAAK,gBAAgB,EAExB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAC,KAAK,KAAK,EAAE,KAAK,WAAW,EAAC,MAAM,wBAAwB,CAAC;AAGpE,eAAO,MAAM,wBAAwB,OAAO,CAAC;AA8B7C,MAAM,WAAW,mBAAmB;IAChC,SAAS,IAAI,OAAO,CAAC;IACrB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CACtC;AAED,MAAM,WAAW,wBAAwB;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAChC,cAAc,CAAC,OAAO,EAAE,wBAAwB,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACjG;AAED,MAAM,MAAM,wBAAwB,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1E,MAAM,WAAW,mBAAmB;IAChC,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,aAAa,EAAE,WAAW,EAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAChD;AAED,MAAM,WAAW,uBAAuB;IACpC,oBAAoB,IAAI,IAAI,CAAC;IAC7B,eAAe,EAAE;QACb,QAAQ,EAAE,OAAO,EAAE,CAAC;KACvB,CAAC;CACL;AAED,KAAK,sBAAsB,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;AAC5D,KAAK,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;AA4ChE,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,KAAK,GAAG,SAAS,CAItF;AAED,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAwBnF;AA+BD,wBAAgB,6BAA6B,CACzC,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,GACtB,MAAM,CAER;AAED,wBAAgB,2BAA2B,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAE5E;AAyBD,wBAAgB,qBAAqB,CACjC,YAAY,EAAE,mBAAmB,EACjC,QAAQ,EAAE,mBAAmB,GAC9B,IAAI,CAqBN;AAMD,wBAAgB,qCAAqC,CACjD,IAAI,EAAE,uBAAuB,EAC7B,QAAQ,EAAE,mBAAmB,GAC9B,IAAI,CASN;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,qBAAa,uBAAwB,YAAW,mBAAmB;IACnD,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,MAAM;IAE7C,SAAS,IAAI,OAAO;IAIpB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;CAkBrC;AAgKD,wBAAgB,6BAA6B,CACzC,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,GAAG,iBAAiB,GAAG,kBAAkB,CAAC,EACrE,QAAQ,EAAE,mBAAmB,EAC7B,aAAa,EAAE,MAAM,MAAM,EAC3B,YAAY,EAAE,mBAAmB,YAAsB,EACvD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EACvC,eAAe,EAAE,wBAAwB,GAAG,SAAS,EACrD,eAAe,EAAE,KAAK,GAAG,SAAS,GACnC,IAAI,CAgGN"}
|
|
@@ -11,6 +11,7 @@ import { randomUUID } from 'node:crypto';
|
|
|
11
11
|
import { mkdirSync, readFileSync, renameSync, rmSync, writeFileSync } from 'node:fs';
|
|
12
12
|
import path from 'node:path';
|
|
13
13
|
import { BorderedLoader, convertToLlm, serializeConversation, } from '@earendil-works/pi-coding-agent';
|
|
14
|
+
import { HANDOFF_GOAL_EDITOR_TITLE } from './handoff-goal-editor.js';
|
|
14
15
|
export const AUTO_HANDOFF_LEAD_TOKENS = 8192;
|
|
15
16
|
const BKPER_HANDOFF_SHORTCUT = 'ctrl+h';
|
|
16
17
|
const AUTO_HANDOFF_SETTING_ID = 'auto-handoff';
|
|
@@ -361,7 +362,7 @@ export function registerBkperHandoffExtension(pi, settings, reserveTokens, depen
|
|
|
361
362
|
if (!goal) {
|
|
362
363
|
const goalPrefill = pendingGoalPrefill !== null && pendingGoalPrefill !== void 0 ? pendingGoalPrefill : '';
|
|
363
364
|
pendingGoalPrefill = undefined;
|
|
364
|
-
const editedGoal = yield context.ui.editor(
|
|
365
|
+
const editedGoal = yield context.ui.editor(HANDOFF_GOAL_EDITOR_TITLE, goalPrefill);
|
|
365
366
|
if (editedGoal === undefined || !editedGoal.trim()) {
|
|
366
367
|
context.ui.notify('Handoff cancelled.', 'info');
|
|
367
368
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handoff.js","sourceRoot":"","sources":["../../../src/agent/extensions/handoff.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"handoff.js","sourceRoot":"","sources":["../../../src/agent/extensions/handoff.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,8 @@ import { runStartupMaintenance } from '../startup-maintenance.js';
|
|
|
3
3
|
type StartupExtensionAPI = Pick<ExtensionAPI, 'on'>;
|
|
4
4
|
export declare function registerBkperAgentStartupExtension(pi: StartupExtensionAPI, startupMaintenance?: typeof runStartupMaintenance, settingsManager?: {
|
|
5
5
|
getQuietStartup(): boolean;
|
|
6
|
-
|
|
6
|
+
getShellPath?(): string | undefined;
|
|
7
|
+
getDefaultTools?(): string[] | undefined;
|
|
8
|
+
}, bkperAiBaseUrlOverride?: string, bashAvailable?: boolean): void;
|
|
7
9
|
export {};
|
|
8
10
|
//# sourceMappingURL=startup.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startup.d.ts","sourceRoot":"","sources":["../../../src/agent/extensions/startup.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
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;AAEzC,OAAO,EAAC,qBAAqB,EAAC,MAAM,2BAA2B,CAAC;AAUhE,KAAK,mBAAmB,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AAyJpD,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"}
|
|
@@ -8,7 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
import { getKeybindings } from '@earendil-works/pi-tui';
|
|
11
|
-
import { keyText, VERSION as PI_VERSION, } from '@earendil-works/pi-coding-agent';
|
|
11
|
+
import { getShellConfig, keyText, VERSION as PI_VERSION, } from '@earendil-works/pi-coding-agent';
|
|
12
12
|
import { formatBkperSessionCommandShortcut } from '../interactive/session-keybindings.js';
|
|
13
13
|
import { runStartupMaintenance } from '../startup-maintenance.js';
|
|
14
14
|
import { getBkperHandoffShortcut } from './handoff.js';
|
|
@@ -65,11 +65,20 @@ const BKPER_BANNER = [
|
|
|
65
65
|
function formatStartupHint(theme, key, description) {
|
|
66
66
|
return theme.fg('dim', key) + theme.fg('muted', ` ${description}`);
|
|
67
67
|
}
|
|
68
|
+
function isBashAvailable(shellPath) {
|
|
69
|
+
try {
|
|
70
|
+
getShellConfig(shellPath);
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
catch (_a) {
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
68
77
|
function formatHandoffStartupCommand() {
|
|
69
78
|
const shortcut = getBkperHandoffShortcut(getKeybindings().getResolvedBindings());
|
|
70
79
|
return shortcut ? `/handoff (${shortcut})` : '/handoff';
|
|
71
80
|
}
|
|
72
|
-
function buildStartupHeaderLines(theme, modelRegistry, width) {
|
|
81
|
+
function buildStartupHeaderLines(theme, modelRegistry, width, showBashShortcut) {
|
|
73
82
|
const lines = [
|
|
74
83
|
...BKPER_BANNER.map(line => theme.bold(theme.fg('accent', line))),
|
|
75
84
|
theme.fg('muted', `powered by `) + theme.fg('dim', `pi v${PI_VERSION}`),
|
|
@@ -84,24 +93,29 @@ function buildStartupHeaderLines(theme, modelRegistry, width) {
|
|
|
84
93
|
formatStartupHint(theme, formatBkperSessionCommandShortcut('/fork', 'app.session.fork'), 'to branch from a message'),
|
|
85
94
|
formatStartupHint(theme, formatBkperSessionCommandShortcut('/tree', 'app.session.tree'), 'for session tree'),
|
|
86
95
|
formatStartupHint(theme, formatHandoffStartupCommand(), 'to continue in a focused session'),
|
|
87
|
-
formatStartupHint(theme, '!', 'to run bash'),
|
|
88
96
|
];
|
|
97
|
+
if (showBashShortcut) {
|
|
98
|
+
lines.push(formatStartupHint(theme, '!', 'to run bash'));
|
|
99
|
+
}
|
|
89
100
|
if (modelRegistry.getAvailable().length === 0) {
|
|
90
101
|
lines.push('', ...wrapStartupHeaderLine(NO_MODELS_STARTUP_HINT, width).map(line => theme.fg('warning', line)));
|
|
91
102
|
}
|
|
92
103
|
return lines.map(line => (line.length > 0 ? STARTUP_LEFT_PADDING + line : line));
|
|
93
104
|
}
|
|
94
|
-
function createStartupHeaderFactory(modelRegistry) {
|
|
105
|
+
function createStartupHeaderFactory(modelRegistry, showBashShortcut) {
|
|
95
106
|
return (_tui, theme) => ({
|
|
96
|
-
render: (width) => buildStartupHeaderLines(theme, modelRegistry, width),
|
|
107
|
+
render: (width) => buildStartupHeaderLines(theme, modelRegistry, width, showBashShortcut),
|
|
97
108
|
invalidate: () => { },
|
|
98
109
|
});
|
|
99
110
|
}
|
|
100
|
-
export function registerBkperAgentStartupExtension(pi, startupMaintenance = runStartupMaintenance, settingsManager, bkperAiBaseUrlOverride) {
|
|
111
|
+
export function registerBkperAgentStartupExtension(pi, startupMaintenance = runStartupMaintenance, settingsManager, bkperAiBaseUrlOverride, bashAvailable) {
|
|
101
112
|
let startupMaintenanceTriggered = false;
|
|
102
113
|
pi.on('session_start', (_event, ctx) => __awaiter(this, void 0, void 0, function* () {
|
|
114
|
+
var _a, _b, _c, _d;
|
|
103
115
|
if (!(settingsManager === null || settingsManager === void 0 ? void 0 : settingsManager.getQuietStartup())) {
|
|
104
|
-
|
|
116
|
+
const showBashShortcut = bashAvailable !== null && bashAvailable !== void 0 ? bashAvailable : (((_c = (_b = (_a = settingsManager === null || settingsManager === void 0 ? void 0 : settingsManager.getDefaultTools) === null || _a === void 0 ? void 0 : _a.call(settingsManager)) === null || _b === void 0 ? void 0 : _b.includes('bash')) !== null && _c !== void 0 ? _c : true) &&
|
|
117
|
+
isBashAvailable((_d = settingsManager === null || settingsManager === void 0 ? void 0 : settingsManager.getShellPath) === null || _d === void 0 ? void 0 : _d.call(settingsManager)));
|
|
118
|
+
ctx.ui.setHeader(createStartupHeaderFactory(ctx.modelRegistry, showBashShortcut));
|
|
105
119
|
}
|
|
106
120
|
if (startupMaintenanceTriggered) {
|
|
107
121
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startup.js","sourceRoot":"","sources":["../../../src/agent/extensions/startup.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"startup.js","sourceRoot":"","sources":["../../../src/agent/extensions/startup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive-mode.d.ts","sourceRoot":"","sources":["../../../src/agent/interactive/interactive-mode.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,eAAe,EAElB,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"interactive-mode.d.ts","sourceRoot":"","sources":["../../../src/agent/interactive/interactive-mode.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,eAAe,EAElB,MAAM,iCAAiC,CAAC;AAiBzC,MAAM,MAAM,sBAAsB,GAAG,qBAAqB,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;AAStF,wBAAgB,0BAA0B,IAAI,MAAM,IAAI,CAmBvD;AAED,qBAAa,oBAAqB,SAAQ,eAAe;IAC/C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA2DrB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAS7B"}
|
|
@@ -9,6 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
};
|
|
10
10
|
import { getAgentDir, InteractiveMode, } from '@earendil-works/pi-coding-agent';
|
|
11
11
|
import { installBkperAuthCommandRouting } from '../extensions/auth-commands.js';
|
|
12
|
+
import { installHandoffGoalEditorAutocomplete, } from '../extensions/handoff-goal-editor.js';
|
|
12
13
|
import { FileAutoHandoffSettings, getAutoHandoffSettingsPath, installAutoHandoffSettingsIntegration, } from '../extensions/handoff.js';
|
|
13
14
|
import { installBkperSessionKeybindings, } from './session-keybindings.js';
|
|
14
15
|
const PI_RESUME_HINT_TEXT = 'To resume this session:';
|
|
@@ -34,6 +35,7 @@ export class BkperInteractiveMode extends InteractiveMode {
|
|
|
34
35
|
init: { get: () => super.init }
|
|
35
36
|
});
|
|
36
37
|
return __awaiter(this, void 0, void 0, function* () {
|
|
38
|
+
var _a;
|
|
37
39
|
const interactiveMode = this;
|
|
38
40
|
interactiveMode.getChangelogForDisplay = () => undefined;
|
|
39
41
|
if (interactiveMode.keybindings) {
|
|
@@ -44,10 +46,15 @@ export class BkperInteractiveMode extends InteractiveMode {
|
|
|
44
46
|
if (authRoutingMode.editorContainer && authRoutingMode.showSettingsSelector) {
|
|
45
47
|
installAutoHandoffSettingsIntegration(authRoutingMode, new FileAutoHandoffSettings(getAutoHandoffSettingsPath(getAgentDir())));
|
|
46
48
|
}
|
|
47
|
-
|
|
49
|
+
const handoffGoalMode = this;
|
|
50
|
+
if (handoffGoalMode.showExtensionEditor) {
|
|
51
|
+
installHandoffGoalEditorAutocomplete(handoffGoalMode);
|
|
52
|
+
}
|
|
53
|
+
const providerRegistry = (_a = authRoutingMode.session) === null || _a === void 0 ? void 0 : _a.modelRuntime;
|
|
54
|
+
if (providerRegistry) {
|
|
48
55
|
const editors = new Set([authRoutingMode.defaultEditor, authRoutingMode.editor].filter(editor => editor !== undefined));
|
|
49
56
|
for (const editor of editors) {
|
|
50
|
-
installBkperAuthCommandRouting(editor,
|
|
57
|
+
installBkperAuthCommandRouting(editor, providerRegistry);
|
|
51
58
|
}
|
|
52
59
|
}
|
|
53
60
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive-mode.js","sourceRoot":"","sources":["../../../src/agent/interactive/interactive-mode.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACH,WAAW,EACX,eAAe,GAElB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAC,8BAA8B,EAAC,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EACH,uBAAuB,EACvB,0BAA0B,EAC1B,qCAAqC,GAExC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACH,8BAA8B,GAEjC,MAAM,0BAA0B,CAAC;AAIlC,MAAM,mBAAmB,GAAG,yBAAyB,CAAC;AACtD,MAAM,YAAY,GAAG,0BAA0B,CAAC;AAEhD,SAAS,oBAAoB,CAAC,KAAa;IACvC,OAAO,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,0BAA0B;IACtC,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;IAE3C,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,UAEnB,KAA0B,EAC1B,QAAyB,EACzB,QAAuC;QAEvC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3D,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/D,CAAgC,CAAC;IAEjC,OAAO,GAAG,EAAE;QACR,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC;IACzC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,OAAO,oBAAqB,SAAQ,eAAe;IAC/C,IAAI
|
|
1
|
+
{"version":3,"file":"interactive-mode.js","sourceRoot":"","sources":["../../../src/agent/interactive/interactive-mode.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACH,WAAW,EACX,eAAe,GAElB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAC,8BAA8B,EAAC,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EACH,oCAAoC,GAEvC,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACH,uBAAuB,EACvB,0BAA0B,EAC1B,qCAAqC,GAExC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACH,8BAA8B,GAEjC,MAAM,0BAA0B,CAAC;AAIlC,MAAM,mBAAmB,GAAG,yBAAyB,CAAC;AACtD,MAAM,YAAY,GAAG,0BAA0B,CAAC;AAEhD,SAAS,oBAAoB,CAAC,KAAa;IACvC,OAAO,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,0BAA0B;IACtC,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;IAE3C,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,UAEnB,KAA0B,EAC1B,QAAyB,EACzB,QAAuC;QAEvC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3D,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/D,CAAgC,CAAC;IAEjC,OAAO,GAAG,EAAE;QACR,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC;IACzC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,OAAO,oBAAqB,SAAQ,eAAe;IAC/C,IAAI;;;;;;YACN,MAAM,eAAe,GAAG,IAGvB,CAAC;YACF,eAAe,CAAC,sBAAsB,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC;YAEzD,IAAI,eAAe,CAAC,WAAW,EAAE,CAAC;gBAC9B,8BAA8B,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YAChE,CAAC;YAED,MAAM,OAAM,IAAI,WAAE,CAAC;YAEnB,MAAM,eAAe,GAAG,IAoBvB,CAAC;YACF,IAAI,eAAe,CAAC,eAAe,IAAI,eAAe,CAAC,oBAAoB,EAAE,CAAC;gBAC1E,qCAAqC,CACjC,eAAqD,EACrD,IAAI,uBAAuB,CAAC,0BAA0B,CAAC,WAAW,EAAE,CAAC,CAAC,CACzE,CAAC;YACN,CAAC;YAED,MAAM,eAAe,GAAG,IAAiD,CAAC;YAC1E,IAAI,eAAe,CAAC,mBAAmB,EAAE,CAAC;gBACtC,oCAAoC,CAAC,eAAwC,CAAC,CAAC;YACnF,CAAC;YAED,MAAM,gBAAgB,GAAG,MAAA,eAAe,CAAC,OAAO,0CAAE,YAAY,CAAC;YAC/D,IAAI,gBAAgB,EAAE,CAAC;gBACnB,MAAM,OAAO,GAAG,IAAI,GAAG,CACnB,CAAC,eAAe,CAAC,aAAa,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,MAAM,CAC1D,MAAM,CAAC,EAAE,CAAC,MAAM,KAAK,SAAS,CACjC,CACJ,CAAC;gBACF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;oBAC3B,8BAA8B,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;gBAC7D,CAAC;YACL,CAAC;QACL,CAAC;KAAA;IAEK,GAAG;;;;;YACL,MAAM,uBAAuB,GAAG,0BAA0B,EAAE,CAAC;YAE7D,IAAI,CAAC;gBACD,MAAM,OAAM,GAAG,WAAE,CAAC;YACtB,CAAC;oBAAS,CAAC;gBACP,uBAAuB,EAAE,CAAC;YAC9B,CAAC;QACL,CAAC;KAAA;CACJ"}
|
|
@@ -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;AAS/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,CA6HvB;AAED,wBAAsB,YAAY,CAC9B,YAAY,GAAE,qBAAqD,GACpE,OAAO,CAAC,IAAI,CAAC,CAUf"}
|
|
@@ -15,7 +15,7 @@ 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, collectSettingsDiagnostics, createStartupSessionManager, } from './settings.js';
|
|
18
|
+
import { applyBkperAgentSettingsDefaults, applyBkperAgentToolSelection, collectSettingsDiagnostics, createStartupSessionManager, } from './settings.js';
|
|
19
19
|
function reportDiagnostics(diagnostics) {
|
|
20
20
|
for (const diagnostic of diagnostics) {
|
|
21
21
|
const prefix = diagnostic.type === 'error'
|
|
@@ -35,7 +35,10 @@ export function createAgentModeDependencies(sessionOptions = {}) {
|
|
|
35
35
|
const startupSettingsManager = SettingsManager.create(cwd, agentDir);
|
|
36
36
|
const startupDiagnostics = collectSettingsDiagnostics(startupSettingsManager, 'startup session lookup');
|
|
37
37
|
const createRuntime = (_a) => __awaiter(this, [_a], void 0, function* ({ cwd, agentDir, sessionManager, sessionStartEvent, }) {
|
|
38
|
+
var _b;
|
|
38
39
|
const settingsManager = SettingsManager.create(cwd, agentDir);
|
|
40
|
+
const toolDiagnostics = applyBkperAgentToolSelection(settingsManager);
|
|
41
|
+
const selectedTools = (_b = settingsManager.getDefaultTools()) !== null && _b !== void 0 ? _b : [];
|
|
39
42
|
const modelRuntime = yield ModelRuntime.create({
|
|
40
43
|
authPath: join(agentDir, 'auth.json'),
|
|
41
44
|
modelsPath: join(agentDir, 'models.json'),
|
|
@@ -53,7 +56,7 @@ export function createAgentModeDependencies(sessionOptions = {}) {
|
|
|
53
56
|
settingsManager,
|
|
54
57
|
modelRuntime,
|
|
55
58
|
resourceLoaderOptions: {
|
|
56
|
-
systemPromptOverride: () => getBkperAgentSystemPrompt(),
|
|
59
|
+
systemPromptOverride: () => getBkperAgentSystemPrompt(selectedTools),
|
|
57
60
|
extensionFactories: [
|
|
58
61
|
(pi) => {
|
|
59
62
|
registerBkperAgentBuiltins(pi, runStartupMaintenance, settingsManager, process.env, modelRuntime, dispatchHandoffCommand);
|
|
@@ -65,6 +68,7 @@ export function createAgentModeDependencies(sessionOptions = {}) {
|
|
|
65
68
|
},
|
|
66
69
|
});
|
|
67
70
|
applyBkperAgentSettingsDefaults(settingsManager);
|
|
71
|
+
settingsManager.applyOverrides({ defaultTools: selectedTools });
|
|
68
72
|
const restoredSessionOptions = restorePersistedSessionOptions(settingsManager, {
|
|
69
73
|
getAvailable: () => [...services.modelRuntime.getAvailableSnapshot()],
|
|
70
74
|
find: (provider, modelId) => services.modelRuntime.getModel(provider, modelId),
|
|
@@ -80,6 +84,7 @@ export function createAgentModeDependencies(sessionOptions = {}) {
|
|
|
80
84
|
promptHandoffCommand = command => sessionResult.session.prompt(command);
|
|
81
85
|
return Object.assign(Object.assign({}, sessionResult), { services, diagnostics: [
|
|
82
86
|
...services.diagnostics,
|
|
87
|
+
...toolDiagnostics,
|
|
83
88
|
...collectSettingsDiagnostics(settingsManager, 'runtime creation'),
|
|
84
89
|
...restoredSessionOptions.diagnostics,
|
|
85
90
|
] });
|
|
@@ -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,0BAA0B,EAC1B,2BAA2B,GAC9B,MAAM,eAAe,CAAC;AAgBvB,SAAS,iBAAiB,CAAC,WAA4C;IACnE,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACnC,MAAM,MAAM,GACR,UAAU,CAAC,IAAI,KAAK,OAAO;YACvB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS;gBAC/B,CAAC,CAAC,WAAW;gBACb,CAAC,CAAC,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;IACpD,CAAC;AACL,CAAC;AAOD,MAAM,UAAU,2BAA2B,CACvC,iBAAiC,EAAE;IAEnC,OAAO;QACH,aAAa,EAAE,GAAS,EAAE;YACtB,yBAAyB,EAAE,CAAC;YAE5B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;YAC/B,MAAM,sBAAsB,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YACrE,MAAM,kBAAkB,GAAG,0BAA0B,CACjD,sBAAsB,EACtB,wBAAwB,CAC3B,CAAC;YAEF,MAAM,aAAa,GAAqC,KAKrD,EAAE,0CAL0D,EAC3D,GAAG,EACH,QAAQ,EACR,cAAc,EACd,iBAAiB,GACpB
|
|
1
|
+
{"version":3,"file":"run-agent-mode.js","sourceRoot":"","sources":["../../../src/agent/interactive/run-agent-mode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,25 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type AgentSessionRuntimeDiagnostic, type TuiMode } from '@earendil-works/pi-coding-agent';
|
|
2
2
|
type SettingsError = {
|
|
3
3
|
scope: 'global' | 'project';
|
|
4
4
|
error: Error;
|
|
5
5
|
};
|
|
6
|
+
export interface ShellAvailability {
|
|
7
|
+
bash: boolean;
|
|
8
|
+
powershell: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface ResolvedBkperAgentTools {
|
|
11
|
+
tools: string[];
|
|
12
|
+
warning?: string;
|
|
13
|
+
}
|
|
14
|
+
export declare function resolveBkperAgentTools(configuredTools: string[] | undefined, platform: NodeJS.Platform, availability: ShellAvailability): ResolvedBkperAgentTools;
|
|
15
|
+
type BkperAgentToolSettingsManager = {
|
|
16
|
+
getDefaultTools(): string[] | undefined;
|
|
17
|
+
getShellPath(): string | undefined;
|
|
18
|
+
applyOverrides(overrides: {
|
|
19
|
+
defaultTools: string[];
|
|
20
|
+
}): void;
|
|
21
|
+
};
|
|
22
|
+
export declare function applyBkperAgentToolSelection(settingsManager: BkperAgentToolSettingsManager, platform?: NodeJS.Platform): AgentSessionRuntimeDiagnostic[];
|
|
6
23
|
type BkperAgentSettingsDefaultsManager = {
|
|
7
24
|
getGlobalSettings(): {
|
|
8
25
|
showCacheMissNotices?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../src/agent/interactive/settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
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;AAED,wBAAgB,sBAAsB,CAClC,eAAe,EAAE,MAAM,EAAE,GAAG,SAAS,EACrC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,YAAY,EAAE,iBAAiB,GAChC,uBAAuB,CAmCzB;AAED,KAAK,6BAA6B,GAAG;IACjC,eAAe,IAAI,MAAM,EAAE,GAAG,SAAS,CAAC;IACxC,YAAY,IAAI,MAAM,GAAG,SAAS,CAAC;IACnC,cAAc,CAAC,SAAS,EAAE;QAAC,YAAY,EAAE,MAAM,EAAE,CAAA;KAAC,GAAG,IAAI,CAAC;CAC7D,CAAC;AAWF,wBAAgB,4BAA4B,CACxC,eAAe,EAAE,6BAA6B,EAC9C,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC7C,6BAA6B,EAAE,CAkBjC;AAED,KAAK,iCAAiC,GAAG;IACrC,iBAAiB,IAAI;QACjB,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,kBAAkB,IAAI;QAClB,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7C,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;CACnC,CAAC;AAEF,wBAAgB,+BAA+B,CAC3C,eAAe,EAAE,iCAAiC,GACnD,IAAI,CAkBN;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,3 +1,53 @@
|
|
|
1
|
+
import { getPowerShellConfig, getShellConfig, } from '@earendil-works/pi-coding-agent';
|
|
2
|
+
export function resolveBkperAgentTools(configuredTools, platform, availability) {
|
|
3
|
+
if (configuredTools) {
|
|
4
|
+
const unavailableShells = configuredTools.filter(tool => (tool === 'bash' && !availability.bash) ||
|
|
5
|
+
(tool === 'powershell' && !availability.powershell));
|
|
6
|
+
const tools = configuredTools.filter(tool => !unavailableShells.includes(tool));
|
|
7
|
+
return unavailableShells.length > 0
|
|
8
|
+
? {
|
|
9
|
+
tools,
|
|
10
|
+
warning: `Unavailable configured shell tools were disabled: ${unavailableShells.join(', ')}.`,
|
|
11
|
+
}
|
|
12
|
+
: { tools };
|
|
13
|
+
}
|
|
14
|
+
if (platform === 'win32' && availability.powershell) {
|
|
15
|
+
return { tools: ['read', 'powershell', 'edit', 'write'] };
|
|
16
|
+
}
|
|
17
|
+
if (availability.bash) {
|
|
18
|
+
return platform === 'win32'
|
|
19
|
+
? {
|
|
20
|
+
tools: ['read', 'bash', 'edit', 'write'],
|
|
21
|
+
warning: 'PowerShell is unavailable; using Bash instead.',
|
|
22
|
+
}
|
|
23
|
+
: { tools: ['read', 'bash', 'edit', 'write'] };
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
tools: ['read', 'edit', 'write'],
|
|
27
|
+
warning: 'No supported shell is available; command execution is disabled.',
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
function canResolveShell(resolve) {
|
|
31
|
+
try {
|
|
32
|
+
resolve();
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
catch (_a) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export function applyBkperAgentToolSelection(settingsManager, platform = process.platform) {
|
|
40
|
+
const forceWindows = process.env.BKPER_AGENT_FORCE_PLATFORM === 'win32';
|
|
41
|
+
const effectivePlatform = forceWindows ? 'win32' : platform;
|
|
42
|
+
const availability = {
|
|
43
|
+
bash: canResolveShell(() => getShellConfig(settingsManager.getShellPath())),
|
|
44
|
+
powershell: effectivePlatform === 'win32' &&
|
|
45
|
+
(forceWindows || canResolveShell(() => getPowerShellConfig())),
|
|
46
|
+
};
|
|
47
|
+
const resolved = resolveBkperAgentTools(settingsManager.getDefaultTools(), effectivePlatform, availability);
|
|
48
|
+
settingsManager.applyOverrides({ defaultTools: resolved.tools });
|
|
49
|
+
return resolved.warning ? [{ type: 'warning', message: resolved.warning }] : [];
|
|
50
|
+
}
|
|
1
51
|
export function applyBkperAgentSettingsDefaults(settingsManager) {
|
|
2
52
|
const globalSettings = settingsManager.getGlobalSettings();
|
|
3
53
|
const projectSettings = settingsManager.getProjectSettings();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/agent/interactive/settings.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/agent/interactive/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EACnB,cAAc,GAGjB,MAAM,iCAAiC,CAAC;AAiBzC,MAAM,UAAU,sBAAsB,CAClC,eAAqC,EACrC,QAAyB,EACzB,YAA+B;IAE/B,IAAI,eAAe,EAAE,CAAC;QAClB,MAAM,iBAAiB,GAAG,eAAe,CAAC,MAAM,CAC5C,IAAI,CAAC,EAAE,CACH,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACvC,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAC1D,CAAC;QACF,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAChF,OAAO,iBAAiB,CAAC,MAAM,GAAG,CAAC;YAC/B,CAAC,CAAC;gBACI,KAAK;gBACL,OAAO,EAAE,qDAAqD,iBAAiB,CAAC,IAAI,CAChF,IAAI,CACP,GAAG;aACP;YACH,CAAC,CAAC,EAAC,KAAK,EAAC,CAAC;IAClB,CAAC;IAED,IAAI,QAAQ,KAAK,OAAO,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC;QAClD,OAAO,EAAC,KAAK,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAC,CAAC;IAC5D,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,CAAC;gBACxC,OAAO,EAAE,gDAAgD;aAC5D;YACH,CAAC,CAAC,EAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAC,CAAC;IACrD,CAAC;IAED,OAAO;QACH,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;QAChC,OAAO,EAAE,iEAAiE;KAC7E,CAAC;AACN,CAAC;AAQD,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,QAAQ,GAAG,sBAAsB,CACnC,eAAe,CAAC,eAAe,EAAE,EACjC,iBAAiB,EACjB,YAAY,CACf,CAAC;IAEF,eAAe,CAAC,cAAc,CAAC,EAAC,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAC,CAAC,CAAC;IAE/D,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;AAeD,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;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"}
|
|
@@ -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":"AA6HA,wBAAgB,yBAAyB,CACrC,aAAa,GAAE,MAAM,EAAsC,GAC5D,MAAM,CAsDR;AA4BD,eAAO,MAAM,yBAAyB,QAKpC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createBashToolDefinition, createEditToolDefinition, createReadToolDefinition, createWriteToolDefinition, } from '@earendil-works/pi-coding-agent';
|
|
1
|
+
import { createBashToolDefinition, createEditToolDefinition, createPowerShellToolDefinition, createReadToolDefinition, createWriteToolDefinition, } from '@earendil-works/pi-coding-agent';
|
|
2
2
|
import { existsSync } from 'node:fs';
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import { fileURLToPath } from 'node:url';
|
|
@@ -58,16 +58,17 @@ function normalizePromptGuidelines(guidelines) {
|
|
|
58
58
|
}
|
|
59
59
|
return Array.from(unique);
|
|
60
60
|
}
|
|
61
|
-
function getCodingToolDefinitions() {
|
|
61
|
+
function getCodingToolDefinitions(selectedTools) {
|
|
62
62
|
return [
|
|
63
63
|
createReadToolDefinition(process.cwd()),
|
|
64
64
|
createBashToolDefinition(process.cwd()),
|
|
65
|
+
createPowerShellToolDefinition(process.cwd()),
|
|
65
66
|
createEditToolDefinition(process.cwd()),
|
|
66
67
|
createWriteToolDefinition(process.cwd()),
|
|
67
|
-
];
|
|
68
|
+
].filter(definition => selectedTools.includes(definition.name));
|
|
68
69
|
}
|
|
69
|
-
function buildToolPromptSection() {
|
|
70
|
-
const toolDefinitions = getCodingToolDefinitions();
|
|
70
|
+
function buildToolPromptSection(selectedTools) {
|
|
71
|
+
const toolDefinitions = getCodingToolDefinitions(selectedTools);
|
|
71
72
|
const toolLines = toolDefinitions
|
|
72
73
|
.flatMap(definition => {
|
|
73
74
|
const snippet = normalizePromptSnippet(definition.promptSnippet);
|
|
@@ -84,7 +85,12 @@ function buildToolPromptSection() {
|
|
|
84
85
|
seenGuidelines.add(normalized);
|
|
85
86
|
guidelineLines.push(`- ${normalized}`);
|
|
86
87
|
};
|
|
87
|
-
|
|
88
|
+
if (selectedTools.includes('powershell')) {
|
|
89
|
+
addGuideline('Use PowerShell for file operations like listing, searching, and finding files. Use it to run bkper CLI commands when relevant.');
|
|
90
|
+
}
|
|
91
|
+
else if (selectedTools.includes('bash')) {
|
|
92
|
+
addGuideline('Use bash for discovery and search like ls, rg, and find. Use it to run bkper CLI commands when relevant.');
|
|
93
|
+
}
|
|
88
94
|
for (const definition of toolDefinitions) {
|
|
89
95
|
for (const guideline of normalizePromptGuidelines(definition.promptGuidelines)) {
|
|
90
96
|
addGuideline(guideline);
|
|
@@ -94,14 +100,14 @@ function buildToolPromptSection() {
|
|
|
94
100
|
const toolsList = toolLines.length > 0 ? toolLines : '(none)';
|
|
95
101
|
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')}`;
|
|
96
102
|
}
|
|
97
|
-
export function getBkperAgentSystemPrompt() {
|
|
103
|
+
export function getBkperAgentSystemPrompt(selectedTools = ['read', 'bash', 'edit', 'write']) {
|
|
98
104
|
const coreConceptsPath = resolveReferenceDocPath('core/core-concepts.md');
|
|
99
105
|
const indexPath = resolveDocsIndexPath('index.md');
|
|
100
106
|
const referenceDocsDir = path.dirname(indexPath);
|
|
101
107
|
const piRoot = resolvePiPackageRoot();
|
|
102
108
|
const piDocsPath = path.resolve(piRoot, 'docs');
|
|
103
109
|
const piExamplesPath = path.resolve(piRoot, 'examples');
|
|
104
|
-
return `${
|
|
110
|
+
return `${buildBkperOperatingContext(selectedTools)}
|
|
105
111
|
## Required Reading
|
|
106
112
|
|
|
107
113
|
Bkper's accounting model is intentionally non-standard. Generic accounting knowledge — debit/credit, account categories, sign conventions — will lead you to wrong answers here.
|
|
@@ -149,7 +155,8 @@ ${piExamplesPath}
|
|
|
149
155
|
And follow the most relevant link to find the answer.
|
|
150
156
|
`;
|
|
151
157
|
}
|
|
152
|
-
|
|
158
|
+
function buildBkperOperatingContext(selectedTools) {
|
|
159
|
+
return `# Bkper Context
|
|
153
160
|
|
|
154
161
|
You are a Bkper team member.
|
|
155
162
|
|
|
@@ -157,7 +164,7 @@ Protect the zero-sum invariant above all else.
|
|
|
157
164
|
|
|
158
165
|
You help users by reading files, executing commands, editing code, and writing new files.
|
|
159
166
|
|
|
160
|
-
${buildToolPromptSection()}
|
|
167
|
+
${buildToolPromptSection(selectedTools)}
|
|
161
168
|
|
|
162
169
|
## IMPORTANT Operating Principles
|
|
163
170
|
|
|
@@ -172,4 +179,11 @@ ${buildToolPromptSection()}
|
|
|
172
179
|
- Model domain and flows before coding; represent business reality, not technical shortcuts.
|
|
173
180
|
- Prefer simplicity over cleverness; choose small, boring, maintainable solutions.
|
|
174
181
|
`;
|
|
182
|
+
}
|
|
183
|
+
export const BKPER_AGENT_SYSTEM_PROMPT = buildBkperOperatingContext([
|
|
184
|
+
'read',
|
|
185
|
+
'bash',
|
|
186
|
+
'edit',
|
|
187
|
+
'write',
|
|
188
|
+
]);
|
|
175
189
|
//# sourceMappingURL=system-prompt.js.map
|
|
@@ -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":"AAAA,OAAO,EACH,wBAAwB,EACxB,wBAAwB,EACxB,8BAA8B,EAC9B,wBAAwB,EACxB,yBAAyB,GAC5B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,SAAS,wBAAwB,CAAC,UAAoB;IAClD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACjC,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QACrB,CAAC;IACL,CAAC;IACD,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAgB;IAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7D,OAAO,wBAAwB,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC;KACrE,CAAC,CAAC;AACP,CAAC;AAED,SAAS,uBAAuB,CAAC,YAAoB;IACjD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7D,OAAO,wBAAwB,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC;QACjD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC;KACzE,CAAC,CAAC;AACP,CAAC;AAED,SAAS,oBAAoB;IACzB,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC,CAAC;IAC1F,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACpC,OAAO,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;YAC7C,OAAO,GAAG,CAAC;QACf,CAAC;QACD,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAwB;IACpD,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,OAAO,GAAG,IAAI;SACf,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;SACxB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CAAC;IACZ,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AACpD,CAAC;AAED,SAAS,yBAAyB,CAAC,UAAgC;IAC/D,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzC,OAAO,EAAE,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;QACpC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC3B,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,wBAAwB,CAAC,aAAuB;IACrD,OAAO;QACH,wBAAwB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACvC,wBAAwB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACvC,8BAA8B,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QAC7C,wBAAwB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACvC,yBAAyB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;KAC3C,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,sBAAsB,CAAC,aAAuB;IACnD,MAAM,eAAe,GAAG,wBAAwB,CAAC,aAAa,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,eAAe;SAC5B,OAAO,CAAC,UAAU,CAAC,EAAE;QAClB,MAAM,OAAO,GAAG,sBAAsB,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QACjE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/D,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEhB,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IACzC,MAAM,YAAY,GAAG,CAAC,SAAiB,EAAE,EAAE;QACvC,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;QACpC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5D,OAAO;QACX,CAAC;QACD,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC/B,cAAc,CAAC,IAAI,CAAC,KAAK,UAAU,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC;IAEF,IAAI,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QACvC,YAAY,CACR,gIAAgI,CACnI,CAAC;IACN,CAAC;SAAM,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACxC,YAAY,CACR,0GAA0G,CAC7G,CAAC;IACN,CAAC;IACD,KAAK,MAAM,UAAU,IAAI,eAAe,EAAE,CAAC;QACvC,KAAK,MAAM,SAAS,IAAI,yBAAyB,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC7E,YAAY,CAAC,SAAS,CAAC,CAAC;QAC5B,CAAC;IACL,CAAC;IACD,YAAY,CAAC,8EAA8E,CAAC,CAAC;IAE7F,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC9D,OAAO,qBAAqB,SAAS,2HAA2H,cAAc,CAAC,IAAI,CAC/K,IAAI,CACP,EAAE,CAAC;AACR,CAAC;AAED,MAAM,UAAU,yBAAyB,CACrC,gBAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;IAE3D,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,uBAAuB,CAAC,CAAC;IAC1E,MAAM,SAAS,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;IACnD,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxD,OAAO,GAAG,0BAA0B,CAAC,aAAa,CAAC;;;;;;;;EAQrD,gBAAgB;;;;;;;;;;;EAWhB,SAAS;;;;;EAKT,gBAAgB;;;;;;;;EAQhB,UAAU;;;;;;EAMV,cAAc;;;;;;;;CAQf,CAAC;AACF,CAAC;AAED,SAAS,0BAA0B,CAAC,aAAuB;IACvD,OAAO;;;;;;;;EAQT,sBAAsB,CAAC,aAAa,CAAC;;;;;;;;;;;;;;CActC,CAAC;AACF,CAAC;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG,0BAA0B,CAAC;IAChE,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;CACV,CAAC,CAAC"}
|
|
@@ -14,7 +14,6 @@ my-app/
|
|
|
14
14
|
│ ├── vite.config.ts
|
|
15
15
|
│ └── src/
|
|
16
16
|
│ ├── api/
|
|
17
|
-
│ ├── app/
|
|
18
17
|
│ ├── auth/
|
|
19
18
|
│ ├── components/
|
|
20
19
|
│ └── services/
|
|
@@ -44,10 +43,14 @@ The client uses:
|
|
|
44
43
|
- [`@bkper/web-design`](https://www.npmjs.com/package/@bkper/web-design) for Bkper design tokens.
|
|
45
44
|
- [Vite](https://vitejs.dev/) for development and production builds, configured in `client/vite.config.ts`.
|
|
46
45
|
|
|
47
|
-
Client code has two data paths:
|
|
46
|
+
Client code has two data paths. Choose based on who owns the behavior:
|
|
48
47
|
|
|
49
|
-
- **Direct Bkper calls** use `bkper-js` for browser
|
|
50
|
-
- **App API calls** use the generated typed client in `client/src/api/` with `auth.authenticatedFetch()
|
|
48
|
+
- **Direct Bkper calls** use `bkper-js` for generic Bkper data needed only by the browser UI.
|
|
49
|
+
- **App API calls** use the generated typed client in `client/src/api/` with `auth.authenticatedFetch()` for app-owned behavior, especially when it needs server-only capabilities or more than one caller.
|
|
50
|
+
|
|
51
|
+
Keep app-owned behavior in one place. Do not implement the same behavior separately in the UI and the app API.
|
|
52
|
+
|
|
53
|
+
For stateful feature components, co-locate view, controller, and CSS files in one folder under `components/`. Simple presentational components can remain in one file.
|
|
51
54
|
|
|
52
55
|
### Client authentication
|
|
53
56
|
|
|
@@ -115,7 +118,7 @@ The default template publishes versioned routes under `/api/v1/*` and exposes th
|
|
|
115
118
|
| Business behavior | `server/src/services/` |
|
|
116
119
|
| Generated client types | `client/src/api/generated/types.d.ts` |
|
|
117
120
|
| Typed client wrapper | `client/src/api/app-api.ts` |
|
|
118
|
-
| Contract snapshot | `server/test/openapi.snapshot.json`
|
|
121
|
+
| Contract snapshot | `server/test/api/openapi.snapshot.json` |
|
|
119
122
|
|
|
120
123
|
When changing the API:
|
|
121
124
|
|
|
@@ -126,6 +129,30 @@ When changing the API:
|
|
|
126
129
|
|
|
127
130
|
Keep existing `/api/v1/*` contracts backward compatible. Additive fields and routes can remain in `v1`; breaking changes belong in a new namespace such as `/api/v2/*`.
|
|
128
131
|
|
|
132
|
+
### Reuse Bkper API types
|
|
133
|
+
|
|
134
|
+
When an app API returns payloads from the Bkper REST API, reference the canonical types from `@bkper/bkper-api-types` instead of recreating their fields in the app. The template's balances endpoint demonstrates this with `bkper.Book`:
|
|
135
|
+
|
|
136
|
+
```ts
|
|
137
|
+
export const BookSchema = z
|
|
138
|
+
.custom<bkper.Book>(value => value !== undefined)
|
|
139
|
+
.openapi('Book', {
|
|
140
|
+
type: 'object',
|
|
141
|
+
additionalProperties: true,
|
|
142
|
+
'x-typescript-type': 'bkper.Book',
|
|
143
|
+
});
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
The template's API generator recognizes `x-typescript-type`, imports `@bkper/bkper-api-types`, and emits the canonical reference in `client/src/api/generated/types.d.ts`:
|
|
147
|
+
|
|
148
|
+
```ts
|
|
149
|
+
Book: bkper.Book;
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Both the server and client packages include `@bkper/bkper-api-types` for local typechecking. Run `npm run api` after adding or changing these schemas.
|
|
153
|
+
|
|
154
|
+
This bridge provides compile-time types but does not validate payload fields at runtime. Use it directly for trusted Bkper-owned responses. Request bodies, especially those used to create or modify Book resources, still require concrete Zod validation.
|
|
155
|
+
|
|
129
156
|
### URLs
|
|
130
157
|
|
|
131
158
|
```txt
|
|
@@ -145,7 +172,7 @@ TOKEN="$(bkper auth token)"
|
|
|
145
172
|
|
|
146
173
|
curl \
|
|
147
174
|
-H "Authorization: Bearer ${TOKEN}" \
|
|
148
|
-
"https://my-app.bkper.app/api/v1/
|
|
175
|
+
"https://my-app.bkper.app/api/v1/ping"
|
|
149
176
|
```
|
|
150
177
|
|
|
151
178
|
Replace `my-app` with the app id from `bkper.yaml`.
|
|
@@ -155,7 +182,7 @@ Replace `my-app` with the app id from `bkper.yaml`.
|
|
|
155
182
|
Deployed `/api/*` routes require a Bkper OAuth bearer token. The template client uses `authenticatedFetch()` so token attachment and refresh stay inside `@bkper/web-auth`:
|
|
156
183
|
|
|
157
184
|
```ts
|
|
158
|
-
const response = await auth.authenticatedFetch('/api/v1/
|
|
185
|
+
const response = await auth.authenticatedFetch('/api/v1/ping');
|
|
159
186
|
```
|
|
160
187
|
|
|
161
188
|
Dispatch validates the incoming bearer token and strips the `Authorization` header before the Worker runs. Server code should not read or forward the token.
|
|
@@ -171,6 +198,12 @@ const books = await bkper.getBooks();
|
|
|
171
198
|
|
|
172
199
|
Platform outbound authentication injects the validated user's OAuth token on Bkper API requests.
|
|
173
200
|
|
|
201
|
+
### Authorize app operations
|
|
202
|
+
|
|
203
|
+
Authentication identifies the Bkper user, but each app must authorize sensitive data and actions server-side. Client-side checks are not an authorization boundary.
|
|
204
|
+
|
|
205
|
+
See [App Security](https://bkper.com/docs/build/apps/security.md) for domain restrictions, Book permissions, and app installation checks.
|
|
206
|
+
|
|
174
207
|
## Event handlers
|
|
175
208
|
|
|
176
209
|
Platform event deliveries reach `/events` on the same Worker. Event adapters live in `server/src/events/`, while reusable business behavior belongs in `server/src/services/`.
|
|
@@ -25,10 +25,10 @@ You can also run them independently: `npm run dev:client` for just the UI, or `n
|
|
|
25
25
|
| Client (Vite dev server) | `http://localhost:5173` |
|
|
26
26
|
| Server Worker (Miniflare) | `http://localhost:8787` |
|
|
27
27
|
| App API routes | `http://localhost:8787/api/*` |
|
|
28
|
-
| App OpenAPI spec | `http://localhost:
|
|
28
|
+
| App OpenAPI spec | `http://localhost:5173/openapi.json` |
|
|
29
29
|
| Events (via tunnel to the same Worker) | `https://<random>.trycloudflare.com/events` |
|
|
30
30
|
|
|
31
|
-
The Vite dev server proxies `/api` requests to `http://localhost:8787` through `client/vite.config.ts
|
|
31
|
+
The Vite dev server proxies `/api` and `/openapi.json` requests to `http://localhost:8787` through `client/vite.config.ts`, so the client and OpenAPI spec share the same local origin just as they do in production. The spec also remains available directly from the Worker at `http://localhost:8787/openapi.json`. The tunnel URL is automatically registered as `webhookUrlDev`, so development-mode events are routed to your local machine.
|
|
32
32
|
|
|
33
33
|
## Configuration flags
|
|
34
34
|
|
|
@@ -40,13 +40,13 @@ bkper app dev --sp 8787
|
|
|
40
40
|
|
|
41
41
|
## Client configuration
|
|
42
42
|
|
|
43
|
-
The client dev server is configured in `client/vite.config.ts`. This standard Vite configuration registers local auth middleware and proxies `/api` requests to the Worker.
|
|
43
|
+
The client dev server is configured in `client/vite.config.ts`. This standard Vite configuration registers local auth middleware and proxies `/api` and `/openapi.json` requests to the Worker.
|
|
44
44
|
|
|
45
45
|
### Local development authentication
|
|
46
46
|
|
|
47
47
|
During local development, the Vite dev server runs `createBkperAuthMiddleware()` from `bkper/dev`. It serves the local `/auth/refresh` endpoint used by `@bkper/web-auth`, obtaining OAuth tokens from your CLI credentials.
|
|
48
48
|
|
|
49
|
-
The separate Vite proxy configuration forwards `/api` requests to the Miniflare Worker.
|
|
49
|
+
The separate Vite proxy configuration forwards `/api` and `/openapi.json` requests to the Miniflare Worker.
|
|
50
50
|
|
|
51
51
|
Before starting development, run:
|
|
52
52
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Event Handlers
|
|
1
|
+
# Bkper Webhooks and Event Handlers
|
|
2
2
|
|
|
3
3
|
Event handlers are the code that reacts to events in your Bkper Books. When a transaction is checked, an account is created, or any other event occurs, your handler receives it and can take action — calculate taxes, sync data between books, post to external services, and more.
|
|
4
4
|
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# App Security
|
|
2
|
+
|
|
3
|
+
Bkper and each platform app have separate security responsibilities. This guide explains the platform authentication boundary and common authorization checks an app must enforce.
|
|
4
|
+
|
|
5
|
+
## Authentication and authorization
|
|
6
|
+
|
|
7
|
+
Authentication identifies the Bkper user making a request. The platform handles this flow for deployed apps.
|
|
8
|
+
|
|
9
|
+
Authorization determines whether that user may perform a specific operation.
|
|
10
|
+
|
|
11
|
+
See [App Architecture](https://bkper.com/docs/build/apps/architecture.md) for the client and server authentication flow.
|
|
12
|
+
|
|
13
|
+
## Authorize app operations
|
|
14
|
+
|
|
15
|
+
Platform authentication identifies the Bkper user and provides outbound authentication for server-side Bkper requests. Your app must still decide which authenticated users may perform each operation. Protect sensitive data and actions in the server API; client-side checks may improve the UI, but they are not an authorization boundary.
|
|
16
|
+
|
|
17
|
+
### Restrict an internal app by user domain
|
|
18
|
+
|
|
19
|
+
For an app intended only for people in one organization, authorize the authenticated user's hosted domain:
|
|
20
|
+
|
|
21
|
+
```ts
|
|
22
|
+
const ALLOWED_DOMAIN = 'example.com';
|
|
23
|
+
|
|
24
|
+
const user = await context.bkper.getUser();
|
|
25
|
+
const domain = user.getHostedDomain()?.toLowerCase();
|
|
26
|
+
|
|
27
|
+
if (domain !== ALLOWED_DOMAIN) {
|
|
28
|
+
return c.json(buildApiError('FORBIDDEN', 'This app is restricted to your organization'), 403);
|
|
29
|
+
}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Authorize a Book-backed operation
|
|
33
|
+
|
|
34
|
+
When an operation acts on a Book, use an explicit permission allowlist appropriate to that operation. For an operation that requires edit access:
|
|
35
|
+
|
|
36
|
+
```ts
|
|
37
|
+
import { Permission } from 'bkper-js';
|
|
38
|
+
|
|
39
|
+
const EDIT_PERMISSIONS: readonly Permission[] = [Permission.EDITOR, Permission.OWNER];
|
|
40
|
+
|
|
41
|
+
const book = await context.bkper.getBook(bookId);
|
|
42
|
+
|
|
43
|
+
if (!EDIT_PERMISSIONS.includes(book.getPermission())) {
|
|
44
|
+
return c.json(
|
|
45
|
+
buildApiError('FORBIDDEN', 'Editor or owner permission required for this operation'),
|
|
46
|
+
403
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Read, posting, and other operations may require different policies. Choose the minimum authorization appropriate to the behavior instead of treating every authenticated user as authorized.
|
|
52
|
+
|
|
53
|
+
### Require app installation
|
|
54
|
+
|
|
55
|
+
Having permission to access a Book does not mean the app is installed in that Book. If an app is only supposed to be used with Books where it is installed, verify installation:
|
|
56
|
+
|
|
57
|
+
```ts
|
|
58
|
+
const APP_ID = 'my-app';
|
|
59
|
+
|
|
60
|
+
const book = await context.bkper.getBook(bookId);
|
|
61
|
+
const installedApps = await book.getApps();
|
|
62
|
+
const isInstalled = installedApps.some(app => app.getId() === APP_ID);
|
|
63
|
+
|
|
64
|
+
if (!isInstalled) {
|
|
65
|
+
return c.json(buildApiError('FORBIDDEN', 'This app is not installed in this Book'), 403);
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Next Steps
|
|
70
|
+
|
|
71
|
+
- [App Architecture](https://bkper.com/docs/build/apps/architecture.md) — Understand client and server authentication flows.
|
|
72
|
+
- [Building & Deploying](https://bkper.com/docs/build/apps/deploying.md#setting-secrets) — Store production and preview secrets.
|
|
73
|
+
- [Event Handlers](https://bkper.com/docs/build/apps/event-handlers.md#authentication) — Understand authentication for platform and self-hosted events.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Self-Hosted
|
|
1
|
+
# Bkper Self-Hosted Webhooks
|
|
2
2
|
|
|
3
3
|
The [Bkper Platform](https://bkper.com/docs/build/apps/overview.md) handles hosting, authentication, and deployment for you. However, you can host event handlers on your own infrastructure if you have specific requirements — existing cloud setup, compliance constraints, or legacy apps.
|
|
4
4
|
|
|
@@ -238,6 +238,10 @@ bkper transaction create -b abc123 --description "Office supplies"
|
|
|
238
238
|
bkper transaction create -b abc123 --date 2025-01-15 --amount 100.50 \
|
|
239
239
|
--from "Bank Account" --to "Office Supplies" --description "Printer paper"
|
|
240
240
|
|
|
241
|
+
# Keep a complete AI-derived transaction as a draft
|
|
242
|
+
printf '%s\n' '[{"date":"2025-01-15","amount":"100.50","creditAccount":{"name":"Bank Account"},"debitAccount":{"name":"Office Supplies"},"description":"Extracted printer paper","draft":true}]' | \
|
|
243
|
+
bkper transaction create -b abc123
|
|
244
|
+
|
|
241
245
|
# Create a transaction with one local attachment
|
|
242
246
|
bkper transaction create -b abc123 --date 2025-01-15 --amount 23.90 \
|
|
243
247
|
--from "Cash" --to "Meals" --description "Team lunch" --file ./receipt.pdf
|
|
@@ -540,6 +544,10 @@ python export_bank.py | bkper transaction create -b abc123
|
|
|
540
544
|
|
|
541
545
|
The input follows the exact `bkper.Transaction` or `bkper.Account` type from the [Bkper API Types](https://raw.githubusercontent.com/bkper/bkper-api-types/refs/heads/master/index.d.ts). Custom properties go inside the `properties` object.
|
|
542
546
|
|
|
547
|
+
### AI-derived transaction safety
|
|
548
|
+
|
|
549
|
+
Always set `"draft": true` for AI-derived transactions, even when complete. It bypasses Book auto-posting, so the transaction stays out of balances until explicitly posted. Do not rely on missing fields; parsing or Account discovery may complete them.
|
|
550
|
+
|
|
543
551
|
Groups are created explicitly with `bkper group create --name` and optional `--parent` so hierarchy stays deterministic during setup.
|
|
544
552
|
|
|
545
553
|
The `--property` CLI flag can override or delete properties from the stdin payload:
|
|
@@ -604,6 +612,7 @@ Only the fields below are meaningful when creating or updating resources via std
|
|
|
604
612
|
| `creditAccount` | `{"name":"..."}` or `{"id":"..."}` | Reference to an existing account |
|
|
605
613
|
| `debitAccount` | `{"name":"..."}` or `{"id":"..."}` | Reference to an existing account |
|
|
606
614
|
| `description` | `string` | Free-text description |
|
|
615
|
+
| `draft` | `boolean` | `true` forces a draft and bypasses Book auto-posting |
|
|
607
616
|
| `urls` | `string[]` | Attached URLs (e.g. receipts) |
|
|
608
617
|
| `remoteIds` | `string[]` | External IDs to prevent duplicates |
|
|
609
618
|
| `properties` | `{"key": "value", ...}` | Custom key/value properties |
|
package/lib/docs/index.md
CHANGED
|
@@ -11,6 +11,7 @@ For Bkper data, accounting, reporting, tax, or financial-flow tasks, read `core/
|
|
|
11
11
|
- `apps/ai.md` — Bkper AI integration for Platform apps: authenticated `/api/*` request flow, outbound authorization and app attribution, live model discovery, strict structured output, response validation, error preservation, data minimization, and unit-test boundaries.
|
|
12
12
|
- `apps/first-app.md` — First-app walkthrough: scaffold, install, run locally, trigger an event, customize the listing, establish shared source, check, and deploy.
|
|
13
13
|
- `apps/architecture.md` — App and template architecture: npm workspace structure, Lit/Vite client, Hono Worker, typed `/api/*` contracts, authentication, `/events`, static assets, and supported app shapes.
|
|
14
|
+
- `apps/security.md` — App security responsibilities and server-side authorization: platform authentication boundaries, user-domain restrictions, Book permission allowlists, and app installation checks.
|
|
14
15
|
- `apps/configuration.md` — Complete `bkper.yaml` reference: identity, branding, ownership, access, context menus, event subscriptions, property schemas, and single-Worker deployment settings.
|
|
15
16
|
- `apps/development.md` — Local development: Vite and Worker processes, ports, API proxy, local authentication, secrets, KV, generated environment types, development loop, and debugging.
|
|
16
17
|
- `apps/event-handlers.md` — Event handler behavior: `/events` routing, responses, replay, loop prevention, platform and self-hosted authentication, event payloads, and event types.
|
package/lib/docs/sdk/bkper-js.md
CHANGED
|
@@ -636,7 +636,8 @@ It contains all `Accounts` where `Transactions` are recorded/posted;
|
|
|
636
636
|
- `listEvents(options: ListEventsOptions)` → `Promise<EventList>` — Lists events in the Book based on the provided options.
|
|
637
637
|
- `listFiles(limit?: number, cursor?: string)` → `Promise<FileList>` — Lists files in the Book, for pagination.
|
|
638
638
|
- `listTransactions(query?: string, limit?: number, cursor?: string)` → `Promise<TransactionList>` — Lists transactions in the Book based on the provided query, limit, and cursor, for pagination.
|
|
639
|
-
- `mergeTransactions(
|
|
639
|
+
- `mergeTransactions(primary: string | bkper.Transaction | Transaction, secondary: string | bkper.Transaction | Transaction)` → `Promise<Transaction>` — Merge a primary and secondary `Transaction`. Submitted primary fields
|
|
640
|
+
have highest precedence; an id string sends no field overrides.
|
|
640
641
|
- `parseDate(date: string)` → `Date` — Parse a date string according to date pattern and timezone of the Book. Also parse ISO yyyy-mm-dd format.
|
|
641
642
|
- `parseValue(value: string)` → `Amount | undefined` — Parse a value string according to `DecimalSeparator` and fraction digits of the Book.
|
|
642
643
|
- `remove()` → `Promise<Book>` — Warning!
|
|
@@ -736,11 +737,6 @@ const groups2 = await bookWithGroups.getGroups(); // Already cached
|
|
|
736
737
|
|
|
737
738
|
Requests are sent sequentially in batches of up to 200 IDs.
|
|
738
739
|
|
|
739
|
-
**mergeTransactions**
|
|
740
|
-
|
|
741
|
-
The merged transaction is created synchronously. Cleanup of the two
|
|
742
|
-
originals is scheduled asynchronously by the backend.
|
|
743
|
-
|
|
744
740
|
**remove**
|
|
745
741
|
|
|
746
742
|
Deletes this Book and all its data (transactions, accounts, groups). Book owner only.
|
package/package.json
CHANGED
|
@@ -1,14 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bkper",
|
|
3
|
-
"version": "4.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "4.28.1",
|
|
4
|
+
"description": "Official Bkper CLI for accounting data, automation, apps, and AI agents",
|
|
5
5
|
"bin": {
|
|
6
6
|
"bkper": "./lib/cli.js"
|
|
7
7
|
},
|
|
8
8
|
"repository": "https://github.com/bkper/bkper-cli.git",
|
|
9
|
-
"homepage": "https://bkper.com/docs",
|
|
9
|
+
"homepage": "https://bkper.com/docs/build/tools/cli",
|
|
10
10
|
"author": "mael <mael@bkper.com>",
|
|
11
11
|
"license": "Apache-2.0",
|
|
12
|
+
"keywords": [
|
|
13
|
+
"bkper",
|
|
14
|
+
"cli",
|
|
15
|
+
"accounting",
|
|
16
|
+
"bookkeeping",
|
|
17
|
+
"finance",
|
|
18
|
+
"automation",
|
|
19
|
+
"ai-agent"
|
|
20
|
+
],
|
|
12
21
|
"private": false,
|
|
13
22
|
"main": "./lib/index.js",
|
|
14
23
|
"module": "./lib/index.js",
|
|
@@ -52,8 +61,8 @@
|
|
|
52
61
|
"upgrade:api": "bun update @bkper/bkper-api-types --latest && bun update bkper-js --latest"
|
|
53
62
|
},
|
|
54
63
|
"dependencies": {
|
|
55
|
-
"@earendil-works/pi-coding-agent": "0.84.
|
|
56
|
-
"@earendil-works/pi-tui": "0.84.
|
|
64
|
+
"@earendil-works/pi-coding-agent": "0.84.3",
|
|
65
|
+
"@earendil-works/pi-tui": "0.84.3",
|
|
57
66
|
"bkper-js": "^2.42.0",
|
|
58
67
|
"commander": "^13.1.0",
|
|
59
68
|
"dotenv": "^8.2.0",
|