@meistrari/remy-cli 1.10.1 → 1.12.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 (2) hide show
  1. package/dist/remy.js +67 -6
  2. package/package.json +1 -1
package/dist/remy.js CHANGED
@@ -32478,6 +32478,32 @@ var usageAgentEventSchema = agentTurnEventBaseSchema.extend({
32478
32478
  usage: agentUsageSchema
32479
32479
  }).strict()
32480
32480
  }).strict();
32481
+ var agentContextWindowSchema = zod_default2.discriminatedUnion("status", [
32482
+ zod_default2.object({
32483
+ status: zod_default2.literal("unknown")
32484
+ }).strict(),
32485
+ zod_default2.object({
32486
+ status: zod_default2.literal("known"),
32487
+ capacityTokens: zod_default2.number().int().positive().max(Number.MAX_SAFE_INTEGER),
32488
+ remainingPercent: zod_default2.number().int().min(0).max(100)
32489
+ }).strict()
32490
+ ]);
32491
+ var agentContextSnapshotSchema = zod_default2.discriminatedUnion("status", [
32492
+ zod_default2.object({
32493
+ status: zod_default2.literal("unknown")
32494
+ }).strict(),
32495
+ zod_default2.object({
32496
+ status: zod_default2.literal("observed"),
32497
+ usedTokens: zod_default2.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER),
32498
+ window: agentContextWindowSchema
32499
+ }).strict()
32500
+ ]);
32501
+ var contextUpdatedAgentEventSchema = agentTurnEventBaseSchema.extend({
32502
+ type: zod_default2.literal("context.updated"),
32503
+ payload: zod_default2.object({
32504
+ snapshot: agentContextSnapshotSchema
32505
+ }).strict()
32506
+ }).strict();
32481
32507
  var contextCompactionStartedAgentEventSchema = agentTurnEventBaseSchema.extend({
32482
32508
  type: zod_default2.literal("context.compaction.started"),
32483
32509
  payload: zod_default2.object({
@@ -32546,6 +32572,7 @@ var agentEventSchema = zod_default2.discriminatedUnion("type", [
32546
32572
  subagentProgressAgentEventSchema,
32547
32573
  subagentEndedAgentEventSchema,
32548
32574
  usageAgentEventSchema,
32575
+ contextUpdatedAgentEventSchema,
32549
32576
  contextCompactionStartedAgentEventSchema,
32550
32577
  contextCompactionCompletedAgentEventSchema,
32551
32578
  userInputRequestedAgentEventSchema,
@@ -32713,7 +32740,8 @@ var appendSessionMessageInputSchema = exports_external2.strictObject({
32713
32740
  sessionId: exports_external2.string().min(1),
32714
32741
  text: exports_external2.string().refine((value) => value.trim().length > 0),
32715
32742
  fileIds: exports_external2.array(exports_external2.string().min(1)),
32716
- idempotencyKey: exports_external2.string().min(1).max(128)
32743
+ idempotencyKey: exports_external2.string().min(1).max(128),
32744
+ mode: exports_external2.enum(["next", "steer"]).optional()
32717
32745
  });
32718
32746
  var appendSessionMessageResponseSchema = exports_external2.strictObject({
32719
32747
  message: sessionMessageSchema
@@ -32725,6 +32753,13 @@ var interruptSessionResponseSchema = exports_external2.strictObject({
32725
32753
  type: exports_external2.literal("agent.interrupt")
32726
32754
  })
32727
32755
  });
32756
+ var withdrawSessionMessageResponseSchema = exports_external2.strictObject({
32757
+ command: exports_external2.strictObject({
32758
+ id: exports_external2.string(),
32759
+ sequence: exports_external2.number().int().positive(),
32760
+ type: exports_external2.literal("agent.withdraw-command")
32761
+ })
32762
+ });
32728
32763
  var sessionDetailResponseSchema = exports_external2.object({
32729
32764
  id: exports_external2.string(),
32730
32765
  status: sessionStatusSchema,
@@ -32839,7 +32874,8 @@ async function appendSessionMessage({
32839
32874
  },
32840
32875
  body: JSON.stringify({
32841
32876
  text: parsedInput.text,
32842
- file_ids: parsedInput.fileIds
32877
+ file_ids: parsedInput.fileIds,
32878
+ ...parsedInput.mode === undefined ? {} : { mode: parsedInput.mode }
32843
32879
  })
32844
32880
  });
32845
32881
  return parseAppendSessionMessageResponse(await parseJson2(response, "Session message append response was not valid JSON."));
@@ -32973,7 +33009,10 @@ var retainedSessionEventSchema = exports_external2.object({
32973
33009
  occurred_at: exports_external2.iso.datetime(),
32974
33010
  recorded_at: exports_external2.iso.datetime(),
32975
33011
  event: retainedEventBodySchema,
32976
- artifact: sessionArtifactEventSchema.optional()
33012
+ artifact: sessionArtifactEventSchema.optional(),
33013
+ context: exports_external2.object({
33014
+ main: agentContextSnapshotSchema
33015
+ }).strict().optional()
32977
33016
  }).strict();
32978
33017
  var ephemeralSessionEventSchema = exports_external2.object({
32979
33018
  occurred_at: exports_external2.iso.datetime(),
@@ -33801,6 +33840,9 @@ var wrappedSubagentEndedAgentEventSchema = subagentEndedAgentEventSchema.extend(
33801
33840
  var wrappedUsageAgentEventSchema = usageAgentEventSchema.extend({
33802
33841
  type: zod_default2.literal("agent.usage")
33803
33842
  }).strict();
33843
+ var wrappedContextUpdatedAgentEventSchema = contextUpdatedAgentEventSchema.extend({
33844
+ type: zod_default2.literal("agent.context.updated")
33845
+ }).strict();
33804
33846
  var wrappedContextCompactionStartedAgentEventSchema = contextCompactionStartedAgentEventSchema.extend({
33805
33847
  type: zod_default2.literal("agent.context.compaction.started")
33806
33848
  }).strict();
@@ -33838,6 +33880,7 @@ var wrappedAgentEventSchema = zod_default2.discriminatedUnion("type", [
33838
33880
  wrappedSubagentProgressAgentEventSchema,
33839
33881
  wrappedSubagentEndedAgentEventSchema,
33840
33882
  wrappedUsageAgentEventSchema,
33883
+ wrappedContextUpdatedAgentEventSchema,
33841
33884
  wrappedContextCompactionStartedAgentEventSchema,
33842
33885
  wrappedContextCompactionCompletedAgentEventSchema,
33843
33886
  wrappedUserInputRequestedAgentEventSchema,
@@ -33941,7 +33984,11 @@ function createSessionViewState({ detail, activeMessageId }) {
33941
33984
  workTurnBaselines: {},
33942
33985
  messageTurns: {},
33943
33986
  retainedTurnStarts: {},
33944
- retainedTurnEnds: {}
33987
+ retainedTurnEnds: {},
33988
+ context: {
33989
+ snapshot: { status: "unknown" },
33990
+ through: 0
33991
+ }
33945
33992
  };
33946
33993
  }
33947
33994
  function updateSessionDetail({ state, detail }) {
@@ -33972,8 +34019,11 @@ function projectRemoteSessionEvent({ state, frame }) {
33972
34019
  retainedEventId: frame.id,
33973
34020
  artifact: frame.data.artifact
33974
34021
  });
34022
+ const annotation = frame.data.context;
34023
+ const context = annotation && frame.data.history_sequence > projected.context.through ? { snapshot: annotation.main, through: frame.data.history_sequence } : projected.context;
33975
34024
  return {
33976
34025
  ...projected,
34026
+ context,
33977
34027
  lastRetainedEventId: frame.id,
33978
34028
  seenRetainedEventIds: { ...projected.seenRetainedEventIds, [frame.id]: true }
33979
34029
  };
@@ -34134,6 +34184,8 @@ function projectDurableAgentEvent({ state, event, occurredAt, retainedEventId })
34134
34184
  const agentEvent = parseDurableAgentEvent(event);
34135
34185
  if (agentEvent.type === "agent.message.ended")
34136
34186
  return projectAgentMessageEnded({ state, event: agentEvent, occurredAt });
34187
+ if (agentEvent.type === "agent.context.updated")
34188
+ return state;
34137
34189
  if (agentEvent.type === "agent.work.observed" && agentEvent.actor.type === "main")
34138
34190
  return projectAgentWorkObserved({ state, event: agentEvent, occurredAt });
34139
34191
  const stateWithTurnStart = agentEvent.type === "agent.turn.started" && agentEvent.actor.type === "main" ? {
@@ -37368,6 +37420,7 @@ function renderStatusBand({ state, working, elapsedMs, stopState, lifecycleReque
37368
37420
  const elapsed = (working || stopping) && elapsedMs !== undefined && elapsedMs > 0 ? ` ${formatElapsed(elapsedMs)}` : "";
37369
37421
  const connection = state.connectionStatus === "connected" ? dim4(fg6(PALETTE.dimText)("connected")) : fg6(PALETTE.approvalQuestion)("reconnecting\u2026");
37370
37422
  const sessionLabel = state.sessionNumber !== undefined ? `Session #${state.sessionNumber}` : `Session ${state.sessionId}`;
37423
+ const context = renderContextStatus(state.context.snapshot);
37371
37424
  const pullRequest = state.pullRequest;
37372
37425
  return new StyledText5([
37373
37426
  fg6(presentation.color)("\u25CF "),
@@ -37376,12 +37429,19 @@ function renderStatusBand({ state, working, elapsedMs, stopState, lifecycleReque
37376
37429
  bold4(fg6(presentation.color)(`${presentation.label}${elapsed}`)),
37377
37430
  dim4(fg6(PALETTE.dimText)(" \xB7 ")),
37378
37431
  connection,
37432
+ ...context ? [dim4(fg6(PALETTE.dimText)(` \xB7 ${context}`))] : [],
37379
37433
  ...pullRequest ? [
37380
37434
  dim4(fg6(PALETTE.dimText)(" \xB7 ")),
37381
37435
  bold4(fg6(statusColor(pullRequest.status))(`PR #${pullRequest.number} \xB7 ${pullRequest.draft ? "Draft" : sessionStatusLabel(pullRequest.status)}`))
37382
37436
  ] : []
37383
37437
  ]);
37384
37438
  }
37439
+ function renderContextStatus(snapshot) {
37440
+ if (snapshot.status === "unknown")
37441
+ return;
37442
+ const usedTokens = snapshot.usedTokens.toLocaleString("en-US");
37443
+ return snapshot.window.status === "known" ? `Context ${snapshot.window.remainingPercent}% left \xB7 ${usedTokens} used` : `Context ${usedTokens} used`;
37444
+ }
37385
37445
  function renderTerminalSessionBand({ aggregateStatus }) {
37386
37446
  const status = sessionStatusLabel(aggregateStatus).toLowerCase();
37387
37447
  return joinStyled([
@@ -37784,7 +37844,7 @@ var compactMarkRows = 9;
37784
37844
  var compactMinWidth = 48;
37785
37845
  var compactMinHeight = 20;
37786
37846
  var markBrightnessGain = 4.2;
37787
- var remyCliVersion = "1.10.1";
37847
+ var remyCliVersion = "1.12.0";
37788
37848
  async function showRemySplash({
37789
37849
  createRenderer = createRemyRenderer,
37790
37850
  durationMs = splashDurationMs,
@@ -39094,7 +39154,8 @@ async function runAttachedSession({
39094
39154
  sessionId,
39095
39155
  text: submission.text,
39096
39156
  fileIds: submission.attachments.map((attachment) => attachment.fileId),
39097
- idempotencyKey: submission.idempotencyKey
39157
+ idempotencyKey: submission.idempotencyKey,
39158
+ mode: "steer"
39098
39159
  }
39099
39160
  });
39100
39161
  await controller.recordActiveMessage(result.message.id);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meistrari/remy-cli",
3
- "version": "1.10.1",
3
+ "version": "1.12.0",
4
4
  "description": "Remy, the Coding Agent terminal client.",
5
5
  "type": "module",
6
6
  "bin": {