@senpi/runtime 1.1.0-dev.runtime-phase-2.20260512102629 → 1.1.0-dev.runtime-phase-2.20260513122539

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.
Files changed (49) hide show
  1. package/dist/cli/senpi-commands.d.ts.map +1 -1
  2. package/dist/cli/senpi-commands.js +93 -0
  3. package/dist/cli/senpi-commands.js.map +1 -1
  4. package/dist/index.d.ts +7 -0
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +61 -0
  7. package/dist/index.js.map +1 -1
  8. package/dist/skills-manager/bootstrap.d.ts +26 -0
  9. package/dist/skills-manager/bootstrap.d.ts.map +1 -0
  10. package/dist/skills-manager/bootstrap.js +68 -0
  11. package/dist/skills-manager/bootstrap.js.map +1 -0
  12. package/dist/skills-manager/constants.d.ts +12 -0
  13. package/dist/skills-manager/constants.d.ts.map +1 -0
  14. package/dist/skills-manager/constants.js +15 -0
  15. package/dist/skills-manager/constants.js.map +1 -0
  16. package/dist/skills-manager/coordinator.d.ts +209 -0
  17. package/dist/skills-manager/coordinator.d.ts.map +1 -0
  18. package/dist/skills-manager/coordinator.js +757 -0
  19. package/dist/skills-manager/coordinator.js.map +1 -0
  20. package/dist/skills-manager/fetcher.d.ts +28 -0
  21. package/dist/skills-manager/fetcher.d.ts.map +1 -0
  22. package/dist/skills-manager/fetcher.js +92 -0
  23. package/dist/skills-manager/fetcher.js.map +1 -0
  24. package/dist/skills-manager/index.d.ts +5 -0
  25. package/dist/skills-manager/index.d.ts.map +1 -0
  26. package/dist/skills-manager/index.js +4 -0
  27. package/dist/skills-manager/index.js.map +1 -0
  28. package/dist/skills-manager/state-store.d.ts +34 -0
  29. package/dist/skills-manager/state-store.d.ts.map +1 -0
  30. package/dist/skills-manager/state-store.js +103 -0
  31. package/dist/skills-manager/state-store.js.map +1 -0
  32. package/dist/skills-manager/types.d.ts +127 -0
  33. package/dist/skills-manager/types.d.ts.map +1 -0
  34. package/dist/skills-manager/types.js +2 -0
  35. package/dist/skills-manager/types.js.map +1 -0
  36. package/dist/skills-manager/utils.d.ts +46 -0
  37. package/dist/skills-manager/utils.d.ts.map +1 -0
  38. package/dist/skills-manager/utils.js +87 -0
  39. package/dist/skills-manager/utils.js.map +1 -0
  40. package/dist/skills-manager/version-manager.d.ts +61 -0
  41. package/dist/skills-manager/version-manager.d.ts.map +1 -0
  42. package/dist/skills-manager/version-manager.js +142 -0
  43. package/dist/skills-manager/version-manager.js.map +1 -0
  44. package/dist/skills-manager/writer.d.ts +28 -0
  45. package/dist/skills-manager/writer.d.ts.map +1 -0
  46. package/dist/skills-manager/writer.js +101 -0
  47. package/dist/skills-manager/writer.js.map +1 -0
  48. package/openclaw.plugin.json +29 -0
  49. 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,4 @@
