@autohq/cli 0.1.86 → 0.1.87

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.
@@ -21330,6 +21330,21 @@ var SessionApplyTriggersSchema = external_exports.array(
21330
21330
  ).transform(expandSessionApplyTriggerDefinitions).superRefine(validateAttributedRunsTriggerPairing);
21331
21331
  var AVATAR_ASSET_EXTENSIONS = [".png", ".jpg", ".jpeg"];
21332
21332
  var MAX_AVATAR_ASSET_BYTES = 2 * 1024 * 1024;
21333
+ var SESSION_IDENTITY_DESCRIPTION_MAX_LENGTH = 140;
21334
+ function sessionIdentityDescriptionLength(value2) {
21335
+ let length = 0;
21336
+ for (const char of value2) {
21337
+ const codePoint = char.codePointAt(0) ?? 0;
21338
+ if (codePoint < 32 || codePoint > 126) {
21339
+ length += 6 * char.length;
21340
+ } else if (char === '"' || char === "\\" || char === "/") {
21341
+ length += 2;
21342
+ } else {
21343
+ length += 1;
21344
+ }
21345
+ }
21346
+ return length;
21347
+ }
21333
21348
  var SHA256_HEX_PATTERN = /^[a-f0-9]{64}$/;
21334
21349
  function isAvatarAssetPathShapeValid(asset) {
21335
21350
  const normalized = asset.trim().replaceAll("\\", "/");
@@ -21353,7 +21368,12 @@ var SessionIdentitySchema = external_exports.object({
21353
21368
  // overwritten, so it is never trusted input.
21354
21369
  sha256: external_exports.string().regex(SHA256_HEX_PATTERN).optional()
21355
21370
  }).strict().optional(),
21356
- description: external_exports.string().trim().min(1).max(256).optional()
21371
+ description: external_exports.string().trim().min(1).refine(
21372
+ (value2) => sessionIdentityDescriptionLength(value2) <= SESSION_IDENTITY_DESCRIPTION_MAX_LENGTH,
21373
+ {
21374
+ message: `description must be at most ${SESSION_IDENTITY_DESCRIPTION_MAX_LENGTH} characters as Slack counts them (a non-ASCII character like "\u2014" counts as 6)`
21375
+ }
21376
+ ).optional()
21357
21377
  }).strict().refine((identity) => Object.keys(identity).length > 0, {
21358
21378
  message: "Session identity requires at least one field"
21359
21379
  });
package/dist/index.js CHANGED
@@ -16989,6 +16989,20 @@ var init_trigger_router = __esm({
16989
16989
  });
16990
16990
 
16991
16991
  // ../../packages/schemas/src/sessions.ts
