agent-relay 13.0.0 → 13.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.cjs +62 -2
  2. package/package.json +10 -10
package/dist/index.cjs CHANGED
@@ -303,7 +303,7 @@ __export(index_exports, {
303
303
  module.exports = __toCommonJS(index_exports);
304
304
 
305
305
  // ../../node_modules/@relaycast/sdk/dist/version.js
306
- var SDK_VERSION = "8.14.0";
306
+ var SDK_VERSION = "8.16.0";
307
307
 
308
308
  // ../../node_modules/zod/v4/classic/external.js
309
309
  var external_exports = {};
@@ -20353,8 +20353,53 @@ var WorkspaceSchema = external_exports.object({
20353
20353
  classification_reason: external_exports.string().nullable().default(null),
20354
20354
  classified_at: external_exports.string().nullable().default(null)
20355
20355
  });
20356
+ var WORKSPACE_METADATA_MAX_BYTES = 16 * 1024;
20357
+ var WORKSPACE_METADATA_MAX_KEYS = 100;
20358
+ var WORKSPACE_METADATA_MAX_DEPTH = 8;
20359
+ var WORKSPACE_METADATA_MAX_KEY_LENGTH = 128;
20360
+ function metadataProblem(value, depth = 0) {
20361
+ if (value === null || typeof value === "string" || typeof value === "boolean")
20362
+ return;
20363
+ if (typeof value === "number" && Number.isFinite(value))
20364
+ return;
20365
+ if (depth > WORKSPACE_METADATA_MAX_DEPTH)
20366
+ return "metadata must contain at most 8 nested object/array levels below its root";
20367
+ if (Array.isArray(value)) {
20368
+ for (const item of value) {
20369
+ const problem = metadataProblem(item, depth + 1);
20370
+ if (problem)
20371
+ return problem;
20372
+ }
20373
+ return;
20374
+ }
20375
+ if (typeof value !== "object" || !value || Object.getPrototypeOf(value) !== Object.prototype) {
20376
+ return "metadata values must be JSON values";
20377
+ }
20378
+ for (const [key, item] of Object.entries(value)) {
20379
+ if ([...key].length > WORKSPACE_METADATA_MAX_KEY_LENGTH)
20380
+ return "metadata keys must be at most 128 Unicode code points";
20381
+ const normalized = key.replace(/([a-z0-9])([A-Z])/g, "$1_$2").toLowerCase();
20382
+ if (["__proto__", "prototype", "constructor"].includes(key) || /(?:^|[^a-z0-9])(?:tokens?|secrets?|passwords?|passwd|authorization|credentials?)(?:$|[^a-z0-9])/.test(normalized) || /(?:api|private|access|refresh)[^a-z0-9]*keys?/.test(normalized) || normalized.split(/[^a-z0-9]+/).some((part) => /^(?:(?:access|refresh|api|auth|bearer|session|client|id)tokens?|(?:client|app|shared|signing|webhook|consumer)secrets?|secretkeys?|password(?:hash|digest|salt))$/.test(part))) {
20383
+ return "metadata must not contain secret-like keys";
20384
+ }
20385
+ const problem = metadataProblem(item, depth + 1);
20386
+ if (problem)
20387
+ return problem;
20388
+ }
20389
+ }
20390
+ var WorkspaceMetadataSchema = external_exports.unknown().superRefine((metadata, ctx) => {
20391
+ const problem = metadata && typeof metadata === "object" && Object.keys(metadata).length > WORKSPACE_METADATA_MAX_KEYS ? "metadata must contain at most 100 top-level keys" : metadataProblem(metadata);
20392
+ if (problem) {
20393
+ ctx.addIssue({ code: "custom", message: problem });
20394
+ return;
20395
+ }
20396
+ if (new TextEncoder().encode(JSON.stringify(metadata)).byteLength > WORKSPACE_METADATA_MAX_BYTES) {
20397
+ ctx.addIssue({ code: "custom", message: "metadata must be at most 16384 UTF-8 bytes" });
20398
+ }
20399
+ }).pipe(external_exports.record(external_exports.string(), external_exports.unknown()));
20356
20400
  var CreateWorkspaceRequestSchema = external_exports.object({
20357
20401
  name: external_exports.string(),
20402
+ metadata: WorkspaceMetadataSchema.optional(),
20358
20403
  expires_in_seconds: external_exports.number().int().min(60).max(30 * 24 * 60 * 60).optional(),
20359
20404
  provenance: WorkspaceProvenanceInputSchema.optional()
20360
20405
  });
@@ -20370,6 +20415,7 @@ var WorkspaceLookupSchema = external_exports.object({
20370
20415
  created_at: external_exports.string()
20371
20416
  });
20372
20417
  var UpdateWorkspaceRequestSchema = external_exports.object({
20418
+ metadata: WorkspaceMetadataSchema.optional(),
20373
20419
  name: external_exports.string().optional(),
20374
20420
  system_prompt: external_exports.string().nullable().optional()
20375
20421
  });
@@ -21258,6 +21304,15 @@ var telemetryPropertiesSchema = external_exports.record(telemetryKeySchema, tele
21258
21304
  });
21259
21305
  }