1
+ export { SkillsUpdateCoordinator } from "./coordinator.js";
2
+ export { bootstrapSkillsIfNeeded } from "./bootstrap.js";
3
+ export { resolveSkillsManagerConfig } from "./utils.js";
4
+ //# sourceMappingURL=index.js.map
@@ -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,34 @@
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
+ private readonly skillsDir;
13
+ private readonly logger?;
14
+ private readonly filePath;
15
+ constructor(stateDir: string, skillsDir: string, logger?: LoggerLike | undefined);
16
+ /**
17
+ * Load persisted state, falling back to defaults when the file is absent
18
+ * (first run) or unreadable / corrupt.
19
+ *
20
+ * On first run (ENOENT), discovers any skills already installed in
21
+ * `skillsDir` and pre-populates default state entries for them so the
22
+ * first tick has something to work with.
23
+ */
24
+ load(): Promise<SkillsManagerState>;
25
+ /** Atomically write state; creates the directory if it does not exist. */
26
+ save(state: SkillsManagerState): Promise<void>;
27
+ /**
28
+ * Called on first run (no state file yet). Reads `skillsDir` and creates
29
+ * a default {@link SkillState} entry for every installed skill so the first
30
+ * poll tick starts with a populated state rather than an empty map.
31
+ */
32
+ private buildInitialState;
33
+ }
34
+ //# 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,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAL1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAGf,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,UAAU,YAAA;IAKtC;;;;;;;OAOG;IACG,IAAI,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAkDzC,0EAA0E;IACpE,IAAI,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpD;;;;OAIG;YACW,iBAAiB;CAoBhC"}
@@ -0,0 +1,103 @@
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, skillsDir, logger) {
20
+ this.stateDir = stateDir;
21
+ this.skillsDir = skillsDir;
22
+ this.logger = logger;
23
+ this.filePath = join(stateDir, SKILLS_MANAGER_STATE_FILE);
24
+ }
25
+ /**
26
+ * Load persisted state, falling back to defaults when the file is absent
27
+ * (first run) or unreadable / corrupt.
28
+ *
29
+ * On first run (ENOENT), discovers any skills already installed in
30
+ * `skillsDir` and pre-populates default state entries for them so the
31
+ * first tick has something to work with.
32
+ */
33
+ async load() {
34
+ // ── 1. Read the file ────────────────────────────────────────────────────
35
+ let raw;
36
+ try {
37
+ raw = await readFile(this.filePath, "utf8");
38
+ }
39
+ catch (err) {
40
+ if (err.code === "ENOENT") {
41
+ this.logger?.warn(`[senpi-skills-manager] no state file found, starting fresh | path=${this.filePath} err=${formatErr(err)}`);
42
+ return this.buildInitialState();
43
+ }
44
+ this.logger?.warn(`[senpi-skills-manager] failed to read state file, using defaults | path=${this.filePath} err=${formatErr(err)}`);
45
+ return createDefaultSkillsManagerState();
46
+ }
47
+ // ── 2. Parse JSON ───────────────────────────────────────────────────────
48
+ let parsed;
49
+ try {
50
+ const value = JSON.parse(raw);
51
+ if (value === null || typeof value !== "object" || Array.isArray(value)) {
52
+ this.logger?.warn(`[senpi-skills-manager] state file contains non-object JSON, using defaults | path=${this.filePath}`);
53
+ return createDefaultSkillsManagerState();
54
+ }
55
+ parsed = value;
56
+ }
57
+ catch (err) {
58
+ this.logger?.warn(`[senpi-skills-manager] state file contains invalid JSON, using defaults | path=${this.filePath} err=${formatErr(err)}`);
59
+ return createDefaultSkillsManagerState();
60
+ }
61
+ return {
62
+ ...createDefaultSkillsManagerState(),
63
+ ...parsed,
64
+ // Guard against a wrong-typed `skills` field
65
+ skills: parsed.skills !== null &&
66
+ parsed.skills !== undefined &&
67
+ typeof parsed.skills === "object" &&
68
+ !Array.isArray(parsed.skills)
69
+ ? parsed.skills
70
+ : {},
71
+ };
72
+ }
73
+ /** Atomically write state; creates the directory if it does not exist. */
74
+ async save(state) {
75
+ await mkdir(dirname(this.filePath), { recursive: true });
76
+ await writeFile(this.filePath, JSON.stringify(state, null, 2), "utf8");
77
+ }
78
+ /**
79
+ * Called on first run (no state file yet). Reads `skillsDir` and creates
80
+ * a default {@link SkillState} entry for every installed skill so the first
81
+ * poll tick starts with a populated state rather than an empty map.
82
+ */
83
+ async buildInitialState() {
84
+ try {
85
+ const entries = await readdir(this.skillsDir, { withFileTypes: true });
86
+ const skills = {};
87
+ for (const entry of entries) {
88
+ if (entry.isDirectory() && !entry.name.startsWith(".")) {
89
+ const installedVersion = await readLocalVersion(this.skillsDir, entry.name, this.logger);
90
+ skills[entry.name] = { ...createDefaultSkillState(entry.name), installedVersion };
91
+ }
92
+ }
93
+ return { skills };
94
+ }
95
+ catch (err) {
96
+ if (err.code !== "ENOENT") {
97
+ this.logger?.warn(`[senpi-skills-manager] failed to read skills directory, starting with empty skill state | path=${this.skillsDir} err=${formatErr(err)}`);
98
+ }
99
+ return createDefaultSkillsManagerState();
100
+ }
101
+ }
102
+ }
103
+ //# 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":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAE3D,OAAO,EAAE,+BAA+B,EAAE,uBAAuB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACjG,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD;;;GAGG;AACH,MAAM,OAAO,uBAAuB;IAIf;IACA;IACA;IALF,QAAQ,CAAS;IAElC,YACmB,QAAgB,EAChB,SAAiB,EACjB,MAAmB;QAFnB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,cAAS,GAAT,SAAS,CAAQ;QACjB,WAAM,GAAN,MAAM,CAAa;QAEpC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,yBAAyB,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,IAAI;QACR,2EAA2E;QAC3E,IAAI,GAAW,CAAC;QAChB,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACrD,IAAI,CAAC,MAAM,EAAE,IAAI,CACf,qEAAqE,IAAI,CAAC,QAAQ,QAAQ,SAAS,CAAC,GAAG,CAAC,EAAE,CAC3G,CAAC;gBACF,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAClC,CAAC;YACD,IAAI,CAAC,MAAM,EAAE,IAAI,CACf,2EAA2E,IAAI,CAAC,QAAQ,QAAQ,SAAS,CAAC,GAAG,CAAC,EAAE,CACjH,CAAC;YACF,OAAO,+BAA+B,EAAE,CAAC;QAC3C,CAAC;QAED,2EAA2E;QAC3E,IAAI,MAAmC,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxE,IAAI,CAAC,MAAM,EAAE,IAAI,CACf,qFAAqF,IAAI,CAAC,QAAQ,EAAE,CACrG,CAAC;gBACF,OAAO,+BAA+B,EAAE,CAAC;YAC3C,CAAC;YACD,MAAM,GAAG,KAAoC,CAAC;QAChD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,EAAE,IAAI,CACf,kFAAkF,IAAI,CAAC,QAAQ,QAAQ,SAAS,CAAC,GAAG,CAAC,EAAE,CACxH,CAAC;YACF,OAAO,+BAA+B,EAAE,CAAC;QAC3C,CAAC;QAED,OAAO;YACL,GAAG,+BAA+B,EAAE;YACpC,GAAG,MAAM;YACT,6CAA6C;YAC7C,MAAM,EACJ,MAAM,CAAC,MAAM,KAAK,IAAI;gBACtB,MAAM,CAAC,MAAM,KAAK,SAAS;gBAC3B,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;gBACjC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;gBAC3B,CAAC,CAAC,MAAM,CAAC,MAAM;gBACf,CAAC,CAAC,EAAE;SACT,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,KAAK,CAAC,IAAI,CAAC,KAAyB;QAClC,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACzE,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,iBAAiB;QAC7B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YACvE,MAAM,MAAM,GAAiC,EAAE,CAAC;YAChD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACvD,MAAM,gBAAgB,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;oBACzF,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,uBAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,gBAAgB,EAAE,CAAC;gBACpF,CAAC;YACH,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACrD,IAAI,CAAC,MAAM,EAAE,IAAI,CACf,kGAAkG,IAAI,CAAC,SAAS,QAAQ,SAAS,CAAC,GAAG,CAAC,EAAE,CACzI,CAAC;YACJ,CAAC;YACD,OAAO,+BAA+B,EAAE,CAAC;QAC3C,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,127 @@
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
+ skillsDir?: string;
16
+ pollIntervalMinutes?: number;
17
+ skills?: string[];
18
+ }
19
+ /** Resolved config — all fields have safe defaults filled in. */
20
+ export interface SkillsManagerConfig {
21
+ enabled: boolean;
22
+ skillsDir: string;
23
+ pollIntervalMinutes: number;
24
+ /**
25
+ * Skill names this coordinator manages.
26
+ *
27
+ * Resolution rules in `resolveSkillsManagerConfig`:
28
+ * - Field omitted in raw config → defaults to `DEFAULT_MANAGED_SKILLS`
29
+ * (currently `["senpi-trading-runtime"]`).
30
+ * - Explicit non-empty array → uses those names.
31
+ * - Explicit empty array `[]` → discovery mode: scan subdirs under
32
+ * `skillsDir`.
33
+ */
34
+ skills: string[];
35
+ }
36
+ /** Per-skill state persisted across gateway restarts. */
37
+ export interface SkillState {
38
+ name: string;
39
+ installedVersion: string | null;
40
+ lastCheckedAt: string | null;
41
+ lastAppliedVersion: string | null;
42
+ /** Dedup key: if remote major version matches this, skip re-notification. */
43
+ lastNotifiedMajorVersion: string | null;
44
+ consecutiveFailures: number;
45
+ lastFailureAt: string | null;
46
+ lastFailureReason: string | null;
47
+ }
48
+ /** Top-level persisted state for the skills manager. */
49
+ export interface SkillsManagerState {
50
+ skills: Record<string, SkillState>;
51
+ }
52
+ /** Read-only snapshot for gateway RPCs and health views. */
53
+ export interface SkillsManagerSnapshot {
54
+ enabled: boolean;
55
+ skillsDir: string;
56
+ health: SkillsManagerHealth;
57
+ lastAction: string;
58
+ lastError: string | null;
59
+ skills: SkillSnapshot[];
60
+ nextCheckAt: string | null;
61
+ }
62
+ /** Per-skill entry in a snapshot. */
63
+ export interface SkillSnapshot {
64
+ name: string;
65
+ installedVersion: string | null;
66
+ latestVersion: string | null;
67
+ lastCheckedAt: string | null;
68
+ consecutiveFailures: number;
69
+ lastFailureReason: string | null;
70
+ }
71
+ /** Result of a version check for a single skill. */
72
+ export interface SkillVersionInfo {
73
+ localVersion: string | null;
74
+ remoteVersion: string | null;
75
+ updateKind: SkillUpdateKind;
76
+ }
77
+ /** Injectable overrides used in unit tests to avoid network and git calls. */
78
+ export interface SkillsUpdateCoordinatorDeps {
79
+ /**
80
+ * Override version check — called as (skillsDir, skillName, rawBaseUrl, logger).
81
+ * Defaults to the real checkSkillVersion with fetchImpl omitted (uses global fetch).
82
+ */
83
+ checkSkillVersion?: (skillsDir: string, skillName: string, rawBaseUrl: string, logger?: LoggerLike) => Promise<SkillVersionInfo>;
84
+ /**
85
+ * Override clone + install — receives the list of skill names that need
86
+ * updating and the config. Defaults to real cloneSkillsRepo + installSkill.
87
+ */
88
+ cloneAndInstall?: (skills: string[], config: SkillsManagerConfig) => Promise<Map<string, string | null>>;
89
+ /** Override bootstrap — avoids real git clone in unit tests. */
90
+ bootstrapSkillsIfNeeded?: (config: SkillsManagerConfig, logger: LoggerLike) => Promise<void>;
91
+ }
92
+ /** Constructor options for {@link SkillsUpdateCoordinator}. */
93
+ export interface SkillsUpdateCoordinatorOptions {
94
+ config: SkillsManagerConfig;
95
+ stateDir: string;
96
+ logger: LoggerLike;
97
+ notify: (message: string) => Promise<void>;
98
+ deps?: SkillsUpdateCoordinatorDeps;
99
+ }
100
+ /**
101
+ * Per-skill outcome from a clone+install batch.
102
+ *
103
+ * Populated by {@link SkillsUpdateCoordinator.cloneAndInstallMany}: one entry
104
+ * per skill name passed in. `error` is set when that specific skill's install
105
+ * failed (clone succeeded, install failed); absent on success. `version` is
106
+ * the installed version when known, `null` otherwise (e.g. missing on the
107
+ * failure path or when the injected test dep didn't supply one).
108
+ */
109
+ export type InstallOutcome = {
110
+ version: string | null;
111
+ error?: string;
112
+ };
113
+ /**
114
+ * Discriminated-union wrapper returned by
115
+ * {@link SkillsUpdateCoordinator.processInstallOutcome}. Collapses the raw
116
+ * {@link InstallOutcome} shape (where `error` is optional) into an explicit
117
+ * success/failure tag so callers can branch without re-checking `error` —
118
+ * mirrors the Result/Either pattern.
119
+ */
120
+ export type ProcessedInstallOutcome = {
121
+ success: true;
122
+ version: string | null;
123
+ } | {
124
+ success: false;
125
+ error: string;
126
+ };
127
+ //# 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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/skills-manager/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,46 @@
1
+ import type { RawSkillsManagerConfig, SkillsManagerConfig, SkillsManagerState, SkillState } from "./types.js";
2
+ /**
3
+ * Canonical default list of managed skill names when the user omits the
4
+ * `skills` field. Kept in sync with the JSON Schema default in
5
+ * `openclaw.plugin.json` (configSchema.properties.skillsManager.default.skills).
6
+ *
7
+ * Semantics for the resolved `skills` array:
8
+ * - Field omitted entirely → defaults to this list. New installs and partial
9
+ * configs like `{ enabled: true }` get the canonical skill bootstrapped
10
+ * automatically without requiring users to repeat the array in JSON.
11
+ * - Field present and non-empty → use the provided names (filtered for
12
+ * non-empty strings).
13
+ * - Field present and explicitly empty (`"skills": []`) → discovery mode:
14
+ * scan subdirs under `skillsDir`.
15
+ */
16
+ export declare const DEFAULT_MANAGED_SKILLS: readonly string[];
17
+ /**
18
+ * Parses and normalises the raw `skillsManager` config block from the plugin
19
+ * config into a fully-resolved {@link SkillsManagerConfig}.
20
+ *
21
+ * Any missing or null fields fall back to safe defaults so callers never have
22
+ * to guard against undefined values.
23
+ *
24
+ * @param value - The optional raw config block from the plugin config.
25
+ * @returns A fully-populated {@link SkillsManagerConfig} with all defaults applied.
26
+ */
27
+ export declare function resolveSkillsManagerConfig(value?: RawSkillsManagerConfig | null): SkillsManagerConfig;
28
+ /**
29
+ * Creates a blank {@link SkillsManagerState} with no tracked skills.
30
+ * Used as the merge base when loading persisted state, and as the fallback
31
+ * when state is corrupt.
32
+ *
33
+ * @returns An empty {@link SkillsManagerState}.
34
+ */
35
+ export declare function createDefaultSkillsManagerState(): SkillsManagerState;
36
+ /**
37
+ * Creates a zeroed-out {@link SkillState} for a skill that has not yet been
38
+ * tracked. All version fields are null and the failure counter starts at zero.
39
+ *
40
+ * @param name - The skill name (directory name under `skillsDir`).
41
+ * @returns A fresh {@link SkillState} for the given skill.
42
+ */
43
+ export declare function createDefaultSkillState(name: string): SkillState;
44
+ /** Formats an unknown thrown value as a short string for log messages. */
45
+ export declare function formatErr(e: unknown): string;
46
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/skills-manager/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,UAAU,EACX,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAA8B,CAAC;AAEnF;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,CAAC,EAAE,sBAAsB,GAAG,IAAI,GACpC,mBAAmB,CAiBrB;AAED;;;;;;GAMG;AACH,wBAAgB,+BAA+B,IAAI,kBAAkB,CAEpE;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAWhE;AAED,0EAA0E;AAC1E,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAE5C"}
@@ -0,0 +1,87 @@
1
+ import { DEFAULT_SKILLS_DIR } from "./constants.js";
2
+ /**
3
+ * Canonical default list of managed skill names when the user omits the
4
+ * `skills` field. Kept in sync with the JSON Schema default in
5
+ * `openclaw.plugin.json` (configSchema.properties.skillsManager.default.skills).
6
+ *
7
+ * Semantics for the resolved `skills` array:
8
+ * - Field omitted entirely → defaults to this list. New installs and partial
9
+ * configs like `{ enabled: true }` get the canonical skill bootstrapped
10
+ * automatically without requiring users to repeat the array in JSON.
11
+ * - Field present and non-empty → use the provided names (filtered for
12
+ * non-empty strings).
13
+ * - Field present and explicitly empty (`"skills": []`) → discovery mode:
14
+ * scan subdirs under `skillsDir`.
15
+ */
16
+ export const DEFAULT_MANAGED_SKILLS = ["senpi-trading-runtime"];
17
+ /**
18
+ * Parses and normalises the raw `skillsManager` config block from the plugin
19
+ * config into a fully-resolved {@link SkillsManagerConfig}.
20
+ *
21
+ * Any missing or null fields fall back to safe defaults so callers never have
22
+ * to guard against undefined values.
23
+ *
24
+ * @param value - The optional raw config block from the plugin config.
25
+ * @returns A fully-populated {@link SkillsManagerConfig} with all defaults applied.
26
+ */
27
+ export function resolveSkillsManagerConfig(value) {
28
+ const raw = value ?? {};
29
+ return {
30
+ enabled: toBool(raw.enabled, true),
31
+ skillsDir: typeof raw.skillsDir === "string" && raw.skillsDir.length > 0
32
+ ? raw.skillsDir
33
+ : DEFAULT_SKILLS_DIR,
34
+ pollIntervalMinutes: clamp(toFinite(raw.pollIntervalMinutes, 60), 1, 24 * 60),
35
+ // Field-omitted vs explicit-empty distinction matters here:
36
+ // - undefined / null / non-array → use canonical default (matches the
37
+ // JSON Schema default in openclaw.plugin.json — keeps wizard-written
38
+ // partial configs working)
39
+ // - explicit [] → preserved as discovery mode (caller asked for it)
40
+ skills: Array.isArray(raw.skills)
41
+ ? raw.skills.filter((s) => typeof s === "string" && s.length > 0)
42
+ : [...DEFAULT_MANAGED_SKILLS],
43
+ };
44
+ }
45
+ /**
46
+ * Creates a blank {@link SkillsManagerState} with no tracked skills.
47
+ * Used as the merge base when loading persisted state, and as the fallback
48
+ * when state is corrupt.
49
+ *
50
+ * @returns An empty {@link SkillsManagerState}.
51
+ */
52
+ export function createDefaultSkillsManagerState() {
53
+ return { skills: {} };
54
+ }
55
+ /**
56
+ * Creates a zeroed-out {@link SkillState} for a skill that has not yet been
57
+ * tracked. All version fields are null and the failure counter starts at zero.
58
+ *
59
+ * @param name - The skill name (directory name under `skillsDir`).
60
+ * @returns A fresh {@link SkillState} for the given skill.
61
+ */
62
+ export function createDefaultSkillState(name) {
63
+ return {
64
+ name,
65
+ installedVersion: null,
66
+ lastCheckedAt: null,
67
+ lastAppliedVersion: null,
68
+ lastNotifiedMajorVersion: null,
69
+ consecutiveFailures: 0,
70
+ lastFailureAt: null,
71
+ lastFailureReason: null,
72
+ };
73
+ }
74
+ /** Formats an unknown thrown value as a short string for log messages. */
75
+ export function formatErr(e) {
76
+ return e instanceof Error ? e.message : String(e);
77
+ }
78
+ function toBool(value, fallback) {
79
+ return typeof value === "boolean" ? value : fallback;
80
+ }
81
+ function toFinite(value, fallback) {
82
+ return typeof value === "number" && Number.isFinite(value) ? value : fallback;
83
+ }
84
+ function clamp(v, min, max) {
85
+ return Math.min(max, Math.max(min, v));
86
+ }
87
+ //# sourceMappingURL=utils.js.map