@moxt-ai/mobius 0.0.164 → 0.0.166

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.
package/dist/cli.js CHANGED
@@ -3381,7 +3381,7 @@ var program = new Command();
3381
3381
  // package.json
3382
3382
  var package_default = {
3383
3383
  name: "@moxt-ai/mobius",
3384
- version: "0.0.164",
3384
+ version: "0.0.166",
3385
3385
  description: "Mobius CLI for pairing and running local AI agent services.",
3386
3386
  type: "module",
3387
3387
  bin: {
@@ -24873,7 +24873,7 @@ var threadSettingsUpdatedSchema = external_exports.object({
24873
24873
 
24874
24874
  // src/acp/codex/app-server-client.ts
24875
24875
  var INITIALIZE_TIMEOUT_MILLISECONDS = 3e4;
24876
- var OUTPUT_LIMIT_BYTES = 32 * 1024 * 1024;
24876
+ var MESSAGE_OUTPUT_LIMIT_BYTES = 32 * 1024 * 1024;
24877
24877
  var CodexAppServerError = class extends AcpExecutionError {
24878
24878
  constructor(code, message, options = {}) {
24879
24879
  super(message, options, code);
@@ -24890,8 +24890,8 @@ var CodexAppServerClient = class {
24890
24890
  kind: "open"
24891
24891
  };
24892
24892
  #nextRequestId = 1;
24893
- #pendingBuffer = "";
24894
- #receivedBytes = 0;
24893
+ #pendingBytes = 0;
24894
+ #pendingFragments = [];
24895
24895
  constructor(options) {
24896
24896
  this.#handlers = options.handlers;
24897
24897
  this.#child = spawn2(options.command, ["app-server"], {
@@ -24967,25 +24967,39 @@ var CodexAppServerClient = class {
24967
24967
  return;
24968
24968
  }
24969
24969
  try {
24970
- this.#receivedBytes += Buffer.byteLength(chunk);
24971
- if (this.#receivedBytes > OUTPUT_LIMIT_BYTES) {
24972
- throw new CodexAppServerError(
24973
- "codex_app_server_output_limit",
24974
- "The Codex app-server produced too much output"
24975
- );
24976
- }
24977
- this.#pendingBuffer += chunk;
24978
- let newline = this.#pendingBuffer.indexOf("\n");
24970
+ let cursor = 0;
24971
+ let newline = chunk.indexOf("\n");
24979
24972
  while (newline >= 0) {
24980
- const line = this.#pendingBuffer.slice(0, newline);
24981
- this.#pendingBuffer = this.#pendingBuffer.slice(newline + 1);
24982
- newline = this.#pendingBuffer.indexOf("\n");
24973
+ const fragment = chunk.slice(cursor, newline);
24974
+ const lineBytes = this.#pendingBytes + Buffer.byteLength(fragment);
24975
+ if (lineBytes > MESSAGE_OUTPUT_LIMIT_BYTES) {
24976
+ throw new CodexAppServerError(
24977
+ "codex_app_server_output_limit",
24978
+ "The Codex app-server produced an oversized message"
24979
+ );
24980
+ }
24981
+ const line = this.#pendingFragments.length === 0 ? fragment : [...this.#pendingFragments, fragment].join("");
24982
+ this.#pendingBytes = 0;
24983
+ this.#pendingFragments = [];
24984
+ cursor = newline + 1;
24985
+ newline = chunk.indexOf("\n", cursor);
24983
24986
  if (line.trim().length === 0) {
24984
24987
  continue;
24985
24988
  }
24986
24989
  const value = JSON.parse(line);
24987
24990
  this.#dispatch(decodeAppServerMessage(value));
24988
24991
  }
24992
+ const remainder = chunk.slice(cursor);
24993
+ if (remainder.length > 0) {
24994
+ this.#pendingBytes += Buffer.byteLength(remainder);
24995
+ if (this.#pendingBytes > MESSAGE_OUTPUT_LIMIT_BYTES) {
24996
+ throw new CodexAppServerError(
24997
+ "codex_app_server_output_limit",
24998
+ "The Codex app-server produced an oversized message"
24999
+ );
25000
+ }
25001
+ this.#pendingFragments.push(remainder);
25002
+ }
24989
25003
  } catch (error62) {
24990
25004
  this.#fail(
24991
25005
  error62 instanceof CodexAppServerError ? error62 : new CodexAppServerError(
@@ -28361,6 +28375,7 @@ var SESSION_LIST_KIND = "session.list";
28361
28375
  var SESSION_LISTED_KIND = "session.listed";
28362
28376
  var SESSION_QUERY_KIND = "session.query";
28363
28377
  var SESSION_QUERIED_KIND = "session.queried";
28378
+ var SESSION_STATUS_CHANGED_KIND = "session.status.changed";
28364
28379
  var SESSION_CONFIGURE_KIND = "session.configure";
28365
28380
  var SESSION_CONFIG_UPDATED_KIND = "session.config.updated";
28366
28381
  var SESSION_USAGE_UPDATED_KIND = "session.usage.updated";
@@ -28396,48 +28411,61 @@ var DIRECTORY_IDENTIFIER_PATTERN = /^[a-zA-Z0-9][a-zA-Z0-9_-]{0,2047}$/;
28396
28411
  var DIRECTORY_IDENTIFIER = external_exports.string().min(1).max(2048).regex(DIRECTORY_IDENTIFIER_PATTERN);
28397
28412
  var SHORT_TEXT = external_exports.string().max(500);
28398
28413
  var LONG_TEXT = external_exports.string().max(1e5);
28399
- var workspaceEntrySchema = external_exports.strictObject({
28414
+ var workspaceEntrySchema = external_exports.object({
28400
28415
  directoryId: DIRECTORY_IDENTIFIER,
28401
28416
  name: external_exports.string().min(1).max(255)
28402
28417
  }).readonly();
28403
- var sessionMetadataSchema = external_exports.strictObject({
28418
+ var sessionStatusSchema = external_exports.discriminatedUnion("kind", [
28419
+ external_exports.object({ kind: external_exports.literal("idle") }).readonly(),
28420
+ external_exports.object({
28421
+ commandId: identifierStringSchema,
28422
+ kind: external_exports.literal("working")
28423
+ }).readonly()
28424
+ ]);
28425
+ var sessionStatusChangedEventSchema = external_exports.object({
28426
+ kind: external_exports.literal(SESSION_STATUS_CHANGED_KIND),
28427
+ sessionId: identifierStringSchema,
28428
+ status: sessionStatusSchema
28429
+ }).readonly();
28430
+ var sessionMetadataSchema = external_exports.object({
28404
28431
  additionalDirectories: external_exports.array(workspaceEntrySchema).max(16).readonly(),
28405
28432
  agentId: identifierStringSchema,
28406
28433
  directoryId: DIRECTORY_IDENTIFIER,
28407
28434
  directoryLabel: external_exports.string().min(1).max(2048),
28408
28435
  prompted: external_exports.boolean(),
28409
28436
  sessionId: identifierStringSchema,
28437
+ status: sessionStatusSchema.default({ kind: "idle" }),
28410
28438
  title: external_exports.string().max(500),
28411
28439
  updatedAt: external_exports.iso.datetime({ offset: true })
28412
28440
  }).readonly();
28413
- var sessionListCommandSchema = external_exports.strictObject({
28441
+ var sessionListCommandSchema = external_exports.object({
28414
28442
  kind: external_exports.literal(SESSION_LIST_KIND),
28415
28443
  limit: external_exports.number().int().positive().max(500),
28416
28444
  requestId: identifierStringSchema
28417
28445
  }).readonly();
28418
- var sessionsListedEventSchema = external_exports.strictObject({
28446
+ var sessionsListedEventSchema = external_exports.object({
28419
28447
  entries: external_exports.array(sessionMetadataSchema).max(500).readonly(),
28420
28448
  kind: external_exports.literal(SESSION_LISTED_KIND),
28421
28449
  requestId: identifierStringSchema
28422
28450
  }).readonly();
28423
- var sessionQueryCommandSchema = external_exports.strictObject({
28451
+ var sessionQueryCommandSchema = external_exports.object({
28424
28452
  kind: external_exports.literal(SESSION_QUERY_KIND),
28425
28453
  requestId: identifierStringSchema,
28426
28454
  sessionIds: external_exports.array(identifierStringSchema).min(1).max(500).readonly()
28427
28455
  }).readonly();
28428
- var sessionsQueriedEventSchema = external_exports.strictObject({
28456
+ var sessionsQueriedEventSchema = external_exports.object({
28429
28457
  entries: external_exports.array(sessionMetadataSchema).max(500).readonly(),
28430
28458
  kind: external_exports.literal(SESSION_QUERIED_KIND),
28431
28459
  requestId: identifierStringSchema
28432
28460
  }).readonly();
28433
- var fileReadCommandSchema = external_exports.strictObject({
28461
+ var fileReadCommandSchema = external_exports.object({
28434
28462
  kind: external_exports.literal(FILE_READ_KIND),
28435
28463
  maxBytes: external_exports.number().int().positive().max(128 * 1024 * 1024),
28436
28464
  requestId: identifierStringSchema,
28437
28465
  sessionId: identifierStringSchema,
28438
28466
  path: external_exports.string().min(1).max(4096)
28439
28467
  }).readonly();
28440
- var fileBeginEventSchema = external_exports.strictObject({
28468
+ var fileBeginEventSchema = external_exports.object({
28441
28469
  byteLength: external_exports.number().int().positive().max(128 * 1024 * 1024),
28442
28470
  kind: external_exports.literal(FILE_BEGIN_KIND),
28443
28471
  mediaType: external_exports.string().min(1).max(255),
@@ -28446,26 +28474,26 @@ var fileBeginEventSchema = external_exports.strictObject({
28446
28474
  requestId: identifierStringSchema,
28447
28475
  sessionId: identifierStringSchema
28448
28476
  }).readonly();
28449
- var fileChunkEventSchema = external_exports.strictObject({
28477
+ var fileChunkEventSchema = external_exports.object({
28450
28478
  data: external_exports.string().min(1).max(4e5),
28451
28479
  kind: external_exports.literal(FILE_CHUNK_KIND),
28452
28480
  requestId: identifierStringSchema,
28453
28481
  sequence: external_exports.number().int().nonnegative().max(1024),
28454
28482
  sessionId: identifierStringSchema
28455
28483
  }).readonly();
28456
- var fileEndEventSchema = external_exports.strictObject({
28484
+ var fileEndEventSchema = external_exports.object({
28457
28485
  kind: external_exports.literal(FILE_END_KIND),
28458
28486
  requestId: identifierStringSchema,
28459
28487
  sessionId: identifierStringSchema
28460
28488
  }).readonly();
28461
- var fileFailedEventSchema = external_exports.strictObject({
28489
+ var fileFailedEventSchema = external_exports.object({
28462
28490
  code: identifierStringSchema,
28463
28491
  kind: external_exports.literal(FILE_FAILED_KIND),
28464
28492
  message: external_exports.string().min(1).max(500),
28465
28493
  requestId: identifierStringSchema,
28466
28494
  sessionId: identifierStringSchema
28467
28495
  }).readonly();
28468
- var configValueSchema = external_exports.strictObject({
28496
+ var configValueSchema = external_exports.object({
28469
28497
  description: SHORT_TEXT,
28470
28498
  groupId: external_exports.string().max(128),
28471
28499
  groupName: external_exports.string().max(255),
@@ -28476,7 +28504,7 @@ var configValueSchema = external_exports.strictObject({
28476
28504
  // by length alone.
28477
28505
  value: external_exports.string().max(500)
28478
28506
  }).readonly();
28479
- var sessionConfigOptionSchema = external_exports.strictObject({
28507
+ var sessionConfigOptionSchema = external_exports.object({
28480
28508
  booleanValue: external_exports.boolean(),
28481
28509
  category: external_exports.string().max(128),
28482
28510
  currentValue: external_exports.string().max(500),
@@ -28487,7 +28515,7 @@ var sessionConfigOptionSchema = external_exports.strictObject({
28487
28515
  values: external_exports.array(configValueSchema).max(500).readonly()
28488
28516
  }).readonly();
28489
28517
  var sessionConfigOptionsSchema = external_exports.array(sessionConfigOptionSchema).max(100).readonly();
28490
- var agentSettingSchema = external_exports.strictObject({
28518
+ var agentSettingSchema = external_exports.object({
28491
28519
  booleanValue: external_exports.boolean(),
28492
28520
  category: external_exports.string().max(128),
28493
28521
  defaultValue: external_exports.string().max(500),
@@ -28506,20 +28534,20 @@ var agentModelEffortResolutionSchema = external_exports.enum([
28506
28534
  AGENT_MODEL_EFFORT_RESOLUTION_ON_MODEL_SELECTION,
28507
28535
  AGENT_MODEL_EFFORT_RESOLUTION_UNAVAILABLE
28508
28536
  ]);
28509
- var agentModelEffortSchema = external_exports.strictObject({
28537
+ var agentModelEffortSchema = external_exports.object({
28510
28538
  effortSettingId: external_exports.string().max(128),
28511
28539
  modelSettingId: external_exports.string().max(128),
28512
28540
  resolution: agentModelEffortResolutionSchema,
28513
28541
  unsupportedModelIds: external_exports.array(external_exports.string().min(1).max(500)).max(500).readonly().default([]),
28514
28542
  valuesByModel: external_exports.record(external_exports.string().min(1).max(500), external_exports.array(configValueSchema).max(500).readonly()).readonly()
28515
28543
  }).readonly();
28516
- var agentSettingsDiscoverCommandSchema = external_exports.strictObject({
28544
+ var agentSettingsDiscoverCommandSchema = external_exports.object({
28517
28545
  agentId: identifierStringSchema,
28518
28546
  kind: external_exports.literal(AGENT_SETTINGS_DISCOVER_KIND),
28519
28547
  model: external_exports.string().min(1).max(500).optional(),
28520
28548
  requestId: identifierStringSchema
28521
28549
  }).readonly();
28522
- var agentSettingsDiscoveredEventSchema = external_exports.strictObject({
28550
+ var agentSettingsDiscoveredEventSchema = external_exports.object({
28523
28551
  agentId: identifierStringSchema,
28524
28552
  agentName: external_exports.string().max(255),
28525
28553
  agentVersion: external_exports.string().max(128),
@@ -28529,27 +28557,27 @@ var agentSettingsDiscoveredEventSchema = external_exports.strictObject({
28529
28557
  settings: agentSettingsSchema,
28530
28558
  settingsRevision: external_exports.string().regex(/^[a-f0-9]{64}$/)
28531
28559
  }).readonly();
28532
- var agentSettingsDiscoveryFailedEventSchema = external_exports.strictObject({
28560
+ var agentSettingsDiscoveryFailedEventSchema = external_exports.object({
28533
28561
  code: identifierStringSchema,
28534
28562
  kind: external_exports.literal(AGENT_SETTINGS_DISCOVERY_FAILED_KIND),
28535
28563
  message: external_exports.string().min(1).max(500),
28536
28564
  requestId: identifierStringSchema
28537
28565
  }).readonly();
28538
- var agentCatalogRefreshCommandSchema = external_exports.strictObject({
28566
+ var agentCatalogRefreshCommandSchema = external_exports.object({
28539
28567
  kind: external_exports.literal(AGENT_CATALOG_REFRESH_KIND),
28540
28568
  requestId: identifierStringSchema
28541
28569
  }).readonly();
28542
- var agentCatalogRefreshedEventSchema = external_exports.strictObject({
28570
+ var agentCatalogRefreshedEventSchema = external_exports.object({
28543
28571
  kind: external_exports.literal(AGENT_CATALOG_REFRESHED_KIND),
28544
28572
  requestId: identifierStringSchema
28545
28573
  }).readonly();
28546
- var agentCatalogRefreshFailedEventSchema = external_exports.strictObject({
28574
+ var agentCatalogRefreshFailedEventSchema = external_exports.object({
28547
28575
  code: identifierStringSchema,
28548
28576
  kind: external_exports.literal(AGENT_CATALOG_REFRESH_FAILED_KIND),
28549
28577
  message: external_exports.string().min(1).max(500),
28550
28578
  requestId: identifierStringSchema
28551
28579
  }).readonly();
28552
- var sessionConfigurationSelectionSchema = external_exports.strictObject({
28580
+ var sessionConfigurationSelectionSchema = external_exports.object({
28553
28581
  booleanValue: external_exports.boolean(),
28554
28582
  configId: identifierStringSchema,
28555
28583
  value: external_exports.string().max(500),
@@ -28563,7 +28591,7 @@ var AGENT_PERMISSION_MODES = Object.freeze([
28563
28591
  "workspace-write",
28564
28592
  "danger-full-access"
28565
28593
  ]);
28566
- var agentExecutionConfigurationSchema = external_exports.strictObject({
28594
+ var agentExecutionConfigurationSchema = external_exports.object({
28567
28595
  model: sessionConfigurationSelectionSchema,
28568
28596
  permissionMode: external_exports.string().refine((value) => AGENT_PERMISSION_MODES.includes(value)),
28569
28597
  reasoningEffort: sessionConfigurationSelectionSchema
@@ -28607,7 +28635,7 @@ var sessionConfigurationSelectionsSchema = external_exports.array(sessionConfigu
28607
28635
  identifiers.add(selection.configId);
28608
28636
  }
28609
28637
  }).readonly();
28610
- var sessionCapabilitiesSchema = external_exports.strictObject({
28638
+ var sessionCapabilitiesSchema = external_exports.object({
28611
28639
  additionalDirectories: external_exports.boolean(),
28612
28640
  audioPrompt: external_exports.boolean(),
28613
28641
  closeSession: external_exports.boolean(),
@@ -28621,22 +28649,22 @@ var sessionCapabilitiesSchema = external_exports.strictObject({
28621
28649
  steering: external_exports.boolean().default(false),
28622
28650
  unstableForkSession: external_exports.boolean().default(false)
28623
28651
  }).readonly();
28624
- var sessionCommandSchema = external_exports.strictObject({
28652
+ var sessionCommandSchema = external_exports.object({
28625
28653
  description: SHORT_TEXT,
28626
28654
  inputHint: external_exports.string().max(255),
28627
28655
  name: external_exports.string().min(1).max(128)
28628
28656
  }).readonly();
28629
- var permissionOptionSchema = external_exports.strictObject({
28657
+ var permissionOptionSchema = external_exports.object({
28630
28658
  kind: external_exports.enum(["allow_once", "allow_always", "reject_once", "reject_always"]),
28631
28659
  name: external_exports.string().min(1).max(255),
28632
28660
  optionId: external_exports.string().min(1).max(255)
28633
28661
  }).readonly();
28634
- var elicitationOptionSchema = external_exports.strictObject({
28662
+ var elicitationOptionSchema = external_exports.object({
28635
28663
  description: SHORT_TEXT,
28636
28664
  label: external_exports.string().min(1).max(255),
28637
28665
  value: external_exports.string().max(500)
28638
28666
  }).readonly();
28639
- var elicitationFieldSchema = external_exports.strictObject({
28667
+ var elicitationFieldSchema = external_exports.object({
28640
28668
  defaultBooleanValue: external_exports.boolean(),
28641
28669
  defaultNumberValue: external_exports.number().finite(),
28642
28670
  defaultStringValue: external_exports.string().max(1e4),
@@ -28654,7 +28682,7 @@ var elicitationFieldSchema = external_exports.strictObject({
28654
28682
  title: external_exports.string().min(1).max(255),
28655
28683
  type: external_exports.enum(["boolean", "integer", "multiselect", "number", "select", "string"])
28656
28684
  }).readonly();
28657
- var displayContentSchema = external_exports.strictObject({
28685
+ var displayContentSchema = external_exports.object({
28658
28686
  artifactId: external_exports.string().max(128).default(""),
28659
28687
  data: external_exports.string().max(4e6),
28660
28688
  mimeType: external_exports.string().max(255),
@@ -28667,7 +28695,7 @@ var displayContentSchema = external_exports.strictObject({
28667
28695
  type: external_exports.enum(["diff", "image", "resource", "resource_link", "terminal", "text", "video"]),
28668
28696
  uri: external_exports.string().max(4096)
28669
28697
  }).readonly();
28670
- var recordedDisplayContentSchema = external_exports.strictObject({
28698
+ var recordedDisplayContentSchema = external_exports.object({
28671
28699
  artifactId: external_exports.string().max(128).default(""),
28672
28700
  data: external_exports.string().max(4e6),
28673
28701
  mimeType: external_exports.string().max(255),
@@ -28680,25 +28708,25 @@ var recordedDisplayContentSchema = external_exports.strictObject({
28680
28708
  type: external_exports.enum(["diff", "image", "resource", "resource_link", "terminal", "text", "video"]),
28681
28709
  uri: external_exports.string().max(4096)
28682
28710
  }).readonly();
28683
- var promptImageSchema = external_exports.strictObject({
28711
+ var promptImageSchema = external_exports.object({
28684
28712
  data: external_exports.string().min(1).max(4e6),
28685
28713
  mimeType: external_exports.string().min(1).max(255),
28686
28714
  name: external_exports.string().min(1).max(500)
28687
28715
  }).readonly();
28688
- var promptResourceSchema = external_exports.strictObject({
28716
+ var promptResourceSchema = external_exports.object({
28689
28717
  mimeType: external_exports.string().max(255),
28690
28718
  name: external_exports.string().min(1).max(500),
28691
28719
  text: external_exports.string().max(1e6),
28692
28720
  type: external_exports.enum(["embedded", "link"]),
28693
28721
  uri: external_exports.string().min(1).max(4096)
28694
28722
  }).readonly();
28695
- var workspaceListCommandSchema = external_exports.strictObject({
28723
+ var workspaceListCommandSchema = external_exports.object({
28696
28724
  bindingId: identifierStringSchema,
28697
28725
  directoryId: DIRECTORY_IDENTIFIER,
28698
28726
  kind: external_exports.literal(WORKSPACE_LIST_KIND),
28699
28727
  requestId: identifierStringSchema
28700
28728
  }).readonly();
28701
- var workspaceEntriesEventSchema = external_exports.strictObject({
28729
+ var workspaceEntriesEventSchema = external_exports.object({
28702
28730
  bindingId: identifierStringSchema,
28703
28731
  directoryId: DIRECTORY_IDENTIFIER,
28704
28732
  directoryLabel: external_exports.string().min(1).max(2048),
@@ -28714,9 +28742,9 @@ var sessionIdentityFields = {
28714
28742
  directoryId: DIRECTORY_IDENTIFIER,
28715
28743
  sessionId: identifierStringSchema
28716
28744
  };
28717
- var sessionPrepareCommandSchema = external_exports.strictObject({
28745
+ var sessionPrepareCommandSchema = external_exports.object({
28718
28746
  ...sessionIdentityFields,
28719
- configuration: external_exports.strictObject({
28747
+ configuration: external_exports.object({
28720
28748
  booleanValue: external_exports.boolean(),
28721
28749
  configId: external_exports.string().min(1).max(128),
28722
28750
  value: external_exports.string().max(500),
@@ -28737,12 +28765,12 @@ var sessionPrepareCommandSchema = external_exports.strictObject({
28737
28765
  }
28738
28766
  }).readonly();
28739
28767
  var runtimeTimingsSchema = external_exports.array(
28740
- external_exports.strictObject({
28768
+ external_exports.object({
28741
28769
  durationMilliseconds: external_exports.number().finite().nonnegative().max(12e4),
28742
28770
  name: external_exports.string().regex(/^[a-z][a-z0-9-]{0,63}$/)
28743
28771
  }).readonly()
28744
28772
  ).max(16).readonly();
28745
- var sessionReadyEventSchema = external_exports.strictObject({
28773
+ var sessionReadyEventSchema = external_exports.object({
28746
28774
  additionalDirectories: external_exports.array(workspaceEntrySchema).max(16).readonly(),
28747
28775
  agentId: identifierStringSchema,
28748
28776
  agentName: external_exports.string().max(255),
@@ -28758,7 +28786,7 @@ var sessionReadyEventSchema = external_exports.strictObject({
28758
28786
  runtimeTimings: runtimeTimingsSchema.optional(),
28759
28787
  sessionId: identifierStringSchema
28760
28788
  }).readonly();
28761
- var sessionConfigureCommandSchema = external_exports.strictObject({
28789
+ var sessionConfigureCommandSchema = external_exports.object({
28762
28790
  ...sessionIdentityFields,
28763
28791
  booleanValue: external_exports.boolean(),
28764
28792
  configId: external_exports.string().min(1).max(128),
@@ -28767,13 +28795,13 @@ var sessionConfigureCommandSchema = external_exports.strictObject({
28767
28795
  value: external_exports.string().max(500),
28768
28796
  valueType: external_exports.enum(["boolean", "select"])
28769
28797
  }).readonly();
28770
- var sessionConfigUpdatedEventSchema = external_exports.strictObject({
28798
+ var sessionConfigUpdatedEventSchema = external_exports.object({
28771
28799
  configOptions: sessionConfigOptionsSchema,
28772
28800
  kind: external_exports.literal(SESSION_CONFIG_UPDATED_KIND),
28773
28801
  requestId: identifierStringSchema,
28774
28802
  sessionId: identifierStringSchema
28775
28803
  }).readonly();
28776
- var sessionContextUsageUpdatedEventSchema = external_exports.strictObject({
28804
+ var sessionContextUsageUpdatedEventSchema = external_exports.object({
28777
28805
  costAmount: external_exports.number().finite().nonnegative(),
28778
28806
  costCurrency: external_exports.string().max(16),
28779
28807
  hasCost: external_exports.boolean(),
@@ -28783,7 +28811,7 @@ var sessionContextUsageUpdatedEventSchema = external_exports.strictObject({
28783
28811
  source: external_exports.literal("context").default("context"),
28784
28812
  used: external_exports.number().int().nonnegative()
28785
28813
  }).readonly();
28786
- var sessionPromptUsageUpdatedEventSchema = external_exports.strictObject({
28814
+ var sessionPromptUsageUpdatedEventSchema = external_exports.object({
28787
28815
  _meta: promptMetadataSchema.nullable(),
28788
28816
  commandId: identifierStringSchema,
28789
28817
  kind: external_exports.literal(SESSION_USAGE_UPDATED_KIND),
@@ -28795,18 +28823,18 @@ var sessionUsageUpdatedEventSchema = external_exports.union([
28795
28823
  sessionContextUsageUpdatedEventSchema,
28796
28824
  sessionPromptUsageUpdatedEventSchema
28797
28825
  ]);
28798
- var sessionCommandsUpdatedEventSchema = external_exports.strictObject({
28826
+ var sessionCommandsUpdatedEventSchema = external_exports.object({
28799
28827
  commands: external_exports.array(sessionCommandSchema).max(500).readonly(),
28800
28828
  kind: external_exports.literal(SESSION_COMMANDS_UPDATED_KIND),
28801
28829
  sessionId: identifierStringSchema
28802
28830
  }).readonly();
28803
- var sessionInfoUpdatedEventSchema = external_exports.strictObject({
28831
+ var sessionInfoUpdatedEventSchema = external_exports.object({
28804
28832
  kind: external_exports.literal(SESSION_INFO_UPDATED_KIND),
28805
28833
  sessionId: identifierStringSchema,
28806
28834
  title: external_exports.string().max(500).nullable(),
28807
28835
  updatedAt: external_exports.string().max(128)
28808
28836
  }).readonly();
28809
- var sessionPermissionRequestedEventSchema = external_exports.strictObject({
28837
+ var sessionPermissionRequestedEventSchema = external_exports.object({
28810
28838
  commandId: identifierStringSchema,
28811
28839
  interactionId: identifierStringSchema,
28812
28840
  kind: external_exports.literal(SESSION_PERMISSION_REQUESTED_KIND),
@@ -28816,21 +28844,21 @@ var sessionPermissionRequestedEventSchema = external_exports.strictObject({
28816
28844
  toolCallId: external_exports.string().min(1).max(255),
28817
28845
  toolKind: external_exports.string().max(64)
28818
28846
  }).readonly();
28819
- var sessionPermissionRespondCommandSchema = external_exports.strictObject({
28847
+ var sessionPermissionRespondCommandSchema = external_exports.object({
28820
28848
  interactionId: identifierStringSchema,
28821
28849
  kind: external_exports.literal(SESSION_PERMISSION_RESPOND_KIND),
28822
28850
  optionId: external_exports.string().max(255),
28823
28851
  outcome: external_exports.enum(["cancelled", "selected"]),
28824
28852
  sessionId: identifierStringSchema
28825
28853
  }).readonly();
28826
- var sessionPermissionResolvedEventSchema = external_exports.strictObject({
28854
+ var sessionPermissionResolvedEventSchema = external_exports.object({
28827
28855
  interactionId: identifierStringSchema,
28828
28856
  kind: external_exports.literal(SESSION_PERMISSION_RESOLVED_KIND),
28829
28857
  optionId: external_exports.string().max(255),
28830
28858
  outcome: external_exports.enum(["cancelled", "selected"]),
28831
28859
  sessionId: identifierStringSchema
28832
28860
  }).readonly();
28833
- var sessionElicitationRequestedEventSchema = external_exports.strictObject({
28861
+ var sessionElicitationRequestedEventSchema = external_exports.object({
28834
28862
  accepted: external_exports.boolean(),
28835
28863
  commandId: identifierStringSchema,
28836
28864
  elicitationId: external_exports.string().max(255),
@@ -28842,20 +28870,20 @@ var sessionElicitationRequestedEventSchema = external_exports.strictObject({
28842
28870
  sessionId: identifierStringSchema,
28843
28871
  url: external_exports.string().max(4096)
28844
28872
  }).readonly();
28845
- var sessionElicitationRespondCommandSchema = external_exports.strictObject({
28873
+ var sessionElicitationRespondCommandSchema = external_exports.object({
28846
28874
  action: external_exports.enum(["accept", "cancel", "decline"]),
28847
28875
  content: external_exports.string().max(1e5),
28848
28876
  interactionId: identifierStringSchema,
28849
28877
  kind: external_exports.literal(SESSION_ELICITATION_RESPOND_KIND),
28850
28878
  sessionId: identifierStringSchema
28851
28879
  }).readonly();
28852
- var sessionElicitationResolvedEventSchema = external_exports.strictObject({
28880
+ var sessionElicitationResolvedEventSchema = external_exports.object({
28853
28881
  action: external_exports.enum(["accept", "cancel", "decline", "complete"]),
28854
28882
  interactionId: identifierStringSchema,
28855
28883
  kind: external_exports.literal(SESSION_ELICITATION_RESOLVED_KIND),
28856
28884
  sessionId: identifierStringSchema
28857
28885
  }).readonly();
28858
- var sessionOperationFailedEventSchema = external_exports.strictObject({
28886
+ var sessionOperationFailedEventSchema = external_exports.object({
28859
28887
  code: identifierStringSchema,
28860
28888
  kind: external_exports.literal(SESSION_OPERATION_FAILED_KIND),
28861
28889
  message: external_exports.string().min(1).max(500),
@@ -28863,7 +28891,7 @@ var sessionOperationFailedEventSchema = external_exports.strictObject({
28863
28891
  runtimeTimings: runtimeTimingsSchema.optional(),
28864
28892
  sessionId: external_exports.string().max(128)
28865
28893
  }).readonly();
28866
- var agentContentEventSchema = external_exports.strictObject({
28894
+ var agentContentEventSchema = external_exports.object({
28867
28895
  commandId: identifierStringSchema,
28868
28896
  content: displayContentSchema,
28869
28897
  contentId: identifierStringSchema,
@@ -28875,15 +28903,15 @@ var agentInstallIdentityFields = {
28875
28903
  agentId: identifierStringSchema,
28876
28904
  requestId: identifierStringSchema
28877
28905
  };
28878
- var agentInstallRequestCommandSchema = external_exports.strictObject({
28906
+ var agentInstallRequestCommandSchema = external_exports.object({
28879
28907
  ...agentInstallIdentityFields,
28880
28908
  kind: external_exports.literal(AGENT_INSTALL_REQUEST_KIND)
28881
28909
  }).readonly();
28882
- var agentInstallCancelCommandSchema = external_exports.strictObject({
28910
+ var agentInstallCancelCommandSchema = external_exports.object({
28883
28911
  kind: external_exports.literal(AGENT_INSTALL_CANCEL_KIND),
28884
28912
  requestId: identifierStringSchema
28885
28913
  }).readonly();
28886
- var agentInstallStartedEventSchema = external_exports.strictObject({
28914
+ var agentInstallStartedEventSchema = external_exports.object({
28887
28915
  ...agentInstallIdentityFields,
28888
28916
  kind: external_exports.literal(AGENT_INSTALL_STARTED_KIND)
28889
28917
  }).readonly();
@@ -28894,23 +28922,23 @@ var installationStageSchema = external_exports.enum([
28894
28922
  "installing_adapter",
28895
28923
  "checking_acp"
28896
28924
  ]);
28897
- var agentInstallProgressEventSchema = external_exports.strictObject({
28925
+ var agentInstallProgressEventSchema = external_exports.object({
28898
28926
  ...agentInstallIdentityFields,
28899
28927
  kind: external_exports.literal(AGENT_INSTALL_PROGRESS_KIND),
28900
28928
  stage: installationStageSchema
28901
28929
  }).readonly();
28902
- var agentInstallCompletedEventSchema = external_exports.strictObject({
28930
+ var agentInstallCompletedEventSchema = external_exports.object({
28903
28931
  ...agentInstallIdentityFields,
28904
28932
  authenticationMayBeRequired: external_exports.boolean(),
28905
28933
  kind: external_exports.literal(AGENT_INSTALL_COMPLETED_KIND)
28906
28934
  }).readonly();
28907
- var agentInstallFailedEventSchema = external_exports.strictObject({
28935
+ var agentInstallFailedEventSchema = external_exports.object({
28908
28936
  ...agentInstallIdentityFields,
28909
28937
  code: identifierStringSchema,
28910
28938
  kind: external_exports.literal(AGENT_INSTALL_FAILED_KIND),
28911
28939
  message: external_exports.string().min(1).max(500)
28912
28940
  }).readonly();
28913
- var agentInstallCancelledEventSchema = external_exports.strictObject({
28941
+ var agentInstallCancelledEventSchema = external_exports.object({
28914
28942
  ...agentInstallIdentityFields,
28915
28943
  kind: external_exports.literal(AGENT_INSTALL_CANCELLED_KIND)
28916
28944
  }).readonly();
@@ -28981,6 +29009,8 @@ var decodeSessionQueryCommand = (encoded) => decode3(encoded, sessionQueryComman
28981
29009
  var encodeSessionQueryCommand = (message) => encode3(message, sessionQueryCommandSchema);
28982
29010
  var decodeSessionsQueriedEvent = (encoded) => decode3(encoded, sessionsQueriedEventSchema);
28983
29011
  var encodeSessionsQueriedEvent = (message) => encode3(message, sessionsQueriedEventSchema);
29012
+ var decodeSessionStatusChangedEvent = (encoded) => decode3(encoded, sessionStatusChangedEventSchema);
29013
+ var encodeSessionStatusChangedEvent = (message) => encode3(message, sessionStatusChangedEventSchema);
28984
29014
  var decodeSessionPrepareCommand = (encoded) => decode3(encoded, sessionPrepareCommandSchema);
28985
29015
  var encodeSessionPrepareCommand = (message) => encode3(message, sessionPrepareCommandSchema);
28986
29016
  var decodeSessionReadyEvent = (encoded) => decode3(encoded, sessionReadyEventSchema);
@@ -29071,6 +29101,17 @@ var ProtocolMessageError = class extends Error {
29071
29101
  this.name = "ProtocolMessageError";
29072
29102
  }
29073
29103
  };
29104
+ var UnsupportedProtocolMessageKindError = class extends Error {
29105
+ code = "unsupported_protocol_message_kind";
29106
+ direction;
29107
+ messageKind;
29108
+ constructor(direction, messageKind) {
29109
+ super(`Unsupported ${direction} message kind: ${messageKind}`);
29110
+ this.name = "UnsupportedProtocolMessageKindError";
29111
+ this.direction = direction;
29112
+ this.messageKind = messageKind;
29113
+ }
29114
+ };
29074
29115
  function isRecord5(value) {
29075
29116
  return typeof value === "object" && value !== null && !Array.isArray(value);
29076
29117
  }
@@ -29088,13 +29129,6 @@ function parseJson2(encoded) {
29088
29129
  }
29089
29130
  return value;
29090
29131
  }
29091
- function assertExactKeys(value, allowedKeys) {
29092
- for (const key of Object.keys(value)) {
29093
- if (!allowedKeys.includes(key)) {
29094
- throw new ProtocolMessageError(`Unexpected message field: ${key}`);
29095
- }
29096
- }
29097
- }
29098
29132
  function readString2(value, key, maximumLength) {
29099
29133
  const field = value[key];
29100
29134
  if (typeof field !== "string" || field.length === 0 || field.length > maximumLength) {
@@ -29185,18 +29219,15 @@ function readActivityDetail(value) {
29185
29219
  }
29186
29220
  const kind = readString2(field, "kind", 32);
29187
29221
  if (kind === "available") {
29188
- assertExactKeys(field, ["artifactId", "kind"]);
29189
29222
  return {
29190
29223
  artifactId: readIdentifier(field, "artifactId"),
29191
29224
  kind
29192
29225
  };
29193
29226
  }
29194
29227
  if (kind === "unrecorded") {
29195
- assertExactKeys(field, ["kind"]);
29196
29228
  return { kind };
29197
29229
  }
29198
29230
  if (kind === "truncated") {
29199
- assertExactKeys(field, ["capturedBytes", "kind", "originalBytes"]);
29200
29231
  const capturedBytes = readSequence(field, "capturedBytes");
29201
29232
  const originalBytes = readSequence(field, "originalBytes");
29202
29233
  if (capturedBytes > originalBytes) {
@@ -29205,7 +29236,6 @@ function readActivityDetail(value) {
29205
29236
  return { capturedBytes, kind, originalBytes };
29206
29237
  }
29207
29238
  if (kind === "recorded") {
29208
- assertExactKeys(field, ["content", "input", "kind", "output"]);
29209
29239
  const contentValue = field["content"];
29210
29240
  if (!Array.isArray(contentValue) || contentValue.length > 100) {
29211
29241
  throw new ProtocolMessageError("Invalid recorded activity content");
@@ -29248,21 +29278,6 @@ function decodeMessageKind(encoded) {
29248
29278
  function decodeSessionPromptCommand(encoded) {
29249
29279
  const value = parseJson2(encoded);
29250
29280
  const hasSessionConfigurations = Object.hasOwn(value, "sessionConfigurations");
29251
- assertExactKeys(value, [
29252
- "additionalDirectoryIds",
29253
- "agentId",
29254
- "bindingId",
29255
- "commandId",
29256
- "directoryId",
29257
- "disposition",
29258
- "images",
29259
- "kind",
29260
- "prompt",
29261
- "resources",
29262
- ...hasSessionConfigurations ? ["sessionConfigurations"] : [],
29263
- "sessionId",
29264
- "targetCommandId"
29265
- ]);
29266
29281
  assertKind(value, SESSION_PROMPT_KIND);
29267
29282
  const prompt = readText(value, "prompt", MAX_PROMPT_LENGTH);
29268
29283
  const images = decodePromptImagesValue(value["images"]);
@@ -29302,7 +29317,6 @@ function decodeSessionPromptCommand(encoded) {
29302
29317
  }
29303
29318
  function decodeSessionCancelCommand(encoded) {
29304
29319
  const value = parseJson2(encoded);
29305
- assertExactKeys(value, ["commandId", "kind", "sessionId"]);
29306
29320
  assertKind(value, SESSION_CANCEL_KIND);
29307
29321
  return {
29308
29322
  commandId: readIdentifier(value, "commandId"),
@@ -29312,7 +29326,6 @@ function decodeSessionCancelCommand(encoded) {
29312
29326
  }
29313
29327
  function decodeSessionPromptDispositionCommand(encoded) {
29314
29328
  const value = parseJson2(encoded);
29315
- assertExactKeys(value, ["commandId", "disposition", "kind", "sessionId"]);
29316
29329
  assertKind(value, SESSION_PROMPT_DISPOSITION_KIND);
29317
29330
  if (readPromptDisposition(value) !== SessionPromptDisposition.Steer) {
29318
29331
  throw new ProtocolMessageError("Only queued prompts can be steered");
@@ -29326,7 +29339,6 @@ function decodeSessionPromptDispositionCommand(encoded) {
29326
29339
  }
29327
29340
  function decodeSessionQueuedEvent(encoded) {
29328
29341
  const value = parseJson2(encoded);
29329
- assertExactKeys(value, ["commandId", "kind", "sessionId"]);
29330
29342
  assertKind(value, SESSION_QUEUED_KIND);
29331
29343
  return {
29332
29344
  commandId: readIdentifier(value, "commandId"),
@@ -29337,12 +29349,10 @@ function decodeSessionQueuedEvent(encoded) {
29337
29349
  function decodeRuntimeLivenessReadyEvent(encoded) {
29338
29350
  const value = parseJson2(encoded);
29339
29351
  assertKind(value, RUNTIME_LIVENESS_READY_KIND);
29340
- assertExactKeys(value, ["kind"]);
29341
29352
  return { kind: RUNTIME_LIVENESS_READY_KIND };
29342
29353
  }
29343
29354
  function decodeRuntimeHeartbeatEvent(encoded) {
29344
29355
  const value = parseJson2(encoded);
29345
- assertExactKeys(value, ["heartbeatId", "kind"]);
29346
29356
  assertKind(value, RUNTIME_HEARTBEAT_KIND);
29347
29357
  return {
29348
29358
  heartbeatId: readIdentifier(value, "heartbeatId"),
@@ -29351,7 +29361,6 @@ function decodeRuntimeHeartbeatEvent(encoded) {
29351
29361
  }
29352
29362
  function decodeRuntimeHeartbeatAckEvent(encoded) {
29353
29363
  const value = parseJson2(encoded);
29354
- assertExactKeys(value, ["heartbeatId", "kind"]);
29355
29364
  assertKind(value, RUNTIME_HEARTBEAT_ACK_KIND);
29356
29365
  return {
29357
29366
  heartbeatId: readIdentifier(value, "heartbeatId"),
@@ -29360,7 +29369,6 @@ function decodeRuntimeHeartbeatAckEvent(encoded) {
29360
29369
  }
29361
29370
  function decodeSessionStartedEvent(encoded) {
29362
29371
  const value = parseJson2(encoded);
29363
- assertExactKeys(value, ["commandId", "epoch", "kind", "attemptId", "prompt", "sequence", "sessionId"]);
29364
29372
  assertKind(value, SESSION_STARTED_KIND);
29365
29373
  const sequence = readSequence(value, "sequence");
29366
29374
  if (sequence !== 0) {
@@ -29378,7 +29386,6 @@ function decodeSessionStartedEvent(encoded) {
29378
29386
  }
29379
29387
  function decodeAgentMessageDeltaEvent(encoded) {
29380
29388
  const value = parseJson2(encoded);
29381
- assertExactKeys(value, ["commandId", "epoch", "kind", "messageId", "sequence", "sessionId", "text"]);
29382
29389
  assertKind(value, AGENT_MESSAGE_DELTA_KIND);
29383
29390
  const sequence = readSequence(value, "sequence");
29384
29391
  if (sequence === 0) {
@@ -29396,23 +29403,6 @@ function decodeAgentMessageDeltaEvent(encoded) {
29396
29403
  }
29397
29404
  function decodeAgentActivityEvent(encoded) {
29398
29405
  const value = parseJson2(encoded);
29399
- assertExactKeys(value, [
29400
- "activityId",
29401
- "activityType",
29402
- "commandId",
29403
- "content",
29404
- "detail",
29405
- "input",
29406
- "kind",
29407
- "locations",
29408
- "name",
29409
- "output",
29410
- "sequence",
29411
- "sessionId",
29412
- "status",
29413
- "title",
29414
- "toolKind"
29415
- ]);
29416
29406
  assertKind(value, AGENT_ACTIVITY_KIND);
29417
29407
  return {
29418
29408
  activityId: readIdentifier(value, "activityId"),
@@ -29434,7 +29424,6 @@ function decodeAgentActivityEvent(encoded) {
29434
29424
  }
29435
29425
  function decodeSessionCompletedEvent(encoded) {
29436
29426
  const value = parseJson2(encoded);
29437
- assertExactKeys(value, ["commandId", "kind", "sessionId", "stopReason"]);
29438
29427
  assertKind(value, SESSION_COMPLETED_KIND);
29439
29428
  return {
29440
29429
  commandId: readIdentifier(value, "commandId"),
@@ -29445,7 +29434,6 @@ function decodeSessionCompletedEvent(encoded) {
29445
29434
  }
29446
29435
  function decodeSessionFailedEvent(encoded) {
29447
29436
  const value = parseJson2(encoded);
29448
- assertExactKeys(value, ["code", "commandId", "kind", "message", "sessionId"]);
29449
29437
  assertKind(value, SESSION_FAILED_KIND);
29450
29438
  return {
29451
29439
  code: readIdentifier(value, "code"),
@@ -29478,7 +29466,6 @@ function encodeRuntimeHeartbeatAckEvent(message) {
29478
29466
  }
29479
29467
  function decodeAgentActivityNarrationEvent(encoded) {
29480
29468
  const value = parseJson2(encoded);
29481
- assertExactKeys(value, ["activityId", "activityType", "commandId", "kind", "sequence", "sessionId", "text"]);
29482
29469
  assertKind(value, AGENT_ACTIVITY_NARRATION_KIND);
29483
29470
  return {
29484
29471
  activityId: readIdentifier(value, "activityId"),
@@ -29496,7 +29483,7 @@ var SESSION_HISTORY_CHARACTER_LIMIT = 256e3;
29496
29483
  var SESSION_HISTORY_MESSAGE_LIMIT = 1e3;
29497
29484
  var SESSION_HISTORY_PREVIEW_MESSAGE_LIMIT = 10;
29498
29485
  var SESSION_HISTORY_IMAGE_CHARACTER_LIMIT = 4e6;
29499
- var historyImage = external_exports.strictObject({
29486
+ var historyImage = external_exports.object({
29500
29487
  data: external_exports.string().min(4).max(SESSION_HISTORY_IMAGE_CHARACTER_LIMIT).refine((data) => data.length % 4 === 0 && /^[A-Za-z0-9+/]*={0,2}$/.test(data)),
29501
29488
  mimeType: external_exports.enum(["image/png", "image/jpeg", "image/gif", "image/webp"]),
29502
29489
  name: external_exports.string().min(1).max(500)
@@ -29523,7 +29510,7 @@ function parseNativeHistoryText(text2) {
29523
29510
  });
29524
29511
  return { text: plainText, images };
29525
29512
  }
29526
- var nativeMessageActivitySchema = external_exports.strictObject({
29513
+ var nativeMessageActivitySchema = external_exports.object({
29527
29514
  activityId: external_exports.string().min(1).max(128),
29528
29515
  activityType: external_exports.string().min(1).max(128),
29529
29516
  content: external_exports.array(displayContentSchema).max(100).readonly(),
@@ -29536,12 +29523,12 @@ var nativeMessageActivitySchema = external_exports.strictObject({
29536
29523
  title: external_exports.string().max(500),
29537
29524
  toolKind: external_exports.string().max(64)
29538
29525
  }).readonly();
29539
- var userHistoryMessage = external_exports.strictObject({
29526
+ var userHistoryMessage = external_exports.object({
29540
29527
  role: external_exports.literal("user"),
29541
29528
  text: external_exports.string().max(SESSION_HISTORY_CHARACTER_LIMIT),
29542
29529
  images: external_exports.array(historyImage).max(8).readonly().optional()
29543
29530
  }).readonly();
29544
- var assistantHistoryMessageSchema = external_exports.strictObject({
29531
+ var assistantHistoryMessageSchema = external_exports.object({
29545
29532
  activities: external_exports.array(nativeMessageActivitySchema).max(100).readonly().default([]),
29546
29533
  content: external_exports.array(displayContentSchema).max(100).readonly().default([]),
29547
29534
  role: external_exports.literal("assistant"),
@@ -29551,8 +29538,8 @@ var assistantHistoryMessageSchema = external_exports.strictObject({
29551
29538
  images: external_exports.array(historyImage).max(8).readonly().optional()
29552
29539
  }).readonly();
29553
29540
  var historyMessage = external_exports.discriminatedUnion("role", [userHistoryMessage, assistantHistoryMessageSchema]);
29554
- var availableSessionHistoryObjectSchema = external_exports.strictObject({
29555
- streamPosition: external_exports.strictObject({
29541
+ var availableSessionHistoryObjectSchema = external_exports.object({
29542
+ streamPosition: external_exports.object({
29556
29543
  commandId: identifierStringSchema,
29557
29544
  epoch: identifierStringSchema,
29558
29545
  sequence: external_exports.number().int().nonnegative()
@@ -29569,9 +29556,9 @@ var availableSessionHistoryObjectSchema = external_exports.strictObject({
29569
29556
  ).max(2e4).readonly().default([])
29570
29557
  });
29571
29558
  var availableSessionHistorySchema = availableSessionHistoryObjectSchema.readonly();
29572
- var unavailableSessionHistoryObjectSchema = external_exports.strictObject({
29559
+ var unavailableSessionHistoryObjectSchema = external_exports.object({
29573
29560
  status: external_exports.literal("unavailable"),
29574
- cause: external_exports.strictObject({
29561
+ cause: external_exports.object({
29575
29562
  code: external_exports.string().regex(/^[a-z][a-z0-9_]{0,127}$/),
29576
29563
  message: external_exports.string().min(1).max(1e3)
29577
29564
  }).readonly()
@@ -29604,7 +29591,7 @@ var envelope = {
29604
29591
  requestId: identifierStringSchema,
29605
29592
  sessionId: identifierStringSchema
29606
29593
  };
29607
- var activeTurnActivitySchema = external_exports.strictObject({
29594
+ var activeTurnActivitySchema = external_exports.object({
29608
29595
  activityId: external_exports.string().min(1).max(128),
29609
29596
  activityType: external_exports.string().min(1).max(128),
29610
29597
  content: external_exports.array(displayContentSchema).max(100).readonly(),
@@ -29617,13 +29604,13 @@ var activeTurnActivitySchema = external_exports.strictObject({
29617
29604
  title: external_exports.string().max(500),
29618
29605
  toolKind: external_exports.string().max(64)
29619
29606
  }).readonly();
29620
- var activeTurnUserMessageSchema = external_exports.strictObject({
29607
+ var activeTurnUserMessageSchema = external_exports.object({
29621
29608
  id: identifierStringSchema,
29622
29609
  images: external_exports.array(promptImageSchema).max(8).readonly().optional(),
29623
29610
  role: external_exports.literal("user"),
29624
29611
  text: external_exports.string().max(SESSION_HISTORY_CHARACTER_LIMIT)
29625
29612
  }).readonly();
29626
- var activeTurnAssistantMessageSchema = external_exports.strictObject({
29613
+ var activeTurnAssistantMessageSchema = external_exports.object({
29627
29614
  activities: external_exports.array(activeTurnActivitySchema).max(100).readonly().default([]),
29628
29615
  content: external_exports.array(displayContentSchema).max(100).readonly().default([]),
29629
29616
  id: identifierStringSchema,
@@ -29634,7 +29621,7 @@ var activeTurnMessageSchema = external_exports.discriminatedUnion("role", [
29634
29621
  activeTurnUserMessageSchema,
29635
29622
  activeTurnAssistantMessageSchema
29636
29623
  ]);
29637
- var activeTurnSnapshotSchema = external_exports.strictObject({
29624
+ var activeTurnSnapshotSchema = external_exports.object({
29638
29625
  commandId: identifierStringSchema,
29639
29626
  epoch: identifierStringSchema,
29640
29627
  hasOlder: external_exports.boolean(),
@@ -29659,64 +29646,64 @@ var identity = {
29659
29646
  directoryId
29660
29647
  };
29661
29648
  var nativeSessionRequestSchema = external_exports.discriminatedUnion("action", [
29662
- external_exports.strictObject({ ...identity, action: external_exports.literal("create") }).readonly(),
29663
- external_exports.strictObject({ ...identity, action: external_exports.literal("active-turn"), targetSessionId: identifierStringSchema }).readonly(),
29664
- external_exports.strictObject({ ...identity, action: external_exports.literal("preview"), entryId: identifierStringSchema }).readonly(),
29665
- external_exports.strictObject({ ...identity, action: external_exports.literal("history"), entryId: identifierStringSchema }).readonly(),
29666
- external_exports.strictObject({ ...identity, action: external_exports.literal("find"), nativeSessionId: identifierStringSchema }).readonly(),
29667
- external_exports.strictObject({
29649
+ external_exports.object({ ...identity, action: external_exports.literal("create") }).readonly(),
29650
+ external_exports.object({ ...identity, action: external_exports.literal("active-turn"), targetSessionId: identifierStringSchema }).readonly(),
29651
+ external_exports.object({ ...identity, action: external_exports.literal("preview"), entryId: identifierStringSchema }).readonly(),
29652
+ external_exports.object({ ...identity, action: external_exports.literal("history"), entryId: identifierStringSchema }).readonly(),
29653
+ external_exports.object({ ...identity, action: external_exports.literal("find"), nativeSessionId: identifierStringSchema }).readonly(),
29654
+ external_exports.object({
29668
29655
  ...identity,
29669
29656
  action: external_exports.literal("list"),
29670
29657
  cursor: identifierStringSchema.nullable()
29671
29658
  }).readonly(),
29672
- external_exports.strictObject({
29659
+ external_exports.object({
29673
29660
  ...identity,
29674
29661
  action: external_exports.enum(["import", "fork"]),
29675
29662
  entryId: identifierStringSchema,
29676
29663
  targetSessionId: identifierStringSchema
29677
29664
  }).readonly(),
29678
- external_exports.strictObject({
29665
+ external_exports.object({
29679
29666
  ...identity,
29680
29667
  action: external_exports.literal("fork-recorded"),
29681
29668
  targetSessionId: identifierStringSchema,
29682
29669
  throughCommandId: identifierStringSchema
29683
29670
  }).readonly(),
29684
- external_exports.strictObject({
29671
+ external_exports.object({
29685
29672
  ...identity,
29686
29673
  action: external_exports.literal("delete"),
29687
29674
  entryId: identifierStringSchema
29688
29675
  }).readonly()
29689
29676
  ]);
29690
29677
  var nativeSessionCommandSchema = external_exports.discriminatedUnion("action", [
29691
- external_exports.strictObject({ ...identity, action: external_exports.literal("create") }).readonly(),
29692
- external_exports.strictObject({ ...identity, action: external_exports.literal("active-turn"), targetSessionId: identifierStringSchema }).readonly(),
29693
- external_exports.strictObject({ ...identity, action: external_exports.literal("preview"), entryId: identifierStringSchema }).readonly(),
29694
- external_exports.strictObject({ ...identity, action: external_exports.literal("history"), entryId: identifierStringSchema }).readonly(),
29695
- external_exports.strictObject({ ...identity, action: external_exports.literal("find"), nativeSessionId: identifierStringSchema }).readonly(),
29696
- external_exports.strictObject({
29678
+ external_exports.object({ ...identity, action: external_exports.literal("create") }).readonly(),
29679
+ external_exports.object({ ...identity, action: external_exports.literal("active-turn"), targetSessionId: identifierStringSchema }).readonly(),
29680
+ external_exports.object({ ...identity, action: external_exports.literal("preview"), entryId: identifierStringSchema }).readonly(),
29681
+ external_exports.object({ ...identity, action: external_exports.literal("history"), entryId: identifierStringSchema }).readonly(),
29682
+ external_exports.object({ ...identity, action: external_exports.literal("find"), nativeSessionId: identifierStringSchema }).readonly(),
29683
+ external_exports.object({
29697
29684
  ...identity,
29698
29685
  action: external_exports.literal("list"),
29699
29686
  cursor: identifierStringSchema.nullable()
29700
29687
  }).readonly(),
29701
- external_exports.strictObject({
29688
+ external_exports.object({
29702
29689
  ...identity,
29703
29690
  action: external_exports.enum(["import", "fork"]),
29704
29691
  entryId: identifierStringSchema,
29705
29692
  targetSessionId: identifierStringSchema
29706
29693
  }).readonly(),
29707
- external_exports.strictObject({
29694
+ external_exports.object({
29708
29695
  ...identity,
29709
29696
  action: external_exports.literal("fork-recorded"),
29710
29697
  targetSessionId: identifierStringSchema,
29711
29698
  throughCommandId: identifierStringSchema
29712
29699
  }).readonly(),
29713
- external_exports.strictObject({
29700
+ external_exports.object({
29714
29701
  ...identity,
29715
29702
  action: external_exports.literal("delete"),
29716
29703
  entryId: identifierStringSchema
29717
29704
  }).readonly()
29718
29705
  ]);
29719
- var nativeSessionEntrySchema = external_exports.strictObject({
29706
+ var nativeSessionEntrySchema = external_exports.object({
29720
29707
  entryId: identifierStringSchema,
29721
29708
  mobiusSessionIds: external_exports.array(identifierStringSchema).max(500).readonly(),
29722
29709
  nativeSessionId: identifierStringSchema,
@@ -29724,20 +29711,20 @@ var nativeSessionEntrySchema = external_exports.strictObject({
29724
29711
  directoryId,
29725
29712
  directoryLabel: external_exports.string().min(1).max(2048),
29726
29713
  updatedAt: external_exports.iso.datetime({ offset: true }).nullable(),
29727
- additionalDirectories: external_exports.array(external_exports.strictObject({ directoryId, name: external_exports.string().min(1).max(255) }).readonly()).max(16).readonly()
29714
+ additionalDirectories: external_exports.array(external_exports.object({ directoryId, name: external_exports.string().min(1).max(255) }).readonly()).max(16).readonly()
29728
29715
  }).readonly();
29729
29716
  var resultEnvelope = {
29730
29717
  ...envelope,
29731
29718
  kind: external_exports.literal(NATIVE_SESSION_RESULT_KIND)
29732
29719
  };
29733
29720
  var nativeSessionResultSchema = external_exports.discriminatedUnion("action", [
29734
- external_exports.strictObject({ ...resultEnvelope, action: external_exports.literal("create"), nativeSessionId: identifierStringSchema }).readonly(),
29735
- external_exports.strictObject({
29721
+ external_exports.object({ ...resultEnvelope, action: external_exports.literal("create"), nativeSessionId: identifierStringSchema }).readonly(),
29722
+ external_exports.object({
29736
29723
  ...resultEnvelope,
29737
29724
  action: external_exports.literal("active-turn"),
29738
29725
  targetSessionId: identifierStringSchema,
29739
29726
  queued: external_exports.array(
29740
- external_exports.strictObject({
29727
+ external_exports.object({
29741
29728
  commandId: identifierStringSchema,
29742
29729
  prompt: external_exports.string().max(1e5),
29743
29730
  images: external_exports.array(promptImageSchema).max(8).readonly()
@@ -29745,26 +29732,26 @@ var nativeSessionResultSchema = external_exports.discriminatedUnion("action", [
29745
29732
  ).readonly(),
29746
29733
  turn: activeTurnSnapshotSchema.nullable()
29747
29734
  }).readonly(),
29748
- external_exports.strictObject({
29735
+ external_exports.object({
29749
29736
  ...resultEnvelope,
29750
29737
  action: external_exports.literal("find"),
29751
29738
  entry: nativeSessionEntrySchema
29752
29739
  }).readonly(),
29753
- external_exports.strictObject({
29740
+ external_exports.object({
29754
29741
  ...resultEnvelope,
29755
29742
  action: external_exports.literal("list"),
29756
29743
  capabilities: sessionCapabilitiesSchema,
29757
29744
  entries: external_exports.array(nativeSessionEntrySchema).max(500).readonly(),
29758
29745
  nextCursor: identifierStringSchema.nullable()
29759
29746
  }).readonly(),
29760
- external_exports.strictObject({
29747
+ external_exports.object({
29761
29748
  ...resultEnvelope,
29762
29749
  action: external_exports.enum(["import", "fork", "fork-recorded"]),
29763
29750
  targetSessionId: identifierStringSchema,
29764
29751
  ready: sessionReadyEventSchema,
29765
29752
  title: external_exports.string().max(500)
29766
29753
  }).readonly(),
29767
- external_exports.strictObject({
29754
+ external_exports.object({
29768
29755
  ...resultEnvelope,
29769
29756
  action: external_exports.literal("preview"),
29770
29757
  entryId: identifierStringSchema,
@@ -29773,21 +29760,21 @@ var nativeSessionResultSchema = external_exports.discriminatedUnion("action", [
29773
29760
  history: sessionHistorySchema,
29774
29761
  title: external_exports.string().max(500)
29775
29762
  }).readonly(),
29776
- external_exports.strictObject({
29763
+ external_exports.object({
29777
29764
  ...resultEnvelope,
29778
29765
  action: external_exports.literal("history"),
29779
29766
  entryId: identifierStringSchema,
29780
29767
  history: sessionHistorySchema,
29781
29768
  title: external_exports.string().max(500)
29782
29769
  }).readonly(),
29783
- external_exports.strictObject({
29770
+ external_exports.object({
29784
29771
  ...resultEnvelope,
29785
29772
  action: external_exports.literal("delete"),
29786
29773
  entryId: identifierStringSchema,
29787
29774
  deletedSessionIds: external_exports.array(identifierStringSchema).max(500).readonly()
29788
29775
  }).readonly()
29789
29776
  ]);
29790
- var nativeSessionCancelSchema = external_exports.strictObject({ ...envelope, kind: external_exports.literal(NATIVE_SESSION_CANCEL_KIND) }).readonly();
29777
+ var nativeSessionCancelSchema = external_exports.object({ ...envelope, kind: external_exports.literal(NATIVE_SESSION_CANCEL_KIND) }).readonly();
29791
29778
  function decode4(schema, encoded) {
29792
29779
  try {
29793
29780
  const value = JSON.parse(encoded);
@@ -29863,23 +29850,23 @@ var boundedJsonSchema = external_exports.unknown().superRefine((value, context)
29863
29850
  });
29864
29851
  var metadataSchema = external_exports.record(external_exports.string().max(255), boundedJsonSchema).readonly();
29865
29852
  var optionalMetadata = metadataSchema.nullable().optional();
29866
- var annotationsSchema = external_exports.strictObject({
29853
+ var annotationsSchema = external_exports.object({
29867
29854
  _meta: optionalMetadata,
29868
29855
  audience: external_exports.array(external_exports.enum(["assistant", "user"])).max(2).readonly().nullable().optional(),
29869
29856
  lastModified: shortString.nullable().optional(),
29870
29857
  priority: external_exports.number().finite().nullable().optional()
29871
29858
  }).readonly();
29872
29859
  var contentFields = { _meta: optionalMetadata, annotations: annotationsSchema.nullable().optional() };
29873
- var textContentSchema = external_exports.strictObject({ ...contentFields, text: boundedString, type: external_exports.literal("text") }).readonly();
29874
- var imageContentSchema = external_exports.strictObject({
29860
+ var textContentSchema = external_exports.object({ ...contentFields, text: boundedString, type: external_exports.literal("text") }).readonly();
29861
+ var imageContentSchema = external_exports.object({
29875
29862
  ...contentFields,
29876
29863
  data: boundedString,
29877
29864
  mimeType: shortString,
29878
29865
  type: external_exports.literal("image"),
29879
29866
  uri: boundedString.nullable().optional()
29880
29867
  }).readonly();
29881
- var audioContentSchema = external_exports.strictObject({ ...contentFields, data: boundedString, mimeType: shortString, type: external_exports.literal("audio") }).readonly();
29882
- var resourceLinkSchema = external_exports.strictObject({
29868
+ var audioContentSchema = external_exports.object({ ...contentFields, data: boundedString, mimeType: shortString, type: external_exports.literal("audio") }).readonly();
29869
+ var resourceLinkSchema = external_exports.object({
29883
29870
  ...contentFields,
29884
29871
  description: boundedString.nullable().optional(),
29885
29872
  mimeType: shortString.nullable().optional(),
@@ -29889,19 +29876,19 @@ var resourceLinkSchema = external_exports.strictObject({
29889
29876
  type: external_exports.literal("resource_link"),
29890
29877
  uri: boundedString
29891
29878
  }).readonly();
29892
- var textResourceSchema = external_exports.strictObject({
29879
+ var textResourceSchema = external_exports.object({
29893
29880
  _meta: optionalMetadata,
29894
29881
  mimeType: shortString.nullable().optional(),
29895
29882
  text: boundedString,
29896
29883
  uri: boundedString
29897
29884
  }).readonly();
29898
- var blobResourceSchema = external_exports.strictObject({
29885
+ var blobResourceSchema = external_exports.object({
29899
29886
  _meta: optionalMetadata,
29900
29887
  blob: boundedString,
29901
29888
  mimeType: shortString.nullable().optional(),
29902
29889
  uri: boundedString
29903
29890
  }).readonly();
29904
- var embeddedResourceSchema = external_exports.strictObject({
29891
+ var embeddedResourceSchema = external_exports.object({
29905
29892
  ...contentFields,
29906
29893
  resource: external_exports.union([textResourceSchema, blobResourceSchema]),
29907
29894
  type: external_exports.literal("resource")
@@ -29914,17 +29901,17 @@ var contentBlockV2Schema = external_exports.discriminatedUnion("type", [
29914
29901
  embeddedResourceSchema
29915
29902
  ]);
29916
29903
  var toolCallContentSchema = external_exports.discriminatedUnion("type", [
29917
- external_exports.strictObject({ _meta: optionalMetadata, content: contentBlockV2Schema, type: external_exports.literal("content") }).readonly(),
29918
- external_exports.strictObject({
29904
+ external_exports.object({ _meta: optionalMetadata, content: contentBlockV2Schema, type: external_exports.literal("content") }).readonly(),
29905
+ external_exports.object({
29919
29906
  _meta: optionalMetadata,
29920
29907
  newText: boundedString,
29921
29908
  oldText: boundedString.nullable().optional(),
29922
29909
  path: boundedString,
29923
29910
  type: external_exports.literal("diff")
29924
29911
  }).readonly(),
29925
- external_exports.strictObject({ _meta: optionalMetadata, terminalId: shortString, type: external_exports.literal("terminal") }).readonly()
29912
+ external_exports.object({ _meta: optionalMetadata, terminalId: shortString, type: external_exports.literal("terminal") }).readonly()
29926
29913
  ]);
29927
- var toolCallLocationSchema = external_exports.strictObject({
29914
+ var toolCallLocationSchema = external_exports.object({
29928
29915
  _meta: optionalMetadata,
29929
29916
  line: external_exports.number().int().nonnegative().safe().nullable().optional(),
29930
29917
  path: boundedString
@@ -29953,40 +29940,40 @@ var toolPatchFields = {
29953
29940
  status: toolStatusSchema.nullable().optional(),
29954
29941
  title: boundedString.nullable().optional()
29955
29942
  };
29956
- var planEntrySchema = external_exports.strictObject({
29943
+ var planEntrySchema = external_exports.object({
29957
29944
  _meta: optionalMetadata,
29958
29945
  content: boundedString,
29959
29946
  priority: external_exports.enum(["high", "medium", "low"]),
29960
29947
  status: external_exports.enum(["pending", "in_progress", "completed"])
29961
29948
  }).readonly();
29962
29949
  var planContentSchema = external_exports.discriminatedUnion("type", [
29963
- external_exports.strictObject({
29950
+ external_exports.object({
29964
29951
  _meta: optionalMetadata,
29965
29952
  entries: external_exports.array(planEntrySchema).max(MAX_COLLECTION_SIZE).readonly(),
29966
29953
  planId: shortString,
29967
29954
  type: external_exports.literal("items")
29968
29955
  }).readonly(),
29969
- external_exports.strictObject({ _meta: optionalMetadata, planId: shortString, type: external_exports.literal("file"), uri: boundedString }).readonly(),
29970
- external_exports.strictObject({
29956
+ external_exports.object({ _meta: optionalMetadata, planId: shortString, type: external_exports.literal("file"), uri: boundedString }).readonly(),
29957
+ external_exports.object({
29971
29958
  _meta: optionalMetadata,
29972
29959
  content: boundedString,
29973
29960
  planId: shortString,
29974
29961
  type: external_exports.literal("markdown")
29975
29962
  }).readonly()
29976
29963
  ]);
29977
- var commandSchema = external_exports.strictObject({
29964
+ var commandSchema = external_exports.object({
29978
29965
  _meta: optionalMetadata,
29979
29966
  description: boundedString,
29980
- input: external_exports.strictObject({ _meta: optionalMetadata, hint: boundedString }).readonly().nullable().optional(),
29967
+ input: external_exports.object({ _meta: optionalMetadata, hint: boundedString }).readonly().nullable().optional(),
29981
29968
  name: shortString
29982
29969
  }).readonly();
29983
- var configSelectOptionSchema = external_exports.strictObject({
29970
+ var configSelectOptionSchema = external_exports.object({
29984
29971
  _meta: optionalMetadata,
29985
29972
  description: boundedString.nullable().optional(),
29986
29973
  name: shortString,
29987
29974
  value: shortString
29988
29975
  }).readonly();
29989
- var configSelectGroupSchema = external_exports.strictObject({
29976
+ var configSelectGroupSchema = external_exports.object({
29990
29977
  _meta: optionalMetadata,
29991
29978
  group: shortString,
29992
29979
  name: shortString,
@@ -30000,7 +29987,7 @@ var configBaseFields = {
30000
29987
  name: shortString
30001
29988
  };
30002
29989
  var sessionConfigOptionSchema2 = external_exports.discriminatedUnion("type", [
30003
- external_exports.strictObject({
29990
+ external_exports.object({
30004
29991
  ...configBaseFields,
30005
29992
  currentValue: shortString,
30006
29993
  options: external_exports.union([
@@ -30009,7 +29996,7 @@ var sessionConfigOptionSchema2 = external_exports.discriminatedUnion("type", [
30009
29996
  ]),
30010
29997
  type: external_exports.literal("select")
30011
29998
  }).readonly(),
30012
- external_exports.strictObject({ ...configBaseFields, currentValue: external_exports.boolean(), type: external_exports.literal("boolean") }).readonly()
29999
+ external_exports.object({ ...configBaseFields, currentValue: external_exports.boolean(), type: external_exports.literal("boolean") }).readonly()
30013
30000
  ]);
30014
30001
  var contentChunkFields = {
30015
30002
  _meta: optionalMetadata,
@@ -30017,10 +30004,10 @@ var contentChunkFields = {
30017
30004
  messageId: shortString.nullable().optional()
30018
30005
  };
30019
30006
  var acpSessionUpdateV2Schema = external_exports.discriminatedUnion("sessionUpdate", [
30020
- external_exports.strictObject({ ...contentChunkFields, sessionUpdate: external_exports.literal("user_message_chunk") }).readonly(),
30021
- external_exports.strictObject({ ...contentChunkFields, sessionUpdate: external_exports.literal("agent_message_chunk") }).readonly(),
30022
- external_exports.strictObject({ ...contentChunkFields, sessionUpdate: external_exports.literal("agent_thought_chunk") }).readonly(),
30023
- external_exports.strictObject({
30007
+ external_exports.object({ ...contentChunkFields, sessionUpdate: external_exports.literal("user_message_chunk") }).readonly(),
30008
+ external_exports.object({ ...contentChunkFields, sessionUpdate: external_exports.literal("agent_message_chunk") }).readonly(),
30009
+ external_exports.object({ ...contentChunkFields, sessionUpdate: external_exports.literal("agent_thought_chunk") }).readonly(),
30010
+ external_exports.object({
30024
30011
  _meta: optionalMetadata,
30025
30012
  content: external_exports.array(toolCallContentSchema).max(MAX_COLLECTION_SIZE).readonly().optional(),
30026
30013
  kind: toolKindSchema.optional(),
@@ -30033,43 +30020,43 @@ var acpSessionUpdateV2Schema = external_exports.discriminatedUnion("sessionUpdat
30033
30020
  title: boundedString,
30034
30021
  toolCallId: shortString
30035
30022
  }).readonly(),
30036
- external_exports.strictObject({ ...toolPatchFields, sessionUpdate: external_exports.literal("tool_call_update"), toolCallId: shortString }).readonly(),
30037
- external_exports.strictObject({
30023
+ external_exports.object({ ...toolPatchFields, sessionUpdate: external_exports.literal("tool_call_update"), toolCallId: shortString }).readonly(),
30024
+ external_exports.object({
30038
30025
  _meta: optionalMetadata,
30039
30026
  entries: external_exports.array(planEntrySchema).max(MAX_COLLECTION_SIZE).readonly(),
30040
30027
  sessionUpdate: external_exports.literal("plan")
30041
30028
  }).readonly(),
30042
- external_exports.strictObject({ _meta: optionalMetadata, plan: planContentSchema, sessionUpdate: external_exports.literal("plan_update") }).readonly(),
30043
- external_exports.strictObject({ _meta: optionalMetadata, planId: shortString, sessionUpdate: external_exports.literal("plan_removed") }).readonly(),
30044
- external_exports.strictObject({
30029
+ external_exports.object({ _meta: optionalMetadata, plan: planContentSchema, sessionUpdate: external_exports.literal("plan_update") }).readonly(),
30030
+ external_exports.object({ _meta: optionalMetadata, planId: shortString, sessionUpdate: external_exports.literal("plan_removed") }).readonly(),
30031
+ external_exports.object({
30045
30032
  _meta: optionalMetadata,
30046
30033
  availableCommands: external_exports.array(commandSchema).max(MAX_COLLECTION_SIZE).readonly(),
30047
30034
  sessionUpdate: external_exports.literal("available_commands_update")
30048
30035
  }).readonly(),
30049
- external_exports.strictObject({
30036
+ external_exports.object({
30050
30037
  _meta: optionalMetadata,
30051
30038
  currentModeId: shortString,
30052
30039
  sessionUpdate: external_exports.literal("current_mode_update")
30053
30040
  }).readonly(),
30054
- external_exports.strictObject({
30041
+ external_exports.object({
30055
30042
  _meta: optionalMetadata,
30056
30043
  configOptions: external_exports.array(sessionConfigOptionSchema2).max(MAX_COLLECTION_SIZE).readonly(),
30057
30044
  sessionUpdate: external_exports.literal("config_option_update")
30058
30045
  }).readonly(),
30059
- external_exports.strictObject({
30046
+ external_exports.object({
30060
30047
  _meta: optionalMetadata,
30061
30048
  sessionUpdate: external_exports.literal("session_info_update"),
30062
30049
  title: boundedString.nullable().optional(),
30063
30050
  updatedAt: shortString.nullable().optional()
30064
30051
  }).readonly(),
30065
- external_exports.strictObject({
30052
+ external_exports.object({
30066
30053
  _meta: optionalMetadata,
30067
- cost: external_exports.strictObject({ _meta: optionalMetadata, amount: external_exports.number().finite(), currency: external_exports.string().max(16) }).readonly().nullable().optional(),
30054
+ cost: external_exports.object({ _meta: optionalMetadata, amount: external_exports.number().finite(), currency: external_exports.string().max(16) }).readonly().nullable().optional(),
30068
30055
  sessionUpdate: external_exports.literal("usage_update"),
30069
30056
  size: external_exports.number().int().nonnegative().safe(),
30070
30057
  used: external_exports.number().int().nonnegative().safe()
30071
30058
  }).readonly(),
30072
- external_exports.strictObject({
30059
+ external_exports.object({
30073
30060
  _meta: optionalMetadata,
30074
30061
  compactionId: shortString,
30075
30062
  error: boundedString.nullable().optional(),
@@ -30077,7 +30064,7 @@ var acpSessionUpdateV2Schema = external_exports.discriminatedUnion("sessionUpdat
30077
30064
  status: shortString,
30078
30065
  summary: external_exports.array(contentBlockV2Schema).max(MAX_COLLECTION_SIZE).readonly().nullable().optional()
30079
30066
  }).readonly(),
30080
- external_exports.strictObject({
30067
+ external_exports.object({
30081
30068
  _meta: optionalMetadata,
30082
30069
  compactionId: shortString,
30083
30070
  content: contentBlockV2Schema,
@@ -30086,28 +30073,28 @@ var acpSessionUpdateV2Schema = external_exports.discriminatedUnion("sessionUpdat
30086
30073
  ]);
30087
30074
  var lifecycleBase = { commandId: identifierStringSchema };
30088
30075
  var lifecycleMetadataV2Schema = external_exports.discriminatedUnion("kind", [
30089
- external_exports.strictObject({ kind: external_exports.literal("session.queue.changed") }).readonly(),
30090
- external_exports.strictObject({ event: sessionPermissionRequestedEventSchema, kind: external_exports.literal("session.permission.requested") }).readonly(),
30091
- external_exports.strictObject({ event: sessionPermissionResolvedEventSchema, kind: external_exports.literal("session.permission.resolved") }).readonly(),
30092
- external_exports.strictObject({
30076
+ external_exports.object({ kind: external_exports.literal("session.queue.changed") }).readonly(),
30077
+ external_exports.object({ event: sessionPermissionRequestedEventSchema, kind: external_exports.literal("session.permission.requested") }).readonly(),
30078
+ external_exports.object({ event: sessionPermissionResolvedEventSchema, kind: external_exports.literal("session.permission.resolved") }).readonly(),
30079
+ external_exports.object({
30093
30080
  event: sessionElicitationRequestedEventSchema,
30094
30081
  kind: external_exports.literal("session.elicitation.requested")
30095
30082
  }).readonly(),
30096
- external_exports.strictObject({ event: sessionElicitationResolvedEventSchema, kind: external_exports.literal("session.elicitation.resolved") }).readonly(),
30097
- external_exports.strictObject({
30083
+ external_exports.object({ event: sessionElicitationResolvedEventSchema, kind: external_exports.literal("session.elicitation.resolved") }).readonly(),
30084
+ external_exports.object({
30098
30085
  ...lifecycleBase,
30099
30086
  content: external_exports.array(contentBlockV2Schema).min(1).max(100).readonly(),
30100
30087
  kind: external_exports.literal("prompt.requested")
30101
30088
  }).readonly(),
30102
- external_exports.strictObject({ ...lifecycleBase, attemptId: identifierStringSchema, epoch: identifierStringSchema, kind: external_exports.literal("prompt.started") }).readonly(),
30103
- external_exports.strictObject({ ...lifecycleBase, kind: external_exports.literal("prompt.completed"), stopReason: shortString }).readonly(),
30104
- external_exports.strictObject({
30089
+ external_exports.object({ ...lifecycleBase, attemptId: identifierStringSchema, epoch: identifierStringSchema, kind: external_exports.literal("prompt.started") }).readonly(),
30090
+ external_exports.object({ ...lifecycleBase, kind: external_exports.literal("prompt.completed"), stopReason: shortString }).readonly(),
30091
+ external_exports.object({
30105
30092
  ...lifecycleBase,
30106
30093
  code: identifierStringSchema,
30107
30094
  kind: external_exports.literal("prompt.failed-before-start"),
30108
30095
  message: external_exports.string().min(1).max(500)
30109
30096
  }).readonly(),
30110
- external_exports.strictObject({
30097
+ external_exports.object({
30111
30098
  ...lifecycleBase,
30112
30099
  attemptId: identifierStringSchema,
30113
30100
  code: identifierStringSchema,
@@ -30116,19 +30103,19 @@ var lifecycleMetadataV2Schema = external_exports.discriminatedUnion("kind", [
30116
30103
  }).readonly()
30117
30104
  ]);
30118
30105
  var sessionEventPayloadV2Schema = external_exports.discriminatedUnion("type", [
30119
- external_exports.strictObject({ payload: acpSessionUpdateV2Schema, type: external_exports.literal("acp") }).readonly(),
30120
- external_exports.strictObject({ payload: lifecycleMetadataV2Schema, type: external_exports.literal("lifecycle-metadata") }).readonly()
30106
+ external_exports.object({ payload: acpSessionUpdateV2Schema, type: external_exports.literal("acp") }).readonly(),
30107
+ external_exports.object({ payload: lifecycleMetadataV2Schema, type: external_exports.literal("lifecycle-metadata") }).readonly()
30121
30108
  ]);
30122
30109
  var positionSchema = external_exports.string().regex(/^(0|[1-9][0-9]*)$/);
30123
30110
  var provenanceSchema = external_exports.discriminatedUnion("kind", [
30124
- external_exports.strictObject({ kind: external_exports.literal("original") }).readonly(),
30125
- external_exports.strictObject({
30111
+ external_exports.object({ kind: external_exports.literal("original") }).readonly(),
30112
+ external_exports.object({
30126
30113
  kind: external_exports.literal("imported"),
30127
30114
  sourceEventId: identifierStringSchema,
30128
30115
  sourcePosition: positionSchema,
30129
30116
  sourceSessionId: identifierStringSchema
30130
30117
  }).readonly(),
30131
- external_exports.strictObject({
30118
+ external_exports.object({
30132
30119
  kind: external_exports.literal("forked"),
30133
30120
  sourceEventId: identifierStringSchema,
30134
30121
  sourcePosition: positionSchema,
@@ -30143,15 +30130,15 @@ var sessionEventFieldsV2 = {
30143
30130
  sessionId: identifierStringSchema
30144
30131
  };
30145
30132
  var sessionEventV2Schema = external_exports.discriminatedUnion("type", [
30146
- external_exports.strictObject({ ...sessionEventFieldsV2, payload: acpSessionUpdateV2Schema, type: external_exports.literal("acp") }).readonly(),
30147
- external_exports.strictObject({
30133
+ external_exports.object({ ...sessionEventFieldsV2, payload: acpSessionUpdateV2Schema, type: external_exports.literal("acp") }).readonly(),
30134
+ external_exports.object({
30148
30135
  ...sessionEventFieldsV2,
30149
30136
  payload: lifecycleMetadataV2Schema,
30150
30137
  type: external_exports.literal("lifecycle-metadata")
30151
30138
  }).readonly()
30152
30139
  ]);
30153
- var sessionExportV2Schema = external_exports.strictObject({
30154
- binding: external_exports.strictObject({
30140
+ var sessionExportV2Schema = external_exports.object({
30141
+ binding: external_exports.object({
30155
30142
  bindingId: identifierStringSchema,
30156
30143
  runtimeId: identifierStringSchema
30157
30144
  }).readonly(),
@@ -30188,20 +30175,20 @@ var sessionExportV2Schema = external_exports.strictObject({
30188
30175
  eventIds.add(event.eventId);
30189
30176
  }
30190
30177
  });
30191
- var mobiusSessionExportV2Schema = external_exports.strictObject({
30178
+ var mobiusSessionExportV2Schema = external_exports.object({
30192
30179
  formatVersion: external_exports.literal("2"),
30193
30180
  session: sessionExportV2Schema
30194
30181
  }).readonly();
30195
- var sessionEventEnvelopeV2Schema = external_exports.strictObject({ event: sessionEventV2Schema, kind: external_exports.literal(SESSION_EVENT_V2_KIND) }).readonly();
30196
- var sessionEventLogPageV2Schema = external_exports.strictObject({
30182
+ var sessionEventEnvelopeV2Schema = external_exports.object({ event: sessionEventV2Schema, kind: external_exports.literal(SESSION_EVENT_V2_KIND) }).readonly();
30183
+ var sessionEventLogPageV2Schema = external_exports.object({
30197
30184
  events: external_exports.array(sessionEventV2Schema).max(MAX_EVENT_COUNT).readonly(),
30198
30185
  nextCursor: external_exports.string().min(1).max(512).nullable(),
30199
30186
  tailCursor: external_exports.string().max(512),
30200
30187
  truncated: external_exports.boolean(),
30201
30188
  version: external_exports.literal(2)
30202
30189
  }).readonly();
30203
- var nativeEventPageRequestV2Schema = external_exports.strictObject({ cursor: external_exports.string().min(1).max(512).nullable(), eventLimit: external_exports.number().int().min(1).max(1e4) }).readonly();
30204
- var executingPromptRequestEventLogV2Schema = external_exports.strictObject({
30190
+ var nativeEventPageRequestV2Schema = external_exports.object({ cursor: external_exports.string().min(1).max(512).nullable(), eventLimit: external_exports.number().int().min(1).max(1e4) }).readonly();
30191
+ var executingPromptRequestEventLogV2Schema = external_exports.object({
30205
30192
  attemptId: identifierStringSchema,
30206
30193
  commandId: identifierStringSchema,
30207
30194
  epoch: identifierStringSchema,
@@ -30209,7 +30196,7 @@ var executingPromptRequestEventLogV2Schema = external_exports.strictObject({
30209
30196
  tailCursor: external_exports.string().max(512),
30210
30197
  truncated: external_exports.boolean()
30211
30198
  }).readonly();
30212
- var nativeSessionEventsV2Schema = external_exports.strictObject({
30199
+ var nativeSessionEventsV2Schema = external_exports.object({
30213
30200
  executingPromptRequest: executingPromptRequestEventLogV2Schema.nullable(),
30214
30201
  history: sessionEventLogPageV2Schema
30215
30202
  }).readonly();
@@ -30244,14 +30231,14 @@ var decodeAcpSessionUpdateV2 = (value) => decode5(value, acpSessionUpdateV2Schem
30244
30231
  var SESSION_EVENT_KIND = "session.event";
30245
30232
  var SESSION_FORKED_KIND = "session.forked";
30246
30233
  var MAX_RECORDED_EVENT_LENGTH = 8 * 1024 * 1024;
30247
- var sessionEventEnvelopeSchema = external_exports.strictObject({
30234
+ var sessionEventEnvelopeSchema = external_exports.object({
30248
30235
  kind: external_exports.literal(SESSION_EVENT_KIND),
30249
30236
  payload: external_exports.string().min(2).max(MAX_RECORDED_EVENT_LENGTH),
30250
30237
  sessionId: identifierStringSchema
30251
30238
  }).readonly();
30252
30239
  var SESSION_QUEUE_CHANGED_KIND = "session.queue.changed";
30253
- var sessionQueueChangedSchema = external_exports.strictObject({ kind: external_exports.literal(SESSION_QUEUE_CHANGED_KIND), sessionId: identifierStringSchema }).readonly();
30254
- var sessionForkedSchema = external_exports.strictObject({
30240
+ var sessionQueueChangedSchema = external_exports.object({ kind: external_exports.literal(SESSION_QUEUE_CHANGED_KIND), sessionId: identifierStringSchema }).readonly();
30241
+ var sessionForkedSchema = external_exports.object({
30255
30242
  kind: external_exports.literal(SESSION_FORKED_KIND),
30256
30243
  sessionId: identifierStringSchema,
30257
30244
  sourceSessionId: identifierStringSchema,
@@ -30323,7 +30310,7 @@ function decodeRecordedSessionEvent(encoded) {
30323
30310
  case SESSION_USAGE_UPDATED_KIND:
30324
30311
  return decodeSessionUsageUpdatedEvent(encoded);
30325
30312
  default:
30326
- throw new ProtocolMessageError("Unsupported recorded session event");
30313
+ throw new UnsupportedProtocolMessageKindError("daemon-to-service", kind);
30327
30314
  }
30328
30315
  }
30329
30316
  var encodeRecordedSessionEvent = (event) => JSON.stringify(decodeRecordedSessionEvent(JSON.stringify(event)));
@@ -30336,7 +30323,7 @@ var SESSION_LIVE_HISTORY_PAGE_LOADED_KIND = "session.live-history.page.loaded";
30336
30323
  var SESSION_LIVE_HISTORY_V2_PAGE_LOAD_KIND = "session.live-history.v2.page.load";
30337
30324
  var SESSION_LIVE_HISTORY_V2_PAGE_LOADED_KIND = "session.live-history.v2.page.loaded";
30338
30325
  var directoryIdentifier = external_exports.string().regex(/^[a-zA-Z0-9][a-zA-Z0-9_-]{0,2047}$/);
30339
- var sessionLiveHistoryLoadSchema = external_exports.strictObject({
30326
+ var sessionLiveHistoryLoadSchema = external_exports.object({
30340
30327
  additionalDirectoryIds: external_exports.array(directoryIdentifier).max(16).readonly(),
30341
30328
  agentId: identifierStringSchema,
30342
30329
  bindingId: identifierStringSchema,
@@ -30345,13 +30332,13 @@ var sessionLiveHistoryLoadSchema = external_exports.strictObject({
30345
30332
  requestId: identifierStringSchema,
30346
30333
  sessionId: identifierStringSchema
30347
30334
  }).readonly();
30348
- var sessionLiveHistoryLoadedSchema = external_exports.strictObject({
30335
+ var sessionLiveHistoryLoadedSchema = external_exports.object({
30349
30336
  history: sessionHistorySchema,
30350
30337
  kind: external_exports.literal(SESSION_LIVE_HISTORY_LOADED_KIND),
30351
30338
  requestId: identifierStringSchema,
30352
30339
  sessionId: identifierStringSchema
30353
30340
  }).readonly();
30354
- var sessionLiveHistoryPageLoadSchema = external_exports.strictObject({
30341
+ var sessionLiveHistoryPageLoadSchema = external_exports.object({
30355
30342
  additionalDirectoryIds: external_exports.array(directoryIdentifier).max(16).readonly(),
30356
30343
  agentId: identifierStringSchema,
30357
30344
  bindingId: identifierStringSchema,
@@ -30362,13 +30349,13 @@ var sessionLiveHistoryPageLoadSchema = external_exports.strictObject({
30362
30349
  requestId: identifierStringSchema,
30363
30350
  sessionId: identifierStringSchema
30364
30351
  }).readonly();
30365
- var sessionLiveHistoryPageLoadedSchema = external_exports.strictObject({
30352
+ var sessionLiveHistoryPageLoadedSchema = external_exports.object({
30366
30353
  kind: external_exports.literal(SESSION_LIVE_HISTORY_PAGE_LOADED_KIND),
30367
30354
  page: nativeMessagePageSchema,
30368
30355
  requestId: identifierStringSchema,
30369
30356
  sessionId: identifierStringSchema
30370
30357
  }).readonly();
30371
- var sessionLiveHistoryV2PageLoadSchema = external_exports.strictObject({
30358
+ var sessionLiveHistoryV2PageLoadSchema = external_exports.object({
30372
30359
  additionalDirectoryIds: external_exports.array(directoryIdentifier).max(16).readonly(),
30373
30360
  agentId: identifierStringSchema,
30374
30361
  bindingId: identifierStringSchema,
@@ -30379,7 +30366,7 @@ var sessionLiveHistoryV2PageLoadSchema = external_exports.strictObject({
30379
30366
  requestId: identifierStringSchema,
30380
30367
  sessionId: identifierStringSchema
30381
30368
  }).readonly();
30382
- var sessionLiveHistoryV2PageLoadedSchema = external_exports.strictObject({
30369
+ var sessionLiveHistoryV2PageLoadedSchema = external_exports.object({
30383
30370
  events: nativeSessionEventsV2Schema,
30384
30371
  kind: external_exports.literal(SESSION_LIVE_HISTORY_V2_PAGE_LOADED_KIND),
30385
30372
  requestId: identifierStringSchema,
@@ -30525,7 +30512,7 @@ function decodeServiceToDaemonMessage(encoded) {
30525
30512
  const kind = decodeMessageKind(encoded);
30526
30513
  const signature = serviceToDaemonRegistry[kind];
30527
30514
  if (signature === void 0) {
30528
- throw new ProtocolMessageError(`Unsupported service-to-daemon message kind: ${kind}`);
30515
+ throw new UnsupportedProtocolMessageKindError("service-to-daemon", kind);
30529
30516
  }
30530
30517
  return signature.decoder(encoded);
30531
30518
  }
@@ -30589,6 +30576,11 @@ var daemonToServiceSignatures = {
30589
30576
  encodeSessionsQueriedEvent,
30590
30577
  decodeSessionsQueriedEvent
30591
30578
  ),
30579
+ [SESSION_STATUS_CHANGED_KIND]: defineMessageSignature(
30580
+ SESSION_STATUS_CHANGED_KIND,
30581
+ encodeSessionStatusChangedEvent,
30582
+ decodeSessionStatusChangedEvent
30583
+ ),
30592
30584
  [SESSION_QUEUED_KIND]: defineMessageSignature(
30593
30585
  SESSION_QUEUED_KIND,
30594
30586
  encodeSessionQueuedEvent,
@@ -41111,12 +41103,14 @@ var AgentRuntimeManager = class {
41111
41103
  #store;
41112
41104
  #nativeHistoryReader;
41113
41105
  #sessionIdentity;
41106
+ #onSessionStatusChanged;
41114
41107
  #observer;
41115
- constructor(observer = new NullAcpSessionObserver(), store = new MemoryAcpSessionStore(), nativeHistoryReader = null, sessionIdentity = "assigned") {
41108
+ constructor(observer = new NullAcpSessionObserver(), store = new MemoryAcpSessionStore(), nativeHistoryReader = null, sessionIdentity = "assigned", onSessionStatusChanged = () => void 0) {
41116
41109
  this.#observer = observer;
41117
41110
  this.#store = store;
41118
41111
  this.#nativeHistoryReader = nativeHistoryReader;
41119
41112
  this.#sessionIdentity = sessionIdentity;
41113
+ this.#onSessionStatusChanged = onSessionStatusChanged;
41120
41114
  }
41121
41115
  setObserver = (observer) => {
41122
41116
  this.#observer = observer;
@@ -41423,6 +41417,11 @@ var AgentRuntimeManager = class {
41423
41417
  }
41424
41418
  this.#executions.begin(options2.sessionId, options2.commandId);
41425
41419
  try {
41420
+ this.#onSessionStatusChanged({
41421
+ kind: "session.status.changed",
41422
+ sessionId: options2.sessionId,
41423
+ status: { commandId: options2.commandId, kind: "working" }
41424
+ });
41426
41425
  if (this.#executions.cancellation(options2.sessionId) !== void 0) {
41427
41426
  return { stopReason: "cancelled" };
41428
41427
  }
@@ -41466,6 +41465,11 @@ var AgentRuntimeManager = class {
41466
41465
  await this.#executions.cancellation(options2.sessionId);
41467
41466
  } finally {
41468
41467
  this.#executions.finish(options2.sessionId, options2.commandId);
41468
+ this.#onSessionStatusChanged({
41469
+ kind: "session.status.changed",
41470
+ sessionId: options2.sessionId,
41471
+ status: { kind: "idle" }
41472
+ });
41469
41473
  this.#executionProcesses.touch(options2.sessionId);
41470
41474
  this.#processes.notifyChanged();
41471
41475
  }
@@ -41498,6 +41502,10 @@ var AgentRuntimeManager = class {
41498
41502
  const stored = this.#store.read(sessionId);
41499
41503
  return stored instanceof FoundAcpStoredSession ? [stored.session] : [];
41500
41504
  });
41505
+ sessionStatus = (sessionId) => {
41506
+ const commandId = this.#executions.command(sessionId);
41507
+ return commandId === void 0 ? { kind: "idle" } : { commandId, kind: "working" };
41508
+ };
41501
41509
  listSessions = (limit) => this.#store.list().filter((session) => session.prompted).slice(0, limit);
41502
41510
  findLinkedSessions = (agentId, nativeSessionId) => this.#store.findNative(agentId, nativeSessionId);
41503
41511
  hasPreparedSession = (sessionId, agentId, cwd, additionalDirectories) => this.#executionProcesses.get(sessionId)?.belongsTo(agentId, cwd, additionalDirectories) === true;
@@ -43943,8 +43951,8 @@ async function readCodexHistoryWithOptions(agent, cwd, nativeSessionId, signal,
43943
43951
  const response = Promise.withResolvers();
43944
43952
  let state = { kind: "initializing", requestId: 1 };
43945
43953
  const seenCursors = /* @__PURE__ */ new Set();
43946
- let pending = "";
43947
- let receivedBytes = 0;
43954
+ let pendingBytes = 0;
43955
+ let pendingFragments = [];
43948
43956
  const fail = (cause) => response.reject(
43949
43957
  cause instanceof AcpExecutionError ? cause : new AcpExecutionError(
43950
43958
  "Saved Codex history could not be read.",
@@ -43958,20 +43966,23 @@ async function readCodexHistoryWithOptions(agent, cwd, nativeSessionId, signal,
43958
43966
  };
43959
43967
  const onData = (chunk) => {
43960
43968
  try {
43961
- receivedBytes += Buffer.byteLength(chunk);
43962
- if (receivedBytes > 32 * 1024 * 1024) {
43963
- throw new AcpExecutionError(
43964
- "This saved conversation is too large to preview.",
43965
- {},
43966
- "native_history_too_large"
43967
- );
43968
- }
43969
- pending += chunk;
43970
- let newline = pending.indexOf("\n");
43969
+ let cursor = 0;
43970
+ let newline = chunk.indexOf("\n");
43971
43971
  while (newline >= 0) {
43972
- const line = pending.slice(0, newline);
43973
- pending = pending.slice(newline + 1);
43974
- newline = pending.indexOf("\n");
43972
+ const fragment = chunk.slice(cursor, newline);
43973
+ const lineBytes = pendingBytes + Buffer.byteLength(fragment);
43974
+ if (lineBytes > 32 * 1024 * 1024) {
43975
+ throw new AcpExecutionError(
43976
+ "This saved conversation is too large to preview.",
43977
+ {},
43978
+ "native_history_too_large"
43979
+ );
43980
+ }
43981
+ const line = pendingFragments.length === 0 ? fragment : [...pendingFragments, fragment].join("");
43982
+ pendingBytes = 0;
43983
+ pendingFragments = [];
43984
+ cursor = newline + 1;
43985
+ newline = chunk.indexOf("\n", cursor);
43975
43986
  if (line.trim().length === 0) {
43976
43987
  continue;
43977
43988
  }
@@ -44067,6 +44078,18 @@ async function readCodexHistoryWithOptions(agent, cwd, nativeSessionId, signal,
44067
44078
  }
44068
44079
  }
44069
44080
  }
44081
+ const remainder = chunk.slice(cursor);
44082
+ if (remainder.length > 0) {
44083
+ pendingBytes += Buffer.byteLength(remainder);
44084
+ if (pendingBytes > 32 * 1024 * 1024) {
44085
+ throw new AcpExecutionError(
44086
+ "This saved conversation is too large to preview.",
44087
+ {},
44088
+ "native_history_too_large"
44089
+ );
44090
+ }
44091
+ pendingFragments.push(remainder);
44092
+ }
44070
44093
  } catch (cause) {
44071
44094
  fail(cause);
44072
44095
  }
@@ -44585,6 +44608,7 @@ var NativeSessionService = class {
44585
44608
  directoryLabel: directory.label,
44586
44609
  prompted: session.prompted,
44587
44610
  sessionId: session.sessionId,
44611
+ status: this.#sessions.sessionStatus(session.sessionId),
44588
44612
  title: session.title || "Untitled session",
44589
44613
  updatedAt: session.updatedAt
44590
44614
  });
@@ -47733,6 +47757,14 @@ async function runRelayConnection({
47733
47757
  }
47734
47758
  commands.handle(message);
47735
47759
  } catch (error62) {
47760
+ if (error62 instanceof UnsupportedProtocolMessageKindError) {
47761
+ console.warn("Mobius daemon skipped an unsupported Relay message", {
47762
+ code: error62.code,
47763
+ direction: error62.direction,
47764
+ messageKind: error62.messageKind
47765
+ });
47766
+ return;
47767
+ }
47736
47768
  console.error("Mobius daemon rejected a message", error62);
47737
47769
  failAndClose(
47738
47770
  new Error("Relay sent an invalid protocol message", { cause: error62 }),
@@ -47799,6 +47831,21 @@ var DaemonSessionEventPublisher = class {
47799
47831
  this.publish(sessionId, event);
47800
47832
  }
47801
47833
  };
47834
+ publishStatus = (event) => {
47835
+ const socket = this.#socket;
47836
+ if (socket === null || socket.readyState !== WebSocket9.OPEN) {
47837
+ return;
47838
+ }
47839
+ const encoded = encodeDaemonToServiceMessage(event);
47840
+ if (socket.bufferedAmount + Buffer.byteLength(encoded, "utf8") > MAX_BUFFERED_BYTES) {
47841
+ socket.close(1013, "Live event transport overloaded");
47842
+ return;
47843
+ }
47844
+ try {
47845
+ socket.send(encoded);
47846
+ } catch {
47847
+ }
47848
+ };
47802
47849
  publishV2 = (event) => {
47803
47850
  this.#store.appendExecutingPromptEventV2(event);
47804
47851
  const socket = this.#socket;
@@ -48111,7 +48158,8 @@ async function runDaemon(config2, audit, signal, timer = systemDaemonTimer, opti
48111
48158
  nativeTurn
48112
48159
  )).history : null
48113
48160
  },
48114
- "native"
48161
+ "native",
48162
+ publisher.publishStatus
48115
48163
  );
48116
48164
  const directories = new WorkspaceDirectoryService(config2.bindingId, config2.defaultWorkspace);
48117
48165
  const installationObserver = new DaemonInstallationObserver();