21260
21306
  });
21307
+ var TELEMETRY_CLOUD_ID_MAX_LENGTH = 128;
21308
+ var telemetryGroupsSchema = external_exports.object({
21309
+ organization: telemetryString(TELEMETRY_CLOUD_ID_MAX_LENGTH).optional(),
21310
+ workspace: telemetryString(TELEMETRY_CLOUD_ID_MAX_LENGTH).optional()
21311
+ }).strict();
21312
+ var telemetryPersonSetOnceSchema = external_exports.object({
21313
+ first_human_message_at: telemetryString(64).optional(),
21314
+ first_agent_message_at: telemetryString(64).optional()
21315
+ }).strict();
21261
21316
  var telemetryEnvelopeBaseSchema = external_exports.object({
21262
21317
  distinct_id: telemetryString(128),
21263
21318
  properties: telemetryPropertiesSchema.default({})
@@ -21266,7 +21321,11 @@ var telemetryIngestionEventSchema = telemetryEnvelopeBaseSchema.extend({
21266
21321
  event: clientTelemetryEventSchema
21267
21322
  });
21268
21323
  var internalTelemetryEventSchema = telemetryEnvelopeBaseSchema.extend({
21269
- event: telemetryEventSchema
21324
+ event: telemetryEventSchema,
21325
+ groups: telemetryGroupsSchema.optional(),
21326
+ set_once: telemetryPersonSetOnceSchema.optional(),
21327
+ /** `false` for events whose distinct id is not a person (the workspace fallback). */
21328
+ process_person_profile: external_exports.boolean().optional()
21270
21329
  }).merge(telemetryOriginSchema);
21271
21330
 
21272
21331
  // ../../node_modules/@relaycast/types/dist/fleet-wire.js
@@ -23460,6 +23519,7 @@ var RelayCast = class _RelayCast {
23460
23519
  body: JSON.stringify({
23461
23520
  name,
23462
23521
  ...resolved.expiresInSeconds !== void 0 ? { expires_in_seconds: resolved.expiresInSeconds } : {},
23522
+ ...resolved.metadata !== void 0 ? { metadata: resolved.metadata } : {},
23463
23523
  provenance: toWorkspaceProvenanceInput(resolved.provenance)
23464
23524
  })
23465
23525
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-relay",
3
- "version": "13.0.0",
3
+ "version": "13.0.1",
4
4
  "description": "Real-time agent-to-agent communication system",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",
@@ -43,15 +43,15 @@
43
43
  "pack:validate": "npm pack --dry-run"
44
44
  },
45
45
  "dependencies": {
46
- "@agent-relay/cli-surface": "13.0.0",
47
- "@agent-relay/cloud": "13.0.0",
48
- "@agent-relay/config": "13.0.0",
49
- "@agent-relay/fleet": "13.0.0",
50
- "@agent-relay/harness-driver": "13.0.0",
51
- "@agent-relay/harnesses": "13.0.0",
52
- "@agent-relay/sdk": "13.0.0",
53
- "@agent-relay/session": "13.0.0",
54
- "@agent-relay/utils": "13.0.0",
46
+ "@agent-relay/cli-surface": "13.0.1",
47
+ "@agent-relay/cloud": "13.0.1",
48
+ "@agent-relay/config": "13.0.1",
49
+ "@agent-relay/fleet": "13.0.1",
50
+ "@agent-relay/harness-driver": "13.0.1",
51
+ "@agent-relay/harnesses": "13.0.1",
52
+ "@agent-relay/sdk": "13.0.1",
53
+ "@agent-relay/session": "13.0.1",
54
+ "@agent-relay/utils": "13.0.1",
55
55
  "@modelcontextprotocol/sdk": "^1.23.0",
56
56
  "@relayfile/client": "^0.10.27",
57
57
  "@relayfile/sdk": "^0.10.64",