bkper 5.7.0 → 5.7.2
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/lib/agent/agent-entry.js +2 -1
- package/lib/agent/agent-entry.js.map +1 -1
- package/lib/agent/bundle/agent-entry.js +99 -93
- package/lib/agent/extensions/bkper-ai-provider.d.ts +1 -1
- package/lib/agent/extensions/bkper-ai-provider.d.ts.map +1 -1
- package/lib/agent/extensions/bkper-ai-provider.js +27 -1
- package/lib/agent/extensions/bkper-ai-provider.js.map +1 -1
- package/lib/agent/interactive/initial-prompt.d.ts +25 -0
- package/lib/agent/interactive/initial-prompt.d.ts.map +1 -0
- package/lib/agent/interactive/initial-prompt.js +147 -0
- package/lib/agent/interactive/initial-prompt.js.map +1 -0
- package/lib/agent/interactive/run-agent-mode.d.ts +18 -2
- package/lib/agent/interactive/run-agent-mode.d.ts.map +1 -1
- package/lib/agent/interactive/run-agent-mode.js +64 -17
- package/lib/agent/interactive/run-agent-mode.js.map +1 -1
- package/lib/agent/interactive/settings.d.ts +5 -0
- package/lib/agent/interactive/settings.d.ts.map +1 -1
- package/lib/agent/interactive/settings.js +7 -0
- package/lib/agent/interactive/settings.js.map +1 -1
- package/lib/agent/startup-error.d.ts +6 -0
- package/lib/agent/startup-error.d.ts.map +1 -0
- package/lib/agent/startup-error.js +17 -0
- package/lib/agent/startup-error.js.map +1 -0
- package/lib/commands/accounts/index.d.ts +2 -2
- package/lib/commands/accounts/index.d.ts.map +1 -1
- package/lib/commands/accounts/index.js.map +1 -1
- package/lib/commands/agent-command.d.ts +5 -0
- package/lib/commands/agent-command.d.ts.map +1 -1
- package/lib/commands/agent-command.js +65 -56
- package/lib/commands/agent-command.js.map +1 -1
- package/lib/commands/books/index.d.ts +3 -3
- package/lib/commands/books/index.d.ts.map +1 -1
- package/lib/commands/books/index.js.map +1 -1
- package/lib/commands/collections/index.d.ts +2 -2
- package/lib/commands/collections/index.d.ts.map +1 -1
- package/lib/commands/collections/index.js.map +1 -1
- package/lib/commands/files/index.d.ts +2 -2
- package/lib/commands/files/index.d.ts.map +1 -1
- package/lib/commands/files/index.js.map +1 -1
- package/lib/commands/groups/index.d.ts +2 -2
- package/lib/commands/groups/index.d.ts.map +1 -1
- package/lib/commands/groups/index.js.map +1 -1
- package/lib/commands/transactions/index.d.ts +4 -4
- package/lib/commands/transactions/index.d.ts.map +1 -1
- package/lib/commands/transactions/index.js.map +1 -1
- package/lib/docs/apps/context-menu.md +27 -2
- package/package.json +4 -4
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { styleText } from 'node:util';
|
|
2
|
+
/** An invalid startup argument, reported as Pi reports one: a red `Error: <message>` line. */
|
|
3
|
+
export class AgentStartupError extends Error {
|
|
4
|
+
constructor(message) {
|
|
5
|
+
super(message);
|
|
6
|
+
this.name = 'AgentStartupError';
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export function reportAgentCommandError(error, log = console.error) {
|
|
10
|
+
if (error instanceof AgentStartupError) {
|
|
11
|
+
log(styleText('red', `Error: ${error.message}`));
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
log('Error running agent command:', error);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=startup-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"startup-error.js","sourceRoot":"","sources":["../../src/agent/startup-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,WAAW,CAAC;AAEpC,8FAA8F;AAC9F,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACxC,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IACpC,CAAC;CACJ;AAED,MAAM,UAAU,uBAAuB,CACnC,KAAc,EACd,MAAoC,OAAO,CAAC,KAAK;IAEjD,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;QACrC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACrD,CAAC;SAAM,CAAC;QACJ,GAAG,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;AACL,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { listAccounts, listAccountsFormatted } from './list.js';
|
|
2
2
|
export { getAccount } from './get.js';
|
|
3
|
-
export { createAccount, CreateAccountOptions } from './create.js';
|
|
4
|
-
export { updateAccount, UpdateAccountOptions } from './update.js';
|
|
3
|
+
export { createAccount, type CreateAccountOptions } from './create.js';
|
|
4
|
+
export { updateAccount, type UpdateAccountOptions } from './update.js';
|
|
5
5
|
export { deleteAccount } from './delete.js';
|
|
6
6
|
export { batchCreateAccounts } from './batch-create.js';
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/accounts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/accounts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/accounts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/accounts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,aAAa,EAA6B,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,aAAa,EAA6B,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -10,6 +10,11 @@ export interface AgentCommandDependencies {
|
|
|
10
10
|
runInteractiveMode: (options?: SessionOptions) => Promise<void>;
|
|
11
11
|
environment?: AgentCommandEnvironment;
|
|
12
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* Maps Pi args to Bkper Agent session options, or returns undefined when an arg is only
|
|
15
|
+
* supported by pi.
|
|
16
|
+
*/
|
|
17
|
+
export declare function parseEmbeddedSessionOptions(args: string[], cwd?: string): SessionOptions | undefined;
|
|
13
18
|
export declare function runAgentCommand(piArgs: string[], dependencies?: AgentCommandDependencies): Promise<void>;
|
|
14
19
|
export declare function registerAgentCommands(program: Command): void;
|
|
15
20
|
//# sourceMappingURL=agent-command.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-command.d.ts","sourceRoot":"","sources":["../../src/commands/agent-command.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agent-command.d.ts","sourceRoot":"","sources":["../../src/commands/agent-command.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAIH,KAAK,WAAW,EACnB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAGH,KAAK,cAAc,EACtB,MAAM,wCAAwC,CAAC;AAGhD,MAAM,WAAW,uBAAuB;IACpC,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB;IACrC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,kBAAkB,EAAE,CAAC,OAAO,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,WAAW,CAAC,EAAE,uBAAuB,CAAC;CACzC;AAqGD;;;GAGG;AACH,wBAAgB,2BAA2B,CACvC,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,GAAE,MAAsB,GAC5B,cAAc,GAAG,SAAS,CAyB5B;AAED,wBAAsB,eAAe,CACjC,MAAM,EAAE,MAAM,EAAE,EAChB,YAAY,GAAE,wBAAsD,GACrE,OAAO,CAAC,IAAI,CAAC,CA6Bf;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAQ5D"}
|
|
@@ -7,7 +7,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
-
import
|
|
10
|
+
import path from 'node:path';
|
|
11
|
+
import { main as runPiMain, parseArgs, } from '@earendil-works/pi-coding-agent';
|
|
11
12
|
import { registerBkperAiProvider } from '../agent/extensions/bkper-ai-provider.js';
|
|
12
13
|
import { createAgentModeDependencies, runAgentMode, } from '../agent/interactive/run-agent-mode.js';
|
|
13
14
|
import { getBkperAgentSystemPrompt } from '../agent/system-prompt.js';
|
|
@@ -48,35 +49,6 @@ function buildPiArgs(args) {
|
|
|
48
49
|
}
|
|
49
50
|
return ['--system-prompt', getBkperAgentSystemPrompt(), ...args];
|
|
50
51
|
}
|
|
51
|
-
function isNonInteractiveArg(arg, nextArg) {
|
|
52
|
-
if (arg === '--help' || arg === '-h')
|
|
53
|
-
return { skipNext: false, nonInteractive: true };
|
|
54
|
-
if (arg === '--version' || arg === '-v')
|
|
55
|
-
return { skipNext: false, nonInteractive: true };
|
|
56
|
-
if (arg === '--mode' && nextArg !== undefined) {
|
|
57
|
-
return {
|
|
58
|
-
skipNext: true,
|
|
59
|
-
nonInteractive: nextArg === 'rpc' || nextArg === 'json',
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
if (arg === '--print' || arg === '-p')
|
|
63
|
-
return { skipNext: false, nonInteractive: true };
|
|
64
|
-
if (arg === '--export' && nextArg !== undefined)
|
|
65
|
-
return { skipNext: true, nonInteractive: true };
|
|
66
|
-
if (arg === '--list-models')
|
|
67
|
-
return { skipNext: false, nonInteractive: true };
|
|
68
|
-
return { skipNext: false, nonInteractive: false };
|
|
69
|
-
}
|
|
70
|
-
function isInteractiveSessionArgs(args) {
|
|
71
|
-
for (let i = 0; i < args.length; i++) {
|
|
72
|
-
const { skipNext, nonInteractive } = isNonInteractiveArg(args[i], args[i + 1]);
|
|
73
|
-
if (nonInteractive)
|
|
74
|
-
return false;
|
|
75
|
-
if (skipNext)
|
|
76
|
-
i++;
|
|
77
|
-
}
|
|
78
|
-
return true;
|
|
79
|
-
}
|
|
80
52
|
const PI_MANAGEMENT_COMMANDS = new Set([
|
|
81
53
|
'install',
|
|
82
54
|
'remove',
|
|
@@ -90,25 +62,67 @@ function isPiManagementCommand(args) {
|
|
|
90
62
|
const [command] = args;
|
|
91
63
|
return command !== undefined && PI_MANAGEMENT_COMMANDS.has(command);
|
|
92
64
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
65
|
+
/** Parsed Pi args that Bkper Agent's interactive mode supports; any other set arg goes to pi. */
|
|
66
|
+
const EMBEDDED_ARG_KEYS = new Set([
|
|
67
|
+
'continue',
|
|
68
|
+
'resume',
|
|
69
|
+
'noSession',
|
|
70
|
+
'session',
|
|
71
|
+
'provider',
|
|
72
|
+
'model',
|
|
73
|
+
'thinking',
|
|
74
|
+
'tools',
|
|
75
|
+
'extensions',
|
|
76
|
+
'noExtensions',
|
|
77
|
+
'noSkills',
|
|
78
|
+
'noPromptTemplates',
|
|
79
|
+
'noContextFiles',
|
|
80
|
+
'projectTrustOverride',
|
|
81
|
+
'messages',
|
|
82
|
+
'fileArgs',
|
|
83
|
+
'unknownFlags',
|
|
84
|
+
'diagnostics',
|
|
85
|
+
]);
|
|
86
|
+
/** Pi treats a `--session` value with a path separator or `.jsonl` suffix as a file path. */
|
|
87
|
+
function isSessionPath(value) {
|
|
88
|
+
return value.includes('/') || value.includes('\\') || value.endsWith('.jsonl');
|
|
89
|
+
}
|
|
90
|
+
function hasOnlyEmbeddedArgs(parsed) {
|
|
91
|
+
const keys = Object.keys(parsed);
|
|
92
|
+
return (keys.every(key => EMBEDDED_ARG_KEYS.has(key) || parsed[key] === undefined) &&
|
|
93
|
+
parsed.unknownFlags.size === 0 &&
|
|
94
|
+
parsed.diagnostics.length === 0 &&
|
|
95
|
+
// Bkper Agent trusts the project; only pi can ignore project-local files (--no-approve).
|
|
96
|
+
parsed.projectTrustOverride !== false &&
|
|
97
|
+
// Session ids are looked up by pi; Bkper Agent opens session files.
|
|
98
|
+
(parsed.session === undefined || isSessionPath(parsed.session)));
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Maps Pi args to Bkper Agent session options, or returns undefined when an arg is only
|
|
102
|
+
* supported by pi.
|
|
103
|
+
*/
|
|
104
|
+
export function parseEmbeddedSessionOptions(args, cwd = process.cwd()) {
|
|
105
|
+
const parsed = parseArgs(args);
|
|
106
|
+
if (!hasOnlyEmbeddedArgs(parsed)) {
|
|
107
|
+
return undefined;
|
|
110
108
|
}
|
|
111
|
-
|
|
109
|
+
const options = {
|
|
110
|
+
continueSession: parsed.continue || parsed.resume || undefined,
|
|
111
|
+
noSession: parsed.noSession,
|
|
112
|
+
sessionFile: parsed.session ? path.resolve(cwd, parsed.session) : undefined,
|
|
113
|
+
provider: parsed.provider,
|
|
114
|
+
model: parsed.model,
|
|
115
|
+
thinking: parsed.thinking,
|
|
116
|
+
tools: parsed.tools,
|
|
117
|
+
extensionPaths: parsed.extensions,
|
|
118
|
+
noExtensions: parsed.noExtensions,
|
|
119
|
+
noSkills: parsed.noSkills,
|
|
120
|
+
noPromptTemplates: parsed.noPromptTemplates,
|
|
121
|
+
noContextFiles: parsed.noContextFiles,
|
|
122
|
+
messages: parsed.messages.length > 0 ? parsed.messages : undefined,
|
|
123
|
+
fileArgs: parsed.fileArgs.length > 0 ? parsed.fileArgs : undefined,
|
|
124
|
+
};
|
|
125
|
+
return Object.fromEntries(Object.entries(options).filter(([, value]) => value !== undefined));
|
|
112
126
|
}
|
|
113
127
|
export function runAgentCommand(piArgs_1) {
|
|
114
128
|
return __awaiter(this, arguments, void 0, function* (piArgs, dependencies = createDefaultDependencies()) {
|
|
@@ -125,14 +139,9 @@ export function runAgentCommand(piArgs_1) {
|
|
|
125
139
|
yield dependencies.runPi(piArgs);
|
|
126
140
|
return;
|
|
127
141
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
return;
|
|
132
|
-
}
|
|
133
|
-
const { options, remainingArgs } = parseSessionOptions(piArgs);
|
|
134
|
-
if (remainingArgs.length > 0 || !canRunEmbeddedInteractive) {
|
|
135
|
-
// Unsupported interactive args (e.g. --session, --fork) or non-interactive
|
|
142
|
+
const options = parseEmbeddedSessionOptions(piArgs);
|
|
143
|
+
if (!options || !canRunEmbeddedInteractive) {
|
|
144
|
+
// Args only pi supports (e.g. --fork, --print, --mode) or non-interactive
|
|
136
145
|
// terminals are forwarded to pi for normal passthrough behavior.
|
|
137
146
|
const args = buildPiArgs(piArgs);
|
|
138
147
|
yield dependencies.runPi(args, PI_SESSION_OPTIONS);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-command.js","sourceRoot":"","sources":["../../src/commands/agent-command.ts"],"names":[],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"agent-command.js","sourceRoot":"","sources":["../../src/commands/agent-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { listBooks, listBooksFormatted } from './list.js';
|
|
2
2
|
export { getBook } from './get.js';
|
|
3
|
-
export { createBook, CreateBookOptions } from './create.js';
|
|
4
|
-
export { copyBook, CopyBookOptions } from './copy.js';
|
|
5
|
-
export { updateBook, UpdateBookOptions } from './update.js';
|
|
3
|
+
export { createBook, type CreateBookOptions } from './create.js';
|
|
4
|
+
export { copyBook, type CopyBookOptions } from './copy.js';
|
|
5
|
+
export { updateBook, type UpdateBookOptions } from './update.js';
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/books/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/books/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/books/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/books/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,UAAU,EAA0B,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAwB,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,UAAU,EAA0B,MAAM,aAAa,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { listCollections, listCollectionsFormatted } from './list.js';
|
|
2
2
|
export { getCollection } from './get.js';
|
|
3
|
-
export { createCollection, CreateCollectionOptions } from './create.js';
|
|
4
|
-
export { updateCollection, UpdateCollectionOptions } from './update.js';
|
|
3
|
+
export { createCollection, type CreateCollectionOptions } from './create.js';
|
|
4
|
+
export { updateCollection, type UpdateCollectionOptions } from './update.js';
|
|
5
5
|
export { deleteCollection } from './delete.js';
|
|
6
6
|
export { addBookToCollection } from './add-book.js';
|
|
7
7
|
export { removeBookFromCollection } from './remove-book.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/collections/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/collections/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,KAAK,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,KAAK,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/collections/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/collections/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAgC,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAgC,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { getFile } from './get.js';
|
|
2
2
|
export { deleteFile } from './delete.js';
|
|
3
|
-
export { listFiles, listFilesFormatted, ListFilesOptions } from './list.js';
|
|
4
|
-
export { uploadFile, UploadFileOptions } from './upload.js';
|
|
3
|
+
export { listFiles, listFilesFormatted, type ListFilesOptions } from './list.js';
|
|
4
|
+
export { uploadFile, type UploadFileOptions } from './upload.js';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/files/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/files/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/files/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/files/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAyB,MAAM,WAAW,CAAC;AACjF,OAAO,EAAE,UAAU,EAA0B,MAAM,aAAa,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { listGroups, listGroupsFormatted } from './list.js';
|
|
2
2
|
export { getGroup } from './get.js';
|
|
3
|
-
export { createGroup, CreateGroupOptions } from './create.js';
|
|
4
|
-
export { updateGroup, UpdateGroupOptions } from './update.js';
|
|
3
|
+
export { createGroup, type CreateGroupOptions } from './create.js';
|
|
4
|
+
export { updateGroup, type UpdateGroupOptions } from './update.js';
|
|
5
5
|
export { deleteGroup } from './delete.js';
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/groups/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/groups/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/groups/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/groups/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,WAAW,EAA2B,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,WAAW,EAA2B,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { listTransactions, listTransactionsFormatted, ListTransactionsOptions, ListTransactionsResult, } from './list.js';
|
|
2
|
-
export { countTransactions, CountTransactionsResult } from './count.js';
|
|
1
|
+
export { listTransactions, listTransactionsFormatted, type ListTransactionsOptions, type ListTransactionsResult, } from './list.js';
|
|
2
|
+
export { countTransactions, type CountTransactionsResult } from './count.js';
|
|
3
3
|
export { getTransaction } from './get.js';
|
|
4
|
-
export { createTransaction, CreateTransactionOptions, resolveCreateTransactionFilePath, } from './create.js';
|
|
5
|
-
export { updateTransaction, UpdateTransactionOptions } from './update.js';
|
|
4
|
+
export { createTransaction, type CreateTransactionOptions, resolveCreateTransactionFilePath, } from './create.js';
|
|
5
|
+
export { updateTransaction, type UpdateTransactionOptions } from './update.js';
|
|
6
6
|
export { postTransaction } from './post.js';
|
|
7
7
|
export { checkTransaction } from './check.js';
|
|
8
8
|
export { uncheckTransaction } from './uncheck.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/transactions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAChB,yBAAyB,EACzB,uBAAuB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/transactions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAChB,yBAAyB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,GAC9B,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,iBAAiB,EAAE,KAAK,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EACH,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,gCAAgC,GACnC,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,KAAK,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/transactions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAChB,yBAAyB,GAG5B,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/transactions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAChB,yBAAyB,GAG5B,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,iBAAiB,EAAgC,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EACH,iBAAiB,EAEjB,gCAAgC,GACnC,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAiC,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -114,11 +114,18 @@ Each time the App iframe finishes loading, Bkper announces the requests it suppo
|
|
|
114
114
|
```js
|
|
115
115
|
{
|
|
116
116
|
type: 'bkper:host-ready',
|
|
117
|
-
supports: ['navigate', 'show-book', 'expand'],
|
|
117
|
+
supports: ['navigate', 'show-book', 'expand', 'login'],
|
|
118
118
|
}
|
|
119
119
|
```
|
|
120
120
|
|
|
121
|
-
Send
|
|
121
|
+
Send each request only after receiving this message with its name in `supports`:
|
|
122
|
+
|
|
123
|
+
- `bkper:navigate` with `navigate`.
|
|
124
|
+
- `bkper:show-book` with `show-book`.
|
|
125
|
+
- `bkper:expand` with `expand`.
|
|
126
|
+
- `bkper:login` with `login`.
|
|
127
|
+
|
|
128
|
+
Until then, keep the normal link behavior. Register the message listener when the App starts, so it does not miss the message.
|
|
122
129
|
|
|
123
130
|
Apps opened with `NEW_TAB` do not receive this message, because they have no Bkper parent.
|
|
124
131
|
|
|
@@ -222,6 +229,24 @@ An expansion the App asked for counts as the user's own: the App's later Book ev
|
|
|
222
229
|
|
|
223
230
|
Send `bkper:expand` only in response to a user action, such as a click. Bkper cannot verify this, and a panel that grows by itself covers the Book the user is working in.
|
|
224
231
|
|
|
232
|
+
#### Signing in
|
|
233
|
+
|
|
234
|
+
An App in the panel shares the user's Bkper session. When the App finds no session, it cannot sign in inside its iframe: Google refuses to show its sign-in page in a frame, and shows a `403` error instead. The App asks Bkper to sign in for it:
|
|
235
|
+
|
|
236
|
+
```js
|
|
237
|
+
window.parent.postMessage({ type: 'bkper:login' }, BKPER_ORIGIN);
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
Apps using `@bkper/web-auth` do not send this themselves: inside a frame, `login()` sends it instead of redirecting. Outside a frame, such as a `NEW_TAB` App or the App opened on its own, `login()` redirects to sign-in as usual.
|
|
241
|
+
|
|
242
|
+
Bkper ignores the message when it does not come from the App iframe currently open in the panel, or not from that iframe's own origin. For a valid request, Bkper first checks its own session:
|
|
243
|
+
|
|
244
|
+
- **No session**: Bkper signs the whole page in, then returns the user to the same Book with the App open.
|
|
245
|
+
- **A valid session**: the App's check was out of date, so Bkper reloads the App once. If the App asks again while Bkper is still signed in, Bkper ignores it until the page reloads, so an App can never take the user out of their Book.
|
|
246
|
+
- **Bkper cannot tell**, such as when offline: nothing changes.
|
|
247
|
+
|
|
248
|
+
Bkper does not reply.
|
|
249
|
+
|
|
225
250
|
### Available expressions
|
|
226
251
|
|
|
227
252
|
The menu URL supports these dynamic expressions:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bkper",
|
|
3
|
-
"version": "5.7.
|
|
3
|
+
"version": "5.7.2",
|
|
4
4
|
"description": "Official Bkper CLI for accounting data, automation, apps, and AI agents",
|
|
5
5
|
"bin": {
|
|
6
6
|
"bkper": "lib/cli.js"
|
|
@@ -51,9 +51,9 @@
|
|
|
51
51
|
"ports": "devpod ssh ../ -L 6274",
|
|
52
52
|
"test:typecheck": "tsc --noEmit -p tsconfig.test.json",
|
|
53
53
|
"test": "bun run test:typecheck && TS_NODE_TRANSPILE_ONLY=true TS_NODE_PROJECT=tsconfig.test.json mocha",
|
|
54
|
-
"test:unit": "bun run test:typecheck && TS_NODE_TRANSPILE_ONLY=true TS_NODE_PROJECT=tsconfig.test.json mocha --config .mocharc.json",
|
|
55
|
-
"test:integration": "bun run test:typecheck && TS_NODE_TRANSPILE_ONLY=true BKPER_API_URL=${BKPER_API_URL:-http://localhost:8081/_ah/api/bkper} TS_NODE_PROJECT=tsconfig.test.json mocha --config .mocharc.integration.json",
|
|
56
|
-
"test:deploy": "bun run test:typecheck && TS_NODE_TRANSPILE_ONLY=true BKPER_PLATFORM_URL=http://localhost:8703 BKPER_API_URL=https://api-dev.bkper.app TS_NODE_PROJECT=tsconfig.test.json mocha --config .mocharc.deploy.json",
|
|
54
|
+
"test:unit": "bun run test:typecheck && TS_NODE_TRANSPILE_ONLY=true TS_NODE_PROJECT=tsconfig.test.json mocha --config .mocharc.json 'test/unit/**/*.test.ts'",
|
|
55
|
+
"test:integration": "bun run test:typecheck && TS_NODE_TRANSPILE_ONLY=true BKPER_API_URL=${BKPER_API_URL:-http://localhost:8081/_ah/api/bkper} TS_NODE_PROJECT=tsconfig.test.json mocha --config .mocharc.integration.json 'test/integration/**/*.test.ts'",
|
|
56
|
+
"test:deploy": "bun run test:typecheck && TS_NODE_TRANSPILE_ONLY=true BKPER_PLATFORM_URL=http://localhost:8703 BKPER_API_URL=https://api-dev.bkper.app TS_NODE_PROJECT=tsconfig.test.json mocha --config .mocharc.deploy.json 'test/integration/apps/**/*.test.ts'",
|
|
57
57
|
"test:all": "bun run test:unit && bun run test:integration",
|
|
58
58
|
"version": "bun ./scripts/sync-plugin-version.ts && git add .claude-plugin/plugin.json .claude-plugin/marketplace.json .codex-plugin/plugin.json",
|
|
59
59
|
"release:patch": "npm version patch -m \"chore(release): v%s\"",
|