@pouchy_ai/admin-sdk 0.28.0 → 0.29.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/CHANGELOG.md +22 -0
- package/README.md +3 -2
- package/dist/index.d.ts +20 -1
- package/dist/index.js +2 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,28 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to `@pouchy_ai/admin-sdk` are documented here.
|
|
4
4
|
|
|
5
|
+
## 0.29.0 — 2026-08-31
|
|
6
|
+
|
|
7
|
+
- **`setSkillAutoRunTools(slug, toolNames)` — the per-tool confirm exemptions
|
|
8
|
+
(免确认工具) the Admin API could not reach.** Admin API 1.12.0. The knob
|
|
9
|
+
existed on the owner plane and in the dashboard since 2026-08 and was never
|
|
10
|
+
added here, so a headless provisioning flow could install a skill, rate-limit
|
|
11
|
+
it, grant its domains and attach it to an agent — and then answer nothing.
|
|
12
|
+
For MCP skills that is not an edge case: `mcpRecord` hard-codes
|
|
13
|
+
`platformSafe: false`, so every `run_skill` raises a confirm, and a platform
|
|
14
|
+
instance has no human who could ever approve one. This was the only route out.
|
|
15
|
+
|
|
16
|
+
A full REPLACE, not a merge — pass the complete list each call. Names the
|
|
17
|
+
skill does not declare are dropped and echoed in `dropped`, so a typo is
|
|
18
|
+
visible rather than silently ungranted. Grant the READ tools (a storefront's
|
|
19
|
+
`search_catalog` / `get_product`); leave cart mutations and order placement
|
|
20
|
+
gated.
|
|
21
|
+
|
|
22
|
+
Opening this to a long-lived admin key was an explicit decision, not a
|
|
23
|
+
symmetry fix: the confirm being waived is not a human in the loop (on an
|
|
24
|
+
instance nobody can approve it), and the same key already grants the strictly
|
|
25
|
+
wider `freeHttp` + `grantedDomains`.
|
|
26
|
+
|
|
5
27
|
## 0.28.0 — 2026-08-29
|
|
6
28
|
|
|
7
29
|
- **`installSkill` / `importAgentPlugin` now type the re-push outcome.** Both
|
package/README.md
CHANGED
|
@@ -243,7 +243,8 @@ that voice, or the voice catalog is temporarily unreachable; retry),
|
|
|
243
243
|
like the other voice planes — there is no separate platform credit rate; it is
|
|
244
244
|
bounded by an input cap and the shared per-IP utility rate limit.
|
|
245
245
|
|
|
246
|
-
Every skill knob (`setSkillRate`, `setSkillDailyCap`, `grantSkill
|
|
246
|
+
Every skill knob (`setSkillRate`, `setSkillDailyCap`, `grantSkill`,
|
|
247
|
+
`setSkillAutoRunTools`) returns
|
|
247
248
|
`SkillKnobResult<T>` — the knob you set plus `reprovisioned` (instances the new
|
|
248
249
|
def reached) and `truncated`. A knob only binds a running agent once the def
|
|
249
250
|
reaches its instance, so `truncated: true` means the sweep hit its cap (100
|
|
@@ -436,7 +437,7 @@ Reads (`GET`) are not covered by that bucket. `retryAfter` is available from
|
|
|
436
437
|
| Secret keys | `listKeys` · `createKey` · `revokeKey` · `rotateKey` (24 h grace) |
|
|
437
438
|
| End users | `listUsers({ limit?, cursor? })` (cursor-paginated — the response's `nextCursor` feeds the next page; filter variants: `external_user_id` / `external_user_prefix`) · `setUserSuspended` · `deleteUser` · `getUserWallet` · `getUserTraces` · `importUsers` · `exportUser` · `getUserSessions` · `getUserTurns` |
|
|
438
439
|
| Knowledge | `listKnowledge` · `ingestKnowledge` · `ingestKnowledgeFile` (PDF/audio/video/image) · `ingestKnowledgeUrl` (web page) · `searchKnowledge` (recall probe) · `deleteKnowledge` |
|
|
439
|
-
| Skills | `listSkills` · `installSkill` · `updateSkill` · `setSkillRate` · `setSkillDailyCap` · `grantSkill` (free-HTTP) · `compileSkill` (prose→tools) · `uninstallSkill` · `importAgentPlugin` / `exportAgentPlugin` (Agent Plugins 1.0.0 interop) |
|
|
440
|
+
| Skills | `listSkills` · `installSkill` · `updateSkill` · `setSkillRate` · `setSkillDailyCap` · `grantSkill` (free-HTTP) · `setSkillAutoRunTools` (免确认工具 — required to arm an MCP skill on an instance) · `compileSkill` (prose→tools) · `uninstallSkill` · `importAgentPlugin` / `exportAgentPlugin` (Agent Plugins 1.0.0 interop) |
|
|
440
441
|
| Credentials | `listCredentials` · `putCredentials` · `deleteCredentials` |
|
|
441
442
|
| Channels | `listChannels` · `createChannel` · `getChannel` · `updateChannel` · `deleteChannel` |
|
|
442
443
|
| Schedules | `listSchedules` · `createSchedule` · `getSchedule` · `updateSchedule` · `deleteSchedule` |
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const ADMIN_SDK_VERSION = "0.
|
|
1
|
+
export declare const ADMIN_SDK_VERSION = "0.29.0";
|
|
2
2
|
export declare const DEFAULT_BASE_URL = "https://pouchy.ai/v1/admin";
|
|
3
3
|
/** Deadline for the routes whose server handler declares `maxDuration: 300` —
|
|
4
4
|
* the server's own ceiling plus headroom, so a client abort can only ever mean
|
|
@@ -888,6 +888,25 @@ export interface AdminClient {
|
|
|
888
888
|
freeHttp: boolean;
|
|
889
889
|
grantedDomains: string[];
|
|
890
890
|
}>>;
|
|
891
|
+
/** Per-tool confirm exemptions (免确认工具) — the tools an INSTANCE may call
|
|
892
|
+
* without a confirm card.
|
|
893
|
+
*
|
|
894
|
+
* The one knob a headless flow could not reach before 0.29.0, and for MCP
|
|
895
|
+
* skills it is not optional: `mcpRecord` hard-codes `platformSafe: false`,
|
|
896
|
+
* so every `run_skill` raises a confirm — and a platform instance has no
|
|
897
|
+
* human who could ever approve one (a synthetic uid has no Firebase user).
|
|
898
|
+
* Without this the skill installs, rate-limits and attaches cleanly and then
|
|
899
|
+
* answers nothing. Grant the READ tools (a storefront's `search_catalog` /
|
|
900
|
+
* `get_product`) and leave anything that mutates a cart or places an order
|
|
901
|
+
* gated.
|
|
902
|
+
*
|
|
903
|
+
* A full REPLACE, not a merge — pass the complete list every call. Names the
|
|
904
|
+
* skill does not declare are dropped and echoed back in `dropped`, so a typo
|
|
905
|
+
* is visible rather than silently ungranted. */
|
|
906
|
+
setSkillAutoRunTools(slug: string, toolNames: string[]): Promise<SkillKnobResult<{
|
|
907
|
+
autoRunTools: string[];
|
|
908
|
+
dropped: string[];
|
|
909
|
+
}>>;
|
|
891
910
|
uninstallSkill(slug: string): Promise<{
|
|
892
911
|
deleted: boolean;
|
|
893
912
|
}>;
|
package/dist/index.js
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
// import { createAdminClient } from '@pouchy_ai/admin-sdk';
|
|
9
9
|
// const admin = createAdminClient({ adminKey: process.env.POUCHY_ADMIN_KEY! });
|
|
10
10
|
// const { agents } = await admin.listAgents();
|
|
11
|
-
export const ADMIN_SDK_VERSION = '0.
|
|
11
|
+
export const ADMIN_SDK_VERSION = '0.29.0';
|
|
12
12
|
export const DEFAULT_BASE_URL = 'https://pouchy.ai/v1/admin';
|
|
13
13
|
/** Default per-request timeout (ms). A hung upstream otherwise never rejects. */
|
|
14
14
|
const DEFAULT_TIMEOUT_MS = 30_000;
|
|
@@ -266,6 +266,7 @@ export function createAdminClient(opts) {
|
|
|
266
266
|
listSkills: () => request('GET', '/skills'),
|
|
267
267
|
installSkill: (input) => request('POST', '/skills', input),
|
|
268
268
|
updateSkill: (slug, patch) => request('PATCH', `/skills/${encodeURIComponent(slug)}`, patch),
|
|
269
|
+
setSkillAutoRunTools: (slug, toolNames) => request('PATCH', `/skills/${encodeURIComponent(slug)}`, { autoRunTools: toolNames }),
|
|
269
270
|
setSkillRate: (slug, ratePerMin) => request('PATCH', `/skills/${encodeURIComponent(slug)}`, { ratePerMin }),
|
|
270
271
|
setSkillDailyCap: (slug, maxCallsPerDay) => request('PATCH', `/skills/${encodeURIComponent(slug)}`, { maxCallsPerDay }),
|
|
271
272
|
compileSkill: (slug) => request('POST', `/skills/${encodeURIComponent(slug)}/compile`, {}),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pouchy_ai/admin-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.29.0",
|
|
4
4
|
"description": "Typed TypeScript client for the Pouchy Admin API \u2014 manage agents, keys, end users, knowledge, skills, channels, schedules, webhooks and credentials headlessly, with a project Admin key.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE",
|