@tai42/api-client 16.0.0 → 16.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/dist/client/agents-client.d.ts +26 -0
- package/dist/client/agents-client.d.ts.map +1 -0
- package/dist/client/agents-client.js +19 -0
- package/dist/client/agents-client.js.map +1 -0
- package/dist/client/auth-client.d.ts +205 -0
- package/dist/client/auth-client.d.ts.map +1 -0
- package/dist/client/auth-client.js +59 -0
- package/dist/client/auth-client.js.map +1 -0
- package/dist/client/backend-client.d.ts +39 -0
- package/dist/client/backend-client.d.ts.map +1 -0
- package/dist/client/backend-client.js +22 -0
- package/dist/client/backend-client.js.map +1 -0
- package/dist/client/backup-client.d.ts +56 -0
- package/dist/client/backup-client.d.ts.map +1 -0
- package/dist/client/backup-client.js +12 -0
- package/dist/client/backup-client.js.map +1 -0
- package/dist/client/capabilities-client.d.ts +35 -0
- package/dist/client/capabilities-client.d.ts.map +1 -0
- package/dist/client/capabilities-client.js +19 -0
- package/dist/client/capabilities-client.js.map +1 -0
- package/dist/client/channels-client.d.ts +7 -0
- package/dist/client/channels-client.d.ts.map +1 -0
- package/dist/client/channels-client.js +10 -0
- package/dist/client/channels-client.js.map +1 -0
- package/dist/client/config-client.d.ts +59 -0
- package/dist/client/config-client.d.ts.map +1 -0
- package/dist/client/config-client.js +18 -0
- package/dist/client/config-client.js.map +1 -0
- package/dist/client/connectors-client.d.ts +225 -0
- package/dist/client/connectors-client.d.ts.map +1 -0
- package/dist/client/connectors-client.js +31 -0
- package/dist/client/connectors-client.js.map +1 -0
- package/dist/client/conversations-client.d.ts +399 -0
- package/dist/client/conversations-client.d.ts.map +1 -0
- package/dist/client/conversations-client.js +120 -0
- package/dist/client/conversations-client.js.map +1 -0
- package/dist/client/hooks-client.d.ts +113 -0
- package/dist/client/hooks-client.d.ts.map +1 -0
- package/dist/client/hooks-client.js +25 -0
- package/dist/client/hooks-client.js.map +1 -0
- package/dist/{client.d.ts → client/index.d.ts} +2235 -2666
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +79 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/interactions-client.d.ts +52 -0
- package/dist/client/interactions-client.d.ts.map +1 -0
- package/dist/client/interactions-client.js +84 -0
- package/dist/client/interactions-client.js.map +1 -0
- package/dist/client/login-client.d.ts +56 -0
- package/dist/client/login-client.d.ts.map +1 -0
- package/dist/client/login-client.js +103 -0
- package/dist/client/login-client.js.map +1 -0
- package/dist/client/manifest-client.d.ts +354 -0
- package/dist/client/manifest-client.d.ts.map +1 -0
- package/dist/client/manifest-client.js +76 -0
- package/dist/client/manifest-client.js.map +1 -0
- package/dist/client/marketplace-client.d.ts +274 -0
- package/dist/client/marketplace-client.d.ts.map +1 -0
- package/dist/client/marketplace-client.js +46 -0
- package/dist/client/marketplace-client.js.map +1 -0
- package/dist/client/mcp-config-schema-client.d.ts +5 -0
- package/dist/client/mcp-config-schema-client.d.ts.map +1 -0
- package/dist/client/mcp-config-schema-client.js +9 -0
- package/dist/client/mcp-config-schema-client.js.map +1 -0
- package/dist/client/notifications-client.d.ts +27 -0
- package/dist/client/notifications-client.d.ts.map +1 -0
- package/dist/client/notifications-client.js +11 -0
- package/dist/client/notifications-client.js.map +1 -0
- package/dist/client/observability-client.d.ts +103 -0
- package/dist/client/observability-client.d.ts.map +1 -0
- package/dist/client/observability-client.js +43 -0
- package/dist/client/observability-client.js.map +1 -0
- package/dist/client/plugins-client.d.ts +17 -0
- package/dist/client/plugins-client.d.ts.map +1 -0
- package/dist/client/plugins-client.js +9 -0
- package/dist/client/plugins-client.js.map +1 -0
- package/dist/client/policy-client.d.ts +37 -0
- package/dist/client/policy-client.d.ts.map +1 -0
- package/dist/client/policy-client.js +26 -0
- package/dist/client/policy-client.js.map +1 -0
- package/dist/client/presets-client.d.ts +335 -0
- package/dist/client/presets-client.d.ts.map +1 -0
- package/dist/client/presets-client.js +38 -0
- package/dist/client/presets-client.js.map +1 -0
- package/dist/client/profiles-client.d.ts +102 -0
- package/dist/client/profiles-client.d.ts.map +1 -0
- package/dist/client/profiles-client.js +37 -0
- package/dist/client/profiles-client.js.map +1 -0
- package/dist/client/schedules-client.d.ts +28 -0
- package/dist/client/schedules-client.d.ts.map +1 -0
- package/dist/client/schedules-client.js +13 -0
- package/dist/client/schedules-client.js.map +1 -0
- package/dist/client/settings-schema-client.d.ts +23 -0
- package/dist/client/settings-schema-client.d.ts.map +1 -0
- package/dist/client/settings-schema-client.js +9 -0
- package/dist/client/settings-schema-client.js.map +1 -0
- package/dist/client/states-client.d.ts +471 -0
- package/dist/client/states-client.d.ts.map +1 -0
- package/dist/client/states-client.js +144 -0
- package/dist/client/states-client.js.map +1 -0
- package/dist/client/storage-client.d.ts +40 -0
- package/dist/client/storage-client.d.ts.map +1 -0
- package/dist/client/storage-client.js +43 -0
- package/dist/client/storage-client.js.map +1 -0
- package/dist/client/sub-mcp-client.d.ts +17 -0
- package/dist/client/sub-mcp-client.d.ts.map +1 -0
- package/dist/client/sub-mcp-client.js +14 -0
- package/dist/client/sub-mcp-client.js.map +1 -0
- package/dist/client/system-client.d.ts +11 -0
- package/dist/client/system-client.d.ts.map +1 -0
- package/dist/client/system-client.js +13 -0
- package/dist/client/system-client.js.map +1 -0
- package/dist/client/templates-client.d.ts +29 -0
- package/dist/client/templates-client.d.ts.map +1 -0
- package/dist/client/templates-client.js +21 -0
- package/dist/client/templates-client.js.map +1 -0
- package/dist/client/tool-extensions-client.d.ts +54 -0
- package/dist/client/tool-extensions-client.d.ts.map +1 -0
- package/dist/client/tool-extensions-client.js +21 -0
- package/dist/client/tool-extensions-client.js.map +1 -0
- package/dist/client/tool-meta-client.d.ts +69 -0
- package/dist/client/tool-meta-client.d.ts.map +1 -0
- package/dist/client/tool-meta-client.js +38 -0
- package/dist/client/tool-meta-client.js.map +1 -0
- package/dist/client/tools-client.d.ts +83 -0
- package/dist/client/tools-client.d.ts.map +1 -0
- package/dist/client/tools-client.js +38 -0
- package/dist/client/tools-client.js.map +1 -0
- package/dist/client/transport.d.ts +13 -0
- package/dist/client/transport.d.ts.map +1 -0
- package/dist/client/transport.js +10 -0
- package/dist/client/transport.js.map +1 -0
- package/dist/client/trigger-links-client.d.ts +44 -0
- package/dist/client/trigger-links-client.d.ts.map +1 -0
- package/dist/client/trigger-links-client.js +30 -0
- package/dist/client/trigger-links-client.js.map +1 -0
- package/dist/client/web-entry-gate-client.d.ts +34 -0
- package/dist/client/web-entry-gate-client.d.ts.map +1 -0
- package/dist/client/web-entry-gate-client.js +25 -0
- package/dist/client/web-entry-gate-client.js.map +1 -0
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +33 -17
- package/dist/http.js.map +1 -1
- package/dist/schemas/api-keys.d.ts +34 -0
- package/dist/schemas/api-keys.d.ts.map +1 -0
- package/dist/schemas/api-keys.js +22 -0
- package/dist/schemas/api-keys.js.map +1 -0
- package/dist/schemas/auth-routes.d.ts +78 -0
- package/dist/schemas/auth-routes.d.ts.map +1 -0
- package/dist/schemas/auth-routes.js +42 -0
- package/dist/schemas/auth-routes.js.map +1 -0
- package/dist/schemas/backup.d.ts +78 -0
- package/dist/schemas/backup.d.ts.map +1 -0
- package/dist/schemas/backup.js +33 -0
- package/dist/schemas/backup.js.map +1 -0
- package/dist/schemas/capabilities.d.ts +99 -0
- package/dist/schemas/capabilities.d.ts.map +1 -0
- package/dist/schemas/capabilities.js +74 -0
- package/dist/schemas/capabilities.js.map +1 -0
- package/dist/schemas/channels.d.ts +7 -0
- package/dist/schemas/channels.d.ts.map +1 -0
- package/dist/schemas/channels.js +9 -0
- package/dist/schemas/channels.js.map +1 -0
- package/dist/schemas/config.d.ts +17 -0
- package/dist/schemas/config.d.ts.map +1 -0
- package/dist/schemas/config.js +17 -0
- package/dist/schemas/config.js.map +1 -0
- package/dist/schemas/connectors.d.ts +383 -0
- package/dist/schemas/connectors.d.ts.map +1 -0
- package/dist/schemas/connectors.js +122 -0
- package/dist/schemas/connectors.js.map +1 -0
- package/dist/schemas/conversations.d.ts +600 -0
- package/dist/schemas/conversations.d.ts.map +1 -0
- package/dist/schemas/conversations.js +208 -0
- package/dist/schemas/conversations.js.map +1 -0
- package/dist/schemas/extensions.d.ts +44 -0
- package/dist/schemas/extensions.d.ts.map +1 -0
- package/dist/schemas/extensions.js +29 -0
- package/dist/schemas/extensions.js.map +1 -0
- package/dist/schemas/fleet.d.ts +271 -0
- package/dist/schemas/fleet.d.ts.map +1 -0
- package/dist/schemas/fleet.js +132 -0
- package/dist/schemas/fleet.js.map +1 -0
- package/dist/schemas/hooks.d.ts +120 -0
- package/dist/schemas/hooks.d.ts.map +1 -0
- package/dist/schemas/hooks.js +44 -0
- package/dist/schemas/hooks.js.map +1 -0
- package/dist/schemas/index.d.ts +38 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +38 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/interactions.d.ts +156 -0
- package/dist/schemas/interactions.d.ts.map +1 -0
- package/dist/schemas/interactions.js +124 -0
- package/dist/schemas/interactions.js.map +1 -0
- package/dist/schemas/login.d.ts +86 -0
- package/dist/schemas/login.d.ts.map +1 -0
- package/dist/schemas/login.js +54 -0
- package/dist/schemas/login.js.map +1 -0
- package/dist/schemas/manifest-mcp.d.ts +125 -0
- package/dist/schemas/manifest-mcp.d.ts.map +1 -0
- package/dist/schemas/manifest-mcp.js +61 -0
- package/dist/schemas/manifest-mcp.js.map +1 -0
- package/dist/schemas/marketplace.d.ts +708 -0
- package/dist/schemas/marketplace.d.ts.map +1 -0
- package/dist/schemas/marketplace.js +387 -0
- package/dist/schemas/marketplace.js.map +1 -0
- package/dist/schemas/notifications.d.ts +61 -0
- package/dist/schemas/notifications.d.ts.map +1 -0
- package/dist/schemas/notifications.js +38 -0
- package/dist/schemas/notifications.js.map +1 -0
- package/dist/schemas/observability.d.ts +114 -0
- package/dist/schemas/observability.d.ts.map +1 -0
- package/dist/schemas/observability.js +74 -0
- package/dist/schemas/observability.js.map +1 -0
- package/dist/schemas/policy.d.ts +58 -0
- package/dist/schemas/policy.d.ts.map +1 -0
- package/dist/schemas/policy.js +32 -0
- package/dist/schemas/policy.js.map +1 -0
- package/dist/schemas/presets.d.ts +258 -0
- package/dist/schemas/presets.d.ts.map +1 -0
- package/dist/schemas/presets.js +95 -0
- package/dist/schemas/presets.js.map +1 -0
- package/dist/schemas/profiles.d.ts +180 -0
- package/dist/schemas/profiles.d.ts.map +1 -0
- package/dist/schemas/profiles.js +100 -0
- package/dist/schemas/profiles.js.map +1 -0
- package/dist/schemas/roles.d.ts +125 -0
- package/dist/schemas/roles.d.ts.map +1 -0
- package/dist/schemas/roles.js +46 -0
- package/dist/schemas/roles.js.map +1 -0
- package/dist/schemas/schedules.d.ts +25 -0
- package/dist/schemas/schedules.d.ts.map +1 -0
- package/dist/schemas/schedules.js +24 -0
- package/dist/schemas/schedules.js.map +1 -0
- package/dist/schemas/served.d.ts +626 -0
- package/dist/schemas/served.d.ts.map +1 -0
- package/dist/schemas/served.js +28 -0
- package/dist/schemas/served.js.map +1 -0
- package/dist/schemas/settings-schema.d.ts +23 -0
- package/dist/schemas/settings-schema.d.ts.map +1 -0
- package/dist/schemas/settings-schema.js +25 -0
- package/dist/schemas/settings-schema.js.map +1 -0
- package/dist/schemas/shared.d.ts +20 -0
- package/dist/schemas/shared.d.ts.map +1 -0
- package/dist/schemas/shared.js +20 -0
- package/dist/schemas/shared.js.map +1 -0
- package/dist/schemas/states.d.ts +499 -0
- package/dist/schemas/states.d.ts.map +1 -0
- package/dist/schemas/states.js +220 -0
- package/dist/schemas/states.js.map +1 -0
- package/dist/schemas/storage.d.ts +37 -0
- package/dist/schemas/storage.d.ts.map +1 -0
- package/dist/schemas/storage.js +24 -0
- package/dist/schemas/storage.js.map +1 -0
- package/dist/schemas/studio-plugins.d.ts +30 -0
- package/dist/schemas/studio-plugins.d.ts.map +1 -0
- package/dist/schemas/studio-plugins.js +20 -0
- package/dist/schemas/studio-plugins.js.map +1 -0
- package/dist/schemas/sub-mcp.d.ts +29 -0
- package/dist/schemas/sub-mcp.d.ts.map +1 -0
- package/dist/schemas/sub-mcp.js +22 -0
- package/dist/schemas/sub-mcp.js.map +1 -0
- package/dist/schemas/system-kinds.d.ts +122 -0
- package/dist/schemas/system-kinds.d.ts.map +1 -0
- package/dist/schemas/system-kinds.js +40 -0
- package/dist/schemas/system-kinds.js.map +1 -0
- package/dist/schemas/templates.d.ts +26 -0
- package/dist/schemas/templates.d.ts.map +1 -0
- package/dist/schemas/templates.js +11 -0
- package/dist/schemas/templates.js.map +1 -0
- package/dist/schemas/tool-meta.d.ts +64 -0
- package/dist/schemas/tool-meta.d.ts.map +1 -0
- package/dist/schemas/tool-meta.js +44 -0
- package/dist/schemas/tool-meta.js.map +1 -0
- package/dist/schemas/tools.d.ts +62 -0
- package/dist/schemas/tools.d.ts.map +1 -0
- package/dist/schemas/tools.js +53 -0
- package/dist/schemas/tools.js.map +1 -0
- package/dist/schemas/trigger-links.d.ts +71 -0
- package/dist/schemas/trigger-links.d.ts.map +1 -0
- package/dist/schemas/trigger-links.js +46 -0
- package/dist/schemas/trigger-links.js.map +1 -0
- package/dist/schemas/web-entry.d.ts +45 -0
- package/dist/schemas/web-entry.d.ts.map +1 -0
- package/dist/schemas/web-entry.js +36 -0
- package/dist/schemas/web-entry.js.map +1 -0
- package/dist/tool-runs.d.ts +4 -4
- package/package.json +1 -1
- package/src/client/agents-client.ts +23 -0
- package/src/client/auth-client.ts +144 -0
- package/src/client/backend-client.ts +25 -0
- package/src/client/backup-client.ts +16 -0
- package/src/client/capabilities-client.ts +22 -0
- package/src/client/channels-client.ts +11 -0
- package/src/client/config-client.ts +21 -0
- package/src/client/connectors-client.ts +52 -0
- package/src/client/conversations-client.ts +240 -0
- package/src/client/hooks-client.ts +44 -0
- package/src/client/index.ts +122 -0
- package/src/client/interactions-client.ts +89 -0
- package/src/client/login-client.ts +109 -0
- package/src/client/manifest-client.ts +118 -0
- package/src/client/marketplace-client.ts +122 -0
- package/src/client/mcp-config-schema-client.ts +11 -0
- package/src/client/notifications-client.ts +13 -0
- package/src/client/observability-client.ts +82 -0
- package/src/client/plugins-client.ts +11 -0
- package/src/client/policy-client.ts +41 -0
- package/src/client/presets-client.ts +124 -0
- package/src/client/profiles-client.ts +51 -0
- package/src/client/schedules-client.ts +22 -0
- package/src/client/settings-schema-client.ts +11 -0
- package/src/client/states-client.ts +292 -0
- package/src/client/storage-client.ts +63 -0
- package/src/client/sub-mcp-client.ts +17 -0
- package/src/client/system-client.ts +16 -0
- package/src/client/templates-client.ts +28 -0
- package/src/client/tool-extensions-client.ts +24 -0
- package/src/client/tool-meta-client.ts +65 -0
- package/src/client/tools-client.ts +66 -0
- package/src/client/transport.ts +18 -0
- package/src/client/trigger-links-client.ts +51 -0
- package/src/client/web-entry-gate-client.ts +45 -0
- package/src/http.ts +48 -24
- package/src/schemas/api-keys.ts +26 -0
- package/src/schemas/auth-routes.ts +48 -0
- package/src/schemas/backup.ts +42 -0
- package/src/schemas/capabilities.ts +87 -0
- package/src/schemas/channels.ts +11 -0
- package/src/schemas/config.ts +17 -0
- package/src/schemas/connectors.ts +138 -0
- package/src/schemas/conversations.ts +256 -0
- package/src/schemas/extensions.ts +34 -0
- package/src/schemas/fleet.ts +153 -0
- package/src/schemas/hooks.ts +56 -0
- package/src/schemas/index.ts +37 -0
- package/src/schemas/interactions.ts +146 -0
- package/src/schemas/login.ts +62 -0
- package/src/schemas/manifest-mcp.ts +69 -0
- package/src/schemas/marketplace.ts +447 -0
- package/src/schemas/notifications.ts +42 -0
- package/src/schemas/observability.ts +86 -0
- package/src/schemas/policy.ts +37 -0
- package/src/schemas/presets.ts +113 -0
- package/src/schemas/profiles.ts +119 -0
- package/src/schemas/roles.ts +57 -0
- package/src/schemas/schedules.ts +27 -0
- package/src/schemas/served.ts +49 -0
- package/src/schemas/settings-schema.ts +31 -0
- package/src/schemas/shared.ts +21 -0
- package/src/schemas/states.ts +272 -0
- package/src/schemas/storage.ts +31 -0
- package/src/schemas/studio-plugins.ts +21 -0
- package/src/schemas/sub-mcp.ts +24 -0
- package/src/schemas/system-kinds.ts +46 -0
- package/src/schemas/templates.ts +11 -0
- package/src/schemas/tool-meta.ts +51 -0
- package/src/schemas/tools.ts +61 -0
- package/src/schemas/trigger-links.ts +54 -0
- package/src/schemas/web-entry.ts +46 -0
- package/dist/client.d.ts.map +0 -1
- package/dist/client.js +0 -920
- package/dist/client.js.map +0 -1
- package/dist/schemas.d.ts +0 -5172
- package/dist/schemas.d.ts.map +0 -1
- package/dist/schemas.js +0 -2268
- package/dist/schemas.js.map +0 -1
- package/src/client.ts +0 -1771
- package/src/schemas.ts +0 -2760
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
/** State declaration, record, template and consumer response schemas. */
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { conversationTargetKind } from './conversations';
|
|
4
|
+
import { stateDeclaration, stateTemplateDocument } from './served';
|
|
5
|
+
|
|
6
|
+
// The hand-written state response DTOs — list rows and detail (built on the generated
|
|
7
|
+
// `stateDeclaration`), attachments, per-subject records and subjects, stats and consumers.
|
|
8
|
+
// The served DOCUMENT schemas (`stateDeclaration`/`stateTemplateDocument` and the template
|
|
9
|
+
// sub-shapes) are generated from the contract bundle and re-exported at the top of this
|
|
10
|
+
// file. The composed `effective_schema` and write `regimes` stay permissive JSON records
|
|
11
|
+
// (the auto-form and JsonTree interpret them at runtime) and are server-computed, so they
|
|
12
|
+
// are modelled optional and a response that omits them still parses.
|
|
13
|
+
|
|
14
|
+
/** One addressed subject: the conversation-target scope plus the (kind, key) within it. */
|
|
15
|
+
export const stateSubject = z.object({
|
|
16
|
+
target_kind: conversationTargetKind,
|
|
17
|
+
target_name: z.string(),
|
|
18
|
+
kind: z.string(),
|
|
19
|
+
key: z.string(),
|
|
20
|
+
});
|
|
21
|
+
export type StateSubject = z.infer<typeof stateSubject>;
|
|
22
|
+
|
|
23
|
+
/** One absolute write-regime rule composed over the attachments: `{path, regime}`, permissive. */
|
|
24
|
+
export const stateRegime = z.record(z.string(), z.unknown());
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* One row of `GET /api/states` — a served declaration (`list_states` dumps every
|
|
28
|
+
* `StateDeclaration`) plus `updated_at` (the row's last-write timestamp, ISO or
|
|
29
|
+
* `null`). The list carries no record count; the `Records` column reads
|
|
30
|
+
* `getStateStats` lazily per row.
|
|
31
|
+
*/
|
|
32
|
+
export const stateListItem = stateDeclaration.extend({
|
|
33
|
+
updated_at: z.string().nullable().default(null),
|
|
34
|
+
});
|
|
35
|
+
export type StateListItem = z.infer<typeof stateListItem>;
|
|
36
|
+
export const stateList = z.array(stateListItem);
|
|
37
|
+
|
|
38
|
+
/** One template attachment on a state: where the fragment lands + its param/declaration values. */
|
|
39
|
+
export const stateAttachment = z.object({
|
|
40
|
+
template: z.string(),
|
|
41
|
+
path: z.array(z.string()),
|
|
42
|
+
parameters: z.record(z.string(), z.unknown()).default({}),
|
|
43
|
+
declarations: z.record(z.string(), z.unknown()).default({}),
|
|
44
|
+
});
|
|
45
|
+
export type StateAttachment = z.infer<typeof stateAttachment>;
|
|
46
|
+
export const stateAttachmentList = z.array(stateAttachment);
|
|
47
|
+
|
|
48
|
+
/** `GET /api/states/{name}` — the declaration (with effective schema + regimes) plus attachments. */
|
|
49
|
+
export const stateDetail = stateDeclaration.extend({
|
|
50
|
+
attachments: z.array(stateAttachment).default([]),
|
|
51
|
+
});
|
|
52
|
+
export type StateDetail = z.infer<typeof stateDetail>;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* `GET /api/states/{name}/stats` — `records` (total documents), `per_field` (the count
|
|
56
|
+
* of records carrying each base-schema property), `per_kind` (records per subject kind)
|
|
57
|
+
* and `consumers` (the count of listable consumers). The Records tab shows `records`;
|
|
58
|
+
* the states list reads it lazily for its Records column.
|
|
59
|
+
*/
|
|
60
|
+
export const stateStats = z.object({
|
|
61
|
+
records: z.number(),
|
|
62
|
+
per_field: z.record(z.string(), z.number()).default({}),
|
|
63
|
+
per_kind: z.record(z.string(), z.number()).default({}),
|
|
64
|
+
consumers: z.number().default(0),
|
|
65
|
+
});
|
|
66
|
+
export type StateStats = z.infer<typeof stateStats>;
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* One row of `GET /api/state-templates`. The template document plus the two derived columns
|
|
70
|
+
* the Templates tab shows: `attached_to` (how many states attach it — a delete is refused
|
|
71
|
+
* while > 0) and `shipped_default` (a platform-shipped template). Both are server-derived
|
|
72
|
+
* columns; the document fields are verbatim.
|
|
73
|
+
*/
|
|
74
|
+
export const stateTemplateListItem = stateTemplateDocument.extend({
|
|
75
|
+
attached_to: z.number().default(0),
|
|
76
|
+
shipped_default: z.boolean().default(false),
|
|
77
|
+
});
|
|
78
|
+
export type StateTemplateListItem = z.infer<typeof stateTemplateListItem>;
|
|
79
|
+
export const stateTemplateList = z.array(stateTemplateListItem);
|
|
80
|
+
|
|
81
|
+
/** A read record: the state, its subject, the document + monotonic seq, and any fold. */
|
|
82
|
+
export const stateRecord = z.object({
|
|
83
|
+
state: z.string(),
|
|
84
|
+
subject: stateSubject,
|
|
85
|
+
data: z.record(z.string(), z.unknown()).default({}),
|
|
86
|
+
seq: z.number(),
|
|
87
|
+
canonical_subject: stateSubject,
|
|
88
|
+
folded_from: z.array(stateSubject).default([]),
|
|
89
|
+
});
|
|
90
|
+
export type StateRecord = z.infer<typeof stateRecord>;
|
|
91
|
+
|
|
92
|
+
/** The outcome of an `apply` (a delta batch): whether it applied + the resulting doc. */
|
|
93
|
+
export const applyResult = z.object({
|
|
94
|
+
applied: z.boolean(),
|
|
95
|
+
data: z.record(z.string(), z.unknown()).nullable().default(null),
|
|
96
|
+
seq: z.number().nullable().default(null),
|
|
97
|
+
skipped: z.array(z.record(z.string(), z.unknown())).default([]),
|
|
98
|
+
});
|
|
99
|
+
export type ApplyResult = z.infer<typeof applyResult>;
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* `GET …/template-jq/{name}` — the evaluated template jq's `name`, its `purpose`, and
|
|
103
|
+
* its `value` (the `input` jq's read). GET evaluates ONLY an `input`-purpose jq; a GET
|
|
104
|
+
* on an `update`-purpose name is refused with 422, so the result's purpose is always
|
|
105
|
+
* `input`.
|
|
106
|
+
*/
|
|
107
|
+
export const templateJqResult = z.object({
|
|
108
|
+
name: z.string(),
|
|
109
|
+
purpose: z.literal('input'),
|
|
110
|
+
value: z.unknown(),
|
|
111
|
+
});
|
|
112
|
+
export type TemplateJqResult = z.infer<typeof templateJqResult>;
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* `POST …/template-jq/{name}` — the applied template jq's outcome. The jq lands an op
|
|
116
|
+
* batch through the same `apply` chokepoint as a delta, so `applied`/`data`/`seq`/`skipped`
|
|
117
|
+
* carry that outcome.
|
|
118
|
+
*/
|
|
119
|
+
export const templateJqApplyResult = z.object({
|
|
120
|
+
name: z.string(),
|
|
121
|
+
applied: z.boolean(),
|
|
122
|
+
data: z.record(z.string(), z.unknown()).nullable().default(null),
|
|
123
|
+
seq: z.number().nullable().default(null),
|
|
124
|
+
skipped: z.array(z.record(z.string(), z.unknown())).default([]),
|
|
125
|
+
});
|
|
126
|
+
export type TemplateJqApplyResult = z.infer<typeof templateJqApplyResult>;
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* One paged subject row: the addressed `subject` plus its record's last-write
|
|
130
|
+
* `updated_at` — epoch seconds (the store's `extract(epoch FROM updated_at)`), served
|
|
131
|
+
* raw (no `mode="json"` dump), and `NOT NULL` on every record, so a plain number.
|
|
132
|
+
*/
|
|
133
|
+
export const subjectRow = z.object({
|
|
134
|
+
subject: stateSubject,
|
|
135
|
+
updated_at: z.number(),
|
|
136
|
+
});
|
|
137
|
+
export type SubjectRow = z.infer<typeof subjectRow>;
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* `GET /api/states/{name}/subjects` — a keyset page of subject rows (optionally of one
|
|
141
|
+
* `kind`): the matched `subjects` plus the `next_cursor` a "Load more" carries back
|
|
142
|
+
* (`null` at the end).
|
|
143
|
+
*/
|
|
144
|
+
export const subjectPage = z.object({
|
|
145
|
+
subjects: z.array(subjectRow),
|
|
146
|
+
next_cursor: z.string().nullable().default(null),
|
|
147
|
+
});
|
|
148
|
+
export type SubjectPage = z.infer<typeof subjectPage>;
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* `POST /api/states/{name}/records/search` — a keyset page of the subject rows whose
|
|
152
|
+
* document contains the filters (a JSONB containment match). Each hit's `subject` opens
|
|
153
|
+
* the record page; `next_cursor` pages the rest.
|
|
154
|
+
*/
|
|
155
|
+
export const recordSearchPage = z.object({
|
|
156
|
+
matches: z.array(subjectRow),
|
|
157
|
+
next_cursor: z.string().nullable().default(null),
|
|
158
|
+
});
|
|
159
|
+
export type RecordSearchPage = z.infer<typeof recordSearchPage>;
|
|
160
|
+
|
|
161
|
+
/** A WriteEntry's origin completed by the platform chokepoint (mirrors CompletedOrigin). */
|
|
162
|
+
export const completedOrigin = z.object({
|
|
163
|
+
consumer: z.string().nullable().default(null),
|
|
164
|
+
// Opaque consumer-supplied provenance JSON the platform stores as is.
|
|
165
|
+
meta: z.record(z.string(), z.unknown()).nullable().default(null),
|
|
166
|
+
run_id: z.string().nullable().default(null),
|
|
167
|
+
op_id: z.string().nullable().default(null),
|
|
168
|
+
door: z.string(),
|
|
169
|
+
actor: z.string().nullable().default(null),
|
|
170
|
+
turn_id: z.string().nullable().default(null),
|
|
171
|
+
inbound_id: z.string().nullable().default(null),
|
|
172
|
+
});
|
|
173
|
+
export type CompletedOrigin = z.infer<typeof completedOrigin>;
|
|
174
|
+
|
|
175
|
+
/** One row of a subject's audit trail (mirrors WriteEntry). `paths` are absolute. */
|
|
176
|
+
export const writeEntry = z.object({
|
|
177
|
+
seq: z.number(),
|
|
178
|
+
at: z.string(),
|
|
179
|
+
origin: completedOrigin,
|
|
180
|
+
paths: z.array(z.array(z.union([z.string(), z.number()]))).default([]),
|
|
181
|
+
});
|
|
182
|
+
export type WriteEntry = z.infer<typeof writeEntry>;
|
|
183
|
+
|
|
184
|
+
/** `GET /api/states/{name}/records/.../writes` — a keyset page of the audit trail. */
|
|
185
|
+
export const writesPage = z.object({
|
|
186
|
+
items: z.array(writeEntry),
|
|
187
|
+
next_cursor: z.string().nullable().default(null),
|
|
188
|
+
});
|
|
189
|
+
export type WritesPage = z.infer<typeof writesPage>;
|
|
190
|
+
|
|
191
|
+
/** Where the Studio opens a consumer (mirrors ConsumerLink): a token+search OR plugin path. */
|
|
192
|
+
export const consumerLink = z.object({
|
|
193
|
+
token: z.string().nullable().default(null),
|
|
194
|
+
plugin_path: z.string().nullable().default(null),
|
|
195
|
+
search: z.record(z.string(), z.unknown()).nullable().default(null),
|
|
196
|
+
});
|
|
197
|
+
export type ConsumerLink = z.infer<typeof consumerLink>;
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* One thing that binds a state (mirrors ConsumerRow): its `kind` (flow / hook / schedule
|
|
201
|
+
* / agent), `name`, human `detail` and optional `link`. `unavailable` marks a consumer
|
|
202
|
+
* family that cannot be listed on this deployment (e.g. no scheduling backend), surfaced
|
|
203
|
+
* as a muted line — never swallowed.
|
|
204
|
+
*/
|
|
205
|
+
export const consumerRow = z.object({
|
|
206
|
+
kind: z.string(),
|
|
207
|
+
name: z.string().nullable().default(null),
|
|
208
|
+
detail: z.string().nullable().default(null),
|
|
209
|
+
link: consumerLink.nullable().default(null),
|
|
210
|
+
unavailable: z.string().nullable().default(null),
|
|
211
|
+
});
|
|
212
|
+
export type ConsumerRow = z.infer<typeof consumerRow>;
|
|
213
|
+
|
|
214
|
+
/** `GET /api/states/{name}/consumers` — the union of every registered lister's rows. */
|
|
215
|
+
export const stateConsumers = z.array(consumerRow);
|
|
216
|
+
export type StateConsumers = z.infer<typeof stateConsumers>;
|
|
217
|
+
|
|
218
|
+
/** `DELETE /api/states/{name}` — the removed state. */
|
|
219
|
+
export const stateDeleted = z.object({ name: z.string(), deleted: z.literal(true) });
|
|
220
|
+
|
|
221
|
+
/** `PUT /api/states/{name}/attachments/{template}` — the template now attached to the state. */
|
|
222
|
+
export const stateAttached = z.object({
|
|
223
|
+
attached: z.literal(true),
|
|
224
|
+
state: z.string(),
|
|
225
|
+
template: z.string(),
|
|
226
|
+
});
|
|
227
|
+
export type StateAttached = z.infer<typeof stateAttached>;
|
|
228
|
+
|
|
229
|
+
/** `PATCH /api/states/{name}/attachments/{template}` — the attachment whose declarations were rewritten. */
|
|
230
|
+
export const stateAttachmentUpdated = z.object({
|
|
231
|
+
updated: z.literal(true),
|
|
232
|
+
state: z.string(),
|
|
233
|
+
template: z.string(),
|
|
234
|
+
});
|
|
235
|
+
export type StateAttachmentUpdated = z.infer<typeof stateAttachmentUpdated>;
|
|
236
|
+
|
|
237
|
+
/** `DELETE /api/states/{name}/attachments/{template}` — the template detached from the state. */
|
|
238
|
+
export const stateDetached = z.object({
|
|
239
|
+
detached: z.literal(true),
|
|
240
|
+
state: z.string(),
|
|
241
|
+
template: z.string(),
|
|
242
|
+
});
|
|
243
|
+
export type StateDetached = z.infer<typeof stateDetached>;
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* `POST /api/states/{name}/records/.../fold` — the fold report: the `mode`, the
|
|
247
|
+
* `{kind, key}` of the folded `from` and surviving `into` subjects, whether the fold
|
|
248
|
+
* was `already` in place, and how many records were `flattened` into the survivor.
|
|
249
|
+
*/
|
|
250
|
+
export const stateFoldReport = z.object({
|
|
251
|
+
mode: z.enum(['switch', 'merge']),
|
|
252
|
+
from: z.object({ kind: z.string(), key: z.string() }),
|
|
253
|
+
into: z.object({ kind: z.string(), key: z.string() }),
|
|
254
|
+
already: z.boolean(),
|
|
255
|
+
flattened: z.number().default(0),
|
|
256
|
+
});
|
|
257
|
+
export type StateFoldReport = z.infer<typeof stateFoldReport>;
|
|
258
|
+
|
|
259
|
+
/** `DELETE /api/state-templates/{name}` — the removed template document. */
|
|
260
|
+
export const stateTemplateDeleted = z.object({ name: z.string(), deleted: z.literal(true) });
|
|
261
|
+
|
|
262
|
+
/** `DELETE /api/states/{name}/records/...` — the erased record marker. */
|
|
263
|
+
export const recordErased = z.object({ erased: z.literal(true) });
|
|
264
|
+
|
|
265
|
+
/**
|
|
266
|
+
* `POST /api/state-retention/prune` — the retention sweep's per-state deleted counts
|
|
267
|
+
* (`{}` when nothing expired); the UI sums the values for its total.
|
|
268
|
+
*/
|
|
269
|
+
export const stateRetentionPruned = z.object({
|
|
270
|
+
pruned: z.record(z.string(), z.number()).default({}),
|
|
271
|
+
});
|
|
272
|
+
export type StateRetentionPruned = z.infer<typeof stateRetentionPruned>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/** Storage-provider info and resource CRUD response schemas. */
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
|
|
4
|
+
/** `GET /api/storage` — the storage-provider identity, or the absent sentinel
|
|
5
|
+
* (`present: false`, a 200) when no storage-provider plugin is installed. */
|
|
6
|
+
export const storageInfo = z.object({
|
|
7
|
+
present: z.boolean(),
|
|
8
|
+
provider: z.string().nullable(),
|
|
9
|
+
module: z.string().nullable(),
|
|
10
|
+
});
|
|
11
|
+
export type StorageInfo = z.infer<typeof storageInfo>;
|
|
12
|
+
|
|
13
|
+
/** `GET /api/storage/resources` — the full sorted resource-id list. */
|
|
14
|
+
export const storageResourceList = z.object({ resources: z.array(z.string()) });
|
|
15
|
+
|
|
16
|
+
/** `GET /api/storage/resources/{id}/stat` — an object's inferred content type;
|
|
17
|
+
* `null` when the provider cannot infer one (e.g. an unknown suffix). */
|
|
18
|
+
export const storageResourceStat = z.object({
|
|
19
|
+
id: z.string(),
|
|
20
|
+
content_type: z.string().nullable(),
|
|
21
|
+
});
|
|
22
|
+
export type StorageResourceStat = z.infer<typeof storageResourceStat>;
|
|
23
|
+
|
|
24
|
+
/** `POST /api/storage/resources` — the stored object's id. */
|
|
25
|
+
export const storageResourceStored = z.object({ id: z.string(), stored: z.literal(true) });
|
|
26
|
+
|
|
27
|
+
/** `DELETE /api/storage/resources/{id}` — the removed object's id. */
|
|
28
|
+
export const storageResourceDeleted = z.object({ id: z.string(), deleted: z.literal(true) });
|
|
29
|
+
|
|
30
|
+
/** `DELETE /api/storage/dirs/{path}` — the removed directory subtree. */
|
|
31
|
+
export const storageDirDeleted = z.object({ dir: z.string(), deleted: z.literal(true) });
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/** Studio front-end plugin registry response schemas. */
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
|
|
4
|
+
export const studioPluginManifest = z.object({
|
|
5
|
+
name: z.string(),
|
|
6
|
+
version: z.string(),
|
|
7
|
+
api_version: z.number(),
|
|
8
|
+
entry: z.string(),
|
|
9
|
+
integrity: z.record(z.string(), z.string()),
|
|
10
|
+
contributions: z.object({
|
|
11
|
+
tool_panels: z.record(z.string(), z.string()).default({}),
|
|
12
|
+
pages: z.array(z.string()).default([]),
|
|
13
|
+
settings_tabs: z.array(z.string()).default([]),
|
|
14
|
+
// Optional with a default so a manifest without the field still parses; the
|
|
15
|
+
// non-strict object would otherwise SILENTLY STRIP an undeclared field, so a
|
|
16
|
+
// server that serves `nav_entries` would never reach the UI.
|
|
17
|
+
nav_entries: z.array(z.string()).default([]),
|
|
18
|
+
}),
|
|
19
|
+
});
|
|
20
|
+
export const studioPluginRegistry = z.array(studioPluginManifest);
|
|
21
|
+
export type StudioPluginManifest = z.infer<typeof studioPluginManifest>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/** Sub-MCP mount registry response schemas. */
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* One registered sub-MCP mount as it rides the registry list and the projection:
|
|
6
|
+
* the tools it exposes and the transport it serves on. In `GET /api/sub-mcp` the
|
|
7
|
+
* slug is the map key, so the mount value carries no slug; {@link subMcpEntry}
|
|
8
|
+
* extends this with `slug` for the capability projection where mounts are a flat
|
|
9
|
+
* list. `transport` is always present on the wire (the server defaults it to
|
|
10
|
+
* `http`), so it is required — its absence is a drift, not a legal shape.
|
|
11
|
+
*/
|
|
12
|
+
export const subMcpMount = z.object({
|
|
13
|
+
tools: z.array(z.string()),
|
|
14
|
+
transport: z.string(),
|
|
15
|
+
});
|
|
16
|
+
export type SubMcpMount = z.infer<typeof subMcpMount>;
|
|
17
|
+
|
|
18
|
+
export const subMcpList = z.record(z.string(), subMcpMount);
|
|
19
|
+
export const subMcpCreated = z.object({
|
|
20
|
+
slug: z.string(),
|
|
21
|
+
tools: z.array(z.string()),
|
|
22
|
+
transport: z.string(),
|
|
23
|
+
});
|
|
24
|
+
export const subMcpRemoved = z.object({ slug: z.string(), removed: z.literal(true) });
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/** Pluggable-kind status and MCP status/reload response schemas. */
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { fleetResult } from './fleet';
|
|
4
|
+
import { reloadConfigResult } from './manifest-mcp';
|
|
5
|
+
|
|
6
|
+
// `GET /api/system/kinds` — one row per pluggable kind (identity, accounts,
|
|
7
|
+
// monitoring, storage, backend, channels, webhook_verifiers, config,
|
|
8
|
+
// studio_plugins). `state` is the kind's active/default/off status: `active` = a
|
|
9
|
+
// real plugin serves it, `default` = a built-in fallback serves it, `off` =
|
|
10
|
+
// nothing is registered (a legal state, reported not "fixed"). `plugin` is the
|
|
11
|
+
// provider/module name when known, else null. Plain (non-strict) `z.object` so a
|
|
12
|
+
// server that adds a field to the row still parses.
|
|
13
|
+
|
|
14
|
+
export const kindStatus = z.object({
|
|
15
|
+
kind: z.string(),
|
|
16
|
+
state: z.enum(['active', 'default', 'off']),
|
|
17
|
+
plugin: z.string().nullable(),
|
|
18
|
+
detail: z.string(),
|
|
19
|
+
});
|
|
20
|
+
export const kindStatusList = z.array(kindStatus);
|
|
21
|
+
export type KindStatus = z.infer<typeof kindStatus>;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* `POST /api/tools/{name}/extensions` — the apply result. The write persists the
|
|
25
|
+
* manifest, reloads locally, then broadcasts the reload to the whole fleet. The
|
|
26
|
+
* response is the one apply-result shape every config-writer returns: the local
|
|
27
|
+
* reload result (`status` + `env_keys`) plus the mode-wrapped fleet `fanout`. The
|
|
28
|
+
* fan-out rides EVERY deployment (a lone worker reports `local-only`), so this flat
|
|
29
|
+
* shape parses every save and the shared fleet-report handler renders any failed
|
|
30
|
+
* propagation from `fanout`.
|
|
31
|
+
*/
|
|
32
|
+
export const toolExtensionsApplyResult = reloadConfigResult;
|
|
33
|
+
export type ToolExtensionsApplyResult = z.infer<typeof toolExtensionsApplyResult>;
|
|
34
|
+
export const mcpStatus = z.object({
|
|
35
|
+
bound: z.record(z.string(), z.array(z.string())),
|
|
36
|
+
failed: z.array(z.object({ title: z.string(), status: z.string() })),
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* `POST /api/mcp-status/{title}/reload` — re-probe a single MCP server and broadcast
|
|
41
|
+
* the reload to the fleet. The response is the bare per-worker {@link fleetResult}
|
|
42
|
+
* (the serving worker's re-probe rides its own `results` entry as the payload); there
|
|
43
|
+
* is no local/workers split. A drift throws `ApiSchemaError`.
|
|
44
|
+
*/
|
|
45
|
+
export const mcpReloadResult = fleetResult;
|
|
46
|
+
export type McpReloadResult = z.infer<typeof mcpReloadResult>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Prompt-template listing, render and mutation ack schemas. */
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { jsonSchema } from './shared';
|
|
4
|
+
|
|
5
|
+
export const templateNames = z.array(z.string());
|
|
6
|
+
export const templateDetail = z.object({ template: z.string(), schema: jsonSchema });
|
|
7
|
+
export const templateUploaded = z.object({ path: z.string(), uploaded: z.literal(true) });
|
|
8
|
+
export const templateDeleted = z.object({ path: z.string(), deleted: z.literal(true) });
|
|
9
|
+
export const templateDirDeleted = z.object({ path: z.string(), deleted: z.literal(true) });
|
|
10
|
+
export const templateRendered = z.object({ rendered: z.string() });
|
|
11
|
+
export const templateCacheCleared = z.object({ cleared: z.literal(true) });
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/** Tool-organization overlay (folders and per-tool meta) schemas. */
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* One folder in the tool-organization tree (`tool_folders`). `parent_id` is `null`
|
|
6
|
+
* for a root folder and otherwise the containing folder's `id`; nesting is endless
|
|
7
|
+
* via the parent chain. Ids are UUID strings. A drift throws `ApiSchemaError`.
|
|
8
|
+
*/
|
|
9
|
+
export const folderRecord = z.object({
|
|
10
|
+
id: z.string(),
|
|
11
|
+
name: z.string(),
|
|
12
|
+
parent_id: z.string().nullable(),
|
|
13
|
+
});
|
|
14
|
+
export type FolderRecord = z.infer<typeof folderRecord>;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* The organizational overlay for one tool, keyed by `tool_name`. `display_name`
|
|
18
|
+
* overrides the rendered label (`display_name ?? name`); `folder_id` places the tool
|
|
19
|
+
* in a folder (`null` = unfiled); `tags` is the user's editable categorization,
|
|
20
|
+
* merged with the tool's read-only native tags by the UI; `badges` is the operator's
|
|
21
|
+
* editable capability-label overlay, merged with the tool's read-only plugin-declared
|
|
22
|
+
* badges by the UI (INFORMATIONAL, never an enforced gate); `hidden` is TRI-STATE —
|
|
23
|
+
* `null` = defer to the plugin declaration, `true` = force hidden, `false` = force
|
|
24
|
+
* visible. A drift throws `ApiSchemaError`.
|
|
25
|
+
*/
|
|
26
|
+
export const toolMetaRecord = z.object({
|
|
27
|
+
tool_name: z.string(),
|
|
28
|
+
display_name: z.string().nullable(),
|
|
29
|
+
folder_id: z.string().nullable(),
|
|
30
|
+
tags: z.array(z.string()),
|
|
31
|
+
badges: z.array(z.string()),
|
|
32
|
+
hidden: z.boolean().nullable(),
|
|
33
|
+
});
|
|
34
|
+
export type ToolMetaRecord = z.infer<typeof toolMetaRecord>;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* `GET /api/tool-meta` — the whole overlay in one read: the flat folder tree plus
|
|
38
|
+
* every per-tool row. The UI builds the tree and merges the rows against the live
|
|
39
|
+
* tool list client-side. A drift throws `ApiSchemaError`.
|
|
40
|
+
*/
|
|
41
|
+
export const toolMetaOverlay = z.object({
|
|
42
|
+
folders: z.array(folderRecord),
|
|
43
|
+
meta: z.array(toolMetaRecord),
|
|
44
|
+
});
|
|
45
|
+
export type ToolMetaOverlay = z.infer<typeof toolMetaOverlay>;
|
|
46
|
+
|
|
47
|
+
/** `DELETE /api/tool-meta/tools/{tool_name}` — the dropped overlay row (idempotent). */
|
|
48
|
+
export const toolMetaDeleted = z.object({ tool_name: z.string(), deleted: z.literal(true) });
|
|
49
|
+
|
|
50
|
+
/** `DELETE /api/tool-meta/folders/{folder_id}` — the removed empty folder. */
|
|
51
|
+
export const folderDeleted = z.object({ folder_id: z.string(), deleted: z.literal(true) });
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/** Tool catalog, run-result and per-tool tag response schemas. */
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { jsonSchema, jsonValue } from './shared';
|
|
4
|
+
|
|
5
|
+
export const toolNames = z.array(z.string());
|
|
6
|
+
|
|
7
|
+
export const toolSchema = z.object({
|
|
8
|
+
input: jsonSchema,
|
|
9
|
+
output: jsonSchema.nullable(),
|
|
10
|
+
description: z.string().nullable(),
|
|
11
|
+
});
|
|
12
|
+
export type ToolSchema = z.infer<typeof toolSchema>;
|
|
13
|
+
|
|
14
|
+
export const allToolSchemas = z.record(z.string(), toolSchema);
|
|
15
|
+
|
|
16
|
+
export const runToolResult = jsonValue;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* The MEDIA content shape a direct tool run may return — fastmcp's serialized
|
|
20
|
+
* `Image`/`Audio` MediaBlock (`{ type, data: <base64>, mimeType }`). One recognised
|
|
21
|
+
* shape of the otherwise-arbitrary `runToolResult`, kept as its own schema so the
|
|
22
|
+
* viewer detects media by parse, not by ad-hoc shape check.
|
|
23
|
+
*
|
|
24
|
+
* SECURITY: the refinement pins `mimeType` to its kind — `image` MUST be `image/*`,
|
|
25
|
+
* `audio` MUST be `audio/*` — so a drifting/arbitrary mime fails the parse and is
|
|
26
|
+
* never turned into a `data:` URI (a `File` MediaBlock's distinct `EmbeddedResource`
|
|
27
|
+
* shape also fails here, by design).
|
|
28
|
+
*/
|
|
29
|
+
export const toolMediaResult = z
|
|
30
|
+
.object({
|
|
31
|
+
type: z.enum(['image', 'audio']),
|
|
32
|
+
data: z.string(),
|
|
33
|
+
mimeType: z.string(),
|
|
34
|
+
})
|
|
35
|
+
.refine((media) => media.mimeType.startsWith(`${media.type}/`), {
|
|
36
|
+
message: 'media mimeType must match its media kind (image/* for image, audio/* for audio)',
|
|
37
|
+
path: ['mimeType'],
|
|
38
|
+
});
|
|
39
|
+
export type ToolMediaResult = z.infer<typeof toolMediaResult>;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* The ADDITIVE per-tool native surface (`GET /api/tools/tags`). Distinct from the
|
|
43
|
+
* flat `toolNames` contract (`GET /api/tools`, unchanged): each entry carries the
|
|
44
|
+
* tool's read-only FastMCP `tags` — so the shared `ToolPicker` can group/filter its
|
|
45
|
+
* options — plus `hidden`, the tool's OWN plugin-declared visibility (read from the
|
|
46
|
+
* FastMCP `meta` under `tai42/hidden`; a tool that never declared it is not hidden).
|
|
47
|
+
* The tool_meta overlay's tri-state override is merged on top client-side; this read
|
|
48
|
+
* exposes only the declaration.
|
|
49
|
+
*
|
|
50
|
+
* `badges` are the tool's plugin-DECLARED capability labels — purely INFORMATIONAL
|
|
51
|
+
* (e.g. `network`, `filesystem`), never a gate the server enforces. The overlay's
|
|
52
|
+
* own badges are merged on top client-side; this read exposes only the declaration.
|
|
53
|
+
*/
|
|
54
|
+
export const toolTagEntry = z.object({
|
|
55
|
+
name: z.string(),
|
|
56
|
+
tags: z.array(z.string()),
|
|
57
|
+
badges: z.array(z.string()),
|
|
58
|
+
hidden: z.boolean(),
|
|
59
|
+
});
|
|
60
|
+
export const toolTags = z.array(toolTagEntry);
|
|
61
|
+
export type ToolTagEntry = z.infer<typeof toolTagEntry>;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/** Trigger-link record and lifecycle response schemas. */
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { triggerAuth } from './hooks';
|
|
4
|
+
|
|
5
|
+
// A trigger link is a minted, token-bearing PUBLIC URL (`GET|POST /trigger/{token}`)
|
|
6
|
+
// that resolves to a hook TOPIC and fires it. Studio mints, lists, and revokes them
|
|
7
|
+
// on the hooks page; the QR encodes the composed absolute URL.
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* `POST /api/hooks/trigger-links` — a freshly minted trigger link. `trigger_path`
|
|
11
|
+
* is a relative path (`/trigger/<token>`, never an absolute URL — Studio composes
|
|
12
|
+
* the API origin); `token` is the raw token returned exactly ONCE, in this response
|
|
13
|
+
* (nothing else stores or lists it — a listed link's QR is unrecoverable by
|
|
14
|
+
* design). `expires_at` is an ISO-8601 instant, or `null` for a permanent link.
|
|
15
|
+
*/
|
|
16
|
+
export const triggerLinkCreated = z.object({
|
|
17
|
+
name: z.string(),
|
|
18
|
+
trigger_path: z.string(),
|
|
19
|
+
token: z.string(),
|
|
20
|
+
topic: z.string(),
|
|
21
|
+
expires_at: z.string().nullable(),
|
|
22
|
+
});
|
|
23
|
+
export type TriggerLinkCreated = z.infer<typeof triggerLinkCreated>;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* One listed trigger-link record (`GET /api/hooks/trigger-links` item). `tool_kwargs`
|
|
27
|
+
* is the per-link params merged last into every fire (`null` or `{}` = none);
|
|
28
|
+
* `created_by` is the ambient creator identity (`null` on an identity-less,
|
|
29
|
+
* gate-off deployment); `token_hash_prefix` is a short hash prefix for log
|
|
30
|
+
* correlation — never a raw token (none is stored).
|
|
31
|
+
*/
|
|
32
|
+
export const triggerLinkRecord = z.object({
|
|
33
|
+
name: z.string(),
|
|
34
|
+
topic: z.string(),
|
|
35
|
+
execution_key: z.string().min(1),
|
|
36
|
+
trigger_auth: triggerAuth,
|
|
37
|
+
tool_kwargs: z.record(z.string(), z.unknown()).nullable(),
|
|
38
|
+
created_by: z.string().nullable(),
|
|
39
|
+
created_at: z.string(),
|
|
40
|
+
expires_at: z.string().nullable(),
|
|
41
|
+
token_hash_prefix: z.string(),
|
|
42
|
+
});
|
|
43
|
+
export type TriggerLinkRecord = z.infer<typeof triggerLinkRecord>;
|
|
44
|
+
|
|
45
|
+
/** `GET /api/hooks/trigger-links` — every live trigger-link record. */
|
|
46
|
+
export const triggerLinkList = z.object({
|
|
47
|
+
items: z.array(triggerLinkRecord),
|
|
48
|
+
total: z.number(),
|
|
49
|
+
});
|
|
50
|
+
export type TriggerLinkList = z.infer<typeof triggerLinkList>;
|
|
51
|
+
|
|
52
|
+
/** `DELETE /api/hooks/trigger-links/{name}` — the revoked link. */
|
|
53
|
+
export const triggerLinkDeleted = z.object({ removed: z.boolean(), name: z.string() });
|
|
54
|
+
export type TriggerLinkDeleted = z.infer<typeof triggerLinkDeleted>;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/** Web-channel entry-gate code response schemas. */
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
|
|
4
|
+
// The web channel's entry gate: a web route can be gated so its chat page is
|
|
5
|
+
// served only to a navigation carrying a live entry code. These four doors are
|
|
6
|
+
// keyed by the route's `our_identity`. A raw code exists only in flight (the
|
|
7
|
+
// mint reply); a listed code carries its hash id, never a raw value (none is
|
|
8
|
+
// stored).
|
|
9
|
+
|
|
10
|
+
/** One minted entry code as the gate read door lists it — its hash id, its
|
|
11
|
+
* optional label, and when it was created / dies. Never a raw code. */
|
|
12
|
+
export const webEntryCode = z.object({
|
|
13
|
+
code_id: z.string(),
|
|
14
|
+
label: z.string().nullable(),
|
|
15
|
+
created_at: z.string(),
|
|
16
|
+
expires_at: z.string().nullable(),
|
|
17
|
+
});
|
|
18
|
+
export type WebEntryCode = z.infer<typeof webEntryCode>;
|
|
19
|
+
|
|
20
|
+
/** `GET /api/channels/web/gates/{identity}` — the gate flag and its live codes. */
|
|
21
|
+
export const webEntryGate = z.object({
|
|
22
|
+
enabled: z.boolean(),
|
|
23
|
+
codes: z.array(webEntryCode),
|
|
24
|
+
});
|
|
25
|
+
export type WebEntryGate = z.infer<typeof webEntryGate>;
|
|
26
|
+
|
|
27
|
+
/** `PUT /api/channels/web/gates/{identity}` — the gate flag after the write. */
|
|
28
|
+
export const webEntryGateState = z.object({ enabled: z.boolean() });
|
|
29
|
+
export type WebEntryGateState = z.infer<typeof webEntryGateState>;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* `POST /api/channels/web/gates/{identity}/codes` — a freshly minted code. The
|
|
33
|
+
* raw `code` rides this reply ONCE (nothing else stores or lists it — a listed
|
|
34
|
+
* code's raw value is unrecoverable by design); `code_id` is its hash id and
|
|
35
|
+
* `expires_at` an ISO-8601 instant, or `null` for a code that never expires.
|
|
36
|
+
*/
|
|
37
|
+
export const webEntryCodeMinted = z.object({
|
|
38
|
+
code: z.string(),
|
|
39
|
+
code_id: z.string(),
|
|
40
|
+
expires_at: z.string().nullable(),
|
|
41
|
+
});
|
|
42
|
+
export type WebEntryCodeMinted = z.infer<typeof webEntryCodeMinted>;
|
|
43
|
+
|
|
44
|
+
/** `DELETE /api/channels/web/gates/{identity}/codes/{code_id}` — the revoked code. */
|
|
45
|
+
export const webEntryCodeRevoked = z.object({ status: z.literal('revoked') });
|
|
46
|
+
export type WebEntryCodeRevoked = z.infer<typeof webEntryCodeRevoked>;
|
package/dist/client.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|