bkper 4.18.0 → 4.18.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
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
[App Template]: https://github.com/bkper/bkper-app-template
|
|
3
3
|
[Pi]: https://pi.dev/
|
|
4
4
|
|
|
5
|
-
A unified **interface for [Bkper](https://bkper.com)**. Use `bkper` in two complementary
|
|
5
|
+
A unified **interface for [Bkper](https://bkper.com)**. Use `bkper` in two complementary ways:
|
|
6
6
|
|
|
7
|
-
- **
|
|
8
|
-
- **
|
|
7
|
+
- **Ask the Bkper Agent** — run `bkper` for guided, interactive help in your terminal
|
|
8
|
+
- **Run CLI commands** — run `bkper <command>` for scripts, exports, automations, and app workflows
|
|
9
9
|
|
|
10
|
-
With one tool, you can
|
|
10
|
+
With one tool, you can work with Bkper from your terminal, built-in agent, or external AI tools — managing financial data, building apps, and automating workflows.
|
|
11
11
|
|
|
12
12
|
[](https://www.npmjs.com/package/bkper)
|
|
13
13
|
|
|
@@ -19,14 +19,14 @@ With one tool, you can build and deploy Bkper apps, and manage financial data --
|
|
|
19
19
|
|
|
20
20
|
### Install (choose one)
|
|
21
21
|
|
|
22
|
-
```bash tab="bun"
|
|
23
|
-
bun add -g bkper
|
|
24
|
-
```
|
|
25
|
-
|
|
26
22
|
```bash tab="npm"
|
|
27
23
|
npm i -g bkper
|
|
28
24
|
```
|
|
29
25
|
|
|
26
|
+
```bash tab="bun"
|
|
27
|
+
bun add -g bkper
|
|
28
|
+
```
|
|
29
|
+
|
|
30
30
|
```bash tab="pnpm"
|
|
31
31
|
pnpm add -g bkper
|
|
32
32
|
```
|
|
@@ -41,104 +41,94 @@ yarn global add bkper
|
|
|
41
41
|
bkper auth login
|
|
42
42
|
```
|
|
43
43
|
|
|
44
|
-
`bkper auth login` connects the CLI to your Bkper account.
|
|
44
|
+
`bkper auth login` connects the CLI to your Bkper account. The same local authentication can be used by direct CLI commands, the built-in agent, external coding agents, scripts, and local app development.
|
|
45
45
|
|
|
46
46
|
---
|
|
47
47
|
|
|
48
48
|
## Get started
|
|
49
49
|
|
|
50
|
-
###
|
|
50
|
+
### Ask the Bkper Agent
|
|
51
51
|
|
|
52
52
|
```bash
|
|
53
53
|
bkper
|
|
54
54
|
```
|
|
55
55
|
|
|
56
|
-
|
|
56
|
+
Run `bkper` to open the built-in Bkper Agent in your terminal.
|
|
57
57
|
|
|
58
58
|

|
|
59
59
|
|
|
60
|
-
On first launch, type `/login`
|
|
61
|
-
|
|
62
|
-
Good starting prompts:
|
|
63
|
-
|
|
64
|
-
- `What are the main account types in Bkper?`
|
|
65
|
-
- `How do I query transactions using the CLI?`
|
|
66
|
-
- `What files are in this project?`
|
|
67
|
-
- `Help me create a script that lists all accounts in my book`
|
|
60
|
+
On first agent launch, type `/login` in the TUI if model access is not configured yet. `bkper auth login` connects the CLI to your Bkper account. `/login` connects the interactive agent to an AI/model provider.
|
|
68
61
|
|
|
69
|
-
|
|
62
|
+
For frontier models, an existing [ChatGPT Plus/Pro subscription](https://chatgpt.com/pricing/) with Codex works very well. [Claude subscriptions](https://claude.com/pricing) are also supported if Claude is your preferred frontier model. For open-weights models, [OpenCode Go](https://opencode.ai/go) is a great option.
|
|
70
63
|
|
|
71
|
-
###
|
|
72
|
-
|
|
73
|
-
```bash
|
|
74
|
-
# List your books
|
|
75
|
-
bkper book list
|
|
64
|
+
### Safe starting prompts:
|
|
76
65
|
|
|
77
|
-
|
|
78
|
-
|
|
66
|
+
```text
|
|
67
|
+
Help me setup a chart of accounts for my business
|
|
79
68
|
```
|
|
80
69
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
```bash
|
|
84
|
-
bkper transaction create -b <bookId> --description "Office supplies 123.78"
|
|
70
|
+
```text
|
|
71
|
+
Find possible duplicate transactions from last month
|
|
85
72
|
```
|
|
86
73
|
|
|
87
|
-
|
|
74
|
+
```text
|
|
75
|
+
Review unchecked transactions from this month and suggest what needs attention
|
|
76
|
+
```
|
|
88
77
|
|
|
89
|
-
|
|
78
|
+
```text
|
|
79
|
+
Show me a balance sheet for my book for last year
|
|
80
|
+
```
|
|
90
81
|
|
|
91
|
-
|
|
82
|
+
```text
|
|
83
|
+
Show me profit and loss for my book for last month
|
|
84
|
+
```
|
|
92
85
|
|
|
93
|
-
|
|
86
|
+
```text
|
|
87
|
+
Prepare an exploratory tax worksheet for 2025
|
|
88
|
+
```
|
|
94
89
|
|
|
95
|
-
|
|
90
|
+
### Run CLI commands
|
|
96
91
|
|
|
97
|
-
|
|
98
|
-
- bkper adds Bkper-specific domain context and startup maintenance behavior
|
|
92
|
+
Use direct commands for scripts, exports, automation, and repeatable workflows.
|
|
99
93
|
|
|
100
|
-
|
|
94
|
+
```bash
|
|
95
|
+
# List your books
|
|
96
|
+
bkper book list
|
|
101
97
|
|
|
102
|
-
|
|
98
|
+
# Query transactions
|
|
99
|
+
bkper transaction list -b <bookId> -q 'on:2026-06' --format csv
|
|
103
100
|
|
|
104
|
-
|
|
101
|
+
# Query balances
|
|
102
|
+
bkper balance list -b <bookId> -q 'on:2026-06-30'
|
|
103
|
+
```
|
|
105
104
|
|
|
106
|
-
|
|
105
|
+
Capture a receipt as a draft, then review and complete it in Bkper or with the agent:
|
|
107
106
|
|
|
108
107
|
```bash
|
|
109
|
-
bkper
|
|
108
|
+
bkper transaction create -b <bookId> --file ./receipt.pdf
|
|
110
109
|
```
|
|
111
110
|
|
|
112
|
-
|
|
113
|
-
A bare `bkper` command is a convenience shortcut for the same TUI when run in an interactive terminal.
|
|
114
|
-
If Pi arguments are provided, everything after `bkper agent` is passed through to Pi.
|
|
115
|
-
|
|
116
|
-
Examples:
|
|
111
|
+
> Run `bkper --help` or `bkper <command> --help` for built-in documentation on any command.
|
|
117
112
|
|
|
118
|
-
|
|
119
|
-
bkper agent -p "Summarize this repository"
|
|
120
|
-
bkper agent --model openai/gpt-4o -c
|
|
121
|
-
bkper agent install <pi-package-source>
|
|
122
|
-
bkper agent --help
|
|
123
|
-
```
|
|
113
|
+
→ See [Data Management](#data-management) and [App Management](#app-management) below for full references.
|
|
124
114
|
|
|
125
|
-
|
|
126
|
-
Use `bkper help agent` for the Bkper CLI command help, and `bkper agent --help` for Pi help.
|
|
115
|
+
---
|
|
127
116
|
|
|
128
|
-
|
|
129
|
-
https://github.com/badlogic/pi-mono/tree/main/packages/coding-agent#cli-reference
|
|
117
|
+
## Use Bkper from your existing agent
|
|
130
118
|
|
|
131
|
-
|
|
119
|
+
Install and authenticate the CLI first:
|
|
132
120
|
|
|
133
|
-
|
|
121
|
+
```bash
|
|
122
|
+
bkper auth login
|
|
123
|
+
```
|
|
134
124
|
|
|
135
|
-
|
|
125
|
+
For Codex, add this repository as a plugin marketplace, then install the `bkper-cli` plugin from Codex's plugin directory:
|
|
136
126
|
|
|
137
127
|
```bash
|
|
138
128
|
codex plugin marketplace add bkper/bkper-cli
|
|
139
129
|
```
|
|
140
130
|
|
|
141
|
-
|
|
131
|
+
For Claude Code, install the Bkper CLI plugin from this repository's Claude marketplace:
|
|
142
132
|
|
|
143
133
|
```text
|
|
144
134
|
/plugin marketplace add bkper/bkper-cli
|
|
@@ -151,12 +141,27 @@ For other coding agents — OpenCode, OpenClaw, Hermes Agent, Cursor, or similar
|
|
|
151
141
|
npx skills add bkper/bkper-cli --skill bkper-cli
|
|
152
142
|
```
|
|
153
143
|
|
|
154
|
-
The plugins and skill
|
|
144
|
+
The plugins and skill help external agents use the local `bkper` CLI with Bkper context, CLI references, and safety guidance.
|
|
155
145
|
|
|
156
146
|
For general Bkper Q&A without local tool access, use the published docs and [`llms.txt`](https://bkper.com/llms.txt) instead.
|
|
157
147
|
|
|
158
148
|
---
|
|
159
149
|
|
|
150
|
+
## Advanced agent options
|
|
151
|
+
|
|
152
|
+
`bkper agent` starts the same built-in agent experience as `bkper`.
|
|
153
|
+
|
|
154
|
+
Advanced users can pass supported agent-runtime flags through:
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
bkper agent <args>
|
|
158
|
+
bkper agent --help
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
`bkper agent` keeps Bkper defaults, including the Bkper system prompt, unless you explicitly override them. For the underlying agent runtime reference, see [Pi][Pi].
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
160
165
|
## Data Management
|
|
161
166
|
|
|
162
167
|
Manage books, files, accounts, transactions, and balances.
|
|
@@ -165,8 +170,8 @@ Manage books, files, accounts, transactions, and balances.
|
|
|
165
170
|
bkper book list
|
|
166
171
|
bkper account list -b <bookId>
|
|
167
172
|
bkper file list -b <bookId> --limit 100
|
|
168
|
-
bkper transaction list -b <bookId> -q 'on:
|
|
169
|
-
bkper balance list -b <bookId> -q 'on:
|
|
173
|
+
bkper transaction list -b <bookId> -q 'on:2026' --format csv
|
|
174
|
+
bkper balance list -b <bookId> -q 'on:2026-12-31' --format csv
|
|
170
175
|
```
|
|
171
176
|
|
|
172
177
|
→ [Full Data Management reference](https://github.com/bkper/bkper-cli/blob/main/skill/references/cli/data-management.md)
|
|
@@ -181,7 +186,8 @@ Build, deploy, and manage Bkper apps.
|
|
|
181
186
|
bkper app init my-app
|
|
182
187
|
bkper app get my-app --json
|
|
183
188
|
bkper app dev
|
|
184
|
-
bkper app sync
|
|
189
|
+
bkper app sync
|
|
190
|
+
bkper app deploy
|
|
185
191
|
bkper app logs --last 50
|
|
186
192
|
bkper app logs my-app --level error
|
|
187
193
|
```
|
|
@@ -194,10 +200,11 @@ bkper app logs my-app --level error
|
|
|
194
200
|
|
|
195
201
|
## Programmatic access
|
|
196
202
|
|
|
203
|
+
Use the CLI as the authentication bridge for scripts and direct API calls.
|
|
204
|
+
|
|
197
205
|
### Access Token
|
|
198
206
|
|
|
199
|
-
Use the access token for direct API calls from any tool.
|
|
200
|
-
This requires a prior `bkper auth login`, and `bkper auth token` does not start an interactive login flow:
|
|
207
|
+
Use the access token for direct API calls from any tool. This requires a prior `bkper auth login`, and `bkper auth token` does not start an interactive login flow:
|
|
201
208
|
|
|
202
209
|
```bash
|
|
203
210
|
# Print the current access token
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export declare const SKILL_ARCHIVE_TYPE = "archive";
|
|
2
|
+
export declare const LATEST_SKILL_METADATA_FILE_NAME = "bkper-cli-skill.json";
|
|
3
|
+
interface SkillFrontmatter {
|
|
4
|
+
name: string;
|
|
5
|
+
description: string;
|
|
6
|
+
}
|
|
7
|
+
export interface SkillDiscoveryEntry extends SkillFrontmatter {
|
|
8
|
+
type: typeof SKILL_ARCHIVE_TYPE;
|
|
9
|
+
url: string;
|
|
10
|
+
digest: string;
|
|
11
|
+
version: string;
|
|
12
|
+
}
|
|
13
|
+
export interface SkillDistributionOptions {
|
|
14
|
+
rootDir: string;
|
|
15
|
+
outputDir: string;
|
|
16
|
+
packageVersion: string;
|
|
17
|
+
repositoryUrl: string;
|
|
18
|
+
}
|
|
19
|
+
export interface SkillDistributionResult {
|
|
20
|
+
entry: SkillDiscoveryEntry;
|
|
21
|
+
archivePath: string;
|
|
22
|
+
latestMetadataPath: string;
|
|
23
|
+
versionedMetadataPath: string;
|
|
24
|
+
}
|
|
25
|
+
export declare function getReleaseAssetUrl(repositoryUrl: string, packageVersion: string, assetFileName: string): string;
|
|
26
|
+
export declare function createSkillDistributionAssets(options: SkillDistributionOptions): Promise<SkillDistributionResult>;
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=skill-distribution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-distribution.d.ts","sourceRoot":"","sources":["../../src/agent/skill-distribution.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAC5C,eAAO,MAAM,+BAA+B,yBAAyB,CAAC;AAEtE,UAAU,gBAAgB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IACzD,IAAI,EAAE,OAAO,kBAAkB,CAAC;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,uBAAuB;IACpC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qBAAqB,EAAE,MAAM,CAAC;CACjC;AA8BD,wBAAgB,kBAAkB,CAC9B,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,GACtB,MAAM,CAGR;AA6DD,wBAAsB,6BAA6B,CAC/C,OAAO,EAAE,wBAAwB,GAClC,OAAO,CAAC,uBAAuB,CAAC,CAiDlC"}
|
|
@@ -0,0 +1,120 @@
|
|
|
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 { createHash } from 'node:crypto';
|
|
11
|
+
import { lstat, mkdir, readFile, readdir, writeFile } from 'node:fs/promises';
|
|
12
|
+
import path from 'node:path';
|
|
13
|
+
import { create as createTar } from 'tar';
|
|
14
|
+
import YAML from 'yaml';
|
|
15
|
+
export const SKILL_ARCHIVE_TYPE = 'archive';
|
|
16
|
+
export const LATEST_SKILL_METADATA_FILE_NAME = 'bkper-cli-skill.json';
|
|
17
|
+
function isRecord(value) {
|
|
18
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
19
|
+
}
|
|
20
|
+
function requireString(value, label) {
|
|
21
|
+
if (typeof value !== 'string' || value.length === 0) {
|
|
22
|
+
throw new Error(`${label} must be a non-empty string`);
|
|
23
|
+
}
|
|
24
|
+
return value;
|
|
25
|
+
}
|
|
26
|
+
function getVersionTag(packageVersion) {
|
|
27
|
+
return packageVersion.startsWith('v') ? packageVersion : `v${packageVersion}`;
|
|
28
|
+
}
|
|
29
|
+
function getAssetVersion(packageVersion) {
|
|
30
|
+
return packageVersion.startsWith('v') ? packageVersion.slice(1) : packageVersion;
|
|
31
|
+
}
|
|
32
|
+
function getSkillArchiveFileName(packageVersion) {
|
|
33
|
+
return `bkper-cli-skill-v${getAssetVersion(packageVersion)}.tar.gz`;
|
|
34
|
+
}
|
|
35
|
+
function getVersionedMetadataFileName(packageVersion) {
|
|
36
|
+
return `bkper-cli-skill-v${getAssetVersion(packageVersion)}.json`;
|
|
37
|
+
}
|
|
38
|
+
export function getReleaseAssetUrl(repositoryUrl, packageVersion, assetFileName) {
|
|
39
|
+
const baseUrl = repositoryUrl.replace(/\.git$/, '');
|
|
40
|
+
return `${baseUrl}/releases/download/${getVersionTag(packageVersion)}/${assetFileName}`;
|
|
41
|
+
}
|
|
42
|
+
function parseSkillFrontmatter(content) {
|
|
43
|
+
const match = content.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n/);
|
|
44
|
+
if (!match) {
|
|
45
|
+
throw new Error('skill/SKILL.md is missing YAML frontmatter');
|
|
46
|
+
}
|
|
47
|
+
const parsed = YAML.parse(match[1]);
|
|
48
|
+
if (!isRecord(parsed)) {
|
|
49
|
+
throw new Error('skill/SKILL.md frontmatter must be an object');
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
name: requireString(parsed.name, 'skill name'),
|
|
53
|
+
description: requireString(parsed.description, 'skill description'),
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
function collectSkillFiles(directory_1) {
|
|
57
|
+
return __awaiter(this, arguments, void 0, function* (directory, relativeDirectory = '') {
|
|
58
|
+
const entries = (yield readdir(directory, { withFileTypes: true })).sort((a, b) => a.name.localeCompare(b.name));
|
|
59
|
+
const files = [];
|
|
60
|
+
for (const entry of entries) {
|
|
61
|
+
const relativePath = relativeDirectory
|
|
62
|
+
? `${relativeDirectory}/${entry.name}`
|
|
63
|
+
: entry.name;
|
|
64
|
+
const fullPath = path.join(directory, entry.name);
|
|
65
|
+
if (entry.isDirectory()) {
|
|
66
|
+
files.push(...(yield collectSkillFiles(fullPath, relativePath)));
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
if (entry.isSymbolicLink()) {
|
|
70
|
+
throw new Error(`Skill archive cannot contain symlinks: ${relativePath}`);
|
|
71
|
+
}
|
|
72
|
+
const stats = yield lstat(fullPath);
|
|
73
|
+
if (stats.isFile()) {
|
|
74
|
+
files.push(relativePath);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return files;
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
function sha256File(filePath) {
|
|
81
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
82
|
+
const bytes = yield readFile(filePath);
|
|
83
|
+
return `sha256:${createHash('sha256').update(bytes).digest('hex')}`;
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
function writeJson(filePath, value) {
|
|
87
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
88
|
+
yield writeFile(filePath, `${JSON.stringify(value, null, 2)}\n`, 'utf8');
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
export function createSkillDistributionAssets(options) {
|
|
92
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
93
|
+
const skillDir = path.join(options.rootDir, 'skill');
|
|
94
|
+
const skillPath = path.join(skillDir, 'SKILL.md');
|
|
95
|
+
const skill = parseSkillFrontmatter(yield readFile(skillPath, 'utf8'));
|
|
96
|
+
const archiveFileName = getSkillArchiveFileName(options.packageVersion);
|
|
97
|
+
const archivePath = path.join(options.outputDir, archiveFileName);
|
|
98
|
+
const latestMetadataPath = path.join(options.outputDir, LATEST_SKILL_METADATA_FILE_NAME);
|
|
99
|
+
const versionedMetadataPath = path.join(options.outputDir, getVersionedMetadataFileName(options.packageVersion));
|
|
100
|
+
const archiveEntries = yield collectSkillFiles(skillDir);
|
|
101
|
+
yield mkdir(options.outputDir, { recursive: true });
|
|
102
|
+
yield createTar({
|
|
103
|
+
cwd: skillDir,
|
|
104
|
+
file: archivePath,
|
|
105
|
+
gzip: { portable: true },
|
|
106
|
+
portable: true,
|
|
107
|
+
noMtime: true,
|
|
108
|
+
}, archiveEntries);
|
|
109
|
+
const entry = Object.assign(Object.assign({}, skill), { type: SKILL_ARCHIVE_TYPE, url: getReleaseAssetUrl(options.repositoryUrl, options.packageVersion, archiveFileName), digest: yield sha256File(archivePath), version: getAssetVersion(options.packageVersion) });
|
|
110
|
+
yield writeJson(latestMetadataPath, entry);
|
|
111
|
+
yield writeJson(versionedMetadataPath, entry);
|
|
112
|
+
return {
|
|
113
|
+
entry,
|
|
114
|
+
archivePath,
|
|
115
|
+
latestMetadataPath,
|
|
116
|
+
versionedMetadataPath,
|
|
117
|
+
};
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=skill-distribution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-distribution.js","sourceRoot":"","sources":["../../src/agent/skill-distribution.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bkper",
|
|
3
|
-
"version": "4.18.
|
|
3
|
+
"version": "4.18.1",
|
|
4
4
|
"description": "Command line client for Bkper",
|
|
5
5
|
"bin": {
|
|
6
6
|
"bkper": "./lib/cli.js"
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
"build:clean": "gts clean && rimraf temp",
|
|
33
33
|
"build:compile": "tsc",
|
|
34
34
|
"build:copy-docs": "mkdir -p lib && rm -rf lib/docs && cp -R skill/references lib/docs",
|
|
35
|
+
"skill:package": "bun ./scripts/generate-skill-distribution.ts",
|
|
35
36
|
"api:platform": "openapi-typescript https://platform.bkper.app/openapi.json -o src/platform/types.d.ts",
|
|
36
37
|
"api:platform:local": "openapi-typescript http://localhost:8790/openapi.json -o src/platform/types.d.ts",
|
|
37
38
|
"predev": "bun run build",
|