agent-relay 11.7.2 → 11.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/cli/commands/local-agent.d.ts.map +1 -1
  2. package/dist/cli/commands/local-agent.js +5 -1
  3. package/dist/cli/commands/local-agent.js.map +1 -1
  4. package/dist/cli/lib/attach-broker.d.ts.map +1 -1
  5. package/dist/cli/lib/attach-broker.js +6 -1
  6. package/dist/cli/lib/attach-broker.js.map +1 -1
  7. package/dist/cli/lib/attach-drive.d.ts +3 -11
  8. package/dist/cli/lib/attach-drive.d.ts.map +1 -1
  9. package/dist/cli/lib/attach-drive.js +5 -1
  10. package/dist/cli/lib/attach-drive.js.map +1 -1
  11. package/dist/cli/lib/attach-fleet-node.d.ts +7 -1
  12. package/dist/cli/lib/attach-fleet-node.d.ts.map +1 -1
  13. package/dist/cli/lib/attach-fleet-node.js +127 -19
  14. package/dist/cli/lib/attach-fleet-node.js.map +1 -1
  15. package/dist/cli/lib/attach-passthrough.d.ts +1 -0
  16. package/dist/cli/lib/attach-passthrough.d.ts.map +1 -1
  17. package/dist/cli/lib/attach-passthrough.js +5 -1
  18. package/dist/cli/lib/attach-passthrough.js.map +1 -1
  19. package/dist/cli/lib/attach-view.d.ts +3 -0
  20. package/dist/cli/lib/attach-view.d.ts.map +1 -1
  21. package/dist/cli/lib/attach-view.js +6 -1
  22. package/dist/cli/lib/attach-view.js.map +1 -1
  23. package/dist/cli/lib/attach.d.ts +2 -0
  24. package/dist/cli/lib/attach.d.ts.map +1 -1
  25. package/dist/cli/lib/attach.js +1 -1
  26. package/dist/cli/lib/attach.js.map +1 -1
  27. package/dist/cli/lib/broker-connection.d.ts +4 -0
  28. package/dist/cli/lib/broker-connection.d.ts.map +1 -1
  29. package/dist/cli/lib/broker-connection.js +1 -0
  30. package/dist/cli/lib/broker-connection.js.map +1 -1
  31. package/dist/cli/lib/node-provider-child.d.ts +2 -0
  32. package/dist/cli/lib/node-provider-child.d.ts.map +1 -1
  33. package/dist/cli/lib/node-provider-child.js +11 -0
  34. package/dist/cli/lib/node-provider-child.js.map +1 -1
  35. package/dist/index.cjs +342 -229
  36. package/package.json +9 -9
