stratagem-x7 0.3.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.mjs +275 -192
- package/package.json +7 -7
package/dist/cli.mjs
CHANGED
|
@@ -281181,6 +281181,13 @@ function ProviderManager({ mode, onDone }) {
|
|
|
281181
281181
|
const isActiveSavedProfile = getActiveProviderProfile()?.id === saved.id;
|
|
281182
281182
|
const settingsOverrideError = isActiveSavedProfile ? clearStartupProviderOverrideFromUserSettings() : null;
|
|
281183
281183
|
refreshProfiles();
|
|
281184
|
+
if (isActiveSavedProfile) {
|
|
281185
|
+
const newModel = getPrimaryModel(saved.model);
|
|
281186
|
+
setAppState((prev) => ({
|
|
281187
|
+
...prev,
|
|
281188
|
+
mainLoopModel: newModel
|
|
281189
|
+
}));
|
|
281190
|
+
}
|
|
281184
281191
|
const successMessage = editingProfileId ? `Updated provider: ${saved.name}` : `Added provider: ${saved.name} (now active)`;
|
|
281185
281192
|
setStatusMessage(settingsOverrideError ? `${successMessage}. Warning: could not clear startup provider override (${settingsOverrideError}).` : successMessage);
|
|
281186
281193
|
if (mode === "first-run") {
|
|
@@ -282169,193 +282176,168 @@ var SPINNER_VERBS;
|
|
|
282169
282176
|
var init_spinnerVerbs = __esm(() => {
|
|
282170
282177
|
init_settings2();
|
|
282171
282178
|
SPINNER_VERBS = [
|
|
282172
|
-
"
|
|
282173
|
-
"
|
|
282174
|
-
"
|
|
282179
|
+
"Allocating",
|
|
282180
|
+
"Amplifying",
|
|
282181
|
+
"Analyzing",
|
|
282175
282182
|
"Architecting",
|
|
282176
|
-
"
|
|
282177
|
-
"Beaming",
|
|
282178
|
-
"Beboppin'",
|
|
282179
|
-
"Befuddling",
|
|
282180
|
-
"Billowing",
|
|
282181
|
-
"Blanching",
|
|
282182
|
-
"Bloviating",
|
|
282183
|
-
"Boogieing",
|
|
282184
|
-
"Boondoggling",
|
|
282185
|
-
"Booping",
|
|
282183
|
+
"Assembling",
|
|
282186
282184
|
"Bootstrapping",
|
|
282187
|
-
"
|
|
282188
|
-
"
|
|
282189
|
-
"
|
|
282190
|
-
"
|
|
282191
|
-
"Canoodling",
|
|
282192
|
-
"Caramelizing",
|
|
282185
|
+
"Branching",
|
|
282186
|
+
"Breaching",
|
|
282187
|
+
"Buffering",
|
|
282188
|
+
"Calibrating",
|
|
282193
282189
|
"Cascading",
|
|
282194
|
-
"Catapulting",
|
|
282195
|
-
"Cerebrating",
|
|
282196
282190
|
"Channeling",
|
|
282197
|
-
"
|
|
282198
|
-
"Choreographing",
|
|
282199
|
-
"Churning",
|
|
282200
|
-
"Clauding",
|
|
282191
|
+
"Ciphering",
|
|
282201
282192
|
"Coalescing",
|
|
282202
|
-
"
|
|
282203
|
-
"Combobulating",
|
|
282204
|
-
"Composing",
|
|
282193
|
+
"Compiling",
|
|
282205
282194
|
"Computing",
|
|
282206
|
-
"
|
|
282207
|
-
"
|
|
282208
|
-
"
|
|
282209
|
-
"Cooking",
|
|
282210
|
-
"Crafting",
|
|
282211
|
-
"Creating",
|
|
282195
|
+
"Converging",
|
|
282196
|
+
"Correlating",
|
|
282197
|
+
"Cracking",
|
|
282212
282198
|
"Crunching",
|
|
282213
282199
|
"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",
|
|
282200
|
+
"Cyberforming",
|
|
282201
|
+
"Decoding",
|
|
282202
|
+
"Decrypting",
|
|
282203
|
+
"Defragmenting",
|
|
282204
|
+
"Deploying",
|
|
282205
|
+
"Dereferencing",
|
|
282206
|
+
"Desoldering",
|
|
282207
|
+
"Diffusing",
|
|
282208
|
+
"Disassembling",
|
|
282209
|
+
"Dispatching",
|
|
282210
|
+
"Dissolving",
|
|
282211
|
+
"Distilling",
|
|
282212
|
+
"Encoding",
|
|
282213
|
+
"Encrypting",
|
|
282214
|
+
"Enumerating",
|
|
282215
|
+
"Establishing",
|
|
282216
|
+
"Excavating",
|
|
282217
|
+
"Executing",
|
|
282218
|
+
"Exfiltrating",
|
|
282219
|
+
"Extracting",
|
|
282220
|
+
"Fabricating",
|
|
282221
|
+
"Flashing",
|
|
282238
282222
|
"Forging",
|
|
282239
|
-
"
|
|
282240
|
-
"
|
|
282241
|
-
"
|
|
282242
|
-
"Gallivanting",
|
|
282243
|
-
"Galloping",
|
|
282244
|
-
"Garnishing",
|
|
282223
|
+
"Fracturing",
|
|
282224
|
+
"Fragmenting",
|
|
282225
|
+
"Fusing",
|
|
282245
282226
|
"Generating",
|
|
282246
|
-
"
|
|
282247
|
-
"
|
|
282248
|
-
"
|
|
282249
|
-
"Grooving",
|
|
282250
|
-
"Gusting",
|
|
282251
|
-
"Harmonizing",
|
|
282227
|
+
"Gridlocking",
|
|
282228
|
+
"Handshaking",
|
|
282229
|
+
"Hardening",
|
|
282252
282230
|
"Hashing",
|
|
282253
|
-
"
|
|
282254
|
-
"
|
|
282255
|
-
"
|
|
282256
|
-
"
|
|
282257
|
-
"
|
|
282258
|
-
"Ideating",
|
|
282259
|
-
"Imagining",
|
|
282260
|
-
"Improvising",
|
|
282261
|
-
"Incubating",
|
|
282231
|
+
"Hex-dumping",
|
|
282232
|
+
"Hijacking",
|
|
282233
|
+
"Hydrating",
|
|
282234
|
+
"Hyperthreading",
|
|
282235
|
+
"Indexing",
|
|
282262
282236
|
"Inferring",
|
|
282263
|
-
"
|
|
282237
|
+
"Initializing",
|
|
282238
|
+
"Injecting",
|
|
282239
|
+
"Instantiating",
|
|
282240
|
+
"Intercepting",
|
|
282241
|
+
"Interfacing",
|
|
282242
|
+
"Interpolating",
|
|
282243
|
+
"Invoking",
|
|
282264
282244
|
"Ionizing",
|
|
282265
|
-
"
|
|
282266
|
-
"
|
|
282267
|
-
"
|
|
282268
|
-
"
|
|
282269
|
-
"
|
|
282270
|
-
"
|
|
282271
|
-
"
|
|
282272
|
-
"
|
|
282273
|
-
"
|
|
282274
|
-
"
|
|
282275
|
-
"
|
|
282276
|
-
"
|
|
282277
|
-
"
|
|
282278
|
-
"
|
|
282279
|
-
"
|
|
282280
|
-
"Musing",
|
|
282281
|
-
"Nebulizing",
|
|
282245
|
+
"Iterating",
|
|
282246
|
+
"Jacking in",
|
|
282247
|
+
"Kernelizing",
|
|
282248
|
+
"Latching",
|
|
282249
|
+
"Linking",
|
|
282250
|
+
"Loading",
|
|
282251
|
+
"Locking on",
|
|
282252
|
+
"Mapping",
|
|
282253
|
+
"Marshalling",
|
|
282254
|
+
"Materializing",
|
|
282255
|
+
"Merging",
|
|
282256
|
+
"Meshing",
|
|
282257
|
+
"Multiplexing",
|
|
282258
|
+
"Mutating",
|
|
282259
|
+
"Negotiating",
|
|
282282
282260
|
"Nesting",
|
|
282283
|
-
"
|
|
282284
|
-
"Noodling",
|
|
282261
|
+
"Netrunning",
|
|
282285
282262
|
"Nucleating",
|
|
282263
|
+
"Obfuscating",
|
|
282264
|
+
"Optimizing",
|
|
282286
282265
|
"Orbiting",
|
|
282287
282266
|
"Orchestrating",
|
|
282288
|
-
"
|
|
282289
|
-
"
|
|
282290
|
-
"
|
|
282291
|
-
"
|
|
282292
|
-
"
|
|
282293
|
-
"
|
|
282294
|
-
"
|
|
282295
|
-
"
|
|
282296
|
-
"
|
|
282297
|
-
"Pouncing",
|
|
282298
|
-
"Precipitating",
|
|
282299
|
-
"Prestidigitating",
|
|
282267
|
+
"Overclocking",
|
|
282268
|
+
"Overriding",
|
|
282269
|
+
"Parsing",
|
|
282270
|
+
"Patching",
|
|
282271
|
+
"Penetrating",
|
|
282272
|
+
"Phasing",
|
|
282273
|
+
"Pipelining",
|
|
282274
|
+
"Pivoting",
|
|
282275
|
+
"Polling",
|
|
282300
282276
|
"Processing",
|
|
282301
|
-
"
|
|
282277
|
+
"Profiling",
|
|
282302
282278
|
"Propagating",
|
|
282303
|
-
"
|
|
282304
|
-
"
|
|
282305
|
-
"
|
|
282306
|
-
"
|
|
282307
|
-
"
|
|
282308
|
-
"
|
|
282279
|
+
"Proxying",
|
|
282280
|
+
"Purging",
|
|
282281
|
+
"Quantizing",
|
|
282282
|
+
"Queuing",
|
|
282283
|
+
"Rasterizing",
|
|
282284
|
+
"Realigning",
|
|
282285
|
+
"Rebasing",
|
|
282286
|
+
"Recalibrating",
|
|
282287
|
+
"Recompiling",
|
|
282288
|
+
"Reconstructing",
|
|
282289
|
+
"Recursing",
|
|
282290
|
+
"Reflashing",
|
|
282291
|
+
"Refactoring",
|
|
282292
|
+
"Rendering",
|
|
282293
|
+
"Resolving",
|
|
282294
|
+
"Restructuring",
|
|
282309
282295
|
"Reticulating",
|
|
282310
|
-
"
|
|
282311
|
-
"
|
|
282312
|
-
"
|
|
282313
|
-
"
|
|
282314
|
-
"
|
|
282315
|
-
"
|
|
282316
|
-
"
|
|
282317
|
-
"
|
|
282318
|
-
"
|
|
282319
|
-
"
|
|
282320
|
-
"
|
|
282321
|
-
"
|
|
282322
|
-
"
|
|
282323
|
-
"
|
|
282324
|
-
"
|
|
282325
|
-
"
|
|
282326
|
-
"
|
|
282327
|
-
"
|
|
282328
|
-
"
|
|
282329
|
-
"
|
|
282330
|
-
"
|
|
282331
|
-
"
|
|
282332
|
-
"
|
|
282296
|
+
"Rewiring",
|
|
282297
|
+
"Routing",
|
|
282298
|
+
"Scanning",
|
|
282299
|
+
"Segmenting",
|
|
282300
|
+
"Sequencing",
|
|
282301
|
+
"Serializing",
|
|
282302
|
+
"Sharding",
|
|
282303
|
+
"Shredding",
|
|
282304
|
+
"Signaling",
|
|
282305
|
+
"Simulating",
|
|
282306
|
+
"Siphoning",
|
|
282307
|
+
"Slicing",
|
|
282308
|
+
"Sniffing",
|
|
282309
|
+
"Soldering",
|
|
282310
|
+
"Spawning",
|
|
282311
|
+
"Splicing",
|
|
282312
|
+
"Spooling",
|
|
282313
|
+
"Staging",
|
|
282314
|
+
"Streaming",
|
|
282315
|
+
"Stripping",
|
|
282316
|
+
"Subroutining",
|
|
282317
|
+
"Sweeping",
|
|
282318
|
+
"Syncing",
|
|
282333
282319
|
"Synthesizing",
|
|
282334
|
-
"
|
|
282335
|
-
"
|
|
282336
|
-
"
|
|
282337
|
-
"
|
|
282338
|
-
"
|
|
282339
|
-
"
|
|
282340
|
-
"
|
|
282341
|
-
"
|
|
282342
|
-
"
|
|
282343
|
-
"
|
|
282344
|
-
"
|
|
282345
|
-
"
|
|
282346
|
-
"
|
|
282347
|
-
"
|
|
282348
|
-
"
|
|
282320
|
+
"Targeting",
|
|
282321
|
+
"Terraforming",
|
|
282322
|
+
"Threading",
|
|
282323
|
+
"Throttling",
|
|
282324
|
+
"Tracing",
|
|
282325
|
+
"Transcompiling",
|
|
282326
|
+
"Transcoding",
|
|
282327
|
+
"Transmitting",
|
|
282328
|
+
"Traversing",
|
|
282329
|
+
"Triangulating",
|
|
282330
|
+
"Tunneling",
|
|
282331
|
+
"Unboxing",
|
|
282332
|
+
"Unlocking",
|
|
282333
|
+
"Unpacking",
|
|
282334
|
+
"Uplinked",
|
|
282335
|
+
"Validating",
|
|
282336
|
+
"Vectorizing",
|
|
282337
|
+
"Voxelizing",
|
|
282349
282338
|
"Warping",
|
|
282350
|
-
"
|
|
282351
|
-
"
|
|
282352
|
-
"Whirring",
|
|
282353
|
-
"Whisking",
|
|
282354
|
-
"Wibbling",
|
|
282355
|
-
"Working",
|
|
282356
|
-
"Wrangling",
|
|
282357
|
-
"Zesting",
|
|
282358
|
-
"Zigzagging"
|
|
282339
|
+
"Wiring",
|
|
282340
|
+
"Zeroing in"
|
|
282359
282341
|
];
|
|
282360
282342
|
});
|
|
282361
282343
|
|
|
@@ -382394,7 +382376,7 @@ function getAnthropicEnvMetadata() {
|
|
|
382394
382376
|
function getBuildAgeMinutes() {
|
|
382395
382377
|
if (false)
|
|
382396
382378
|
;
|
|
382397
|
-
const buildTime = new Date("2026-04-
|
|
382379
|
+
const buildTime = new Date("2026-04-22T05:46:53.341Z").getTime();
|
|
382398
382380
|
if (isNaN(buildTime))
|
|
382399
382381
|
return;
|
|
382400
382382
|
return Math.floor((Date.now() - buildTime) / 60000);
|
|
@@ -409650,7 +409632,7 @@ function buildPrimarySection() {
|
|
|
409650
409632
|
}, undefined, false, undefined, this);
|
|
409651
409633
|
return [{
|
|
409652
409634
|
label: "Version",
|
|
409653
|
-
value: "0.3.
|
|
409635
|
+
value: "0.3.1"
|
|
409654
409636
|
}, {
|
|
409655
409637
|
label: "Session name",
|
|
409656
409638
|
value: nameValue
|
|
@@ -449278,7 +449260,7 @@ function getStartupLines(termWidth) {
|
|
|
449278
449260
|
const sLen = ` ● ${sL} buffer ready — /help for breach controls`.length;
|
|
449279
449261
|
out.push(centerAnsiLine(boxRow(sRow, W2, sLen), tw));
|
|
449280
449262
|
out.push(centerAnsiLine(`${rgb3(...BORDER)}└${"─".repeat(W2 - 2)}┘${RESET2}`, tw));
|
|
449281
|
-
out.push(centerAnsiLine(`${rgb3(...DIMCOL)}STRATAGEM X7${RESET2} ${rgb3(...ACCENT)}v${"0.3.
|
|
449263
|
+
out.push(centerAnsiLine(`${rgb3(...DIMCOL)}STRATAGEM X7${RESET2} ${rgb3(...ACCENT)}v${"0.3.1"}${RESET2} ${rgb3(...CYAN)}// breach link stable${RESET2}`, tw));
|
|
449282
449264
|
out.push("");
|
|
449283
449265
|
return out;
|
|
449284
449266
|
}
|
|
@@ -453321,6 +453303,7 @@ function LogSelector(t0) {
|
|
|
453321
453303
|
forceWidth,
|
|
453322
453304
|
onCancel,
|
|
453323
453305
|
onSelect,
|
|
453306
|
+
onDelete,
|
|
453324
453307
|
onLogsChanged,
|
|
453325
453308
|
onLoadMore,
|
|
453326
453309
|
initialSearchQuery,
|
|
@@ -453389,6 +453372,8 @@ function LogSelector(t0) {
|
|
|
453389
453372
|
const [focusedIndex, setFocusedIndex] = import_react156.default.useState(1);
|
|
453390
453373
|
const [viewMode, setViewMode] = import_react156.default.useState("list");
|
|
453391
453374
|
const [previewLog, setPreviewLog] = import_react156.default.useState(null);
|
|
453375
|
+
const onDeleteRef = import_react156.default.useRef(onDelete);
|
|
453376
|
+
onDeleteRef.current = onDelete;
|
|
453392
453377
|
const prevFocusedIdRef = import_react156.default.useRef(null);
|
|
453393
453378
|
const [selectedTagIndex, setSelectedTagIndex] = import_react156.default.useState(0);
|
|
453394
453379
|
let t8;
|
|
@@ -454302,6 +454287,8 @@ function LogSelector(t0) {
|
|
|
454302
454287
|
logEvent("tengu_session_preview_opened", {
|
|
454303
454288
|
messageCount: focusedLog.messageCount
|
|
454304
454289
|
});
|
|
454290
|
+
} else if (key.delete && focusedLog && onDeleteRef.current) {
|
|
454291
|
+
onDeleteRef.current(focusedLog);
|
|
454305
454292
|
} else {
|
|
454306
454293
|
if (focusedLog && keyIsNotCtrlOrMeta && input.length > 0 && !/^\s+$/.test(input)) {
|
|
454307
454294
|
setViewMode("search");
|
|
@@ -454824,6 +454811,10 @@ function LogSelector(t0) {
|
|
|
454824
454811
|
shortcut: "Ctrl+R",
|
|
454825
454812
|
action: "rename"
|
|
454826
454813
|
}, undefined, false, undefined, this),
|
|
454814
|
+
onDelete && /* @__PURE__ */ jsx_dev_runtime265.jsxDEV(KeyboardShortcutHint, {
|
|
454815
|
+
shortcut: "Del",
|
|
454816
|
+
action: "delete"
|
|
454817
|
+
}, undefined, false, undefined, this),
|
|
454827
454818
|
/* @__PURE__ */ jsx_dev_runtime265.jsxDEV(ThemedText, {
|
|
454828
454819
|
children: "Type to search"
|
|
454829
454820
|
}, undefined, false, undefined, this),
|
|
@@ -455357,6 +455348,8 @@ function ResumeCommand({
|
|
|
455357
455348
|
const [loading, setLoading] = React94.useState(true);
|
|
455358
455349
|
const [resuming, setResuming] = React94.useState(false);
|
|
455359
455350
|
const [showAllProjects, setShowAllProjects] = React94.useState(false);
|
|
455351
|
+
const [deleteTarget, setDeleteTarget] = React94.useState(null);
|
|
455352
|
+
const [deleting, setDeleting] = React94.useState(false);
|
|
455360
455353
|
const {
|
|
455361
455354
|
rows
|
|
455362
455355
|
} = useTerminalSize();
|
|
@@ -455442,17 +455435,96 @@ function ResumeCommand({
|
|
|
455442
455435
|
]
|
|
455443
455436
|
}, undefined, true, undefined, this);
|
|
455444
455437
|
}
|
|
455438
|
+
if (deleting) {
|
|
455439
|
+
return /* @__PURE__ */ jsx_dev_runtime266.jsxDEV(ThemedBox_default, {
|
|
455440
|
+
children: [
|
|
455441
|
+
/* @__PURE__ */ jsx_dev_runtime266.jsxDEV(Spinner, {}, undefined, false, undefined, this),
|
|
455442
|
+
/* @__PURE__ */ jsx_dev_runtime266.jsxDEV(ThemedText, {
|
|
455443
|
+
children: " Purging session…"
|
|
455444
|
+
}, undefined, false, undefined, this)
|
|
455445
|
+
]
|
|
455446
|
+
}, undefined, true, undefined, this);
|
|
455447
|
+
}
|
|
455448
|
+
if (deleteTarget) {
|
|
455449
|
+
return /* @__PURE__ */ jsx_dev_runtime266.jsxDEV(DeleteConfirmation, {
|
|
455450
|
+
log: deleteTarget,
|
|
455451
|
+
onConfirm: async () => {
|
|
455452
|
+
setDeleting(true);
|
|
455453
|
+
setDeleteTarget(null);
|
|
455454
|
+
const sid = getSessionIdFromLog(deleteTarget);
|
|
455455
|
+
if (sid) {
|
|
455456
|
+
const { deleteSessionFile } = await Promise.resolve().then(() => (init_sessionStorage(), exports_sessionStorage));
|
|
455457
|
+
await deleteSessionFile(sid, deleteTarget.fullPath);
|
|
455458
|
+
}
|
|
455459
|
+
setDeleting(false);
|
|
455460
|
+
loadLogs(showAllProjects, worktreePaths);
|
|
455461
|
+
},
|
|
455462
|
+
onCancel: () => setDeleteTarget(null)
|
|
455463
|
+
}, undefined, false, undefined, this);
|
|
455464
|
+
}
|
|
455445
455465
|
return /* @__PURE__ */ jsx_dev_runtime266.jsxDEV(LogSelector, {
|
|
455446
455466
|
logs: logs2,
|
|
455447
455467
|
maxHeight: insideModal ? Math.floor(rows / 2) : rows - 2,
|
|
455448
455468
|
onCancel: handleCancel,
|
|
455449
455469
|
onSelect: handleSelect,
|
|
455470
|
+
onDelete: (log) => setDeleteTarget(log),
|
|
455450
455471
|
onLogsChanged: () => loadLogs(showAllProjects, worktreePaths),
|
|
455451
455472
|
showAllProjects,
|
|
455452
455473
|
onToggleAllProjects: handleToggleAllProjects,
|
|
455453
455474
|
onAgenticSearch: agenticSessionSearch
|
|
455454
455475
|
}, undefined, false, undefined, this);
|
|
455455
455476
|
}
|
|
455477
|
+
function DeleteConfirmation({ log, onConfirm, onCancel }) {
|
|
455478
|
+
const title = log.customTitle || log.firstPrompt || "Untitled session";
|
|
455479
|
+
const truncated = title.length > 60 ? title.slice(0, 57) + "..." : title;
|
|
455480
|
+
use_input_default((input, key) => {
|
|
455481
|
+
if (input.toLowerCase() === "y") {
|
|
455482
|
+
onConfirm();
|
|
455483
|
+
} else if (input.toLowerCase() === "n" || key.escape) {
|
|
455484
|
+
onCancel();
|
|
455485
|
+
}
|
|
455486
|
+
});
|
|
455487
|
+
return /* @__PURE__ */ jsx_dev_runtime266.jsxDEV(ThemedBox_default, {
|
|
455488
|
+
flexDirection: "column",
|
|
455489
|
+
paddingLeft: 2,
|
|
455490
|
+
children: [
|
|
455491
|
+
/* @__PURE__ */ jsx_dev_runtime266.jsxDEV(ThemedText, {
|
|
455492
|
+
color: "red",
|
|
455493
|
+
bold: true,
|
|
455494
|
+
children: "⚠ Delete session?"
|
|
455495
|
+
}, undefined, false, undefined, this),
|
|
455496
|
+
/* @__PURE__ */ jsx_dev_runtime266.jsxDEV(ThemedText, {
|
|
455497
|
+
children: " "
|
|
455498
|
+
}, undefined, false, undefined, this),
|
|
455499
|
+
/* @__PURE__ */ jsx_dev_runtime266.jsxDEV(ThemedText, {
|
|
455500
|
+
children: [
|
|
455501
|
+
" ",
|
|
455502
|
+
truncated
|
|
455503
|
+
]
|
|
455504
|
+
}, undefined, true, undefined, this),
|
|
455505
|
+
/* @__PURE__ */ jsx_dev_runtime266.jsxDEV(ThemedText, {
|
|
455506
|
+
children: " "
|
|
455507
|
+
}, undefined, false, undefined, this),
|
|
455508
|
+
/* @__PURE__ */ jsx_dev_runtime266.jsxDEV(ThemedText, {
|
|
455509
|
+
dimColor: true,
|
|
455510
|
+
children: [
|
|
455511
|
+
"Press ",
|
|
455512
|
+
/* @__PURE__ */ jsx_dev_runtime266.jsxDEV(ThemedText, {
|
|
455513
|
+
bold: true,
|
|
455514
|
+
color: "red",
|
|
455515
|
+
children: "y"
|
|
455516
|
+
}, undefined, false, undefined, this),
|
|
455517
|
+
" to confirm, ",
|
|
455518
|
+
/* @__PURE__ */ jsx_dev_runtime266.jsxDEV(ThemedText, {
|
|
455519
|
+
bold: true,
|
|
455520
|
+
children: "n"
|
|
455521
|
+
}, undefined, false, undefined, this),
|
|
455522
|
+
" or Esc to cancel"
|
|
455523
|
+
]
|
|
455524
|
+
}, undefined, true, undefined, this)
|
|
455525
|
+
]
|
|
455526
|
+
}, undefined, true, undefined, this);
|
|
455527
|
+
}
|
|
455456
455528
|
function filterResumableSessions(logs2, currentSessionId) {
|
|
455457
455529
|
return logs2.filter((l) => !l.isSidechain && getSessionIdFromLog(l) !== currentSessionId);
|
|
455458
455530
|
}
|
|
@@ -477728,7 +477800,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
477728
477800
|
var call60 = async () => {
|
|
477729
477801
|
return {
|
|
477730
477802
|
type: "text",
|
|
477731
|
-
value: `${"99.0.0"} (built ${"2026-04-
|
|
477803
|
+
value: `${"99.0.0"} (built ${"2026-04-22T05:46:53.341Z"})`
|
|
477732
477804
|
};
|
|
477733
477805
|
}, version2, version_default;
|
|
477734
477806
|
var init_version = __esm(() => {
|
|
@@ -488886,6 +488958,7 @@ __export(exports_sessionStorage, {
|
|
|
488886
488958
|
extractAgentIdsFromMessages: () => extractAgentIdsFromMessages,
|
|
488887
488959
|
enrichLogs: () => enrichLogs,
|
|
488888
488960
|
doesMessageExistInSession: () => doesMessageExistInSession,
|
|
488961
|
+
deleteSessionFile: () => deleteSessionFile,
|
|
488889
488962
|
deleteRemoteAgentMetadata: () => deleteRemoteAgentMetadata,
|
|
488890
488963
|
clearSessionMetadata: () => clearSessionMetadata,
|
|
488891
488964
|
clearSessionMessagesCache: () => clearSessionMessagesCache,
|
|
@@ -489000,6 +489073,16 @@ async function deleteRemoteAgentMetadata(taskId) {
|
|
|
489000
489073
|
throw e2;
|
|
489001
489074
|
}
|
|
489002
489075
|
}
|
|
489076
|
+
async function deleteSessionFile(sessionId, fullPath) {
|
|
489077
|
+
const resolvedPath = fullPath ?? getTranscriptPathForSession(sessionId);
|
|
489078
|
+
try {
|
|
489079
|
+
await unlink21(resolvedPath);
|
|
489080
|
+
} catch (e2) {
|
|
489081
|
+
if (isFsInaccessible(e2))
|
|
489082
|
+
return;
|
|
489083
|
+
throw e2;
|
|
489084
|
+
}
|
|
489085
|
+
}
|
|
489003
489086
|
async function listRemoteAgentMetadata() {
|
|
489004
489087
|
const dir = getRemoteAgentsDir();
|
|
489005
489088
|
let entries;
|
|
@@ -542345,7 +542428,7 @@ var init_tipRegistry = __esm(() => {
|
|
|
542345
542428
|
externalTips = [
|
|
542346
542429
|
{
|
|
542347
542430
|
id: "new-user-warmup",
|
|
542348
|
-
content: async () => `Start with small features or bug fixes, tell
|
|
542431
|
+
content: async () => `Start with small features or bug fixes, tell STRATAGEM to propose a plan, and verify its suggested edits`,
|
|
542349
542432
|
cooldownSessions: 3,
|
|
542350
542433
|
async isRelevant() {
|
|
542351
542434
|
const config3 = getGlobalConfig();
|
|
@@ -542381,7 +542464,7 @@ var init_tipRegistry = __esm(() => {
|
|
|
542381
542464
|
},
|
|
542382
542465
|
{
|
|
542383
542466
|
id: "git-worktrees",
|
|
542384
|
-
content: async () => "Use git worktrees to run multiple
|
|
542467
|
+
content: async () => "Use git worktrees to run multiple STRATAGEM sessions in parallel.",
|
|
542385
542468
|
cooldownSessions: 10,
|
|
542386
542469
|
isRelevant: async () => {
|
|
542387
542470
|
try {
|
|
@@ -542395,7 +542478,7 @@ var init_tipRegistry = __esm(() => {
|
|
|
542395
542478
|
},
|
|
542396
542479
|
{
|
|
542397
542480
|
id: "color-when-multi-clauding",
|
|
542398
|
-
content: async () => "Running multiple
|
|
542481
|
+
content: async () => "Running multiple STRATAGEM sessions? Use /color and /rename to tell them apart at a glance.",
|
|
542399
542482
|
cooldownSessions: 10,
|
|
542400
542483
|
isRelevant: async () => {
|
|
542401
542484
|
if (getCurrentSessionAgentColor())
|
|
@@ -542439,7 +542522,7 @@ var init_tipRegistry = __esm(() => {
|
|
|
542439
542522
|
},
|
|
542440
542523
|
{
|
|
542441
542524
|
id: "memory-command",
|
|
542442
|
-
content: async () => "Use /memory to view and manage
|
|
542525
|
+
content: async () => "Use /memory to view and manage agent memory",
|
|
542443
542526
|
cooldownSessions: 15,
|
|
542444
542527
|
async isRelevant() {
|
|
542445
542528
|
const config3 = getGlobalConfig();
|
|
@@ -542472,7 +542555,7 @@ var init_tipRegistry = __esm(() => {
|
|
|
542472
542555
|
},
|
|
542473
542556
|
{
|
|
542474
542557
|
id: "prompt-queue",
|
|
542475
|
-
content: async () => "Hit Enter to queue up additional messages while
|
|
542558
|
+
content: async () => "Hit Enter to queue up additional messages while STRATAGEM is processing.",
|
|
542476
542559
|
cooldownSessions: 5,
|
|
542477
542560
|
async isRelevant() {
|
|
542478
542561
|
const config3 = getGlobalConfig();
|
|
@@ -542481,13 +542564,13 @@ var init_tipRegistry = __esm(() => {
|
|
|
542481
542564
|
},
|
|
542482
542565
|
{
|
|
542483
542566
|
id: "enter-to-steer-in-relatime",
|
|
542484
|
-
content: async () => "Send messages
|
|
542567
|
+
content: async () => "Send messages while STRATAGEM works to steer it in real-time",
|
|
542485
542568
|
cooldownSessions: 20,
|
|
542486
542569
|
isRelevant: async () => true
|
|
542487
542570
|
},
|
|
542488
542571
|
{
|
|
542489
542572
|
id: "todo-list",
|
|
542490
|
-
content: async () => "Ask
|
|
542573
|
+
content: async () => "Ask STRATAGEM to create a todo list when working on complex tasks to track progress and remain on track",
|
|
542491
542574
|
cooldownSessions: 20,
|
|
542492
542575
|
isRelevant: async () => true
|
|
542493
542576
|
},
|
|
@@ -542516,7 +542599,7 @@ var init_tipRegistry = __esm(() => {
|
|
|
542516
542599
|
},
|
|
542517
542600
|
{
|
|
542518
542601
|
id: "ide-upsell-external-terminal",
|
|
542519
|
-
content: async () => "Connect
|
|
542602
|
+
content: async () => "Connect STRATAGEM to your IDE · /ide",
|
|
542520
542603
|
cooldownSessions: 4,
|
|
542521
542604
|
async isRelevant() {
|
|
542522
542605
|
if (isSupportedTerminal()) {
|
|
@@ -542532,13 +542615,13 @@ var init_tipRegistry = __esm(() => {
|
|
|
542532
542615
|
},
|
|
542533
542616
|
{
|
|
542534
542617
|
id: "install-github-app",
|
|
542535
|
-
content: async () => "Run /install-github-app to tag @
|
|
542618
|
+
content: async () => "Run /install-github-app to tag @stratagem right from your Github issues and PRs",
|
|
542536
542619
|
cooldownSessions: 10,
|
|
542537
542620
|
isRelevant: async () => !getGlobalConfig().githubActionSetupCount
|
|
542538
542621
|
},
|
|
542539
542622
|
{
|
|
542540
542623
|
id: "install-slack-app",
|
|
542541
|
-
content: async () => "Run /install-slack-app to use
|
|
542624
|
+
content: async () => "Run /install-slack-app to use STRATAGEM in Slack",
|
|
542542
542625
|
cooldownSessions: 10,
|
|
542543
542626
|
isRelevant: async () => !getGlobalConfig().slackAppInstallCount
|
|
542544
542627
|
},
|
|
@@ -542559,7 +542642,7 @@ var init_tipRegistry = __esm(() => {
|
|
|
542559
542642
|
},
|
|
542560
542643
|
{
|
|
542561
542644
|
id: "paste-images-mac",
|
|
542562
|
-
content: async () => "Paste images into
|
|
542645
|
+
content: async () => "Paste images into STRATAGEM using control+v (not cmd+v!)",
|
|
542563
542646
|
cooldownSessions: 10,
|
|
542564
542647
|
isRelevant: async () => getPlatform() === "macos"
|
|
542565
542648
|
},
|
|
@@ -542628,7 +542711,7 @@ var init_tipRegistry = __esm(() => {
|
|
|
542628
542711
|
},
|
|
542629
542712
|
{
|
|
542630
542713
|
id: "desktop-app",
|
|
542631
|
-
content: async () => "Run
|
|
542714
|
+
content: async () => "Run STRATAGEM X7 locally or remotely from any terminal",
|
|
542632
542715
|
cooldownSessions: 15,
|
|
542633
542716
|
isRelevant: async () => getPlatform() !== "linux"
|
|
542634
542717
|
},
|
|
@@ -542636,7 +542719,7 @@ var init_tipRegistry = __esm(() => {
|
|
|
542636
542719
|
id: "desktop-shortcut",
|
|
542637
542720
|
content: async (ctx) => {
|
|
542638
542721
|
const blue2 = color("suggestion", ctx.theme);
|
|
542639
|
-
return `Continue your session in
|
|
542722
|
+
return `Continue your session in desktop mode with ${blue2("/desktop")}`;
|
|
542640
542723
|
},
|
|
542641
542724
|
cooldownSessions: 15,
|
|
542642
542725
|
isRelevant: async () => {
|
|
@@ -542647,19 +542730,19 @@ var init_tipRegistry = __esm(() => {
|
|
|
542647
542730
|
},
|
|
542648
542731
|
{
|
|
542649
542732
|
id: "web-app",
|
|
542650
|
-
content: async () => "Run tasks in the cloud while you keep coding locally ·
|
|
542733
|
+
content: async () => "Run tasks in the cloud while you keep coding locally · ",
|
|
542651
542734
|
cooldownSessions: 15,
|
|
542652
542735
|
isRelevant: async () => true
|
|
542653
542736
|
},
|
|
542654
542737
|
{
|
|
542655
542738
|
id: "mobile-app",
|
|
542656
|
-
content: async () => "/mobile to use
|
|
542739
|
+
content: async () => "/mobile to use STRATAGEM X7 from the mobile app on your phone",
|
|
542657
542740
|
cooldownSessions: 15,
|
|
542658
542741
|
isRelevant: async () => true
|
|
542659
542742
|
},
|
|
542660
542743
|
{
|
|
542661
542744
|
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
|
|
542745
|
+
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
542746
|
cooldownSessions: 2,
|
|
542664
542747
|
async isRelevant() {
|
|
542665
542748
|
const config3 = getGlobalConfig();
|
|
@@ -542700,7 +542783,7 @@ ${blue2(`/plugin install vercel@${OFFICIAL_MARKETPLACE_NAME}`)}`;
|
|
|
542700
542783
|
const blue2 = color("suggestion", ctx.theme);
|
|
542701
542784
|
const cmd = blue2("/effort high");
|
|
542702
542785
|
const variant = getFeatureValue_CACHED_MAY_BE_STALE("tengu_tide_elm", "off");
|
|
542703
|
-
return variant === "copy_b" ? `Use ${cmd} for better one-shot answers.
|
|
542786
|
+
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
542787
|
},
|
|
542705
542788
|
cooldownSessions: 3,
|
|
542706
542789
|
isRelevant: async () => {
|
|
@@ -542724,7 +542807,7 @@ ${blue2(`/plugin install vercel@${OFFICIAL_MARKETPLACE_NAME}`)}`;
|
|
|
542724
542807
|
content: async (ctx) => {
|
|
542725
542808
|
const blue2 = color("suggestion", ctx.theme);
|
|
542726
542809
|
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
|
|
542810
|
+
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
542811
|
},
|
|
542729
542812
|
cooldownSessions: 3,
|
|
542730
542813
|
isRelevant: async () => {
|
|
@@ -542754,7 +542837,7 @@ ${blue2(`/plugin install vercel@${OFFICIAL_MARKETPLACE_NAME}`)}`;
|
|
|
542754
542837
|
content: async (ctx) => {
|
|
542755
542838
|
const claude = color("claude", ctx.theme);
|
|
542756
542839
|
const reward = getCachedReferrerReward();
|
|
542757
|
-
return reward ? `Share
|
|
542840
|
+
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
542841
|
},
|
|
542759
542842
|
cooldownSessions: 3,
|
|
542760
542843
|
isRelevant: async () => {
|
|
@@ -553063,7 +553146,7 @@ function WelcomeV2() {
|
|
|
553063
553146
|
dimColor: true,
|
|
553064
553147
|
children: [
|
|
553065
553148
|
"v",
|
|
553066
|
-
"0.3.
|
|
553149
|
+
"0.3.1",
|
|
553067
553150
|
" "
|
|
553068
553151
|
]
|
|
553069
553152
|
}, undefined, true, undefined, this)
|
|
@@ -573080,7 +573163,7 @@ Usage: stx7 --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
573080
573163
|
pendingHookMessages
|
|
573081
573164
|
}, renderAndRun);
|
|
573082
573165
|
}
|
|
573083
|
-
}).version("0.3.
|
|
573166
|
+
}).version("0.3.1 (STRATAGEM X7)", "-v, --version", "Output the version number");
|
|
573084
573167
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
573085
573168
|
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
573169
|
if (canUserConfigureAdvisor()) {
|
|
@@ -573609,7 +573692,7 @@ if (false) {}
|
|
|
573609
573692
|
async function main2() {
|
|
573610
573693
|
const args = process.argv.slice(2);
|
|
573611
573694
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
573612
|
-
console.log(`${"0.3.
|
|
573695
|
+
console.log(`${"0.3.1"} (STRATAGEM X7)`);
|
|
573613
573696
|
return;
|
|
573614
573697
|
}
|
|
573615
573698
|
if (args.includes("--provider")) {
|
|
@@ -573731,4 +573814,4 @@ async function main2() {
|
|
|
573731
573814
|
}
|
|
573732
573815
|
main2();
|
|
573733
573816
|
|
|
573734
|
-
//# debugId=
|
|
573817
|
+
//# debugId=45F7148D302D8DB864756E2164756E21
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "stratagem-x7",
|
|
3
|
-
"version": "0.3.
|
|
4
|
-
"description": "STRATAGEM X7 is a cyberpunk coding-agent CLI for cloud and local model providers",
|
|
3
|
+
"version": "0.3.1",
|
|
4
|
+
"description": "STRATAGEM X7 is a cyberpunk coding-agent CLI for cloud and local model providers",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"bin": {
|
|
7
|
-
"openclaude": "./bin/openclaude",
|
|
8
|
-
"stx7": "./bin/stx7"
|
|
9
|
-
},
|
|
6
|
+
"bin": {
|
|
7
|
+
"openclaude": "./bin/openclaude",
|
|
8
|
+
"stx7": "./bin/stx7"
|
|
9
|
+
},
|
|
10
10
|
"files": [
|
|
11
11
|
"bin/",
|
|
12
12
|
"dist/cli.mjs",
|
|
@@ -141,7 +141,7 @@
|
|
|
141
141
|
},
|
|
142
142
|
"repository": {
|
|
143
143
|
"type": "git",
|
|
144
|
-
"url": "https://github.com/EstarinAzx/XETH--7.git"
|
|
144
|
+
"url": "https://github.com/EstarinAzx/XETH--7.git"
|
|
145
145
|
},
|
|
146
146
|
"keywords": [
|
|
147
147
|
"stratagem-x7",
|