@lepsto/sdk-app 85.0.0 → 87.0.1
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/README.md +38 -6
- package/dist/{chunk-HRKHYP5B.js → chunk-EMK3O6JA.js} +4 -4
- package/dist/{chunk-HRKHYP5B.js.map → chunk-EMK3O6JA.js.map} +1 -1
- package/dist/index.cjs +4 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/playground/index.cjs.map +1 -1
- package/dist/playground/index.js +1 -1
- package/docs/README.md +6 -6
- package/docs/recipes/access.md +12 -12
- package/docs/recipes/local-dev.md +2 -2
- package/docs/recipes/sdk-usage.md +11 -11
- package/docs/rules.md +10 -10
- package/package.json +13 -2
- package/src/gen/bindings.gen.ts +2 -2
- package/src/gen/manifest.gen.ts +2 -2
package/dist/playground/index.js
CHANGED
package/docs/README.md
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
# Building a Lessly App
|
|
2
2
|
|
|
3
|
-
This is the entry point for building a Lessly **App** with `@
|
|
3
|
+
This is the entry point for building a Lessly **App** with `@lepsto/sdk-app`.
|
|
4
4
|
Read this file first, then `rules.md`, then whichever recipe under `recipes/`
|
|
5
5
|
matches the task in front of you.
|
|
6
6
|
|
|
7
7
|
This path is stable: every scaffolded app's `AGENTS.md` points agents at
|
|
8
|
-
`node_modules/@lessly/sdk-app/docs/README.md
|
|
8
|
+
`node_modules/@lepsto/sdk-app/docs/README.md` (or `node_modules/@lessly/sdk-app/docs/README.md` under the legacy name). It will not move or be renamed.
|
|
9
9
|
|
|
10
10
|
## What an App is
|
|
11
11
|
|
|
12
12
|
A Lessly **App** is a pure-frontend Module Federation remote built on
|
|
13
|
-
`@
|
|
13
|
+
`@lepsto/sdk-app`. It ships no backend, no database, and no MCP endpoint — all
|
|
14
14
|
platform data access goes through the SDK, and all identity/session state is
|
|
15
15
|
handed to it by the shell that hosts it.
|
|
16
16
|
|
|
@@ -25,7 +25,7 @@ does not apply.
|
|
|
25
25
|
|
|
26
26
|
- **Frontend-only.** No server process, no database, no MCP endpoint ships with
|
|
27
27
|
an App.
|
|
28
|
-
- **Data only via `@
|
|
28
|
+
- **Data only via `@lepsto/sdk-app`.** All platform API calls go through the SDK
|
|
29
29
|
client (`createLesslyApp`) or its generated query/mutation option factories.
|
|
30
30
|
No direct `fetch` to a platform host, no other HTTP client for platform data.
|
|
31
31
|
- **Auth is ambient.** The hosting shell owns tokens, login, refresh, and
|
|
@@ -78,11 +78,11 @@ you need to touch it directly.
|
|
|
78
78
|
|
|
79
79
|
## Keeping this guide current
|
|
80
80
|
|
|
81
|
-
This guide ships inside `@
|
|
81
|
+
This guide ships inside `@lepsto/sdk-app` itself, so updating the SDK updates
|
|
82
82
|
the guide in the same step:
|
|
83
83
|
|
|
84
84
|
```sh
|
|
85
|
-
npm i @
|
|
85
|
+
npm i @lepsto/sdk-app@latest
|
|
86
86
|
```
|
|
87
87
|
|
|
88
88
|
Always use the `@latest` form (not `npm update`) — see `rules.md` APP-007 for
|
package/docs/recipes/access.md
CHANGED
|
@@ -15,7 +15,7 @@ is the authority. See APP-012 in `../rules.md`.
|
|
|
15
15
|
Every client from `createLesslyApp` carries an `access` object:
|
|
16
16
|
|
|
17
17
|
```ts
|
|
18
|
-
import { createLesslyApp } from '@
|
|
18
|
+
import { createLesslyApp } from '@lepsto/sdk-app';
|
|
19
19
|
|
|
20
20
|
const app = createLesslyApp({ baseUrl: '/api', productId });
|
|
21
21
|
|
|
@@ -80,7 +80,7 @@ drift from the method it is meant to describe; the method cannot.
|
|
|
80
80
|
```tsx
|
|
81
81
|
// src/App.tsx
|
|
82
82
|
import { useEffect } from 'react';
|
|
83
|
-
import { createLesslyApp } from '@
|
|
83
|
+
import { createLesslyApp } from '@lepsto/sdk-app';
|
|
84
84
|
import { TooltipProvider } from '@lessly/ui';
|
|
85
85
|
|
|
86
86
|
export default function App({ productId }: { productId: string }) {
|
|
@@ -117,8 +117,8 @@ refetched on a timer.
|
|
|
117
117
|
## 2. `useCan` on primary actions — disable, don't hide
|
|
118
118
|
|
|
119
119
|
```tsx
|
|
120
|
-
import { accessReason } from '@
|
|
121
|
-
import { useAccess, useCan } from '@
|
|
120
|
+
import { accessReason } from '@lepsto/sdk-app';
|
|
121
|
+
import { useAccess, useCan } from '@lepsto/sdk-app/react';
|
|
122
122
|
import { Button, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@lessly/ui';
|
|
123
123
|
|
|
124
124
|
function AddDomainButton({ app, onClick }: { app: App; onClick: () => void }) {
|
|
@@ -183,7 +183,7 @@ Every App says the same sentence, and both of its values come off the generated
|
|
|
183
183
|
method:
|
|
184
184
|
|
|
185
185
|
```tsx
|
|
186
|
-
import { accessReason } from '@
|
|
186
|
+
import { accessReason } from '@lepsto/sdk-app';
|
|
187
187
|
|
|
188
188
|
accessReason(app.mail.domain.create);
|
|
189
189
|
// "Requires level:admin (mail_domain_create). Ask an admin of this product."
|
|
@@ -225,12 +225,12 @@ from the catalog when the key is one the SDK knows, but a key with **no** catalo
|
|
|
225
225
|
entry can only be matched by key pattern — no level grant reaches it, which is
|
|
226
226
|
exactly what the gateway does with an uncatalogued key.
|
|
227
227
|
|
|
228
|
-
> **On an older SDK.** `accessReason` ships from `@
|
|
228
|
+
> **On an older SDK.** `accessReason` ships from `@lepsto/sdk-app`. On a version
|
|
229
229
|
> before it landed, define it locally with exactly this signature and body, then
|
|
230
230
|
> replace it with the import when you upgrade:
|
|
231
231
|
>
|
|
232
232
|
> ```ts
|
|
233
|
-
> import type { Operation } from '@
|
|
233
|
+
> import type { Operation } from '@lepsto/sdk-app';
|
|
234
234
|
>
|
|
235
235
|
> const ok = (v: unknown): v is string => typeof v === 'string' && v.trim() !== '';
|
|
236
236
|
>
|
|
@@ -276,11 +276,11 @@ off the method.
|
|
|
276
276
|
|
|
277
277
|
Sometimes there is no method to read `op.level` from: an App test double that has
|
|
278
278
|
to answer `can()` for a key, a runtime probe over keys it was handed. The answer
|
|
279
|
-
is still not a literal and still not a table in the App — `@
|
|
279
|
+
is still not a literal and still not a table in the App — `@lepsto/sdk-app`
|
|
280
280
|
exports the catalog's own level map:
|
|
281
281
|
|
|
282
282
|
```ts
|
|
283
|
-
import { operations, accessReason } from '@
|
|
283
|
+
import { operations, accessReason } from '@lepsto/sdk-app';
|
|
284
284
|
|
|
285
285
|
operations['mail_domain_create']; // 'admin'
|
|
286
286
|
operations['analytics_insight_delete']; // 'write'
|
|
@@ -346,7 +346,7 @@ if (state === 'loading') return <Spinner />;
|
|
|
346
346
|
if (state === 'error') return <p>Could not load your permissions. <button onClick={reload}>Retry</button></p>;
|
|
347
347
|
```
|
|
348
348
|
|
|
349
|
-
React is an **optional peer** of this package: `@
|
|
349
|
+
React is an **optional peer** of this package: `@lepsto/sdk-app/react` is only
|
|
350
350
|
loaded if you import it, and installing the SDK does not pull React in.
|
|
351
351
|
|
|
352
352
|
### Actions without a button
|
|
@@ -594,9 +594,9 @@ change between the load and the click, and a screen can always be reached
|
|
|
594
594
|
before the snapshot is.
|
|
595
595
|
|
|
596
596
|
```tsx
|
|
597
|
-
import { isAccessDenied } from '@
|
|
597
|
+
import { isAccessDenied } from '@lepsto/sdk-app';
|
|
598
598
|
import { useQuery } from '@tanstack/react-query';
|
|
599
|
-
import { mailDomainListQueryOptions } from '@
|
|
599
|
+
import { mailDomainListQueryOptions } from '@lepsto/sdk-app/mail';
|
|
600
600
|
|
|
601
601
|
function DomainList({ app }: { app: App }) {
|
|
602
602
|
const { data, error, isPending } = useQuery(mailDomainListQueryOptions(app, {}));
|
|
@@ -101,11 +101,11 @@ Update the SDK and `@lessly/app-dev` with the `@latest` form, never `npm
|
|
|
101
101
|
update`:
|
|
102
102
|
|
|
103
103
|
```sh
|
|
104
|
-
npm i @
|
|
104
|
+
npm i @lepsto/sdk-app@latest
|
|
105
105
|
npm i @lessly/app-dev@latest
|
|
106
106
|
```
|
|
107
107
|
|
|
108
|
-
`@
|
|
108
|
+
`@lepsto/sdk-app` and `@lessly/app-dev` are pre-1.0 and pinned with caret
|
|
109
109
|
ranges, so `npm update` never crosses a minor version — and since the SDK
|
|
110
110
|
bumps its minor version whenever the platform ships a new tool, `npm update`
|
|
111
111
|
would never actually deliver those updates (see APP-007).
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Recipe: calling the platform API
|
|
2
2
|
|
|
3
3
|
How to reach Lessly platform data from an App. The normative rule is APP-001
|
|
4
|
-
(all platform data access goes through `@
|
|
4
|
+
(all platform data access goes through `@lepsto/sdk-app`) and APP-006 (prefer
|
|
5
5
|
the generated option factories) — this page shows the *how*.
|
|
6
6
|
|
|
7
7
|
## Create the client
|
|
@@ -10,7 +10,7 @@ Create one client with `createLesslyApp` and call operations through the
|
|
|
10
10
|
Proxy namespace tree:
|
|
11
11
|
|
|
12
12
|
```ts
|
|
13
|
-
import { createLesslyApp } from '@
|
|
13
|
+
import { createLesslyApp } from '@lepsto/sdk-app';
|
|
14
14
|
|
|
15
15
|
const sdk = createLesslyApp({
|
|
16
16
|
baseUrl: 'https://api.lessly.dev',
|
|
@@ -35,7 +35,7 @@ await sdk.organization.product.create({ name: 'Acme' });
|
|
|
35
35
|
- **Page-relative** — `'/lessly-api'`, the path `pnpm dev` proxies through
|
|
36
36
|
(see `recipes/local-dev.md`). It is resolved against the current document via
|
|
37
37
|
`globalThis.location`, so it is **browser-only**: outside a browser the SDK
|
|
38
|
-
throws a named error (`@
|
|
38
|
+
throws a named error (`@lepsto/sdk-app: relative baseUrl "/lessly-api" cannot
|
|
39
39
|
be resolved outside a browser`) instead of an opaque `Invalid URL`. Tests and
|
|
40
40
|
SSR must pass an absolute base.
|
|
41
41
|
|
|
@@ -56,7 +56,7 @@ Every failed call throws a typed `LesslyApiError` with `status`, `code`, and
|
|
|
56
56
|
distinguish platform-defined failure reasons:
|
|
57
57
|
|
|
58
58
|
```ts
|
|
59
|
-
import { LesslyApiError } from '@
|
|
59
|
+
import { LesslyApiError } from '@lepsto/sdk-app';
|
|
60
60
|
|
|
61
61
|
try {
|
|
62
62
|
await sdk.organization.product.create({ name: 'Acme' });
|
|
@@ -80,7 +80,7 @@ retry and no hidden token refresh — re-establish the session, or supply
|
|
|
80
80
|
|
|
81
81
|
## Prefer the generated query/mutation option factories
|
|
82
82
|
|
|
83
|
-
Each namespace subpath (`@
|
|
83
|
+
Each namespace subpath (`@lepsto/sdk-app/<namespace>`) ships framework-agnostic
|
|
84
84
|
query/mutation **option factories** — plain objects, not hooks — usable with
|
|
85
85
|
any TanStack Query adapter (React, Solid, Vue, Svelte). You pass the `sdk`
|
|
86
86
|
instance explicitly:
|
|
@@ -91,7 +91,7 @@ import { useQuery, useMutation } from '@tanstack/react-query';
|
|
|
91
91
|
import {
|
|
92
92
|
organizationConnectorsListQueryOptions,
|
|
93
93
|
organizationProductCreateMutationOptions,
|
|
94
|
-
} from '@
|
|
94
|
+
} from '@lepsto/sdk-app/organization';
|
|
95
95
|
|
|
96
96
|
function Connectors() {
|
|
97
97
|
const { data } = useQuery(organizationConnectorsListQueryOptions(sdk, { productId: 'prod_123' }));
|
|
@@ -111,14 +111,14 @@ await queryClient.ensureQueryData(organizationConnectorsListQueryOptions(sdk, {
|
|
|
111
111
|
Prefer these factories over hand-rolling calls against `sdk.<namespace>...`
|
|
112
112
|
directly (APP-006): they keep query keys, request shapes, and cache
|
|
113
113
|
invalidation consistent with the published API surface, and stay in sync with
|
|
114
|
-
it automatically when you run `npm i @
|
|
114
|
+
it automatically when you run `npm i @lepsto/sdk-app@latest`.
|
|
115
115
|
|
|
116
116
|
## Namespaces and subpath imports
|
|
117
117
|
|
|
118
118
|
The SDK is organized by namespace (currently `organization` and `playground`).
|
|
119
119
|
Call operations off `sdk.<namespace>.<resource>.<action>(...)`, and import that
|
|
120
120
|
namespace's option factories from the matching subpath,
|
|
121
|
-
`@
|
|
121
|
+
`@lepsto/sdk-app/<namespace>` — not the package root. This keeps each App's
|
|
122
122
|
bundle limited to the namespaces it actually uses.
|
|
123
123
|
|
|
124
124
|
Some operations belong to the namespace itself rather than to a resource under
|
|
@@ -130,7 +130,7 @@ autocomplete) for which shape a given operation takes.
|
|
|
130
130
|
|
|
131
131
|
The available namespaces track the live catalog and **grow as platform
|
|
132
132
|
extensions migrate to `@lessly-platform/tools`** — a namespace appears here only once its
|
|
133
|
-
tools carry a REST binding. Run `npm i @
|
|
133
|
+
tools carry a REST binding. Run `npm i @lepsto/sdk-app@latest` to pick up newly
|
|
134
134
|
migrated namespaces. To see exactly what a given version exposes, check its
|
|
135
135
|
subpaths in `package.json` `exports`, or the `manifest.gen.ts` namespace list.
|
|
136
136
|
|
|
@@ -143,8 +143,8 @@ stream from an App (APP-001) — it derives `ws(s)://` from your `baseUrl`, open
|
|
|
143
143
|
the socket, and hands back a small handle:
|
|
144
144
|
|
|
145
145
|
```ts
|
|
146
|
-
import { createLesslyApp } from '@
|
|
147
|
-
import { playgroundWsEchoConnect } from '@
|
|
146
|
+
import { createLesslyApp } from '@lepsto/sdk-app';
|
|
147
|
+
import { playgroundWsEchoConnect } from '@lepsto/sdk-app/playground';
|
|
148
148
|
|
|
149
149
|
const sdk = createLesslyApp({ baseUrl: 'https://api.lessly.dev', productId: 'prod_123' });
|
|
150
150
|
|
package/docs/rules.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# App Rules
|
|
2
2
|
|
|
3
|
-
Normative rules for building a Lessly App on `@
|
|
3
|
+
Normative rules for building a Lessly App on `@lepsto/sdk-app`. Read this
|
|
4
4
|
before writing code; see `README.md` for the map of the rest of the guide.
|
|
5
5
|
|
|
6
6
|
Severity (RFC 2119): **MUST** blocks merge, **SHOULD** is a strong
|
|
@@ -15,10 +15,10 @@ rationale, and examples.
|
|
|
15
15
|
|
|
16
16
|
---
|
|
17
17
|
|
|
18
|
-
### APP-001 (MUST) — All platform data access goes through `@
|
|
18
|
+
### APP-001 (MUST) — All platform data access goes through `@lepsto/sdk-app`
|
|
19
19
|
|
|
20
20
|
Every read or write to a Lessly platform API MUST go through a
|
|
21
|
-
`@
|
|
21
|
+
`@lepsto/sdk-app` client created with `createLesslyApp`, or through the
|
|
22
22
|
generated `*QueryOptions`/`*MutationOptions` factories built on top of it. An
|
|
23
23
|
App MUST NOT `fetch` a platform host directly, and MUST NOT use any other HTTP
|
|
24
24
|
client to reach platform data.
|
|
@@ -39,7 +39,7 @@ service the App integrates) is outside this rule.
|
|
|
39
39
|
### APP-002 (MUST) — Frontend-only
|
|
40
40
|
|
|
41
41
|
An App MUST NOT ship a backend service, a database, or an MCP endpoint. All
|
|
42
|
-
of its logic runs in the browser, built on `@
|
|
42
|
+
of its logic runs in the browser, built on `@lepsto/sdk-app` and the Module
|
|
43
43
|
Federation contract below. If a feature needs server-side state or a
|
|
44
44
|
service-to-service call, it belongs in an extension, not an App.
|
|
45
45
|
|
|
@@ -101,7 +101,7 @@ federation, through the `./App` props.
|
|
|
101
101
|
### APP-006 (SHOULD) — Use the generated query/mutation option factories
|
|
102
102
|
|
|
103
103
|
Prefer the generated `*QueryOptions`/`*MutationOptions` factories
|
|
104
|
-
(`@
|
|
104
|
+
(`@lepsto/sdk-app/<namespace>`) over hand-rolling request paths against the
|
|
105
105
|
SDK client directly. They keep query keys, request shapes, and cache
|
|
106
106
|
invalidation consistent with the published API surface, and stay in sync with
|
|
107
107
|
it automatically on upgrade.
|
|
@@ -112,10 +112,10 @@ Bump the manifest `version` on every release. Keep the SDK and this guide
|
|
|
112
112
|
current with:
|
|
113
113
|
|
|
114
114
|
```sh
|
|
115
|
-
npm i @
|
|
115
|
+
npm i @lepsto/sdk-app@latest
|
|
116
116
|
```
|
|
117
117
|
|
|
118
|
-
Use this exact `@latest` form — not `npm update`. `@
|
|
118
|
+
Use this exact `@latest` form — not `npm update`. `@lepsto/sdk-app` is
|
|
119
119
|
pre-1.0 and pinned with a caret range, so `npm update` never crosses a minor
|
|
120
120
|
version; since this SDK also bumps its minor version whenever the platform
|
|
121
121
|
ships a new tool, `npm update` would never actually deliver those updates.
|
|
@@ -336,7 +336,7 @@ still fail registration.
|
|
|
336
336
|
|
|
337
337
|
An App SHOULD reflect the caller's access in its UI: **disable, with a reason**
|
|
338
338
|
(not hide) a primary action the caller cannot perform, using `useCan` from
|
|
339
|
-
`@
|
|
339
|
+
`@lepsto/sdk-app/react` or `app.access.can()` directly, and render a 403 that
|
|
340
340
|
`isAccessDenied()` recognises as a **neutral empty state** rather than an error.
|
|
341
341
|
That reason MUST live on a `Tooltip` wrapper around the disabled control, never
|
|
342
342
|
on a native `title=` of the control itself: the base `buttonVariants` carry
|
|
@@ -353,7 +353,7 @@ That reason MUST be exactly one sentence, the same in every App:
|
|
|
353
353
|
|
|
354
354
|
— e.g. `Requires level:admin (mail_domain_create). Ask an admin of this product.`
|
|
355
355
|
Both values MUST be read from the generated method, never written as literals.
|
|
356
|
-
`@
|
|
356
|
+
`@lepsto/sdk-app` exports `accessReason(op)`, which is that sentence; an App
|
|
357
357
|
SHOULD use it rather than assembling the text itself.
|
|
358
358
|
|
|
359
359
|
Where a control has only an operation key and no generated method to point at,
|
|
@@ -383,7 +383,7 @@ the App, not a literal, and never a rule of thumb about verbs — `analytics_*_d
|
|
|
383
383
|
is `write` while `mail_domain_create` is `admin`, and only the catalog knows.
|
|
384
384
|
|
|
385
385
|
Where there is no method to read from — a test double, a runtime probe over keys
|
|
386
|
-
it was handed — the App MUST NOT hand-type the level either. `@
|
|
386
|
+
it was handed — the App MUST NOT hand-type the level either. `@lepsto/sdk-app`
|
|
387
387
|
exports `operations`, the catalog's own level map
|
|
388
388
|
(`Readonly<Record<string, ToolLevel>>`, keyed by operation key), regenerated at
|
|
389
389
|
publish time from the live catalog; read the level from it. A key it does not
|
package/package.json
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lepsto/sdk-app",
|
|
3
|
-
"
|
|
3
|
+
"description": "The Lepsto SDK for App is a TypeScript SDK that provides runtime bindings and type-safe generated code for interacting with Lepsto Platform APIs and services. This package generates type definitions and client bindings from API catalogs, enabling developers to build applications that consume Lepsto platform services with full type safety and autocompletion.",
|
|
4
|
+
"version": "87.0.1",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "git+https://github.com/lepsto/lepsto-sdk-app.git"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://github.com/lepsto/lepsto-sdk-app#readme",
|
|
10
|
+
"bugs": {
|
|
11
|
+
"url": "https://github.com/lepsto/lepsto-sdk-app/issues"
|
|
12
|
+
},
|
|
4
13
|
"type": "module",
|
|
5
14
|
"sideEffects": false,
|
|
6
15
|
"engines": {
|
|
@@ -13,6 +22,7 @@
|
|
|
13
22
|
"src/gen"
|
|
14
23
|
],
|
|
15
24
|
"publishConfig": {
|
|
25
|
+
"registry": "https://registry.npmjs.org/",
|
|
16
26
|
"access": "public"
|
|
17
27
|
},
|
|
18
28
|
"scripts": {
|
|
@@ -22,6 +32,7 @@
|
|
|
22
32
|
"build": "npm run sync-exports && tsup && tsx scripts/emit-dts.ts",
|
|
23
33
|
"prepublishOnly": "npm run build",
|
|
24
34
|
"publish:npmjs": "npm publish --registry https://registry.npmjs.org/ --@lessly:registry=https://registry.npmjs.org/",
|
|
35
|
+
"publish:npmjs:lepsto": "tsx scripts/publish-alias.ts",
|
|
25
36
|
"typecheck": "tsc --noEmit",
|
|
26
37
|
"test": "vitest run"
|
|
27
38
|
},
|
|
@@ -208,5 +219,5 @@
|
|
|
208
219
|
}
|
|
209
220
|
}
|
|
210
221
|
},
|
|
211
|
-
"sdkContentHash": "sha256:
|
|
222
|
+
"sdkContentHash": "sha256:c4d3e9f5f9cf4ad5a58819e1c502a1b5e5e4e8bab57be5f09527d02382ffea35"
|
|
212
223
|
}
|
package/src/gen/bindings.gen.ts
CHANGED
|
@@ -11047,7 +11047,7 @@ export const bindings: BindingsMap = {
|
|
|
11047
11047
|
"readOnly": true
|
|
11048
11048
|
},
|
|
11049
11049
|
"set": {
|
|
11050
|
-
"level": "
|
|
11050
|
+
"level": "admin",
|
|
11051
11051
|
"method": "POST",
|
|
11052
11052
|
"operationKey": "workflow_killswitch_set",
|
|
11053
11053
|
"params": [
|
|
@@ -11357,7 +11357,7 @@ export const bindings: BindingsMap = {
|
|
|
11357
11357
|
},
|
|
11358
11358
|
"wait-list": {
|
|
11359
11359
|
"all": {
|
|
11360
|
-
"level": "
|
|
11360
|
+
"level": "admin",
|
|
11361
11361
|
"method": "GET",
|
|
11362
11362
|
"operationKey": "workflow_wait_list_all",
|
|
11363
11363
|
"params": [
|
package/src/gen/manifest.gen.ts
CHANGED
|
@@ -596,7 +596,7 @@ export const operations: Record<string, ToolLevel> = {
|
|
|
596
596
|
'workflow_health_list': 'read',
|
|
597
597
|
'workflow_health_ping': 'read',
|
|
598
598
|
'workflow_killswitch_get': 'read',
|
|
599
|
-
'workflow_killswitch_set': '
|
|
599
|
+
'workflow_killswitch_set': 'admin',
|
|
600
600
|
'workflow_run_cancel': 'write',
|
|
601
601
|
'workflow_run_get': 'read',
|
|
602
602
|
'workflow_run_list': 'read',
|
|
@@ -611,7 +611,7 @@ export const operations: Record<string, ToolLevel> = {
|
|
|
611
611
|
'workflow_version_list': 'read',
|
|
612
612
|
'workflow_wait_get': 'read',
|
|
613
613
|
'workflow_wait_list': 'read',
|
|
614
|
-
'workflow_wait_list_all': '
|
|
614
|
+
'workflow_wait_list_all': 'admin',
|
|
615
615
|
'workflow_wait_resolve': 'write',
|
|
616
616
|
};
|
|
617
617
|
|