@redplanethq/corebrain 2.8.33 → 2.8.34

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.
@@ -1 +1 @@
1
- {"version":3,"file":"llmproxy.d.ts","sourceRoot":"","sources":["../../../src/commands/gateway/llmproxy.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;AAItB,eAAO,MAAM,WAAW,6KAC8I,CAAC;AAWvK,eAAO,MAAM,OAAO;;;;;;;;mBAQlB,CAAC;AAEH,KAAK,KAAK,GAAG;IAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAA;CAAC,CAAC;AA0WlD,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,EAAE,KAAK,QAM7D"}
1
+ {"version":3,"file":"llmproxy.d.ts","sourceRoot":"","sources":["../../../src/commands/gateway/llmproxy.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;AAItB,eAAO,MAAM,WAAW,6KAC8I,CAAC;AAWvK,eAAO,MAAM,OAAO;;;;;;;;mBAQlB,CAAC;AAEH,KAAK,KAAK,GAAG;IAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAA;CAAC,CAAC;AAwXlD,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,EAAE,KAAK,QAM7D"}
@@ -85,18 +85,24 @@ function bindLocalCallback(provider, port, callbackPath, gatewayUrl) {
85
85
  signal: AbortSignal.timeout(30_000),
86
86
  redirect: 'manual',
87
87
  });
88
- // Regardless of what the gateway/cliproxy returns, show the user a
89
- // clean confirmation page. Success/failure details come from polling
90
- // /api/llmproxy/login/:provider/status back in the main flow.
91
- res.writeHead(forward.ok ? 200 : forward.status, { 'content-type': 'text/html' });
88
+ // CLIProxyAPI often responds with a 302 redirect to its own success
89
+ // page after processing the code, so anything 2xx or 3xx means the
90
+ // callback was delivered. Only 4xx/5xx indicate a real failure.
91
+ // Actual login success/failure is confirmed by the status poll —
92
+ // we just report "callback got through" here.
93
+ const delivered = forward.status < 400;
94
+ res.writeHead(delivered ? 200 : forward.status, { 'content-type': 'text/html' });
92
95
  res.end(`<!doctype html>
93
96
  <meta charset="utf-8">
94
97
  <title>Login complete</title>
95
98
  <div style="font-family: -apple-system, sans-serif; max-width: 480px; margin: 8rem auto; text-align: center;">
96
- <h2>${forward.ok ? 'Login complete' : 'Login failed'}</h2>
99
+ <h2>${delivered ? 'Login complete' : 'Login failed'}</h2>
97
100
  <p>You can close this tab and return to your terminal.</p>
98
101
  </div>`);
99
- resolve({ ok: forward.ok, error: forward.ok ? undefined : `gateway returned HTTP ${forward.status}` });
102
+ resolve({
103
+ ok: delivered,
104
+ error: delivered ? undefined : `gateway returned HTTP ${forward.status}`,
105
+ });
100
106
  }
