@tryglen/cli 0.33.0 → 0.34.0

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/bin.js CHANGED
@@ -252,6 +252,7 @@ cli
252
252
  .option("--name <name>", "skill create: the skill's name")
253
253
  .option("--description <description>", "skill create: one-line description")
254
254
  .option("--file <path>", "skill create: path to the SKILL.md body")
255
+ .option("--dir <path>", "skill create: path to a skill directory (SKILL.md + scripts/ references/ assets/)")
255
256
  .option("--deps <path>", "skill create: path to a JSON array of dependencies")
256
257
  .option("--update", "skill create: overwrite your own same-named skill")
257
258
  .option("--org", "skill create/share: share with your whole org (create default: private to you)")
@@ -280,10 +281,12 @@ cli
280
281
  if (action === "create") {
281
282
  const { skillCreate } = await import("./commands/skill.js");
282
283
  const depStr = str(options.deps);
284
+ const dirStr = str(options.dir);
283
285
  const r = await skillCreate({
284
286
  name: str(options.name),
285
287
  description: str(options.description),
286
288
  file: str(options.file),
289
+ ...(dirStr ? { dir: dirStr } : {}),
287
290
  ...(depStr ? { deps: depStr } : {}),
288
291
  update: options.update === true,
289
292
  org: options.org === true,
package/dist/bin.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { type CliError } from "../../_utils/cli-error.js";
2
+ import { type Result } from "../../_utils/result.js";
3
+ type SkillManifestFile = {
4
+ readonly path: string;
5
+ readonly isExecutable: boolean;
6
+ readonly contentType: string;
7
+ readonly content: string;
8
+ } | {
9
+ readonly path: string;
10
+ readonly isExecutable: boolean;
11
+ readonly contentType: string;
12
+ readonly url: string;
13
+ };
14
+ type SkillManifest = {
15
+ readonly slug: string;
16
+ readonly name: string;
17
+ readonly content: string;
18
+ readonly updatedAt: string;
19
+ readonly author: {
20
+ readonly name: string;
21
+ };
22
+ readonly files: readonly SkillManifestFile[];
23
+ };
24
+ declare const skillsBaseDir: () => string;
25
+ declare const substituteSkillDir: (content: string, dir: string) => string;
26
+ declare const materializeSkill: (manifest: SkillManifest, baseDir: string) => Promise<Result<string, CliError>>;
27
+ declare const removeSkillDir: (baseDir: string, slug: string) => Promise<void>;
28
+ declare const buildCachedMap: (baseDir: string) => Promise<Record<string, string>>;
29
+ export { materializeSkill, removeSkillDir, skillsBaseDir, substituteSkillDir, buildCachedMap, };
30
+ export type { SkillManifest, SkillManifestFile };
@@ -0,0 +1,237 @@
1
+ import { chmod, mkdir, readFile, readdir, rename, rm, writeFile, } from "node:fs/promises";
2
+ import { homedir } from "node:os";
3
+ import { dirname, join, resolve as resolvePath, sep } from "node:path";
4
+ import { causeOf, cliErr } from "../../_utils/cli-error.js";
5
+ import { err, fromPromise, ok } from "../../_utils/result.js";
6
+ const GLEN_SKILL_DIR_PLACEHOLDER = "${GLEN_SKILL_DIR}";
7
+ const META_FILENAME = ".glen-meta.json";
8
+ // Slugs are server-generated (slugifySkill), but a slug from a response decides
9
+ // a join() target that then gets rm -rf'd — so it is validated here rather than
10
+ // trusted. Anything with a separator, a ".." segment, or an empty value can't
11
+ // match, which keeps the destructive paths inside `<baseDir>/<slug>`.
12
+ const SAFE_SLUG = /^[a-z0-9-]{1,64}$/;
13
+ const unsafeSlugError = (slug) => cliErr({
14
+ what: `unsafe skill slug in glen's response: "${slug}"`,
15
+ remedy: "try again — if it persists, check https://tryglen.com/status",
16
+ });
17
+ const skillsBaseDir = () => process.env.GLEN_SKILLS_DIR ?? join(homedir(), ".glen", "skills");
18
+ const substituteSkillDir = (content, dir) => content.split(GLEN_SKILL_DIR_PLACEHOLDER).join(dir);
19
+ // Defense in depth: the server already validates manifest file paths, but a
20
+ // malicious/buggy manifest must never be able to write outside the skill's
21
+ // own tmp dir. Reject absolute paths, backslash segments (Windows-style
22
+ // traversal), and any `..` path segment, then double-check the resolved
23
+ // path still lands inside `tmpDir`.
24
+ const resolveSafeSkillFilePath = (tmpDir, rawPath) => {
25
+ const unsafe = !rawPath ||
26
+ rawPath.startsWith("/") ||
27
+ rawPath.includes("\\") ||
28
+ rawPath.split("/").some((segment) => segment === "..");
29
+ if (unsafe)
30
+ return err(cliErr({
31
+ what: `unsafe file path in skill manifest: "${rawPath}"`,
32
+ path: rawPath,
33
+ remedy: "this looks like a bug in the skill — contact the skill's author",
34
+ }));
35
+ const dest = resolvePath(tmpDir, rawPath);
36
+ const tmpDirWithSep = tmpDir.endsWith(sep) ? tmpDir : `${tmpDir}${sep}`;
37
+ if (!dest.startsWith(tmpDirWithSep))
38
+ return err(cliErr({
39
+ what: `unsafe file path in skill manifest: "${rawPath}"`,
40
+ path: rawPath,
41
+ remedy: "this looks like a bug in the skill — contact the skill's author",
42
+ }));
43
+ return ok(dest);
44
+ };
45
+ const fetchSkillFileBytes = async (file) => {
46
+ const res = await fromPromise(fetch(file.url));
47
+ if (!res.ok)
48
+ return err(cliErr({
49
+ what: `could not download ${file.path}`,
50
+ why: causeOf(res.error),
51
+ path: file.path,
52
+ remedy: "check your network connection and try again",
53
+ }));
54
+ if (!res.value.ok)
55
+ return err(cliErr({
56
+ what: `could not download ${file.path} (HTTP ${res.value.status})`,
57
+ path: file.path,
58
+ httpStatus: res.value.status,
59
+ remedy: "the download link may have expired — run the skill again",
60
+ }));
61
+ const buf = await fromPromise(res.value.arrayBuffer());
62
+ if (!buf.ok)
63
+ return err(cliErr({
64
+ what: `could not download ${file.path}`,
65
+ why: causeOf(buf.error),
66
+ path: file.path,
67
+ remedy: "check your network connection and try again",
68
+ }));
69
+ return ok(Buffer.from(buf.value));
70
+ };
71
+ const materializeFile = async (tmpDir, file) => {
72
+ const dest = resolveSafeSkillFilePath(tmpDir, file.path);
73
+ if (!dest.ok)
74
+ return dest;
75
+ const mkParent = await fromPromise(mkdir(dirname(dest.value), { recursive: true }));
76
+ if (!mkParent.ok)
77
+ return err(cliErr({
78
+ what: `could not create directory for ${file.path}`,
79
+ why: causeOf(mkParent.error),
80
+ path: file.path,
81
+ remedy: "check disk permissions and try again",
82
+ }));
83
+ const bytes = "content" in file
84
+ ? ok(Buffer.from(file.content, "utf8"))
85
+ : await fetchSkillFileBytes(file);
86
+ if (!bytes.ok)
87
+ return bytes;
88
+ const mode = file.isExecutable ? 0o755 : 0o644;
89
+ const written = await fromPromise(writeFile(dest.value, bytes.value, { mode }));
90
+ if (!written.ok)
91
+ return err(cliErr({
92
+ what: `could not write ${file.path}`,
93
+ why: causeOf(written.error),
94
+ path: file.path,
95
+ remedy: "check disk permissions and try again",
96
+ }));
97
+ // writeFile's `mode` option is only honored on file creation, which is
98
+ // always the case here (fresh tmp dir) — chmod again explicitly so the
99
+ // bits are correct regardless of umask.
100
+ const chmodded = await fromPromise(chmod(dest.value, mode));
101
+ if (!chmodded.ok)
102
+ return err(cliErr({
103
+ what: `could not set permissions on ${file.path}`,
104
+ why: causeOf(chmodded.error),
105
+ path: file.path,
106
+ remedy: "check disk permissions and try again",
107
+ }));
108
+ return ok(undefined);
109
+ };
110
+ const writeSkillFiles = async (tmpDir, files) => {
111
+ for (const file of files) {
112
+ const written = await materializeFile(tmpDir, file);
113
+ if (!written.ok)
114
+ return written;
115
+ }
116
+ return ok(undefined);
117
+ };
118
+ // Materializes a skill manifest to `<baseDir>/<slug>`: builds the full tree
119
+ // in a pid-suffixed tmp dir, then atomically replaces the target dir (so a
120
+ // stale file from a previous version, no longer in the manifest, is gone —
121
+ // and a reader never sees a half-written skill dir).
122
+ const materializeSkill = async (manifest, baseDir) => {
123
+ if (!SAFE_SLUG.test(manifest.slug))
124
+ return err(unsafeSlugError(manifest.slug));
125
+ const targetDir = join(baseDir, manifest.slug);
126
+ const tmpDir = join(baseDir, `.tmp-${manifest.slug}-${process.pid}`);
127
+ const mkBase = await fromPromise(mkdir(baseDir, { recursive: true, mode: 0o700 }));
128
+ if (!mkBase.ok)
129
+ return err(cliErr({
130
+ what: `could not create ${baseDir}`,
131
+ why: causeOf(mkBase.error),
132
+ path: baseDir,
133
+ remedy: "check disk permissions and try again",
134
+ }));
135
+ // Clear out any stale tmp dir left behind by a previous interrupted run.
136
+ await fromPromise(rm(tmpDir, { recursive: true, force: true }));
137
+ const mkTmp = await fromPromise(mkdir(tmpDir, { recursive: true, mode: 0o700 }));
138
+ if (!mkTmp.ok)
139
+ return err(cliErr({
140
+ what: `could not create ${tmpDir}`,
141
+ why: causeOf(mkTmp.error),
142
+ path: tmpDir,
143
+ remedy: "check disk permissions and try again",
144
+ }));
145
+ const filesWritten = await writeSkillFiles(tmpDir, manifest.files);
146
+ if (!filesWritten.ok) {
147
+ await fromPromise(rm(tmpDir, { recursive: true, force: true }));
148
+ return filesWritten;
149
+ }
150
+ const metaWritten = await fromPromise(writeFile(join(tmpDir, META_FILENAME), JSON.stringify({ updatedAt: manifest.updatedAt })));
151
+ if (!metaWritten.ok) {
152
+ await fromPromise(rm(tmpDir, { recursive: true, force: true }));
153
+ return err(cliErr({
154
+ what: `could not write ${META_FILENAME} for ${manifest.slug}`,
155
+ why: causeOf(metaWritten.error),
156
+ path: targetDir,
157
+ remedy: "check disk permissions and try again",
158
+ }));
159
+ }
160
+ const targetCleared = await fromPromise(rm(targetDir, { recursive: true, force: true }));
161
+ if (!targetCleared.ok) {
162
+ await fromPromise(rm(tmpDir, { recursive: true, force: true }));
163
+ return err(cliErr({
164
+ what: `could not replace ${targetDir}`,
165
+ why: causeOf(targetCleared.error),
166
+ path: targetDir,
167
+ remedy: "check disk permissions and try again",
168
+ }));
169
+ }
170
+ const renamed = await fromPromise(rename(tmpDir, targetDir));
171
+ if (!renamed.ok)
172
+ return err(cliErr({
173
+ what: `could not finalize ${targetDir}`,
174
+ why: causeOf(renamed.error),
175
+ path: targetDir,
176
+ remedy: "check disk permissions and try again",
177
+ }));
178
+ return ok(targetDir);
179
+ };
180
+ // Drops the materialized tree at `<baseDir>/<slug>`. Used when a skill that
181
+ // USED to ship files no longer does: materializeSkill is never called for it,
182
+ // so without this its stale files would sit on disk forever.
183
+ //
184
+ // A dir holding NOTHING but .glen-meta.json is left alone: that is not a stale
185
+ // tree, it is the cache marker a text-only skill gets when it rides in as a
186
+ // prefetch child, and buildCachedMap reads it to tell the server "I already
187
+ // hold this version". Deleting it would make `use parent` cache the child and
188
+ // the child's own `use` immediately throw that away, defeating the caching on
189
+ // every single call.
190
+ //
191
+ // Same slug guard as materializeSkill — this is an rm -rf. Best-effort: a
192
+ // missing dir, or a failure to remove one, is not an error the caller handles.
193
+ const removeSkillDir = async (baseDir, slug) => {
194
+ if (!SAFE_SLUG.test(slug))
195
+ return;
196
+ const dir = join(baseDir, slug);
197
+ const entries = await fromPromise(readdir(dir));
198
+ if (!entries.ok)
199
+ return;
200
+ if (entries.value.every((name) => name === META_FILENAME))
201
+ return;
202
+ await fromPromise(rm(dir, { recursive: true, force: true }));
203
+ };
204
+ const readSkillMeta = async (dir) => {
205
+ const raw = await fromPromise(readFile(join(dir, META_FILENAME), "utf8"));
206
+ if (!raw.ok)
207
+ return null;
208
+ const parsed = await fromPromise(new Promise((resolve) => resolve(JSON.parse(raw.value))));
209
+ if (!parsed.ok)
210
+ return null;
211
+ const d = parsed.value;
212
+ if (!d || typeof d.updatedAt !== "string")
213
+ return null;
214
+ return { updatedAt: d.updatedAt };
215
+ };
216
+ // For every locally-present skill dir under `baseDir` with a readable
217
+ // .glen-meta.json, map its dir name -> the cached updatedAt token. A
218
+ // corrupt/missing meta file, or a missing base dir entirely, just omits
219
+ // that slug — never an error (best-effort cache hint for the server).
220
+ const buildCachedMap = async (baseDir) => {
221
+ const entries = await fromPromise(readdir(baseDir, { withFileTypes: true }));
222
+ if (!entries.ok)
223
+ return {};
224
+ const pairs = await Promise.all(entries.value
225
+ .filter((entry) => entry.isDirectory() && !entry.name.startsWith("."))
226
+ .map(async (entry) => {
227
+ const meta = await readSkillMeta(join(baseDir, entry.name));
228
+ return meta ? [entry.name, meta.updatedAt] : null;
229
+ }));
230
+ const out = {};
231
+ for (const pair of pairs)
232
+ if (pair)
233
+ out[pair[0]] = pair[1];
234
+ return out;
235
+ };
236
+ export { materializeSkill, removeSkillDir, skillsBaseDir, substituteSkillDir, buildCachedMap, };
237
+ //# sourceMappingURL=materialize-skill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"materialize-skill.js","sourceRoot":"","sources":["../../../src/commands/_utils/materialize-skill.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { type CliError } from "../../_utils/cli-error.js";
2
+ import { type Result } from "../../_utils/result.js";
3
+ type PackedFile = {
4
+ readonly path: string;
5
+ readonly isExecutable: boolean;
6
+ readonly contentType: string;
7
+ readonly content?: string;
8
+ readonly contentBase64?: string;
9
+ };
10
+ declare const packSkillDir: (dir: string) => Promise<Result<{
11
+ content: string;
12
+ files: PackedFile[];
13
+ }, CliError>>;
14
+ export { packSkillDir };
15
+ export type { PackedFile };
@@ -0,0 +1,190 @@
1
+ import { lstat, readFile, readdir, stat } from "node:fs/promises";
2
+ import { extname, join, relative, sep } from "node:path";
3
+ import { causeOf, cliErr } from "../../_utils/cli-error.js";
4
+ import { err, fromPromise, ok } from "../../_utils/result.js";
5
+ // Only these top-level directories are meaningful to an agent loading a
6
+ // skill — mirrors the server's CANONICAL_DIRS in validate-skill-files.ts.
7
+ const CANONICAL_SUBDIRS = ["scripts", "references", "assets"];
8
+ // Client-side mirror of the server's per-file/total caps
9
+ // (src/server/skills/validate-skill-files.ts) — failing here saves a round
10
+ // trip and names the offending file instead of a generic server 400.
11
+ const MAX_FILES = 100;
12
+ const MAX_PATH_LENGTH = 500; // matches skillCreateInputSchema's path: z.string().min(1).max(500)
13
+ const MAX_TEXT_BYTES = 1024 * 1024; // 1 MB — a single text file (and SKILL.md)
14
+ const MAX_BINARY_BYTES = 2 * 1024 * 1024; // 2 MB — a single decoded binary asset
15
+ const MAX_TOTAL_BYTES = 3 * 1024 * 1024; // 3 MB — the whole `files` array, as sent
16
+ const CONTENT_TYPE_BY_EXT = {
17
+ ".sh": "text/x-shellscript",
18
+ ".py": "text/x-python",
19
+ ".md": "text/markdown",
20
+ ".json": "application/json",
21
+ ".png": "image/png",
22
+ ".jpg": "image/jpeg",
23
+ ".jpeg": "image/jpeg",
24
+ ".pdf": "application/pdf",
25
+ };
26
+ const shouldSkipEntryName = (name) => name.startsWith(".") || name === "node_modules" || name === "__pycache__";
27
+ // A round trip through utf8 that comes back byte-identical means the buffer
28
+ // is valid UTF-8 text; anything else (including a mid-decode replacement
29
+ // character) is treated as binary.
30
+ const isUtf8 = (buf) => buf.equals(Buffer.from(buf.toString("utf8"), "utf8"));
31
+ const contentTypeFor = (relPath, textLike) => {
32
+ const mapped = CONTENT_TYPE_BY_EXT[extname(relPath).toLowerCase()];
33
+ if (mapped)
34
+ return mapped;
35
+ return textLike ? "text/plain" : "application/octet-stream";
36
+ };
37
+ const toCanonicalPath = (rootDir, fullPath) => relative(rootDir, fullPath).split(sep).join("/");
38
+ // Recursively lists regular files under `dir`, skipping dotfiles/dirs,
39
+ // node_modules, __pycache__, and symlinks (checked via the dirent from
40
+ // readdir, which — like lstat — does not follow symlinks).
41
+ const collectFilePaths = async (dir) => {
42
+ const entries = await fromPromise(readdir(dir, { withFileTypes: true }));
43
+ if (!entries.ok)
44
+ return err(cliErr({
45
+ what: `could not read directory ${dir}`,
46
+ why: causeOf(entries.error),
47
+ path: dir,
48
+ remedy: "check the path passed to --dir",
49
+ }));
50
+ const collected = [];
51
+ for (const entry of entries.value) {
52
+ if (shouldSkipEntryName(entry.name) || entry.isSymbolicLink())
53
+ continue;
54
+ const full = join(dir, entry.name);
55
+ if (entry.isDirectory()) {
56
+ const nested = await collectFilePaths(full);
57
+ if (!nested.ok)
58
+ return nested;
59
+ collected.push(...nested.value);
60
+ }
61
+ else if (entry.isFile()) {
62
+ collected.push(full);
63
+ }
64
+ }
65
+ return ok(collected);
66
+ };
67
+ // Walks only the canonical scripts/references/assets subdirs of `rootDir`.
68
+ // A missing or symlinked canonical subdir is treated as simply absent —
69
+ // not an error.
70
+ const collectCanonicalFilePaths = async (rootDir) => {
71
+ const collected = [];
72
+ for (const name of CANONICAL_SUBDIRS) {
73
+ const subdir = join(rootDir, name);
74
+ const info = await fromPromise(lstat(subdir));
75
+ if (!info.ok || info.value.isSymbolicLink() || !info.value.isDirectory())
76
+ continue;
77
+ const files = await collectFilePaths(subdir);
78
+ if (!files.ok)
79
+ return files;
80
+ collected.push(...files.value);
81
+ }
82
+ return ok(collected);
83
+ };
84
+ const packOneFile = async (rootDir, fullPath) => {
85
+ const relPath = toCanonicalPath(rootDir, fullPath);
86
+ if (relPath.length > MAX_PATH_LENGTH)
87
+ return err(cliErr({
88
+ what: `${relPath} has a ${relPath.length}-character path, over the ${MAX_PATH_LENGTH} character limit`,
89
+ path: relPath,
90
+ remedy: `shorten the path to ${relPath} — skill package paths cap at ${MAX_PATH_LENGTH} characters`,
91
+ }));
92
+ const fileStat = await fromPromise(stat(fullPath));
93
+ if (!fileStat.ok)
94
+ return err(cliErr({
95
+ what: `could not read ${relPath}`,
96
+ why: causeOf(fileStat.error),
97
+ path: relPath,
98
+ remedy: "check the file's permissions",
99
+ }));
100
+ const bytes = await fromPromise(readFile(fullPath));
101
+ if (!bytes.ok)
102
+ return err(cliErr({
103
+ what: `could not read ${relPath}`,
104
+ why: causeOf(bytes.error),
105
+ path: relPath,
106
+ remedy: "check the file's permissions",
107
+ }));
108
+ const buf = bytes.value;
109
+ const textLike = isUtf8(buf);
110
+ const cap = textLike ? MAX_TEXT_BYTES : MAX_BINARY_BYTES;
111
+ if (buf.length > cap)
112
+ return err(cliErr({
113
+ what: `${relPath} is ${buf.length} bytes, over the ${cap} byte limit for a ${textLike ? "text" : "binary"} file`,
114
+ path: relPath,
115
+ remedy: `split or trim ${relPath} — skill packages cap individual files at 1MB (text) / 2MB (binary)`,
116
+ }));
117
+ const isExecutable = (fileStat.value.mode & 0o111) !== 0;
118
+ const contentType = contentTypeFor(relPath, textLike);
119
+ return ok({
120
+ path: relPath,
121
+ isExecutable,
122
+ contentType,
123
+ ...(textLike
124
+ ? { content: buf.toString("utf8") }
125
+ : { contentBase64: buf.toString("base64") }),
126
+ });
127
+ };
128
+ const packFiles = async (rootDir, filePaths) => {
129
+ const packed = [];
130
+ for (const full of filePaths) {
131
+ const file = await packOneFile(rootDir, full);
132
+ if (!file.ok)
133
+ return file;
134
+ packed.push(file.value);
135
+ }
136
+ return ok(packed);
137
+ };
138
+ // The exact byte count this file will put on the wire — recomputed from the
139
+ // packed value (not carried separately) so the total-size check reflects
140
+ // what's actually being sent, the same way the server re-derives it. A binary
141
+ // file costs its BASE64 string (ASCII, 1 byte per char), not the smaller
142
+ // decoded size — mirrors wireByteSize in the server's validate-skill-files.ts.
143
+ const fileWireSize = (file) => file.content !== undefined
144
+ ? Buffer.byteLength(file.content, "utf8")
145
+ : file.contentBase64.length;
146
+ // Packs a skill directory (SKILL.md + scripts/references/assets) into the
147
+ // wire shape `skillCreate` sends: SKILL.md's body as `content`, everything
148
+ // else as `files`. Caps mirror the server's (Task 3) so a bad package fails
149
+ // fast, locally, naming the offending file.
150
+ const packSkillDir = async (dir) => {
151
+ const skillMdPath = join(dir, "SKILL.md");
152
+ const skillMd = await fromPromise(readFile(skillMdPath, "utf8"));
153
+ if (!skillMd.ok)
154
+ return err(cliErr({
155
+ what: `could not find ${skillMdPath}`,
156
+ remedy: "a skill directory passed to --dir must contain a SKILL.md file at its root",
157
+ }));
158
+ if (!skillMd.value.trim())
159
+ return err(cliErr({
160
+ what: `${skillMdPath} is empty`,
161
+ remedy: "write the SKILL.md body before running glen skill create --dir",
162
+ }));
163
+ const skillMdBytes = Buffer.byteLength(skillMd.value, "utf8");
164
+ if (skillMdBytes > MAX_TEXT_BYTES)
165
+ return err(cliErr({
166
+ what: `${skillMdPath} is ${skillMdBytes} bytes, over the ${MAX_TEXT_BYTES} byte limit`,
167
+ path: skillMdPath,
168
+ remedy: `split ${skillMdPath} — move the bulk into references/ and link to it from the body`,
169
+ }));
170
+ const filePaths = await collectCanonicalFilePaths(dir);
171
+ if (!filePaths.ok)
172
+ return filePaths;
173
+ if (filePaths.value.length > MAX_FILES)
174
+ return err(cliErr({
175
+ what: `${dir} has ${filePaths.value.length} files under scripts/, references/, assets/ (max ${MAX_FILES})`,
176
+ remedy: `trim it down to ${MAX_FILES} files or fewer`,
177
+ }));
178
+ const packed = await packFiles(dir, filePaths.value);
179
+ if (!packed.ok)
180
+ return packed;
181
+ const total = packed.value.reduce((sum, f) => sum + fileWireSize(f), 0);
182
+ if (total > MAX_TOTAL_BYTES)
183
+ return err(cliErr({
184
+ what: `the skill package in ${dir} is ${total} bytes, over the ${MAX_TOTAL_BYTES} byte total limit`,
185
+ remedy: "trim scripts/, references/, assets/ — the whole package must fit in 3MB",
186
+ }));
187
+ return ok({ content: skillMd.value, files: packed.value });
188
+ };
189
+ export { packSkillDir };
190
+ //# sourceMappingURL=pack-skill-dir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pack-skill-dir.js","sourceRoot":"","sources":["../../../src/commands/_utils/pack-skill-dir.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ declare const skillCreate: (opts: {
6
6
  name: string | undefined;
7
7
  description: string | undefined;
8
8
  file: string | undefined;
9
+ dir?: string;
9
10
  deps?: string;
10
11
  update?: boolean;
11
12
  org?: boolean;
@@ -4,6 +4,8 @@ import { config } from "../_utils/config.js";
4
4
  import { postRoute } from "../_utils/post-route.js";
5
5
  import { err, ok } from "../_utils/result.js";
6
6
  import { readSessionForCwd } from "../_utils/session-map.js";
7
+ import { buildCachedMap, materializeSkill, removeSkillDir, skillsBaseDir, substituteSkillDir, } from "./_utils/materialize-skill.js";
8
+ import { packSkillDir } from "./_utils/pack-skill-dir.js";
7
9
  const skillSearch = async (query, by) => {
8
10
  const body = {};
9
11
  if (query?.trim())
@@ -29,6 +31,131 @@ const skillSearch = async (query, by) => {
29
31
  process.stdout.write("\nRun one with: glen skill use <slug>\n");
30
32
  return ok(undefined);
31
33
  };
34
+ // Runtime validation of one manifest file entry from a postRoute JSON body
35
+ // (which is only known as Record<string, unknown>). Returns null on any
36
+ // shape mismatch — the CLI has no server types to trust (Task 4's wire
37
+ // shape is mirrored, not shared).
38
+ const asSkillManifestFile = (v) => {
39
+ if (!v || typeof v !== "object")
40
+ return null;
41
+ const f = v;
42
+ if (typeof f.path !== "string" ||
43
+ typeof f.isExecutable !== "boolean" ||
44
+ typeof f.contentType !== "string")
45
+ return null;
46
+ if (typeof f.content === "string")
47
+ return {
48
+ path: f.path,
49
+ isExecutable: f.isExecutable,
50
+ contentType: f.contentType,
51
+ content: f.content,
52
+ };
53
+ if (typeof f.url === "string")
54
+ return {
55
+ path: f.path,
56
+ isExecutable: f.isExecutable,
57
+ contentType: f.contentType,
58
+ url: f.url,
59
+ };
60
+ return null;
61
+ };
62
+ const asSkillManifest = (v) => {
63
+ if (typeof v.slug !== "string" ||
64
+ typeof v.name !== "string" ||
65
+ typeof v.content !== "string" ||
66
+ typeof v.updatedAt !== "string")
67
+ return null;
68
+ const author = v.author;
69
+ if (!author || typeof author.name !== "string")
70
+ return null;
71
+ if (!Array.isArray(v.files))
72
+ return null;
73
+ const files = v.files.map(asSkillManifestFile);
74
+ if (files.some((f) => f === null))
75
+ return null;
76
+ return {
77
+ slug: v.slug,
78
+ name: v.name,
79
+ content: v.content,
80
+ updatedAt: v.updatedAt,
81
+ author: { name: author.name },
82
+ files: files,
83
+ };
84
+ };
85
+ // Mentioned skills the server prefetched (stale/missing in our local cache).
86
+ // Their content is materialized to disk but never printed — the agent
87
+ // re-runs `glen skill use <slug>` when it actually needs one, and by then
88
+ // it's already warm on disk.
89
+ const materializePrefetchEntries = async (prefetch, baseDir) => {
90
+ if (!Array.isArray(prefetch))
91
+ return;
92
+ await Promise.all(prefetch.map(async (entry) => {
93
+ if (!entry || typeof entry !== "object")
94
+ return;
95
+ const manifest = asSkillManifest(entry);
96
+ if (!manifest)
97
+ return;
98
+ // Best-effort: one bad prefetch entry must not break `skill use`. It is
99
+ // still worth saying so — silently skipping leaves the agent expecting a
100
+ // warm dir that isn't there. stderr, so the agent's stdout stays clean.
101
+ const materialized = await materializeSkill(manifest, baseDir);
102
+ if (!materialized.ok)
103
+ process.stderr.write(`glen: could not cache the prefetched skill "${manifest.slug}" — ${materialized.error.what}\n`);
104
+ }));
105
+ };
106
+ // Every skill a current server returns is attributed — files or not — so the
107
+ // agent (and whoever reads its transcript) always sees whose skill this is and
108
+ // how current it is.
109
+ const formatProvenance = (name, authorName, updatedAt) => `> Glen skill "${name}" by ${authorName}, updated ${updatedAt.slice(0, 10)}\n\n`;
110
+ // The same line read defensively off an unvalidated JSON body. An older server
111
+ // sends no author/updatedAt at all, and then there is no line — matching a
112
+ // pre-multi-file-skills server's plain-content response.
113
+ const provenanceFor = (body) => {
114
+ const author = body.author;
115
+ if (typeof body.name !== "string" || typeof body.updatedAt !== "string")
116
+ return null;
117
+ if (!author || typeof author.name !== "string")
118
+ return null;
119
+ return formatProvenance(body.name, author.name, body.updatedAt);
120
+ };
121
+ // Prints the root skill's response. A skill with no attached files (either
122
+ // talking to an older server, or a plain single-file skill) prints its content
123
+ // as before and creates nothing on disk. A skill with files is materialized
124
+ // first, then printed with its ${GLEN_SKILL_DIR} placeholders substituted for
125
+ // the real dir.
126
+ const printRootSkillResponse = async (body, baseDir) => {
127
+ const hasFiles = Array.isArray(body.files) && body.files.length > 0;
128
+ if (!hasFiles) {
129
+ // The skill may have shipped files in a PREVIOUS version. Nothing else
130
+ // clears that tree — materializeSkill only ever runs for a skill that
131
+ // currently has files — so its stale copy would otherwise live on disk
132
+ // forever, and its .glen-meta.json would keep claiming it's cached.
133
+ if (typeof body.slug === "string")
134
+ await removeSkillDir(baseDir, body.slug);
135
+ const content = body.content;
136
+ if (typeof content !== "string" || !content.trim()) {
137
+ process.stdout.write("glen: that skill has no content.\n");
138
+ return ok(undefined);
139
+ }
140
+ const provenance = provenanceFor(body);
141
+ if (provenance)
142
+ process.stdout.write(provenance);
143
+ process.stdout.write(`${content}\n`);
144
+ return ok(undefined);
145
+ }
146
+ const manifest = asSkillManifest(body);
147
+ if (!manifest)
148
+ return err(cliErr({
149
+ what: "glen returned an unexpected skill response",
150
+ remedy: "try again — if it persists, check https://tryglen.com/status",
151
+ }));
152
+ const materialized = await materializeSkill(manifest, baseDir);
153
+ if (!materialized.ok)
154
+ return materialized;
155
+ process.stdout.write(formatProvenance(manifest.name, manifest.author.name, manifest.updatedAt));
156
+ process.stdout.write(`${substituteSkillDir(manifest.content, materialized.value)}\n`);
157
+ return ok(undefined);
158
+ };
32
159
  const skillUse = async (slug) => {
33
160
  if (!slug?.trim())
34
161
  return err(cliErr({
@@ -36,16 +163,21 @@ const skillUse = async (slug) => {
36
163
  remedy: "usage: glen skill use <slug> (find slugs with `glen skill search`)",
37
164
  }));
38
165
  const conversationId = await readSessionForCwd(process.cwd());
166
+ const baseDir = skillsBaseDir();
167
+ const cached = await buildCachedMap(baseDir);
39
168
  const res = await postRoute(config.skillUseUrl, {
40
169
  slug: slug.trim(),
41
170
  ...(conversationId ? { conversationId } : {}),
171
+ ...(Object.keys(cached).length > 0 ? { cached } : {}),
42
172
  });
43
173
  if (!res.ok)
44
174
  return res;
45
- const content = res.value.content;
46
- process.stdout.write(typeof content === "string" && content.trim()
47
- ? `${content}\n`
48
- : "glen: that skill has no content.\n");
175
+ // Best-effort: mentioned-skill prefetch never blocks printing the skill
176
+ // the caller actually asked for.
177
+ await materializePrefetchEntries(res.value.prefetch, baseDir);
178
+ const printed = await printRootSkillResponse(res.value, baseDir);
179
+ if (!printed.ok)
180
+ return printed;
49
181
  const deps = res.value.dependencies;
50
182
  if (deps?.length) {
51
183
  process.stdout.write("\n## Requirements\n");
@@ -55,21 +187,28 @@ const skillUse = async (slug) => {
55
187
  return ok(undefined);
56
188
  };
57
189
  const skillCreate = async (opts) => {
58
- if (!opts.name?.trim() || !opts.description?.trim() || !opts.file?.trim())
190
+ const hasFile = Boolean(opts.file?.trim());
191
+ const hasDir = Boolean(opts.dir?.trim());
192
+ if (!opts.name?.trim() || !opts.description?.trim() || (!hasFile && !hasDir))
59
193
  return err(cliErr({
60
194
  what: "missing required fields",
61
- remedy: 'usage: glen skill create --name "<name>" --description "<one-line>" --file <path-to-SKILL.md> [--update] [--org]',
195
+ remedy: 'usage: glen skill create --name "<name>" --description "<one-line>" (--file <path-to-SKILL.md> | --dir <path-to-skill-directory>) [--update] [--org]',
62
196
  }));
63
- const content = await readSkillFile(opts.file.trim());
64
- if (!content.ok)
65
- return content;
197
+ if (hasFile && hasDir)
198
+ return err(cliErr({
199
+ what: "--file and --dir are mutually exclusive",
200
+ remedy: "pass either --file <path-to-SKILL.md> or --dir <path-to-skill-directory>, not both",
201
+ }));
202
+ const body = await buildCreateBody(opts);
203
+ if (!body.ok)
204
+ return body;
66
205
  const depsResult = await readDepsFile(opts.deps);
67
206
  if (!depsResult.ok)
68
207
  return depsResult;
69
208
  const res = await postRoute(config.skillCreateUrl, {
70
209
  name: opts.name.trim(),
71
210
  description: opts.description.trim(),
72
- content: content.value,
211
+ ...body.value,
73
212
  ...(depsResult.value ? { dependencies: depsResult.value } : {}),
74
213
  ...(opts.update ? { update: true } : {}),
75
214
  // Only send the flag when set: an update without --org must leave the
@@ -126,6 +265,28 @@ const skillShare = async (slug, opts) => {
126
265
  .join(", ")}\n`);
127
266
  return ok(undefined);
128
267
  };
268
+ // Builds the `content` (+ `files`, --dir only) portion of the skillCreate
269
+ // body. --file keeps its exact pre-existing shape (content only); --dir
270
+ // always sends `files` — even `[]` — so an --update replaces any files a
271
+ // previous version had that the new directory no longer contains.
272
+ const buildCreateBody = async (opts) => {
273
+ if (opts.dir?.trim()) {
274
+ const packed = await packSkillDir(opts.dir.trim());
275
+ if (!packed.ok)
276
+ return packed;
277
+ return ok({ content: packed.value.content, files: packed.value.files });
278
+ }
279
+ const file = opts.file?.trim();
280
+ if (!file)
281
+ return err(cliErr({
282
+ what: "missing required fields",
283
+ remedy: 'usage: glen skill create --name "<name>" --description "<one-line>" (--file <path-to-SKILL.md> | --dir <path-to-skill-directory>) [--update] [--org]',
284
+ }));
285
+ const content = await readSkillFile(file);
286
+ if (!content.ok)
287
+ return content;
288
+ return ok({ content: content.value });
289
+ };
129
290
  const readSkillFile = async (file) => {
130
291
  try {
131
292
  const text = await readFile(file, "utf8");
@@ -1 +1 @@
1
- {"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/commands/skill.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/commands/skill.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tryglen/cli",
3
- "version": "0.33.0",
3
+ "version": "0.34.0",
4
4
  "description": "Glen CLI — memory for coding agents",
5
5
  "type": "module",
6
6
  "bin": {