ghostrail 0.21.0 → 0.23.0
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/board/page.d.ts.map +1 -1
- package/dist/board/page.js +71 -13
- package/dist/board/page.js.map +1 -1
- package/dist/board/server.d.ts +10 -0
- package/dist/board/server.d.ts.map +1 -1
- package/dist/board/server.js +24 -0
- package/dist/board/server.js.map +1 -1
- package/dist/cli/commands.d.ts +74 -2
- package/dist/cli/commands.d.ts.map +1 -1
- package/dist/cli/commands.js +183 -18
- package/dist/cli/commands.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +3 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/help.d.ts.map +1 -1
- package/dist/commands/help.js +11 -2
- package/dist/commands/help.js.map +1 -1
- package/dist/config/load.d.ts.map +1 -1
- package/dist/config/load.js +19 -0
- package/dist/config/load.js.map +1 -1
- package/dist/config/schema.d.ts +13 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js.map +1 -1
- package/dist/dashboard/page.d.ts +0 -14
- package/dist/dashboard/page.d.ts.map +1 -1
- package/dist/dashboard/page.js +107 -9
- package/dist/dashboard/page.js.map +1 -1
- package/dist/dashboard/routes.d.ts +4 -0
- package/dist/dashboard/routes.d.ts.map +1 -1
- package/dist/dashboard/routes.js +4 -0
- package/dist/dashboard/routes.js.map +1 -1
- package/dist/dashboard/server.d.ts +29 -0
- package/dist/dashboard/server.d.ts.map +1 -1
- package/dist/dashboard/server.js +75 -4
- package/dist/dashboard/server.js.map +1 -1
- package/dist/factory/build.d.ts +6 -0
- package/dist/factory/build.d.ts.map +1 -1
- package/dist/factory/build.js +23 -0
- package/dist/factory/build.js.map +1 -1
- package/dist/loop/branch.d.ts +8 -1
- package/dist/loop/branch.d.ts.map +1 -1
- package/dist/loop/branch.js +14 -2
- package/dist/loop/branch.js.map +1 -1
- package/dist/loop/engine.d.ts.map +1 -1
- package/dist/loop/engine.js +57 -5
- package/dist/loop/engine.js.map +1 -1
- package/dist/loop/next-tick.d.ts +43 -5
- package/dist/loop/next-tick.d.ts.map +1 -1
- package/dist/loop/next-tick.js +68 -18
- package/dist/loop/next-tick.js.map +1 -1
- package/dist/loop/ports.d.ts +4 -1
- package/dist/loop/ports.d.ts.map +1 -1
- package/dist/loop/recurrence.d.ts +43 -0
- package/dist/loop/recurrence.d.ts.map +1 -0
- package/dist/loop/recurrence.js +92 -0
- package/dist/loop/recurrence.js.map +1 -0
- package/dist/loop/schedule.d.ts +11 -2
- package/dist/loop/schedule.d.ts.map +1 -1
- package/dist/loop/schedule.js +3 -1
- package/dist/loop/schedule.js.map +1 -1
- package/dist/publish/gh.d.ts +43 -2
- package/dist/publish/gh.d.ts.map +1 -1
- package/dist/publish/gh.js +80 -2
- package/dist/publish/gh.js.map +1 -1
- package/dist/publish/githost.d.ts +18 -1
- package/dist/publish/githost.d.ts.map +1 -1
- package/dist/publish/githost.js +13 -0
- package/dist/publish/githost.js.map +1 -1
- package/dist/publish/index.d.ts +1 -1
- package/dist/publish/index.d.ts.map +1 -1
- package/dist/publish/index.js +1 -1
- package/dist/publish/index.js.map +1 -1
- package/dist/release/index.d.ts +2 -0
- package/dist/release/index.d.ts.map +1 -0
- package/dist/release/index.js +2 -0
- package/dist/release/index.js.map +1 -0
- package/dist/release/release.d.ts +67 -0
- package/dist/release/release.d.ts.map +1 -0
- package/dist/release/release.js +193 -0
- package/dist/release/release.js.map +1 -0
- package/dist/respond/ci-fix-queue.d.ts +40 -0
- package/dist/respond/ci-fix-queue.d.ts.map +1 -0
- package/dist/respond/ci-fix-queue.js +74 -0
- package/dist/respond/ci-fix-queue.js.map +1 -0
- package/dist/respond/index.d.ts +2 -1
- package/dist/respond/index.d.ts.map +1 -1
- package/dist/respond/index.js +2 -1
- package/dist/respond/index.js.map +1 -1
- package/dist/respond/merge.d.ts.map +1 -1
- package/dist/respond/merge.js +14 -1
- package/dist/respond/merge.js.map +1 -1
- package/dist/respond/respond.d.ts +26 -1
- package/dist/respond/respond.d.ts.map +1 -1
- package/dist/respond/respond.js +154 -9
- package/dist/respond/respond.js.map +1 -1
- package/dist/version.d.ts +6 -0
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +6 -0
- package/dist/version.js.map +1 -1
- package/package.json +1 -1
- package/skill/ghostrail/SKILL.md +15 -4
- package/templates/code/ghostrail.toml +3 -0
- package/templates/code/prompts/release.md +40 -0
- package/templates/code/prompts/respond.md +2 -1
- package/templates/content/prompts/respond.md +3 -1
package/dist/config/load.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/config/load.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/config/load.ts"],"names":[],"mappings":"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"}
|
package/dist/config/schema.d.ts
CHANGED
|
@@ -87,6 +87,17 @@ export interface RespondConfigSection {
|
|
|
87
87
|
*/
|
|
88
88
|
everyMs?: number;
|
|
89
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* Optional release stage: what "cut a release" means for this repo. Its
|
|
92
|
+
* prompt owns every repo-specific step (bump the version, write the
|
|
93
|
+
* changelog, publish, whatever else), so this section is small on purpose.
|
|
94
|
+
*/
|
|
95
|
+
export interface ReleaseConfig {
|
|
96
|
+
/** Prompt file for the release agent. Unlike the other prompts, it is
|
|
97
|
+
* expected to use git itself: committing the version bump and pushing the
|
|
98
|
+
* tag *is* the release. */
|
|
99
|
+
prompt: string;
|
|
100
|
+
}
|
|
90
101
|
/** Optional triage stage: decompose large issues into ordered sub-issues. */
|
|
91
102
|
export interface TriageConfig {
|
|
92
103
|
/** Prompt file for the triage agent (which writes the decomposition plan). */
|
|
@@ -173,6 +184,8 @@ export interface GhostrailConfig {
|
|
|
173
184
|
respond?: RespondConfigSection;
|
|
174
185
|
/** Optional triage stage config; `ghostrail triage` requires it. */
|
|
175
186
|
triage?: TriageConfig;
|
|
187
|
+
/** Optional release stage config; `ghostrail release` requires it. */
|
|
188
|
+
release?: ReleaseConfig;
|
|
176
189
|
}
|
|
177
190
|
/** Default agent tool allowlist: read + write files and run shell/search only. */
|
|
178
191
|
export declare const DEFAULT_ALLOWED_TOOLS: readonly string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,CAAU,CAAC;AAG1E,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,gBAAgB;IAChB,WAAW;IACX,aAAa;IACb,KAAK;IACL,QAAQ;CACA,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,CAAU,CAAC;AAG1E,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,gBAAgB;IAChB,WAAW;IACX,aAAa;IACb,KAAK;IACL,QAAQ;CACA,CAAC;AA8KX,mEAAmE;AACnE,MAAM,CAAC,MAAM,qBAAqB,GAAG,WAAW,CAAC;AACjD,MAAM,CAAC,MAAM,mBAAmB,GAAG,OAAO,CAAC;AAoB3C,kFAAkF;AAClF,MAAM,CAAC,MAAM,qBAAqB,GAAsB;IACtD,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;CACP,CAAC;AAEF,0CAA0C;AAC1C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AACtC,mDAAmD;AACnD,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAChD,6CAA6C;AAC7C,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,GAAG,MAAM,CAAC;AACpD,gDAAgD;AAChD,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,GAAG,SAAS,CAAC;AAE1D,mEAAmE;AACnE,MAAM,CAAC,MAAM,kBAAkB,GAAe;IAC5C,cAAc,EAAE,CAAC;IACjB,gBAAgB,EAAE,CAAC;IACnB,SAAS,EAAE,EAAE,GAAG,MAAM;IACtB,gBAAgB,EAAE,CAAC;IACnB,UAAU,EAAE,CAAC,GAAG,SAAS;IACzB,WAAW,EAAE,CAAC;IACd,WAAW,EAAE,oBAAoB;IACjC,oBAAoB,EAAE,8BAA8B;IACpD,cAAc,EAAE,wBAAwB;IACxC,iBAAiB,EAAE,4BAA4B;CAChD,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,GAAG,MAAM,CAAC;AACnD,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,GAAG,MAAM,CAAC;AAEnD,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAC1C,MAAM,CAAC,MAAM,oBAAoB,GAAgB,gBAAgB,CAAC;AAElE;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC"}
|
package/dist/dashboard/page.d.ts
CHANGED
|
@@ -1,16 +1,2 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The dashboard page. Inline, like the board's, so the package ships one file
|
|
3
|
-
* and the server needs no static asset handling.
|
|
4
|
-
*
|
|
5
|
-
* The checkbox is desired state and the copy has to keep saying so: a ticked
|
|
6
|
-
* box beside an inactive unit means "will start", not "running". Showing them
|
|
7
|
-
* as one thing would be a lie the operator acts on.
|
|
8
|
-
*
|
|
9
|
-
* Run detail matches the board's (TJ-1640), with two differences the dashboard
|
|
10
|
-
* forces. It renders detail straight from the listing rather than fetching a
|
|
11
|
-
* row per expanded run, because `/api/ghostrails` already carries whole rows.
|
|
12
|
-
* And every request that names a run or an artifact carries the ghostrail's
|
|
13
|
-
* `path`, since nothing here is scoped to a single repo.
|
|
14
|
-
*/
|
|
15
1
|
export declare const DASHBOARD_PAGE_HTML: string;
|
|
16
2
|
//# sourceMappingURL=page.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../src/dashboard/page.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../src/dashboard/page.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,mBAAmB,QAkiB/B,CAAC"}
|
package/dist/dashboard/page.js
CHANGED
|
@@ -14,6 +14,7 @@ import { VERSION } from "../version.js";
|
|
|
14
14
|
* And every request that names a run or an artifact carries the ghostrail's
|
|
15
15
|
* `path`, since nothing here is scoped to a single repo.
|
|
16
16
|
*/
|
|
17
|
+
import { STABILITY_NOTICE } from "../version.js";
|
|
17
18
|
export const DASHBOARD_PAGE_HTML = `<!doctype html>
|
|
18
19
|
<meta charset="utf-8">
|
|
19
20
|
<title>ghostrails</title>
|
|
@@ -31,6 +32,7 @@ export const DASHBOARD_PAGE_HTML = `<!doctype html>
|
|
|
31
32
|
.none { opacity: .55; font-size: .9em; margin: .6rem 0 0; }
|
|
32
33
|
label { display: inline-flex; align-items: center; gap: .4rem; cursor: pointer; }
|
|
33
34
|
.err { color: #b00; }
|
|
35
|
+
footer.notice { margin-top: 2rem; opacity: .55; font-size: .85em; }
|
|
34
36
|
table.runs { border-collapse: collapse; width: 100%; margin: .6rem 0 0; font-size: .9em; }
|
|
35
37
|
table.runs th, table.runs td { text-align: left; padding: .3rem .5rem; border-bottom: 1px solid color-mix(in oklab, currentColor 15%, transparent); }
|
|
36
38
|
table.runs th { font-weight: 600; opacity: .7; font-size: .85em; }
|
|
@@ -40,6 +42,12 @@ export const DASHBOARD_PAGE_HTML = `<!doctype html>
|
|
|
40
42
|
.row-err { font-size: 12px; color: #b3261e; margin-top: 2px; overflow-wrap: anywhere; }
|
|
41
43
|
.done { color: #2a9d3a; } .failed { color: #d33; } .blocked, .abandoned { color: #d90; }
|
|
42
44
|
.noop, .skipped { opacity: .6; } .muted { opacity: .6; }
|
|
45
|
+
.ci-failed { color: #d33; }
|
|
46
|
+
.fix-ci {
|
|
47
|
+
font: inherit; font-size: .8em; margin-left: .4rem; padding: .05rem .4rem;
|
|
48
|
+
border-radius: 4px; border: 1px solid currentColor; background: none; cursor: pointer;
|
|
49
|
+
}
|
|
50
|
+
.fix-ci:disabled { cursor: default; opacity: .6; }
|
|
43
51
|
.twirl {
|
|
44
52
|
background: none; border: none; cursor: pointer; font: inherit; padding: 0 .3rem;
|
|
45
53
|
color: inherit; display: inline-block; transition: transform .15s ease;
|
|
@@ -55,6 +63,8 @@ export const DASHBOARD_PAGE_HTML = `<!doctype html>
|
|
|
55
63
|
.merge-row { display: flex; align-items: center; gap: .5rem; }
|
|
56
64
|
.merge-btn { font: inherit; }
|
|
57
65
|
.merge-status { font-size: .85em; opacity: .8; }
|
|
66
|
+
.release-btn { font: inherit; font-size: .85em; }
|
|
67
|
+
.release-status { font-size: .85em; opacity: .8; }
|
|
58
68
|
.log-section { margin-top: .6rem; }
|
|
59
69
|
.log-head { display: flex; align-items: center; gap: .5rem; }
|
|
60
70
|
.countdown { opacity: .7; font-size: .85em; }
|
|
@@ -65,6 +75,7 @@ export const DASHBOARD_PAGE_HTML = `<!doctype html>
|
|
|
65
75
|
<h1>ghostrails <span class="ver">v${VERSION}</span></h1>
|
|
66
76
|
<p class="sub">The checkbox is what <code>ghostrail start</code> should bring up. The pill beside it is what is running right now.</p>
|
|
67
77
|
<div id="list">loading…</div>
|
|
78
|
+
<footer class="notice">${STABILITY_NOTICE}</footer>
|
|
68
79
|
<script>
|
|
69
80
|
const tok = new URLSearchParams(location.search).get("token");
|
|
70
81
|
const api = (p) => p + (tok ? (p.includes("?") ? "&" : "?") + "token=" + encodeURIComponent(tok) : "");
|
|
@@ -85,6 +96,7 @@ const itemLink = (r, label) =>
|
|
|
85
96
|
// which is stable across renders; DOM ids are positional and are not.
|
|
86
97
|
const expanded = new Set();
|
|
87
98
|
const prStatus = new Map();
|
|
99
|
+
const queuedCi = new Set();
|
|
88
100
|
const rowKey = (path, runId) => JSON.stringify([path, runId]);
|
|
89
101
|
let latest = [];
|
|
90
102
|
|
|
@@ -100,7 +112,46 @@ function fmtWhen(ts) {
|
|
|
100
112
|
return ts ? new Date(ts).toLocaleString() : "";
|
|
101
113
|
}
|
|
102
114
|
|
|
103
|
-
|
|
115
|
+
// Same rule as publish/githost.ts's hasFailingCheck: at least one check has
|
|
116
|
+
// concluded and did not succeed. Restated here because this inline script
|
|
117
|
+
// cannot import that module.
|
|
118
|
+
function ciFailed(status) {
|
|
119
|
+
return !!(
|
|
120
|
+
status && status.available && status.state === "open" &&
|
|
121
|
+
(status.checks || []).some((c) => c.conclusion && c.conclusion !== "success")
|
|
122
|
+
);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// A "done" row with a still-open PR shows "ci-failed" once its live status
|
|
126
|
+
// confirms a failing check; every other row keeps its stored/fallback state.
|
|
127
|
+
function deriveState(path, r) {
|
|
128
|
+
if (r.state === "done" && r.prNumber !== undefined && ciFailed(prStatus.get(rowKey(path, r.runId)))) {
|
|
129
|
+
return "ci-failed";
|
|
130
|
+
}
|
|
131
|
+
return r.state || ${JSON.stringify(IN_PROGRESS_STATE)};
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
async function queueCiFix(path, runId, btn) {
|
|
135
|
+
const k = rowKey(path, runId);
|
|
136
|
+
if (queuedCi.has(k)) return;
|
|
137
|
+
btn.disabled = true;
|
|
138
|
+
try {
|
|
139
|
+
const res = await fetch(api("/api/queue-ci-fix?path=" + enc(path) + "&run=" + enc(runId)), {
|
|
140
|
+
method: "POST",
|
|
141
|
+
});
|
|
142
|
+
if (!res.ok) throw new Error("queue failed");
|
|
143
|
+
queuedCi.add(k);
|
|
144
|
+
render(latest);
|
|
145
|
+
} catch {
|
|
146
|
+
btn.disabled = false;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
// \`tickStartedAt\` wins over any countdown: a tick that outlasts the interval is
|
|
151
|
+
// ordinary for an agent-backed repo, and the countdown has nothing left to say
|
|
152
|
+
// once it hits zero (\`specs/dashboard-log.spec.md\`, TJ-1683).
|
|
153
|
+
function fmtCountdown(nextTickAt, tickStartedAt) {
|
|
154
|
+
if (tickStartedAt !== undefined) return "ticking now";
|
|
104
155
|
if (nextTickAt === undefined) return "next tick: unknown";
|
|
105
156
|
const ms = nextTickAt - Date.now();
|
|
106
157
|
if (ms <= 0) return "next tick: due now";
|
|
@@ -236,14 +287,20 @@ function runsHtml(g, gi) {
|
|
|
236
287
|
const pr = r.prUrl
|
|
237
288
|
? "<a href='" + esc(r.prUrl) + "'" + NEWTAB + ">#" + esc(r.prNumber) + "</a>"
|
|
238
289
|
: "";
|
|
239
|
-
const state =
|
|
290
|
+
const state = deriveState(g.path, r);
|
|
291
|
+
const stateLabel = state === "ci-failed" ? "CI failed" : state;
|
|
292
|
+
const queued = queuedCi.has(rowKey(g.path, r.runId));
|
|
293
|
+
const fixCi = state === "ci-failed"
|
|
294
|
+
? "<button class='fix-ci' data-path='" + esc(g.path) + "' data-run='" + esc(r.runId) + "'" +
|
|
295
|
+
(queued ? " disabled" : "") + ">" + (queued ? "queued" : "fix CI") + "</button>"
|
|
296
|
+
: "";
|
|
240
297
|
const main = "<tr>" +
|
|
241
298
|
"<td><button class='twirl" + (open ? " open" : "") + "' id='t-" + gi + "-" + ri + "'" +
|
|
242
299
|
" aria-expanded='" + open + "' data-path='" + esc(g.path) + "' data-run='" + esc(r.runId) + "'" +
|
|
243
300
|
" title='show detail'>▶</button></td>" +
|
|
244
301
|
"<td class=muted>" + esc(r.runId.slice(0, 8)) + "</td>" +
|
|
245
302
|
"<td>" + itemLink(r, r.title || r.itemId || "") + errLine(r) + "</td>" +
|
|
246
|
-
"<td class='state " + state + "'>" +
|
|
303
|
+
"<td class='state " + esc(state) + "'>" + esc(stateLabel) + fixCi + "</td>" +
|
|
247
304
|
"<td>" + esc(r.backend || "") + "</td>" +
|
|
248
305
|
"<td>" + gate + "</td>" +
|
|
249
306
|
"<td>" + pr + "</td>" +
|
|
@@ -263,12 +320,14 @@ function logSectionHtml(g, gi) {
|
|
|
263
320
|
const open = logOpen.has(g.path);
|
|
264
321
|
const data = logData.get(g.path);
|
|
265
322
|
const nextTickAt = data ? data.nextTickAt : undefined;
|
|
323
|
+
const tickStartedAt = data ? data.tickStartedAt : undefined;
|
|
266
324
|
const head = "<div class='log-head'>" +
|
|
267
325
|
"<button class='twirl log-twirl" + (open ? " open" : "") + "' id='lt-" + gi + "'" +
|
|
268
326
|
" aria-expanded='" + open + "' data-path='" + esc(g.path) + "' title='show log'>▶</button>" +
|
|
269
327
|
"<span>log</span>" +
|
|
270
|
-
"<span class='countdown' data-next='" + esc(nextTickAt === undefined ? "" : nextTickAt) +
|
|
271
|
-
|
|
328
|
+
"<span class='countdown' data-next='" + esc(nextTickAt === undefined ? "" : nextTickAt) +
|
|
329
|
+
"' data-ticking='" + esc(tickStartedAt === undefined ? "" : tickStartedAt) + "'>" +
|
|
330
|
+
fmtCountdown(nextTickAt, tickStartedAt) + "</span></div>";
|
|
272
331
|
if (!open) return "<div class='log-section'>" + head + "</div>";
|
|
273
332
|
|
|
274
333
|
const lines = data ? data.lines : [];
|
|
@@ -296,17 +355,26 @@ function render(ghostrails) {
|
|
|
296
355
|
"<span class='pill'>" + esc(g.state) + "</span>" +
|
|
297
356
|
"<span class='path'>" + esc(g.path) + "</span>" +
|
|
298
357
|
"<a class='review' href='" + esc(api("review?path=" + enc(g.path))) + "'>review</a>" +
|
|
358
|
+
(g.releaseEnabled
|
|
359
|
+
? "<button class='release-btn' type='button' data-path='" + esc(g.path) +
|
|
360
|
+
"'>release</button><span class='release-status'></span>"
|
|
361
|
+
: "") +
|
|
299
362
|
"</div>" + runsHtml(g, gi) + logSectionHtml(g, gi) + "</div>"
|
|
300
363
|
).join("");
|
|
301
364
|
}
|
|
302
365
|
|
|
303
|
-
/**
|
|
366
|
+
/**
|
|
367
|
+
* Fetch PR status for every expanded run with a PR, plus every collapsed
|
|
368
|
+
* "done" run with a PR (so "CI failed" can show up in the summary row without
|
|
369
|
+
* expanding anything), then repaint.
|
|
370
|
+
*/
|
|
304
371
|
async function refreshPrStatus() {
|
|
305
372
|
const wanted = [];
|
|
306
373
|
for (const g of latest) {
|
|
307
374
|
for (const r of g.runs) {
|
|
308
375
|
const k = rowKey(g.path, r.runId);
|
|
309
|
-
if (r.prNumber
|
|
376
|
+
if (r.prNumber === undefined) continue;
|
|
377
|
+
if (expanded.has(k) || r.state === "done") wanted.push([k, g.path, r.runId]);
|
|
310
378
|
}
|
|
311
379
|
}
|
|
312
380
|
if (!wanted.length) return;
|
|
@@ -388,6 +456,22 @@ async function postMerge(path, runId, button) {
|
|
|
388
456
|
}
|
|
389
457
|
}
|
|
390
458
|
|
|
459
|
+
async function postRelease(path, button) {
|
|
460
|
+
const status = button.nextElementSibling;
|
|
461
|
+
button.disabled = true;
|
|
462
|
+
if (status) status.textContent = "queuing…";
|
|
463
|
+
try {
|
|
464
|
+
const res = await fetch(api("/api/release?path=" + enc(path)), { method: "POST" });
|
|
465
|
+
const data = await res.json();
|
|
466
|
+
if (!res.ok || data.queued !== true) throw new Error(data.error || res.statusText);
|
|
467
|
+
if (status) status.textContent = "queued — the next watch tick will cut it";
|
|
468
|
+
} catch (err) {
|
|
469
|
+
if (status) status.textContent = "failed: " + err.message;
|
|
470
|
+
} finally {
|
|
471
|
+
button.disabled = false;
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
|
|
391
475
|
const list = document.getElementById("list");
|
|
392
476
|
|
|
393
477
|
list.addEventListener("click", (e) => {
|
|
@@ -409,7 +493,17 @@ list.addEventListener("click", (e) => {
|
|
|
409
493
|
return;
|
|
410
494
|
}
|
|
411
495
|
const mergeBtn = e.target.closest(".merge-btn");
|
|
412
|
-
if (mergeBtn)
|
|
496
|
+
if (mergeBtn) {
|
|
497
|
+
postMerge(mergeBtn.dataset.path, mergeBtn.dataset.run, mergeBtn);
|
|
498
|
+
return;
|
|
499
|
+
}
|
|
500
|
+
const releaseBtn = e.target.closest(".release-btn");
|
|
501
|
+
if (releaseBtn) {
|
|
502
|
+
postRelease(releaseBtn.dataset.path, releaseBtn);
|
|
503
|
+
return;
|
|
504
|
+
}
|
|
505
|
+
const fixCi = e.target.closest(".fix-ci");
|
|
506
|
+
if (fixCi) queueCiFix(fixCi.dataset.path, fixCi.dataset.run, fixCi);
|
|
413
507
|
});
|
|
414
508
|
|
|
415
509
|
list.addEventListener("change", async (e) => {
|
|
@@ -459,7 +553,11 @@ setInterval(load, 10000);
|
|
|
459
553
|
setInterval(() => {
|
|
460
554
|
for (const el of document.querySelectorAll(".countdown")) {
|
|
461
555
|
const raw = el.getAttribute("data-next");
|
|
462
|
-
|
|
556
|
+
const ticking = el.getAttribute("data-ticking");
|
|
557
|
+
el.textContent = fmtCountdown(
|
|
558
|
+
raw ? Number(raw) : undefined,
|
|
559
|
+
ticking ? Number(ticking) : undefined,
|
|
560
|
+
);
|
|
463
561
|
}
|
|
464
562
|
}, 1000);
|
|
465
563
|
</script>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page.js","sourceRoot":"","sources":["../../src/dashboard/page.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG
|
|
1
|
+
{"version":3,"file":"page.js","sourceRoot":"","sources":["../../src/dashboard/page.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCAyDC,OAAO;;;yBAGlB,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAqDnB,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAibtD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/dashboard/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAGrD;;;;GAIG;AAEH,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,GACtB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GACf;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC;AAEzB,8DAA8D;AAC9D,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/dashboard/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAGrD;;;;GAIG;AAEH,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,GACtB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,GACtB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GACf;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC;AAEzB,8DAA8D;AAC9D,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAuBpE;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,eAAe,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAIzF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,eAAe,EACvB,GAAG,EAAE,KAAK,GAAG,MAAM,GAClB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAM7C;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS,CAI7E;AAED,sFAAsF;AACtF,eAAO,MAAM,aAAa,OAAO,CAAC;AAElC;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAM7D;AA2BD;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAYxE;AAOD;;;;;;GAMG;AACH;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,CAY3F"}
|
package/dist/dashboard/routes.js
CHANGED
|
@@ -24,10 +24,14 @@ export function parseDashboardRoute(pathname) {
|
|
|
24
24
|
return { kind: "prStatus" };
|
|
25
25
|
if (parts[1] === "artifact")
|
|
26
26
|
return { kind: "artifact" };
|
|
27
|
+
if (parts[1] === "queue-ci-fix")
|
|
28
|
+
return { kind: "queueCiFix" };
|
|
27
29
|
if (parts[1] === "runs")
|
|
28
30
|
return { kind: "runs" };
|
|
29
31
|
if (parts[1] === "merge")
|
|
30
32
|
return { kind: "merge" };
|
|
33
|
+
if (parts[1] === "release")
|
|
34
|
+
return { kind: "release" };
|
|
31
35
|
if (parts[1] === "log")
|
|
32
36
|
return { kind: "log" };
|
|
33
37
|
return { kind: "notfound" };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/dashboard/routes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/dashboard/routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type Server } from "node:http";
|
|
2
2
|
import type { Ghostrail } from "../global/registry.js";
|
|
3
3
|
import type { PrStatus } from "../publish/githost.js";
|
|
4
|
+
import type { CiFixQueueStore } from "../respond/ci-fix-queue.js";
|
|
4
5
|
import type { RunRow } from "../store/events.js";
|
|
5
6
|
import type { RunStore } from "../store/port.js";
|
|
6
7
|
/** How a ghostrail stands on disk, mirroring what `status` reports. */
|
|
@@ -10,6 +11,8 @@ export interface GhostrailView extends Ghostrail {
|
|
|
10
11
|
health: GhostrailHealth;
|
|
11
12
|
/** Live unit state, e.g. `active`. `unknown` when no manager could be asked. */
|
|
12
13
|
state: string;
|
|
14
|
+
/** Whether this ghostrail has `[release]` configured, gating the release button. */
|
|
15
|
+
releaseEnabled: boolean;
|
|
13
16
|
/**
|
|
14
17
|
* Most recent runs from this repo's state, newest first.
|
|
15
18
|
*
|
|
@@ -26,6 +29,12 @@ export interface DashboardDeps {
|
|
|
26
29
|
readRegistry(): Promise<Ghostrail[] | undefined>;
|
|
27
30
|
writeRegistry(entries: readonly Ghostrail[]): Promise<void>;
|
|
28
31
|
health(path: string): Promise<GhostrailHealth>;
|
|
32
|
+
/**
|
|
33
|
+
* Whether this ghostrail has `[release]` configured. Required, like
|
|
34
|
+
* `health`: reading a repo's own config needs no credentials, so there is no
|
|
35
|
+
* "machine with no gh" case to make this optional for.
|
|
36
|
+
*/
|
|
37
|
+
releaseEnabled(path: string): Promise<boolean>;
|
|
29
38
|
/** Live unit state per ghostrail path. */
|
|
30
39
|
states(entries: readonly Ghostrail[]): Promise<Map<string, string>>;
|
|
31
40
|
/**
|
|
@@ -56,6 +65,17 @@ export interface DashboardDeps {
|
|
|
56
65
|
* unavailable, rather than failing or refusing to start.
|
|
57
66
|
*/
|
|
58
67
|
prStatus?(entry: Ghostrail, prNumber: number): Promise<PrStatus>;
|
|
68
|
+
/**
|
|
69
|
+
* Where a "Fix CI" click queues a PR number for that ghostrail's next
|
|
70
|
+
* respond tick. Resolved through the entry, the same as `store` and
|
|
71
|
+
* `prStatus`: the dashboard spans repos, and a PR number means nothing
|
|
72
|
+
* without knowing which one. Async, like `prStatus` and unlike `store`,
|
|
73
|
+
* because building it means resolving the ghostrail's state directory, which
|
|
74
|
+
* `defaultStateDir` cannot always do synchronously. Without it,
|
|
75
|
+
* `/api/queue-ci-fix` refuses the request rather than claiming a request it
|
|
76
|
+
* cannot actually queue.
|
|
77
|
+
*/
|
|
78
|
+
ciFixQueue?(entry: Ghostrail): Promise<CiFixQueueStore>;
|
|
59
79
|
/**
|
|
60
80
|
* Post the resolve-conflicts-and-merge trigger comment to a PR in one
|
|
61
81
|
* ghostrail's repo, the way `/api/merge` does for the review page's and the
|
|
@@ -67,6 +87,15 @@ export interface DashboardDeps {
|
|
|
67
87
|
* route with 503 rather than failing to start.
|
|
68
88
|
*/
|
|
69
89
|
mergeTrigger?(entry: Ghostrail, prNumber: number): Promise<void>;
|
|
90
|
+
/**
|
|
91
|
+
* Queue a release for one ghostrail's repo: the local file write plus store
|
|
92
|
+
* event `requestRelease` does, the way `/api/release` triggers it. Optional
|
|
93
|
+
* for the same reason `mergeTrigger` is, though the real implementation
|
|
94
|
+
* never omits it — queuing a request needs no `gh` and no credentials.
|
|
95
|
+
*/
|
|
96
|
+
releaseTrigger?(entry: Ghostrail): Promise<{
|
|
97
|
+
runId: string;
|
|
98
|
+
}>;
|
|
70
99
|
}
|
|
71
100
|
export interface DashboardOptions {
|
|
72
101
|
bind?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/dashboard/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAqC,MAAM,WAAW,CAAC;AAK3E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/dashboard/server.ts"],"names":[],"mappings":"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"}
|
package/dist/dashboard/server.js
CHANGED
|
@@ -4,7 +4,7 @@ import process from "node:process";
|
|
|
4
4
|
import { isLoopback, normalizeToken } from "../board/server.js";
|
|
5
5
|
import { resolveStateDir } from "../factory/state.js";
|
|
6
6
|
import { repoStateDir } from "../global/state-dir.js";
|
|
7
|
-
import {
|
|
7
|
+
import { readTickState } from "../loop/next-tick.js";
|
|
8
8
|
import { readLog } from "../loop/tick-log.js";
|
|
9
9
|
import { MERGE_COMMAND_PHRASE } from "../respond/select.js";
|
|
10
10
|
import { FileStore } from "../store/file-store.js";
|
|
@@ -69,7 +69,14 @@ export async function collectViews(deps, entries) {
|
|
|
69
69
|
runs = [];
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
|
-
|
|
72
|
+
const releaseEnabled = health === "ok" && (await deps.releaseEnabled(entry.path));
|
|
73
|
+
views.push({
|
|
74
|
+
...entry,
|
|
75
|
+
health,
|
|
76
|
+
state: states.get(entry.path) ?? "unknown",
|
|
77
|
+
releaseEnabled,
|
|
78
|
+
runs,
|
|
79
|
+
});
|
|
73
80
|
}
|
|
74
81
|
return views;
|
|
75
82
|
}
|
|
@@ -174,6 +181,34 @@ export function createDashboardServer(deps, options = {}) {
|
|
|
174
181
|
});
|
|
175
182
|
}
|
|
176
183
|
}
|
|
184
|
+
if (route.kind === "queueCiFix") {
|
|
185
|
+
if (req.method !== "POST")
|
|
186
|
+
return sendJson(res, 405, { error: "use POST" });
|
|
187
|
+
// Same hygiene the `watch` write route already applies: a mutating
|
|
188
|
+
// route refuses a request that looks like a cross-origin form post.
|
|
189
|
+
if (isCrossOriginWrite(req.headers)) {
|
|
190
|
+
return sendJson(res, 403, { error: "cross-origin writes are refused" });
|
|
191
|
+
}
|
|
192
|
+
const query = parseDetailQuery(url.searchParams, "run");
|
|
193
|
+
if (query === undefined) {
|
|
194
|
+
return sendJson(res, 400, { error: "expected ?path=<ghostrail path>&run=<id>" });
|
|
195
|
+
}
|
|
196
|
+
const entry = entries.find((e) => e.path === query.path);
|
|
197
|
+
if (entry === undefined) {
|
|
198
|
+
return sendJson(res, 404, { error: "no registered ghostrail at that path" });
|
|
199
|
+
}
|
|
200
|
+
const row = await (await storeFor(deps, entry)).getRun(query.value);
|
|
201
|
+
if (row === undefined)
|
|
202
|
+
return sendJson(res, 404, { error: "not found" });
|
|
203
|
+
if (row.prNumber === undefined) {
|
|
204
|
+
return sendJson(res, 404, { error: "no pull request for this run" });
|
|
205
|
+
}
|
|
206
|
+
if (deps.ciFixQueue === undefined) {
|
|
207
|
+
return sendJson(res, 503, { error: "this dashboard cannot queue a CI fix" });
|
|
208
|
+
}
|
|
209
|
+
await (await deps.ciFixQueue(entry)).add(row.prNumber);
|
|
210
|
+
return sendJson(res, 200, { queued: true });
|
|
211
|
+
}
|
|
177
212
|
if (route.kind === "runs") {
|
|
178
213
|
if (req.method !== "GET")
|
|
179
214
|
return sendJson(res, 405, { error: "use GET" });
|
|
@@ -203,8 +238,8 @@ export function createDashboardServer(deps, options = {}) {
|
|
|
203
238
|
}
|
|
204
239
|
const limit = parseLogLimit(url.searchParams);
|
|
205
240
|
const dir = await deps.stateDir(entry);
|
|
206
|
-
const [
|
|
207
|
-
return sendJson(res, 200, {
|
|
241
|
+
const [tick, page] = await Promise.all([readTickState(dir), readLog(dir, limit)]);
|
|
242
|
+
return sendJson(res, 200, { ...tick, ...page });
|
|
208
243
|
}
|
|
209
244
|
if (route.kind === "merge") {
|
|
210
245
|
if (req.method !== "POST")
|
|
@@ -246,6 +281,42 @@ export function createDashboardServer(deps, options = {}) {
|
|
|
246
281
|
});
|
|
247
282
|
}
|
|
248
283
|
}
|
|
284
|
+
if (route.kind === "release") {
|
|
285
|
+
if (req.method !== "POST")
|
|
286
|
+
return sendJson(res, 405, { error: "use POST" });
|
|
287
|
+
// Same hygiene as /api/merge and /api/watch: a form on any site can
|
|
288
|
+
// POST here cross-origin, and by inherited board behaviour there is
|
|
289
|
+
// no token in the way on loopback.
|
|
290
|
+
if (isCrossOriginWrite(req.headers)) {
|
|
291
|
+
return sendJson(res, 403, { error: "cross-origin writes are refused" });
|
|
292
|
+
}
|
|
293
|
+
const query = parseGhostrailQuery(url.searchParams);
|
|
294
|
+
if (query === undefined) {
|
|
295
|
+
return sendJson(res, 400, { error: "expected ?path=<ghostrail path>" });
|
|
296
|
+
}
|
|
297
|
+
const entry = entries.find((e) => e.path === query.path);
|
|
298
|
+
if (entry === undefined) {
|
|
299
|
+
return sendJson(res, 404, { error: "no registered ghostrail at that path" });
|
|
300
|
+
}
|
|
301
|
+
if (!(await deps.releaseEnabled(entry.path))) {
|
|
302
|
+
return sendJson(res, 404, {
|
|
303
|
+
error: "no [release] section configured for this ghostrail",
|
|
304
|
+
});
|
|
305
|
+
}
|
|
306
|
+
if (deps.releaseTrigger === undefined) {
|
|
307
|
+
return sendJson(res, 503, { error: "this dashboard cannot trigger a release" });
|
|
308
|
+
}
|
|
309
|
+
try {
|
|
310
|
+
const { runId } = await deps.releaseTrigger(entry);
|
|
311
|
+
return sendJson(res, 200, { queued: true, runId });
|
|
312
|
+
}
|
|
313
|
+
catch (error) {
|
|
314
|
+
return sendJson(res, 502, {
|
|
315
|
+
queued: false,
|
|
316
|
+
error: error instanceof Error ? error.message : String(error),
|
|
317
|
+
});
|
|
318
|
+
}
|
|
319
|
+
}
|
|
249
320
|
if (route.kind === "watch") {
|
|
250
321
|
if (req.method !== "POST")
|
|
251
322
|
return sendJson(res, 405, { error: "use POST" });
|