@taskless-app/swarm 0.6.12 → 0.6.13
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.js +2 -2
- package/dist/overmind.js +27 -5
- package/package.json +2 -2
package/dist/cli.js
CHANGED
|
@@ -2103,7 +2103,7 @@ var init_package = __esm({
|
|
|
2103
2103
|
"package.json"() {
|
|
2104
2104
|
package_default = {
|
|
2105
2105
|
name: "@taskless-app/swarm",
|
|
2106
|
-
version: "0.6.
|
|
2106
|
+
version: "0.6.13",
|
|
2107
2107
|
type: "module",
|
|
2108
2108
|
description: "Local control plane for a fleet of AI coding agents (drones), coordinating through Taskless. The overmind runs the swarm.",
|
|
2109
2109
|
keywords: [
|
|
@@ -2153,7 +2153,7 @@ var init_package = __esm({
|
|
|
2153
2153
|
execa: "^10.0.0",
|
|
2154
2154
|
zod: "3.25.76"
|
|
2155
2155
|
},
|
|
2156
|
-
gitHead: "
|
|
2156
|
+
gitHead: "ea3913bf66c52d730c25ad62b7090621a5006ee7"
|
|
2157
2157
|
};
|
|
2158
2158
|
}
|
|
2159
2159
|
});
|
package/dist/overmind.js
CHANGED
|
@@ -3500,6 +3500,7 @@ function bad(status, error) {
|
|
|
3500
3500
|
function scopeOf(store, run) {
|
|
3501
3501
|
const ids = /* @__PURE__ */ new Set([run.id]);
|
|
3502
3502
|
if (run.reviews_run_id != null) ids.add(run.reviews_run_id);
|
|
3503
|
+
if (run.verifies_run_id != null) ids.add(run.verifies_run_id);
|
|
3503
3504
|
if (run.kind === "hero") for (const r of store.squadRuns(run.id)) ids.add(r.id);
|
|
3504
3505
|
return ids;
|
|
3505
3506
|
}
|
|
@@ -3512,6 +3513,10 @@ function invalidPatchValue(field, v) {
|
|
|
3512
3513
|
return typeof v === "string" && v in STATUS_META ? null : `\u043D\u0435\u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0439 \u0441\u0442\u0430\u0442\u0443\u0441: ${String(v)}`;
|
|
3513
3514
|
case "review_verdict":
|
|
3514
3515
|
return v === null || v === "approve" || v === "changes" ? null : `\u043D\u0435\u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0439 \u0432\u0435\u0440\u0434\u0438\u043A\u0442: ${String(v)}`;
|
|
3516
|
+
// TASWM-444: словарь исходов верификатора — один на весь продукт (swarm-core), поэтому
|
|
3517
|
+
// проверяем его же функцией, а не повторяем литералы третьим списком.
|
|
3518
|
+
case "verify_verdict":
|
|
3519
|
+
return v === null || isVerifyVerdict(v) ? null : `\u043D\u0435\u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0439 \u0432\u0435\u0440\u0434\u0438\u043A\u0442 \u0432\u0435\u0440\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u0430: ${String(v)}`;
|
|
3515
3520
|
case "review_cycle":
|
|
3516
3521
|
return typeof v === "number" && Number.isInteger(v) && v >= 0 ? null : `\u043D\u0435\u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0439 \u0446\u0438\u043A\u043B \u0440\u0435\u0432\u044C\u044E: ${String(v)}`;
|
|
3517
3522
|
case "pr_url":
|
|
@@ -3775,7 +3780,16 @@ var init_droneChannel = __esm({
|
|
|
3775
3780
|
"use strict";
|
|
3776
3781
|
init_src();
|
|
3777
3782
|
LOCAL_CLI_KEY = "cli";
|
|
3778
|
-
PATCHABLE = /* @__PURE__ */ new Set([
|
|
3783
|
+
PATCHABLE = /* @__PURE__ */ new Set([
|
|
3784
|
+
"status",
|
|
3785
|
+
"pr_url",
|
|
3786
|
+
"review_verdict",
|
|
3787
|
+
// TASWM-444: вердикт верификатора — такая же сдача работы, как review_verdict у ревьюера,
|
|
3788
|
+
// и пишется он тем же путём на ПРОВЕРЯЕМЫЙ прогон. Без него роль verifier была немой:
|
|
3789
|
+
// вердикт выносился комментарием на PR, а `done` отбивался каналом.
|
|
3790
|
+
"verify_verdict",
|
|
3791
|
+
"review_cycle"
|
|
3792
|
+
]);
|
|
3779
3793
|
EVENT_KIND_SET = new Set(EVENT_KINDS);
|
|
3780
3794
|
ChannelUnavailableError = class extends Error {
|
|
3781
3795
|
constructor(downMs, message) {
|
|
@@ -12187,7 +12201,7 @@ async function changedPaths(worktree, opts = {}) {
|
|
|
12187
12201
|
// package.json
|
|
12188
12202
|
var package_default = {
|
|
12189
12203
|
name: "@taskless-app/swarm",
|
|
12190
|
-
version: "0.6.
|
|
12204
|
+
version: "0.6.13",
|
|
12191
12205
|
type: "module",
|
|
12192
12206
|
description: "Local control plane for a fleet of AI coding agents (drones), coordinating through Taskless. The overmind runs the swarm.",
|
|
12193
12207
|
keywords: [
|
|
@@ -12237,7 +12251,7 @@ var package_default = {
|
|
|
12237
12251
|
execa: "^10.0.0",
|
|
12238
12252
|
zod: "3.25.76"
|
|
12239
12253
|
},
|
|
12240
|
-
gitHead: "
|
|
12254
|
+
gitHead: "ea3913bf66c52d730c25ad62b7090621a5006ee7"
|
|
12241
12255
|
};
|
|
12242
12256
|
|
|
12243
12257
|
// src/version.ts
|
|
@@ -14974,7 +14988,14 @@ async function prGateForReviewer(deps, run, prUrl, when) {
|
|
|
14974
14988
|
}
|
|
14975
14989
|
}
|
|
14976
14990
|
function doneMergedPrForSlug(db, slug) {
|
|
14977
|
-
const done = db.listRuns("done").find(
|
|
14991
|
+
const done = db.listRuns("done").find(
|
|
14992
|
+
(r) => r.task_slug === slug && r.pr_url && r.kind !== "hero" && r.resolves_run_id == null && r.reviews_run_id == null && // TASWM-446: и НЕ верификатор. «done = смержено» верно только для прогона, который PR
|
|
14993
|
+
// делал; верификатор же заканчивает в `done`, держа `pr_url` ПРОВЕРЯЕМОГО — открытого —
|
|
14994
|
+
// PR, и его завершение читалось как доказательство мержа. Дальше pre-spawn гейт закрывал
|
|
14995
|
+
// исполнителя как дубль: 17.08 так погибли пять живых прогонов подряд, а задача после
|
|
14996
|
+
// этого не бралась вовсе — следующий дрон умирал на том же месте.
|
|
14997
|
+
r.verifies_run_id == null
|
|
14998
|
+
);
|
|
14978
14999
|
return done?.pr_url ?? null;
|
|
14979
15000
|
}
|
|
14980
15001
|
async function closeDuplicateTaskRun(deps, run, mergedUrl) {
|
|
@@ -14993,7 +15014,8 @@ async function closeDuplicateTaskRun(deps, run, mergedUrl) {
|
|
|
14993
15014
|
async function closeMergedTaskRuns(deps) {
|
|
14994
15015
|
const bySlug = /* @__PURE__ */ new Map();
|
|
14995
15016
|
for (const run of deps.db.listRuns()) {
|
|
14996
|
-
if (run.kind === "hero" || run.resolves_run_id != null || run.reviews_run_id != null)
|
|
15017
|
+
if (run.kind === "hero" || run.resolves_run_id != null || run.reviews_run_id != null || run.verifies_run_id != null)
|
|
15018
|
+
continue;
|
|
14997
15019
|
let group = bySlug.get(run.task_slug);
|
|
14998
15020
|
if (!group) bySlug.set(run.task_slug, group = []);
|
|
14999
15021
|
group.push(run);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@taskless-app/swarm",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.13",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Local control plane for a fleet of AI coding agents (drones), coordinating through Taskless. The overmind runs the swarm.",
|
|
6
6
|
"keywords": [
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"execa": "^10.0.0",
|
|
39
39
|
"zod": "3.25.76"
|
|
40
40
|
},
|
|
41
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "ea3913bf66c52d730c25ad62b7090621a5006ee7",
|
|
42
42
|
"scripts": {
|
|
43
43
|
"overmind": "NODE_OPTIONS=\"${NODE_OPTIONS:-} --conditions=development\" tsx src/overmind.ts",
|
|
44
44
|
"swarm": "NODE_OPTIONS=\"${NODE_OPTIONS:-} --conditions=development\" tsx src/cli.ts",
|