16992
+ function sessionIdentityDescriptionLength(value) {
16993
+ let length = 0;
16994
+ for (const char of value) {
16995
+ const codePoint = char.codePointAt(0) ?? 0;
16996
+ if (codePoint < 32 || codePoint > 126) {
16997
+ length += 6 * char.length;
16998
+ } else if (char === '"' || char === "\\" || char === "/") {
16999
+ length += 2;
17000
+ } else {
17001
+ length += 1;
17002
+ }
17003
+ }
17004
+ return length;
17005
+ }
16992
17006
  function isAvatarAssetPathShapeValid(asset) {
16993
17007
  const normalized = asset.trim().replaceAll("\\", "/");
16994
17008
  if (normalized.length === 0) return false;
@@ -17122,7 +17136,7 @@ function isChatMessageEvent(trigger) {
17122
17136
  function hasFilterValue(trigger, path, expected) {
17123
17137
  return trigger.where?.[path] === expected;
17124
17138
  }
17125
- var RESOURCE_KIND_SESSION, TriggerFilterScalarSchema, TriggerFilterPathSchema, TriggerFilterClauseSchema, TriggerFilterSchema, SessionTriggerCheckTimeoutSchema, TriggerEventSchema, TriggerEventsSchema, SessionTriggerSharedFields, SessionTriggerEventSourceFields, SessionTriggerBaseSchema, SessionTriggerDefinitionBaseSchema, SessionTriggerSchema, SessionApplyTriggerSchema, SessionHeartbeatTriggerBaseSchema, SessionHeartbeatTriggerSchema, SessionApplyHeartbeatTriggerSchema, SessionTriggerDefinitionSchema, SessionApplyTriggerDefinitionSchema, SessionTriggersSchema, SessionApplyTriggersSchema, AVATAR_ASSET_EXTENSIONS, MAX_AVATAR_ASSET_BYTES, SHA256_HEX_PATTERN, SessionIdentitySchema, SessionSpecSchema, SessionApplySpecSchema, SessionStatusSchema, SessionResourceSchema, SessionApplyRequestSchema, SessionApplyTriggerReceiptSchema, SessionApplyResponseSchema, SESSION_TELEGRAM_IDENTITY_STATUSES, SessionTelegramIdentityStatusSchema, SessionPresenceIdentitySchema, SessionPresenceResponseSchema, SessionPresenceConnectRequestSchema, SessionPresenceConnectPendingSchema, SessionPresenceConnectResponseSchema, SessionPresenceIconRequestSchema, SessionPresenceIconResponseSchema, SessionPresenceCompleteResponseSchema;
17139
+ var RESOURCE_KIND_SESSION, TriggerFilterScalarSchema, TriggerFilterPathSchema, TriggerFilterClauseSchema, TriggerFilterSchema, SessionTriggerCheckTimeoutSchema, TriggerEventSchema, TriggerEventsSchema, SessionTriggerSharedFields, SessionTriggerEventSourceFields, SessionTriggerBaseSchema, SessionTriggerDefinitionBaseSchema, SessionTriggerSchema, SessionApplyTriggerSchema, SessionHeartbeatTriggerBaseSchema, SessionHeartbeatTriggerSchema, SessionApplyHeartbeatTriggerSchema, SessionTriggerDefinitionSchema, SessionApplyTriggerDefinitionSchema, SessionTriggersSchema, SessionApplyTriggersSchema, AVATAR_ASSET_EXTENSIONS, MAX_AVATAR_ASSET_BYTES, SESSION_IDENTITY_DESCRIPTION_MAX_LENGTH, SHA256_HEX_PATTERN, SessionIdentitySchema, SessionSpecSchema, SessionApplySpecSchema, SessionStatusSchema, SessionResourceSchema, SessionApplyRequestSchema, SessionApplyTriggerReceiptSchema, SessionApplyResponseSchema, SESSION_TELEGRAM_IDENTITY_STATUSES, SessionTelegramIdentityStatusSchema, SessionPresenceIdentitySchema, SessionPresenceResponseSchema, SessionPresenceConnectRequestSchema, SessionPresenceConnectPendingSchema, SessionPresenceConnectResponseSchema, SessionPresenceIconRequestSchema, SessionPresenceIconResponseSchema, SessionPresenceCompleteResponseSchema;
17126
17140
  var init_sessions = __esm({
17127
17141
  "../../packages/schemas/src/sessions.ts"() {
17128
17142
  "use strict";
@@ -17299,6 +17313,7 @@ var init_sessions = __esm({
17299
17313
  ).transform(expandSessionApplyTriggerDefinitions).superRefine(validateAttributedRunsTriggerPairing);
17300
17314
  AVATAR_ASSET_EXTENSIONS = [".png", ".jpg", ".jpeg"];
17301
17315
  MAX_AVATAR_ASSET_BYTES = 2 * 1024 * 1024;
17316
+ SESSION_IDENTITY_DESCRIPTION_MAX_LENGTH = 140;
17302
17317
  SHA256_HEX_PATTERN = /^[a-f0-9]{64}$/;
17303
17318
  SessionIdentitySchema = external_exports.object({
17304
17319
  displayName: external_exports.string().trim().min(1).max(80).optional(),
@@ -17312,7 +17327,12 @@ var init_sessions = __esm({
17312
17327
  // overwritten, so it is never trusted input.
17313
17328
  sha256: external_exports.string().regex(SHA256_HEX_PATTERN).optional()
17314
17329
  }).strict().optional(),
17315
- description: external_exports.string().trim().min(1).max(256).optional()
17330
+ description: external_exports.string().trim().min(1).refine(
17331
+ (value) => sessionIdentityDescriptionLength(value) <= SESSION_IDENTITY_DESCRIPTION_MAX_LENGTH,
17332
+ {
17333
+ message: `description must be at most ${SESSION_IDENTITY_DESCRIPTION_MAX_LENGTH} characters as Slack counts them (a non-ASCII character like "\u2014" counts as 6)`
17334
+ }
17335
+ ).optional()
17316
17336
  }).strict().refine((identity) => Object.keys(identity).length > 0, {
17317
17337
  message: "Session identity requires at least one field"
17318
17338
  });
@@ -21133,7 +21153,7 @@ var init_package = __esm({
21133
21153
  "package.json"() {
21134
21154
  package_default = {
21135
21155
  name: "@autohq/cli",
21136
- version: "0.1.86",
21156
+ version: "0.1.87",
21137
21157
  license: "SEE LICENSE IN README.md",
21138
21158
  publishConfig: {
21139
21159
  access: "public"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@autohq/cli",
3
- "version": "0.1.86",
3
+ "version": "0.1.87",
4
4
  "license": "SEE LICENSE IN README.md",
5
5
  "publishConfig": {
6
6
  "access": "public"