@bike4mind/cli 0.14.0 → 0.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -377,6 +377,7 @@ let ChatModels = /* @__PURE__ */ function(ChatModels) {
377
377
  ChatModels["CLAUDE_4_6_OPUS"] = "claude-opus-4-6";
378
378
  ChatModels["CLAUDE_4_7_OPUS"] = "claude-opus-4-7";
379
379
  ChatModels["CLAUDE_4_8_OPUS"] = "claude-opus-4-8";
380
+ ChatModels["CLAUDE_FABLE_5"] = "claude-fable-5";
380
381
  ChatModels["JURASSIC2_ULTRA"] = "ai21.j2-ultra-v1";
381
382
  ChatModels["JURASSIC2_MID"] = "ai21.j2-mid-v1";
382
383
  ChatModels["GEMINI_3_5_FLASH"] = "gemini-3.5-flash";
@@ -420,7 +421,10 @@ const REASONING_SUPPORTED_MODELS = new Set([
420
421
  "gpt-5-mini",
421
422
  "gpt-5-nano",
422
423
  "gpt-5.1",
423
- "gpt-5.2"
424
+ "gpt-5.2",
425
+ "gpt-5.4",
426
+ "gpt-5.4-mini",
427
+ "gpt-5.4-nano"
424
428
  ]);
425
429
  new Set([
426
430
  ...Array.from(REASONING_SUPPORTED_MODELS),
@@ -648,7 +652,8 @@ const ArtifactTypeSchema = z.enum([
648
652
  "quest",
649
653
  "file",
650
654
  "questmaster",
651
- "lattice"
655
+ "lattice",
656
+ "blog-draft"
652
657
  ]);
653
658
  [...new Set(Object.values({
654
659
  mermaid: {
@@ -722,6 +727,12 @@ const ArtifactTypeSchema = z.enum([
722
727
  description: "Interactive chess board with move validation and AI opponent",
723
728
  category: "interactive",
724
729
  mimeType: "application/json"
730
+ },
731
+ "blog-draft": {
732
+ name: "Blog Draft",
733
+ description: "Drafted blog/social content ready for review and publishing",
734
+ category: "document",
735
+ mimeType: "application/json"
725
736
  }
726
737
  }).map((info) => info.category))];
727
738
  const ArtifactSchema = z.object({
@@ -891,7 +902,8 @@ const ClaudeArtifactMimeTypes = {
891
902
  CODE: "application/vnd.ant.code",
892
903
  MARKDOWN: "text/markdown",
893
904
  LATTICE: "application/vnd.b4m.lattice",
894
- PYTHON: "application/vnd.ant.python"
905
+ PYTHON: "application/vnd.ant.python",
906
+ BLOG_DRAFT: "application/vnd.b4m.blog-draft"
895
907
  };
896
908
  let KnowledgeType = /* @__PURE__ */ function(KnowledgeType) {
897
909
  /**
@@ -1091,7 +1103,8 @@ const GenericCreditDeductTransaction = BaseCreditTransaction.extend({
1091
1103
  "notebook_curation",
1092
1104
  "manual",
1093
1105
  "admin_adjustment",
1094
- "refund_adjustment"
1106
+ "refund_adjustment",
1107
+ "qwork_reservation"
1095
1108
  ]).optional(),
1096
1109
  /**
1097
1110
  * Stripe dispute ID — set for dispute clawback transactions.
@@ -1452,6 +1465,7 @@ const SecopsTriageConfigSchema = z.object({
1452
1465
  let SupportedFabFileMimeTypes = /* @__PURE__ */ function(SupportedFabFileMimeTypes) {
1453
1466
  SupportedFabFileMimeTypes["PDF"] = "application/pdf";
1454
1467
  SupportedFabFileMimeTypes["DOCX"] = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
1468
+ SupportedFabFileMimeTypes["PPTX"] = "application/vnd.openxmlformats-officedocument.presentationml.presentation";
1455
1469
  SupportedFabFileMimeTypes["XLS"] = "application/vnd.ms-excel";
1456
1470
  SupportedFabFileMimeTypes["XLSX"] = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
1457
1471
  SupportedFabFileMimeTypes["TXT_PLAIN"] = "text/plain";
@@ -2227,6 +2241,10 @@ const SceneCommandSchema = z.discriminatedUnion("type", [
2227
2241
  type: z.literal("update_metadata"),
2228
2242
  id: z.string(),
2229
2243
  patch: z.record(z.string(), z.unknown())
2244
+ }),
2245
+ z.object({
2246
+ type: z.literal("dungeon_expired"),
2247
+ dungeonId: z.string()
2230
2248
  })
2231
2249
  ]);
2232
2250
  /** Client → Server: send scene commands to broadcast to all HUD clients */
@@ -2687,6 +2705,21 @@ const SubagentIterationStepAction = z.object({
2687
2705
  iteration: z.number(),
2688
2706
  step: AgentStepSchema
2689
2707
  });
2708
+ /**
2709
+ * Incremental token delta emitted while the subagent's LLM call is streaming
2710
+ * mid-iteration (#8774). Lets the parent UI render partial responses live
2711
+ * instead of waiting 3–5s for the full step to land. The client appends
2712
+ * `delta` to a per-(childExecutionId, iteration) buffer and clears it when
2713
+ * the iteration's terminal step arrives via `subagent_iteration_step`.
2714
+ */
2715
+ const SubagentTextDeltaAction = z.object({
2716
+ action: z.literal("subagent_text_delta"),
2717
+ executionId: z.string(),
2718
+ childExecutionId: z.string(),
2719
+ agentName: z.string(),
2720
+ iteration: z.number(),
2721
+ delta: z.string()
2722
+ });
2690
2723
  const SubagentCompletedAction = z.object({
2691
2724
  action: z.literal("subagent_completed"),
2692
2725
  executionId: z.string(),
@@ -2704,6 +2737,20 @@ const SubagentFailedAction = z.object({
2704
2737
  isTimeout: z.boolean().optional(),
2705
2738
  partialAnswer: z.string().optional()
2706
2739
  });
2740
+ /**
2741
+ * Humanized in-flight status for a subagent (#8775). Emitted by
2742
+ * `ServerSubagentOrchestrator` for each `action` step the child agent emits
2743
+ * (e.g. "Searching...", "Reading file..."). Lets `SubagentStepNest` show what
2744
+ * the child is doing right now instead of a static "N iterations · running"
2745
+ * label. The previous wiring routed this string to the parent's `progress`
2746
+ * event, which dropped the child correlation — hence a dedicated event.
2747
+ */
2748
+ const SubagentProgressAction = z.object({
2749
+ action: z.literal("subagent_progress"),
2750
+ executionId: z.string(),
2751
+ childExecutionId: z.string(),
2752
+ status: z.string().max(120)
2753
+ });
2707
2754
  const PermissionRequestAction = z.object({
2708
2755
  action: z.literal("permission_request"),
2709
2756
  executionId: z.string(),
@@ -2824,8 +2871,10 @@ z.discriminatedUnion("action", [
2824
2871
  AbortAcknowledgedAction,
2825
2872
  SubagentStartedAction,
2826
2873
  SubagentIterationStepAction,
2874
+ SubagentTextDeltaAction,
2827
2875
  SubagentCompletedAction,
2828
2876
  SubagentFailedAction,
2877
+ SubagentProgressAction,
2829
2878
  PermissionRequestAction,
2830
2879
  ReconnectResultAction
2831
2880
  ]);
@@ -3672,11 +3721,14 @@ let BedrockEmbeddingModel = /* @__PURE__ */ function(BedrockEmbeddingModel) {
3672
3721
  BedrockEmbeddingModel["TITAN_TEXT_EMBEDDINGS_V2"] = "amazon.titan-embed-text-v2:0";
3673
3722
  return BedrockEmbeddingModel;
3674
3723
  }({});
3675
- z.union([
3724
+ const SupportedEmbeddingModelSchema = z.union([
3676
3725
  z.enum(OpenAIEmbeddingModel),
3677
3726
  z.enum(VoyageAIEmbeddingModel),
3678
3727
  z.enum(BedrockEmbeddingModel)
3679
3728
  ]);
3729
+ function isSupportedEmbeddingModel(model) {
3730
+ return SupportedEmbeddingModelSchema.safeParse(model).success;
3731
+ }
3680
3732
  z.enum([
3681
3733
  "openaiDemoKey",
3682
3734
  "anthropicDemoKey",
@@ -3754,6 +3806,10 @@ z.enum([
3754
3806
  "PotionQuestApiKey",
3755
3807
  "EnablePotionQuest",
3756
3808
  "EnableTavernQuestBoardContext",
3809
+ "EnableDungeonLifecycle",
3810
+ "MaxActiveDungeons",
3811
+ "DungeonSpawnIntervalHeartbeats",
3812
+ "DungeonTTLMinutes",
3757
3813
  "VectorThreshold",
3758
3814
  "bflApiKey",
3759
3815
  "EnableMCPServer",
@@ -3821,6 +3877,7 @@ z.enum([
3821
3877
  "EnableBmPiJira",
3822
3878
  "EnableQuantumCanvasser",
3823
3879
  "EnableQuantumCanvasserDefault",
3880
+ "EnableQworkSubmission",
3824
3881
  "EnableContextTelemetry",
3825
3882
  "contextTelemetryAlerts",
3826
3883
  "sreAgentConfig",
@@ -3835,10 +3892,13 @@ function makeStringSetting(config) {
3835
3892
  };
3836
3893
  }
3837
3894
  function makeNumberSetting(config) {
3895
+ let numberSchema = z.coerce.number();
3896
+ if (config.min !== void 0) numberSchema = numberSchema.min(config.min);
3897
+ if (config.max !== void 0) numberSchema = numberSchema.max(config.max);
3838
3898
  return {
3839
3899
  ...config,
3840
3900
  type: "number",
3841
- schema: z.coerce.number().prefault(config.defaultValue ?? 0)
3901
+ schema: numberSchema.prefault(config.defaultValue ?? 0)
3842
3902
  };
3843
3903
  }
3844
3904
  function makeBooleanSetting(config) {
@@ -4329,7 +4389,7 @@ const TriageResultSchema = z.object({
4329
4389
  matchedClosedIssue: z.object({
4330
4390
  issueNumber: z.number().int().min(1),
4331
4391
  title: z.string().min(1).max(TRL.matchesExisting.title.max),
4332
- closedAt: z.string()
4392
+ closedAt: z.string().nullish()
4333
4393
  }).nullable().optional(),
4334
4394
  fingerprint: z.string().length(40).regex(/^[a-f0-9]+$/).optional()
4335
4395
  });
@@ -4747,6 +4807,10 @@ const API_SERVICE_GROUPS = {
4747
4807
  key: "EnableQuantumCanvasserDefault",
4748
4808
  order: 81
4749
4809
  },
4810
+ {
4811
+ key: "EnableQworkSubmission",
4812
+ order: 82
4813
+ },
4750
4814
  {
4751
4815
  key: "EnableQuestMaster",
4752
4816
  order: 90
@@ -4814,6 +4878,22 @@ const API_SERVICE_GROUPS = {
4814
4878
  {
4815
4879
  key: "EnableTavernQuestBoardContext",
4816
4880
  order: 280
4881
+ },
4882
+ {
4883
+ key: "EnableDungeonLifecycle",
4884
+ order: 290
4885
+ },
4886
+ {
4887
+ key: "MaxActiveDungeons",
4888
+ order: 291
4889
+ },
4890
+ {
4891
+ key: "DungeonSpawnIntervalHeartbeats",
4892
+ order: 292
4893
+ },
4894
+ {
4895
+ key: "DungeonTTLMinutes",
4896
+ order: 293
4817
4897
  }
4818
4898
  ]
4819
4899
  },
@@ -5023,7 +5103,7 @@ const settingsMap = {
5023
5103
  DefaultAPIModel: makeStringSetting({
5024
5104
  key: "DefaultAPIModel",
5025
5105
  name: "Default API Model",
5026
- defaultValue: "gpt-5",
5106
+ defaultValue: "claude-sonnet-4-6",
5027
5107
  description: "The default AI model to use for API requests when no model is specified.",
5028
5108
  options: CHAT_MODELS,
5029
5109
  category: "AI",
@@ -5781,6 +5861,47 @@ const settingsMap = {
5781
5861
  group: API_SERVICE_GROUPS.EXPERIMENTAL.id,
5782
5862
  order: 280
5783
5863
  }),
5864
+ EnableDungeonLifecycle: makeBooleanSetting({
5865
+ key: "EnableDungeonLifecycle",
5866
+ name: "Enable Dungeon Lifecycle",
5867
+ defaultValue: false,
5868
+ description: "Kill-switch for the dungeon spawn/expire lifecycle. When disabled, new dungeons cannot be spawned. Active dungeons can always be dismissed and expiration cleanup always runs regardless of this setting.",
5869
+ category: "Experimental",
5870
+ group: API_SERVICE_GROUPS.EXPERIMENTAL.id,
5871
+ order: 290
5872
+ }),
5873
+ MaxActiveDungeons: makeNumberSetting({
5874
+ key: "MaxActiveDungeons",
5875
+ name: "Max Active Dungeons Per Map",
5876
+ defaultValue: 1,
5877
+ min: 1,
5878
+ max: 10,
5879
+ description: "Maximum number of simultaneously active dungeons per map. Defaults to 1 for M4.5. Increase once multi-dungeon navigation is supported.",
5880
+ category: "Experimental",
5881
+ group: API_SERVICE_GROUPS.EXPERIMENTAL.id,
5882
+ order: 291
5883
+ }),
5884
+ DungeonSpawnIntervalHeartbeats: makeNumberSetting({
5885
+ key: "DungeonSpawnIntervalHeartbeats",
5886
+ name: "Dungeon Auto-Spawn Interval (Heartbeats)",
5887
+ defaultValue: 6,
5888
+ min: 1,
5889
+ description: "Number of heartbeats between automatic dungeon spawns (future auto-spawn feature). Must be at least 1. Has no effect in M4.5 where dungeons are spawned manually by the DM.",
5890
+ category: "Experimental",
5891
+ group: API_SERVICE_GROUPS.EXPERIMENTAL.id,
5892
+ order: 292
5893
+ }),
5894
+ DungeonTTLMinutes: makeNumberSetting({
5895
+ key: "DungeonTTLMinutes",
5896
+ name: "Dungeon Lifetime (Minutes)",
5897
+ defaultValue: 1440,
5898
+ min: 1,
5899
+ max: 43200,
5900
+ description: "How long a dungeon remains active before the heartbeat cron expires it. Default is 1440 minutes (24 hours). Must be between 1 and 43200 (30 days).",
5901
+ category: "Experimental",
5902
+ group: API_SERVICE_GROUPS.EXPERIMENTAL.id,
5903
+ order: 293
5904
+ }),
5784
5905
  VectorThreshold: makeNumberSetting({
5785
5906
  key: "VectorThreshold",
5786
5907
  name: "Vector Threshold",
@@ -6402,6 +6523,16 @@ const settingsMap = {
6402
6523
  order: 81,
6403
6524
  dependsOn: "EnableQuantumCanvasser"
6404
6525
  }),
6526
+ EnableQworkSubmission: makeBooleanSetting({
6527
+ key: "EnableQworkSubmission",
6528
+ name: "Enable Q/Work Submission",
6529
+ defaultValue: false,
6530
+ description: "Enable submitting QAOA scheduler runs to Q/Work for cloud-based quantum computation. Requires \"Enable OptiHashi\" to be on.",
6531
+ category: "Experimental",
6532
+ group: API_SERVICE_GROUPS.EXPERIMENTAL.id,
6533
+ order: 82,
6534
+ dependsOn: "EnableQuantumCanvasser"
6535
+ }),
6405
6536
  EnableContextTelemetry: makeBooleanSetting({
6406
6537
  key: "EnableContextTelemetry",
6407
6538
  name: "Enable Context Telemetry",
@@ -7023,6 +7154,8 @@ const PromptMetaZodSchema = z.object({
7023
7154
  performance: PromptMetaPerformanceSchema.optional(),
7024
7155
  session: PromptMetaSessionSchema.optional(),
7025
7156
  questId: z.string().optional(),
7157
+ /** ISO 8601 timestamp of when this completion's data was finalized (set at completion end). */
7158
+ generatedAt: z.string().optional(),
7026
7159
  promptId: z.string().optional(),
7027
7160
  prompt: z.string().optional(),
7028
7161
  replyIds: z.array(z.string()).optional(),
@@ -8153,6 +8286,12 @@ z.object({
8153
8286
  });
8154
8287
  z.object({
8155
8288
  search: z.string().optional(),
8289
+ /**
8290
+ * Optional product-surface filter for session listing. When omitted, list
8291
+ * queries return only default sessions (those with no surface); when set,
8292
+ * they return only sessions for that surface (e.g. 'libreoncology').
8293
+ */
8294
+ surface: z.string().optional(),
8156
8295
  pagination: z.object({
8157
8296
  page: z.coerce.number().int().positive(),
8158
8297
  limit: z.coerce.number().int().positive()
@@ -10806,4 +10945,4 @@ var ConfigStore = class {
10806
10945
  }
10807
10946
  };
10808
10947
  //#endregion
10809
- export { ProjectEvents as $, GenerateImageToolCallSchema as A, dayjsConfig_default as At, InviteEvents as B, sanitizeTelemetryError as Bt, ElabsEvents as C, UnauthorizedError as Ct, ForbiddenError as D, VideoModels as Dt, FileEvents as E, VideoGenerationUsageTransaction as Et, ImageEditUsageTransaction as F, isGPTImage2Model as Ft, ModalEvents as G, buildRateLimitLogEntry as Gt, KnowledgeType as H, settingsMap as Ht, ImageGenerationUsageTransaction as I, isGPTImageModel as It, OpenAIEmbeddingModel as J, parseRateLimitHeaders as Jt, ModelBackend as K, extractSnippetMeta as Kt, ImageModels as L, isZodError as Lt, GenericCreditDeductTransaction as M, getDataLakeTags as Mt, HTTPError as N, getMcpProviderMetadata as Nt, FriendshipEvents as O, XAI_IMAGE_MODELS as Ot, HttpStatus as P, getViewById as Pt, ProfileEvents as Q, InboxEvents as R, obfuscateApiKey as Rt, DashboardParamsSchema as S, UiNavigationEvents as St, FeedbackEvents as T, VIDEO_SIZE_CONSTRAINTS as Tt, LLMEvents as U, validateJupyterKernelName as Ut, InviteType as V, secureParameters as Vt, MiscEvents as W, validateNotebookPath as Wt, Permission as X, OpenAIImageGenerationInput as Y, CollectionType as Yt, PermissionDeniedError as Z, ChatCompletionCreateInputSchema as _, TaskScheduleHandler as _t, ALERT_THRESHOLDS as a, ReceivedCreditTransaction as at, CompletionApiUsageTransaction as b, ToolUsageTransaction as bt, ApiKeyScope as c, ResearchModeParamsSchema as ct, ArtifactTypeSchema as d, ResearchTaskType as dt, PromptIntentSchema as et, AuthEvents as f, SessionEvents as ft, CREDIT_DEDUCT_TRANSACTION_TYPES as g, TagType as gt, BadRequestError as h, SupportedFabFileMimeTypes as ht, getEnvironmentName as i, RealtimeVoiceUsageTransaction as it, GenericCreditAddTransaction as j, getAccessibleDataLakes as jt, GEMINI_IMAGE_MODELS as k, b4mLLMTools as kt, ApiKeyType as l, ResearchTaskExecutionType as lt, BFL_SAFETY_TOLERANCE as m, SubscriptionCreditTransaction as mt, logger as n, PurchaseTransaction as nt, AiEvents as o, RechartsChartTypeList as ot, BFL_IMAGE_MODELS as p, SpeechToTextUsageTransaction as pt, NotFoundError as q, isNearLimit as qt, getApiUrl as r, QuestMasterParamsSchema as rt, ApiKeyEvents as s, RegInviteEvents as st, ConfigStore as t, PromptMetaZodSchema as tt, AppFileEvents as u, ResearchTaskPeriodicFrequencyType as ut, ChatModels as v, TextGenerationUsageTransaction as vt, FavoriteDocumentType as w, UnprocessableEntityError as wt, CorruptedFileError as x, TransferCreditTransaction as xt, ClaudeArtifactMimeTypes as y, TooManyRequestsError as yt, InternalServerError as z, resolveNavigationIntents as zt };
10948
+ export { ProjectEvents as $, GenerateImageToolCallSchema as A, dayjsConfig_default as At, InviteEvents as B, resolveNavigationIntents as Bt, ElabsEvents as C, UnauthorizedError as Ct, ForbiddenError as D, VideoModels as Dt, FileEvents as E, VideoGenerationUsageTransaction as Et, ImageEditUsageTransaction as F, isGPTImage2Model as Ft, ModalEvents as G, validateNotebookPath as Gt, KnowledgeType as H, secureParameters as Ht, ImageGenerationUsageTransaction as I, isGPTImageModel as It, OpenAIEmbeddingModel as J, isNearLimit as Jt, ModelBackend as K, buildRateLimitLogEntry as Kt, ImageModels as L, isSupportedEmbeddingModel as Lt, GenericCreditDeductTransaction as M, getDataLakeTags as Mt, HTTPError as N, getMcpProviderMetadata as Nt, FriendshipEvents as O, XAI_IMAGE_MODELS as Ot, HttpStatus as P, getViewById as Pt, ProfileEvents as Q, InboxEvents as R, isZodError as Rt, DashboardParamsSchema as S, UiNavigationEvents as St, FeedbackEvents as T, VIDEO_SIZE_CONSTRAINTS as Tt, LLMEvents as U, settingsMap as Ut, InviteType as V, sanitizeTelemetryError as Vt, MiscEvents as W, validateJupyterKernelName as Wt, Permission as X, CollectionType as Xt, OpenAIImageGenerationInput as Y, parseRateLimitHeaders as Yt, PermissionDeniedError as Z, ChatCompletionCreateInputSchema as _, TaskScheduleHandler as _t, ALERT_THRESHOLDS as a, ReceivedCreditTransaction as at, CompletionApiUsageTransaction as b, ToolUsageTransaction as bt, ApiKeyScope as c, ResearchModeParamsSchema as ct, ArtifactTypeSchema as d, ResearchTaskType as dt, PromptIntentSchema as et, AuthEvents as f, SessionEvents as ft, CREDIT_DEDUCT_TRANSACTION_TYPES as g, TagType as gt, BadRequestError as h, SupportedFabFileMimeTypes as ht, getEnvironmentName as i, RealtimeVoiceUsageTransaction as it, GenericCreditAddTransaction as j, getAccessibleDataLakes as jt, GEMINI_IMAGE_MODELS as k, b4mLLMTools as kt, ApiKeyType as l, ResearchTaskExecutionType as lt, BFL_SAFETY_TOLERANCE as m, SubscriptionCreditTransaction as mt, logger as n, PurchaseTransaction as nt, AiEvents as o, RechartsChartTypeList as ot, BFL_IMAGE_MODELS as p, SpeechToTextUsageTransaction as pt, NotFoundError as q, extractSnippetMeta as qt, getApiUrl as r, QuestMasterParamsSchema as rt, ApiKeyEvents as s, RegInviteEvents as st, ConfigStore as t, PromptMetaZodSchema as tt, AppFileEvents as u, ResearchTaskPeriodicFrequencyType as ut, ChatModels as v, TextGenerationUsageTransaction as vt, FavoriteDocumentType as w, UnprocessableEntityError as wt, CorruptedFileError as x, TransferCreditTransaction as xt, ClaudeArtifactMimeTypes as y, TooManyRequestsError as yt, InternalServerError as z, obfuscateApiKey as zt };
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { t as ConfigStore } from "../ConfigStore-B9I7UHuG.mjs";
2
+ import { t as ConfigStore } from "../ConfigStore-HRgwfPBk.mjs";
3
3
  //#region src/commands/apiCommand.ts
4
4
  /**
5
5
  * External API config command (--api-url / --reset-api)
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { t as version } from "../package-uvIC6spW.mjs";
2
+ import { t as version } from "../package-CyhCLcRb.mjs";
3
3
  import { a as fetchLatestVersion, c as isNpmPrefixWritable, i as compareSemver } from "../updateChecker-C8xsNY2L.mjs";
4
4
  import { t as checkRipgrep } from "../ripgrepCheck-BmkyTK2i.mjs";
5
5
  import { execSync } from "child_process";
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { t as ConfigStore } from "../ConfigStore-B9I7UHuG.mjs";
2
+ import { t as ConfigStore } from "../ConfigStore-HRgwfPBk.mjs";
3
3
  //#region src/commands/envCommand.ts
4
4
  /**
5
5
  * Environment switching for the `--dev` / `--prod` launch flags.
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
- import { C as WebSocketToolExecutor, D as ServerLlmBackend, E as WebSocketLlmBackend, F as generateCliTools, G as buildSystemPrompt, J as ReActAgent, N as loadContextFiles, P as PermissionManager, Q as SessionStore, S as ApiClient, T as FallbackLlmBackend, U as setWebSocketToolExecutor, X as CheckpointStore, Y as CustomCommandStore, _ as createAgentDelegateTool, b as createSkillTool, d as createFindDefinitionTool, f as createTodoStore, g as BackgroundAgentManager, h as createBackgroundAgentTools, k as McpManager, m as createCoordinateTaskTool, p as createWriteTodosTool, q as isReadOnlyTool, u as createGetFileStructureTool, v as AgentStore, w as WebSocketConnectionManager, y as SubagentOrchestrator } from "../tools-BTPUXUNS.mjs";
3
- import { n as logger, r as getApiUrl, t as ConfigStore } from "../ConfigStore-B9I7UHuG.mjs";
2
+ import { C as WebSocketToolExecutor, D as ServerLlmBackend, E as WebSocketLlmBackend, F as generateCliTools, G as buildSystemPrompt, J as ReActAgent, N as loadContextFiles, P as PermissionManager, Q as SessionStore, S as ApiClient, T as FallbackLlmBackend, U as setWebSocketToolExecutor, X as CheckpointStore, Y as CustomCommandStore, _ as createAgentDelegateTool, b as createSkillTool, d as createFindDefinitionTool, f as createTodoStore, g as BackgroundAgentManager, h as createBackgroundAgentTools, k as McpManager, m as createCoordinateTaskTool, p as createWriteTodosTool, q as isReadOnlyTool, u as createGetFileStructureTool, v as AgentStore, w as WebSocketConnectionManager, y as SubagentOrchestrator } from "../tools-Bu1iDd2p.mjs";
3
+ import { n as logger, r as getApiUrl, t as ConfigStore } from "../ConfigStore-HRgwfPBk.mjs";
4
4
  import { t as DEFAULT_SANDBOX_CONFIG } from "../types-LyRNHOiS.mjs";
5
5
  import { t as createSandboxRuntime } from "../SandboxRuntimeAdapter-ChGlxSGQ.mjs";
6
6
  import { t as SandboxOrchestrator } from "../SandboxOrchestrator-BoINxbX4.mjs";
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { t as ConfigStore } from "../ConfigStore-B9I7UHuG.mjs";
2
+ import { t as ConfigStore } from "../ConfigStore-HRgwfPBk.mjs";
3
3
  //#region src/commands/mcpCommand.ts
4
4
  /**
5
5
  * External MCP commands (b4m mcp list, b4m mcp add, etc.)
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { t as version } from "../package-uvIC6spW.mjs";
2
+ import { t as version } from "../package-CyhCLcRb.mjs";
3
3
  import { c as isNpmPrefixWritable, l as setAutoUpdatePreference, n as REEXEC_GUARD_ENV, o as forceCheckForUpdate, r as checkForUpdate, s as getAutoUpdatePreference, t as INSTALL_CMD, u as shouldAttemptAutoUpdate } from "../updateChecker-C8xsNY2L.mjs";
4
4
  import { t as checkRipgrep } from "../ripgrepCheck-BmkyTK2i.mjs";
5
5
  import { execSync, spawnSync } from "child_process";