@senpi/runtime 1.1.0-dev.runtime-phase-2.20260512102629 → 1.1.0-dev.runtime-phase-2.20260514134437
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/dist/cli/senpi-cli-config.d.ts +15 -1
- package/dist/cli/senpi-cli-config.d.ts.map +1 -1
- package/dist/cli/senpi-cli-config.js +19 -2
- package/dist/cli/senpi-cli-config.js.map +1 -1
- package/dist/cli/senpi-commands.d.ts.map +1 -1
- package/dist/cli/senpi-commands.js +96 -0
- package/dist/cli/senpi-commands.js.map +1 -1
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +84 -1
- package/dist/index.js.map +1 -1
- package/dist/runtime/auto-update/coordinator.d.ts +13 -0
- package/dist/runtime/auto-update/coordinator.d.ts.map +1 -1
- package/dist/runtime/auto-update/coordinator.js +14 -0
- package/dist/runtime/auto-update/coordinator.js.map +1 -1
- package/dist/skills-manager/bootstrap.d.ts +26 -0
- package/dist/skills-manager/bootstrap.d.ts.map +1 -0
- package/dist/skills-manager/bootstrap.js +86 -0
- package/dist/skills-manager/bootstrap.js.map +1 -0
- package/dist/skills-manager/constants.d.ts +31 -0
- package/dist/skills-manager/constants.d.ts.map +1 -0
- package/dist/skills-manager/constants.js +40 -0
- package/dist/skills-manager/constants.js.map +1 -0
- package/dist/skills-manager/coordinator.d.ts +336 -0
- package/dist/skills-manager/coordinator.d.ts.map +1 -0
- package/dist/skills-manager/coordinator.js +931 -0
- package/dist/skills-manager/coordinator.js.map +1 -0
- package/dist/skills-manager/fetcher.d.ts +28 -0
- package/dist/skills-manager/fetcher.d.ts.map +1 -0
- package/dist/skills-manager/fetcher.js +92 -0
- package/dist/skills-manager/fetcher.js.map +1 -0
- package/dist/skills-manager/index.d.ts +5 -0
- package/dist/skills-manager/index.d.ts.map +1 -0
- package/dist/skills-manager/index.js +4 -0
- package/dist/skills-manager/index.js.map +1 -0
- package/dist/skills-manager/state-store.d.ts +57 -0
- package/dist/skills-manager/state-store.d.ts.map +1 -0
- package/dist/skills-manager/state-store.js +129 -0
- package/dist/skills-manager/state-store.js.map +1 -0
- package/dist/skills-manager/types.d.ts +165 -0
- package/dist/skills-manager/types.d.ts.map +1 -0
- package/dist/skills-manager/types.js +2 -0
- package/dist/skills-manager/types.js.map +1 -0
- package/dist/skills-manager/utils.d.ts +63 -0
- package/dist/skills-manager/utils.d.ts.map +1 -0
- package/dist/skills-manager/utils.js +119 -0
- package/dist/skills-manager/utils.js.map +1 -0
- package/dist/skills-manager/version-manager.d.ts +146 -0
- package/dist/skills-manager/version-manager.d.ts.map +1 -0
- package/dist/skills-manager/version-manager.js +299 -0
- package/dist/skills-manager/version-manager.js.map +1 -0
- package/dist/skills-manager/writer.d.ts +28 -0
- package/dist/skills-manager/writer.d.ts.map +1 -0
- package/dist/skills-manager/writer.js +101 -0
- package/dist/skills-manager/writer.js.map +1 -0
- package/openclaw.plugin.json +27 -0
- package/package.json +3 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coordinator.js","sourceRoot":"","sources":["../../src/skills-manager/coordinator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fetches the Senpi skills monorepo via a shallow git clone into a temp directory.
|
|
3
|
+
*
|
|
4
|
+
* A single clone per tick is enough to update every skill that needs it,
|
|
5
|
+
* avoiding N separate GitHub API calls for N skills.
|
|
6
|
+
*/
|
|
7
|
+
import type { LoggerLike } from "./types.js";
|
|
8
|
+
export interface CloneResult {
|
|
9
|
+
/** Absolute path to the root of the cloned repo (temp directory). */
|
|
10
|
+
cloneDir: string;
|
|
11
|
+
/** Must be called when done — removes the temp directory. */
|
|
12
|
+
cleanup: () => Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Shallow-clone the Senpi skills monorepo into a system temp directory.
|
|
16
|
+
*
|
|
17
|
+
* Uses `git clone --depth=1 --single-branch` to minimise bandwidth.
|
|
18
|
+
* Retries up to 3 times with exponential back-off (2 s → 4 s → 8 s) to
|
|
19
|
+
* handle transient network failures.
|
|
20
|
+
*
|
|
21
|
+
* The caller MUST call `cleanup()` in a `finally` block regardless of
|
|
22
|
+
* whether subsequent copy steps succeed or fail.
|
|
23
|
+
*
|
|
24
|
+
* @throws When git exits with a non-zero code on all attempts, or when git
|
|
25
|
+
* is unavailable.
|
|
26
|
+
*/
|
|
27
|
+
export declare function cloneSkillsRepo(repoUrl?: string, timeoutMs?: number, logger?: LoggerLike): Promise<CloneResult>;
|
|
28
|
+
//# sourceMappingURL=fetcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetcher.d.ts","sourceRoot":"","sources":["../../src/skills-manager/fetcher.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,WAAW,WAAW;IAC1B,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,eAAe,CACnC,OAAO,GAAE,MAAwB,EACjC,SAAS,GAAE,MAAgB,EAC3B,MAAM,CAAC,EAAE,UAAU,GAClB,OAAO,CAAC,WAAW,CAAC,CAoFtB"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fetches the Senpi skills monorepo via a shallow git clone into a temp directory.
|
|
3
|
+
*
|
|
4
|
+
* A single clone per tick is enough to update every skill that needs it,
|
|
5
|
+
* avoiding N separate GitHub API calls for N skills.
|
|
6
|
+
*/
|
|
7
|
+
import { mkdir, mkdtemp, rm } from "node:fs/promises";
|
|
8
|
+
import { tmpdir } from "node:os";
|
|
9
|
+
import { join } from "node:path";
|
|
10
|
+
import retry from "async-retry";
|
|
11
|
+
import { runCommand } from "../runtime/auto-update/command-runner.js";
|
|
12
|
+
import { SKILLS_REPO_BRANCH, SKILLS_REPO_URL } from "./constants.js";
|
|
13
|
+
import { formatErr } from "./utils.js";
|
|
14
|
+
/**
|
|
15
|
+
* Shallow-clone the Senpi skills monorepo into a system temp directory.
|
|
16
|
+
*
|
|
17
|
+
* Uses `git clone --depth=1 --single-branch` to minimise bandwidth.
|
|
18
|
+
* Retries up to 3 times with exponential back-off (2 s → 4 s → 8 s) to
|
|
19
|
+
* handle transient network failures.
|
|
20
|
+
*
|
|
21
|
+
* The caller MUST call `cleanup()` in a `finally` block regardless of
|
|
22
|
+
* whether subsequent copy steps succeed or fail.
|
|
23
|
+
*
|
|
24
|
+
* @throws When git exits with a non-zero code on all attempts, or when git
|
|
25
|
+
* is unavailable.
|
|
26
|
+
*/
|
|
27
|
+
export async function cloneSkillsRepo(repoUrl = SKILLS_REPO_URL, timeoutMs = 120_000, logger) {
|
|
28
|
+
const cloneDir = await mkdtemp(join(tmpdir(), "senpi-skills-"));
|
|
29
|
+
const cleanup = async () => {
|
|
30
|
+
try {
|
|
31
|
+
await rm(cloneDir, { recursive: true, force: true });
|
|
32
|
+
logger?.info(`[senpi-skills-manager] clone temp dir removed | dir=${cloneDir}`);
|
|
33
|
+
}
|
|
34
|
+
catch (err) {
|
|
35
|
+
logger?.warn(`[senpi-skills-manager] failed to remove clone temp dir | dir=${cloneDir} err=${formatErr(err)}`);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
logger?.info(`[senpi-skills-manager] cloning skills repo | url=${repoUrl} branch=${SKILLS_REPO_BRANCH} timeout=${timeoutMs}ms dir=${cloneDir}`);
|
|
39
|
+
try {
|
|
40
|
+
await retry(async (_bail, attempt) => {
|
|
41
|
+
if (attempt > 1) {
|
|
42
|
+
// Clean up the partial clone from the previous attempt so git clone
|
|
43
|
+
// finds an empty directory on the next try.
|
|
44
|
+
await rm(cloneDir, { recursive: true, force: true });
|
|
45
|
+
await mkdir(cloneDir, { recursive: true });
|
|
46
|
+
logger?.warn(`[senpi-skills-manager] retrying clone | attempt=${attempt} url=${repoUrl} branch=${SKILLS_REPO_BRANCH}`);
|
|
47
|
+
}
|
|
48
|
+
let result;
|
|
49
|
+
try {
|
|
50
|
+
result = await runCommand("git", ["clone", "--depth=1", "--single-branch", "--branch", SKILLS_REPO_BRANCH, repoUrl, cloneDir], { timeoutMs });
|
|
51
|
+
}
|
|
52
|
+
catch (err) {
|
|
53
|
+
const code = err.code;
|
|
54
|
+
if (code === "ENOENT") {
|
|
55
|
+
// git is not installed — retrying won't help
|
|
56
|
+
_bail(new Error(`git not found on PATH: ${formatErr(err)}`));
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
if (code === "ENOSPC") {
|
|
60
|
+
// Disk full — retrying won't help
|
|
61
|
+
_bail(new Error(`disk full while cloning: ${formatErr(err)}`));
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
throw err;
|
|
65
|
+
}
|
|
66
|
+
if (result.code !== 0) {
|
|
67
|
+
const msg = `git clone failed (exit ${result.code}): ${result.stderr || result.stdout || "(no output)"}`;
|
|
68
|
+
if (result.code === 128) {
|
|
69
|
+
// Fatal git error: auth failure, repo not found, invalid URL — retrying won't help
|
|
70
|
+
_bail(new Error(msg));
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
throw new Error(msg);
|
|
74
|
+
}
|
|
75
|
+
}, {
|
|
76
|
+
retries: 3,
|
|
77
|
+
minTimeout: 2_000,
|
|
78
|
+
factor: 2,
|
|
79
|
+
onRetry: (err, attempt) => {
|
|
80
|
+
logger?.warn(`[senpi-skills-manager] clone attempt ${attempt} failed, retrying | err=${formatErr(err)}`);
|
|
81
|
+
},
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
catch (err) {
|
|
85
|
+
logger?.warn(`[senpi-skills-manager] clone failed after all attempts, cleaning up | dir=${cloneDir} err=${formatErr(err)}`);
|
|
86
|
+
await cleanup().catch(() => { });
|
|
87
|
+
throw err;
|
|
88
|
+
}
|
|
89
|
+
logger?.info(`[senpi-skills-manager] skills repo cloned successfully | dir=${cloneDir}`);
|
|
90
|
+
return { cloneDir, cleanup };
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=fetcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetcher.js","sourceRoot":"","sources":["../../src/skills-manager/fetcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { SkillsUpdateCoordinator } from "./coordinator.js";
|
|
2
|
+
export { bootstrapSkillsIfNeeded } from "./bootstrap.js";
|
|
3
|
+
export { resolveSkillsManagerConfig } from "./utils.js";
|
|
4
|
+
export type { SkillsManagerConfig, SkillsManagerSnapshot, SkillsManagerState, SkillSnapshot, SkillState, SkillUpdateKind, SkillsUpdateCoordinatorOptions, SkillsUpdateCoordinatorDeps, SkillVersionInfo, } from "./types.js";
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/skills-manager/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AACxD,YAAY,EACV,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,UAAU,EACV,eAAe,EACf,8BAA8B,EAC9B,2BAA2B,EAC3B,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/skills-manager/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Persistent state store for the skills manager.
|
|
3
|
+
* Mirrors src/runtime/auto-update/state-store.ts in structure and behaviour.
|
|
4
|
+
*/
|
|
5
|
+
import type { LoggerLike, SkillsManagerState } from "./types.js";
|
|
6
|
+
/**
|
|
7
|
+
* Reads and writes {@link SkillsManagerState} to a JSON file so that
|
|
8
|
+
* per-skill version tracking and notification dedup survive gateway restarts.
|
|
9
|
+
*/
|
|
10
|
+
export declare class SkillsManagerStateStore {
|
|
11
|
+
private readonly stateDir;
|
|
12
|
+
/**
|
|
13
|
+
* Skills directory search path. Single-string form is accepted for
|
|
14
|
+
* backward compat with legacy callers; arrays follow the standard
|
|
15
|
+
* "primary first, mirrors after" convention.
|
|
16
|
+
*/
|
|
17
|
+
private readonly skillsDir;
|
|
18
|
+
private readonly logger?;
|
|
19
|
+
private readonly filePath;
|
|
20
|
+
constructor(stateDir: string,
|
|
21
|
+
/**
|
|
22
|
+
* Skills directory search path. Single-string form is accepted for
|
|
23
|
+
* backward compat with legacy callers; arrays follow the standard
|
|
24
|
+
* "primary first, mirrors after" convention.
|
|
25
|
+
*/
|
|
26
|
+
skillsDir: string | readonly string[], logger?: LoggerLike | undefined);
|
|
27
|
+
/** All configured dirs as an array, regardless of how the constructor was called. */
|
|
28
|
+
private get skillsDirs();
|
|
29
|
+
/**
|
|
30
|
+
* Load persisted state, falling back to defaults when the file is absent
|
|
31
|
+
* (first run) or unreadable / corrupt.
|
|
32
|
+
*
|
|
33
|
+
* On first run (ENOENT), discovers any skills already installed in
|
|
34
|
+
* `skillsDir` and pre-populates default state entries for them so the
|
|
35
|
+
* first tick has something to work with.
|
|
36
|
+
*/
|
|
37
|
+
load(): Promise<SkillsManagerState>;
|
|
38
|
+
/** Atomically write state; creates the directory if it does not exist. */
|
|
39
|
+
save(state: SkillsManagerState): Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* Called on first run (no state file yet). Walks every dir in the
|
|
42
|
+
* `skillsDir` search path and creates a default {@link SkillState} entry
|
|
43
|
+
* for each installed skill so the first poll tick starts with a populated
|
|
44
|
+
* state rather than an empty map.
|
|
45
|
+
*
|
|
46
|
+
* Multi-dir semantics: dirs are scanned in order; the first dir containing
|
|
47
|
+
* a given skill name wins. This matches the read priority used elsewhere
|
|
48
|
+
* (`readLocalVersion`, bootstrap pre-check) — the primary dir's view of a
|
|
49
|
+
* skill is canonical, secondary mirrors are fallbacks only.
|
|
50
|
+
*
|
|
51
|
+
* Per-dir ENOENT is silent (dir does not exist yet); any other I/O error
|
|
52
|
+
* is logged as a warning and the scan continues into the next dir, so one
|
|
53
|
+
* misconfigured mirror cannot wipe the whole initial state.
|
|
54
|
+
*/
|
|
55
|
+
private buildInitialState;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=state-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-store.d.ts","sourceRoot":"","sources":["../../src/skills-manager/state-store.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAIjE;;;GAGG;AACH,qBAAa,uBAAuB;IAIhC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAV1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAGf,QAAQ,EAAE,MAAM;IACjC;;;;OAIG;IACc,SAAS,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,EACrC,MAAM,CAAC,EAAE,UAAU,YAAA;IAKtC,qFAAqF;IACrF,OAAO,KAAK,UAAU,GAErB;IAED;;;;;;;OAOG;IACG,IAAI,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAkDzC,0EAA0E;IACpE,IAAI,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpD;;;;;;;;;;;;;;OAcG;YACW,iBAAiB;CAwBhC"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Persistent state store for the skills manager.
|
|
3
|
+
* Mirrors src/runtime/auto-update/state-store.ts in structure and behaviour.
|
|
4
|
+
*/
|
|
5
|
+
import { mkdir, readdir, readFile, writeFile } from "node:fs/promises";
|
|
6
|
+
import { dirname, join } from "node:path";
|
|
7
|
+
import { SKILLS_MANAGER_STATE_FILE } from "./constants.js";
|
|
8
|
+
import { createDefaultSkillsManagerState, createDefaultSkillState, formatErr } from "./utils.js";
|
|
9
|
+
import { readLocalVersion } from "./version-manager.js";
|
|
10
|
+
/**
|
|
11
|
+
* Reads and writes {@link SkillsManagerState} to a JSON file so that
|
|
12
|
+
* per-skill version tracking and notification dedup survive gateway restarts.
|
|
13
|
+
*/
|
|
14
|
+
export class SkillsManagerStateStore {
|
|
15
|
+
stateDir;
|
|
16
|
+
skillsDir;
|
|
17
|
+
logger;
|
|
18
|
+
filePath;
|
|
19
|
+
constructor(stateDir,
|
|
20
|
+
/**
|
|
21
|
+
* Skills directory search path. Single-string form is accepted for
|
|
22
|
+
* backward compat with legacy callers; arrays follow the standard
|
|
23
|
+
* "primary first, mirrors after" convention.
|
|
24
|
+
*/
|
|
25
|
+
skillsDir, logger) {
|
|
26
|
+
this.stateDir = stateDir;
|
|
27
|
+
this.skillsDir = skillsDir;
|
|
28
|
+
this.logger = logger;
|
|
29
|
+
this.filePath = join(stateDir, SKILLS_MANAGER_STATE_FILE);
|
|
30
|
+
}
|
|
31
|
+
/** All configured dirs as an array, regardless of how the constructor was called. */
|
|
32
|
+
get skillsDirs() {
|
|
33
|
+
return typeof this.skillsDir === "string" ? [this.skillsDir] : this.skillsDir;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Load persisted state, falling back to defaults when the file is absent
|
|
37
|
+
* (first run) or unreadable / corrupt.
|
|
38
|
+
*
|
|
39
|
+
* On first run (ENOENT), discovers any skills already installed in
|
|
40
|
+
* `skillsDir` and pre-populates default state entries for them so the
|
|
41
|
+
* first tick has something to work with.
|
|
42
|
+
*/
|
|
43
|
+
async load() {
|
|
44
|
+
// ── 1. Read the file ────────────────────────────────────────────────────
|
|
45
|
+
let raw;
|
|
46
|
+
try {
|
|
47
|
+
raw = await readFile(this.filePath, "utf8");
|
|
48
|
+
}
|
|
49
|
+
catch (err) {
|
|
50
|
+
if (err.code === "ENOENT") {
|
|
51
|
+
this.logger?.warn(`[senpi-skills-manager] no state file found, starting fresh | path=${this.filePath} err=${formatErr(err)}`);
|
|
52
|
+
return this.buildInitialState();
|
|
53
|
+
}
|
|
54
|
+
this.logger?.warn(`[senpi-skills-manager] failed to read state file, using defaults | path=${this.filePath} err=${formatErr(err)}`);
|
|
55
|
+
return createDefaultSkillsManagerState();
|
|
56
|
+
}
|
|
57
|
+
// ── 2. Parse JSON ───────────────────────────────────────────────────────
|
|
58
|
+
let parsed;
|
|
59
|
+
try {
|
|
60
|
+
const value = JSON.parse(raw);
|
|
61
|
+
if (value === null || typeof value !== "object" || Array.isArray(value)) {
|
|
62
|
+
this.logger?.warn(`[senpi-skills-manager] state file contains non-object JSON, using defaults | path=${this.filePath}`);
|
|
63
|
+
return createDefaultSkillsManagerState();
|
|
64
|
+
}
|
|
65
|
+
parsed = value;
|
|
66
|
+
}
|
|
67
|
+
catch (err) {
|
|
68
|
+
this.logger?.warn(`[senpi-skills-manager] state file contains invalid JSON, using defaults | path=${this.filePath} err=${formatErr(err)}`);
|
|
69
|
+
return createDefaultSkillsManagerState();
|
|
70
|
+
}
|
|
71
|
+
return {
|
|
72
|
+
...createDefaultSkillsManagerState(),
|
|
73
|
+
...parsed,
|
|
74
|
+
// Guard against a wrong-typed `skills` field
|
|
75
|
+
skills: parsed.skills !== null &&
|
|
76
|
+
parsed.skills !== undefined &&
|
|
77
|
+
typeof parsed.skills === "object" &&
|
|
78
|
+
!Array.isArray(parsed.skills)
|
|
79
|
+
? parsed.skills
|
|
80
|
+
: {},
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
/** Atomically write state; creates the directory if it does not exist. */
|
|
84
|
+
async save(state) {
|
|
85
|
+
await mkdir(dirname(this.filePath), { recursive: true });
|
|
86
|
+
await writeFile(this.filePath, JSON.stringify(state, null, 2), "utf8");
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Called on first run (no state file yet). Walks every dir in the
|
|
90
|
+
* `skillsDir` search path and creates a default {@link SkillState} entry
|
|
91
|
+
* for each installed skill so the first poll tick starts with a populated
|
|
92
|
+
* state rather than an empty map.
|
|
93
|
+
*
|
|
94
|
+
* Multi-dir semantics: dirs are scanned in order; the first dir containing
|
|
95
|
+
* a given skill name wins. This matches the read priority used elsewhere
|
|
96
|
+
* (`readLocalVersion`, bootstrap pre-check) — the primary dir's view of a
|
|
97
|
+
* skill is canonical, secondary mirrors are fallbacks only.
|
|
98
|
+
*
|
|
99
|
+
* Per-dir ENOENT is silent (dir does not exist yet); any other I/O error
|
|
100
|
+
* is logged as a warning and the scan continues into the next dir, so one
|
|
101
|
+
* misconfigured mirror cannot wipe the whole initial state.
|
|
102
|
+
*/
|
|
103
|
+
async buildInitialState() {
|
|
104
|
+
const skills = {};
|
|
105
|
+
for (const dir of this.skillsDirs) {
|
|
106
|
+
try {
|
|
107
|
+
const entries = await readdir(dir, { withFileTypes: true });
|
|
108
|
+
for (const entry of entries) {
|
|
109
|
+
if (!entry.isDirectory() || entry.name.startsWith("."))
|
|
110
|
+
continue;
|
|
111
|
+
// First-found wins — secondary dirs cannot override the primary's
|
|
112
|
+
// entry once it's been written into the map.
|
|
113
|
+
if (skills[entry.name])
|
|
114
|
+
continue;
|
|
115
|
+
const installedVersion = await readLocalVersion(dir, entry.name, this.logger);
|
|
116
|
+
skills[entry.name] = { ...createDefaultSkillState(entry.name), installedVersion };
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
catch (err) {
|
|
120
|
+
if (err.code !== "ENOENT") {
|
|
121
|
+
this.logger?.warn(`[senpi-skills-manager] failed to read skills directory, continuing with remaining dirs | path=${dir} err=${formatErr(err)}`);
|
|
122
|
+
}
|
|
123
|
+
// Continue scanning the remaining dirs even on error — don't bail.
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return Object.keys(skills).length > 0 ? { skills } : createDefaultSkillsManagerState();
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=state-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-store.js","sourceRoot":"","sources":["../../src/skills-manager/state-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
export type SkillUpdateKind = "none" | "patch" | "minor" | "major" | "unknown";
|
|
2
|
+
/** Minimal logger interface accepted throughout the skills-manager package. */
|
|
3
|
+
export interface LoggerLike {
|
|
4
|
+
info(...args: unknown[]): void;
|
|
5
|
+
warn(...args: unknown[]): void;
|
|
6
|
+
error(...args: unknown[]): void;
|
|
7
|
+
}
|
|
8
|
+
export type SkillsManagerHealth = "healthy" | "degraded" | "unhealthy" | "disabled";
|
|
9
|
+
/**
|
|
10
|
+
* Raw user-supplied config block before defaults are applied.
|
|
11
|
+
* All fields are optional — resolveSkillsManagerConfig() fills in the rest.
|
|
12
|
+
*/
|
|
13
|
+
export interface RawSkillsManagerConfig {
|
|
14
|
+
enabled?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Skills install/search directory.
|
|
17
|
+
*
|
|
18
|
+
* Accepts either a single string (legacy form) or an array of strings
|
|
19
|
+
* (search path, first is the primary write target). `resolveSkillsManagerConfig`
|
|
20
|
+
* normalises both shapes to a non-empty `string[]` and falls back to
|
|
21
|
+
* `DEFAULT_SKILLS_DIRS` when omitted, null, an empty array, or wrong-typed.
|
|
22
|
+
*/
|
|
23
|
+
skillsDir?: string | string[];
|
|
24
|
+
skills?: string[];
|
|
25
|
+
}
|
|
26
|
+
/** Resolved config — all fields have safe defaults filled in. */
|
|
27
|
+
export interface SkillsManagerConfig {
|
|
28
|
+
enabled: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Skills directory search path. Always a non-empty array after
|
|
31
|
+
* resolution; `[0]` is the **primary** (writes go here), the rest are
|
|
32
|
+
* read-only mirrors scanned during version checks and discovery.
|
|
33
|
+
*
|
|
34
|
+
* For backward compat with code that wants a single string (logs, snapshot
|
|
35
|
+
* fields, single-dir helpers), use `skillsDir[0]`.
|
|
36
|
+
*/
|
|
37
|
+
skillsDir: string[];
|
|
38
|
+
/**
|
|
39
|
+
* Skill names this coordinator manages.
|
|
40
|
+
*
|
|
41
|
+
* Resolution rules in `resolveSkillsManagerConfig`:
|
|
42
|
+
* - Field omitted in raw config → defaults to `DEFAULT_MANAGED_SKILLS`
|
|
43
|
+
* (currently `["senpi-trading-runtime"]`).
|
|
44
|
+
* - Explicit non-empty array → uses those names.
|
|
45
|
+
* - Explicit empty array `[]` → discovery mode: scan subdirs under
|
|
46
|
+
* `skillsDir`.
|
|
47
|
+
*/
|
|
48
|
+
skills: string[];
|
|
49
|
+
}
|
|
50
|
+
/** Per-skill state persisted across gateway restarts. */
|
|
51
|
+
export interface SkillState {
|
|
52
|
+
name: string;
|
|
53
|
+
installedVersion: string | null;
|
|
54
|
+
lastCheckedAt: string | null;
|
|
55
|
+
lastAppliedVersion: string | null;
|
|
56
|
+
/** Dedup key: if remote major version matches this, skip re-notification. */
|
|
57
|
+
lastNotifiedMajorVersion: string | null;
|
|
58
|
+
consecutiveFailures: number;
|
|
59
|
+
lastFailureAt: string | null;
|
|
60
|
+
lastFailureReason: string | null;
|
|
61
|
+
}
|
|
62
|
+
/** Top-level persisted state for the skills manager. */
|
|
63
|
+
export interface SkillsManagerState {
|
|
64
|
+
skills: Record<string, SkillState>;
|
|
65
|
+
}
|
|
66
|
+
/** Read-only snapshot for gateway RPCs and health views. */
|
|
67
|
+
export interface SkillsManagerSnapshot {
|
|
68
|
+
enabled: boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Skills directory search path. Mirrors `SkillsManagerConfig.skillsDir` — a
|
|
71
|
+
* non-empty array where `[0]` is the primary write target. Callers
|
|
72
|
+
* rendering this for humans should join with commas (e.g. `dirs.join(", ")`).
|
|
73
|
+
*/
|
|
74
|
+
skillsDir: string[];
|
|
75
|
+
health: SkillsManagerHealth;
|
|
76
|
+
lastAction: string;
|
|
77
|
+
lastError: string | null;
|
|
78
|
+
skills: SkillSnapshot[];
|
|
79
|
+
}
|
|
80
|
+
/** Per-skill entry in a snapshot. */
|
|
81
|
+
export interface SkillSnapshot {
|
|
82
|
+
name: string;
|
|
83
|
+
installedVersion: string | null;
|
|
84
|
+
latestVersion: string | null;
|
|
85
|
+
lastCheckedAt: string | null;
|
|
86
|
+
consecutiveFailures: number;
|
|
87
|
+
lastFailureReason: string | null;
|
|
88
|
+
}
|
|
89
|
+
/** Result of a version check for a single skill. */
|
|
90
|
+
export interface SkillVersionInfo {
|
|
91
|
+
localVersion: string | null;
|
|
92
|
+
remoteVersion: string | null;
|
|
93
|
+
updateKind: SkillUpdateKind;
|
|
94
|
+
/**
|
|
95
|
+
* Short description parsed from the **remote** SKILL.md frontmatter (the
|
|
96
|
+
* version the user is being notified about), surfaced back to the
|
|
97
|
+
* coordinator so notification text can include an "About:" line that
|
|
98
|
+
* reflects the upcoming version rather than the potentially-stale local
|
|
99
|
+
* copy.
|
|
100
|
+
*
|
|
101
|
+
* Null when:
|
|
102
|
+
* - The remote fetch returned 404 (skill not in the remote repo).
|
|
103
|
+
* - The remote SKILL.md is present but its frontmatter has no
|
|
104
|
+
* `description` field.
|
|
105
|
+
*
|
|
106
|
+
* Optional in the interface for backward compatibility with injected
|
|
107
|
+
* test deps that only return version data; the real `checkSkillVersion`
|
|
108
|
+
* always populates it (possibly null) on every return path.
|
|
109
|
+
*/
|
|
110
|
+
remoteDescription?: string | null;
|
|
111
|
+
}
|
|
112
|
+
/** Injectable overrides used in unit tests to avoid network and git calls. */
|
|
113
|
+
export interface SkillsUpdateCoordinatorDeps {
|
|
114
|
+
/**
|
|
115
|
+
* Override version check — called as (skillsDirs, skillName, rawBaseUrl, logger).
|
|
116
|
+
* Defaults to the real checkSkillVersion with fetchImpl omitted (uses global fetch).
|
|
117
|
+
*
|
|
118
|
+
* `skillsDirs` is the search-path array from the resolved config; the real
|
|
119
|
+
* `checkSkillVersion` tries each in order when reading SKILL.md.
|
|
120
|
+
*/
|
|
121
|
+
checkSkillVersion?: (skillsDirs: readonly string[], skillName: string, rawBaseUrl: string, logger?: LoggerLike) => Promise<SkillVersionInfo>;
|
|
122
|
+
/**
|
|
123
|
+
* Override clone + install — receives the list of skill names that need
|
|
124
|
+
* updating and the config. Defaults to real cloneSkillsRepo + installSkill.
|
|
125
|
+
*/
|
|
126
|
+
cloneAndInstall?: (skills: string[], config: SkillsManagerConfig) => Promise<Map<string, string | null>>;
|
|
127
|
+
/** Override bootstrap — avoids real git clone in unit tests. */
|
|
128
|
+
bootstrapSkillsIfNeeded?: (config: SkillsManagerConfig, logger: LoggerLike) => Promise<void>;
|
|
129
|
+
}
|
|
130
|
+
/** Constructor options for {@link SkillsUpdateCoordinator}. */
|
|
131
|
+
export interface SkillsUpdateCoordinatorOptions {
|
|
132
|
+
config: SkillsManagerConfig;
|
|
133
|
+
stateDir: string;
|
|
134
|
+
logger: LoggerLike;
|
|
135
|
+
notify: (message: string) => Promise<void>;
|
|
136
|
+
deps?: SkillsUpdateCoordinatorDeps;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Per-skill outcome from a clone+install batch.
|
|
140
|
+
*
|
|
141
|
+
* Populated by {@link SkillsUpdateCoordinator.cloneAndInstallMany}: one entry
|
|
142
|
+
* per skill name passed in. `error` is set when that specific skill's install
|
|
143
|
+
* failed (clone succeeded, install failed); absent on success. `version` is
|
|
144
|
+
* the installed version when known, `null` otherwise (e.g. missing on the
|
|
145
|
+
* failure path or when the injected test dep didn't supply one).
|
|
146
|
+
*/
|
|
147
|
+
export type InstallOutcome = {
|
|
148
|
+
version: string | null;
|
|
149
|
+
error?: string;
|
|
150
|
+
};
|
|
151
|
+
/**
|
|
152
|
+
* Discriminated-union wrapper returned by
|
|
153
|
+
* {@link SkillsUpdateCoordinator.processInstallOutcome}. Collapses the raw
|
|
154
|
+
* {@link InstallOutcome} shape (where `error` is optional) into an explicit
|
|
155
|
+
* success/failure tag so callers can branch without re-checking `error` —
|
|
156
|
+
* mirrors the Result/Either pattern.
|
|
157
|
+
*/
|
|
158
|
+
export type ProcessedInstallOutcome = {
|
|
159
|
+
success: true;
|
|
160
|
+
version: string | null;
|
|
161
|
+
} | {
|
|
162
|
+
success: false;
|
|
163
|
+
error: string;
|
|
164
|
+
};
|
|
165
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/skills-manager/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/skills-manager/types.ts"],"names":[],"mappings":""}
|