stratagem-x7 0.3.0 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/cli.mjs +649 -440
  2. package/package.json +7 -7
package/dist/cli.mjs CHANGED
@@ -52397,6 +52397,8 @@ function truncateToWidthNoEllipsis(text, maxWidth) {
52397
52397
  return result;
52398
52398
  }
52399
52399
  function truncate(str, maxWidth, singleLine = false) {
52400
+ if (!str)
52401
+ return str ?? "";
52400
52402
  let result = str;
52401
52403
  if (singleLine) {
52402
52404
  const firstNewline = str.indexOf(`
@@ -281181,6 +281183,13 @@ function ProviderManager({ mode, onDone }) {
281181
281183
  const isActiveSavedProfile = getActiveProviderProfile()?.id === saved.id;
281182
281184
  const settingsOverrideError = isActiveSavedProfile ? clearStartupProviderOverrideFromUserSettings() : null;
281183
281185
  refreshProfiles();
281186
+ if (isActiveSavedProfile) {
281187
+ const newModel = getPrimaryModel(saved.model);
281188
+ setAppState((prev) => ({
281189
+ ...prev,
281190
+ mainLoopModel: newModel
281191
+ }));
281192
+ }
281184
281193
  const successMessage = editingProfileId ? `Updated provider: ${saved.name}` : `Added provider: ${saved.name} (now active)`;
281185
281194
  setStatusMessage(settingsOverrideError ? `${successMessage}. Warning: could not clear startup provider override (${settingsOverrideError}).` : successMessage);
281186
281195
  if (mode === "first-run") {
@@ -282169,193 +282178,168 @@ var SPINNER_VERBS;
282169
282178
  var init_spinnerVerbs = __esm(() => {
282170
282179
  init_settings2();
282171
282180
  SPINNER_VERBS = [
282172
- "Accomplishing",
282173
- "Actioning",
282174
- "Actualizing",
282181
+ "Allocating",
282182
+ "Amplifying",
282183
+ "Analyzing",
282175
282184
  "Architecting",
282176
- "Baking",
282177
- "Beaming",
282178
- "Beboppin'",
282179
- "Befuddling",
282180
- "Billowing",
282181
- "Blanching",
282182
- "Bloviating",
282183
- "Boogieing",
282184
- "Boondoggling",
282185
- "Booping",
282185
+ "Assembling",
282186
282186
  "Bootstrapping",
282187
- "Brewing",
282188
- "Bunning",
282189
- "Burrowing",
282190
- "Calculating",
282191
- "Canoodling",
282192
- "Caramelizing",
282187
+ "Branching",
282188
+ "Breaching",
282189
+ "Buffering",
282190
+ "Calibrating",
282193
282191
  "Cascading",
282194
- "Catapulting",
282195
- "Cerebrating",
282196
282192
  "Channeling",
282197
- "Channelling",
282198
- "Choreographing",
282199
- "Churning",
282200
- "Clauding",
282193
+ "Ciphering",
282201
282194
  "Coalescing",
282202
- "Cogitating",
282203
- "Combobulating",
282204
- "Composing",
282195
+ "Compiling",
282205
282196
  "Computing",
282206
- "Concocting",
282207
- "Considering",
282208
- "Contemplating",
282209
- "Cooking",
282210
- "Crafting",
282211
- "Creating",
282197
+ "Converging",
282198
+ "Correlating",
282199
+ "Cracking",
282212
282200
  "Crunching",
282213
282201
  "Crystallizing",
282214
- "Cultivating",
282215
- "Deciphering",
282216
- "Deliberating",
282217
- "Determining",
282218
- "Dilly-dallying",
282219
- "Discombobulating",
282220
- "Doing",
282221
- "Doodling",
282222
- "Drizzling",
282223
- "Ebbing",
282224
- "Effecting",
282225
- "Elucidating",
282226
- "Embellishing",
282227
- "Enchanting",
282228
- "Envisioning",
282229
- "Evaporating",
282230
- "Fermenting",
282231
- "Fiddle-faddling",
282232
- "Finagling",
282233
- "Flambéing",
282234
- "Flibbertigibbeting",
282235
- "Flowing",
282236
- "Flummoxing",
282237
- "Fluttering",
282202
+ "Cyberforming",
282203
+ "Decoding",
282204
+ "Decrypting",
282205
+ "Defragmenting",
282206
+ "Deploying",
282207
+ "Dereferencing",
282208
+ "Desoldering",
282209
+ "Diffusing",
282210
+ "Disassembling",
282211
+ "Dispatching",
282212
+ "Dissolving",
282213
+ "Distilling",
282214
+ "Encoding",
282215
+ "Encrypting",
282216
+ "Enumerating",
282217
+ "Establishing",
282218
+ "Excavating",
282219
+ "Executing",
282220
+ "Exfiltrating",
282221
+ "Extracting",
282222
+ "Fabricating",
282223
+ "Flashing",
282238
282224
  "Forging",
282239
- "Forming",
282240
- "Frolicking",
282241
- "Frosting",
282242
- "Gallivanting",
282243
- "Galloping",
282244
- "Garnishing",
282225
+ "Fracturing",
282226
+ "Fragmenting",
282227
+ "Fusing",
282245
282228
  "Generating",
282246
- "Gesticulating",
282247
- "Germinating",
282248
- "Gitifying",
282249
- "Grooving",
282250
- "Gusting",
282251
- "Harmonizing",
282229
+ "Gridlocking",
282230
+ "Handshaking",
282231
+ "Hardening",
282252
282232
  "Hashing",
282253
- "Hatching",
282254
- "Herding",
282255
- "Honking",
282256
- "Hullaballooing",
282257
- "Hyperspacing",
282258
- "Ideating",
282259
- "Imagining",
282260
- "Improvising",
282261
- "Incubating",
282233
+ "Hex-dumping",
282234
+ "Hijacking",
282235
+ "Hydrating",
282236
+ "Hyperthreading",
282237
+ "Indexing",
282262
282238
  "Inferring",
282263
- "Infusing",
282239
+ "Initializing",
282240
+ "Injecting",
282241
+ "Instantiating",
282242
+ "Intercepting",
282243
+ "Interfacing",
282244
+ "Interpolating",
282245
+ "Invoking",
282264
282246
  "Ionizing",
282265
- "Jitterbugging",
282266
- "Julienning",
282267
- "Kneading",
282268
- "Leavening",
282269
- "Levitating",
282270
- "Lollygagging",
282271
- "Manifesting",
282272
- "Marinating",
282273
- "Meandering",
282274
- "Metamorphosing",
282275
- "Misting",
282276
- "Moonwalking",
282277
- "Moseying",
282278
- "Mulling",
282279
- "Mustering",
282280
- "Musing",
282281
- "Nebulizing",
282247
+ "Iterating",
282248
+ "Jacking in",
282249
+ "Kernelizing",
282250
+ "Latching",
282251
+ "Linking",
282252
+ "Loading",
282253
+ "Locking on",
282254
+ "Mapping",
282255
+ "Marshalling",
282256
+ "Materializing",
282257
+ "Merging",
282258
+ "Meshing",
282259
+ "Multiplexing",
282260
+ "Mutating",
282261
+ "Negotiating",
282282
282262
  "Nesting",
282283
- "Newspapering",
282284
- "Noodling",
282263
+ "Netrunning",
282285
282264
  "Nucleating",
282265
+ "Obfuscating",
282266
+ "Optimizing",
282286
282267
  "Orbiting",
282287
282268
  "Orchestrating",
282288
- "Osmosing",
282289
- "Perambulating",
282290
- "Percolating",
282291
- "Perusing",
282292
- "Philosophising",
282293
- "Photosynthesizing",
282294
- "Pollinating",
282295
- "Pondering",
282296
- "Pontificating",
282297
- "Pouncing",
282298
- "Precipitating",
282299
- "Prestidigitating",
282269
+ "Overclocking",
282270
+ "Overriding",
282271
+ "Parsing",
282272
+ "Patching",
282273
+ "Penetrating",
282274
+ "Phasing",
282275
+ "Pipelining",
282276
+ "Pivoting",
282277
+ "Polling",
282300
282278
  "Processing",
282301
- "Proofing",
282279
+ "Profiling",
282302
282280
  "Propagating",
282303
- "Puttering",
282304
- "Puzzling",
282305
- "Quantumizing",
282306
- "Razzle-dazzling",
282307
- "Razzmatazzing",
282308
- "Recombobulating",
282281
+ "Proxying",
282282
+ "Purging",
282283
+ "Quantizing",
282284
+ "Queuing",
282285
+ "Rasterizing",
282286
+ "Realigning",
282287
+ "Rebasing",
282288
+ "Recalibrating",
282289
+ "Recompiling",
282290
+ "Reconstructing",
282291
+ "Recursing",
282292
+ "Reflashing",
282293
+ "Refactoring",
282294
+ "Rendering",
282295
+ "Resolving",
282296
+ "Restructuring",
282309
282297
  "Reticulating",
282310
- "Roosting",
282311
- "Ruminating",
282312
- "Sautéing",
282313
- "Scampering",
282314
- "Schlepping",
282315
- "Scurrying",
282316
- "Seasoning",
282317
- "Shenaniganing",
282318
- "Shimmying",
282319
- "Simmering",
282320
- "Skedaddling",
282321
- "Sketching",
282322
- "Slithering",
282323
- "Smooshing",
282324
- "Sock-hopping",
282325
- "Spelunking",
282326
- "Spinning",
282327
- "Sprouting",
282328
- "Stewing",
282329
- "Sublimating",
282330
- "Swirling",
282331
- "Swooping",
282332
- "Symbioting",
282298
+ "Rewiring",
282299
+ "Routing",
282300
+ "Scanning",
282301
+ "Segmenting",
282302
+ "Sequencing",
282303
+ "Serializing",
282304
+ "Sharding",
282305
+ "Shredding",
282306
+ "Signaling",
282307
+ "Simulating",
282308
+ "Siphoning",
282309
+ "Slicing",
282310
+ "Sniffing",
282311
+ "Soldering",
282312
+ "Spawning",
282313
+ "Splicing",
282314
+ "Spooling",
282315
+ "Staging",
282316
+ "Streaming",
282317
+ "Stripping",
282318
+ "Subroutining",
282319
+ "Sweeping",
282320
+ "Syncing",
282333
282321
  "Synthesizing",
282334
- "Tempering",
282335
- "Thinking",
282336
- "Thundering",
282337
- "Tinkering",
282338
- "Tomfoolering",
282339
- "Topsy-turvying",
282340
- "Transfiguring",
282341
- "Transmuting",
282342
- "Twisting",
282343
- "Undulating",
282344
- "Unfurling",
282345
- "Unravelling",
282346
- "Vibing",
282347
- "Waddling",
282348
- "Wandering",
282322
+ "Targeting",
282323
+ "Terraforming",
282324
+ "Threading",
282325
+ "Throttling",
282326
+ "Tracing",
282327
+ "Transcompiling",
282328
+ "Transcoding",
282329
+ "Transmitting",
282330
+ "Traversing",
282331
+ "Triangulating",
282332
+ "Tunneling",
282333
+ "Unboxing",
282334
+ "Unlocking",
282335
+ "Unpacking",
282336
+ "Uplinked",
282337
+ "Validating",
282338
+ "Vectorizing",
282339
+ "Voxelizing",
282349
282340
  "Warping",
282350
- "Whatchamacalliting",
282351
- "Whirlpooling",
282352
- "Whirring",
282353
- "Whisking",
282354
- "Wibbling",
282355
- "Working",
282356
- "Wrangling",
282357
- "Zesting",
282358
- "Zigzagging"
282341
+ "Wiring",
282342
+ "Zeroing in"
282359
282343
  ];
282360
282344
  });
282361
282345
 
@@ -347237,7 +347221,7 @@ var init_utils9 = __esm(() => {
347237
347221
  init_preapproved();
347238
347222
  DomainBlockedError = class DomainBlockedError extends Error {
347239
347223
  constructor(domain2) {
347240
- super(`Claude Code is unable to fetch from ${domain2}`);
347224
+ super(`Stratagem is unable to fetch from ${domain2}`);
347241
347225
  this.name = "DomainBlockedError";
347242
347226
  }
347243
347227
  };
@@ -353622,9 +353606,9 @@ var init_WebFetchTool = __esm(() => {
353622
353606
  const { url: url4 } = input;
353623
353607
  try {
353624
353608
  const hostname3 = new URL(url4).hostname;
353625
- return `Claude wants to fetch content from ${hostname3}`;
353609
+ return `Stratagem wants to fetch content from ${hostname3}`;
353626
353610
  } catch {
353627
- return `Claude wants to fetch content from this URL`;
353611
+ return `Stratagem wants to fetch content from this URL`;
353628
353612
  }
353629
353613
  },
353630
353614
  userFacingName() {
@@ -353680,7 +353664,7 @@ var init_WebFetchTool = __esm(() => {
353680
353664
  if (askRule) {
353681
353665
  return {
353682
353666
  behavior: "ask",
353683
- message: `Claude requested permissions to use ${WebFetchTool.name}, but you haven't granted it yet.`,
353667
+ message: `Stratagem requested permissions to use ${WebFetchTool.name}, but you haven't granted it yet.`,
353684
353668
  decisionReason: {
353685
353669
  type: "rule",
353686
353670
  rule: askRule
@@ -353701,7 +353685,7 @@ var init_WebFetchTool = __esm(() => {
353701
353685
  }
353702
353686
  return {
353703
353687
  behavior: "ask",
353704
- message: `Claude requested permissions to use ${WebFetchTool.name}, but you haven't granted it yet.`,
353688
+ message: `Stratagem requested permissions to use ${WebFetchTool.name}, but you haven't granted it yet.`,
353705
353689
  suggestions: buildSuggestions(ruleContent)
353706
353690
  };
353707
353691
  },
@@ -354571,6 +354555,186 @@ var init_BriefTool = __esm(() => {
354571
354555
  });
354572
354556
  });
354573
354557
 
354558
+ // src/utils/autonomy.ts
354559
+ function normalizeAutonomyMode(value) {
354560
+ return typeof value === "string" && AUTONOMY_MODES.includes(value) ? value : "off";
354561
+ }
354562
+ function getAutonomyModeFromSettings(settings) {
354563
+ return normalizeAutonomyMode(settings?.autonomyMode);
354564
+ }
354565
+ function autonomyModeTitle(mode) {
354566
+ switch (mode) {
354567
+ case "smart":
354568
+ return "SMART";
354569
+ case "aggressive":
354570
+ return "AGGRESSIVE";
354571
+ default:
354572
+ return "OFF";
354573
+ }
354574
+ }
354575
+ function autonomyModeDescription(mode) {
354576
+ switch (mode) {
354577
+ case "smart":
354578
+ return "Classifier-driven autonomy with minimal prompts for routine work.";
354579
+ case "aggressive":
354580
+ return "Maximum autonomy with bypass-style execution and no permission prompts.";
354581
+ default:
354582
+ return "Manual approval flow stays in control.";
354583
+ }
354584
+ }
354585
+ function autonomyModeColor(mode) {
354586
+ switch (mode) {
354587
+ case "smart":
354588
+ return "promptBorder";
354589
+ case "aggressive":
354590
+ return "claude";
354591
+ default:
354592
+ return "inactive";
354593
+ }
354594
+ }
354595
+ function getNextAutonomyMode(mode) {
354596
+ switch (mode) {
354597
+ case "off":
354598
+ return "smart";
354599
+ case "smart":
354600
+ return "aggressive";
354601
+ default:
354602
+ return "off";
354603
+ }
354604
+ }
354605
+ function autonomyModeToPermissionMode(mode, context5) {
354606
+ switch (mode) {
354607
+ case "aggressive":
354608
+ return "bypassPermissions";
354609
+ case "smart":
354610
+ if (false) {}
354611
+ return "acceptEdits";
354612
+ default:
354613
+ return "default";
354614
+ }
354615
+ }
354616
+ function applyAutonomyModeToPermissionContext(context5, autonomyMode) {
354617
+ const targetMode = autonomyModeToPermissionMode(autonomyMode, context5);
354618
+ const contextWithAvailability = autonomyMode === "aggressive" ? { ...context5, isBypassPermissionsModeAvailable: true } : context5;
354619
+ const transitioned = transitionPermissionMode(context5.mode, targetMode, contextWithAvailability);
354620
+ return {
354621
+ ...transitioned,
354622
+ mode: targetMode,
354623
+ ...autonomyMode === "aggressive" ? { isBypassPermissionsModeAvailable: true } : {}
354624
+ };
354625
+ }
354626
+ var AUTONOMY_MODES;
354627
+ var init_autonomy = __esm(() => {
354628
+ init_permissionSetup();
354629
+ AUTONOMY_MODES = ["off", "smart", "aggressive"];
354630
+ });
354631
+
354632
+ // src/tools/UserInputTool/UserInputTool.ts
354633
+ var USER_INPUT_TOOL_NAME = "user_input", DESCRIPTION12 = "Inject user-level input into the REPL command queue. Execute any slash command or inject text as if the user typed it. Only available in BUFFER:AGGRESSIVE mode.", inputSchema20, outputSchema17, UserInputTool;
354634
+ var init_UserInputTool = __esm(() => {
354635
+ init_v4();
354636
+ init_Tool();
354637
+ init_messageQueueManager();
354638
+ init_autonomy();
354639
+ init_settings2();
354640
+ inputSchema20 = lazySchema(() => exports_external.strictObject({
354641
+ command: exports_external.string().describe('The input to inject, exactly as the user would type it. For slash commands, include the leading slash (e.g. "/compact", "/new", "/clear", "/help"). For plain text, it will be processed as a user message.'),
354642
+ reason: exports_external.string().describe('Brief explanation of why this input injection is needed (e.g. "context window is 80% full, compacting to free space").')
354643
+ }));
354644
+ outputSchema17 = lazySchema(() => exports_external.object({
354645
+ status: exports_external.enum(["injected", "rejected"]),
354646
+ command: exports_external.string(),
354647
+ message: exports_external.string()
354648
+ }));
354649
+ UserInputTool = buildTool({
354650
+ name: USER_INPUT_TOOL_NAME,
354651
+ searchHint: "inject user input, run slash commands autonomously, self-execute commands",
354652
+ maxResultSizeChars: 1000,
354653
+ userFacingName() {
354654
+ return "";
354655
+ },
354656
+ get inputSchema() {
354657
+ return inputSchema20();
354658
+ },
354659
+ get outputSchema() {
354660
+ return outputSchema17();
354661
+ },
354662
+ isEnabled() {
354663
+ const settings = getSettings_DEPRECATED();
354664
+ const mode = getAutonomyModeFromSettings(settings ?? undefined);
354665
+ return mode === "aggressive";
354666
+ },
354667
+ isConcurrencySafe() {
354668
+ return false;
354669
+ },
354670
+ isReadOnly() {
354671
+ return false;
354672
+ },
354673
+ async description() {
354674
+ return DESCRIPTION12;
354675
+ },
354676
+ mapToolResultToToolResultBlockParam(output, toolUseID) {
354677
+ return {
354678
+ tool_use_id: toolUseID,
354679
+ type: "tool_result",
354680
+ content: `${output.status}: ${output.message}`
354681
+ };
354682
+ },
354683
+ async prompt() {
354684
+ return `Use this tool to inject user-level input into the REPL. This allows you to autonomously execute ANY slash command or send text as if the user typed it. You have full access to everything the user can do.
354685
+
354686
+ ## You can invoke ANY slash command, including but not limited to:
354687
+ - \`/compact\` — Compress conversation context to free up space
354688
+ - \`/new\` — Start a fresh session (preserves old session on disk)
354689
+ - \`/clear\` — Same as /new, clears and starts fresh
354690
+ - \`/model <name>\` — Switch the active model
354691
+ - \`/provider\` — Open the provider manager
354692
+ - \`/help\` — Show help information
354693
+ - \`/config\` — Open configuration
354694
+ - \`/resume\` — Resume a previous session
354695
+ - Any other slash command the user has access to
354696
+
354697
+ ## When to use:
354698
+ - Context is getting full → inject "/compact" to free space
354699
+ - Task is complete and user wants a fresh start → inject "/new"
354700
+ - Need to switch models mid-task → inject "/model <model-name>"
354701
+ - User asks you to run any slash command → inject it directly
354702
+
354703
+ ## Rules:
354704
+ - ALWAYS provide a reason for the injection
354705
+ - Do NOT use this for normal conversation — use your regular response instead
354706
+ - This tool is ONLY available in BUFFER:AGGRESSIVE mode
354707
+ - You can inject ANY valid slash command — there are no restrictions`;
354708
+ },
354709
+ async call({ command, reason }) {
354710
+ const settings = getSettings_DEPRECATED();
354711
+ const mode = getAutonomyModeFromSettings(settings ?? undefined);
354712
+ if (mode !== "aggressive") {
354713
+ return {
354714
+ data: {
354715
+ status: "rejected",
354716
+ command,
354717
+ message: `UserInput rejected: BUFFER mode is "${mode}", not "aggressive". This tool is only available in BUFFER:AGGRESSIVE mode.`
354718
+ }
354719
+ };
354720
+ }
354721
+ enqueuePendingNotification({
354722
+ value: command,
354723
+ mode: "prompt",
354724
+ priority: "next",
354725
+ isMeta: true
354726
+ });
354727
+ return {
354728
+ data: {
354729
+ status: "injected",
354730
+ command,
354731
+ message: `Injected "${command}" into REPL queue. Reason: ${reason}. It will execute after the current turn completes.`
354732
+ }
354733
+ };
354734
+ }
354735
+ });
354736
+ });
354737
+
354574
354738
  // src/utils/task/outputFormatting.ts
354575
354739
  function getMaxTaskOutputLength() {
354576
354740
  const result = validateBoundedIntEnvVar("TASK_MAX_OUTPUT_LENGTH", process.env.TASK_MAX_OUTPUT_LENGTH, TASK_MAX_OUTPUT_DEFAULT, TASK_MAX_OUTPUT_UPPER_LIMIT);
@@ -355026,7 +355190,7 @@ function TaskOutputResultDisplay(t0) {
355026
355190
  }
355027
355191
  return t5;
355028
355192
  }
355029
- var import_react_compiler_runtime117, jsx_dev_runtime143, inputSchema20, TaskOutputTool;
355193
+ var import_react_compiler_runtime117, jsx_dev_runtime143, inputSchema21, TaskOutputTool;
355030
355194
  var init_TaskOutputTool = __esm(() => {
355031
355195
  init_v4();
355032
355196
  init_FallbackToolUseErrorMessage();
@@ -355047,7 +355211,7 @@ var init_TaskOutputTool = __esm(() => {
355047
355211
  init_BashToolResultMessage();
355048
355212
  import_react_compiler_runtime117 = __toESM(require_dist3(), 1);
355049
355213
  jsx_dev_runtime143 = __toESM(require_jsx_dev_runtime(), 1);
355050
- inputSchema20 = lazySchema(() => exports_external.strictObject({
355214
+ inputSchema21 = lazySchema(() => exports_external.strictObject({
355051
355215
  task_id: exports_external.string().describe("The task ID to get output from"),
355052
355216
  block: semanticBoolean(exports_external.boolean().default(true)).describe("Whether to wait for completion"),
355053
355217
  timeout: exports_external.number().min(0).max(600000).default(30000).describe("Max wait time in ms")
@@ -355062,7 +355226,7 @@ var init_TaskOutputTool = __esm(() => {
355062
355226
  return "Task Output";
355063
355227
  },
355064
355228
  get inputSchema() {
355065
- return inputSchema20();
355229
+ return inputSchema21();
355066
355230
  },
355067
355231
  async description() {
355068
355232
  return "[Deprecated] — prefer Read on the task output file path";
@@ -363976,7 +364140,7 @@ function shouldUseAdapterProvider() {
363976
364140
  }
363977
364141
  return getAvailableProviders().length > 0;
363978
364142
  }
363979
- var inputSchema21, searchResultSchema, outputSchema17, WebSearchTool;
364143
+ var inputSchema22, searchResultSchema, outputSchema18, WebSearchTool;
363980
364144
  var init_WebSearchTool = __esm(() => {
363981
364145
  init_providers();
363982
364146
  init_v4();
@@ -363993,7 +364157,7 @@ var init_WebSearchTool = __esm(() => {
363993
364157
  init_prompt5();
363994
364158
  init_UI16();
363995
364159
  init_providers2();
363996
- inputSchema21 = lazySchema(() => exports_external.strictObject({
364160
+ inputSchema22 = lazySchema(() => exports_external.strictObject({
363997
364161
  query: exports_external.string().min(2).describe("The search query to use"),
363998
364162
  allowed_domains: exports_external.array(exports_external.string()).optional().describe("Only include search results from these domains"),
363999
364163
  blocked_domains: exports_external.array(exports_external.string()).optional().describe("Never include search results from these domains")
@@ -364008,7 +364172,7 @@ var init_WebSearchTool = __esm(() => {
364008
364172
  content: exports_external.array(searchHitSchema).describe("Array of search hits")
364009
364173
  });
364010
364174
  });
364011
- outputSchema17 = lazySchema(() => exports_external.object({
364175
+ outputSchema18 = lazySchema(() => exports_external.object({
364012
364176
  query: exports_external.string().describe("The search query that was executed"),
364013
364177
  results: exports_external.array(exports_external.union([searchResultSchema(), exports_external.string()])).describe("Search results and/or text commentary from the model"),
364014
364178
  durationSeconds: exports_external.number().describe("Time taken to complete the search operation")
@@ -364019,7 +364183,7 @@ var init_WebSearchTool = __esm(() => {
364019
364183
  maxResultSizeChars: 1e5,
364020
364184
  shouldDefer: true,
364021
364185
  async description(input) {
364022
- return `Claude wants to search the web for: ${input.query}`;
364186
+ return `Stratagem wants to search the web for: ${input.query}`;
364023
364187
  },
364024
364188
  userFacingName() {
364025
364189
  return "Web Search";
@@ -364053,10 +364217,10 @@ var init_WebSearchTool = __esm(() => {
364053
364217
  return false;
364054
364218
  },
364055
364219
  get inputSchema() {
364056
- return inputSchema21();
364220
+ return inputSchema22();
364057
364221
  },
364058
364222
  get outputSchema() {
364059
- return outputSchema17();
364223
+ return outputSchema18();
364060
364224
  },
364061
364225
  isConcurrencySafe() {
364062
364226
  return true;
@@ -364458,7 +364622,7 @@ var init_UI17 = __esm(() => {
364458
364622
 
364459
364623
  // src/tools/ExitPlanModeTool/ExitPlanModeV2Tool.ts
364460
364624
  import { writeFile as writeFile19 } from "fs/promises";
364461
- var permissionSetupModule = null, allowedPromptSchema, inputSchema22, _sdkInputSchema, outputSchema18, ExitPlanModeV2Tool;
364625
+ var permissionSetupModule = null, allowedPromptSchema, inputSchema23, _sdkInputSchema, outputSchema19, ExitPlanModeV2Tool;
364462
364626
  var init_ExitPlanModeV2Tool = __esm(() => {
364463
364627
  init_v4();
364464
364628
  init_state();
@@ -364478,14 +364642,14 @@ var init_ExitPlanModeV2Tool = __esm(() => {
364478
364642
  tool: exports_external.enum(["Bash"]).describe("The tool this prompt applies to"),
364479
364643
  prompt: exports_external.string().describe('Semantic description of the action, e.g. "run tests", "install dependencies"')
364480
364644
  }));
364481
- inputSchema22 = lazySchema(() => exports_external.strictObject({
364645
+ inputSchema23 = lazySchema(() => exports_external.strictObject({
364482
364646
  allowedPrompts: exports_external.array(allowedPromptSchema()).optional().describe("Prompt-based permissions needed to implement the plan. These describe categories of actions rather than specific commands.")
364483
364647
  }).passthrough());
364484
- _sdkInputSchema = lazySchema(() => inputSchema22().extend({
364648
+ _sdkInputSchema = lazySchema(() => inputSchema23().extend({
364485
364649
  plan: exports_external.string().optional().describe("The plan content (injected by normalizeToolInput from disk)"),
364486
364650
  planFilePath: exports_external.string().optional().describe("The plan file path (injected by normalizeToolInput)")
364487
364651
  }));
364488
- outputSchema18 = lazySchema(() => exports_external.object({
364652
+ outputSchema19 = lazySchema(() => exports_external.object({
364489
364653
  plan: exports_external.string().nullable().describe("The plan that was presented to the user"),
364490
364654
  isAgent: exports_external.boolean(),
364491
364655
  filePath: exports_external.string().optional().describe("The file path where the plan was saved"),
@@ -364505,10 +364669,10 @@ var init_ExitPlanModeV2Tool = __esm(() => {
364505
364669
  return EXIT_PLAN_MODE_V2_TOOL_PROMPT;
364506
364670
  },
364507
364671
  get inputSchema() {
364508
- return inputSchema22();
364672
+ return inputSchema23();
364509
364673
  },
364510
364674
  get outputSchema() {
364511
- return outputSchema18();
364675
+ return outputSchema19();
364512
364676
  },
364513
364677
  userFacingName() {
364514
364678
  return "";
@@ -364717,11 +364881,11 @@ ${plan}`,
364717
364881
  });
364718
364882
 
364719
364883
  // src/tools/testing/TestingPermissionTool.tsx
364720
- var NAME = "TestingPermission", inputSchema23, TestingPermissionTool;
364884
+ var NAME = "TestingPermission", inputSchema24, TestingPermissionTool;
364721
364885
  var init_TestingPermissionTool = __esm(() => {
364722
364886
  init_v4();
364723
364887
  init_Tool();
364724
- inputSchema23 = lazySchema(() => exports_external.strictObject({}));
364888
+ inputSchema24 = lazySchema(() => exports_external.strictObject({}));
364725
364889
  TestingPermissionTool = buildTool({
364726
364890
  name: NAME,
364727
364891
  maxResultSizeChars: 1e5,
@@ -364732,7 +364896,7 @@ var init_TestingPermissionTool = __esm(() => {
364732
364896
  return "Test tool that always asks for permission before executing. Used for end-to-end testing.";
364733
364897
  },
364734
364898
  get inputSchema() {
364735
- return inputSchema23();
364899
+ return inputSchema24();
364736
364900
  },
364737
364901
  userFacingName() {
364738
364902
  return "TestingPermission";
@@ -364860,7 +365024,7 @@ function validateHtmlPreview(preview) {
364860
365024
  }
364861
365025
  return null;
364862
365026
  }
364863
- var import_react_compiler_runtime118, jsx_dev_runtime146, questionOptionSchema, questionSchema, annotationsSchema, UNIQUENESS_REFINE, commonFields, inputSchema24, outputSchema19, AskUserQuestionTool;
365027
+ var import_react_compiler_runtime118, jsx_dev_runtime146, questionOptionSchema, questionSchema, annotationsSchema, UNIQUENESS_REFINE, commonFields, inputSchema25, outputSchema20, AskUserQuestionTool;
364864
365028
  var init_AskUserQuestionTool = __esm(() => {
364865
365029
  init_state();
364866
365030
  init_MessageResponse();
@@ -364913,13 +365077,13 @@ var init_AskUserQuestionTool = __esm(() => {
364913
365077
  source: exports_external.string().optional().describe('Optional identifier for the source of this question (e.g., "remember" for /remember command). Used for analytics tracking.')
364914
365078
  }).optional().describe("Optional metadata for tracking and analytics purposes. Not displayed to user.")
364915
365079
  }));
364916
- inputSchema24 = lazySchema(() => exports_external.strictObject({
365080
+ inputSchema25 = lazySchema(() => exports_external.strictObject({
364917
365081
  questions: exports_external.array(questionSchema()).min(1).max(4).describe("Questions to ask the user (1-4 questions)"),
364918
365082
  ...commonFields()
364919
365083
  }).refine(UNIQUENESS_REFINE.check, {
364920
365084
  message: UNIQUENESS_REFINE.message
364921
365085
  }));
364922
- outputSchema19 = lazySchema(() => exports_external.object({
365086
+ outputSchema20 = lazySchema(() => exports_external.object({
364923
365087
  questions: exports_external.array(questionSchema()).describe("The questions that were asked"),
364924
365088
  answers: exports_external.record(exports_external.string(), exports_external.string()).describe("The answers provided by the user (question text -> answer string; multi-select answers are comma-separated)"),
364925
365089
  annotations: annotationsSchema()
@@ -364940,10 +365104,10 @@ var init_AskUserQuestionTool = __esm(() => {
364940
365104
  return ASK_USER_QUESTION_TOOL_PROMPT + PREVIEW_FEATURE_PROMPT[format4];
364941
365105
  },
364942
365106
  get inputSchema() {
364943
- return inputSchema24();
365107
+ return inputSchema25();
364944
365108
  },
364945
365109
  get outputSchema() {
364946
- return outputSchema19();
365110
+ return outputSchema20();
364947
365111
  },
364948
365112
  userFacingName() {
364949
365113
  return "";
@@ -365427,7 +365591,7 @@ var init_formatters = __esm(() => {
365427
365591
  });
365428
365592
 
365429
365593
  // src/tools/LSPTool/prompt.ts
365430
- var LSP_TOOL_NAME = "LSP", DESCRIPTION12 = `Interact with Language Server Protocol (LSP) servers to get code intelligence features.
365594
+ var LSP_TOOL_NAME = "LSP", DESCRIPTION13 = `Interact with Language Server Protocol (LSP) servers to get code intelligence features.
365431
365595
 
365432
365596
  Supported operations:
365433
365597
  - goToDefinition: Find where a symbol is defined
@@ -366119,7 +366283,7 @@ function countUniqueFilesFromOutgoingCalls(calls) {
366119
366283
  const validUris = calls.map((call5) => call5.to?.uri).filter((uri) => uri);
366120
366284
  return new Set(validUris).size;
366121
366285
  }
366122
- var MAX_LSP_FILE_SIZE_BYTES = 1e7, inputSchema25, outputSchema20, LSPTool;
366286
+ var MAX_LSP_FILE_SIZE_BYTES = 1e7, inputSchema26, outputSchema21, LSPTool;
366123
366287
  var init_LSPTool = __esm(() => {
366124
366288
  init_v4();
366125
366289
  init_manager();
@@ -366135,7 +366299,7 @@ var init_LSPTool = __esm(() => {
366135
366299
  init_formatters();
366136
366300
  init_schemas5();
366137
366301
  init_UI18();
366138
- inputSchema25 = lazySchema(() => exports_external.strictObject({
366302
+ inputSchema26 = lazySchema(() => exports_external.strictObject({
366139
366303
  operation: exports_external.enum([
366140
366304
  "goToDefinition",
366141
366305
  "findReferences",
@@ -366151,7 +366315,7 @@ var init_LSPTool = __esm(() => {
366151
366315
  line: exports_external.number().int().positive().describe("The line number (1-based, as shown in editors)"),
366152
366316
  character: exports_external.number().int().positive().describe("The character offset (1-based, as shown in editors)")
366153
366317
  }));
366154
- outputSchema20 = lazySchema(() => exports_external.object({
366318
+ outputSchema21 = lazySchema(() => exports_external.object({
366155
366319
  operation: exports_external.enum([
366156
366320
  "goToDefinition",
366157
366321
  "findReferences",
@@ -366174,7 +366338,7 @@ var init_LSPTool = __esm(() => {
366174
366338
  maxResultSizeChars: 1e5,
366175
366339
  isLsp: true,
366176
366340
  async description() {
366177
- return DESCRIPTION12;
366341
+ return DESCRIPTION13;
366178
366342
  },
366179
366343
  userFacingName: userFacingName6,
366180
366344
  shouldDefer: true,
@@ -366182,10 +366346,10 @@ var init_LSPTool = __esm(() => {
366182
366346
  return isLspConnected();
366183
366347
  },
366184
366348
  get inputSchema() {
366185
- return inputSchema25();
366349
+ return inputSchema26();
366186
366350
  },
366187
366351
  get outputSchema() {
366188
- return outputSchema20();
366352
+ return outputSchema21();
366189
366353
  },
366190
366354
  isConcurrencySafe() {
366191
366355
  return true;
@@ -366243,7 +366407,7 @@ var init_LSPTool = __esm(() => {
366243
366407
  return checkReadPermissionForTool(LSPTool, input, appState.toolPermissionContext);
366244
366408
  },
366245
366409
  async prompt() {
366246
- return DESCRIPTION12;
366410
+ return DESCRIPTION13;
366247
366411
  },
366248
366412
  renderToolUseMessage: renderToolUseMessage19,
366249
366413
  renderToolUseErrorMessage: renderToolUseErrorMessage10,
@@ -366543,7 +366707,7 @@ function renderToolResultMessage19(_output, _progressMessagesForMessage, _option
366543
366707
  paddingLeft: 2,
366544
366708
  children: /* @__PURE__ */ jsx_dev_runtime148.jsxDEV(ThemedText, {
366545
366709
  dimColor: true,
366546
- children: "Claude is now exploring and designing an implementation approach."
366710
+ children: "Stratagem is now exploring and designing an implementation approach."
366547
366711
  }, undefined, false, undefined, this)
366548
366712
  }, undefined, false, undefined, this)
366549
366713
  ]
@@ -366573,7 +366737,7 @@ var init_UI19 = __esm(() => {
366573
366737
  });
366574
366738
 
366575
366739
  // src/tools/EnterPlanModeTool/EnterPlanModeTool.ts
366576
- var inputSchema26, outputSchema21, EnterPlanModeTool;
366740
+ var inputSchema27, outputSchema22, EnterPlanModeTool;
366577
366741
  var init_EnterPlanModeTool = __esm(() => {
366578
366742
  init_v4();
366579
366743
  init_state();
@@ -366583,8 +366747,8 @@ var init_EnterPlanModeTool = __esm(() => {
366583
366747
  init_planModeV2();
366584
366748
  init_prompt16();
366585
366749
  init_UI19();
366586
- inputSchema26 = lazySchema(() => exports_external.strictObject({}));
366587
- outputSchema21 = lazySchema(() => exports_external.object({
366750
+ inputSchema27 = lazySchema(() => exports_external.strictObject({}));
366751
+ outputSchema22 = lazySchema(() => exports_external.object({
366588
366752
  message: exports_external.string().describe("Confirmation that plan mode was entered")
366589
366753
  }));
366590
366754
  EnterPlanModeTool = buildTool({
@@ -366598,10 +366762,10 @@ var init_EnterPlanModeTool = __esm(() => {
366598
366762
  return getEnterPlanModeToolPrompt();
366599
366763
  },
366600
366764
  get inputSchema() {
366601
- return inputSchema26();
366765
+ return inputSchema27();
366602
366766
  },
366603
366767
  get outputSchema() {
366604
- return outputSchema21();
366768
+ return outputSchema22();
366605
366769
  },
366606
366770
  userFacingName() {
366607
366771
  return "";
@@ -366748,7 +366912,7 @@ var init_UI20 = __esm(() => {
366748
366912
  });
366749
366913
 
366750
366914
  // src/tools/EnterWorktreeTool/EnterWorktreeTool.ts
366751
- var inputSchema27, outputSchema22, EnterWorktreeTool;
366915
+ var inputSchema28, outputSchema23, EnterWorktreeTool;
366752
366916
  var init_EnterWorktreeTool = __esm(() => {
366753
366917
  init_v4();
366754
366918
  init_state();
@@ -366762,7 +366926,7 @@ var init_EnterWorktreeTool = __esm(() => {
366762
366926
  init_sessionStorage();
366763
366927
  init_worktree();
366764
366928
  init_UI20();
366765
- inputSchema27 = lazySchema(() => exports_external.strictObject({
366929
+ inputSchema28 = lazySchema(() => exports_external.strictObject({
366766
366930
  name: exports_external.string().superRefine((s, ctx) => {
366767
366931
  try {
366768
366932
  validateWorktreeSlug(s);
@@ -366771,7 +366935,7 @@ var init_EnterWorktreeTool = __esm(() => {
366771
366935
  }
366772
366936
  }).optional().describe('Optional name for the worktree. Each "/"-separated segment may contain only letters, digits, dots, underscores, and dashes; max 64 chars total. A random name is generated if not provided.')
366773
366937
  }));
366774
- outputSchema22 = lazySchema(() => exports_external.object({
366938
+ outputSchema23 = lazySchema(() => exports_external.object({
366775
366939
  worktreePath: exports_external.string(),
366776
366940
  worktreeBranch: exports_external.string().optional(),
366777
366941
  message: exports_external.string()
@@ -366787,10 +366951,10 @@ var init_EnterWorktreeTool = __esm(() => {
366787
366951
  return getEnterWorktreeToolPrompt();
366788
366952
  },
366789
366953
  get inputSchema() {
366790
- return inputSchema27();
366954
+ return inputSchema28();
366791
366955
  },
366792
366956
  get outputSchema() {
366793
- return outputSchema22();
366957
+ return outputSchema23();
366794
366958
  },
366795
366959
  userFacingName() {
366796
366960
  return "Creating worktree";
@@ -366957,7 +367121,7 @@ function restoreSessionToOriginalCwd(originalCwd, projectRootIsWorktree) {
366957
367121
  clearMemoryFileCaches();
366958
367122
  getPlansDirectory.cache.clear?.();
366959
367123
  }
366960
- var inputSchema28, outputSchema23, ExitWorktreeTool;
367124
+ var inputSchema29, outputSchema24, ExitWorktreeTool;
366961
367125
  var init_ExitWorktreeTool = __esm(() => {
366962
367126
  init_v4();
366963
367127
  init_state();
@@ -366971,11 +367135,11 @@ var init_ExitWorktreeTool = __esm(() => {
366971
367135
  init_sessionStorage();
366972
367136
  init_worktree();
366973
367137
  init_UI21();
366974
- inputSchema28 = lazySchema(() => exports_external.strictObject({
367138
+ inputSchema29 = lazySchema(() => exports_external.strictObject({
366975
367139
  action: exports_external.enum(["keep", "remove"]).describe('"keep" leaves the worktree and branch on disk; "remove" deletes both.'),
366976
367140
  discard_changes: exports_external.boolean().optional().describe('Required true when action is "remove" and the worktree has uncommitted files or unmerged commits. The tool will refuse and list them otherwise.')
366977
367141
  }));
366978
- outputSchema23 = lazySchema(() => exports_external.object({
367142
+ outputSchema24 = lazySchema(() => exports_external.object({
366979
367143
  action: exports_external.enum(["keep", "remove"]),
366980
367144
  originalCwd: exports_external.string(),
366981
367145
  worktreePath: exports_external.string(),
@@ -366996,10 +367160,10 @@ var init_ExitWorktreeTool = __esm(() => {
366996
367160
  return getExitWorktreeToolPrompt();
366997
367161
  },
366998
367162
  get inputSchema() {
366999
- return inputSchema28();
367163
+ return inputSchema29();
367000
367164
  },
367001
367165
  get outputSchema() {
367002
- return outputSchema23();
367166
+ return outputSchema24();
367003
367167
  },
367004
367168
  userFacingName() {
367005
367169
  return "Exiting worktree";
@@ -367170,13 +367334,13 @@ All tasks are created with status \`pending\`.
367170
367334
  ${teammateTips}- Check TaskList first to avoid creating duplicate tasks
367171
367335
  `;
367172
367336
  }
367173
- var DESCRIPTION13 = "Create a new task in the task list";
367337
+ var DESCRIPTION14 = "Create a new task in the task list";
367174
367338
  var init_prompt17 = __esm(() => {
367175
367339
  init_agentSwarmsEnabled();
367176
367340
  });
367177
367341
 
367178
367342
  // src/tools/TaskCreateTool/TaskCreateTool.ts
367179
- var inputSchema29, outputSchema24, TaskCreateTool;
367343
+ var inputSchema30, outputSchema25, TaskCreateTool;
367180
367344
  var init_TaskCreateTool = __esm(() => {
367181
367345
  init_v4();
367182
367346
  init_Tool();
@@ -367184,13 +367348,13 @@ var init_TaskCreateTool = __esm(() => {
367184
367348
  init_tasks();
367185
367349
  init_teammate();
367186
367350
  init_prompt17();
367187
- inputSchema29 = lazySchema(() => exports_external.strictObject({
367351
+ inputSchema30 = lazySchema(() => exports_external.strictObject({
367188
367352
  subject: exports_external.string().describe("A brief title for the task"),
367189
367353
  description: exports_external.string().describe("What needs to be done"),
367190
367354
  activeForm: exports_external.string().optional().describe('Present continuous form shown in spinner when in_progress (e.g., "Running tests")'),
367191
367355
  metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional().describe("Arbitrary metadata to attach to the task")
367192
367356
  }));
367193
- outputSchema24 = lazySchema(() => exports_external.object({
367357
+ outputSchema25 = lazySchema(() => exports_external.object({
367194
367358
  task: exports_external.object({
367195
367359
  id: exports_external.string(),
367196
367360
  subject: exports_external.string()
@@ -367201,16 +367365,16 @@ var init_TaskCreateTool = __esm(() => {
367201
367365
  searchHint: "create a task in the task list",
367202
367366
  maxResultSizeChars: 1e5,
367203
367367
  async description() {
367204
- return DESCRIPTION13;
367368
+ return DESCRIPTION14;
367205
367369
  },
367206
367370
  async prompt() {
367207
367371
  return getPrompt4();
367208
367372
  },
367209
367373
  get inputSchema() {
367210
- return inputSchema29();
367374
+ return inputSchema30();
367211
367375
  },
367212
367376
  get outputSchema() {
367213
- return outputSchema24();
367377
+ return outputSchema25();
367214
367378
  },
367215
367379
  userFacingName() {
367216
367380
  return "TaskCreate";
@@ -367277,7 +367441,7 @@ var init_TaskCreateTool = __esm(() => {
367277
367441
  });
367278
367442
 
367279
367443
  // src/tools/TaskGetTool/prompt.ts
367280
- var DESCRIPTION14 = "Get a task by ID from the task list", PROMPT6 = `Use this tool to retrieve a task by its ID from the task list.
367444
+ var DESCRIPTION15 = "Get a task by ID from the task list", PROMPT6 = `Use this tool to retrieve a task by its ID from the task list.
367281
367445
 
367282
367446
  ## When to Use This Tool
367283
367447
 
@@ -367301,15 +367465,15 @@ Returns full task details:
367301
367465
  `;
367302
367466
 
367303
367467
  // src/tools/TaskGetTool/TaskGetTool.ts
367304
- var inputSchema30, outputSchema25, TaskGetTool;
367468
+ var inputSchema31, outputSchema26, TaskGetTool;
367305
367469
  var init_TaskGetTool = __esm(() => {
367306
367470
  init_v4();
367307
367471
  init_Tool();
367308
367472
  init_tasks();
367309
- inputSchema30 = lazySchema(() => exports_external.strictObject({
367473
+ inputSchema31 = lazySchema(() => exports_external.strictObject({
367310
367474
  taskId: exports_external.string().describe("The ID of the task to retrieve")
367311
367475
  }));
367312
- outputSchema25 = lazySchema(() => exports_external.object({
367476
+ outputSchema26 = lazySchema(() => exports_external.object({
367313
367477
  task: exports_external.object({
367314
367478
  id: exports_external.string(),
367315
367479
  subject: exports_external.string(),
@@ -367324,16 +367488,16 @@ var init_TaskGetTool = __esm(() => {
367324
367488
  searchHint: "retrieve a task by ID",
367325
367489
  maxResultSizeChars: 1e5,
367326
367490
  async description() {
367327
- return DESCRIPTION14;
367491
+ return DESCRIPTION15;
367328
367492
  },
367329
367493
  async prompt() {
367330
367494
  return PROMPT6;
367331
367495
  },
367332
367496
  get inputSchema() {
367333
- return inputSchema30();
367497
+ return inputSchema31();
367334
367498
  },
367335
367499
  get outputSchema() {
367336
- return outputSchema25();
367500
+ return outputSchema26();
367337
367501
  },
367338
367502
  userFacingName() {
367339
367503
  return "TaskGet";
@@ -367408,7 +367572,7 @@ var init_TaskGetTool = __esm(() => {
367408
367572
  });
367409
367573
 
367410
367574
  // src/tools/TaskUpdateTool/prompt.ts
367411
- var DESCRIPTION15 = "Update a task in the task list", PROMPT7 = `Use this tool to update a task in the task list.
367575
+ var DESCRIPTION16 = "Update a task in the task list", PROMPT7 = `Use this tool to update a task in the task list.
367412
367576
 
367413
367577
  ## When to Use This Tool
367414
367578
 
@@ -367485,7 +367649,7 @@ Set up task dependencies:
367485
367649
  `;
367486
367650
 
367487
367651
  // src/tools/TaskUpdateTool/TaskUpdateTool.ts
367488
- var inputSchema31, outputSchema26, TaskUpdateTool;
367652
+ var inputSchema32, outputSchema27, TaskUpdateTool;
367489
367653
  var init_TaskUpdateTool = __esm(() => {
367490
367654
  init_v4();
367491
367655
  init_growthbook();
@@ -367496,7 +367660,7 @@ var init_TaskUpdateTool = __esm(() => {
367496
367660
  init_teammate();
367497
367661
  init_teammateMailbox();
367498
367662
  init_constants3();
367499
- inputSchema31 = lazySchema(() => {
367663
+ inputSchema32 = lazySchema(() => {
367500
367664
  const TaskUpdateStatusSchema = TaskStatusSchema2().or(exports_external.literal("deleted"));
367501
367665
  return exports_external.strictObject({
367502
367666
  taskId: exports_external.string().describe("The ID of the task to update"),
@@ -367510,7 +367674,7 @@ var init_TaskUpdateTool = __esm(() => {
367510
367674
  metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional().describe("Metadata keys to merge into the task. Set a key to null to delete it.")
367511
367675
  });
367512
367676
  });
367513
- outputSchema26 = lazySchema(() => exports_external.object({
367677
+ outputSchema27 = lazySchema(() => exports_external.object({
367514
367678
  success: exports_external.boolean(),
367515
367679
  taskId: exports_external.string(),
367516
367680
  updatedFields: exports_external.array(exports_external.string()),
@@ -367526,16 +367690,16 @@ var init_TaskUpdateTool = __esm(() => {
367526
367690
  searchHint: "update a task",
367527
367691
  maxResultSizeChars: 1e5,
367528
367692
  async description() {
367529
- return DESCRIPTION15;
367693
+ return DESCRIPTION16;
367530
367694
  },
367531
367695
  async prompt() {
367532
367696
  return PROMPT7;
367533
367697
  },
367534
367698
  get inputSchema() {
367535
- return inputSchema31();
367699
+ return inputSchema32();
367536
367700
  },
367537
367701
  get outputSchema() {
367538
- return outputSchema26();
367702
+ return outputSchema27();
367539
367703
  },
367540
367704
  userFacingName() {
367541
367705
  return "TaskUpdate";
@@ -367785,20 +367949,20 @@ ${idDescription}
367785
367949
  Use TaskGet with a specific task ID to view full details including description and comments.
367786
367950
  ${teammateWorkflow}`;
367787
367951
  }
367788
- var DESCRIPTION16 = "List all tasks in the task list";
367952
+ var DESCRIPTION17 = "List all tasks in the task list";
367789
367953
  var init_prompt18 = __esm(() => {
367790
367954
  init_agentSwarmsEnabled();
367791
367955
  });
367792
367956
 
367793
367957
  // src/tools/TaskListTool/TaskListTool.ts
367794
- var inputSchema32, outputSchema27, TaskListTool;
367958
+ var inputSchema33, outputSchema28, TaskListTool;
367795
367959
  var init_TaskListTool = __esm(() => {
367796
367960
  init_v4();
367797
367961
  init_Tool();
367798
367962
  init_tasks();
367799
367963
  init_prompt18();
367800
- inputSchema32 = lazySchema(() => exports_external.strictObject({}));
367801
- outputSchema27 = lazySchema(() => exports_external.object({
367964
+ inputSchema33 = lazySchema(() => exports_external.strictObject({}));
367965
+ outputSchema28 = lazySchema(() => exports_external.object({
367802
367966
  tasks: exports_external.array(exports_external.object({
367803
367967
  id: exports_external.string(),
367804
367968
  subject: exports_external.string(),
@@ -367812,16 +367976,16 @@ var init_TaskListTool = __esm(() => {
367812
367976
  searchHint: "list all tasks",
367813
367977
  maxResultSizeChars: 1e5,
367814
367978
  async description() {
367815
- return DESCRIPTION16;
367979
+ return DESCRIPTION17;
367816
367980
  },
367817
367981
  async prompt() {
367818
367982
  return getPrompt5();
367819
367983
  },
367820
367984
  get inputSchema() {
367821
- return inputSchema32();
367985
+ return inputSchema33();
367822
367986
  },
367823
367987
  get outputSchema() {
367824
- return outputSchema27();
367988
+ return outputSchema28();
367825
367989
  },
367826
367990
  userFacingName() {
367827
367991
  return "TaskList";
@@ -367972,7 +368136,7 @@ var exports_CronCreateTool = {};
367972
368136
  __export(exports_CronCreateTool, {
367973
368137
  CronCreateTool: () => CronCreateTool
367974
368138
  });
367975
- var MAX_JOBS = 50, inputSchema33, outputSchema28, CronCreateTool;
368139
+ var MAX_JOBS = 50, inputSchema34, outputSchema29, CronCreateTool;
367976
368140
  var init_CronCreateTool = __esm(() => {
367977
368141
  init_v4();
367978
368142
  init_state();
@@ -367983,13 +368147,13 @@ var init_CronCreateTool = __esm(() => {
367983
368147
  init_teammateContext();
367984
368148
  init_prompt10();
367985
368149
  init_UI22();
367986
- inputSchema33 = lazySchema(() => exports_external.strictObject({
368150
+ inputSchema34 = lazySchema(() => exports_external.strictObject({
367987
368151
  cron: exports_external.string().describe('Standard 5-field cron expression in local time: "M H DoM Mon DoW" (e.g. "*/5 * * * *" = every 5 minutes, "30 14 28 2 *" = Feb 28 at 2:30pm local once).'),
367988
368152
  prompt: exports_external.string().describe("The prompt to enqueue at each fire time."),
367989
368153
  recurring: semanticBoolean(exports_external.boolean().optional()).describe(`true (default) = fire on every cron match until deleted or auto-expired after ${DEFAULT_MAX_AGE_DAYS} days. false = fire once at the next match, then auto-delete. Use false for "remind me at X" one-shot requests with pinned minute/hour/dom/month.`),
367990
368154
  durable: semanticBoolean(exports_external.boolean().optional()).describe("true = persist to .claude/scheduled_tasks.json and survive restarts. false (default) = in-memory only, dies when this Claude session ends. Use true only when the user asks the task to survive across sessions.")
367991
368155
  }));
367992
- outputSchema28 = lazySchema(() => exports_external.object({
368156
+ outputSchema29 = lazySchema(() => exports_external.object({
367993
368157
  id: exports_external.string(),
367994
368158
  humanSchedule: exports_external.string(),
367995
368159
  recurring: exports_external.boolean(),
@@ -368001,10 +368165,10 @@ var init_CronCreateTool = __esm(() => {
368001
368165
  maxResultSizeChars: 1e5,
368002
368166
  shouldDefer: true,
368003
368167
  get inputSchema() {
368004
- return inputSchema33();
368168
+ return inputSchema34();
368005
368169
  },
368006
368170
  get outputSchema() {
368007
- return outputSchema28();
368171
+ return outputSchema29();
368008
368172
  },
368009
368173
  isEnabled() {
368010
368174
  return isKairosCronEnabled();
@@ -368084,7 +368248,7 @@ var exports_CronDeleteTool = {};
368084
368248
  __export(exports_CronDeleteTool, {
368085
368249
  CronDeleteTool: () => CronDeleteTool
368086
368250
  });
368087
- var inputSchema34, outputSchema29, CronDeleteTool;
368251
+ var inputSchema35, outputSchema30, CronDeleteTool;
368088
368252
  var init_CronDeleteTool = __esm(() => {
368089
368253
  init_v4();
368090
368254
  init_Tool();
@@ -368092,10 +368256,10 @@ var init_CronDeleteTool = __esm(() => {
368092
368256
  init_teammateContext();
368093
368257
  init_prompt10();
368094
368258
  init_UI22();
368095
- inputSchema34 = lazySchema(() => exports_external.strictObject({
368259
+ inputSchema35 = lazySchema(() => exports_external.strictObject({
368096
368260
  id: exports_external.string().describe("Job ID returned by CronCreate.")
368097
368261
  }));
368098
- outputSchema29 = lazySchema(() => exports_external.object({
368262
+ outputSchema30 = lazySchema(() => exports_external.object({
368099
368263
  id: exports_external.string()
368100
368264
  }));
368101
368265
  CronDeleteTool = buildTool({
@@ -368104,10 +368268,10 @@ var init_CronDeleteTool = __esm(() => {
368104
368268
  maxResultSizeChars: 1e5,
368105
368269
  shouldDefer: true,
368106
368270
  get inputSchema() {
368107
- return inputSchema34();
368271
+ return inputSchema35();
368108
368272
  },
368109
368273
  get outputSchema() {
368110
- return outputSchema29();
368274
+ return outputSchema30();
368111
368275
  },
368112
368276
  isEnabled() {
368113
368277
  return isKairosCronEnabled();
@@ -368165,7 +368329,7 @@ var exports_CronListTool = {};
368165
368329
  __export(exports_CronListTool, {
368166
368330
  CronListTool: () => CronListTool
368167
368331
  });
368168
- var inputSchema35, outputSchema30, CronListTool;
368332
+ var inputSchema36, outputSchema31, CronListTool;
368169
368333
  var init_CronListTool = __esm(() => {
368170
368334
  init_v4();
368171
368335
  init_Tool();
@@ -368175,8 +368339,8 @@ var init_CronListTool = __esm(() => {
368175
368339
  init_teammateContext();
368176
368340
  init_prompt10();
368177
368341
  init_UI22();
368178
- inputSchema35 = lazySchema(() => exports_external.strictObject({}));
368179
- outputSchema30 = lazySchema(() => exports_external.object({
368342
+ inputSchema36 = lazySchema(() => exports_external.strictObject({}));
368343
+ outputSchema31 = lazySchema(() => exports_external.object({
368180
368344
  jobs: exports_external.array(exports_external.object({
368181
368345
  id: exports_external.string(),
368182
368346
  cron: exports_external.string(),
@@ -368192,10 +368356,10 @@ var init_CronListTool = __esm(() => {
368192
368356
  maxResultSizeChars: 1e5,
368193
368357
  shouldDefer: true,
368194
368358
  get inputSchema() {
368195
- return inputSchema35();
368359
+ return inputSchema36();
368196
368360
  },
368197
368361
  get outputSchema() {
368198
- return outputSchema30();
368362
+ return outputSchema31();
368199
368363
  },
368200
368364
  isEnabled() {
368201
368365
  return isKairosCronEnabled();
@@ -368245,7 +368409,7 @@ __export(exports_MonitorTool, {
368245
368409
  MonitorTool: () => MonitorTool,
368246
368410
  MONITOR_TOOL_NAME: () => MONITOR_TOOL_NAME
368247
368411
  });
368248
- var MONITOR_TOOL_NAME = "Monitor", MONITOR_TIMEOUT_MS, inputSchema36, outputSchema31, MonitorTool;
368412
+ var MONITOR_TOOL_NAME = "Monitor", MONITOR_TIMEOUT_MS, inputSchema37, outputSchema32, MonitorTool;
368249
368413
  var init_MonitorTool = __esm(() => {
368250
368414
  init_v4();
368251
368415
  init_Tool();
@@ -368255,11 +368419,11 @@ var init_MonitorTool = __esm(() => {
368255
368419
  init_bashPermissions();
368256
368420
  init_ast();
368257
368421
  MONITOR_TIMEOUT_MS = 30 * 60 * 1000;
368258
- inputSchema36 = lazySchema(() => exports_external.strictObject({
368422
+ inputSchema37 = lazySchema(() => exports_external.strictObject({
368259
368423
  command: exports_external.string().describe("The shell command to run and monitor"),
368260
368424
  description: exports_external.string().describe("Clear, concise description of what this command does in active voice.")
368261
368425
  }));
368262
- outputSchema31 = lazySchema(() => exports_external.object({
368426
+ outputSchema32 = lazySchema(() => exports_external.object({
368263
368427
  taskId: exports_external.string().describe("The ID of the background monitor task"),
368264
368428
  outputFile: exports_external.string().describe("Path to the file where output is being written")
368265
368429
  }));
@@ -368300,10 +368464,10 @@ var init_MonitorTool = __esm(() => {
368300
368464
  return `Execute a shell command in the background and stream its stdout line-by-line as notifications. Each polling interval (~1s), new output lines are delivered to you. Use this for monitoring logs, watching build output, or observing long-running processes. For one-shot "wait until done" commands, prefer Bash with run_in_background instead.`;
368301
368465
  },
368302
368466
  get inputSchema() {
368303
- return inputSchema36();
368467
+ return inputSchema37();
368304
368468
  },
368305
368469
  get outputSchema() {
368306
- return outputSchema31();
368470
+ return outputSchema32();
368307
368471
  },
368308
368472
  userFacingName() {
368309
368473
  return "Monitor";
@@ -368500,7 +368664,7 @@ function generateUniqueTeamName(providedName) {
368500
368664
  }
368501
368665
  return generateWordSlug();
368502
368666
  }
368503
- var inputSchema37, TeamCreateTool;
368667
+ var inputSchema38, TeamCreateTool;
368504
368668
  var init_TeamCreateTool = __esm(() => {
368505
368669
  init_v4();
368506
368670
  init_state();
@@ -368514,7 +368678,7 @@ var init_TeamCreateTool = __esm(() => {
368514
368678
  init_teammateLayoutManager();
368515
368679
  init_tasks();
368516
368680
  init_words();
368517
- inputSchema37 = lazySchema(() => exports_external.strictObject({
368681
+ inputSchema38 = lazySchema(() => exports_external.strictObject({
368518
368682
  team_name: exports_external.string().describe("Name for the new team to create."),
368519
368683
  description: exports_external.string().optional().describe("Team description/purpose."),
368520
368684
  agent_type: exports_external.string().optional().describe('Type/role of the team lead (e.g., "researcher", "test-runner"). ' + "Used for team file and inter-agent coordination.")
@@ -368528,7 +368692,7 @@ var init_TeamCreateTool = __esm(() => {
368528
368692
  return "";
368529
368693
  },
368530
368694
  get inputSchema() {
368531
- return inputSchema37();
368695
+ return inputSchema38();
368532
368696
  },
368533
368697
  isEnabled() {
368534
368698
  return isAgentSwarmsEnabled();
@@ -368679,7 +368843,7 @@ var exports_TeamDeleteTool = {};
368679
368843
  __export(exports_TeamDeleteTool, {
368680
368844
  TeamDeleteTool: () => TeamDeleteTool
368681
368845
  });
368682
- var inputSchema38, TeamDeleteTool;
368846
+ var inputSchema39, TeamDeleteTool;
368683
368847
  var init_TeamDeleteTool = __esm(() => {
368684
368848
  init_v4();
368685
368849
  init_Tool();
@@ -368689,7 +368853,7 @@ var init_TeamDeleteTool = __esm(() => {
368689
368853
  init_teammateLayoutManager();
368690
368854
  init_tasks();
368691
368855
  init_UI23();
368692
- inputSchema38 = lazySchema(() => exports_external.strictObject({}));
368856
+ inputSchema39 = lazySchema(() => exports_external.strictObject({}));
368693
368857
  TeamDeleteTool = buildTool({
368694
368858
  name: TEAM_DELETE_TOOL_NAME,
368695
368859
  searchHint: "disband a swarm team and clean up",
@@ -368699,7 +368863,7 @@ var init_TeamDeleteTool = __esm(() => {
368699
368863
  return "";
368700
368864
  },
368701
368865
  get inputSchema() {
368702
- return inputSchema38();
368866
+ return inputSchema39();
368703
368867
  },
368704
368868
  isEnabled() {
368705
368869
  return isAgentSwarmsEnabled();
@@ -369458,7 +369622,7 @@ If you receive a JSON message with \`type: "shutdown_request"\` or \`type: "plan
369458
369622
  Approving shutdown terminates your process. Rejecting plan sends the teammate back to revise. Don't originate \`shutdown_request\` unless asked. Don't send structured JSON status messages — use TaskUpdate.
369459
369623
  `.trim();
369460
369624
  }
369461
- var DESCRIPTION17 = "Send a message to another agent";
369625
+ var DESCRIPTION18 = "Send a message to another agent";
369462
369626
 
369463
369627
  // src/tools/SendMessageTool/UI.tsx
369464
369628
  function renderToolUseMessage25(input) {
@@ -369764,7 +369928,7 @@ async function handlePlanRejection(recipientName, requestId, feedback, context5)
369764
369928
  }
369765
369929
  };
369766
369930
  }
369767
- var StructuredMessage, inputSchema39, SendMessageTool;
369931
+ var StructuredMessage, inputSchema40, SendMessageTool;
369768
369932
  var init_SendMessageTool = __esm(() => {
369769
369933
  init_v4();
369770
369934
  init_state();
@@ -369804,7 +369968,7 @@ var init_SendMessageTool = __esm(() => {
369804
369968
  feedback: exports_external.string().optional()
369805
369969
  })
369806
369970
  ]));
369807
- inputSchema39 = lazySchema(() => exports_external.object({
369971
+ inputSchema40 = lazySchema(() => exports_external.object({
369808
369972
  to: exports_external.string().describe('Recipient: teammate name, or "*" for broadcast to all teammates'),
369809
369973
  summary: exports_external.string().optional().describe("A 5-10 word summary shown as a preview in the UI (required when message is a string)"),
369810
369974
  message: exports_external.union([
@@ -369820,7 +369984,7 @@ var init_SendMessageTool = __esm(() => {
369820
369984
  return "SendMessage";
369821
369985
  },
369822
369986
  get inputSchema() {
369823
- return inputSchema39();
369987
+ return inputSchema40();
369824
369988
  },
369825
369989
  shouldDefer: true,
369826
369990
  isEnabled() {
@@ -369932,7 +370096,7 @@ var init_SendMessageTool = __esm(() => {
369932
370096
  return { result: true };
369933
370097
  },
369934
370098
  async description() {
369935
- return DESCRIPTION17;
370099
+ return DESCRIPTION18;
369936
370100
  },
369937
370101
  async prompt() {
369938
370102
  return getPrompt8();
@@ -370117,6 +370281,7 @@ function getAllBaseTools() {
370117
370281
  ...SubscribePRTool ? [SubscribePRTool] : [],
370118
370282
  ...getPowerShellTool2() ? [getPowerShellTool2()] : [],
370119
370283
  ...SnipTool ? [SnipTool] : [],
370284
+ UserInputTool,
370120
370285
  ...[],
370121
370286
  ListMcpResourcesTool,
370122
370287
  ReadMcpResourceTool,
@@ -370180,6 +370345,7 @@ var init_tools2 = __esm(() => {
370180
370345
  init_WebFetchTool();
370181
370346
  init_TaskStopTool();
370182
370347
  init_BriefTool();
370348
+ init_UserInputTool();
370183
370349
  init_TaskOutputTool();
370184
370350
  init_WebSearchTool();
370185
370351
  init_TodoWriteTool();
@@ -371609,7 +371775,7 @@ function resolveTeamName(input, appState) {
371609
371775
  return;
371610
371776
  return input.team_name || appState.teamContext?.teamName;
371611
371777
  }
371612
- var jsx_dev_runtime154, proactiveModule = null, PROGRESS_THRESHOLD_MS2 = 2000, isBackgroundTasksDisabled2, baseInputSchema, fullInputSchema2, inputSchema8, outputSchema32, AgentTool;
371778
+ var jsx_dev_runtime154, proactiveModule = null, PROGRESS_THRESHOLD_MS2 = 2000, isBackgroundTasksDisabled2, baseInputSchema, fullInputSchema2, inputSchema8, outputSchema33, AgentTool;
371613
371779
  var init_AgentTool = __esm(() => {
371614
371780
  init_Tool();
371615
371781
  init_promptCategory();
@@ -371683,7 +371849,7 @@ var init_AgentTool = __esm(() => {
371683
371849
  run_in_background: true
371684
371850
  }) : schema;
371685
371851
  });
371686
- outputSchema32 = lazySchema(() => {
371852
+ outputSchema33 = lazySchema(() => {
371687
371853
  const syncOutputSchema = agentToolResultSchema().extend({
371688
371854
  status: exports_external.literal("completed"),
371689
371855
  prompt: exports_external.string()
@@ -371732,7 +371898,7 @@ var init_AgentTool = __esm(() => {
371732
371898
  return inputSchema8();
371733
371899
  },
371734
371900
  get outputSchema() {
371735
- return outputSchema32();
371901
+ return outputSchema33();
371736
371902
  },
371737
371903
  async call({
371738
371904
  prompt,
@@ -376261,7 +376427,7 @@ async function* runShellCommand({
376261
376427
  }
376262
376428
  }
376263
376429
  var jsx_dev_runtime155, EOL4 = `
376264
- `, PROGRESS_THRESHOLD_MS3 = 2000, ASSISTANT_BLOCKING_BUDGET_MS2 = 15000, BASH_SEARCH_COMMANDS, BASH_READ_COMMANDS, BASH_LIST_COMMANDS, BASH_SEMANTIC_NEUTRAL_COMMANDS, BASH_SILENT_COMMANDS, DISALLOWED_AUTO_BACKGROUND_COMMANDS2, isBackgroundTasksDisabled3, fullInputSchema3, inputSchema40, COMMON_BACKGROUND_COMMANDS2, outputSchema33, BashTool;
376430
+ `, PROGRESS_THRESHOLD_MS3 = 2000, ASSISTANT_BLOCKING_BUDGET_MS2 = 15000, BASH_SEARCH_COMMANDS, BASH_READ_COMMANDS, BASH_LIST_COMMANDS, BASH_SEMANTIC_NEUTRAL_COMMANDS, BASH_SILENT_COMMANDS, DISALLOWED_AUTO_BACKGROUND_COMMANDS2, isBackgroundTasksDisabled3, fullInputSchema3, inputSchema41, COMMON_BACKGROUND_COMMANDS2, outputSchema34, BashTool;
376265
376431
  var init_BashTool = __esm(() => {
376266
376432
  init_v4();
376267
376433
  init_state();
@@ -376353,14 +376519,14 @@ For commands that are harder to parse at a glance (piped commands, obscure flags
376353
376519
  newContent: exports_external.string()
376354
376520
  }).optional().describe("Internal: pre-computed sed edit result from preview")
376355
376521
  }));
376356
- inputSchema40 = lazySchema(() => isBackgroundTasksDisabled3 ? fullInputSchema3().omit({
376522
+ inputSchema41 = lazySchema(() => isBackgroundTasksDisabled3 ? fullInputSchema3().omit({
376357
376523
  run_in_background: true,
376358
376524
  _simulatedSedEdit: true
376359
376525
  }) : fullInputSchema3().omit({
376360
376526
  _simulatedSedEdit: true
376361
376527
  }));
376362
376528
  COMMON_BACKGROUND_COMMANDS2 = ["npm", "yarn", "pnpm", "node", "python", "python3", "go", "cargo", "make", "docker", "terraform", "webpack", "vite", "jest", "pytest", "curl", "wget", "build", "test", "serve", "watch", "dev"];
376363
- outputSchema33 = lazySchema(() => exports_external.object({
376529
+ outputSchema34 = lazySchema(() => exports_external.object({
376364
376530
  stdout: exports_external.string().describe("The standard output of the command"),
376365
376531
  stderr: exports_external.string().describe("The standard error output of the command"),
376366
376532
  rawOutputPath: exports_external.string().optional().describe("Path to raw output file for large MCP tool outputs"),
@@ -376419,7 +376585,7 @@ For commands that are harder to parse at a glance (piped commands, obscure flags
376419
376585
  };
376420
376586
  },
376421
376587
  isSearchOrReadCommand(input) {
376422
- const parsed = inputSchema40().safeParse(input);
376588
+ const parsed = inputSchema41().safeParse(input);
376423
376589
  if (!parsed.success)
376424
376590
  return {
376425
376591
  isSearch: false,
@@ -376429,10 +376595,10 @@ For commands that are harder to parse at a glance (piped commands, obscure flags
376429
376595
  return isSearchOrReadBashCommand(parsed.data.command);
376430
376596
  },
376431
376597
  get inputSchema() {
376432
- return inputSchema40();
376598
+ return inputSchema41();
376433
376599
  },
376434
376600
  get outputSchema() {
376435
- return outputSchema33();
376601
+ return outputSchema34();
376436
376602
  },
376437
376603
  userFacingName(input) {
376438
376604
  if (!input) {
@@ -382394,7 +382560,7 @@ function getAnthropicEnvMetadata() {
382394
382560
  function getBuildAgeMinutes() {
382395
382561
  if (false)
382396
382562
  ;
382397
- const buildTime = new Date("2026-04-21T11:46:29.966Z").getTime();
382563
+ const buildTime = new Date("2026-04-22T12:04:15.161Z").getTime();
382398
382564
  if (isNaN(buildTime))
382399
382565
  return;
382400
382566
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -385805,8 +385971,8 @@ async function calculateDeferredToolDescriptionChars(tools, getToolPermissionCon
385805
385971
  tools,
385806
385972
  agents
385807
385973
  });
385808
- const inputSchema41 = tool.inputJSONSchema ? jsonStringify(tool.inputJSONSchema) : tool.inputSchema ? jsonStringify(zodToJsonSchema3(tool.inputSchema)) : "";
385809
- return tool.name.length + description.length + inputSchema41.length;
385974
+ const inputSchema42 = tool.inputJSONSchema ? jsonStringify(tool.inputJSONSchema) : tool.inputSchema ? jsonStringify(zodToJsonSchema3(tool.inputSchema)) : "";
385975
+ return tool.name.length + description.length + inputSchema42.length;
385810
385976
  }));
385811
385977
  return sizes.reduce((total, size) => total + size, 0);
385812
385978
  }
@@ -387305,7 +387471,7 @@ async function readImageWithTokenBudget(filePath, maxTokens = getDefaultFileRead
387305
387471
  }
387306
387472
  return result;
387307
387473
  }
387308
- var BLOCKED_DEVICE_PATHS, THIN_SPACE, fileReadListeners, MaxFileReadTokenExceededError, IMAGE_EXTENSIONS, inputSchema41, outputSchema34, FileReadTool, CYBER_RISK_MITIGATION_REMINDER = `
387474
+ var BLOCKED_DEVICE_PATHS, THIN_SPACE, fileReadListeners, MaxFileReadTokenExceededError, IMAGE_EXTENSIONS, inputSchema42, outputSchema35, FileReadTool, CYBER_RISK_MITIGATION_REMINDER = `
387309
387475
 
387310
387476
  <system-reminder>
387311
387477
  Whenever you read a file, you should consider whether it would be considered malware. You CAN and SHOULD provide analysis of malware, what it is doing. But you MUST refuse to improve or augment the code. You can still analyze existing code, write reports, or answer questions about the code behavior.
@@ -387370,13 +387536,13 @@ var init_FileReadTool = __esm(() => {
387370
387536
  }
387371
387537
  };
387372
387538
  IMAGE_EXTENSIONS = new Set(["png", "jpg", "jpeg", "gif", "webp"]);
387373
- inputSchema41 = lazySchema(() => exports_external.strictObject({
387539
+ inputSchema42 = lazySchema(() => exports_external.strictObject({
387374
387540
  file_path: exports_external.string().describe("The absolute path to the file to read"),
387375
387541
  offset: semanticNumber(exports_external.number().int().nonnegative().optional()).describe("The line number to start reading from. Only provide if the file is too large to read at once"),
387376
387542
  limit: semanticNumber(exports_external.number().int().positive().optional()).describe("The number of lines to read. Only provide if the file is too large to read at once."),
387377
387543
  pages: exports_external.string().optional().describe(`Page range for PDF files (e.g., "1-5", "3", "10-20"). Only applicable to PDF files. Maximum ${PDF_MAX_PAGES_PER_READ} pages per request.`)
387378
387544
  }));
387379
- outputSchema34 = lazySchema(() => {
387545
+ outputSchema35 = lazySchema(() => {
387380
387546
  const imageMediaTypes = exports_external.enum([
387381
387547
  "image/jpeg",
387382
387548
  "image/png",
@@ -387455,10 +387621,10 @@ var init_FileReadTool = __esm(() => {
387455
387621
  return renderPromptTemplate(pickLineFormatInstruction(), maxSizeInstruction, offsetInstruction);
387456
387622
  },
387457
387623
  get inputSchema() {
387458
- return inputSchema41();
387624
+ return inputSchema42();
387459
387625
  },
387460
387626
  get outputSchema() {
387461
- return outputSchema34();
387627
+ return outputSchema35();
387462
387628
  },
387463
387629
  userFacingName: userFacingName7,
387464
387630
  getToolUseSummary: getToolUseSummary8,
@@ -400986,80 +401152,6 @@ var init_permissionSetup = __esm(() => {
400986
401152
  NO_CACHED_AUTO_MODE_CONFIG = Symbol("no-cached-auto-mode-config");
400987
401153
  });
400988
401154
 
400989
- // src/utils/autonomy.ts
400990
- function normalizeAutonomyMode(value) {
400991
- return typeof value === "string" && AUTONOMY_MODES.includes(value) ? value : "off";
400992
- }
400993
- function getAutonomyModeFromSettings(settings) {
400994
- return normalizeAutonomyMode(settings?.autonomyMode);
400995
- }
400996
- function autonomyModeTitle(mode) {
400997
- switch (mode) {
400998
- case "smart":
400999
- return "SMART";
401000
- case "aggressive":
401001
- return "AGGRESSIVE";
401002
- default:
401003
- return "OFF";
401004
- }
401005
- }
401006
- function autonomyModeDescription(mode) {
401007
- switch (mode) {
401008
- case "smart":
401009
- return "Classifier-driven autonomy with minimal prompts for routine work.";
401010
- case "aggressive":
401011
- return "Maximum autonomy with bypass-style execution and no permission prompts.";
401012
- default:
401013
- return "Manual approval flow stays in control.";
401014
- }
401015
- }
401016
- function autonomyModeColor(mode) {
401017
- switch (mode) {
401018
- case "smart":
401019
- return "promptBorder";
401020
- case "aggressive":
401021
- return "claude";
401022
- default:
401023
- return "inactive";
401024
- }
401025
- }
401026
- function getNextAutonomyMode(mode) {
401027
- switch (mode) {
401028
- case "off":
401029
- return "smart";
401030
- case "smart":
401031
- return "aggressive";
401032
- default:
401033
- return "off";
401034
- }
401035
- }
401036
- function autonomyModeToPermissionMode(mode, context5) {
401037
- switch (mode) {
401038
- case "aggressive":
401039
- return "bypassPermissions";
401040
- case "smart":
401041
- if (false) {}
401042
- return "acceptEdits";
401043
- default:
401044
- return "default";
401045
- }
401046
- }
401047
- function applyAutonomyModeToPermissionContext(context5, autonomyMode) {
401048
- const targetMode = autonomyModeToPermissionMode(autonomyMode, context5);
401049
- const contextWithAvailability = autonomyMode === "aggressive" ? { ...context5, isBypassPermissionsModeAvailable: true } : context5;
401050
- const transitioned = transitionPermissionMode(context5.mode, targetMode, contextWithAvailability);
401051
- return {
401052
- ...transitioned,
401053
- mode: targetMode,
401054
- ...autonomyMode === "aggressive" ? { isBypassPermissionsModeAvailable: true } : {}
401055
- };
401056
- }
401057
- var AUTONOMY_MODES;
401058
- var init_autonomy = __esm(() => {
401059
- init_permissionSetup();
401060
- AUTONOMY_MODES = ["off", "smart", "aggressive"];
401061
- });
401062
-
401063
401155
  // src/utils/settings/applySettingsChange.ts
401064
401156
  function applySettingsChange(source, setAppState) {
401065
401157
  const newSettings = getInitialSettings();
@@ -404870,7 +404962,7 @@ function PermissionDescription() {
404870
404962
  if ($2[0] === Symbol.for("react.memo_cache_sentinel")) {
404871
404963
  t0 = /* @__PURE__ */ jsx_dev_runtime162.jsxDEV(ThemedText, {
404872
404964
  dimColor: true,
404873
- children: "Claude Code will be able to read files in this directory and make edits when auto-accept edits is on."
404965
+ children: "Stratagem will be able to read files in this directory and make edits when auto-accept edits is on."
404874
404966
  }, undefined, false, undefined, this);
404875
404967
  $2[0] = t0;
404876
404968
  } else {
@@ -409650,7 +409742,7 @@ function buildPrimarySection() {
409650
409742
  }, undefined, false, undefined, this);
409651
409743
  return [{
409652
409744
  label: "Version",
409653
- value: "0.3.0"
409745
+ value: "0.3.2"
409654
409746
  }, {
409655
409747
  label: "Session name",
409656
409748
  value: nameValue
@@ -412315,7 +412407,7 @@ function OutputStylePicker(t0) {
412315
412407
  marginTop: 1,
412316
412408
  children: /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ThemedText, {
412317
412409
  dimColor: true,
412318
- children: "This changes how Claude Code communicates with you"
412410
+ children: "This changes how Stratagem communicates with you"
412319
412411
  }, undefined, false, undefined, this)
412320
412412
  }, undefined, false, undefined, this);
412321
412413
  $2[5] = t7;
@@ -423092,7 +423184,7 @@ function General() {
423092
423184
  if ($2[0] === Symbol.for("react.memo_cache_sentinel")) {
423093
423185
  t0 = /* @__PURE__ */ jsx_dev_runtime210.jsxDEV(ThemedBox_default, {
423094
423186
  children: /* @__PURE__ */ jsx_dev_runtime210.jsxDEV(ThemedText, {
423095
- children: "Claude understands your codebase, makes edits with your permission, and executes commands — right from your terminal."
423187
+ children: "Stratagem understands your codebase, makes edits with your permission, and executes commands — right from your terminal."
423096
423188
  }, undefined, false, undefined, this)
423097
423189
  }, undefined, false, undefined, this);
423098
423190
  $2[0] = t0;
@@ -423270,7 +423362,7 @@ function HelpV2(t0) {
423270
423362
  let t6;
423271
423363
  if ($2[31] !== tabs) {
423272
423364
  t6 = /* @__PURE__ */ jsx_dev_runtime211.jsxDEV(Tabs, {
423273
- title: `Claude Code v${"99.0.0"}`,
423365
+ title: `STRATAGEM X7 v${"99.0.0"}`,
423274
423366
  color: "professionalBlue",
423275
423367
  defaultTab: "general",
423276
423368
  children: tabs
@@ -449266,7 +449358,7 @@ function getStartupLines(termWidth) {
449266
449358
  const provC = p.isLocal ? [160, 255, 214] : CYAN;
449267
449359
  let [r, l] = lbl("Provider", p.name, provC);
449268
449360
  out.push(centerAnsiLine(boxRow(r, W2, l), tw));
449269
- [r, l] = lbl("Cipher", p.model);
449361
+ [r, l] = lbl("Model", p.model);
449270
449362
  out.push(centerAnsiLine(boxRow(r, W2, l), tw));
449271
449363
  const ep = p.baseUrl.length > 46 ? p.baseUrl.slice(0, 43) + "..." : p.baseUrl;
449272
449364
  [r, l] = lbl("Uplink", ep);
@@ -449278,7 +449370,7 @@ function getStartupLines(termWidth) {
449278
449370
  const sLen = ` ● ${sL} buffer ready — /help for breach controls`.length;
449279
449371
  out.push(centerAnsiLine(boxRow(sRow, W2, sLen), tw));
449280
449372
  out.push(centerAnsiLine(`${rgb3(...BORDER)}└${"─".repeat(W2 - 2)}┘${RESET2}`, tw));
449281
- out.push(centerAnsiLine(`${rgb3(...DIMCOL)}STRATAGEM X7${RESET2} ${rgb3(...ACCENT)}v${"0.3.0"}${RESET2} ${rgb3(...CYAN)}// breach link stable${RESET2}`, tw));
449373
+ out.push(centerAnsiLine(`${rgb3(...DIMCOL)}STRATAGEM X7${RESET2} ${rgb3(...ACCENT)}v${"0.3.2"}${RESET2} ${rgb3(...CYAN)}// breach link stable${RESET2}`, tw));
449282
449374
  out.push("");
449283
449375
  return out;
449284
449376
  }
@@ -453321,6 +453413,7 @@ function LogSelector(t0) {
453321
453413
  forceWidth,
453322
453414
  onCancel,
453323
453415
  onSelect,
453416
+ onDelete,
453324
453417
  onLogsChanged,
453325
453418
  onLoadMore,
453326
453419
  initialSearchQuery,
@@ -453389,6 +453482,8 @@ function LogSelector(t0) {
453389
453482
  const [focusedIndex, setFocusedIndex] = import_react156.default.useState(1);
453390
453483
  const [viewMode, setViewMode] = import_react156.default.useState("list");
453391
453484
  const [previewLog, setPreviewLog] = import_react156.default.useState(null);
453485
+ const onDeleteRef = import_react156.default.useRef(onDelete);
453486
+ onDeleteRef.current = onDelete;
453392
453487
  const prevFocusedIdRef = import_react156.default.useRef(null);
453393
453488
  const [selectedTagIndex, setSelectedTagIndex] = import_react156.default.useState(0);
453394
453489
  let t8;
@@ -454302,6 +454397,8 @@ function LogSelector(t0) {
454302
454397
  logEvent("tengu_session_preview_opened", {
454303
454398
  messageCount: focusedLog.messageCount
454304
454399
  });
454400
+ } else if (key.delete && focusedLog && onDeleteRef.current) {
454401
+ onDeleteRef.current(focusedLog);
454305
454402
  } else {
454306
454403
  if (focusedLog && keyIsNotCtrlOrMeta && input.length > 0 && !/^\s+$/.test(input)) {
454307
454404
  setViewMode("search");
@@ -454824,6 +454921,10 @@ function LogSelector(t0) {
454824
454921
  shortcut: "Ctrl+R",
454825
454922
  action: "rename"
454826
454923
  }, undefined, false, undefined, this),
454924
+ onDelete && /* @__PURE__ */ jsx_dev_runtime265.jsxDEV(KeyboardShortcutHint, {
454925
+ shortcut: "Del",
454926
+ action: "delete"
454927
+ }, undefined, false, undefined, this),
454827
454928
  /* @__PURE__ */ jsx_dev_runtime265.jsxDEV(ThemedText, {
454828
454929
  children: "Type to search"
454829
454930
  }, undefined, false, undefined, this),
@@ -455357,6 +455458,8 @@ function ResumeCommand({
455357
455458
  const [loading, setLoading] = React94.useState(true);
455358
455459
  const [resuming, setResuming] = React94.useState(false);
455359
455460
  const [showAllProjects, setShowAllProjects] = React94.useState(false);
455461
+ const [deleteTarget, setDeleteTarget] = React94.useState(null);
455462
+ const [deleting, setDeleting] = React94.useState(false);
455360
455463
  const {
455361
455464
  rows
455362
455465
  } = useTerminalSize();
@@ -455442,17 +455545,96 @@ function ResumeCommand({
455442
455545
  ]
455443
455546
  }, undefined, true, undefined, this);
455444
455547
  }
455548
+ if (deleting) {
455549
+ return /* @__PURE__ */ jsx_dev_runtime266.jsxDEV(ThemedBox_default, {
455550
+ children: [
455551
+ /* @__PURE__ */ jsx_dev_runtime266.jsxDEV(Spinner, {}, undefined, false, undefined, this),
455552
+ /* @__PURE__ */ jsx_dev_runtime266.jsxDEV(ThemedText, {
455553
+ children: " Purging session…"
455554
+ }, undefined, false, undefined, this)
455555
+ ]
455556
+ }, undefined, true, undefined, this);
455557
+ }
455558
+ if (deleteTarget) {
455559
+ return /* @__PURE__ */ jsx_dev_runtime266.jsxDEV(DeleteConfirmation, {
455560
+ log: deleteTarget,
455561
+ onConfirm: async () => {
455562
+ setDeleting(true);
455563
+ setDeleteTarget(null);
455564
+ const sid = getSessionIdFromLog(deleteTarget);
455565
+ if (sid) {
455566
+ const { deleteSessionFile } = await Promise.resolve().then(() => (init_sessionStorage(), exports_sessionStorage));
455567
+ await deleteSessionFile(sid, deleteTarget.fullPath);
455568
+ }
455569
+ setDeleting(false);
455570
+ loadLogs(showAllProjects, worktreePaths);
455571
+ },
455572
+ onCancel: () => setDeleteTarget(null)
455573
+ }, undefined, false, undefined, this);
455574
+ }
455445
455575
  return /* @__PURE__ */ jsx_dev_runtime266.jsxDEV(LogSelector, {
455446
455576
  logs: logs2,
455447
455577
  maxHeight: insideModal ? Math.floor(rows / 2) : rows - 2,
455448
455578
  onCancel: handleCancel,
455449
455579
  onSelect: handleSelect,
455580
+ onDelete: (log) => setDeleteTarget(log),
455450
455581
  onLogsChanged: () => loadLogs(showAllProjects, worktreePaths),
455451
455582
  showAllProjects,
455452
455583
  onToggleAllProjects: handleToggleAllProjects,
455453
455584
  onAgenticSearch: agenticSessionSearch
455454
455585
  }, undefined, false, undefined, this);
455455
455586
  }
455587
+ function DeleteConfirmation({ log, onConfirm, onCancel }) {
455588
+ const title = log.customTitle || log.firstPrompt || "Untitled session";
455589
+ const truncated = title.length > 60 ? title.slice(0, 57) + "..." : title;
455590
+ use_input_default((input, key) => {
455591
+ if (input.toLowerCase() === "y") {
455592
+ onConfirm();
455593
+ } else if (input.toLowerCase() === "n" || key.escape) {
455594
+ onCancel();
455595
+ }
455596
+ });
455597
+ return /* @__PURE__ */ jsx_dev_runtime266.jsxDEV(ThemedBox_default, {
455598
+ flexDirection: "column",
455599
+ paddingLeft: 2,
455600
+ children: [
455601
+ /* @__PURE__ */ jsx_dev_runtime266.jsxDEV(ThemedText, {
455602
+ color: "red",
455603
+ bold: true,
455604
+ children: "⚠ Delete session?"
455605
+ }, undefined, false, undefined, this),
455606
+ /* @__PURE__ */ jsx_dev_runtime266.jsxDEV(ThemedText, {
455607
+ children: " "
455608
+ }, undefined, false, undefined, this),
455609
+ /* @__PURE__ */ jsx_dev_runtime266.jsxDEV(ThemedText, {
455610
+ children: [
455611
+ " ",
455612
+ truncated
455613
+ ]
455614
+ }, undefined, true, undefined, this),
455615
+ /* @__PURE__ */ jsx_dev_runtime266.jsxDEV(ThemedText, {
455616
+ children: " "
455617
+ }, undefined, false, undefined, this),
455618
+ /* @__PURE__ */ jsx_dev_runtime266.jsxDEV(ThemedText, {
455619
+ dimColor: true,
455620
+ children: [
455621
+ "Press ",
455622
+ /* @__PURE__ */ jsx_dev_runtime266.jsxDEV(ThemedText, {
455623
+ bold: true,
455624
+ color: "red",
455625
+ children: "y"
455626
+ }, undefined, false, undefined, this),
455627
+ " to confirm, ",
455628
+ /* @__PURE__ */ jsx_dev_runtime266.jsxDEV(ThemedText, {
455629
+ bold: true,
455630
+ children: "n"
455631
+ }, undefined, false, undefined, this),
455632
+ " or Esc to cancel"
455633
+ ]
455634
+ }, undefined, true, undefined, this)
455635
+ ]
455636
+ }, undefined, true, undefined, this);
455637
+ }
455456
455638
  function filterResumableSessions(logs2, currentSessionId) {
455457
455639
  return logs2.filter((l) => !l.isSidechain && getSessionIdFromLog(l) !== currentSessionId);
455458
455640
  }
@@ -463964,7 +464146,7 @@ function RemoveWorkspaceDirectory(t0) {
463964
464146
  let t4;
463965
464147
  if ($2[10] === Symbol.for("react.memo_cache_sentinel")) {
463966
464148
  t4 = /* @__PURE__ */ jsx_dev_runtime291.jsxDEV(ThemedText, {
463967
- children: "Claude Code will no longer have access to files in this directory."
464149
+ children: "Stratagem will no longer have access to files in this directory."
463968
464150
  }, undefined, false, undefined, this);
463969
464151
  $2[10] = t4;
463970
464152
  } else {
@@ -465410,7 +465592,7 @@ function PermissionRuleList(t0) {
465410
465592
  let t28;
465411
465593
  if ($2[89] === Symbol.for("react.memo_cache_sentinel")) {
465412
465594
  t28 = /* @__PURE__ */ jsx_dev_runtime293.jsxDEV(ThemedText, {
465413
- children: "Claude Code can read files in the workspace, and make edits when auto-accept edits is on."
465595
+ children: "Stratagem can read files in the workspace, and make edits when auto-accept edits is on."
465414
465596
  }, undefined, false, undefined, this);
465415
465597
  $2[89] = t28;
465416
465598
  } else {
@@ -477728,7 +477910,7 @@ var init_bridge_kick = __esm(() => {
477728
477910
  var call60 = async () => {
477729
477911
  return {
477730
477912
  type: "text",
477731
- value: `${"99.0.0"} (built ${"2026-04-21T11:46:29.966Z"})`
477913
+ value: `${"99.0.0"} (built ${"2026-04-22T12:04:15.161Z"})`
477732
477914
  };
477733
477915
  }, version2, version_default;
477734
477916
  var init_version = __esm(() => {
@@ -478923,7 +479105,7 @@ function OverridesSelect(t0) {
478923
479105
  children: "Allow unsandboxed fallback:"
478924
479106
  }, undefined, false, undefined, this),
478925
479107
  " ",
478926
- "When a command fails due to sandbox restrictions, Claude can retry with dangerouslyDisableSandbox to run outside the sandbox (falling back to default permissions)."
479108
+ "When a command fails due to sandbox restrictions, Stratagem can retry with dangerouslyDisableSandbox to run outside the sandbox (falling back to default permissions)."
478927
479109
  ]
478928
479110
  }, undefined, true, undefined, this);
478929
479111
  $2[20] = t11;
@@ -482961,7 +483143,7 @@ function EffortPicker({ onSelect, onCancel }) {
482961
483143
  }, undefined, false, undefined, this),
482962
483144
  /* @__PURE__ */ jsx_dev_runtime353.jsxDEV(ThemedText, {
482963
483145
  dimColor: true,
482964
- children: supportsEffort && usesOpenAIEffort ? `OpenAI/Codex provider (${provider2})` : supportsEffort ? `Claude model · ${provider2} provider` : `Effort not supported for this model`
483146
+ children: supportsEffort && usesOpenAIEffort ? `OpenAI/Codex provider (${provider2})` : supportsEffort ? `Stratagem model · ${provider2} provider` : `Effort not supported for this model`
482965
483147
  }, undefined, false, undefined, this)
482966
483148
  ]
482967
483149
  }, undefined, true, undefined, this),
@@ -484693,7 +484875,7 @@ function Stats(t0) {
484693
484875
  children: [
484694
484876
  /* @__PURE__ */ jsx_dev_runtime355.jsxDEV(Spinner, {}, undefined, false, undefined, this),
484695
484877
  /* @__PURE__ */ jsx_dev_runtime355.jsxDEV(ThemedText, {
484696
- children: " Loading your Claude Code stats…"
484878
+ children: " Loading your Stratagem stats…"
484697
484879
  }, undefined, false, undefined, this)
484698
484880
  ]
484699
484881
  }, undefined, true, undefined, this);
@@ -484854,7 +485036,7 @@ function StatsContent(t0) {
484854
485036
  marginTop: 1,
484855
485037
  children: /* @__PURE__ */ jsx_dev_runtime355.jsxDEV(ThemedText, {
484856
485038
  color: "warning",
484857
- children: "No stats available yet. Start using Claude Code!"
485039
+ children: "No stats available yet. Start using Stratagem!"
484858
485040
  }, undefined, false, undefined, this)
484859
485041
  }, undefined, false, undefined, this);
484860
485042
  $2[15] = t72;
@@ -488886,6 +489068,7 @@ __export(exports_sessionStorage, {
488886
489068
  extractAgentIdsFromMessages: () => extractAgentIdsFromMessages,
488887
489069
  enrichLogs: () => enrichLogs,
488888
489070
  doesMessageExistInSession: () => doesMessageExistInSession,
489071
+ deleteSessionFile: () => deleteSessionFile,
488889
489072
  deleteRemoteAgentMetadata: () => deleteRemoteAgentMetadata,
488890
489073
  clearSessionMetadata: () => clearSessionMetadata,
488891
489074
  clearSessionMessagesCache: () => clearSessionMessagesCache,
@@ -489000,6 +489183,16 @@ async function deleteRemoteAgentMetadata(taskId) {
489000
489183
  throw e2;
489001
489184
  }
489002
489185
  }
489186
+ async function deleteSessionFile(sessionId, fullPath) {
489187
+ const resolvedPath = fullPath ?? getTranscriptPathForSession(sessionId);
489188
+ try {
489189
+ await unlink21(resolvedPath);
489190
+ } catch (e2) {
489191
+ if (isFsInaccessible(e2))
489192
+ return;
489193
+ throw e2;
489194
+ }
489195
+ }
489003
489196
  async function listRemoteAgentMetadata() {
489004
489197
  const dir = getRemoteAgentsDir();
489005
489198
  let entries;
@@ -513775,7 +513968,7 @@ function EnterPlanModePermissionRequest(t0) {
513775
513968
  let t2;
513776
513969
  if ($2[5] === Symbol.for("react.memo_cache_sentinel")) {
513777
513970
  t2 = /* @__PURE__ */ jsx_dev_runtime383.jsxDEV(ThemedText, {
513778
- children: "Claude wants to enter plan mode to explore and design an implementation approach."
513971
+ children: "Stratagem wants to enter plan mode to explore and design an implementation approach."
513779
513972
  }, undefined, false, undefined, this);
513780
513973
  $2[5] = t2;
513781
513974
  } else {
@@ -513789,7 +513982,7 @@ function EnterPlanModePermissionRequest(t0) {
513789
513982
  children: [
513790
513983
  /* @__PURE__ */ jsx_dev_runtime383.jsxDEV(ThemedText, {
513791
513984
  dimColor: true,
513792
- children: "In plan mode, Claude will:"
513985
+ children: "In plan mode, Stratagem will:"
513793
513986
  }, undefined, false, undefined, this),
513794
513987
  /* @__PURE__ */ jsx_dev_runtime383.jsxDEV(ThemedText, {
513795
513988
  dimColor: true,
@@ -514366,7 +514559,7 @@ ${currentPlan}${verificationInstruction}${transcriptHint}${teamHint}${feedbackSu
514366
514559
  marginTop: 1,
514367
514560
  children: [
514368
514561
  /* @__PURE__ */ jsx_dev_runtime384.jsxDEV(ThemedText, {
514369
- children: "Claude wants to exit plan mode"
514562
+ children: "Stratagem wants to exit plan mode"
514370
514563
  }, undefined, false, undefined, this),
514371
514564
  /* @__PURE__ */ jsx_dev_runtime384.jsxDEV(ThemedBox_default, {
514372
514565
  marginTop: 1,
@@ -514415,7 +514608,7 @@ ${currentPlan}${verificationInstruction}${transcriptHint}${teamHint}${feedbackSu
514415
514608
  paddingX: 1,
514416
514609
  flexDirection: "column",
514417
514610
  children: /* @__PURE__ */ jsx_dev_runtime384.jsxDEV(ThemedText, {
514418
- children: "Here is Claude's plan:"
514611
+ children: "Here is Stratagem's plan:"
514419
514612
  }, undefined, false, undefined, this)
514420
514613
  }, undefined, false, undefined, this),
514421
514614
  /* @__PURE__ */ jsx_dev_runtime384.jsxDEV(ThemedBox_default, {
@@ -514466,7 +514659,7 @@ ${currentPlan}${verificationInstruction}${transcriptHint}${teamHint}${feedbackSu
514466
514659
  children: [
514467
514660
  /* @__PURE__ */ jsx_dev_runtime384.jsxDEV(ThemedText, {
514468
514661
  dimColor: true,
514469
- children: "Claude has written up a plan and is ready to execute. Would you like to proceed?"
514662
+ children: "Stratagem has written up a plan and is ready to execute. Would you like to proceed?"
514470
514663
  }, undefined, false, undefined, this),
514471
514664
  /* @__PURE__ */ jsx_dev_runtime384.jsxDEV(ThemedBox_default, {
514472
514665
  marginTop: 1,
@@ -514572,7 +514765,7 @@ function buildPlanApprovalOptions({
514572
514765
  });
514573
514766
  if (showUltraplan) {
514574
514767
  options2.push({
514575
- label: "No, refine with Ultraplan on Claude Code on the web",
514768
+ label: "No, refine with Ultraplan on the web",
514576
514769
  value: "ultraplan"
514577
514770
  });
514578
514771
  }
@@ -517380,7 +517573,7 @@ function SkillPermissionRequest(props) {
517380
517573
  let t13;
517381
517574
  if ($2[33] === Symbol.for("react.memo_cache_sentinel")) {
517382
517575
  t13 = /* @__PURE__ */ jsx_dev_runtime394.jsxDEV(ThemedText, {
517383
- children: "Claude may use instructions, code, or files from this Skill."
517576
+ children: "Stratagem may use instructions, code, or files from this Skill."
517384
517577
  }, undefined, false, undefined, this);
517385
517578
  $2[33] = t13;
517386
517579
  } else {
@@ -517590,7 +517783,7 @@ function WebFetchPermissionRequest(t0) {
517590
517783
  t52 = {
517591
517784
  label: /* @__PURE__ */ jsx_dev_runtime395.jsxDEV(ThemedText, {
517592
517785
  children: [
517593
- "No, and tell Claude what to do differently ",
517786
+ "No, and tell Stratagem what to do differently ",
517594
517787
  /* @__PURE__ */ jsx_dev_runtime395.jsxDEV(ThemedText, {
517595
517788
  bold: true,
517596
517789
  children: "(esc)"
@@ -517718,7 +517911,7 @@ function WebFetchPermissionRequest(t0) {
517718
517911
  let t11;
517719
517912
  if ($2[27] === Symbol.for("react.memo_cache_sentinel")) {
517720
517913
  t11 = /* @__PURE__ */ jsx_dev_runtime395.jsxDEV(ThemedText, {
517721
- children: "Do you want to allow Claude to fetch this content?"
517914
+ children: "Do you want to allow Stratagem to fetch this content?"
517722
517915
  }, undefined, false, undefined, this);
517723
517916
  $2[27] = t11;
517724
517917
  } else {
@@ -518591,7 +518784,7 @@ function ElicitationFormDialog({
518591
518784
  const currentFieldIsText = currentField !== undefined && isTextField(currentField.schema) && !isEnumSchema(currentField.schema);
518592
518785
  const isEditingTextField = currentFieldIsText && !focusedButton;
518593
518786
  useRegisterOverlay("elicitation");
518594
- useNotifyAfterTimeout("Claude Code needs your input", "elicitation_dialog");
518787
+ useNotifyAfterTimeout("Stratagem needs your input", "elicitation_dialog");
518595
518788
  const syncTextInput = import_react217.useCallback((fieldIndex) => {
518596
518789
  if (fieldIndex === undefined) {
518597
518790
  setTextInputValue("");
@@ -519442,7 +519635,7 @@ function ElicitationURLDialog({
519442
519635
  const phaseRef = import_react217.useRef("prompt");
519443
519636
  const [focusedButton, setFocusedButton] = import_react217.useState("accept");
519444
519637
  const showCancel = waitingState?.showCancel ?? false;
519445
- useNotifyAfterTimeout("Claude Code needs your input", "elicitation_url_dialog");
519638
+ useNotifyAfterTimeout("Stratagem needs your input", "elicitation_url_dialog");
519446
519639
  useRegisterOverlay("elicitation-url");
519447
519640
  phaseRef.current = phase;
519448
519641
  const onWaitingDismissRef = import_react217.useRef(onWaitingDismiss);
@@ -530222,11 +530415,13 @@ function ModeIndicator({
530222
530415
  const shouldShowModeHint = primaryItemCount < 2;
530223
530416
  const hasInProcessTeammates = !showSpinnerTree && hasBackgroundTasks && Object.values(tasks2).some((t_1) => t_1.type === "in_process_teammate");
530224
530417
  const hasTeammatePills = hasInProcessTeammates || !showSpinnerTree && isViewingTeammate;
530225
- const modePart = currentMode && hasActiveMode && !getIsRemoteMode() ? autonomyMode !== "off" && currentMode !== "plan" ? /* @__PURE__ */ jsx_dev_runtime429.jsxDEV(ThemedText, {
530226
- color: autonomyModeColor(autonomyMode),
530418
+ const modePart = currentMode && !getIsRemoteMode() ? hasActiveMode && currentMode === "plan" ? /* @__PURE__ */ jsx_dev_runtime429.jsxDEV(ThemedText, {
530419
+ color: getModeColor(currentMode),
530227
530420
  children: [
530228
530421
  "[",
530229
- `BUFFER:${autonomyModeTitle(autonomyMode)}`,
530422
+ permissionModeSymbol(currentMode),
530423
+ " ",
530424
+ permissionModeTitle(currentMode).toUpperCase(),
530230
530425
  "]",
530231
530426
  shouldShowModeHint && /* @__PURE__ */ jsx_dev_runtime429.jsxDEV(ThemedText, {
530232
530427
  dimColor: true,
@@ -530241,12 +530436,10 @@ function ModeIndicator({
530241
530436
  }, undefined, true, undefined, this)
530242
530437
  ]
530243
530438
  }, "mode", true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime429.jsxDEV(ThemedText, {
530244
- color: getModeColor(currentMode),
530439
+ color: autonomyModeColor(autonomyMode),
530245
530440
  children: [
530246
530441
  "[",
530247
- permissionModeSymbol(currentMode),
530248
- " ",
530249
- permissionModeTitle(currentMode).toUpperCase(),
530442
+ `BUFFER:${autonomyModeTitle(autonomyMode)}`,
530250
530443
  "]",
530251
530444
  shouldShowModeHint && /* @__PURE__ */ jsx_dev_runtime429.jsxDEV(ThemedText, {
530252
530445
  dimColor: true,
@@ -530628,6 +530821,7 @@ function PromptInputFooter({
530628
530821
  isNarrow
530629
530822
  }, undefined, false, undefined, this),
530630
530823
  false,
530824
+ /* @__PURE__ */ jsx_dev_runtime430.jsxDEV(ModelIndicator, {}, undefined, false, undefined, this),
530631
530825
  /* @__PURE__ */ jsx_dev_runtime430.jsxDEV(CockpitStatusIndicator, {}, undefined, false, undefined, this),
530632
530826
  /* @__PURE__ */ jsx_dev_runtime430.jsxDEV(BridgeStatusIndicator, {
530633
530827
  bridgeSelected
@@ -530675,7 +530869,22 @@ function BridgeStatusIndicator({
530675
530869
  ]
530676
530870
  }, undefined, true, undefined, this);
530677
530871
  }
530872
+ function ModelIndicator() {
530873
+ const model = process.env.OPENAI_MODEL ?? process.env.ANTHROPIC_MODEL ?? process.env.CLAUDE_MODEL ?? "";
530874
+ if (!model)
530875
+ return null;
530876
+ const short = model.includes("/") ? model.split("/").pop() : model;
530877
+ return /* @__PURE__ */ jsx_dev_runtime430.jsxDEV(ThemedText, {
530878
+ dimColor: true,
530879
+ wrap: "truncate",
530880
+ children: `◆ ${short}`
530881
+ }, undefined, false, undefined, this);
530882
+ }
530678
530883
  function CockpitStatusIndicator() {
530884
+ const baseUrl = process.env.OPENAI_BASE_URL ?? "";
530885
+ const isCockpitProvider = baseUrl.includes("ollama.com");
530886
+ if (!isCockpitProvider)
530887
+ return null;
530679
530888
  const status2 = getPoolStatus("ollama-cloud");
530680
530889
  if (!status2)
530681
530890
  return null;
@@ -542345,7 +542554,7 @@ var init_tipRegistry = __esm(() => {
542345
542554
  externalTips = [
542346
542555
  {
542347
542556
  id: "new-user-warmup",
542348
- content: async () => `Start with small features or bug fixes, tell Claude to propose a plan, and verify its suggested edits`,
542557
+ content: async () => `Start with small features or bug fixes, tell STRATAGEM to propose a plan, and verify its suggested edits`,
542349
542558
  cooldownSessions: 3,
542350
542559
  async isRelevant() {
542351
542560
  const config3 = getGlobalConfig();
@@ -542381,7 +542590,7 @@ var init_tipRegistry = __esm(() => {
542381
542590
  },
542382
542591
  {
542383
542592
  id: "git-worktrees",
542384
- content: async () => "Use git worktrees to run multiple Claude sessions in parallel.",
542593
+ content: async () => "Use git worktrees to run multiple STRATAGEM sessions in parallel.",
542385
542594
  cooldownSessions: 10,
542386
542595
  isRelevant: async () => {
542387
542596
  try {
@@ -542395,7 +542604,7 @@ var init_tipRegistry = __esm(() => {
542395
542604
  },
542396
542605
  {
542397
542606
  id: "color-when-multi-clauding",
542398
- content: async () => "Running multiple Claude sessions? Use /color and /rename to tell them apart at a glance.",
542607
+ content: async () => "Running multiple STRATAGEM sessions? Use /color and /rename to tell them apart at a glance.",
542399
542608
  cooldownSessions: 10,
542400
542609
  isRelevant: async () => {
542401
542610
  if (getCurrentSessionAgentColor())
@@ -542439,7 +542648,7 @@ var init_tipRegistry = __esm(() => {
542439
542648
  },
542440
542649
  {
542441
542650
  id: "memory-command",
542442
- content: async () => "Use /memory to view and manage Claude memory",
542651
+ content: async () => "Use /memory to view and manage agent memory",
542443
542652
  cooldownSessions: 15,
542444
542653
  async isRelevant() {
542445
542654
  const config3 = getGlobalConfig();
@@ -542472,7 +542681,7 @@ var init_tipRegistry = __esm(() => {
542472
542681
  },
542473
542682
  {
542474
542683
  id: "prompt-queue",
542475
- content: async () => "Hit Enter to queue up additional messages while Claude is working.",
542684
+ content: async () => "Hit Enter to queue up additional messages while STRATAGEM is processing.",
542476
542685
  cooldownSessions: 5,
542477
542686
  async isRelevant() {
542478
542687
  const config3 = getGlobalConfig();
@@ -542481,13 +542690,13 @@ var init_tipRegistry = __esm(() => {
542481
542690
  },
542482
542691
  {
542483
542692
  id: "enter-to-steer-in-relatime",
542484
- content: async () => "Send messages to Claude while it works to steer Claude in real-time",
542693
+ content: async () => "Send messages while STRATAGEM works to steer it in real-time",
542485
542694
  cooldownSessions: 20,
542486
542695
  isRelevant: async () => true
542487
542696
  },
542488
542697
  {
542489
542698
  id: "todo-list",
542490
- content: async () => "Ask Claude to create a todo list when working on complex tasks to track progress and remain on track",
542699
+ content: async () => "Ask STRATAGEM to create a todo list when working on complex tasks to track progress and remain on track",
542491
542700
  cooldownSessions: 20,
542492
542701
  isRelevant: async () => true
542493
542702
  },
@@ -542516,7 +542725,7 @@ var init_tipRegistry = __esm(() => {
542516
542725
  },
542517
542726
  {
542518
542727
  id: "ide-upsell-external-terminal",
542519
- content: async () => "Connect Claude to your IDE · /ide",
542728
+ content: async () => "Connect STRATAGEM to your IDE · /ide",
542520
542729
  cooldownSessions: 4,
542521
542730
  async isRelevant() {
542522
542731
  if (isSupportedTerminal()) {
@@ -542532,13 +542741,13 @@ var init_tipRegistry = __esm(() => {
542532
542741
  },
542533
542742
  {
542534
542743
  id: "install-github-app",
542535
- content: async () => "Run /install-github-app to tag @claude right from your Github issues and PRs",
542744
+ content: async () => "Run /install-github-app to tag @stratagem right from your Github issues and PRs",
542536
542745
  cooldownSessions: 10,
542537
542746
  isRelevant: async () => !getGlobalConfig().githubActionSetupCount
542538
542747
  },
542539
542748
  {
542540
542749
  id: "install-slack-app",
542541
- content: async () => "Run /install-slack-app to use Claude in Slack",
542750
+ content: async () => "Run /install-slack-app to use STRATAGEM in Slack",
542542
542751
  cooldownSessions: 10,
542543
542752
  isRelevant: async () => !getGlobalConfig().slackAppInstallCount
542544
542753
  },
@@ -542559,7 +542768,7 @@ var init_tipRegistry = __esm(() => {
542559
542768
  },
542560
542769
  {
542561
542770
  id: "paste-images-mac",
542562
- content: async () => "Paste images into Claude Code using control+v (not cmd+v!)",
542771
+ content: async () => "Paste images into STRATAGEM using control+v (not cmd+v!)",
542563
542772
  cooldownSessions: 10,
542564
542773
  isRelevant: async () => getPlatform() === "macos"
542565
542774
  },
@@ -542628,7 +542837,7 @@ var init_tipRegistry = __esm(() => {
542628
542837
  },
542629
542838
  {
542630
542839
  id: "desktop-app",
542631
- content: async () => "Run Claude Code locally or remotely using the Claude desktop app: clau.de/desktop",
542840
+ content: async () => "Run STRATAGEM X7 locally or remotely from any terminal",
542632
542841
  cooldownSessions: 15,
542633
542842
  isRelevant: async () => getPlatform() !== "linux"
542634
542843
  },
@@ -542636,7 +542845,7 @@ var init_tipRegistry = __esm(() => {
542636
542845
  id: "desktop-shortcut",
542637
542846
  content: async (ctx) => {
542638
542847
  const blue2 = color("suggestion", ctx.theme);
542639
- return `Continue your session in Claude Code Desktop with ${blue2("/desktop")}`;
542848
+ return `Continue your session in desktop mode with ${blue2("/desktop")}`;
542640
542849
  },
542641
542850
  cooldownSessions: 15,
542642
542851
  isRelevant: async () => {
@@ -542647,19 +542856,19 @@ var init_tipRegistry = __esm(() => {
542647
542856
  },
542648
542857
  {
542649
542858
  id: "web-app",
542650
- content: async () => "Run tasks in the cloud while you keep coding locally · clau.de/web",
542859
+ content: async () => "Run tasks in the cloud while you keep coding locally · ",
542651
542860
  cooldownSessions: 15,
542652
542861
  isRelevant: async () => true
542653
542862
  },
542654
542863
  {
542655
542864
  id: "mobile-app",
542656
- content: async () => "/mobile to use Claude Code from the Claude app on your phone",
542865
+ content: async () => "/mobile to use STRATAGEM X7 from the mobile app on your phone",
542657
542866
  cooldownSessions: 15,
542658
542867
  isRelevant: async () => true
542659
542868
  },
542660
542869
  {
542661
542870
  id: "opusplan-mode-reminder",
542662
- content: async () => `Your default model setting is Opus Plan Mode. Press ${getShortcutDisplay("chat:cycleMode", "Chat", "shift+tab")} twice to activate Plan Mode and plan with Claude Opus.`,
542871
+ content: async () => `Your default model setting is Opus Plan Mode. Press ${getShortcutDisplay("chat:cycleMode", "Chat", "shift+tab")} twice to activate Plan Mode and plan with Opus.`,
542663
542872
  cooldownSessions: 2,
542664
542873
  async isRelevant() {
542665
542874
  const config3 = getGlobalConfig();
@@ -542700,7 +542909,7 @@ ${blue2(`/plugin install vercel@${OFFICIAL_MARKETPLACE_NAME}`)}`;
542700
542909
  const blue2 = color("suggestion", ctx.theme);
542701
542910
  const cmd = blue2("/effort high");
542702
542911
  const variant = getFeatureValue_CACHED_MAY_BE_STALE("tengu_tide_elm", "off");
542703
- return variant === "copy_b" ? `Use ${cmd} for better one-shot answers. Claude thinks it through first.` : `Working on something tricky? ${cmd} gives better first answers`;
542912
+ return variant === "copy_b" ? `Use ${cmd} for better one-shot answers. STRATAGEM thinks it through first.` : `Working on something tricky? ${cmd} gives better first answers`;
542704
542913
  },
542705
542914
  cooldownSessions: 3,
542706
542915
  isRelevant: async () => {
@@ -542724,7 +542933,7 @@ ${blue2(`/plugin install vercel@${OFFICIAL_MARKETPLACE_NAME}`)}`;
542724
542933
  content: async (ctx) => {
542725
542934
  const blue2 = color("suggestion", ctx.theme);
542726
542935
  const variant = getFeatureValue_CACHED_MAY_BE_STALE("tengu_tern_alloy", "off");
542727
- return variant === "copy_b" ? `For big tasks, tell Claude to ${blue2("use subagents")}. They work in parallel and keep your main thread clean.` : `Say ${blue2('"fan out subagents"')} and Claude sends a team. Each one digs deep so nothing gets missed.`;
542936
+ return variant === "copy_b" ? `For big tasks, tell Claude to ${blue2("use subagents")}. They work in parallel and keep your main thread clean.` : `Say ${blue2('"fan out subagents"')} and STRATAGEM deploys a team. Each one digs deep so nothing gets missed.`;
542728
542937
  },
542729
542938
  cooldownSessions: 3,
542730
542939
  isRelevant: async () => {
@@ -542754,7 +542963,7 @@ ${blue2(`/plugin install vercel@${OFFICIAL_MARKETPLACE_NAME}`)}`;
542754
542963
  content: async (ctx) => {
542755
542964
  const claude = color("claude", ctx.theme);
542756
542965
  const reward = getCachedReferrerReward();
542757
- return reward ? `Share Claude Code and earn ${claude(formatCreditAmount(reward))} of extra usage · ${claude("/passes")}` : `You have free guest passes to share · ${claude("/passes")}`;
542966
+ return reward ? `Share STRATAGEM X7 and earn ${claude(formatCreditAmount(reward))} of extra usage · ${claude("/passes")}` : `You have free guest passes to share · ${claude("/passes")}`;
542758
542967
  },
542759
542968
  cooldownSessions: 3,
542760
542969
  isRelevant: async () => {
@@ -543210,13 +543419,13 @@ function permissionPromptToolResultToPermissionDecision(result, tool, input, too
543210
543419
  decisionReason
543211
543420
  };
543212
543421
  }
543213
- var inputSchema42, decisionClassificationField, PermissionAllowResultSchema, PermissionDenyResultSchema, outputSchema35;
543422
+ var inputSchema43, decisionClassificationField, PermissionAllowResultSchema, PermissionDenyResultSchema, outputSchema36;
543214
543423
  var init_PermissionPromptToolResultSchema = __esm(() => {
543215
543424
  init_v4();
543216
543425
  init_debug();
543217
543426
  init_PermissionUpdate();
543218
543427
  init_PermissionUpdateSchema();
543219
- inputSchema42 = lazySchema(() => v4_default.object({
543428
+ inputSchema43 = lazySchema(() => v4_default.object({
543220
543429
  tool_name: v4_default.string().describe("The name of the tool requesting permission"),
543221
543430
  input: v4_default.record(v4_default.string(), v4_default.unknown()).describe("The input for the tool"),
543222
543431
  tool_use_id: v4_default.string().optional().describe("The unique tool use request ID")
@@ -543239,7 +543448,7 @@ var init_PermissionPromptToolResultSchema = __esm(() => {
543239
543448
  toolUseID: v4_default.string().optional(),
543240
543449
  decisionClassification: decisionClassificationField()
543241
543450
  }));
543242
- outputSchema35 = lazySchema(() => v4_default.union([PermissionAllowResultSchema(), PermissionDenyResultSchema()]));
543451
+ outputSchema36 = lazySchema(() => v4_default.union([PermissionAllowResultSchema(), PermissionDenyResultSchema()]));
543243
543452
  });
543244
543453
 
543245
543454
  // src/cli/ndjsonSafeStringify.ts
@@ -543581,7 +543790,7 @@ class StructuredIO {
543581
543790
  decision_reason: serializeDecisionReason(mainPermissionResult.decisionReason),
543582
543791
  tool_use_id: toolUseID,
543583
543792
  agent_id: toolUseContext.agentId
543584
- }, outputSchema35(), hookAbortController.signal, requestId).then((result) => ({ source: "sdk", result }));
543793
+ }, outputSchema36(), hookAbortController.signal, requestId).then((result) => ({ source: "sdk", result }));
543585
543794
  const winner = await Promise.race([hookPromise, sdkPromise]);
543586
543795
  if (winner.source === "hook") {
543587
543796
  if (winner.decision) {
@@ -543652,7 +543861,7 @@ class StructuredIO {
543652
543861
  input: { host: hostPattern.host },
543653
543862
  tool_use_id: randomUUID44(),
543654
543863
  description: `Allow network connection to ${hostPattern.host}?`
543655
- }, outputSchema35());
543864
+ }, outputSchema36());
543656
543865
  return result.behavior === "allow";
543657
543866
  } catch {
543658
543867
  return false;
@@ -543840,7 +544049,7 @@ function SandboxPermissionRequest(t0) {
543840
544049
  t6 = {
543841
544050
  label: /* @__PURE__ */ jsx_dev_runtime449.jsxDEV(ThemedText, {
543842
544051
  children: [
543843
- "No, and tell Claude what to do differently ",
544052
+ "No, and tell Stratagem what to do differently ",
543844
544053
  /* @__PURE__ */ jsx_dev_runtime449.jsxDEV(ThemedText, {
543845
544054
  bold: true,
543846
544055
  children: "(esc)"
@@ -550628,7 +550837,7 @@ ${fileList}`);
550628
550837
  const idleTimeSinceResponse = Date.now() - lastQueryCompletionTime2;
550629
550838
  if (!isLoading2 && !toolJSX2 && focusedInputDialogRef2.current === undefined && idleTimeSinceResponse >= getGlobalConfig().messageIdleNotifThresholdMs) {
550630
550839
  sendNotification({
550631
- message: "Claude is waiting for your input",
550840
+ message: "Stratagem is waiting for your input",
550632
550841
  notificationType: "idle_prompt"
550633
550842
  }, terminal2);
550634
550843
  }
@@ -553063,7 +553272,7 @@ function WelcomeV2() {
553063
553272
  dimColor: true,
553064
553273
  children: [
553065
553274
  "v",
553066
- "0.3.0",
553275
+ "0.3.2",
553067
553276
  " "
553068
553277
  ]
553069
553278
  }, undefined, true, undefined, this)
@@ -553893,7 +554102,7 @@ function TrustDialog(t0) {
553893
554102
  }, undefined, true, undefined, this);
553894
554103
  t18 = /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(ThemedText, {
553895
554104
  children: [
553896
- "Claude Code",
554105
+ "Stratagem",
553897
554106
  "'",
553898
554107
  "ll be able to read, edit, and execute files here."
553899
554108
  ]
@@ -554849,13 +555058,13 @@ function ResumeTask({
554849
555058
  /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(Spinner, {}, undefined, false, undefined, this),
554850
555059
  /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(ThemedText, {
554851
555060
  bold: true,
554852
- children: "Loading Claude Code sessions…"
555061
+ children: "Loading Stratagem sessions…"
554853
555062
  }, undefined, false, undefined, this)
554854
555063
  ]
554855
555064
  }, undefined, true, undefined, this),
554856
555065
  /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(ThemedText, {
554857
555066
  dimColor: true,
554858
- children: retrying ? "Retrying…" : "Fetching your Claude Code sessions…"
555067
+ children: retrying ? "Retrying…" : "Fetching your Stratagem sessions…"
554859
555068
  }, undefined, false, undefined, this)
554860
555069
  ]
554861
555070
  }, undefined, true, undefined, this);
@@ -554868,7 +555077,7 @@ function ResumeTask({
554868
555077
  /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(ThemedText, {
554869
555078
  bold: true,
554870
555079
  color: "error",
554871
- children: "Error loading Claude Code sessions"
555080
+ children: "Error loading Stratagem sessions"
554872
555081
  }, undefined, false, undefined, this),
554873
555082
  renderErrorSpecificGuidance(loadErrorType),
554874
555083
  /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(ThemedText, {
@@ -554899,7 +555108,7 @@ function ResumeTask({
554899
555108
  /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(ThemedText, {
554900
555109
  bold: true,
554901
555110
  children: [
554902
- "No Claude Code sessions found",
555111
+ "No Stratagem sessions found",
554903
555112
  currentRepo && /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(ThemedText, {
554904
555113
  children: [
554905
555114
  " for ",
@@ -555089,7 +555298,7 @@ function renderErrorSpecificGuidance(errorType) {
555089
555298
  flexDirection: "column",
555090
555299
  children: /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(ThemedText, {
555091
555300
  dimColor: true,
555092
- children: "Sorry, Claude encountered an error"
555301
+ children: "Sorry, Stratagem encountered an error"
555093
555302
  }, undefined, false, undefined, this)
555094
555303
  }, undefined, false, undefined, this);
555095
555304
  case "other":
@@ -555098,7 +555307,7 @@ function renderErrorSpecificGuidance(errorType) {
555098
555307
  flexDirection: "row",
555099
555308
  children: /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(ThemedText, {
555100
555309
  dimColor: true,
555101
- children: "Sorry, Claude Code encountered an error"
555310
+ children: "Sorry, Stratagem encountered an error"
555102
555311
  }, undefined, false, undefined, this)
555103
555312
  }, undefined, false, undefined, this);
555104
555313
  }
@@ -559616,11 +559825,11 @@ async function startMCPServer(cwd2, debug, verbose) {
559616
559825
  const tools = getCombinedTools(getTools(toolPermissionContext), mcpTools);
559617
559826
  return {
559618
559827
  tools: await Promise.all(tools.map(async (tool) => {
559619
- let outputSchema36;
559828
+ let outputSchema37;
559620
559829
  if (tool.outputSchema) {
559621
559830
  const convertedSchema = zodToJsonSchema3(tool.outputSchema);
559622
559831
  if (typeof convertedSchema === "object" && convertedSchema !== null && "type" in convertedSchema && convertedSchema.type === "object") {
559623
- outputSchema36 = convertedSchema;
559832
+ outputSchema37 = convertedSchema;
559624
559833
  }
559625
559834
  }
559626
559835
  return {
@@ -559631,7 +559840,7 @@ async function startMCPServer(cwd2, debug, verbose) {
559631
559840
  agents: []
559632
559841
  }),
559633
559842
  inputSchema: tool.inputJSONSchema ?? zodToJsonSchema3(tool.inputSchema),
559634
- outputSchema: outputSchema36
559843
+ outputSchema: outputSchema37
559635
559844
  };
559636
559845
  }))
559637
559846
  };
@@ -568596,7 +568805,7 @@ function createCanUseToolWithPermissionPrompt(permissionPromptTool) {
568596
568805
  if (!permissionToolResultBlockParam.content || !Array.isArray(permissionToolResultBlockParam.content) || !permissionToolResultBlockParam.content[0] || permissionToolResultBlockParam.content[0].type !== "text" || typeof permissionToolResultBlockParam.content[0].text !== "string") {
568597
568806
  throw new Error('Permission prompt tool returned an invalid result. Expected a single text block param with type="text" and a string text value.');
568598
568807
  }
568599
- return permissionPromptToolResultToPermissionDecision(outputSchema35().parse(safeParseJSON(permissionToolResultBlockParam.content[0].text)), permissionPromptTool, input, toolUseContext);
568808
+ return permissionPromptToolResultToPermissionDecision(outputSchema36().parse(safeParseJSON(permissionToolResultBlockParam.content[0].text)), permissionPromptTool, input, toolUseContext);
568600
568809
  };
568601
568810
  return canUseTool;
568602
568811
  }
@@ -573080,7 +573289,7 @@ Usage: stx7 --remote "your task description"`, () => gracefulShutdown(1));
573080
573289
  pendingHookMessages
573081
573290
  }, renderAndRun);
573082
573291
  }
573083
- }).version("0.3.0 (STRATAGEM X7)", "-v, --version", "Output the version number");
573292
+ }).version("0.3.2 (STRATAGEM X7)", "-v, --version", "Output the version number");
573084
573293
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
573085
573294
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
573086
573295
  if (canUserConfigureAdvisor()) {
@@ -573609,7 +573818,7 @@ if (false) {}
573609
573818
  async function main2() {
573610
573819
  const args = process.argv.slice(2);
573611
573820
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
573612
- console.log(`${"0.3.0"} (STRATAGEM X7)`);
573821
+ console.log(`${"0.3.2"} (STRATAGEM X7)`);
573613
573822
  return;
573614
573823
  }
573615
573824
  if (args.includes("--provider")) {
@@ -573731,4 +573940,4 @@ async function main2() {
573731
573940
  }
573732
573941
  main2();
573733
573942
 
573734
- //# debugId=156F5F008F6421B864756E2164756E21
573943
+ //# debugId=4A46F36A69A9624964756E2164756E21