@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 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAoCzC,YAAY,EACV,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,YAAY,EACV,8BAA8B,EAC9B,yBAAyB,EACzB,6BAA6B,EAC7B,2BAA2B,GAC5B,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,YAAY,EACV,sBAAsB,EACtB,6BAA6B,EAC7B,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACtE,YAAY,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC7D,YAAY,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACpG,YAAY,EACV,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACjE,YAAY,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACpE,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAjEiB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAsDjE,CAAF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAwD2uF,CAAC;;;;;;;;;;;;;oBAA+Z,CAAC;gBAAkB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAA1vC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAAsyF,CAAC;aAAgB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAH7tJ;AAED,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { agentsClient } from './agents-client';
|
|
2
|
+
import { authClient } from './auth-client';
|
|
3
|
+
import { backendClient } from './backend-client';
|
|
4
|
+
import { backupClient } from './backup-client';
|
|
5
|
+
import { capabilitiesGetCaps, capabilitiesGetMe } from './capabilities-client';
|
|
6
|
+
import { channelsClient } from './channels-client';
|
|
7
|
+
import { configClient } from './config-client';
|
|
8
|
+
import { connectorsClient } from './connectors-client';
|
|
9
|
+
import { conversationsClient } from './conversations-client';
|
|
10
|
+
import { hooksClient } from './hooks-client';
|
|
11
|
+
import { interactionsClient, interactionsStreamClient } from './interactions-client';
|
|
12
|
+
import { loginClient, logoutClient } from './login-client';
|
|
13
|
+
import { manifestClient, manifestSecretEnvClient } from './manifest-client';
|
|
14
|
+
import { marketplaceClient } from './marketplace-client';
|
|
15
|
+
import { mcpConfigSchemaClient } from './mcp-config-schema-client';
|
|
16
|
+
import { notificationsClient } from './notifications-client';
|
|
17
|
+
import { observabilityClient } from './observability-client';
|
|
18
|
+
import { pluginsClient } from './plugins-client';
|
|
19
|
+
import { policyClient } from './policy-client';
|
|
20
|
+
import { presetsClient } from './presets-client';
|
|
21
|
+
import { profilesClient } from './profiles-client';
|
|
22
|
+
import { schedulesClient } from './schedules-client';
|
|
23
|
+
import { settingsSchemaClient } from './settings-schema-client';
|
|
24
|
+
import { statesClient } from './states-client';
|
|
25
|
+
import { storageClient } from './storage-client';
|
|
26
|
+
import { subMcpClient } from './sub-mcp-client';
|
|
27
|
+
import { systemClient } from './system-client';
|
|
28
|
+
import { templatesClient } from './templates-client';
|
|
29
|
+
import { toolExtensionsClient } from './tool-extensions-client';
|
|
30
|
+
import { toolMetaClient } from './tool-meta-client';
|
|
31
|
+
import { toolsClient } from './tools-client';
|
|
32
|
+
import { makeTransport } from './transport';
|
|
33
|
+
import { triggerLinksClient } from './trigger-links-client';
|
|
34
|
+
import { webEntryGateClient } from './web-entry-gate-client';
|
|
35
|
+
export { isSafeApiPath } from './login-client';
|
|
36
|
+
export function createApiClient(config) {
|
|
37
|
+
const t = makeTransport(config);
|
|
38
|
+
return {
|
|
39
|
+
baseUrl: config.baseUrl ?? '',
|
|
40
|
+
...toolsClient(t),
|
|
41
|
+
...presetsClient(t),
|
|
42
|
+
...statesClient(t),
|
|
43
|
+
...toolMetaClient(t),
|
|
44
|
+
...storageClient(t),
|
|
45
|
+
...backendClient(t),
|
|
46
|
+
...toolExtensionsClient(t),
|
|
47
|
+
...templatesClient(t),
|
|
48
|
+
...manifestClient(t),
|
|
49
|
+
...subMcpClient(t),
|
|
50
|
+
...configClient(t),
|
|
51
|
+
...profilesClient(t),
|
|
52
|
+
...manifestSecretEnvClient(t),
|
|
53
|
+
...connectorsClient(t),
|
|
54
|
+
...pluginsClient(t),
|
|
55
|
+
...interactionsClient(t),
|
|
56
|
+
...channelsClient(t),
|
|
57
|
+
...conversationsClient(t),
|
|
58
|
+
...webEntryGateClient(t),
|
|
59
|
+
...notificationsClient(t),
|
|
60
|
+
...agentsClient(t),
|
|
61
|
+
...hooksClient(t),
|
|
62
|
+
...triggerLinksClient(t),
|
|
63
|
+
...mcpConfigSchemaClient(t),
|
|
64
|
+
...settingsSchemaClient(t),
|
|
65
|
+
...authClient(t),
|
|
66
|
+
...capabilitiesGetMe(t),
|
|
67
|
+
...loginClient(t),
|
|
68
|
+
...capabilitiesGetCaps(t),
|
|
69
|
+
...logoutClient(t),
|
|
70
|
+
...policyClient(t),
|
|
71
|
+
...backupClient(t),
|
|
72
|
+
...schedulesClient(t),
|
|
73
|
+
...observabilityClient(t),
|
|
74
|
+
...marketplaceClient(t),
|
|
75
|
+
...systemClient(t),
|
|
76
|
+
...interactionsStreamClient(t),
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { Transport } from './transport';
|
|
2
|
+
export declare function interactionsClient(t: Transport): {
|
|
3
|
+
listInteractions: (page: number, pageSize: number, signal?: AbortSignal) => Promise<{
|
|
4
|
+
total: number;
|
|
5
|
+
page: number;
|
|
6
|
+
page_size: number;
|
|
7
|
+
next_page: number | null;
|
|
8
|
+
truncated: boolean;
|
|
9
|
+
items: {
|
|
10
|
+
interaction_id: string;
|
|
11
|
+
group_id: string;
|
|
12
|
+
question: string;
|
|
13
|
+
answer_format: "text" | "external" | "confirm" | "select" | "form";
|
|
14
|
+
format_payload: Record<string, unknown>;
|
|
15
|
+
created_at: string;
|
|
16
|
+
timeout_at: string;
|
|
17
|
+
sensitive: boolean;
|
|
18
|
+
server_verified?: boolean | undefined;
|
|
19
|
+
channel?: string | undefined;
|
|
20
|
+
recipient?: string | undefined;
|
|
21
|
+
origin?: string | undefined;
|
|
22
|
+
audience?: string | undefined;
|
|
23
|
+
media?: unknown[] | undefined;
|
|
24
|
+
}[];
|
|
25
|
+
}>;
|
|
26
|
+
answerInteraction: (interactionId: string, answer: unknown) => Promise<{
|
|
27
|
+
interaction_id: string;
|
|
28
|
+
status: string;
|
|
29
|
+
}>;
|
|
30
|
+
cancelInteraction: (interactionId: string) => Promise<{
|
|
31
|
+
interaction_id: string;
|
|
32
|
+
status: string;
|
|
33
|
+
}>;
|
|
34
|
+
};
|
|
35
|
+
export declare function interactionsStreamClient(t: Transport): {
|
|
36
|
+
/**
|
|
37
|
+
* Open the authed interactions SSE stream. The stream is TAIL-ONLY: its cursor
|
|
38
|
+
* is the stream tail at connect, so it carries no backlog and no
|
|
39
|
+
* `interaction.backlog_done` frame — the pending base comes from
|
|
40
|
+
* `listInteractions`. The caller drives reconnect and refetches that base on
|
|
41
|
+
* each (re)connect. Returns the raw frame iterator; the interactions feature
|
|
42
|
+
* maps frames to typed events.
|
|
43
|
+
*
|
|
44
|
+
* `lastEventId` (the id of the last frame the caller saw) is sent as the
|
|
45
|
+
* `Last-Event-ID` header so the server resumes AFTER it and replays any frame —
|
|
46
|
+
* including a card's `answered` — that landed during a disconnect gap. It is
|
|
47
|
+
* also sent as a `?last_event_id=` query param so a proxy that strips the header
|
|
48
|
+
* still resumes; the server reads either. Omitted on a first connect.
|
|
49
|
+
*/
|
|
50
|
+
streamInteractions: (signal?: AbortSignal, lastEventId?: string) => Promise<AsyncGenerator<import("..").SseFrame, any, any>>;
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=interactions-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interactions-client.d.ts","sourceRoot":"","sources":["../../src/client/interactions-client.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,SAAS;6BAOlB,MAAM,YAAY,MAAM,WAAW,WAAW;;;;;;;;;;;;;;;;;;;;;;;uCAEpC,MAAM,UAAU,OAAO;;;;uCAWvB,MAAM;;;;EAK5C;AAED,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,SAAS;IAGjD;;;;;;;;;;;;;OAaG;kCACiC,WAAW,gBAAgB,MAAM;EAqCxE"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/** Interaction listing/answer and the SSE stream sub-clients. */
|
|
2
|
+
import { ApiError, ApiUnauthorizedError } from '../errors';
|
|
3
|
+
import { encodeSegment, extractError } from '../http';
|
|
4
|
+
import * as s from '../schemas';
|
|
5
|
+
import { readSseFrames, sseOpenToken } from '../sse';
|
|
6
|
+
export function interactionsClient(t) {
|
|
7
|
+
const { req } = t;
|
|
8
|
+
return {
|
|
9
|
+
// One page of the pending interactions (the tail-only stream's paged base). The
|
|
10
|
+
// door filters by audience before paging — the SAME filter the stream applies —
|
|
11
|
+
// so `total` is the caller's own count, and every terminal frame it later receives
|
|
12
|
+
// refers to a question within that `total`.
|
|
13
|
+
listInteractions: (page, pageSize, signal) => req('/api/interactions', s.interactionsPage, { signal, query: { page, pageSize } }),
|
|
14
|
+
answerInteraction: (interactionId, answer) => req(`/api/interactions/${encodeSegment(interactionId)}/answer`, s.interactionAnswered, {
|
|
15
|
+
method: 'POST',
|
|
16
|
+
body: { answer },
|
|
17
|
+
}),
|
|
18
|
+
// Withdraw a pending ask WITHOUT answering it (a bodyless POST): the question is
|
|
19
|
+
// resolved as cancelled and the flow that asked never resumes. Terminal like an
|
|
20
|
+
// answer, so the loud failure mappings mirror it — a 409 (already answered, so no
|
|
21
|
+
// longer cancellable) surfaces as `ApiConflictError`, a 404 (unknown/already gone)
|
|
22
|
+
// and a 403 (not this caller's audience) as `ApiError` — all via the shared
|
|
23
|
+
// `apiRequest` status handling.
|
|
24
|
+
cancelInteraction: (interactionId) => req(`/api/interactions/${encodeSegment(interactionId)}/cancel`, s.interactionCancelled, {
|
|
25
|
+
method: 'POST',
|
|
26
|
+
}),
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export function interactionsStreamClient(t) {
|
|
30
|
+
const { config } = t;
|
|
31
|
+
return {
|
|
32
|
+
/**
|
|
33
|
+
* Open the authed interactions SSE stream. The stream is TAIL-ONLY: its cursor
|
|
34
|
+
* is the stream tail at connect, so it carries no backlog and no
|
|
35
|
+
* `interaction.backlog_done` frame — the pending base comes from
|
|
36
|
+
* `listInteractions`. The caller drives reconnect and refetches that base on
|
|
37
|
+
* each (re)connect. Returns the raw frame iterator; the interactions feature
|
|
38
|
+
* maps frames to typed events.
|
|
39
|
+
*
|
|
40
|
+
* `lastEventId` (the id of the last frame the caller saw) is sent as the
|
|
41
|
+
* `Last-Event-ID` header so the server resumes AFTER it and replays any frame —
|
|
42
|
+
* including a card's `answered` — that landed during a disconnect gap. It is
|
|
43
|
+
* also sent as a `?last_event_id=` query param so a proxy that strips the header
|
|
44
|
+
* still resumes; the server reads either. Omitted on a first connect.
|
|
45
|
+
*/
|
|
46
|
+
streamInteractions: async (signal, lastEventId) => {
|
|
47
|
+
const doFetch = config.fetch ?? globalThis.fetch;
|
|
48
|
+
const token = config.getToken();
|
|
49
|
+
const headers = { accept: 'text/event-stream' };
|
|
50
|
+
if (token)
|
|
51
|
+
headers['x-api-key'] = token;
|
|
52
|
+
if (lastEventId)
|
|
53
|
+
headers['last-event-id'] = lastEventId;
|
|
54
|
+
// Distinct-URL per open — see the canonical constraint on `sseOpenToken`.
|
|
55
|
+
const resume = lastEventId ? `&last_event_id=${encodeURIComponent(lastEventId)}` : '';
|
|
56
|
+
const url = `${config.baseUrl ?? ''}/api/interactions/stream?_=${sseOpenToken()}${resume}`;
|
|
57
|
+
const response = await doFetch(url, {
|
|
58
|
+
headers,
|
|
59
|
+
signal,
|
|
60
|
+
});
|
|
61
|
+
if (response.status === 401)
|
|
62
|
+
throw new ApiUnauthorizedError();
|
|
63
|
+
// A non-ok stream open (5xx/4xx) still carries a body, which would parse to
|
|
64
|
+
// zero frames and look like a silently-empty stream — surface it loudly so
|
|
65
|
+
// the caller shows an error instead of hanging on a reconnect loop. Read the
|
|
66
|
+
// `{ "error" }` envelope so a load-bearing server message (e.g. the OFF
|
|
67
|
+
// store's 501 remediation line) surfaces verbatim instead of collapsing to
|
|
68
|
+
// the bare status text.
|
|
69
|
+
if (!response.ok) {
|
|
70
|
+
let payload;
|
|
71
|
+
try {
|
|
72
|
+
payload = await response.json();
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
throw new ApiError(response.statusText || 'stream failed', response.status);
|
|
76
|
+
}
|
|
77
|
+
const { message, code } = extractError(payload);
|
|
78
|
+
throw new ApiError(message ?? (response.statusText || 'stream failed'), response.status, code);
|
|
79
|
+
}
|
|
80
|
+
return readSseFrames(response, signal);
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=interactions-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interactions-client.js","sourceRoot":"","sources":["../../src/client/interactions-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import * as s from '../schemas';
|
|
2
|
+
import type { Transport } from './transport';
|
|
3
|
+
/**
|
|
4
|
+
* Whether a login-method target is a safe same-origin relative API path. The
|
|
5
|
+
* login screen is the one page where a misconfigured/compromised manifest could
|
|
6
|
+
* redirect CREDENTIALS off-origin, so a `submit_path`/`href` MUST start `/api/`
|
|
7
|
+
* — anything else (absolute URL, protocol-relative `//host`, missing prefix) is
|
|
8
|
+
* rejected. The `/api/` prefix already excludes `//`-prefixed values; the
|
|
9
|
+
* explicit double-slash clause is kept for readability.
|
|
10
|
+
*/
|
|
11
|
+
export declare function isSafeApiPath(path: string): boolean;
|
|
12
|
+
export declare function loginClient(t: Transport): {
|
|
13
|
+
getLoginMethods: (options?: {
|
|
14
|
+
signal?: AbortSignal;
|
|
15
|
+
}) => Promise<{
|
|
16
|
+
methods: ({
|
|
17
|
+
shape: "form";
|
|
18
|
+
id: string;
|
|
19
|
+
title: string;
|
|
20
|
+
purpose: "login" | "invite";
|
|
21
|
+
fields: {
|
|
22
|
+
name: string;
|
|
23
|
+
label: string;
|
|
24
|
+
secret: boolean;
|
|
25
|
+
autocomplete?: string | undefined;
|
|
26
|
+
}[];
|
|
27
|
+
submit_path: string;
|
|
28
|
+
} | {
|
|
29
|
+
shape: "button";
|
|
30
|
+
id: string;
|
|
31
|
+
label: string;
|
|
32
|
+
href: string;
|
|
33
|
+
icon?: string | undefined;
|
|
34
|
+
})[];
|
|
35
|
+
needs_setup: boolean;
|
|
36
|
+
setup_login?: {
|
|
37
|
+
kinds: ("invite" | "password")[];
|
|
38
|
+
} | null | undefined;
|
|
39
|
+
}>;
|
|
40
|
+
submitLoginForm: (path: string, values: Record<string, string>) => Promise<{
|
|
41
|
+
token: string;
|
|
42
|
+
user_id: string;
|
|
43
|
+
}>;
|
|
44
|
+
exchangeSsoCode: (code: string) => Promise<{
|
|
45
|
+
token: string;
|
|
46
|
+
user_id: string;
|
|
47
|
+
}>;
|
|
48
|
+
claimLogin: (body: {
|
|
49
|
+
token: string;
|
|
50
|
+
}) => Promise<{
|
|
51
|
+
token: string;
|
|
52
|
+
user_id: string;
|
|
53
|
+
}>;
|
|
54
|
+
submitSetup: (body: s.SetupBody) => Promise<{
|
|
55
|
+
owner_user_id: string;
|
|
56
|
+
key_user_id: string;
|
|
57
|
+
api_key: string;
|
|
58
|
+
key_fingerprint: string;
|
|
59
|
+
login_attached: boolean;
|
|
60
|
+
invite_token?: string | null | undefined;
|
|
61
|
+
login_path?: string | null | undefined;
|
|
62
|
+
}>;
|
|
63
|
+
};
|
|
64
|
+
export declare function logoutClient(t: Transport): {
|
|
65
|
+
logout: () => Promise<{
|
|
66
|
+
revoked: boolean;
|
|
67
|
+
}>;
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=login-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login-client.d.ts","sourceRoot":"","sources":["../../src/client/login-client.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,CAAC,MAAM,YAAY,CAAC;AAChC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnD;AAsDD,wBAAgB,WAAW,CAAC,CAAC,EAAE,SAAS;gCAMR;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE;;;;;;;;;;;;;;;;;;;;;;;;;4BAOtB,MAAM,UAAU,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;;;;4BActC,MAAM;;;;uBAeX;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE;;;;wBAahB,CAAC,CAAC,SAAS;;;;;;;;;EAQxC;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,SAAS;;;;EAUxC"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/** Public sign-in aggregator and session-logout sub-clients. */
|
|
2
|
+
import { ApiError, ApiLoginFailedError, ApiSetupFailedError, ApiUnauthorizedError, } from '../errors';
|
|
3
|
+
import * as s from '../schemas';
|
|
4
|
+
/**
|
|
5
|
+
* Whether a login-method target is a safe same-origin relative API path. The
|
|
6
|
+
* login screen is the one page where a misconfigured/compromised manifest could
|
|
7
|
+
* redirect CREDENTIALS off-origin, so a `submit_path`/`href` MUST start `/api/`
|
|
8
|
+
* — anything else (absolute URL, protocol-relative `//host`, missing prefix) is
|
|
9
|
+
* rejected. The `/api/` prefix already excludes `//`-prefixed values; the
|
|
10
|
+
* explicit double-slash clause is kept for readability.
|
|
11
|
+
*/
|
|
12
|
+
export function isSafeApiPath(path) {
|
|
13
|
+
return path.startsWith('/api/') && !path.startsWith('//');
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Map a transport error from a login submission onto an `ApiLoginFailedError`
|
|
17
|
+
* (rendered inline on the login page) or rethrow it unchanged (5xx, schema
|
|
18
|
+
* drift, network — the page's generic failure branch surfaces it loudly).
|
|
19
|
+
*
|
|
20
|
+
* A transport 401 arrives as `ApiUnauthorizedError` before any body is read, so
|
|
21
|
+
* its message is generic by construction; the domain 4xx statuses carry the
|
|
22
|
+
* server's informative envelope text (rate-limit, password-policy, or the claim
|
|
23
|
+
* exchange's uniform "unknown or already used" 404) straight through to the
|
|
24
|
+
* inline surface.
|
|
25
|
+
*/
|
|
26
|
+
function asLoginError(error) {
|
|
27
|
+
if (error instanceof ApiUnauthorizedError) {
|
|
28
|
+
throw new ApiLoginFailedError('Sign-in failed — check your credentials.', 401);
|
|
29
|
+
}
|
|
30
|
+
if (error instanceof ApiError &&
|
|
31
|
+
(error.status === 400 ||
|
|
32
|
+
error.status === 403 ||
|
|
33
|
+
error.status === 404 ||
|
|
34
|
+
error.status === 409 ||
|
|
35
|
+
error.status === 422 ||
|
|
36
|
+
error.status === 429)) {
|
|
37
|
+
throw new ApiLoginFailedError(error.message, error.status);
|
|
38
|
+
}
|
|
39
|
+
throw error;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Map a transport error from the setup submission onto an `ApiSetupFailedError`
|
|
43
|
+
* (rendered inline on the setup entry, keyed on `status`) or rethrow it unchanged
|
|
44
|
+
* (schema drift, network, any other status — the generic failure branch surfaces
|
|
45
|
+
* it loudly). The mapped statuses are the setup door's own: 403/429 (a bad or
|
|
46
|
+
* throttled token — no oracle), 409 (already initialized), 501 (setup
|
|
47
|
+
* unsupported), and 400/422 (an invalid body).
|
|
48
|
+
*/
|
|
49
|
+
function asSetupError(error) {
|
|
50
|
+
if (error instanceof ApiError &&
|
|
51
|
+
(error.status === 400 ||
|
|
52
|
+
error.status === 403 ||
|
|
53
|
+
error.status === 409 ||
|
|
54
|
+
error.status === 422 ||
|
|
55
|
+
error.status === 429 ||
|
|
56
|
+
error.status === 501)) {
|
|
57
|
+
throw new ApiSetupFailedError(error.message, error.status);
|
|
58
|
+
}
|
|
59
|
+
throw error;
|
|
60
|
+
}
|
|
61
|
+
export function loginClient(t) {
|
|
62
|
+
const { req } = t;
|
|
63
|
+
return {
|
|
64
|
+
// PUBLIC by design: `apiRequest` attaches `x-api-key` only when a token
|
|
65
|
+
// exists, so the unauthenticated call carries no auth header — no transport
|
|
66
|
+
// change needed.
|
|
67
|
+
getLoginMethods: (options) => req('/api/login/methods', s.loginMethods, { signal: options?.signal }),
|
|
68
|
+
// Submit a `form` method's field VALUES as a flat top-level JSON body (the
|
|
69
|
+
// server's request models take the declared field names top-level). `path`
|
|
70
|
+
// is re-checked with the same relative-`/api/` guard the renderer uses — an
|
|
71
|
+
// off-origin path is a PROGRAMMING error (loud `Error`), not a login failure.
|
|
72
|
+
// A refused credential becomes an inline `ApiLoginFailedError`.
|
|
73
|
+
submitLoginForm: async (path, values) => {
|
|
74
|
+
if (!isSafeApiPath(path)) {
|
|
75
|
+
throw new Error(`login submit_path must be a relative /api/ path; received ${JSON.stringify(path)}`);
|
|
76
|
+
}
|
|
77
|
+
try {
|
|
78
|
+
return await req(path, s.loginResult, { method: 'POST', body: values });
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
return asLoginError(error);
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
// Exchange a one-time SSO hand-back code for a session (never a token in the
|
|
85
|
+
// URL). An expired/reused code is a login failure, surfaced inline.
|
|
86
|
+
exchangeSsoCode: async (code) => {
|
|
87
|
+
try {
|
|
88
|
+
return await req('/api/login/sso/exchange', s.loginResult, {
|
|
89
|
+
method: 'POST',
|
|
90
|
+
body: { code },
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
return asLoginError(error);
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
// Exchange a one-time claim token (read from the login URL fragment, never a
|
|
98
|
+
// query param) for a session. PUBLIC. The token is single-use and burns
|
|
99
|
+
// server-side; a used/unknown/expired token answers the uniform 404, which —
|
|
100
|
+
// like the SSO leg — maps to an inline `ApiLoginFailedError`, not a global
|
|
101
|
+
// unauthorized redirect. The caller latches the exchange so it fires once.
|
|
102
|
+
claimLogin: async (body) => {
|
|
103
|
+
try {
|
|
104
|
+
return await req('/api/login/claim', s.loginResult, { method: 'POST', body });
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
return asLoginError(error);
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
// Initialize the deployment: create the owner principal, mint the owner's
|
|
111
|
+
// first key (returned once), and optionally attach the owner's login. PUBLIC
|
|
112
|
+
// (anonymous — no credential exists yet). A refused/throttled token, an
|
|
113
|
+
// already-initialized deployment, an unsupported setup door, or an invalid
|
|
114
|
+
// body becomes an inline `ApiSetupFailedError`; any other failure rethrows
|
|
115
|
+
// loudly.
|
|
116
|
+
submitSetup: async (body) => {
|
|
117
|
+
try {
|
|
118
|
+
return await req('/api/setup', s.setupResult, { method: 'POST', body });
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
return asSetupError(error);
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
export function logoutClient(t) {
|
|
127
|
+
const { req } = t;
|
|
128
|
+
return {
|
|
129
|
+
// The single authed logout dispatcher — revokes the caller's accounts
|
|
130
|
+
// session server-side before the shell clears local state. A plain `sk-` key
|
|
131
|
+
// has nothing to revoke and answers 404 (surfaced as an `ApiError`, quiet at
|
|
132
|
+
// the call site); a 5xx/network failure is a real revoke failure the shell
|
|
133
|
+
// surfaces loudly.
|
|
134
|
+
logout: () => req('/api/auth/logout', s.logoutResult, { method: 'POST' }),
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=login-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login-client.js","sourceRoot":"","sources":["../../src/client/login-client.ts"],"names":[],"mappings":"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"}
|