@workerkit/core 0.3.0 → 0.3.2
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 +125 -0
- package/README.md +1 -1
- package/dist/descriptors/index.d.ts +1 -1
- package/dist/descriptors/index.js +1 -1
- package/dist/descriptors/index.js.map +1 -1
- package/dist/descriptors/manage.d.ts.map +1 -1
- package/dist/descriptors/manage.js +236 -19
- package/dist/descriptors/manage.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,131 @@ and the package adheres to [Semantic Versioning](https://semver.org/).
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.3.2] - 2026-09-12
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
Five manager descriptors: the fleet-operations lane. Reading the state of a
|
|
14
|
+
fleet took a crawl over `workers_list`, `worker_get` and `runs_feed`; the
|
|
15
|
+
account's headroom, a run's raw process log, fan-out and deletion were not
|
|
16
|
+
reachable from the toolset at all. The registry now ships 79 manager and 9
|
|
17
|
+
anonymous descriptors.
|
|
18
|
+
|
|
19
|
+
- **`fleet_health`** is the digest to brief from. A fleet operated from a chat
|
|
20
|
+
window rots quietly: workers installed but never deployed while their
|
|
21
|
+
schedules sit enabled, deployments paused with due times drifting into the
|
|
22
|
+
past, runs that ended by asking a question nobody saw, last runs refused at
|
|
23
|
+
the gate. One call returns the counts plus typed sections (`blocked`,
|
|
24
|
+
`notDeployed`, `overdueSchedules`, `awaitingInput`, `lastRunAttention`), each
|
|
25
|
+
row naming the worker and the fix. Paused and expired workers are counted,
|
|
26
|
+
never listed. The question preview inside `awaitingInput` is run content and
|
|
27
|
+
needs `readRuns`; the rest rides `readWorkers`.
|
|
28
|
+
- **`account_usage`** is the headroom read: plan tier, worker slots,
|
|
29
|
+
hosted-deployment slots, the wallet's spendable balance with the top-up URL to
|
|
30
|
+
hand a human, the plan's request windows and settled run spend — so a 402 on
|
|
31
|
+
`kit_install`, `worker_deploy` or a scheduled run is something an agent plans
|
|
32
|
+
around rather than discovers. Rides `readWorkers`.
|
|
33
|
+
- **`run_transcript`** reads a run's stored LLM process log, the raw record
|
|
34
|
+
behind the digest, which was readable only in the dashboard. It is opt-in per
|
|
35
|
+
deployment (`transcriptRetention`) and kept for 7 days, so the description
|
|
36
|
+
teaches the agent to read the receipt's `transcriptAvailable` first and to
|
|
37
|
+
expect 404 `no_transcript` as the normal answer on a worker that never opted
|
|
38
|
+
in. Rides `readRuns`.
|
|
39
|
+
- **`run_bulk`** fans one prompt out across up to 20 workers in one call, each
|
|
40
|
+
named by `workerId` (preferred) or its deprecated `tokenId`, on a window of
|
|
41
|
+
its own (2 calls a minute, 20 an hour per account). Like `worker_clone_bulk`
|
|
42
|
+
it is not atomic and reports per item — and unlike it, a miss never aborts
|
|
43
|
+
the batch: an unknown id, a missing deployment or a cap already hit lands on
|
|
44
|
+
that item and the loop goes on. A Skipped receipt counts as a success (a run
|
|
45
|
+
was minted; its `skipReason` says why it did not start). Rides `runWorkers`.
|
|
46
|
+
- **`worker_delete`** removes a worker. Deleting existed only in the WorkerKit
|
|
47
|
+
dashboard, so an agent could create workers — `kit_install`, `worker_clone` —
|
|
48
|
+
and never remove one, which also left `kit_install`'s 402 worker-cap wall
|
|
49
|
+
with no fix an agent could apply. It is permanent and not reversible by any
|
|
50
|
+
call: the key stops working, the schedules stop, and the instruction, memory,
|
|
51
|
+
deployment and delivery destinations go. Two things the description teaches
|
|
52
|
+
because an agent gets them wrong by default: deleting an orchestrator deletes
|
|
53
|
+
its sub-workers too (`subWorkersDeleted` says how many), and
|
|
54
|
+
`worker_set_enabled` with `enabled:false` is the reversible thing to reach
|
|
55
|
+
for when someone says "stop" or "turn off". Run receipts survive; the freed
|
|
56
|
+
slot is the fix for 402 `limit_exceeded`. Requires the new `deleteWorkers`
|
|
57
|
+
scope.
|
|
58
|
+
|
|
59
|
+
### Changed
|
|
60
|
+
|
|
61
|
+
- **`workers_list`** takes filters — `status`, `deployed`, `readiness`, `q` —
|
|
62
|
+
and answers `totalWorkers` (the unfiltered count, so an empty page is
|
|
63
|
+
readable). Every row now carries `readiness`, and `lastRun` carries
|
|
64
|
+
`skipReason` and `errorCode`.
|
|
65
|
+
- **`runs_feed`** and **`worker_runs`**: `awaitingInput` joined the status
|
|
66
|
+
filter and the outcome vocabulary. The server always accepted it; the closed
|
|
67
|
+
enum here did not, which made the questions a fleet was waiting on
|
|
68
|
+
unreachable from the feed.
|
|
69
|
+
- **`budget_get`** and **`budget_set`**: `maxConcurrentRuns` is set by the
|
|
70
|
+
account's plan — Free 5, Pro 20, Team 50, Enterprise uncapped — rather than
|
|
71
|
+
fixed at 1, and stays absent from `budget_set` because raising it is an
|
|
72
|
+
upgrade. It bounds runs started on demand; **`schedule_create`** and
|
|
73
|
+
**`schedule_update`** now say that a schedule never overlaps itself whatever
|
|
74
|
+
the plan allows, and **`worker_run`** points to `run_bulk` for fan-out.
|
|
75
|
+
- **`worker_set_enabled`** now names itself as the reversible half of the pair,
|
|
76
|
+
so the permanent one is never picked by accident, and spells out that
|
|
77
|
+
stopping an orchestrator cascades to its sub-workers while re-enabling brings
|
|
78
|
+
back only the parent.
|
|
79
|
+
- **`kit_install`** names `worker_delete` as the second way out of the 402
|
|
80
|
+
worker-cap wall, to be proposed only with the person's agreement.
|
|
81
|
+
|
|
82
|
+
### Note
|
|
83
|
+
|
|
84
|
+
`worker_delete` needs the new `deleteWorkers` scope. Like every scope younger
|
|
85
|
+
than the manager-key surface, a key minted before it existed does not carry
|
|
86
|
+
it — including one minted with "all" — so a 403 there is fixed by an account
|
|
87
|
+
admin re-scoping the key, never by retrying.
|
|
88
|
+
|
|
89
|
+
## [0.3.1] - 2026-09-11
|
|
90
|
+
|
|
91
|
+
### Added
|
|
92
|
+
|
|
93
|
+
Six manager descriptors: the hosted-deployment lane. Deploying a worker existed
|
|
94
|
+
only in the WorkerKit dashboard, so a worker installed through the API, MCP or
|
|
95
|
+
the CLI was created fully configured and could never run — its schedules never
|
|
96
|
+
fired and `worker_run` answered 409 `not_deployed` with nothing in the toolset
|
|
97
|
+
able to fix it. The registry now ships 74 manager and 9 anonymous descriptors.
|
|
98
|
+
|
|
99
|
+
- **`worker_deploy`** puts a worker on the hosted runtime: pick the model and
|
|
100
|
+
the per-run / per-day spend ceilings, or send nothing and take the kit's
|
|
101
|
+
recommended model with the platform defaults. Its refusals are the deploy
|
|
102
|
+
gauntlet and each names its fix — no instruction, an app still unconnected,
|
|
103
|
+
an unfunded wallet, a model the account's tier cannot reach.
|
|
104
|
+
- **`deployment_get`** and **`deployments_list`** read one deployment or every
|
|
105
|
+
deployed worker on the account — the fleet answer to which workers can
|
|
106
|
+
actually run. A worker in `workers_list` but not here is inert.
|
|
107
|
+
- **`deployment_update`** changes a live deployment (model, reasoning,
|
|
108
|
+
transcript retention, ceilings) and pauses or resumes it. Pause is the
|
|
109
|
+
reversible stop that keeps the model and the ceilings.
|
|
110
|
+
- **`worker_undeploy`** takes a worker off the runtime, keeping the worker, its
|
|
111
|
+
instruction, memory, schedules and its own key.
|
|
112
|
+
- **`models_list`** is the model picker the deployment calls need: what this
|
|
113
|
+
account may deploy on, priced per million tokens, with the reasoning
|
|
114
|
+
vocabulary each model accepts and the providers the account holds its own key
|
|
115
|
+
for.
|
|
116
|
+
|
|
117
|
+
### Changed
|
|
118
|
+
|
|
119
|
+
- **`kit_install`** takes `deploy` and `deployment`, so installing and deploying
|
|
120
|
+
are one call. A deploy refused after the install still returns 201 with
|
|
121
|
+
`deploymentError` naming what to fix — the worker exists either way, so the
|
|
122
|
+
fix is `worker_deploy`, never a second install.
|
|
123
|
+
- **`workers_list`** and **`worker_get`** now describe the `deployment` field
|
|
124
|
+
each worker carries, and that `null` there means the worker will never run
|
|
125
|
+
whatever its readiness says.
|
|
126
|
+
|
|
127
|
+
### Note
|
|
128
|
+
|
|
129
|
+
The deployment writes need the new `manageDeployments` scope. Like every scope
|
|
130
|
+
younger than the manager-key surface, a key minted before it existed does not
|
|
131
|
+
carry it — including one minted with "all" — so a 403 there is fixed by an
|
|
132
|
+
account admin re-scoping the key, never by retrying.
|
|
133
|
+
|
|
9
134
|
## [0.3.0] - 2026-09-10
|
|
10
135
|
|
|
11
136
|
### Added
|
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
[](LICENSE)
|
|
7
7
|
|
|
8
8
|
The shareable [WorkerKit](https://workerkit.ai) surface: an HTTP API client, the
|
|
9
|
-
declarative tool-descriptor registry (
|
|
9
|
+
declarative tool-descriptor registry (79 authenticated fleet-management tools +
|
|
10
10
|
9 anonymous kits-directory tools), and the single wire-execution path that turns
|
|
11
11
|
a descriptor plus parameters into exactly one upstream request.
|
|
12
12
|
|
|
@@ -3,7 +3,7 @@ export type { HttpMethod, ToolAnnotations, ToolDescriptor } from "./types.js";
|
|
|
3
3
|
export { manageDescriptors } from "./manage.js";
|
|
4
4
|
export { directoryDescriptors, kitDetailData, kitDetailFooter, kitListData, listFooter, publisherPageData, publisherPageFooter, } from "./directory.js";
|
|
5
5
|
import type { ToolDescriptor } from "./types.js";
|
|
6
|
-
/** Every descriptor this package ships —
|
|
6
|
+
/** Every descriptor this package ships — 79 manager + 9 anonymous. */
|
|
7
7
|
export declare const allDescriptors: readonly ToolDescriptor[];
|
|
8
8
|
/** Look a descriptor up by its tool name. */
|
|
9
9
|
export declare function byName(name: string): ToolDescriptor | undefined;
|
|
@@ -3,7 +3,7 @@ export { manageDescriptors } from "./manage.js";
|
|
|
3
3
|
export { directoryDescriptors, kitDetailData, kitDetailFooter, kitListData, listFooter, publisherPageData, publisherPageFooter, } from "./directory.js";
|
|
4
4
|
import { manageDescriptors } from "./manage.js";
|
|
5
5
|
import { directoryDescriptors } from "./directory.js";
|
|
6
|
-
/** Every descriptor this package ships —
|
|
6
|
+
/** Every descriptor this package ships — 79 manager + 9 anonymous. */
|
|
7
7
|
export const allDescriptors = [
|
|
8
8
|
...manageDescriptors,
|
|
9
9
|
...directoryDescriptors,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/descriptors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,MAAM,EACN,SAAS,EACT,OAAO,EACP,MAAM,GACP,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,sEAAsE;AACtE,MAAM,CAAC,MAAM,cAAc,GAA8B;IACvD,GAAG,iBAAiB;IACpB,GAAG,oBAAoB;CACxB,CAAC;AAEF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAEpE,6CAA6C;AAC7C,MAAM,UAAU,MAAM,CAAC,IAAY;IACjC,OAAO,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC","sourcesContent":["export {\n CREATE,\n DELETE,\n READ_ONLY,\n TRIGGER,\n UPDATE,\n} from \"./types.js\";\nexport type { HttpMethod, ToolAnnotations, ToolDescriptor } from \"./types.js\";\n\nexport { manageDescriptors } from \"./manage.js\";\nexport {\n directoryDescriptors,\n kitDetailData,\n kitDetailFooter,\n kitListData,\n listFooter,\n publisherPageData,\n publisherPageFooter,\n} from \"./directory.js\";\n\nimport type { ToolDescriptor } from \"./types.js\";\nimport { manageDescriptors } from \"./manage.js\";\nimport { directoryDescriptors } from \"./directory.js\";\n\n/** Every descriptor this package ships —
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/descriptors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,MAAM,EACN,SAAS,EACT,OAAO,EACP,MAAM,GACP,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,sEAAsE;AACtE,MAAM,CAAC,MAAM,cAAc,GAA8B;IACvD,GAAG,iBAAiB;IACpB,GAAG,oBAAoB;CACxB,CAAC;AAEF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAEpE,6CAA6C;AAC7C,MAAM,UAAU,MAAM,CAAC,IAAY;IACjC,OAAO,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC","sourcesContent":["export {\n CREATE,\n DELETE,\n READ_ONLY,\n TRIGGER,\n UPDATE,\n} from \"./types.js\";\nexport type { HttpMethod, ToolAnnotations, ToolDescriptor } from \"./types.js\";\n\nexport { manageDescriptors } from \"./manage.js\";\nexport {\n directoryDescriptors,\n kitDetailData,\n kitDetailFooter,\n kitListData,\n listFooter,\n publisherPageData,\n publisherPageFooter,\n} from \"./directory.js\";\n\nimport type { ToolDescriptor } from \"./types.js\";\nimport { manageDescriptors } from \"./manage.js\";\nimport { directoryDescriptors } from \"./directory.js\";\n\n/** Every descriptor this package ships — 79 manager + 9 anonymous. */\nexport const allDescriptors: readonly ToolDescriptor[] = [\n ...manageDescriptors,\n ...directoryDescriptors,\n];\n\nconst byNameIndex = new Map(allDescriptors.map((d) => [d.name, d]));\n\n/** Look a descriptor up by its tool name. */\nexport function byName(name: string): ToolDescriptor | undefined {\n return byNameIndex.get(name);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manage.d.ts","sourceRoot":"","sources":["../../src/descriptors/manage.ts"],"names":[],"mappings":"AAMA,OAAO,EAA8C,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"manage.d.ts","sourceRoot":"","sources":["../../src/descriptors/manage.ts"],"names":[],"mappings":"AAMA,OAAO,EAA8C,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAi7D7F,eAAO,MAAM,iBAAiB,EAAE,SAAS,cAAc,EAgFtD,CAAC"}
|