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.
- package/dist/cli.mjs +649 -440
- 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
|
-
"
|
|
282173
|
-
"
|
|
282174
|
-
"
|
|
282181
|
+
"Allocating",
|
|
282182
|
+
"Amplifying",
|
|
282183
|
+
"Analyzing",
|
|
282175
282184
|
"Architecting",
|
|
282176
|
-
"
|
|
282177
|
-
"Beaming",
|
|
282178
|
-
"Beboppin'",
|
|
282179
|
-
"Befuddling",
|
|
282180
|
-
"Billowing",
|
|
282181
|
-
"Blanching",
|
|
282182
|
-
"Bloviating",
|
|
282183
|
-
"Boogieing",
|
|
282184
|
-
"Boondoggling",
|
|
282185
|
-
"Booping",
|
|
282185
|
+
"Assembling",
|
|
282186
282186
|
"Bootstrapping",
|
|
282187
|
-
"
|
|
282188
|
-
"
|
|
282189
|
-
"
|
|
282190
|
-
"
|
|
282191
|
-
"Canoodling",
|
|
282192
|
-
"Caramelizing",
|
|
282187
|
+
"Branching",
|
|
282188
|
+
"Breaching",
|
|
282189
|
+
"Buffering",
|
|
282190
|
+
"Calibrating",
|
|
282193
282191
|
"Cascading",
|
|
282194
|
-
"Catapulting",
|
|
282195
|
-
"Cerebrating",
|
|
282196
282192
|
"Channeling",
|
|
282197
|
-
"
|
|
282198
|
-
"Choreographing",
|
|
282199
|
-
"Churning",
|
|
282200
|
-
"Clauding",
|
|
282193
|
+
"Ciphering",
|
|
282201
282194
|
"Coalescing",
|
|
282202
|
-
"
|
|
282203
|
-
"Combobulating",
|
|
282204
|
-
"Composing",
|
|
282195
|
+
"Compiling",
|
|
282205
282196
|
"Computing",
|
|
282206
|
-
"
|
|
282207
|
-
"
|
|
282208
|
-
"
|
|
282209
|
-
"Cooking",
|
|
282210
|
-
"Crafting",
|
|
282211
|
-
"Creating",
|
|
282197
|
+
"Converging",
|
|
282198
|
+
"Correlating",
|
|
282199
|
+
"Cracking",
|
|
282212
282200
|
"Crunching",
|
|
282213
282201
|
"Crystallizing",
|
|
282214
|
-
"
|
|
282215
|
-
"
|
|
282216
|
-
"
|
|
282217
|
-
"
|
|
282218
|
-
"
|
|
282219
|
-
"
|
|
282220
|
-
"
|
|
282221
|
-
"
|
|
282222
|
-
"
|
|
282223
|
-
"
|
|
282224
|
-
"
|
|
282225
|
-
"
|
|
282226
|
-
"
|
|
282227
|
-
"
|
|
282228
|
-
"
|
|
282229
|
-
"
|
|
282230
|
-
"
|
|
282231
|
-
"
|
|
282232
|
-
"
|
|
282233
|
-
"
|
|
282234
|
-
"
|
|
282235
|
-
"
|
|
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
|
-
"
|
|
282240
|
-
"
|
|
282241
|
-
"
|
|
282242
|
-
"Gallivanting",
|
|
282243
|
-
"Galloping",
|
|
282244
|
-
"Garnishing",
|
|
282225
|
+
"Fracturing",
|
|
282226
|
+
"Fragmenting",
|
|
282227
|
+
"Fusing",
|
|
282245
282228
|
"Generating",
|
|
282246
|
-
"
|
|
282247
|
-
"
|
|
282248
|
-
"
|
|
282249
|
-
"Grooving",
|
|
282250
|
-
"Gusting",
|
|
282251
|
-
"Harmonizing",
|
|
282229
|
+
"Gridlocking",
|
|
282230
|
+
"Handshaking",
|
|
282231
|
+
"Hardening",
|
|
282252
282232
|
"Hashing",
|
|
282253
|
-
"
|
|
282254
|
-
"
|
|
282255
|
-
"
|
|
282256
|
-
"
|
|
282257
|
-
"
|
|
282258
|
-
"Ideating",
|
|
282259
|
-
"Imagining",
|
|
282260
|
-
"Improvising",
|
|
282261
|
-
"Incubating",
|
|
282233
|
+
"Hex-dumping",
|
|
282234
|
+
"Hijacking",
|
|
282235
|
+
"Hydrating",
|
|
282236
|
+
"Hyperthreading",
|
|
282237
|
+
"Indexing",
|
|
282262
282238
|
"Inferring",
|
|
282263
|
-
"
|
|
282239
|
+
"Initializing",
|
|
282240
|
+
"Injecting",
|
|
282241
|
+
"Instantiating",
|
|
282242
|
+
"Intercepting",
|
|
282243
|
+
"Interfacing",
|
|
282244
|
+
"Interpolating",
|
|
282245
|
+
"Invoking",
|
|
282264
282246
|
"Ionizing",
|
|
282265
|
-
"
|
|
282266
|
-
"
|
|
282267
|
-
"
|
|
282268
|
-
"
|
|
282269
|
-
"
|
|
282270
|
-
"
|
|
282271
|
-
"
|
|
282272
|
-
"
|
|
282273
|
-
"
|
|
282274
|
-
"
|
|
282275
|
-
"
|
|
282276
|
-
"
|
|
282277
|
-
"
|
|
282278
|
-
"
|
|
282279
|
-
"
|
|
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
|
-
"
|
|
282284
|
-
"Noodling",
|
|
282263
|
+
"Netrunning",
|
|
282285
282264
|
"Nucleating",
|
|
282265
|
+
"Obfuscating",
|
|
282266
|
+
"Optimizing",
|
|
282286
282267
|
"Orbiting",
|
|
282287
282268
|
"Orchestrating",
|
|
282288
|
-
"
|
|
282289
|
-
"
|
|
282290
|
-
"
|
|
282291
|
-
"
|
|
282292
|
-
"
|
|
282293
|
-
"
|
|
282294
|
-
"
|
|
282295
|
-
"
|
|
282296
|
-
"
|
|
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
|
-
"
|
|
282279
|
+
"Profiling",
|
|
282302
282280
|
"Propagating",
|
|
282303
|
-
"
|
|
282304
|
-
"
|
|
282305
|
-
"
|
|
282306
|
-
"
|
|
282307
|
-
"
|
|
282308
|
-
"
|
|
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
|
-
"
|
|
282311
|
-
"
|
|
282312
|
-
"
|
|
282313
|
-
"
|
|
282314
|
-
"
|
|
282315
|
-
"
|
|
282316
|
-
"
|
|
282317
|
-
"
|
|
282318
|
-
"
|
|
282319
|
-
"
|
|
282320
|
-
"
|
|
282321
|
-
"
|
|
282322
|
-
"
|
|
282323
|
-
"
|
|
282324
|
-
"
|
|
282325
|
-
"
|
|
282326
|
-
"
|
|
282327
|
-
"
|
|
282328
|
-
"
|
|
282329
|
-
"
|
|
282330
|
-
"
|
|
282331
|
-
"
|
|
282332
|
-
"
|
|
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
|
-
"
|
|
282335
|
-
"
|
|
282336
|
-
"
|
|
282337
|
-
"
|
|
282338
|
-
"
|
|
282339
|
-
"
|
|
282340
|
-
"
|
|
282341
|
-
"
|
|
282342
|
-
"
|
|
282343
|
-
"
|
|
282344
|
-
"
|
|
282345
|
-
"
|
|
282346
|
-
"
|
|
282347
|
-
"
|
|
282348
|
-
"
|
|
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
|
-
"
|
|
282351
|
-
"
|
|
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(`
|
|
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 `
|
|
353609
|
+
return `Stratagem wants to fetch content from ${hostname3}`;
|
|
353626
353610
|
} catch {
|
|
353627
|
-
return `
|
|
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: `
|
|
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: `
|
|
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,
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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 `
|
|
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
|
|
364220
|
+
return inputSchema22();
|
|
364057
364221
|
},
|
|
364058
364222
|
get outputSchema() {
|
|
364059
|
-
return
|
|
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,
|
|
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
|
-
|
|
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(() =>
|
|
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
|
-
|
|
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
|
|
364672
|
+
return inputSchema23();
|
|
364509
364673
|
},
|
|
364510
364674
|
get outputSchema() {
|
|
364511
|
-
return
|
|
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",
|
|
364884
|
+
var NAME = "TestingPermission", inputSchema24, TestingPermissionTool;
|
|
364721
364885
|
var init_TestingPermissionTool = __esm(() => {
|
|
364722
364886
|
init_v4();
|
|
364723
364887
|
init_Tool();
|
|
364724
|
-
|
|
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
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
365107
|
+
return inputSchema25();
|
|
364944
365108
|
},
|
|
364945
365109
|
get outputSchema() {
|
|
364946
|
-
return
|
|
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",
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
366349
|
+
return inputSchema26();
|
|
366186
366350
|
},
|
|
366187
366351
|
get outputSchema() {
|
|
366188
|
-
return
|
|
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
|
|
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: "
|
|
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
|
|
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
|
-
|
|
366587
|
-
|
|
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
|
|
366765
|
+
return inputSchema27();
|
|
366602
366766
|
},
|
|
366603
366767
|
get outputSchema() {
|
|
366604
|
-
return
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
366954
|
+
return inputSchema28();
|
|
366791
366955
|
},
|
|
366792
366956
|
get outputSchema() {
|
|
366793
|
-
return
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
367163
|
+
return inputSchema29();
|
|
367000
367164
|
},
|
|
367001
367165
|
get outputSchema() {
|
|
367002
|
-
return
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
367368
|
+
return DESCRIPTION14;
|
|
367205
367369
|
},
|
|
367206
367370
|
async prompt() {
|
|
367207
367371
|
return getPrompt4();
|
|
367208
367372
|
},
|
|
367209
367373
|
get inputSchema() {
|
|
367210
|
-
return
|
|
367374
|
+
return inputSchema30();
|
|
367211
367375
|
},
|
|
367212
367376
|
get outputSchema() {
|
|
367213
|
-
return
|
|
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
|
|
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
|
|
367468
|
+
var inputSchema31, outputSchema26, TaskGetTool;
|
|
367305
367469
|
var init_TaskGetTool = __esm(() => {
|
|
367306
367470
|
init_v4();
|
|
367307
367471
|
init_Tool();
|
|
367308
367472
|
init_tasks();
|
|
367309
|
-
|
|
367473
|
+
inputSchema31 = lazySchema(() => exports_external.strictObject({
|
|
367310
367474
|
taskId: exports_external.string().describe("The ID of the task to retrieve")
|
|
367311
367475
|
}));
|
|
367312
|
-
|
|
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
|
|
367491
|
+
return DESCRIPTION15;
|
|
367328
367492
|
},
|
|
367329
367493
|
async prompt() {
|
|
367330
367494
|
return PROMPT6;
|
|
367331
367495
|
},
|
|
367332
367496
|
get inputSchema() {
|
|
367333
|
-
return
|
|
367497
|
+
return inputSchema31();
|
|
367334
367498
|
},
|
|
367335
367499
|
get outputSchema() {
|
|
367336
|
-
return
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
367693
|
+
return DESCRIPTION16;
|
|
367530
367694
|
},
|
|
367531
367695
|
async prompt() {
|
|
367532
367696
|
return PROMPT7;
|
|
367533
367697
|
},
|
|
367534
367698
|
get inputSchema() {
|
|
367535
|
-
return
|
|
367699
|
+
return inputSchema32();
|
|
367536
367700
|
},
|
|
367537
367701
|
get outputSchema() {
|
|
367538
|
-
return
|
|
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
|
|
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
|
|
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
|
-
|
|
367801
|
-
|
|
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
|
|
367979
|
+
return DESCRIPTION17;
|
|
367816
367980
|
},
|
|
367817
367981
|
async prompt() {
|
|
367818
367982
|
return getPrompt5();
|
|
367819
367983
|
},
|
|
367820
367984
|
get inputSchema() {
|
|
367821
|
-
return
|
|
367985
|
+
return inputSchema33();
|
|
367822
367986
|
},
|
|
367823
367987
|
get outputSchema() {
|
|
367824
|
-
return
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
368168
|
+
return inputSchema34();
|
|
368005
368169
|
},
|
|
368006
368170
|
get outputSchema() {
|
|
368007
|
-
return
|
|
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
|
|
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
|
-
|
|
368259
|
+
inputSchema35 = lazySchema(() => exports_external.strictObject({
|
|
368096
368260
|
id: exports_external.string().describe("Job ID returned by CronCreate.")
|
|
368097
368261
|
}));
|
|
368098
|
-
|
|
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
|
|
368271
|
+
return inputSchema35();
|
|
368108
368272
|
},
|
|
368109
368273
|
get outputSchema() {
|
|
368110
|
-
return
|
|
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
|
|
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
|
-
|
|
368179
|
-
|
|
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
|
|
368359
|
+
return inputSchema36();
|
|
368196
368360
|
},
|
|
368197
368361
|
get outputSchema() {
|
|
368198
|
-
return
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
368467
|
+
return inputSchema37();
|
|
368304
368468
|
},
|
|
368305
368469
|
get outputSchema() {
|
|
368306
|
-
return
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
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,
|
|
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
|
-
|
|
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
|
|
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
|
|
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,
|
|
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
|
-
|
|
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
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
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
|
|
376598
|
+
return inputSchema41();
|
|
376433
376599
|
},
|
|
376434
376600
|
get outputSchema() {
|
|
376435
|
-
return
|
|
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-
|
|
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
|
|
385809
|
-
return tool.name.length + description.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,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
387624
|
+
return inputSchema42();
|
|
387459
387625
|
},
|
|
387460
387626
|
get outputSchema() {
|
|
387461
|
-
return
|
|
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: "
|
|
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.
|
|
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
|
|
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: "
|
|
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: `
|
|
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("
|
|
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.
|
|
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: "
|
|
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: "
|
|
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-
|
|
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,
|
|
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 ? `
|
|
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
|
|
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
|
|
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: "
|
|
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,
|
|
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: "
|
|
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
|
|
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: "
|
|
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
|
|
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: "
|
|
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
|
|
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
|
|
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("
|
|
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("
|
|
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 &&
|
|
530226
|
-
color:
|
|
530418
|
+
const modePart = currentMode && !getIsRemoteMode() ? hasActiveMode && currentMode === "plan" ? /* @__PURE__ */ jsx_dev_runtime429.jsxDEV(ThemedText, {
|
|
530419
|
+
color: getModeColor(currentMode),
|
|
530227
530420
|
children: [
|
|
530228
530421
|
"[",
|
|
530229
|
-
|
|
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:
|
|
530439
|
+
color: autonomyModeColor(autonomyMode),
|
|
530245
530440
|
children: [
|
|
530246
530441
|
"[",
|
|
530247
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 @
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 ·
|
|
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
|
|
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
|
|
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.
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
|
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: "
|
|
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.
|
|
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
|
-
"
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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,
|
|
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,
|
|
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
|
|
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
|
-
|
|
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:
|
|
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(
|
|
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.
|
|
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.
|
|
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=
|
|
573943
|
+
//# debugId=4A46F36A69A9624964756E2164756E21
|