@polpo-ai/server 0.2.9 → 0.2.10

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/index.d.ts CHANGED
@@ -24,7 +24,8 @@ export { agentRoutes } from "./routes/agents.js";
24
24
  export { eventRoutes, type EventBridge, type EventClient } from "./routes/events.js";
25
25
  export { configRoutes } from "./routes/config.js";
26
26
  export { fileRoutes, type FileRouteDeps } from "./routes/files.js";
27
- export type { TaskRouteDeps, MissionRouteDeps, PlaybookRouteDeps, ApprovalRouteDeps, ChatRouteDeps, VaultRouteDeps, PeerRouteDeps, NotificationRouteDeps, ScheduleRouteDeps, WatcherRouteDeps, StateRouteDeps, ConfigRouteDeps, AuthRouteDeps, SkillRouteDeps, AgentRouteDeps, } from "./deps.js";
27
+ export { skillRoutes, type SkillRouteDeps } from "./routes/skills.js";
28
+ export type { TaskRouteDeps, MissionRouteDeps, PlaybookRouteDeps, ApprovalRouteDeps, ChatRouteDeps, VaultRouteDeps, PeerRouteDeps, NotificationRouteDeps, ScheduleRouteDeps, WatcherRouteDeps, StateRouteDeps, ConfigRouteDeps, AuthRouteDeps, AgentRouteDeps, } from "./deps.js";
28
29
  export { validateParams, instantiatePlaybook } from "./playbook-utils.js";
29
30
  export type { PlaybookParameter, PlaybookDefinition, ValidationResult } from "./playbook-utils.js";
30
31
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,KAAK,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGnE,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,aAAa,EACb,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,aAAa,EACb,cAAc,EACd,cAAc,GACf,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,KAAK,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGtE,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,aAAa,EACb,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,aAAa,EACb,cAAc,GACf,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC"}
package/dist/index.js CHANGED
@@ -25,6 +25,7 @@ export { agentRoutes } from "./routes/agents.js";
25
25
  export { eventRoutes } from "./routes/events.js";
26
26
  export { configRoutes } from "./routes/config.js";
27
27
  export { fileRoutes } from "./routes/files.js";
28
+ export { skillRoutes } from "./routes/skills.js";
28
29
  // Playbook utilities (pure logic, edge-compatible)
29
30
  export { validateParams, instantiatePlaybook } from "./playbook-utils.js";