101
107
  catch (err) {
102
108
  res.writeHead(502, { 'content-type': 'text/plain' });
@@ -200,41 +206,42 @@ async function runLoginFlow(opts) {
200
206
  return;
201
207
  }
202
208
  loginSpinner.stop('Got login details from gateway');
203
- // Show the user the URL (both flows) and, for device-code, the short code.
204
- const noteLines = [
205
- chalk.bold(`Open this URL in your browser to sign in to ${meta.displayName}:`),
206
- '',
207
- chalk.cyan(start.authUrl ?? ''),
208
- ];
209
+ // Print the URL raw (no box border) so the user can triple-click and copy
210
+ // without dragging in decorative characters — long OAuth URLs would
211
+ // otherwise wrap across `p.note()`'s vertical bar and break selection.
212
+ console.log();
213
+ console.log(chalk.bold(`Sign in to ${meta.displayName} open this URL:`));
214
+ console.log();
215
+ console.log(chalk.cyan(start.authUrl ?? ''));
216
+ console.log();
209
217
  if (meta.flow === 'device-code' && start.userCode) {
210
- noteLines.push('', `${chalk.bold('Then enter this code on the page:')} ${chalk.yellow.bold(start.userCode)}`);
218
+ console.log(`${chalk.bold('Then enter this code on the page:')} ${chalk.yellow.bold(start.userCode)}`);
211
219
  }
212
220
  else if (meta.flow === 'callback') {
213
- noteLines.push('', chalk.dim('This CLI is listening on'), chalk.dim(` http://localhost:${meta.port}${meta.callbackPath}`), chalk.dim('and will forward the OAuth callback to your gateway automatically.'));
221
+ console.log(chalk.dim(`This CLI is listening on http://localhost:${meta.port}${meta.callbackPath} and will forward the OAuth callback to your gateway.`));
214
222
  }
215
- p.note(noteLines.join('\n'), `Log in to ${meta.displayName}`);
223
+ console.log();
216
224
  const waitSpinner = p.spinner();
217
225
  waitSpinner.start(meta.flow === 'device-code'
218
226
  ? 'Waiting for you to approve on the provider website...'
219
227
  : 'Waiting for you to complete the browser flow...');
220
- // Poll status until completed / failed. For callback flow, also race
221
- // against the local server receiving the OAuth redirect either signal
222
- // finishes the wait.
228
+ // The truthful signal for "is this login done?" is the status poll —
229
+ // the gateway subprocess transitions to `completed` / `failed` after
230
+ // exchanging the code. The local callback resolving just tells us the
231
+ // browser redirected; the actual token exchange happens after. So we
232
+ // poll status regardless, and only use the callback to speed up the
233
+ // last few seconds.
223
234
  const timeoutMs = 5 * 60_000;
224
235
  const startedAt = Date.now();
236
+ let callbackReported = null;
237
+ if (localServer) {
238
+ localServer.received.then((r) => {
239
+ callbackReported = r;
240
+ });
241
+ }
225
242
  let outcome = null;
226
243
  while (Date.now() - startedAt < timeoutMs && !outcome) {
227
- const waits = [
228
- new Promise((r) => setTimeout(() => r({ from: 'poll' }), 2_000)),
229
- ];
230
- if (localServer) {
231
- waits.push(localServer.received.then((r) => ({ from: 'callback', r })));
232
- }
233
- const raced = await Promise.race(waits);
234
- if (raced.from === 'callback') {
235
- outcome = raced.r;
236
- break;
237
- }
244
+ await new Promise((r) => setTimeout(r, 2_000));
238
245
  try {
239
246
  const status = await pollStatus(gateway.baseUrl, opts.login);
240
247
  if (status.status === 'completed') {
@@ -245,6 +252,14 @@ async function runLoginFlow(opts) {
245
252
  outcome = { ok: false, error: status.error ?? 'unknown gateway error' };
246
253
  break;
247
254
  }
255
+ if (status.status === 'idle') {
256
+ // Subprocess already exited and its entry was GC'd, but we never
257
+ // got a completed/failed reading. Trust the callback report.
258
+ if (callbackReported) {
259
+ outcome = callbackReported;
260
+ break;
261
+ }
262
+ }
248
263
  }
249
264
  catch {
250
265
  // transient poll failure — keep waiting
@@ -1 +1 @@
1
- {"version":3,"file":"llmproxy.js","sourceRoot":"","sources":["../../../src/commands/gateway/llmproxy.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llmproxy.js","sourceRoot":"","sources":["../../../src/commands/gateway/llmproxy.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redplanethq/corebrain",
3
- "version": "2.8.33",
3
+ "version": "2.8.34",
4
4
  "type": "module",
5
5
  "engines": {
6
6
  "node": ">=16"
Binary file
@@ -1,9 +0,0 @@
1
- import type { FastifyPluginAsync } from 'fastify';
2
- /**
3
- * Mounted at `/api/skills`. Registers one POST route per skill management
4
- * tool (`skill_install`, `skill_remove`). Auth is the standard gateway
5
- * security key; the install itself doesn't run user code — it only writes
6
- * the cloned repo subtree into `~/.corebrain/skills/<name>/`.
7
- */
8
- export declare const skillsRoutes: FastifyPluginAsync;
9
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/server/api/skills/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,SAAS,CAAC;AAIhD;;;;;GAKG;AACH,eAAO,MAAM,YAAY,EAAE,kBAE1B,CAAC"}
@@ -1,12 +0,0 @@
1
- import { skillsTools, executeSkillsTool } from '../../../server/tools/skills-tools.js';
2
- import { makeToolGroupRoutes } from '../tool-group.js';
3
- /**
4
- * Mounted at `/api/skills`. Registers one POST route per skill management
5
- * tool (`skill_install`, `skill_remove`). Auth is the standard gateway
6
- * security key; the install itself doesn't run user code — it only writes
7
- * the cloned repo subtree into `~/.corebrain/skills/<name>/`.
8
- */
9
- export const skillsRoutes = async (app) => {
10
- await app.register(makeToolGroupRoutes(skillsTools, executeSkillsTool));
11
- };
12
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/api/skills/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAE,iBAAiB,EAAC,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAC,mBAAmB,EAAC,MAAM,eAAe,CAAC;AAElD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAuB,KAAK,EAAC,GAAG,EAAC,EAAE;IAC3D,MAAM,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC;AACzE,CAAC,CAAC"}
@@ -1,35 +0,0 @@
1
- import type { GatewaySkill } from '@redplanethq/gateway-protocol';
2
- /**
3
- * Source description for `installSkill`. Currently only `url` is supported —
4
- * the gateway clones (optionally sparse-checkout'd) the repo and copies the
5
- * skill's directory into `~/.corebrain/skills/<name>/`.
6
- */
7
- export interface InstallFromUrl {
8
- source: 'url';
9
- /** `https://...` or `git@host:org/repo` clone URL. */
10
- url: string;
11
- /**
12
- * Optional path inside the cloned repo to the skill folder. When set, the
13
- * gateway uses `git sparse-checkout` so only this subtree is fetched —
14
- * cheap for skills inside a large monorepo like `RedPlanetHQ/core`.
15
- * If omitted, `installFromUrl` looks for SKILL.md at the repo root (or
16
- * one level down if `name` is provided).
17
- */
18
- subdir?: string;
19
- /** Required when using `subdir`; otherwise inferred from frontmatter. */
20
- name?: string;
21
- /** If true, overwrite an existing skill with the same name. */
22
- force?: boolean;
23
- }
24
- export type InstallSource = InstallFromUrl;
25
- export interface InstallOptions {
26
- /** Skills root directory. Defaults to `~/.corebrain/skills/`. */
27
- dir?: string;
28
- }
29
- /**
30
- * Install a skill from a git URL. Always stages in a temp dir and uses
31
- * `fs.rename` for the final move so partial installs never appear on disk.
32
- */
33
- export declare function installSkill(input: InstallSource, opts?: InstallOptions): Promise<GatewaySkill>;
34
- export declare function removeSkill(name: string, opts?: InstallOptions): Promise<void>;
35
- //# sourceMappingURL=install.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/server/skills/install.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,+BAA+B,CAAC;AAQhE;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC9B,MAAM,EAAE,KAAK,CAAC;IACd,sDAAsD;IACtD,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,MAAM,aAAa,GAAG,cAAc,CAAC;AAE3C,MAAM,WAAW,cAAc;IAC9B,iEAAiE;IACjE,GAAG,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;;GAGG;AACH,wBAAsB,YAAY,CACjC,KAAK,EAAE,aAAa,EACpB,IAAI,GAAE,cAAmB,GACvB,OAAO,CAAC,YAAY,CAAC,CAIvB;AAyFD,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CASxF"}
@@ -1,182 +0,0 @@
1
- import { mkdtempSync, rmSync, renameSync, existsSync } from 'node:fs';
2
- import { mkdir, readFile } from 'node:fs/promises';
3
- import { tmpdir } from 'node:os';
4
- import { join, isAbsolute } from 'node:path';
5
- import { execFile } from 'node:child_process';
6
- import { promisify } from 'node:util';
7
- import matter from 'gray-matter';
8
- import { DEFAULT_SKILLS_DIR } from './skill-store.js';
9
- import { gatewayLog } from '../../server/gateway-log.js';
10
- const execFileP = promisify(execFile);
11
- const NAME_RE = /^[a-z0-9][a-z0-9-]*$/;
12
- /**
13
- * Install a skill from a git URL. Always stages in a temp dir and uses
14
- * `fs.rename` for the final move so partial installs never appear on disk.
15
- */
16
- export async function installSkill(input, opts = {}) {
17
- const skillsDir = opts.dir ?? DEFAULT_SKILLS_DIR;
18
- await mkdir(skillsDir, { recursive: true });
19
- return installFromUrl(input, skillsDir);
20
- }
21
- async function installFromUrl(input, skillsDir) {
22
- if (!/^https:\/\//.test(input.url) && !/^git@[\w.-]+:/.test(input.url)) {
23
- throw new Error(`install: URL must start with "https://" or "git@host:" — got "${input.url}"`);
24
- }
25
- if (input.subdir) {
26
- assertSafeSubdir(input.subdir);
27
- if (!input.name) {
28
- throw new Error('install: `name` is required when `subdir` is set');
29
- }
30
- assertValidName(input.name);
31
- }
32
- const cloneDir = mkdtempSync(join(tmpdir(), 'corebrain-skill-clone-'));
33
- try {
34
- await gitClone(input.url, cloneDir, input.subdir);
35
- let sourceDir;
36
- let name;
37
- if (input.subdir) {
38
- sourceDir = join(cloneDir, input.subdir);
39
- if (!existsSync(join(sourceDir, 'SKILL.md'))) {
40
- throw new Error(`install: subdir "${input.subdir}" has no SKILL.md (looked at ${sourceDir})`);
41
- }
42
- name = input.name;
43
- // Validate frontmatter name matches the requested install name so a
44
- // renamed skill folder can't masquerade as something else.
45
- const fm = matter(await readFile(join(sourceDir, 'SKILL.md'), 'utf8')).data;
46
- const fmName = typeof fm.name === 'string' ? fm.name : null;
47
- if (fmName && fmName !== name) {
48
- throw new Error(`install: SKILL.md frontmatter name "${fmName}" does not match install name "${name}"`);
49
- }
50
- }
51
- else if (input.name) {
52
- assertValidName(input.name);
53
- sourceDir = join(cloneDir, input.name);
54
- if (!existsSync(join(sourceDir, 'SKILL.md'))) {
55
- throw new Error(`install: "${input.name}" not found in repo root (looked at ${sourceDir})`);
56
- }
57
- name = input.name;
58
- }
59
- else if (existsSync(join(cloneDir, 'SKILL.md'))) {
60
- sourceDir = cloneDir;
61
- const fm = matter(await readFile(join(sourceDir, 'SKILL.md'), 'utf8')).data;
62
- if (typeof fm.name !== 'string') {
63
- throw new Error('install: repo root has SKILL.md but frontmatter is missing `name`');
64
- }
65
- name = fm.name;
66
- assertValidName(name);
67
- }
68
- else {
69
- throw new Error('install: no SKILL.md found at repo root — pass `name` or `subdir` to locate the skill');
70
- }
71
- const skillMd = await readFile(join(sourceDir, 'SKILL.md'), 'utf8');
72
- const meta = parseSkillMd(skillMd, name);
73
- const target = join(skillsDir, name);
74
- await ensureNoCollision(target, name, Boolean(input.force), skillsDir);
75
- renameSync(sourceDir, target);
76
- gatewayLog(`skill installed (url): ${name} from ${input.url}${input.subdir ? `#${input.subdir}` : ''}`);
77
- return {
78
- name,
79
- description: meta.description,
80
- ...(meta.allowedTools ? { allowedTools: meta.allowedTools } : {}),
81
- path: target,
82
- };
83
- }
84
- finally {
85
- rmSync(cloneDir, { recursive: true, force: true });
86
- }
87
- }
88
- export async function removeSkill(name, opts = {}) {
89
- assertValidName(name);
90
- const skillsDir = opts.dir ?? DEFAULT_SKILLS_DIR;
91
- const target = join(skillsDir, name);
92
- if (!existsSync(target)) {
93
- throw new Error(`Skill '${name}' not found`);
94
- }
95
- rmSync(target, { recursive: true, force: true });
96
- gatewayLog(`skill removed: ${name}`);
97
- }
98
- // --- helpers ----------------------------------------------------------------
99
- function assertValidName(name) {
100
- if (!NAME_RE.test(name)) {
101
- throw new Error(`invalid skill name "${name}" — must match ${NAME_RE} (lowercase, kebab-case)`);
102
- }
103
- }
104
- /**
105
- * Reject subdir inputs that try to escape the clone with `..` or absolute
106
- * paths. Empty segments are also rejected so a stray `//` doesn't slip past.
107
- */
108
- function assertSafeSubdir(subdir) {
109
- if (isAbsolute(subdir) || subdir.startsWith('/')) {
110
- throw new Error(`subdir must be relative: "${subdir}"`);
111
- }
112
- const segments = subdir.split('/');
113
- for (const seg of segments) {
114
- if (seg === '' || seg === '.' || seg === '..') {
115
- throw new Error(`subdir contains invalid segment "${seg}": "${subdir}"`);
116
- }
117
- }
118
- }
119
- function parseSkillMd(content, expectedName) {
120
- const parsed = matter(content);
121
- const fm = parsed.data;
122
- const fmName = typeof fm.name === 'string' ? fm.name : null;
123
- const fmDesc = typeof fm.description === 'string' ? fm.description : null;
124
- if (!fmName)
125
- throw new Error('SKILL.md frontmatter is missing `name`');
126
- if (!fmDesc)
127
- throw new Error('SKILL.md frontmatter is missing `description`');
128
- if (fmName !== expectedName) {
129
- throw new Error(`SKILL.md frontmatter name "${fmName}" does not match install name "${expectedName}"`);
130
- }
131
- const at = fm['allowed-tools'];
132
- const allowedTools = Array.isArray(at) && at.every(s => typeof s === 'string') ? at : undefined;
133
- return allowedTools ? { description: fmDesc, allowedTools } : { description: fmDesc };
134
- }
135
- async function ensureNoCollision(target, name, force, baseDir) {
136
- if (!existsSync(target))
137
- return;
138
- if (!force) {
139
- throw new Error(`Skill '${name}' already installed. Use force=true to overwrite, or remove it first.`);
140
- }
141
- await removeSkill(name, { dir: baseDir });
142
- }
143
- /**
144
- * Clone the repo into `cloneDir`. If `subdir` is set, do a sparse,
145
- * blob-filtered clone and only check out that subtree — this is what lets
146
- * the gateway install a skill out of a large monorepo without pulling
147
- * gigabytes of unrelated code.
148
- *
149
- * Sparse-checkout falls back to a regular shallow clone if any of the
150
- * sparse steps fail (older `git` versions, sparse not supported). The
151
- * sourceDir resolution downstream still works in that case — it just
152
- * means we pulled more than we needed.
153
- */
154
- async function gitClone(url, cloneDir, subdir) {
155
- const timeoutMs = 5 * 60_000;
156
- const exec = (args) => execFileP('git', args, { timeout: timeoutMs });
157
- if (!subdir) {
158
- await exec(['clone', '--depth=1', url, cloneDir]);
159
- return;
160
- }
161
- try {
162
- await exec(['clone', '--depth=1', '--filter=blob:none', '--sparse', url, cloneDir]);
163
- await execFileP('git', ['-C', cloneDir, 'sparse-checkout', 'set', subdir], {
164
- timeout: timeoutMs,
165
- });
166
- // Make sure the subdir actually exists post-checkout. Sparse-checkout is
167
- // quiet if the pattern matches nothing, so guard explicitly.
168
- if (!existsSync(join(cloneDir, subdir))) {
169
- throw new Error(`sparse-checkout produced no files for "${subdir}"`);
170
- }
171
- }
172
- catch (err) {
173
- // Best-effort fallback to a full shallow clone so callers don't get
174
- // blocked by old gits or unusual repos. The sourceDir lookup downstream
175
- // still works — we'll just have a bigger temp tree to delete.
176
- gatewayLog(`sparse-checkout failed for ${url}#${subdir}, falling back to full clone: ${err instanceof Error ? err.message : String(err)}`);
177
- rmSync(cloneDir, { recursive: true, force: true });
178
- await mkdir(cloneDir, { recursive: true });
179
- await exec(['clone', '--depth=1', url, cloneDir]);
180
- }
181
- }
182
- //# sourceMappingURL=install.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/server/skills/install.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import type { GatewaySkill } from '@redplanethq/gateway-protocol';
2
- export declare const DEFAULT_SKILLS_DIR: string;
3
- /**
4
- * Walk `<dir>/<name>/SKILL.md`, parse YAML frontmatter, return validated
5
- * skills. Skips entries that:
6
- * - aren't directories or have no SKILL.md
7
- * - have no `name` or `description` in frontmatter
8
- * - have a `name` that doesn't match the containing directory
9
- * Each rejection is logged via `gatewayLog` so bad fixtures surface.
10
- */
11
- export declare function listSkills(dir?: string): Promise<GatewaySkill[]>;
12
- //# sourceMappingURL=skill-store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skill-store.d.ts","sourceRoot":"","sources":["../../../src/server/skills/skill-store.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,+BAA+B,CAAC;AAGhE,eAAO,MAAM,kBAAkB,QAA6C,CAAC;AAE7E;;;;;;;GAOG;AACH,wBAAsB,UAAU,CAAC,GAAG,GAAE,MAA2B,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CA8D1F"}
@@ -1,76 +0,0 @@
1
- import { readdir, readFile, stat } from 'node:fs/promises';
2
- import { existsSync } from 'node:fs';
3
- import { join, resolve } from 'node:path';
4
- import { homedir } from 'node:os';
5
- import matter from 'gray-matter';
6
- import { gatewayLog } from '../../server/gateway-log.js';
7
- export const DEFAULT_SKILLS_DIR = resolve(homedir(), '.corebrain', 'skills');
8
- /**
9
- * Walk `<dir>/<name>/SKILL.md`, parse YAML frontmatter, return validated
10
- * skills. Skips entries that:
11
- * - aren't directories or have no SKILL.md
12
- * - have no `name` or `description` in frontmatter
13
- * - have a `name` that doesn't match the containing directory
14
- * Each rejection is logged via `gatewayLog` so bad fixtures surface.
15
- */
16
- export async function listSkills(dir = DEFAULT_SKILLS_DIR) {
17
- if (!existsSync(dir))
18
- return [];
19
- let entries;
20
- try {
21
- entries = await readdir(dir);
22
- }
23
- catch {
24
- return [];
25
- }
26
- const skills = [];
27
- for (const name of entries) {
28
- const skillDir = join(dir, name);
29
- let isDir = false;
30
- try {
31
- isDir = (await stat(skillDir)).isDirectory();
32
- }
33
- catch {
34
- continue;
35
- }
36
- if (!isDir)
37
- continue;
38
- const skillMd = join(skillDir, 'SKILL.md');
39
- try {
40
- await stat(skillMd);
41
- }
42
- catch {
43
- continue;
44
- }
45
- let parsed;
46
- try {
47
- parsed = matter(await readFile(skillMd, 'utf8'));
48
- }
49
- catch (err) {
50
- gatewayLog(`skill ${name}: failed to parse SKILL.md (${err})`);
51
- continue;
52
- }
53
- const fm = parsed.data;
54
- const fmName = typeof fm.name === 'string' ? fm.name : null;
55
- const fmDesc = typeof fm.description === 'string' ? fm.description : null;
56
- if (!fmName || !fmDesc) {
57
- gatewayLog(`skill ${name}: missing required frontmatter (name/description)`);
58
- continue;
59
- }
60
- if (fmName !== name) {
61
- gatewayLog(`skill ${name}: frontmatter name "${fmName}" doesn't match directory`);
62
- continue;
63
- }
64
- const at = fm['allowed-tools'];
65
- const allowedTools = Array.isArray(at) && at.every(s => typeof s === 'string') ? at : undefined;
66
- skills.push({
67
- name: fmName,
68
- description: fmDesc,
69
- ...(allowedTools ? { allowedTools } : {}),
70
- path: skillDir,
71
- });
72
- }
73
- skills.sort((a, b) => a.name.localeCompare(b.name));
74
- return skills;
75
- }
76
- //# sourceMappingURL=skill-store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skill-store.js","sourceRoot":"","sources":["../../../src/server/skills/skill-store.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- interface GatewayTool {
2
- name: string;
3
- description: string;
4
- inputSchema?: Record<string, unknown>;
5
- }
6
- interface ToolResult {
7
- success: boolean;
8
- result?: unknown;
9
- error?: string;
10
- }
11
- export declare const skillsTools: GatewayTool[];
12
- export declare function executeSkillsTool(toolName: string, params: Record<string, unknown>): Promise<ToolResult>;
13
- export {};
14
- //# sourceMappingURL=skills-tools.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skills-tools.d.ts","sourceRoot":"","sources":["../../../src/server/tools/skills-tools.ts"],"names":[],"mappings":"AAGA,UAAU,WAAW;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED,UAAU,UAAU;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAoDD,eAAO,MAAM,WAAW,EAAE,WAAW,EAapC,CAAC;AA0BF,wBAAsB,iBAAiB,CACtC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC,UAAU,CAAC,CAgBrB"}
@@ -1,100 +0,0 @@
1
- import zod from 'zod';
2
- import { installSkill, removeSkill } from '../../server/skills/install.js';
3
- const InstallSchema = zod.object({
4
- url: zod.string().min(1),
5
- name: zod.string().min(1),
6
- subdir: zod.string().optional(),
7
- force: zod.boolean().optional(),
8
- });
9
- const RemoveSchema = zod.object({
10
- name: zod.string().min(1),
11
- });
12
- const jsonSchemas = {
13
- skill_install: {
14
- type: 'object',
15
- properties: {
16
- url: {
17
- type: 'string',
18
- description: 'Git URL of the source repository. Must start with "https://" or "git@host:". For library skills this points at the CORE monorepo.',
19
- },
20
- name: {
21
- type: 'string',
22
- description: 'Kebab-case skill slug. Becomes both the SKILL.md frontmatter `name` and the directory under ~/.corebrain/skills/.',
23
- },
24
- subdir: {
25
- type: 'string',
26
- description: 'Optional path inside the cloned repo to the skill folder (e.g. "docs/skills/my-skill"). Triggers sparse-checkout so only this subtree is fetched. Omit for repos whose root is the skill.',
27
- },
28
- force: {
29
- type: 'boolean',
30
- description: 'If true, overwrite an existing skill with the same name. Without this an existing install fails.',
31
- },
32
- },
33
- required: ['url', 'name'],
34
- },
35
- skill_remove: {
36
- type: 'object',
37
- properties: {
38
- name: {
39
- type: 'string',
40
- description: 'Skill name to remove. Deletes ~/.corebrain/skills/<name>/ recursively.',
41
- },
42
- },
43
- required: ['name'],
44
- },
45
- };
46
- export const skillsTools = [
47
- {
48
- name: 'skill_install',
49
- description: 'Install a skill from a git URL into ~/.corebrain/skills/<name>/. Uses sparse-checkout when `subdir` is set, so library skills nested inside a monorepo can be pulled cheaply. Atomic: stages in a temp dir, then renames into place.',
50
- inputSchema: jsonSchemas.skill_install,
51
- },
52
- {
53
- name: 'skill_remove',
54
- description: 'Remove an installed skill. Deletes ~/.corebrain/skills/<name>/ recursively. Fails if the skill does not exist.',
55
- inputSchema: jsonSchemas.skill_remove,
56
- },
57
- ];
58
- async function handleInstall(params) {
59
- try {
60
- const skill = await installSkill({
61
- source: 'url',
62
- url: params.url,
63
- name: params.name,
64
- ...(params.subdir ? { subdir: params.subdir } : {}),
65
- ...(params.force ? { force: true } : {}),
66
- });
67
- return { success: true, result: skill };
68
- }
69
- catch (err) {
70
- return { success: false, error: err instanceof Error ? err.message : String(err) };
71
- }
72
- }
73
- async function handleRemove(params) {
74
- try {
75
- await removeSkill(params.name);
76
- return { success: true, result: { name: params.name, removed: true } };
77
- }
78
- catch (err) {
79
- return { success: false, error: err instanceof Error ? err.message : String(err) };
80
- }
81
- }
82
- export async function executeSkillsTool(toolName, params) {
83
- try {
84
- switch (toolName) {
85
- case 'skill_install':
86
- return await handleInstall(InstallSchema.parse(params));
87
- case 'skill_remove':
88
- return await handleRemove(RemoveSchema.parse(params));
89
- default:
90
- return { success: false, error: `Unknown tool: ${toolName}` };
91
- }
92
- }
93
- catch (err) {
94
- if (err instanceof zod.ZodError) {
95
- return { success: false, error: `Invalid parameters: ${err.message}` };
96
- }
97
- return { success: false, error: err instanceof Error ? err.message : 'Unknown error' };
98
- }
99
- }
100
- //# sourceMappingURL=skills-tools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skills-tools.js","sourceRoot":"","sources":["../../../src/server/tools/skills-tools.ts"],"names":[],"mappings":"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"}