@rynx-ai/daemon 0.1.11-beta.12 → 0.1.11-beta.13

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,6 +1,6 @@
1
1
  {
2
2
  "name": "@rynx-ai/plugin-channel-lark",
3
- "version": "0.1.11-beta.12",
3
+ "version": "0.1.11-beta.13",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/rynx-ai/rynx.git",
@@ -9,7 +9,7 @@ import { cp, mkdir, mkdtemp, readdir, readFile, rename, rm, stat, writeFile } fr
9
9
  import { tmpdir } from "node:os";
10
10
  import path from "node:path";
11
11
  import extractZipArchive from "extract-zip";
12
- import { extractSkillFrontmatter, installIntoCatalog, collectLocalSkillBundlesInWorker, collectSkillBundlesFromDirectory, scanLocalSkillCandidatesInWorker, rynxSkillsDir, rynxSkillArtifactDir, rynxSkillArtifactsDir, scanSkillsDir, SAFE_SKILL_NAME, readSkillMeta, writeSkillInstallInfo, } from "@rynx-ai/core";
12
+ import { extractSkillFrontmatter, assertSkillPathComponent, installIntoCatalog, collectLocalSkillBundlesInWorker, collectSkillBundlesFromDirectory, scanLocalSkillCandidatesInWorker, rynxSkillsDir, rynxSkillArtifactDir, rynxSkillArtifactsDir, scanSkillsDir, readSkillMeta, writeSkillInstallInfo, } from "@rynx-ai/core";
13
13
  /** A single file's contents are capped to keep responses small. */
14
14
  const MAX_SKILL_FILE_BYTES = 256 * 1024;
15
15
  const MAX_ARCHIVE_ENTRIES = 1_000;
@@ -112,8 +112,7 @@ async function registerCollectedBundles(collected) {
112
112
  }
113
113
  /** Detail for one catalog skill: its metadata + the file tree under its dir. */
114
114
  export async function getCatalogSkill(name) {
115
- if (!SAFE_SKILL_NAME.test(name))
116
- throw new Error(`invalid skill name: ${name}`);
115
+ assertSkillPathComponent(name);
117
116
  const dir = path.join(rynxSkillsDir(), name);
118
117
  const meta = await readSkillMeta(dir);
119
118
  if (!meta)
@@ -150,8 +149,7 @@ async function walkSkillFiles(root, dir) {
150
149
  /** Read one text file inside a catalog skill. Path-confined to the skill dir,
151
150
  * size-capped, and binary files are rejected. */
152
151
  export async function readCatalogSkillFile(name, relPath) {
153
- if (!SAFE_SKILL_NAME.test(name))
154
- throw new Error(`invalid skill name: ${name}`);
152
+ assertSkillPathComponent(name);
155
153
  const dir = path.resolve(path.join(rynxSkillsDir(), name));
156
154
  const target = path.resolve(dir, relPath);
157
155
  if (target !== dir && !target.startsWith(dir + path.sep)) {
@@ -384,8 +382,7 @@ async function pathExists(value) {
384
382
  }
385
383
  /** Remove a catalog skill by name. Returns false if it wasn't present. */
386
384
  export async function removeCatalogSkill(name) {
387
- if (!SAFE_SKILL_NAME.test(name))
388
- throw new Error(`invalid skill name: ${name}`);
385
+ assertSkillPathComponent(name);
389
386
  const dir = path.join(rynxSkillsDir(), name);
390
387
  try {
391
388
  await stat(dir);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rynx-ai/daemon",
3
- "version": "0.1.11-beta.12",
3
+ "version": "0.1.11-beta.13",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/rynx-ai/rynx.git",
@@ -46,17 +46,17 @@
46
46
  "pm2": "^6.0.0",
47
47
  "tar": "^7.5.19",
48
48
  "ws": "^8.21.0",
49
- "@rynx-ai/core": "0.1.11-beta.12",
50
- "@rynx-ai/plugin-runner": "0.1.11-beta.12",
51
- "@rynx-ai/plugin-sdk": "0.1.11-beta.12",
52
- "@rynx-ai/protocol": "0.1.11-beta.12",
53
- "@rynx-ai/remote-runtime-client": "0.1.11-beta.12",
54
- "@rynx-ai/emulator": "0.1.11-beta.12",
55
- "@rynx-ai/server": "0.1.11-beta.12"
49
+ "@rynx-ai/core": "0.1.11-beta.13",
50
+ "@rynx-ai/emulator": "0.1.11-beta.13",
51
+ "@rynx-ai/plugin-runner": "0.1.11-beta.13",
52
+ "@rynx-ai/plugin-sdk": "0.1.11-beta.13",
53
+ "@rynx-ai/protocol": "0.1.11-beta.13",
54
+ "@rynx-ai/remote-runtime-client": "0.1.11-beta.13",
55
+ "@rynx-ai/server": "0.1.11-beta.13"
56
56
  },
57
57
  "devDependencies": {
58
58
  "@types/ws": "^8.18.1",
59
- "@rynx-ai/plugin-channel-lark": "0.1.11-beta.12"
59
+ "@rynx-ai/plugin-channel-lark": "0.1.11-beta.13"
60
60
  },
61
61
  "scripts": {
62
62
  "build": "rm -rf dist bundled-plugins && tsc -p tsconfig.json && chmod +x dist/index-daemon.js && node ../../scripts/stage-bundled-plugins.mjs",