@towles/tool 0.0.109 → 0.0.111
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/package.json +9 -4
- package/{plugins/tt-agentboard → packages/agentboard}/README.md +1 -1
- package/{plugins/tt-agentboard → packages/agentboard}/apps/server/package.json +2 -1
- package/{plugins/tt-agentboard → packages/agentboard}/apps/server/src/main.ts +6 -20
- package/{plugins/tt-agentboard → packages/agentboard}/apps/tui/package.json +4 -0
- package/{plugins/tt-agentboard → packages/agentboard}/apps/tui/src/components/DetailPanel.tsx +3 -2
- package/{plugins/tt-agentboard → packages/agentboard}/apps/tui/src/components/StatusBar.tsx +35 -0
- package/{plugins/tt-agentboard → packages/agentboard}/apps/tui/src/constants.ts +1 -0
- package/{plugins/tt-agentboard → packages/agentboard}/apps/tui/src/index.tsx +206 -226
- package/packages/agentboard/apps/tui/src/session-status.test.ts +70 -0
- package/packages/agentboard/apps/tui/src/session-status.ts +19 -0
- package/{plugins/tt-agentboard → packages/agentboard}/package.json +2 -6
- package/{plugins/tt-agentboard → packages/agentboard}/packages/runtime/package.json +3 -0
- package/{plugins/tt-agentboard/packages/runtime/test → packages/agentboard/packages/runtime/src/agents}/tracker.test.ts +2 -2
- package/packages/agentboard/packages/runtime/src/agents/watchers/claude-code.test.ts +63 -0
- package/{plugins/tt-agentboard → packages/agentboard}/packages/runtime/src/agents/watchers/claude-code.ts +26 -2
- package/packages/agentboard/packages/runtime/src/config.test.ts +107 -0
- package/packages/agentboard/packages/runtime/src/config.ts +80 -0
- package/{plugins/tt-agentboard → packages/agentboard}/packages/runtime/src/index.ts +1 -1
- package/{plugins/tt-agentboard → packages/agentboard}/packages/runtime/src/plugins/loader.ts +1 -33
- package/{plugins/tt-agentboard → packages/agentboard}/packages/runtime/src/server/git-info.ts +3 -2
- package/{plugins/tt-agentboard → packages/agentboard}/packages/runtime/src/server/index.ts +23 -37
- package/{plugins/tt-agentboard → packages/agentboard}/packages/runtime/src/server/launcher.ts +6 -18
- package/{plugins/tt-agentboard → packages/agentboard}/packages/runtime/src/server/pane-scanner.ts +6 -0
- package/{plugins/tt-agentboard → packages/agentboard}/packages/runtime/src/shared.ts +7 -2
- package/{plugins/tt-agentboard → packages/agentboard}/packages/runtime/tsconfig.json +1 -1
- package/packages/shared/package.json +15 -0
- package/packages/shared/src/git/exec.ts +41 -0
- package/{src/utils → packages/shared/src}/git/gh-cli-wrapper.ts +13 -18
- package/packages/shared/src/index.ts +8 -0
- package/packages/shared/tsconfig.json +16 -0
- package/src/cli.ts +1 -1
- package/src/commands/agentboard.ts +51 -67
- package/src/{lib → commands}/auto-claude/claude-cli.ts +1 -1
- package/src/commands/auto-claude/config-init-helpers.ts +79 -0
- package/src/commands/auto-claude/config-init.test.ts +137 -0
- package/src/commands/auto-claude/config-init.ts +159 -0
- package/src/{lib → commands}/auto-claude/config.ts +4 -8
- package/src/{lib → commands}/auto-claude/e2e.test.ts +6 -6
- package/src/commands/auto-claude/explain.test.ts +58 -0
- package/src/commands/auto-claude/explain.ts +97 -0
- package/src/commands/auto-claude/index.ts +37 -14
- package/src/{lib → commands}/auto-claude/labels.ts +1 -1
- package/src/commands/auto-claude/list.ts +5 -4
- package/src/{lib → commands}/auto-claude/pipeline-execution.test.ts +1 -1
- package/src/{lib → commands}/auto-claude/pipeline.ts +1 -3
- package/src/commands/auto-claude/retry.test.ts +2 -2
- package/src/commands/auto-claude/retry.ts +5 -5
- package/src/commands/auto-claude/shell.ts +3 -0
- package/src/commands/auto-claude/status.test.ts +2 -2
- package/src/commands/auto-claude/status.ts +4 -4
- package/src/{lib → commands}/auto-claude/steps/create-pr.ts +1 -3
- package/src/{lib → commands}/auto-claude/steps/fetch-issues.ts +1 -1
- package/src/{lib → commands}/auto-claude/steps/implement.ts +1 -2
- package/src/{lib → commands}/auto-claude/utils-execution.test.ts +6 -6
- package/src/{lib → commands}/auto-claude/utils.ts +10 -4
- package/src/{lib/install → commands}/claude-settings.ts +1 -1
- package/src/commands/config/config.test.ts +129 -0
- package/src/commands/config/index.ts +11 -0
- package/src/commands/config/reset.ts +53 -0
- package/src/commands/config/schema.ts +19 -0
- package/src/commands/{config.ts → config/show.ts} +2 -2
- package/src/commands/config/validate.ts +51 -0
- package/src/commands/doctor/checks.ts +167 -0
- package/src/commands/doctor/format.test.ts +63 -0
- package/src/commands/doctor/format.ts +5 -0
- package/src/commands/doctor/history.test.ts +161 -0
- package/src/commands/doctor/history.ts +130 -0
- package/src/commands/doctor.ts +80 -151
- package/src/commands/gh/branch-clean.ts +4 -4
- package/src/commands/gh/branch.test.ts +4 -5
- package/src/commands/gh/branch.ts +10 -5
- package/src/commands/gh/pr.ts +6 -7
- package/src/{lib → commands}/graph/analyzer.test.ts +4 -4
- package/src/commands/graph/format.test.ts +130 -0
- package/src/commands/graph/format.ts +94 -0
- package/src/commands/graph/index.ts +69 -41
- package/src/{lib → commands}/graph/labels.ts +4 -4
- package/src/{lib → commands}/graph/server.ts +2 -2
- package/src/{lib → commands}/graph/types.ts +2 -0
- package/src/commands/graph.test.ts +1 -1
- package/src/commands/install.ts +6 -6
- package/src/commands/journal/daily-notes.ts +4 -7
- package/src/{lib → commands}/journal/fs.ts +1 -1
- package/src/commands/journal/index.ts +2 -0
- package/src/commands/journal/list.test.ts +174 -0
- package/src/commands/journal/list.ts +213 -0
- package/src/commands/journal/meeting.ts +4 -7
- package/src/commands/journal/note.ts +4 -7
- package/src/{lib → commands}/journal/paths.ts +1 -1
- package/src/commands/journal/search.test.ts +156 -0
- package/src/commands/journal/search.ts +256 -0
- package/src/{lib → commands}/journal/templates.ts +1 -1
- package/src/config/settings.ts +35 -26
- package/plugins/tt-agentboard/bun.lock +0 -444
- package/plugins/tt-agentboard/packages/runtime/src/config.ts +0 -70
- package/plugins/tt-agentboard/packages/runtime/test/config.test.ts +0 -83
- package/plugins/tt-auto-claude/.claude-plugin/plugin.json +0 -8
- package/plugins/tt-auto-claude/commands/create-issue.md +0 -20
- package/plugins/tt-auto-claude/commands/list.md +0 -21
- package/plugins/tt-auto-claude/skills/auto-claude/SKILL.md +0 -71
- package/plugins/tt-core/promptfooconfig.interview-me.yaml +0 -155
- package/plugins/tt-core/promptfooconfig.refine-text.yaml +0 -242
- package/plugins/tt-core/promptfooconfig.tdd.yaml +0 -144
- package/plugins/tt-core/promptfooconfig.write-prd.yaml +0 -145
- package/src/commands/config.test.ts +0 -9
- package/src/lib/auto-claude/index.ts +0 -15
- package/src/lib/auto-claude/shell.ts +0 -6
- package/src/lib/graph/index.ts +0 -24
- package/src/lib/journal/index.ts +0 -11
- package/src/utils/git/exec.ts +0 -18
- /package/{plugins/tt-agentboard → packages/agentboard}/apps/tui/build.ts +0 -0
- /package/{plugins/tt-agentboard → packages/agentboard}/apps/tui/bunfig.toml +0 -0
- /package/{plugins/tt-agentboard → packages/agentboard}/apps/tui/scripts/sessionizer.sh +0 -0
- /package/{plugins/tt-agentboard → packages/agentboard}/apps/tui/src/components/DiffStats.tsx +0 -0
- /package/{plugins/tt-agentboard → packages/agentboard}/apps/tui/src/components/SessionCard.tsx +0 -0
- /package/{plugins/tt-agentboard → packages/agentboard}/apps/tui/src/detail-panel-height.ts +0 -0
- /package/{plugins/tt-agentboard → packages/agentboard}/apps/tui/src/mux-context.ts +0 -0
- /package/{plugins/tt-agentboard → packages/agentboard}/apps/tui/tsconfig.json +0 -0
- /package/{plugins/tt-agentboard → packages/agentboard}/packages/mux-tmux/package.json +0 -0
- /package/{plugins/tt-agentboard → packages/agentboard}/packages/mux-tmux/src/client.ts +0 -0
- /package/{plugins/tt-agentboard → packages/agentboard}/packages/mux-tmux/src/index.ts +0 -0
- /package/{plugins/tt-agentboard → packages/agentboard}/packages/mux-tmux/src/provider.ts +0 -0
- /package/{plugins/tt-agentboard → packages/agentboard}/packages/mux-tmux/tsconfig.json +0 -0
- /package/{plugins/tt-agentboard → packages/agentboard}/packages/runtime/src/agents/tracker.ts +0 -0
- /package/{plugins/tt-agentboard → packages/agentboard}/packages/runtime/src/agents/watchers/amp.ts +0 -0
- /package/{plugins/tt-agentboard → packages/agentboard}/packages/runtime/src/agents/watchers/codex.ts +0 -0
- /package/{plugins/tt-agentboard → packages/agentboard}/packages/runtime/src/agents/watchers/opencode.ts +0 -0
- /package/{plugins/tt-agentboard → packages/agentboard}/packages/runtime/src/contracts/agent-watcher.ts +0 -0
- /package/{plugins/tt-agentboard → packages/agentboard}/packages/runtime/src/contracts/agent.ts +0 -0
- /package/{plugins/tt-agentboard → packages/agentboard}/packages/runtime/src/contracts/index.ts +0 -0
- /package/{plugins/tt-agentboard → packages/agentboard}/packages/runtime/src/contracts/mux.ts +0 -0
- /package/{plugins/tt-agentboard → packages/agentboard}/packages/runtime/src/debug.ts +0 -0
- /package/{plugins/tt-agentboard → packages/agentboard}/packages/runtime/src/mux/detect.ts +0 -0
- /package/{plugins/tt-agentboard → packages/agentboard}/packages/runtime/src/mux/registry.ts +0 -0
- /package/{plugins/tt-agentboard → packages/agentboard}/packages/runtime/src/server/context.ts +0 -0
- /package/{plugins/tt-agentboard → packages/agentboard}/packages/runtime/src/server/metadata-store.ts +0 -0
- /package/{plugins/tt-agentboard → packages/agentboard}/packages/runtime/src/server/port-scanner.ts +0 -0
- /package/{plugins/tt-agentboard → packages/agentboard}/packages/runtime/src/server/session-order.ts +0 -0
- /package/{plugins/tt-agentboard → packages/agentboard}/packages/runtime/src/server/sidebar-manager.ts +0 -0
- /package/{plugins/tt-agentboard → packages/agentboard}/packages/runtime/src/server/sidebar-width-sync.ts +0 -0
- /package/{plugins/tt-agentboard → packages/agentboard}/packages/runtime/src/themes.ts +0 -0
- /package/{plugins/tt-agentboard → packages/agentboard}/tsconfig.json +0 -0
- /package/{plugins/tt-core → packages/core}/.claude-plugin/plugin.json +0 -0
- /package/{plugins/tt-core → packages/core}/README.md +0 -0
- /package/{plugins/tt-core → packages/core}/commands/improve-architecture.md +0 -0
- /package/{plugins/tt-core → packages/core}/commands/interview-me.md +0 -0
- /package/{plugins/tt-core → packages/core}/commands/prd-to-issues.md +0 -0
- /package/{plugins/tt-core → packages/core}/commands/refine-text.md +0 -0
- /package/{plugins/tt-core → packages/core}/commands/task.md +0 -0
- /package/{plugins/tt-core → packages/core}/commands/tdd.md +0 -0
- /package/{plugins/tt-core → packages/core}/commands/write-prd.md +0 -0
- /package/{plugins/tt-core → packages/core}/skills/towles-tool/SKILL.md +0 -0
- /package/{src/utils → packages/shared/src}/date-utils.test.ts +0 -0
- /package/{src/utils → packages/shared/src}/date-utils.ts +0 -0
- /package/{src/utils → packages/shared/src}/fs.ts +0 -0
- /package/{src/utils → packages/shared/src}/git/branch-name.test.ts +0 -0
- /package/{src/utils → packages/shared/src}/git/branch-name.ts +0 -0
- /package/{src/utils → packages/shared/src}/git/gh-cli-wrapper.test.ts +0 -0
- /package/{src/utils → packages/shared/src}/render.test.ts +0 -0
- /package/{src/utils → packages/shared/src}/render.ts +0 -0
- /package/src/{lib → commands}/auto-claude/config.test.ts +0 -0
- /package/src/{lib → commands}/auto-claude/labels.test.ts +0 -0
- /package/src/{lib → commands}/auto-claude/pipeline.test.ts +0 -0
- /package/src/{lib → commands}/auto-claude/prompt-templates/01_plan.prompt.md +0 -0
- /package/src/{lib → commands}/auto-claude/prompt-templates/02_implement.prompt.md +0 -0
- /package/src/{lib → commands}/auto-claude/prompt-templates/03_simplify.prompt.md +0 -0
- /package/src/{lib → commands}/auto-claude/prompt-templates/04_review.prompt.md +0 -0
- /package/src/{lib → commands}/auto-claude/prompt-templates/CLAUDE.md +0 -0
- /package/src/{lib → commands}/auto-claude/prompt-templates/index.test.ts +0 -0
- /package/src/{lib → commands}/auto-claude/prompt-templates/index.ts +0 -0
- /package/src/{lib → commands}/auto-claude/run-claude.test.ts +0 -0
- /package/src/{lib → commands}/auto-claude/spawn-claude.ts +0 -0
- /package/src/{lib → commands}/auto-claude/steps/simple-steps.ts +0 -0
- /package/src/{lib → commands}/auto-claude/steps/steps.test.ts +0 -0
- /package/src/{lib → commands}/auto-claude/stream-parser.test.ts +0 -0
- /package/src/{lib → commands}/auto-claude/stream-parser.ts +0 -0
- /package/src/{lib → commands}/auto-claude/templates.test.ts +0 -0
- /package/src/{lib → commands}/auto-claude/templates.ts +0 -0
- /package/src/{lib → commands}/auto-claude/test-helpers.ts +0 -0
- /package/src/{lib → commands}/auto-claude/utils.test.ts +0 -0
- /package/src/{lib → commands}/graph/analyzer.ts +0 -0
- /package/src/{lib → commands}/graph/graph-template.html +0 -0
- /package/src/{lib → commands}/graph/parser.test.ts +0 -0
- /package/src/{lib → commands}/graph/parser.ts +0 -0
- /package/src/{lib → commands}/graph/render.ts +0 -0
- /package/src/{lib → commands}/graph/sessions.ts +0 -0
- /package/src/{lib → commands}/graph/tools.ts +0 -0
- /package/src/{lib → commands}/graph/treemap.ts +0 -0
- /package/src/{lib → commands}/journal/editor.ts +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@towles/tool",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.111",
|
|
4
4
|
"description": "One off quality of life scripts that I use on a daily basis.",
|
|
5
5
|
"homepage": "https://github.com/ChrisTowles/towles-tool#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -19,10 +19,15 @@
|
|
|
19
19
|
"towles-tool": "./bin/run.ts",
|
|
20
20
|
"tt": "./bin/run.ts"
|
|
21
21
|
},
|
|
22
|
+
"workspaces": [
|
|
23
|
+
"packages/*",
|
|
24
|
+
"packages/agentboard/apps/*",
|
|
25
|
+
"packages/agentboard/packages/*"
|
|
26
|
+
],
|
|
22
27
|
"files": [
|
|
23
28
|
"bin",
|
|
29
|
+
"packages",
|
|
24
30
|
"patches",
|
|
25
|
-
"plugins",
|
|
26
31
|
"src"
|
|
27
32
|
],
|
|
28
33
|
"type": "module",
|
|
@@ -47,6 +52,7 @@
|
|
|
47
52
|
"dependencies": {
|
|
48
53
|
"@anthropic-ai/claude-code": "^2.1.4",
|
|
49
54
|
"@anthropic-ai/sdk": "^0.56.0",
|
|
55
|
+
"@towles/shared": "workspace:*",
|
|
50
56
|
"citty": "^0.1.6",
|
|
51
57
|
"consola": "^3.4.2",
|
|
52
58
|
"d3-hierarchy": "^3.1.2",
|
|
@@ -55,11 +61,10 @@
|
|
|
55
61
|
"neverthrow": "^8.2.0",
|
|
56
62
|
"picocolors": "^1.1.1",
|
|
57
63
|
"prompts": "^2.4.2",
|
|
58
|
-
"strip-ansi": "^7.1.0",
|
|
59
|
-
"tinyexec": "^0.3.2",
|
|
60
64
|
"zod": "^4.0.5"
|
|
61
65
|
},
|
|
62
66
|
"devDependencies": {
|
|
67
|
+
"@types/bun": "latest",
|
|
63
68
|
"@types/d3-hierarchy": "^3.1.7",
|
|
64
69
|
"@types/luxon": "^3.6.2",
|
|
65
70
|
"@types/node": "^22.16.3",
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
startServer,
|
|
9
9
|
} from "@tt-agentboard/runtime";
|
|
10
10
|
import { TmuxProvider } from "@tt-agentboard/mux-tmux";
|
|
11
|
-
import
|
|
11
|
+
import consola from "consola";
|
|
12
12
|
|
|
13
13
|
const config = loadConfig();
|
|
14
14
|
const loader = new PluginLoader();
|
|
@@ -18,30 +18,16 @@ try {
|
|
|
18
18
|
const provider = new TmuxProvider();
|
|
19
19
|
loader.registerMux(provider);
|
|
20
20
|
} catch (err) {
|
|
21
|
-
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
const home = process.env.HOME ?? process.env.USERPROFILE ?? "";
|
|
25
|
-
const pluginDir = join(home, ".config", "towles-tool", "agentboard", "plugins");
|
|
26
|
-
const localPlugins = loader.loadDir(pluginDir);
|
|
27
|
-
if (localPlugins.length > 0) {
|
|
28
|
-
console.log(`Loaded local plugins: ${localPlugins.join(", ")}`);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
if (config.plugins.length > 0) {
|
|
32
|
-
const npmPlugins = loader.loadPackages(config.plugins);
|
|
33
|
-
if (npmPlugins.length > 0) {
|
|
34
|
-
console.log(`Loaded npm plugins: ${npmPlugins.join(", ")}`);
|
|
35
|
-
}
|
|
21
|
+
consola.error("Failed to initialize tmux provider:", err);
|
|
36
22
|
}
|
|
37
23
|
|
|
38
24
|
const mux = loader.resolve(config.mux);
|
|
39
25
|
if (!mux) {
|
|
40
|
-
|
|
26
|
+
consola.error(
|
|
41
27
|
"No terminal multiplexer detected.\n" +
|
|
42
28
|
`Registered providers: ${loader.registry.list().join(", ") || "(none)"}\n` +
|
|
43
29
|
"$TMUX environment variable is not set — are you running inside a tmux session?\n" +
|
|
44
|
-
"Set 'mux' in
|
|
30
|
+
"Set 'mux' in your towles-tool settings to override.",
|
|
45
31
|
);
|
|
46
32
|
process.exit(1);
|
|
47
33
|
}
|
|
@@ -53,8 +39,8 @@ loader.registerWatcher(new OpenCodeAgentWatcher());
|
|
|
53
39
|
|
|
54
40
|
const watchers = loader.getWatchers();
|
|
55
41
|
if (watchers.length > 0) {
|
|
56
|
-
|
|
42
|
+
consola.info(`Agent watchers: ${watchers.map((watcher) => watcher.name).join(", ")}`);
|
|
57
43
|
}
|
|
58
44
|
|
|
59
|
-
|
|
45
|
+
consola.info(`Primary mux provider: ${mux.name}`);
|
|
60
46
|
startServer(mux, [], watchers);
|
|
@@ -10,10 +10,14 @@
|
|
|
10
10
|
"build": "bun run build.ts"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
+
"@babel/core": "^7.28.0",
|
|
14
|
+
"@babel/preset-typescript": "^7.27.1",
|
|
13
15
|
"@opentui/core": "^0.1.88",
|
|
14
16
|
"@opentui/solid": "^0.1.88",
|
|
15
17
|
"@tt-agentboard/mux-tmux": "workspace:*",
|
|
16
18
|
"@tt-agentboard/runtime": "workspace:*",
|
|
19
|
+
"babel-plugin-module-resolver": "^5.0.2",
|
|
20
|
+
"babel-preset-solid": "^1.9.10",
|
|
17
21
|
"solid-js": "^1.9.11"
|
|
18
22
|
},
|
|
19
23
|
"devDependencies": {
|
package/{plugins/tt-agentboard → packages/agentboard}/apps/tui/src/components/DetailPanel.tsx
RENAMED
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
UNSEEN_ICON,
|
|
10
10
|
BOLD,
|
|
11
11
|
DIM,
|
|
12
|
+
DIVIDER,
|
|
12
13
|
SPARK_BLOCKS,
|
|
13
14
|
TONE_ICONS,
|
|
14
15
|
toneColor,
|
|
@@ -135,7 +136,7 @@ export function DetailPanel(props: DetailPanelProps) {
|
|
|
135
136
|
fg: props.isResizing ? P().blue : props.isResizeHover ? P().overlay1 : P().surface2,
|
|
136
137
|
}}
|
|
137
138
|
>
|
|
138
|
-
{
|
|
139
|
+
{DIVIDER}
|
|
139
140
|
</text>
|
|
140
141
|
</box>
|
|
141
142
|
|
|
@@ -289,7 +290,7 @@ function AgentListItem(props: AgentListItemProps) {
|
|
|
289
290
|
flexShrink={0}
|
|
290
291
|
onMouseDown={(event) => {
|
|
291
292
|
// Don't trigger focus if clicking the dismiss button
|
|
292
|
-
if (
|
|
293
|
+
if (event.target?.id === "dismiss") return;
|
|
293
294
|
appendFileSync(
|
|
294
295
|
TUI_AGENT_CLICK_LOG,
|
|
295
296
|
`[${new Date().toISOString()}] clicked agent=${props.agent.agent} thread=${props.agent.threadName ?? "?"}\n`,
|
|
@@ -1,13 +1,21 @@
|
|
|
1
1
|
import { Show } from "solid-js";
|
|
2
2
|
import type { Accessor } from "solid-js";
|
|
3
3
|
import type { Theme } from "@tt-agentboard/runtime";
|
|
4
|
+
import { STATUS_ICONS } from "@tt-agentboard/runtime";
|
|
4
5
|
import { BOLD } from "../constants";
|
|
5
6
|
|
|
7
|
+
export interface SessionStatusCounts {
|
|
8
|
+
active: number;
|
|
9
|
+
error: number;
|
|
10
|
+
idle: number;
|
|
11
|
+
}
|
|
12
|
+
|
|
6
13
|
export interface StatusBarProps {
|
|
7
14
|
sessionCount: number;
|
|
8
15
|
runningCount: number;
|
|
9
16
|
errorCount: number;
|
|
10
17
|
unseenCount: number;
|
|
18
|
+
sessionStatusCounts: SessionStatusCounts;
|
|
11
19
|
theme: Accessor<Theme>;
|
|
12
20
|
}
|
|
13
21
|
|
|
@@ -44,6 +52,33 @@ export function StatusBar(props: StatusBarProps) {
|
|
|
44
52
|
</span>
|
|
45
53
|
</Show>
|
|
46
54
|
</text>
|
|
55
|
+
<Show
|
|
56
|
+
when={
|
|
57
|
+
props.sessionStatusCounts.active +
|
|
58
|
+
props.sessionStatusCounts.error +
|
|
59
|
+
props.sessionStatusCounts.idle >
|
|
60
|
+
0
|
|
61
|
+
}
|
|
62
|
+
>
|
|
63
|
+
<text>
|
|
64
|
+
<span style={{ fg: P().overlay1 }}>{" "}</span>
|
|
65
|
+
<Show when={props.sessionStatusCounts.active > 0}>
|
|
66
|
+
<span style={{ fg: P().green }}>
|
|
67
|
+
{STATUS_ICONS.running} {props.sessionStatusCounts.active} active{" "}
|
|
68
|
+
</span>
|
|
69
|
+
</Show>
|
|
70
|
+
<Show when={props.sessionStatusCounts.error > 0}>
|
|
71
|
+
<span style={{ fg: P().red }}>
|
|
72
|
+
{STATUS_ICONS.error} {props.sessionStatusCounts.error} error{" "}
|
|
73
|
+
</span>
|
|
74
|
+
</Show>
|
|
75
|
+
<Show when={props.sessionStatusCounts.idle > 0}>
|
|
76
|
+
<span style={{ fg: P().surface2 }}>
|
|
77
|
+
{STATUS_ICONS.idle} {props.sessionStatusCounts.idle} idle
|
|
78
|
+
</span>
|
|
79
|
+
</Show>
|
|
80
|
+
</text>
|
|
81
|
+
</Show>
|
|
47
82
|
</box>
|
|
48
83
|
);
|
|
49
84
|
}
|
|
@@ -8,6 +8,7 @@ export const UNSEEN_ICON = "●";
|
|
|
8
8
|
export const BOLD = TextAttributes.BOLD;
|
|
9
9
|
export const DIM = TextAttributes.DIM;
|
|
10
10
|
export const SPARK_BLOCKS = [" ", "▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"];
|
|
11
|
+
export const DIVIDER = "─".repeat(200);
|
|
11
12
|
|
|
12
13
|
export const THEME_NAMES = Object.keys(BUILTIN_THEMES);
|
|
13
14
|
export const DEFAULT_DETAIL_PANEL_HEIGHT = 10;
|