bkper 4.9.0 → 4.9.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
@@ -1,7 +1,6 @@
1
1
  [bkper.yaml reference]: #bkperyaml-reference
2
2
  [Developer Docs]: https://bkper.com/docs
3
3
  [App Template]: https://github.com/bkper/bkper-app-template
4
- [Skills Repository]: https://github.com/bkper/skills
5
4
  [Pi]: https://pi.dev/
6
5
 
7
6
  A unified **interface for [Bkper](https://bkper.com)**. Use `bkper` in two complementary modes:
@@ -85,14 +84,11 @@ When you run `bkper` with no arguments in an interactive terminal, bkper starts
85
84
  Bkper's agent mode is intentionally a **thin wrapper** around [Pi][Pi]:
86
85
 
87
86
  - Pi provides the core agent runtime and TUI
88
- - bkper adds Bkper-specific domain context, skills distribution defaults, and startup maintenance behavior
87
+ - bkper adds Bkper-specific domain context and startup maintenance behavior
89
88
 
90
89
  ### Startup maintenance (non-blocking)
91
90
 
92
- On each agent startup, bkper performs background checks:
93
-
94
- - CLI auto-update check (same behavior as command mode)
95
- - Bkper skills sync check from [Skills Repository]
91
+ On each agent startup, bkper performs a background CLI auto-update check (same behavior as command mode).
96
92
 
97
93
  ### Pi passthrough
98
94
 
@@ -115,21 +111,6 @@ bkper agent -- install <pi-package-source>
115
111
  For all available passthrough flags and commands, see the Pi CLI reference:
116
112
  https://github.com/badlogic/pi-mono/tree/main/packages/coding-agent#cli-reference
117
113
 
118
- ### Skills
119
-
120
- Bkper skills are synced globally to:
121
-
122
- - `~/.agents/skills`
123
- - state file: `~/.agents/skills/.bkper-skills.yaml`
124
-
125
- Trigger a manual sync at any time:
126
-
127
- ```bash
128
- bkper skills sync
129
- ```
130
-
131
- Skills are agent-agnostic and can be reused by other tools that support `.agents/skills`.
132
-
133
114
  Pi-specific extensions are loaded from Pi extension folders (for example `.pi/extensions` and `~/.pi/agent/extensions`).
134
115
 
135
116
  <!-- Suggested showcase media: add a short terminal GIF here (bkper -> "Bkper Agent ready." -> one prompt). -->
@@ -851,10 +832,6 @@ deployment:
851
832
 
852
833
  - `agent -- <pi-args...>` - Run Pi CLI with Bkper defaults (system prompt/resources)
853
834
 
854
- #### Skills
855
-
856
- - `skills sync` - Sync Bkper skills to `~/.agents/skills`
857
-
858
835
  #### App Lifecycle
859
836
 
860
837
  - `app init <name>` - Scaffold a new app from the template
@@ -913,4 +890,3 @@ Bkper.setConfig({
913
890
 
914
891
  - [Developer Docs]
915
892
  - [App Template]
916
- - [Skills Repository]
@@ -1,6 +1,5 @@
1
1
  export interface StartupMaintenanceDependencies {
2
2
  autoUpgrade: () => Promise<void>;
3
- updateSkills: () => Promise<unknown>;
4
3
  }
5
4
  export declare function runStartupMaintenance(dependencies?: StartupMaintenanceDependencies): void;
6
5
  //# sourceMappingURL=startup-maintenance.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"startup-maintenance.d.ts","sourceRoot":"","sources":["../../src/agent/startup-maintenance.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,8BAA8B;IAC3C,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,YAAY,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CACxC;AASD,wBAAgB,qBAAqB,CACjC,YAAY,GAAE,8BAA4D,GAC3E,IAAI,CAQN"}
1
+ {"version":3,"file":"startup-maintenance.d.ts","sourceRoot":"","sources":["../../src/agent/startup-maintenance.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,8BAA8B;IAC3C,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAQD,wBAAgB,qBAAqB,CACjC,YAAY,GAAE,8BAA4D,GAC3E,IAAI,CAIN"}
@@ -1,17 +1,12 @@
1
- import { updateSkills } from '../commands/skills.js';
2
1
  import { autoUpgrade } from '../upgrade/index.js';
3
2
  function createDefaultDependencies() {
4
3
  return {
5
4
  autoUpgrade,
6
- updateSkills: () => updateSkills({ silent: true }),
7
5
  };
8
6
  }
9
7
  export function runStartupMaintenance(dependencies = createDefaultDependencies()) {
10
8
  if (!process.env.BKPER_DISABLE_AUTOUPDATE) {
11
9
  dependencies.autoUpgrade().catch(() => { });
12
10
  }
13
- if (!process.env.BKPER_DISABLE_SKILLS_SYNC) {
14
- dependencies.updateSkills().catch(() => { });
15
- }
16
11
  }
17
12
  //# sourceMappingURL=startup-maintenance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"startup-maintenance.js","sourceRoot":"","sources":["../../src/agent/startup-maintenance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAOlD,SAAS,yBAAyB;IAC9B,OAAO;QACH,WAAW;QACX,YAAY,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;KACrD,CAAC;AACN,CAAC;AAED,MAAM,UAAU,qBAAqB,CACjC,eAA+C,yBAAyB,EAAE;IAE1E,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC;QACxC,YAAY,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,CAAC;QACzC,YAAY,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAChD,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"startup-maintenance.js","sourceRoot":"","sources":["../../src/agent/startup-maintenance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAMlD,SAAS,yBAAyB;IAC9B,OAAO;QACH,WAAW;KACd,CAAC;AACN,CAAC;AAED,MAAM,UAAU,qBAAqB,CACjC,eAA+C,yBAAyB,EAAE;IAE1E,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC;QACxC,YAAY,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC/C,CAAC;AACL,CAAC"}
package/lib/cli.js CHANGED
@@ -19,7 +19,6 @@ import { registerTransactionCommands } from './commands/transactions/register.js
19
19
  import { registerBalanceCommands } from './commands/balances/register.js';
20
20
  import { registerCollectionCommands } from './commands/collections/register.js';
21
21
  import { registerUpgradeCommand } from './commands/upgrade.js';
22
- import { registerSkillsCommands } from './commands/skills-command.js';
23
22
  import { registerAgentCommands } from './commands/agent-command.js';
24
23
  import { VERSION, autoUpgrade } from './upgrade/index.js';
25
24
  import { shouldStartAgentMode } from './agent/cli-dispatch.js';
@@ -47,8 +46,6 @@ function main() {
47
46
  registerTransactionCommands(program);
48
47
  registerBalanceCommands(program);
49
48
  registerCollectionCommands(program);
50
- // Skills command
51
- registerSkillsCommands(program);
52
49
  // Agent bridge command
53
50
  registerAgentCommands(program);
54
51
  // Upgrade command
package/lib/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;AAEA,OAAO,eAAe,CAAC,CAAC,sDAAsD;AAE9E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAEvE,SAAe,IAAI;;QACf,IAAI,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,qBAAqB,EAAE,CAAC;YACxB,MAAM,YAAY,EAAE,CAAC;YACrB,OAAO;QACX,CAAC;QAED,UAAU;QACV,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAE1C,+BAA+B;QAC/B,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,oCAAoC,EAAE,OAAO,CAAC,CAAC;QACnF,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,0CAA0C,CAAC,CAAC;QAErE,gBAAgB;QAChB,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAE9B,oBAAoB;QACpB,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC7B,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC9B,uBAAuB,CAAC,OAAO,CAAC,CAAC;QACjC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAC/B,2BAA2B,CAAC,OAAO,CAAC,CAAC;QACrC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QACjC,0BAA0B,CAAC,OAAO,CAAC,CAAC;QAEpC,iBAAiB;QACjB,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAEhC,uBAAuB;QACvB,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAE/B,kBAAkB;QAClB,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAEhC,4EAA4E;QAC5E,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC;YACxC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;CAAA;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;IACf,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;AAEA,OAAO,eAAe,CAAC,CAAC,sDAAsD;AAE9E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAEvE,SAAe,IAAI;;QACf,IAAI,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,qBAAqB,EAAE,CAAC;YACxB,MAAM,YAAY,EAAE,CAAC;YACrB,OAAO;QACX,CAAC;QAED,UAAU;QACV,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAE1C,+BAA+B;QAC/B,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,oCAAoC,EAAE,OAAO,CAAC,CAAC;QACnF,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,0CAA0C,CAAC,CAAC;QAErE,gBAAgB;QAChB,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAE9B,oBAAoB;QACpB,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC7B,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC9B,uBAAuB,CAAC,OAAO,CAAC,CAAC;QACjC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAC/B,2BAA2B,CAAC,OAAO,CAAC,CAAC;QACrC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QACjC,0BAA0B,CAAC,OAAO,CAAC,CAAC;QAEpC,uBAAuB;QACvB,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAE/B,kBAAkB;QAClB,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAEhC,4EAA4E;QAC5E,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC;YACxC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;CAAA;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;IACf,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bkper",
3
- "version": "4.9.0",
3
+ "version": "4.9.1",
4
4
  "description": "Command line client for Bkper",
5
5
  "bin": {
6
6
  "bkper": "./lib/cli.js"
@@ -1,8 +0,0 @@
1
- import type { Command } from 'commander';
2
- import { type UpdateSkillsResult } from './skills.js';
3
- export interface SkillsCommandDependencies {
4
- updateSkills: () => Promise<UpdateSkillsResult>;
5
- log: (message: string) => void;
6
- }
7
- export declare function registerSkillsCommands(program: Command, dependencies?: SkillsCommandDependencies): void;
8
- //# sourceMappingURL=skills-command.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skills-command.d.ts","sourceRoot":"","sources":["../../src/commands/skills-command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAgB,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEpE,MAAM,WAAW,yBAAyB;IACtC,YAAY,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAChD,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AASD,wBAAgB,sBAAsB,CAClC,OAAO,EAAE,OAAO,EAChB,YAAY,GAAE,yBAAuD,GACtE,IAAI,CA2BN"}
@@ -1,36 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { withAction } from './action.js';
11
- import { updateSkills } from './skills.js';
12
- function createDefaultDependencies() {
13
- return {
14
- updateSkills: () => updateSkills(),
15
- log: message => console.log(message),
16
- };
17
- }
18
- export function registerSkillsCommands(program, dependencies = createDefaultDependencies()) {
19
- const skillsCommand = program.command('skills').description('Manage Bkper skills');
20
- skillsCommand
21
- .command('sync')
22
- .description('Sync Bkper skills to ~/.agents/skills')
23
- .action(withAction('syncing skills', () => __awaiter(this, void 0, void 0, function* () {
24
- const result = yield dependencies.updateSkills();
25
- if (result.updated.length > 0) {
26
- dependencies.log(`Synced skills (${result.updated.join(', ')})`);
27
- return;
28
- }
29
- if (result.reason) {
30
- dependencies.log(result.reason);
31
- return;
32
- }
33
- dependencies.log('No skill updates found.');
34
- }), { skipSetup: true }));
35
- }
36
- //# sourceMappingURL=skills-command.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skills-command.js","sourceRoot":"","sources":["../../src/commands/skills-command.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAA2B,MAAM,aAAa,CAAC;AAOpE,SAAS,yBAAyB;IAC9B,OAAO;QACH,YAAY,EAAE,GAAG,EAAE,CAAC,YAAY,EAAE;QAClC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;KACvC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,sBAAsB,CAClC,OAAgB,EAChB,eAA0C,yBAAyB,EAAE;IAErE,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;IAEnF,aAAa;SACR,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,uCAAuC,CAAC;SACpD,MAAM,CACH,UAAU,CACN,gBAAgB,EAChB,GAAS,EAAE;QACP,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,YAAY,EAAE,CAAC;QAEjD,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,YAAY,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO;QACX,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAChB,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAChC,OAAO;QACX,CAAC;QAED,YAAY,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IAChD,CAAC,CAAA,EACD,EAAE,SAAS,EAAE,IAAI,EAAE,CACtB,CACJ,CAAC;AACV,CAAC"}
@@ -1,13 +0,0 @@
1
- export declare function getSkillsDirectory(homeDir?: string): string;
2
- export declare function getSkillsStateFile(homeDir?: string): string;
3
- export interface UpdateSkillsResult {
4
- updated: string[];
5
- skipped: boolean;
6
- reason?: string;
7
- commit?: string;
8
- }
9
- export interface UpdateSkillsOptions {
10
- silent?: boolean;
11
- }
12
- export declare function updateSkills(options?: UpdateSkillsOptions): Promise<UpdateSkillsResult>;
13
- //# sourceMappingURL=skills.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/commands/skills.ts"],"names":[],"mappings":"AAyBA,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,MAAqB,GAAG,MAAM,CAEzE;AAED,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,MAAqB,GAAG,MAAM,CAEzE;AAuID,MAAM,WAAW,kBAAkB;IAC/B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAsB,YAAY,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAgEjG"}
@@ -1,200 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import fs from 'fs';
11
- import os from 'os';
12
- import path from 'path';
13
- import * as YAML from 'yaml';
14
- const SKILLS_REPO = 'bkper/skills';
15
- const SKILLS_BASE_PATH = 'skills';
16
- const GITHUB_API_BASE = 'https://api.github.com';
17
- const GITHUB_RAW_BASE = 'https://raw.githubusercontent.com';
18
- export function getSkillsDirectory(homeDir = os.homedir()) {
19
- return path.join(homeDir, '.agents', 'skills');
20
- }
21
- export function getSkillsStateFile(homeDir = os.homedir()) {
22
- return path.join(getSkillsDirectory(homeDir), '.bkper-skills.yaml');
23
- }
24
- function getLocalCommit() {
25
- const skillsStateFile = getSkillsStateFile();
26
- try {
27
- if (fs.existsSync(skillsStateFile)) {
28
- const content = fs.readFileSync(skillsStateFile, 'utf8');
29
- const state = YAML.parse(content);
30
- return state.commit || null;
31
- }
32
- }
33
- catch (_a) {
34
- // Ignore errors, treat as no commit
35
- }
36
- return null;
37
- }
38
- function saveLocalCommit(commit) {
39
- const skillsStateFile = getSkillsStateFile();
40
- fs.mkdirSync(path.dirname(skillsStateFile), { recursive: true });
41
- const state = { commit };
42
- fs.writeFileSync(skillsStateFile, YAML.stringify(state), 'utf8');
43
- }
44
- function fetchLatestCommit() {
45
- return __awaiter(this, void 0, void 0, function* () {
46
- const url = `${GITHUB_API_BASE}/repos/${SKILLS_REPO}/commits?path=${SKILLS_BASE_PATH}&per_page=1`;
47
- const response = yield fetch(url, {
48
- headers: {
49
- Accept: 'application/vnd.github.v3+json',
50
- 'User-Agent': 'bkper-cli',
51
- },
52
- });
53
- if (!response.ok) {
54
- throw new Error(`Failed to fetch commit: ${response.statusText}`);
55
- }
56
- const commits = (yield response.json());
57
- if (!commits.length) {
58
- throw new Error('No commits found for skills path');
59
- }
60
- return commits[0].sha;
61
- });
62
- }
63
- function fetchGitHubDirectory(repo, dirPath) {
64
- return __awaiter(this, void 0, void 0, function* () {
65
- const url = `${GITHUB_API_BASE}/repos/${repo}/contents/${dirPath}`;
66
- const response = yield fetch(url, {
67
- headers: {
68
- Accept: 'application/vnd.github.v3+json',
69
- 'User-Agent': 'bkper-cli',
70
- },
71
- });
72
- if (!response.ok) {
73
- throw new Error(`Failed to fetch ${url}: ${response.statusText}`);
74
- }
75
- return response.json();
76
- });
77
- }
78
- function downloadGitHubFile(repo, filePath) {
79
- return __awaiter(this, void 0, void 0, function* () {
80
- const url = `${GITHUB_RAW_BASE}/${repo}/main/${filePath}`;
81
- const response = yield fetch(url, {
82
- headers: {
83
- 'User-Agent': 'bkper-cli',
84
- },
85
- });
86
- if (!response.ok) {
87
- throw new Error(`Failed to download ${url}: ${response.statusText}`);
88
- }
89
- return response.text();
90
- });
91
- }
92
- function downloadSkillDirectory(skillName, targetDir) {
93
- return __awaiter(this, void 0, void 0, function* () {
94
- const skillPath = `${SKILLS_BASE_PATH}/${skillName}`;
95
- const files = yield fetchGitHubDirectory(SKILLS_REPO, skillPath);
96
- for (const file of files) {
97
- const localPath = path.join(targetDir, file.name);
98
- if (file.type === 'dir') {
99
- fs.mkdirSync(localPath, { recursive: true });
100
- const subFiles = yield fetchGitHubDirectory(SKILLS_REPO, file.path);
101
- for (const subFile of subFiles) {
102
- if (subFile.type === 'file' && subFile.download_url) {
103
- const content = yield downloadGitHubFile(SKILLS_REPO, subFile.path);
104
- fs.writeFileSync(path.join(localPath, subFile.name), content, 'utf8');
105
- }
106
- }
107
- }
108
- else if (file.type === 'file') {
109
- const content = yield downloadGitHubFile(SKILLS_REPO, file.path);
110
- fs.writeFileSync(localPath, content, 'utf8');
111
- }
112
- }
113
- });
114
- }
115
- function clearBkperSkills(skillsDir) {
116
- if (!fs.existsSync(skillsDir)) {
117
- return;
118
- }
119
- const entries = fs.readdirSync(skillsDir, { withFileTypes: true });
120
- for (const entry of entries) {
121
- if (entry.isDirectory() && entry.name.startsWith('bkper-')) {
122
- fs.rmSync(path.join(skillsDir, entry.name), { recursive: true });
123
- }
124
- }
125
- }
126
- function fetchAvailableSkills() {
127
- return __awaiter(this, void 0, void 0, function* () {
128
- const files = yield fetchGitHubDirectory(SKILLS_REPO, SKILLS_BASE_PATH);
129
- return files.filter(f => f.type === 'dir' && f.name.startsWith('bkper-')).map(f => f.name);
130
- });
131
- }
132
- function getInstalledBkperSkills(skillsDir) {
133
- if (!fs.existsSync(skillsDir)) {
134
- return [];
135
- }
136
- const entries = fs.readdirSync(skillsDir, { withFileTypes: true });
137
- return entries
138
- .filter(entry => entry.isDirectory() && entry.name.startsWith('bkper-'))
139
- .map(entry => entry.name);
140
- }
141
- function shortSha(sha) {
142
- return sha.substring(0, 7);
143
- }
144
- export function updateSkills() {
145
- return __awaiter(this, arguments, void 0, function* (options = {}) {
146
- const skillsDir = getSkillsDirectory();
147
- try {
148
- const remoteCommit = yield fetchLatestCommit();
149
- const localCommit = getLocalCommit();
150
- const installedSkills = getInstalledBkperSkills(skillsDir);
151
- const skillsExist = installedSkills.length > 0;
152
- if (remoteCommit === localCommit && skillsExist) {
153
- return {
154
- updated: [],
155
- skipped: true,
156
- reason: `Skills are up to date (${shortSha(localCommit)})`,
157
- commit: localCommit,
158
- };
159
- }
160
- const availableSkills = yield fetchAvailableSkills();
161
- if (availableSkills.length === 0) {
162
- return {
163
- updated: [],
164
- skipped: true,
165
- reason: 'No bkper-* skills found in repository',
166
- };
167
- }
168
- clearBkperSkills(skillsDir);
169
- fs.mkdirSync(skillsDir, { recursive: true });
170
- const updated = [];
171
- for (const skillName of availableSkills) {
172
- const skillTargetDir = path.join(skillsDir, skillName);
173
- fs.mkdirSync(skillTargetDir, { recursive: true });
174
- try {
175
- yield downloadSkillDirectory(skillName, skillTargetDir);
176
- updated.push(skillName);
177
- }
178
- catch (err) {
179
- if (!options.silent) {
180
- console.error(` Warning: Failed to download skill '${skillName}':`, err instanceof Error ? err.message : err);
181
- }
182
- }
183
- }
184
- saveLocalCommit(remoteCommit);
185
- return {
186
- updated,
187
- skipped: false,
188
- commit: remoteCommit,
189
- };
190
- }
191
- catch (err) {
192
- return {
193
- updated: [],
194
- skipped: true,
195
- reason: `Could not check for updates: ${err instanceof Error ? err.message : err}`,
196
- };
197
- }
198
- });
199
- }
200
- //# sourceMappingURL=skills.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/commands/skills.ts"],"names":[],"mappings":"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"}