replicas-cli 0.3.11 → 0.3.13

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 +25 -5
  2. package/package.json +1 -1
package/dist/index.cjs CHANGED
@@ -22876,6 +22876,7 @@ var CODEX_ITEM_PARTIAL_EVENT_TYPE = "codex-item-partial";
22876
22876
  var CODEX_TURN_EVENT_TYPE = "codex-turn";
22877
22877
  var CODEX_QUOTA_STATUS_EVENT_TYPE = "codex-quota-status";
22878
22878
  var CHAT_INTERRUPTED_EVENT_TYPE = "replicas-interrupted";
22879
+ var CHAT_MESSAGE_REJECTED_EVENT_TYPE = "replicas-message-rejected";
22879
22880
  var AUTH_FALLBACK_EVENT_TYPE = "auth-fallback";
22880
22881
  function coerceAuthFallbackPayload(payload) {
22881
22882
  const { provider: provider2, reason, exhaustedMethod, exhaustedScope, candidateMethod, candidateScope, status, detail } = payload;
@@ -26034,6 +26035,7 @@ var REPLICAS_MCP_TOOLS = {
26034
26035
  createAutomation: "create_automation",
26035
26036
  spawn: "spawn_workspace",
26036
26037
  relay: "relay_to_workspace",
26038
+ listWorkspaces: "list_workspaces",
26037
26039
  linearStart: "start_linear_session",
26038
26040
  linearSessionIntent: "register_linear_session_intent",
26039
26041
  listChannelSettings: "list_channel_settings",
@@ -27981,7 +27983,7 @@ function parseDisplayMessages(events, agentType, options = {}) {
27981
27983
  else reconciledEvents.push(message2);
27982
27984
  }
27983
27985
  if (options.filter === false) return reconciledEvents;
27984
- return applyAuthFallbackNotices(
27986
+ return applyEngineNotices(
27985
27987
  applyInterruptions(filterDisplayMessages(reconciledEvents, agentType), events),
27986
27988
  events
27987
27989
  );
@@ -28022,9 +28024,18 @@ function applyInterruptions(messages, events) {
28022
28024
  }
28023
28025
  return finalized;
28024
28026
  }
28025
- function applyAuthFallbackNotices(messages, events) {
28027
+ function applyEngineNotices(messages, events) {
28026
28028
  const notices = [];
28027
28029
  events.forEach((event, index) => {
28030
+ if (event.type === CHAT_MESSAGE_REJECTED_EVENT_TYPE) {
28031
+ notices.push({
28032
+ id: `message-rejected-${event.timestamp}-${index}`,
28033
+ type: "error",
28034
+ message: typeof event.payload.message === "string" ? event.payload.message : "Message was rejected",
28035
+ timestamp: event.timestamp
28036
+ });
28037
+ return;
28038
+ }
28028
28039
  if (event.type !== AUTH_FALLBACK_EVENT_TYPE) return;
28029
28040
  const payload = coerceAuthFallbackPayload(event.payload);
28030
28041
  if (!payload) return;
@@ -28370,7 +28381,7 @@ var headlessAgentRequestSchema = external_exports.object({
28370
28381
  });
28371
28382
 
28372
28383
  // ../shared/src/cli-version.ts
28373
- var CLI_VERSION = "0.3.11";
28384
+ var CLI_VERSION = "0.3.13";
28374
28385
 
28375
28386
  // ../shared/src/version.ts
28376
28387
  function compareVersions(v1, v2) {
@@ -28470,8 +28481,17 @@ var mothershipSlackRelayRequestSchema = external_exports.object({
28470
28481
  channel_id: slackChannelIdSchema,
28471
28482
  thread_ts: slackThreadTsSchema,
28472
28483
  message: external_exports.string().describe("The follow-up to deliver, combining every fresh message that belongs to this update."),
28473
- user_id: external_exports.string().optional().describe("Slack user id of the follow-up's author (the envelope's `user_id`), so it is attributed to them. Defaults to the thread's original requester."),
28474
- queue: external_exports.boolean().optional().describe("Set true only when the person explicitly asked for this to happen after the current task finishes. Delivers behind the active turn instead of interrupting it.")
28484
+ user_id: external_exports.string().optional().describe("Slack user id of the follow-up's author (the envelope's `user_id`), so it is attributed to them. Defaults to the thread's original requester. Required with `workspace_id`."),
28485
+ queue: external_exports.boolean().optional().describe("Set true only when the person explicitly asked for this to happen after the current task finishes. Delivers behind the active turn instead of interrupting it."),
28486
+ workspace_id: external_exports.string().optional().describe(`Existing workspace id, from \`${REPLICAS_MCP_TOOLS.listWorkspaces}\` or a workspace link in the thread, to bind a thread without a workspace to before relaying. The author must be able to see it. Omit to relay into the thread's own workspace.`),
28487
+ message_ts: external_exports.string().optional().describe("Timestamp of the Slack message that led to this relay (the envelope's `message_ts`). Required with `workspace_id`; the server verifies this message and its author.")
28488
+ });
28489
+ var mothershipListWorkspacesRequestSchema = external_exports.object({
28490
+ channel_id: slackChannelIdSchema,
28491
+ thread_ts: slackThreadTsSchema,
28492
+ message_ts: external_exports.string().describe("The envelope's `message_ts`. The server verifies this message and its author."),
28493
+ user_id: external_exports.string().describe("Slack user id of that message's author (the envelope's `user_id`). Only workspaces they can see are listed."),
28494
+ query: external_exports.string().trim().min(1).optional().describe("Case-insensitive text to match against workspace names and pull request URLs.")
28475
28495
  });
28476
28496
  var mothershipSlackConfirmationSchema = external_exports.object({
28477
28497
  confirmation_channel_id: external_exports.string().describe("`channel_id` from the envelope of the Slack message that asked for or accepted this."),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "replicas-cli",
3
- "version": "0.3.11",
3
+ "version": "0.3.13",
4
4
  "description": "CLI for managing Replicas workspaces - SSH into cloud dev environments with automatic port forwarding",
5
5
  "main": "dist/index.cjs",
6
6
  "bin": {