poe-code 3.0.389 → 3.0.390

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.
@@ -0,0 +1,49 @@
1
+ import type { Stats } from "node:fs";
2
+ import { type InstallSkillResult, type SkillScope } from "../packages/agent-skill-config/dist/index.js";
3
+ export interface InstallSkillFileSystem {
4
+ readFile(path: string, encoding: BufferEncoding): Promise<string>;
5
+ readFile(path: string): Promise<Buffer>;
6
+ symlink(target: string, path: string): Promise<void>;
7
+ readlink(path: string): Promise<string>;
8
+ realpath(path: string): Promise<string>;
9
+ writeFile(path: string, data: string | NodeJS.ArrayBufferView, options?: {
10
+ encoding?: BufferEncoding;
11
+ flag?: string;
12
+ }): Promise<void>;
13
+ mkdir(path: string, options?: {
14
+ recursive?: boolean;
15
+ }): Promise<void>;
16
+ stat(path: string): Promise<Stats>;
17
+ lstat(path: string): Promise<Stats>;
18
+ rename(oldPath: string, newPath: string): Promise<void>;
19
+ rm?(path: string, options?: {
20
+ recursive?: boolean;
21
+ force?: boolean;
22
+ }): Promise<void>;
23
+ unlink(path: string): Promise<void>;
24
+ readdir(path: string): Promise<string[]>;
25
+ copyFile?(src: string, dest: string): Promise<void>;
26
+ chmod?(path: string, mode: number): Promise<void>;
27
+ }
28
+ export type InstallSkillSource = {
29
+ name: string;
30
+ content: string;
31
+ } | {
32
+ name: string;
33
+ file: string;
34
+ };
35
+ export interface InstallSkillOptions {
36
+ cwd?: string;
37
+ homeDir?: string;
38
+ scope?: SkillScope;
39
+ dryRun?: boolean;
40
+ fs?: InstallSkillFileSystem;
41
+ }
42
+ /**
43
+ * Install arbitrary skill content into an agent's native skill directory.
44
+ *
45
+ * The actual mutation and validation are delegated to poe-code's agent skill
46
+ * configuration machinery, so SDK and CLI installs share the same safety rules.
47
+ */
48
+ export declare function installSkill(agentId: string, source: InstallSkillSource, options?: InstallSkillOptions): Promise<InstallSkillResult>;
49
+ export type { InstallSkillResult, SkillScope };
package/dist/skills.js ADDED
@@ -0,0 +1,59 @@
1
+ import * as fs from "node:fs/promises";
2
+ import * as os from "node:os";
3
+ import * as path from "node:path";
4
+ import { installSkill as installAgentSkill } from "@poe-code/agent-skill-config";
5
+ function createNodeFileSystem() {
6
+ return {
7
+ readFile: ((filePath, encoding) => {
8
+ if (encoding) {
9
+ return fs.readFile(filePath, encoding);
10
+ }
11
+ return fs.readFile(filePath);
12
+ }),
13
+ symlink: (target, filePath) => fs.symlink(target, filePath),
14
+ readlink: (filePath) => fs.readlink(filePath, { encoding: "utf8" }),
15
+ realpath: (filePath) => fs.realpath(filePath),
16
+ writeFile: (filePath, data, options) => fs.writeFile(filePath, data, options),
17
+ mkdir: (filePath, options) => fs.mkdir(filePath, options).then(() => { }),
18
+ stat: (filePath) => fs.stat(filePath),
19
+ lstat: (filePath) => fs.lstat(filePath),
20
+ rename: (oldPath, newPath) => fs.rename(oldPath, newPath),
21
+ rm: (filePath, options) => fs.rm(filePath, options),
22
+ unlink: (filePath) => fs.unlink(filePath),
23
+ readdir: (filePath) => fs.readdir(filePath),
24
+ copyFile: (src, dest) => fs.copyFile(src, dest),
25
+ chmod: (filePath, mode) => fs.chmod(filePath, mode)
26
+ };
27
+ }
28
+ async function resolveSkillContent(source, options) {
29
+ if ("content" in source) {
30
+ return source.content;
31
+ }
32
+ const sourcePath = path.isAbsolute(source.file)
33
+ ? source.file
34
+ : path.resolve(options.cwd, source.file);
35
+ return options.fs.readFile(sourcePath, "utf8");
36
+ }
37
+ /**
38
+ * Install arbitrary skill content into an agent's native skill directory.
39
+ *
40
+ * The actual mutation and validation are delegated to poe-code's agent skill
41
+ * configuration machinery, so SDK and CLI installs share the same safety rules.
42
+ */
43
+ export async function installSkill(agentId, source, options = {}) {
44
+ const cwd = options.cwd ?? process.cwd();
45
+ const homeDir = options.homeDir ?? os.homedir();
46
+ const fileSystem = options.fs ?? createNodeFileSystem();
47
+ const content = await resolveSkillContent(source, { cwd, fs: fileSystem });
48
+ return installAgentSkill(agentId, {
49
+ name: source.name,
50
+ content
51
+ }, {
52
+ fs: fileSystem,
53
+ cwd,
54
+ homeDir,
55
+ scope: options.scope ?? "local",
56
+ dryRun: options.dryRun
57
+ });
58
+ }
59
+ //# sourceMappingURL=skills.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EACL,YAAY,IAAI,iBAAiB,EAGlC,MAAM,8BAA8B,CAAC;AA0CtC,SAAS,oBAAoB;IAC3B,OAAO;QACL,QAAQ,EAAE,CAAC,CAAC,QAAgB,EAAE,QAAyB,EAAE,EAAE;YACzD,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACzC,CAAC;YACD,OAAO,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC,CAAuC;QACxC,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC;QAC3D,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnE,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC7C,SAAS,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC;QAC7E,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;QACxE,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;QACrC,KAAK,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;QACvC,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC;QACzD,EAAE,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;QACnD,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;QACzC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC3C,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;QAC/C,KAAK,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC;KACpD,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,MAA0B,EAC1B,OAAoD;IAEpD,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC;QAC7C,CAAC,CAAC,MAAM,CAAC,IAAI;QACb,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3C,OAAO,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACjD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAe,EACf,MAA0B,EAC1B,UAA+B,EAAE;IAEjC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IAChD,MAAM,UAAU,GAAG,OAAO,CAAC,EAAE,IAAI,oBAAoB,EAAE,CAAC;IACxD,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IAE3E,OAAO,iBAAiB,CACtB,OAAO,EACP;QACE,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,OAAO;KACR,EACD;QACE,EAAE,EAAE,UAAU;QACd,GAAG;QACH,OAAO;QACP,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,OAAO;QAC/B,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CACF,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "poe-code",
3
- "version": "3.0.389",
3
+ "version": "3.0.390",
4
4
  "description": "CLI tool to configure Poe API for developer workflows.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -17,6 +17,10 @@
17
17
  "./agent": {
18
18
  "types": "./dist/agent.d.ts",
19
19
  "import": "./dist/agent.js"
20
+ },
21
+ "./skills": {
22
+ "types": "./dist/skills.d.ts",
23
+ "import": "./dist/skills.js"
20
24
  }
21
25
  },
22
26
  "workspaces": [