package/dist/index.cjs CHANGED
@@ -295,7 +295,7 @@ __export(index_exports, {
295
295
  module.exports = __toCommonJS(index_exports);
296
296
 
297
297
  // ../../node_modules/@relaycast/sdk/dist/version.js
298
- var SDK_VERSION = "8.0.6";
298
+ var SDK_VERSION = "8.1.0";
299
299
 
300
300
  // ../../node_modules/zod/v4/classic/external.js
301
301
  var external_exports = {};
@@ -14811,120 +14811,75 @@ function date4(params) {
14811
14811
  // ../../node_modules/zod/v4/classic/external.js
14812
14812
  config(en_default());
14813
14813
 
14814
- // ../../node_modules/@relaycast/types/dist/workspace.js
14815
- var WorkspaceSchema = external_exports.object({
14814
+ // ../../node_modules/@relaycast/types/dist/file.js
14815
+ var FileStatusSchema = external_exports.enum(["pending", "complete", "deleted"]);
14816
+ var FileRecordSchema = external_exports.object({
14816
14817
  id: external_exports.string(),
14817
- name: external_exports.string(),
14818
- system_prompt: external_exports.string().nullable(),
14819
- plan: external_exports.enum(["free", "pro", "enterprise"]),
14820
- created_at: external_exports.string(),
14821
- metadata: external_exports.record(external_exports.string(), external_exports.unknown()),
14822
- expires_at: external_exports.string().nullable().optional()
14823
- });
14824
- var CreateWorkspaceRequestSchema = external_exports.object({
14825
- name: external_exports.string(),
14826
- expires_in_seconds: external_exports.number().int().min(60).max(30 * 24 * 60 * 60).optional()
14827
- });
14828
- var CreateWorkspaceResponseSchema = external_exports.object({
14829
14818
  workspace_id: external_exports.string(),
14830
- api_key: external_exports.string().optional(),
14831
- created_at: external_exports.string(),
14832
- expires_at: external_exports.string().nullable().optional()
14833
- });
14834
- var WorkspaceLookupSchema = external_exports.object({
14835
- id: external_exports.string(),
14836
- name: external_exports.string(),
14819
+ uploaded_by: external_exports.string(),
14820
+ filename: external_exports.string(),
14821
+ content_type: external_exports.string(),
14822
+ size_bytes: external_exports.number(),
14823
+ storage_key: external_exports.string(),
14824
+ status: FileStatusSchema,
14837
14825
  created_at: external_exports.string()
14838
14826
  });
14839
- var UpdateWorkspaceRequestSchema = external_exports.object({
14840
- name: external_exports.string().optional(),
14841
- system_prompt: external_exports.string().nullable().optional()
14827
+ var UploadRequestSchema = external_exports.object({
14828
+ filename: external_exports.string(),
14829
+ content_type: external_exports.string(),
14830
+ size_bytes: external_exports.number()
14842
14831
  });
14843
- var SystemPromptSchema = external_exports.object({
14844
- prompt: external_exports.string(),
14845
- is_default: external_exports.boolean()
14832
+ var UploadResponseSchema = external_exports.object({
14833
+ id: external_exports.string(),
14834
+ upload_url: external_exports.string(),
14835
+ expires_at: external_exports.string()
14846
14836
  });
14847
- var SetSystemPromptRequestSchema = external_exports.object({
14848
- prompt: external_exports.string().nullable().optional(),
14849
- reset: external_exports.boolean().optional()
14837
+ var FileAttachmentSchema = external_exports.object({
14838
+ file_id: external_exports.string(),
14839
+ filename: external_exports.string(),
14840
+ content_type: external_exports.string(),
14841
+ size_bytes: external_exports.number()
14850
14842
  });
14851
- var ActivityItemSchema = external_exports.object({
14852
- type: external_exports.enum(["message", "dm"]),
14843
+ var FileInfoSchema = external_exports.object({
14853
14844
  id: external_exports.string(),
14854
- channel_id: external_exports.string().optional(),
14855
- channel_name: external_exports.string().optional(),
14856
- conversation_id: external_exports.string().optional(),
14857
- agent_name: external_exports.string(),
14858
- text: external_exports.string(),
14859
- created_at: external_exports.string()
14845
+ filename: external_exports.string(),
14846
+ content_type: external_exports.string(),
14847
+ size_bytes: external_exports.number(),
14848
+ status: FileStatusSchema.optional(),
14849
+ download_url: external_exports.string().nullable().optional(),
14850
+ uploaded_by: external_exports.string().optional(),
14851
+ created_at: external_exports.string().optional()
14860
14852
  });
14861
- var WorkspaceDmConversationSchema = external_exports.object({
14853
+ var CompleteUploadResponseSchema = external_exports.object({
14862
14854
  id: external_exports.string(),
14863
- channel_id: external_exports.string(),
14864
- type: external_exports.string(),
14865
- participants: external_exports.array(external_exports.string()),
14866
- last_message: external_exports.object({
14867
- text: external_exports.string(),
14868
- agent_id: external_exports.string(),
14869
- agent_name: external_exports.string(),
14870
- created_at: external_exports.string()
14871
- }).nullable(),
14872
- message_count: external_exports.number()
14873
- });
14874
- var TokenRotateResponseSchema = external_exports.object({
14875
- name: external_exports.string(),
14876
- token: external_exports.string()
14877
- });
14878
- var OBSERVER_SCOPES = [
14879
- "stream:read",
14880
- "messages:read",
14881
- "threads:read",
14882
- "dms:read",
14883
- "channels:read",
14884
- "search:read",
14885
- "agents:read",
14886
- "nodes:read",
14887
- "deliveries:read",
14888
- "activity:read",
14889
- "files:read",
14890
- "reactions:read"
14891
- ];
14892
- var ObserverTokenFiltersSchema = external_exports.object({
14893
- channel_ids: external_exports.array(external_exports.string()).optional(),
14894
- channel_names: external_exports.array(external_exports.string()).optional(),
14895
- include_dms: external_exports.boolean().optional(),
14896
- dm_conversation_ids: external_exports.array(external_exports.string()).optional(),
14897
- agent_ids: external_exports.array(external_exports.string()).optional(),
14898
- event_types: external_exports.array(external_exports.string()).optional(),
14899
- created_after: external_exports.string().optional()
14855
+ filename: external_exports.string(),
14856
+ content_type: external_exports.string(),
14857
+ size_bytes: external_exports.number(),
14858
+ download_url: external_exports.string()
14900
14859
  });
14901
- var CreateObserverTokenRequestSchema = external_exports.object({
14902
- name: external_exports.string(),
14903
- description: external_exports.string().nullable().optional(),
14904
- scopes: external_exports.array(external_exports.enum(OBSERVER_SCOPES)).min(1),
14905
- filters: ObserverTokenFiltersSchema.optional(),
14906
- expires_at: external_exports.string().nullable().optional()
14860
+
14861
+ // ../../node_modules/@relaycast/types/dist/reaction.js
14862
+ var ReactionSchema = external_exports.object({
14863
+ id: external_exports.string(),
14864
+ message_id: external_exports.string(),
14865
+ agent_id: external_exports.string(),
14866
+ emoji: external_exports.string(),
14867
+ created_at: external_exports.string()
14907
14868
  });
14908
- var UpdateObserverTokenRequestSchema = external_exports.object({
14909
- name: external_exports.string().optional(),
14910
- description: external_exports.string().nullable().optional(),
14911
- scopes: external_exports.array(external_exports.enum(OBSERVER_SCOPES)).min(1).optional(),
14912
- filters: ObserverTokenFiltersSchema.optional(),
14913
- expires_at: external_exports.string().nullable().optional()
14869
+ var AddReactionRequestSchema = external_exports.object({
14870
+ emoji: external_exports.string()
14914
14871
  });
14915
- var ObserverTokenSchema = external_exports.object({
14872
+ var AddedReactionSchema = external_exports.object({
14916
14873
  id: external_exports.string(),
14917
- name: external_exports.string(),
14918
- description: external_exports.string().nullable(),
14919
- scopes: external_exports.array(external_exports.enum(OBSERVER_SCOPES)),
14920
- filters: ObserverTokenFiltersSchema,
14921
- status: external_exports.enum(["active", "revoked"]),
14922
- expires_at: external_exports.string().nullable(),
14923
- created_at: external_exports.string(),
14924
- updated_at: external_exports.string().nullable(),
14925
- revoked_at: external_exports.string().nullable(),
14926
- last_used_at: external_exports.string().nullable(),
14927
- token: external_exports.string().optional()
14874
+ message_id: external_exports.string(),
14875
+ agent_name: external_exports.string(),
14876
+ emoji: external_exports.string(),
14877
+ created_at: external_exports.string()
14878
+ });
14879
+ var ReactionGroupSchema = external_exports.object({
14880
+ emoji: external_exports.string(),
14881
+ count: external_exports.number(),
14882
+ agents: external_exports.array(external_exports.string())
14928
14883
  });
14929
14884
 
14930
14885
  // ../../node_modules/@relaycast/types/dist/agent.js
@@ -15007,131 +14962,6 @@ var ReleaseAgentRequestSchema = external_exports.object({
15007
14962
  delete_agent: external_exports.boolean().optional()
15008
14963
  });
15009
14964
 
15010
- // ../../node_modules/@relaycast/types/dist/channel.js
15011
- var ChannelMemberInfoSchema = external_exports.object({
15012
- agent_id: external_exports.string(),
15013
- agent_name: external_exports.string(),
15014
- role: external_exports.enum(["owner", "member"]),
15015
- joined_at: external_exports.string(),
15016
- is_muted: external_exports.boolean().optional()
15017
- });
15018
- var ChannelSchema = external_exports.object({
15019
- id: external_exports.string(),
15020
- name: external_exports.string(),
15021
- topic: external_exports.string().nullable(),
15022
- metadata: external_exports.record(external_exports.string(), external_exports.unknown()).optional(),
15023
- created_by: external_exports.string().nullable().optional(),
15024
- created_at: external_exports.string(),
15025
- is_archived: external_exports.boolean().optional(),
15026
- member_count: external_exports.number().optional(),
15027
- members: external_exports.array(ChannelMemberInfoSchema).optional()
15028
- });
15029
- var ChannelMemberSchema = external_exports.object({
15030
- channel_id: external_exports.string(),
15031
- agent_id: external_exports.string(),
15032
- role: external_exports.enum(["owner", "member"]),
15033
- joined_at: external_exports.string(),
15034
- last_read_id: external_exports.string().nullable(),
15035
- is_muted: external_exports.boolean()
15036
- });
15037
- var CreateChannelRequestSchema = external_exports.object({
15038
- name: external_exports.string(),
15039
- topic: external_exports.string().nullable().optional(),
15040
- metadata: external_exports.record(external_exports.string(), external_exports.unknown()).optional()
15041
- });
15042
- var UpdateChannelRequestSchema = external_exports.object({
15043
- topic: external_exports.string().nullable().optional(),
15044
- metadata: external_exports.record(external_exports.string(), external_exports.unknown()).optional()
15045
- });
15046
- var InviteRequestSchema = external_exports.object({
15047
- agent_name: external_exports.string()
15048
- });
15049
- var JoinChannelResponseSchema = external_exports.object({
15050
- channel: external_exports.string(),
15051
- agent_id: external_exports.string(),
15052
- already_member: external_exports.boolean()
15053
- });
15054
- var InviteChannelResponseSchema = external_exports.object({
15055
- channel: external_exports.string(),
15056
- agent: external_exports.string()
15057
- });
15058
- var MuteChannelResponseSchema = external_exports.object({
15059
- channel: external_exports.string(),
15060
- agent_id: external_exports.string(),
15061
- muted: external_exports.boolean()
15062
- });
15063
-
15064
- // ../../node_modules/@relaycast/types/dist/file.js
15065
- var FileStatusSchema = external_exports.enum(["pending", "complete", "deleted"]);
15066
- var FileRecordSchema = external_exports.object({
15067
- id: external_exports.string(),
15068
- workspace_id: external_exports.string(),
15069
- uploaded_by: external_exports.string(),
15070
- filename: external_exports.string(),
15071
- content_type: external_exports.string(),
15072
- size_bytes: external_exports.number(),
15073
- storage_key: external_exports.string(),
15074
- status: FileStatusSchema,
15075
- created_at: external_exports.string()
15076
- });
15077
- var UploadRequestSchema = external_exports.object({
15078
- filename: external_exports.string(),
15079
- content_type: external_exports.string(),
15080
- size_bytes: external_exports.number()
15081
- });
15082
- var UploadResponseSchema = external_exports.object({
15083
- id: external_exports.string(),
15084
- upload_url: external_exports.string(),
15085
- expires_at: external_exports.string()
15086
- });
15087
- var FileAttachmentSchema = external_exports.object({
15088
- file_id: external_exports.string(),
15089
- filename: external_exports.string(),
15090
- content_type: external_exports.string(),
15091
- size_bytes: external_exports.number()
15092
- });
15093
- var FileInfoSchema = external_exports.object({
15094
- id: external_exports.string(),
15095
- filename: external_exports.string(),
15096
- content_type: external_exports.string(),
15097
- size_bytes: external_exports.number(),
15098
- status: FileStatusSchema.optional(),
15099
- download_url: external_exports.string().nullable().optional(),
15100
- uploaded_by: external_exports.string().optional(),
15101
- created_at: external_exports.string().optional()
15102
- });
15103
- var CompleteUploadResponseSchema = external_exports.object({
15104
- id: external_exports.string(),
15105
- filename: external_exports.string(),
15106
- content_type: external_exports.string(),
15107
- size_bytes: external_exports.number(),
15108
- download_url: external_exports.string()
15109
- });
15110
-
15111
- // ../../node_modules/@relaycast/types/dist/reaction.js
15112
- var ReactionSchema = external_exports.object({
15113
- id: external_exports.string(),
15114
- message_id: external_exports.string(),
15115
- agent_id: external_exports.string(),
15116
- emoji: external_exports.string(),
15117
- created_at: external_exports.string()
15118
- });
15119
- var AddReactionRequestSchema = external_exports.object({
15120
- emoji: external_exports.string()
15121
- });
15122
- var AddedReactionSchema = external_exports.object({
15123
- id: external_exports.string(),
15124
- message_id: external_exports.string(),
15125
- agent_name: external_exports.string(),
15126
- emoji: external_exports.string(),
15127
- created_at: external_exports.string()
15128
- });
15129
- var ReactionGroupSchema = external_exports.object({
15130
- emoji: external_exports.string(),
15131
- count: external_exports.number(),
15132
- agents: external_exports.array(external_exports.string())
15133
- });
15134
-
15135
14965
  // ../../node_modules/@relaycast/types/dist/message.js
15136
14966
  var HeaderBlockSchema = external_exports.object({
15137
14967
  type: external_exports.literal("header"),
@@ -15235,6 +15065,243 @@ var SearchMessageResultSchema = external_exports.object({
15235
15065
  created_at: external_exports.string(),
15236
15066
  relevance_score: external_exports.number()
15237
15067
  });
15068
+ var EffectiveMessageRetentionSchema = external_exports.discriminatedUnion("policy", [
15069
+ external_exports.object({
15070
+ policy: external_exports.literal("window"),
15071
+ message_ttl_days: external_exports.number().positive(),
15072
+ retained_since: external_exports.string(),
15073
+ source: external_exports.enum(["workspace_override", "deployment_default"])
15074
+ }),
15075
+ external_exports.object({
15076
+ policy: external_exports.literal("never_prune"),
15077
+ message_ttl_days: external_exports.null(),
15078
+ retained_since: external_exports.null(),
15079
+ source: external_exports.enum(["workspace_override", "deployment_default"])
15080
+ }),
15081
+ external_exports.object({
15082
+ policy: external_exports.literal("unknown"),
15083
+ message_ttl_days: external_exports.null(),
15084
+ retained_since: external_exports.null(),
15085
+ source: external_exports.literal("unknown"),
15086
+ reason: external_exports.enum(["boundary_unavailable", "workspace_unknown"])
15087
+ })
15088
+ ]);
15089
+ var SessionMessageSchema = external_exports.object({
15090
+ id: external_exports.string(),
15091
+ channel_id: external_exports.string(),
15092
+ channel_name: external_exports.string(),
15093
+ conversation_id: external_exports.string().nullable(),
15094
+ agent_id: external_exports.string(),
15095
+ agent_name: external_exports.string(),
15096
+ thread_id: external_exports.string().nullable(),
15097
+ text: external_exports.string(),
15098
+ blocks: external_exports.array(MessageBlockSchema).nullable(),
15099
+ metadata: external_exports.record(external_exports.string(), external_exports.unknown()),
15100
+ has_attachments: external_exports.boolean(),
15101
+ created_at: external_exports.string()
15102
+ });
15103
+ var SessionMessagesResultSchema = external_exports.object({
15104
+ session_ref: external_exports.string(),
15105
+ availability: external_exports.enum(["retained", "partial", "aged_out", "unknown"]),
15106
+ reason: external_exports.enum([
15107
+ "outside_retention_window",
15108
+ "boundary_unavailable",
15109
+ "workspace_unknown",
15110
+ "session_not_found",
15111
+ "query_failed",
15112
+ "response_invalid",
15113
+ "pre_migration_history_unknown"
15114
+ ]).optional(),
15115
+ retention: EffectiveMessageRetentionSchema,
15116
+ session_started_at: external_exports.string().nullable(),
15117
+ session_last_message_at: external_exports.string().nullable(),
15118
+ messages: external_exports.array(SessionMessageSchema),
15119
+ page: external_exports.object({
15120
+ next_cursor: external_exports.string().nullable(),
15121
+ has_more: external_exports.boolean()
15122
+ })
15123
+ }).superRefine((result, ctx) => {
15124
+ if (result.availability !== "unknown" && result.retention.policy === "unknown") {
15125
+ ctx.addIssue({
15126
+ code: "custom",
15127
+ path: ["availability"],
15128
+ message: "unknown retention cannot be presented as replayable"
15129
+ });
15130
+ }
15131
+ });
15132
+
15133
+ // ../../node_modules/@relaycast/types/dist/workspace.js
15134
+ var WorkspaceSchema = external_exports.object({
15135
+ id: external_exports.string(),
15136
+ name: external_exports.string(),
15137
+ system_prompt: external_exports.string().nullable(),
15138
+ plan: external_exports.enum(["free", "pro", "enterprise"]),
15139
+ created_at: external_exports.string(),
15140
+ metadata: external_exports.record(external_exports.string(), external_exports.unknown()),
15141
+ effective_retention: external_exports.object({
15142
+ messages: EffectiveMessageRetentionSchema
15143
+ }).optional(),
15144
+ expires_at: external_exports.string().nullable().optional()
15145
+ });
15146
+ var CreateWorkspaceRequestSchema = external_exports.object({
15147
+ name: external_exports.string(),
15148
+ expires_in_seconds: external_exports.number().int().min(60).max(30 * 24 * 60 * 60).optional()
15149
+ });
15150
+ var CreateWorkspaceResponseSchema = external_exports.object({
15151
+ workspace_id: external_exports.string(),
15152
+ api_key: external_exports.string().optional(),
15153
+ created_at: external_exports.string(),
15154
+ expires_at: external_exports.string().nullable().optional()
15155
+ });
15156
+ var WorkspaceLookupSchema = external_exports.object({
15157
+ id: external_exports.string(),
15158
+ name: external_exports.string(),
15159
+ created_at: external_exports.string()
15160
+ });
15161
+ var UpdateWorkspaceRequestSchema = external_exports.object({
15162
+ name: external_exports.string().optional(),
15163
+ system_prompt: external_exports.string().nullable().optional()
15164
+ });
15165
+ var SystemPromptSchema = external_exports.object({
15166
+ prompt: external_exports.string(),
15167
+ is_default: external_exports.boolean()
15168
+ });
15169
+ var SetSystemPromptRequestSchema = external_exports.object({
15170
+ prompt: external_exports.string().nullable().optional(),
15171
+ reset: external_exports.boolean().optional()
15172
+ });
15173
+ var ActivityItemSchema = external_exports.object({
15174
+ type: external_exports.enum(["message", "dm"]),
15175
+ id: external_exports.string(),
15176
+ channel_id: external_exports.string().optional(),
15177
+ channel_name: external_exports.string().optional(),
15178
+ conversation_id: external_exports.string().optional(),
15179
+ agent_name: external_exports.string(),
15180
+ text: external_exports.string(),
15181
+ created_at: external_exports.string()
15182
+ });
15183
+ var WorkspaceDmConversationSchema = external_exports.object({
15184
+ id: external_exports.string(),
15185
+ channel_id: external_exports.string(),
15186
+ type: external_exports.string(),
15187
+ participants: external_exports.array(external_exports.string()),
15188
+ last_message: external_exports.object({
15189
+ text: external_exports.string(),
15190
+ agent_id: external_exports.string(),
15191
+ agent_name: external_exports.string(),
15192
+ created_at: external_exports.string()
15193
+ }).nullable(),
15194
+ message_count: external_exports.number()
15195
+ });
15196
+ var TokenRotateResponseSchema = external_exports.object({
15197
+ name: external_exports.string(),
15198
+ token: external_exports.string()
15199
+ });
15200
+ var OBSERVER_SCOPES = [
15201
+ "stream:read",
15202
+ "messages:read",
15203
+ "threads:read",
15204
+ "dms:read",
15205
+ "channels:read",
15206
+ "search:read",
15207
+ "agents:read",
15208
+ "nodes:read",
15209
+ "deliveries:read",
15210
+ "activity:read",
15211
+ "files:read",
15212
+ "reactions:read"
15213
+ ];
15214
+ var ObserverTokenFiltersSchema = external_exports.object({
15215
+ channel_ids: external_exports.array(external_exports.string()).optional(),
15216
+ channel_names: external_exports.array(external_exports.string()).optional(),
15217
+ include_dms: external_exports.boolean().optional(),
15218
+ dm_conversation_ids: external_exports.array(external_exports.string()).optional(),
15219
+ agent_ids: external_exports.array(external_exports.string()).optional(),
15220
+ event_types: external_exports.array(external_exports.string()).optional(),
15221
+ created_after: external_exports.string().optional()
15222
+ });
15223
+ var CreateObserverTokenRequestSchema = external_exports.object({
15224
+ name: external_exports.string(),
15225
+ description: external_exports.string().nullable().optional(),
15226
+ scopes: external_exports.array(external_exports.enum(OBSERVER_SCOPES)).min(1),
15227
+ filters: ObserverTokenFiltersSchema.optional(),
15228
+ expires_at: external_exports.string().nullable().optional()
15229
+ });
15230
+ var UpdateObserverTokenRequestSchema = external_exports.object({
15231
+ name: external_exports.string().optional(),
15232
+ description: external_exports.string().nullable().optional(),
15233
+ scopes: external_exports.array(external_exports.enum(OBSERVER_SCOPES)).min(1).optional(),
15234
+ filters: ObserverTokenFiltersSchema.optional(),
15235
+ expires_at: external_exports.string().nullable().optional()
15236
+ });
15237
+ var ObserverTokenSchema = external_exports.object({
15238
+ id: external_exports.string(),
15239
+ name: external_exports.string(),
15240
+ description: external_exports.string().nullable(),
15241
+ scopes: external_exports.array(external_exports.enum(OBSERVER_SCOPES)),
15242
+ filters: ObserverTokenFiltersSchema,
15243
+ status: external_exports.enum(["active", "revoked"]),
15244
+ expires_at: external_exports.string().nullable(),
15245
+ created_at: external_exports.string(),
15246
+ updated_at: external_exports.string().nullable(),
15247
+ revoked_at: external_exports.string().nullable(),
15248
+ last_used_at: external_exports.string().nullable(),
15249
+ token: external_exports.string().optional()
15250
+ });
15251
+
15252
+ // ../../node_modules/@relaycast/types/dist/channel.js
15253
+ var ChannelMemberInfoSchema = external_exports.object({
15254
+ agent_id: external_exports.string(),
15255
+ agent_name: external_exports.string(),
15256
+ role: external_exports.enum(["owner", "member"]),
15257
+ joined_at: external_exports.string(),
15258
+ is_muted: external_exports.boolean().optional()
15259
+ });
15260
+ var ChannelSchema = external_exports.object({
15261
+ id: external_exports.string(),
15262
+ name: external_exports.string(),
15263
+ topic: external_exports.string().nullable(),
15264
+ metadata: external_exports.record(external_exports.string(), external_exports.unknown()).optional(),
15265
+ created_by: external_exports.string().nullable().optional(),
15266
+ created_at: external_exports.string(),
15267
+ is_archived: external_exports.boolean().optional(),
15268
+ member_count: external_exports.number().optional(),
15269
+ members: external_exports.array(ChannelMemberInfoSchema).optional()
15270
+ });
15271
+ var ChannelMemberSchema = external_exports.object({
15272
+ channel_id: external_exports.string(),
15273
+ agent_id: external_exports.string(),
15274
+ role: external_exports.enum(["owner", "member"]),
15275
+ joined_at: external_exports.string(),
15276
+ last_read_id: external_exports.string().nullable(),
15277
+ is_muted: external_exports.boolean()
15278
+ });
15279
+ var CreateChannelRequestSchema = external_exports.object({
15280
+ name: external_exports.string(),
15281
+ topic: external_exports.string().nullable().optional(),
15282
+ metadata: external_exports.record(external_exports.string(), external_exports.unknown()).optional()
15283
+ });
15284
+ var UpdateChannelRequestSchema = external_exports.object({
15285
+ topic: external_exports.string().nullable().optional(),
15286
+ metadata: external_exports.record(external_exports.string(), external_exports.unknown()).optional()
15287
+ });
15288
+ var InviteRequestSchema = external_exports.object({
15289
+ agent_name: external_exports.string()
15290
+ });
15291
+ var JoinChannelResponseSchema = external_exports.object({
15292
+ channel: external_exports.string(),
15293
+ agent_id: external_exports.string(),
15294
+ already_member: external_exports.boolean()
15295
+ });
15296
+ var InviteChannelResponseSchema = external_exports.object({
15297
+ channel: external_exports.string(),
15298
+ agent: external_exports.string()
15299
+ });
15300
+ var MuteChannelResponseSchema = external_exports.object({
15301
+ channel: external_exports.string(),
15302
+ agent_id: external_exports.string(),
15303
+ muted: external_exports.boolean()
15304
+ });
15238
15305
 
15239
15306
  // ../../node_modules/@relaycast/types/dist/receipt.js
15240
15307
  var ReadReceiptSchema = external_exports.object({
@@ -16021,6 +16088,19 @@ var FleetProviderIdentitySchema = external_exports.object({
16021
16088
  name: external_exports.string(),
16022
16089
  instance_id: external_exports.string()
16023
16090
  }).strict();
16091
+ var FleetRepoKeySchema = external_exports.string().min(3).max(201).regex(/^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/, "repo key must use owner/name with no filesystem path or URL").refine((repoKey) => repoKey.split("/").every((segment) => segment !== "." && segment !== ".."), "repo key segments cannot be . or ..");
16092
+ var FleetLegacyRepoTagValueSchema = external_exports.string().min(1).max(201).regex(/^[A-Za-z0-9_.-]+(?:\/[A-Za-z0-9_.-]+)?$/, "legacy repo tag must use name or owner/name with no filesystem path or URL").refine((repoKey) => repoKey.split("/").every((segment) => segment !== "." && segment !== ".."), "legacy repo tag segments cannot be . or ..");
16093
+ var FleetNodeTagSchema = external_exports.string().superRefine((tag, ctx) => {
16094
+ if (!tag.startsWith("repo:"))
16095
+ return;
16096
+ const parsed = FleetLegacyRepoTagValueSchema.safeParse(tag.slice("repo:".length));
16097
+ if (!parsed.success) {
16098
+ ctx.addIssue({
16099
+ code: "custom",
16100
+ message: "repo tag must use repo:<name> or repo:<owner/name> with no filesystem path or URL"
16101
+ });
16102
+ }
16103
+ });
16024
16104
  var FleetCapabilityAcceptanceSchema = external_exports.object({
16025
16105
  name: external_exports.string(),
16026
16106
  kind: FleetCapabilityKindSchema,
@@ -16050,7 +16130,10 @@ var FleetNodeRegisterMessageSchema = external_exports.object({
16050
16130
  capabilities: external_exports.array(FleetCapabilitySchema),
16051
16131
  // Provider-level capacity; the node figure is the aggregate across providers.
16052
16132
  max_agents: external_exports.number().int().nonnegative(),
16053
- tags: external_exports.array(external_exports.string()),
16133
+ tags: external_exports.array(FleetNodeTagSchema),
16134
+ // Placement-safe repository identities. The engine persists these as
16135
+ // `repo:<owner/name>` tags so existing node roster readers can consume them.
16136
+ repo_keys: external_exports.array(FleetRepoKeySchema).optional(),
16054
16137
  version: external_exports.string(),
16055
16138
  machine_id: external_exports.string().optional(),
16056
16139
  // Absent and null both mean a fresh node with no resume cursor.
@@ -17314,6 +17397,7 @@ var AgentClient = class {
17314
17397
  text,
17315
17398
  ...opts?.attachments ? { attachments: opts.attachments } : {},
17316
17399
  ...opts?.blocks ? { blocks: opts.blocks } : {},
17400
+ ...opts?.data !== void 0 ? { data: opts.data } : {},
17317
17401
  mode: opts?.mode ?? "wait"
17318
17402
  };
17319
17403
  return this.client.post(`/v1/channels/${encodeURIComponent(name)}/messages`, body, idempotencyHeaders(opts));
@@ -17338,7 +17422,8 @@ var AgentClient = class {
17338
17422
  async reply(id, text, opts) {
17339
17423
  const body = {
17340
17424
  text,
17341
- ...opts?.blocks ? { blocks: opts.blocks } : {}
17425
+ ...opts?.blocks ? { blocks: opts.blocks } : {},
17426
+ ...opts?.data !== void 0 ? { data: opts.data } : {}
17342
17427
  };
17343
17428
  return this.client.post(`/v1/messages/${encodeURIComponent(id)}/replies`, body, idempotencyHeaders(opts));
17344
17429
  }
@@ -17384,6 +17469,7 @@ var AgentClient = class {
17384
17469
  sendMessage: (conversationId, text, opts) => this.client.post(`/v1/dm/${encodeURIComponent(conversationId)}/messages`, {
17385
17470
  text,
17386
17471
  ...opts?.attachments ? { attachments: opts.attachments } : {},
17472
+ ...opts?.data !== void 0 ? { data: opts.data } : {},
17387
17473
  mode: opts?.mode ?? "wait"
17388
17474
  }, idempotencyHeaders(opts)),
17389
17475
  addParticipant: (conversationId, agent) => this.client.post(`/v1/dm/${encodeURIComponent(conversationId)}/participants`, { agentName: agent }),
@@ -18249,7 +18335,34 @@ var RelayCast = class _RelayCast {
18249
18335
  query.after = opts.after;
18250
18336
  return this.client.get(`/v1/messages/${encodeURIComponent(id)}/replies`, query);
18251
18337
  },
18252
- reactions: (id) => this.client.get(`/v1/messages/${encodeURIComponent(id)}/reactions`)
18338
+ reactions: (id) => this.client.get(`/v1/messages/${encodeURIComponent(id)}/reactions`),
18339
+ bySessionRef: async (sessionRef, opts) => {
18340
+ const query = {};
18341
+ if (opts?.limit != null)
18342
+ query.limit = String(opts.limit);
18343
+ if (opts?.after)
18344
+ query.after = opts.after;
18345
+ try {
18346
+ return await this.client.get(`/v1/sessions/${encodeURIComponent(sessionRef)}/messages`, query, { schema: SessionMessagesResultSchema });
18347
+ } catch (error51) {
18348
+ return {
18349
+ sessionRef,
18350
+ availability: "unknown",
18351
+ reason: error51 instanceof ZodError ? "response_invalid" : "query_failed",
18352
+ retention: {
18353
+ policy: "unknown",
18354
+ messageTtlDays: null,
18355
+ retainedSince: null,
18356
+ source: "unknown",
18357
+ reason: "boundary_unavailable"
18358
+ },
18359
+ sessionStartedAt: null,
18360
+ sessionLastMessageAt: null,
18361
+ messages: [],
18362
+ page: { nextCursor: null, hasMore: false }
18363
+ };
18364
+ }
18365
+ }
18253
18366
  };
18254
18367
  agents = {
18255
18368
  register: async (data) => {