night-orch 0.12.0 → 0.12.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/tui/data.d.ts +13 -0
- package/dist/cli/tui/data.d.ts.map +1 -1
- package/dist/cli/tui/data.js +12 -1
- package/dist/cli/tui/data.js.map +1 -1
- package/dist/mcp/tools/status.d.ts.map +1 -1
- package/dist/mcp/tools/status.js +4 -0
- package/dist/mcp/tools/status.js.map +1 -1
- package/package.json +1 -1
- package/web/dist/assets/{index-DwI0yk6R.js → index-BBreAjV5.js} +1 -1
- package/web/dist/index.html +1 -1
package/dist/cli/tui/data.d.ts
CHANGED
|
@@ -49,6 +49,19 @@ export interface LoadRunsOptions {
|
|
|
49
49
|
offset?: number;
|
|
50
50
|
repo?: string;
|
|
51
51
|
status?: string;
|
|
52
|
+
/**
|
|
53
|
+
* When false, rows whose `terminated_at` is set are excluded from the
|
|
54
|
+
* result — i.e. only the one live head per `(repo, issue_number)` is
|
|
55
|
+
* returned. This is what the web UI's "Active" tab and the MCP list
|
|
56
|
+
* runs tool's default view want: superseded Continue/Retry predecessors
|
|
57
|
+
* stay in the history panel instead of masquerading as duplicate
|
|
58
|
+
* active rows.
|
|
59
|
+
*
|
|
60
|
+
* Defaults to `true` so the TUI's issue-grouped view (which renders
|
|
61
|
+
* the full attempt chain under each issue) keeps its existing
|
|
62
|
+
* behaviour.
|
|
63
|
+
*/
|
|
64
|
+
includeTerminated?: boolean;
|
|
52
65
|
}
|
|
53
66
|
export declare function loadRuns(db: Database.Database, limitOrOptions?: number | LoadRunsOptions): RunListRow[];
|
|
54
67
|
export declare function buildIssueList(runs: RunListRow[]): IssueListRow[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/cli/tui/data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAG1C,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,UAAU,EAAE,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/cli/tui/data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAG1C,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,UAAU,EAAE,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;;;;;;;;OAWG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,wBAAgB,QAAQ,CACtB,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,cAAc,CAAC,EAAE,MAAM,GAAG,eAAe,GACxC,UAAU,EAAE,CAyNd;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,YAAY,EAAE,CA6EjE;AAcD,wBAAgB,eAAe,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,EAAE,CAWvG;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,SAAI,GAAG,aAAa,EAAE,CAUlF"}
|
package/dist/cli/tui/data.js
CHANGED
|
@@ -3,6 +3,7 @@ export function loadRuns(db, limitOrOptions) {
|
|
|
3
3
|
const options = typeof limitOrOptions === 'number'
|
|
4
4
|
? { limit: limitOrOptions }
|
|
5
5
|
: (limitOrOptions ?? {});
|
|
6
|
+
const includeTerminated = options.includeTerminated ?? true;
|
|
6
7
|
const conditions = [];
|
|
7
8
|
const params = [];
|
|
8
9
|
if (options.repo) {
|
|
@@ -14,6 +15,15 @@ export function loadRuns(db, limitOrOptions) {
|
|
|
14
15
|
params.push(options.status);
|
|
15
16
|
}
|
|
16
17
|
const whereClause = conditions.length > 0 ? `WHERE ${conditions.join(' AND ')}` : '';
|
|
18
|
+
// When `includeTerminated` is false, terminated attempts must be
|
|
19
|
+
// excluded *before* the `ranked_runs` window function picks the top
|
|
20
|
+
// row. Otherwise a chain like
|
|
21
|
+
// live queued <- terminated error (from /orch continue) <- terminated running
|
|
22
|
+
// ranks the most-recently-created terminated row as run_rank=1, and the
|
|
23
|
+
// active view shows the whole zombie chain.
|
|
24
|
+
const runsSourceClause = includeTerminated
|
|
25
|
+
? 'FROM runs r'
|
|
26
|
+
: 'FROM runs r WHERE r.terminated_at IS NULL';
|
|
17
27
|
const query = `WITH ranked_runs AS (
|
|
18
28
|
SELECT
|
|
19
29
|
r.repo,
|
|
@@ -27,7 +37,7 @@ export function loadRuns(db, limitOrOptions) {
|
|
|
27
37
|
r.rowid DESC,
|
|
28
38
|
r.id DESC
|
|
29
39
|
) AS run_rank
|
|
30
|
-
|
|
40
|
+
${runsSourceClause}
|
|
31
41
|
),
|
|
32
42
|
unresolved_issues AS (
|
|
33
43
|
SELECT rr.repo, rr.issue_number
|
|
@@ -91,6 +101,7 @@ export function loadRuns(db, limitOrOptions) {
|
|
|
91
101
|
INNER JOIN unresolved_issues u
|
|
92
102
|
ON u.repo = r.repo
|
|
93
103
|
AND u.issue_number = r.issue_number
|
|
104
|
+
${includeTerminated ? '' : 'WHERE r.terminated_at IS NULL'}
|
|
94
105
|
),
|
|
95
106
|
issue_override_rows AS (
|
|
96
107
|
SELECT
|
package/dist/cli/tui/data.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.js","sourceRoot":"","sources":["../../../src/cli/tui/data.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"data.js","sourceRoot":"","sources":["../../../src/cli/tui/data.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAuEzD,MAAM,UAAU,QAAQ,CACtB,EAAqB,EACrB,cAAyC;IAEzC,MAAM,OAAO,GAAG,OAAO,cAAc,KAAK,QAAQ;QAChD,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE;QAC3B,CAAC,CAAC,CAAC,cAAc,IAAI,EAAE,CAAC,CAAA;IAC1B,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,IAAI,CAAA;IAE3D,MAAM,UAAU,GAAa,EAAE,CAAA;IAC/B,MAAM,MAAM,GAAc,EAAE,CAAA;IAE5B,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC3B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAC7B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC7B,CAAC;IAED,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAEpF,iEAAiE;IACjE,oEAAoE;IACpE,8BAA8B;IAC9B,gFAAgF;IAChF,wEAAwE;IACxE,4CAA4C;IAC5C,MAAM,gBAAgB,GAAG,iBAAiB;QACxC,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,2CAA2C,CAAA;IAE/C,MAAM,KAAK,GAAG;;;;;;;;;;;;;WAaL,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAgEhB,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAiF1D,WAAW;;;;;;;;;;;;gBAYJ,CAAA;IAEd,MAAM,QAAQ,GAAG,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAA;IAClD,MAAM,SAAS,GAAG,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAA;IAE1E,IAAI,YAAY,GAAG,KAAK,CAAA;IACxB,IAAI,QAAQ,EAAE,CAAC;QACb,YAAY,GAAG,GAAG,KAAK,kBAAkB,CAAA;QACzC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAM,CAAC,CAAA;QAC3B,IAAI,SAAS,EAAE,CAAC;YACd,YAAY,GAAG,GAAG,YAAY,mBAAmB,CAAA;YACjD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAO,CAAC,CAAA;QAC9B,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;IACrC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAiB,CAAA;AAC5C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAkB;IAC/C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAwB,CAAA;IAE/C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,iBAAiB,GAAG,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;QACrD,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,YAAY,EAAE,CAAA;QAC7C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAEjC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE;gBACf,GAAG;gBACH,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,YAAY,EAAE,GAAG,CAAC,YAAY;gBAC9B,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,aAAa,EAAE,GAAG,CAAC,aAAa;gBAChC,eAAe,EAAE,GAAG,CAAC,eAAe;gBACpC,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;gBAC1C,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;aACrC,CAAC,CAAA;YACF,SAAQ;QACV,CAAC;QAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACzB,CAAC;QAED,MAAM,eAAe,GAAG,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;QAC3D,MAAM,gBAAgB,GAAG,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QACvD,MAAM,eAAe,GAAG,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;QAC3D,MAAM,gBAAgB,GAAG,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QACvD,IACE,gBAAgB,GAAG,eAAe;YAClC,CAAC,gBAAgB,KAAK,eAAe,IAAI,gBAAgB,GAAG,eAAe,CAAC,EAC5E,CAAC;YACD,QAAQ,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAA;YACtC,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAA;YAC5B,QAAQ,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,CAAA;YAC1C,QAAQ,CAAC,eAAe,GAAG,GAAG,CAAC,eAAe,CAAA;YAC9C,QAAQ,CAAC,kBAAkB,GAAG,GAAG,CAAC,kBAAkB,CAAA;YACpD,QAAQ,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAA;YACpC,QAAQ,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAA;YAClC,QAAQ,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAA;YAChC,QAAQ,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAA;YACpC,QAAQ,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAA;QACtC,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAA2B;QAC1C,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,CAAC;QACT,YAAY,EAAE,CAAC;QACf,OAAO,EAAE,CAAC;QACV,KAAK,EAAE,CAAC;QACR,SAAS,EAAE,CAAC;KACb,CAAA;IAED,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IAEpC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACnB,MAAM,WAAW,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;QAC/E,IAAI,WAAW,KAAK,CAAC;YAAE,OAAO,WAAW,CAAA;QACzC,MAAM,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;QAChF,IAAI,YAAY,KAAK,CAAC;YAAE,OAAO,YAAY,CAAA;QAC3C,OAAO,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;IACpE,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,CAAA;AAC/D,CAAC;AAED,SAAS,iBAAiB,CAAC,CAAa,EAAE,CAAa;IACrD,MAAM,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;IAChF,IAAI,YAAY,KAAK,CAAC;QAAE,OAAO,YAAY,CAAA;IAC3C,OAAO,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;AACpE,CAAC;AAED,SAAS,cAAc,CAAC,KAAgC;IACtD,IAAI,CAAC,KAAK;QAAE,OAAO,MAAM,CAAC,iBAAiB,CAAA;IAC3C,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAA;IACzC,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAA;AACpE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAAqB,EAAE,KAAa,EAAE,QAAgB;IACpF,MAAM,IAAI,GAAG,EAAE;SACZ,OAAO,CACN;;;;eAIS,CACV;SACA,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAoB,CAAA;IAC1C,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,EAAE,CAAA;AAC5B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAAqB,EAAE,KAAK,GAAG,CAAC;IAC/D,OAAO,EAAE;SACN,OAAO,CACN;;;;eAIS,CACV;SACA,GAAG,CAAC,KAAK,CAAoB,CAAA;AAClC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AA+LnD,wBAAsB,YAAY,CAAC,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAwCnG;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAkBtG;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EACxF,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AA+LnD,wBAAsB,YAAY,CAAC,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAwCnG;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAkBtG;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EACxF,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,OAAO,CAAC,CAiFlB;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CA2DvG;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EACvC,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,OAAO,CAAC,CA+ClB;AAED,wBAAsB,kBAAkB,CACtC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EACvD,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,OAAO,CAAC,CAoBlB"}
|
package/dist/mcp/tools/status.js
CHANGED
|
@@ -200,11 +200,15 @@ export async function handleListRuns(args, deps) {
|
|
|
200
200
|
view: view ?? null,
|
|
201
201
|
};
|
|
202
202
|
}
|
|
203
|
+
// Active view: exclude terminated attempts so Continue/Retry
|
|
204
|
+
// predecessors stay in the history panel instead of surfacing as
|
|
205
|
+
// duplicate rows for the same issue in the dashboard's "Active" tab.
|
|
203
206
|
const filteredRows = loadRuns(deps.db, {
|
|
204
207
|
limit: limit + 1,
|
|
205
208
|
offset,
|
|
206
209
|
repo: args.repo,
|
|
207
210
|
status: args.status,
|
|
211
|
+
includeTerminated: false,
|
|
208
212
|
});
|
|
209
213
|
const hasMore = filteredRows.length > limit;
|
|
210
214
|
const pageRows = hasMore ? filteredRows.slice(0, limit) : filteredRows;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/mcp/tools/status.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/mcp/tools/status.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -14,4 +14,4 @@ Error generating stack: `+n.message+`
|
|
|
14
14
|
0%, 100% { opacity: 1; }
|
|
15
15
|
50% { opacity: 0.4; }
|
|
16
16
|
}
|
|
17
|
-
`;function qx({status:l,serverUnreachable:o=!1,elapsedSeconds:i}){const u=Ux(l.installMethod);return r.jsxs("div",{"data-theme":"black",style:{position:"fixed",inset:0,zIndex:9999,display:"grid",placeItems:"center",backgroundColor:"rgba(0, 0, 0, 0.78)",backdropFilter:"blur(4px)",padding:"1rem"},role:"dialog","aria-modal":"true","aria-label":"Self update in progress",children:[r.jsx("style",{children:Hx}),r.jsxs("section",{className:"w-full max-w-xl rounded-box border border-base-300/80 bg-base-100/95 p-5 shadow-2xl",children:[r.jsx("h2",{className:"text-lg font-semibold",children:"Applying self-update"}),(l.previousCommit||l.targetCommit)&&r.jsxs("p",{className:"mt-1 font-mono text-xs text-base-content/60",children:[l.previousCommit?.slice(0,8),l.targetCommit&&r.jsxs(r.Fragment,{children:[" → ",l.targetCommit.slice(0,8)]})]}),r.jsxs("div",{className:"mt-3 flex items-center gap-3 text-sm text-base-content/80",children:[r.jsx("span",{className:"loading loading-spinner loading-md text-info"}),r.jsxs("span",{children:["Update in progress",i!=null&&i>0&&r.jsxs(r.Fragment,{children:[" — ",kx(i)]})]})]}),r.jsx("ul",{className:"steps steps-vertical mt-4 w-full",children:u.map(f=>{const h=Bx(f.id,l.state,u),g=h==="done"?"step step-success":h==="active"?"step step-info update-step-active":"step",v=h==="done"?"✓":h==="active"?"●":"○";return r.jsx("li",{className:g,"data-content":v,children:r.jsx("span",{className:h==="pending"?"text-base-content/50":void 0,children:f.label})},f.id)})}),o&&r.jsxs("div",{className:"mt-4 flex items-center gap-2 rounded border border-info/35 bg-info/10 p-2.5 text-xs text-info-content",children:[r.jsx("span",{className:"loading loading-dots loading-xs"}),r.jsx("span",{children:"Server is restarting — reconnecting automatically..."})]}),l.state==="rolling-back"&&r.jsx("div",{className:"mt-4 rounded border border-warning/35 bg-warning/10 p-2 text-xs text-warning-content",children:"Health checks failed. Rolling back to the previous known-good build."}),r.jsx("p",{className:"mt-4 text-xs text-base-content/70",children:"Dashboard controls are temporarily blocked. This page refreshes automatically after a healthy restart."})]})]})}function Yx(l){return eg.createPortal(r.jsx(qx,{...l}),document.body)}function Gx(l){if(!l||typeof l!="object")return null;const o=l.runId,i=l.events,u=l.lastEventId;return typeof o!="string"||!Array.isArray(i)||typeof u!="number"?null:{runId:o,events:i.filter(f=>!f||typeof f!="object"?!1:typeof f.id=="number"),lastEventId:u}}function Vx(l,o){const i=new Set(l.map(f=>f.id)),u=[...l];for(const f of o)i.has(f.id)||(i.add(f.id),u.push(f));return u.sort((f,h)=>f.id-h.id),u}const Qx="Start self-update now? This pulls latest code, rebuilds, and restarts Night-Orch services.",Xx="Start self-update now? This installs the latest version from npm and restarts Night-Orch services.";function Zx(l,o="unknown"){return l(o==="npm"?Xx:Qx)}const Kx=6e3;function $x(l){return{startedAtMs:l,sawActiveState:!1}}function oc(){return{startedAtMs:null,sawActiveState:!1}}function cc(l){return l!=null&&l.state!=="idle"&&l.state!=="failed"}function Jx(l){return cc(l)?l:null}function Px(l,o,i){return l.startedAtMs==null||l.sawActiveState?!0:o-l.startedAtMs>=i}function Fx(l,o,i,u){return cc(l)?{nextTransition:{startedAtMs:o.startedAtMs,sawActiveState:!0},nextStatus:l,errorMessage:null,shouldReload:!1}:Px(o,i,u)?l.state==="failed"?{nextTransition:oc(),nextStatus:l,errorMessage:`Update failed: ${l.error??"unknown error"}`,shouldReload:!1}:{nextTransition:oc(),nextStatus:l,errorMessage:null,shouldReload:l.state==="idle"}:{nextTransition:o,nextStatus:null,errorMessage:null,shouldReload:!1}}async function Ix(l){const o=await l.fetchUpdateStatus();if(!o)return l.transition;const i=Fx(o,l.transition,l.nowMs?l.nowMs():Date.now(),l.graceMs??Kx);return i.nextStatus&&l.onStatus(i.nextStatus),i.errorMessage&&l.onError(i.errorMessage),i.shouldReload&&l.onReload(),i.nextTransition}const Vu="x-night-orch-intent",Qu="mutate",Wx="x-night-orch-web-token",e1="0.12.0",t1=6e4,Ep=20;function Cp(l){if(!l)return null;try{return decodeURIComponent(l)}catch{return l}}function a1(l){return l===null?"null":typeof l=="boolean"?l?"true":"false":Array.isArray(l)||typeof l=="object"&&l!==null?JSON.stringify(l):String(l)}function ac({activePage:l,issueDetailRunId:o=null,projectDetailRepo:i=null}){const u=sf(),[f,h]=w.useState(null),[g,v]=w.useState(null),[b,m]=w.useState(null),[j,y]=w.useState(!0),[x,S]=w.useState(!0),[T,E]=w.useState(!0),[D,M]=w.useState(!1),[H,Z]=w.useState("all"),[X,I]=w.useState("active"),[ee,V]=w.useState([]),[W,$]=w.useState(!1),[se,Q]=w.useState(!1),[ue,de]=w.useState(0),[Ye,Ee]=w.useState(!1),[B,K]=w.useState(""),[le,Me]=w.useState([]),[Ne,R]=w.useState(null),[q,P]=w.useState(null),[J,ce]=w.useState(null),[he,ve]=w.useState(!1),[Ce,He]=w.useState(null),[tt,na]=w.useState(!0),[ma,Bn]=w.useState(!1),[Ot,Dt]=w.useState(!1),[Pa,xt]=w.useState(!1),[la,St]=w.useState(""),[Fa,zt]=w.useState(null),[kn,Hn]=w.useState(!1),[me,it]=w.useState({}),[jt,vl]=w.useState(""),[ut,gc]=w.useState({repo:"",issueNumber:"",amount:""}),[Ra,qn]=w.useState(null),[rs,Yn]=w.useState(null),[bt,sa]=w.useState(0),Je=w.useRef(null),us=w.useRef(null),fs=w.useRef(""),ds=w.useRef(""),Qt=w.useRef(oc()),Gn=w.useRef(Date.now()),Vn=w.useRef(tt),pa=w.useRef(J),Qn=w.useRef(Ce),ia=w.useRef(0),Xn=f?.config.repos??[],Ia=f?.runs.runs??[],Wa=f?.stats.overview.runningRuns??0,Ta=f?.stats.overview.queuedRuns??0,en=cc(Ra),hs=w.useMemo(()=>H==="all"?Ia:Ia.filter(A=>A.repo===H),[Ia,H]),Ei=w.useMemo(()=>X==="active"?hs:ee,[hs,ee,X]),Ci=X==="active"?j:W,ms=X!=="active"&&Ye,yl=w.useMemo(()=>{const A=new Map;for(const F of Ia)A.set(F.runId,F);for(const F of ee)A.set(F.runId,F);return A},[Ia,ee]),oa=w.useMemo(()=>Cp(o),[o]),ps=w.useMemo(()=>Cp(i),[i]),Xt=w.useMemo(()=>oa?yl.get(oa)??null:null,[oa,yl]),Ge=Xt?.hasRun?Xt.runId:"",ft=w.useMemo(()=>en?{label:`updating ${Ra?.state??"starting"}`,toneClass:"badge-warning"}:D?Wa>0?{label:"processing",toneClass:"badge-success"}:Ta>0?{label:"queued",toneClass:"badge-info"}:{label:"idle",toneClass:"badge-neutral"}:{label:"reconnecting",toneClass:"badge-error"},[Ta,Wa,D,en,Ra?.state]),tn=w.useMemo(()=>{const A=f?.build?.version??e1,F=f?.build?.gitSha;return f?.build?.installMethod==="git"&&F?`v${A} · ${F.slice(0,8)}`:`v${A}`},[f?.build]),ga=w.useCallback(async()=>{const A=await fetch("/api/dashboard");if(!A.ok)throw new Error(`Failed to load dashboard (${A.status})`);const F=await A.json();h(F)},[]),Ma=w.useCallback(async(A={})=>{if(X==="active")return;const F=A.append??!1,_e=++ia.current,ct=F?A.offset??0:0;F?Q(!0):(V([]),de(0),Ee(!1),$(!0),Q(!1));try{const Re=new URLSearchParams;H!=="all"&&Re.set("repo",H),Re.set("view",X),Re.set("limit",String(Ep)),Re.set("offset",String(ct));const Le=await fetch(`/api/runs?${Re.toString()}`);if(!Le.ok)throw new Error(`Failed to load runs (${Le.status})`);const ge=await Le.json();if(_e!==ia.current)return;const Rt=typeof ge.hasMore=="boolean"?ge.hasMore:ge.runs.length>=Ep,Zt=typeof ge.nextOffset=="number"?ge.nextOffset:ct+ge.runs.length;V(ua=>{if(!F)return ge.runs;const Ea=new Set(ua.map(Ca=>Ca.runId)),js=[...ua];for(const Ca of ge.runs)Ea.has(Ca.runId)||(Ea.add(Ca.runId),js.push(Ca));return js}),Ee(Rt),de(Zt)}catch(Re){_e===ia.current&&R(Re.message)}finally{_e===ia.current&&($(!1),Q(!1))}},[X,H]),an=w.useCallback(async()=>{const A=await fetch("/api/update-status");return A.ok?await A.json():null},[]),gs=w.useCallback(async()=>{const A=await fetch("/api/session");if(!A.ok)throw new Error(`Failed to initialize web session (${A.status})`);const F=await A.json();na(F.operationsEnabled??!0);const _e=F.requiresExternalAuth??F.mutationToken===null;if(Bn(_e),!_e&&F.mutationToken){He(F.mutationToken),Dt(!0);return}try{const ct=await fetch("/api/auth/session");if(ct.ok&&(await ct.json()).authenticated===!0){Dt(!0);return}}catch{}Dt(!1),xt(!0)},[]),nn=w.useCallback(async()=>{if(!la.trim()){zt("Token is required.");return}Hn(!0),zt(null);try{const A=await fetch("/api/auth/session",{method:"POST",headers:{"Content-Type":"application/json",[Vu]:Qu},body:JSON.stringify({token:la.trim()})});if(A.status===204){Dt(!0),xt(!1),St(""),zt(null);return}if(A.status===401){zt("Invalid token. Check NIGHT_ORCH_WEB_AUTH_TOKEN on the server.");return}zt(`Login failed (${A.status}).`)}catch(A){zt(A.message)}finally{Hn(!1)}},[la]),bs=w.useCallback(async()=>{try{await fetch("/api/auth/logout",{method:"POST",headers:{"Content-Type":"application/json",[Vu]:Qu}})}catch{}Dt(!1),xt(!0)},[]),ca=w.useCallback(async()=>{const A=await fetch("/api/projects");if(!A.ok)throw new Error(`Failed to load projects (${A.status})`);const F=await A.json();v(F)},[]),Lt=w.useCallback(async()=>{const A=await fetch("/api/settings");if(!A.ok)throw new Error(`Failed to load settings (${A.status})`);const F=await A.json();m(F),it(Object.fromEntries(F.settings.map(_e=>[_e.key,a1(_e.effectiveValue)])))},[]);w.useEffect(()=>{(async()=>{try{y(!0),S(!0),E(!0),await Promise.all([ga(),gs(),ca(),Lt()])}catch(A){R(A.message)}finally{y(!1),S(!1),E(!1)}})()},[ga,ca,gs,Lt]),w.useEffect(()=>{let A=!1;return(async()=>{try{const F=await an();if(!F||A)return;cc(F)?Qt.current={startedAtMs:null,sawActiveState:!0}:Qt.current=oc(),qn(_e=>_e&&!F.installMethod?{...F,installMethod:_e.installMethod}:F)}catch{}})(),()=>{A=!0}},[an]),w.useEffect(()=>{Z(A=>A==="all"||Xn.includes(A)?A:"all")},[Xn]),w.useEffect(()=>{if(X==="active"){ia.current+=1,V([]),de(0),Ee(!1),$(!1),Q(!1);return}Ma({append:!1,offset:0})},[Ma,X]),w.useEffect(()=>{Vn.current=tt},[tt]),w.useEffect(()=>{pa.current=J},[J]),w.useEffect(()=>{Qn.current=Ce},[Ce]),w.useEffect(()=>{oa&&K(oa)},[oa]),w.useEffect(()=>{let A=!1;const F=()=>{const _e=window.location.protocol==="https:"?"wss":"ws",ct=Ce?`?token=${encodeURIComponent(Ce)}`:"",Re=new WebSocket(`${_e}://${window.location.host}/ws${ct}`);Je.current=Re,Re.onopen=()=>{if(A)return;M(!0),Re.send(JSON.stringify({type:"refresh"}));const Le=fs.current;Le&&Re.send(JSON.stringify({type:"subscribe-run-events",runId:Le,since:0}))},Re.onmessage=Le=>{try{const ge=JSON.parse(Le.data);if(ge.type==="snapshot"&&ge.payload){h(ge.payload);return}if(ge.type==="run-events"&&ge.payload){const Rt=Gx(ge.payload);if(!Rt||Rt.runId!==fs.current)return;Me(Zt=>Vx(Zt,Rt.events));return}ge.type==="error"&&ge.error&&P(ge.error)}catch{}},Re.onclose=()=>{Je.current===Re&&(Je.current=null),M(!1),!A&&(us.current=window.setTimeout(F,2e3))},Re.onerror=()=>{Re.close()}};return F(),()=>{A=!0,us.current!==null&&window.clearTimeout(us.current),Je.current?.close(),Je.current=null}},[Ce]),w.useEffect(()=>{fs.current=Ge,Me([]);const A=Je.current;if(!A||A.readyState!==WebSocket.OPEN){ds.current=Ge;return}const F=ds.current;F&&F!==Ge&&A.send(JSON.stringify({type:"unsubscribe-run-events",runId:F})),Ge&&A.send(JSON.stringify({type:"subscribe-run-events",runId:Ge,since:0})),ds.current=Ge},[Ge,D]);const[Zn,ba]=w.useState(!1);w.useEffect(()=>{if(!en)return;let A=!1,F=0;const _e=async()=>{try{const Re=await Ix({fetchUpdateStatus:an,transition:Qt.current,onStatus:Le=>{A||(F=0,ba(!1),qn(ge=>ge&&!Le.installMethod?{...Le,installMethod:ge.installMethod}:Le))},onError:Le=>{A||(F=0,ba(!1),R(Le))},onReload:()=>{A||window.location.reload()}});A||(Qt.current=Re)}catch{F++,!A&&F>=2&&(ba(!0),qn(Re=>{if(!Re)return Re;const Le=Re.installMethod==="npm"?Lx:zx,ge=Le.indexOf(Re.state);if(ge<0||ge>=Le.length-1)return Re;if(F*2>=4*(ge+1)){const Zt=Le[ge+1];if(Zt)return{...Re,state:Zt}}return Re}))}};_e();const ct=window.setInterval(()=>{_e()},2e3);return()=>{A=!0,window.clearInterval(ct)}},[an,en]),w.useEffect(()=>{if(!rs)return;const A=window.setInterval(()=>{sa(Math.floor((Date.now()-rs)/1e3))},1e3);return()=>window.clearInterval(A)},[rs]);const re=w.useCallback(async(A,F,_e,ct,Re)=>{try{if(ce(A),R(null),!Ce&&!Ot)throw xt(!0),new Error("Log in first.");if(!tt)throw new Error("Web operations are disabled by server policy.");const Le={"Content-Type":"application/json",[Vu]:Qu};Ce&&(Le[Wx]=Ce);const ge=await fetch(F,{method:"POST",headers:Le,credentials:"same-origin",body:JSON.stringify(_e)});if(ge.status===401&&ma)throw Dt(!1),xt(!0),new Error("Session expired. Log in again.");const Rt=await ge.json();if(!ge.ok){const ua=typeof Rt.error=="string"?Rt.error:`Operation failed (${ge.status})`;throw new Error(ua)}const Zt=xy(Rt)??ct;return P(Zt),(Re?.refreshAfterSuccess??!0)&&(await Promise.all([ga(),Lt()]),X!=="active"&&await Ma({append:!1,offset:0})),!0}catch(Le){return R(Le.message),!1}finally{ce(null)}},[ga,Ma,Lt,tt,ma,X,Ot,Ce]),wi=w.useCallback(async()=>{try{ve(!0),R(null);const A=[ga(),ca(),Lt()];l==="issues"&&X!=="active"&&A.push(Ma({append:!1,offset:0})),await Promise.all(A),Je.current?.readyState===WebSocket.OPEN&&Je.current.send(JSON.stringify({type:"refresh"}))}catch(A){R(A.message)}finally{ve(!1)}},[l,ga,Ma,ca,Lt,X]),xl=w.useCallback(()=>{Gn.current=Date.now(),re("poll","/api/operations/poll",{},"Manual poll requested")},[re]);w.useEffect(()=>{const A=()=>{if(document.visibilityState!=="visible")return;const F=Date.now()-Gn.current>=t1,_e=Vn.current&&pa.current===null&&Qn.current!==null;F&&_e&&xl()};return document.addEventListener("visibilitychange",A),()=>{document.removeEventListener("visibilitychange",A)}},[xl]);const _a=w.useCallback(()=>{re("sync","/api/operations/sync",{},"Sync completed")},[re]),ln=w.useCallback(()=>{re("cleanup","/api/operations/cleanup",{},"Cleanup completed")},[re]),bc=w.useCallback(A=>{A!==X&&(A!=="active"&&($(!0),Q(!1)),I(A))},[X]),vs=w.useCallback(A=>{u({to:"/$page",params:{page:A}})},[u]),Ai=w.useCallback(A=>{K(A),u({to:"/$page/$detailId",params:{page:"issues",detailId:A}})},[u]),vc=w.useCallback(()=>{u({to:"/$page",params:{page:"issues"}})},[u]),Sl=w.useCallback(A=>{u({to:"/$page/$detailId",params:{page:"projects",detailId:A}})},[u]),jl=w.useCallback(()=>{u({to:"/$page",params:{page:"projects"}})},[u]),ra=w.useCallback(async()=>{const A=f?.build?.installMethod;if(!(!Zx(ct=>window.confirm(ct),A==="git"||A==="npm"?A:"unknown")||!await re("update","/api/operations/update",{},"Update initiated - pulling and rebuilding...",{refreshAfterSuccess:!1}))){Qt.current=$x(Date.now()),qn({state:"draining",installMethod:A==="git"||A==="npm"?A:void 0}),Yn(Date.now()),sa(0);try{const ct=await an();if(!ct)return;const Re=Jx(ct);Re&&(Qt.current={startedAtMs:Qt.current.startedAtMs,sawActiveState:!0},qn(Re))}catch{}}},[an,re]),$e=w.useCallback(async(A,F)=>{window.confirm(F.confirmMessage)&&await re(F.operationName,F.endpoint,{repo:A.repo,issueNumber:A.issue,...F.payload},F.fallbackMessage)},[re]),Oi=w.useCallback(A=>{$e(A,{operationName:"retry",endpoint:"/api/operations/retry",confirmMessage:`Queue fresh retry for ${A.repo}#${A.issue}?`,fallbackMessage:`Fresh retry queued for ${A.repo}#${A.issue}`})},[$e]),yc=w.useCallback(A=>{$e(A,{operationName:"rebase",endpoint:"/api/operations/rebase",confirmMessage:`Queue rebase for ${A.repo}#${A.issue}?`,fallbackMessage:`Rebase queued for ${A.repo}#${A.issue}`})},[$e]),ys=w.useCallback(A=>{$e(A,{operationName:"continue",endpoint:"/api/operations/continue",confirmMessage:`Queue continue pass for ${A.repo}#${A.issue}?`,fallbackMessage:`Continue pass queued for ${A.repo}#${A.issue}`})},[$e]),Di=w.useCallback((A,F)=>{$e(A,{operationName:"delete-entry",endpoint:"/api/operations/delete-entry",confirmMessage:F?`Force delete local entry for ${A.repo}#${A.issue}? This can remove run-local state while shared issue state is still active elsewhere.`:`Delete local entry for ${A.repo}#${A.issue}?`,fallbackMessage:F?`Force-deleted local entry for ${A.repo}#${A.issue}`:`Deleted local entry for ${A.repo}#${A.issue}`,payload:{force:F}})},[$e]),Nl=w.useCallback(A=>{$e(A,{operationName:"cost-reset",endpoint:"/api/operations/cost-reset",confirmMessage:`Reset accumulated costs for ${A.repo}#${A.issue}? If cost-blocked, it will be re-queued.`,fallbackMessage:`Reset costs for ${A.repo}#${A.issue}`})},[$e]),xc=w.useCallback(A=>{window.confirm(`Bootstrap orchestration labels for ${A}?`)&&re("labels-init","/api/operations/labels-init",{repo:A},`Labels initialized for ${A}`)},[re]),Nt=w.useCallback(async A=>{const F=me[A];if(F===void 0){R(`No draft value found for ${A}`);return}await re(`setting:set:${A}`,"/api/operations/settings/set",{key:A,value:F},`Updated ${A}`)},[re,me]),xs=w.useCallback(async A=>{await re(`setting:clear:${A}`,"/api/operations/settings/clear",{key:A},`Cleared override for ${A}`)},[re]),zi=w.useCallback(async A=>{A.preventDefault();const F=Number.parseFloat(jt);if(!Number.isFinite(F)||F<=0){R("Daily override requires a positive number (USD)");return}await re("daily-cost-override:set","/api/operations/daily-cost-override/set",{amountUsd:F},`Raised today's daily cap to $${F.toFixed(2)}`)},[jt,re]),Ss=w.useCallback(async()=>{await re("daily-cost-override:clear","/api/operations/daily-cost-override/clear",{},"Cleared today's daily cap override")},[re]),sn=w.useCallback(async()=>{window.confirm("Reset today's accumulated cost counters? Cost-blocked runs will be re-queued.")&&await re("daily-cost-reset","/api/operations/daily-cost-reset",{},"Reset today's daily costs and resumed cost-blocked runs")},[re]),Li=w.useCallback(async A=>{A.preventDefault();const F=Number.parseInt(ut.issueNumber,10),_e=Number.parseFloat(ut.amount);if(!ut.repo||!Number.isFinite(F)||F<=0){R("Per-issue override requires a repo and a positive issue number");return}if(!Number.isFinite(_e)||_e<=0){R("Per-issue override requires a positive amount (USD)");return}await re("cost-override:set","/api/operations/cost-override/set",{repo:ut.repo,issueNumber:F,amountUsd:_e},`Set cost override for ${ut.repo}#${F} to $${_e.toFixed(2)}`)},[ut,re]),Ui=w.useCallback(async()=>{const A=Number.parseInt(ut.issueNumber,10);if(!ut.repo||!Number.isFinite(A)||A<=0){R("Clearing a per-issue override requires a repo and a positive issue number");return}await re("cost-override:clear","/api/operations/cost-override/clear",{repo:ut.repo,issueNumber:A},`Cleared cost override for ${ut.repo}#${A}`)},[ut,re]),on=l==="issues"&&oa!==null,Sc=l==="projects"&&ps!==null;return r.jsxs("main",{"data-theme":"black",className:"min-h-screen bg-orch-admin",children:[Pa&&r.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/80 p-4",role:"dialog","aria-modal":"true","aria-labelledby":"norch-login-title",children:r.jsxs("div",{className:"w-full max-w-sm rounded-lg border border-slate-700 bg-slate-900 p-5 shadow-2xl",children:[r.jsx("h2",{id:"norch-login-title",className:"text-base font-semibold text-slate-100",children:"Sign in"}),r.jsxs("p",{className:"mt-1 text-xs text-slate-400",children:["Enter the ",r.jsx("code",{className:"font-mono",children:"NIGHT_ORCH_WEB_AUTH_TOKEN"})," configured on the server. The browser will keep you signed in via an HttpOnly cookie for 7 days."]}),r.jsx("input",{type:"password",autoFocus:!0,autoComplete:"off",value:la,onChange:A=>St(A.target.value),onKeyDown:A=>{A.key==="Enter"&&!kn&&nn()},className:"mt-3 w-full rounded border border-slate-600 bg-slate-950 px-3 py-2 font-mono text-sm text-slate-100 focus:border-orch-accent focus:outline-none",placeholder:"Paste token here"}),Fa&&r.jsx("p",{className:"mt-2 text-xs text-rose-400",role:"alert",children:Fa}),r.jsx("div",{className:"mt-4 flex justify-end gap-2",children:r.jsx("button",{type:"button",disabled:kn,onClick:()=>{nn()},className:"rounded bg-orch-accent px-3 py-2 text-sm font-medium text-slate-950 hover:bg-orch-accent/90 disabled:opacity-50",children:kn?"Signing in…":"Sign in"})})]})}),r.jsx(Ty,{currentStateLabel:ft.label,currentStateToneClass:ft.toneClass,isWorking:Wa>0||J!==null||en,socketConnected:D,lastRefreshAt:f?.generatedAt??null,pollIntervalSeconds:f?.config.pollIntervalSeconds??null,reposCount:Xn.length,activeRuns:f?.status.activeRuns??0,runningRuns:Wa,queuedRuns:Ta,operationsEnabled:tt,activeOperation:J,isRefreshing:he,onRefresh:()=>{wi()},onPoll:xl,onSync:_a,onCleanup:ln,onGoToSettings:()=>{vs("settings")},onLogout:ma&&Ot?()=>{bs()}:void 0}),r.jsxs("div",{className:"mx-auto flex w-full max-w-[1550px] flex-col gap-5 px-4 pb-24 pt-5 sm:px-6 md:pb-6 lg:px-8",children:[Ne&&r.jsx("div",{className:"alert alert-error shadow-sm",children:r.jsx("span",{children:Ne})}),q&&r.jsx("div",{className:"alert alert-info shadow-sm",children:r.jsx("span",{children:q})}),r.jsxs("div",{className:"grid gap-5 md:grid-cols-[auto_minmax(0,1fr)] md:items-stretch md:gap-0",children:[r.jsx(Ly,{activePage:l,onPageChange:vs}),r.jsxs("div",{className:"flex min-w-0 flex-col gap-5 md:pl-6",children:[l==="issues"&&(on?r.jsx(Yy,{run:Xt,runId:oa??"",runEvents:le,operationsEnabled:tt,activeOperation:J,onRetry:Oi,onRebase:yc,onContinue:ys,onDeleteEntry:Di,onResetCost:Nl,onBack:vc}):r.jsxs("div",{className:"flex flex-col gap-5",children:[r.jsx(Fu,{snapshot:f}),r.jsxs("section",{className:"grid gap-5 xl:grid-cols-[1.65fr_1fr]",children:[r.jsx(dx,{isLoading:Ci,isLoadingMore:se,repos:Xn,selectedRepo:H,onSelectedRepoChange:Z,runsView:X,onRunsViewChange:bc,filteredRuns:Ei,canLoadMore:ms,onLoadMore:()=>{Ma({append:!0,offset:ue})},selectedRunId:B,onOpenRun:Ai,statusTone:ax}),r.jsx(Vy,{operationsEnabled:tt,activeOperation:J,updateStatus:Ra,installMethod:f?.build?.installMethod,onUpdate:()=>{ra()}})]})]})),l==="stats"&&r.jsx(Dx,{snapshot:f,socketConnected:D}),l==="projects"&&(Sc?r.jsx(Wy,{snapshot:g,repo:ps??"",isLoading:x,operationsEnabled:tt,activeOperation:J,onLabelsInit:xc,onBack:jl}):r.jsx(tx,{snapshot:g,isLoading:x,onOpenRepo:Sl})),l==="settings"&&r.jsxs("div",{className:"flex flex-col gap-5",children:[r.jsx(Ry,{baseDailyBudgetUsd:f?.cost.dailyBudgetUsd??0,dailyBudgetOverrideUsd:f?.cost.dailyBudgetOverrideUsd??null,effectiveDailyBudgetUsd:f?.cost.effectiveDailyBudgetUsd??f?.cost.dailyBudgetUsd??0,todayCostUsd:f?.status.dailyCostUsd??0,activeOperation:J,dailyDraft:jt,onDailyDraftChange:vl,onDailySubmit:A=>{zi(A)},onDailyClear:()=>{Ss()},onDailyReset:()=>{sn()},issueDraft:ut,repos:Xn,onIssueDraftChange:A=>{gc(F=>({...F,...A}))},onIssueSubmit:A=>{Li(A)},onIssueClear:()=>{Ui()}}),r.jsx(wx,{settings:b?.settings??[],generatedAt:b?.generatedAt??null,isLoading:T,activeOperation:J,drafts:me,onDraftChange:(A,F)=>{it(_e=>({..._e,[A]:F}))},onApply:A=>{Nt(A)},onClear:A=>{xs(A)}})]})]})]}),r.jsxs("div",{className:"flex flex-col items-center gap-2 pb-16 pt-1 md:pb-2",children:[r.jsx("button",{type:"button",className:"btn btn-outline btn-sm border-primary/55 bg-base-200/45 text-primary hover:bg-primary/15",onClick:()=>{window.location.reload()},children:"UI reload"}),r.jsx("span",{className:"text-[10px] text-base-content/50",children:tn})]})]}),en&&Ra&&r.jsx(Yx,{status:Ra,serverUnreachable:Zn,elapsedSeconds:bt})]})}const n1=["issues","stats","projects","settings"];function fg(l){return n1.some(o=>o===l)}function l1(){return r.jsx(lg,{})}function s1(){const{page:l}=dc({from:"/$page"});return r.jsx(ac,{activePage:l})}function i1(){const{page:l,detailId:o}=dc({from:"/$page/$detailId"});return l==="issues"?r.jsx(ac,{activePage:"issues",issueDetailRunId:o}):l==="projects"?r.jsx(ac,{activePage:"projects",projectDetailRepo:o}):r.jsx(ac,{activePage:l})}const pc=ey({component:l1}),o1=of({getParentRoute:()=>pc,path:"/",loader:()=>ji({to:"/$page",params:{page:"issues"},replace:!0,throw:!0}),component:()=>null}),c1=of({getParentRoute:()=>pc,path:"$page",loader:({params:l})=>{if(!fg(l.page))return ji({to:"/$page",params:{page:"issues"},replace:!0,throw:!0})},component:s1}),r1=of({getParentRoute:()=>pc,path:"$page/$detailId",loader:({params:l})=>{if(!fg(l.page))return ji({to:"/$page",params:{page:"issues"},replace:!0,throw:!0});if(l.page!=="issues"&&l.page!=="projects")return ji({to:"/$page",params:{page:l.page},replace:!0,throw:!0})},component:i1}),u1=pc.addChildren([o1,c1,r1]);function f1(){return typeof window>"u"?mv({initialEntries:["/issues"]}):Gp()}function d1(l={}){return fy({routeTree:u1,history:l.history??f1(),isServer:l.isServer})}const h1=d1(),dg=document.getElementById("root");if(!dg)throw new Error("Root container not found");R0.createRoot(dg).render(r.jsx(is.StrictMode,{children:r.jsx(my,{router:h1})}));"serviceWorker"in navigator&&window.addEventListener("load",()=>{navigator.serviceWorker.register("/sw.js").catch(()=>{})});
|
|
17
|
+
`;function qx({status:l,serverUnreachable:o=!1,elapsedSeconds:i}){const u=Ux(l.installMethod);return r.jsxs("div",{"data-theme":"black",style:{position:"fixed",inset:0,zIndex:9999,display:"grid",placeItems:"center",backgroundColor:"rgba(0, 0, 0, 0.78)",backdropFilter:"blur(4px)",padding:"1rem"},role:"dialog","aria-modal":"true","aria-label":"Self update in progress",children:[r.jsx("style",{children:Hx}),r.jsxs("section",{className:"w-full max-w-xl rounded-box border border-base-300/80 bg-base-100/95 p-5 shadow-2xl",children:[r.jsx("h2",{className:"text-lg font-semibold",children:"Applying self-update"}),(l.previousCommit||l.targetCommit)&&r.jsxs("p",{className:"mt-1 font-mono text-xs text-base-content/60",children:[l.previousCommit?.slice(0,8),l.targetCommit&&r.jsxs(r.Fragment,{children:[" → ",l.targetCommit.slice(0,8)]})]}),r.jsxs("div",{className:"mt-3 flex items-center gap-3 text-sm text-base-content/80",children:[r.jsx("span",{className:"loading loading-spinner loading-md text-info"}),r.jsxs("span",{children:["Update in progress",i!=null&&i>0&&r.jsxs(r.Fragment,{children:[" — ",kx(i)]})]})]}),r.jsx("ul",{className:"steps steps-vertical mt-4 w-full",children:u.map(f=>{const h=Bx(f.id,l.state,u),g=h==="done"?"step step-success":h==="active"?"step step-info update-step-active":"step",v=h==="done"?"✓":h==="active"?"●":"○";return r.jsx("li",{className:g,"data-content":v,children:r.jsx("span",{className:h==="pending"?"text-base-content/50":void 0,children:f.label})},f.id)})}),o&&r.jsxs("div",{className:"mt-4 flex items-center gap-2 rounded border border-info/35 bg-info/10 p-2.5 text-xs text-info-content",children:[r.jsx("span",{className:"loading loading-dots loading-xs"}),r.jsx("span",{children:"Server is restarting — reconnecting automatically..."})]}),l.state==="rolling-back"&&r.jsx("div",{className:"mt-4 rounded border border-warning/35 bg-warning/10 p-2 text-xs text-warning-content",children:"Health checks failed. Rolling back to the previous known-good build."}),r.jsx("p",{className:"mt-4 text-xs text-base-content/70",children:"Dashboard controls are temporarily blocked. This page refreshes automatically after a healthy restart."})]})]})}function Yx(l){return eg.createPortal(r.jsx(qx,{...l}),document.body)}function Gx(l){if(!l||typeof l!="object")return null;const o=l.runId,i=l.events,u=l.lastEventId;return typeof o!="string"||!Array.isArray(i)||typeof u!="number"?null:{runId:o,events:i.filter(f=>!f||typeof f!="object"?!1:typeof f.id=="number"),lastEventId:u}}function Vx(l,o){const i=new Set(l.map(f=>f.id)),u=[...l];for(const f of o)i.has(f.id)||(i.add(f.id),u.push(f));return u.sort((f,h)=>f.id-h.id),u}const Qx="Start self-update now? This pulls latest code, rebuilds, and restarts Night-Orch services.",Xx="Start self-update now? This installs the latest version from npm and restarts Night-Orch services.";function Zx(l,o="unknown"){return l(o==="npm"?Xx:Qx)}const Kx=6e3;function $x(l){return{startedAtMs:l,sawActiveState:!1}}function oc(){return{startedAtMs:null,sawActiveState:!1}}function cc(l){return l!=null&&l.state!=="idle"&&l.state!=="failed"}function Jx(l){return cc(l)?l:null}function Px(l,o,i){return l.startedAtMs==null||l.sawActiveState?!0:o-l.startedAtMs>=i}function Fx(l,o,i,u){return cc(l)?{nextTransition:{startedAtMs:o.startedAtMs,sawActiveState:!0},nextStatus:l,errorMessage:null,shouldReload:!1}:Px(o,i,u)?l.state==="failed"?{nextTransition:oc(),nextStatus:l,errorMessage:`Update failed: ${l.error??"unknown error"}`,shouldReload:!1}:{nextTransition:oc(),nextStatus:l,errorMessage:null,shouldReload:l.state==="idle"}:{nextTransition:o,nextStatus:null,errorMessage:null,shouldReload:!1}}async function Ix(l){const o=await l.fetchUpdateStatus();if(!o)return l.transition;const i=Fx(o,l.transition,l.nowMs?l.nowMs():Date.now(),l.graceMs??Kx);return i.nextStatus&&l.onStatus(i.nextStatus),i.errorMessage&&l.onError(i.errorMessage),i.shouldReload&&l.onReload(),i.nextTransition}const Vu="x-night-orch-intent",Qu="mutate",Wx="x-night-orch-web-token",e1="0.12.1",t1=6e4,Ep=20;function Cp(l){if(!l)return null;try{return decodeURIComponent(l)}catch{return l}}function a1(l){return l===null?"null":typeof l=="boolean"?l?"true":"false":Array.isArray(l)||typeof l=="object"&&l!==null?JSON.stringify(l):String(l)}function ac({activePage:l,issueDetailRunId:o=null,projectDetailRepo:i=null}){const u=sf(),[f,h]=w.useState(null),[g,v]=w.useState(null),[b,m]=w.useState(null),[j,y]=w.useState(!0),[x,S]=w.useState(!0),[T,E]=w.useState(!0),[D,M]=w.useState(!1),[H,Z]=w.useState("all"),[X,I]=w.useState("active"),[ee,V]=w.useState([]),[W,$]=w.useState(!1),[se,Q]=w.useState(!1),[ue,de]=w.useState(0),[Ye,Ee]=w.useState(!1),[B,K]=w.useState(""),[le,Me]=w.useState([]),[Ne,R]=w.useState(null),[q,P]=w.useState(null),[J,ce]=w.useState(null),[he,ve]=w.useState(!1),[Ce,He]=w.useState(null),[tt,na]=w.useState(!0),[ma,Bn]=w.useState(!1),[Ot,Dt]=w.useState(!1),[Pa,xt]=w.useState(!1),[la,St]=w.useState(""),[Fa,zt]=w.useState(null),[kn,Hn]=w.useState(!1),[me,it]=w.useState({}),[jt,vl]=w.useState(""),[ut,gc]=w.useState({repo:"",issueNumber:"",amount:""}),[Ra,qn]=w.useState(null),[rs,Yn]=w.useState(null),[bt,sa]=w.useState(0),Je=w.useRef(null),us=w.useRef(null),fs=w.useRef(""),ds=w.useRef(""),Qt=w.useRef(oc()),Gn=w.useRef(Date.now()),Vn=w.useRef(tt),pa=w.useRef(J),Qn=w.useRef(Ce),ia=w.useRef(0),Xn=f?.config.repos??[],Ia=f?.runs.runs??[],Wa=f?.stats.overview.runningRuns??0,Ta=f?.stats.overview.queuedRuns??0,en=cc(Ra),hs=w.useMemo(()=>H==="all"?Ia:Ia.filter(A=>A.repo===H),[Ia,H]),Ei=w.useMemo(()=>X==="active"?hs:ee,[hs,ee,X]),Ci=X==="active"?j:W,ms=X!=="active"&&Ye,yl=w.useMemo(()=>{const A=new Map;for(const F of Ia)A.set(F.runId,F);for(const F of ee)A.set(F.runId,F);return A},[Ia,ee]),oa=w.useMemo(()=>Cp(o),[o]),ps=w.useMemo(()=>Cp(i),[i]),Xt=w.useMemo(()=>oa?yl.get(oa)??null:null,[oa,yl]),Ge=Xt?.hasRun?Xt.runId:"",ft=w.useMemo(()=>en?{label:`updating ${Ra?.state??"starting"}`,toneClass:"badge-warning"}:D?Wa>0?{label:"processing",toneClass:"badge-success"}:Ta>0?{label:"queued",toneClass:"badge-info"}:{label:"idle",toneClass:"badge-neutral"}:{label:"reconnecting",toneClass:"badge-error"},[Ta,Wa,D,en,Ra?.state]),tn=w.useMemo(()=>{const A=f?.build?.version??e1,F=f?.build?.gitSha;return f?.build?.installMethod==="git"&&F?`v${A} · ${F.slice(0,8)}`:`v${A}`},[f?.build]),ga=w.useCallback(async()=>{const A=await fetch("/api/dashboard");if(!A.ok)throw new Error(`Failed to load dashboard (${A.status})`);const F=await A.json();h(F)},[]),Ma=w.useCallback(async(A={})=>{if(X==="active")return;const F=A.append??!1,_e=++ia.current,ct=F?A.offset??0:0;F?Q(!0):(V([]),de(0),Ee(!1),$(!0),Q(!1));try{const Re=new URLSearchParams;H!=="all"&&Re.set("repo",H),Re.set("view",X),Re.set("limit",String(Ep)),Re.set("offset",String(ct));const Le=await fetch(`/api/runs?${Re.toString()}`);if(!Le.ok)throw new Error(`Failed to load runs (${Le.status})`);const ge=await Le.json();if(_e!==ia.current)return;const Rt=typeof ge.hasMore=="boolean"?ge.hasMore:ge.runs.length>=Ep,Zt=typeof ge.nextOffset=="number"?ge.nextOffset:ct+ge.runs.length;V(ua=>{if(!F)return ge.runs;const Ea=new Set(ua.map(Ca=>Ca.runId)),js=[...ua];for(const Ca of ge.runs)Ea.has(Ca.runId)||(Ea.add(Ca.runId),js.push(Ca));return js}),Ee(Rt),de(Zt)}catch(Re){_e===ia.current&&R(Re.message)}finally{_e===ia.current&&($(!1),Q(!1))}},[X,H]),an=w.useCallback(async()=>{const A=await fetch("/api/update-status");return A.ok?await A.json():null},[]),gs=w.useCallback(async()=>{const A=await fetch("/api/session");if(!A.ok)throw new Error(`Failed to initialize web session (${A.status})`);const F=await A.json();na(F.operationsEnabled??!0);const _e=F.requiresExternalAuth??F.mutationToken===null;if(Bn(_e),!_e&&F.mutationToken){He(F.mutationToken),Dt(!0);return}try{const ct=await fetch("/api/auth/session");if(ct.ok&&(await ct.json()).authenticated===!0){Dt(!0);return}}catch{}Dt(!1),xt(!0)},[]),nn=w.useCallback(async()=>{if(!la.trim()){zt("Token is required.");return}Hn(!0),zt(null);try{const A=await fetch("/api/auth/session",{method:"POST",headers:{"Content-Type":"application/json",[Vu]:Qu},body:JSON.stringify({token:la.trim()})});if(A.status===204){Dt(!0),xt(!1),St(""),zt(null);return}if(A.status===401){zt("Invalid token. Check NIGHT_ORCH_WEB_AUTH_TOKEN on the server.");return}zt(`Login failed (${A.status}).`)}catch(A){zt(A.message)}finally{Hn(!1)}},[la]),bs=w.useCallback(async()=>{try{await fetch("/api/auth/logout",{method:"POST",headers:{"Content-Type":"application/json",[Vu]:Qu}})}catch{}Dt(!1),xt(!0)},[]),ca=w.useCallback(async()=>{const A=await fetch("/api/projects");if(!A.ok)throw new Error(`Failed to load projects (${A.status})`);const F=await A.json();v(F)},[]),Lt=w.useCallback(async()=>{const A=await fetch("/api/settings");if(!A.ok)throw new Error(`Failed to load settings (${A.status})`);const F=await A.json();m(F),it(Object.fromEntries(F.settings.map(_e=>[_e.key,a1(_e.effectiveValue)])))},[]);w.useEffect(()=>{(async()=>{try{y(!0),S(!0),E(!0),await Promise.all([ga(),gs(),ca(),Lt()])}catch(A){R(A.message)}finally{y(!1),S(!1),E(!1)}})()},[ga,ca,gs,Lt]),w.useEffect(()=>{let A=!1;return(async()=>{try{const F=await an();if(!F||A)return;cc(F)?Qt.current={startedAtMs:null,sawActiveState:!0}:Qt.current=oc(),qn(_e=>_e&&!F.installMethod?{...F,installMethod:_e.installMethod}:F)}catch{}})(),()=>{A=!0}},[an]),w.useEffect(()=>{Z(A=>A==="all"||Xn.includes(A)?A:"all")},[Xn]),w.useEffect(()=>{if(X==="active"){ia.current+=1,V([]),de(0),Ee(!1),$(!1),Q(!1);return}Ma({append:!1,offset:0})},[Ma,X]),w.useEffect(()=>{Vn.current=tt},[tt]),w.useEffect(()=>{pa.current=J},[J]),w.useEffect(()=>{Qn.current=Ce},[Ce]),w.useEffect(()=>{oa&&K(oa)},[oa]),w.useEffect(()=>{let A=!1;const F=()=>{const _e=window.location.protocol==="https:"?"wss":"ws",ct=Ce?`?token=${encodeURIComponent(Ce)}`:"",Re=new WebSocket(`${_e}://${window.location.host}/ws${ct}`);Je.current=Re,Re.onopen=()=>{if(A)return;M(!0),Re.send(JSON.stringify({type:"refresh"}));const Le=fs.current;Le&&Re.send(JSON.stringify({type:"subscribe-run-events",runId:Le,since:0}))},Re.onmessage=Le=>{try{const ge=JSON.parse(Le.data);if(ge.type==="snapshot"&&ge.payload){h(ge.payload);return}if(ge.type==="run-events"&&ge.payload){const Rt=Gx(ge.payload);if(!Rt||Rt.runId!==fs.current)return;Me(Zt=>Vx(Zt,Rt.events));return}ge.type==="error"&&ge.error&&P(ge.error)}catch{}},Re.onclose=()=>{Je.current===Re&&(Je.current=null),M(!1),!A&&(us.current=window.setTimeout(F,2e3))},Re.onerror=()=>{Re.close()}};return F(),()=>{A=!0,us.current!==null&&window.clearTimeout(us.current),Je.current?.close(),Je.current=null}},[Ce]),w.useEffect(()=>{fs.current=Ge,Me([]);const A=Je.current;if(!A||A.readyState!==WebSocket.OPEN){ds.current=Ge;return}const F=ds.current;F&&F!==Ge&&A.send(JSON.stringify({type:"unsubscribe-run-events",runId:F})),Ge&&A.send(JSON.stringify({type:"subscribe-run-events",runId:Ge,since:0})),ds.current=Ge},[Ge,D]);const[Zn,ba]=w.useState(!1);w.useEffect(()=>{if(!en)return;let A=!1,F=0;const _e=async()=>{try{const Re=await Ix({fetchUpdateStatus:an,transition:Qt.current,onStatus:Le=>{A||(F=0,ba(!1),qn(ge=>ge&&!Le.installMethod?{...Le,installMethod:ge.installMethod}:Le))},onError:Le=>{A||(F=0,ba(!1),R(Le))},onReload:()=>{A||window.location.reload()}});A||(Qt.current=Re)}catch{F++,!A&&F>=2&&(ba(!0),qn(Re=>{if(!Re)return Re;const Le=Re.installMethod==="npm"?Lx:zx,ge=Le.indexOf(Re.state);if(ge<0||ge>=Le.length-1)return Re;if(F*2>=4*(ge+1)){const Zt=Le[ge+1];if(Zt)return{...Re,state:Zt}}return Re}))}};_e();const ct=window.setInterval(()=>{_e()},2e3);return()=>{A=!0,window.clearInterval(ct)}},[an,en]),w.useEffect(()=>{if(!rs)return;const A=window.setInterval(()=>{sa(Math.floor((Date.now()-rs)/1e3))},1e3);return()=>window.clearInterval(A)},[rs]);const re=w.useCallback(async(A,F,_e,ct,Re)=>{try{if(ce(A),R(null),!Ce&&!Ot)throw xt(!0),new Error("Log in first.");if(!tt)throw new Error("Web operations are disabled by server policy.");const Le={"Content-Type":"application/json",[Vu]:Qu};Ce&&(Le[Wx]=Ce);const ge=await fetch(F,{method:"POST",headers:Le,credentials:"same-origin",body:JSON.stringify(_e)});if(ge.status===401&&ma)throw Dt(!1),xt(!0),new Error("Session expired. Log in again.");const Rt=await ge.json();if(!ge.ok){const ua=typeof Rt.error=="string"?Rt.error:`Operation failed (${ge.status})`;throw new Error(ua)}const Zt=xy(Rt)??ct;return P(Zt),(Re?.refreshAfterSuccess??!0)&&(await Promise.all([ga(),Lt()]),X!=="active"&&await Ma({append:!1,offset:0})),!0}catch(Le){return R(Le.message),!1}finally{ce(null)}},[ga,Ma,Lt,tt,ma,X,Ot,Ce]),wi=w.useCallback(async()=>{try{ve(!0),R(null);const A=[ga(),ca(),Lt()];l==="issues"&&X!=="active"&&A.push(Ma({append:!1,offset:0})),await Promise.all(A),Je.current?.readyState===WebSocket.OPEN&&Je.current.send(JSON.stringify({type:"refresh"}))}catch(A){R(A.message)}finally{ve(!1)}},[l,ga,Ma,ca,Lt,X]),xl=w.useCallback(()=>{Gn.current=Date.now(),re("poll","/api/operations/poll",{},"Manual poll requested")},[re]);w.useEffect(()=>{const A=()=>{if(document.visibilityState!=="visible")return;const F=Date.now()-Gn.current>=t1,_e=Vn.current&&pa.current===null&&Qn.current!==null;F&&_e&&xl()};return document.addEventListener("visibilitychange",A),()=>{document.removeEventListener("visibilitychange",A)}},[xl]);const _a=w.useCallback(()=>{re("sync","/api/operations/sync",{},"Sync completed")},[re]),ln=w.useCallback(()=>{re("cleanup","/api/operations/cleanup",{},"Cleanup completed")},[re]),bc=w.useCallback(A=>{A!==X&&(A!=="active"&&($(!0),Q(!1)),I(A))},[X]),vs=w.useCallback(A=>{u({to:"/$page",params:{page:A}})},[u]),Ai=w.useCallback(A=>{K(A),u({to:"/$page/$detailId",params:{page:"issues",detailId:A}})},[u]),vc=w.useCallback(()=>{u({to:"/$page",params:{page:"issues"}})},[u]),Sl=w.useCallback(A=>{u({to:"/$page/$detailId",params:{page:"projects",detailId:A}})},[u]),jl=w.useCallback(()=>{u({to:"/$page",params:{page:"projects"}})},[u]),ra=w.useCallback(async()=>{const A=f?.build?.installMethod;if(!(!Zx(ct=>window.confirm(ct),A==="git"||A==="npm"?A:"unknown")||!await re("update","/api/operations/update",{},"Update initiated - pulling and rebuilding...",{refreshAfterSuccess:!1}))){Qt.current=$x(Date.now()),qn({state:"draining",installMethod:A==="git"||A==="npm"?A:void 0}),Yn(Date.now()),sa(0);try{const ct=await an();if(!ct)return;const Re=Jx(ct);Re&&(Qt.current={startedAtMs:Qt.current.startedAtMs,sawActiveState:!0},qn(Re))}catch{}}},[an,re]),$e=w.useCallback(async(A,F)=>{window.confirm(F.confirmMessage)&&await re(F.operationName,F.endpoint,{repo:A.repo,issueNumber:A.issue,...F.payload},F.fallbackMessage)},[re]),Oi=w.useCallback(A=>{$e(A,{operationName:"retry",endpoint:"/api/operations/retry",confirmMessage:`Queue fresh retry for ${A.repo}#${A.issue}?`,fallbackMessage:`Fresh retry queued for ${A.repo}#${A.issue}`})},[$e]),yc=w.useCallback(A=>{$e(A,{operationName:"rebase",endpoint:"/api/operations/rebase",confirmMessage:`Queue rebase for ${A.repo}#${A.issue}?`,fallbackMessage:`Rebase queued for ${A.repo}#${A.issue}`})},[$e]),ys=w.useCallback(A=>{$e(A,{operationName:"continue",endpoint:"/api/operations/continue",confirmMessage:`Queue continue pass for ${A.repo}#${A.issue}?`,fallbackMessage:`Continue pass queued for ${A.repo}#${A.issue}`})},[$e]),Di=w.useCallback((A,F)=>{$e(A,{operationName:"delete-entry",endpoint:"/api/operations/delete-entry",confirmMessage:F?`Force delete local entry for ${A.repo}#${A.issue}? This can remove run-local state while shared issue state is still active elsewhere.`:`Delete local entry for ${A.repo}#${A.issue}?`,fallbackMessage:F?`Force-deleted local entry for ${A.repo}#${A.issue}`:`Deleted local entry for ${A.repo}#${A.issue}`,payload:{force:F}})},[$e]),Nl=w.useCallback(A=>{$e(A,{operationName:"cost-reset",endpoint:"/api/operations/cost-reset",confirmMessage:`Reset accumulated costs for ${A.repo}#${A.issue}? If cost-blocked, it will be re-queued.`,fallbackMessage:`Reset costs for ${A.repo}#${A.issue}`})},[$e]),xc=w.useCallback(A=>{window.confirm(`Bootstrap orchestration labels for ${A}?`)&&re("labels-init","/api/operations/labels-init",{repo:A},`Labels initialized for ${A}`)},[re]),Nt=w.useCallback(async A=>{const F=me[A];if(F===void 0){R(`No draft value found for ${A}`);return}await re(`setting:set:${A}`,"/api/operations/settings/set",{key:A,value:F},`Updated ${A}`)},[re,me]),xs=w.useCallback(async A=>{await re(`setting:clear:${A}`,"/api/operations/settings/clear",{key:A},`Cleared override for ${A}`)},[re]),zi=w.useCallback(async A=>{A.preventDefault();const F=Number.parseFloat(jt);if(!Number.isFinite(F)||F<=0){R("Daily override requires a positive number (USD)");return}await re("daily-cost-override:set","/api/operations/daily-cost-override/set",{amountUsd:F},`Raised today's daily cap to $${F.toFixed(2)}`)},[jt,re]),Ss=w.useCallback(async()=>{await re("daily-cost-override:clear","/api/operations/daily-cost-override/clear",{},"Cleared today's daily cap override")},[re]),sn=w.useCallback(async()=>{window.confirm("Reset today's accumulated cost counters? Cost-blocked runs will be re-queued.")&&await re("daily-cost-reset","/api/operations/daily-cost-reset",{},"Reset today's daily costs and resumed cost-blocked runs")},[re]),Li=w.useCallback(async A=>{A.preventDefault();const F=Number.parseInt(ut.issueNumber,10),_e=Number.parseFloat(ut.amount);if(!ut.repo||!Number.isFinite(F)||F<=0){R("Per-issue override requires a repo and a positive issue number");return}if(!Number.isFinite(_e)||_e<=0){R("Per-issue override requires a positive amount (USD)");return}await re("cost-override:set","/api/operations/cost-override/set",{repo:ut.repo,issueNumber:F,amountUsd:_e},`Set cost override for ${ut.repo}#${F} to $${_e.toFixed(2)}`)},[ut,re]),Ui=w.useCallback(async()=>{const A=Number.parseInt(ut.issueNumber,10);if(!ut.repo||!Number.isFinite(A)||A<=0){R("Clearing a per-issue override requires a repo and a positive issue number");return}await re("cost-override:clear","/api/operations/cost-override/clear",{repo:ut.repo,issueNumber:A},`Cleared cost override for ${ut.repo}#${A}`)},[ut,re]),on=l==="issues"&&oa!==null,Sc=l==="projects"&&ps!==null;return r.jsxs("main",{"data-theme":"black",className:"min-h-screen bg-orch-admin",children:[Pa&&r.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/80 p-4",role:"dialog","aria-modal":"true","aria-labelledby":"norch-login-title",children:r.jsxs("div",{className:"w-full max-w-sm rounded-lg border border-slate-700 bg-slate-900 p-5 shadow-2xl",children:[r.jsx("h2",{id:"norch-login-title",className:"text-base font-semibold text-slate-100",children:"Sign in"}),r.jsxs("p",{className:"mt-1 text-xs text-slate-400",children:["Enter the ",r.jsx("code",{className:"font-mono",children:"NIGHT_ORCH_WEB_AUTH_TOKEN"})," configured on the server. The browser will keep you signed in via an HttpOnly cookie for 7 days."]}),r.jsx("input",{type:"password",autoFocus:!0,autoComplete:"off",value:la,onChange:A=>St(A.target.value),onKeyDown:A=>{A.key==="Enter"&&!kn&&nn()},className:"mt-3 w-full rounded border border-slate-600 bg-slate-950 px-3 py-2 font-mono text-sm text-slate-100 focus:border-orch-accent focus:outline-none",placeholder:"Paste token here"}),Fa&&r.jsx("p",{className:"mt-2 text-xs text-rose-400",role:"alert",children:Fa}),r.jsx("div",{className:"mt-4 flex justify-end gap-2",children:r.jsx("button",{type:"button",disabled:kn,onClick:()=>{nn()},className:"rounded bg-orch-accent px-3 py-2 text-sm font-medium text-slate-950 hover:bg-orch-accent/90 disabled:opacity-50",children:kn?"Signing in…":"Sign in"})})]})}),r.jsx(Ty,{currentStateLabel:ft.label,currentStateToneClass:ft.toneClass,isWorking:Wa>0||J!==null||en,socketConnected:D,lastRefreshAt:f?.generatedAt??null,pollIntervalSeconds:f?.config.pollIntervalSeconds??null,reposCount:Xn.length,activeRuns:f?.status.activeRuns??0,runningRuns:Wa,queuedRuns:Ta,operationsEnabled:tt,activeOperation:J,isRefreshing:he,onRefresh:()=>{wi()},onPoll:xl,onSync:_a,onCleanup:ln,onGoToSettings:()=>{vs("settings")},onLogout:ma&&Ot?()=>{bs()}:void 0}),r.jsxs("div",{className:"mx-auto flex w-full max-w-[1550px] flex-col gap-5 px-4 pb-24 pt-5 sm:px-6 md:pb-6 lg:px-8",children:[Ne&&r.jsx("div",{className:"alert alert-error shadow-sm",children:r.jsx("span",{children:Ne})}),q&&r.jsx("div",{className:"alert alert-info shadow-sm",children:r.jsx("span",{children:q})}),r.jsxs("div",{className:"grid gap-5 md:grid-cols-[auto_minmax(0,1fr)] md:items-stretch md:gap-0",children:[r.jsx(Ly,{activePage:l,onPageChange:vs}),r.jsxs("div",{className:"flex min-w-0 flex-col gap-5 md:pl-6",children:[l==="issues"&&(on?r.jsx(Yy,{run:Xt,runId:oa??"",runEvents:le,operationsEnabled:tt,activeOperation:J,onRetry:Oi,onRebase:yc,onContinue:ys,onDeleteEntry:Di,onResetCost:Nl,onBack:vc}):r.jsxs("div",{className:"flex flex-col gap-5",children:[r.jsx(Fu,{snapshot:f}),r.jsxs("section",{className:"grid gap-5 xl:grid-cols-[1.65fr_1fr]",children:[r.jsx(dx,{isLoading:Ci,isLoadingMore:se,repos:Xn,selectedRepo:H,onSelectedRepoChange:Z,runsView:X,onRunsViewChange:bc,filteredRuns:Ei,canLoadMore:ms,onLoadMore:()=>{Ma({append:!0,offset:ue})},selectedRunId:B,onOpenRun:Ai,statusTone:ax}),r.jsx(Vy,{operationsEnabled:tt,activeOperation:J,updateStatus:Ra,installMethod:f?.build?.installMethod,onUpdate:()=>{ra()}})]})]})),l==="stats"&&r.jsx(Dx,{snapshot:f,socketConnected:D}),l==="projects"&&(Sc?r.jsx(Wy,{snapshot:g,repo:ps??"",isLoading:x,operationsEnabled:tt,activeOperation:J,onLabelsInit:xc,onBack:jl}):r.jsx(tx,{snapshot:g,isLoading:x,onOpenRepo:Sl})),l==="settings"&&r.jsxs("div",{className:"flex flex-col gap-5",children:[r.jsx(Ry,{baseDailyBudgetUsd:f?.cost.dailyBudgetUsd??0,dailyBudgetOverrideUsd:f?.cost.dailyBudgetOverrideUsd??null,effectiveDailyBudgetUsd:f?.cost.effectiveDailyBudgetUsd??f?.cost.dailyBudgetUsd??0,todayCostUsd:f?.status.dailyCostUsd??0,activeOperation:J,dailyDraft:jt,onDailyDraftChange:vl,onDailySubmit:A=>{zi(A)},onDailyClear:()=>{Ss()},onDailyReset:()=>{sn()},issueDraft:ut,repos:Xn,onIssueDraftChange:A=>{gc(F=>({...F,...A}))},onIssueSubmit:A=>{Li(A)},onIssueClear:()=>{Ui()}}),r.jsx(wx,{settings:b?.settings??[],generatedAt:b?.generatedAt??null,isLoading:T,activeOperation:J,drafts:me,onDraftChange:(A,F)=>{it(_e=>({..._e,[A]:F}))},onApply:A=>{Nt(A)},onClear:A=>{xs(A)}})]})]})]}),r.jsxs("div",{className:"flex flex-col items-center gap-2 pb-16 pt-1 md:pb-2",children:[r.jsx("button",{type:"button",className:"btn btn-outline btn-sm border-primary/55 bg-base-200/45 text-primary hover:bg-primary/15",onClick:()=>{window.location.reload()},children:"UI reload"}),r.jsx("span",{className:"text-[10px] text-base-content/50",children:tn})]})]}),en&&Ra&&r.jsx(Yx,{status:Ra,serverUnreachable:Zn,elapsedSeconds:bt})]})}const n1=["issues","stats","projects","settings"];function fg(l){return n1.some(o=>o===l)}function l1(){return r.jsx(lg,{})}function s1(){const{page:l}=dc({from:"/$page"});return r.jsx(ac,{activePage:l})}function i1(){const{page:l,detailId:o}=dc({from:"/$page/$detailId"});return l==="issues"?r.jsx(ac,{activePage:"issues",issueDetailRunId:o}):l==="projects"?r.jsx(ac,{activePage:"projects",projectDetailRepo:o}):r.jsx(ac,{activePage:l})}const pc=ey({component:l1}),o1=of({getParentRoute:()=>pc,path:"/",loader:()=>ji({to:"/$page",params:{page:"issues"},replace:!0,throw:!0}),component:()=>null}),c1=of({getParentRoute:()=>pc,path:"$page",loader:({params:l})=>{if(!fg(l.page))return ji({to:"/$page",params:{page:"issues"},replace:!0,throw:!0})},component:s1}),r1=of({getParentRoute:()=>pc,path:"$page/$detailId",loader:({params:l})=>{if(!fg(l.page))return ji({to:"/$page",params:{page:"issues"},replace:!0,throw:!0});if(l.page!=="issues"&&l.page!=="projects")return ji({to:"/$page",params:{page:l.page},replace:!0,throw:!0})},component:i1}),u1=pc.addChildren([o1,c1,r1]);function f1(){return typeof window>"u"?mv({initialEntries:["/issues"]}):Gp()}function d1(l={}){return fy({routeTree:u1,history:l.history??f1(),isServer:l.isServer})}const h1=d1(),dg=document.getElementById("root");if(!dg)throw new Error("Root container not found");R0.createRoot(dg).render(r.jsx(is.StrictMode,{children:r.jsx(my,{router:h1})}));"serviceWorker"in navigator&&window.addEventListener("load",()=>{navigator.serviceWorker.register("/sw.js").catch(()=>{})});
|
package/web/dist/index.html
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
rel="stylesheet"
|
|
16
16
|
/>
|
|
17
17
|
<title>night-orch web</title>
|
|
18
|
-
<script type="module" crossorigin src="/assets/index-
|
|
18
|
+
<script type="module" crossorigin src="/assets/index-BBreAjV5.js"></script>
|
|
19
19
|
<link rel="stylesheet" crossorigin href="/assets/index-DJDwanCU.css">
|
|
20
20
|
</head>
|
|
21
21
|
<body>
|