30
31
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,kBAAkB;AAClB,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAA4B,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAsC,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAsB,MAAM,mBAAmB,CAAC;AAqBnE,mDAAmD;AACnD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,kBAAkB;AAClB,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAA4B,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAsC,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAsB,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAuB,MAAM,oBAAoB,CAAC;AAoBtE,mDAAmD;AACnD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Skill routes — discover, list, read, create, delete, assign/unassign.
3
+ *
4
+ * Uses FileSystem abstraction so it works on any backend:
5
+ * - NodeFileSystem (self-hosted)
6
+ * - SandboxProxyFS (cloud, lazy)
7
+ *
8
+ * Install from GitHub (git clone) is NOT included — that's shell-specific
9
+ * and stays in the root src/server/routes/skills.ts.
10
+ */
11
+ import { OpenAPIHono } from "@hono/zod-openapi";
12
+ import type { FileSystem } from "@polpo-ai/core";
13
+ export interface SkillRouteDeps {
14
+ polpoDir: string;
15
+ fs: FileSystem;
16
+ getAgents: () => Promise<Array<{
17
+ name: string;
18
+ skills?: string[];
19
+ }>>;
20
+ /** Update an agent's skills list. Used for assign/unassign. */
21
+ updateAgentSkills?: (agentName: string, skills: string[]) => Promise<void>;
22
+ }
23
+ export declare function skillRoutes(getDeps: () => SkillRouteDeps): OpenAPIHono;
24
+ //# sourceMappingURL=skills.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/routes/skills.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAkB,MAAM,mBAAmB,CAAC;AAEhE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAyBjD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,UAAU,CAAC;IACf,SAAS,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC,CAAC;IACrE,+DAA+D;IAC/D,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5E;AA+BD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,cAAc,GAAG,WAAW,CA4NtE"}
@@ -0,0 +1,234 @@
1
+ /**
2
+ * Skill routes — discover, list, read, create, delete, assign/unassign.
3
+ *
4
+ * Uses FileSystem abstraction so it works on any backend:
5
+ * - NodeFileSystem (self-hosted)
6
+ * - SandboxProxyFS (cloud, lazy)
7
+ *
8
+ * Install from GitHub (git clone) is NOT included — that's shell-specific
9
+ * and stays in the root src/server/routes/skills.ts.
10
+ */
11
+ import { OpenAPIHono, createRoute, z } from "@hono/zod-openapi";
12
+ import { resolve, join } from "node:path";
13
+ // Dynamic import to work around workspace version resolution.
14
+ // At publish time, @polpo-ai/core@^0.3.5 will be resolved correctly.
15
+ // @ts-ignore — resolved at publish time with @polpo-ai/core@^0.3.5
16
+ const coreImport = () => import("@polpo-ai/core");
17
+ // ── Helpers ──
18
+ async function loadSkillIndex(fs, polpoDir) {
19
+ const indexPath = join(polpoDir, "skills-index.json");
20
+ if (!(await fs.exists(indexPath)))
21
+ return null;
22
+ try {
23
+ const raw = await fs.readFile(indexPath);
24
+ const parsed = JSON.parse(raw);
25
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed))
26
+ return null;
27
+ return parsed;
28
+ }
29
+ catch {
30
+ return null;
31
+ }
32
+ }
33
+ async function saveSkillIndex(fs, polpoDir, index) {
34
+ await fs.mkdir(polpoDir).catch(() => { });
35
+ await fs.writeFile(join(polpoDir, "skills-index.json"), JSON.stringify(index, null, 2) + "\n");
36
+ }
37
+ async function loadSkillContent(fs, info) {
38
+ const skillPath = resolve(info.path, "SKILL.md");
39
+ try {
40
+ const raw = await fs.readFile(skillPath);
41
+ const core = await coreImport();
42
+ return { ...info, content: core.extractSkillBody(raw) };
43
+ }
44
+ catch {
45
+ return null;
46
+ }
47
+ }
48
+ // ── Route factory ──
49
+ export function skillRoutes(getDeps) {
50
+ const app = new OpenAPIHono();
51
+ // GET / — list skills with assignments
52
+ app.openapi(createRoute({
53
+ method: "get", path: "/", tags: ["Skills"], summary: "List skills with agent assignments",
54
+ responses: { 200: { content: { "application/json": { schema: z.object({ ok: z.boolean(), data: z.array(z.any()) }) } }, description: "Skills list" } },
55
+ }), async (c) => {
56
+ const { fs, polpoDir, getAgents } = getDeps();
57
+ const agents = await getAgents();
58
+ const agentNames = agents.map((a) => a.name);
59
+ const configSkills = new Map();
60
+ for (const a of agents) {
61
+ if (a.skills?.length)
62
+ configSkills.set(a.name, a.skills);
63
+ }
64
+ const core = await coreImport();
65
+ const skills = await core.listSkillsWithAssignments(fs, polpoDir, agentNames, configSkills);
66
+ return c.json({ ok: true, data: skills });
67
+ });
68
+ // GET /:name/content — full skill content
69
+ app.openapi(createRoute({
70
+ method: "get", path: "/:name/content", tags: ["Skills"], summary: "Get skill content",
71
+ request: { params: z.object({ name: z.string() }) },
72
+ responses: {
73
+ 200: { content: { "application/json": { schema: z.object({ ok: z.boolean(), data: z.any() }) } }, description: "Skill content" },
74
+ 404: { content: { "application/json": { schema: z.object({ ok: z.literal(false), error: z.string() }) } }, description: "Not found" },
75
+ },
76
+ }), async (c) => {
77
+ const { fs, polpoDir } = getDeps();
78
+ const name = c.req.param("name");
79
+ const core = await coreImport();
80
+ const pool = await core.discoverSkills(fs, polpoDir);
81
+ const info = pool.find((s) => s.name === name);
82
+ if (!info)
83
+ return c.json({ ok: false, error: "Skill not found" }, 404);
84
+ const loaded = await loadSkillContent(fs, info);
85
+ if (!loaded)
86
+ return c.json({ ok: false, error: "Could not load skill content" }, 404);
87
+ return c.json({ ok: true, data: loaded });
88
+ });
89
+ // GET /index — skills index (tags, categories)
90
+ app.openapi(createRoute({
91
+ method: "get", path: "/index", tags: ["Skills"], summary: "Get skills index",
92
+ responses: { 200: { content: { "application/json": { schema: z.object({ ok: z.boolean(), data: z.any() }) } }, description: "Skills index" } },
93
+ }), async (c) => {
94
+ const { fs, polpoDir } = getDeps();
95
+ const index = await loadSkillIndex(fs, polpoDir);
96
+ return c.json({ ok: true, data: index ?? {} });
97
+ });
98
+ // PUT /:name/index — update skill index entry (tags, category)
99
+ app.openapi(createRoute({
100
+ method: "put", path: "/:name/index", tags: ["Skills"], summary: "Update skill index entry",
101
+ request: {
102
+ params: z.object({ name: z.string() }),
103
+ body: { content: { "application/json": { schema: z.object({ tags: z.array(z.string()).optional(), category: z.string().optional() }) } } },
104
+ },
105
+ responses: { 200: { content: { "application/json": { schema: z.object({ ok: z.boolean(), data: z.any() }) } }, description: "Updated" } },
106
+ }), async (c) => {
107
+ const { fs, polpoDir } = getDeps();
108
+ const name = c.req.param("name");
109
+ const body = await c.req.json();
110
+ const index = (await loadSkillIndex(fs, polpoDir)) ?? {};
111
+ index[name] = { ...index[name], ...body };
112
+ if (index[name].tags?.length === 0)
113
+ delete index[name].tags;
114
+ if (!index[name].category)
115
+ delete index[name].category;
116
+ if (Object.keys(index[name]).length === 0)
117
+ delete index[name];
118
+ await saveSkillIndex(fs, polpoDir, index);
119
+ return c.json({ ok: true, data: { skill: name, ...body } });
120
+ });
121
+ // POST /create — create a new skill
122
+ app.openapi(createRoute({
123
+ method: "post", path: "/create", tags: ["Skills"], summary: "Create a new skill",
124
+ request: {
125
+ body: {
126
+ content: {
127
+ "application/json": {
128
+ schema: z.object({
129
+ name: z.string().min(1),
130
+ description: z.string().min(1),
131
+ content: z.string().min(1),
132
+ allowedTools: z.array(z.string()).optional(),
133
+ }),
134
+ },
135
+ },
136
+ },
137
+ },
138
+ responses: {
139
+ 200: { content: { "application/json": { schema: z.object({ ok: z.boolean(), data: z.any() }) } }, description: "Created" },
140
+ 400: { content: { "application/json": { schema: z.object({ ok: z.literal(false), error: z.string() }) } }, description: "Error" },
141
+ },
142
+ }), async (c) => {
143
+ const { fs, polpoDir } = getDeps();
144
+ const { name, description, content, allowedTools } = await c.req.json();
145
+ const targetDir = join(polpoDir, "skills", name);
146
+ if (await fs.exists(targetDir)) {
147
+ return c.json({ ok: false, error: `Skill "${name}" already exists` }, 400);
148
+ }
149
+ await fs.mkdir(targetDir);
150
+ const fmLines = [`---`, `name: ${name}`, `description: ${description}`];
151
+ if (allowedTools?.length) {
152
+ fmLines.push(`allowed-tools:`);
153
+ for (const t of allowedTools)
154
+ fmLines.push(` - ${t}`);
155
+ }
156
+ fmLines.push(`---`, ``);
157
+ await fs.writeFile(join(targetDir, "SKILL.md"), fmLines.join("\n") + content);
158
+ return c.json({ ok: true, data: { name, path: targetDir } });
159
+ });
160
+ // DELETE /:name — remove a skill
161
+ app.openapi(createRoute({
162
+ method: "delete", path: "/:name", tags: ["Skills"], summary: "Remove a skill",
163
+ request: { params: z.object({ name: z.string() }) },
164
+ responses: {
165
+ 200: { content: { "application/json": { schema: z.object({ ok: z.boolean(), data: z.any() }) } }, description: "Removed" },
166
+ 404: { content: { "application/json": { schema: z.object({ ok: z.literal(false), error: z.string() }) } }, description: "Not found" },
167
+ },
168
+ }), async (c) => {
169
+ const { fs, polpoDir } = getDeps();
170
+ const name = c.req.param("name");
171
+ const targetDir = join(polpoDir, "skills", name);
172
+ if (!(await fs.exists(targetDir))) {
173
+ return c.json({ ok: false, error: "Skill not found" }, 404);
174
+ }
175
+ await fs.remove(targetDir);
176
+ return c.json({ ok: true, data: { removed: true, name } });
177
+ });
178
+ // POST /:name/assign — assign skill to agent
179
+ app.openapi(createRoute({
180
+ method: "post", path: "/:name/assign", tags: ["Skills"], summary: "Assign skill to agent",
181
+ request: {
182
+ params: z.object({ name: z.string() }),
183
+ body: { content: { "application/json": { schema: z.object({ agent: z.string().min(1) }) } } },
184
+ },
185
+ responses: {
186
+ 200: { content: { "application/json": { schema: z.object({ ok: z.boolean(), data: z.any() }) } }, description: "Assigned" },
187
+ 400: { content: { "application/json": { schema: z.object({ ok: z.literal(false), error: z.string() }) } }, description: "Error" },
188
+ },
189
+ }), async (c) => {
190
+ const { getAgents, updateAgentSkills } = getDeps();
191
+ const skillName = c.req.param("name");
192
+ const { agent: agentName } = await c.req.json();
193
+ if (!updateAgentSkills) {
194
+ return c.json({ ok: false, error: "Skill assignment not supported" }, 400);
195
+ }
196
+ const agents = await getAgents();
197
+ const agent = agents.find((a) => a.name === agentName);
198
+ if (!agent)
199
+ return c.json({ ok: false, error: `Agent "${agentName}" not found` }, 400);
200
+ const current = agent.skills ?? [];
201
+ if (!current.includes(skillName)) {
202
+ await updateAgentSkills(agentName, [...current, skillName]);
203
+ }
204
+ return c.json({ ok: true, data: { skill: skillName, agent: agentName } });
205
+ });
206
+ // POST /:name/unassign — unassign skill from agent
207
+ app.openapi(createRoute({
208
+ method: "post", path: "/:name/unassign", tags: ["Skills"], summary: "Unassign skill from agent",
209
+ request: {
210
+ params: z.object({ name: z.string() }),
211
+ body: { content: { "application/json": { schema: z.object({ agent: z.string().min(1) }) } } },
212
+ },
213
+ responses: {
214
+ 200: { content: { "application/json": { schema: z.object({ ok: z.boolean(), data: z.any() }) } }, description: "Unassigned" },
215
+ 400: { content: { "application/json": { schema: z.object({ ok: z.literal(false), error: z.string() }) } }, description: "Error" },
216
+ },
217
+ }), async (c) => {
218
+ const { getAgents, updateAgentSkills } = getDeps();
219
+ const skillName = c.req.param("name");
220
+ const { agent: agentName } = await c.req.json();
221
+ if (!updateAgentSkills) {
222
+ return c.json({ ok: false, error: "Skill assignment not supported" }, 400);
223
+ }
224
+ const agents = await getAgents();
225
+ const agent = agents.find((a) => a.name === agentName);
226
+ if (!agent)
227
+ return c.json({ ok: false, error: `Agent "${agentName}" not found` }, 400);
228
+ const current = agent.skills ?? [];
229
+ await updateAgentSkills(agentName, current.filter((s) => s !== skillName));
230
+ return c.json({ ok: true, data: { skill: skillName, agent: agentName } });
231
+ });
232
+ return app;
233
+ }
234
+ //# sourceMappingURL=skills.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/routes/skills.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,8DAA8D;AAC9D,qEAAqE;AACrE,mEAAmE;AACnE,MAAM,UAAU,GAAG,GAAiB,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;AA6BhE,gBAAgB;AAEhB,KAAK,UAAU,cAAc,CAAC,EAAc,EAAE,QAAgB;IAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IACtD,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QAChF,OAAO,MAAoB,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;AAC1B,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,EAAc,EAAE,QAAgB,EAAE,KAAiB;IAC/E,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACzC,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACjG,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,EAAc,EAAE,IAAe;IAC7D,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACjD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;QAChC,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;AAC1B,CAAC;AAED,sBAAsB;AAEtB,MAAM,UAAU,WAAW,CAAC,OAA6B;IACvD,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC;IAE9B,uCAAuC;IACvC,GAAG,CAAC,OAAO,CACT,WAAW,CAAC;QACV,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,oCAAoC;QACzF,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE;KACvJ,CAAC,EACF,KAAK,EAAE,CAAC,EAAE,EAAE;QACV,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,OAAO,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAoB,CAAC;QACjD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM;gBAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QAC5F,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC,CACF,CAAC;IAEF,0CAA0C;IAC1C,GAAG,CAAC,OAAO,CACT,WAAW,CAAC;QACV,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,mBAAmB;QACrF,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;QACnD,SAAS,EAAE;YACT,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE;YAChI,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE;SACtI;KACF,CAAC,EACF,KAAK,EAAE,CAAM,EAAE,EAAE;QACf,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,QAAQ,CAAgB,CAAC;QACpE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,GAAG,CAAC,CAAC;QACvE,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,8BAA8B,EAAE,EAAE,GAAG,CAAC,CAAC;QACtF,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC,CACF,CAAC;IAEF,+CAA+C;IAC/C,GAAG,CAAC,OAAO,CACT,WAAW,CAAC;QACV,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,kBAAkB;QAC5E,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE,EAAE;KAC/I,CAAC,EACF,KAAK,EAAE,CAAC,EAAE,EAAE;QACV,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QACjD,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC;IACjD,CAAC,CACF,CAAC;IAEF,+DAA+D;IAC/D,GAAG,CAAC,OAAO,CACT,WAAW,CAAC;QACV,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,0BAA0B;QAC1F,OAAO,EAAE;YACP,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;YACtC,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;SAC3I;QACD,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE;KAC1I,CAAC,EACF,KAAK,EAAE,CAAM,EAAE,EAAE;QACf,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,CAAC,MAAM,cAAc,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACzD,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;QAC1C,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;QAC5D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;QACvD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9D,MAAM,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC1C,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC;IAC9D,CAAC,CACF,CAAC;IAEF,oCAAoC;IACpC,GAAG,CAAC,OAAO,CACT,WAAW,CAAC;QACV,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,oBAAoB;QAChF,OAAO,EAAE;YACP,IAAI,EAAE;gBACJ,OAAO,EAAE;oBACP,kBAAkB,EAAE;wBAClB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;4BACf,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;4BACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;4BAC9B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;4BAC1B,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;yBAC7C,CAAC;qBACH;iBACF;aACF;SACF;QACD,SAAS,EAAE;YACT,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE;YAC1H,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE;SAClI;KACF,CAAC,EACF,KAAK,EAAE,CAAM,EAAE,EAAE;QACf,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAC;QACnC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAExE,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACjD,IAAI,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,IAAI,kBAAkB,EAAE,EAAE,GAAG,CAAC,CAAC;QAC7E,CAAC;QAED,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAE1B,MAAM,OAAO,GAAG,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,EAAE,gBAAgB,WAAW,EAAE,CAAC,CAAC;QACxE,IAAI,YAAY,EAAE,MAAM,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC/B,KAAK,MAAM,CAAC,IAAI,YAAY;gBAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAExB,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;QAC9E,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IAC/D,CAAC,CACF,CAAC;IAEF,iCAAiC;IACjC,GAAG,CAAC,OAAO,CACT,WAAW,CAAC;QACV,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,gBAAgB;QAC7E,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;QACnD,SAAS,EAAE;YACT,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE;YAC1H,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE;SACtI;KACF,CAAC,EACF,KAAK,EAAE,CAAM,EAAE,EAAE;QACf,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,GAAG,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3B,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC,CACF,CAAC;IAEF,6CAA6C;IAC7C,GAAG,CAAC,OAAO,CACT,WAAW,CAAC;QACV,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,uBAAuB;QACzF,OAAO,EAAE;YACP,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;YACtC,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;SAC9F;QACD,SAAS,EAAE;YACT,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE;YAC3H,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE;SAClI;KACF,CAAC,EACF,KAAK,EAAE,CAAM,EAAE,EAAE;QACf,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,GAAG,OAAO,EAAE,CAAC;QACnD,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAEhD,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,gCAAgC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC7E,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,SAAS,aAAa,EAAE,EAAE,GAAG,CAAC,CAAC;QAEvF,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACjC,MAAM,iBAAiB,CAAC,SAAS,EAAE,CAAC,GAAG,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IAC5E,CAAC,CACF,CAAC;IAEF,mDAAmD;IACnD,GAAG,CAAC,OAAO,CACT,WAAW,CAAC;QACV,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,2BAA2B;QAC/F,OAAO,EAAE;YACP,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;YACtC,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;SAC9F;QACD,SAAS,EAAE;YACT,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE;YAC7H,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE;SAClI;KACF,CAAC,EACF,KAAK,EAAE,CAAM,EAAE,EAAE;QACf,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,GAAG,OAAO,EAAE,CAAC;QACnD,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAEhD,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,gCAAgC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC7E,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,SAAS,aAAa,EAAE,EAAE,GAAG,CAAC,CAAC;QAEvF,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;QACnC,MAAM,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC;QAE3E,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IAC5E,CAAC,CACF,CAAC;IAEF,OAAO,GAAG,CAAC;AACb,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polpo-ai/server",
3
- "version": "0.2.9",
3
+ "version": "0.2.10",
4
4
  "description": "Polpo API route factories — edge-compatible Hono routes for tasks, agents, missions, vault, and more",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -21,7 +21,7 @@
21
21
  ],
22
22
  "dependencies": {
23
23
  "@hono/zod-openapi": ">=1.0.0",
24
- "@polpo-ai/core": "^0.2.5",
24
+ "@polpo-ai/core": "^0.3.5",
25
25
  "hono": ">=4.0.0",
26
26
  "nanoid": ">=5.0.0"
27
27
  },