@antasphere/slideless 0.13.3 → 0.13.7

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/bin.js +1675 -171
  2. package/package.json +4 -4
package/dist/bin.js CHANGED
@@ -1354,16 +1354,16 @@ var require_command = __commonJS({
1354
1354
  * @param {Function} listener
1355
1355
  * @return {Command} `this` command for chaining
1356
1356
  */
1357
- hook(event, listener) {
1357
+ hook(event2, listener) {
1358
1358
  const allowedValues = ["preSubcommand", "preAction", "postAction"];
1359
- if (!allowedValues.includes(event)) {
1360
- throw new Error(`Unexpected value for event passed to hook : '${event}'.
1359
+ if (!allowedValues.includes(event2)) {
1360
+ throw new Error(`Unexpected value for event passed to hook : '${event2}'.
1361
1361
  Expecting one of '${allowedValues.join("', '")}'`);
1362
1362
  }
1363
- if (this._lifeCycleHooks[event]) {
1364
- this._lifeCycleHooks[event].push(listener);
1363
+ if (this._lifeCycleHooks[event2]) {
1364
+ this._lifeCycleHooks[event2].push(listener);
1365
1365
  } else {
1366
- this._lifeCycleHooks[event] = [listener];
1366
+ this._lifeCycleHooks[event2] = [listener];
1367
1367
  }
1368
1368
  return this;
1369
1369
  }
@@ -2132,15 +2132,15 @@ Expecting one of '${allowedValues.join("', '")}'`);
2132
2132
  * @return {(Promise|undefined)}
2133
2133
  * @private
2134
2134
  */
2135
- _chainOrCallHooks(promise2, event) {
2135
+ _chainOrCallHooks(promise2, event2) {
2136
2136
  let result = promise2;
2137
2137
  const hooks = [];
2138
- this._getCommandAndAncestors().reverse().filter((cmd) => cmd._lifeCycleHooks[event] !== void 0).forEach((hookedCommand) => {
2139
- hookedCommand._lifeCycleHooks[event].forEach((callback) => {
2138
+ this._getCommandAndAncestors().reverse().filter((cmd) => cmd._lifeCycleHooks[event2] !== void 0).forEach((hookedCommand) => {
2139
+ hookedCommand._lifeCycleHooks[event2].forEach((callback) => {
2140
2140
  hooks.push({ hookedCommand, callback });
2141
2141
  });
2142
2142
  });
2143
- if (event === "postAction") {
2143
+ if (event2 === "postAction") {
2144
2144
  hooks.reverse();
2145
2145
  }
2146
2146
  hooks.forEach((hookDetail) => {
@@ -2158,10 +2158,10 @@ Expecting one of '${allowedValues.join("', '")}'`);
2158
2158
  * @return {(Promise|undefined)}
2159
2159
  * @private
2160
2160
  */
2161
- _chainOrCallSubCommandHook(promise2, subCommand, event) {
2161
+ _chainOrCallSubCommandHook(promise2, subCommand, event2) {
2162
2162
  let result = promise2;
2163
- if (this._lifeCycleHooks[event] !== void 0) {
2164
- this._lifeCycleHooks[event].forEach((hook) => {
2163
+ if (this._lifeCycleHooks[event2] !== void 0) {
2164
+ this._lifeCycleHooks[event2].forEach((hook) => {
2165
2165
  result = this._chainOrCall(result, () => {
2166
2166
  return hook(this, subCommand);
2167
2167
  });
@@ -3535,7 +3535,7 @@ function migrateLegacyConfig(env, spec) {
3535
3535
  return { migrated: true, from, to };
3536
3536
  }
3537
3537
 
3538
- // ../chassis-cli/dist/config.js
3538
+ // ../../node_modules/.pnpm/@antasphere+chassis-cli@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-cli/dist/config.js
3539
3539
  function createConfig(identity) {
3540
3540
  const TOOL = identity.tool;
3541
3541
  const LEGACY = { tool: TOOL, legacyDir: identity.legacyConfigDir };
@@ -3561,7 +3561,7 @@ function createConfig(identity) {
3561
3561
  return { configPath: configPath2, loadConfig: loadConfig3, saveConfig: saveConfig3, clearConfig: clearConfig2, removeConnectKey: removeConnectKey2 };
3562
3562
  }
3563
3563
 
3564
- // ../chassis-sdk/dist/index.js
3564
+ // ../../node_modules/.pnpm/@antasphere+chassis-sdk@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-sdk/dist/index.js
3565
3565
  var PlatformApiError = class extends Error {
3566
3566
  status;
3567
3567
  code;
@@ -4074,7 +4074,7 @@ var ChassisClient = class {
4074
4074
  }
4075
4075
  };
4076
4076
 
4077
- // ../chassis-cli/dist/workspace.js
4077
+ // ../../node_modules/.pnpm/@antasphere+chassis-cli@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-cli/dist/workspace.js
4078
4078
  var UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
4079
4079
  function isWorkspaceId(value) {
4080
4080
  return UUID_RE.test(value);
@@ -4181,7 +4181,7 @@ ${workspaceLines(me.workspaces)}`;
4181
4181
  };
4182
4182
  }
4183
4183
 
4184
- // ../chassis-cli/dist/context.js
4184
+ // ../../node_modules/.pnpm/@antasphere+chassis-cli@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-cli/dist/context.js
4185
4185
  var CliApiRefusal = class extends CliUsageError {
4186
4186
  status;
4187
4187
  constructor(message, status) {
@@ -4475,7 +4475,7 @@ var {
4475
4475
  Help
4476
4476
  } = import_index.default;
4477
4477
 
4478
- // ../chassis-cli/dist/stdin.js
4478
+ // ../../node_modules/.pnpm/@antasphere+chassis-cli@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-cli/dist/stdin.js
4479
4479
  var claims = /* @__PURE__ */ new WeakMap();
4480
4480
  async function readAllStdin() {
4481
4481
  const chunks = [];
@@ -4496,7 +4496,7 @@ async function readSecretFromStdin(io, claimant) {
4496
4496
  return value;
4497
4497
  }
4498
4498
 
4499
- // ../chassis-cli/dist/commands/auth.js
4499
+ // ../../node_modules/.pnpm/@antasphere+chassis-cli@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-cli/dist/commands/auth.js
4500
4500
  var HUB_URL_ENV = "ANTASPHERE_URL";
4501
4501
  var DEFAULT_HUB_URL = "https://account.antasphere.com";
4502
4502
  function describeCredential(source, profileName) {
@@ -4951,7 +4951,7 @@ ${organizationsLine(me)}`);
4951
4951
  });
4952
4952
  }
4953
4953
 
4954
- // ../chassis-cli/dist/commands/workspaces.js
4954
+ // ../../node_modules/.pnpm/@antasphere+chassis-cli@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-cli/dist/commands/workspaces.js
4955
4955
  function registerWorkspaceCommands(kit, program2, io) {
4956
4956
  const { requireApiKey: requireApiKey2, resolveContext: resolveContext2, workspaceSource } = kit;
4957
4957
  const { describeSelection } = kit.workspace;
@@ -5023,7 +5023,7 @@ function registerWorkspaceCommands(kit, program2, io) {
5023
5023
  });
5024
5024
  }
5025
5025
 
5026
- // ../chassis-cli/dist/commands/teams.js
5026
+ // ../../node_modules/.pnpm/@antasphere+chassis-cli@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-cli/dist/commands/teams.js
5027
5027
  function explainTeamRefusal(e, ctx) {
5028
5028
  switch (e.code) {
5029
5029
  case "forbidden":
@@ -5227,7 +5227,7 @@ ${teamLines(team)}`);
5227
5227
  });
5228
5228
  }
5229
5229
 
5230
- // ../chassis-cli/dist/commands/projects.js
5230
+ // ../../node_modules/.pnpm/@antasphere+chassis-cli@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-cli/dist/commands/projects.js
5231
5231
  var ROLES = ["viewer", "editor", "manager"];
5232
5232
  function parseRole(value) {
5233
5233
  if (ROLES.includes(value))
@@ -18278,8 +18278,8 @@ var ZodType = /* @__PURE__ */ $constructor("ZodType", (inst, def) => {
18278
18278
  reg.add(this, meta3);
18279
18279
  return this;
18280
18280
  },
18281
- refine(check2, params) {
18282
- return this.check(refine(check2, params));
18281
+ refine(check3, params) {
18282
+ return this.check(refine(check3, params));
18283
18283
  },
18284
18284
  superRefine(refinement, params) {
18285
18285
  return this.check(superRefine(refinement, params));
@@ -20016,7 +20016,7 @@ function date4(params) {
20016
20016
  // ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/external.js
20017
20017
  config(en_default());
20018
20018
 
20019
- // ../chassis-contract/dist/schemas/common.js
20019
+ // ../../node_modules/.pnpm/@antasphere+chassis-contract@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-contract/dist/schemas/common.js
20020
20020
  var apiErrorSchema = external_exports.object({
20021
20021
  error: external_exports.object({
20022
20022
  code: external_exports.string(),
@@ -20121,12 +20121,12 @@ function isValidMediaType(value) {
20121
20121
  return value.length >= 1 && value.length <= 255 && isLatin1(value) && MEDIA_TYPE_RE.test(value);
20122
20122
  }
20123
20123
 
20124
- // ../chassis-contract/dist/schemas/scope.js
20124
+ // ../../node_modules/.pnpm/@antasphere+chassis-contract@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-contract/dist/schemas/scope.js
20125
20125
  function defineScopeSchema(scopes) {
20126
20126
  return external_exports.enum(scopes);
20127
20127
  }
20128
20128
 
20129
- // ../chassis-contract/dist/seams.js
20129
+ // ../../node_modules/.pnpm/@antasphere+chassis-contract@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-contract/dist/seams.js
20130
20130
  var KNOWN_AUTH_METHODS = [
20131
20131
  "password",
20132
20132
  "email-otp",
@@ -20136,20 +20136,765 @@ var KNOWN_AUTH_METHODS = [
20136
20136
  "antasphere"
20137
20137
  ];
20138
20138
 
20139
- // ../chassis-contract/dist/entitlements.js
20140
- var ENTITLEMENT_TIERS = ["free", "pro"];
20141
- var entitlementTierSchema = external_exports.enum(ENTITLEMENT_TIERS);
20139
+ // ../../node_modules/.pnpm/@antasphere+contract@0.16.5_hono@4.12.27/node_modules/@antasphere/contract/dist/schemas/common.js
20140
+ var apiErrorSchema2 = external_exports.object({
20141
+ error: external_exports.object({
20142
+ code: external_exports.string(),
20143
+ message: external_exports.string(),
20144
+ details: external_exports.unknown().optional()
20145
+ })
20146
+ });
20147
+ var workspaceRoleSchema2 = external_exports.enum(["owner", "admin", "member"]);
20148
+ var scopeSchema = external_exports.enum([
20149
+ "account:read",
20150
+ "account:write",
20151
+ "data:export",
20152
+ "sso:exchange",
20153
+ "billing:read",
20154
+ "billing:admin"
20155
+ ]);
20156
+ var cursorPageQuerySchema2 = external_exports.object({
20157
+ cursor: external_exports.string().optional(),
20158
+ limit: external_exports.coerce.number().int().min(1).max(100).default(50)
20159
+ });
20160
+ function hasControlChars2(value) {
20161
+ for (let i = 0; i < value.length; i++) {
20162
+ const code = value.charCodeAt(i);
20163
+ if (code === 9 || code === 10 || code === 13)
20164
+ continue;
20165
+ if (code < 32 || code === 127)
20166
+ return true;
20167
+ }
20168
+ return false;
20169
+ }
20170
+ function noControlChars2(schema) {
20171
+ return schema.refine((v) => !hasControlChars2(v), {
20172
+ error: "must not contain NUL or other control characters"
20173
+ });
20174
+ }
20175
+ function plainText2(min, max) {
20176
+ return noControlChars2(external_exports.string().min(min).max(max));
20177
+ }
20178
+ function plainTextTrimmed(min, max) {
20179
+ return noControlChars2(external_exports.string().trim().min(min).max(max));
20180
+ }
20181
+
20182
+ // ../../node_modules/.pnpm/@antasphere+contract@0.16.5_hono@4.12.27/node_modules/@antasphere/contract/dist/schemas/instance.js
20183
+ var instanceInfoSchema = external_exports.object({
20184
+ name: external_exports.string(),
20185
+ instanceId: external_exports.string().nullable(),
20186
+ edition: external_exports.string(),
20187
+ version: external_exports.string(),
20188
+ apiVersion: external_exports.literal("v1"),
20189
+ setupRequired: external_exports.boolean(),
20190
+ /**
20191
+ * Who may create an account here (ADR 027, `SIGNUP_MODE`): `open`, anyone
20192
+ * through every self-service entrance (the hub's own posture, ADR 013);
20193
+ * `invite`, only through an invitation, the first-boot setup or the
20194
+ * operator's staff list. The sign-up page reads it to say so; `auth.signUp`
20195
+ * is false under `invite` whatever the mail driver.
20196
+ */
20197
+ signupMode: external_exports.enum(["open", "invite"]),
20198
+ auth: external_exports.object({
20199
+ methods: external_exports.array(external_exports.enum(["password", "email-otp", "google", "api-key", "oauth"])),
20200
+ passwordReset: external_exports.boolean(),
20201
+ emailChange: external_exports.boolean(),
20202
+ twoFactor: external_exports.boolean(),
20203
+ signUp: external_exports.boolean()
20204
+ }),
20205
+ features: external_exports.object({
20206
+ mcp: external_exports.boolean(),
20207
+ oauth: external_exports.boolean(),
20208
+ files: external_exports.boolean()
20209
+ }),
20210
+ /**
20211
+ * Whether credits are sold here (ADR 027): the payment provider's name
20212
+ * (`stripe`) when one is configured, `null` when none is. With `null` the
20213
+ * dashboard shows no Billing section, no balance, no plan prompt and no
20214
+ * staff pricing page; the money routes already answer 503 (ADR 023).
20215
+ */
20216
+ billing: external_exports.object({ provider: external_exports.string().nullable() }),
20217
+ /**
20218
+ * `true` while the operator's DEMO_SIGN_IN switch is on: demo links sign
20219
+ * people in here, and the dashboard shows every signed-in person a banner
20220
+ * saying so. ABSENT otherwise, never false, so an instance without the
20221
+ * switch serves the same discovery bytes as before it existed.
20222
+ */
20223
+ demoSignIn: external_exports.boolean().optional()
20224
+ });
20225
+
20226
+ // ../../node_modules/.pnpm/@antasphere+contract@0.16.5_hono@4.12.27/node_modules/@antasphere/contract/dist/schemas/setup.js
20227
+ var setupRequestSchema = external_exports.object({
20228
+ instanceName: plainText2(1, 120),
20229
+ owner: external_exports.object({
20230
+ email: external_exports.email(),
20231
+ name: plainText2(1, 120),
20232
+ password: external_exports.string().min(12).max(256)
20233
+ }),
20234
+ setupToken: external_exports.string().optional()
20235
+ });
20236
+ var setupResponseSchema = external_exports.object({
20237
+ instanceId: external_exports.string(),
20238
+ workspaceId: external_exports.string(),
20239
+ ownerUserId: external_exports.string()
20240
+ });
20241
+
20242
+ // ../../node_modules/.pnpm/@antasphere+contract@0.16.5_hono@4.12.27/node_modules/@antasphere/contract/dist/schemas/orgs.js
20243
+ var lookKey = external_exports.string().regex(/^[a-z][a-z0-9-]{0,31}$/, "a short lowercase key").nullable();
20244
+ var lookLevel = external_exports.number().min(0).max(1).nullable();
20245
+ var workspaceLookSchema = external_exports.object({
20246
+ theme: lookKey,
20247
+ pattern: lookKey,
20248
+ field: lookLevel,
20249
+ grain: lookLevel
20250
+ });
20251
+ var orgSchema = external_exports.object({
20252
+ id: external_exports.string(),
20253
+ name: external_exports.string(),
20254
+ role: workspaceRoleSchema2,
20255
+ /** The organization's look, a fact of the organization (every member sees the same tile). */
20256
+ look: workspaceLookSchema,
20257
+ /** Auto-provisioned personal org (ADR 013) vs a created organization. */
20258
+ personal: external_exports.boolean(),
20259
+ /**
20260
+ * The org's account status. A suspended org stays VISIBLE here (the
20261
+ * holder should see why it stopped working) but selection refuses it:
20262
+ * naming it explicitly answers 403 workspace_suspended, and the default
20263
+ * rules skip it.
20264
+ */
20265
+ status: external_exports.enum(["active", "suspended"]),
20266
+ /** The caller's default organization (user_settings) — at most one true. */
20267
+ isDefault: external_exports.boolean(),
20268
+ createdAt: external_exports.string(),
20269
+ /**
20270
+ * The CALLER's own teams in this organization (not every team of it),
20271
+ * ordered by name, so a federated tool reading GET /orgs as the user learns
20272
+ * which teams they belong to without a second call. Added 2026-09-27:
20273
+ * forward-compatible for readers — an answer from a hub that predates teams
20274
+ * carries no field, and it parses as none.
20275
+ */
20276
+ teams: external_exports.array(external_exports.object({ id: external_exports.string(), slug: external_exports.string(), name: external_exports.string() })).default([])
20277
+ });
20278
+ var orgsListSchema = external_exports.object({
20279
+ orgs: external_exports.array(orgSchema),
20280
+ /**
20281
+ * Read through a first-party tool's grant: the caller's OTHER
20282
+ * organizations, where their owner or admin has not let them use THIS tool
20283
+ * (tool access per team), in the same order as `orgs`; the tool lists them
20284
+ * as places the person cannot open. `orgs` then holds only the
20285
+ * organizations the tool may serve. Every other caller (a session, a key, a
20286
+ * grant of a client outside the tool registry) reads every organization
20287
+ * under `orgs` and an empty list here. Added 2026-09-27: forward-compatible
20288
+ * for readers, an answer from a hub that predates it parses as none.
20289
+ */
20290
+ denied: external_exports.array(external_exports.object({ id: external_exports.string(), name: external_exports.string() })).default([])
20291
+ });
20292
+ var orgCreateSchema = external_exports.object({
20293
+ name: plainTextTrimmed(1, 120),
20294
+ /** The look the person picked in the dialog: the organization is born with it on every member's screen. */
20295
+ look: workspaceLookSchema.partial().optional()
20296
+ });
20297
+ var workspaceUpdateSchema = external_exports.object({
20298
+ name: plainTextTrimmed(1, 120).optional(),
20299
+ look: workspaceLookSchema.partial().optional()
20300
+ }).refine((b) => b.name !== void 0 || b.look !== void 0, { message: "nothing to change" });
20301
+ var workspaceUpdatedSchema = external_exports.object({
20302
+ workspace: external_exports.object({
20303
+ id: external_exports.string(),
20304
+ name: external_exports.string(),
20305
+ look: workspaceLookSchema
20306
+ })
20307
+ });
20308
+ var orgCreatedSchema = external_exports.object({ org: orgSchema });
20309
+
20310
+ // ../../node_modules/.pnpm/@antasphere+contract@0.16.5_hono@4.12.27/node_modules/@antasphere/contract/dist/schemas/me.js
20311
+ var meResponseSchema = external_exports.object({
20312
+ user: external_exports.object({
20313
+ id: external_exports.string(),
20314
+ email: external_exports.string(),
20315
+ name: external_exports.string()
20316
+ }),
20317
+ /** The ACTIVE workspace this request resolved to (= activeWorkspaceId). */
20318
+ workspace: external_exports.object({
20319
+ id: external_exports.string(),
20320
+ name: external_exports.string(),
20321
+ /** The organization's look, a fact of the organization (schemas/orgs.ts). */
20322
+ look: workspaceLookSchema
20323
+ }),
20324
+ role: workspaceRoleSchema2,
20325
+ via: external_exports.enum(["session", "api_key", "oauth"]),
20326
+ scopes: external_exports.array(scopeSchema).nullable(),
20327
+ /** Expiry of the presented API key; null for sessions/OAuth or non-expiring keys. */
20328
+ apiKeyExpiresAt: external_exports.string().nullable(),
20329
+ /**
20330
+ * ALL of the holder's active memberships, oldest first (user-scoped
20331
+ * credentials: a credential identifies the USER, so every credential kind
20332
+ * — session, API key, OAuth token — lists the same set; the workspace a
20333
+ * request targets is a per-request selection among these).
20334
+ */
20335
+ workspaces: external_exports.array(external_exports.object({
20336
+ id: external_exports.string(),
20337
+ name: external_exports.string(),
20338
+ role: workspaceRoleSchema2,
20339
+ /** Each organization's look, so the switcher's tiles carry them (schemas/orgs.ts). */
20340
+ look: workspaceLookSchema
20341
+ })),
20342
+ /** The workspace THIS request resolved to — what X-Workspace-Id selects. */
20343
+ activeWorkspaceId: external_exports.string(),
20344
+ /**
20345
+ * The holder's default organization (user_settings) when it maps to a
20346
+ * live active membership, else null. Selector-less requests on
20347
+ * user-scoped credentials resolve here first.
20348
+ */
20349
+ defaultWorkspaceId: external_exports.string().nullable(),
20350
+ /**
20351
+ * Registered first-party tools the HOLDER has signed in to (ADR 015),
20352
+ * oldest first — user_tool_usage joined against the live tool registry
20353
+ * (a tool removed from the registry drops off the list; its rows stay).
20354
+ * Holder-scoped like everything else on /me: a credential lists its own
20355
+ * user's usage only. Reachable to machine keys under account:read (the
20356
+ * /me allowlist entry) — the ecosystem "which tools does this user use"
20357
+ * surface. Analytics, never an authorization input.
20358
+ */
20359
+ tools: external_exports.array(external_exports.object({
20360
+ clientId: external_exports.string(),
20361
+ slug: external_exports.string(),
20362
+ name: external_exports.string(),
20363
+ firstUsedAt: external_exports.string(),
20364
+ lastUsedAt: external_exports.string()
20365
+ })),
20366
+ /**
20367
+ * The holder is platform staff: their verified email is on the
20368
+ * `SUPERADMIN_EMAILS` allowlist (every credential kind answers it). The
20369
+ * dashboard's staff tab reads it to show itself; it is a display fact,
20370
+ * never an authority — the `/admin/billing/*` routes stay gated
20371
+ * server-side on the same rule.
20372
+ */
20373
+ staff: external_exports.boolean()
20374
+ });
20375
+ var defaultOrgSetSchema = external_exports.object({
20376
+ workspaceId: external_exports.uuid().nullable()
20377
+ });
20378
+ var defaultOrgSchema = external_exports.object({
20379
+ defaultWorkspaceId: external_exports.string().nullable()
20380
+ });
20381
+
20382
+ // ../../node_modules/.pnpm/@antasphere+contract@0.16.5_hono@4.12.27/node_modules/@antasphere/contract/dist/schemas/members.js
20383
+ var memberSchema = external_exports.object({
20384
+ id: external_exports.string(),
20385
+ userId: external_exports.string(),
20386
+ email: external_exports.string(),
20387
+ name: external_exports.string(),
20388
+ role: workspaceRoleSchema2,
20389
+ isActive: external_exports.boolean(),
20390
+ createdAt: external_exports.string(),
20391
+ lastSeenAt: external_exports.string().nullable()
20392
+ });
20393
+ var membersListSchema = external_exports.object({
20394
+ members: external_exports.array(memberSchema),
20395
+ nextCursor: external_exports.string().nullable()
20396
+ });
20397
+ var memberUpdateSchema = external_exports.object({
20398
+ role: workspaceRoleSchema2.optional(),
20399
+ isActive: external_exports.boolean().optional()
20400
+ });
20401
+ var memberResetLinkSchema = external_exports.object({
20402
+ resetUrl: external_exports.string(),
20403
+ expiresAt: external_exports.string()
20404
+ });
20405
+ var memberChangeEmailLinkRequestSchema = external_exports.object({
20406
+ newEmail: external_exports.email()
20407
+ });
20408
+ var memberChangeEmailLinkSchema = external_exports.object({
20409
+ verifyUrl: external_exports.string(),
20410
+ newEmail: external_exports.string(),
20411
+ expiresAt: external_exports.string()
20412
+ });
20413
+
20414
+ // ../../node_modules/.pnpm/@antasphere+contract@0.16.5_hono@4.12.27/node_modules/@antasphere/contract/dist/schemas/teams.js
20415
+ var teamSlugSchema = external_exports.string().regex(/^[a-z0-9]+(?:-[a-z0-9]+)*$/, "lowercase letters and digits, joined by single dashes").min(1).max(60);
20416
+ var teamSchema = external_exports.object({
20417
+ id: external_exports.string(),
20418
+ slug: external_exports.string(),
20419
+ name: external_exports.string(),
20420
+ membersCount: external_exports.number(),
20421
+ /** The caller belongs to this team. */
20422
+ isMember: external_exports.boolean(),
20423
+ createdAt: external_exports.string(),
20424
+ updatedAt: external_exports.string()
20425
+ });
20426
+ var teamsListSchema = external_exports.object({
20427
+ teams: external_exports.array(teamSchema),
20428
+ nextCursor: external_exports.string().nullable()
20429
+ });
20430
+ var teamCreateSchema = external_exports.object({
20431
+ name: plainTextTrimmed(1, 80),
20432
+ /** Absent: derived from the name (lowercased, non-alphanumerics to dashes, cut to 60). */
20433
+ slug: teamSlugSchema.optional()
20434
+ });
20435
+ var teamUpdateSchema = external_exports.object({
20436
+ name: plainTextTrimmed(1, 80).optional(),
20437
+ slug: teamSlugSchema.optional()
20438
+ }).refine((b) => b.name !== void 0 || b.slug !== void 0, { message: "nothing to change" });
20439
+ var teamMemberSchema = external_exports.object({
20440
+ /** The person's membership id in the organization (the `/members/{id}` id). */
20441
+ memberId: external_exports.string(),
20442
+ userId: external_exports.string(),
20443
+ email: external_exports.string(),
20444
+ name: external_exports.string().nullable(),
20445
+ /** The person's role in the ORGANIZATION (a team has no roles of its own). */
20446
+ role: workspaceRoleSchema2,
20447
+ isActive: external_exports.boolean(),
20448
+ addedAt: external_exports.string()
20449
+ });
20450
+ var teamMembersListSchema = external_exports.object({
20451
+ members: external_exports.array(teamMemberSchema),
20452
+ nextCursor: external_exports.string().nullable()
20453
+ });
20454
+
20455
+ // ../../node_modules/.pnpm/@antasphere+contract@0.16.5_hono@4.12.27/node_modules/@antasphere/contract/dist/schemas/tool-access.js
20456
+ var TOOL_ACCESS_MODES = ["everyone", "teams"];
20457
+ var toolAccessModeSchema = external_exports.enum(TOOL_ACCESS_MODES);
20458
+ var toolSlugSchema = external_exports.string().regex(/^[a-z0-9][a-z0-9-]{0,62}[a-z0-9]$/, "a tool slug (lowercase letters, digits, dashes)");
20459
+ var toolAccessEntrySchema = external_exports.object({
20460
+ slug: external_exports.string(),
20461
+ /** The tool's display name, from the registry. */
20462
+ name: external_exports.string(),
20463
+ /** `everyone` (the default, also when nothing was ever set) or `teams`. */
20464
+ mode: toolAccessModeSchema,
20465
+ /** With `teams`: the teams let in (none = owners and admins only). Empty with `everyone`. */
20466
+ teams: external_exports.array(external_exports.object({ id: external_exports.string(), slug: external_exports.string(), name: external_exports.string() })),
20467
+ /**
20468
+ * The tool is opened to organizations by platform staff alone (PRDCT-2923):
20469
+ * this entry is read-only for the organization, and it is listed only
20470
+ * because staff granted the tool here. Absent (false) on every other tool.
20471
+ */
20472
+ restricted: external_exports.boolean().optional()
20473
+ });
20474
+ var toolAccessListSchema = external_exports.object({ tools: external_exports.array(toolAccessEntrySchema) });
20475
+ var toolAccessUpdateSchema = external_exports.discriminatedUnion("mode", [
20476
+ external_exports.object({ mode: external_exports.literal("everyone") }),
20477
+ external_exports.object({ mode: external_exports.literal("teams"), teamIds: external_exports.array(external_exports.uuid()).max(200) })
20478
+ ]);
20479
+ var toolAccessQuerySchema = external_exports.object({
20480
+ tool: toolSlugSchema.optional(),
20481
+ client_id: external_exports.string().min(1).max(128).optional()
20482
+ });
20483
+ var myToolAccessSchema = external_exports.object({
20484
+ tool: external_exports.object({
20485
+ slug: external_exports.string(),
20486
+ name: external_exports.string(),
20487
+ /** Where "Continue to the tool" lands (the registry's launch URL). */
20488
+ launchUrl: external_exports.url(),
20489
+ /**
20490
+ * The origins a page may send the browser back to for this tool (its
20491
+ * launch and redirect origins, computed from the registry entry): a
20492
+ * `return_to` whose origin is not one of these is never offered.
20493
+ */
20494
+ returnOrigins: external_exports.array(external_exports.string()),
20495
+ /**
20496
+ * Opened to organizations by platform staff alone (PRDCT-2923): a denied
20497
+ * organization then lists no contacts, since its owners cannot grant it;
20498
+ * the page says whom to ask instead. Absent (false) on every other tool.
20499
+ */
20500
+ restricted: external_exports.boolean().optional()
20501
+ }),
20502
+ granted: external_exports.array(external_exports.object({ id: external_exports.string(), name: external_exports.string() })),
20503
+ denied: external_exports.array(external_exports.object({
20504
+ id: external_exports.string(),
20505
+ name: external_exports.string(),
20506
+ contacts: external_exports.array(external_exports.object({ name: external_exports.string(), email: external_exports.string() }))
20507
+ }))
20508
+ });
20509
+ var adminToolAccessQuerySchema = external_exports.object({ workspaceId: external_exports.uuid() });
20510
+ var adminToolAccessEntrySchema = external_exports.object({
20511
+ slug: external_exports.string(),
20512
+ name: external_exports.string(),
20513
+ /** The organization holds the staff grant (an access row exists). */
20514
+ granted: external_exports.boolean(),
20515
+ /** Who last wrote the row (email), null when the organization holds no grant. */
20516
+ grantedBy: external_exports.string().nullable(),
20517
+ /** When the row was last written (ISO 8601), null when the organization holds no grant. */
20518
+ grantedAt: external_exports.string().nullable()
20519
+ });
20520
+ var adminToolAccessListSchema = external_exports.object({
20521
+ workspaceId: external_exports.string(),
20522
+ name: external_exports.string(),
20523
+ tools: external_exports.array(adminToolAccessEntrySchema)
20524
+ });
20525
+ var adminToolAccessSetRequestSchema = external_exports.object({
20526
+ workspaceId: external_exports.uuid(),
20527
+ slug: toolSlugSchema,
20528
+ granted: external_exports.boolean()
20529
+ });
20530
+ var adminToolAccessSetSchema = external_exports.object({
20531
+ workspaceId: external_exports.string(),
20532
+ name: external_exports.string(),
20533
+ slug: external_exports.string(),
20534
+ granted: external_exports.boolean(),
20535
+ /** false when the organization already stood where the request asked (idempotent). */
20536
+ changed: external_exports.boolean()
20537
+ });
20538
+
20539
+ // ../../node_modules/.pnpm/@antasphere+contract@0.16.5_hono@4.12.27/node_modules/@antasphere/contract/dist/schemas/api-keys.js
20540
+ var apiKeySchema = external_exports.object({
20541
+ id: external_exports.string(),
20542
+ name: external_exports.string(),
20543
+ keyId: external_exports.string(),
20544
+ scopes: external_exports.array(scopeSchema),
20545
+ /**
20546
+ * Optional workspace PIN (user-scoped credentials): null = the key is a
20547
+ * USER credential whose target workspace is selected per request
20548
+ * (X-Workspace-Id → default org → oldest active membership); a value =
20549
+ * the key reaches exactly that workspace (pre-0017 rows all carry one).
20550
+ */
20551
+ workspaceId: external_exports.string().nullable(),
20552
+ createdBy: external_exports.string(),
20553
+ createdAt: external_exports.string(),
20554
+ lastUsedAt: external_exports.string().nullable(),
20555
+ revokedAt: external_exports.string().nullable(),
20556
+ expiresAt: external_exports.string().nullable()
20557
+ });
20558
+ var apiKeysListSchema = external_exports.object({
20559
+ apiKeys: external_exports.array(apiKeySchema),
20560
+ nextCursor: external_exports.string().nullable()
20561
+ });
20562
+ var apiKeyCreateSchema = external_exports.object({
20563
+ name: plainText2(1, 120),
20564
+ scopes: external_exports.array(scopeSchema).min(1),
20565
+ /** TTL at mint; the server computes the absolute expiry. Omit = never expires. */
20566
+ expiresInDays: external_exports.number().int().min(1).max(3650).optional(),
20567
+ /**
20568
+ * Optional least-privilege workspace PIN. Omit (the default) to mint a
20569
+ * user-scoped key; set it to bind the key to ONE workspace the caller
20570
+ * holds a live active membership of (fail-closed otherwise).
20571
+ */
20572
+ workspaceId: external_exports.uuid().optional()
20573
+ });
20574
+ var apiKeyCreatedSchema = external_exports.object({
20575
+ apiKey: apiKeySchema,
20576
+ /** Full key `<prefix>_<keyid>_<secret>` — shown once, never retrievable. */
20577
+ key: external_exports.string()
20578
+ });
20579
+
20580
+ // ../../node_modules/.pnpm/@antasphere+contract@0.16.5_hono@4.12.27/node_modules/@antasphere/contract/dist/schemas/cli-auth.js
20581
+ var cliAuthRequestSchema = external_exports.object({
20582
+ email: external_exports.email()
20583
+ });
20584
+ var cliAuthRequestedSchema = external_exports.object({
20585
+ sent: external_exports.literal(true)
20586
+ });
20587
+ var cliAuthCompleteSchema = external_exports.object({
20588
+ email: external_exports.email(),
20589
+ otp: external_exports.string().min(4).max(16),
20590
+ /** Display name for the minted key (defaults to a CLI-login label). */
20591
+ keyName: plainText2(1, 120).optional(),
20592
+ /** TTL at mint; the server computes the absolute expiry. Omit = never expires. */
20593
+ expiresInDays: external_exports.number().int().min(1).max(3650).optional(),
20594
+ /**
20595
+ * Optional least-privilege workspace PIN — the account must hold an
20596
+ * ACTIVE membership of it, and the minted key then reaches ONLY that
20597
+ * workspace. Omit (the default) to mint a user-scoped key: the target
20598
+ * workspace is selected per request (X-Workspace-Id → the account's
20599
+ * default org → oldest active membership).
20600
+ */
20601
+ workspaceId: external_exports.uuid().optional()
20602
+ });
20603
+ var cliAuthCompletedSchema = external_exports.object({
20604
+ /** Full key `<prefix>_<keyid>_<secret>` — shown once, never retrievable. */
20605
+ key: external_exports.string(),
20606
+ apiKey: apiKeySchema,
20607
+ user: external_exports.object({
20608
+ id: external_exports.string(),
20609
+ email: external_exports.string(),
20610
+ name: external_exports.string()
20611
+ }),
20612
+ /**
20613
+ * The org context at login: the explicit pin when one was requested, else
20614
+ * the workspace a selector-less request on this key resolves to TODAY
20615
+ * (informational — an unpinned key follows the live selection rule).
20616
+ */
20617
+ workspaceId: external_exports.string()
20618
+ });
20619
+ var cliAuthRevokedSchema = external_exports.object({
20620
+ revoked: external_exports.literal(true),
20621
+ id: external_exports.string()
20622
+ });
20623
+
20624
+ // ../../node_modules/.pnpm/@antasphere+contract@0.16.5_hono@4.12.27/node_modules/@antasphere/contract/dist/schemas/invitations.js
20625
+ var invitationSchema = external_exports.object({
20626
+ id: external_exports.string(),
20627
+ email: external_exports.string(),
20628
+ role: workspaceRoleSchema2,
20629
+ invitedBy: external_exports.string(),
20630
+ expiresAt: external_exports.string(),
20631
+ acceptedAt: external_exports.string().nullable(),
20632
+ revokedAt: external_exports.string().nullable(),
20633
+ createdAt: external_exports.string()
20634
+ });
20635
+ var invitationsListSchema = external_exports.object({
20636
+ invitations: external_exports.array(invitationSchema),
20637
+ nextCursor: external_exports.string().nullable()
20638
+ });
20639
+ var invitationCreateSchema = external_exports.object({
20640
+ email: external_exports.email(),
20641
+ role: workspaceRoleSchema2.default("member")
20642
+ });
20643
+ var invitationCreatedSchema = external_exports.object({
20644
+ invitation: invitationSchema,
20645
+ acceptUrl: external_exports.string(),
20646
+ emailSent: external_exports.boolean()
20647
+ });
20648
+ var invitationLookupSchema = external_exports.object({
20649
+ email: external_exports.string(),
20650
+ role: workspaceRoleSchema2,
20651
+ workspaceName: external_exports.string(),
20652
+ expiresAt: external_exports.string(),
20653
+ /** True when an account with the invited email already exists (sign in to accept). */
20654
+ accountExists: external_exports.boolean()
20655
+ });
20656
+ var invitationAcceptSchema = external_exports.object({
20657
+ token: external_exports.string().min(16),
20658
+ /** Required when the invited email has no account yet. */
20659
+ name: plainText2(1, 120).optional(),
20660
+ password: external_exports.string().min(12).max(256).optional()
20661
+ });
20662
+ var invitationAcceptedSchema = external_exports.object({
20663
+ workspaceId: external_exports.string(),
20664
+ userId: external_exports.string(),
20665
+ role: workspaceRoleSchema2
20666
+ });
20667
+
20668
+ // ../../node_modules/.pnpm/@antasphere+contract@0.16.5_hono@4.12.27/node_modules/@antasphere/contract/dist/schemas/audit.js
20669
+ var auditEntrySchema = external_exports.object({
20670
+ id: external_exports.number(),
20671
+ actorUserId: external_exports.string().nullable(),
20672
+ actorEmail: external_exports.string().nullable(),
20673
+ actorVia: external_exports.enum(["session", "api_key", "oauth", "system"]),
20674
+ apiKeyId: external_exports.string().nullable(),
20675
+ action: external_exports.string(),
20676
+ resourceType: external_exports.string(),
20677
+ resourceId: external_exports.string().nullable(),
20678
+ requestId: external_exports.string().nullable(),
20679
+ ip: external_exports.string().nullable(),
20680
+ metadata: external_exports.unknown().nullable(),
20681
+ createdAt: external_exports.string()
20682
+ });
20683
+ var auditListSchema = external_exports.object({
20684
+ entries: external_exports.array(auditEntrySchema),
20685
+ nextCursor: external_exports.string().nullable()
20686
+ });
20687
+
20688
+ // ../../node_modules/.pnpm/@antasphere+contract@0.16.5_hono@4.12.27/node_modules/@antasphere/contract/dist/schemas/break-glass.js
20689
+ var breakGlassClaimOwnershipRequestSchema = external_exports.object({
20690
+ userId: external_exports.string().min(1).optional(),
20691
+ workspaceId: external_exports.uuid().optional()
20692
+ });
20693
+ var breakGlassClaimOwnershipSchema = external_exports.object({
20694
+ memberId: external_exports.string(),
20695
+ userId: external_exports.string(),
20696
+ email: external_exports.string(),
20697
+ /** The workspace the ownership was claimed in. */
20698
+ workspaceId: external_exports.string(),
20699
+ role: workspaceRoleSchema2,
20700
+ isActive: external_exports.boolean(),
20701
+ /** true when the membership was created; false when an existing row was promoted/reactivated. */
20702
+ created: external_exports.boolean()
20703
+ });
20704
+ var breakGlassResetTwoFactorRequestSchema = external_exports.object({
20705
+ userId: external_exports.string().min(1)
20706
+ });
20707
+ var breakGlassResetTwoFactorSchema = external_exports.object({
20708
+ userId: external_exports.string(),
20709
+ /** true when a factor actually existed (row or enabled flag) before the reset. */
20710
+ hadTwoFactor: external_exports.boolean()
20711
+ });
20712
+ var oauthClientSetDisabledRequestSchema = external_exports.object({
20713
+ clientId: external_exports.string().min(1),
20714
+ disabled: external_exports.boolean()
20715
+ });
20716
+ var oauthClientSetDisabledSchema = external_exports.object({
20717
+ clientId: external_exports.string(),
20718
+ name: external_exports.string().nullable(),
20719
+ disabled: external_exports.boolean(),
20720
+ /** false when the row already carried the requested state (idempotent). */
20721
+ changed: external_exports.boolean()
20722
+ });
20723
+ var oauthGrantsRevokeRequestSchema = external_exports.object({
20724
+ userId: external_exports.string().min(1),
20725
+ clientId: external_exports.string().min(1).optional()
20726
+ });
20727
+ var oauthGrantsRevokedSchema = external_exports.object({
20728
+ userId: external_exports.string(),
20729
+ clientId: external_exports.string().nullable(),
20730
+ refreshTokens: external_exports.number().int(),
20731
+ accessTokens: external_exports.number().int(),
20732
+ consents: external_exports.number().int()
20733
+ });
20734
+ var workspaceSetStatusRequestSchema = external_exports.object({
20735
+ workspaceId: external_exports.uuid(),
20736
+ status: external_exports.enum(["active", "suspended"])
20737
+ });
20738
+ var workspaceSetStatusSchema = external_exports.object({
20739
+ workspaceId: external_exports.string(),
20740
+ name: external_exports.string(),
20741
+ status: external_exports.enum(["active", "suspended"]),
20742
+ /** false when the row already carried the requested status (idempotent). */
20743
+ changed: external_exports.boolean()
20744
+ });
20745
+
20746
+ // ../../node_modules/.pnpm/@antasphere+contract@0.16.5_hono@4.12.27/node_modules/@antasphere/contract/dist/schemas/connections.js
20747
+ var connectionSchema = external_exports.object({
20748
+ clientId: external_exports.string(),
20749
+ /** Display name — registry-sourced for first-party tools. */
20750
+ name: external_exports.string(),
20751
+ /** True when the client is a registry (first-party) tool. */
20752
+ firstParty: external_exports.boolean(),
20753
+ /** Scopes the standing grant covers (merged across grants). */
20754
+ scopes: external_exports.array(external_exports.string()),
20755
+ /** First connection (ISO 8601). */
20756
+ connectedAt: external_exports.string(),
20757
+ /** Last recorded sign-in / CLI connect (ISO 8601) — null when unknown. */
20758
+ lastUsedAt: external_exports.string().nullable(),
20759
+ /** Live standing refresh grants for this client (0 = none outstanding). */
20760
+ activeGrants: external_exports.number().int()
20761
+ });
20762
+ var connectionsListSchema = external_exports.object({ connections: external_exports.array(connectionSchema) });
20763
+ var connectionRevokedSchema = external_exports.object({
20764
+ clientId: external_exports.string(),
20765
+ /** Standing refresh grants deleted — every generation of every family. */
20766
+ refreshTokens: external_exports.number().int(),
20767
+ /** Opaque access tokens deleted (JWT access tokens run out their ≤15 min). */
20768
+ accessTokens: external_exports.number().int(),
20769
+ /** Consent records deleted. */
20770
+ consents: external_exports.number().int()
20771
+ });
20772
+
20773
+ // ../../node_modules/.pnpm/@antasphere+contract@0.16.5_hono@4.12.27/node_modules/@antasphere/contract/dist/schemas/sso.js
20774
+ var ssoToolTokenRequestSchema = external_exports.object({
20775
+ /**
20776
+ * The target tool's RFC 8707 resource identifier — MUST equal a registered
20777
+ * tool's `resourceUrl` (the hub tool registry is the source of truth);
20778
+ * anything else is a 400. Becomes the JWT `aud`.
20779
+ */
20780
+ resource: external_exports.url()
20781
+ });
20782
+ var ssoToolTokenSchema = external_exports.object({
20783
+ token: external_exports.string(),
20784
+ /** Absolute expiry (ISO 8601) — 120 seconds from mint. */
20785
+ expiresAt: external_exports.string(),
20786
+ /**
20787
+ * The RAW refresh token of a standing OFFLINE GRANT minted for the target
20788
+ * tool's OAuth client (scopes `offline_access account:read`, 365 d,
20789
+ * user-scoped — org-free). Returned ONCE; the tool stores it (encrypted)
20790
+ * on its account link so a headless-CLI user gets live as-the-user hub
20791
+ * reads: refresh it at the hub token endpoint with the tool client's own
20792
+ * credentials and `resource=<hub>/mcp`, then call GET /orgs as the user.
20793
+ * Rotates on every use; reuse of a rotated token tears the whole
20794
+ * (client, user) family down (RFC 9700) — single-flight your refreshes.
20795
+ */
20796
+ hubRefreshToken: external_exports.string()
20797
+ });
20798
+
20799
+ // ../../node_modules/.pnpm/@antasphere+contract@0.16.5_hono@4.12.27/node_modules/@antasphere/contract/dist/schemas/tool-info.js
20800
+ var toolInfoSchema = external_exports.object({
20801
+ clientId: external_exports.string(),
20802
+ name: external_exports.string(),
20803
+ url: external_exports.url()
20804
+ });
20805
+ var toolInfoQuerySchema = external_exports.object({
20806
+ client_id: plainText2(1, 128)
20807
+ });
20808
+
20809
+ // ../../node_modules/.pnpm/@antasphere+contract@0.16.5_hono@4.12.27/node_modules/@antasphere/contract/dist/schemas/tools.js
20810
+ var toolCatalogEntrySchema = external_exports.object({
20811
+ /** Registry slug — stable machine identity. */
20812
+ slug: external_exports.string(),
20813
+ /** The OAuth client id the tool signs in with (`tool-<slug>` by default). */
20814
+ clientId: external_exports.string(),
20815
+ /** Display name — registry-sourced, never client-declared. */
20816
+ name: external_exports.string(),
20817
+ /** Where "open the tool" lands (the registry's toolLaunchUrl). */
20818
+ launchUrl: external_exports.url(),
20819
+ /**
20820
+ * The origins a hub page may send the browser back to for this tool: the
20821
+ * launch URL's and each redirect URI's ORIGIN (never the URIs), computed
20822
+ * server-side from the registry entry. A page offers "Back to <tool>" for
20823
+ * a `return_to` only when its origin is one of these.
20824
+ */
20825
+ returnOrigins: external_exports.array(external_exports.string()),
20826
+ /** True when the caller holds a standing grant on this tool. */
20827
+ connected: external_exports.boolean(),
20828
+ /** First connection (ISO 8601) — null when not connected. */
20829
+ connectedAt: external_exports.string().nullable(),
20830
+ /** Last recorded sign-in / CLI connect (ISO 8601) — null when unknown or not connected. */
20831
+ lastUsedAt: external_exports.string().nullable(),
20832
+ /**
20833
+ * Opened to organizations by platform staff alone (PRDCT-2923). The
20834
+ * catalog lists such a tool only to staff and to a member of an
20835
+ * organization it is granted in; everyone else never sees the entry.
20836
+ * Absent (false) on every other tool.
20837
+ */
20838
+ restricted: external_exports.boolean().optional()
20839
+ });
20840
+ var toolsListSchema = external_exports.object({ tools: external_exports.array(toolCatalogEntrySchema) });
20841
+
20842
+ // ../../node_modules/.pnpm/@antasphere+contract@0.16.5_hono@4.12.27/node_modules/@antasphere/contract/dist/schemas/account-confirm.js
20843
+ var accountConfirmRequestSchema = external_exports.object({
20844
+ token: external_exports.string().min(16).max(4096),
20845
+ decision: external_exports.enum(["confirm", "deny"])
20846
+ });
20847
+ var accountConfirmResultSchema = external_exports.object({
20848
+ /**
20849
+ * `verified`: the account is now active and the response carries the
20850
+ * session cookie; `already_verified`: nothing to do (an earlier confirm,
20851
+ * or a proof by another channel); `denied`: the row was removed.
20852
+ */
20853
+ status: external_exports.enum(["verified", "already_verified", "denied"])
20854
+ });
20855
+
20856
+ // ../../node_modules/.pnpm/@antasphere+contract@0.16.5_hono@4.12.27/node_modules/@antasphere/contract/dist/schemas/files.js
20857
+ var fileSchema = external_exports.object({
20858
+ id: external_exports.string(),
20859
+ sha256: external_exports.string(),
20860
+ sizeBytes: external_exports.number(),
20861
+ contentType: external_exports.string(),
20862
+ originalName: external_exports.string(),
20863
+ /** Null once the uploader's account was deleted (files are workspace data). */
20864
+ createdBy: external_exports.string().nullable(),
20865
+ createdAt: external_exports.string()
20866
+ });
20867
+ var filesListSchema = external_exports.object({
20868
+ files: external_exports.array(fileSchema),
20869
+ nextCursor: external_exports.string().nullable()
20870
+ });
20871
+ var fileUploadedSchema = external_exports.object({
20872
+ file: fileSchema,
20873
+ /** True when identical bytes already existed for this workspace. */
20874
+ deduplicated: external_exports.boolean()
20875
+ });
20876
+ var fileUploadQuerySchema = external_exports.object({
20877
+ /** Original filename (the body is the raw bytes). */
20878
+ name: plainText2(1, 255)
20879
+ });
20880
+
20881
+ // ../../node_modules/.pnpm/@antasphere+contract@0.16.5_hono@4.12.27/node_modules/@antasphere/contract/dist/schemas/billing.js
20882
+ var BILLING_PLANS = ["free", "pro"];
20883
+ var billingPlanSchema = external_exports.enum(BILLING_PLANS);
20884
+ var accountRefSchema = external_exports.uuid();
20885
+ var usageEventIdSchema = external_exports.string().regex(/^[0-9A-HJKMNP-TV-Z]{26}$/, "a ULID");
20886
+ var usageViaSchema = external_exports.enum(["session", "api_key", "oauth"]);
20142
20887
  var usageEventSchema = external_exports.object({
20143
- id: external_exports.string().regex(/^[0-9A-HJKMNP-TV-Z]{26}$/, "a ULID"),
20888
+ id: usageEventIdSchema,
20144
20889
  actionKey: external_exports.string().min(1).max(120).optional(),
20145
20890
  meter: external_exports.string().min(1).max(120).optional(),
20146
20891
  quantity: external_exports.number().int().min(0).max(Number.MAX_SAFE_INTEGER),
20147
20892
  unit: external_exports.string().min(1).max(40),
20148
20893
  occurredAt: external_exports.iso.datetime({ offset: true }),
20149
20894
  workspaceId: external_exports.string().min(1).max(128),
20150
- accountRef: external_exports.uuid(),
20895
+ accountRef: accountRefSchema,
20151
20896
  userId: external_exports.string().min(1).max(128).nullable().optional(),
20152
- via: external_exports.enum(["session", "api_key", "oauth"]),
20897
+ via: usageViaSchema,
20153
20898
  resourceType: external_exports.string().min(1).max(80).nullable().optional(),
20154
20899
  resourceId: external_exports.string().min(1).max(256).nullable().optional(),
20155
20900
  toolSlug: external_exports.string().min(1).max(64).optional(),
@@ -20163,6 +20908,8 @@ var usageEventSchema = external_exports.object({
20163
20908
  path: ["actionKey"]
20164
20909
  });
20165
20910
  var USAGE_EVENTS_BATCH_MAX = 500;
20911
+ var USAGE_EVENT_MAX_PAST_MS = 7 * 24 * 60 * 60 * 1e3;
20912
+ var USAGE_EVENT_MAX_FUTURE_MS = 5 * 60 * 1e3;
20166
20913
  var usageEventsBatchSchema = external_exports.object({
20167
20914
  events: external_exports.array(external_exports.unknown()).min(1).max(USAGE_EVENTS_BATCH_MAX)
20168
20915
  });
@@ -20174,10 +20921,17 @@ var USAGE_REJECT_REASONS = [
20174
20921
  ];
20175
20922
  var usageRejectReasonSchema = external_exports.enum(USAGE_REJECT_REASONS);
20176
20923
  var usageEventResultSchema = external_exports.object({
20924
+ /** The posted id; null when the element carried none the hub could read. */
20177
20925
  id: external_exports.string().nullable(),
20178
20926
  status: external_exports.enum(["accepted", "duplicate", "rejected"]),
20179
20927
  reason: usageRejectReasonSchema.optional(),
20928
+ /** The issues of an `invalid_event`, `[{ path, message }]`, field by field (a schema failure, the occurrence window, or a price past the storable range). */
20180
20929
  details: external_exports.unknown().optional(),
20930
+ /**
20931
+ * Phase 2: on `accepted`, the credits the event was charged, priced from
20932
+ * the price book row effective at its `occurredAt` (0 when unpriced).
20933
+ * Absent on `duplicate` and `rejected`, which write nothing.
20934
+ */
20181
20935
  credits: external_exports.number().int().optional()
20182
20936
  });
20183
20937
  var usageIngestResultSchema = external_exports.object({
@@ -20186,28 +20940,778 @@ var usageIngestResultSchema = external_exports.object({
20186
20940
  duplicate: external_exports.number().int(),
20187
20941
  rejected: external_exports.number().int()
20188
20942
  });
20189
- var USAGE_EVENT_MAX_PAST_MS = 7 * 24 * 60 * 60 * 1e3;
20190
- var USAGE_EVENT_MAX_FUTURE_MS = 5 * 60 * 1e3;
20943
+ var usageEntitlementsQuerySchema = external_exports.object({ accountRef: accountRefSchema });
20944
+ var usageEntitlementsSchema = external_exports.object({
20945
+ accountRef: accountRefSchema,
20946
+ plan: billingPlanSchema,
20947
+ /** Until when the plan is paid for (ISO 8601); null on `free` and on a live subscription. */
20948
+ planUntil: external_exports.string().nullable(),
20949
+ limits: external_exports.record(external_exports.string(), external_exports.union([external_exports.number(), external_exports.boolean()])),
20950
+ features: external_exports.array(external_exports.string()),
20951
+ upgradeUrl: external_exports.string()
20952
+ });
20953
+ var billingUsagePeriodSchema = external_exports.enum(["day", "month"]);
20954
+ var billingUsageQuerySchema = external_exports.object({
20955
+ from: external_exports.iso.datetime({ offset: true }).optional(),
20956
+ to: external_exports.iso.datetime({ offset: true }).optional(),
20957
+ period: billingUsagePeriodSchema.default("day"),
20958
+ cursor: external_exports.string().optional(),
20959
+ limit: external_exports.coerce.number().int().min(1).max(100).default(50)
20960
+ });
20961
+ var billingUsageEventSchema = external_exports.object({
20962
+ id: external_exports.string(),
20963
+ toolSlug: external_exports.string(),
20964
+ actionKey: external_exports.string(),
20965
+ quantity: external_exports.number(),
20966
+ unit: external_exports.string(),
20967
+ /** What was charged, from the price book at that moment; null while no price book exists (phase 1). */
20968
+ credits: external_exports.number().nullable(),
20969
+ userId: external_exports.string().nullable(),
20970
+ /** The person, when the hub still knows them (a deleted account leaves null). */
20971
+ userEmail: external_exports.string().nullable(),
20972
+ userName: external_exports.string().nullable(),
20973
+ via: usageViaSchema,
20974
+ resourceType: external_exports.string().nullable(),
20975
+ resourceId: external_exports.string().nullable(),
20976
+ occurredAt: external_exports.string(),
20977
+ receivedAt: external_exports.string()
20978
+ });
20979
+ var aggregateTotals = {
20980
+ events: external_exports.number().int(),
20981
+ quantity: external_exports.number(),
20982
+ credits: external_exports.number().nullable()
20983
+ };
20984
+ var billingUsageSchema = external_exports.object({
20985
+ window: external_exports.object({ from: external_exports.string(), to: external_exports.string(), period: billingUsagePeriodSchema }),
20986
+ totals: external_exports.object(aggregateTotals),
20987
+ byTool: external_exports.array(external_exports.object({ toolSlug: external_exports.string(), ...aggregateTotals })),
20988
+ byAction: external_exports.array(external_exports.object({ toolSlug: external_exports.string(), actionKey: external_exports.string(), unit: external_exports.string(), ...aggregateTotals })),
20989
+ /** The consumption per person; the row with a null user is the owner-attributed and anonymous usage. */
20990
+ byUser: external_exports.array(external_exports.object({
20991
+ userId: external_exports.string().nullable(),
20992
+ userEmail: external_exports.string().nullable(),
20993
+ userName: external_exports.string().nullable(),
20994
+ ...aggregateTotals
20995
+ })),
20996
+ byPeriod: external_exports.array(external_exports.object({ period: external_exports.string(), ...aggregateTotals })),
20997
+ events: external_exports.array(billingUsageEventSchema),
20998
+ nextCursor: external_exports.string().nullable()
20999
+ });
21000
+ var isoDateTime = () => external_exports.iso.datetime({ offset: true });
21001
+ var toolSlugSchema2 = external_exports.string().regex(/^[a-z0-9][a-z0-9-]{0,62}[a-z0-9]$/, "a tool slug");
21002
+ var actionKeySchema = external_exports.string().min(1).max(120);
21003
+ var unitSchema = external_exports.string().min(1).max(40);
21004
+ var BILLING_LEDGER_KINDS = [
21005
+ "purchase",
21006
+ "signup",
21007
+ "promo",
21008
+ "referral",
21009
+ "manual",
21010
+ "debit",
21011
+ "refund",
21012
+ "expiry"
21013
+ ];
21014
+ var billingLedgerKindSchema = external_exports.enum(BILLING_LEDGER_KINDS);
21015
+ var BILLING_LOW_BALANCE_STATES = ["ok", "low", "empty"];
21016
+ var billingLowBalanceStateSchema = external_exports.enum(BILLING_LOW_BALANCE_STATES);
21017
+ var BILLING_SUBSCRIPTION_ACTIONS = ["subscribe", "cancel", "resume"];
21018
+ var billingSubscriptionActionSchema = external_exports.enum(BILLING_SUBSCRIPTION_ACTIONS);
21019
+ var BILLING_AUTO_RECHARGE_DISABLED_REASONS = [
21020
+ "no_payment_method",
21021
+ "declined_retrying",
21022
+ "declined",
21023
+ "authentication_required",
21024
+ "monthly_cap"
21025
+ ];
21026
+ var billingAutoRechargeDisabledReasonSchema = external_exports.enum(BILLING_AUTO_RECHARGE_DISABLED_REASONS);
21027
+ var PLAN_ENTITLEMENT_KINDS = ["limit", "feature"];
21028
+ var planEntitlementKindSchema = external_exports.enum(PLAN_ENTITLEMENT_KINDS);
21029
+ var PRICE_CREDITS_PER_UNIT_MAX = 1e7;
20191
21030
  var usageCheckRequestSchema = external_exports.object({
20192
- accountRef: external_exports.uuid(),
20193
- actionKey: external_exports.string().min(1).max(120),
21031
+ accountRef: accountRefSchema,
21032
+ actionKey: actionKeySchema,
20194
21033
  quantity: external_exports.number().int().min(0).max(Number.MAX_SAFE_INTEGER),
20195
- unit: external_exports.string().min(1).max(40).optional()
21034
+ unit: unitSchema.optional()
20196
21035
  });
20197
21036
  var USAGE_CHECK_REASONS = ["insufficient_credits", "account_suspended", "unpriceable"];
21037
+ var usageCheckReasonSchema = external_exports.enum(USAGE_CHECK_REASONS);
20198
21038
  var usageCheckSchema = external_exports.object({
20199
- accountRef: external_exports.uuid(),
21039
+ accountRef: accountRefSchema,
20200
21040
  actionKey: external_exports.string(),
20201
21041
  quantity: external_exports.number().int(),
20202
21042
  allowed: external_exports.boolean(),
20203
21043
  credits: external_exports.number().int(),
20204
21044
  balance: external_exports.number().int(),
21045
+ /** The price book row's unit; null when the action is unpriced. */
20205
21046
  unit: external_exports.string().nullable(),
20206
21047
  priced: external_exports.boolean(),
20207
- plan: entitlementTierSchema,
20208
- reason: external_exports.enum(USAGE_CHECK_REASONS).nullable(),
21048
+ plan: billingPlanSchema,
21049
+ reason: usageCheckReasonSchema.nullable(),
21050
+ /** `{PUBLIC_BASE_URL}/billing/top-up?org=&credits=&balance=&tool=&action=` */
20209
21051
  topUpUrl: external_exports.string()
20210
21052
  });
21053
+ var billingAddressSchema = external_exports.object({
21054
+ line1: plainText2(1, 200),
21055
+ line2: plainText2(1, 200).nullable().optional(),
21056
+ postalCode: plainText2(1, 20),
21057
+ city: plainText2(1, 120),
21058
+ country: external_exports.string().regex(/^[A-Z]{2}$/, "an ISO 3166-1 alpha-2 country code")
21059
+ });
21060
+ var billingAccountSchema = external_exports.object({
21061
+ accountId: external_exports.string(),
21062
+ workspaceId: external_exports.string(),
21063
+ balance: external_exports.number().int(),
21064
+ currency: external_exports.string(),
21065
+ currencyLocked: external_exports.boolean(),
21066
+ rate: external_exports.object({
21067
+ currency: external_exports.string(),
21068
+ creditsPer: external_exports.number().int(),
21069
+ minorUnits: external_exports.number().int()
21070
+ }),
21071
+ packs: external_exports.array(external_exports.number().int()),
21072
+ /** The settings' floor for a custom amount, in credits (lane A, PRDCT-2715). */
21073
+ customMinCredits: external_exports.number().int(),
21074
+ /**
21075
+ * Every currency the settings price, with its rate in `rate`'s shape,
21076
+ * sorted by code: what a currency change means while the account is
21077
+ * unlocked (lane A, PRDCT-2715).
21078
+ */
21079
+ currencies: external_exports.array(external_exports.object({ currency: external_exports.string(), creditsPer: external_exports.number().int(), minorUnits: external_exports.number().int() })),
21080
+ /** The Pro plan's monthly price in the account's currency; null when the settings hold none for it. */
21081
+ proMonthlyPrice: external_exports.object({ amountMinor: external_exports.number().int(), currency: external_exports.string() }).nullable(),
21082
+ plan: billingPlanSchema,
21083
+ planUntil: external_exports.string().nullable(),
21084
+ lowBalance: external_exports.boolean(),
21085
+ lowBalanceAt: external_exports.number().int(),
21086
+ exhausted: external_exports.boolean(),
21087
+ expiring: external_exports.object({ credits: external_exports.number().int(), at: external_exports.string() }).nullable(),
21088
+ /**
21089
+ * `customer`: a Stripe customer exists for the account. `livemode`: the
21090
+ * provider charges real money (a live key); false on the sandbox and
21091
+ * without a provider, so a staff link knows which Stripe dashboard.
21092
+ */
21093
+ stripe: external_exports.object({ customer: external_exports.boolean(), livemode: external_exports.boolean() }),
21094
+ paymentMethod: external_exports.object({
21095
+ brand: external_exports.string(),
21096
+ last4: external_exports.string(),
21097
+ expMonth: external_exports.number().int(),
21098
+ expYear: external_exports.number().int()
21099
+ }).nullable(),
21100
+ subscription: external_exports.object({
21101
+ status: external_exports.string(),
21102
+ currentPeriodEnd: external_exports.string().nullable(),
21103
+ cancelAtPeriodEnd: external_exports.boolean()
21104
+ }).nullable(),
21105
+ autoRecharge: external_exports.object({
21106
+ enabled: external_exports.boolean(),
21107
+ threshold: external_exports.number().int().nullable(),
21108
+ credits: external_exports.number().int().nullable(),
21109
+ monthlyCap: external_exports.number().int().nullable(),
21110
+ disabledReason: billingAutoRechargeDisabledReasonSchema.nullable(),
21111
+ rechargedThisMonth: external_exports.number().int()
21112
+ }),
21113
+ referral: external_exports.object({
21114
+ code: external_exports.string(),
21115
+ referredBy: external_exports.string().nullable(),
21116
+ rewarded: external_exports.boolean(),
21117
+ /**
21118
+ * The reward this organization received for being referred was taken
21119
+ * back: a refund of its qualifying purchase reversed it (PRDCT-2757,
21120
+ * the fact being a `refund` ledger entry whose source is the referral).
21121
+ */
21122
+ reversed: external_exports.boolean(),
21123
+ /** How many of the organizations this one referred had the reward taken back after a refund. */
21124
+ referredReversed: external_exports.number().int()
21125
+ }),
21126
+ /**
21127
+ * The settings' auto-recharge defaults, for a purchase page that offers
21128
+ * auto-recharge beside a pack (PRDCT-2783): the threshold as a percentage
21129
+ * of the credits bought, and the monthly cap in credits.
21130
+ */
21131
+ autoRechargeDefaults: external_exports.object({
21132
+ thresholdPct: external_exports.number().int(),
21133
+ monthlyCap: external_exports.number().int()
21134
+ }),
21135
+ lowBalanceState: billingLowBalanceStateSchema,
21136
+ billing: external_exports.object({
21137
+ email: external_exports.string().nullable(),
21138
+ companyName: external_exports.string().nullable(),
21139
+ vatNumber: external_exports.string().nullable(),
21140
+ address: billingAddressSchema.nullable()
21141
+ })
21142
+ });
21143
+ var billingAccountUpdateSchema = external_exports.object({
21144
+ billingEmail: external_exports.email().nullable().optional(),
21145
+ companyName: plainText2(1, 200).nullable().optional(),
21146
+ vatNumber: external_exports.string().min(2).max(20).nullable().optional(),
21147
+ address: billingAddressSchema.nullable().optional(),
21148
+ currency: external_exports.string().regex(/^[A-Z]{3}$/, "an ISO 4217 currency code").optional()
21149
+ });
21150
+ var billingLedgerQuerySchema = external_exports.object({
21151
+ kind: billingLedgerKindSchema.optional(),
21152
+ from: isoDateTime().optional(),
21153
+ to: isoDateTime().optional(),
21154
+ cursor: external_exports.string().optional(),
21155
+ limit: external_exports.coerce.number().int().min(1).max(100).default(50)
21156
+ });
21157
+ var BILLING_LEDGER_SOURCE_KINDS = [
21158
+ "usage_event",
21159
+ "voucher",
21160
+ "payment",
21161
+ "checkout",
21162
+ "referral",
21163
+ "reason",
21164
+ "grant"
21165
+ ];
21166
+ var billingLedgerSourceKindSchema = external_exports.enum(BILLING_LEDGER_SOURCE_KINDS);
21167
+ var billingLedgerEntrySchema = external_exports.object({
21168
+ id: external_exports.string(),
21169
+ kind: billingLedgerKindSchema,
21170
+ amount: external_exports.number().int(),
21171
+ balanceAfter: external_exports.number().int(),
21172
+ remaining: external_exports.number().int().nullable(),
21173
+ sourceRef: external_exports.string().nullable(),
21174
+ sourceKind: billingLedgerSourceKindSchema.nullable(),
21175
+ expiresAt: external_exports.string().nullable(),
21176
+ createdAt: external_exports.string(),
21177
+ createdByEmail: external_exports.string().nullable()
21178
+ });
21179
+ var billingLedgerSchema = external_exports.object({
21180
+ entries: external_exports.array(billingLedgerEntrySchema),
21181
+ nextCursor: external_exports.string().nullable()
21182
+ });
21183
+ var billingEntitlementsQuerySchema = external_exports.object({
21184
+ toolSlug: toolSlugSchema2.optional()
21185
+ });
21186
+ var resolvedEntitlementsSchema = external_exports.object({
21187
+ limits: external_exports.record(external_exports.string(), external_exports.union([external_exports.number(), external_exports.boolean()])),
21188
+ features: external_exports.array(external_exports.string())
21189
+ });
21190
+ var billingEntitlementsSchema = external_exports.object({
21191
+ plan: billingPlanSchema,
21192
+ tools: external_exports.array(external_exports.object({
21193
+ toolSlug: external_exports.string(),
21194
+ toolName: external_exports.string(),
21195
+ tiers: external_exports.object({ free: resolvedEntitlementsSchema, pro: resolvedEntitlementsSchema }),
21196
+ effective: resolvedEntitlementsSchema
21197
+ }))
21198
+ });
21199
+ var voucherRedeemSchema = external_exports.object({
21200
+ code: external_exports.string().trim().min(1).max(64)
21201
+ });
21202
+ var voucherRedeemedSchema = external_exports.object({
21203
+ code: external_exports.string(),
21204
+ credits: external_exports.number().int(),
21205
+ balance: external_exports.number().int(),
21206
+ ledgerId: external_exports.string(),
21207
+ expiresAt: external_exports.string().nullable()
21208
+ });
21209
+ var billingCheckoutRequestSchema = external_exports.object({
21210
+ pack: external_exports.number().int().positive().optional(),
21211
+ credits: external_exports.number().int().positive().optional(),
21212
+ autoRecharge: external_exports.boolean().optional()
21213
+ }).refine((body) => body.pack === void 0 !== (body.credits === void 0), {
21214
+ message: "exactly one of pack or credits"
21215
+ });
21216
+ var billingCheckoutSchema = external_exports.object({
21217
+ url: external_exports.url(),
21218
+ sessionId: external_exports.string()
21219
+ });
21220
+ var BILLING_CHECKOUT_KINDS = ["purchase", "pro", "setup"];
21221
+ var billingCheckoutKindSchema = external_exports.enum(BILLING_CHECKOUT_KINDS);
21222
+ var BILLING_CHECKOUT_STATUSES = ["open", "complete", "expired"];
21223
+ var billingCheckoutStatusSchema = external_exports.enum(BILLING_CHECKOUT_STATUSES);
21224
+ var billingCheckoutSessionSchema = external_exports.object({
21225
+ sessionId: external_exports.string(),
21226
+ kind: billingCheckoutKindSchema,
21227
+ status: billingCheckoutStatusSchema,
21228
+ paid: external_exports.boolean(),
21229
+ credits: external_exports.number().int().nullable(),
21230
+ currency: external_exports.string(),
21231
+ amounts: external_exports.object({
21232
+ subtotalMinor: external_exports.number().int(),
21233
+ discountMinor: external_exports.number().int(),
21234
+ taxMinor: external_exports.number().int(),
21235
+ totalMinor: external_exports.number().int()
21236
+ }),
21237
+ invoice: external_exports.object({
21238
+ number: external_exports.string().nullable(),
21239
+ hostedUrl: external_exports.string().nullable(),
21240
+ pdfUrl: external_exports.string().nullable()
21241
+ }).nullable(),
21242
+ landed: external_exports.boolean(),
21243
+ balanceBefore: external_exports.number().int().nullable(),
21244
+ balanceAfter: external_exports.number().int().nullable(),
21245
+ autoRecharge: external_exports.object({
21246
+ requested: external_exports.boolean(),
21247
+ enabled: external_exports.boolean(),
21248
+ threshold: external_exports.number().int().nullable(),
21249
+ credits: external_exports.number().int().nullable(),
21250
+ monthlyCap: external_exports.number().int().nullable()
21251
+ })
21252
+ });
21253
+ var billingInvoicesQuerySchema = external_exports.object({
21254
+ cursor: external_exports.string().optional(),
21255
+ limit: external_exports.coerce.number().int().min(1).max(100).default(20)
21256
+ });
21257
+ var billingInvoiceSchema = external_exports.object({
21258
+ id: external_exports.string(),
21259
+ number: external_exports.string().nullable(),
21260
+ status: external_exports.string().nullable(),
21261
+ amountMinor: external_exports.number().int(),
21262
+ currency: external_exports.string(),
21263
+ hostedUrl: external_exports.string().nullable(),
21264
+ pdfUrl: external_exports.string().nullable(),
21265
+ createdAt: external_exports.string()
21266
+ });
21267
+ var billingInvoicesSchema = external_exports.object({
21268
+ invoices: external_exports.array(billingInvoiceSchema),
21269
+ nextCursor: external_exports.string().nullable()
21270
+ });
21271
+ var billingReferralRequestSchema = external_exports.object({
21272
+ code: external_exports.string().trim().min(6).max(32)
21273
+ });
21274
+ var billingPaymentMethodSetupSchema = external_exports.object({
21275
+ url: external_exports.url(),
21276
+ sessionId: external_exports.string()
21277
+ });
21278
+ var billingSubscriptionRequestSchema = external_exports.object({
21279
+ action: billingSubscriptionActionSchema
21280
+ });
21281
+ var billingSubscriptionSchema = external_exports.object({
21282
+ url: external_exports.url().nullable(),
21283
+ subscription: billingAccountSchema.shape.subscription
21284
+ });
21285
+ var billingAutoRechargeUpdateSchema = external_exports.object({
21286
+ enabled: external_exports.boolean().optional(),
21287
+ threshold: external_exports.number().int().min(0).optional(),
21288
+ credits: external_exports.number().int().positive().optional(),
21289
+ monthlyCap: external_exports.number().int().min(0).optional()
21290
+ });
21291
+ var billingSettingsSchema = external_exports.object({
21292
+ signupCredits: external_exports.number().int(),
21293
+ packs: external_exports.array(external_exports.number().int()),
21294
+ customMinCredits: external_exports.number().int(),
21295
+ currencies: external_exports.record(external_exports.string(), external_exports.number().int()),
21296
+ autoRechargeDefaultThresholdPct: external_exports.number().int(),
21297
+ autoRechargeDefaultMonthlyCap: external_exports.number().int(),
21298
+ referralReferrerCredits: external_exports.number().int(),
21299
+ referralRefereeCredits: external_exports.number().int(),
21300
+ promoGrantExpiryDays: external_exports.number().int(),
21301
+ lowBalanceNoticePct: external_exports.number().int(),
21302
+ updatedAt: external_exports.string()
21303
+ });
21304
+ var settingsInt = () => external_exports.number().int().min(0);
21305
+ var billingSettingsUpdateSchema = external_exports.object({
21306
+ signupCredits: settingsInt().optional(),
21307
+ packs: external_exports.array(external_exports.number().int().positive()).min(1).max(10).optional(),
21308
+ customMinCredits: settingsInt().optional(),
21309
+ currencies: external_exports.record(external_exports.string().regex(/^[A-Z]{3}$/, "an ISO 4217 currency code"), external_exports.number().int().positive()).optional(),
21310
+ autoRechargeDefaultThresholdPct: settingsInt().max(100).optional(),
21311
+ autoRechargeDefaultMonthlyCap: settingsInt().optional(),
21312
+ referralReferrerCredits: settingsInt().optional(),
21313
+ referralRefereeCredits: settingsInt().optional(),
21314
+ promoGrantExpiryDays: settingsInt().optional(),
21315
+ lowBalanceNoticePct: settingsInt().max(100).optional()
21316
+ });
21317
+ var billingSettingsAdminSchema = external_exports.object({
21318
+ settings: billingSettingsSchema,
21319
+ history: external_exports.array(external_exports.object({
21320
+ at: external_exports.string(),
21321
+ byEmail: external_exports.string().nullable(),
21322
+ before: external_exports.record(external_exports.string(), external_exports.unknown()),
21323
+ after: external_exports.record(external_exports.string(), external_exports.unknown())
21324
+ }))
21325
+ });
21326
+ var priceBookRowSchema = external_exports.object({
21327
+ id: external_exports.string(),
21328
+ toolSlug: external_exports.string(),
21329
+ actionKey: external_exports.string(),
21330
+ label: external_exports.string().nullable(),
21331
+ creditsPerUnit: external_exports.number().int(),
21332
+ unit: external_exports.string(),
21333
+ per: external_exports.number().int(),
21334
+ freeQuantityPerMonth: external_exports.number().int().nullable(),
21335
+ effectiveFrom: external_exports.string(),
21336
+ version: external_exports.number().int()
21337
+ });
21338
+ var priceBookListQuerySchema = external_exports.object({
21339
+ toolSlug: toolSlugSchema2.optional(),
21340
+ all: external_exports.enum(["true", "false"]).default("false").transform((v) => v === "true")
21341
+ });
21342
+ var priceBookListSchema = external_exports.object({ prices: external_exports.array(priceBookRowSchema) });
21343
+ var priceBookPutSchema = external_exports.object({
21344
+ toolSlug: toolSlugSchema2,
21345
+ actionKey: actionKeySchema,
21346
+ creditsPerUnit: external_exports.number().int().min(0).max(PRICE_CREDITS_PER_UNIT_MAX),
21347
+ unit: unitSchema,
21348
+ per: external_exports.number().int().min(1).optional(),
21349
+ freeQuantityPerMonth: external_exports.number().int().min(0).nullable().optional(),
21350
+ label: plainText2(1, 120).nullable().optional(),
21351
+ effectiveFrom: isoDateTime().optional()
21352
+ });
21353
+ var priceBookSeedRequestSchema = external_exports.object({
21354
+ toolSlug: toolSlugSchema2.optional()
21355
+ });
21356
+ var seedCounts = external_exports.object({ inserted: external_exports.number().int(), skipped: external_exports.number().int() });
21357
+ var priceBookSeedResultSchema = external_exports.object({
21358
+ inserted: external_exports.number().int(),
21359
+ skipped: external_exports.number().int(),
21360
+ tools: external_exports.array(external_exports.object({
21361
+ toolSlug: external_exports.string(),
21362
+ ok: external_exports.boolean(),
21363
+ prices: seedCounts,
21364
+ entitlements: seedCounts,
21365
+ error: external_exports.string().nullable()
21366
+ }))
21367
+ });
21368
+ var entitlementValueSchema = external_exports.union([external_exports.number(), external_exports.boolean()]).nullable();
21369
+ var planEntitlementRowSchema = external_exports.object({
21370
+ id: external_exports.string(),
21371
+ toolSlug: external_exports.string(),
21372
+ key: external_exports.string(),
21373
+ kind: planEntitlementKindSchema,
21374
+ tier: billingPlanSchema.nullable(),
21375
+ value: entitlementValueSchema,
21376
+ accountId: external_exports.string().nullable(),
21377
+ /** The overridden organization's name; null on a tier default. */
21378
+ workspaceName: external_exports.string().nullable(),
21379
+ effectiveFrom: external_exports.string()
21380
+ });
21381
+ var planEntitlementsListQuerySchema = external_exports.object({
21382
+ toolSlug: toolSlugSchema2.optional(),
21383
+ accountId: external_exports.string().min(1).max(64).optional()
21384
+ });
21385
+ var planEntitlementsListSchema = external_exports.object({
21386
+ entitlements: external_exports.array(planEntitlementRowSchema)
21387
+ });
21388
+ var planEntitlementPutSchema = external_exports.object({
21389
+ toolSlug: toolSlugSchema2,
21390
+ key: external_exports.string().min(1).max(120),
21391
+ kind: planEntitlementKindSchema,
21392
+ value: entitlementValueSchema,
21393
+ tier: billingPlanSchema.optional(),
21394
+ accountId: external_exports.string().min(1).max(64).optional()
21395
+ }).refine((e) => e.tier === void 0 !== (e.accountId === void 0), {
21396
+ message: "exactly one of tier or accountId",
21397
+ path: ["tier"]
21398
+ });
21399
+ var planEntitlementDeletedSchema = external_exports.object({
21400
+ id: external_exports.string(),
21401
+ deleted: external_exports.literal(true)
21402
+ });
21403
+ var billingAdminAccountsQuerySchema = external_exports.object({
21404
+ q: plainText2(1, 120).optional(),
21405
+ cursor: external_exports.string().optional(),
21406
+ limit: external_exports.coerce.number().int().min(1).max(100).default(50)
21407
+ });
21408
+ var billingAdminAccountSchema = external_exports.object({
21409
+ accountId: external_exports.string(),
21410
+ workspaceId: external_exports.string(),
21411
+ workspaceName: external_exports.string(),
21412
+ status: external_exports.enum(["active", "suspended"]),
21413
+ balance: external_exports.number().int(),
21414
+ currency: external_exports.string(),
21415
+ plan: billingPlanSchema,
21416
+ lowBalance: external_exports.boolean(),
21417
+ subscriptionStatus: external_exports.string().nullable(),
21418
+ autoRecharge: external_exports.object({
21419
+ enabled: external_exports.boolean(),
21420
+ disabledReason: billingAutoRechargeDisabledReasonSchema.nullable()
21421
+ }),
21422
+ stripeCustomerId: external_exports.string().nullable(),
21423
+ createdAt: external_exports.string()
21424
+ });
21425
+ var billingAdminAccountsSchema = external_exports.object({
21426
+ accounts: external_exports.array(billingAdminAccountSchema),
21427
+ nextCursor: external_exports.string().nullable()
21428
+ });
21429
+ var billingGrantRequestSchema = external_exports.object({
21430
+ credits: external_exports.number().int().refine((n) => n !== 0, { message: "a non-zero number of credits" }),
21431
+ reason: plainText2(1, 500),
21432
+ expiresAt: isoDateTime().optional()
21433
+ });
21434
+ var billingGrantedSchema = external_exports.object({
21435
+ ledgerId: external_exports.string(),
21436
+ balance: external_exports.number().int()
21437
+ });
21438
+ var voucherSchema = external_exports.object({
21439
+ code: external_exports.string(),
21440
+ credits: external_exports.number().int(),
21441
+ maxRedemptions: external_exports.number().int().nullable(),
21442
+ redemptions: external_exports.number().int(),
21443
+ oncePerAccount: external_exports.boolean(),
21444
+ expiresAt: external_exports.string().nullable(),
21445
+ grantExpiresInDays: external_exports.number().int().nullable(),
21446
+ active: external_exports.boolean(),
21447
+ createdAt: external_exports.string(),
21448
+ createdByEmail: external_exports.string().nullable()
21449
+ });
21450
+ var vouchersListSchema = external_exports.object({ vouchers: external_exports.array(voucherSchema) });
21451
+ var voucherCreateSchema = external_exports.object({
21452
+ code: external_exports.string().trim().regex(/^[A-Z0-9][A-Z0-9-]{2,62}$/, "uppercase letters, digits and hyphens, 3 to 63 characters").optional(),
21453
+ credits: external_exports.number().int().positive(),
21454
+ maxRedemptions: external_exports.number().int().positive().optional(),
21455
+ expiresAt: isoDateTime().optional(),
21456
+ grantExpiresInDays: external_exports.number().int().positive().optional()
21457
+ });
21458
+ var voucherRedemptionsSchema = external_exports.object({
21459
+ redemptions: external_exports.array(external_exports.object({
21460
+ accountId: external_exports.string(),
21461
+ workspaceName: external_exports.string().nullable(),
21462
+ redeemedAt: external_exports.string(),
21463
+ ledgerId: external_exports.string()
21464
+ }))
21465
+ });
21466
+
21467
+ // ../../node_modules/.pnpm/@antasphere+contract@0.16.5_hono@4.12.27/node_modules/@antasphere/contract/dist/schemas/demo-passes.js
21468
+ var DEMO_PASS_MAX_MINUTES = 10080;
21469
+ var demoPassSchema = external_exports.object({
21470
+ id: external_exports.string(),
21471
+ /** The person the pass signs in. */
21472
+ userId: external_exports.string(),
21473
+ email: external_exports.string(),
21474
+ name: external_exports.string(),
21475
+ /** The page the link lands on. */
21476
+ targetPath: external_exports.string(),
21477
+ /** The registry tool the link lands in; null = the hub's own dashboard. */
21478
+ toolSlug: external_exports.string().nullable(),
21479
+ /** The owner who minted it; null once that account is gone. */
21480
+ createdBy: external_exports.string().nullable(),
21481
+ createdAt: external_exports.string(),
21482
+ expiresAt: external_exports.string(),
21483
+ revokedAt: external_exports.string().nullable(),
21484
+ lastUsedAt: external_exports.string().nullable(),
21485
+ /** How many sessions the pass has opened. */
21486
+ useCount: external_exports.number().int()
21487
+ });
21488
+ var demoPassesListSchema = external_exports.object({ passes: external_exports.array(demoPassSchema) });
21489
+ var demoPassMintSchema = external_exports.object({
21490
+ email: external_exports.email(),
21491
+ path: external_exports.string().optional(),
21492
+ expiresInMinutes: external_exports.number().int().min(1).max(DEMO_PASS_MAX_MINUTES).optional(),
21493
+ toolSlug: external_exports.string().min(1).max(128).optional()
21494
+ });
21495
+ var demoPassMintedSchema = external_exports.object({
21496
+ pass: demoPassSchema,
21497
+ /** The secret itself: shown here once, never again. */
21498
+ secret: external_exports.string(),
21499
+ /**
21500
+ * `<PUBLIC_BASE_URL>/demo#pass=<secret>&to=<path>`, plus `&tool=<slug>` when
21501
+ * the pass names a tool: the fragment never reaches a server log.
21502
+ */
21503
+ url: external_exports.string()
21504
+ });
21505
+ var demoPassRedeemSchema = external_exports.object({ pass: external_exports.string().min(1) });
21506
+ var demoPassRedeemedSchema = external_exports.object({
21507
+ user: external_exports.object({ id: external_exports.string(), email: external_exports.string(), name: external_exports.string() }),
21508
+ /** The pass's page: where the dashboard goes when the link names none. */
21509
+ path: external_exports.string(),
21510
+ /**
21511
+ * The registry tool the pass lands in, and its launch URL: the dashboard
21512
+ * leaves for `<toolUrl>/login?next=<path>`. Both absent when the pass names
21513
+ * no tool, or names one the registry no longer holds (the hub's dashboard
21514
+ * is then the landing).
21515
+ */
21516
+ toolSlug: external_exports.string().optional(),
21517
+ toolUrl: external_exports.string().optional(),
21518
+ /** When the PASS expires; a session it opened ends with it. */
21519
+ expiresAt: external_exports.string()
21520
+ });
21521
+
21522
+ // ../../node_modules/.pnpm/@antasphere+contract@0.16.5_hono@4.12.27/node_modules/@antasphere/contract/dist/wire.js
21523
+ var DAY = 24 * 60 * 60 * 1e3;
21524
+ var MIN = 60 * 1e3;
21525
+ var ULID = "01J8Z1X2Y3K4M5N6P7Q8R9S0TV";
21526
+ var ACCOUNT = "0b6c7c1e-4f4e-4a7b-9c1d-2e3f4a5b6c7d";
21527
+ var event = {
21528
+ id: ULID,
21529
+ actionKey: "presentations.publish",
21530
+ quantity: 1,
21531
+ unit: "call",
21532
+ occurredAt: "2026-09-23T11:59:00.000Z",
21533
+ workspaceId: "ws_1",
21534
+ accountRef: ACCOUNT,
21535
+ userId: "usr_1",
21536
+ via: "session",
21537
+ source: { instanceId: "inst_1", edition: "cloud", version: "0.7.0" }
21538
+ };
21539
+ var check2 = {
21540
+ accountRef: ACCOUNT,
21541
+ actionKey: "presentations.publish",
21542
+ quantity: 1,
21543
+ allowed: false,
21544
+ credits: 50,
21545
+ balance: 10,
21546
+ unit: "call",
21547
+ priced: true,
21548
+ plan: "free",
21549
+ reason: "insufficient_credits",
21550
+ topUpUrl: "https://account.example/billing/top-up?org=x"
21551
+ };
21552
+ var entitlements = {
21553
+ accountRef: ACCOUNT,
21554
+ plan: "pro",
21555
+ planUntil: null,
21556
+ limits: { "presentations.maxBytes": 1048576, "things.max": true },
21557
+ features: ["things.premium"],
21558
+ upgradeUrl: "https://account.example/billing/upgrade?org=x"
21559
+ };
21560
+ var HUB_TOOL_WIRE_INPUTS = {
21561
+ occurrenceOffsetsMs: [0, -3 * DAY, -7 * DAY, -7 * DAY - 1, 5 * MIN, 5 * MIN + 1, -30 * DAY, 60 * MIN],
21562
+ probes: {
21563
+ usageEvent: [
21564
+ { name: "the plain event", input: event },
21565
+ {
21566
+ name: "meter as the legacy alias of actionKey",
21567
+ input: { ...event, actionKey: void 0, meter: "presentations.publish" }
21568
+ },
21569
+ { name: "neither actionKey nor meter (the refinement)", input: { ...event, actionKey: void 0 } },
21570
+ { name: "userId null: a resource owner the tool could not name", input: { ...event, userId: null } },
21571
+ { name: "userId absent", input: { ...event, userId: void 0 } },
21572
+ { name: "the calling tool named in the body", input: { ...event, toolSlug: "slideless" } },
21573
+ { name: "a negative quantity", input: { ...event, quantity: -1 } },
21574
+ { name: "a fractional quantity", input: { ...event, quantity: 1.5 } },
21575
+ {
21576
+ name: "a quantity past the safe integer range",
21577
+ input: { ...event, quantity: Number.MAX_SAFE_INTEGER + 2 }
21578
+ },
21579
+ { name: "occurredAt without an offset", input: { ...event, occurredAt: "2026-09-23T11:59:00" } },
21580
+ { name: "an id that is not a ULID", input: { ...event, id: "not-a-ulid" } },
21581
+ { name: "an accountRef that is not a uuid", input: { ...event, accountRef: "org_1" } },
21582
+ { name: "a via outside the three", input: { ...event, via: "mcp" } },
21583
+ {
21584
+ name: "the source without a version",
21585
+ input: { ...event, source: { instanceId: "i", edition: "cloud" } }
21586
+ },
21587
+ { name: "an unknown field", input: { ...event, extra: true } }
21588
+ ],
21589
+ usageEventsBatch: [
21590
+ { name: "one event", input: { events: [event] } },
21591
+ { name: "an empty batch", input: { events: [] } },
21592
+ { name: "two events", input: { events: [event, event] } },
21593
+ { name: "an element that is not an event (parsed per element, not here)", input: { events: [42] } },
21594
+ { name: "events missing", input: {} }
21595
+ ],
21596
+ usageIngestResult: [
21597
+ {
21598
+ name: "three answers with the counts",
21599
+ input: {
21600
+ results: [
21601
+ { id: ULID, status: "accepted", credits: 50 },
21602
+ { id: ULID, status: "duplicate" },
21603
+ {
21604
+ id: null,
21605
+ status: "rejected",
21606
+ reason: "invalid_event",
21607
+ details: [{ path: "id", message: "a ULID" }]
21608
+ }
21609
+ ],
21610
+ accepted: 1,
21611
+ duplicate: 1,
21612
+ rejected: 1
21613
+ }
21614
+ },
21615
+ { name: "the counts missing", input: { results: [] } },
21616
+ {
21617
+ name: "a reason outside the closed list",
21618
+ input: {
21619
+ results: [{ id: ULID, status: "rejected", reason: "other" }],
21620
+ accepted: 0,
21621
+ duplicate: 0,
21622
+ rejected: 1
21623
+ }
21624
+ },
21625
+ {
21626
+ name: "a status outside the three",
21627
+ input: { results: [{ id: ULID, status: "stored" }], accepted: 1, duplicate: 0, rejected: 0 }
21628
+ },
21629
+ {
21630
+ name: "fractional credits",
21631
+ input: {
21632
+ results: [{ id: ULID, status: "accepted", credits: 0.5 }],
21633
+ accepted: 1,
21634
+ duplicate: 0,
21635
+ rejected: 0
21636
+ }
21637
+ }
21638
+ ],
21639
+ usageEntitlements: [
21640
+ { name: "a pro account with a limit switched on", input: entitlements },
21641
+ {
21642
+ name: "a free account, nothing seeded",
21643
+ input: { ...entitlements, plan: "free", limits: {}, features: [] }
21644
+ },
21645
+ { name: "upgradeUrl missing", input: { ...entitlements, upgradeUrl: void 0 } },
21646
+ { name: "a plan outside the tiers", input: { ...entitlements, plan: "enterprise" } },
21647
+ { name: "planUntil missing", input: { ...entitlements, planUntil: void 0 } },
21648
+ { name: "a limit that is a string", input: { ...entitlements, limits: { "things.max": "10" } } }
21649
+ ],
21650
+ usageCheckRequest: [
21651
+ {
21652
+ name: "the plain request",
21653
+ input: { accountRef: ACCOUNT, actionKey: "presentations.publish", quantity: 1, unit: "call" }
21654
+ },
21655
+ {
21656
+ name: "unit absent",
21657
+ input: { accountRef: ACCOUNT, actionKey: "presentations.publish", quantity: 1 }
21658
+ },
21659
+ {
21660
+ name: "a zero quantity",
21661
+ input: { accountRef: ACCOUNT, actionKey: "presentations.publish", quantity: 0 }
21662
+ },
21663
+ {
21664
+ name: "a negative quantity",
21665
+ input: { accountRef: ACCOUNT, actionKey: "presentations.publish", quantity: -1 }
21666
+ },
21667
+ {
21668
+ name: "a quantity past the safe integer range",
21669
+ input: {
21670
+ accountRef: ACCOUNT,
21671
+ actionKey: "presentations.publish",
21672
+ quantity: Number.MAX_SAFE_INTEGER + 2
21673
+ }
21674
+ },
21675
+ {
21676
+ name: "an action key of 121 characters",
21677
+ input: { accountRef: ACCOUNT, actionKey: "k".repeat(121), quantity: 1 }
21678
+ },
21679
+ { name: "an empty action key", input: { accountRef: ACCOUNT, actionKey: "", quantity: 1 } },
21680
+ {
21681
+ name: "an action key with a control character",
21682
+ input: { accountRef: ACCOUNT, actionKey: "a\0b", quantity: 1 }
21683
+ },
21684
+ {
21685
+ name: "a unit of 41 characters",
21686
+ input: { accountRef: ACCOUNT, actionKey: "presentations.publish", quantity: 1, unit: "u".repeat(41) }
21687
+ }
21688
+ ],
21689
+ usageCheck: [
21690
+ { name: "a refusal for credits", input: check2 },
21691
+ {
21692
+ name: "allowed, reason null",
21693
+ input: { ...check2, allowed: true, credits: 5, balance: 10, reason: null }
21694
+ },
21695
+ { name: "a suspended organization", input: { ...check2, reason: "account_suspended" } },
21696
+ {
21697
+ name: "unpriceable: the price past the safe integer range, clamped",
21698
+ input: { ...check2, credits: Number.MAX_SAFE_INTEGER, reason: "unpriceable" }
21699
+ },
21700
+ { name: "a reason outside the closed list", input: { ...check2, reason: "over_quota" } },
21701
+ { name: "a negative balance: the ledger went below zero", input: { ...check2, balance: -40 } },
21702
+ {
21703
+ name: "an unpriced action",
21704
+ input: { ...check2, allowed: true, credits: 0, unit: null, priced: false, reason: null }
21705
+ },
21706
+ { name: "topUpUrl missing", input: { ...check2, topUpUrl: void 0 } },
21707
+ { name: "a plan outside the tiers", input: { ...check2, plan: "enterprise" } },
21708
+ { name: "fractional credits", input: { ...check2, credits: 0.5 } }
21709
+ ]
21710
+ }
21711
+ };
21712
+
21713
+ // ../../node_modules/.pnpm/@antasphere+chassis-contract@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-contract/dist/entitlements.js
21714
+ var entitlementTierSchema = billingPlanSchema;
20211
21715
  var entitlementActionSchema = external_exports.object({
20212
21716
  key: external_exports.string().min(1),
20213
21717
  creditsPerUnit: external_exports.number().int().min(0),
@@ -20240,8 +21744,8 @@ var entitlementProfileSchema = external_exports.object({
20240
21744
  upgradeUrl: external_exports.string()
20241
21745
  });
20242
21746
 
20243
- // ../chassis-contract/dist/schemas/instance.js
20244
- var instanceInfoSchema = external_exports.object({
21747
+ // ../../node_modules/.pnpm/@antasphere+chassis-contract@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-contract/dist/schemas/instance.js
21748
+ var instanceInfoSchema2 = external_exports.object({
20245
21749
  name: external_exports.string(),
20246
21750
  instanceId: external_exports.string().nullable(),
20247
21751
  edition: external_exports.string(),
@@ -20301,8 +21805,8 @@ var instanceInfoSchema = external_exports.object({
20301
21805
  entitlements: toolEntitlementsSchema.optional()
20302
21806
  });
20303
21807
 
20304
- // ../chassis-contract/dist/schemas/setup.js
20305
- var setupRequestSchema = external_exports.object({
21808
+ // ../../node_modules/.pnpm/@antasphere+chassis-contract@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-contract/dist/schemas/setup.js
21809
+ var setupRequestSchema2 = external_exports.object({
20306
21810
  instanceName: plainText(1, 120),
20307
21811
  owner: external_exports.object({
20308
21812
  email: external_exports.email(),
@@ -20311,32 +21815,32 @@ var setupRequestSchema = external_exports.object({
20311
21815
  }),
20312
21816
  setupToken: external_exports.string().optional()
20313
21817
  });
20314
- var setupResponseSchema = external_exports.object({
21818
+ var setupResponseSchema2 = external_exports.object({
20315
21819
  instanceId: external_exports.string(),
20316
21820
  /** The first workspace (oss); null on cloud — no workspace is created there. */
20317
21821
  workspaceId: external_exports.string().nullable(),
20318
21822
  ownerUserId: external_exports.string()
20319
21823
  });
20320
21824
 
20321
- // ../chassis-contract/dist/schemas/workspaces.js
20322
- var lookKey = external_exports.string().regex(/^[a-z][a-z0-9-]{0,31}$/, "a short lowercase key").nullable();
20323
- var lookLevel = external_exports.number().min(0).max(1).nullable();
20324
- var workspaceLookSchema = external_exports.object({
20325
- theme: lookKey,
20326
- pattern: lookKey,
20327
- field: lookLevel,
20328
- grain: lookLevel
21825
+ // ../../node_modules/.pnpm/@antasphere+chassis-contract@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-contract/dist/schemas/workspaces.js
21826
+ var lookKey2 = external_exports.string().regex(/^[a-z][a-z0-9-]{0,31}$/, "a short lowercase key").nullable();
21827
+ var lookLevel2 = external_exports.number().min(0).max(1).nullable();
21828
+ var workspaceLookSchema2 = external_exports.object({
21829
+ theme: lookKey2,
21830
+ pattern: lookKey2,
21831
+ field: lookLevel2,
21832
+ grain: lookLevel2
20329
21833
  });
20330
21834
  var workspaceCreateSchema = external_exports.object({
20331
21835
  name: plainText(1, 120),
20332
- look: workspaceLookSchema.partial().optional()
21836
+ look: workspaceLookSchema2.partial().optional()
20333
21837
  });
20334
21838
  var workspaceCreatedSchema = external_exports.object({
20335
21839
  workspace: external_exports.object({
20336
21840
  /** The LOCAL workspace id — pass it as `X-Workspace-Id` to work in it. */
20337
21841
  id: external_exports.string(),
20338
21842
  name: external_exports.string(),
20339
- look: workspaceLookSchema
21843
+ look: workspaceLookSchema2
20340
21844
  })
20341
21845
  });
20342
21846
  var defaultWorkspaceSetSchema = external_exports.object({
@@ -20346,24 +21850,24 @@ var defaultWorkspaceSchema = external_exports.object({
20346
21850
  /** The LOCAL id of the person's default workspace, or null when none is chosen. */
20347
21851
  defaultWorkspaceId: external_exports.string().nullable()
20348
21852
  });
20349
- var workspaceUpdateSchema = external_exports.object({
21853
+ var workspaceUpdateSchema2 = external_exports.object({
20350
21854
  name: plainText(1, 120).optional(),
20351
- look: workspaceLookSchema.partial().optional()
21855
+ look: workspaceLookSchema2.partial().optional()
20352
21856
  }).refine((b) => b.name !== void 0 || b.look !== void 0, { message: "nothing to change" });
20353
- var workspaceUpdatedSchema = external_exports.object({
21857
+ var workspaceUpdatedSchema2 = external_exports.object({
20354
21858
  workspace: external_exports.object({
20355
21859
  id: external_exports.string(),
20356
21860
  name: external_exports.string(),
20357
- look: workspaceLookSchema
21861
+ look: workspaceLookSchema2
20358
21862
  })
20359
21863
  });
20360
21864
 
20361
- // ../chassis-contract/dist/schemas/me.js
21865
+ // ../../node_modules/.pnpm/@antasphere+chassis-contract@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-contract/dist/schemas/me.js
20362
21866
  var onboardingDismissedSchema = external_exports.object({
20363
21867
  dismissed: external_exports.literal(true)
20364
21868
  });
20365
- function defineMeSchemas(scopeSchema2) {
20366
- const meResponseSchema2 = external_exports.object({
21869
+ function defineMeSchemas(scopeSchema3) {
21870
+ const meResponseSchema3 = external_exports.object({
20367
21871
  user: external_exports.object({
20368
21872
  id: external_exports.string(),
20369
21873
  email: external_exports.string(),
@@ -20385,7 +21889,7 @@ function defineMeSchemas(scopeSchema2) {
20385
21889
  */
20386
21890
  hubOrigin: external_exports.boolean(),
20387
21891
  /** The workspace's look, a fact of the workspace (schemas/workspaces.ts). */
20388
- look: workspaceLookSchema
21892
+ look: workspaceLookSchema2
20389
21893
  }).nullable(),
20390
21894
  /** Null only in the zero-membership session state. */
20391
21895
  role: workspaceRoleSchema.nullable(),
@@ -20399,7 +21903,7 @@ function defineMeSchemas(scopeSchema2) {
20399
21903
  */
20400
21904
  origin: external_exports.enum(["local", "hub", "guest"]).nullable(),
20401
21905
  via: external_exports.enum(["session", "api_key", "oauth"]),
20402
- scopes: external_exports.array(scopeSchema2).nullable(),
21906
+ scopes: external_exports.array(scopeSchema3).nullable(),
20403
21907
  /** Expiry of the presented API key; null for sessions/OAuth or non-expiring keys. */
20404
21908
  apiKeyExpiresAt: external_exports.string().nullable(),
20405
21909
  /**
@@ -20426,7 +21930,7 @@ function defineMeSchemas(scopeSchema2) {
20426
21930
  */
20427
21931
  centralAccountId: external_exports.string().nullable(),
20428
21932
  /** Each workspace's look, so the switcher's tiles carry them (schemas/workspaces.ts). */
20429
- look: workspaceLookSchema,
21933
+ look: workspaceLookSchema2,
20430
21934
  /**
20431
21935
  * The hub asserted this org suspended (cloud edition): it stays
20432
21936
  * VISIBLE here but requests into it are refused. Always false on oss
@@ -20507,11 +22011,11 @@ function defineMeSchemas(scopeSchema2) {
20507
22011
  */
20508
22012
  hubNoAccessUrl: external_exports.string().optional()
20509
22013
  });
20510
- return { meResponseSchema: meResponseSchema2 };
22014
+ return { meResponseSchema: meResponseSchema3 };
20511
22015
  }
20512
22016
 
20513
- // ../chassis-contract/dist/schemas/members.js
20514
- var memberSchema = external_exports.object({
22017
+ // ../../node_modules/.pnpm/@antasphere+chassis-contract@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-contract/dist/schemas/members.js
22018
+ var memberSchema2 = external_exports.object({
20515
22019
  id: external_exports.string(),
20516
22020
  userId: external_exports.string(),
20517
22021
  email: external_exports.string(),
@@ -20521,37 +22025,37 @@ var memberSchema = external_exports.object({
20521
22025
  createdAt: external_exports.string(),
20522
22026
  lastSeenAt: external_exports.string().nullable()
20523
22027
  });
20524
- var membersListSchema = external_exports.object({
20525
- members: external_exports.array(memberSchema),
22028
+ var membersListSchema2 = external_exports.object({
22029
+ members: external_exports.array(memberSchema2),
20526
22030
  nextCursor: external_exports.string().nullable()
20527
22031
  });
20528
- var memberUpdateSchema = external_exports.object({
22032
+ var memberUpdateSchema2 = external_exports.object({
20529
22033
  role: workspaceRoleSchema.optional(),
20530
22034
  isActive: external_exports.boolean().optional()
20531
22035
  }).refine((v) => v.role !== void 0 || v.isActive !== void 0, {
20532
22036
  error: "at least one of role or isActive is required"
20533
22037
  });
20534
- var memberResetLinkSchema = external_exports.object({
22038
+ var memberResetLinkSchema2 = external_exports.object({
20535
22039
  resetUrl: external_exports.string(),
20536
22040
  expiresAt: external_exports.string()
20537
22041
  });
20538
- var memberChangeEmailLinkRequestSchema = external_exports.object({
22042
+ var memberChangeEmailLinkRequestSchema2 = external_exports.object({
20539
22043
  newEmail: external_exports.email()
20540
22044
  });
20541
- var memberChangeEmailLinkSchema = external_exports.object({
22045
+ var memberChangeEmailLinkSchema2 = external_exports.object({
20542
22046
  verifyUrl: external_exports.string(),
20543
22047
  newEmail: external_exports.string(),
20544
22048
  expiresAt: external_exports.string()
20545
22049
  });
20546
22050
 
20547
- // ../chassis-contract/dist/schemas/cli-auth.js
20548
- var cliAuthRequestSchema = external_exports.object({
22051
+ // ../../node_modules/.pnpm/@antasphere+chassis-contract@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-contract/dist/schemas/cli-auth.js
22052
+ var cliAuthRequestSchema2 = external_exports.object({
20549
22053
  email: external_exports.email()
20550
22054
  });
20551
- var cliAuthRequestedSchema = external_exports.object({
22055
+ var cliAuthRequestedSchema2 = external_exports.object({
20552
22056
  sent: external_exports.literal(true)
20553
22057
  });
20554
- var cliAuthCompleteSchema = external_exports.object({
22058
+ var cliAuthCompleteSchema2 = external_exports.object({
20555
22059
  email: external_exports.email(),
20556
22060
  otp: external_exports.string().min(4).max(16),
20557
22061
  /** Display name for the minted key (defaults to a CLI-login label). */
@@ -20566,15 +22070,15 @@ var cliAuthCompleteSchema = external_exports.object({
20566
22070
  */
20567
22071
  workspaceId: external_exports.uuid().optional()
20568
22072
  });
20569
- var cliAuthRevokedSchema = external_exports.object({
22073
+ var cliAuthRevokedSchema2 = external_exports.object({
20570
22074
  revoked: external_exports.literal(true),
20571
22075
  id: external_exports.string()
20572
22076
  });
20573
- function defineCliAuthSchemas(apiKeySchema2) {
20574
- const cliAuthCompletedSchema2 = external_exports.object({
22077
+ function defineCliAuthSchemas(apiKeySchema3) {
22078
+ const cliAuthCompletedSchema3 = external_exports.object({
20575
22079
  /** Full key `<prefix>_<keyid>_<secret>` — shown once, never retrievable. */
20576
22080
  key: external_exports.string(),
20577
- apiKey: apiKeySchema2,
22081
+ apiKey: apiKeySchema3,
20578
22082
  user: external_exports.object({
20579
22083
  id: external_exports.string(),
20580
22084
  email: external_exports.string(),
@@ -20583,10 +22087,10 @@ function defineCliAuthSchemas(apiKeySchema2) {
20583
22087
  /** The workspace the key is PINNED to; null = user-scoped (unpinned). */
20584
22088
  workspaceId: external_exports.string().nullable()
20585
22089
  });
20586
- return { cliAuthCompletedSchema: cliAuthCompletedSchema2 };
22090
+ return { cliAuthCompletedSchema: cliAuthCompletedSchema3 };
20587
22091
  }
20588
22092
 
20589
- // ../chassis-contract/dist/schemas/sso-connect.js
22093
+ // ../../node_modules/.pnpm/@antasphere+chassis-contract@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-contract/dist/schemas/sso-connect.js
20590
22094
  var ssoCliConnectSchema = external_exports.object({
20591
22095
  /** The hub-minted exchange JWT (compact JWS — three base64url segments). */
20592
22096
  token: external_exports.string().min(20).max(4096),
@@ -20601,13 +22105,13 @@ var ssoCliConnectSchema = external_exports.object({
20601
22105
  hubRefreshToken: external_exports.string().min(20).max(512).optional()
20602
22106
  });
20603
22107
 
20604
- // ../chassis-contract/dist/schemas/sso-logout.js
22108
+ // ../../node_modules/.pnpm/@antasphere+chassis-contract@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-contract/dist/schemas/sso-logout.js
20605
22109
  var ssoLogoutResponseSchema = external_exports.object({
20606
22110
  url: external_exports.string().nullable()
20607
22111
  });
20608
22112
 
20609
- // ../chassis-contract/dist/schemas/invitations.js
20610
- var invitationSchema = external_exports.object({
22113
+ // ../../node_modules/.pnpm/@antasphere+chassis-contract@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-contract/dist/schemas/invitations.js
22114
+ var invitationSchema2 = external_exports.object({
20611
22115
  id: external_exports.string(),
20612
22116
  email: external_exports.string(),
20613
22117
  role: workspaceRoleSchema,
@@ -20617,39 +22121,39 @@ var invitationSchema = external_exports.object({
20617
22121
  revokedAt: external_exports.string().nullable(),
20618
22122
  createdAt: external_exports.string()
20619
22123
  });
20620
- var invitationsListSchema = external_exports.object({
20621
- invitations: external_exports.array(invitationSchema),
22124
+ var invitationsListSchema2 = external_exports.object({
22125
+ invitations: external_exports.array(invitationSchema2),
20622
22126
  nextCursor: external_exports.string().nullable()
20623
22127
  });
20624
- var invitationCreateSchema = external_exports.object({
22128
+ var invitationCreateSchema2 = external_exports.object({
20625
22129
  email: external_exports.email(),
20626
22130
  role: workspaceRoleSchema.default("member")
20627
22131
  });
20628
- var invitationCreatedSchema = external_exports.object({
20629
- invitation: invitationSchema,
22132
+ var invitationCreatedSchema2 = external_exports.object({
22133
+ invitation: invitationSchema2,
20630
22134
  acceptUrl: external_exports.string(),
20631
22135
  emailSent: external_exports.boolean()
20632
22136
  });
20633
- var invitationLookupSchema = external_exports.object({
22137
+ var invitationLookupSchema2 = external_exports.object({
20634
22138
  email: external_exports.string(),
20635
22139
  role: workspaceRoleSchema,
20636
22140
  workspaceName: external_exports.string(),
20637
22141
  expiresAt: external_exports.string()
20638
22142
  });
20639
- var invitationAcceptSchema = external_exports.object({
22143
+ var invitationAcceptSchema2 = external_exports.object({
20640
22144
  token: external_exports.string().min(16),
20641
22145
  /** Required when the invited email has no account yet. */
20642
22146
  name: plainText(1, 120).optional(),
20643
22147
  password: external_exports.string().min(12).max(256).optional()
20644
22148
  });
20645
- var invitationAcceptedSchema = external_exports.object({
22149
+ var invitationAcceptedSchema2 = external_exports.object({
20646
22150
  workspaceId: external_exports.string(),
20647
22151
  userId: external_exports.string(),
20648
22152
  role: workspaceRoleSchema
20649
22153
  });
20650
22154
 
20651
- // ../chassis-contract/dist/schemas/audit.js
20652
- var auditEntrySchema = external_exports.object({
22155
+ // ../../node_modules/.pnpm/@antasphere+chassis-contract@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-contract/dist/schemas/audit.js
22156
+ var auditEntrySchema2 = external_exports.object({
20653
22157
  id: external_exports.number(),
20654
22158
  actorUserId: external_exports.string().nullable(),
20655
22159
  actorEmail: external_exports.string().nullable(),
@@ -20682,8 +22186,8 @@ var auditListQuerySchema = cursorPageQuerySchema.extend({
20682
22186
  /** Entries created at or before this instant (ISO 8601). */
20683
22187
  to: external_exports.iso.datetime().optional()
20684
22188
  });
20685
- var auditListSchema = external_exports.object({
20686
- entries: external_exports.array(auditEntrySchema),
22189
+ var auditListSchema2 = external_exports.object({
22190
+ entries: external_exports.array(auditEntrySchema2),
20687
22191
  nextCursor: external_exports.string().nullable(),
20688
22192
  /**
20689
22193
  * How many entries match the filters in all: counted on the first page
@@ -20693,12 +22197,12 @@ var auditListSchema = external_exports.object({
20693
22197
  total: external_exports.number().int().nullable()
20694
22198
  });
20695
22199
 
20696
- // ../chassis-contract/dist/schemas/break-glass.js
20697
- var breakGlassClaimOwnershipRequestSchema = external_exports.object({
22200
+ // ../../node_modules/.pnpm/@antasphere+chassis-contract@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-contract/dist/schemas/break-glass.js
22201
+ var breakGlassClaimOwnershipRequestSchema2 = external_exports.object({
20698
22202
  userId: external_exports.string().min(1).optional(),
20699
22203
  workspaceId: external_exports.uuid().optional()
20700
22204
  });
20701
- var breakGlassClaimOwnershipSchema = external_exports.object({
22205
+ var breakGlassClaimOwnershipSchema2 = external_exports.object({
20702
22206
  memberId: external_exports.string(),
20703
22207
  userId: external_exports.string(),
20704
22208
  email: external_exports.string(),
@@ -20709,17 +22213,17 @@ var breakGlassClaimOwnershipSchema = external_exports.object({
20709
22213
  /** true when the membership was created; false when an existing row was promoted/reactivated. */
20710
22214
  created: external_exports.boolean()
20711
22215
  });
20712
- var breakGlassResetTwoFactorRequestSchema = external_exports.object({
22216
+ var breakGlassResetTwoFactorRequestSchema2 = external_exports.object({
20713
22217
  userId: external_exports.string().min(1)
20714
22218
  });
20715
- var breakGlassResetTwoFactorSchema = external_exports.object({
22219
+ var breakGlassResetTwoFactorSchema2 = external_exports.object({
20716
22220
  userId: external_exports.string(),
20717
22221
  /** true when a factor actually existed (row or enabled flag) before the reset. */
20718
22222
  hadTwoFactor: external_exports.boolean()
20719
22223
  });
20720
22224
 
20721
- // ../chassis-contract/dist/schemas/files.js
20722
- var fileSchema = external_exports.object({
22225
+ // ../../node_modules/.pnpm/@antasphere+chassis-contract@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-contract/dist/schemas/files.js
22226
+ var fileSchema2 = external_exports.object({
20723
22227
  id: external_exports.string(),
20724
22228
  sha256: external_exports.string(),
20725
22229
  sizeBytes: external_exports.number(),
@@ -20729,21 +22233,21 @@ var fileSchema = external_exports.object({
20729
22233
  createdBy: external_exports.string().nullable(),
20730
22234
  createdAt: external_exports.string()
20731
22235
  });
20732
- var filesListSchema = external_exports.object({
20733
- files: external_exports.array(fileSchema),
22236
+ var filesListSchema2 = external_exports.object({
22237
+ files: external_exports.array(fileSchema2),
20734
22238
  nextCursor: external_exports.string().nullable()
20735
22239
  });
20736
- var fileUploadedSchema = external_exports.object({
20737
- file: fileSchema,
22240
+ var fileUploadedSchema2 = external_exports.object({
22241
+ file: fileSchema2,
20738
22242
  /** True when identical bytes already existed for this workspace. */
20739
22243
  deduplicated: external_exports.boolean()
20740
22244
  });
20741
- var fileUploadQuerySchema = external_exports.object({
22245
+ var fileUploadQuerySchema2 = external_exports.object({
20742
22246
  /** Original filename (the body is the raw bytes). */
20743
22247
  name: plainText(1, 255)
20744
22248
  });
20745
22249
 
20746
- // ../chassis-contract/dist/schemas/projects.js
22250
+ // ../../node_modules/.pnpm/@antasphere+chassis-contract@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-contract/dist/schemas/projects.js
20747
22251
  var projectRoleSchema = external_exports.enum(["manager", "editor", "viewer"]);
20748
22252
  var PROJECT_METADATA_MAX_LENGTH = 16 * 1024;
20749
22253
  var projectMetadataSchema = opaqueJsonChecks(external_exports.record(external_exports.string(), external_exports.unknown())).refine((v) => JSON.stringify(v).length <= PROJECT_METADATA_MAX_LENGTH, `metadata must serialize to at most ${PROJECT_METADATA_MAX_LENGTH} characters`);
@@ -20831,9 +22335,9 @@ var projectMemberParamsSchema = external_exports.object({
20831
22335
  });
20832
22336
  var projectTeamParamsSchema = external_exports.object({ id: external_exports.uuid(), teamId: external_exports.uuid() });
20833
22337
 
20834
- // ../chassis-contract/dist/schemas/teams.js
20835
- var teamSlugSchema = external_exports.string().regex(/^[a-z0-9]+(?:-[a-z0-9]+)*$/, "lowercase letters and digits, joined by single dashes").min(1).max(60);
20836
- var teamSchema = external_exports.object({
22338
+ // ../../node_modules/.pnpm/@antasphere+chassis-contract@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-contract/dist/schemas/teams.js
22339
+ var teamSlugSchema2 = external_exports.string().regex(/^[a-z0-9]+(?:-[a-z0-9]+)*$/, "lowercase letters and digits, joined by single dashes").min(1).max(60);
22340
+ var teamSchema2 = external_exports.object({
20837
22341
  id: external_exports.string(),
20838
22342
  slug: external_exports.string(),
20839
22343
  name: external_exports.string(),
@@ -20848,20 +22352,20 @@ var teamSchema = external_exports.object({
20848
22352
  createdAt: external_exports.string(),
20849
22353
  updatedAt: external_exports.string()
20850
22354
  });
20851
- var teamsListSchema = external_exports.object({
20852
- teams: external_exports.array(teamSchema),
22355
+ var teamsListSchema2 = external_exports.object({
22356
+ teams: external_exports.array(teamSchema2),
20853
22357
  nextCursor: external_exports.string().nullable()
20854
22358
  });
20855
- var teamCreateSchema = external_exports.object({
22359
+ var teamCreateSchema2 = external_exports.object({
20856
22360
  name: plainText(1, 80),
20857
22361
  /** Absent: derived from the name (lowercased, non-alphanumerics to dashes, cut to 60). */
20858
- slug: teamSlugSchema.optional()
22362
+ slug: teamSlugSchema2.optional()
20859
22363
  });
20860
- var teamUpdateSchema = external_exports.object({
22364
+ var teamUpdateSchema2 = external_exports.object({
20861
22365
  name: plainText(1, 80).optional(),
20862
- slug: teamSlugSchema.optional()
22366
+ slug: teamSlugSchema2.optional()
20863
22367
  }).refine((b) => b.name !== void 0 || b.slug !== void 0, { error: "nothing to change" });
20864
- var teamMemberSchema = external_exports.object({
22368
+ var teamMemberSchema2 = external_exports.object({
20865
22369
  userId: external_exports.string(),
20866
22370
  email: external_exports.string(),
20867
22371
  name: external_exports.string(),
@@ -20870,8 +22374,8 @@ var teamMemberSchema = external_exports.object({
20870
22374
  isActive: external_exports.boolean(),
20871
22375
  addedAt: external_exports.string()
20872
22376
  });
20873
- var teamMembersListSchema = external_exports.object({
20874
- members: external_exports.array(teamMemberSchema),
22377
+ var teamMembersListSchema2 = external_exports.object({
22378
+ members: external_exports.array(teamMemberSchema2),
20875
22379
  nextCursor: external_exports.string().nullable()
20876
22380
  });
20877
22381
  var teamMemberAddSchema = external_exports.object({
@@ -20885,9 +22389,9 @@ var teamMemberParamsSchema = external_exports.object({
20885
22389
  userId: noControlChars(external_exports.string().min(1).max(200))
20886
22390
  });
20887
22391
 
20888
- // ../chassis-contract/dist/schemas/demo-passes.js
20889
- var DEMO_PASS_MAX_MINUTES = 10080;
20890
- var demoPassSchema = external_exports.object({
22392
+ // ../../node_modules/.pnpm/@antasphere+chassis-contract@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-contract/dist/schemas/demo-passes.js
22393
+ var DEMO_PASS_MAX_MINUTES2 = 10080;
22394
+ var demoPassSchema2 = external_exports.object({
20891
22395
  id: external_exports.string(),
20892
22396
  /** The person the pass signs in. */
20893
22397
  userId: external_exports.string(),
@@ -20904,21 +22408,21 @@ var demoPassSchema = external_exports.object({
20904
22408
  /** How many sessions the pass has opened. */
20905
22409
  useCount: external_exports.number().int()
20906
22410
  });
20907
- var demoPassesListSchema = external_exports.object({ passes: external_exports.array(demoPassSchema) });
20908
- var demoPassMintSchema = external_exports.object({
22411
+ var demoPassesListSchema2 = external_exports.object({ passes: external_exports.array(demoPassSchema2) });
22412
+ var demoPassMintSchema2 = external_exports.object({
20909
22413
  email: external_exports.email(),
20910
22414
  path: external_exports.string().optional(),
20911
- expiresInMinutes: external_exports.number().int().min(1).max(DEMO_PASS_MAX_MINUTES).optional()
22415
+ expiresInMinutes: external_exports.number().int().min(1).max(DEMO_PASS_MAX_MINUTES2).optional()
20912
22416
  });
20913
- var demoPassMintedSchema = external_exports.object({
20914
- pass: demoPassSchema,
22417
+ var demoPassMintedSchema2 = external_exports.object({
22418
+ pass: demoPassSchema2,
20915
22419
  /** The secret itself: shown here once, never again. */
20916
22420
  secret: external_exports.string(),
20917
22421
  /** `<PUBLIC_BASE_URL>/demo#pass=<secret>&to=<path>`: the fragment never reaches a server log. */
20918
22422
  url: external_exports.string()
20919
22423
  });
20920
- var demoPassRedeemSchema = external_exports.object({ pass: external_exports.string().min(1) });
20921
- var demoPassRedeemedSchema = external_exports.object({
22424
+ var demoPassRedeemSchema2 = external_exports.object({ pass: external_exports.string().min(1) });
22425
+ var demoPassRedeemedSchema2 = external_exports.object({
20922
22426
  user: external_exports.object({ id: external_exports.string(), email: external_exports.string(), name: external_exports.string() }),
20923
22427
  /** The pass's page: where the dashboard goes when the link names none. */
20924
22428
  path: external_exports.string(),
@@ -20926,13 +22430,13 @@ var demoPassRedeemedSchema = external_exports.object({
20926
22430
  expiresAt: external_exports.string()
20927
22431
  });
20928
22432
 
20929
- // ../chassis-contract/dist/schemas/api-keys.js
20930
- function defineApiKeySchemas(scopeSchema2) {
20931
- const apiKeySchema2 = external_exports.object({
22433
+ // ../../node_modules/.pnpm/@antasphere+chassis-contract@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-contract/dist/schemas/api-keys.js
22434
+ function defineApiKeySchemas(scopeSchema3) {
22435
+ const apiKeySchema3 = external_exports.object({
20932
22436
  id: external_exports.string(),
20933
22437
  name: external_exports.string(),
20934
22438
  keyId: external_exports.string(),
20935
- scopes: external_exports.array(scopeSchema2),
22439
+ scopes: external_exports.array(scopeSchema3),
20936
22440
  /**
20937
22441
  * The key's optional workspace PIN (user-scoped credential model). null =
20938
22442
  * user-scoped: the key acts as its creator and the target workspace is a
@@ -20946,13 +22450,13 @@ function defineApiKeySchemas(scopeSchema2) {
20946
22450
  revokedAt: external_exports.string().nullable(),
20947
22451
  expiresAt: external_exports.string().nullable()
20948
22452
  });
20949
- const apiKeysListSchema2 = external_exports.object({
20950
- apiKeys: external_exports.array(apiKeySchema2),
22453
+ const apiKeysListSchema3 = external_exports.object({
22454
+ apiKeys: external_exports.array(apiKeySchema3),
20951
22455
  nextCursor: external_exports.string().nullable()
20952
22456
  });
20953
- const apiKeyCreateSchema2 = external_exports.object({
22457
+ const apiKeyCreateSchema3 = external_exports.object({
20954
22458
  name: plainText(1, 120),
20955
- scopes: external_exports.array(scopeSchema2).min(1),
22459
+ scopes: external_exports.array(scopeSchema3).min(1),
20956
22460
  /** TTL at mint; the server computes the absolute expiry. Omit = never expires. */
20957
22461
  expiresInDays: external_exports.number().int().min(1).max(3650).optional(),
20958
22462
  /**
@@ -20963,29 +22467,29 @@ function defineApiKeySchemas(scopeSchema2) {
20963
22467
  */
20964
22468
  workspaceId: external_exports.uuid().optional()
20965
22469
  });
20966
- const apiKeyCreatedSchema2 = external_exports.object({
20967
- apiKey: apiKeySchema2,
22470
+ const apiKeyCreatedSchema3 = external_exports.object({
22471
+ apiKey: apiKeySchema3,
20968
22472
  /** Full key `<prefix>_<keyid>_<secret>` — shown once, never retrievable. */
20969
22473
  key: external_exports.string()
20970
22474
  });
20971
- return { apiKeySchema: apiKeySchema2, apiKeysListSchema: apiKeysListSchema2, apiKeyCreateSchema: apiKeyCreateSchema2, apiKeyCreatedSchema: apiKeyCreatedSchema2 };
22475
+ return { apiKeySchema: apiKeySchema3, apiKeysListSchema: apiKeysListSchema3, apiKeyCreateSchema: apiKeyCreateSchema3, apiKeyCreatedSchema: apiKeyCreatedSchema3 };
20972
22476
  }
20973
22477
 
20974
- // ../chassis-contract/dist/define.js
22478
+ // ../../node_modules/.pnpm/@antasphere+chassis-contract@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-contract/dist/define.js
20975
22479
  function defineChassisContract(tool) {
20976
22480
  return buildChassisContract(defineScopeSchema(tool.scopes));
20977
22481
  }
20978
- function buildChassisContract(scopeSchema2) {
20979
- const apiKeys = defineApiKeySchemas(scopeSchema2);
22482
+ function buildChassisContract(scopeSchema3) {
22483
+ const apiKeys = defineApiKeySchemas(scopeSchema3);
20980
22484
  return {
20981
- scopeSchema: scopeSchema2,
22485
+ scopeSchema: scopeSchema3,
20982
22486
  ...apiKeys,
20983
22487
  ...defineCliAuthSchemas(apiKeys.apiKeySchema),
20984
- ...defineMeSchemas(scopeSchema2)
22488
+ ...defineMeSchemas(scopeSchema3)
20985
22489
  };
20986
22490
  }
20987
22491
 
20988
- // ../chassis-cli/dist/owner-session.js
22492
+ // ../../node_modules/.pnpm/@antasphere+chassis-cli@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-cli/dist/owner-session.js
20989
22493
  var SIGN_IN_WAITS_MS = [4e3, 8e3, 12e3];
20990
22494
  var SESSION_COOKIE = /session_token$/;
20991
22495
  function sessionCookie(res) {
@@ -21066,7 +22570,7 @@ async function withOwnerSession(ctx, options, run2) {
21066
22570
  }
21067
22571
  }
21068
22572
 
21069
- // ../chassis-cli/dist/commands/demo.js
22573
+ // ../../node_modules/.pnpm/@antasphere+chassis-cli@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-cli/dist/commands/demo.js
21070
22574
  var SWITCH_OFF = "Demo sign-in is off on this instance (DEMO_SIGN_IN), or this is the cloud edition, where demo links are minted at the Antasphere hub.";
21071
22575
  var NOT_AN_OWNER = "Only an owner of this workspace manages demo links: the account that signed in is not one.";
21072
22576
  var REFUSALS = /* @__PURE__ */ new Set([
@@ -21125,8 +22629,8 @@ function lifetimeMinutes(opts) {
21125
22629
  return void 0;
21126
22630
  const n = /^\d+$/.test(raw) ? Number(raw) : NaN;
21127
22631
  const minutes = opts.hours !== void 0 ? n * 60 : n;
21128
- if (!Number.isSafeInteger(minutes) || minutes < 1 || minutes > DEMO_PASS_MAX_MINUTES) {
21129
- throw new CliUsageError(`A demo link lives from one minute to a week (${DEMO_PASS_MAX_MINUTES} minutes): --${opts.hours !== void 0 ? "hours" : "minutes"} takes a whole number in that range.`);
22632
+ if (!Number.isSafeInteger(minutes) || minutes < 1 || minutes > DEMO_PASS_MAX_MINUTES2) {
22633
+ throw new CliUsageError(`A demo link lives from one minute to a week (${DEMO_PASS_MAX_MINUTES2} minutes): --${opts.hours !== void 0 ? "hours" : "minutes"} takes a whole number in that range.`);
21130
22634
  }
21131
22635
  return minutes;
21132
22636
  }
@@ -21220,14 +22724,14 @@ function registerDemoCommands(kit, program2, io) {
21220
22724
  });
21221
22725
  }
21222
22726
 
21223
- // ../chassis-cli/dist/commands/files.js
22727
+ // ../../node_modules/.pnpm/@antasphere+chassis-cli@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-cli/dist/commands/files.js
21224
22728
  import { createWriteStream } from "node:fs";
21225
22729
  import { mkdir as mkdir2, readFile, writeFile } from "node:fs/promises";
21226
22730
  import { basename, resolve as resolve2, win32 } from "node:path";
21227
22731
  import { Readable } from "node:stream";
21228
22732
  import { pipeline as pipeline2 } from "node:stream/promises";
21229
22733
 
21230
- // ../chassis-cli/dist/safe-write.js
22734
+ // ../../node_modules/.pnpm/@antasphere+chassis-cli@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-cli/dist/safe-write.js
21231
22735
  import { constants as FS } from "node:fs";
21232
22736
  import { mkdir, open, realpath, unlink } from "node:fs/promises";
21233
22737
  import { dirname as dirname2, isAbsolute, relative, resolve } from "node:path";
@@ -21308,7 +22812,7 @@ async function streamContained(root, relPath, source) {
21308
22812
  }
21309
22813
  }
21310
22814
 
21311
- // ../chassis-cli/dist/commands/files.js
22815
+ // ../../node_modules/.pnpm/@antasphere+chassis-cli@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-cli/dist/commands/files.js
21312
22816
  function safeDownloadName(originalName) {
21313
22817
  const name = basename(win32.basename(originalName));
21314
22818
  if (name === "" || name === "." || name === ".." || name.startsWith(".")) {
@@ -21435,7 +22939,7 @@ function registerFileCommands(kit, program2, io) {
21435
22939
  });
21436
22940
  }
21437
22941
 
21438
- // ../chassis-cli/dist/commands/completion.js
22942
+ // ../../node_modules/.pnpm/@antasphere+chassis-cli@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-cli/dist/commands/completion.js
21439
22943
  function commandTree(program2) {
21440
22944
  return program2.commands.filter((c) => !c.name().startsWith("help")).map((c) => ({
21441
22945
  name: c.name(),
@@ -21510,7 +23014,7 @@ function registerCompletionCommand(identity, program2, io) {
21510
23014
  });
21511
23015
  }
21512
23016
 
21513
- // ../chassis-cli/dist/program.js
23017
+ // ../../node_modules/.pnpm/@antasphere+chassis-cli@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-cli/dist/program.js
21514
23018
  function creditFigures(credit) {
21515
23019
  const parts = [
21516
23020
  typeof credit?.credits === "number" ? `this needs ${credit.credits} credits` : null,
@@ -21592,7 +23096,7 @@ function createProgram(kit, definition) {
21592
23096
  return { buildProgram, run: run2 };
21593
23097
  }
21594
23098
 
21595
- // ../chassis-cli/dist/identity.js
23099
+ // ../../node_modules/.pnpm/@antasphere+chassis-cli@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-cli/dist/identity.js
21596
23100
  function cliIdentity(identity) {
21597
23101
  return {
21598
23102
  bin: identity.cli.bin,
@@ -21606,7 +23110,7 @@ function cliIdentity(identity) {
21606
23110
  };
21607
23111
  }
21608
23112
 
21609
- // ../chassis-cli/dist/open.js
23113
+ // ../../node_modules/.pnpm/@antasphere+chassis-cli@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-cli/dist/open.js
21610
23114
  import { spawn } from "node:child_process";
21611
23115
  function platformOpener(platform = process.platform) {
21612
23116
  if (platform === "darwin")
@@ -21632,7 +23136,7 @@ function isInteractive(io) {
21632
23136
  return io.out.isTTY === true;
21633
23137
  }
21634
23138
 
21635
- // ../chassis-cli/dist/index.js
23139
+ // ../../node_modules/.pnpm/@antasphere+chassis-cli@1.0.2_hono@4.12.27/node_modules/@antasphere/chassis-cli/dist/index.js
21636
23140
  function defineCli(definition) {
21637
23141
  const { identity, createClient } = definition;
21638
23142
  const config2 = createConfig(identity);
@@ -21670,13 +23174,13 @@ var IDENTITY = {
21670
23174
  // ../contract/dist/chassis.js
21671
23175
  var { read, write, dataExport } = IDENTITY.scopes;
21672
23176
  var chassisContract = defineChassisContract({ scopes: [read, write, dataExport] });
21673
- var scopeSchema = chassisContract.scopeSchema;
21674
- var apiKeySchema = chassisContract.apiKeySchema;
21675
- var apiKeysListSchema = chassisContract.apiKeysListSchema;
21676
- var apiKeyCreateSchema = chassisContract.apiKeyCreateSchema;
21677
- var apiKeyCreatedSchema = chassisContract.apiKeyCreatedSchema;
21678
- var cliAuthCompletedSchema = chassisContract.cliAuthCompletedSchema;
21679
- var meResponseSchema = chassisContract.meResponseSchema;
23177
+ var scopeSchema2 = chassisContract.scopeSchema;
23178
+ var apiKeySchema2 = chassisContract.apiKeySchema;
23179
+ var apiKeysListSchema2 = chassisContract.apiKeysListSchema;
23180
+ var apiKeyCreateSchema2 = chassisContract.apiKeyCreateSchema;
23181
+ var apiKeyCreatedSchema2 = chassisContract.apiKeyCreatedSchema;
23182
+ var cliAuthCompletedSchema2 = chassisContract.cliAuthCompletedSchema;
23183
+ var meResponseSchema2 = chassisContract.meResponseSchema;
21680
23184
 
21681
23185
  // ../contract/dist/schemas/presentations.js
21682
23186
  var presentationKindSchema = external_exports.enum(["presentation", "app", "plan"]);
@@ -25915,7 +27419,7 @@ async function zipMode(ctx, io, id, responseId, filters, zip) {
25915
27419
  }
25916
27420
 
25917
27421
  // src/index.ts
25918
- var VERSION = "0.13.3";
27422
+ var VERSION = "0.13.7";
25919
27423
  function registerTool(program2, io) {
25920
27424
  registerDeckCommands(program2, io);
25921
27425
  registerContentCommands(program2, io);