@tai42/api-client 16.0.0 → 17.0.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/dist/agents.d.ts.map +1 -1
- package/dist/agents.js +1 -1
- package/dist/agents.js.map +1 -1
- 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 +247 -0
- package/dist/client/auth-client.d.ts.map +1 -0
- package/dist/client/auth-client.js +73 -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 +40 -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 +398 -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 +112 -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} +2336 -2708
- 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 +69 -0
- package/dist/client/login-client.d.ts.map +1 -0
- package/dist/client/login-client.js +137 -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 +334 -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 +101 -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 +27 -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 +470 -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 +53 -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/errors.d.ts +11 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +15 -0
- package/dist/errors.js.map +1 -1
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +33 -17
- package/dist/http.js.map +1 -1
- package/dist/index.d.ts +12 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -13
- package/dist/index.js.map +1 -1
- package/dist/schemas/api-keys.d.ts +43 -0
- package/dist/schemas/api-keys.d.ts.map +1 -0
- package/dist/schemas/api-keys.js +29 -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 +109 -0
- package/dist/schemas/capabilities.d.ts.map +1 -0
- package/dist/schemas/capabilities.js +78 -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 +40 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +40 -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 +93 -0
- package/dist/schemas/login.d.ts.map +1 -0
- package/dist/schemas/login.js +61 -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/principals.d.ts +54 -0
- package/dist/schemas/principals.d.ts.map +1 -0
- package/dist/schemas/principals.js +34 -0
- package/dist/schemas/principals.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/setup.d.ts +43 -0
- package/dist/schemas/setup.d.ts.map +1 -0
- package/dist/schemas/setup.js +19 -0
- package/dist/schemas/setup.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.map +1 -1
- package/dist/tool-runs.js.map +1 -1
- package/package.json +1 -1
- package/src/agents.ts +2 -2
- package/src/client/agents-client.ts +23 -0
- package/src/client/auth-client.ts +170 -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 +150 -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/errors.ts +16 -0
- package/src/http.ts +48 -24
- package/src/index.ts +231 -226
- package/src/schemas/api-keys.ts +34 -0
- package/src/schemas/auth-routes.ts +48 -0
- package/src/schemas/backup.ts +43 -0
- package/src/schemas/capabilities.ts +92 -0
- package/src/schemas/channels.ts +11 -0
- package/src/schemas/config.ts +17 -0
- package/src/schemas/connectors.ts +139 -0
- package/src/schemas/conversations.ts +257 -0
- package/src/schemas/extensions.ts +34 -0
- package/src/schemas/fleet.ts +154 -0
- package/src/schemas/hooks.ts +57 -0
- package/src/schemas/index.ts +39 -0
- package/src/schemas/interactions.ts +147 -0
- package/src/schemas/login.ts +69 -0
- package/src/schemas/manifest-mcp.ts +70 -0
- package/src/schemas/marketplace.ts +447 -0
- package/src/schemas/notifications.ts +43 -0
- package/src/schemas/observability.ts +87 -0
- package/src/schemas/policy.ts +38 -0
- package/src/schemas/presets.ts +114 -0
- package/src/schemas/principals.ts +41 -0
- package/src/schemas/profiles.ts +120 -0
- package/src/schemas/roles.ts +58 -0
- package/src/schemas/schedules.ts +28 -0
- package/src/schemas/served.ts +50 -0
- package/src/schemas/settings-schema.ts +32 -0
- package/src/schemas/setup.ts +39 -0
- package/src/schemas/shared.ts +21 -0
- package/src/schemas/states.ts +273 -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 +47 -0
- package/src/schemas/templates.ts +12 -0
- package/src/schemas/tool-meta.ts +51 -0
- package/src/schemas/tools.ts +62 -0
- package/src/schemas/trigger-links.ts +55 -0
- package/src/schemas/web-entry.ts +46 -0
- package/src/tool-runs.ts +1 -1
- 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,124 @@
|
|
|
1
|
+
/** Interaction question, answer and media response schemas. */
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { pageWindow } from './shared';
|
|
4
|
+
// Shapes match the skeleton's interactions SSE contract: the SSE
|
|
5
|
+
// `interaction.add` frame carries the question and its answer format; the answer
|
|
6
|
+
// door returns { interaction_id, status }. `answered` is not a wire field — it
|
|
7
|
+
// is a client-side flag the stream hook flips on an `interaction.answered` event.
|
|
8
|
+
export const answerFormat = z.enum(['text', 'confirm', 'select', 'form', 'external']);
|
|
9
|
+
/** The kind of a question's display-only media item: a remote/inline image, or a link. */
|
|
10
|
+
export const mediaKind = z.enum(['image', 'link']);
|
|
11
|
+
/**
|
|
12
|
+
* One item of a question's display-only media. Applied PER ITEM by the renderer
|
|
13
|
+
* (never as a strict array on the frame): the frame's `media` field is a loose
|
|
14
|
+
* `z.array(z.unknown())`, and the renderer `safeParse`s each item with this schema
|
|
15
|
+
* so one malformed/hostile item is a loud per-item notice, not a whole-frame parse
|
|
16
|
+
* failure that would silently vanish an answerable question.
|
|
17
|
+
*
|
|
18
|
+
* `caption` is `.nullish()` (absent OR `null` both parse to a caption-less item):
|
|
19
|
+
* a caption-less item may arrive with the key omitted OR with an explicit `null`, so
|
|
20
|
+
* `.optional()` here would false-fail the explicit `null` and render a good image as
|
|
21
|
+
* malformed. `url` and `kind` are the only load-bearing fields; the image
|
|
22
|
+
* src scheme gate and the link neutralization are enforced by the renderer.
|
|
23
|
+
*/
|
|
24
|
+
export const interactionMediaItem = z.object({
|
|
25
|
+
kind: mediaKind,
|
|
26
|
+
url: z.string(),
|
|
27
|
+
caption: z.string().nullish(),
|
|
28
|
+
});
|
|
29
|
+
/**
|
|
30
|
+
* One per-send choice for a `form` property whose schema is a string (or array of
|
|
31
|
+
* strings). `value` is what the answer carries; `label` (absent OR null both parse
|
|
32
|
+
* to no label) is the human text shown in its place. A send may replace a property's
|
|
33
|
+
* `enum` this way for one ask without republishing the form. Applied per property by
|
|
34
|
+
* the form preview (safeParsed), so a malformed entry is a loud notice, never silent.
|
|
35
|
+
*/
|
|
36
|
+
export const formOption = z.object({
|
|
37
|
+
value: z.string(),
|
|
38
|
+
label: z.string().nullish(),
|
|
39
|
+
});
|
|
40
|
+
/**
|
|
41
|
+
* Per-send `form` data: `values` prefills top-level properties (keyed by property
|
|
42
|
+
* name), `options` supplies per-send choice lists (keyed by property name). Both
|
|
43
|
+
* default to empty. The form preview safeParses this off `format_payload.data`, so a
|
|
44
|
+
* malformed block is a loud notice rather than a whole-frame parse failure.
|
|
45
|
+
*/
|
|
46
|
+
export const formData = z.object({
|
|
47
|
+
values: z.record(z.string(), z.unknown()).default({}),
|
|
48
|
+
options: z.record(z.string(), z.array(formOption)).default({}),
|
|
49
|
+
});
|
|
50
|
+
/**
|
|
51
|
+
* One page of a stepped `form`: a `title` and the ordered top-level property names it
|
|
52
|
+
* groups. `format_payload.pages` is the ordered list of these; absent = one page. The
|
|
53
|
+
* form preview safeParses the list, so a malformed page is a loud notice, never silent.
|
|
54
|
+
*/
|
|
55
|
+
export const formPage = z.object({
|
|
56
|
+
title: z.string(),
|
|
57
|
+
fields: z.array(z.string()),
|
|
58
|
+
});
|
|
59
|
+
/** The `form` pages list (`format_payload.pages`), safeParsed as a whole by the preview. */
|
|
60
|
+
export const formPages = z.array(formPage);
|
|
61
|
+
export const interaction = z.object({
|
|
62
|
+
interaction_id: z.string(),
|
|
63
|
+
group_id: z.string(),
|
|
64
|
+
question: z.string().default(''),
|
|
65
|
+
answer_format: answerFormat,
|
|
66
|
+
// Format-specific payload: select options, form JSON schema (with optional per-send
|
|
67
|
+
// `data` and `pages`), external url. The wire sends `null` for formats that carry
|
|
68
|
+
// none (text/confirm); it is normalized to `{}` so consumers always see an object.
|
|
69
|
+
format_payload: z
|
|
70
|
+
.record(z.string(), z.unknown())
|
|
71
|
+
.nullish()
|
|
72
|
+
.transform((value) => value ?? {}),
|
|
73
|
+
created_at: z.string(),
|
|
74
|
+
timeout_at: z.string(),
|
|
75
|
+
// Whether the answer body is sensitive and never persisted server-side. Rides
|
|
76
|
+
// every add frame; an absent value (older frame) normalizes to false.
|
|
77
|
+
sensitive: z.boolean().default(false),
|
|
78
|
+
// True only for an external question answered by a signed server-to-server
|
|
79
|
+
// callback (never by a human); the frame never carries the verifier object.
|
|
80
|
+
// Absent/undefined for every other question.
|
|
81
|
+
server_verified: z.boolean().optional(),
|
|
82
|
+
// Name of the channel plugin the question was also delivered through (e.g.
|
|
83
|
+
// "telegram"); absent when the question lives only in this inbox.
|
|
84
|
+
channel: z.string().optional(),
|
|
85
|
+
// Interaction attribution, each additive and absent when unset. `recipient` is
|
|
86
|
+
// the channel delivery address the question went to; `origin` is the run id of
|
|
87
|
+
// the background tool run that asked; `audience` is the user_id the question is
|
|
88
|
+
// addressed to. Display/binding data only, never an authorization axis; a
|
|
89
|
+
// present non-string is malformed.
|
|
90
|
+
recipient: z.string().optional(),
|
|
91
|
+
origin: z.string().optional(),
|
|
92
|
+
audience: z.string().optional(),
|
|
93
|
+
// Display-only media shown WITH the question (images and/or links). Absent when
|
|
94
|
+
// the question carries none. Deliberately LOOSE (`z.array(z.unknown())`): each
|
|
95
|
+
// item is `safeParse`d per item by the renderer against `interactionMediaItem`,
|
|
96
|
+
// so one malformed/hostile item can never fail the whole frame parse and hide an
|
|
97
|
+
// answerable question. A present non-array value is still malformed.
|
|
98
|
+
media: z.array(z.unknown()).optional(),
|
|
99
|
+
});
|
|
100
|
+
/** The answer door's response — the blocked caller was woken. */
|
|
101
|
+
export const interactionAnswered = z.object({
|
|
102
|
+
interaction_id: z.string(),
|
|
103
|
+
status: z.string(),
|
|
104
|
+
});
|
|
105
|
+
/**
|
|
106
|
+
* The cancel door's response — a pending ask was WITHDRAWN without an answer (the
|
|
107
|
+
* asking flow does not resume). `status` is `"cancelled"`; the shape mirrors the
|
|
108
|
+
* answer door's terminal reply, but the door is distinct so it carries its own
|
|
109
|
+
* schema.
|
|
110
|
+
*/
|
|
111
|
+
export const interactionCancelled = z.object({
|
|
112
|
+
interaction_id: z.string(),
|
|
113
|
+
status: z.string(),
|
|
114
|
+
});
|
|
115
|
+
/**
|
|
116
|
+
* A page of pending interactions from `GET /api/interactions?page=&pageSize=`. Each
|
|
117
|
+
* item is the same record the stream's `interaction.add` frame carries. The pending
|
|
118
|
+
* set is the paged base the tail-only stream applies live deltas over.
|
|
119
|
+
*/
|
|
120
|
+
export const interactionsPage = z.object({
|
|
121
|
+
items: z.array(interaction),
|
|
122
|
+
...pageWindow,
|
|
123
|
+
});
|
|
124
|
+
//# sourceMappingURL=interactions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interactions.js","sourceRoot":"","sources":["../../src/schemas/interactions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/** Public login-method aggregator and login-result schemas. */
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
/**
|
|
4
|
+
* One field of a `form` login method. `secret` fields render as password
|
|
5
|
+
* inputs; `autocomplete` passes through to the input (e.g. "email",
|
|
6
|
+
* "current-password", "new-password").
|
|
7
|
+
*/
|
|
8
|
+
export declare const loginFormField: z.ZodObject<{
|
|
9
|
+
name: z.ZodString;
|
|
10
|
+
label: z.ZodString;
|
|
11
|
+
secret: z.ZodBoolean;
|
|
12
|
+
autocomplete: z.ZodOptional<z.ZodString>;
|
|
13
|
+
}, z.core.$strip>;
|
|
14
|
+
/**
|
|
15
|
+
* The two — and only two — login-method shapes. Discriminated on `shape`; an
|
|
16
|
+
* unknown shape fails validation loudly (contract drift, not a soft skip).
|
|
17
|
+
* Optional fields are `.optional()` (absent), never `.nullable()`: the server
|
|
18
|
+
* serializes with `exclude_none`, so an absent field is OMITTED, never `null`.
|
|
19
|
+
*/
|
|
20
|
+
export declare const loginMethod: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
21
|
+
shape: z.ZodLiteral<"form">;
|
|
22
|
+
id: z.ZodString;
|
|
23
|
+
title: z.ZodString;
|
|
24
|
+
purpose: z.ZodDefault<z.ZodEnum<{
|
|
25
|
+
login: "login";
|
|
26
|
+
invite: "invite";
|
|
27
|
+
}>>;
|
|
28
|
+
fields: z.ZodArray<z.ZodObject<{
|
|
29
|
+
name: z.ZodString;
|
|
30
|
+
label: z.ZodString;
|
|
31
|
+
secret: z.ZodBoolean;
|
|
32
|
+
autocomplete: z.ZodOptional<z.ZodString>;
|
|
33
|
+
}, z.core.$strip>>;
|
|
34
|
+
submit_path: z.ZodString;
|
|
35
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
36
|
+
shape: z.ZodLiteral<"button">;
|
|
37
|
+
id: z.ZodString;
|
|
38
|
+
label: z.ZodString;
|
|
39
|
+
icon: z.ZodOptional<z.ZodString>;
|
|
40
|
+
href: z.ZodString;
|
|
41
|
+
}, z.core.$strip>], "shape">;
|
|
42
|
+
/**
|
|
43
|
+
* `GET /api/login/methods` (PUBLIC). `needs_setup: true` ⇒ no principal exists
|
|
44
|
+
* yet, so the deployment must be initialized through the setup door before anyone
|
|
45
|
+
* can sign in. `setup_login` names the login-credential kinds the setup door can
|
|
46
|
+
* attach the owner's login with; it is `null`/absent when no login-attaching
|
|
47
|
+
* accounts provider is configured (a keys-only deployment). Non-strict — the
|
|
48
|
+
* skeleton may grow additive fields.
|
|
49
|
+
*/
|
|
50
|
+
export declare const loginMethods: z.ZodObject<{
|
|
51
|
+
methods: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
52
|
+
shape: z.ZodLiteral<"form">;
|
|
53
|
+
id: z.ZodString;
|
|
54
|
+
title: z.ZodString;
|
|
55
|
+
purpose: z.ZodDefault<z.ZodEnum<{
|
|
56
|
+
login: "login";
|
|
57
|
+
invite: "invite";
|
|
58
|
+
}>>;
|
|
59
|
+
fields: z.ZodArray<z.ZodObject<{
|
|
60
|
+
name: z.ZodString;
|
|
61
|
+
label: z.ZodString;
|
|
62
|
+
secret: z.ZodBoolean;
|
|
63
|
+
autocomplete: z.ZodOptional<z.ZodString>;
|
|
64
|
+
}, z.core.$strip>>;
|
|
65
|
+
submit_path: z.ZodString;
|
|
66
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
67
|
+
shape: z.ZodLiteral<"button">;
|
|
68
|
+
id: z.ZodString;
|
|
69
|
+
label: z.ZodString;
|
|
70
|
+
icon: z.ZodOptional<z.ZodString>;
|
|
71
|
+
href: z.ZodString;
|
|
72
|
+
}, z.core.$strip>], "shape">>;
|
|
73
|
+
needs_setup: z.ZodBoolean;
|
|
74
|
+
setup_login: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
75
|
+
kinds: z.ZodArray<z.ZodEnum<{
|
|
76
|
+
invite: "invite";
|
|
77
|
+
password: "password";
|
|
78
|
+
}>>;
|
|
79
|
+
}, z.core.$strip>>>;
|
|
80
|
+
}, z.core.$strip>;
|
|
81
|
+
/**
|
|
82
|
+
* A successful login/exchange: the minted session token (opaque, `tai-sess-`
|
|
83
|
+
* prefixed — the client treats it as an opaque string) + its user.
|
|
84
|
+
*/
|
|
85
|
+
export declare const loginResult: z.ZodObject<{
|
|
86
|
+
token: z.ZodString;
|
|
87
|
+
user_id: z.ZodString;
|
|
88
|
+
}, z.core.$strip>;
|
|
89
|
+
export type LoginFormField = z.infer<typeof loginFormField>;
|
|
90
|
+
export type LoginMethod = z.infer<typeof loginMethod>;
|
|
91
|
+
export type LoginMethods = z.infer<typeof loginMethods>;
|
|
92
|
+
export type LoginResult = z.infer<typeof loginResult>;
|
|
93
|
+
//# sourceMappingURL=login.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/schemas/login.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;GAIG;AACH,eAAO,MAAM,cAAc;;;;;iBAKzB,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;4BAgBtB,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAOvB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,WAAW;;;iBAGtB,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAC5D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AACtD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AACxD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/** Public login-method aggregator and login-result schemas. */
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
/**
|
|
4
|
+
* One field of a `form` login method. `secret` fields render as password
|
|
5
|
+
* inputs; `autocomplete` passes through to the input (e.g. "email",
|
|
6
|
+
* "current-password", "new-password").
|
|
7
|
+
*/
|
|
8
|
+
export const loginFormField = z.object({
|
|
9
|
+
name: z.string().min(1),
|
|
10
|
+
label: z.string().min(1),
|
|
11
|
+
secret: z.boolean(),
|
|
12
|
+
autocomplete: z.string().optional(),
|
|
13
|
+
});
|
|
14
|
+
/**
|
|
15
|
+
* The two — and only two — login-method shapes. Discriminated on `shape`; an
|
|
16
|
+
* unknown shape fails validation loudly (contract drift, not a soft skip).
|
|
17
|
+
* Optional fields are `.optional()` (absent), never `.nullable()`: the server
|
|
18
|
+
* serializes with `exclude_none`, so an absent field is OMITTED, never `null`.
|
|
19
|
+
*/
|
|
20
|
+
export const loginMethod = z.discriminatedUnion('shape', [
|
|
21
|
+
z.object({
|
|
22
|
+
shape: z.literal('form'),
|
|
23
|
+
id: z.string().min(1),
|
|
24
|
+
title: z.string().min(1),
|
|
25
|
+
purpose: z.enum(['login', 'invite']).default('login'),
|
|
26
|
+
fields: z.array(loginFormField).min(1),
|
|
27
|
+
submit_path: z.string().min(1),
|
|
28
|
+
}),
|
|
29
|
+
z.object({
|
|
30
|
+
shape: z.literal('button'),
|
|
31
|
+
id: z.string().min(1),
|
|
32
|
+
label: z.string().min(1),
|
|
33
|
+
icon: z.string().optional(),
|
|
34
|
+
href: z.string().min(1),
|
|
35
|
+
}),
|
|
36
|
+
]);
|
|
37
|
+
/**
|
|
38
|
+
* `GET /api/login/methods` (PUBLIC). `needs_setup: true` ⇒ no principal exists
|
|
39
|
+
* yet, so the deployment must be initialized through the setup door before anyone
|
|
40
|
+
* can sign in. `setup_login` names the login-credential kinds the setup door can
|
|
41
|
+
* attach the owner's login with; it is `null`/absent when no login-attaching
|
|
42
|
+
* accounts provider is configured (a keys-only deployment). Non-strict — the
|
|
43
|
+
* skeleton may grow additive fields.
|
|
44
|
+
*/
|
|
45
|
+
export const loginMethods = z.object({
|
|
46
|
+
methods: z.array(loginMethod),
|
|
47
|
+
needs_setup: z.boolean(),
|
|
48
|
+
setup_login: z
|
|
49
|
+
.object({ kinds: z.array(z.enum(['password', 'invite'])) })
|
|
50
|
+
.nullable()
|
|
51
|
+
.optional(),
|
|
52
|
+
});
|
|
53
|
+
/**
|
|
54
|
+
* A successful login/exchange: the minted session token (opaque, `tai-sess-`
|
|
55
|
+
* prefixed — the client treats it as an opaque string) + its user.
|
|
56
|
+
*/
|
|
57
|
+
export const loginResult = z.object({
|
|
58
|
+
token: z.string().min(1),
|
|
59
|
+
user_id: z.string().min(1),
|
|
60
|
+
});
|
|
61
|
+
//# sourceMappingURL=login.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/schemas/login.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;IACnB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACpC,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE;IACvD,CAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QACxB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACrB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACxB,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QACrD,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACtC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KAC/B,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC1B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACrB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACxB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KACxB,CAAC;CACH,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;IAC7B,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE;IACxB,WAAW,EAAE,CAAC;SACX,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1D,QAAQ,EAAE;SACV,QAAQ,EAAE;CACd,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC3B,CAAC,CAAC"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/** Live-manifest MCP section, env-ref and config-reload schemas. */
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
/**
|
|
4
|
+
* The back-reference a connector writes onto a manifest MCP entry to mark it
|
|
5
|
+
* connector-owned: the connection and the provider sub-service that own it.
|
|
6
|
+
* Hand-authored entries carry no `managed` marker.
|
|
7
|
+
*/
|
|
8
|
+
export declare const connectorRef: z.ZodObject<{
|
|
9
|
+
connection_id: z.ZodString;
|
|
10
|
+
provider_id: z.ZodString;
|
|
11
|
+
sub_service: z.ZodString;
|
|
12
|
+
}, z.core.$strip>;
|
|
13
|
+
export type ConnectorRef = z.infer<typeof connectorRef>;
|
|
14
|
+
/**
|
|
15
|
+
* One entry of the live manifest's MCP section. Only the `managed` provenance
|
|
16
|
+
* marker is typed — the connect/disconnect flows write it server-side to point a
|
|
17
|
+
* connector-owned entry back at its connection, and the editor renders such
|
|
18
|
+
* entries read-only. `.nullish()` because a hand-authored entry carries `null`
|
|
19
|
+
* (present) or omits the key. Every other field (title, config, extensions) rides
|
|
20
|
+
* through `.loose()` unmodeled so the config editor keeps editing the whole
|
|
21
|
+
* entry — narrowing it to a typed subset would silently strip the fields it saves.
|
|
22
|
+
*/
|
|
23
|
+
export declare const manifestMcpEntry: z.ZodObject<{
|
|
24
|
+
managed: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
25
|
+
connection_id: z.ZodString;
|
|
26
|
+
provider_id: z.ZodString;
|
|
27
|
+
sub_service: z.ZodString;
|
|
28
|
+
}, z.core.$strip>>>;
|
|
29
|
+
}, z.core.$loose>;
|
|
30
|
+
export type ManifestMcpEntry = z.infer<typeof manifestMcpEntry>;
|
|
31
|
+
export declare const manifestView: z.ZodObject<{
|
|
32
|
+
mcp: z.ZodArray<z.ZodObject<{
|
|
33
|
+
managed: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
34
|
+
connection_id: z.ZodString;
|
|
35
|
+
provider_id: z.ZodString;
|
|
36
|
+
sub_service: z.ZodString;
|
|
37
|
+
}, z.core.$strip>>>;
|
|
38
|
+
}, z.core.$loose>>;
|
|
39
|
+
user_tools: z.ZodArray<z.ZodString>;
|
|
40
|
+
}, z.core.$strip>;
|
|
41
|
+
/**
|
|
42
|
+
* One `!ENV ${VAR[:default]}` marker the manifest's MCP section carries
|
|
43
|
+
* (`GET /api/manifest/mcp-env-refs`) — NAMES and BOOLEANS only, NEVER values.
|
|
44
|
+
* `pointer` is the RFC 6901 json-pointer of the leaf (`/mcp/<i>/config/...`);
|
|
45
|
+
* `has_default` is whether the marker carries a `:default`; `set` is whether the
|
|
46
|
+
* var resolves in the EFFECTIVE env (the resolution truth the install-time
|
|
47
|
+
* dangling refusal reads), so a var supplied by the deployment shows green, never
|
|
48
|
+
* a false red. The checklist derives from THIS alone — no env value is ever fetched.
|
|
49
|
+
*/
|
|
50
|
+
export declare const mcpEnvRef: z.ZodObject<{
|
|
51
|
+
var: z.ZodString;
|
|
52
|
+
pointer: z.ZodString;
|
|
53
|
+
has_default: z.ZodBoolean;
|
|
54
|
+
set: z.ZodBoolean;
|
|
55
|
+
}, z.core.$strip>;
|
|
56
|
+
export type McpEnvRef = z.infer<typeof mcpEnvRef>;
|
|
57
|
+
export declare const mcpEnvRefs: z.ZodArray<z.ZodObject<{
|
|
58
|
+
var: z.ZodString;
|
|
59
|
+
pointer: z.ZodString;
|
|
60
|
+
has_default: z.ZodBoolean;
|
|
61
|
+
set: z.ZodBoolean;
|
|
62
|
+
}, z.core.$strip>>;
|
|
63
|
+
export type McpEnvRefs = z.infer<typeof mcpEnvRefs>;
|
|
64
|
+
/**
|
|
65
|
+
* The apply result every config-writer mutation returns (`POST /api/mcp-config`,
|
|
66
|
+
* `POST /api/config/env`): the serving worker's local reload result (`status` +
|
|
67
|
+
* `env_keys`) plus the mode-wrapped fleet fan-out of the reload it broadcast. The
|
|
68
|
+
* `fanout` is parsed EXPLICITLY so the shared fleet-report handler can surface a
|
|
69
|
+
* failed propagation — zod's unknown-key stripping would otherwise hide it. A drift
|
|
70
|
+
* throws `ApiSchemaError`.
|
|
71
|
+
*/
|
|
72
|
+
export declare const reloadConfigResult: z.ZodObject<{
|
|
73
|
+
status: z.ZodString;
|
|
74
|
+
env_keys: z.ZodNumber;
|
|
75
|
+
fanout: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
76
|
+
mode: z.ZodLiteral<"local-only">;
|
|
77
|
+
note: z.ZodString;
|
|
78
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
79
|
+
op: z.ZodString;
|
|
80
|
+
reachable: z.ZodBoolean;
|
|
81
|
+
local_only: z.ZodBoolean;
|
|
82
|
+
results: z.ZodArray<z.ZodObject<{
|
|
83
|
+
name: z.ZodString;
|
|
84
|
+
outcome: z.ZodEnum<{
|
|
85
|
+
failed: "failed";
|
|
86
|
+
resyncing: "resyncing";
|
|
87
|
+
recycling: "recycling";
|
|
88
|
+
stale: "stale";
|
|
89
|
+
applied: "applied";
|
|
90
|
+
missing: "missing";
|
|
91
|
+
departed: "departed";
|
|
92
|
+
timed_out: "timed_out";
|
|
93
|
+
}>;
|
|
94
|
+
payload: z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
|
|
95
|
+
error: z.ZodNullable<z.ZodString>;
|
|
96
|
+
detail: z.ZodNullable<z.ZodString>;
|
|
97
|
+
}, z.core.$strip>>;
|
|
98
|
+
error: z.ZodNullable<z.ZodString>;
|
|
99
|
+
mode: z.ZodLiteral<"fleet">;
|
|
100
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
101
|
+
op: z.ZodString;
|
|
102
|
+
reachable: z.ZodBoolean;
|
|
103
|
+
local_only: z.ZodBoolean;
|
|
104
|
+
results: z.ZodArray<z.ZodObject<{
|
|
105
|
+
name: z.ZodString;
|
|
106
|
+
outcome: z.ZodEnum<{
|
|
107
|
+
failed: "failed";
|
|
108
|
+
resyncing: "resyncing";
|
|
109
|
+
recycling: "recycling";
|
|
110
|
+
stale: "stale";
|
|
111
|
+
applied: "applied";
|
|
112
|
+
missing: "missing";
|
|
113
|
+
departed: "departed";
|
|
114
|
+
timed_out: "timed_out";
|
|
115
|
+
}>;
|
|
116
|
+
payload: z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
|
|
117
|
+
error: z.ZodNullable<z.ZodString>;
|
|
118
|
+
detail: z.ZodNullable<z.ZodString>;
|
|
119
|
+
}, z.core.$strip>>;
|
|
120
|
+
error: z.ZodNullable<z.ZodString>;
|
|
121
|
+
mode: z.ZodLiteral<"unreachable">;
|
|
122
|
+
}, z.core.$strip>], "mode">;
|
|
123
|
+
}, z.core.$strip>;
|
|
124
|
+
export type ReloadConfigResult = z.infer<typeof reloadConfigResult>;
|
|
125
|
+
//# sourceMappingURL=manifest-mcp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest-mcp.d.ts","sourceRoot":"","sources":["../../src/schemas/manifest-mcp.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;;GAIG;AACH,eAAO,MAAM,YAAY;;;;iBAIvB,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB;;;;;;iBAInB,CAAC;AACX,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE,eAAO,MAAM,YAAY;;;;;;;;;iBAGvB,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS;;;;;iBAKpB,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAClD,eAAO,MAAM,UAAU;;;;;kBAAqB,CAAC;AAC7C,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AACpD;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAI7B,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/** Live-manifest MCP section, env-ref and config-reload schemas. */
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { fleetReportFanout } from './fleet';
|
|
4
|
+
/**
|
|
5
|
+
* The back-reference a connector writes onto a manifest MCP entry to mark it
|
|
6
|
+
* connector-owned: the connection and the provider sub-service that own it.
|
|
7
|
+
* Hand-authored entries carry no `managed` marker.
|
|
8
|
+
*/
|
|
9
|
+
export const connectorRef = z.object({
|
|
10
|
+
connection_id: z.string(),
|
|
11
|
+
provider_id: z.string(),
|
|
12
|
+
sub_service: z.string(),
|
|
13
|
+
});
|
|
14
|
+
/**
|
|
15
|
+
* One entry of the live manifest's MCP section. Only the `managed` provenance
|
|
16
|
+
* marker is typed — the connect/disconnect flows write it server-side to point a
|
|
17
|
+
* connector-owned entry back at its connection, and the editor renders such
|
|
18
|
+
* entries read-only. `.nullish()` because a hand-authored entry carries `null`
|
|
19
|
+
* (present) or omits the key. Every other field (title, config, extensions) rides
|
|
20
|
+
* through `.loose()` unmodeled so the config editor keeps editing the whole
|
|
21
|
+
* entry — narrowing it to a typed subset would silently strip the fields it saves.
|
|
22
|
+
*/
|
|
23
|
+
export const manifestMcpEntry = z
|
|
24
|
+
.object({
|
|
25
|
+
managed: connectorRef.nullish(),
|
|
26
|
+
})
|
|
27
|
+
.loose();
|
|
28
|
+
export const manifestView = z.object({
|
|
29
|
+
mcp: z.array(manifestMcpEntry),
|
|
30
|
+
user_tools: z.array(z.string()),
|
|
31
|
+
});
|
|
32
|
+
/**
|
|
33
|
+
* One `!ENV ${VAR[:default]}` marker the manifest's MCP section carries
|
|
34
|
+
* (`GET /api/manifest/mcp-env-refs`) — NAMES and BOOLEANS only, NEVER values.
|
|
35
|
+
* `pointer` is the RFC 6901 json-pointer of the leaf (`/mcp/<i>/config/...`);
|
|
36
|
+
* `has_default` is whether the marker carries a `:default`; `set` is whether the
|
|
37
|
+
* var resolves in the EFFECTIVE env (the resolution truth the install-time
|
|
38
|
+
* dangling refusal reads), so a var supplied by the deployment shows green, never
|
|
39
|
+
* a false red. The checklist derives from THIS alone — no env value is ever fetched.
|
|
40
|
+
*/
|
|
41
|
+
export const mcpEnvRef = z.object({
|
|
42
|
+
var: z.string(),
|
|
43
|
+
pointer: z.string(),
|
|
44
|
+
has_default: z.boolean(),
|
|
45
|
+
set: z.boolean(),
|
|
46
|
+
});
|
|
47
|
+
export const mcpEnvRefs = z.array(mcpEnvRef);
|
|
48
|
+
/**
|
|
49
|
+
* The apply result every config-writer mutation returns (`POST /api/mcp-config`,
|
|
50
|
+
* `POST /api/config/env`): the serving worker's local reload result (`status` +
|
|
51
|
+
* `env_keys`) plus the mode-wrapped fleet fan-out of the reload it broadcast. The
|
|
52
|
+
* `fanout` is parsed EXPLICITLY so the shared fleet-report handler can surface a
|
|
53
|
+
* failed propagation — zod's unknown-key stripping would otherwise hide it. A drift
|
|
54
|
+
* throws `ApiSchemaError`.
|
|
55
|
+
*/
|
|
56
|
+
export const reloadConfigResult = z.object({
|
|
57
|
+
status: z.string(),
|
|
58
|
+
env_keys: z.number(),
|
|
59
|
+
fanout: fleetReportFanout,
|
|
60
|
+
});
|
|
61
|
+
//# sourceMappingURL=manifest-mcp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest-mcp.js","sourceRoot":"","sources":["../../src/schemas/manifest-mcp.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;CACxB,CAAC,CAAC;AAGH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC;KAC9B,MAAM,CAAC;IACN,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE;CAChC,CAAC;KACD,KAAK,EAAE,CAAC;AAGX,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC;IAC9B,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAChC,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE;IACxB,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE;CACjB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAE7C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,MAAM,EAAE,iBAAiB;CAC1B,CAAC,CAAC"}
|