@zixt/host 0.0.105 → 0.0.107

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.
Files changed (2) hide show
  1. package/dist/index.js +71 -6
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -28,7 +28,7 @@ import { homedir as homedir3 } from "node:os";
28
28
  // package.json
29
29
  var package_default = {
30
30
  name: "@zixt/host",
31
- version: "0.0.105",
31
+ version: "0.0.107",
32
32
  type: "module",
33
33
  exports: {
34
34
  ".": "./src/client.ts",
@@ -15832,6 +15832,7 @@ var ApiOperationRisk = external_exports.enum(["read", "write", "destructive"]);
15832
15832
  var JsonSchemaFragment = external_exports.record(external_exports.string(), external_exports.unknown());
15833
15833
  var CONFIGURATION_FILE_MAX_BYTES = 1024 * 1024;
15834
15834
  var CONFIGURATION_FORM_MAX_FIELDS = 60;
15835
+ var INTEGRATION_SOURCE_MAX_BYTES = 8e6;
15835
15836
  var ConfigurationFieldId = external_exports.string().min(1).max(64).regex(/^[a-z][a-z0-9_]*$/, "Use lowercase letters, numbers, and underscores.");
15836
15837
  var ConfigurationFieldBase = {
15837
15838
  id: ConfigurationFieldId,
@@ -16035,6 +16036,11 @@ var ApiAuthScheme = external_exports.discriminatedUnion("type", [
16035
16036
  scopes: external_exports.array(external_exports.string().min(1).max(500)).max(100),
16036
16037
  usePkce: external_exports.boolean().default(true),
16037
16038
  tokenEndpointAuthMethod: OAuthTokenEndpointAuthMethod.default("none"),
16039
+ /** Provider-required, non-secret authorization query parameters such as offline access. */
16040
+ authorizationParams: external_exports.record(external_exports.string().min(1).max(100), external_exports.string().min(1).max(500)).refine(
16041
+ (value) => Object.keys(value).length <= 20,
16042
+ "Too many OAuth authorization parameters"
16043
+ ).default({}),
16038
16044
  /** Optional provider-supported static-token fallback, presented as Bearer auth. */
16039
16045
  fields: external_exports.array(external_exports.object({ id: external_exports.literal("token"), label: external_exports.string() }).strict()).max(1)
16040
16046
  }).strict()
@@ -16074,7 +16080,13 @@ var ApiAuthSchemeOverride = external_exports.discriminatedUnion("type", [
16074
16080
  ApiOAuth2AuthSchemeOverride
16075
16081
  ]);
16076
16082
  var NormalizedApiDefinition = external_exports.object({
16077
- sourceFormat: external_exports.enum(["openapi-3.0", "openapi-3.1", "swagger-2.0", "natural-language"]),
16083
+ sourceFormat: external_exports.enum([
16084
+ "openapi-3.0",
16085
+ "openapi-3.1",
16086
+ "swagger-2.0",
16087
+ "google-discovery-v1",
16088
+ "natural-language"
16089
+ ]),
16078
16090
  servers: external_exports.array(ApiServer).min(1).max(30),
16079
16091
  defaultServerId: external_exports.string().min(1).max(100),
16080
16092
  authSchemes: external_exports.array(ApiAuthScheme).max(20),
@@ -16172,7 +16184,7 @@ var IntegrationCatalogResponse = external_exports.object({
16172
16184
  external_exports.object({ category: IntegrationCategory, count: external_exports.number().int().min(0) }).strict()
16173
16185
  )
16174
16186
  }).strict();
16175
- var IntegrationSourceKind = external_exports.enum(["openapi", "text"]);
16187
+ var IntegrationSourceKind = external_exports.enum(["openapi", "google-discovery", "text"]);
16176
16188
  var IntegrationDefinitionMetadata = external_exports.object({
16177
16189
  name: external_exports.string().min(1).max(120).optional(),
16178
16190
  slug: external_exports.string().min(1).max(100).regex(/^[a-z0-9]+(?:-[a-z0-9]+)*$/).optional(),
@@ -16204,7 +16216,7 @@ var IntegrationDefinitionMetadata = external_exports.object({
16204
16216
  });
16205
16217
  var CompileIntegrationDefinitionRequest = external_exports.object({
16206
16218
  sourceKind: IntegrationSourceKind,
16207
- source: external_exports.string().min(1).max(2e6),
16219
+ source: external_exports.string().min(1).max(INTEGRATION_SOURCE_MAX_BYTES),
16208
16220
  metadata: IntegrationDefinitionMetadata.default({}),
16209
16221
  authOverrides: external_exports.array(ApiAuthSchemeOverride).max(20).optional()
16210
16222
  }).strict();
@@ -16280,7 +16292,7 @@ var ConfigurationIntegrationDiscoverySuggestion = external_exports.object({
16280
16292
  }).strict();
16281
16293
  var IntegrationDiscoverySuggestion = external_exports.object({
16282
16294
  sourceKind: IntegrationSourceKind,
16283
- source: external_exports.string().min(1).max(2e6),
16295
+ source: external_exports.string().min(1).max(INTEGRATION_SOURCE_MAX_BYTES),
16284
16296
  metadata: external_exports.object({
16285
16297
  name: external_exports.string().min(1).max(120),
16286
16298
  summary: external_exports.string().min(1).max(500),
@@ -16308,6 +16320,11 @@ var IntegrationDiscoverySuggestion = external_exports.object({
16308
16320
  specificationUrl: external_exports.url().max(2e3),
16309
16321
  operationCount: external_exports.number().int().min(1)
16310
16322
  }).strict(),
16323
+ external_exports.object({
16324
+ mode: external_exports.literal("official-google-discovery"),
16325
+ specificationUrl: external_exports.url().max(2e3),
16326
+ operationCount: external_exports.number().int().min(1)
16327
+ }).strict(),
16311
16328
  external_exports.object({
16312
16329
  mode: external_exports.literal("curated-description"),
16313
16330
  specificationUrl: external_exports.null(),
@@ -21572,6 +21589,49 @@ function isBlockedSecretEnv(name, runner) {
21572
21589
  return BLOCKED_SECRET_ENV.has(normalized);
21573
21590
  }
21574
21591
 
21592
+ // ../../packages/contracts/src/notifications.ts
21593
+ var NotificationChannel = external_exports.enum(["browser", "email", "slack", "whatsapp"]);
21594
+ var NotificationEventPreference = external_exports.object({
21595
+ needsAttention: external_exports.boolean(),
21596
+ taskFinished: external_exports.boolean()
21597
+ });
21598
+ var NotificationChannelPreference = external_exports.object({
21599
+ channel: NotificationChannel,
21600
+ enabled: external_exports.boolean(),
21601
+ available: external_exports.boolean(),
21602
+ detail: external_exports.string().min(1).max(500)
21603
+ });
21604
+ var NotificationPreferencesResponse = external_exports.object({
21605
+ events: NotificationEventPreference,
21606
+ channels: external_exports.array(NotificationChannelPreference).length(4),
21607
+ /** Public application-server key used only to create a browser push subscription. */
21608
+ browserPushPublicKey: external_exports.string().max(500).nullable()
21609
+ });
21610
+ var UpdateNotificationPreferencesRequest = external_exports.object({
21611
+ events: NotificationEventPreference.partial().optional(),
21612
+ channels: external_exports.array(
21613
+ external_exports.object({
21614
+ channel: NotificationChannel,
21615
+ enabled: external_exports.boolean()
21616
+ })
21617
+ ).max(4).optional()
21618
+ }).refine((value) => value.events !== void 0 || value.channels !== void 0, {
21619
+ message: "at least one notification preference is required"
21620
+ });
21621
+ var BrowserPushSubscription = external_exports.object({
21622
+ endpoint: external_exports.url().max(4e3),
21623
+ expirationTime: external_exports.number().int().nonnegative().nullable(),
21624
+ keys: external_exports.object({
21625
+ p256dh: external_exports.string().min(1).max(500),
21626
+ auth: external_exports.string().min(1).max(500)
21627
+ })
21628
+ });
21629
+ var DeleteBrowserPushSubscriptionRequest = external_exports.object({
21630
+ endpoint: external_exports.url().max(4e3)
21631
+ });
21632
+ var BrowserPushSubscriptionResponse = external_exports.object({ saved: external_exports.literal(true) });
21633
+ var DeleteBrowserPushSubscriptionResponse = external_exports.object({ deleted: external_exports.boolean() });
21634
+
21575
21635
  // src/runners/mcp-client.ts
21576
21636
  var REQUEST_TIMEOUT_MS = 1e4;
21577
21637
  var MAX_BODY_BYTES = 4 * 1024 * 1024;
@@ -22575,8 +22635,13 @@ function targetUrl(connection, operation, pathValues) {
22575
22635
  if (value === void 0 && parameter.required) {
22576
22636
  throw new Error(`Missing path value: ${parameter.name}`);
22577
22637
  }
22578
- if (value !== void 0)
22638
+ if (value !== void 0) {
22639
+ path = path.replaceAll(
22640
+ `{+${parameter.name}}`,
22641
+ String(value).split("/").map((segment) => encodeURIComponent(segment)).join("/")
22642
+ );
22579
22643
  path = path.replaceAll(`{${parameter.name}}`, encodeURIComponent(String(value)));
22644
+ }
22580
22645
  }
22581
22646
  if (/\{[^}]+\}/.test(path)) throw new Error("One or more path values are missing.");
22582
22647
  const base = new URL(connection.baseUrl);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zixt/host",
3
- "version": "0.0.105",
3
+ "version": "0.0.107",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./src/client.ts",