@redplanethq/corebrain 2.8.30 → 2.8.31
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/commands/gateway/register.js +1 -1
- package/dist/commands/gateway/register.js.map +1 -1
- package/dist/server/api/server.d.ts.map +1 -1
- package/dist/server/api/server.js +5 -0
- package/dist/server/api/server.js.map +1 -1
- package/dist/server/api/skills/index.d.ts +9 -0
- package/dist/server/api/skills/index.d.ts.map +1 -0
- package/dist/server/api/skills/index.js +12 -0
- package/dist/server/api/skills/index.js.map +1 -0
- package/dist/server/skills/install.d.ts +35 -0
- package/dist/server/skills/install.d.ts.map +1 -0
- package/dist/server/skills/install.js +182 -0
- package/dist/server/skills/install.js.map +1 -0
- package/dist/server/skills/skill-store.d.ts +12 -0
- package/dist/server/skills/skill-store.d.ts.map +1 -0
- package/dist/server/skills/skill-store.js +76 -0
- package/dist/server/skills/skill-store.js.map +1 -0
- package/dist/server/tools/skills-tools.d.ts +14 -0
- package/dist/server/tools/skills-tools.d.ts.map +1 -0
- package/dist/server/tools/skills-tools.js +100 -0
- package/dist/server/tools/skills-tools.js.map +1 -0
- package/dist/tui/chat.d.ts.map +1 -1
- package/dist/tui/chat.js +390 -57
- package/dist/tui/chat.js.map +1 -1
- package/dist/tui/components/approval-bar.d.ts +1 -1
- package/dist/tui/components/approval-bar.d.ts.map +1 -1
- package/dist/tui/components/approval-bar.js +1 -1
- package/dist/tui/components/approval-bar.js.map +1 -1
- package/dist/tui/components/approval-panel.d.ts +1 -1
- package/dist/tui/components/approval-panel.d.ts.map +1 -1
- package/dist/tui/components/approval-panel.js +1 -1
- package/dist/tui/components/approval-panel.js.map +1 -1
- package/dist/tui/components/context-bar.d.ts +26 -0
- package/dist/tui/components/context-bar.d.ts.map +1 -0
- package/dist/tui/components/context-bar.js +45 -0
- package/dist/tui/components/context-bar.js.map +1 -0
- package/dist/tui/components/conversation-selector.d.ts +24 -6
- package/dist/tui/components/conversation-selector.d.ts.map +1 -1
- package/dist/tui/components/conversation-selector.js +187 -117
- package/dist/tui/components/conversation-selector.js.map +1 -1
- package/dist/tui/components/integrations-view.d.ts +1 -1
- package/dist/tui/components/integrations-view.d.ts.map +1 -1
- package/dist/tui/components/integrations-view.js +1 -1
- package/dist/tui/components/integrations-view.js.map +1 -1
- package/dist/tui/components/scratchpad-panel.d.ts +28 -0
- package/dist/tui/components/scratchpad-panel.d.ts.map +1 -0
- package/dist/tui/components/scratchpad-panel.js +117 -0
- package/dist/tui/components/scratchpad-panel.js.map +1 -0
- package/dist/tui/components/split-pane.d.ts +23 -0
- package/dist/tui/components/split-pane.d.ts.map +1 -0
- package/dist/tui/components/split-pane.js +59 -0
- package/dist/tui/components/split-pane.js.map +1 -0
- package/dist/tui/components/status-line.d.ts +35 -6
- package/dist/tui/components/status-line.d.ts.map +1 -1
- package/dist/tui/components/status-line.js +149 -19
- package/dist/tui/components/status-line.js.map +1 -1
- package/dist/tui/components/task-detail.d.ts +1 -1
- package/dist/tui/components/task-detail.d.ts.map +1 -1
- package/dist/tui/components/task-detail.js +1 -1
- package/dist/tui/components/task-detail.js.map +1 -1
- package/dist/tui/components/task-list.d.ts +1 -1
- package/dist/tui/components/task-list.d.ts.map +1 -1
- package/dist/tui/components/task-list.js +5 -6
- package/dist/tui/components/task-list.js.map +1 -1
- package/dist/tui/components/task-runs.d.ts +32 -0
- package/dist/tui/components/task-runs.d.ts.map +1 -0
- package/dist/tui/components/task-runs.js +146 -0
- package/dist/tui/components/task-runs.js.map +1 -0
- package/dist/tui/components/tool-call-item.d.ts +1 -1
- package/dist/tui/components/tool-call-item.d.ts.map +1 -1
- package/dist/tui/components/tool-call-item.js +44 -13
- package/dist/tui/components/tool-call-item.js.map +1 -1
- package/dist/tui/components/widgets-view.d.ts +1 -1
- package/dist/tui/components/widgets-view.d.ts.map +1 -1
- package/dist/tui/components/widgets-view.js +1 -1
- package/dist/tui/components/widgets-view.js.map +1 -1
- package/dist/tui/utils/avatar.d.ts +1 -1
- package/dist/tui/utils/avatar.d.ts.map +1 -1
- package/dist/tui/utils/avatar.js +1 -1
- package/dist/tui/utils/avatar.js.map +1 -1
- package/dist/tui/utils/bundle-loader.d.ts.map +1 -1
- package/dist/tui/utils/bundle-loader.js +8 -1
- package/dist/tui/utils/bundle-loader.js.map +1 -1
- package/dist/tui/utils/integration-loader.d.ts +1 -1
- package/dist/tui/utils/integration-loader.d.ts.map +1 -1
- package/dist/tui/utils/stream.d.ts +75 -13
- package/dist/tui/utils/stream.d.ts.map +1 -1
- package/dist/tui/utils/stream.js +148 -13
- package/dist/tui/utils/stream.js.map +1 -1
- package/dist/utils/env-bootstrap.js +1 -1
- package/dist/utils/env-bootstrap.js.map +1 -1
- package/dist/utils/setup/docker.js +1 -1
- package/dist/utils/setup/docker.js.map +1 -1
- package/dist/utils/setup/railway.js +1 -1
- package/dist/utils/setup/railway.js.map +1 -1
- package/package.json +5 -4
- package/dist/tui/components/dashboard-view.d.ts +0 -20
- package/dist/tui/components/dashboard-view.d.ts.map +0 -1
- package/dist/tui/components/dashboard-view.js +0 -147
- package/dist/tui/components/dashboard-view.js.map +0 -1
- package/dist/tui/components/reminder-list.d.ts +0 -28
- package/dist/tui/components/reminder-list.d.ts.map +0 -1
- package/dist/tui/components/reminder-list.js +0 -261
- package/dist/tui/components/reminder-list.js.map +0 -1
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Component } from '@earendil-works/pi-tui';
|
|
2
|
+
/**
|
|
3
|
+
* Horizontal split container that renders {@link left} and {@link right} as
|
|
4
|
+
* side-by-side columns. When {@link left} is null the right child gets the
|
|
5
|
+
* full width (transparent no-op), which lets us leave the pane permanently in
|
|
6
|
+
* the TUI tree and toggle the split on/off.
|
|
7
|
+
*
|
|
8
|
+
* The left column takes {@link leftFraction} of the total width (default 40%)
|
|
9
|
+
* with a 3-column vertical separator (` │ `) between the two panels. Rows
|
|
10
|
+
* with different heights are padded so the divider stays continuous.
|
|
11
|
+
*/
|
|
12
|
+
export declare class SplitPane implements Component {
|
|
13
|
+
private right;
|
|
14
|
+
private left;
|
|
15
|
+
private leftFraction;
|
|
16
|
+
constructor(right: Component, left?: Component | null);
|
|
17
|
+
setLeft(left: Component | null): void;
|
|
18
|
+
setLeftFraction(fraction: number): void;
|
|
19
|
+
hasLeft(): boolean;
|
|
20
|
+
render(width: number): string[];
|
|
21
|
+
invalidate(): void;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=split-pane.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"split-pane.d.ts","sourceRoot":"","sources":["../../../src/tui/components/split-pane.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,wBAAwB,CAAC;AAGtD;;;;;;;;;GASG;AACH,qBAAa,SAAU,YAAW,SAAS;IAIzC,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,IAAI;IAJb,OAAO,CAAC,YAAY,CAAO;gBAGlB,KAAK,EAAE,SAAS,EAChB,IAAI,GAAE,SAAS,GAAG,IAAW;IAGtC,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI;IAIrC,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIvC,OAAO,IAAI,OAAO;IAIlB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAiC/B,UAAU,IAAI,IAAI;CAIlB"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { visibleWidth, truncateToWidth } from '@earendil-works/pi-tui';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
/**
|
|
4
|
+
* Horizontal split container that renders {@link left} and {@link right} as
|
|
5
|
+
* side-by-side columns. When {@link left} is null the right child gets the
|
|
6
|
+
* full width (transparent no-op), which lets us leave the pane permanently in
|
|
7
|
+
* the TUI tree and toggle the split on/off.
|
|
8
|
+
*
|
|
9
|
+
* The left column takes {@link leftFraction} of the total width (default 40%)
|
|
10
|
+
* with a 3-column vertical separator (` │ `) between the two panels. Rows
|
|
11
|
+
* with different heights are padded so the divider stays continuous.
|
|
12
|
+
*/
|
|
13
|
+
export class SplitPane {
|
|
14
|
+
right;
|
|
15
|
+
left;
|
|
16
|
+
leftFraction = 0.4;
|
|
17
|
+
constructor(right, left = null) {
|
|
18
|
+
this.right = right;
|
|
19
|
+
this.left = left;
|
|
20
|
+
}
|
|
21
|
+
setLeft(left) {
|
|
22
|
+
this.left = left;
|
|
23
|
+
}
|
|
24
|
+
setLeftFraction(fraction) {
|
|
25
|
+
this.leftFraction = Math.max(0.2, Math.min(0.8, fraction));
|
|
26
|
+
}
|
|
27
|
+
hasLeft() {
|
|
28
|
+
return this.left !== null;
|
|
29
|
+
}
|
|
30
|
+
render(width) {
|
|
31
|
+
if (!this.left)
|
|
32
|
+
return this.right.render(width);
|
|
33
|
+
const gap = 3; // ` │ `
|
|
34
|
+
const leftWidth = Math.max(10, Math.floor(width * this.leftFraction) - Math.ceil(gap / 2));
|
|
35
|
+
const rightWidth = Math.max(10, width - leftWidth - gap);
|
|
36
|
+
const leftLines = this.left.render(leftWidth);
|
|
37
|
+
const rightLines = this.right.render(rightWidth);
|
|
38
|
+
const rowCount = Math.max(leftLines.length, rightLines.length);
|
|
39
|
+
const divider = chalk.dim(' │ ');
|
|
40
|
+
const emptyLeft = ' '.repeat(leftWidth);
|
|
41
|
+
const emptyRight = ' '.repeat(rightWidth);
|
|
42
|
+
const out = [];
|
|
43
|
+
for (let i = 0; i < rowCount; i++) {
|
|
44
|
+
const l = leftLines[i] ?? emptyLeft;
|
|
45
|
+
const r = rightLines[i] ?? emptyRight;
|
|
46
|
+
const lPad = ' '.repeat(Math.max(0, leftWidth - visibleWidth(l)));
|
|
47
|
+
const rPad = ' '.repeat(Math.max(0, rightWidth - visibleWidth(r)));
|
|
48
|
+
out.push(truncateToWidth(l + lPad, leftWidth) +
|
|
49
|
+
divider +
|
|
50
|
+
truncateToWidth(r + rPad, rightWidth));
|
|
51
|
+
}
|
|
52
|
+
return out;
|
|
53
|
+
}
|
|
54
|
+
invalidate() {
|
|
55
|
+
this.left?.invalidate?.();
|
|
56
|
+
this.right.invalidate?.();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=split-pane.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"split-pane.js","sourceRoot":"","sources":["../../../src/tui/components/split-pane.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,49 @@
|
|
|
1
|
-
import type { Component } from '@
|
|
1
|
+
import type { Component, Focusable } from '@earendil-works/pi-tui';
|
|
2
2
|
export type ChatMode = 'chat' | 'newTask';
|
|
3
|
+
export type StatusZone = 'tasks' | 'gateways' | 'catchup';
|
|
3
4
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* Compact status bar under the editor. Two rows:
|
|
6
|
+
*
|
|
7
|
+
* Row 1 · badges + tasks chip on the left, below-input widget + G chip on the right
|
|
8
|
+
* Row 2 · catchup chip on the right (only when there's something to catch up on)
|
|
9
|
+
*
|
|
10
|
+
* When focused, ←/→ cycle through the three zones (tasks · gateways · catchup)
|
|
11
|
+
* and the active zone is drawn with a background color. Enter/Space activates
|
|
12
|
+
* it, Esc/↑ releases focus back to the caller via {@link onBlur}.
|
|
8
13
|
*/
|
|
9
|
-
export declare class StatusLine implements Component {
|
|
14
|
+
export declare class StatusLine implements Component, Focusable {
|
|
15
|
+
private baseUrl;
|
|
16
|
+
private apiKey;
|
|
17
|
+
private onChange;
|
|
18
|
+
focused: boolean;
|
|
10
19
|
private _incognito;
|
|
11
20
|
private _acceptAll;
|
|
12
21
|
private _widget;
|
|
13
22
|
private _mode;
|
|
23
|
+
private waitingCount;
|
|
24
|
+
private reviewCount;
|
|
25
|
+
private workingCount;
|
|
26
|
+
private gatewayCount;
|
|
27
|
+
private catchupCount;
|
|
28
|
+
private zone;
|
|
29
|
+
private pollTimer;
|
|
30
|
+
onActivate?: (zone: StatusZone) => void;
|
|
31
|
+
onBlur?: () => void;
|
|
32
|
+
constructor(baseUrl: string, apiKey: string, onChange: () => void);
|
|
33
|
+
dispose(): void;
|
|
14
34
|
setIncognito(val: boolean): void;
|
|
15
35
|
setAcceptAll(val: boolean): void;
|
|
16
36
|
setWidget(widget: Component | null): void;
|
|
17
37
|
setMode(val: ChatMode): void;
|
|
38
|
+
getSelectedZone(): StatusZone;
|
|
39
|
+
setSelectedZone(zone: StatusZone): void;
|
|
40
|
+
private refresh;
|
|
41
|
+
handleInput(data: string): void;
|
|
42
|
+
private highlight;
|
|
43
|
+
private tasksChip;
|
|
44
|
+
private gatewaysChip;
|
|
45
|
+
private catchupChip;
|
|
46
|
+
private badges;
|
|
18
47
|
render(width: number): string[];
|
|
19
48
|
invalidate(): void;
|
|
20
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status-line.d.ts","sourceRoot":"","sources":["../../../src/tui/components/status-line.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"status-line.d.ts","sourceRoot":"","sources":["../../../src/tui/components/status-line.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,SAAS,EAAE,SAAS,EAAC,MAAM,wBAAwB,CAAC;AAQjE,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAC1C,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;AAM1D;;;;;;;;;GASG;AACH,qBAAa,UAAW,YAAW,SAAS,EAAE,SAAS;IAqBrD,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ;IAtBjB,OAAO,UAAS;IAEhB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,KAAK,CAAoB;IAEjC,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,YAAY,CAAK;IAEzB,OAAO,CAAC,IAAI,CAAuB;IACnC,OAAO,CAAC,SAAS,CAA+C;IAEhE,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;gBAGX,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,IAAI;IAM7B,OAAO,IAAI,IAAI;IAKf,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAIhC,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAIhC,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI;IAIzC,OAAO,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI;IAK5B,eAAe,IAAI,UAAU;IAI7B,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;YAKzB,OAAO;IAoBrB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAuB/B,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,MAAM;IAWd,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IA4C/B,UAAU,IAAI,IAAI;CAGlB"}
|
|
@@ -1,16 +1,48 @@
|
|
|
1
|
-
import { visibleWidth, truncateToWidth } from '@
|
|
1
|
+
import { visibleWidth, truncateToWidth, matchesKey, Key, } from '@earendil-works/pi-tui';
|
|
2
2
|
import chalk from 'chalk';
|
|
3
|
+
import { fetchTasks, fetchGateways, fetchInboxCount, } from '../utils/stream.js';
|
|
4
|
+
const ZONE_ORDER = ['tasks', 'gateways', 'catchup'];
|
|
5
|
+
const POLL_MS = 15_000;
|
|
3
6
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
7
|
+
* Compact status bar under the editor. Two rows:
|
|
8
|
+
*
|
|
9
|
+
* Row 1 · badges + tasks chip on the left, below-input widget + G chip on the right
|
|
10
|
+
* Row 2 · catchup chip on the right (only when there's something to catch up on)
|
|
11
|
+
*
|
|
12
|
+
* When focused, ←/→ cycle through the three zones (tasks · gateways · catchup)
|
|
13
|
+
* and the active zone is drawn with a background color. Enter/Space activates
|
|
14
|
+
* it, Esc/↑ releases focus back to the caller via {@link onBlur}.
|
|
8
15
|
*/
|
|
9
16
|
export class StatusLine {
|
|
17
|
+
baseUrl;
|
|
18
|
+
apiKey;
|
|
19
|
+
onChange;
|
|
20
|
+
focused = false;
|
|
10
21
|
_incognito = false;
|
|
11
22
|
_acceptAll = false;
|
|
12
23
|
_widget = null;
|
|
13
24
|
_mode = 'chat';
|
|
25
|
+
waitingCount = 0;
|
|
26
|
+
reviewCount = 0;
|
|
27
|
+
workingCount = 0;
|
|
28
|
+
gatewayCount = 0;
|
|
29
|
+
catchupCount = 0;
|
|
30
|
+
zone = 'tasks';
|
|
31
|
+
pollTimer = null;
|
|
32
|
+
onActivate;
|
|
33
|
+
onBlur;
|
|
34
|
+
constructor(baseUrl, apiKey, onChange) {
|
|
35
|
+
this.baseUrl = baseUrl;
|
|
36
|
+
this.apiKey = apiKey;
|
|
37
|
+
this.onChange = onChange;
|
|
38
|
+
void this.refresh();
|
|
39
|
+
this.pollTimer = setInterval(() => void this.refresh(), POLL_MS);
|
|
40
|
+
}
|
|
41
|
+
dispose() {
|
|
42
|
+
if (this.pollTimer)
|
|
43
|
+
clearInterval(this.pollTimer);
|
|
44
|
+
this.pollTimer = null;
|
|
45
|
+
}
|
|
14
46
|
setIncognito(val) {
|
|
15
47
|
this._incognito = val;
|
|
16
48
|
}
|
|
@@ -25,29 +57,127 @@ export class StatusLine {
|
|
|
25
57
|
return;
|
|
26
58
|
this._mode = val;
|
|
27
59
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
60
|
+
getSelectedZone() {
|
|
61
|
+
return this.zone;
|
|
62
|
+
}
|
|
63
|
+
setSelectedZone(zone) {
|
|
64
|
+
this.zone = zone;
|
|
65
|
+
this.onChange();
|
|
66
|
+
}
|
|
67
|
+
async refresh() {
|
|
68
|
+
try {
|
|
69
|
+
const [waiting, review, working, gateways, catchupCount] = await Promise.all([
|
|
70
|
+
fetchTasks(this.baseUrl, this.apiKey, 'Waiting'),
|
|
71
|
+
fetchTasks(this.baseUrl, this.apiKey, 'Review'),
|
|
72
|
+
fetchTasks(this.baseUrl, this.apiKey, 'Working'),
|
|
73
|
+
fetchGateways(this.baseUrl, this.apiKey),
|
|
74
|
+
fetchInboxCount(this.baseUrl, this.apiKey),
|
|
75
|
+
]);
|
|
76
|
+
this.waitingCount = waiting.length;
|
|
77
|
+
this.reviewCount = review.length;
|
|
78
|
+
this.workingCount = working.length;
|
|
79
|
+
this.gatewayCount = gateways.filter(g => g.status === 'CONNECTED').length;
|
|
80
|
+
this.catchupCount = catchupCount;
|
|
81
|
+
this.onChange();
|
|
32
82
|
}
|
|
33
|
-
|
|
34
|
-
|
|
83
|
+
catch {
|
|
84
|
+
// swallow — polling will retry
|
|
35
85
|
}
|
|
36
|
-
|
|
37
|
-
|
|
86
|
+
}
|
|
87
|
+
handleInput(data) {
|
|
88
|
+
if (matchesKey(data, Key.escape) || matchesKey(data, Key.up)) {
|
|
89
|
+
this.onBlur?.();
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
if (matchesKey(data, Key.right)) {
|
|
93
|
+
const i = ZONE_ORDER.indexOf(this.zone);
|
|
94
|
+
this.zone = ZONE_ORDER[(i + 1) % ZONE_ORDER.length];
|
|
95
|
+
this.onChange();
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
if (matchesKey(data, Key.left)) {
|
|
99
|
+
const i = ZONE_ORDER.indexOf(this.zone);
|
|
100
|
+
this.zone = ZONE_ORDER[(i - 1 + ZONE_ORDER.length) % ZONE_ORDER.length];
|
|
101
|
+
this.onChange();
|
|
102
|
+
return;
|
|
38
103
|
}
|
|
39
|
-
|
|
40
|
-
|
|
104
|
+
if (data === '\r' || data === '\n' || data === ' ') {
|
|
105
|
+
this.onActivate?.(this.zone);
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
highlight(zone, text) {
|
|
110
|
+
if (!this.focused || this.zone !== zone)
|
|
111
|
+
return text;
|
|
112
|
+
// Selected zone gets a solid dark background so it stands out without
|
|
113
|
+
// shifting layout width.
|
|
114
|
+
return chalk.bgHex('#3a3a3a').white(text);
|
|
115
|
+
}
|
|
116
|
+
tasksChip() {
|
|
117
|
+
const bits = [];
|
|
118
|
+
if (this.waitingCount > 0)
|
|
119
|
+
bits.push(chalk.yellow(`W${this.waitingCount}`));
|
|
120
|
+
if (this.reviewCount > 0)
|
|
121
|
+
bits.push(chalk.magenta(`R${this.reviewCount}`));
|
|
122
|
+
if (this.workingCount > 0)
|
|
123
|
+
bits.push(chalk.blue(`P${this.workingCount}`));
|
|
124
|
+
const body = bits.length > 0 ? bits.join(chalk.dim('·')) : chalk.dim('0');
|
|
125
|
+
return this.highlight('tasks', ' ' + chalk.bold.white('T ') + body + ' ');
|
|
126
|
+
}
|
|
127
|
+
gatewaysChip() {
|
|
128
|
+
const body = this.gatewayCount > 0
|
|
129
|
+
? chalk.green(String(this.gatewayCount))
|
|
130
|
+
: chalk.dim('0');
|
|
131
|
+
return this.highlight('gateways', ' ' + chalk.bold.white('G ') + body + ' ');
|
|
132
|
+
}
|
|
133
|
+
catchupChip() {
|
|
134
|
+
if (this.catchupCount === 0)
|
|
135
|
+
return '';
|
|
136
|
+
const body = chalk.cyan(String(this.catchupCount)) +
|
|
137
|
+
chalk.white(' to review') +
|
|
138
|
+
chalk.dim(' · /catchup');
|
|
139
|
+
return this.highlight('catchup', ' ' + chalk.bold.white('C ') + body + ' ');
|
|
140
|
+
}
|
|
141
|
+
badges() {
|
|
142
|
+
const parts = [];
|
|
143
|
+
if (this._mode === 'newTask')
|
|
144
|
+
parts.push(chalk.bgHex('#3a3a00').hex('#ffee66')(' + NEW TASK '));
|
|
145
|
+
if (this._incognito)
|
|
146
|
+
parts.push(chalk.bgHex('#3a2a00').hex('#ffcc44')(' ⊘ incognito '));
|
|
147
|
+
if (this._acceptAll)
|
|
148
|
+
parts.push(chalk.bgHex('#1a3a1a').hex('#44cc44')(' ✓ accept all '));
|
|
149
|
+
return parts.join(' ');
|
|
150
|
+
}
|
|
151
|
+
render(width) {
|
|
152
|
+
const rows = [];
|
|
153
|
+
// Row 1: badges + tasks on the left, widget line + G chip on the right
|
|
154
|
+
const left = [this.badges(), this.tasksChip()].filter(Boolean).join(' ');
|
|
155
|
+
let widgetLine = '';
|
|
41
156
|
if (this._widget) {
|
|
42
157
|
const lines = this._widget.render(width);
|
|
43
|
-
|
|
158
|
+
widgetLine = lines[0] ?? '';
|
|
44
159
|
}
|
|
45
|
-
|
|
46
|
-
return [];
|
|
160
|
+
const right = [widgetLine, this.gatewaysChip()].filter(Boolean).join(' ');
|
|
47
161
|
const leftW = visibleWidth(left);
|
|
48
162
|
const rightW = visibleWidth(right);
|
|
49
163
|
const gap = Math.max(1, width - leftW - rightW);
|
|
50
|
-
|
|
164
|
+
rows.push(truncateToWidth(left + ' '.repeat(gap) + right, width));
|
|
165
|
+
// Row 2: catchup chip on the right (only when there is catchup or the
|
|
166
|
+
// zone is currently focused, so the user can still see the highlight
|
|
167
|
+
// even at zero).
|
|
168
|
+
const catchupText = this.catchupChip();
|
|
169
|
+
const showCatchup = catchupText.length > 0 || (this.focused && this.zone === 'catchup');
|
|
170
|
+
if (showCatchup) {
|
|
171
|
+
const chip = catchupText ||
|
|
172
|
+
this.highlight('catchup', ' ' + chalk.bold.white('C ') + chalk.dim('0') + ' ');
|
|
173
|
+
const cw = visibleWidth(chip);
|
|
174
|
+
const pad = Math.max(0, width - cw);
|
|
175
|
+
rows.push(truncateToWidth(' '.repeat(pad) + chip, width));
|
|
176
|
+
}
|
|
177
|
+
if (this.focused) {
|
|
178
|
+
rows.push(chalk.dim(' ←/→ zone · Enter open · Esc/↑ back'));
|
|
179
|
+
}
|
|
180
|
+
return rows;
|
|
51
181
|
}
|
|
52
182
|
invalidate() {
|
|
53
183
|
this._widget?.invalidate?.();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status-line.js","sourceRoot":"","sources":["../../../src/tui/components/status-line.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"status-line.js","sourceRoot":"","sources":["../../../src/tui/components/status-line.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-detail.d.ts","sourceRoot":"","sources":["../../../src/tui/components/task-detail.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAC,SAAS,EAAE,GAAG,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"task-detail.d.ts","sourceRoot":"","sources":["../../../src/tui/components/task-detail.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAC,SAAS,EAAE,GAAG,EAAC,MAAM,wBAAwB,CAAC;AAkB3D,qBAAa,UAAW,YAAW,SAAS;IAS1C,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,QAAQ;IAZjB,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,UAAU,CAAO;IACzB,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,MAAM,CAA+B;IAE7C,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;gBAGb,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,MAAM,IAAI;IAc7B,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,UAAU;IAiClB,OAAO,CAAC,IAAI;IA+BZ,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAO/B,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAI/B,UAAU,IAAI,IAAI;CAGlB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Text, Markdown, Spacer, Container, Loader, matchesKey, Key, } from '@
|
|
1
|
+
import { Text, Markdown, Spacer, Container, Loader, matchesKey, Key, } from '@earendil-works/pi-tui';
|
|
2
2
|
import chalk from 'chalk';
|
|
3
3
|
import { fetchTaskDetail, } from '../utils/stream.js';
|
|
4
4
|
import { htmlToMarkdown } from '../utils/html-to-md.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-detail.js","sourceRoot":"","sources":["../../../src/tui/components/task-detail.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,SAAS,EACT,MAAM,EACN,UAAU,EACV,GAAG,GACH,MAAM,
|
|
1
|
+
{"version":3,"file":"task-detail.js","sourceRoot":"","sources":["../../../src/tui/components/task-detail.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-list.d.ts","sourceRoot":"","sources":["../../../src/tui/components/task-list.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAC,SAAS,EAAE,GAAG,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"task-list.d.ts","sourceRoot":"","sources":["../../../src/tui/components/task-list.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAC,SAAS,EAAE,GAAG,EAAC,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAIN,KAAK,WAAW,EAEhB,MAAM,oBAAoB,CAAC;AAiE5B,qBAAa,QAAS,YAAW,SAAS;IAiBxC,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,QAAQ;IAnBjB,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,UAAU,CAAO;IACzB,OAAO,CAAC,QAAQ,CAAO;IACvB,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,IAAI,CAA2B;IAEvC,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAA+C;IAEhE,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACzC,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;gBAGjB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,MAAM,IAAI;IAiB7B,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,WAAW;IAwBnB,OAAO,CAAC,IAAI;IAqDZ,OAAO,CAAC,qBAAqB;IAc7B,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IA8B/B,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAI/B,UAAU,IAAI,IAAI;IAIlB,OAAO,IAAI,IAAI;CAGf"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SelectList, Text, Spacer, Container, Loader, matchesKey, Key, } from '@
|
|
1
|
+
import { SelectList, Text, Spacer, Container, Loader, matchesKey, Key, } from '@earendil-works/pi-tui';
|
|
2
2
|
import chalk from 'chalk';
|
|
3
3
|
import { fetchTasks, isRecurringTask, updateTaskApi, } from '../utils/stream.js';
|
|
4
4
|
const selectListTheme = {
|
|
@@ -9,13 +9,12 @@ const selectListTheme = {
|
|
|
9
9
|
noMatch: (s) => chalk.dim(s),
|
|
10
10
|
};
|
|
11
11
|
const TABS = [
|
|
12
|
-
{ key: 'All', status: null },
|
|
13
|
-
{ key: 'Todo', status: 'Todo' },
|
|
14
12
|
{ key: 'Waiting', status: 'Waiting' },
|
|
15
|
-
{ key: 'Ready', status: 'Ready' },
|
|
16
|
-
{ key: 'Working', status: 'Working' },
|
|
17
13
|
{ key: 'Review', status: 'Review' },
|
|
18
|
-
{ key: '
|
|
14
|
+
{ key: 'Working', status: 'Working' },
|
|
15
|
+
{ key: 'Ready', status: 'Ready' },
|
|
16
|
+
{ key: 'Todo', status: 'Todo' },
|
|
17
|
+
{ key: 'Completed', status: 'Done' },
|
|
19
18
|
{ key: 'Recurring', status: null, recurring: true },
|
|
20
19
|
];
|
|
21
20
|
const STATUS_CYCLE = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-list.js","sourceRoot":"","sources":["../../../src/tui/components/task-list.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,UAAU,EACV,IAAI,EACJ,MAAM,EACN,SAAS,EACT,MAAM,EACN,UAAU,EACV,GAAG,GACH,MAAM,
|
|
1
|
+
{"version":3,"file":"task-list.js","sourceRoot":"","sources":["../../../src/tui/components/task-list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { Component, TUI } from '@earendil-works/pi-tui';
|
|
2
|
+
import { type TaskRunSummary, type TaskSummary } from '../utils/stream.js';
|
|
3
|
+
/**
|
|
4
|
+
* List of every conversation ("run") that belongs to a recurring task,
|
|
5
|
+
* newest first. Opened via Ctrl+R when a recurring task is the active
|
|
6
|
+
* conversation. Selecting a row hands the conversation id back to the caller
|
|
7
|
+
* via {@link onOpenRun} so the parent can `resume(run.id)` into it.
|
|
8
|
+
*/
|
|
9
|
+
export declare class TaskRuns implements Component {
|
|
10
|
+
private baseUrl;
|
|
11
|
+
private apiKey;
|
|
12
|
+
private task;
|
|
13
|
+
private tui;
|
|
14
|
+
private onRender;
|
|
15
|
+
private container;
|
|
16
|
+
private headerText;
|
|
17
|
+
private bodyContainer;
|
|
18
|
+
private list;
|
|
19
|
+
private runs;
|
|
20
|
+
private loading;
|
|
21
|
+
onCancel?: () => void;
|
|
22
|
+
onOpenRun?: (run: TaskRunSummary) => void;
|
|
23
|
+
constructor(baseUrl: string, apiKey: string, task: TaskSummary, tui: TUI, onRender: () => void);
|
|
24
|
+
private updateHeader;
|
|
25
|
+
private buildItems;
|
|
26
|
+
private rebuildList;
|
|
27
|
+
private load;
|
|
28
|
+
handleInput(data: string): void;
|
|
29
|
+
render(width: number): string[];
|
|
30
|
+
invalidate(): void;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=task-runs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-runs.d.ts","sourceRoot":"","sources":["../../../src/tui/components/task-runs.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAC,SAAS,EAAE,GAAG,EAAC,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAgB,KAAK,cAAc,EAAE,KAAK,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAgCxF;;;;;GAKG;AACH,qBAAa,QAAS,YAAW,SAAS;IAYxC,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,QAAQ;IAfjB,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,UAAU,CAAO;IACzB,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,IAAI,CAA2B;IACvC,OAAO,CAAC,IAAI,CAAwB;IACpC,OAAO,CAAC,OAAO,CAAS;IAExB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,IAAI,CAAC;gBAGjC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,MAAM,IAAI;IAc7B,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,IAAI;IAoCZ,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAY/B,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAI/B,UAAU,IAAI,IAAI;CAGlB"}
|