slopwaresystems 0.9.1 → 0.9.3
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/index.js +1 -1
- package/dist/main.js +490 -24
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -146,7 +146,7 @@ function fetchLaunchCandidate(launcher2) {
|
|
|
146
146
|
var path = fileURLToPath(import.meta.url);
|
|
147
147
|
var launcher = {
|
|
148
148
|
path,
|
|
149
|
-
bundledVersion: "0.9.
|
|
149
|
+
bundledVersion: "0.9.3",
|
|
150
150
|
bundledMain: fileURLToPath(new URL("./main.js", import.meta.url)),
|
|
151
151
|
installed: isInstalledLauncherPath(path)
|
|
152
152
|
};
|
package/dist/main.js
CHANGED
|
@@ -26542,7 +26542,7 @@ var TaskEventRecord = external_exports.object({
|
|
|
26542
26542
|
});
|
|
26543
26543
|
|
|
26544
26544
|
// ../contract/src/work/cli-release.ts
|
|
26545
|
-
var CLI_RELEASE = "0.9.
|
|
26545
|
+
var CLI_RELEASE = "0.9.3";
|
|
26546
26546
|
var CLI_VERSION_PATTERN = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?$/;
|
|
26547
26547
|
var CLI_VERSION_MAX = 64;
|
|
26548
26548
|
function parseCliVersion(version2) {
|
|
@@ -27002,8 +27002,451 @@ function hashKey(key) {
|
|
|
27002
27002
|
}
|
|
27003
27003
|
return hash2;
|
|
27004
27004
|
}
|
|
27005
|
+
var FIRST_NAMES = [
|
|
27006
|
+
"Agnes",
|
|
27007
|
+
"Albert",
|
|
27008
|
+
"Algernon",
|
|
27009
|
+
"Ambrose",
|
|
27010
|
+
"Archibald",
|
|
27011
|
+
"Arthur",
|
|
27012
|
+
"Augustus",
|
|
27013
|
+
"Barnaby",
|
|
27014
|
+
"Bartholomew",
|
|
27015
|
+
"Basil",
|
|
27016
|
+
"Beatrice",
|
|
27017
|
+
"Benedict",
|
|
27018
|
+
"Bernadette",
|
|
27019
|
+
"Bertha",
|
|
27020
|
+
"Bertram",
|
|
27021
|
+
"Beryl",
|
|
27022
|
+
"Blanche",
|
|
27023
|
+
"Boris",
|
|
27024
|
+
"Brenda",
|
|
27025
|
+
"Cecil",
|
|
27026
|
+
"Cedric",
|
|
27027
|
+
"Clarence",
|
|
27028
|
+
"Clementine",
|
|
27029
|
+
"Cornelius",
|
|
27030
|
+
"Cuthbert",
|
|
27031
|
+
"Cyril",
|
|
27032
|
+
"Daphne",
|
|
27033
|
+
"Delilah",
|
|
27034
|
+
"Denise",
|
|
27035
|
+
"Dennis",
|
|
27036
|
+
"Desmond",
|
|
27037
|
+
"Doreen",
|
|
27038
|
+
"Dorothy",
|
|
27039
|
+
"Doug",
|
|
27040
|
+
"Edgar",
|
|
27041
|
+
"Edith",
|
|
27042
|
+
"Edna",
|
|
27043
|
+
"Egbert",
|
|
27044
|
+
"Eleanor",
|
|
27045
|
+
"Elmer",
|
|
27046
|
+
"Enid",
|
|
27047
|
+
"Ernest",
|
|
27048
|
+
"Esmeralda",
|
|
27049
|
+
"Ethel",
|
|
27050
|
+
"Eugene",
|
|
27051
|
+
"Eunice",
|
|
27052
|
+
"Fenella",
|
|
27053
|
+
"Ferdinand",
|
|
27054
|
+
"Fergus",
|
|
27055
|
+
"Florence",
|
|
27056
|
+
"Frances",
|
|
27057
|
+
"Gareth",
|
|
27058
|
+
"Gary",
|
|
27059
|
+
"Geoffrey",
|
|
27060
|
+
"Gerald",
|
|
27061
|
+
"Gertrude",
|
|
27062
|
+
"Gilbert",
|
|
27063
|
+
"Gladys",
|
|
27064
|
+
"Glenda",
|
|
27065
|
+
"Gordon",
|
|
27066
|
+
"Graham",
|
|
27067
|
+
"Greg",
|
|
27068
|
+
"Gwendolyn",
|
|
27069
|
+
"Hank",
|
|
27070
|
+
"Harold",
|
|
27071
|
+
"Harriet",
|
|
27072
|
+
"Hazel",
|
|
27073
|
+
"Henrietta",
|
|
27074
|
+
"Herbert",
|
|
27075
|
+
"Hilda",
|
|
27076
|
+
"Horace",
|
|
27077
|
+
"Hortense",
|
|
27078
|
+
"Hubert",
|
|
27079
|
+
"Humphrey",
|
|
27080
|
+
"Ignatius",
|
|
27081
|
+
"Imelda",
|
|
27082
|
+
"Irene",
|
|
27083
|
+
"Irving",
|
|
27084
|
+
"Ivy",
|
|
27085
|
+
"Jasper",
|
|
27086
|
+
"Jeremiah",
|
|
27087
|
+
"Jocelyn",
|
|
27088
|
+
"Judith",
|
|
27089
|
+
"Karen",
|
|
27090
|
+
"Keith",
|
|
27091
|
+
"Kevin",
|
|
27092
|
+
"Lavinia",
|
|
27093
|
+
"Leonard",
|
|
27094
|
+
"Leopold",
|
|
27095
|
+
"Linda",
|
|
27096
|
+
"Lionel",
|
|
27097
|
+
"Lois",
|
|
27098
|
+
"Lorraine",
|
|
27099
|
+
"Lucinda",
|
|
27100
|
+
"Mabel",
|
|
27101
|
+
"Marjorie",
|
|
27102
|
+
"Martha",
|
|
27103
|
+
"Maude",
|
|
27104
|
+
"Maureen",
|
|
27105
|
+
"Mavis",
|
|
27106
|
+
"Melvin",
|
|
27107
|
+
"Mildred",
|
|
27108
|
+
"Miriam",
|
|
27109
|
+
"Montague",
|
|
27110
|
+
"Morris",
|
|
27111
|
+
"Muriel",
|
|
27112
|
+
"Myrtle",
|
|
27113
|
+
"Nancy",
|
|
27114
|
+
"Neville",
|
|
27115
|
+
"Nigel",
|
|
27116
|
+
"Norbert",
|
|
27117
|
+
"Norma",
|
|
27118
|
+
"Norman",
|
|
27119
|
+
"Octavia",
|
|
27120
|
+
"Ophelia",
|
|
27121
|
+
"Oswald",
|
|
27122
|
+
"Otto",
|
|
27123
|
+
"Pam",
|
|
27124
|
+
"Patricia",
|
|
27125
|
+
"Penelope",
|
|
27126
|
+
"Percival",
|
|
27127
|
+
"Petunia",
|
|
27128
|
+
"Phyllis",
|
|
27129
|
+
"Priscilla",
|
|
27130
|
+
"Prudence",
|
|
27131
|
+
"Quentin",
|
|
27132
|
+
"Reginald",
|
|
27133
|
+
"Rhonda",
|
|
27134
|
+
"Roderick",
|
|
27135
|
+
"Rosalind",
|
|
27136
|
+
"Rupert",
|
|
27137
|
+
"Sally",
|
|
27138
|
+
"Seymour",
|
|
27139
|
+
"Sheila",
|
|
27140
|
+
"Sidney",
|
|
27141
|
+
"Stanley",
|
|
27142
|
+
"Steve",
|
|
27143
|
+
"Susan",
|
|
27144
|
+
"Sybil",
|
|
27145
|
+
"Terrence",
|
|
27146
|
+
"Thaddeus",
|
|
27147
|
+
"Thelma",
|
|
27148
|
+
"Theodore",
|
|
27149
|
+
"Trevor",
|
|
27150
|
+
"Ursula",
|
|
27151
|
+
"Vernon",
|
|
27152
|
+
"Vivian",
|
|
27153
|
+
"Walter",
|
|
27154
|
+
"Wanda",
|
|
27155
|
+
"Wilbur",
|
|
27156
|
+
"Wilfred",
|
|
27157
|
+
"Winifred",
|
|
27158
|
+
"Yolanda",
|
|
27159
|
+
"Zebedee"
|
|
27160
|
+
];
|
|
27161
|
+
var SURNAME_STARTS = [
|
|
27162
|
+
"Apple",
|
|
27163
|
+
"Badger",
|
|
27164
|
+
"Bagel",
|
|
27165
|
+
"Banjo",
|
|
27166
|
+
"Barley",
|
|
27167
|
+
"Batter",
|
|
27168
|
+
"Bean",
|
|
27169
|
+
"Biscuit",
|
|
27170
|
+
"Blanket",
|
|
27171
|
+
"Blister",
|
|
27172
|
+
"Blunder",
|
|
27173
|
+
"Bobble",
|
|
27174
|
+
"Bramble",
|
|
27175
|
+
"Brisket",
|
|
27176
|
+
"Bubble",
|
|
27177
|
+
"Bucket",
|
|
27178
|
+
"Buckle",
|
|
27179
|
+
"Bumble",
|
|
27180
|
+
"Bunion",
|
|
27181
|
+
"Butter",
|
|
27182
|
+
"Cabbage",
|
|
27183
|
+
"Candle",
|
|
27184
|
+
"Carrot",
|
|
27185
|
+
"Cheddar",
|
|
27186
|
+
"Chowder",
|
|
27187
|
+
"Chutney",
|
|
27188
|
+
"Clatter",
|
|
27189
|
+
"Clobber",
|
|
27190
|
+
"Cobble",
|
|
27191
|
+
"Cocoa",
|
|
27192
|
+
"Crinkle",
|
|
27193
|
+
"Crouton",
|
|
27194
|
+
"Crumble",
|
|
27195
|
+
"Crumpet",
|
|
27196
|
+
"Cuddle",
|
|
27197
|
+
"Custard",
|
|
27198
|
+
"Dabble",
|
|
27199
|
+
"Dither",
|
|
27200
|
+
"Doily",
|
|
27201
|
+
"Dollop",
|
|
27202
|
+
"Doodle",
|
|
27203
|
+
"Dribble",
|
|
27204
|
+
"Drizzle",
|
|
27205
|
+
"Dumpling",
|
|
27206
|
+
"Fiddle",
|
|
27207
|
+
"Fizzle",
|
|
27208
|
+
"Flannel",
|
|
27209
|
+
"Flapjack",
|
|
27210
|
+
"Flounder",
|
|
27211
|
+
"Fluster",
|
|
27212
|
+
"Fondue",
|
|
27213
|
+
"Fritter",
|
|
27214
|
+
"Fudge",
|
|
27215
|
+
"Fumble",
|
|
27216
|
+
"Gherkin",
|
|
27217
|
+
"Giggle",
|
|
27218
|
+
"Goose",
|
|
27219
|
+
"Grumble",
|
|
27220
|
+
"Gumbo",
|
|
27221
|
+
"Haddock",
|
|
27222
|
+
"Haggle",
|
|
27223
|
+
"Hiccup",
|
|
27224
|
+
"Hobble",
|
|
27225
|
+
"Honk",
|
|
27226
|
+
"Jumble",
|
|
27227
|
+
"Kettle",
|
|
27228
|
+
"Kipper",
|
|
27229
|
+
"Kumquat",
|
|
27230
|
+
"Lentil",
|
|
27231
|
+
"Lozenge",
|
|
27232
|
+
"Marmalade",
|
|
27233
|
+
"Meringue",
|
|
27234
|
+
"Mitten",
|
|
27235
|
+
"Muddle",
|
|
27236
|
+
"Muffin",
|
|
27237
|
+
"Mumble",
|
|
27238
|
+
"Mustard",
|
|
27239
|
+
"Noodle",
|
|
27240
|
+
"Nugget",
|
|
27241
|
+
"Nutmeg",
|
|
27242
|
+
"Oatmeal",
|
|
27243
|
+
"Paddle",
|
|
27244
|
+
"Pancake",
|
|
27245
|
+
"Parsnip",
|
|
27246
|
+
"Pebble",
|
|
27247
|
+
"Pickle",
|
|
27248
|
+
"Piffle",
|
|
27249
|
+
"Plonk",
|
|
27250
|
+
"Plum",
|
|
27251
|
+
"Porridge",
|
|
27252
|
+
"Pretzel",
|
|
27253
|
+
"Prune",
|
|
27254
|
+
"Pudding",
|
|
27255
|
+
"Puddle",
|
|
27256
|
+
"Quibble",
|
|
27257
|
+
"Radish",
|
|
27258
|
+
"Ramble",
|
|
27259
|
+
"Rattle",
|
|
27260
|
+
"Rhubarb",
|
|
27261
|
+
"Ruckus",
|
|
27262
|
+
"Rumble",
|
|
27263
|
+
"Rumple",
|
|
27264
|
+
"Sausage",
|
|
27265
|
+
"Scone",
|
|
27266
|
+
"Scribble",
|
|
27267
|
+
"Shuffle",
|
|
27268
|
+
"Snooze",
|
|
27269
|
+
"Snorkel",
|
|
27270
|
+
"Soggy",
|
|
27271
|
+
"Spatula",
|
|
27272
|
+
"Sprocket",
|
|
27273
|
+
"Squabble",
|
|
27274
|
+
"Squelch",
|
|
27275
|
+
"Stumble",
|
|
27276
|
+
"Tadpole",
|
|
27277
|
+
"Teacup",
|
|
27278
|
+
"Thimble",
|
|
27279
|
+
"Tickle",
|
|
27280
|
+
"Toast",
|
|
27281
|
+
"Toffee",
|
|
27282
|
+
"Trifle",
|
|
27283
|
+
"Trumpet",
|
|
27284
|
+
"Tumble",
|
|
27285
|
+
"Turnip",
|
|
27286
|
+
"Waddle",
|
|
27287
|
+
"Waffle",
|
|
27288
|
+
"Walnut",
|
|
27289
|
+
"Wiggle",
|
|
27290
|
+
"Wobble",
|
|
27291
|
+
"Yodel",
|
|
27292
|
+
"Zither"
|
|
27293
|
+
];
|
|
27294
|
+
var SURNAME_ENDS = [
|
|
27295
|
+
"bank",
|
|
27296
|
+
"berry",
|
|
27297
|
+
"borough",
|
|
27298
|
+
"bottom",
|
|
27299
|
+
"bridge",
|
|
27300
|
+
"brook",
|
|
27301
|
+
"bury",
|
|
27302
|
+
"by",
|
|
27303
|
+
"combe",
|
|
27304
|
+
"dale",
|
|
27305
|
+
"ford",
|
|
27306
|
+
"field",
|
|
27307
|
+
"gate",
|
|
27308
|
+
"ham",
|
|
27309
|
+
"hampton",
|
|
27310
|
+
"hurst",
|
|
27311
|
+
"ington",
|
|
27312
|
+
"kins",
|
|
27313
|
+
"ley",
|
|
27314
|
+
"man",
|
|
27315
|
+
"mere",
|
|
27316
|
+
"more",
|
|
27317
|
+
"ridge",
|
|
27318
|
+
"shaw",
|
|
27319
|
+
"shire",
|
|
27320
|
+
"sley",
|
|
27321
|
+
"smith",
|
|
27322
|
+
"son",
|
|
27323
|
+
"stead",
|
|
27324
|
+
"stone",
|
|
27325
|
+
"thorpe",
|
|
27326
|
+
"ton",
|
|
27327
|
+
"wick",
|
|
27328
|
+
"wood",
|
|
27329
|
+
"worth"
|
|
27330
|
+
];
|
|
27331
|
+
var TITLES = [
|
|
27332
|
+
"Admiral",
|
|
27333
|
+
"Archduke",
|
|
27334
|
+
"Aunt",
|
|
27335
|
+
"Baron",
|
|
27336
|
+
"Baroness",
|
|
27337
|
+
"Brigadier",
|
|
27338
|
+
"Captain",
|
|
27339
|
+
"Chancellor",
|
|
27340
|
+
"Colonel",
|
|
27341
|
+
"Commodore",
|
|
27342
|
+
"Count",
|
|
27343
|
+
"Countess",
|
|
27344
|
+
"Deputy",
|
|
27345
|
+
"Doctor",
|
|
27346
|
+
"Duchess",
|
|
27347
|
+
"Duke",
|
|
27348
|
+
"Earl",
|
|
27349
|
+
"Grand Vizier",
|
|
27350
|
+
"Inspector",
|
|
27351
|
+
"Lady",
|
|
27352
|
+
"Lord",
|
|
27353
|
+
"Madame",
|
|
27354
|
+
"Major",
|
|
27355
|
+
"Marquis",
|
|
27356
|
+
"Mayor",
|
|
27357
|
+
"Monsieur",
|
|
27358
|
+
"Nana",
|
|
27359
|
+
"Professor",
|
|
27360
|
+
"Reverend",
|
|
27361
|
+
"Sergeant",
|
|
27362
|
+
"Sir",
|
|
27363
|
+
"Uncle",
|
|
27364
|
+
"Viscount"
|
|
27365
|
+
];
|
|
27366
|
+
var NICKNAMES = [
|
|
27367
|
+
"Beans",
|
|
27368
|
+
"Biscuits",
|
|
27369
|
+
"Buttons",
|
|
27370
|
+
"Chowder",
|
|
27371
|
+
"Crumbs",
|
|
27372
|
+
"Custard",
|
|
27373
|
+
"Dumpling",
|
|
27374
|
+
"Fizz",
|
|
27375
|
+
"Gravy",
|
|
27376
|
+
"Hiccups",
|
|
27377
|
+
"Jellybean",
|
|
27378
|
+
"Lasagna",
|
|
27379
|
+
"Meatball",
|
|
27380
|
+
"Mittens",
|
|
27381
|
+
"Noodles",
|
|
27382
|
+
"Nugget",
|
|
27383
|
+
"Pancakes",
|
|
27384
|
+
"Pickles",
|
|
27385
|
+
"Pretzel",
|
|
27386
|
+
"Pudding",
|
|
27387
|
+
"Sprinkles",
|
|
27388
|
+
"Tadpole",
|
|
27389
|
+
"Toast",
|
|
27390
|
+
"Turbo",
|
|
27391
|
+
"Two Spoons",
|
|
27392
|
+
"Waffles",
|
|
27393
|
+
"Wobbles",
|
|
27394
|
+
"Yikes"
|
|
27395
|
+
];
|
|
27396
|
+
var EPITHETS = [
|
|
27397
|
+
"the Adequate",
|
|
27398
|
+
"the Bewildered",
|
|
27399
|
+
"the Damp",
|
|
27400
|
+
"the Dubious",
|
|
27401
|
+
"the Easily Startled",
|
|
27402
|
+
"the Forgetful",
|
|
27403
|
+
"the Fussy",
|
|
27404
|
+
"the Hesitant",
|
|
27405
|
+
"the Improbable",
|
|
27406
|
+
"the Inevitable",
|
|
27407
|
+
"the Irregular",
|
|
27408
|
+
"the Lukewarm",
|
|
27409
|
+
"the Magnificent",
|
|
27410
|
+
"the Mildly Alarmed",
|
|
27411
|
+
"the Moist",
|
|
27412
|
+
"the Overcaffeinated",
|
|
27413
|
+
"the Peckish",
|
|
27414
|
+
"the Perplexed",
|
|
27415
|
+
"the Punctual",
|
|
27416
|
+
"the Reluctant",
|
|
27417
|
+
"the Rumpled",
|
|
27418
|
+
"the Slightly Late",
|
|
27419
|
+
"the Soggy",
|
|
27420
|
+
"the Suspicious",
|
|
27421
|
+
"the Unbothered",
|
|
27422
|
+
"the Unready",
|
|
27423
|
+
"the Unyielding",
|
|
27424
|
+
"the Wobbly",
|
|
27425
|
+
"of the Marsh",
|
|
27426
|
+
"of the Tupperware",
|
|
27427
|
+
"of the Third Drawer",
|
|
27428
|
+
"of Lesser Importance",
|
|
27429
|
+
"Who Means Well",
|
|
27430
|
+
"Esq.",
|
|
27431
|
+
"the Pretty Sure",
|
|
27432
|
+
"the Well-Meaning",
|
|
27433
|
+
"the Absent-Minded",
|
|
27434
|
+
"the Almost Finished"
|
|
27435
|
+
];
|
|
27436
|
+
function generateNamePart(parts, key, part) {
|
|
27437
|
+
return parts[hashKey(`${part}\0${key}`) % parts.length] ?? parts[0];
|
|
27438
|
+
}
|
|
27439
|
+
function generateSurname(key) {
|
|
27440
|
+
return generateNamePart(SURNAME_STARTS, key, "start") + generateNamePart(SURNAME_ENDS, key, "end");
|
|
27441
|
+
}
|
|
27005
27442
|
function generateAgentName(key) {
|
|
27006
|
-
|
|
27443
|
+
const style = hashKey(`style\0${key}`) % 100;
|
|
27444
|
+
const first = generateNamePart(FIRST_NAMES, key, "first");
|
|
27445
|
+
if (style < 6) return AGENT_NAMES[hashKey(key) % AGENT_NAMES.length] ?? AGENT_NAMES[0];
|
|
27446
|
+
if (style < 26) return `${generateNamePart(TITLES, key, "title")} ${first} ${generateSurname(key)}`;
|
|
27447
|
+
if (style < 44) return `${first} "${generateNamePart(NICKNAMES, key, "nickname")}" ${generateSurname(key)}`;
|
|
27448
|
+
if (style < 66) return `${first} ${generateSurname(key)} ${generateNamePart(EPITHETS, key, "epithet")}`;
|
|
27449
|
+
return `${first} ${generateSurname(key)}`;
|
|
27007
27450
|
}
|
|
27008
27451
|
var WORKER_TITLES = [
|
|
27009
27452
|
(parent) => `${parent} Jr.`,
|
|
@@ -27770,7 +28213,8 @@ var SPLAT_RELAY_LIMITS = {
|
|
|
27770
28213
|
/** Requests waiting for a place; past it: 503, retryable. */
|
|
27771
28214
|
queuedRequestsPerSource: 2048,
|
|
27772
28215
|
webSocketsPerSession: 16,
|
|
27773
|
-
|
|
28216
|
+
// Dev servers' hot-reload messages pass 1 MiB (Next with many pages open); Workers take up to 32 MiB since late 2025.
|
|
28217
|
+
webSocketMessageBytes: 16 * 1024 * 1024,
|
|
27774
28218
|
headerCount: 128,
|
|
27775
28219
|
headerBytes: 48 * 1024,
|
|
27776
28220
|
pathLength: 8192,
|
|
@@ -29010,7 +29454,7 @@ function resolveAgentIdentity(cwd, fallback = "process") {
|
|
|
29010
29454
|
harness: conversation?.harness ?? null,
|
|
29011
29455
|
directory: repo ? basename3(repo.worktree) : basename3(cwd),
|
|
29012
29456
|
branch: fetchCurrentBranch(cwd),
|
|
29013
|
-
cliVersion: "0.9.
|
|
29457
|
+
cliVersion: "0.9.3"
|
|
29014
29458
|
};
|
|
29015
29459
|
}
|
|
29016
29460
|
|
|
@@ -29674,7 +30118,7 @@ function buildUpdateNotice() {
|
|
|
29674
30118
|
}
|
|
29675
30119
|
function resolveLatestCliVersion() {
|
|
29676
30120
|
const deprecated = fetchDeprecatedVersions();
|
|
29677
|
-
return sortCliVersions([CLI_RELEASE, "0.9.
|
|
30121
|
+
return sortCliVersions([CLI_RELEASE, "0.9.3", fetchUpdateStatus().latest ?? CLI_RELEASE]).filter((version2) => !deprecated.has(version2)).at(-1) ?? CLI_RELEASE;
|
|
29678
30122
|
}
|
|
29679
30123
|
function formatAgentCliVersion(version2, latest = resolveLatestCliVersion()) {
|
|
29680
30124
|
const label = version2 ? `slop ${version2}` : "an older slop";
|
|
@@ -30110,7 +30554,7 @@ async function updateInstalledCliFromRegistry(launcher, options2) {
|
|
|
30110
30554
|
const running = fetchLaunchCandidate(launcher).version;
|
|
30111
30555
|
const action = running === previous ? "current" : isNewerVersion(running, previous) ? "updated" : "rolled-back";
|
|
30112
30556
|
const latest = resolveNewestOfferedRelease(index);
|
|
30113
|
-
deleteUnusedVersions(/* @__PURE__ */ new Set([running, previous, current, launcher.bundledVersion, "0.9.
|
|
30557
|
+
deleteUnusedVersions(/* @__PURE__ */ new Set([running, previous, current, launcher.bundledVersion, "0.9.3"]));
|
|
30114
30558
|
persistUpdateStatus({ checkedAt: now(), latest, failures: 0, lastError: null });
|
|
30115
30559
|
return { action, running, previous, latest };
|
|
30116
30560
|
} catch (error62) {
|
|
@@ -30917,7 +31361,7 @@ function watchLaunchTarget(onChange) {
|
|
|
30917
31361
|
}
|
|
30918
31362
|
function runMcpRelay() {
|
|
30919
31363
|
const launcher = readLauncherInfo();
|
|
30920
|
-
const own2 = { version: "0.9.
|
|
31364
|
+
const own2 = { version: "0.9.3", main: fileURLToPath(import.meta.url), downloaded: false };
|
|
30921
31365
|
const relay = new McpRelay({
|
|
30922
31366
|
input: process.stdin,
|
|
30923
31367
|
output: process.stdout,
|
|
@@ -31358,7 +31802,7 @@ async function waitForMessage(api, projectId, taskKey, options2 = {}) {
|
|
|
31358
31802
|
setTimeout(() => resolve6(outcome), 50);
|
|
31359
31803
|
};
|
|
31360
31804
|
const held = new HeldSession(api, projectId, taskKey, {
|
|
31361
|
-
claim: () => options2.claim ?? { harness: null, directory: null, branch: null, cliVersion: "0.9.
|
|
31805
|
+
claim: () => options2.claim ?? { harness: null, directory: null, branch: null, cliVersion: "0.9.3" },
|
|
31362
31806
|
reconnect: false,
|
|
31363
31807
|
onHello: options2.onHello,
|
|
31364
31808
|
onEnd: () => finishWait({ kind: "ended" }),
|
|
@@ -34388,7 +34832,7 @@ var SplatPublisherConnection = class {
|
|
|
34388
34832
|
const helloTimer = setTimeout(() => socket.close(4e3, "hello timeout"), 2e4);
|
|
34389
34833
|
let ended = null;
|
|
34390
34834
|
socket.addEventListener("error", () => socket.close());
|
|
34391
|
-
socket.addEventListener("message", (event) => {
|
|
34835
|
+
socket.addEventListener("message", this.buildSplatSocketListener("the relay's message", (event) => {
|
|
34392
34836
|
if (this.socket !== socket) return;
|
|
34393
34837
|
if (event.data === "pong") {
|
|
34394
34838
|
if (pongTimer) clearTimeout(pongTimer);
|
|
@@ -34417,7 +34861,7 @@ var SplatPublisherConnection = class {
|
|
|
34417
34861
|
}
|
|
34418
34862
|
if (down.data.type === "end") ended = down.data.reason;
|
|
34419
34863
|
this.receiveDown(down.data);
|
|
34420
|
-
});
|
|
34864
|
+
}));
|
|
34421
34865
|
socket.addEventListener("close", (event) => {
|
|
34422
34866
|
clearInterval(pingTimer);
|
|
34423
34867
|
clearInterval(heartbeat);
|
|
@@ -34704,27 +35148,49 @@ var SplatPublisherConnection = class {
|
|
|
34704
35148
|
upstream.binaryType = "arraybuffer";
|
|
34705
35149
|
this.upstreamSockets.set(down.id, upstream);
|
|
34706
35150
|
let opened = false;
|
|
34707
|
-
|
|
35151
|
+
const closeUpstream = (code, reason) => {
|
|
35152
|
+
try {
|
|
35153
|
+
upstream.close(code, reason);
|
|
35154
|
+
} catch {
|
|
35155
|
+
}
|
|
35156
|
+
};
|
|
35157
|
+
upstream.addEventListener("open", this.buildSplatSocketListener("an app socket's open", () => {
|
|
34708
35158
|
opened = true;
|
|
34709
35159
|
this.sendUp({ type: "ws.accept", id: down.id, protocol: upstream.protocol || null });
|
|
34710
|
-
});
|
|
34711
|
-
upstream.addEventListener("message", (event) => {
|
|
35160
|
+
}, () => closeUpstream(4011, "publisher error")));
|
|
35161
|
+
upstream.addEventListener("message", this.buildSplatSocketListener("an app socket's message", (event) => {
|
|
34712
35162
|
const text = typeof event.data === "string";
|
|
34713
35163
|
const payload = text ? new TextEncoder().encode(event.data) : new Uint8Array(event.data);
|
|
34714
35164
|
if (payload.byteLength > SPLAT_RELAY_LIMITS.webSocketMessageBytes) {
|
|
34715
|
-
|
|
35165
|
+
this.log(`A message from localhost:${this.options.port}${down.path} is ${Math.round(payload.byteLength / 1048576)} MB, past the ${SPLAT_RELAY_LIMITS.webSocketMessageBytes / 1048576} MB a preview socket carries; closed that socket`);
|
|
35166
|
+
closeUpstream(4009, "message too large");
|
|
34716
35167
|
return;
|
|
34717
35168
|
}
|
|
34718
35169
|
this.sendUp(buildSplatRelayFrame(text ? SPLAT_RELAY_FRAME.wsText : SPLAT_RELAY_FRAME.wsBinary, down.id, payload));
|
|
34719
|
-
});
|
|
34720
|
-
upstream.addEventListener("close", (event) => {
|
|
35170
|
+
}, () => closeUpstream(4011, "publisher error")));
|
|
35171
|
+
upstream.addEventListener("close", this.buildSplatSocketListener("an app socket's close", (event) => {
|
|
34721
35172
|
if (this.upstreamSockets.get(down.id) !== upstream) return;
|
|
34722
35173
|
this.upstreamSockets.delete(down.id);
|
|
34723
35174
|
if (!opened) this.sendUp({ type: "ws.reject", id: down.id, status: 502, message: `localhost:${this.options.port} refused the connection` });
|
|
34724
35175
|
else this.sendUp({ type: "ws.close", id: down.id, code: event.code >= 1e3 && event.code <= 4999 && event.code !== 1005 && event.code !== 1006 ? event.code : 1e3, reason: event.reason.slice(0, 123) });
|
|
34725
|
-
});
|
|
35176
|
+
}));
|
|
34726
35177
|
upstream.addEventListener("error", () => void 0);
|
|
34727
35178
|
}
|
|
35179
|
+
/**
|
|
35180
|
+
* A socket event handler that cannot take the publisher down: a socket's handlers run outside any caller, so a throw
|
|
35181
|
+
* in one (a close code the runtime refuses, a frame it cannot build) would end the whole process and take every
|
|
35182
|
+
* preview of this source offline. It is logged, `recover` ends just the socket it came from, and publishing goes on.
|
|
35183
|
+
*/
|
|
35184
|
+
buildSplatSocketListener(what, handle, recover) {
|
|
35185
|
+
return (event) => {
|
|
35186
|
+
try {
|
|
35187
|
+
handle(event);
|
|
35188
|
+
} catch (error62) {
|
|
35189
|
+
this.log(`Error handling ${what}: ${error62 instanceof Error ? error62.message : String(error62)}`);
|
|
35190
|
+
recover?.();
|
|
35191
|
+
}
|
|
35192
|
+
};
|
|
35193
|
+
}
|
|
34728
35194
|
/** Everything in flight belonged to the connection that just closed: its requests and sockets to the app end too. */
|
|
34729
35195
|
releaseStreams() {
|
|
34730
35196
|
for (const id of [...this.streams.keys()]) this.closeStream(id);
|
|
@@ -34922,7 +35388,7 @@ var SplatRendererConnection = class {
|
|
|
34922
35388
|
try {
|
|
34923
35389
|
let path3;
|
|
34924
35390
|
try {
|
|
34925
|
-
const ticket = await this.api.post(`/projects/${this.projectId}/splat/renderer/ticket`, ApiResponses.ConnectTicket, { cliVersion: "0.9.
|
|
35391
|
+
const ticket = await this.api.post(`/projects/${this.projectId}/splat/renderer/ticket`, ApiResponses.ConnectTicket, { cliVersion: "0.9.3", onlyMe: this.options.onlyMe ?? false, agent: this.options.agent ?? null, capabilities: ["workspaces"] });
|
|
34926
35392
|
path3 = ticket.path;
|
|
34927
35393
|
} catch (error62) {
|
|
34928
35394
|
if (error62 instanceof CliError && ["unauthenticated", "not_found", "forbidden", "bad_request"].includes(error62.code)) {
|
|
@@ -36955,17 +37421,17 @@ function hasHarnessSetup() {
|
|
|
36955
37421
|
function syncMachineSetupAfterUpdate() {
|
|
36956
37422
|
const nothing = { skills: [], retired: [], reinstalling: false };
|
|
36957
37423
|
try {
|
|
36958
|
-
if (!isUpdateCheckEnabled() || fetchMachineSetupState()?.version === "0.9.
|
|
37424
|
+
if (!isUpdateCheckEnabled() || fetchMachineSetupState()?.version === "0.9.3") return nothing;
|
|
36959
37425
|
const lock = claimFileLock(buildMachineSetupLockDirectory(), { staleAfterMs: 6e4 });
|
|
36960
37426
|
if (!lock) return nothing;
|
|
36961
37427
|
try {
|
|
36962
37428
|
const state = fetchMachineSetupState();
|
|
36963
|
-
if (state?.version === "0.9.
|
|
37429
|
+
if (state?.version === "0.9.3") return nothing;
|
|
36964
37430
|
const skills = hasInstalledSkills() ? installSkills() : [];
|
|
36965
37431
|
const shipped = Object.keys(SKILLS);
|
|
36966
37432
|
const retired = deleteRetiredSkills((state?.skills ?? []).filter((name) => !shipped.includes(name)));
|
|
36967
37433
|
const setupRevision = state?.setupRevision ?? (hasHarnessSetup() ? UNRECORDED_SETUP_REVISION : null);
|
|
36968
|
-
persistMachineSetupState({ version: "0.9.
|
|
37434
|
+
persistMachineSetupState({ version: "0.9.3", setupRevision, skills: hasInstalledSkills() ? shipped : [] });
|
|
36969
37435
|
const reinstalling = setupRevision !== null && setupRevision < SETUP_REVISION && runMcpInstallInBackground();
|
|
36970
37436
|
return { skills, retired, reinstalling };
|
|
36971
37437
|
} finally {
|
|
@@ -37132,7 +37598,7 @@ async function trustCodexHooks(codexHome) {
|
|
|
37132
37598
|
const sendNotification = (method, params) => server.stdin.write(`${JSON.stringify({ jsonrpc: "2.0", method, params })}
|
|
37133
37599
|
`);
|
|
37134
37600
|
try {
|
|
37135
|
-
await callCodexMethod("initialize", { clientInfo: { name: "slop", version: "0.9.
|
|
37601
|
+
await callCodexMethod("initialize", { clientInfo: { name: "slop", version: "0.9.3" }, capabilities: { experimentalApi: true } });
|
|
37136
37602
|
sendNotification("initialized", {});
|
|
37137
37603
|
const listed = await callCodexMethod("hooks/list", { cwds: [process.cwd()] });
|
|
37138
37604
|
const ours = listed.data.flatMap((entry) => entry.hooks).filter((hook) => hook.command?.startsWith("slop hook "));
|
|
@@ -37397,7 +37863,7 @@ var options = optionEnd < 0 ? args : args.slice(0, optionEnd);
|
|
|
37397
37863
|
updateJsonMode(options.includes("--json"));
|
|
37398
37864
|
syncMachineSetupAfterUpdate();
|
|
37399
37865
|
if (!options.includes("--background") && !options.includes("--child")) scheduleBackgroundUpdate();
|
|
37400
|
-
var program2 = new Command().name("slop").description("Slopware Tasks from the terminal. Everything a person can do on the board, an agent can do here.").version("0.9.
|
|
37866
|
+
var program2 = new Command().name("slop").description("Slopware Tasks from the terminal. Everything a person can do on the board, an agent can do here.").version("0.9.3").option("--json", "machine-readable output: JSON on stdout, errors as JSON on stderr").configureOutput({
|
|
37401
37867
|
outputError: (message, write) => {
|
|
37402
37868
|
if (!isJsonMode()) write(message);
|
|
37403
37869
|
},
|
|
@@ -37414,7 +37880,7 @@ var sessionCommand = registerSessionCommands(program2);
|
|
|
37414
37880
|
registerThreadCommands(program2, taskCommand);
|
|
37415
37881
|
registerOperationCommands(program2, taskCommand, sessionCommand);
|
|
37416
37882
|
registerSplatCommands(program2);
|
|
37417
|
-
registerMcpCommands(program2, "0.9.
|
|
37883
|
+
registerMcpCommands(program2, "0.9.3");
|
|
37418
37884
|
registerGuideCommand(program2);
|
|
37419
37885
|
registerSkillCommands(program2);
|
|
37420
37886
|
registerUpdateCommand(program2);
|